我在下面有一个星号拨号计划示例。它只是主要(没有扩展或启动),它有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'表示
答案 0 :(得分: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”。
答案 1 :(得分: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
答案 2 :(得分:1)
Asterisk按数字顺序执行每个priority,
和在BASIC中一样,您可以使用Goto
跳转到那些Priorities。
自Asterisk 1.2起,您可以使用n
priority。
n
优先级为先前的优先级添加1。
这使您更灵活,您可以添加一行,而无需关心优先级。
n
priority的另一个好处是,您可以将n
优先级与可选标签结合使用,然后跳转到该标签,而不是使用优先级计数器来解决问题。
[incoming]
exten => s,1,Answer()
exten => s,n(Start),Background(hello-world)
exten => s,n,Goto(Start)
exten => s,n,Hangup()
有关更多示例,请参阅GotoIf。
答案 3 :(得分:0)
n
代表下一个优先级。
我们可以使用" n
"来代替优先写数字。表示下一个节点。
我们也可以使用" n
"例如exten => s,n(dosomething)
如果我们在goto
中使用gotoif
或dialplan
条件,则此标签可帮助我们导航到不同的" n
"优先。