Настройка pjsip транка ватс ростелекома на freepbx

Обновлено: 06.07.2024

Как подключить провайдера по PJSIP с регистрацией или без неё? На этот вопрос я дам ответ в статье на примере подключения к популярным провайдерам. Статья входит в цикл статей по PJSIP: Установка Asterisk 16 на centos 8 TLS SRTP для драйвера PJSIP в Asterisk 15 Pjsip. Базовая настройка. Идеология настройки. Описание параметров конфигурации PJSIP в […]

Как подключить провайдера по PJSIP с регистрацией или без неё? На этот вопрос я дам ответ в статье на примере подключения к популярным провайдерам.

Статья входит в цикл статей по PJSIP:

Раскрывать секреты подключения транков по PJSIP будем на FreePBX Distro 15 с Asterisk 16.

Транк в Asterisk настраивается в текстовом файле /etc/asterisk/pjsip.conf , который внутри поделён на так называемые секции. В FreePBX pjsip.conf разделён на отдельные файлы по основным секциям через опцию include. Для подключения к провайдеру нужно прописать настройки в секциях transports, endpoint, aor, auth, registration, identify.

Начнём с transports

Она отвечает за то по какому протоколу будет осуществляться подключение доступные UDP, TCP, WebSockets (WS, WSS) и методы шифрования TLS/SSL.

Есть важное ограничение при создание секций транспорта:

Они не могут использовать одну и ту же комбинацию IP + порт или IP + протокол. То есть каждая секция, которая связывается с тем же IP-адресом, что и другая, должна использовать отличный порт или протокол.

При изменение настроек протоколов для их применения необходимо перезагрузить Asterisk. Можно обойтись и без перезагрузки если выставить опцию на транспорте allow_reload=yes, однако он приводит к сбросу вызова и еще ряду проблем.

Сделать это лучше через консоль :

Можно перезагрузить и через интерфейс CLI командой

freepbx*CLI> core restart now

Чтобы войти в интерфейс CLI на сервере введите

Посмотрим в CLI изменился ли транспорт для этого вводим команду

freepbx*CLI> pjsip show transports

Файл pjsip.transports.conf который был автоматически сгенерирован FreePBX, имеет теперь вот такую секцию транспорт

Транспортный протокол задан можно переходить к созданию транка. Создадим его в веб-интерфейсе FreePBX, а затем посмотрим что там произошло в файлах.

Итак в браузере открываем веб-интерфейс нашей станции.

Если вы не знаете как перейти на веб-интерфейс, то окно приветствия вам напомнит.

Консольное окно сервера с FreePBX

Консольное окно сервера с FreePBX

Начальная страница в веб-интерфейсе FreePBX

Начальная страница в веб-интерфейсе FreePBX

Подключение к оператору Zadarma

Откроется окно Add Trunk вкладка General.

  • Trunk Name – Имя транка (обычно <название оператора>_<номер транка>) может быть любым
  • Hide CallerID – спрятать CID при исходящем вызове.
  • Outbound CallerID – CallerID для исходящего вызова.
  • CID Options – определяет какие CID будут разрешены в этом транке – разрешить все, запретить иностранные и т.д.
  • Maximum Channels – максимальное количество одновременных исходящих вызовов для этого транка. Пустое значение без ограничений.
  • Asterisk Trunk Dial Options – параметры команды Dial, которые будут использоваться при вызове этого транка. Для переопределения параметров по умолчанию, установите флажок в значение «Override», а затем обратно
  • Continue if Busy – если Yes перенаправляет вызов на следующий транк даже если канал сообщает «BUSY» или «INVALID NUMBER».
  • Disable Trunk – отключает транк.
  • Monitor Trunk Failures – если установлен параметр в значение Yes, возможно указать пользовательский сценарий AGI, который будет вызываться для отчетов, журналов, электронной почты или других действий при падении транка или в случаях таких ошибок как NOANSWER, CANCEL.

Я заполнил только название транка, т.к. на этом транке Outbound CallerID будет заменен оператором на иной, а остальные опции мне не нужны.

Переходим к вкладке pjsip Settings, в ней ещё 3 подвкладки General, Advanced, Codecs. Идём по порядку General в ней указываем:

  • Username – сюда указываем тот логин что выдает оператор
  • Secret – пароль выданный оператором для этого транка
  • Authentication – тип аутентификации обычно Outbound, меняйте только если этого требует оператор. Если вы выберете «None», все вызовы с или на указанный SIP-сервер не проходят аутентификации. Установка «None» может быть небезопасной!
  • Registration – как регистрируемся на сервере оператора и нужно ли его регистрировать. Обычно операторы не отвечают на наш запрос о регистрации, так что оставляйте Send. Если только оператор не требует иного.
  • Language Code – язык для стандартных голосовых подсказок.
  • SIP Server – SIP адрес оператора, обычно выдается вместе с логином и паролем
  • SIP Server Port – SIP порт сервера
  • Context – контекст для входящего звонка
  • Transport – выбираем транспортный протокол, из тех что мы задали ранее.

