一号双机业务就是主叫拨打被叫的一个电话号码,而被叫绑定的两个或多个电话同时振铃,哪个先接听都可以,第一个接听后其他电话停止振铃。
传统交换机中实现如此功能大多是采用智能网平台(IN),对于YATE这样的软交换平台可以较容易的实现。具体方法如下。
实现原理:还是在路由模块来下手,当路由模块接收到路由请求后,如果符合被叫号码条件,则对被叫绑定的两个电话同时发起呼叫(SIP:Invite),直到其中一个接听,然后释放其他的呼叫(SIP:Cancel)。这可以通过YATE的fork和regexroute模块实现。
fork模块
fork模块用于把一个呼叫路由到多个可选择的目的地。有两种基本用法。按顺序呼叫,如果第一个失败则执行后面的呼叫,否则完成接续。
^.*$=fork sip/sip:@host1 | h323/@host2 | sip/sip:@host3;stoperror=busy
上面的例子如果呼叫9999,首先将呼叫转移到sip:9999@host1,如果sip:9999@host1接受呼叫,则完成路由;如果呼叫失败则将呼叫转至h323/9999@host2,依次类推。
^.*$=fork sip/sip:@host1 h323/@host2 sip/sip:@host3;stoperror=busy
上面的例子如果呼叫9999,则YATE会同时呼叫sip:9999@host1、h323/9999@host2、sip:9999@host3,只要有其中一个接听,则取消到其他两个的呼叫。如果全部不成功则回送忙音。
一号双机
根据fork模块的解释,我们当然很清楚可以采用第二种方法轻松实现一号双机了:
^99998888$=fork sip/sip:[email protected] sip/sip:[email protected]
这样呼叫99998888用户时,会同时呼叫99998888和99997777两个用户,实现了一号双机!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kernelspirit/archive/2008/08/01/2753443.aspx