2012-10-11 90 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」優先級。