External SIP Gate (esg)
Описание
Точка доступа в кластер по SIP для внешних устройств – провайдеров телефонии, шлюзов и вышестоящими и одноранговыми АТС, находящихся во внешнем номерном плане, не управляемом системой. Вся работа происходит на основе учетных записей SIP-провайдеров. Для стыковки внутреннего номерного плана с одноранговыми и вышестоящими АТС и провайдерами применяются правила преобразования CallerId и CalledId (provider_callerid).
Обрабатывает запросы в режиме user-agent. Одним плечом всегда выступает внешний абонент, другим плечом всегда выступает внутренний сервер с ролью b2bua.
Медиа-шлюз применяется в случае, если звонок связан с учетной записью provider, имеющей включенную опцию "media".
Является пограничной ролью для интерфейса SIP.
Защищает кластер от нежелательных запросов извне, используя пограничные фильтры на основе статических правил и динамических списков временно забаненных адресов.
Может использовать роль bgmg для решения вопроса стыковки разных сетей. Медиа-шлюз посредством роли bgmg применяется автоматически при обнаружении нескольких сетевых интерфейсов и при проксировании запроса из одной подсети в другую.
Для корректного функционирования режима на сервере с ролью esg должен находиться один или несколько экземпляров роли bgmg с непересекающимися настройками для портов.
Резервируется и масштабируется в режиме Active-Active.
Каждая учетная запись провайдера закрепляется за конкретным экземпляром роли esg, работающей на одном из сайтов, где обслуживается домен.
Подробнее о работе с провайдерами телефонии.
Код |
|
Режим работы |
|
Режим резервирования |
|
Типы сайтов |
|
Слой |
|
Размещение |
|
Сохранение и восстановление состояния при перезагрузке |
|
Приложение |
|
Ограничения
-
Запросы REFER и INVITE+Replaces всегда обрабатываются зеркально, то есть в рамках того направления, откуда получен запрос.
-
Является пограничной ролью, использует сертификат TLS для HTTPS и WSS подключений.
Параметры
Имя | Тип | Умолчание | Описание | ||
---|---|---|---|---|---|
|
|
required |
Имя. Может состоять из латинских букв и цифр, должно начинаться с буквы. |
||
|
|
required |
Тип роли. Возможные значения: |
||
|
|
required |
Алиас сетевого интерфейса сервера, на котором будет происходить внутреннее взаимодействие ролей между собой. |
||
|
|
empty |
Дополнительные опции роли. Содержит json объект или список. |
||
|
|
empty |
Флаг активности роли. При установке в false роль не участвует в валидации и не запускается. |
||
|
|
required |
Идентификатор роли. |
||
|
|
required |
Признак выделения роли в отдельную ноду. |
||
|
required |
Локальный порт UDP для SIP. Этот же порт одновременно обрабатывает и TCP. |
|||
|
required |
Локальный порт TCP для SIP. Если указано значение, отличное от UDP, то будет поднят дополнительно. |
|||
|
empty |
Локальный порт для соединений по tls. По умолчанию не открывается. |
|||
|
empty |
Локальный порт для SIP-взаимодействия с другими микросервисами системы (UDP/TCP). |
|||
|
|
Список интерфейсов сервера, на которых поднимаются слушатели портов. Для ролей sg, esg, redirect, исполняемых на одном и том же сервере, в качестве внешних портов (udp,tcp,tls,wss) могут быть указаны одинаковые значения, если их списки прослушиваемых интерфейсов не пересекаются. К списку прослушиваемых интерфейсов всегда добавляется оригинальный интерфейс текущей ноды с портом 'sip_internal_port', который не должен использоваться другими микросервисами на этом же сервере.
|
|||
|
|
Выключатель логирования событий в лог |
|||
|
|
Выключатель логирования медиа-функций |
|||
|
|
Выключатель логирования протокола взаимодействия с MGC-контроллером в лог |
|||
|
|
Выключатель логирования трейса машины состояний диалога в лог |
|||
|
|
Выключатель логирования SIP-трафика в лог |
|||
|
|
По умолчанию при инициации звонков на адреса, подключенные по TLS, отправляется SDP-offer для нешифрованного медиа потока (rtp). С помощью параметра можно для TLS адресов включить режим инициации отправки SDP-offerа с шифрованным медиа-потоком. |
|||
|
empty |
Алиас каталога на сервере для хранения сертификатов (файлы server.crt и server.key). |
|||
|
empty |
Пароль для расшифровки файла секретного ключа сертификата. |
|||
|
`["PCMA/8000", "PCMU/8000" "telephone-event/8000"]` |
Список имен аудиокодеков, используемых для инициации звонка (вызове плеча). В качестве значения - список, содержащий имена аудио-кодеков в формате
Три основных формата: |
|||
|
empty |
Список имен видеокодеков, используемых для инициации звонка (вызове плеча). В качестве значения - список, содержащий имена видео-кодеков в формате
|
|||
|
|
Выключатель транскодинга видео.
|
|||
|
|
Максимальный размер udp пакета, отправляемый системой, в байтах. |
|||
|
|
Выключатель применения медиа-шлюза ролью b2b для звонков, инициированных текущим экземпляром роли esg. |
|||
|
empty |
Список IP-адресов текущего сервера.. |
|||
|
empty |
Список внешних STUN-серверов для определения внешнего IP-адреса сервера при работе за NAT. |
|||
|
empty |
Подстановка белых адресов. Формат:
В списке должны присутствовать адреса всех серверов, где расположены медиагейты, а также локальные интерфейсы текущей машины, с которых производится маршрутизация на все внешние адреса. |
|||
|
empty |
Проброс заголовков. Формат:
По умолчанию пусто. |
Пример конфигурации
Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.
Конфигурация содержит раздел для описания всех экземпляров всех ролей. Параметры определяются для каждого конкретного экземпляра роли.
{
"name": "esg12",
"roletype": "esg",
"iface": "eth0",
"roleid": 11260,
"separate": true,
"tcp": 5080,
"udp": 5080,
"tls": 5081,
"log_cdr": true,
"log_trn": true,
"log_sip": true,
"log_media": true,
"log_mgct": true,
"certdir": "/var/lib/era/certificates",
"keypass": "eb9c4458016d3f1e378d02004c4f4f50",
"max_udp_size": 10000,
"stunserver": ["sip:stun.sipnet.ru:5060", "sip:demo.era.ru:5060"],
"sip_alg": [
{"gray":"172.16.0.14","white":"62.84.126.3"},
{"gray":"172.16.0.15","white":"62.84.126.6"}
],
"fwd_headers": [
"X-Header-1",
"X-Header-2"
]
}