This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
сервис_asterisk [2025/08/06 06:26] val [Asterisk ARI] |
сервис_asterisk [2026/09/29 13:59] (current) val [Голосовая почта] |
||
|---|---|---|---|
| Line 302: | Line 302: | ||
| ; voip1.un и server.corp.un (курс CGP) одна и та же система | ; voip1.un и server.corp.un (курс CGP) одна и та же система | ||
| ; приходится подключаться к ней с разных портов :) | ; приходится подключаться к ней с разных портов :) | ||
| + | ; !!! Может не работать из-за фаервола комплекса, использовать udp-transport-1 !!! | ||
| [udp-transport-2] | [udp-transport-2] | ||
| Line 511: | Line 512: | ||
| ==== Шаблон конфигурации для осуществления исходящих вызовов ==== | ==== Шаблон конфигурации для осуществления исходящих вызовов ==== | ||
| + | |||
| + | * Тестирование доступности через [[Утилита netcat]] | ||
| <code> | <code> | ||
| Line 821: | Line 824: | ||
| === Создание базы данных === | === Создание базы данных === | ||
| - | * [[https://wiki.asterisk.org/wiki/display/AST/MySQL+CDR+Backend|MySQL CDR Backend]] | + | * [[https://community.asterisk.org/t/howto-cdr-with-mysql/20505|HOWTO: CDR with MySQL]] |
| <code> | <code> | ||
| Line 927: | Line 930: | ||
| Чтобы запись разговора воспроизводилась прямо на странице CDR Viewer, нужно в файле | Чтобы запись разговора воспроизводилась прямо на странице CDR Viewer, нужно в файле | ||
| /var/www/html/asterisk-cdr-viewer/include/functions.inc.php | /var/www/html/asterisk-cdr-viewer/include/functions.inc.php | ||
| - | заменить строку: | + | заменить строку 145: |
| 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></td>\n"; | ||
| Line 934: | Line 937: | ||
| 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"; | 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> | ||
| Line 1799: | Line 1803: | ||
| ===== Голосовая почта ===== | ===== Голосовая почта ===== | ||
| - | * [[https://community.asterisk.org/t/no-application-voicemail/99717|No application ‘VoiceMail’]] | + | * В ubuntu24 noload для всех, кроме нужного ([[https://community.asterisk.org/t/no-application-voicemail/99717|No application ‘VoiceMail’]]) |
| + | |||
| <code> | <code> | ||
| ubuntu24# cat /etc/asterisk/modules.conf | ubuntu24# cat /etc/asterisk/modules.conf | ||
| Line 1806: | Line 1810: | ||
| ... | ... | ||
| [modules] | [modules] | ||
| + | autoload=yes | ||
| ;noload => app_voicemail.so | ;noload => app_voicemail.so | ||
| Line 1811: | Line 1816: | ||
| noload => app_voicemail_odbc.so | noload => app_voicemail_odbc.so | ||
| noload => res_pjsip_send_to_voicemail.so | noload => res_pjsip_send_to_voicemail.so | ||
| - | ;;;server*CLI> module show like voicemail | + | ... |
| + | </code><code> | ||
| + | server*CLI> module show like voicemail | ||
| ... | ... | ||
| </code><code> | </code><code> | ||
| Line 1830: | Line 1837: | ||
| ;;;For IMAP | ;;;For IMAP | ||
| - | ;;;debian# apt install asterisk-voicemail-imapstorage | + | ;;;debian11# apt install asterisk-voicemail-imapstorage |
| - | ;;;debian# cp /etc/dovecot/private/dovecot.pem /usr/local/share/ca-certificates/dovecot.crt | + | ;;;debian11/ubuntu24# cp /etc/dovecot/private/dovecot.pem /usr/local/share/ca-certificates/dovecot.crt |
| - | ;;;debian# update-ca-certificates | + | ;;;debian11/ubuntu24# update-ca-certificates |
| - | ;;;debian# service asterisk restart | + | ;;;debian11/ubuntu24# service asterisk restart |
| ;imapserver=server.corpX.un | ;imapserver=server.corpX.un | ||
| ;imapserver=localhost | ;imapserver=localhost | ||
| Line 2254: | Line 2261: | ||
| </code><code> | </code><code> | ||
| ... | ... | ||
| - | exten => voip1_00000X,1,Dial(SIP/4NN,,m(incoming)t) | + | exten => voip1_00000X,1,Answer() |
| + | exten => voip1_00000X,n,Dial(SIP/4NN,,m(incoming)t) | ||
| </code> | </code> | ||
| ===== Синтез речи с использованием пакета Festival ===== | ===== Синтез речи с использованием пакета Festival ===== | ||
| Line 2332: | Line 2340: | ||
| === Использование AstDB === | === Использование AstDB === | ||
| - | * [[#Перенаправление звонков]] | + | * [[#Использование AstDB для перенаправления вызовов]] |
| ===== AstDB ===== | ===== AstDB ===== | ||
| Line 2401: | Line 2409: | ||
| </code> | </code> | ||
| + | |||
| + | * Вариант 2 через приложение Read(переменная,[аудиофайл],[макс_цифр],[опции],[попытки],[таймаут]) | ||
| + | <code> | ||
| + | exten => 308,1,Answer() | ||
| + | exten => 308,n,Read(MYPHONENUM,beep,11,,1,30) | ||
| + | exten => 308,n,Set(DB(redirect/${CALLERID(num)})=${MYPHONENUM}) | ||
| + | exten => 308,n,Playback(beep) | ||
| + | exten => 308,n,SayDigits(${MYPHONENUM}) | ||
| + | exten => 308,n,Hangup() | ||
| + | </code> | ||
| ===== Подсчет количества одновременных вызовов абонента ===== | ===== Подсчет количества одновременных вызовов абонента ===== | ||
| Line 2846: | Line 2864: | ||
| === Управление Asterisk через ARI === | === Управление Asterisk через ARI === | ||
| - | |||
| - | * [[http://ari.asterisk.org/|Asterisk REST API Browser]] | ||
| <code> | <code> | ||
| # curl http://localhost:8088/ari/endpoints?api_key=asterisk:asterisk | # curl http://localhost:8088/ari/endpoints?api_key=asterisk:asterisk | ||
| </code> | </code> | ||
| + | |||
| + | * [[Сервис SSH#Local Port Forwarding Tunnel]] | ||
| + | * [[http://ari.asterisk.org/|Asterisk REST API Browser]] | ||
| === Мониторинг Asterisk через ARI === | === Мониторинг Asterisk через ARI === | ||
| Line 2859: | Line 2878: | ||
| * nodejs | * nodejs | ||
| <code> | <code> | ||
| - | debian9# curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash - | ||
| - | |||
| # apt install -y nodejs npm | # apt install -y nodejs npm | ||
| Line 2868: | Line 2885: | ||
| </code> | </code> | ||
| - | * python | + | * [[Язык программирования Python]] |
| <code> | <code> | ||
| # apt install python3-websocket | # apt install python3-websocket | ||
| + | или | ||
| + | $ pip install websocket-client | ||
| # python3 | # python3 | ||
| </code><code> | </code><code> | ||
| + | >>> | ||
| import websocket | import websocket | ||
| - | def on_message(wsapp, message): | + | def handle_message(wsapp, message): |
| print(message) | print(message) | ||
| - | wsapp = websocket.WebSocketApp("ws://localhost:8088/ari/events?api_key=asterisk:asterisk&app=my-first-app", on_message=on_message) | + | wsapp = websocket.WebSocketApp("ws://localhost:8088/ari/events?api_key=asterisk:asterisk&app=my-first-app", on_message=handle_message) |
| wsapp.run_forever() | wsapp.run_forever() | ||
| - | |||
| - | |||
| </code><code> | </code><code> | ||
| *CLI> ari show apps | *CLI> ari show apps | ||
| Line 2909: | Line 2927: | ||
| </code> | </code> | ||
| + | * Python приложение [[Язык программирования Python#ari_rec.py]] | ||
| ==== XMPP ==== | ==== XMPP ==== | ||