Сброс параметров VoIP-телефона Cisco SPA504G

Моя деятельность связана с телефонией, и однажды на популярной торговой площадке я обнаружил объявление: бесплатно раздавали Cisco SPA504G (или, проще говоря, Linksys/Sipura). Аппарат был заблокирован оператором и предназначался на разборку. Экземпляров было десятки — для тренировки пригодились бы все. Имея опыт сброса, разблокировки и «раскирпичивания» VoIP-телефонов, я без раздумий согласился, готов даже забрать их на запчасти. Продавец-бородач, выгрузив тележку с аппаратурами, без сожаления отдал мне её со словами «не хочу паять». Ниже расскажу, чем всё закончилось.

Сброс параметров VoIP-телефона Cisco SPA504G
Cisco SPA504G
Linksys SPA942
Linksys SPA942

Хотя устройства марки Cisco, на самом деле они созданы на базе Linksys (раньше — Sipura). На заре моего знакомства с VoIP я их путал — дизайн очень похож. Но аппаратно это совершенно разные устройства: ни одна кнопка или корпусная деталь не совпадает, кроме шнура трубки.

По надёжности их сравнивают с автоматом Калашникова, но сложностей в настройке хоть отбавляй: десятки непонятных опций, а документация поверхностна. Для сервисных центров сведения и вовсе under the hood. У Linksys SPA3xx-5xx часто выходят из строя кнопки — стирается токопроводящее графитовое покрытие, и единственный выход — менять резиновые клавиши.

Cisco SPA504G новее: подавляющее большинство выпущено после 2012 года (об этом указывает фирменная наклейка на задней панели). Не редкость встретить на крышке логотип оператора — желтый полумесяц с синим шаром.

Agência Nacional de Telecomunicações
Agência Nacional de Telecomunicações

Похожих моделей много: SPA501, SPA502, SPA512, SPA303 (без PoE), SPA508, SPA509, SPA514 и даже SPA525, у которой прошивка несколько иная. SPA303 напоминает SPA942, но с тремя программируемыми клавишами.

Для начала подключаем питание: 5 В/2 А к разъёму на задней панели либо PoE через Ethernet в коммутатор. Телефон молчит пару секунд (процесс самотеста), затем загораются индикаторы: зелёные на «громкой связи» и «гарнитуре», красный — на «микрофоне». Потом поочерёдно светятся оранжевые диоды линий и экран с заставкой Cisco (или логотипом оператора «СОТЫ»). Если кабель не подсоединён, горит красный индикатор «микрофона» и появляется «Initializing Network». При настройке DHCP устройство получит IP и после очередной перезагрузки загрузится полностью, показав главную страницу с программными клавишами.

Запуск аппарата

Нажимаем кнопку с конвертом, выбираем «Factory Reset». Телефон запросит пароль. Вместо отчаяния идём в «Set Password», задаём новый пароль, сохраняем и перезагружаем. Процесс занимает около 50 секунд — не шустро по современным меркам.

В меню «Network» можно вручную прописать статический IP, маску, шлюз и VLAN (поля «Non-DHCP IP Address» и т. д.). Подключив компьютер с соседним адресом, заходим в Web-интерфейс по http://<IP-адрес> (HTTPS не поддерживается). По умолчанию отображается лишь базовый раздел. Чтобы получить полный доступ, жмём «Admin Login» → «Advanced» и вводим учётные данные (admin и установленный пароль).

Web-интерфейс аппарата
Web-интерфейс аппарата

Если пароль неизвестен, брутфорсить долго и рискованно — после нескольких неудачных попыток телефон перестаёт отвечать. Вместо этого подключаем снифер (WireShark) и смотрим, на какие сервера телефон шлёт запросы провиженинга:

TFTP-запрос

По умолчанию аппарат обращается к серверу TFTP (иногда HTTP или FTP) и запрашивает файл SEP<MAC>.cnf.xml, затем XMLDefault504G.cnf.xml или XMLDefault.cnf.xml. Пример автопровижинга описан во множестве статей, например:

Минимальная конфигурация провижинга:

<?xml version="1.0" encoding="ISO-8859-1"?>
<flat-profile>
    <Admin_Passwd ua="na"></Admin_Passwd>
</flat-profile>

Запускаем TFTP-сервер (tftp32 на Windows или tftp-hpa на Linux). В обычном режиме обновление можно инициировать и по HTTP:

