星期一, 5月 28, 2007

Asterisk extensions.conf (二)

extensions.conf

設計撥號規則 (二)
-----------------------------------------------------------------
通常我們會將 extensions.conf 切分成好幾個檔,
然後再 include 進來 , 這樣比較好做規劃

例如: 將從 FXO 進線的撥號規則存入 fxo_incoming.conf ,
從 SIP 進線的撥號規則存入 sip_incoming.conf

在 extensions.conf 中 , 就可以用
;;; For fxo incoming
#include fxo_incoming.conf
;;; For sip incoming
#include sip_incoming.conf
將其檔案 include 進來 , 另外要注意的是有另一種 include ,
是 include context , 而非 include 檔案

例如在 extensions.conf 中

[test_context]
exten => 1234,1,Answer
.....
.....
;;; include context : test2_context
include test2_context

[test2_context]
exten => 2345,1,Answer
....
....

即表示 context [test_context] , 包括 [tests_context] 這個 context 內容
亦即 context [test_context] 設定為
exten => 1234,1,Answer
.....
.....
exten => 2345,1,Answer
....
....

--------------------------------------------------------------------------------
Asterisk 使用以下特殊用途 extension 名稱:

* i : 使用者按下沒有定義的 extension 號碼
* s : Start extension in context
* h : Hangup extension
* t : Timeout extension
* T : AbsolutTimeout() extension
* o : Operator extension, used for operator exit by pressing zero in voicemail
--------------------------------------------------------------------------------
Macro (巨集)
範例:
Using a macro to create extensions
[globals]
PHONE1=Zap/1
PHONE2=SIP/6002

;;; Macro(oneline,${PHONE1},${PHONE2},${PHONE3}....)
;;; ${ARG1} 就等於 ${PHONE1} , ${ARG2} 就等於 ${PHONE3} 依此類推 ...
[macro-oneline]
exten => s,1,Dial(${ARG1},20,t)
exten => s,2,Voicemail(u${MACRO_EXTEN})
exten => s,3,Hangup
exten => s,102,Voicemail(b${MACRO_EXTEN})
exten => s,103,Hangup

[local]
exten => 6601,1,Macro(oneline,${PHONE1})
exten => 6602,1,Macro(oneline,${PHONE2})

沒有留言: