Quantcast
Channel: IP АТС Asterisk
Viewing all articles
Browse latest Browse all 1135

FreeSwitch: простейшая настройка SIP gateway и Диалплана

$
0
0

FreeSwitch: простейшая настройка SIP gateway и Диалплана

Обзор
Простой пример настройки Sip профилей FreeSWITCH. Конфигурация sip шлюза (gateway) для подключения провайдера IP телефонии (ITSP) через интернет и SIP Gateway к корпоративной АТС в локальной сети, входящая и исходящая маршрутизация FreeSWITCH.

 +---------------------+          +-----------------------+
 |    Extensions       |          |       Profiles        |
 |  ../conf/directory  |          |  ../conf/sip_profiles |
 +---------------------+          +-----------------------+
            |                                 |
            +----------+          +-----------+ 
                       |          |
                       V          V
                  +---------------------+
                  |      Contexts       |
                  |  ../conf/dialplan   |
                  +---------------------+
вводные данные шлюзов
IP/domainGateway Name
192.168.0.252samsung
sip.itsp.comitsp
SIP транк (gateway) частной сети АТС.

conf/sip_profiles/internal/samsung.xml

<include>
    <gateway name="samsung">
      <param name="username" value="samsung"/>
      <param name="password" value="register:false"/>
      <param name="proxy" value="192.168.0.252"/>
      <param name="expire-seconds" value="800"/>
      <param name="register" value="false"/>
      <param name="register-transport" value="udp"/>
      <param name="retry-seconds" value="60"/>
      <param name="context" value="default"/>
      <param name="caller-id-in-from" value="true"/>
    </gateway>
</include>

Если в параметре <param name="proxy" value="192.168.0.252"/>порт не задан, то используется 5060, по умолчанию.
Чтобы задать специфический порт SIPсигнализации, используйте форму записи: <param name="proxy" value="192.168.0.252:5077"/>

Так как gateway создан в sip_profileinternal, входящие вызовы из корпоративной АТС будут попадать непосредственно в контекст defaultи если пользователь с вызываемым номером существует, он будет вызван. Дополнительные правила входящей маршрутизации не требуются. Таким образом вы можете создать корпоративную телефонную сеть со сквозной нумерацией.

Поле <param name="caller-id-in-from" value="true"/>обеспечит передачу внутреннего номера из поля From:в качестве CallerID.

SIP gateway провайдера ( ITSP )

conf/sip_profiles/external/itsp.xml

<include>
    <gateway name="itsp">
      <param name="username" value="itsp"/>
      <param name="password" value="12345"/>
      <param name="realm" value="sip.itsp.com"/>
      <param name="from-user" value="itsp_user"/>
      <param name="from-domain" value="sip.itsp.com"/>
      <param name="proxy" value="sip.itsp.com:5060"/>
      <param name="expire-seconds" value="800"/>
      <param name="register" value="true"/>
      <param name="retry-seconds" value="60"/>
      <param name="context" value="public"/>
      <param name="caller-id-in-from" value="false"/>
    </gateway>
</include>
Входящая маршрутизация из контекста Public

conf/dialplan/public/00_inbound_did.xml

<include>
  <extension name="public_did">
    <condition field="destination_number" expression="^(7771000)$">
      <!--	  
	  $${domain} это домен FreeSwitch по умолчанию, назначенный в vars.xml.**
      --> 
      <action application="set" data="domain_name=$${domain}"/>
      <!-- этот пример направляет вызовы по  DID 7771000 на внутренний номер 1000 в контексте default -->
      <action application="transfer" data="1000 XML default"/>
    </condition>
  </extension>
</include>

<X-PRE-PROCESS cmd=«set» data=«domain=$${local_ip_v4}»/>
<X-PRE-PROCESS cmd=«set» data=«domain_name=$${domain}»/>

Устанавливает домен по умолчанию используемый FreeSWITCH, если другое не задано.
По умолчанию $${local_ip_v4}

Исходящая маршрутизация через gateway's

вводные данные маршрутизации

Набор Четырехзначных номеров в частную сеть АТС
цифрыexpressionextension name
2XXX^(2\d{3})$local.samsung

conf/dialplan/default/01_samsung.xml

<include>
  <extension name="local.samsung">
    <condition field="${toll_allow}" expression="local"/>
    <condition field="destination_number" expression="^(2\d{3})$">
      <action application="set" data="effective_caller_id_number=${effective_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${effective_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/samsung/$1"/>
    </condition>
  </extension>
</include>

Переменная ${effective_caller_id_number}указывает непосредсвенно на CallerID устройства инициирующего вызов.
Если требуется передать имя, в первую очередь FS принимает значение указанное устройством в SIPпакете.
Переменная заданная в настройках ../directory/default/user.xml<variable name="effective_caller_id_name" value="User Userov"/>игнорируется.

Внешние вызовы через провайдера без префикса
цифрыextension name
XXXXXXXlocal.itsp
89XXXXXXXXXdomestic.itsp
810XXXXXXXXXXinternational.itsp

conf/dialplan/default/01_itsp.xml

<include>
  <extension name="local.itsp">
    <condition field="${toll_allow}" expression="local"/>
    <condition field="destination_number" expression="^(\d{7})$">
      <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/itsp/$1"/>
    </condition>
  </extension>

  <extension name="domestic.itsp">
    <condition field="${toll_allow}" expression="domestic"/>
    <condition field="destination_number" expression="^(89\d{9})$">
      <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/itsp/$1"/>
    </condition>
  </extension>

  <extension name="international.itsp">
    <condition field="${toll_allow}" expression="international"/>
    <condition field="destination_number" expression="^(810\d+)$">
      <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/itsp/$1"/>
    </condition>
  </extension>
</include>

переменная ${outbound_caller_id_number}задается в файле vars.xml:

<X-PRE-PROCESS cmd="set" data="outbound_caller_id_name=fs"/>
   <X-PRE-PROCESS cmd="set" data="outbound_caller_id_number=777777"/>

обычно требуется передать провайдеру callerID из вашего пула номеров, это можно сделать для каждого маршрута:

<action application="set" data="effective_caller_id_number=8129981138"/>
    <action application="set" data="effective_caller_id_name=8129981138"/>
Внешние вызовы через провайдера через префикс "9".
префиксцифрыextension name
9XXXXXXXlocal.itsp
98[09]XXXXXXXXXmobile.itsp
98X.international.itsp

<include>
<extension name="local.itsp">
    <condition field="caller_id_number" expression="^(397\d)$"/>
    <condition field="destination_number" expression="^9(\d{7})$">
      <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/itsp/$1"/>
    </condition>
  </extension>

  <extension name="mobile.itsp">
        <condition field="caller_id_number" expression="^(397\d)$"/>
    <condition field="destination_number" expression="^9(8[09]\d{9})$">
      <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/itsp/$1"/>
    </condition>
  </extension>

  <extension name="international.itsp">
        <condition field="caller_id_number" expression="^(397\d)$"/>
    <condition field="destination_number" expression="^9(8\d+)$">
      <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/>
      <action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"/>
      <action application="bridge" data="sofia/gateway/$itsp/$1"/>
    </condition>
  </extension>

</include>

Условие <condition field="caller_id_number" expression="^(397\d)$"/>, можно использовать для ограничения доступа к gateway.
В примере через данный gateway смогут звонить только номера 3970-3979.

sc qc FreeSWITCH

FreeSWITCH


Viewing all articles
Browse latest Browse all 1135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>