星号拨号计划优先级



我在下面有一个星号拨号计划示例。它只是主要的(没有扩展或开始),它有 3 个优先级。在分机的第一优先级中,我们将应答呼叫。在第二个中,我们将播放一个名为hello-world.gsm的声音文件,在第三个中,我们将挂断电话。

网络上的一个例子似乎建议以下格式

[incoming]
exten => s,1,Answer()
exten => s,n,Playback(hello-world)
exten => s,n,Hangup()

而不是

[incoming]
exten => s,1,Answer()
exten => s,2,Playback(hello-world)
exten => s,3,Hangup()

为什么会这样?究竟什么是优先级?'n'代表什么

执行此操作

的最佳方法如下

exten => s,1,Answer() ;answer the call
same => n,playback(youfilename) ;understand that Asterisk will pick the best format to play
same => n,Hangup()

使用相同的关键字时,不需要在拨号计划中使用"s"。

Asterisk按数字顺序执行每个优先级,就像在 BASIC 中一样,您可以使用 Goto 跳转到那些优先级。

从Asterisk 1.2开始,您可以使用n优先级。

n优先级将上一个优先级加 1。

这使您更加灵活,您可以添加一条线,而无需关心优先级。

n优先级的另一个好处是,您可以将n优先级与可选标签一起使用并跳转到该标签,而不是弄乱优先级计数器。

[incoming]
exten => s,1,Answer()
exten => s,n(Start),Background(hello-world)
exten => s,n,Goto(Start)
exten => s,n,Hangup()

有关更多示例,请参阅 GotoIf。

您还可以在Asterisk 1.6+上使用"same"结构节省一些键入:

[incoming]
exten => s,1,Answer()
 same => n(Start),Background(hello-world)
 same => n,Goto(Start)
 same => n,Hangup()

。如果您正在执行大型拨号计划,并且在不同部分(例如IVR)之间进行一些剪切-粘贴-调整,则使用"相同"可以避免分机号码出错。

延伸阅读: https://wiki.asterisk.org/wiki/display/AST/Contexts,+Extensions,+and+Priorities

n代表下一个优先级

代替写数字的优先级,我们可以用"n"来表示下一个节点

我们也可以使用带有"n"的标签,例如 exten => s,n(dosomething)如果我们在dialplan中使用gotogotoif条件,那么这个标签可以帮助我们导航到不同的"n"优先级。

相关内容

  • 没有找到相关文章

最新更新