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
Last revision Both sides next revision
сервис_asterisk [2021/09/15 13:47]
val [Настройка RES_PJSIP каналов]
сервис_asterisk [2022/04/17 19:10]
val [Автоматизация распределения вызовов ACD]
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
  
-;​[403](office) +[internet](!) 
-;secret=tpassword403+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) 
 +secret=tpassword403
  
-;[404](office) +[404](office) 
-;secret=tpassword404+secret=tpassword404
 ... ...
 </​code>​ </​code>​
Line 131: Line 146:
 protocol=udp protocol=udp
 bind=0.0.0.0:​5060 bind=0.0.0.0:​5060
-;​local_net=192.168.X.0/​255.255.255.0 
-;​external_media_address=172.16.1.X 
-;​external_signaling_address=172.16.1.X 
 </​code>​ </​code>​
  
Line 200: Line 212:
 [corp] [corp]
 type=endpoint type=endpoint
-transport=udp-transport-2+transport=udp-transport-1
 context=default context=default
 disallow=all disallow=all
Line 227: Line 239:
 </​code><​code>​ </​code><​code>​
 ... ...
-; voip1.un и server.corp.un одна и та же система+; voip1.un и server.corp.un ​(курс CGP) одна и та же система
 ; приходится подключаться к ней с разных портов :) ; приходится подключаться к ней с разных портов :)
  
Line 234: Line 246:
 protocol=udp protocol=udp
 bind=0.0.0.0:​5062 bind=0.0.0.0:​5062
 +;​local_net=192.168.1.0/​255.255.255.0
 +;​local_net=192.168.X.0/​255.255.255.0
 +;​external_media_address=172.16.1.X
 +;​external_signaling_address=172.16.1.X
  
 [voip1_00000X] [voip1_00000X]
