Подключение Cisco 7940 к Asterisk

Администратор,

Идентификация телефона


Для начала необходимо посмотреть версию прошивки телефона. Вероятнее всего, если цискофон новый, в него будет залит образ с протоколом SCCP. Чтобы это выяснить, необходимо в главном меню выбрать:

5 Model Information -> 9 Call Control Protocol -> SCCP

Если есть SCCP, значит, необходимо телефон перепрошить на SIP.

Подготовка файлов SIP прошивки


Первым делом необходимо найти и подготовить необходимые файлы образов и конфигурации. Самый правильный способ 
- получить его на сайте cisco.com, но это только для зарегистрированных пользователей. Если Вы не зарегистрированный пользователь, попробуйте поискать нужные файлы в Интернет 

В нашем примере используется файл P0S3-08-4-00.zip со следующим содержимым:

OS79XX.TXT
P003-08-4-00.bin
P003-08-4-00.sbn
P0S3-08-4-00.loads
P0S3-08-4-00.sb2
Теперь необходимо подготовить файлы конфигурации (смотрите внизу страницы каждого файла ссылку Download in original format):
[howto:XMLDefault.cnf.xml|] (после копирования этого файла в TFTP папку сделайте символическую ссылку (ln -s) файла [XmlDefault].CNF.XML на XMLDefault.cnf.xml, связано с проблемами с регистром в разных прошивках)
[howto:SIPDefault.cnf|]
[howto:dialplan.xml|]
[howto:SIP001B54526FE1.cnf|]
Последний файл необходимо переименовать на SIPМАКАДРЕСВАШЕГОТЕЛЕФОНА.cnf


Настройка и запуск TFTP сервера


В примере используется пакет hpatftp. Файлы с прошивкой и конфиги нужно положить в корень TFTP. По-умолчанию в Gentoo Linux процесс atftp работает под экаунтом nobody и с корнем в /opt/tftproot, поэтому убедитесь в том, что папка /opt/tftproot/ доступна для nobody. Запустите atftp, убедитесь, что он работает, при помощи команд

explorer tftproot #  ps aux | grep tftp | grep -v grep
nobody   12663  0.0  0.0  20756   760 ?        Ss   14:31   0:00 /usr/sbin/in.tftpd --daemon --user nobody --group nobody /opt/tftproot
explorer tftproot #
и

explorer tftproot # netstat -atnup | grep tftp
udp        0      0 0.0.0.0:69              0.0.0.0:*                          12663/in.tftpd
explorer tftproot #
Попробуйте скачать файл:

max@explorer ~ $ cd /tmp/
max@explorer /tmp $ atftp 127.0.0.1
tftp> get /cisco/SIP001B54526FE1.cnf
max@explorer /tmp $ ls -l SIP001B54526FE1.cnf
-rw-r--r-- 1 max max 287 Дек 17 14:38 SIP001B54526FE1.cnf
max@explorer /tmp $ date
Срд Дек 17 14:38:46 MSK 2008
max@explorer /tmp $


Настройка и запуск DHCP сервера


В Gentoo как всегда все очень просто - emerge dhcp. Файл конфигурации /etc/dhcp/dhcpd.conf представлен ниже. Предполагается, что на сервер или Вашей рабочей машине, используемой для перепрошивки, один из IP адресов установлен в 192.168.1.1, настроен роутинг и маскарадинг.

option domain-name "test";
option domain-name-servers 192.168.1.1;
option tftp-server-name "192.168.1.1";

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.110;
  option routers 192.168.1.1;
}


Проверяем:


explorer tmp # dhcpd
Internet Systems Consortium DHCP Server V3.1.1-Gentoo
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 11 leases to leases file.
Listening on LPF/eth0/00:1e:37:90:cf:26/192.168.1/24
Sending on   LPF/eth0/00:1e:37:90:cf:26/192.168.1/24
Sending on   Socket/fallback/fallback-net
explorer tmp # netstat -atnup | grep dhcp
udp        0      0 0.0.0.0:67              0.0.0.0:*                          12981/dhcpd
explorer tmp #
Открываем новую сессию и запускаем сетевой анализатор с фильтром по DHCP 
- он поможет нам обнаружить какие-либо ошибки:

explorer tmp # tcpdump -nn port 67 or port 69
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 68 bytes
14:47:29.660499 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request [|bootp]
14:47:29.661677 IP 159.93.44.67.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300


Создание учетных записей SIP в Asterisk

Тут ничего необычного:

[700]
context=users
host=dynamic
secret=will-not-give-you-my-password
type=friend
callerid="Litnimax" <700>
mailbox=700


Полетели


Включаем питание телефона и смотрим логи tcpdump.