在拨号方案中使用变量可以减少打字、增加清晰度,也有助于在拨号方案中加入逻辑. 这里的变量有全局变量,通道变量和环境变量。
1.全局变量
全局变量应该在extensions.conf文件的开始利用[globals]这个context定义或利用 SetGlobalVar()应用.如: [globals] 80000=Zap/1 或 [internal] exten => 123,1,SetGlobalVar(80000=Zap/1)。
2 .通道变量
通道变量与特定的呼叫相关的变量,通道变量只能在当前呼叫存在其间定义,并只能用于参与该呼叫的通道.通道变量使用 Set()应用来设置.如: exten => 601,1,Set(80000=Zap/1)。
3. 环境变量
环境变量是一种在 Asterisk 中访问操作系统环境变量的方法.这些变量以${ENV(var)}形式引用,其中的 var 是所要引用的操作系统环境变量。
综合上面举例:
[globals]
PSTN=Zap/1
TEST=SIP/80000
[test]
exten => s,1,Answer()
exten => s,2,Background(enter-ext-of-person)
exten => 101,1,Dial(${PSTN},10)
exten => 101,2,Playback(vm-nobodyavail)
exten => 101,3,Hangup()
exten => 101,102,Playback(tt-allbusy)
exten => 101,103,Hangup()
exten => 102,1,Dial(${TEST},10)
exten => 102,2,Playback(vm-nobodyavail)
exten => 102,3,Hangup()
exten => 102,102,Playback(tt-allbusy)
exten => 102,103,Hangup()
exten => i,1,Playback(pbx-invalid)
exten => i,2,Goto(incoming,s,1)
exten => t,1,Playback(vm-goodbye)
exten => t,2,Hangup() [default]
exten => 101,1,Dial(${PSTN},,r)
exten => 102,1,Dial(${TEST},,r)