Подвкладка Advanced здесь много настроек не бойтесь, нам нужны не все, а только вот такие:

  • Contact User – сюда указываем тот логин что выдает оператор
  • From Domain – имя домена, используемое в заголовке поля From в запросах к этому транку.
  • From User – всё тот же логин, что выдаёт провайдер.
  • Client URI – URI SIP-клиента, используемый при попытке исходящей регистрации. Этот параметр автоматически генерируется УАТС, если оставить его пустым. Формат: sip:[username]@[ip]:[port].
  • Server URI – URI SIP-сервера регистрации. Этот параметр генерируется автоматически, если оставить его пустым. Формат: sip:[username]@[ip]:[port].
  • AOR Contact – Постоянный контакт AoR для регистрации endpoint.

Support Path – Если этот параметр включен, исходящие запросы REGISTER объявят о поддержке заголовка, чтобы промежуточные прокси-сервера могли добавлять их в свои заголовки по необходимости.

Вкладка Advanced в pjsip Setting

Вкладка Advanced в pjsip Setting

В подвкладке Codecs по умолчанию стоят кодеки ulaw и alaw т.к. их поддерживают большинство (если не все) IP-телефонов и софтфонов оставим без изменения.

Жмём Submit , затем Apply Config.

freepbx*CLI> pjsip show registrations

Если вы не видите заветного Registered

Ну вот можно теперь можно посмотреть как наш транк сконфигурирован в файлах.

Эта статья является этапом курса по настройке FreePBX 14:

Прежде всего в FreePBX 14 должен быть включен SRV Lookup. О том, как это сделать мы рассказывали в статье.

FreePBX 14 - настройка SIP транка

Исходные данные провайдера:

После этого переходим в раздел Connectivity → Trunks и нажимаем кнопку + Add Trunks . Из полученного списка следует выбрать + Add SIP (chan_sip) Trunk .


FreePBX 14 - настройка SIP транка

SIP-транк с регистрацией

General

FreePBX 14 - настройка SIP транка

Прежде всего приведем описание опций:

sip Settings

Прежде всего данная вкладка отвечает за исходящие и входящие вызовы.

Outgoing

Прежде всего настроим исходящие вызовы в PEER Details:

FreePBX 14 - настройка SIP транка

Incoming

Подобным образом настроим входящие вызовы.

USER Context

USER Details

Register String

Большинство VoIP-провайдеров требуют регистрацию на их платформе. Формат строки регистрации:

Многие провайдеры также требуют указание DID номера, следовательно строка регистрации будет иметь следующий вид:

FreePBX 14 - настройка SIP транка

Проверяем регистрацию в: Reports → Asterisk Info → Registries:

При использовании SIP-транка без регистрации (по IP), необходимо учитывать следующее:

Для создания SIP-транка в FreePBX 14 БЕЗ регистрации следует указывать только опции PEER (Outgoing):

FreePBX 14 SIP транк настроен. В заключении следует напомнить, что следующим этапом необходимо настроить правила маршрутизации (входящей/исходящей).

Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.

С недавнего времени компания Ростелеком предлагает услуги виртуальной АТС под название «Новая телефония». Для компаний, которым недостаточно сервисов виртуальной АТС или же у которых уже есть своя IP АТС Asterisk, есть возможность подключения «Новой телефонии» в режиме транков. Об этом пойдет речь далее в статье.

Авторизация

После залогинивания необходимо переключиться в режим управления доменом (переключатель находится в правом верхнем углу).

Личный кабинет

Для подключения к АТС Asterisk, необходимо добавить пользователя.

Пользователи

В окне настройки пользователя необходимо внести данные:
Отображаемое имя — любое имя
Логин — логин который будет использоваться в транке
Пароль — также будет использоваться в транке в параметре secret
Повтор пароля
Остальные параметры можно не заполнять

Создание пользователя


На стороне Астериска настройки транка стандартны.
[new-rt]
username=логин
type=friend
secret=пароль
qualify=yes
nat=yes
insecure=invite,port
host=домен_ростелеком
hassip=yes
hasiax=no
hasexten=no
fromuser=логин
fromdomain=домен_ростелеком
dtmfmode=rfc2833
disallow=all
canreinvite=no
allow=ulaw&alaw

После регистрации транка в разделе Маршрутизация > Правила маршрутизации необходимо настроить входящую маршрутизацию на созданного пользователя.

