Настроить Cisco IP Phone 7941 меня побудила нужда. Нужно было срочно законфигурять 10 IP-телефонов. 4 из них - Fanvil BW210. Это брат телефону SNR-6020, который продаётся на shop.nag.ru. Веб-лицо у этого аппарата один-в-один как у SNR. Отличается он лишь дизайном корпуса. Шесть оставшихся - Cisco IP Phone 7941. С одним из них и начались проблемы.
В два лица мы (я и мой коллега) готовили к настройке оборудование. Я занимался софтсвичом и телефонами Fanvil, коллега - Cisco-аппаратами. При перенастройке одного из 7941 с тестового софтсвича на рабочий (РТУ1.2.1) что-то пошло не так. В результате, при включении питания на телефоне горела только лампочка громкой связи зелёным. Стандартная процедура сброса не действовала. В этот момент я и присоединился к процессу реанимирования аппарата.
В процессе ковыряния проблемы пришлось вкратце вникнуть в процесс загрузки аппарата, XML-файл конфигурации, поднять TFTP и DHCP-сервера, поснифферить исходящий трафик. У телефона был корректно настроен интерфейс (IP-адрес, маск, шлюз, TFTP-сервер) и он регулярно посылал
Gratuitous ARP, ARP для нахождения MAC-адреса своего шлюза, CDPv2. Всего-навсего надо было его после настройки - а телефон был напрямую подключен к компьютеру с TFTP-сервером, на котором находился файл конфигурации - подключить к сети. Но это было только полбеды. Вторая половинка заключалась в слове "Unprovisioned". Вот для решения этой задачи как раз и потребовалось настроить tftpd и dhcp3-server.
Необходимые инструкции быстро нашлись в поисковике:
Настройка TFTP сервера (tftpd) Вот содержимое моего файла /etc/xinetd.d/tftp
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
Настройка DHCP сервера (dhcp3-server) Содержимое файла /etc/dhcp3/dhcpd.conf
option option-150 code 150 = ip-address;
default-lease-time 600;
max-lease-time 7200;
# Интерфейс eth0
subnet 10.20.30.0 netmask 255.255.255.0 {
}
# Интерфейс eth1
subnet 10.20.40.96 netmask 255.255.255.224 {
range dynamic-bootp 10.20.40.121 10.20.40.125;
option subnet-mask 255.255.255.224;
option broadcast-address 10.20.40.127;
option domain-name-servers 172.20.0.2;
option routers 10.20.40.97;
#option nntp-server 192.168.0.10;
#option time-offset -18000; # Eastern Standard Time
option option-150 10.20.40.120;
}
host ipfon {
hardware ethernet 00:27:0d:12:34:56;
filename "SEP00270D123456.cnf.xml";
server-name "10.20.40.120";
}
log-facility local7;
В DHCP option 150 указывается IP-адрес TFTP-сервера. На сколько я смог понять, это нестандартная опция, но она используется цыской. Список опций можно посмотреть
тут. Про определение DHCP option 150 я вычитал
здесь. Ещё
одно письмо касательно DHCP option 150.
После долгих поисков, чтения конфигов, мануалов и общения с товарищем по несчастью методом проб и ошибок выяснилось, что ошибка крылась в файле SEP.cnf.xml в
. Сначала мы думали, что проблема с файлом CTLFile.tlv, который отсутствовал на TFTP-сервере, но это оказалось не так. У меня в phoneLabel содержалась строка RTComm-Sibir. Я не знаю, чем цыскофону не понравилось название конторы, в которой я работаю, но с пустым значением этого параметра телефон завёлся. На мысль поиграться с параметром меня навели логи - сообщение в Status->Status Messages. К сожалению, я не помню, что оно говорило, но что-то как раз об ошибке в файле конфигурации. Вот на эту строчку было потрачено два дня. Зато работа по настройке оставшихся 7941 была поставлена на конвеер.
Так же привожу дополнительные ссылки по настройке:
Астериск+Cisco IP phone
http://www.voip-info.org/wiki/index.php?page=Asterisk%20phone%20cisco%207970%20SIP http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+79x1+xml+configuration+files+for+SIPИзменение рингтонов и логотипа
http://tipsandtricks.nogoodatcoding.com/2008/06/hacking-cisco-7940-ip-phone.htmlСтатья "Как настроить IP-телефон cisco 7941 для SIP"
http://www.hypercomp.ru/articles/configuring-cisco-7941-ip-phone-for-sip/ Теперь можно вернуться к пинанию РТУ1.5. Это продукт от МФИ Софт, который содержит в себе совтсвич 4-го класса (MVTSPro) и центрекс (Centrex). Всё это хозяйство ставится на один сервер под управлением ОС Debian Lenny. Имеющаяся документация на продукт убога. Но благодаря этому я научился читать логи, дебаг и дампы.
На этом, пожалуй, всё.
PS: Чуть не забыл. Вот мой файл dialplan.xml:
Семизначные городские номера. 11-ти значные междугородние. Экстренные службы 0x (01, 02, 03).