Автоматическая подготовка конфигурационных файлов для Eltex TAU-8.IP

Для автоматической конфигурации TAU-8.IP сам Eltex предлагает использовать ACS/EMS разработанную их силами. Многими используется для конфигурирования GPON оборудования, а зоодно умеет конфигурировать и VoIP-шлюзы (даже другого производителя). Причины, по которым, не используется это решение озвучиваться не буду. Но необходимость в автоматической конфигурации вновь подключаемых VoIP шлюзов производства Eltex не отпала.

Для решения этой задачи был написан небольшой скрипт. Но обо всем по порядку.

TAU-8.IP может получать конфигурационный архив через DHCP option 66. Начиная с прошивки версии 1.9 опция получения IP адреса через DHCP включена по умолчанию. Нас это устраивает. Устройство получает адрес tftp-сервера и пытается забрать с него конфигурационный файл с именем по mac-адресу AABB.CCDD.EEFF.cfg. Если забрать получилось, то устройство распаковывает этот архив во временную директорию и перезагружается, чтобы прочитать новый конфиг во время загрузки.

Все происходит в FreeBSD, для Linux изменения будут минимальными. Для генерации архива используется скрипт, написанный на Perl, который периодически запускается через cron. Из особенностей этих конфигурационных файлов хочется отметить следующее:

  • Это обычный .tar.gz архив
  • Файл должен быть сгенерирован только GNU Tar'ом, т.к. busybox на TAU-8.IP умеет распаковывать только их
  • Будет меняться только конфигурация портов на устройстве

Первым делом надо подготовить устройство к работе в сети провайдера, сохранить конфигурационный файл. После распаковать его в директорию /usr/local/share/eltex/template/. Далее будет происходить замена только одного файла tmp/etc/config/pbx, в котором хранятся конфиги для портов. Поместить скрипт в /usr/local/share/eltex/tau8_config.pl и сделать его исполняемым.

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

В crontab скрипт прописывается таким образом:

*/10 * * * * /usr/bin/lockf -t 0 /tmp/eltex_config.pid /usr/bin/perl /usr/local/share/eltex/tau8_config.pl

Сам скрипт:

comments powered by Disqus