[笔记]公网环境使用内网FreeSWITCH的线路呼出

    技术2022-07-12  90

    目录

    1、内网FS注册到公网FS上2、公网FS路由3、内网FS路由4、使用软电话注册和拨打电话

    内网有一台FreeSWITCH配置有SIP线路,手机在内网环境时,可以软电话直接注册到FS上从而使用SIP线路呼出,但是在公网环境时没有VPN则不方便使用。

    如果在公网环境有一台服务器,可以在上面部署一台FS,将内网的FS注册到公网的FS上面,软电话注册到公网FS,再通过内网的FS从内网的线路呼出。

    1、内网FS注册到公网FS上

    在 conf/sip_profiles/external/ 目录中新建一个网关配置

    <include> <gateway name="GWFS"> <param name="realm" value="1.2.3.4:5080"/> <!-- 公网FS的IP和服务端口 --> <param name="username" value="1003"/> <!-- 任意一个未注册的分机 --> <param name="password" value="password"/> <param name="extension-in-contact" value="true"/> <!-- 使Contact中的SIP地址为1003分机号而不是“gw+” --> <param name="ping" value="25"/> <!-- 避免过一段时间就找不到用户 --> </gateway> </include>

    在 fs_cli 中执行 sofia profile external register GWFS 或 sofia profile external rescan 注册该分机。

    注册成功在公网FS fs_cli 中执行 show registrations 应该可以看到成功注册的 1003 分机。

    2、公网FS路由

    在default dialplan中进行路由,将呼叫 bridge 到内网FS,并将Contact中的 1003 换成要拨打的号码。

    <extension name="FS"> <condition field="destination_number" expression="^(00.*)$"> <action application="bridge" data="${regex(${sofia_contact(internal/1003)}|^(.*)sip:1003@(.*)|%1sip:$1@%2)}"/> </condition> </extension>

    这里的 1003 是第1步注册使用的分机号, 00 是路由过滤的前缀,外拨时需要加到号码前。

    3、内网FS路由

    在public dialplan中进行路由,将呼叫 bridge 到线路网关。

    <extension name="FS pub"> <condition field="destination_number" expression="^00(.*)$"> <action application="bridge" data="sofia/gateway/GWSIP/$1"/> </condition> </extension>

    这里的 GWSIP 是线路网关的名字。

    4、使用软电话注册和拨打电话

    使用时,公网环境中的手机软电话先注册到公网FS上,然后拨打 0018812345678 即可使用内网的SIP线路呼出,显示的号码为线路的外显号码。

    Processed: 0.009, SQL: 9