Asterisk ConfBridge在拨号计划中共享通道变量



Am试图创建一个入站呼叫应用程序,在呼叫者呼叫Asterisk时,呼叫者通道从DB中识别出要拨号的扩展,然后Asterisk发起对该扩展的呼叫,该扩展创建一个会议,呼叫器被循环到会议中。正在使用Originate应用程序和ConfBridge。我面临的挑战是:1) 调用方通道中标识的变量不会继承到被调用方(扩展)通道,尽管我的变量使用了__前缀。2) 然后我决定使用Asterisk数据库。通过使用${UNIQUEID}作为键来存储我的值,从而检索不同通道中的变量。这被证明是徒劳的,因为在为我的第二个通道使用Originate应用程序时,UNIQUEID也会发生变化。

以下是我的应用程序的简化版本(方法1):

    [local]
exten = main,1,Answer()
exten = main,n,Set(__operator=201005)
exten = main,n,GoSub(operator,logintoconf,1)
exten = main,n,GoSub(caller,logintoconf,1)

[caller]
exten = logintoconf,1,ConfBridge(${operator},escalationbridge,caller)
exten = logintoconf,n,Return()
[operator]
exten = logintoconf,1,Originate(SIP/201005,exten,handler-callee,callee,1)
exten = logintoconf,n,NoOp("Call complete" ${DIALSTATUS} )
exten = logintoconf,n,Return()

[handler-callee]
exten = callee,1,Set(CHANNEL(hangup_handler_push)=hangup-callee,s,1)
exten = callee,n,NoOp(handler-callee................)
exten = callee,n,ConfBridge(${operator},escalationbridge,operator)
[hangup-caller]
exten = s,1,NoOp("Hangup caller" ${CHANNEL} )
exten = s,n,Hangup
exten = s,n,Return()
[hangup-callee]
exten = s,1,NoOp("Calleee Hangup " ${CHANNEL} )
exten = s,n,Hangup
exten = s,n,Return()

在上面的__operator中,不将值继承到operator通道。

感谢任何可以帮助我使用拨号计划共享变量的输入。

谢谢。

您只能在继承的通道中继承。由于您正在创建新通道,因此它们无法继承。

您可以将全局变量名发送到第二、第三等通道或使用SHARED函数。

最新更新