Provision IP-телефонов Grandstream на Mikrotik

Автор: | 2018-12-25

Для удобного конфигурирования и однозначной привязки IP-телефона к сетевому оборудованию, можно использовать механизм Provision, реализованный на подавляющем большинстве IP-телефонов. А благодаря наличию TFTP-сервера и поддержке скриптов на маршрутизаторах Mikrotik, можно настраивать VoIP оборудование исходя из многих факторов.

Задача такова:

На точки выдаётся маршрутизатор Mikrotik и IP-телефон Grandstream. У маршрутизатора есть внутренний учётный номер типа «R32» и телефон должен настраиваться так, чтобы его номер был номер_роутера + префикс. Так как телефоны и роутеры могут перемешиваться между собой, то жёстко вбивать номер нельзя.

Решение:

Скриптом генерируем конфиг для телефона и разрешаем доступ к файлу через TFTP. Скрипт будет выполняться раз в день и чтобы не затереть флеш-память до дыр, необходимо сверить CRC существующего файла и сгенерированного конфига в памяти.

Сначала, скрипт получает строку /system identity, выделяет два последних символа, которые являются номером маршрутизатора и прибавляет к значению телефонного номера по умолчанию (в данном случае — 600). Так как символы могут оказаться не числом, то завернём код в обработчик исключения и при неверной строке просто оставим номер по умолчанию и сообщим об этом в лог.
Далее, создаём строку с конфигурацией, в которую вставляем из переменной полученный номер телефона и считаем её CRC8. Если файл существует в файловой системе, то считаем его контрольную сумму и сравниваем с CRC конфигурации в памяти и если контрольные суммы равны, значит ничего не изменилось и можно оставить всё как есть, иначе перезаписываем файл.

Теперь разрешаем доступ к файлу через TFTP, добавив в конфигурацию Mikrotik следующие строки: 

И не забудем добавить скрипт в планировщик:

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *