Дмитрий Рашевский
28.05.2020
10061

Поднятие транка между Астериск и FreeSwitch

Недавно выполнял кейс связки Астериска и Freeswitch SIP транком. Вы скажете, что в этом такого? Но проблема таилась в отсутствии специалиста по Freeswitch. Пришлось “курить” мануалы по FS и разбираться в структуре его конфигурационных файлов, учитывая опыт работы только с Asterisk. Итак, в этой статье рассмотрим настройку SIP транка на стороне Freeswitch (далее FS). Немного […]

Недавно выполнял кейс связки Астериска и Freeswitch SIP транком. Вы скажете, что в этом такого? Но проблема таилась в отсутствии специалиста по Freeswitch. Пришлось “курить” мануалы по FS и разбираться в структуре его конфигурационных файлов, учитывая опыт работы только с Asterisk.

Итак, в этой статье рассмотрим настройку SIP транка на стороне Freeswitch (далее FS). Немного упомяну о структуре и отношении конфиг файлов в FS. Затем выполним настройки SIP устройства на Asterisk и по окончанию проверим свою настройку.


Рис 1. Схема подключения

Немного о FreeSwitch

ИНФО 1

Процесс установки FS в этой статье рассматриваться не будет. Т.к. он есть на нашем сайте. его можете посмотреть по этой ссылке

У FS есть своя иерархия отношения конфигурационных файлов. Все файлы можно условно разделить на несколько типов:

  • Глобальный конфиг
  • Файл с указанием переменных
  • Диалплан
  • Конфигурация связанных модулей
  • Пользовательские настройки

Рис 2. Структура файлов FS

Конфигурационные файлы FS по умолчанию находятся в директории /etc/freeswitch. Именно в этой директории мы будем проводить все наши настройки. Определим на будущее, для настройки транка на стороне FS надо выполнить следующие действия:

  1. Установить переменные указывающие на внешний IP, SIP port, настройки провайдера по умолчанию.

ИНФО 2

В FS транки называются гейтвеями. Поэтому дальше будет использоваться это слово, для понимания

ИНФО 3

В нашем случае будем использовать их. Т.к. у FS не подключено никаких доп линий:

  1. Настроить в пользовательской директории гейтвей с астериском.
  2. Применить настройки

Конфигурирование SIP гейтвея на Freeswitch

Определившись с планом действий начнем выполнение настроек. И поэтому откроем файл с переменными  vars.xml любым текстовым редактором.  Условно разобьем все переменные на типы принадлежности и необходимо изменить следующие значения:

  • Переменные определяющие external IP
    • ext-rtp-ip
    • ext-sip-ip
  • Определение имени и номера при исходящих
    • outbound_caller_name
    • outbound_caller_id
  • Настройки региона
    • default_areacode
    • default_country
  • Операторские настройки. Опционально. Их можно оставить пустыми
    • default_provider
    • default_provider_username
    • default_provider_password
    • default_provider_from_domain
    • default_provider_register
    • default_provider_contact

ИНФО 4

Для безопасности также можно заменить параметр default_password. Это означает стандартный пароль для локальных пользователей FS.

Настройки будут выглядеть примерно так. У вас будут совершенно другие данные ниже выделены цветом:

<X-PRE-PROCESS cmd="set" data="default_password=VERYSTRONG FSPASS"/>

<param name="ext-rtp-ip" value="31.148.107.242"/>
<param name="ext-sip-ip" value="31.148.107.242"/>

<X-PRE-PROCESS cmd="set" data="outbound_caller_name=4959898533"/>
<X-PRE-PROCESS cmd="set" data="outbound_caller_id=4959898533"/>
<X-PRE-PROCESS cmd="set" data="default_areacode=343"/>
<X-PRE-PROCESS cmd="set" data="default_country=RU"/>

<X-PRE-PROCESS cmd="set" data="default_provider=IP.ADD.UR. AST"/>
<X-PRE-PROCESS cmd="set" data="default_provider_username=4959898533"/>
<X-PRE-PROCESS cmd="set" data="default_provider_password=STRONGEASTPASS"/>
<X-PRE-PROCESS cmd="set" data="default_provider_from_domain=IP.ADD.UR. AST"/>
<X-PRE-PROCESS cmd="set" data="default_provider_register=true"/>
<X-PRE-PROCESS cmd="set" data="default_provider_contact=74959898533"/>

Рис 3. var.xml

ИНФО 5

Обратите внимание на параметры default_areacode и default_country для каждой страны и региона они разные. Поэтому если вы не с РФ убедитесь в верности этих значений

Закончив определять глобальные переменные, необходимо создать файл с настройками гейта. Переходим в директорию /etc/freeswitch/directory/default/. Здесь, по умолчанию, лежат настройки для пользователей FS. Значит и будем сюда добавлять файл с настройками астериска. Создаем файл asterisk.xml и вставляем туда следующие строки.

<include>
<user id="$${default_provider}">
  <gateways>
   <gateway name="$${default_provider}">
    <param name="username" value="$${default_provider_username}"/>
    <param name="password" value="$${default_provider_password}"/>
    <param name="from-user" value="$${default_provider_username}"/>
    <param name="from-domain" value="$${default_provider_from_domain}"/>
    <param name="expire-seconds" value="600"/>
    <param name="register" value="$${default_provider_register}">
    <param name="retry-seconds" value="30"/>
    <param name="extension" value="$${default_provider_contact}"/>
    <param name="context" value="public"/>
   </gateway>
  </gateways>
 <params>
  <param name="password" value="$${default_provider_password}"/>
 </params>
 </user>
</include>

В конфиге вы можете увидеть непонятные значения вида $${default_provider}. Это означает, что туда будет подставляться значение соответствующей переменной из vars.xml.


Рис 4. asterisk.xml

ИНФО 6

Важно не забыть добавить IP адрес астериска в acl. Иначе гейт не заработает.

/etc/freeswitch/autoload_configs/acl.conf.xml
<list name="lan" default="allow">
</list>
<list name="domains" default="deny">
 <node type="allow" cidr="IP.ADD.UR.AST/32"/>  
</list>

На этом исправление и добавление значений в конфигурационных файлах завершено. Перезапускаем freeswitch командой systemctl restart freeswitch   или командой reload mod_sofia и отправляемся на астериск завершать работы.

Настройки SIP транка на Астериске

На астериске делаем транк. Ознакомиться с примерами заведения SIP транков на Астериск вы также сможете на нашем сайте в разделе База Знаний.

ИНФО 7

Т.к. сервер FS находился на динамическом внешнем IP поэтому в настройках транка указано permit=0.0.0.0/0.0.0.0 и host=dynamic. Для вашей безопасности укажите свои статические IP-адреса.

[4959898533]
deny=0.0.0.0/0.0.0.0
secret=STRONGEASTPASS
dtmfmode=rfc2833
canreinvite=no
context=from-trunk
host=dynamic
defaultuser=
trustrpid=yes
sendrpid=pai
type=friend
session-timers=accept
nat=force_rport,comedia
port=5080
qualify=yes
qualifyfreq=60
transport=udp
avpf=no
permit=0.0.0.0/0.0.0.0
callerid=FS
callcounter=yes

Рис 5. SIP trunk Asterisk

Проверить подключение транка на стороне FS можно командой sofia status.


Рис 6. проверка соединения
Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.