Pull to refresh

Смена прошивки IP-телефона Cisco 7912G с SIP на Skinny

Reading time 3 min
Views 12K
В процессе написания продолжения к первой части темы по настройке телефонии на Cisco необходимо было привязать к СМЕ два телефона, но я столкнулся с одной проблемой. Телефоны оказались прошиты под SIP а на данном этапе хотелось сделать все на Skinny. И если с прошивкой Skinny-телефона в SIP особых проблем нет (данный процесс уже был описан на Хабре), то обратная процедура оказалась весьма нетривиальной.

Итак, есть 2 пути решения данной проблемы, один из них — это использование полноценного Cisco Unified Call Manager, развернутого на сервере. Так как до него руки пока не дошли, этот вариант оказался неприемлем.
Второе решение — прошивка средствами маршрутизатора с CME.
Для начала нужна сама прошивка, самая последняя версия на сайте Cisco сейчас 8.0(4), файл для скачивания называется cmterm-7912G-sccp.8-0-4.zip. Но есть проблема, для его скачивания нужны привилегии ССО-аккаунта, которых у меня нет, поэтому пришлось искать альтернативный источник. В архиве лежит файл CP7912080003SCCP070409A.sbin.
Далее, заливаем файл по TFTP на маршрутизатор и создаем конфигурацию DHCP для телефона:
ip dhcp pool PHONES
network 10.13.6.0 255.255.255.0
default-router 10.13.6.10
#опция 150 определяет адрес TFTP-сервера
option 150 ip 10.13.6.10

После чего запускаем нужные дебаги debug ip dhcp server events и debug tftp events и смотрим, что происходит.
CME#
Jun 1 02:41:05.447: DHCPD: Sending notification of ASSIGNMENT:
Jun 1 02:41:05.447: DHCPD: address 10.13.6.22 mask 255.255.255.0
Jun 1 02:41:05.447: DHCPD: htype 1 chaddr 0019.2f9c.554e
Jun 1 02:41:05.447: DHCPD: lease time remaining (secs) = 86400
Jun 1 02:41:05.527: TFTP: Looking for gk00192f9c554e
Jun 1 02:41:05.539: TFTP: Looking for gkdefault.cfg

Видно, что телефон нормально получил по DHCP адрес 10.13.6.22 и правильно шлет запросы маршрутизатору, который выступает в роли TFTP-сервера. Телефон запрашивает конфигурационный файл либо конкретно для себя (gkxxxxxxxxxxxx, где хххх — mac-адрес телефона) либо конфиг по-умолчанию. Если верить официальным источникам, CP7102 будет просить файлы, начинающиеся с ff, а CP7105 — с id

На данном этапе наша задача — подсунуть телефону нужный конфигурационный файл, чтобы он мог перешиться в SCCP. О том, что из себя представляет данный файл и какие содержит поля, можно почитать здесь.

Итак, создаем конфигурационный файл gkdefault.txt

#txt
upgradecode:3,0x601,0x0400,0x0100,10.13.6.10,69,0x070409A,CP7912080003SCCP070409A.sbin

Так как загружать его нужно в бинарном виде, необходимо сконвертировать его утилитой cfgfmt.exe, которую можно взять здесь. Утилите также нужен для работы файл sip_ptag.dat, который лежит там же.
Запускаем программу
cfgfmt -tsip_ptag.dat gkdefault.txt gkdefault.cfg

Полученный файл также заливаем на СМЕ

Итак, после всех процедур у нас должно быть на флеше следующее:

CME#sh flash:

System flash directory:
File Length Name/status
1 18296372 c1700-ipvoicek9-mz.124-25.bin
2 341023 CP7912080003SCCP070409A.sbin
3 62 gkdefault.cfg

Теперь добавляем нужные файлы на наш tftp-сервер:

tftp-server flash:CP7912080003SCCP070409A.sbin
tftp-server flash:gkdefault.cfg

На данном этапе можно передернуть питание телефона и если все сконфигурировано правильно, в дебагах будет видно следующее:
Jun 1 03:48:33.495: DHCPD: Sending notification of ASSIGNMENT:
Jun 1 03:48:33.495: DHCPD: address 10.13.6.22 mask 255.255.255.0
Jun 1 03:48:33.495: DHCPD: htype 1 chaddr 0019.2f9c.554e
Jun 1 03:48:33.495: DHCPD: lease time remaining (secs) = 86400
Jun 1 03:48:33.575: TFTP: Looking for gk00192f9c554e
Jun 1 03:48:33.587: TFTP: Looking for gkdefault.cfg
Jun 1 03:48:33.587: TFTP: Opened flash:gkdefault.cfg, fd 0, size 62 for process 127
Jun 1 03:48:33.595: TFTP: Finished flash:gkdefault.cfg, time 00:00:00 for process 127
Jun 1 03:48:33.599: TFTP: Looking for CP7912080003SCCP070409A.sbin
Jun 1 03:48:33.603: TFTP: Opened flash:CP7912080003SCCP070409A.sbin, fd 0, size 341023 for process 151
Jun 1 03:48:40.279: TFTP: Finished flash:CP7912080003SCCP070409A.sbin, time 00:00:06 for process 151

После этого на экране телефона появится надпись Write flash… Please wait, он перегузится и станет Skinny-телефоном!

P.S.
В качестве альтернативного варианта можно было поднять с помощью tftpd32.exe сервер DHCP, сконфигурировать в нем 150-ю опцию и залить файлы CP7912080003SCCP070409A.sbin и gkdefault.cfg в корневую папку TFTP-сервера.
Tags:
Hubs:
+2
Comments 2
Comments Comments 2

Articles