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:37] val [Голосовая почта] |
сервис_asterisk [2023/12/02 08:15] (current) val [Установка] |
||
---|---|---|---|
Line 8: | Line 8: | ||
===== Установка ===== | ===== Установка ===== | ||
+ | * [[https://community.asterisk.org/t/install-asterisk-via-apt-or-from-source/99713|Install Asterisk via apt or from source?]] | ||
==== Debian/Ubuntu ==== | ==== Debian/Ubuntu ==== | ||
<code> | <code> | ||
Line 38: | Line 39: | ||
</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 46: | ||
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 74: | ||
;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 93: | ||
==== Использование шаблонов в именах 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 359: | ||
</code><code> | </code><code> | ||
[general] | [general] | ||
+ | ... | ||
+ | disallow=all | ||
+ | allow=alaw | ||
... | ... | ||
allow=h263 | allow=h263 | ||
Line 353: | Line 371: | ||
==== Отладка работы Asterisk ==== | ==== Отладка работы Asterisk ==== | ||
+ | |||
+ | * [[https://community.asterisk.org/t/help-new-installation-full-of-errors/46614|HELP - New Installation Full of Errors]] | ||
=== Сервисные сообщения === | === Сервисные сообщения === | ||
Line 824: | Line 844: | ||
<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 1612: | ||
[general] | [general] | ||
... | ... | ||
- | ;featuredigittimeout = 1000 | + | featuredigittimeout = 3000 |
... | ... | ||
[featuremap] | [featuremap] | ||
Line 1668: | Line 1702: | ||
... | ... | ||
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 1728: | ||
include => parkedcalls | include => parkedcalls | ||
+ | ... | ||
+ | exten => _8XXXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN},,T) | ||
+ | ... | ||
+ | exten => voip1_00000X,1,Dial(SIP/401,,t) | ||
... | ... | ||
</code> | </code> | ||
Line 1918: | Line 1948: | ||
<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 1977: | ||
# /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 2050: | ||
;[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 2282: | ||
;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 2447: | ||
[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 2505: | ||
strategy = rrmemory | strategy = rrmemory | ||
musicclass = default | musicclass = default | ||
- | timeout=10 | ||
announce = queue-markq | announce = queue-markq | ||
Line 2495: | Line 2514: | ||
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 2538: | ||
... | ... | ||
</code> | </code> | ||
- | ==== Приложение SHELL ==== | + | ==== Функция SHELL ==== |
* !!! Название функции только ЗАГЛАВНЫМИ буквами | * !!! Название функции только ЗАГЛАВНЫМИ буквами | ||
Line 3128: | Line 3143: | ||
==== Использование хешей паролей для каналов типа 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> |