img

Настройка Auto Provisioning на Asterisk для аппаратов Dlink

Введение

Однажды в организации, где я работаю, случился Asterisk

icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту

Случился не без моего участия, а если быть точным, то я и был главным виновником, и как следствие - главным исполнителем. Напасть была локальной, но достаточно быстро получила широкое распространение, хотя, в отдельных уголках приходилось нести прогресс в массы с применением тяжелой артиллерии и напалма. В итоге Asterisk`ом было охвачено порядка полутора тысяч абонентов.

Процесс настройки абонента изначально выглядел следующим образом:

Включил телефон, обновил прошивку. Пока он перезагружается, завел абонента на Asterisk (создал запись для регистрации SIP-клиента). Далее, самый очевидный способ настройки телефона - web-интерфейс; набрал в адресной строке браузера IP-адрес телефона, авторизовался, настроил два десятка параметров и готово. На всё ушло 2-3 минуты.

Следующий абонент - повторяем.

На втором десятке абонентов начало надоедать, появилось желание как-нибудь упростить процесс.

Заглянул в настройки: экспорт и импорт конфигурации присутствует; сохранил конфигурацию телефона в файл, заглянул в него - обычный текстовый файл, в котором перечислены параметры с их значениями.

Нашел параметры, значения которых менял в web-интерфейсе, причем большинство из этих параметров, хоть и отличается от дефолтных, но одинаково для всех настраиваемых в рамках данной организации телефонов. Таким образом, имея эталонный файл конфигурации и редактируя в нем всего 5-6 строк, я получал конфигурации для остальных телефонов, которые "заливал" в аппараты всё через тот же web-интерфейс.

Спустя какое-то время количество абонентов заметно выросло, компания продолжала развиваться, сотрудники мигрировали между подразделениями, увольнялись, появлялись новые, некоторые телефоны выходили из строя, и возня с файлами стала постепенно отнимать много времени и раздражала с каждым днем всё больше. Тут я вспомнил про пункт меню из web-интерфейса, в котором были написаны многообещающие слова "Auto Provision".

Обратимся за определением к производителям телефонов. У Dlink или Fanvil мы получим следующее:

Auto Provisioning используется для реализации удаленной/автоматической инсталляции, развертывания конфигурационных и некоторых других связанных файлов.

Snom дает нам практически такое же:

Auto Provisioning может использоваться для предоставления общих и специфических параметров конфигурации на телефоны и для актуализации прошивки.

Вроде бы всё устраивает, значит, будем для наших целей отталкиваться от этих определений.

Вариантов автоматической настройки предусмотрено несколько, и без долгих терзаний, как наиболее понятный и доступный был выбран следующий:


Развертывание конфигурации с tftp сервера, адрес которого телефон будет получать по DHCP в Option 66.

Разберемся вкратце, что есть что.

TFTP - простой протокол передачи файлов (Trivial File Transfer Protocol). В отличие от FTP основан на транспортном протоколе UDP и в нем отсутствует возможность аутентификации (однако, возможна фильтрация по IP-адресу). Одно из основных преимуществ TFTP - простота реализации клиента, поэтому он достаточно широко используется в частности для загрузки обновлений и конфигураций сетевых устройств.

DHCP - протокол динамической настройки узла (Dynamic Host Configuration Protocol); сетевой протокол, позволяющий сетевым устройствам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP.

Не вдаваясь глубоко в подробности, схема обмена сообщениями DHCP при получении параметров выглядит следующим образом:

Схема работы DHCP

DHCPDISCOVER: клиент (в нашем случае, телефон) передает это сообщение broadcast, и использует его для поиска DHCP-серверов в своей канальной среде.

В одном из полей этого пакета, в поле options, клиент передает список необходимых ему опций, наиболее распространенными из которых являются:

(1) - Subnet Mask

(3) - Router

(6) - Domain Name Server

(15) - Domain Name

именно в этом поле клиент сообщает о том, что ему нужен адрес tftp сервера для загрузки конфигурационного и/или других связанных файлов. Номер опции, которая его содержит - 66 (у cisco есть аналогичная опция 150, основное отличие которой в том, что она может содержать адреса нескольких tftp серверов).

DHCPOFFER: cервер отвечает на запрос клиента. Сервер может передать это сообщение как broadcast так и unicast (зависит от значений полей полученных от клиента). В этом сообщении сервер предлагает клиенту параметры, которые он может отдать в текущей конфигурации. Если в сегменте сети клиента несколько DHCP серверов, то получив запрос, они все отправляют OFFER-ы.

После того, как клиент выбрал, OFFER какого из DHCP серверов принять, он отправляет следующий пакет:

DHCPREQUEST: казалось бы, если клиент определился, какой DHCP сервер "пришелся ему по душе", можно передать unicast-запрос этому серверу; однако предается broadcast, чтобы уведомить остальные DHCP серверы о своём выборе (добавляется опция 54, указывающая адрес выбранного DHCP-сервера), и они могли освободить зарезервированные OFFER-ы.

DHCPACK: cервер отправляет подтверждение клиенту. После этого клиент настраивает свой сетевой интерфейс, используя предоставленные параметры и опции.

В различных ситуациях могут еще возникать DHCPDECLINE, DHCPNAK, DHCPRELEASE, DHCPINFORM, но их рассмотрение в рамки данной статьи не входит.

Для получения исчерпывающей информации о работе DHCP можно обратиться к RFC 2131:

https://tools.ietf.org/html/rfc2131

Про опции 66 и 150 можно почитать здесь:

https://wiki.merionet.ru/ip-telephoniya/67/dhcp-opciya-150-i-66/

https://blog.router-switch.com/2013/03/dhcp-option-150-dhcp-option-66/

Про настройку DHCP сервера и Option 66 на Mikrotik можно почитать здесь:

https://wiki.merionet.ru/seti/5/nastrojka-dhcp-servera-na-mikrotik/

Чтобы передать телефону адрес tftp сервера, с которого он может получить конфигурационный файл, на DHCP сервере в параметрах области задаем Option 66, в которой указываем hostname либо IP адрес нашего tftp сервера.

Настройки по-умолчанию в большинстве телефонов подразумевают получение IP-адреса по DHCP и запрос Option 66.

В итоге, телефон получает IP, получает адрес tftp сервера и пытается "стянуть" оттуда файл своей конфигурации.

Согласно документации Dlink, загрузка файла конфигурации происходит следующим образом:

  1. Устанавливается соединение с сервером.
  2. Проверяется наличие файла с соответствующим именем:
  3. - в первую очередь проверяется файл с именем соответствующим аппаратной платформе;
    - во вторую - соответствующий MAC адресу устройства;
    - в третью - соответствующий ID устройства;
    - файл с произвольным именем проверяется либо в последнюю очередь (DHCP option, UpnP) либо в первую, если он явно указан в конфигурации телефона.

  4. Проверяется версия конфигурационного файла.
  5. Если версия выше, чем текущая на телефоне, файл конфигурации применяется.

Как уже говорилось ранее, файл конфигурации представляет собой текстовый документ определенного вида:

Первая строка:

<<VOIP CONFIG FILE>>Version:2.0002

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

Пример:

Текущая версия конфигурации 2.0002 на одном телефоне и 2.0004 на еще двух. Для того чтобы конфигурация применилась только на один телефон в первой строке файла конфигурации ставим

<<VOIP CONFIG FILE>>Version:2.0004

для того чтобы обновить конфигурацию на всех телефонах ставим в первой строке

<<VOIP CONFIG FILE>>Version:2.0005

Разделы:

  • <GLOBAL CONFIG MODULE - содержит данные о сетевых настройках, серверах DNS, SNTP...
  • <LAN CONFIG MODULE> - содержит данные о настройках LAN, режимах работы LAN
  • <TELE CONFIG MODULE> - настройки расширенных функций телефонной части (Call Feature)
  • <DSP CONFIG MODULE> - настройка кодеков
  • <SIP CONFIG MODULE> - настройки SIP, серверы, регистрация etc...
  • <PPPoE CONFIG MODULE> - настройки PPPoE
  • <MMI CONFIG MODUL>E - настройки доступа и WEB интерфейса
  • <QOS CONFIG MODULE> - qos и vlan
  • <DHCP CONFIG MODULE> - настройки внутреннего DHCP
  • <NAT CONFIG MODULE> - настройки NAT и ALG
  • <PHONE CONFIG MODULE> - настройки телефонной части, в этом же разделе настраивается remote phonebook и extension key.
  • <SCREEN KEY CONFIG MODULE> - настройка программных клавиш (для версии F3)
  • <AUTOUPDATE CONFIG MODULE> - настройки Autoprovision
  • <VPN CONFIG MODULE> - настройки VPN
  • <TR069 CONFIG MODULE> - настройки TR069

Заканчивается файл строкой <<END OF FILE>>

Для обновления какой-либо опции конфигурации телефона, чтобы файл конфигурации был принят телефоном достаточно наличие следующих полей:

<<VOIP CONFIG FILE>> Version:2.0002
<Название необходимого раздела>
Название опции: значение
<<END OF FILE>>

Например, для обновления имени хоста телефона необходимо создать следующий файл конфигурации:

<<VOIP CONFIG FILE>>Version:2.0003
<GLOBAL CONFIG MODULE>
Host Name :ReceptionPhone
<<END OF FILE>>

Все остальные элементы являются необязательными.

Итак, овал нарисован.

Остались сущие мелочи - реализовать инструмент для создания конфигураций и дальнейшего управления ими. Займемся этим в следующей публикации.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Этичный хакинг
Научись работать с Kali Linux, изучи самые распространенные уязвимости, разверни виртуальную лабораторию для пентестинга
Подробнее о курсе
Еще по теме:
img
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
img
Скачать руководство администратора Cisco UCM/CME на русском языке
img
Скачать руководство администратора FreePBX на русском языке
img
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
img
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59