Правила маршрутизации


Данных настроек достаточно для работы «Новой телефонии» от Ростелеком с IP-PBX Asterisk

Мы продолжаем цикл статей по библиотеке PJSIP, в этой статье будет подключение абонентов на примере FreePBX Distro 15 (Asterisk 16). Статьи по PJSIP: Установка Asterisk 16 на centos 8 TLS SRTP для драйвера PJSIP в Asterisk 15 Pjsip. Базовая настройка. Идеология настройки. Описание параметров конфигурации PJSIP в Asterisk с примерами Работа PJSIP за NAT Вопросы […]

Мы продолжаем цикл статей по библиотеке PJSIP, в этой статье будет подключение абонентов на примере FreePBX Distro 15 (Asterisk 16).

Статьи по PJSIP:

Приступим к подключению абонентов и по ходу разберём конфигурацию.

Добавление внутренних номеров задаётся в файле pjsip.conf по умолчанию расположен он в каталоге /etc/asterisk/. Файл внутри условно поделен на секции, а Freepbx разделяет секции на отдельные .conf файлы. Внутри секции разделяются именами, которые заключены в [квадратные скобки]. После идёт конфигурация содержащая в себе опцию и её значение через знак = равно.

Консоль сервера с FreePBX каталог etc/asterisk | grep pjsip

Консоль сервера с FreePBX каталог etc/asterisk | grep pjsip

Файлы pjsip в каталоге /etc/asterisk

Конфигурационный файл pjsip.conf в FreePBX

Конфигурационный файл pjsip.conf в FreePBX

Важно отметить, что редактировать файлы с пометкой "Do NOT edit this file as it is auto-generated by FreePBX." действительно не стоит, лучше перейти на веб-интерфейс и там производить настройку. Такие файлы обычно включают в себя кастомный аналог *название файла*custom.conf , который можно настраивать по своему желанию.

Для подключения нам понадобятся секции endpoint, auth, aor и transport.

Transport

Секция transport. Настраивает протоколы для передачи данных. UDP, TCP, WebSockets (WS, WSS) и методы шифрования TLS/SSL.

Веб-интерфейс FreePBX вкладка Asterisk SIP Settings

Веб-интерфейс FreePBX вкладка Asterisk SIP Settings

Есть важное ограничение при создание секций транспорта:

Они не могут использовать одну и ту же комбинацию IP + порт или IP + протокол. То есть каждая секция, которая связывается с тем же IP-адресом, что и другая, должна использовать отличный порт или протокол.

Для простого звонка нам будет достаточно и базовых настроек FreePBX.

Веб-интерфейс FreePBX вкладка

Веб-интерфейс FreePBX вкладка

Отмечу, что при изменение настроек протоколов для их применения необходимо перезагрузить Asterisk.

Можно обойтись и без перезагрузки если выставить опцию на транспорте allow_reload=yes, однако он приводит к сбросу вызова и еще ряду проблем.

Сделать это лучше через консоль :

Перезагрузка Asterisk в консоли сервера

Перезагрузка Asterisk в консоли сервера

Можно перезагрузить и через интерфейс CLI командой

freepbx*CLI> core restart now

Чтобы войти в интерфейс CLI на сервере введите

Посмотрим в CLI изменился ли транспорт для этого вводим команду

freepbx*CLI> pjsip show transports

Интерфейс Asterisk CLI

Интерфейс Asterisk CLI

Отлично, теперь рассмотрим конфигурацию этой секции на нашем примере.

Как узнать возможные варианты значений и параметры по умолчанию?

В этом поможет встроенная справка интерфейса командной строки (CLI):

config show help res_pjsip <секция> <опция>

Секция Endpoint

Endpoint определяет многочисленные параметры SIP , а также связь с такими секциями как auth, aor, transport. Endpoint по сути профиль для конечной точки, такой как телефон или удаленный сервер.

Веб-интерфейс FreePBX вкладка Extension

Веб-интерфейс FreePBX вкладка Extension

Во вкладке General

Add Extension

Этих настроек будет достаточно для простых звонков внутри локальной сети, да и для звонков через транк тоже вполне хватит.
Применяем настройки кнопкой Submit затем Apply Config.

После применения настроек, можно подключать нашего первого абонента.

Как настроить и установить софтфон или IP телефон можно найти у нас на сайте.

В CLI можно посмотреть настройки extensions с помощью команды

Теперь рассмотрим файл конфигурации endpoint, который был автоматически сгенерирован и выделим только самое необходимое, для создания вызова.

Веб-интерфейс FreePBX вкладка Add Extension

Веб-интерфейс FreePBX вкладка Add Extension

Читайте также: