Инструменты пользователя

Инструменты сайта


сервис_asterisk

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
сервис_asterisk [2019/07/01 16:20]
val [Настройка RES_PJSIP каналов]
сервис_asterisk [2019/09/24 10:10]
val [Использование AstDB для перенаправление звонков]
Строка 114: Строка 114:
   * [[https://​asterisk-pbx.ru/​wiki/​asterisk/​pjsip|Описание параметров настройки pjsip в Asterisk]]   * [[https://​asterisk-pbx.ru/​wiki/​asterisk/​pjsip|Описание параметров настройки pjsip в Asterisk]]
   * [[http://​voiplab.by/​wiki/​asterisk/​60-novyj-kanalnyj-drajver-chan-pjsip-v-asterisk-13|НОВЫЙ КАНАЛЬНЫЙ ДРАЙВЕР CHAN_PJSIP В ASTERISK 13]]   * [[http://​voiplab.by/​wiki/​asterisk/​60-novyj-kanalnyj-drajver-chan-pjsip-v-asterisk-13|НОВЫЙ КАНАЛЬНЫЙ ДРАЙВЕР CHAN_PJSIP В ASTERISK 13]]
-  * Переменные канала:​ [[https://​asterisk-pbx.ru/wiki/asterisk/func/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]]
  
-=== Настройка транспорта ===+=== Настройка ​PJSIP транспорта ===
 <​code>​ <​code>​
 # cat /​etc/​asterisk/​sip.conf # cat /​etc/​asterisk/​sip.conf
Строка 135: Строка 135:
 </​code>​ </​code>​
  
-=== Настройка точки подключения телефона ===+=== Настройка ​PJSIP точки подключения телефона ===
  
 Базовый вариант Базовый вариант
Строка 153: Строка 153:
 ;​callerid=Ivan I. Ivanov<​401>​ ;​callerid=Ivan I. Ivanov<​401>​
 ;​set_var=MY-USER-ID=user1@corpX.un ;​set_var=MY-USER-ID=user1@corpX.un
 +;​set_var=MY-PSTN-CALLER-ID=8495123456X
 ;​rtp_symmetric=yes ;​rtp_symmetric=yes
 ;​force_rport=yes ;​force_rport=yes
Строка 192: Строка 193:
 </​code>​ </​code>​
  
-=== Настройка точки подключения к VoIP провайдеру ===+=== Настройка ​PJSIP точки подключения к VoIP провайдеру ===
  
 <​code>​ <​code>​
Строка 199: Строка 200:
 ... ...
 [voip1_00000X] [voip1_00000X]
-type=registration+type=endpoint
 transport=udp-transport-1 transport=udp-transport-1
 +context=default
 +disallow=all
 +allow=alaw
 outbound_auth=voip1_00000X outbound_auth=voip1_00000X
-server_uri=sip:​voip1.un +aors=voip1_00000X 
-client_uri=sip:00000X@voip1.un +from_user=00000X 
-;retry_interval=10 +from_domain=voip1.un 
-;expiration=10 +;direct_media=no 
-contact_user=voip1_00000X+;rtp_symmetric=yes 
 +;;;​force_rport=yes 
 +;;;​rewrite_contact=yes
  
 [voip1_00000X] [voip1_00000X]
Строка 220: Строка 226:
  
 [voip1_00000X] [voip1_00000X]
-type=endpoint+type=registration
 transport=udp-transport-1 transport=udp-transport-1
-context=default 
-disallow=all 
-allow=alaw 
 outbound_auth=voip1_00000X outbound_auth=voip1_00000X
-aors=voip1_00000X +server_uri=sip:​voip1.un 
-from_user=00000X +client_uri=sip:00000X@voip1.un 
-from_domain=voip1.un +;;;​retry_interval=10 
-;direct_media=no +;;;​expiration=10 
-;rtp_symmetric=yes +contact_user=voip1_00000X
-;force_rport=yes +
-;​rewrite_contact=yes+
  
 [voip1_00000X] [voip1_00000X]
Строка 1295: Строка 1296:
 </​code>​ </​code>​
  
-==== Установка из пакетов ​(Debian 9) ====+==== Установка из пакетов ====
  
 <​code>​ <​code>​
Строка 1321: Строка 1322:
 server# cat asterisk.conf server# cat asterisk.conf
 </​code><​code>​ </​code><​code>​
 +...
 +[options]
 ... ...
 defaultlanguage = ru defaultlanguage = ru
Строка 1417: Строка 1420:
  
   * [[http://​voip.rus.net/​tiki-index.php?​page=Asterisk+ConfBridge|Приложение ConfBridge]]   * [[http://​voip.rus.net/​tiki-index.php?​page=Asterisk+ConfBridge|Приложение ConfBridge]]
 +  * [[https://​asterisk-pbx.ru/​wiki/​asterisk/​app/​originate|Asterisk app: Originate]]
  
 ==== Настройка ==== ==== Настройка ====
Строка 1437: Строка 1441:
 ==== Отладка ==== ==== Отладка ====
 <​code>​ <​code>​
-server# asterisk -x "​confbridge list 1"+server# asterisk -x "​confbridge list 601"
 ... ...
 </​code>​ </​code>​
Строка 1451: Строка 1455:
    
 <​code>​ <​code>​
-# asterisk -x "​channel originate SIP/402 extension ​399@default"​+# asterisk -x "​channel originate SIP/403 extension ​301@default"​
  
 ; сначала вызов телефона оператора,​ затем вызов абонента ; сначала вызов телефона оператора,​ затем вызов абонента
-server*CLI>​ channel originate SIP/402 extension 89161234567@default+server*CLI>​ channel originate SIP/403 extension 89161234567@default
  
 ; сначала вызов абонента,​ затем телефона оператора ​ ; сначала вызов абонента,​ затем телефона оператора ​
-server*CLI>​ channel originate SIP/​voip1_00000X/​89161234567 extension ​402@default+server*CLI>​ channel originate SIP/​voip1_00000X/​89161234567 extension ​403@default
  
 ; сначала вызов обработчика входящих вызовов (секретарь,​ IVR, Queue), затем вызов абонента ; сначала вызов обработчика входящих вызовов (секретарь,​ IVR, Queue), затем вызов абонента
Строка 1573: Строка 1577:
 ==== Реализация с использованием AEL ==== ==== Реализация с использованием AEL ====
  
-[[http://​voip.rus.net/​tiki-index.php?​page=Asterisk+AEL]]+  * [[http://​voip.rus.net/​tiki-index.php?​page=Asterisk+AEL|The Asterisk Extension Language (Язык Расширения Астериска)]]
  
 <​code>​ <​code>​
Строка 1787: Строка 1791:
 </​code>​ </​code>​
  
-==== Связь номеров и учетных записей ====+==== Использование AstDB для связи номеров и учетных записей ====
 <​code>​ <​code>​
 server*CLI>​ database put num2login 401 user1 server*CLI>​ database put num2login 401 user1
Строка 1807: Строка 1811:
 </​code>​ </​code>​
  
-==== Перенаправление звонков ====+==== Использование AstDB для перенаправления вызовов ====
  
 <​code>​ <​code>​
Строка 1833: Строка 1837:
 exten => _4XX,​1,​Dial(SIP/​${EXTEN},​10,​t) exten => _4XX,​1,​Dial(SIP/​${EXTEN},​10,​t)
  
-exten => _4XX,​n,​Set(REDIRNUM=${DB(redirect/​${EXTEN})}) +exten => _4XX,n,Set(MY-REDIRNUM=${DB(redirect/​${EXTEN})}) 
-exten => _4XX,​n,​GotoIf($[${LEN(${REDIRNUM})} > 0]?​CALLMOBILE)+exten => _4XX,​n,​GotoIf($[${LEN(${MY-REDIRNUM})} > 0]?​CALLMOBILE)
 ... ...
-exten => _4XX,​n(CALLMOBILE),​Goto(default,​${REDIRNUM},​1)+exten => _4XX,​n(CALLMOBILE),​Goto(default,​${MY-REDIRNUM},​1)
 ... ...
 [setredirect] [setredirect]
Строка 1853: Строка 1857:
  
   * [[http://​asterisk.ru/​knowledgebase/​Asterisk+func+sippeer|Функция SIPPEER()]]   * [[http://​asterisk.ru/​knowledgebase/​Asterisk+func+sippeer|Функция SIPPEER()]]
 +  * curcalls работает только если для канала установлено ограничение на число одновременных вызовов (call-limit)
  
 <​code>​ <​code>​
Строка 1862: Строка 1867:
 exten => _4XX,​n,​Dial(SIP/​${EXTEN},,​tTm(${MY-CLASS-MOH})) exten => _4XX,​n,​Dial(SIP/​${EXTEN},,​tTm(${MY-CLASS-MOH}))
 </​code>​ </​code>​
- 
 ==== С использованием GROUP_COUNT ==== ==== С использованием GROUP_COUNT ====
  
Строка 1884: Строка 1888:
 [default] [default]
  
-exten => _X.,​1,​Goto(pbx-invalid,​s,​1)+exten => _X!,​1,​Goto(pbx-invalid,​s,​1)
 ... ...
 exten => _4XX,​1,​Dial(SIP/​${EXTEN}) exten => _4XX,​1,​Dial(SIP/​${EXTEN})
Строка 1942: Строка 1946:
 [general] [general]
  
-[01]+[801]
 fullname=Ivan Ivanovitch Ivanov fullname=Ivan Ivanovitch Ivanov
-[02]+[802]
 fullname=Petr Petrovitch Petrov fullname=Petr Petrovitch Petrov
-[03]+[803]
 fullname=Your name fullname=Your name
 </​code><​code>​ </​code><​code>​
Строка 1953: Строка 1957:
 [default] [default]
 ... ...
-exten => _6XX,​1,​AgentLogin(${EXTEN:1})+exten => _8XX,​1,​AgentLogin(${EXTEN})
 ... ...
 [agents] [agents]
-exten => _XX,​1,​AgentRequest(${EXTEN})+exten => _8XX,​1,​AgentRequest(${EXTEN})
      same => n,Hangup()      same => n,Hangup()
 </​code>​ </​code>​
Строка 1969: Строка 1973:
 [queue1] [queue1]
 strategy=rrmemory strategy=rrmemory
-member => Local/01@agents +member => Local/801@agents 
-member => Local/02@agents +member => Local/802@agents 
-member => Local/03@agents+member => Local/803@agents
 </​code><​code>​ </​code><​code>​
 server*CLI>​ queue show queue1 server*CLI>​ queue show queue1
Строка 2242: Строка 2246:
 exten => 306,​n,​Hangup() exten => 306,​n,​Hangup()
 ... ...
-exten => _4XX,​1,​Set(MY-CALLED-USER-ID=${SIPPEER(${EXTEN},​chanvar[MY-USER-ID])})+ 
 +;exten => _4XX,​1,​Set(MY-CALLED-USER-ID=${SIPPEER(${EXTEN},​chanvar[MY-USER-ID])}) 
 +;exten => _4XX,​1,​Set(MY-CALLED-USER-ID=${PJSIP_ENDPOINT(${EXTEN},​MY-USER-ID)})
  
 exten => _4XX,​n,​Set(MY-CALLED-USER-STATUS=${JABBER_STATUS(aster,​${MY-CALLED-USER-ID}/​Spark)}) exten => _4XX,​n,​Set(MY-CALLED-USER-STATUS=${JABBER_STATUS(aster,​${MY-CALLED-USER-ID}/​Spark)})
  
-exten => _4XX,​n,​GotoIf($[${MY-CALLED-USER-STATUS} > 2]?end)+exten => _4XX,​n,​GotoIf($[${MY-CALLED-USER-STATUS} > 2]?busy)
  
 exten => _4XX,​n,​JabberSend(aster,​${MY-CALLED-USER-ID},​Вам звонит ${CALLERID(all)}) exten => _4XX,​n,​JabberSend(aster,​${MY-CALLED-USER-ID},​Вам звонит ${CALLERID(all)})
-exten => _4XX,​n,​Dial(SIP/​${EXTEN}) 
  
-exten => _4XX,n(end),Hangup()+;exten => _4XX,n,Dial(SIP/​${EXTEN}) 
 +;exten => _4XX,​n,​Dial(PJSIP/​${EXTEN}) 
 +exten => _4XX,​n,​Hangup() 
 + 
 +exten => _4XX,​n(busy),​Playback(tt-allbusy) 
 +exten => _4XX,n,Hangup()
 ... ...
 </​code>​ </​code>​
Строка 2366: Строка 2376:
         echo "​endpoint/​context=default"​         echo "​endpoint/​context=default"​
         echo "​endpoint/​set_var=MY-USER-ID=$mail"​         echo "​endpoint/​set_var=MY-USER-ID=$mail"​
-        echo "​callerid=${name}<​${exten}>"​+        echo "endpoint/callerid=${name}<​${exten}>"​
         echo "​aor/​max_contacts=1"​         echo "​aor/​max_contacts=1"​
         echo "​aor/​remove_existing=yes"​         echo "​aor/​remove_existing=yes"​
сервис_asterisk.txt · Последние изменения: 2019/11/18 15:38 — val