http://<Phone_IP_Address>/admin/resync?tftp://<Server_IP_Address>/<config_file>

Но если установлен админ-пароль, провижнинг не проходит.

После перезагрузки телефон подтянет конфигурацию, загрузится и сбросит настройки. С первым аппаратом на это ушел почти целый день.

Но новые аппараты никак не реагировали: обращались лишь на сайт провайдера за регистрацией. Испробовав социальную инженерию, обращение в Cisco Academy и у ремонтников, я так и не продвинулся — требовали договор, серийник, подтверждения клиента, и лишь спустя полмесяца компания выдала заявку № XXXXX и уведомила «ответственных за корпоративную благотворительность». Ожидание длилось неделю, затем ответ: «дело старое, участники давным-давно уволились».

Наконец вспомнил о JTAG/TTY-интерфейсах. Подробностей подсказала статья по разблокировке SPA122, пригодилась и для SPA504G. На форумах есть просьбы о помощи, но редко с конкретными инструкциями:

Откручиваем шестью винтами Torx T10 заднюю крышку. Внутри три ключевые микросхемы: ЦП (Texas Instruments), ОЗУ Winbond, флеш MX29LV640ETTI-70G 64 МБ.

Микросхемы Cisco SPA504G
Микросхемы Cisco SPA504G

Также потребуется USB-TTL адаптер — любой недорогой, покупал на торговой площадке. На Windows устанавливаем драйвер и определяем виртуальный COM-порт (в моём случае COM24).

USB-TTL преобразователь
USB-TTL преобразователь

Запускаем PuTTY → Connection → Serial: COM24, 9600 8-1-None-None. Сохраняем сессию для быстрого доступа.

Настройка PuTTY
Параметры Serial в PuTTY

Перед припайкой можно прозвонить TX↔RX и GND, вводя буквы в консоль. При правильном подключении в терминале будут появляться нажатые символы.

Пайка TTL
Схема подключения USB-TTL к телефону

Контакты сверху вниз: GND, ―, Rx (телефон), Tx (телефон). Подаём питание и ждём строчек загрузчика:

Basic POST completed...     Success.
Last reset cause: Software reset ...

PSPBoot1.4 rev: 1.4.0.6
(c) Copyright 2002-2008 Texas Instruments, Inc.
Press ESC for monitor... 1
(psbl)

Теперь доступен режим PSBL. Командой help выводим список, а fa показывает разделы флеша:

(psbl) fa
section :   PSBL, base : 0xb0000000...
...

Команда ls выводит содержимое FFS:

(psbl) ls
... spa500ds_image.dat ...

Командой printenv получаем переменные загрузчика. С setenv меняем MAC (HWA_0), IP (IPA), маску (SUBNET_MASK), TFTP-сервер (IPA_SVR), шлюз (IPA_GATEWAY).

(psbl) setenv IPA 192.168.1.2
...

Для обновления прошивки используем upgrade -i <server> <filename>. Образы можно скачать на сайте Cisco (форум заблокирован — ищите обходные пути). Если версия <7.5.2, сначала ставим 7.5.2b, затем новейшую, например 7.6.2g. После прошивки конфигурация не сбрасывается.

Чтобы вернуть к заводским настройкам, форматируем раздел FFS:

(psbl) fmt

Затем reboot или перезагружаем питание. Телефон переходит в SOS Recovery Mode, откуда можно снова прошиться или восстановить образ (spa5x5-7-4-4-recovery.exe и др.). В утилите выбираем «Recovery» и вводим серийник (можно FFFF…). После перепрошивки настройки сбрасываются.

Однако все аппараты получили одинаковый MAC — раздел KOS оказался заполнен единицами. В полной загрузке устройство использует третий MAC, отличающийся от PSBL и SOS-режимов. Удаление раздела Recovery тоже не мешает дальнейшей работе и восстановлению.

Итог: телефоны вернулись к заводским настройкам, админ-пароль сброшен. В одной L2-сети с одинаковыми MAC работать они не могут, но отлично функционируют в разных подсетях или VLAN.

Материал по сборке прошивки и модулям есть на wiki.jacknet.io: Cisco SPA504G. Буду признателен за советы по восстановлению уникальных MAC-адресов.

 

Источник

Читайте также