学习 Dialplan 5.宏指令

宏指令和 上下文 基本一样,宏指令的定义如下:

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

说明:

1、宏指令名字的定义:macro-name 必须要以 macro- 开头。

2、宏指令中的 extension 只能用 s 表示,这下应该就能明白上篇例子中的s了

既然用到了宏,那么其中的像 分机 等就都需要用变量来表示了,宏中预定义变量:

${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() 应用 :

1、其中第一个参数就是 宏的名字但不需要macro-前缀,

2、然后后面一个 ${JOHN} 这个参数就是宏中的 ${ARG1} 

3、宏中的 ${MACRO_EXTEN} 那就是 exten =>101,1,Macro(voicemail, ${JOHN}) 这个里面的101

你可能感兴趣的:(学习 Dialplan 5.宏指令)