Как перезагрузить ip телефон
В подконтрольной инфраструктуре всегда имеются устройства которым просто необходима стандартная перезагрузка (профилактика), от длительной работы они начинаю подтупливать, терять соединения (в моем случае это с облачной АТС Манго, либо Asterisk(FreePBX)). Так исторически сложилось, что организация до сих пор использует аналоговые и цифровые VOIP аппараты и их большое множество:
на одной площадке:
- GrandStream GP715 — 10шт
- D-Link DVG-5008SG — 2шт
- D-Link DVG-2024S = 2шт
на другой площадке чуточку меньше, но все же:
- GrandStream GP715 — 3шт
- DVG-5008SG — 4шт
- DVG-5004S — 1шт
и заходить на каждый VOIP аппарат и перезагружать в ручную его через Web-интерфейс, то еще дело, даже я бы сказал шаблонная монотонная работа . Внимательное изучение документации по ним натолкнуло меня на возможность зайти на них через
telnet и посредством встроенных команд (а они есть как правило) перезагрузить устройство. Но даже заходить на каждый аппарат так не комильфо, поэтому этим делом перезагрузки устройств займется система Ubuntu 12.04.5 Server amd64 с любым сервисом, мне лишь потребуется написать достаточно простые скрипты и поставить их в планировщик на необходимый период запуска.
Первым делом приводим все устройства GrandStream GP715 к единому паролю который знаете только Вы или единый который у Вас заведено назначен на оборудование. Да процесс однообразный но сделать это придется лишь один раз задействовав Web-интерфейс обращения к VOIP устройству.
Далее на системе Ubuntu 12.04.5 устанавливаем из дефолтных репозитариев следующую утилиту :
$ apt-cache search expect-lite
$ sudo apt-get install expect-lite -y
Теперь когда утилита expect установлена произведу тестовое подключение к базовой станции 172.20.20.52 и перезагружу ее:
Connected to 172.20.20.52.
Grandstream DP715 Command Shell Copyright 2006-2014
GS> help
GS> status
Product Model: DP715
MAC Address: 00:0b:82:ХХ:ХХ:ХХ
Port 1: On Hook Registered
Port 2: On Hook Registered
Port 3: On Hook Not Registered
Port 4: On Hook Not Registered
Port 5: On Hook Registered
System uptime: 909
System load: 0.00, 0.03, 0.05
Memory Usage: 29556736/12079104/0/2371584
из вывода видно информацию по данному аппарату это так для ознакомления, теперь сделаю перезагрузку:
GS> reboot
Connection closed by foreign host.
Как видно выше все просто, да и также просто автоматизировать данную последовательность, как перезагрузка устройства, делается это так:
(Создаю каталог где будут располагать скрипты)
$ sudo mkdir /etc/voip
$ sudo nano /etc/voip/gg715_52
spawn telnet 172.20.20.52
echo "Base Station Grandstream GP715 - 172.20.20.52 Rebooting"
$ sudo chmod +x /etc/voip/gg715_52
Запускаю созданный скрипт с целью проверки:
spawn telnet 172.20.20.52
Connected to 172.20.20.52.
Grandstream DP715 Command Shell Copyright 2006-2014
GS> reboot
(устройство успешно перезагрузилось, мониторинг Zabbix тут не дремлет и радостно так сообщает мне уведомлением на почту)
Теперь по аналогии проделываю для VOIP шлюза: DVG-5008SG & DVG-2024S (синтаксис у них одинаковый):
$ sudo nano /etc/voip/dvg5008sg_20
spawn telnet 172.20.20.20
expect "Disconnect Now? (Y/N):*"
echo "Base Station D-Link DWG-5008SG 172.20.20.20 Rebooting"
На заметку: если уже кто-то подключен через telnet к VOIP-шлюзу (D-Link серии) то зайти скриптом не получится, соединение будет просто висеть:
Connected to 172.20.20.20.
<< Command Line Interface V 3.6.3.0 >>
<< Command Line Interface V 3.6.3.0 >>
Enter HELP for usage
> я успешно подключился.
На заметку: pwd заменяем на reboot, а bye и все что ниже до eof убираем.
На заметку: в части VOIP шлюза у меня вообще не используется пароль потому такой скрипт выше.
$ sudo chmod +x /etc/voip/dvg5008sg_20
Теперь с учетом моих VOIP устройств множу конфигурационные файлы заменяя лишь конечный октет IP адреса.
Далее нужно настроить задание на запуск подготовленных скриптов:
45 14 * * * /etc/voip/gg715_52 > /dev/null
Ожидаю и случилось следующее, позвонили мне на трубку c КоллЦентра, подключена к данной базовой станции, мол хотят с тобой поговорить на предметр взаимовыгодного сотрудничества, ну ладно соединяйте может чего нового узнаю (достали спамеры услуг). В итоге в трубке слышу гудки как будто она не видит базовую станцию и обращаю я тут внимание на время и понимаю, что как раз подкралась 45 минута — скрипт успешно отработал, базовая станция ушла в ребут.
Время же нужно в Вашем случае выбрать такое когда перезапуск базовый станций не приведет к простою работы сотрудников предприятия, допустим глубокой ночью или по воскресеньям — все зависит от графика работы офиса.
Еще допустим, Вы просто хотите вот прям сейчас перезагрузить несколько станций — сделать это можно следующим скриптом:
Читайте также: