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

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


сервис_asterisk

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
сервис_asterisk [2019/06/03 11:08]
val [Asterisk ODBC CDR]
сервис_asterisk [2019/08/22 11:44] (текущий)
val [Отладка]
Строка 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
Строка 132: Строка 133:
 ;​external_media_address=172.16.1.X ;​external_media_address=172.16.1.X
 ;​external_signaling_address=172.16.1.X ;​external_signaling_address=172.16.1.X
 +</​code>​
  
 +=== Настройка PJSIP точки подключения телефона ===
  
 +Базовый вариант
 +
 +<​code>​
 +# cat /​etc/​asterisk/​pjsip.conf
 +</​code><​code>​
 +...
 [401] [401]
 type=endpoint type=endpoint
Строка 142: Строка 151:
 aors=401 aors=401
 auth=401 auth=401
-;​callerid=Ivanov ​I I<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
Строка 159: Строка 169:
 password=tpassword401 password=tpassword401
 username=401 username=401
 +...
 +</​code>​
  
 +Wizard вариант
 +
 +!!! Изменение отдельных параметров требует либо удаление/​reload/​добавление/​reload всего описания точки подключения,​ либо перезапуска asterisk
 +<​code>​
 +# cat /​etc/​asterisk/​pjsip_wizard.conf
 +</​code><​code>​
 +[402]
 +type=wizard
 +accepts_auth=yes
 +accepts_registrations=yes
 +transport=udp-transport-1
 +inbound_auth/​username=402
 +inbound_auth/​password=tpassword402
 +endpoint/​allow=alaw
 +endpoint/​context=default
 +;​endpoint/​set_var=MY-USER-ID=user2@corp13.un
 +;​endpoint/​callerid=Petr P. Petrov<​402>​
 +aor/​max_contacts=1
 +aor/​remove_existing=yes
 +</​code>​
 +
 +=== Настройка PJSIP точки подключения к VoIP провайдеру ===
 +
 +<​code>​
 +# cat /​etc/​asterisk/​pjsip.conf
 +</​code><​code>​
 +...
 [voip1_00000X] [voip1_00000X]
 type=registration type=registration
Строка 166: Строка 205:
 server_uri=sip:​voip1.un server_uri=sip:​voip1.un
 client_uri=sip:​00000X@voip1.un client_uri=sip:​00000X@voip1.un
-;​retry_interval=10 +;;;​retry_interval=10 
-;​expiration=10+;;;​expiration=10
 contact_user=voip1_00000X contact_user=voip1_00000X
  
Строка 193: Строка 232:
 ;​direct_media=no ;​direct_media=no
 ;​rtp_symmetric=yes ;​rtp_symmetric=yes
-;​force_rport=yes +;;;​force_rport=yes 
-;​rewrite_contact=yes+;;;​rewrite_contact=yes
  
 [voip1_00000X] [voip1_00000X]
Строка 219: Строка 258:
 exten => 301,​1,​Answer() exten => 301,​1,​Answer()
 exten => 301,​n,​Playback(hello-world) exten => 301,​n,​Playback(hello-world)
-exten => 301,n,SayDigits(X)+exten => 301,n,SayNumber(X)
 exten => 301,​n,​Hangup() exten => 301,​n,​Hangup()
  
Строка 1257: Строка 1296:
 </​code>​ </​code>​
  
-==== Установка из пакетов ​(Debian 9) ====+==== Установка из пакетов ====
  
 <​code>​ <​code>​
Строка 1379: Строка 1418:
  
   * [[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]]
  
 ==== Настройка ==== ==== Настройка ====
Строка 1399: Строка 1439:
 ==== Отладка ==== ==== Отладка ====
 <​code>​ <​code>​
-server# asterisk -x "​confbridge list 1"+server# asterisk -x "​confbridge list 601"
 ... ...
 </​code>​ </​code>​
