Asterisk–Dial()
2008-07-08 10:26 pmAsterisk的最有价值的功能是把不同的主叫方连接在一起。在主叫使用不同的通信方式,这一功能尤其有用。例如,主叫A使用标准的模拟电话网络通信,而用户B可能在地球的某个咖啡馆,使用的是ip电话,再假设一个C用的是最可恶的中国移动。
这就是Dial()的作用:
Dial()有四个参数:
第一个参数的使用:由呼叫所采用的技术,反斜线,远地资源等组成。
如 exten=>123,1,Dial(Zap/1)
//在extension 123到达拨号方案,要Asterisk对zap/1通道振铃。当这个extension被执行时,Asterisk会使连接在通道上zap/1的电话振铃。如果电话被接听,Asterisk会桥接zap/1通道的来电。
也可以同时拨多个通道,方法是用&符号把多个被叫地连接起来。
地二个参数的使用:是超时,单位为秒。
如 exten=>123,1,Dial(zap/1,10) ,如果呼叫在超时之前接听,通道就被桥接,拨号方案完成,如果被叫地没有应答,Dial()会继续到该extension的下一个priority。但是如果通道忙,dial()将转到priority n + 101.
例:
Exten => 123,1,Dial(Zap/1,10)
Exten => 123,2,palyback(vm-nobodyavil)
Exten => 123,3,Hangup()
Exten => 123,102,palyback(tt-allbusy)
Exten => 123,103,Hangup()
第三个参数的使用:
可选字符,例r,在通知被叫通道有来电的这段时间内,主叫方会听到振铃的声音。
第四个参数的使用:
Dial()应用的最后一个参量是URL。如果被叫通道支持在呼叫的同时接受URL。
给内部呼叫增加Context
如:
exten => 101,1,Dial(Zap/1,,r)
Exten => john,1,Dial(Zap/1,,r)
Exetn => 102,1,Dial(SIP/jane,,r)
Exten => jane,1,Dial(SIP/jane,,r)
这样在101上的人就可以拿起电话拨打102上的sip/jane。如果voip支持名字的Voip传输来拨号,如上也可以直接输入对方的名字,这样更方便。
PS: 今天PPT上总结的一些东西,记录一下。

