在宏中设置 CDR 字段"connected"



我正在使用Asterisk的队列应用程序。当队列成员接听调用方的呼叫时,我想设置一些 CDR 变量。

但问题是,"连接"宏是在队列成员的通道中执行的(在我看来应该是调用方的通道)

exten => XXX, n,Queue(sales,tc,,,,,QueueConnected)
[macro-QueueConnected]
exten => s,1,NoOp()
exten => s,n,Set(CDR(somevar)=someval)

我可以对队列使用"c"选项,拨号计划将在呼叫者或成员挂断后继续,但现在设置 CDR 值为时已晚,因为它已经发出。

谁能帮我解决这个问题,谢谢。

所以我通过使用HangupHandlers解决了这个问题

exten => XXX, n,Set(CHANNEL(hangup_handler_push)=_hnd,s,1);
exten => XXX, n,Queue(sales,tc,,,,,QueueConnected)
[_hnd]
exten => s,1,NoOp()
exten => s,n,Set(CDR(somevar)=someval)

像魅力一样工作

最新更新