Asterisk, Ubuntu-server 9.10 и Cisco 7911G

Как писалось выше (или ниже, не суть) обзавелся внезапно парой телефонов Cisco 7911G. Для попробовать, как оно решил все это дело прикрутить к asterisk’у. В качестве оси была выбрана убунта-сервер, свежий, т.е. на данный момент 9.10

Проблемы с телефонами обнаружились сразу же после подключения, работали они на SCCP, с которым я к стыду своему не знаком, а для подгрузки конфигурации требовали TFTP. В прочем недолгий гуглинг показал, что астериск неплохо поддерживает SCCP, а 7911 легко перешиваются на SIP. Ну перешиваются и хорошо, будем перешивать.

Прошивка нашлась без проблем, по называнию. Свежая-не свежая, но работает. В общем, скачался файлик cmterm-7911_7906-sip.8-5-2.zip в котором есть все необходимое.

На свежеустановленную ось ставим все необходимое для дальнейшей работы:

sudo aptitude –y install dhcp3-server asterisk atftpd atftp vsftpd mc vim unzip
(последние четыре пакета не сильно нужны, но я привык)
Распаковываем прошивку:

sudo unzip cmterm-7911_7906-sip.8-5-2.zip -d /var/lib/tftpboot/

настраиваем DHCP: тут самое главное сервер TFTP телефоны хотят получить под опцией DHCP 150, для DHCPD3 конфиг примерно такой:


option option-150 code 150 = ip-address;
subnet 192.168.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1; #Default Gateway
option domain-name-servers 192.168.0.1; #DNS Server
option nntp-server 192.168.0.1; #NTP server
option time-offset 10800; #Moscow Time +3*3600
option option-150 192.168.0.200; #TFTP Server
range dynamic-bootp 192.168.0.200 192.168.0.249;
}

и можно уже прошивать телефон: прошиваются циски замысловато – выключаем, зажимаем #, включаем, ждем пока замигает индикатор вызова на трубке, отпускаем # и набираем 123456789*0# и долго ждем пока прошьется.

Далее в программе настройка asterisk:

Конфигурации SIP телефонов задаются в /etc/asterisk/sip.conf, дописываем в конец:


[100]
type=friend
host=dynamic
defaultuser=100
secret=123
nat=no
canreinvite=no
callerid="User 100" <100>
allow=gsm
allow=ulaw
allow=alaw
context=home
directmedia=no
[101]
type=friend
host=dynamic
defaultuser=101
secret=123
nat=no
callerid="User 101" <101>
allow=gsm
allow=ulaw
allow=alaw
context=home
directmedia=no

Здесь defaultuser= — номер SIP телефона, значение в квадратных скобках – имя SIP-пира, secret = пароль, как не сложно догадаться, context= — контекст в котором зарегистрируются устройства, а callerid = ну он и в Африке caller id

После перезагрузки настроек asterisk’a уже можно подключиться, но позвонить пока нельзя – нет dialplan’a. Поправим: в файле extensions.conf пропишем


[home]
exten => _1XX,1,Dial(SIP/${EXTEN},60,t)

т.е. для контекста home все звонки на номера 1XX будут попадать на устройства SIP с набранным номером
после перезагрузки настроек
asterisk –rx ‘reload’
можно звонить. Ну во всяком случае с программных телефоном, или нормальных аппаратных. Для 7911 и прочих цисок надо положить их настройки на TFTP

Собсно при включении (да и после через некоторый промежуток времени) циски лезут на TFTP и хотят забрать файлы:
SEP<MAC>.cnf.xml
XMLDefault.cnf.xml
и dialplan.xml

последний должен быть вида:

<DIALTEMPLATE>
<TEMPLATE MATCH="*" Timeout="3"/>
</DIALTEMPLATE>

А вот с *.cnf.xml придется настроить, XMLDefault.cnf.xml – общие настройки для всех телефонов, и SEP<MAC>.cnf.xml — персональные, для каждого телефона (вместо <MAC> — должен быть MAC-адрес телефона, без “:” и т.е. вида SEP123456789ABcnf.xml)

Примеры файлов в аттаче, разобраться не сложно.

SEP_MAC_.cnf
XMLDefault.cnf.xml
cmterm-7911_7906-sip.8-5-2.zip