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

Поднятие транка между Астериск и 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. проверка соединения
Подписаться
Уведомить о
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.