Добрый день.
Asterisk 1.8. Обработка очереди:
[queue-work]
exten => s,n,Answer()
exten => s,n,Wait(2)
exten => s,n,Playback(test/privetstvie_work)
exten => s,n(in),Queue(technical,tTk)
exten => s,n,Hangup()
Нужна помощь, вопрос такой: звонок пришел в контекст queue-work,клиент слушает приветствие 10 секунд, дальше загоняем клиента в очередь technical, он ждет пока ему ответят, не дожидается и кладет трубку. Смотрю логи, а в логах статус - ANSWERED. Причем если прослушать только приветствие - это 10 сек, и не дослушать его и положить трубку статус все равно ANSWERED. Как так? Это не правильно, можно ли сделать так, чтобы статус Answered появлялся только после того, как агент поднял трубку? И если клиент не дождался своей очереди и положил трубку был бы статус например BUSY или NO ANSWERED ?
Answer всегда, потому как команда Playback как правило переводит канал в ответившее состояние.
ForkCDR или ResetCDR пробуй.
Если вам нужно знать момент ответа агентом - нужно смотреть записи queue_log (его можно хранить как и CDR в БД, а не в файле). Там хранятся все события происходящие в очереди (перебор агентов, момент ответа, перевод вызова и пр.)
Приложение Queue всегда производит ответ на вызывающем канале, в то время как Playback может этого и не делать.
Задан: 2011-07-27 12:07:39 +0400
Просмотрен: 946 раз
Обновлен: Dec 22 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.