1: TIMEOUT(absolute) 设置整个从电话呼入开始的时长
exten => _x.,1,Answer() exten => _x.,n,Set(TIMEOUT(absolute)=6000) ;设置整个通话时长不超过6000秒 exten => _x.,n,Dial(SIP/8001,10) exten => _x.,n,Hangup()
2:Authenticate() 的应用 // 在拨号规则中加入输入密码才能执行下面的流程
exten => 8100,1,Answer() exten => 8100,n,Authenticate(1111) ;设置密码为1111,将会提示请输入密码== exten => 8100,n,Playback(11) ;密码输入正确才能执行这一步
3:ringing() 有微鸣的振铃声
exten => 8100,1,Answer() exten => 8100,n,ringing() //这一步,产生主机分机有振铃声 exten => 8100,n,Dial(SIP/8100) exten => 8100,n,Hangup()
4:ZapBarge(channel) //监听某一通道通话,如ZapBarge(1) 不带参数将有提示监听哪个通道
exten => 8888,1,Answer() exten => 8888,n,ZapBarge() //这里会有语音提示监听哪个通道, exten => 8888,n,Hangup()
5:busy(5) 发送5秒忙音,忙音后的动作将不执行
6:SayNumber(123) 说出完整的数字,如:一百二十三
7:SayAlpha(string)
说出字符,或数字
如: SayAlpha (abc) 则是 a b c
SayAlpha (123) 则是 一 二 三
8:ChanSpy() //监听函数。 如:下面将监听8001的电话
exten => _x.,1,Answer() exten => _x.,n,ChanSpy(SIP/8001) exten => _x.,n,ChanSpy(SIP/8001,w) //和8001强制通话
9:宏macro
个人理解是 像类中封装 ,写好,然后调用
语法:[macro-MACRONAME]
exten => s,1,action exten => s,n,action exten => s,n,action
例:[macro-jh]
exten => s,1,DIAL ;宏指令只能用"s"extension。
Macro()程序也定义了几种特别的变量来为我们使用。它们包括: ${MACRO_CONTEXT} 这个被调用宏中,初始的context ${MACRO_EXTEN} 这个被调用宏中,初始的extension ${MACRO_PRIORITY} 这个被调用宏中,初始的priority ${MACRO_OFFSET} 宏返回后从${MACRO_OFFSET}+n+1的priority处执行 ${ARGn} 传递到宏指令的第n个变量。例如第一个自变量是${ARG1},第二个是${ARG2}
例子:
[macro-jh] ;定义一个宏jh exten => s,1,Answer() exten => s,n,Dial(SIP/${MACRO_EXTEN}) exten => s,n,Hangup() [aaa] exten => s,1,Macro(jh) ;直接调用宏jh