Line 389: Line 405:
  
 ==== TimeBased контексты ==== ==== TimeBased контексты ====
 +
 +  * [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Contexts%2C+Extensions%2C+and+Priorities#​Contexts,​Extensions,​andPriorities-Dialplansearchorder|Dialplan search order]]
  
   * [[https://​www.voip-info.org/​asterisk-tips-openhours/​|How to include contexts based on time and date]]   * [[https://​www.voip-info.org/​asterisk-tips-openhours/​|How to include contexts based on time and date]]
Line 653: Line 671:
  
 server*CLI>​ channel request hangup SIP/<​TAB>​ server*CLI>​ channel request hangup SIP/<​TAB>​
 +
 +# watch -d "​asterisk -x 'cdr show active'"​
  
 # curl -v -X GET "​http://​localhost:​8088/​ari/​channels?​api_key=asterisk:​asterisk"​ # curl -v -X GET "​http://​localhost:​8088/​ari/​channels?​api_key=asterisk:​asterisk"​
Line 1589: Line 1609:
 exten => voip1_00000X,​1,​Dial(SIP/​401,​10,​t) exten => voip1_00000X,​1,​Dial(SIP/​401,​10,​t)
 exten => voip1_00000X,​n,​Dial(SIP/​401&​SIP/​402&​SIP/​403,,​t) exten => voip1_00000X,​n,​Dial(SIP/​401&​SIP/​402&​SIP/​403,,​t)
- 
-;​Перехват вызова 
-;exten => voip1_00000X,​1,​Dial(SIP/​401,,​t) 
 </​code><​code>​ </​code><​code>​
 server*CLI>​ core reload server*CLI>​ core reload
Line 1643: Line 1660:
 </​code>​ </​code>​
 ==== Перехват вызова ==== ==== Перехват вызова ====
 +
 +  * [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Call+Pickup|Call Pickup]]
  
 <​code>​ <​code>​
Line 1651: Line 1670:
 callgroup=1 callgroup=1
 pickupgroup=1 pickupgroup=1
 +;​namedcallgroup=gr1,​gr2,​gr3
 +;​namedpickupgroup=gr2,​gr3,​gr4
 ... ...
 [403] [403]
Line 1662: Line 1683:
 ... ...
 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 1762: Line 1791:
 ... ...
  
-;For IMAP/SMTP+;;;For IMAP/SMTP
 ;​charset=UTF-8 ;​charset=UTF-8
 ;​locale=ru_RU.UTF-8 ;​locale=ru_RU.UTF-8
Line 1771: Line 1800:
 ... ...
  
-;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
  
-;For SMTP+;;;For SMTP
 ;debian# apt install postfix mailutils ;debian# apt install postfix mailutils
  
Line 1886: Line 1915:
 server*CLI>​ channel originate PJSIP/​89161234567@voip1_00000X extension voip1_00000X@default server*CLI>​ channel originate PJSIP/​89161234567@voip1_00000X extension voip1_00000X@default
  
-; сначала вызов обработчика (например - все телефоны в офисе),​ затем вызов абонента+; сначала вызов обработчика (например - все телефоны в офисе ​или оператор/​агент из членов очереди), затем вызов абонента
 server*CLI>​ channel originate Local/​voip1_00000X@default extension 89161234567@default server*CLI>​ channel originate Local/​voip1_00000X@default extension 89161234567@default
-server*CLI>​ channel originate Local/​601@default extension 89161234567@default 
 </​code><​code>​ </​code><​code>​
 # cat /​usr/​share/​originate_cli.sh # cat /​usr/​share/​originate_cli.sh
Line 1895: Line 1923:
  
 asterisk -x "​channel originate SIP/$1 extension $2@default"​ asterisk -x "​channel originate SIP/$1 extension $2@default"​
 +</​code><​code>​
 +# /​usr/​share/​originate_cli.sh 403 601
 </​code>​ </​code>​
 +
 ==== С использованием Call файлов ==== ==== С использованием Call файлов ====
  
Line 1902: Line 1933:
  
 <​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# ​cp call.txt /​var/​spool/​asterisk/​outgoing/​
-</​code><​code>​ +
-Channel: sip/402 +
-Extension: 601 +
-Context: default +
-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 2003: Line 2020:
  
 exten => _X,​1,​Goto(default,​40${EXTEN},​1) exten => _X,​1,​Goto(default,​40${EXTEN},​1)
 +
 exten => _4XX,​1,​Goto(default,​${EXTEN},​1) exten => _4XX,​1,​Goto(default,​${EXTEN},​1)
  
Line 2213: Line 2231:
 ;exten => 326,​1,​Answer() ;exten => 326,​1,​Answer()
 ;exten => 326,​n,​Wait(3) ;exten => 326,​n,​Wait(3)
 +;exten => 326,​n,​Playback(/​tmp/​zabbix)
 +;exten => 326,​n,​Playback(/​tmp/​zabbix)
 ;exten => 326,​n,​Playback(/​tmp/​zabbix) ;exten => 326,​n,​Playback(/​tmp/​zabbix)
 ;exten => 326,​n,​Hangup() ;exten => 326,​n,​Hangup()
Line 2335: Line 2355:
  
   * [[http://​asterisk.ru/​knowledgebase/​Asterisk+func+sippeer|Функция SIPPEER()]]   * [[http://​asterisk.ru/​knowledgebase/​Asterisk+func+sippeer|Функция SIPPEER()]]
-  * curcalls работает только если для канала установлено ограничение на число одновременных вызовов (call-limit)+  * !!! curcalls работает только если для канала установлено ограничение на число одновременных вызовов (call-limit)
  
 <​code>​ <​code>​
Line 2406: Line 2426:
  
 [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 2459: Line 2484:
 strategy = rrmemory strategy = rrmemory
 musicclass = default musicclass = default
-timeout=10 
  
 announce = queue-markq announce = queue-markq
Line 2469: Line 2493:
 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 2497: Line 2517:
 ... ...
 </​code>​ </​code>​
-==== Приложение SHELL ====+==== Функция SHELL ====
  
   * !!! Название функции только ЗАГЛАВНЫМИ буквами   * !!! Название функции только ЗАГЛАВНЫМИ буквами
Line 2792: Line 2812:
 exten => _4XX,​n,​Hangup() exten => _4XX,​n,​Hangup()
  
-exten => _4XX,​n(busy),​Playback(tt-allbusy)+ 
 +exten => _4XX,​n(busy),​JabberSend(aster,​${MY-CALLED-USER-ID},​Вам звонил ${CALLERID(all)}) 
 +exten => _4XX,n,​Playback(tt-allbusy)
 exten => _4XX,​n,​Hangup() exten => _4XX,​n,​Hangup()
 ... ...
Line 3113: Line 3135:
 [402] [402]
 ;​secret=tpassword402 ;​secret=tpassword402
-md5secret=29c91aa064cf462f5146b7ee81e7ba49+md5secret=a77b8ed36b4be2c14c2d7e4dfad34b46
 ... ...
 </​code>​ </​code>​
сервис_asterisk.txt · Last modified: 2022/04/18 15:48 by val