Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / agent'ы и AGI/etc

agent'ы и AGI/etc

Сообщений: 1530

agent'ы и AGI/etc

Обнаружил странную проблему.
Есть asterisk 1.2 (SVN 16955 на 2006-03-05).
Написал ряд AGI-скриптов для регистрации агентов и сбора статистики по агентам.
Регистрация делается из AGI путем вызова AgentCallbackLogin на отдельный extention agents.
Разрегистрация -- asterisk -rx "agent logoff Agent/XXXX".

Теперь о сути проблемы:
Входящий звонок попадает в очередь, затем на агента.
extention agents описан так:


exten => _XXXX,1,DeadAGI(agentdial.agi)


В agentdial.agi делается вызов DIAL(SIP/XXXX,,g).
Затем я получаю статистику из переменных DIALSTATUS, ANSWEREDTIME и других.

Так вот проблема в том, что application Dial сразу, после поднятия трубки на SIP/XXXX завершает свою работу, т.е. выполняет только функцию соединения.
В нормальной ситуации, Dial ожидает завершения звонка и возвращает корректные переменные.

DIALSTATUS возвращает правильное значение, _НО_ ANSWERDTIME возвращает всегда 0!
Статистику не собрать и т.д. и т.п.

Связь при этом не рвется (канал поднят).
Наличие или отсутствие опции 'g' в Dial положительного эффекта не дают, что и понятно.

Пробовал делать так:


(agents)
exten => _XXXX,1,Hangup


Сижу в очереди, звонки на агента отбиваются по hangup.
Все верно.



(agents)
exten => _XXXX,1,Dial(SIP/0005)
exten => _XXXX,n,NoOp(DIALSTATUS=${DIALSTATUS})
exten => _XXXX,n,NoOp(AnswerTime: ${ANSWEREDTIME} seconds...)


Звонок приходит на SIP/0005 и сразу после поднятия трубки идет переход к следующему приоритету!

Что делать?
Подскажите, куда копать?
И нормальное ли это поведение?
http://www.telecomtechnology.net - premium терминация
2007-02-22 15:59

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru