在“已连接”宏中设置CDR字段

时间:2013-11-01 15:15:29

标签: macros asterisk

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

但问题是,“连接”宏是在队列成员的频道中执行的(我认为它应该是来电者的频道)

exten => XXX, n,Queue(sales,tc,,,,,QueueConnected)

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

我可以在队列中使用“c”选项,并且在拨号或成员挂断后拨号方案将继续,但设置CDR值为时已晚,因为它已经发出。

有人可以帮我这个,谢谢。

1 个答案:

答案 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)

像魅力一样工作