星号13中带gosub参数的队列命令



我相信在Asterisk 13中队列命令可以指定gosub,因此一旦双方连接,它将在被叫方的通道(队列成员)上gosub。但是如何传递参数给sub呢?

我试着:

exten => _X.,n,Queue(queue1,,,180,,,setstartcall,s,1(arg_callstarted,${UNIQUEID}))

但是它不工作,我没有在我的子上下文中得到参数。

[setstartcall]
exten => s,1,Set(DB(${ARG1}/${ARG2})=${EPOCH})
exten => s,n,Return()

你应该使用父通道变量setup

exten => _X.,n,Set(__ARG_1=${UNIQUEID}); double underline mean set this variable to same for any child channel created.

放在queue前面

进一步扩展arheops的答案,您可以使用变量继承在堆栈中向下传递变量,如下所示https://wiki.asterisk.org/wiki/display/AST/Variable+Inheritance

因此,正如他们解释的那样,您可以设置一个以两个下划线开头的变量,以便由创建的任何新通道继承,这意味着它可以设置为__FOO,然后稍后引用为${FOO}

因此,把你的例子和他们的答案结合起来:

[incoming] ; Using 'incoming' as the parent context
exten => _X.,n,Set(__UNIQ=${UNIQUEID})
exten => _X.,n,Queue(queue1,,,180,,,setstartcall))
[setstartcall]
exten => s,1,Set(DB(arg_callstarted/${UNIQ})=${EPOCH})
exten => s,n,Return()

希望对你有帮助。

相关内容

  • 没有找到相关文章

最新更新