Поднятие транка между Астериск и FreeSwitch
Недавно выполнял кейс связки Астериска и Freeswitch SIP транком. Вы скажете, что в этом такого? Но проблема таилась в отсутствии специалиста по Freeswitch. Пришлось “курить” мануалы по FS и разбираться в структуре его конфигурационных файлов, учитывая опыт работы только с Asterisk. Итак, в этой статье рассмотрим настройку SIP транка на стороне Freeswitch (далее FS). Немного […]
Недавно выполнял кейс связки Астериска и Freeswitch SIP транком. Вы скажете, что в этом такого? Но проблема таилась в отсутствии специалиста по Freeswitch. Пришлось “курить” мануалы по FS и разбираться в структуре его конфигурационных файлов, учитывая опыт работы только с Asterisk.
Итак, в этой статье рассмотрим настройку SIP транка на стороне Freeswitch (далее FS). Немного упомяну о структуре и отношении конфиг файлов в FS. Затем выполним настройки SIP устройства на Asterisk и по окончанию проверим свою настройку.
Немного о FreeSwitch
ИНФО 1
Процесс установки FS в этой статье рассматриваться не будет. Т.к. он есть на нашем сайте. его можете посмотреть по этой ссылке
У FS есть своя иерархия отношения конфигурационных файлов. Все файлы можно условно разделить на несколько типов:
- Глобальный конфиг
- Файл с указанием переменных
- Диалплан
- Конфигурация связанных модулей
- Пользовательские настройки
Конфигурационные файлы FS по умолчанию находятся в директории /etc/freeswitch. Именно в этой директории мы будем проводить все наши настройки. Определим на будущее, для настройки транка на стороне FS надо выполнить следующие действия:
- Установить переменные указывающие на внешний IP, SIP port, настройки провайдера по умолчанию.
ИНФО 2
В FS транки называются гейтвеями. Поэтому дальше будет использоваться это слово, для понимания
ИНФО 3
В нашем случае будем использовать их. Т.к. у FS не подключено никаких доп линий:
- Настроить в пользовательской директории гейтвей с астериском.
- Применить настройки
Конфигурирование 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"/>
ИНФО 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.
ИНФО 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
Проверить подключение транка на стороне FS можно командой sofia status.
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.