2

我正在尝试创建一个入站呼叫应用程序,其中呼叫者呼叫 Asterisk ,呼叫者通道识别要从 DB 拨号的分机,然后 Asterisk 发起对该分机的呼叫,然后创建一个会议,呼叫者循环进入会议。我正在使用 Originate 应用程序和 ConfBridge。我面临的挑战是:1)调用者通道中标识的变量不会继承到 calle(extension) 通道,尽管我的变量使用了 __ 前缀。2)然后我决定使用星号数据库。通过使用 ${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 中,不会将值继承到操作员通道。

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

谢谢。

4

1 回答 1

0

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

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

于 2015-12-05T16:17:45.560 回答