2012-10-11 105 views
0

我有一个星号拨号方案的例子below.It只是主要(没有扩展或开始),它有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”表示

回答

1

Asterisk的执行按数字顺序每个priority, 和像BASIC,您可以跳转到那些PrioritiesGoto

由于星号1.2,您可以使用npriority

n优先级为先前的优先级加1。

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

npriority另一个好处是,你可以使用n优先级可选标签和跳转,而不是与优先级计数器搞乱角落找寻到那个标签。

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

更多示例参见GotoIf

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

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() 

当使用相同的关键字,你不需要使用的“拨号方案。

0

n代表下一个优先级

我们可以用“n”代替下一个节点来代替优先编号。

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