宏指令和 上下文 基本同樣,宏指令的定義以下: spa
[macro-voicemail]
exten =>s, 1, Dial(${ARG1}, 10, r)
exten =>s,2, voicemail (u${MACRO_EXTEN}@default)
exten =>s, 102, voicemail (b${MACRO_EXTEN}@default) io
說明: email
一、宏指令名字的定義:macro-name 必需要以 macro- 開頭。 變量
二、宏指令中的 extension 只能用 s 表示,這下應該就能明白上篇例子中的s了 mail
既然用到了宏,那麼其中的像 分機 等就都須要用變量來表示了,宏中預約義變量: 參數
${MACRO_CONTEXT} ;這個被調用的宏中,初始的上下文
${MACRO_EXTEN} ;這個被調用的宏中,初始的extension
${MACRO_PRIORITY} ;這個被調用的宏中,初始的優先級
${ARGn};傳遞到宏指令的第n個變量。如第一個變量 ${ARG1}
而後就是在 Dialplan 中調用咱們的宏:
exten =>101,1,Macro(voicemail, ${JOHN})
exten =>102,1, Macro(voicemail, ${JANE})
exten =>103,1, Macro(voicemail, ${JACK})
使用 Macro() 應用 :
一、其中第一個參數就是 宏的名字但不須要macro-前綴,
二、而後後面一個 ${JOHN} 這個參數就是宏中的 ${ARG1}
三、宏中的 ${MACRO_EXTEN} 那就是 exten =>101,1,Macro(voicemail, ${JOHN}) 這個裏面的101