Для уменьшения нагрузки на сервер Asterisk опрос параметров идет не напрямую (обращением к консоли астериска), а через кеширующийся раз в минуту запрос.
Для этого нужно в /etc/crontab внести строки:

*/1 * * * * root /usr/sbin/asterisk -rx "sip show peers" >/tmp/peers.stat
*/1 * * * * root /usr/sbin/asterisk -rx "iax2 show peers" >/tmp/iax2.stat
  1. Неактуально - есть в SNMP Количество активных каналов
    asterisk -vvvvvrx 'core show channels' | grep channels |egrep -o "[0-9]*"
  2. Неактуально - есть в SNMP Количество активных звонков
    asterisk -vvvvvrx 'core show channels'|grep 'active call'|egrep -o "[0-9]*"
  3. IP-адрес SIP и IAX устройства (на примере 2341 номера)
    cat /tmp/peers.stat |egrep '^2341[/ ]{1}'|awk -F ' ' '{print $2}'
  4. Проверяет находится ли SIP-пир(транк или экстеншн) в онлайне. Если да - выдает 1, иначе 0 (на примере 2341 номера).
    cat /tmp/peers.stat |egrep '^2341[/ ]{1}'|awk '{print substr($0,96,2)}'|egrep 'OK'|wc -l
  5. Возвращает таймаут SIP-подключения в миллисекундах или 0 при отсутствии подключения.
    cat /tmp/peers.stat |egrep '^2341[/ ]{1}'|echo 0`awk  '{print strtonum(substr($0,100,4))}'`|egrep '[0-9]{0,4}' -o
  6. Проверяет находится ли IAX2-пир(транк или экстеншн) в онлайне. Если да - выдает 1, иначе 0 (на примере 2341 номера).
    cat /tmp/iax2.stat |egrep '^a2o[/ ]{1}'|awk '{print substr($0,70,2)}'|egrep 'OK'|wc -l
  7. Возвращает таймаут IAX2-подключения в миллисекундах или 0 при отсутствии подключения.
    cat /tmp/iax2.stat |egrep '^a2o[/ ]{1}'|echo 0`awk  '{print substr($0,74,4)}'`|egrep '[0-9]{0,6}' -o
poluchenie_sostojanija_asterisk_iz_shell.txt · Последние изменения: 2013/10/23 15:11 (внешнее изменение)
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика