asterisk dialplan(extension)学习笔记

列举一些用过的dialplan,记录备忘

exten => 1004,1,Answer();第1步,监听到外部呼入1004这个号码,接听,对方就会看到电话已经接通

exten => 1004,n,Dial(SIP/1004,20,tr);第2步,通过SIP通道,拨打1004这个号码,间隔20

exten => 1004,n,Hangup;挂断

exten => 5,1,Answer()

exten => 5,n,Playback(my_welcome);播放my_welcom这个音频文件,文件后缀可以是wav,mp3等,需要安装对应格式的音频插件

exten => 5,n,Wait(1);wait for 1s

exten => 5,n,Playback(my_dial_inbond);播放my_dial_inbond这个音频文件,作用是提醒对方拨号的规则,例如加拨*,结尾要加#等

exten => 5,n,WaitExten(8); 等待对方操作,超时时间是8秒

exten => 5,n,VoiceMail(home@myvm); 超时后,拨打语言信箱,具体参考voicemail.conf文件中的myvm语言信箱,及对应的账号home中的处理,总之此处已经被voicemail模块接管

exten => 5,n,Hangup

exten => _0XXXXXXXXXXX,1,Dial(SIP/1001,20,D(${EXTEN:0}))

;如果拨号的号码是0打头的12位号码,那么通过SIP通道的1001用户呼出,把去掉0之后的11位号码,以DTMF的方式传递给1001

;这种方式,一般情况下1001是接一个语音网关,网关后面接一个PSTN固话线路,以DTMF方式接收待拨号的号码,并实现外呼

exten => _X.,1,Dial(Mobile/red/${EXTEN},45)

_X.  表示一个号码匹配规则,Mobile/red/${EXTEN} 表示调用chan_mobile通道,red是chan_mobile.conf中配置的具体蓝牙设备,${EXTEN}是实际用户拨号的号码,45是超时时间。

上述dialplan代表一条路由规则,表示所有的号码都路由给red设备处理,类似于路由器中把所有流量转发给某个设备,实际应该不会这么写dialplan,应该是做规则,例如上述0打头的号码才转发。

[mobile-imcoming]

exten => 1001,n,Dial(SIP/1001,20,tr)

exten => 1001,n,Hangup

;上述两个拨号计划与普通的拨号没有差异,唯一区别是加了个名称为[mobile-imcoming]的plan,或者说context,可以把具体场景和context结合,例如可以把来自于webrtc的请求关联到[mobile-imcoming]上,进而转发给1001这个SIP分机;也可以把来自于chan_mobile插件的某个蓝牙手机上的来电,转发到1001这个分机上

你可能感兴趣的:(asteriskt,dialplan)