Страница 3 из 3

Re: После Queue диалплан не выполняется.

Добавлено: 05 окт 2010, 19:26
mthawk
По логике - оба абонент и агент queue положили трубку, звонок завершен (я провожу аналогии с Dial).
Почему в логе не появляется запись о том, что звонок COMPLETE?
И происходит это только когда заканчиваются все приорити экстена...

Как тогда обработать звонок? Получить данные / занести данные?

Re: После Queue диалплан не выполняется.

Добавлено: 05 окт 2010, 19:41
ded
1. Использовать готовые наработки (выше указывалось какие)
2. Писать свои (AMI интерфейс и РНР)

Re: После Queue диалплан не выполняется.

Добавлено: 06 окт 2010, 10:30
mthawk
ded, (2) - так именно этим и занимаюсь!
И вот такие возникают проблемы! Которыми делюсь тут!
И получаю рекомендации "Писать свои наработки" :))
Замкнутый круг какой-то.

И если уже кто-то это написал - значит это как-то выполняется.
У меня пока 3 варианта:
1 - заполнять недостающие данные из интерфейса просмотра при первом обращении к таблице.
2 - Использовать триггер sql на вставку в таблицу
3 - Из контекста h формировать call-файл, который запустит какой-то экстен, который запустит AGI, который заполнит необходимые данные.

И оба три :)) для меня выглядят невероятно костыльными.

Re: После Queue диалплан не выполняется.

Добавлено: 06 окт 2010, 12:31
ded
Если (2) то обсуждать можно свои конкретные костыли. Которые могут понять примерно такие-же нуждающиеся в костылях. Но они пишут свои костыли, обсуждать чужие - влом, так что или писать и разбираться в своих самому, или (1).

P.S. Забыл, ещё есть платный суппорт. В вашем случае - это дать задание на аутсорс.

Re: После Queue диалплан не выполняется.

Добавлено: 06 окт 2010, 13:03
mthawk
ded, если бы наши предки искали кому бы дать задание на аутсорс, что бы не пробивать головой встающие перед ними проблемы - мы до сих пор бы бегали по каменистым пустыням и джунглям с палками наперевес :)

В общем какое-ни-какое а решение. Как это заработало у меня:

По методу, предложенному тут switch я сделал перенаправление queue_log в sql.
В экстене 'h' контекста для обработки очереди запускается AGI, который по uniqueid звонка заносит начальные данные в нужную мне таблицу из queue_log по событиям ENTERQUEUE и CONNECT (если имеется).
После чего формирует call-файл с вызовом Local/s@fixsupportcontext и передачей uniqueid через CALLERID(name).
Завершается.
В fixsupportcontext запускается другой AGI который получает uniqueid из calleridname, выбирает из queue_log появившиеся уже там данные и делает update нужной мне таблицы.

Экзотичность метода зашкаливает, но оно работает.