В настоящее время в Беларуси оператор электросвязи Белтелеком усиленно внедряет телефонную связь на базе сети IMS. Предоставляется оборудование в пользование. Представляет оно собой обычный ADSL модем, но со встроенным SIP клиентом.
Но у нас есть CISCO 2951 с поднятой телефонией. Возникла мысль, а можно ли настроить такой телефонный номер без оборудования Белтелеком и напрямую в маршрутизаторе.
При разборе настроек в модеме выяснилось следующее. VoIP подается по отдельному PVC (VCI/VPI=2/35) в режиме IP/DHCP:
Модем получает настройки IP и шлюза по DHCP.
Нам важно запомнить адрес шлюза, для дальнейшей настройки на CISCO.
При заключении договора выдаются следующие данные:
Номер телефона: +37517xxxxxxx
Login: +37517xxxxxxx@ims.beltel.by
Необходимо также узнать пароль к сервису IMS: passIMS. У меня в маршрутизаторе Cisco установлена ADSL2 and ADSL2 High-Speed WAN Interface Cards.
Настраиваем сначала подключение по нужному PVC(2/35).
.02 в имени интерфейса выбрана произвольно, так как у меня уже есть одно соединение на этом же интерфейсе.
убеждаемся что интерфейс поднялся и IP адрес получен.
Настройки SIP серверов тоже можно увидеть в модеме, если предварительно в telnet дать следующую команду: sendcmd 3 webd setconfig voippagedisp y.
Будем использовать один из SIP серверов, а именно 10.56.0.9. Далее необходимо прописать маршруты.
10.56.0.10 и 10.56.0.11 — это адрес RTP сервера обслуживающего аудио поток. Так как ims.beltel.by не имеет в DNS записи, то прописываем ее руками.
Теперь переходим к непосредственной настройки sip-ua. Здесь есть особенность, авторизация должна проходить с указанием домена, т.е. вида +37517xxxxxxx@ims.beltel.by. Поэтому используем еще параметр number.
Об успешной регистрации будет видно из команды:
Далее создаем dial-peer для исходящих звонков.
Необходимо также обязательно подменять свой внутренний номер на номер выданный Белтелекомом, чтобы звонок обслуживался. Это делается через translation-profile.
Так как у меня используются телефоны Cisco 6921, то для входящего звонка просто прописан параметр secondary на внутреннем номере.
Таким образом мы получаем SIPовский номер в нашу телефонную сеть без дополнительного стороннего оборудования и в цифровом виде.
Update: С недавнего времени Белтелеком начал работать по UDP протоколу. Поэтому для входящих соединений уже не получится вписать secondary номер. Необходимо делать dial-peer с входящим правилом.
Примерно такой:
где translation-profile incoming incomIMS это правило сопоставления номера IMS вашему внутреннему, на который необходимо принять звонок.
Например:
Но у нас есть CISCO 2951 с поднятой телефонией. Возникла мысль, а можно ли настроить такой телефонный номер без оборудования Белтелеком и напрямую в маршрутизаторе.
При разборе настроек в модеме выяснилось следующее. VoIP подается по отдельному PVC (VCI/VPI=2/35) в режиме IP/DHCP:
Модем получает настройки IP и шлюза по DHCP.
Нам важно запомнить адрес шлюза, для дальнейшей настройки на CISCO.
При заключении договора выдаются следующие данные:
Номер телефона: +37517xxxxxxx
Login: +37517xxxxxxx@ims.beltel.by
Необходимо также узнать пароль к сервису IMS: passIMS. У меня в маршрутизаторе Cisco установлена ADSL2 and ADSL2 High-Speed WAN Interface Cards.
Настраиваем сначала подключение по нужному PVC(2/35).
interface ATM0/1/0.2 point-to-point
ip address dhcp
no ip proxy-arp
ip nat outside
ip virtual-reassembly in
atm route-bridged ip
pvc 2/35
encapsulation aal5snap
.02 в имени интерфейса выбрана произвольно, так как у меня уже есть одно соединение на этом же интерфейсе.
sh int atm 0/1/0.2
убеждаемся что интерфейс поднялся и IP адрес получен.
Настройки SIP серверов тоже можно увидеть в модеме, если предварительно в telnet дать следующую команду: sendcmd 3 webd setconfig voippagedisp y.
Будем использовать один из SIP серверов, а именно 10.56.0.9. Далее необходимо прописать маршруты.
ip route 10.56.0.9 255.255.255.255 10.233.64.1
ip route 10.56.0.10 255.255.255.255 10.233.64.1
ip route 10.56.0.11 255.255.255.255 10.233.64.1
10.56.0.10 и 10.56.0.11 — это адрес RTP сервера обслуживающего аудио поток. Так как ims.beltel.by не имеет в DNS записи, то прописываем ее руками.
ip host ims.beltel.by 10.56.0.9
Теперь переходим к непосредственной настройки sip-ua. Здесь есть особенность, авторизация должна проходить с указанием домена, т.е. вида +37517xxxxxxx@ims.beltel.by. Поэтому используем еще параметр number.
sip-ua
credentials number +37517xxxxxxx username +37517xxxxxxx@ims.beltel.by password <i>PassIMS</i> realm ims.beltel.by
authentication username +37517xxxxxxx password <i>PassIMS</i> realm ims.beltel.by
retry invite 3
retry response 3
retry bye 3
retry cancel 3
retry register 5
registrar dns:ims.beltel.by:5060 expires 3600 auth-realm ims.beltel.by
sip-server dns:ims.beltel.by:5060
connection-reuse
host-registrar
Об успешной регистрации будет видно из команды:
sh sip-ua register status
Далее создаем dial-peer для исходящих звонков.
dial-peer voice 8017 voip
description #toIMS#
<i> translation-profile outgoing fromIMS</i>
destination-pattern 8017[2,3,5].T
session protocol sipv2
session target sip-server
session transport udp
voice-class codec 1
dtmf-relay rtp-nte
no vad
Необходимо также обязательно подменять свой внутренний номер на номер выданный Белтелекомом, чтобы звонок обслуживался. Это делается через translation-profile.
voice translation-rule 1
rule 1 /.*/ /+37517xxxxxxx/
voice translation-profile fromIMS
translate calling 1
Так как у меня используются телефоны Cisco 6921, то для входящего звонка просто прописан параметр secondary на внутреннем номере.
ephone-dn 1 dual-line
number 1234 secondary +37517xxxxxxx no-reg both
Таким образом мы получаем SIPовский номер в нашу телефонную сеть без дополнительного стороннего оборудования и в цифровом виде.
Update: С недавнего времени Белтелеком начал работать по UDP протоколу. Поэтому для входящих соединений уже не получится вписать secondary номер. Необходимо делать dial-peer с входящим правилом.
Примерно такой:
dial-peer voice 9192 voip
description #Incoming_IMS#
translation-profile incoming incomIMS
session protocol sipv2
session target dns:ims.beltel.by
session transport udp
incoming called-number +37517xxxxxxx
voice-class codec 1
dtmf-relay rtp-nte
где translation-profile incoming incomIMS это правило сопоставления номера IMS вашему внутреннему, на который необходимо принять звонок.
Например:
voice translation-rule 5
rule 1 /.*/ /1234/
voice translation-profile incomIMS
translate called 5
Поделиться с друзьями
Комментарии (7)
lolipop
02.06.2016 20:11Кто бы рассказал, как добиться того же самого для МГТС. Возможность вытащить нужные вланы на порты имеется.
mhs
03.06.2016 09:23Добрый день. Не совсем понял, а в чем ньюансы МГТС? Как они телефонную подают на абонента?
lolipop
03.06.2016 11:41у меня стоит дома коробочка от линксис и меня расстраивает двойное ЦАП/АЦП. технология там тот же ims, но у меня не вышло зарегистрироваться через софтфон. максимум — позвонить себе на свою городскую линию без регистрации.
mhs
03.06.2016 16:31По идеи должно все получиться. Нужно детально смотреть настройки Linksys — и как пробросить vlan голосовой.
Я использовал вот этот софтфон http://phonerlite.de/ для теста. Он легкий и хороший log подключения показывает.
Изначально добейтесь чтобы с PC пинговался VoIP шлюз, который прописан в Linksys в статусе соединения.
alexkuzko
Отличная работа! А вы, случайно, их GPON не пробовали заменить?
mhs
Это аналогично GPON только я описываю вариант с медной линией. По оптике тоже самое, но будет проблема напрямую завести GPON в маршрутизатор. Как вариант пробовал переключать GPON модем в режим router (на VoIP VLANe ) и дальше прописав на CISCO маршрут — настройки дальше аналогичные статьи.
P.S. Адреса VoIP шлюза для Витебской области. В других областях они отличаются. Можно поискать в гугле.