User Tools

Site Tools


сервис_asterisk

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
сервис_asterisk [2025/07/24 12:25]
val [Настройка RES_PJSIP каналов]
сервис_asterisk [2025/08/21 16:14] (current)
val [Добавление своих классов]
Line 134: Line 134:
   * Переменные канала:​ [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Asterisk+13+Function_PJSIP_ENDPOINT|function '​PJSIP_ENDPOINT'​]]   * Переменные канала:​ [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Asterisk+13+Function_PJSIP_ENDPOINT|function '​PJSIP_ENDPOINT'​]]
   * [[https://​zadarma.com/​ru/​support/​instructions/​asteriskpjsip/​|Пример настройки подключения Asterisk PJSIP к Zadarma]]   * [[https://​zadarma.com/​ru/​support/​instructions/​asteriskpjsip/​|Пример настройки подключения Asterisk PJSIP к Zadarma]]
 +  * [[https://​voxlink.ru/​kb/​asterisk-configuration/​opisanie-parametrov-konfiguracii-pjsip-v-asterisk-s-primerami/​|Описание параметров конфигурации PJSIP в Asterisk с примерами]]
  
 === Настройка PJSIP транспорта === === Настройка PJSIP транспорта ===
Line 152: Line 153:
 === Настройка PJSIP точки подключения телефона === === Настройка PJSIP точки подключения телефона ===
  
-Базовый вариант+== Базовый вариант ​==
  
 <​code>​ <​code>​
Line 178: Line 179:
 max_contacts=1 max_contacts=1
 remove_existing=yes remove_existing=yes
 +mailboxes=401@corpX
 ;​qualify_frequency=60 ;​qualify_frequency=60
-;​mailboxes=401@corpX ​   ;not work+
  
 [401] [401]
Line 189: Line 191:
 </​code>​ </​code>​
  
-Wizard вариант+== Вариант с шаблонами == 
 +<​code>​ 
 +# cat /​etc/​asterisk/​pjsip.conf 
 +</​code><​code>​ 
 +... 
 +[endpoint-office](!) 
 +type=endpoint 
 +transport=udp-transport-1 
 +context=default 
 +disallow=all 
 +allow=alaw 
 +[aor-reg](!) 
 +type=aor 
 +max_contacts=1 
 +remove_existing=yes 
 +[auth-userpass](!) 
 +type = auth 
 +auth_type = userpass 
 + 
 +[401](endpoint-office) 
 +aors=401 
 +auth=401 
 +callerid=Иван Иванов<​401>​ 
 +[401](aor-reg) 
 +mailboxes=401@corp13 
 +[401](auth-userpass) 
 +password=tpassword401 
 +username=401 
 + 
 +[403](endpoint-office) 
 +aors=403 
 +auth=403 
 +callerid=Вячеслав Лохтуров<​403>​ 
 +[403](aor-reg) 
 +mailboxes=403@corp13 
 +[403](auth-userpass) 
 +password=tpassword403 
 +username=403 
 +... 
 +</​code>​ 
 + 
 +== Wizard вариант ​==
  
 !!! Изменение отдельных параметров требует либо удаление/​reload/​добавление/​reload всего описания точки подключения,​ либо перезапуска asterisk !!! Изменение отдельных параметров требует либо удаление/​reload/​добавление/​reload всего описания точки подключения,​ либо перезапуска asterisk
Line 835: Line 878:
 exten => _4XX,​1,​GoSub(sub-monitor,​s,​1) exten => _4XX,​1,​GoSub(sub-monitor,​s,​1)
 exten => _4XX,​n,​Dial(SIP/​${EXTEN}) exten => _4XX,​n,​Dial(SIP/​${EXTEN})
 +...
 +exten => _8XXXXXXXXXX,​1,​GoSub(sub-monitor,​s,​1)
 +exten => _8XXXXXXXXXX,​n,​Dial(...)
 ... ...
 ;​[macro-monitor] ;​[macro-monitor]
Line 888: Line 934:
  
 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>​
 ===== Asterisk realtime ===== ===== Asterisk realtime =====
Line 1522: Line 1569:
 dsn=asterisk dsn=asterisk
 readsql=SELECT dstchannel FROM cdr WHERE src='​${ARG1}'​ AND disposition='​ANSWERED'​ ORDER BY calldate DESC LIMIT 1; readsql=SELECT dstchannel FROM cdr WHERE src='​${ARG1}'​ AND disposition='​ANSWERED'​ ORDER BY calldate DESC LIMIT 1;
 +
 +
 </​code><​code>​ </​code><​code>​
 # cat /​etc/​asterisk/​extensions.conf # cat /​etc/​asterisk/​extensions.conf
Line 1786: Line 1835:
 ;;;debian# service asterisk restart ;;;debian# service asterisk restart
 ;​imapserver=server.corpX.un ;​imapserver=server.corpX.un
 +;​imapserver=localhost
 +;​imapflags=notls
 ;​imapfolder=INBOX ;​imapfolder=INBOX
 +
  
 ;;;For SMTP ;;;For SMTP
Line 2202: Line 2254:
 </​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 2243: Line 2296:
 ;exten => _4XX,​n,​Set(MY-CALLED-USER-NAME=${ODBC_SIPFRIENDS_BY_NAME(${EXTEN})}) ;exten => _4XX,​n,​Set(MY-CALLED-USER-NAME=${ODBC_SIPFRIENDS_BY_NAME(${EXTEN})})
 exten => _4XX,​n,​Set(MY-CALLED-USER-NAME=${SIPPEER(${EXTEN},​callerid_name)}) exten => _4XX,​n,​Set(MY-CALLED-USER-NAME=${SIPPEER(${EXTEN},​callerid_name)})
-;exten => _4XX,​n,​Set(MY-CALLED-USER-NAME=${PJSIP_ENDPOINT(${EXTEN},​callerid)})+;exten => _4XX,​n,​Set(MY-CALLED-USER-NAME=${CUT(PJSIP_ENDPOINT(${EXTEN},​callerid),\",2)})
  
 exten => _4XX,​n,​Festival(${MY-CALLED-USER-NAME} не может ответить) exten => _4XX,​n,​Festival(${MY-CALLED-USER-NAME} не может ответить)
Line 2540: Line 2593:
 # cat /​var/​www/​html/​asterisk/​addrbook.txt # cat /​var/​www/​html/​asterisk/​addrbook.txt
 </​code><​code>​ </​code><​code>​
-Вячеслав Лохтуров<​+74951234569+Вячеслав Лохтуров<​84951234569
-Вячеслав Лохтуров<​+74951234560+Вячеслав Лохтуров<​84951234560
-Ваше ФИО<+7ВАШМОБИЛЬНЫЙ>​+Ваше ФИО<8ВАШМОБИЛЬНЫЙ>​
 </​code><​code>​ </​code><​code>​
 # cat /​usr/​local/​bin/​get-customer-callerid-all.sh # cat /​usr/​local/​bin/​get-customer-callerid-all.sh
Line 2716: Line 2769:
   * [[http://​www.jcgonzalez.com/​test-asterisk-ami-telnet|Log in, Log out from Asterisk AMI with Telnet]]   * [[http://​www.jcgonzalez.com/​test-asterisk-ami-telnet|Log in, Log out from Asterisk AMI with Telnet]]
   * [[http://​habrahabr.ru/​company/​centosadmin/​blog/​161521/​|Asterisk:​ обратный вызов с использованием AMI и PHP]]   * [[http://​habrahabr.ru/​company/​centosadmin/​blog/​161521/​|Asterisk:​ обратный вызов с использованием AMI и PHP]]
 +  * [[https://​habr.com/​ru/​articles/​264819/​|Asterisk Manager Interface в диалплане]]
   * [[https://​voxlink.ru/​kb/​book/​interfejs-upravlenija-asterisk-ami/​]]   * [[https://​voxlink.ru/​kb/​book/​interfejs-upravlenija-asterisk-ami/​]]
   * Программирование диалогов expect [[Программирование диалогов expect#​Asterisk AMI]]   * Программирование диалогов expect [[Программирование диалогов expect#​Asterisk AMI]]
Line 2804: Line 2858:
   * [[https://​stackoverflow.com/​questions/​28064526/​how-to-get-all-dialer-events-from-asterisk-rest-api-ari|How to get all dialer events from Asterisk REST API (ARI)?]]   * [[https://​stackoverflow.com/​questions/​28064526/​how-to-get-all-dialer-events-from-asterisk-rest-api-ari|How to get all dialer events from Asterisk REST API (ARI)?]]
  
 +  * 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 2812: Line 2865:
  
 # wscat -c "​ws://​localhost:​8088/​ari/​events?​api_key=asterisk:​asterisk&​app=my-first-app" ​ # wscat -c "​ws://​localhost:​8088/​ari/​events?​api_key=asterisk:​asterisk&​app=my-first-app" ​
 +</​code>​
 +
 +  * python
 +<​code>​
 +# apt install python3-websocket
 +
 +# python3
 +</​code><​code>​
 +import websocket
 +def on_message(wsapp,​ message):
 +    print(message)
 +
 +wsapp = websocket.WebSocketApp("​ws://​localhost:​8088/​ari/​events?​api_key=asterisk:​asterisk&​app=my-first-app",​ on_message=on_message)
 +wsapp.run_forever()
 +
 +
 </​code><​code>​ </​code><​code>​
 *CLI> ari show apps *CLI> ari show apps
сервис_asterisk.1753349147.txt.gz · Last modified: 2025/07/24 12:25 by val