FreeSwitch sip profiles multi domain

Примеры и пояснения использования 3-х sip profiles для регистрации:

  1. абонентов из локальной сети.
  2. абонентов из публичных сетей.
  3. SIP gateways (транков).

vars.xml

   <X-PRE-PROCESS cmd="set" data="external_ip=123.123.123.123"/>
   <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>

Internal:Sip profile local network

файл: ../conf/sip_profiles/internal.xml

Профиль для регистрации пользователей из локальной сети, в примере - 192.168.0.0/16

  • <param name="apply-inbound-acl" value="192.168.0.0/16"/>
  • <param name="apply-register-acl" value="192.168.0.0/16"/>

Обратите внимание, что устройства из этих подсетей, смогут звонить (apply-inbound-acl) и регистрироваться (apply-register-acl) - без указания пароля.

  • <param name="auth-calls" value="true"/>

Параметр auth-calls включает проверку ACL, т.е. разрешает использование параметров apply-inbound-acl и apply-register-acl.

<profile name="internal">
  <gateways>
      <X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
  </gateways>

  <settings>
    <param name="apply-inbound-acl" value="192.168.0.0/16"/>
    <param name="apply-register-acl" value="192.168.0.0/16"/>
    <param name="auth-calls" value="true"/>

    <param name="debug" value="1"/>
    <param name="sip-trace" value="no"/>

    <param name="dialplan" value="XML"/>
    <param name="context" value="default"/>
    <param name="codec-prefs" value="$${global_codec_prefs}"/>

    <param name="rtp-ip" value="$${local_ip_v4}"/>
    <param name="sip-ip" value="$${local_ip_v4}"/>
    <param name="ext-rtp-ip" value="auto-nat"/>
    <param name="ext-sip-ip" value="auto-nat"/>
    <param name="sip-port" value="5060"/>
        <param name="rtp-autofix-timing" value="false"/>

  </settings>

external: sip profile для исходящих регистраций

SIP профиль «external» используется для регистраций SIP транков.

Для этого, в примере выделен порт 5080.

Команда «include» указывает директорию, в которой будут размещены конфиги SIP транков (Gateways).

<gateways> <X-PRE-PROCESS cmd="include" data="external/*.xml"/> </gateways>

Параметр «context» определяет контекст для обработки DID входящих вызовов.

<profile name="external">
  <gateways>
    <X-PRE-PROCESS cmd="include" data="external/*.xml"/>
  </gateways>

  <settings>
    <param name="auth-calls" value="false"/>

    <param name="debug" value="3"/>
        <param name="sip-trace" value="no"/>

    <param name="dialplan" value="XML"/>
    <param name="context" value="public"/>
    <param name="codec-prefs" value="$${global_codec_prefs}"/>

    <param name="rtp-ip" value="$${local_ip_v4}"/>
    <param name="sip-ip" value="$${local_ip_v4}"/>
    <param name="ext-rtp-ip" value="auto-nat"/>
    <param name="ext-sip-ip" value="auto-nat"/>
    <param name="sip-port" value="5080"/>
        <param name="rtp-autofix-timing" value="false"/>
  </settings>
</profile>

external5090:SIP профиль для регистраций снаружи

SIP профиль для регистрации абонентов извне.

Параметры ext-rtp-ip и ext-sip-ip указывают на внешний IP адрес, заданный в vars.xml.

sip-port - 5090

<profile name="external5090">
  <gateways>
    <X-PRE-PROCESS cmd="include" data="internal/*.xml"/>
  </gateways>
  <settings>
    <param name="auth-calls" value="false"/>

    <param name="debug" value="3"/>
        <param name="sip-trace" value="no"/>
    <param name="dialplan" value="XML"/>
    <param name="context" value="default"/>
    <param name="codec-prefs" value="$${global_codec_prefs}"/>

    <param name="rtp-ip" value="$${local_ip_v4}"/>
    <param name="sip-ip" value="$${local_ip_v4}"/>
    <param name="ext-rtp-ip" value="$${external_ip}"/>
    <param name="ext-sip-ip" value="$${external_ip}"/>
    <param name="sip-port" value="5090"/>
        <param name="rtp-autofix-timing" value="false"/>
  </settings>
</profile>

gsm gateway

../external/addpac.xml

<include>
    <gateway name="addpac1">
      <param name="username" value=""/>
      <param name="password" value="register:false"/>
      <param name="proxy" value="192.168.1.2:5060"/>
      <param name="expire-seconds" value="800"/>
      <param name="register" value="false"/>
          <param name="register-transport" value="udp"/>
      <param name="context" value="default"/>
      <param name="caller-id-in-from" value="false"/>
    </gateway>
</include>

sip itsp

../sip_profiles/external/itsp.xml

<include>
  <gateway name="itsp">
    <param name="username" value="7777777_trunk"/>
    <param name="realm" value="pbx.itsp.tld"/>
    <param name="from-user" value="7777777_trunk"/>
    <param name="from-domain" value="pbx.itsp.tld"/>
    <param name="password" value="Very_Strong_pasword)"/>
    <param name="proxy" value="pbx.itsp.tld"/>
    <param name="expire-seconds" value="3600"/>
    <param name="register" value="true"/>
    <param name="register-transport" value="udp"/>
    <param name="retry-seconds" value="60"/>
    <!--param name="ping" value="60"/-->
    <param name="context" value="public"/>
    <param name="caller-id-in-from" value="false"/>
  </gateway>
</include>

directory for externalreg5090

Указывает на домен регистрации абонентов, которые обращаются к внешнему IP адресу.

вида: user@$${external_ip}

../directory/externalreg.xml

<include>
  <!--the domain or ip (the right hand side of the @ in the addr-->
  <domain name="$${external_ip}">
    <params>
      <param name="dial-string" value="{^^:sip_invite_domain=${dialed_domain}:presence_id=${dialed_user}@${dialed_domain}}${sofia_contact(*/${dialed_user}@${dialed_domain})},${verto_contact(${dialed_user}@${dialed_domain})}"/>
    </params>

    <variables>

    </variables>

    <groups>
      <group name="externalreg">
        <users>
          <X-PRE-PROCESS cmd="include" data="externalreg/*.xml"/>
        </users>
      </group>
    </groups>

  </domain>
</include>

Пользователь с регистрацией из публичной сети

../directory/externalreg/100.xml

<include>
  <user id="100">
    <params>
      <param name="password" value="user_password"/>
    </params>
    <variables>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="user100"/>
      <variable name="effective_caller_id_number" value="100"/>
    </variables>
  </user>
</include>

Пользователь с регистрацией из локальной сети

../directory/default/101.xml

<include>
  <user id="101">
    <params>
      <param name="password" value="user_password"/>
    </params>
    <variables>
      <variable name="user_context" value="default"/>
      <variable name="effective_caller_id_name" value="user101"/>
      <variable name="effective_caller_id_number" value="101"/>
    </variables>
  </user>
</include>

FreeSWITCH

  • freeswitch/sip/fs_multi_domain.txt
  • Последние изменения: 2018/10/10