Asterisk 13.17.0 во Freepbx
Хочу писать в cdr имя агента, который ответил на вызов.
Модифицировал контекст вызова очереди след образом:
exten => 500,n(qcall),Queue(500,${QOPTIONS},,${QAANNOUNCE},${QMAXWAIT},${QAGI},,set-accountcode,s,1,${QRULE},${QPOSITION})
Т.е. добавил опцию вызова Gosub когда оператор отвечает на звонок. Вот сам контекст, который вызывается очередью:
[set-accountcode]
exten => s,1,Set(CHANNEL(accountcode)=${MEMBERNAME})
exten => s,n,Verbose(<<<<<<<<<<<<<<set as ${MEMBERNAME}>>>>>>>>>>>>>>>)
exten => s,n,Return
В консоли видно как отрабатывает Verbose, показывая значение переменной MEMBERNAME (она не пустая), значит при ответе оператора контекст set-accountcode выполняется и переменная accountcode устанавливается. Но в базе cdr поле accountcode записи этого звонка пустое. Не записывается оно никак.
Если же установить accountcode ПЕРЕД вызовом Queue, то в базу оно попадает корректно.
Как обновлять accountcode во время выполнения Queue?
спросил
2019-03-13 21:35:14 +0400
Merk 11 ● 4 ● 4