Asterisk пропущенные звонки

В этой статье мы расскажем, как мы ловим в voip атс Asterisk пропущенные звонки . Пропущенные звонки — звонки не получившие ответ в очередях. В cdr asterisk нет такого понятия как пропущенные в очередях. Если очередь отвечает, то сразу заносит запись в базу с пометкой ANSWERED. Отлавливать пропущенные звонки (со статусом ABANDONE) будем через стандартное логирование очередей. По умолчанию оно либо выключено, либо ведется в текстовый файл:

Парсить этот файл особого смысла нет.

Переходим к правке конфигов:

Приводим его к виду:



Далее правим:

Если не надо писать лог в файл:

Далее:

Затем переходим к созданию таблицы:

Формируем sql запрос для читабельного вывода информации:

Приводим пример вывода таблицы, в чистом mysql
abandone call

Как видно данная инструкция выводит 4 колонки.

callid — id звонка в cdr;

queuename — номер очереди;

data3 — время ожидания;

data2 — номер пропущенного.

В примере пропущенные номера состоят из трех/четырех знаков, так как использовались не внешние номера для тестов, в реальности будут полноценные номера.

Приводим пример получения информации на php:

При выполнении в консоли результат будет выглядеть примерно так:

queue_log php abandone
Как оказалось после каждой перезагрузки, и изменении любых настроек, при использовании freepbx, файл:

перезаписывался. И как следствие лог переставал писаться.
Для избежания пропадания логов был написан скрипт, для сверки md5 сумм, и добавлен в cron.
Текст скрипта представлен ниже:

Вам также может понравиться

About the Author: Администратор