
IP ATC Asterisk යනු IP දුරකථන ක්ෂේත්රයේ ප්රබල යන්ත්රයකි. සහ Asterisk සඳහා නිර්මාණය කරන ලද FreePBX වෙබ් අතුරු මුහුණත, සැකසුම බෙහෙවින් සරල කරන අතර පද්ධතියට ඇතුල් වීමට ඇති බාධකය අඩු කරයි.
ඔබට IP දුරකථන සම්බන්ධ ඕනෑම කාර්යයක් ගැන සිතිය හැකි නම්, එය නිසැකවම Asterisk හි ක්රියාත්මක කළ හැකිය. නමුත් ඔබට නොපසුබට උත්සාහය සහ විඳදරාගැනීම අවශ්ය බව සහතිකයි.
මඟ හැරුණු ඇමතුම් පිළිබඳ විද්යුත් තැපැල් දැනුම්දීම් සැකසීමේ කාර්යයට අපි මුහුණ දී සිටිමු. වඩාත් නිවැරදිව, එන ඇමතුමක් පෝලිමට ගිය විට එම අවස්ථා ගැන විද්යුත් තැපෑලෙන් දැනුම් දෙන්න, නමුත් කිසිවෙක් (නියෝජිතයන්) මෙම එන ඇමතුමට පිළිතුරු දුන්නේ නැත.
පුදුමයට කරුණක් නම්, FreePBX හි මෙම ගැටළුව විසඳීම සඳහා සම්මත මෙවලම් කිසිවක් අපට හමු නොවීය. අපි මෙම ගැටළුව විසඳන ආකාරය මම ඔබට පහත කප්පාදුව කියමි.
පෙරවදන
ගැටලුව විසඳීමට පෙර, ඇත්ත වශයෙන්ම, අපි අන්තර්ජාලයේ තොරතුරු සෙවූ නමුත් පිරිවැටුම් විසඳුමක් සොයා ගත්තේ නැත (සමහර විට අපි හොඳින් සෙව්වේ නැත, නමුත් ඔබට කුමක් කළ හැකිද ...).
අපි කැමති පරිදි Asterisk හි සෘජුව වැඩ කිරීමට බොහෝ කුසලතා නොමැත, එබැවින් ඉදිරිපත් කරන ලද විසඳුම , සම්පූර්ණයෙන් වටහා නොගත් අතර බැහැර කරන ලදී.
මම යෝජනා කළ විසඳුමට කැමතියි , එය වැඩ නොකළත්. එබැවින් ඔබ පෝලිම්වල [ext-polies] සන්දර්භය තුළ Asterisk හි වැඩ කිරීමට අවශ්ය බව ඔවුන් අවධාරණය කළේය. තවද අපි Freepbx හි වැඩ කරන බැවින්, අපි "extensions_override_freepbx.conf" වින්යාස ගොනුවේ වැඩ කළ යුතුය. hangupcall සිදුවීමට පෙර (ඇමතුමේ අවසානය) "මග හැරුණු ඇමතුම් අල්ලා ගැනීම" පහසු බව අපි දුටුවෙමු.
සාකච්ඡාව කියවීමෙන් පසු , පෝලිමේ සිටින සියලුම නියෝජිතයන් විසින් CDR හි "Disposition" විචල්යය පෙරීම අවශ්ය බව අදහස මතු විය. සහ කියවීමෙන් පසු තොරතුරු, ගැටළුව විසඳීම සඳහා ඉතා නිශ්චිත පියවර සකස් කරන ලදී.
අප සතුව ඇති දේ:
FreePBX 13.0.197 ඇත, එය Asterisk 13.12.1 භාවිතා කරයි. OS අනුවාදය SHMZ නිකුතුව 6.6 (අවසාන) වේ. බෙදා හැරීම පදනම් වී ඇත්තේ CentOS.
තරු ලකුණ විවිධ පෝලිම්වලට ලැබෙන ඇමතුම් බෙදා හරින IVR (හඬ මෙනුව) සමඟ වින්යාස කර ඇත. සෑම පෝලිමකටම නියෝජිතයන්, එනම් ක්රියාකරුවන් පවරනු ලැබේ.
න්යාය
Asterisk එකේ මොකද වෙන්නේ
Asterisk වෙත එන ඇමතුමක් ලැබුණු විට, ඇමතුම IVR වෙත යයි. ඇමතුම්කරු දුරකථනයේ නිශ්චිත අංකයක් එබීමෙන් තේරීමක් කරන අතර නිශ්චිත පෝලිමක තබා ඇත. මෙයින් පසු, පෝලිමේ සිටින සියලුම නිදහස් නියෝජිතයින්ට එකවර ඇමතුමක් ලැබේ.
මේ මොහොතේ සිදුවන්නේ කුමක්ද සහ ඊළඟට සිදුවන්නේ කුමක්ද යන්න වඩාත් හොඳින් අවබෝධ කර ගැනීම සඳහා, අපි CDR වාර්තාව වෙත හැරෙමු (රූපය 1).

