====== Смена прошивок IP-phone-ов ======
**Основная идея**: подсунуть во время начальной загрузки телефона нужные файлы по TFTP.
В качестве DHCP и TFTP сервера под windows можно использовать [[wpru>tftpd32]].
В настройках DHCP указать ip-адрес самого же компьютера в качестве значения опции 66.
Берется((с cisco.com при соответствующем доступе или у добрых людей)) архив с прошивками (а ля cmterm-7970_7971-sip.8-2-1.zip). Распаковывается в корневую директорию tftp-сервера. Туда же складывается подготовленный файл дефолтных настроек.
Соединить ip-phone с компьютером ethernet-кабелем напрямую.
Получится маленькая сеть из двух хостов. Можно, конечно просто воткнуть и компьютер и телефон в вашу локальную сеть, но тогда следите, что бы на dhcp-запросы от телефона не ответил другой dhcp-сервер (или, по крайней мере, ответил правильно).
Включаете ip-phone. Начинается следующий процесс:
- ip-phone посылает dhcp-запрос
- dhcp-сервер вместе с адресом, маской и прочими параметрами отдает адрес TFTP-сервера (т.е. свой) в опции 66 (или 150).
- ip-phone запрашивает tftp-сервер специфичные (привязанные к его MAC-у) файлы настроек. И не получает.
- ip-phone запрашивает файл дефолтных настроек. Вот его-то мы и подсовываем.
- ip-phone сравнивает версию софта указанную в файле конфигурации с имеющейся у него. Если они разные (а так оно и есть), то продолжает процесс выкачивания файлов по tftp
- первым выкачиватеся файл с именем указанным в файле настроек и с рассырением loads. Он содержит список необходимых файлов.
- с tftp-сервера выкачиваются файлы, перечисленные в .loads-файле.
- файлы устанавливаются на телефоне.
Основная загвоздка состоит в том, что название файла дефолтных настроек зависит от исходной прошивки на телефоне.
В последнее время используется **XMLDefault.cnf.xml**. Это имя можно установить экспериментально, в логах tftp-сервера видно какие файлы пытался запросить ip-phone.
См [[http://www.cisco.com/en/US/products/sw/voicesw/ps4625/products_configuration_example09186a00805a2fa5.shtml|Upgrade IP Phone Firmware with CCME]]
===== CP-7970G: SCCP 8.4(1SR1S) -> SIP 8.2(1S) =====
Файл с прошивками cmterm-7970_7971-sip.8-2-1.zip распаковывается в нужной директории.
Туда же складывается файл XMLDefault.cnf.xml, содержащий
2000
192.168.20.5
SIP70.8-2-1S
Обратите внимание на строку
SIP70.8-2-1S
в ней указано имя файла ''SIP70.8-2-1S'' :!: без расширения .loads
Содержимое директории выглядит так
apps70.8-2-0-55.sbn
cnu70.8-2-0-55.sbn
cvm70sip.8-2-0-55.sbn
dsp70.8-2-0-55.sbn
jar70sip.8-2-0-55.sbn
SIP70.8-2-1S.loads
term70.default.loads
term71.default.loads
XMLDefault.cnf.xml
лог tftp-сервера
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:50:52.140]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:51:08.125]
Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:51:40.125]
DHCP: proposed address 192.168.20.100 [17/03 10:51:40.140]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:51:40.156]
Previously allocated address acked [17/03 10:51:40.156]
Connection received from 192.168.20.100 on port 49152 [17/03 10:51:40.625]
Read request for file . Mode octet [17/03 10:51:40.625]
File : error 2 in system call CreateFile Не удается найти указанный файл. [17/03 10:51:40.625]
Connection received from 192.168.20.100 on port 49153 [17/03 10:51:40.765]
Read request for file . Mode octet [17/03 10:51:40.765]
File : error 2 in system call CreateFile Не удается найти указанный файл. [17/03 10:51:40.765]
Connection received from 192.168.20.100 on port 49154 [17/03 10:51:40.859]
Read request for file . Mode octet [17/03 10:51:40.859]
: sent 3 blks, 1118 bytes in 0 s. 0 blk resent [17/03 10:51:40.859]
Connection received from 192.168.20.100 on port 49155 [17/03 10:51:52.031]
Read request for file . Mode octet [17/03 10:51:52.031]
: sent 2 blks, 638 bytes in 0 s. 0 blk resent [17/03 10:51:52.046]
Connection received from 192.168.20.100 on port 49156 [17/03 10:51:52.750]
Read request for file . Mode octet [17/03 10:51:52.765]
: sent 930 blks, 476147 bytes in 1 s. 0 blk resent [17/03 10:51:53.812]
Connection received from 192.168.20.100 on port 49157 [17/03 10:51:57.078]
Read request for file . Mode octet [17/03 10:51:57.078]
: sent 850 blks, 434729 bytes in 1 s. 0 blk resent [17/03 10:51:58.062]
Connection received from 192.168.20.100 on port 49158 [17/03 10:52:01.234]
Read request for file . Mode octet [17/03 10:52:01.234]
: sent 4603 blks, 2356238 bytes in 5 s. 0 blk resent [17/03 10:52:06.421]
Connection received from 192.168.20.100 on port 49159 [17/03 10:52:18.812]
Read request for file . Mode octet [17/03 10:52:18.812]
: sent 963 blks, 492817 bytes in 1 s. 0 blk resent [17/03 10:52:19.890]
Connection received from 192.168.20.100 on port 49160 [17/03 10:52:23.250]
Read request for file . Mode octet [17/03 10:52:23.250]
: sent 4837 blks, 2476522 bytes in 5 s. 0 blk resent [17/03 10:52:28.593]
Rcvd DHCP Discover Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:55:48.093]
DHCP: proposed address 192.168.20.100 [17/03 10:55:48.109]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:55:48.140]
Previously allocated address acked [17/03 10:55:48.156]
Rcvd DHCP Rqst Msg for IP 0.0.0.0, Mac 00:13:19:02:3A:BF [17/03 10:55:53.625]
Previously allocated address acked [17/03 10:55:53.640]
Connection received from 192.168.20.100 on port 49152 [17/03 10:56:13.968]