Attended transfer и variable inheritance
Добавлено: 15 окт 2013, 18:01
Всем хорошего настроения!
Есть задача сделать так, чтобы при сохранении логов звонков в базу все звонки, которые были выполнены друг за другом при помощи transfer в очередь (как blind, так и attended), были связаны при помощи одного общего id для логов во внешней БД. Назовём его callchain.
Я попробовал решить эту задачу при помощи наследуемой переменной (__CALLCHAIN).
Вот тестовый вариант, который выводит и назначает одинаковый ID для проверки наследуемости переменных, в финальном будет использоваться AMI:
Далее я звоню в очередь 2804, беру трубку с агента этой очереди и трансферю звонок в очередь 2803
Так вот, если я делаю blind transfer - всё хорошо:
А если я делаю attended transfer - то переменная не передаётся:
Нормальное ли это поведение и это как-то связано с тем, что канал звонка агента из 2804 в очередь 2803 не имеет отношения к предыдущему, и надо использовать какие-то внешние состояния типа asterisk db, либо у меня что-то не так настроено и есть способ заставить переменную передаваться при attended transfer в канал-супервизор?
Есть задача сделать так, чтобы при сохранении логов звонков в базу все звонки, которые были выполнены друг за другом при помощи transfer в очередь (как blind, так и attended), были связаны при помощи одного общего id для логов во внешней БД. Назовём его callchain.
Я попробовал решить эту задачу при помощи наследуемой переменной (__CALLCHAIN).
Вот тестовый вариант, который выводит и назначает одинаковый ID для проверки наследуемости переменных, в финальном будет использоваться AMI:
Код: Выделить всё
[macro-callchain]
exten => s,1,NoOp(CALLCHAIN)
exten => s,2,Set(__CALLCHAIN=1234)
[queues]
exten => 2803,1,Macro(callchain)
exten => 2803,2,Queue(noc,tT,,,600)
exten => 2804,1,Macro(callchain)
exten => 2804,2,Queue(support,tT,,,600)
Так вот, если я делаю blind transfer - всё хорошо:
Код: Выделить всё
тут мы звоним в 2804:
NoOp("")
....
тут мы трансферим в 2803:
NoOp(1234)
Код: Выделить всё
тут мы звоним в 2804:
NoOp("")
....
тут мы трансферим в 2803:
NoOp("")