රූපය 1
පැමිණෙන ඇමතුමක් පෝලිමට ඇතුළු වූ විට, නියෝජිතයන් ඒ මොහොතේ කාර්ය බහුල නොවූයේ නම්, සියලුම නියෝජිතයන් සඳහා වන “ඉවතලීම” විචල්යයේ අගය “පිළිතුර නැත” ට සමාන වේ. "ඉවතලීම" විචල්යයට වෙනත් අගයන් ගත හැකිය (බලන්න. ), "පිළිතුරු දුන්" අගය හැර. එක් නියෝජිතයෙකු පැමිණෙන ඇමතුමකට පිළිතුරු දෙන මොහොතේදී, මෙම නියෝජිතයාගේ “ඉවතලීම” විචල්යයේ අගය “පිළිතුරු” ට සමාන වේ.
වාර්තාව CDR වෙතින් ඔබට ඇමතුම පෝලිම් කළ විට (යෙදුම් තීරුවේ අගය “පෝලිම” ට සමාන වේ), එවිට සියලුම සිදුවීම් එකම “අද්විතීය” (පද්ධති තීරුව) සමඟ දිස්වන බව දැකිය හැකිය.
CDR ගැන කෙටියෙන්
CDR යනු කුමක්දැයි වටහා ගැනීම වැදගත් වන අතර CDR වාර්තාවේ අප නිරීක්ෂණය කරන දත්ත හරියටම CDR වෙත ඇතුළත් කරන්නේ කුමන අවස්ථාවේදීද යන්නයි. CDR, මෙහෙයුම් පද්ධතියට සාපේක්ෂව, Asterisk සවිස්තරාත්මක ඇමතුම් වාර්තාවක් ලියන දත්ත ගබඩාවකි (බලන්න. ) අපගේ නඩුවේදී, මෙය mysql හි පිහිටා ඇති asteriskcdrdb නම් දත්ත සමුදායකි. නිශ්චිත “අද්විතීය” සහිත ඇමතුමක් පිළිබඳ දත්ත තාරකා විද්යාවට ඇතුළත් කරන්නේ කිසියම් සිදුවීමක් සිදු වූ වහාම නොව, hangupcall සිදුවීමෙන් පසුව (ඇමතුමේ අවසානය) බව අපි ආනුභවිකව තහවුරු කර ඇත්තෙමු.
නිර්මාණය කරන ලද විසඳුම ක්රියාත්මක කිරීමේ මූලධර්මය
අපට Asterisk හි දැනුමට වඩා bash හි දැනුම වැඩි බැවින්, ප්රධාන අදහස පහත පරිදි විය. hangupcall සිදුවීමට පෙර, bash පිටපතක් අමතන්න. මෙම ස්ක්රිප්ටයට පරාමිති 3ක් ලබා දෙන්න. CDR වෙතින් ලැබුණු දත්ත පෙරීම සඳහා පළමු පරාමිතිය "අද්විතීය" වේ. දෙවන පරාමිතිය වන්නේ "CALLERID(num)" (ඇමතුම් අංකය), ආපසු අමතන්නේ කවුරුන්දැයි දැන ගැනීමටයි. තෙවන පරාමිතිය වන්නේ ඇමතුම ලැබුණු "NODEST" (පෝලිම් අංකය) වන අතර, එම ඇමතුම කුමන ගැටලුවක් සම්බන්ධයෙන්ද යන්න සහ මග හැරුණු ඇමතුම පිළිබඳ විද්යුත් තැපෑල දැනුම්දීමක් එවිය යුත්තේ කාටද යන්න දැනගැනීම සඳහාය.
bash ස්ක්රිප්ට් mysql හි ඇති asteriskcdrdb දත්ත සමුදායට සම්බන්ධ විය යුතු අතර “Disposition” විචල්යයේ සියලුම අගයන් නිශ්චිත “අද්විතීය” සමඟ ගත යුතුය. ලැබුණු දත්ත වලින් ඔබට පහත අගයන් බැහැර කළ යුතුය: "පිළිතුරක් නැත", "කාර්යබහුල", "අසාර්ථක", "නොදන්නා". එහි ප්රතිඵලයක් වශයෙන්, එක්කෝ “පිළිතුරු” පවතිනු ඇත - එන ඇමතුමට පිළිතුරු ලැබී ඇත, නැතහොත් කිසිවක් නැත - මඟ හැරුණු ඇමතුමකි.
ඊළඟට, ඇමතුම මඟ හැරී ඇත්නම්, ස්ක්රිප්ටය විද්යුත් තැපෑලෙන් දැනුම් දීමක් එවිය යුතුය.
ඉදිරිය දෙස බලන විට, මම වැදගත් කරුණක් සටහන් කරමි. Asterisk විධාන අනුක්රමිකව ක්රියාත්මක කරයි, ඒවා සම්පූර්ණ වන තෙක් බලා සිටී (එය සාමාන්යයෙන් තාර්කික වේ). hangupcall විධානය ක්රියාත්මක වීමට පෙර අපි bash script එක අමතන්නෙමු. මේ අනුව, ස්ක්රිප්ට් සෘජුව ක්රියාත්මක කරන මොහොතේ, අප සොයන “අද්විතීය” පිළිබඳ තොරතුරු තවමත් CDR වෙත ඇතුළත් නොකෙරේ. මෙම ගැටළුව විසඳීම සඳහා, අපි "&" පරාමිතිය සමඟ bash ස්ක්රිප්ටය අමතන්නෙමු, එවිට Asterisk වහාම මීළඟ පියවර, එනම් hangupcall සිදු කිරීමට ඉදිරියට යයි. සහ bash script එක ඇතුලේ, ආරම්භයේදීම, අපි CDR තුළ අපට උනන්දුවක් දක්වන "අද්විතීය" දත්ත ඇතුළත් කිරීමට Asterisk සඳහා කාලය ලබා දීමට කුඩා කාල ප්රමාදයක් සකසන්නෙමු.
පුහුණු වන්න
Asterisk වින්යාස කිරීමට සහ bash ස්ක්රිප්ට් එකක් සෑදීමට පෙර, ඔබ විද්යුත් තැපැල් දැනුම්දීම් යැවීම වින්යාස කිරීමට අවශ්ය වේ. මේ සඳහා අපි postfix උපයෝගීතාව භාවිතා කරමු.
postfix පිහිටුවීම
අපට Yandex හි "lucky.ru" තැපැල් වසමක් ඇත. අපි smtp-client මාදිලියේ postfix වින්යාස කර asterisk@lucky.ru ගිණුමෙන් ලිපි යවමු.
විසඳුම මෙය මත පදනම් වේ: .
පළමුව, අපි පැකේජ සඳහා ස්ථාපනය/යාවත්කාලීන/පරීක්ෂා කරමු:
yum install postfix
yum install mailx
yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plainඅපි ප්රධාන postfix වින්යාස ගොනුව “/etc/postfix/main.cf” උඩින් ලියන්නේ නැත, නමුත් එහි උපස්ථ පිටපතක් සාදන්න:
cp /etc/postfix/main.cf /etc/postfix/main.cf.savඅපි "/etc/postfix/main.cf" ගොනුව සංස්කරණය කර එය පහත පෝරමයට ගෙන එන්නෙමු:
nano /etc/postfix/main.cf
#####################
relayhost =
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
smtp_generic_maps = hash:/etc/postfix/generic
smtp_tls_CAfile = /etc/postfix/ca.pem
smtp_use_tls = yes
smtputf8_autodetect_classes = all
#####################"/etc/postfix/main.cf" හි සෑම පේළියක්ම අදහස් දැක්විය නොහැක. සමහර පේළි වල අදහස් විග්රහ කරන්නා විසින් අනාවරණය කර නොගන්නා අතර ඒවා සැකසීමට යවනු ලබන අතර මෙය දෝෂ වලට තුඩු දෙයි. මෙම ගොනුව තුළ අදහස් ප්රතික්ෂේප කිරීම වඩා හොඳය. ඊළඟ කවුළුවෙහි "tail -f /var/log/messages" ධාවනය කිරීමෙන් ඔබට මෙය අත්හදා බැලිය හැක.
මම "smtputf8_autodetect_classes = all" රේඛාව සලකුණු කරමි. මෙම ප්රවේශයට පෙරනිමියෙන් utf-8 ඇතුළත් වේ, එමඟින් ඔබට අමතර උපාමාරු නොමැතිව ලිපියේ සිරුරේ සහ ලිපියේ විෂයෙහි සිරිලික් භාවිතා කිරීමට ඉඩ සලසයි (බලන්න. ).
වින්යාස ගොනු සඳහා නාමාවලියක් සාදන්න:
mkdir /etc/postfix/private"/etc/postfix/private/sender_relay" ගොනුව සංස්කරණය කරන්න. අපගේ තැපැල් වසම භාවිතා කරන විට ඔබට සම්බන්ධ විය යුත්තේ කුමන smtp සේවාදායකයද යන්න එහි සඳහන් කළ යුතුය:
nano /etc/postfix/private/sender_relay
#####################
@lucky.ru smtp.yandex.ru
#####################"/etc/postfix/private/sasl_passwd" ගොනුව සංස්කරණය කරන්න. එහි අපි ලිපි යැවීමට භාවිතා කරන විද්යුත් තැපැල් ලිපිනය මෙන්ම මෙම ගිණුම සඳහා පුරනය වීම සහ මුරපදය ද දක්වන්නෙමු (අපි තීරුවකින් වෙන් කර ඇති පිවිසුම් සහ මුරපදය සඳහන් කරමු):
nano /etc/postfix/private/sasl_passwd
#####################
asterisk@lucky.ru asterisk@lucky.ru:password_asterisk
#####################"/etc/postfix/generic" ගොනුව සංස්කරණය කරන්න. එහි අපි පිටතට යන ලිපිනය ප්රතිස්ථාපනය කිරීමේ නීති ලියා තබමු (බලන්න. ):
nano /etc/postfix/generic
#####################
root asterisk@lucky.ru
root@localhost asterisk@lucky.ru
root@localhost.localdomain asterisk@lucky.ru
root@freepbx asterisk@lucky.ru
root@freepbx.localdomain asterisk@lucky.ru
root@asterisk asterisk@lucky.ru
root@asterisk.localdomain asterisk@lucky.ru
asterisk asterisk@lucky.ru
asterisk@localhost asterisk@lucky.ru
asterisk@localhost.localdomain asterisk@lucky.ru
asterisk@freepbx asterisk@lucky.ru
asterisk@freepbx.localdomain asterisk@lucky.ru
asterisk@asterisk asterisk@lucky.ru
asterisk@asterisk.localdomain asterisk@lucky.ru
root@localdomain.localdomain asterisk@lucky.ru
#####################ආරම්භක පිටතට යන ලිපිනය "/etc/hosts" සහ "/etc/hostname" හි අන්තර්ගතය මෙන්ම ලිපිය යවන පරිශීලකයාගේ නම මත රඳා පවතී. එනම්, අපි smtp සේවාලාභියෙකු භාවිතා කර asterisk@lucky.ru වෙතින් ලිපි යවන බව නොතකා, postfix තවමත් මුලින් යවන්නාගේ ලිපිනයට "තමන්ගේම දෙයක්" ආදේශ කරනු ඇති අතර, මෙම වින්යාස ගොනුවේ ඇති නීති භාවිතයෙන් මෙය නිවැරදි කළ යුතුය.
මෙන්න මගේ “/etc/hosts” ගොනුවේ අන්තර්ගතය:
cat /etc/hosts
#####################
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 asterisk.localdomain
127.0.0.1 localhost.localdomain localhost
::1 asterisk localhost localhost6
#####################සේවාදායකයට යම් ආකාරයක වසමක් තිබීම වැදගත්ය (තිතට පසුව ඇති අගය), තැපැල් උපයෝගීතාව "/etc/hosts" හි වසම් නාමය සඳහා "සොයනු" නිසා සහ එය වහාම "සොයා නොගන්නේ නම්", එය තවත් විනාඩි කිහිපයක් එය දිගටම කරගෙන යන අතර පසුව පමණක් ඔහු ලිපිය යවනු ඇත. එනම්, වසම ලියාපදිංචි කර නොමැති නම්, එම ලිපිය මිනිත්තු කිහිපයක ප්රමාදයකින් යවනු ලැබේ.
මෙන්න මගේ ගොනුවේ අන්තර්ගතය “/etc/hostname”:
cat /etc/hostname
#####################
asterisk
#####################ඊළඟට, ඔබ විසින් සාදන ලද වින්යාස ගොනු සුචිගත දත්ත සමුදායන් වෙත මාරු කළ යුතුය; මෙය සිදු කිරීම සඳහා, පහත විධානය ක්රියාත්මක කරන්න:
postmap /etc/postfix/generic && postmap /etc/postfix/private/{sasl_passwd,sender_relay}ඊළඟට, අපි බාගත කර සේවාදායකයේ smtp.yandex.ru සහතිකය තැබිය යුතුය; මෙය සිදු කිරීම සඳහා, පහත විධානය ක්රියාත්මක කරන්න:
openssl s_client -starttls smtp -crlf -connect smtp.yandex.ru:25 > /etc/postfix/ca.pemනමුත් තාක්ෂණික තොරතුරු තිරය මත දිස් වූ පසු, විධානය "දිගටම එල්ලා වැටෙනු ඇත." එය නතර කිරීමට Ctrl+C ඔබන්න.
දැන් අපි ප්රතිඵල ගොනුවෙන් සියලුම කසළ අතින් ඉවත් කර සහතිකය පමණක් ඉතිරි කරමු. එය මේ වගේ දෙයක් විය යුතුය:
nano /etc/postfix/ca.pem
#####################
-----BEGIN CERTIFICATE-----
MIIGazCCBVOgAwIBAgIQcUU9mJXW4OUs5Gf0JfLtsjANBgkqhkiG9w0BAQsFADBf
...
nRG0DfdqYIuPGApFORYe
-----END CERTIFICATE-----
#####################අවසානයේ postfix නැවත ආරම්භ කරන්න:
service postfix restartපරීක්ෂණ ලිපියක් යැවීම:
echo "Это тело письма" | mail -s "Это тема" admin@lucky.ruadmin@lucky.ru — ගමනාන්ත ලිපිනය
මෙය posfix සැකසුම සම්පූර්ණ කරයි.
bash පිටපතක් ලිවීම
bash ස්ක්රිප්ට් ගබඩා කිරීම සඳහා නාමාවලියක් සාදන්න (මෙන්න ඔබ එයට වඩාත් කැමති ස්ථානය):
mkdir /home/asterisk/scriptsbash ස්ක්රිප්ට් ගොනුවක් සාදන්න:
touch /home/asterisk/scripts/noanswer.shඅපි ස්ක්රිප්ට් ගොනුවට ක්රියාත්මක කිරීමට අවසර ලබා දෙමු:
chmod +x /home/asterisk/scripts/noanswer.shගොනුවක අයිතිවාසිකම් පිළිබඳ සැකයක් තිබේ නම්, එවිට ඔබට දෝෂහරණය කිරීමේදී ගොනුවට සම්පූර්ණ ප්රවේශය ලබා දිය හැකිය. නමුත් මෙය "ආරක්ෂිත නොවේ".
chmod 777 /home/asterisk/scripts/noanswer.shBash ස්ක්රිප්ට් පෙළ:
nano /home/asterisk/scripts/noanswer.sh
#####################
#!/bin/bash
sleep 7
res_sql="SELECT disposition FROM cdr WHERE uniqueid = '$1'"
answer=`mysql -u freepbxuser -pPassword_freepbxuser -D asteriskcdrdb -B -N -e "$res_sql" | grep -E -v "NO ANSWER|BUSY|FAILED|UNKNOWN" | head -n 1`
error_kod=0
if [ "$answer" != "ANSWERED" ]
then
case $3 in
68800)
address="big_boss@lucky.ru"
subject="по важному вопросу"
;;
63100)
address="debian@lucky.ru"
subject="по вопросам linux debian"
;;
63200)
address="windows@lucky.ru"
subject="по вопросам windows"
;;
63300)
address="freebsd@lucky.ru"
subject="по вопросам freebsd"
;;
63400)
address="ubuntu@lucky.ru"
subject="по вопросам linux ubuntu"
;;
63500)
address="centos@lucky.ru"
subject="по вопросам linux centos"
;;
*)
address="admin@lucky.ru"
error_kod=1
;;
esac
case $error_kod in
0)
echo "Пропущен вызов от абонента $2, звонившего $subject." | mail -s "Пропущен вызов от $2" $address
echo "Пропущен вызов для $address от абонента $2, звонившего $subject. uid=$1" | mail -s "Пропущен вызов от $2" admin@lucky.ru
;;
1)
echo "Пропущен вызов от $2. Очередь неизвестна. uid=$1" | mail -s "Пропущен вызов от $2" admin@lucky.ru
;;
esac
fi
#####################පිටපත පිළිබඳ කෙටි විශ්ලේෂණය:
"නින්ද 7":
මේ මා කලින් ලියූ කාල ප්රමාදයයි. අපට ප්රමාදයක් තත්පර 7කට සකසා ඇත. කෙසේ වෙතත්, මම හිතන්නේ එක් තත්පරයක් ප්රමාණවත්ය.
«res_sql="SELECT disposition FROM cdr WHERE uniqueid = '$1'"»:අපි mysql හි ඇති විමසුම පහසුව සඳහා වෙනම විචල්යයකට ගෙන ගියෙමු.
මීලඟට, අපි mysql හි විමසුමක් සාදා එහි ප්රතිඵලය ප්රතිදානය පෙරහන් කරමු. "පිළිතුරු" හැර, විකල්ප එකක් තිබේ නම් අපි මකා දමමු. “පිළිතුරු” අගයන් කිහිපයක් තිබේ නම්, ඉතිරි කළ යුත්තේ එකක් පමණි. අවසානයේදී, අපට “පිළිතුරු” විචල්යයේ “පිළිතුරු” හෝ “” ලැබෙනු ඇත.
"පිළිතුරු" විචල්යයේ අගය "පිළිතුරු" නොවේ නම්, එය මඟ හැරුණු ඇමතුමකි. පෝලිම් අංකය මත පදනම්ව, සිද්ධි ප්රකාශය භාවිතයෙන් අපි හරියටම විද්යුත් තැපැල් දැනුම්දීම යැවිය යුත්තේ කාටද යන්න සහ මෙම පණිවිඩයේ ලිවිය යුතු දේ (පණිවිඩයේ විචල්ය කොටස) සඳහන් කරන්නෙමු.
ඊළඟට අපි සලකා බලන්නේ පෝලිම තරු ලකුණෙහි සකසා ඇති නමුත් ස්ක්රිප්ට් එකේ විස්තර කර නොමැති අවස්ථාවයි. මෙම අවස්ථාවේදී, admin@lucky.ru වෙත ස්ක්රිප්ට් පෝලිය නොදන්නා බවට ලිපියක් ලැබෙනු ඇත.
පෝලිම විස්තර කර ඇත්නම්, ගමනාන්තයට ලිපියක් යවනු ලබන අතර "uniqueid" යනුවෙන් දැක්වෙන අනුපිටපත් ලිපියක් admin@lucky.ru වෙත යවනු ලැබේ, එවිට අවශ්ය නම් මෙම ඇමතුමේ සිදුවීම් නිරීක්ෂණය කිරීමට හැකි වනු ඇත.
මෙහි පිටපත අවසන් වේ.
mysql වෙත සම්බන්ධ වීමට අපි කල්තියා ඉගෙන ගත් පිවිසුම් සහ මුරපදයක් භාවිතා කළ බව මම සටහන් කරමි. FreePBX හි, mysql හි Asterisk පරිශීලක පිවිසුම සොයා ගැනීමට, පහත විධානය ක්රියාත්මක කරන්න:
cat /etc/amportal.conf | grep AMPDBUSERmysql හි Asterisk පරිශීලක මුරපදය සොයා ගැනීමට, පහත විධානය ක්රියාත්මක කරන්න:
cat /etc/amportal.conf | grep AMPDBPASSතරු ලකුණ පිහිටුවීම
අපි FreePBX භාවිතා කරමු. FreePBX හි විවිධ ආකාරයේ වින්යාස ගොනු ඇත (බලන්න ), ඒවායින් සමහරක් නැවත පණගැන්වීමේදී FreePBX විසින් නැවත ලියනු ලබන අතර සමහර ඒවා පරිශීලකයා සඳහා විශේෂයෙන් නිර්මාණය කර ඇති බැවින් (ඒවා අභිරුචි ලෙස හැඳින්වේ) නැවත ලියනු නොලැබේ.
එය අභිරුචි ආකාරයේ බැවින් අපි “extensions_override_freepbx.conf” වින්යාස ගොනුව සමඟ වැඩ කරන්නෙමු.
පළමුව, "extensions_override_freepbx.conf" ගොනුව "/etc/asterisk/extensions.conf" ගොනුවේ ඇතුළත් කර ඇති බව තහවුරු කර ගනිමු. මෙය සිදු කිරීම සඳහා, පහත විධානය ක්රියාත්මක කරන්න:
cat /etc/asterisk/extensions.conf | grep extensions_override_freepbx.conf
#####################
#include extensions_override_freepbx.conf
#####################“/etc/asterisk/extensions_override_freepbx.conf” ගොනුව සංස්කරණය කර එය පහත පෝරමයට ගෙන එන්න:
nano /etc/asterisk/extensions_override_freepbx.conf
#####################
[ext-queues]
exten => h,1,System(/home/asterisk/scripts/noanswer.sh ${CDR(uniqueid)} ${CALLERID(num)} ${NODEST} &)
exten => h,2,Macro(hangupcall,)
#####################මා කලින් ලියා ඇති පරිදි, අවසානයේ "&" සංකේතය අවශ්ය වේ. අපි සෘජුවම mysql දත්ත ගබඩාවෙන් CDR දත්ත සහිත bash script එකක වැඩ කරන නිසාත්, මෙම දත්ත mysql වෙත ඇතුල් කරන්නේ “exten => h,2,Macro(hangupcall,)” ක්රියාත්මක කිරීමෙන් පසුව නිසාත්, අපට බලා සිටීමට අවශ්ය නැත. bash ස්ක්රිප්ට් සැකසීම අවසන් කිරීමට සහ තරු ලකුණෙහි ඊළඟ පියවර වෙත යන්න. සහ එහි ප්රධාන කොටස ක්රියාත්මක කිරීමට පෙර bash ස්ක්රිප්ට් එකේම කාල ප්රමාදයක් අඩංගු විය යුතුය.
“/etc/asterisk/extensions_override_freepbx.conf” වින්යාස ගොනුවේ වෙනස්කම් බලාත්මක වීමට නම්, ඔබ පහත විධානය සමඟ Asterisk කර්නලය නැවත ආරම්භ කළ යුතුය:
/usr/sbin/asterisk -rx "core restart now"bash පිටපත නිර්මාණය කිරීමෙන් පසුව මෙය කළ යුතුය.
නිගමනය
Asterisk හි "මග හැරුණු ඇමතුම් අල්ලා ගැනීමේ" 1001 වැනි මාර්ගය මෙය විය හැකිය. ඔබ මෙම ගැටළුව විසඳන ආකාරය අදහස් දැක්වීමේදී බෙදා ගන්න. සහ ඔබේ මතය අනුව, වැඩිදියුණු කළ හැකි / ප්රතිනිර්මාණය කළ හැකි / ප්රශස්ත කළ හැකි දේ. නිර්මාණාත්මක අදහස් සඳහා අපි කෘතඥ වනු ඇත.
මූලාශ්රය: www.habr.com
