FreeSwitch中配置分机让网关直接注册

/ 0评 / 0

在使用freeswitch的时候,通常搭配网关使用运营商的模拟线路或者数字中继线路,IP TO IP的方式对接。
或者freeswitch在中去注册到其它如vos的线路,也是比较方便的。
在一些特殊的场景下面,线路对方或者网关设备需要注册到freeswitch。

在工作中遇到了这样的情况,网上教程比较少,自己摸索了一下。

1、首先在配置中生成这样的分机,如5000,5001……,重启或加载配置成功。

2、这时候网关就可以注册过来了。

3、这时候看如何外呼。其它的分机可以呼到这个分机上,但要送电话出去的话,主被叫得改掉,主叫送线路上要送的号码,被叫送手机,而不是直接送给分机就完了。问题就在这里。

首先,拨号方案可以在dialplan里面这样写。

<extension name="hisancc_custom_trunk_pattern_1" continue="true">
<condition field="destination_number" expression="^9([0-9].+)$">
 <action application="set" data="continue_on_fail=true" />
 <action application="set" data="call_timeout=60" />
 <action application="set" data="effective_caller_id_name=96111" />
 <action application="set" data="effective_caller_id_number=96111" />
 <action application="export" data="sip_cid_type=rpid" />
 <action application="set" data="bypass_media=false"/>
 <action application="set" data="hangup_after_bridge=true" />
 <action application="bridge" data="${regex(${sofia_contact(internal/5002@${domain_name})}|^(.*)sip:5002@(.*)|%1sip:$1@%2)$}"/>
</condition>
</extension>

bridge里面还可以这样写:

<action application="bridge" data="${regex(${sofia_contact(internal/5002@${domain_name})}|^(.+)sip:(.+)@(.+)|%1sip:$1@%3)}"/>

这样就只剩下一个5002表示注册上来的分机。

要看freeswitch上面,该分机的注册地址,可以在命令行里面输入:sofia_contace 5001

显示地址:sofia/hisancc_sipinterface/sip:5002@192.168.1.252;transport=UDP

这样,比如分机拨打:918602336666的时候,会把18602336666送到252这个网关上面,而不是被叫5002,这样网关才可以将这通电话呼出去。

发表评论

电子邮件地址不会被公开。 必填项已用*标注