Подключение sip-телефона Cisco 7821 и Cisco 6921 к IP АТС Asterisk

Расскажу, как подключить софтфоны от Cisco к IP АТС Asterisk, сэкономив тем самым деньги на покупке Cisco Unified Communication. Сей пост – это описания граблей, и ни в коем случае не истина в последней инстанции. Так что, если у вас будут замечания – велкам в комменты. Особенно меня волнует вопрос с tlv-файлами.

Телефоны CISCO в отличии от своих собратьев D-Link настраиваются не через меню, а получают настройки с tftp-сервера. Значит первым делом подготавливаем инфраструктуры.

Поднимаем tftp-сервер

Любителям Windows могу посоветовать сервер tftpd32.

tftpd

Ну а мы будем настраивать linux tftpd сервер.

Устанавливаем сервера и клиента

Есть два способа настройки tftpd: через xinetd и через inet.d. В новых версиях Ubuntu (а я ставил это на 15.10) inet.d нет (его надо было бы ставить пакетом openbsd-inetd). Поэтому я выбрал вариант xinetd.

Создаем файл /etc/xinetd.d/tftp такого содержания:

Где /ftp – это наша папка с контентом сервера.

Перезапускаем демона суперсервера:

Проверяем, слушает ли демон свой порт через суперсервер xinetd:

Дальше создаём  папку для контента и выставляем ей права:
Пишем что-нибудь в файлик /tftp/test и пробуем получить его.

Из клиента под windows:

Из клиента под linux:

Если на этом этапе вы получаете зависание клиента и спустя время сообщение Connection timed out – это значит, что скорее всего ваш tftp-сервер находится за NAT и пакеты от него не доходят.

Если команда status в tftp клиенте выдает Connected to $hostIp, а файл не качается – то это верный признак сервера за NAT-ом. Или же включенного файервола. Я долго не мог понять, почему у меня не работате tftp. При этом линуксовый клиенты был за NAT, а виндовый блочился виндовым файерволом. Кстати, в Windows Firewall надо разрешать именно программу tftp-клиента, а не только 69 UDP порт, т.к. он работает еще и на динамических портах.

Для того, чтобы разрешить в фейерволе на сервере tftp надо включить соответствующее правило

или выключить файервол:

Теперь приступим к настройке телефона.

Настройка DHCP

Необходимо прописать в опцию 150 DHCP сервера IP адрес нашего  TFTP сервера.

dhcp-150-2

Настройка телефона СISCO-7821

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

Вот ссылка на свежую прошивку для Cisco-7821 (на момент публикации это была версия sip78xx.11-0-11

cisco-7821-firmware

 

Дальше смотрим maс-адрес нашего телефона (в примере это – 00082F1AFB3A) и создаем два пустых файла с авторизацией. Вообще их должен выдавать Cisco Call Manager, но у нас его нет – поэтому создаем пустые, чтобы телефон их скачал и успокоился. На самом деле, теперь я уже и не знаю, насколько они нужны, но на всякий случай пусть здесь будет упоминание про них.

ITLSSEP00082F1AFB3A.tlv

CTLSEP00082F1AFB3A.tlv

Если их не сделать, то будет ошибка “No Trust List Installed”. Вот, что говорит нам Google по этому поводу.

 

No Trust List Installed The CTL file or the ITL file is not installed on the phone. The trust list is not configured on the Cisco Unified Communications Manager, which does not support security by default.For more information about the trust list, see the Cisco Unified Communications Manager Security Guide.

В свободной консоле запускаем команды на tftp сервере

чтобы смотреть на запросы, пришедшие на tftp-сервер.

Кстати, я рекомендовал бы вам  скачать нормальный XML-редактор, который будет сразу валидировать ваши xml-конфиги, чтобы потом не удивляться ошибкам Parse error на телефоне.

Дальше создаем файл dialplan.xml с вот таким содержимым.

Т.к. Cisco, сцука, умная то ей без этого диалплана – некуда.

Дальше в папке с названием кодировки (в моем случае Russian_Russia) создаём файл g3-tones.xml вот с таким содержимым.

cisco-7821

Ну и самое главное, основной файл настроек телефона SEP00082F1AFB3A.cnf.xml:

Конфиг для Cisco-7821 + Asterisk

SIPSERVER – IP адрес вашего Asterisk
EXTENSION – ваш номер (extension) на Asterisk
PASSWORD – пароль (secret) sip-аккаунта на asterisk
sip78xx.11-0-1-11 – имя файла прошивки для Cisco-7821
SIP69xx.9-4-1-3SR2 – имя файла прошивки для Cisco-6921

После этого можно перезагрузить телефон нажав кнопки: Settings (шестеренка), **#**. Через 5-10 секунд он уйдет в ребут, скачает прошивку и настройки, потом подключится к линии и заработает. Для загрузки на tftp я использовал WinSCP и загрузку через ssh. В качестве XML-редактора скачал EditiX. После загрузки телефона логи можно посмотреть в меню: Кнопка Settings -> Параметры администрирования -> Состояние -> Сообщение о состоянии.

cisco-6921

Конфиг для Cisco-6921 + Asterisk

Кроме конфига и прошивки остальные файлы (g3-tones и т.д.) использовал те же, что и для Cisco-7821, т.е. все хранится в общей папке на tftp.

Важные замечания

  • TFTP не работает через NAT.
  • При каскадном соединении телефонов, цискофон надо перезагружать, чтобы он отдуплился.
  • Перед закачкой XML файлов на tftp проводите их общую валидацию в вашем любимом XML-редакторе.

Настройка времени на телефоне

Долго мучался с правильной настройкой времени на телефоне. Вот, как надо было делать. Заходим по этому адресу: http://wwp.greenwichmeantime.com/time-zone/gmt-plus-3/

Ищем там свой часовой пояс. Для Москвы сейчас это GMT+3. Смотрим внизу, какие страны подпадают под этот пояс. Для GMT+3 это например Саудовская Аравия (Saudi Arabia). Соответственно в параметре timeZone пишем “Saudi Arabia Standard Time”. Дальше, перезагружаем телефон с перечитыванием конфига (Settings, **#**) телефон перечитывает конфиг и выставляет правильное время.

Скачать прошивку и конфиг

disk-save Вот моя прошивка и конфиги для cisco-7821

Ссылки

http://netwild.ru/tftp_on_linu/
Пример валидного конфига CISCO-телефона
Совместимость XML объектов и телефонов серии 79xx
Как перепрошить (видео)
https://habrahabr.ru/post/148455/
http://www.vtkt.ru/articles/phones/IP_Telephony_Cisco_and_Asterisk.php
Пример конфига для серии 79xx
Неплохой конфиг
Хорошие примеры конфигов
Видео по прошивке
Локали Cisco
Пример валидного конфига (английская локаль)
https://habrahabr.ru/post/121140/
http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+79×1+xml+configuration+files+for+SIP
http://www.cisco.com/web/software/282074288/107070/cmterm-78xx.10-1-1-9-readme.html
Cisco 78xx firmware release notes
Configure Cisco-7821-SIP
Generating configuration files for phones
Настройки CUCME с нуля
Asterisk + phone 7821
IP Phone security and CTL
Поиск страны по таймзоне для параметра TimeZone конфига телефона
http://help.lptracker.ru/knowledgebase/cisco-6921/
https://zadarma.com/ru/support/instructions/cisco/cisco-6921/
Возможные TimeZone
Как мы Cisco Phone с Asterisk дружили