Asterisk ConfBridge在拨号方案中共享频道变量

时间:2015-12-05 05:27:01

标签: asterisk conferencing

我试图创建一个入站呼叫应用程序,在呼叫者呼叫Asterisk时,呼叫者通道识别从DB拨打的分机,然后Asterisk发起对该分机的呼叫,并且该呼叫会创建一个会议并且呼叫者循环到此次会议。我使用的是Originate应用程序和ConfBridge。我面临的挑战是: 1)尽管在我的变量中使用__前缀,但调用者通道中标识的变量不会继承到calle(扩展)通道。 2)然后我决定使用Asterisk DB。通过使用$ {UNIQUEID}作为键来存储我的值,从而检索不同通道中的变量。这证明是徒劳的 - 因为在我的第二个频道使用Originate应用程序时,UNIQUEID也会有所不同。

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

    [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中,不会将值继承到运营商渠道。

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

感谢。

1 个答案:

答案 0 :(得分:0)

您只能在继承的渠道中继承。由于您要创建新频道,因此无法继承。

您可以发送到第二个,第三个等通道全局变量名称或使用SHARED功能。