Чтобы знать о появлении проблемы с Астериском по факту возникновения, а не от недовольных пользователей — будем использовать shell-скрипты и заводить получаемые значения в Zabbix. Установку zabbix-агента и добавление хостов в систему мониторинга в этой статье я описывать не буду.
Получение статуса DND внутреннего абонента в Asterisk (не путать с DND телефона). Возвращает «0», если DND включен и «1», если выключен. Для получения обратных значений — заменить NOT_INUSE на BUSY.
#!/bin/sh # Requesting subscriber "101" status result=`asterisk -rx "database show" | grep NOT_INUSE | grep 101 | wc -l` # Output the result echo $result
Проверяем регистрацию транка. Если транк зарегистрирован — получим «1», если нет — «0».
#!/bin/sh # Requesting the status of trunk "4951234567" result=`/usr/sbin/asterisk -rx "sip show registry" | grep Registered | grep 4951234567 | wc -l` # Output the result echo $result
Получаем количество зарегистрированных транков.
#!/bin/sh # Requestiong amount of registered trunks result=`/usr/sbin/asterisk -rx "sip show registry" | grep Registered | wc -l` # Output the result echo $result
Получаем количество активных разговоров в очереди колл-центра.
#!/bin/sh # Requesting amount of active calls in queue result=`asterisk -rx "queue show queue_callcenter" | grep "in call" | wc -l` # Output the result echo $result
Получаем количество вызовов в очереди, ожидающих ответа оператора.
#!/bin/sh # Requesting amount of waiting calls in queue result=`asterisk -rx "queue show queue_callcenter" | grep wait | wc -l` # Output the result echo $result
Получаем количество зарегистрированых пиров.
#!/bin/sh # Requesting amount of registered peers result=`asterisk -rx "sip show peers" | grep OK | wc -l` # Output the result echo $result
Считаем количество записей разговоров в папке.
#!/bin/sh # Requesting amount of recorded calls in "mixmon" folder result=`find /mixmon -type f | wc -l` # Output the result echo $result
Вычисляем размер папки, в которой хранятся записи разговоров.
#!/bin/sh # Requesting folder size (bytes) storsize=`du -s /mixmon/ | awk '{print $1}'` # Converting bytes to megabytes result=$(($storsize/1048576)) # Output the result echo $result