我正在使用Asterisk的队列应用程序。当队列成员接听到呼叫者的呼叫时,我想设置一些CDR变量。
但问题是,“连接”宏是在队列成员的频道中执行的(我认为它应该是来电者的频道)
exten => XXX, n,Queue(sales,tc,,,,,QueueConnected)
[macro-QueueConnected]
exten => s,1,NoOp()
exten => s,n,Set(CDR(somevar)=someval)
我可以在队列中使用“c”选项,并且在拨号或成员挂断后拨号方案将继续,但设置CDR值为时已晚,因为它已经发出。
有人可以帮我这个,谢谢。
答案 0 :(得分:0)
所以我通过使用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)
像魅力一样工作