В настоящее время в Беларуси оператор электросвязи Белтелеком усиленно внедряет телефонную связь на базе сети 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).
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
