This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
asterisk._телефонное_оборудование_и_безопасность [2021/03/24 15:24] val [4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам] |
asterisk._телефонное_оборудование_и_безопасность [2023/02/02 10:26] val [3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Asterisk. Телефонное оборудование и безопасность ====== | ====== Asterisk. Телефонное оборудование и безопасность ====== | ||
+ | |||
+ | ===== Вебинар ===== | ||
===== Программа курса ===== | ===== Программа курса ===== | ||
Line 26: | Line 28: | ||
<code> | <code> | ||
будущий_gate# sh conf/net_gate.sh | будущий_gate# sh conf/net_gate.sh | ||
+ | |||
+ | будущий_gate# init 6 | ||
будущий_server# sh conf/net_server.sh | будущий_server# sh conf/net_server.sh | ||
+ | |||
+ | будущий_server# init 6 | ||
</code> | </code> | ||
Line 90: | Line 96: | ||
* [[https://ru.wikipedia.org/wiki/%D0%AD%D1%80%D0%BB%D0%B0%D0%BD%D0%B3|Эрланг (обозначение Эрл) — безразмерная единица интенсивности нагрузки]] | * [[https://ru.wikipedia.org/wiki/%D0%AD%D1%80%D0%BB%D0%B0%D0%BD%D0%B3|Эрланг (обозначение Эрл) — безразмерная единица интенсивности нагрузки]] | ||
- | ==== Обзор интерфейсов для настройки телефонного оборудования (DTMF, Web интерфейс, Provisioning) ==== | ||
- | * SIP Phone Panasonic KX-UT1XX ([[SIP Phone Panasonic KX-UT1XX#Включение WEB интерфейса]]) | ||
- | * Linksys SPA-3102 ([[Linksys SPA-3102#Включение WEB интерфейса на WAN интерфейсе]]) | ||
- | * [[TAU-32M.IP]] | ||
- | * [[SMG-1016]] | ||
- | ==== Обзор процедур и форматов файлов конфигурации оборудования Cisco, LinkSys, Panasonic и Элтекс ==== | ||
- | * [[Cisco 7912]] | ||
- | * [[Linksys SPA-3102]] | ||
- | * [[SIP Phone Panasonic KX-HDVXXX]] | ||
- | * [[SMG-1016]] | ||
==== Лабораторные работы: Подключение голосовых шлюзов и IP телефонов к Asterisk ==== | ==== Лабораторные работы: Подключение голосовых шлюзов и IP телефонов к Asterisk ==== | ||
Line 125: | Line 121: | ||
secret=tpassword101+X | secret=tpassword101+X | ||
host=dynamic | host=dynamic | ||
- | ... | ||
</code><code> | </code><code> | ||
gate# dhcp-lease-list | gate# dhcp-lease-list | ||
</code> | </code> | ||
+ | * [[Linksys SPA-3102#Включение WEB интерфейса на WAN интерфейсе]] (Узнать назначенный устройству IP адрес) | ||
* [[Linksys SPA-3102#Настройка VoIP параметров]] | * [[Linksys SPA-3102#Настройка VoIP параметров]] | ||
* Подключение к VoIP ([[Сервис Asterisk#Шаблон конфигурации для осуществления исходящих вызовов]]) | * Подключение к VoIP ([[Сервис Asterisk#Шаблон конфигурации для осуществления исходящих вызовов]]) | ||
Line 158: | Line 154: | ||
secret=fpassword101+X | secret=fpassword101+X | ||
host=dynamic | host=dynamic | ||
- | ... | ||
</code><code> | </code><code> | ||
server# cat /etc/asterisk/extensions.conf | server# cat /etc/asterisk/extensions.conf | ||
Line 166: | Line 161: | ||
;exten => _1XX/101+Y,1,Dial(SIP/fxo101+Y/${EXTEN}) | ;exten => _1XX/101+Y,1,Dial(SIP/fxo101+Y/${EXTEN}) | ||
- | ... | ||
</code> | </code> | ||
Line 189: | Line 183: | ||
<code> | <code> | ||
Для системы server использовать алиасы и адрес 192.168.1.10/24 | Для системы server использовать алиасы и адрес 192.168.1.10/24 | ||
- | Для системы host (win у прохода) использовать дополнительный адрес 192.168.1.5/24 на LAN | ||
- | Для системы client1 можно оставить dhcp (поможет в отладке лабы provisioning для spa3102) | + | Для системы host (win у прохода) использовать адрес 192.168.X.5/24 |
+ | плюс дополнительный адрес 192.168.1.5/24 на LAN | ||
+ | (!!! сделать, чтобы не было два default и зависимости от gate) | ||
+ | |||
+ | Для системы client1 оставить dhcp (поможет в отладке лабы provisioning для spa3102) | ||
</code> | </code> | ||
Line 245: | Line 242: | ||
; same => n,NoOp(${DIALSTATUS}) | ; same => n,NoOp(${DIALSTATUS}) | ||
- | ; same => n,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?call_pbx) | ||
same => n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?call_pbx) | same => n,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL"]?call_pbx) | ||
Line 263: | Line 259: | ||
**Общий сценарий**: Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX. | **Общий сценарий**: Старую АТС выключили. В компанию приходит несколько городских линий для абонентов 4XX. | ||
- | **Сценарий 1**: Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей, шлюзы которых не используются, играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (телефон преподавателя) в случае отсутствия ответа. | + | **Сценарий 1**: Подключаем несколько (2-3) городских линий 84951234560+X к Asterisk с помощью однопортовых шлюзов слушателей с FXO интерфейсом. Телефон на столе преподавателя (84951234560) и телефоны слушателей, шлюзы которых не используются, играют роль абонентов PSTN. Так же, нужно добавить функционал отправки вызова обратно в город (на телефон слушателя) в случае отсутствия ответа. |
* [[Linksys SPA-3102#Настройка параметров аналоговой линии]] (Демонстрация важности настройки Disconnect Tone) | * [[Linksys SPA-3102#Настройка параметров аналоговой линии]] (Демонстрация важности настройки Disconnect Tone) | ||
Line 295: | Line 291: | ||
... | ... | ||
exten => frompstn,1,Dial(SIP/401&SIP/402,10) | exten => frompstn,1,Dial(SIP/401&SIP/402,10) | ||
- | same => n,Goto(default,84951234560,1) | + | same => n,Goto(default,84951234565,1) |
... | ... | ||
</code> | </code> | ||
Line 325: | Line 321: | ||
</code> | </code> | ||
- | ==== 2.7 Подключение Asterisk к PBX через оборудование с интерфейсом PRI (SMG-1016) ==== | + | ==== 2.7 Подключение Asterisk к PBX через оборудование с интерфейсом PRI ==== |
**Сценарий**: В компании используется классическая ATC с PRI интерфейсом, разворачиваем рядом Asterisk, новые IP телефоны, план нумерации для них. Соединяем абонентов старой АТС и Asterisk с помощью шлюза с PRI интерфейсом. Программируем в классической ATC транк в номерной план Asterisk через PRI интерфейс. | **Сценарий**: В компании используется классическая ATC с PRI интерфейсом, разворачиваем рядом Asterisk, новые IP телефоны, план нумерации для них. Соединяем абонентов старой АТС и Asterisk с помощью шлюза с PRI интерфейсом. Программируем в классической ATC транк в номерной план Asterisk через PRI интерфейс. | ||
Line 352: | Line 348: | ||
... | ... | ||
exten => _1XX,1,Dial(SIP/smg1016/${EXTEN}) | exten => _1XX,1,Dial(SIP/smg1016/${EXTEN}) | ||
+ | ... | ||
+ | exten => _8XXXXXXXXXX,1,Dial(SIP/smg1016/${EXTEN}) | ||
... | ... | ||
</code> | </code> | ||
Line 429: | Line 427: | ||
==== Теория ==== | ==== Теория ==== | ||
- | * [[http://wiki.sipnet.ru/index.php/Трансляция_сетевых_адресов_(NAT)_и_SIP|Трансляция сетевых адресов (NAT) и SIP]] | + | * [[https://www.mango-office.ru/support/tekhnicheskaya_podderzhka/sip_oborudovanie/obshchie_voprosy_po_sip_telefonam/translyatsiya_setevykh_adresov_nat_vidy_skhemy_raboty/|Трансляция сетевых адресов (NAT) и SIP]] |
* [[http://voiplab.by/wiki/asterisk/61-asterisk-13-za-nat-net-zvuka-v-odnu-storonu-net-slyshimosti|Asterisk 11 за NAT, нет звука в одну сторону, нет слышимости... Что делать?]] | * [[http://voiplab.by/wiki/asterisk/61-asterisk-13-za-nat-net-zvuka-v-odnu-storonu-net-slyshimosti|Asterisk 11 за NAT, нет звука в одну сторону, нет слышимости... Что делать?]] | ||
* [[http://asterisk.ru/knowledgebase/RTP+Symmetric|Симметричный RTP]] | * [[http://asterisk.ru/knowledgebase/RTP+Symmetric|Симметричный RTP]] | ||
Line 486: | Line 484: | ||
==== 3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру ==== | ==== 3.4 Подключение Asterisk, находящегося за NAT к VoIP провайдеру ==== | ||
- | |||
- | === PJSIP === | ||
- | |||
- | * [[https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip+to+work+through+NAT|Asterisk and Phones Connecting Through NAT to an ITSP]] | ||
- | * [[Сервис Asterisk#Настройка RES_PJSIP каналов]] | ||
=== CHAN SIP === | === CHAN SIP === | ||
Line 522: | Line 515: | ||
</code> | </code> | ||
+ | === PJSIP === | ||
+ | |||
+ | * [[https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip+to+work+through+NAT|Asterisk and Phones Connecting Through NAT to an ITSP]] | ||
+ | * [[Сервис Asterisk#Настройка RES_PJSIP каналов]] | ||
==== 3.5 Использование DNS View для подключения к Asterisk предприятия ==== | ==== 3.5 Использование DNS View для подключения к Asterisk предприятия ==== | ||
Line 548: | Line 545: | ||
nat=force_rport,comedia | nat=force_rport,comedia | ||
directmedia=no | directmedia=no | ||
- | qualify=yes | + | ;;qualify=yes |
... | ... | ||
</code> | </code> | ||
Line 593: | Line 590: | ||
==== 4.2 Настройка безопасного распространения файлов конфигурации VoIP оборудования ==== | ==== 4.2 Настройка безопасного распространения файлов конфигурации VoIP оборудования ==== | ||
+ | |||
+ | <code> | ||
+ | gate# dhcp-lease-list | ||
+ | |||
+ | server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE # and port 80 | ||
+ | </code> | ||
<code> | <code> | ||
server# cd /var/www/html/ | server# cd /var/www/html/ | ||
- | server# mv spa-000E08NNNNNN.cfg /root/ | + | server# mv -v spa-000E08NNNNNN.cfg /root/ |
</code> | </code> | ||
Line 603: | Line 606: | ||
* Linksys SPA-3102 [[Linksys SPA-3102#Безопасное распространение файлов конфигурации]] | * Linksys SPA-3102 [[Linksys SPA-3102#Безопасное распространение файлов конфигурации]] | ||
* Linksys SPA-3102 [[Linksys SPA-3102#Восстановление фабричных настроек]] | * Linksys SPA-3102 [[Linksys SPA-3102#Восстановление фабричных настроек]] | ||
- | |||
- | <code> | ||
- | gate# dhcp-lease-list | ||
- | |||
- | server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE | ||
- | </code> | ||
* [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы server.corpX.un | * [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы server.corpX.un | ||
Line 614: | Line 611: | ||
* SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#Использование Provisioning]] | * SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#Использование Provisioning]] | ||
- | <code> | ||
- | server# tcpdump -n -e -s0 -A host 192.168.X.IPPHONE | ||
- | </code> | ||
==== 4.3 Шифрование телефонного трафика ==== | ==== 4.3 Шифрование телефонного трафика ==== | ||
- | * Требует телефона с поддержкой TLS SRTP (например, [[ZoIPer]] 3.15) | + | * Требует телефона с поддержкой TLS SRTP, например - [[ZoIPer]] 3.15 (требует добавление самоподписанного сертификата в систему) или [[PhonerLite]] (принимает самоподписанный сертификат) |
* Прослушивание голосового трафика (на gate, [[Утилита Wireshark]], [[Файловый сервер SAMBA#Публичный каталог доступный на запись]]) | * Прослушивание голосового трафика (на gate, [[Утилита Wireshark]], [[Файловый сервер SAMBA#Публичный каталог доступный на запись]]) | ||
Line 634: | Line 628: | ||
==== 4.4 Настройка Asterisk для защиты от несанкционированного использования ==== | ==== 4.4 Настройка Asterisk для защиты от несанкционированного использования ==== | ||
- | * [[http://val.bmstu.ru/unix/voip/python-2.7.10.msi]] | + | * [[https://val.bmstu.ru/unix/voip/python-2.7.10.msi]] |
- | * [[http://val.bmstu.ru/unix/voip/sipvicious-0.2.8.zip]] | + | * [[https://val.bmstu.ru/unix/voip/sipvicious-0.2.8.zip]] |
=== Ищем сервера Asterisk === | === Ищем сервера Asterisk === | ||
Line 710: | Line 704: | ||
=== Ограничиваем доступ к каналу === | === Ограничиваем доступ к каналу === | ||
- | <code> | ||
- | server# cat /etc/asterisk/sip.conf | ||
- | </code><code> | ||
- | ... | ||
- | [office](!) | ||
- | type=friend | ||
- | host=dynamic | ||
- | deny=0.0.0.0/0.0.0.0 | ||
- | permit=192.168.X.0/255.255.255.0 | ||
- | |||
- | [internet](!) | ||
- | 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 | ||
- | md5secret=40b90878fa5389ead1bd297b247eaeef | ||
- | |||
- | [403](office) | ||
- | secret=tpassword403 | ||
- | |||
- | [404](office) | ||
- | secret=tpassword404 | ||
- | ... | ||
- | </code> | ||
+ | * [[Сервис Asterisk#Использование шаблонов в именах CHAN_SIP каналов]] | ||
==== 4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам ==== | ==== 4.5 Использование контекстов, для построения матрицы доступа SIP каналов к номерным планам ==== | ||
Line 751: | Line 713: | ||
[general] | [general] | ||
... | ... | ||
- | ;context=default | + | context=default |
... | ... | ||
subscribecontext=blf | subscribecontext=blf | ||
Line 825: | Line 787: | ||
[incoming] | [incoming] | ||
exten => voip1_00000X,1,Dial(SIP/401&SIP/402&SIP/403&SIP/404) | exten => voip1_00000X,1,Dial(SIP/401&SIP/402&SIP/403&SIP/404) | ||
- | </code><code> | + | </code> |
+ | |||
+ | * Сервис FollowMe ([[Сервис Asterisk#Переадресация вызовов на внешний номер]]) | ||
+ | |||
+ | <code> | ||
server# cat /etc/asterisk/extensions.conf | server# cat /etc/asterisk/extensions.conf | ||
</code><code> | </code><code> | ||
... | ... | ||
[to-pstn] | [to-pstn] | ||
+ | ;!!! Authenticate !!! | ||
+ | |||
exten => _89XXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN}) | exten => _89XXXXXXXXX,1,Dial(SIP/voip1_00000X/${EXTEN}) | ||