This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
сервис_asterisk [2022/04/14 16:36] val [Голосовая почта] |
сервис_asterisk [2023/08/18 14:43] (current) val [Реализация с использованием стандартного языка описания диалплана] |
||
---|---|---|---|
Line 38: | Line 38: | ||
</code><code> | </code><code> | ||
[general] | [general] | ||
- | ;udpbindaddr=0.0.0.0:5061 | + | ;udpbindaddr=0.0.0.0:6050 |
transport=udp | transport=udp | ||
disallow=all | disallow=all | ||
Line 45: | Line 45: | ||
directmedia=no ; for webinar | directmedia=no ; for webinar | ||
nat=force_rport,comedia ; for webinar | nat=force_rport,comedia ; for webinar | ||
+ | qualify=yes ; for webinar | ||
;context=default | ;context=default | ||
Line 72: | Line 73: | ||
;disallow=all | ;disallow=all | ||
;allow=gsm | ;allow=gsm | ||
- | ;canreinvite=no ;1.4 | ||
- | ;directmedia=no ;1.6 | ||
- | ;;;nat=yes | ||
- | ;nat=force_rport,comedia | ||
- | ;qualify=yes | ||
;call-limit=1 | ;call-limit=1 | ||
;deny=0.0.0.0/0.0.0.0 | ;deny=0.0.0.0/0.0.0.0 | ||
;permit=172.16.1.0/255.255.255.0 | ;permit=172.16.1.0/255.255.255.0 | ||
+ | ;directmedia=no | ||
+ | ;nat=force_rport,comedia | ||
+ | ;qualify=yes | ||
;[user2] | ;[user2] | ||
Line 93: | Line 92: | ||
==== Использование шаблонов в именах CHAN_SIP каналов ==== | ==== Использование шаблонов в именах CHAN_SIP каналов ==== | ||
<code> | <code> | ||
- | root@server# cat /etc/asterisk/sip.conf | + | server# cat /etc/asterisk/sip.conf |
</code><code> | </code><code> | ||
... | ... | ||
- | ;[office](!) | + | [office](!) |
- | ;type=friend | + | type=friend |
- | ;host=dynamic | + | host=dynamic |
- | ;deny=0.0.0.0/0.0.0.0 | + | deny=0.0.0.0/0.0.0.0 |
- | ;permit=192.168.X.0/255.255.255.0 | + | permit=192.168.X.0/255.255.255.0 |
+ | |||
+ | [internet](!) | ||
+ | type=friend | ||
+ | host=dynamic | ||
+ | permit=0.0.0.0/0.0.0.0 | ||
+ | nat=force_rport,comedia | ||
+ | qualify=yes | ||
+ | directmedia=no | ||
+ | ;call-limit=1 | ||
+ | |||
+ | [401](office) | ||
+ | secret=tpassword401 | ||
+ | |||
+ | [402](internet) | ||
+ | secret=tpassword402 | ||
- | ;[403](office) | + | [403](office) |
- | ;secret=tpassword403 | + | secret=tpassword403 |
- | ;[404](office) | + | [404](office) |
- | ;secret=tpassword404 | + | secret=tpassword404 |
... | ... | ||
</code> | </code> | ||
Line 344: | Line 358: | ||
</code><code> | </code><code> | ||
[general] | [general] | ||
+ | ... | ||
+ | disallow=all | ||
+ | allow=alaw | ||
... | ... | ||
allow=h263 | allow=h263 | ||
Line 353: | Line 370: | ||
==== Отладка работы Asterisk ==== | ==== Отладка работы Asterisk ==== | ||
+ | |||
+ | * [[https://community.asterisk.org/t/help-new-installation-full-of-errors/46614|HELP - New Installation Full of Errors]] | ||
=== Сервисные сообщения === | === Сервисные сообщения === | ||
Line 824: | Line 843: | ||
<code> | <code> | ||
http://172.16.1.X/asterisk-cdr-viewer/ | http://172.16.1.X/asterisk-cdr-viewer/ | ||
+ | </code> | ||
+ | |||
+ | * Спасибо Комлеву Александру Павловичу! | ||
+ | |||
+ | <code> | ||
+ | Чтобы запись разговора воспроизводилась прямо на странице CDR Viewer, нужно в файле | ||
+ | /var/www/html/asterisk-cdr-viewer/include/functions.inc.php | ||
+ | заменить строку: | ||
+ | |||
+ | echo " <td class=\"record_col\"><a href=\"download.php?audio=$recorded_file.$system_audio_format\" title=\"Listen to call recording\"><img src=\"templates/images/sound.png\" alt=\"Call recording\" /></a></td>\n"; | ||
+ | |||
+ | на такую: | ||
+ | |||
+ | echo " <td class=\"record_col\"><a href=\"download.php?audio=$recorded_file.$system_audio_format\" title=\"Listen to call recording\"><img src=\"templates/images/sound.png\" alt=\"Call recording\" /></a><audio controls><source src=\"download.php?audio=$recorded_file.$system_audio_format\"></audio></td>\n"; | ||
</code> | </code> | ||
===== Asterisk realtime ===== | ===== Asterisk realtime ===== | ||
Line 1578: | Line 1611: | ||
[general] | [general] | ||
... | ... | ||
- | ;featuredigittimeout = 1000 | + | featuredigittimeout = 3000 |
... | ... | ||
[featuremap] | [featuremap] | ||
Line 1668: | Line 1701: | ||
... | ... | ||
pickupexten = *88 | pickupexten = *88 | ||
- | ... | ||
- | </code><code> | ||
- | server# cat /etc/asterisk/extensions.conf | ||
- | </code><code> | ||
- | ... | ||
- | exten => _8XXXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN},,T) | ||
- | ... | ||
- | exten => voip1_00000X,1,Dial(SIP/401,,t) | ||
... | ... | ||
</code><code> | </code><code> | ||
Line 1702: | Line 1727: | ||
include => parkedcalls | include => parkedcalls | ||
+ | ... | ||
+ | exten => _8XXXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN},,T) | ||
+ | ... | ||
+ | exten => voip1_00000X,1,Dial(SIP/401,,t) | ||
... | ... | ||
</code> | </code> | ||
Line 1786: | Line 1815: | ||
;;;For IMAP | ;;;For IMAP | ||
- | ;debian# apt install asterisk-voicemail-imapstorage | + | ;;;debian# apt install asterisk-voicemail-imapstorage |
- | ;debian# cp /etc/dovecot/private/dovecot.pem /usr/local/share/ca-certificates/dovecot.crt | + | ;;;debian# cp /etc/dovecot/private/dovecot.pem /usr/local/share/ca-certificates/dovecot.crt |
- | ;debian# update-ca-certificates | + | ;;;debian# update-ca-certificates |
- | ;debian# service asterisk restart | + | ;;;debian# service asterisk restart |
;imapserver=server.corpX.un | ;imapserver=server.corpX.un | ||
;imapfolder=INBOX | ;imapfolder=INBOX | ||
Line 1918: | Line 1947: | ||
<code> | <code> | ||
- | server# cat 1.call | + | # cat call.txt |
</code><code> | </code><code> | ||
- | Channel: sip/401 | + | Channel: Local/voip1_00000X@default |
- | Extension: 601 | + | Extension: 89161234567 |
Context: default | Context: default | ||
- | CallerId: Conferencia <601> | + | CallerId: CorpX<84992636363> |
</code><code> | </code><code> | ||
- | server# cat 2.call | + | server# grep astspooldir /etc/asterisk/asterisk.conf |
- | </code><code> | + | |
- | Channel: sip/402 | + | server# cp call.txt /var/spool/asterisk/outgoing/ |
- | Extension: 601 | + | |
- | Context: default | + | server# ls /var/spool/asterisk/outgoing_done |
- | CallerId: Conferencia <601> | + | |
- | </code><code> | + | |
- | server# cat 3.call | + | |
- | </code><code> | + | |
- | Channel: sip/403 | + | |
- | Extension: 601 | + | |
- | Context: default | + | |
- | CallerId: Conferencia <601> | + | |
- | </code><code> | + | |
- | server# cp [123].call /var/spool/asterisk/outgoing/ | + | |
</code><code> | </code><code> | ||
# cat /usr/share/originate_call_file.sh | # cat /usr/share/originate_call_file.sh | ||
Line 1957: | Line 1976: | ||
# /usr/share/originate_call_file.sh 402 601 Conferencia | # /usr/share/originate_call_file.sh 402 601 Conferencia | ||
# /usr/share/originate_call_file.sh 401 601 Conferencia | # /usr/share/originate_call_file.sh 401 601 Conferencia | ||
- | </code><code> | ||
- | # cat test_local.call | ||
- | </code><code> | ||
- | Channel: Local/311@default | ||
- | Extension: 89161234567 | ||
- | Context: default | ||
- | CallerId: Echo <311> | ||
</code> | </code> | ||
==== Пример с использованием Asterisk AMI ==== | ==== Пример с использованием Asterisk AMI ==== | ||
Line 2037: | Line 2049: | ||
;[menu2] | ;[menu2] | ||
;exten => s,1,Background(silence/8) | ;exten => s,1,Background(silence/8) | ||
- | ;exten => s,1,WaitExten(8) ; работает только после Answer или Background | + | ;exten => s,n,WaitExten(8) ; работает только после Answer или Background |
;exten => _4XX,1,Goto(default,${EXTEN},1) | ;exten => _4XX,1,Goto(default,${EXTEN},1) | ||
;exten => t,1,Goto(menu,s,1) ; timeout exceeded, работает только с WaitExten | ;exten => t,1,Goto(menu,s,1) ; timeout exceeded, работает только с WaitExten | ||
Line 2269: | Line 2281: | ||
;number=>89162323232,30 | ;number=>89162323232,30 | ||
context=>default | context=>default | ||
+ | ;context=>to-pstn | ||
[401] | [401] | ||
number=>89162323232,30 | number=>89162323232,30 | ||
;number=>89163434345,30 | ;number=>89163434345,30 | ||
context=>default | context=>default | ||
+ | ;context=>to-pstn | ||
</code><code> | </code><code> | ||
server# cat /etc/asterisk/extensions.conf | server# cat /etc/asterisk/extensions.conf | ||
Line 2432: | Line 2446: | ||
[queue1] | [queue1] | ||
- | ;для демонстрации на многоканальном телефоне установить call-limit=1 | + | ;timeout=10 |
- | ;member => SIP/401 ; в вебинаре (занять можно звонком на 311) | + | |
- | ;member => SIP/403 ; в классе | + | ;для демонстрации на многоканальном телефоне установить call-limit=1 |
+ | ;member => SIP/403 ; (можно занять звонком на 311) | ||
+ | |||
+ | ;member => SIP/user1@mailcgp | ||
+ | ;member => SIP/user2@mailcgp | ||
+ | ;member => SIP/user3@mailcgp | ||
</code><code> | </code><code> | ||
sever# cat /etc/asterisk/extensions.conf | sever# cat /etc/asterisk/extensions.conf | ||
Line 2485: | Line 2504: | ||
strategy = rrmemory | strategy = rrmemory | ||
musicclass = default | musicclass = default | ||
- | timeout=10 | ||
announce = queue-markq | announce = queue-markq | ||
Line 2495: | Line 2513: | ||
member => Local/802@agents | member => Local/802@agents | ||
member => Local/803@agents | member => Local/803@agents | ||
- | |||
- | ;member => SIP/user1@mailcgp | ||
- | ;member => SIP/user2@mailcgp | ||
- | ;member => SIP/user3@mailcgp | ||
</code><code> | </code><code> | ||
server*CLI> queue show queue1 | server*CLI> queue show queue1 | ||
Line 2523: | Line 2537: | ||
... | ... | ||
</code> | </code> | ||
- | ==== Приложение SHELL ==== | + | ==== Функция SHELL ==== |
* !!! Название функции только ЗАГЛАВНЫМИ буквами | * !!! Название функции только ЗАГЛАВНЫМИ буквами | ||
Line 3128: | Line 3142: | ||
==== Использование хешей паролей для каналов типа user ==== | ==== Использование хешей паролей для каналов типа user ==== | ||
- | [[http://www.voip-info.org/wiki/view/Asterisk+sip+md5secret]] | + | * [[http://www.voip-info.org/wiki/view/Asterisk+sip+md5secret]] |
+ | * [[http://asterisk-support.ru/forum/topics/3032/|SIP авторизация и MD5]] | ||
<code> | <code> |