0

我在下面有一个星号拨号计划示例。它只是主要的(没有分机或开始),它有 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' 是什么意思

4

4 回答 4

3

执行此操作的最佳方法如下

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”。

于 2012-10-11T15:01:20.717 回答
2

您还可以使用 Asterisk 1.6+ 上的“相同”构造来节省一些输入:

[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

于 2012-10-11T07:40:04.653 回答
2

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

于 2012-10-11T07:02:46.860 回答
0

n代表下一个优先级

我们可以用“”代替优先级中的数字n来表示下一个节点

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

于 2015-10-28T17:57:16.767 回答