22 июл. 2009 г.

Соединяем Yate + FreeSWITCH

Задача: соединить две телефонные сети, одну на базе Yate, вторую на базе FreeSWITCH, воедино, чтобы пользователи могли через "восьмерку" звонить из одной сети в другую.

Начальные условия: пусть у нас Yate будет установлен по адресу 192.168.3.220, а сервер FreeSWITCH - по адресу 192.168.3.217.
На стороне FreeSWITCH номер телефона 1019 используется для входящего транка с Yate. При этом CLID звонящего подменяется на строку "From Yate".

Решение:
На стороне Yate:

acctfile.conf
[freeswitch]
enabled=yes
protocol=sip
username=1019
description=freeswitch account
authname=1019
password=1234
number=1019
domain=192.168.3.217
registrar=192.168.3.217:5060


Yate должен быть принудительно авторизорван на FreeSWITCH с использованием этого кода, поскольку FreeSWITCH по умолчанию не пускает к себе юзеров из чужого домена.

regexroute.conf:
^8\(.*\)$=sip/sip:\1;line=freeswitch;caller=From Yate

Здесь все, что написано после слова freeswitch, можно удалить, и тогда CLID будет передаваться настоящий, равный внутреннему номеру абонента в сети Yate.

На стороне FreeSWITCH:

dialplan/default/yate.xml:
<extension name="yate_extens">
<condition field="destination_number" expression="^8(\d+)$">
<action application="set" data="hangup_after_bridge=true"/>
<action application="bridge" data="sofia/external/$1@192.168.3.220"/>
<action application="hangup"/>
</condition>
</extension>
Оказалось это совсем не сложно.

Комментариев нет:

Отправить комментарий