freeswitch服务器级联设置

  假设局域网络有两台ip为192.168.1.A和192.168.1.B的计算机,现在注册到192.168.1.A上1001的需要拨打注册到192.168.1.B的用户1002

  方法一:通过192.168.1.B本地用户实现

  此种方法优点是注册到192.168.1.B的网关都需要鉴权才能注册,增加了安全性;缺点是需要在192.168.1.B上解决“主叫号码透传问题”,192.168.1.B上的用户显示的来电号码都是1000

    1. 在192.168.1.A上conf/sip_profiles/external/配置一个到192.168.1.B的网关
      <include>
              <gateway name="b">
                     <param name="realm" value="www.example.com"/>
                      <param name="register-proxy" value="192.168.1.B"/>
                      <param name="username" value="1000"/>
                      <param name="password" value="1234"/>
                      <param name="from-user" value="4444"/>
                      <param name="from-domain" value="www.example.com"/>
                      <param name="register" value="true"/>
                      <param name="outbound-proxy" value="192.168.1.8"/>
                      <param name="expire-seconds" value="120"/>
              </gateway>
      </include>

       

      简单的介绍一些这几个参数:

          realm:域名

          username:认证的用户名

          password:认证的密码

          from-user:指定在SIP消息中的源用户信息,没有配置则默认和username相同

          from-domain:是指定域,它们会影响SIP中的“From”头域。注册到192.168.1.A中的用户拨号时将直接路由到192.168.1.B上的对应Context。

          regitster-proxy:表示注册的地址

          outbound-proxy:表示呼出时指向的地址,这里其实和注册地址是一致的

          register:是否注册,认证模式为true,非认证模式为false

          expire-seconds:注册的间隔时间

    2. 在192.168.1.A上conf/diaplan/default.xml 中加入
      <extension name="B">
        <condition field="destination_number" expression="^0(.*)$">
          <action application="bridge" data="sofia/gateway/b/$1"/>
        </condition>
      </extension>

  方法二:网关通过IP进行注册

  此种方法有点是在192.168.1.B上不用分别为每个192.168.1.A开通用户;缺点是网关注册不需要鉴权,任何人都可以向192.168.1.B进行网关注册

    1. 在192.168.1.A上conf/sip_profiles/external/配置一个到192.168.1.B的网关
      <gateway name="gw1">
      	<param name="proxy" value="192.168.1.B:5060"/>
      	<param name="realm" value="192.168.1.B:5060"/>
      	<param name="register" value="false"/>
      	<param name="rtp-autofix-timing" value="false"/>
      	<param name="caller-id-in-from" value="true"/>
      </gateway>
    2. 在192.168.1.A上conf/diaplan/public.xml 中加入
      <extension name="gw1">
      	  <condition field="destination_number" expression="^0(.*)$">
      		<action application="bridge" data="sofia/gateway/gw1/$1"/>
      	  </condition>
      </extension>  
    3. 在192.168.1.B上conf/diaplan/public.xml中加入
      <extension name="gw1_Extension">
        <condition field="network_addr” expression=”^192\.168\.1\.A$">
         <action application="transfer" data="${destination_number} XML default"/>
        </condition>
      </extension>
    4.  在192.168.1.B上配置acl接受来自192.168.1.A的IP鉴权;在节点名为“domains”中加入子节点,如下:

      <list name="domains" default="deny">
          <node type="allow" cidr="192.168.1.A/24" />
      </list>
posted @ 2021-03-09 10:45  clshijie  阅读(745)  评论(0)    收藏  举报