guvijur
@guvijur
Практик, кинестетик, ретроград и консерватор

Как отслеживать время нахождения клиента в очереди до момента ответа на вызов оператором?

Добрый день!

Не сталкивался ли кто-нибудь с задачей отслеживания времени, которое проходит между моментом попадания звонка в очередь и моментом ответа на этот вызов оператором?
Грубо говоря, нужен php скрипт, который через AMI слушает "эфир" и отслеживает эти события.
При этом есть ряд пороговых значений, например 6 секунд, 30 секунд, 45 секунд и 60 секунд, по достижении которых скрипт должен производить фиксацию данного события - отправлять письмо ответственному, или записывать в БД информацию вида "Зафиксировано превышение времени ожидания в 6 .... 30.... 45.... 60 секунд.".

Если кто-то видел похожие скрипты, то скиньте ссылку, я попробую разобраться и доработать.

Спасибо.
  • Вопрос задан
  • 127 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для этого не нужно AMI. У команды Queue есть параметры macro и gosub, в которых указывается, соответственно, макрос и подпрограмма, вызываемые в момент соединения оператора с абонентом. Просто сохраняем время помещения клиента в очередь, а при соединении вычисляем время нахождения в очереди.
...
same => n,Set(__start=${EPOCH})
same => n,Queue(callcenter,CcRt,,,,,,queue-connected)
...
[queue-connected]
exten => s,1,Set(inQueueTime=$[${EPOCH}-${start}])
...

Затем можно вызвать скрипт через System или напрямую записать данные в базу через ODBC.
Ответ написан
Комментировать
Мне известен только один источник для таких данных Queue Log. Данный лог можно писать не только в файл, но и, к примеру, в БД. Анализируя этот лог можно получить интесресующие вас параметры

Примером кода с похожей аналитикой может быть эта панель
https://github.com/revall/queue-stats
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы