2 440 подписчиков на нашем канале!

—ергей ѕисаренко

¬ведение

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

—лучилс€ не без моего участи€, а если быть точным, то € и был главным виновником, и как следствие - главным исполнителем. Ќапасть была локальной, но достаточно быстро получила широкое распространение, хот€, в отдельных уголках приходилось нести прогресс в массы с применением т€желой артиллерии и напалма. ¬ итоге 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>>

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

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

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


ѕолезна ли ¬ам эта стать€?


Ёти статьи могут быть вам интересны: