Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asterisk 我可以在一个上下文中进行匹配,然后在星号拨号计划中包含其他上下文吗?_Asterisk - Fatal编程技术网

Asterisk 我可以在一个上下文中进行匹配,然后在星号拨号计划中包含其他上下文吗?

Asterisk 我可以在一个上下文中进行匹配,然后在星号拨号计划中包含其他上下文吗?,asterisk,Asterisk,我想知道我应该如何在当前上下文中运行一些应用程序,然后切换到另一个上下文(好像它已经被包括在内) 例如,我有几个传入呼叫的上下文,但特别是其中一个,我需要执行一些额外的操作(特别是,我需要Answer()it并将其延迟一秒钟)。那么,假设我有这样的东西: [main-context] include => this include => that [special-context] exten => s,1,Agi(agi://<whatever>} exten

我想知道我应该如何在当前上下文中运行一些应用程序,然后切换到另一个上下文(好像它已经被包括在内)

例如,我有几个传入呼叫的上下文,但特别是其中一个,我需要执行一些额外的操作(特别是,我需要
Answer()
it并将其延迟一秒钟)。那么,假设我有这样的东西:

[main-context]
include => this
include => that

[special-context]
exten => s,1,Agi(agi://<whatever>}
exten => _X.,1,Answer()
 same => n,Wait(1)
include => main-context
[主上下文]
include=>这个
include=>
[特别情况]
extn=>s,1,Agi(Agi://}
扩展=>_X.,1,答案()
相同=>n,等待(1)
include=>main上下文
我希望调用
特殊上下文
以获得
Answer()
ed,然后包含
主上下文
,就好像在
特殊上下文
中没有匹配扩展名一样

(如图所示,我已经在使用
s
-扩展,但它似乎与扩展的正常执行并行运行,因此我认为这不会有什么帮助。)


这可能吗?

您可以使用goto命令

[special-context]
exten => _X.,1,Answer()
exten => _X.,2,Goto(main-context,${EXTEN},1)
另外,我强烈建议您阅读任何一本星号书籍,例如ORelly的《星号电话的未来》

另一种解决方案:

[special-context]
exten => s,1,Agi(agi://<whatever>}
exten => _X.,1,Answer()
 same => n,Wait(1)
 same => n,Dial(Local/${EXTEN}@main-context)
[特殊上下文]
extn=>s,1,Agi(Agi://}
扩展=>_X.,1,答案()
相同=>n,等待(1)
相同=>n,拨号(本地/${extn}@main上下文)
根据,这将调用一个伪通道(chan_local),它将回拨电话放在拨号计划中


我正在启动一个AGI接口(在
s
-扩展中),需要注意的是,额外的
拨号()会干扰您在AGI接口上接收到的信号。对我来说,它工作得更好。

谢谢,这很有效!我假设您不能
转到()
priority 1,因为它没有在
main context
中明确定义。但是你可以!不满足。你甚至可以执行goto to goto->result core hangs in forever循环。它不签入任何变量。如果你没有目标扩展,它只会说“上下文YYY中没有扩展XXXX”,然后执行拥塞或执行“i”扩展就是定义的扩展。