Введение
При использовании традиционного ручного метода регистрации абонентов заведение телефонных номеров на Asterisk осуществляется следующим образом:
Включаю телефонный аппарат, обновляю прошивку. Пока он в перезагрузке, завожу пользователя и внутренний номер на Asterisk. Далее набираю в адресной строке браузера IP address телефона, прохожу авторизацию, настраиваю что-то около 20 параметров. Работа сделана! На заведение одного внутреннего номера и настройку телефонного аппарата уходит не больше 3 минут.
Такие же операции проделываем для следующего абонента. После обкатки технологии подключения на 20+ пользователях появляется стойкое стремление сделать процесс более простым, автоматизировать его.
Автоматизация настройки телефонов осуществляется с использованием процедуры, называемой автопровижининг (auto-provisioning), заключающейся в автоматической генерации и выгрузке в память телефонных аппаратов текстовых конфигурационных файлов, содержащих параметры настройки.
Характерно, что большая часть параметров настройки в целом одинакова для всего перечня телефонов компании, которые приходится настраивать. Располагая образцовым configuration file и меняя в нем только 6-7 строк, можно получить готовое решение для других аппаратов.
Вопрос внедрения автопровижинига становился острее по мере того, как количество абонентов стремительно росло. Некоторые пользователи увольнялись, другие приходили на их место, появлялись новые сотрудники. Иногда ломались телефоны. В общем, приходилось возиться много, и это занятие отнимало массу времени.
Существует несколько вариантов настройки в автоматическом режиме. Я после недолгих раздумий выбрал наиболее простой и понятный способ.
Развертывание конфигурации посредством сервера TFTP, адрес которого телефону будет присвоен DHCP-сервером (опция 66)
Для начала стоит разобраться с тем, что представляет собой TFTP. Речь идет о простом протоколе передачи файлов, который хорошо известен специалистам, имевший плотный опыт работы со стеком TCP/IP. От классического FTP технология отличается использованием транспортного протокола UDP. Также TFTP не позволяет использовать механизм аутентификации, но можно настроить фильтр IP-адресов, с которых разрешены подключения к серверу.
Основным преимуществом решения является простота настройки клиента, благодаря чему оно получило широкое распространение при реализации таких процедур, как загрузка обновлений и настройка сетевого оборудования.
DHCP являет собой еще один сетевой протокол, которые позволяет автоматически присваивать устройствам IP-адреса и передавать другие сопутствующие параметры (серверы DNS и WINS и так далее). При использовании DHCP схема взаимодействия узла и сервера, предоставляющего параметры, выглядит сравнительно просто.
На первом этапе клиентское устройство отправляет запрос DHCPDISCOVER
. Сообщение является широковещательным (Broadcast) и отправляется всем узлам подсети с целью обнаружения DHCP-сервера. Пакет содержит ряд полей с опциями. Самые распространенные из них:
(1)
– маска подсети;
(3)
– шлюз по умолчанию;
(6)
– сервер доменных имен;
(15)
– имя домена.
В этом же запросе клиент заявляет, что ему необходим адрес сервера TFTP, чтобы загрузить файлы конфигурации. Искомая опция проходит под номером 66
(Cisco использует DHCP option 150
, в которой может содержаться сразу несколько адресов TFTP Servers).
Сервер DHCP отправляет клиенту ответ DHCPOFFER
способом Broadcast либо Unicast (учитываются значения в полях запроса). Устройство получает необходимые сетевые параметры. В сегменте, в котором работает клиент, может использоваться несколько DHCP-серверов (редко), и в этом случае каждый из них отправляет OFFER
.
Выбрав один OFFER, Client посылает DHCPREQUEST
широковещательным способом. Broadcast тут используется для того, чтобы оповестить другие DHCP Servers о выборе (option 54).
DHCP Server, в свою очередь, отправляет подтверждающий пакет DHCPACK
. Клиент применяет настройки на своем сетевом интерфейсе, пользуясь параметрами, которые предоставил сервер.
Исчерпывающие сведения об особенностях функционирования DHCP содержатся в документе RFC 2131.
Для передачи телефонному устройству TFTP Address в настройках DHCP Server
требуется в параметрах области задать Option66
с указанием имени хоста или IP-адреса сервера TFTP.
После вышеописанного обмена пакетами данных телефону присваивается IP-адрес, после чего он получает адрес сервера TFTP и пробует загрузить конфигурационный файл.
В мануале Dlink сказано, что file конфигурации загружается по следующей схеме:
- Происходит установление сеанса связи с TFTP-сервером.
-
Система проверяет, существует ли файл с заданным именем:
- сначала ищется файл с именем, которое соответствует аппаратной платформе;
- на втором этапе разыскивается файл, соответствующий MAC-адресу клиента;
- на третьем система пытается отыскать файл по ID устройства;
- проверка файла, имеющего произвольное имя, осуществляется в конце или в самом начале, если это указано в конфигурационных параметрах телефона.
- Выполняется проверка версии файла конфигурации.
- Если version выше используемой на аппарате, то найденный файл применяется.
Версия конфигурационного файла приводится в первой строке, например:
<<VOIP CONFIG FILE>>Version: 2.0002
Чтобы конфигурационный файл был применен, он должен иметь версию выше той, что используется на текущий момент (изначально применяется Version 2.0002).
Иллюстрация к сказанному:
Версия файла на одном аппарате – 2.0002. Еще 2 клиента имеют Version 2.0004. Для задания настроек только на одном устройстве в первой строчке файла выставляем:
<<VOIP CONFIG FILE>>Version: 2.0004
Обновление конфигурационного файла на всех аппаратах:
<<VOIP CONFIG FILE>>Version: 2.0005
Важные разделы с опциями конфигурационного файла:
-
<GLOBAL CONFIG MODULE>
– основные настройки для работы узла в сети, (DNS, SNTP и другие); -
<LAN CONFIG MODULE>
– сведения о конфигурации и режимах функционирования LAN; -
<TELE CONFIG MODULE>
– конфигурирование дополнительных опций по части IP-телефонии; -
<DSP CONFIG MODULE>
– кодеки; -
<SIP CONFIG MODULE>
– конфигурирование SIP, серверных станций и ряда иных опций; -
<PPPoE CONFIG MODULE>
– конфигурация устройства для работы по протоколу PPPoE; -
<MMI CONFIG MODULE>
– управление доступом и веб-интерфейсом; -
<DHCP CONFIG MODULE>
– внутренний DHCP; -
<NAT CONFIG MODULE>
– настройка NAT и ALG; -
<PHONE CONFIG MODULE>
– конфигурация телефонов, здесь же выполняется настройкаRemotePhonebook
иExtensionKey
; -
<AUTOUPDATE CONFIG MODULE>
– параметры Autoprovision; -
<VPN CONFIG MODULE>
– позволяет настроить VPN.
Есть и другие опции, но мы привели лишь самые главные. Они могут быть полезны, когда приходится настраивать работу оборудования. Чтобы обновить какую-либо опцию телефона, необходимо проследить за тем, чтобы в нем были определенные поля.
<<VOIP CONFIG FILE>> Version:2.0002
<Название раздела>
Опция: значение
<<END OF FILE>>
К примеру, чтобы обновить имя хоста телефона, требуется подготовить конфигурационный файл с таким содержанием:
<<VOIP CONFIG FILE>>Version:2.0004
<GLOBAL CONFIG MODULE>
Host Name :R1Phone
<<END OF FILE>>
Другие опции указывать не требуется.
Все, основная работа проделана. В отдельной статье мы расскажем об инструментарии, позволяющий создавать соответствующие файлы, а также управлять ими.