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/26 11:24]
val [Использование СУБД для хранения CDR]
сервис_asterisk [2025/08/21 16:14] (current)
val [Добавление своих классов]
Line 878: 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 931: 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>​
Line 1567: 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 1831: 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 2247: 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 2288: 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 2585: 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 2761: 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 2849: 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 2857: 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.1753518274.txt.gz · Last modified: 2025/07/26 11:24 by val