Операторы у нас по решенным тикетам звонят клиентам, что бы отчитаться о решении, для удобства - через очередь.
Организовано примерно так: считается кол-во операторов на линии, которые вошли в очередь, набрав специальный код. И кол-во задач(.call файлы в каталоге) - всегда меньше или равно кол-ву операторов. Задачи запрашиваются с сервера системы тикетов через API.
Оператора, который в очереди, соединяет автоматом с клиентом, стратегия - rrmemory
конфиг, упрощенный
Код: Выделить всё
[queue1]
exten => s,1,Answer
exten => s,n,Ringing
exten => s,n,Queue(queue1,n,,,1,,connect); в очередь
exten => s,n,Set(status=4) ; нет доступных оператров
exten => s,n,Hangup; значит вешаем трубку
exten => h,1;// тут отчет
exten => failed,1,Set(status=${REASON}); отчет
[macro-connect]
тут обновляем статус оператора на сервере, их соединило
Сейчас их десятки в день. Поступают жалобы, что был звонок, но когда трубку снял, скинуло. Причем по логам видно, что в момент, когда клиента выкинуло со статусом 4, были свободные операторы(согласно внутренней статистике).
Сменив таймаут с 1 до 5
Код: Выделить всё
exten => s,n,Queue(queue1,n,,,5,,connect);
Подскажите, как посмотреть состояние агента для очереди(доступен ли для соединения в очереди он, например). Или, если можно, по какой причине клиента не стало соединять в очереди с оператором.
Или тут иная причина, что не хочет соединять.