Queue: длительность разговоров агентов очереди
Добрый день!
Столкнулся с проблемой: при организации очереди и сбора CDR вызовов, прошедших через очередь, не совсем ясно сколько времени пользователи находятся в очереди в режиме ожидания и сколько говорят с агентом, в CDR складывается сумма двух этих времен (поля duration и billsec), после окончания разговоров.
Я нашёл косвенный способ для определения этого времени, но он мне не совсем нравится: включил запись разговоров, и после этого в CDR в поле userfield видно имя файла вида: agent-111-1174662083-2583.WAV, где 1174662083 и есть время начала разговора с агентом, помещение звонка в очередь я сделал через AGI, а внутри скрипта обращение к БД и каждый ВХОД/ВЫХОД фиксирую в табличке. Остаётся вопрос как эту табличку связать с таблицей CDR, посмотрел и выяснил, что полезнее CDR собирать через ODBC, т.к. есть возможность включить в CDR сбор uniqueid (в cdr_mysql я этого так и не смог сделать :) ), записи которые я собираю через AGI так же содержат тот же самый uniqueid - связь таблиц есть. В результате имеем 4 временных параметра: дата входа в очередь, дата начала разговора (из имени записанного файла), время выхода из очереди и суммарное время разговора клиента.
Далее, путём несложных вычислений получаем время ожидания клиента в очереди и время его разговора с агентом.
Просьба, подскажите, может есть более тривиальный способ и я что-то не докопал???? :)
|