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

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

$
0
0

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

Настройка Sip profiles (транспорта) и gateways (транков). Входящая и исходящая маршрутизация. Примеры и комментарии.

 +---------------------+          +-----------------------+
 |    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="destination_number" expression="^(2\d{3})$"><action application="set" data="effective_caller_id_name=${user_data(${username}@${domain_name} var effective_caller_id_name)}"/> <action application="set" data="effective_caller_id_number=${user_data(${username}@${domain_name} var effective_caller_id_number)}"/> <action application="bridge" data="sofia/gateway/samsung/$1"/></condition></extension></include>
Внешние вызовы через провайдера без префикса
цифрыextension name
XXXXXXXlocal.itsp
89XXXXXXXXXdomestic.itsp
810XXXXXXXXXXinternational.itsp

conf/dialplan/default/01_itsp.xml

<include><extension name="local.itsp"><condition field="destination_number" expression="^(\d{7})$"><action application="set" data="outbound_caller_id_number=${user_data(${username}@$${domain} var outbound_caller_id_number)}"/> <action application="set" data="outbound_caller_id_name=${user_data(${username}@$${domain} var outbound_caller_id_name)}"/> <action application="bridge" data="sofia/gateway/itsp/$1"/></condition></extension><extension name="domestic.itsp"><condition field="destination_number" expression="^(89\d{9})$"><action application="set" data="outbound_caller_id_number=${user_data(${username}@$${domain} var outbound_caller_id_number)}"/> <action application="set" data="outbound_caller_id_name=${user_data(${username}@$${domain} var outbound_caller_id_name)}"/> <action application="bridge" data="sofia/gateway/itsp/$1"/></condition></extension><extension name="international.itsp"><condition field="destination_number" expression="^(810\d+)$"><action application="set" data="outbound_caller_id_number=${user_data(${username}@$${domain} var outbound_caller_id_number)}"/> <action application="set" data="outbound_caller_id_name=${user_data(${username}@$${domain} var 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"/>

Переменная ${effective_caller_id_number}указывает непосредственно на поле From: из SIP заголовка вызывающего устройства.

Её можно заменить переменной заданной в настройках юзера — ../directory/default/user.xml<variable name="effective_caller_id_number" value="8129981138"/>,

получается при помощи команды ${user_data(${username}@${domain_name} var effective_caller_id_number)}

Внешние вызовы через провайдера через префикс "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=8129981138"/><action application="set" data="effective_caller_id_name=8129981138"/><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=8129981138"/><action application="set" data="effective_caller_id_name=8129981138"/><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=8129981138"/><action application="set" data="effective_caller_id_name=8129981138"/><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 1041

Trending Articles