Строка 1815: Строка 1855:
  
   * [[http://​asterisk.ru/​knowledgebase/​Asterisk+func+sippeer|Функция SIPPEER()]]   * [[http://​asterisk.ru/​knowledgebase/​Asterisk+func+sippeer|Функция SIPPEER()]]
 +  * curcalls работает только если для канала установлено ограничение на число одновременных вызовов (call-limit)
  
 <​code>​ <​code>​
Строка 1824: Строка 1865:
 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 ====
  
Строка 1846: Строка 1886:
 [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})
Строка 2188: Строка 2228:
 secret=Pa$$w0rd secret=Pa$$w0rd
 port=5222 port=5222
-usetls=no+usetls=yes
 </​code><​code>​ </​code><​code>​
 *CLI> module reload res_xmpp *CLI> module reload res_xmpp
Строка 2204: Строка 2244:
 exten => 306,​n,​Hangup() exten => 306,​n,​Hangup()
 ... ...
-exten => _4XX,​1,​Set(MY-CALLED-USER-ID=${SIPPEER(${EXTEN},​chanvar[MY-USER-ID])}) + 
-exten => _4XX,n,NoOp(MY-CALLED-USER-ID ​is ${MY-CALLED-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,​NoOp(MY-CALLED-USER-STATUS is ${MY-CALLED-USER-STATUS}) 
  
-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>​
Строка 2229: Строка 2273:
  
   * Заполняем атрибут Telephone number и переименовываем пользователя указав Full name на русском языке   * Заполняем атрибут Telephone number и переименовываем пользователя указав Full name на русском языке
 +
 +==== Выгружаем данные из Microsoft AD через LDAP ====
  
 <​code>​ <​code>​
Строка 2239: Строка 2285:
 IFS=' ' IFS=' '
  
-ldapsearch -x -D "​cn=Administrator,​cn=Users,​dc=corp15,​dc=un"​ -w '​Pa$$w0rd'​ -ad.corp15.un -b "​dc=corp15,​dc=un"​ "​(telephoneNumber=4*)"​ cn telephoneNumber mail | perl -p00e '​s/​\r?​\n //g'|+ldapsearch -x -D "​cn=Administrator,​cn=Users,​dc=corp15,​dc=un"​ -w '​Pa$$w0rd'​ -H ldap://ad.corp15.un -b "​dc=corp15,​dc=un"​ "​(telephoneNumber=4*)"​ cn telephoneNumber mail 
 +| perl -p00e '​s/​\r?​\n //g' |
 while read s while read s
 do do
Строка 2256: Строка 2303:
 403 user3@corp15.un Сидор Сидорович Сидоров 403 user3@corp15.un Сидор Сидорович Сидоров
 404 user4@corp15.un Василий Муркович Кошкин 404 user4@corp15.un Василий Муркович Кошкин
-</​code><​code>​+</​code>​ 
 + 
 +==== Добавляем исходные данные для Provisioning ==== 
 + 
 +  * [[Сервис Asterisk#​Provisioning]] 
 + 
 +==== Создаем файл конфигурации CHAN SIP ==== 
 + 
 +<​code>​
 # cat /​root/​create_ast_users_conf.sh # cat /​root/​create_ast_users_conf.sh
 </​code><​code>​ </​code><​code>​
Строка 2276: Строка 2331:
 done done
 </​code>​ </​code>​
- 
-  * [[Сервис Asterisk#​Provisioning]] 
  
 <​code>​ <​code>​
Строка 2298: Строка 2351:
 </​code>​ </​code>​
  
 +==== Создаем файл конфигурации PJSIP ====
 +
 +<​code>​
 +# cat create_ast_pjsip_wizard.sh
 +</​code><​code>​
 +#!/bin/sh
 +
 +IFS=' '
 +
 +cat $1|
 +while read exten mail name
 +do
 +        password=`cat $2 | grep "​^$exten"​ | cut -d' ' -f2`
 +        echo "​[$exten]"​
 +        echo "​type=wizard"​
 +        echo "​accepts_auth=yes"​
 +        echo "​accepts_registrations=yes"​
 +        echo "​transport=udp-transport-1"​
 +        echo "​inbound_auth/​username=$exten"​
 +        echo "​inbound_auth/​password=$password"​
 +        echo "​endpoint/​allow=alaw"​
 +        echo "​endpoint/​context=default"​
 +        echo "​endpoint/​set_var=MY-USER-ID=$mail"​
 +        echo "​endpoint/​callerid=${name}<​${exten}>"​
 +        echo "​aor/​max_contacts=1"​
 +        echo "​aor/​remove_existing=yes"​
 +        echo
 +done
 +</​code><​code>​
 +# /​root/​create_ast_pjsip_wizard.sh exten_mail_cidname_table.txt exten_secret_proxy_mac_model_table.txt | tee /​etc/​asterisk/​pjsip_wizard.conf
 +
 +# service asterisk restart
 +</​code>​
 ==== Использование sourceforge asterisk AD perl scripts ==== ==== Использование sourceforge asterisk AD perl scripts ====
  
сервис_asterisk.1559549329.txt.gz · Последние изменения: 2019/06/03 11:08 — val