0

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

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

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

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

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

谁能帮帮我,谢谢。

4

1 回答 1

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)

奇迹般有效

于 2013-11-01T16:21:04.137 回答