Media Gate (mg)

Описание

Медиа-шлюз, замыкающий медиа-потоки.
Управляется ролью mgc по протоколу MEGACO. Каждый медиа-контекст управляется одной из ролей: b2b, conf, ivr, esg.

Резервируется и масштабируется в режиме Active-Active и дополнительно распределением по группам mgc.

Организует запуск и мониторинг процесса приложения rtx_mg3 в операционной системе, фактически осуществляющего обработку медиа-трафика.

Table 1. Системные характеристики

Код

mg

Режим работы

Сервис

Режим резервирования

Active-Active

Типы сайтов

Любые

Слой

Бизнес-логика

Размещение

Внутренний или пограничный

Сохранение и восстановление состояния при перезагрузке

Нет

Приложение

era_mg

Управляемое приложение

rtx_mg3

Ограничения

  • Должна присутствовать на всех сайтах с ролями b2b при использовании в системе медиа-обработки (опция "b2bmedia" в ролях sg, esg, ivr, conf).

  • Настройки портов не должны пересекаться с другими ролями на сервере.

  • Для полноценной кросс-сайтовой работы системы необходимо, чтобы все экземпляры ролей mg обслуживали трафик на тех сетевых интерфейсах, с которых достижимы аналогичные адреса всех остальных ролей mg и bgmg. В противном случае кросс-сайтовые звонки могут быть невозможны.

  • Пропускная способность сетевых интерфейсов, обслуживающих медиа-трафик, и подключений к сетям должна сочетаться с возможной пиковой нагрузкой и используемыми кодеками. Так, 200 телефонных разговоров в кодеке PCMA (G.711 a-law) требуют пропускной способности не менее 20 Mbit/s в каждую сторону в самой узкой точке. При обслуживании большего количества разговоров и распределении их по разным серверам с медиа-шлюзами необходимо обеспечить соответствующую пропускную способность на сетевых устройствах, агрегирующих трафик.

  • Трафик всегда проходит по кратчайшему маршруту: устройство А - медиа-шлюз - устройство Б (на логическом уровне, исключающем все промежуточные сетевые устройства). Но в ряде случаев устройствами А и Б могут выступать другие медиа-шлюзы, обслуживающие медиа-контексты конференций и IVR. В отдельном случае при стыковке разных подсетей на пограничных ролях sg и esg в качестве устройств А и Б могут выступать медиа-шлюзы роли bgmg.

  • Возможна работа на нескольких интерфейсах, при этом указываются параметры `aliases` и `termportranges`. Указание одновременно пары параметров (`aliases`, `termportranges`) и пары (`rtpiface`,`termportrange`) запрещено.

Параметры

Table 2. Параметры
Имя Тип Умолчание Описание

name

str

required

Имя. Может состоять из латинских букв и цифр, должно начинаться с буквы.

roletype

str

required

Тип роли. Возможные значения: "mg".

iface

str

required

Алиас сетевого интерфейса сервера, на котором будет происходить внутреннее взаимодействие ролей между собой.

ext

json

empty

Дополнительные опции роли. Содержит json объект или список.

enabled

bool

empty

Флаг активности роли. При установке в false роль не участвует в валидации и не запускается.

roleid

int

required

Идентификатор роли.
Уникален для всей системы, независимо от сайта или сервера. Не подлежит изменению.
Целое число от 1 до 9999.

separate

bool

required

Признак выделения роли в отдельную ноду.

mgcgroup

int

0

Группа mgc, к которой принадлежит текущий mg.
Совпадает с параметром group в ролях с типом mgc.

port

int

required

Локальный порт TCP MEGACO.
Стандартный порт: 2944.

codecs

array<str>

empty

Список используемых кодеков. Ограничивает использование кодеков, выдаваемых вовне.
Возможные значения: "GSM", "PCMA", "PCMU", "G722", "G729", "G726-16", "G726-24", "G726-32", "G726-40", "opus", "speex", "G729a", "VP8", "VP9", "H264", "H263", "H263-1998", "H263-2000". По умолчанию: не задано, используются все поддерживаемые кодеки.

certdir

str

empty

Алиас каталога на сервере для хранения сертификатов (файлы server.crt и server.key).
Если путь не указан, то поиск сертификатов осуществляется в каталоге "/usr/lib/era/era_sip/priv/ssl"

keypass

str

empty

Пароль для расшифровки файла секретного ключа сертификата.

domgrecordcalls

bool

true

Признак сохранения записей разговоров.

mgrecordcalls

str

empty

Алиас каталога на сервере для размещения записей разговоров. По умолчанию используется каталог: "/var/lib/era/files/records"

termportrange

str

empty

Диапазон RTP портов, которые будет использовать данный экземпляр роли.
Формат: "PortFrom:PortCnt", где PortFrom – начальное значение порта, PortCnt – количество портов.
Если не задано используется диапазон "10000:20000".

logrootpath

str

empty

Алиас каталога на сервере для размещения лог-файлов.
По умолчанию: "/var/lib/era/_workdir/<NODE_NAME>/log/mg".

logtrace

array<str>

[
"warning"
]

Уровень логирования.

Значение должно быть списком из одного элемента.

Возможные значения элемента:
off, fatal, error, warning, info, debug, trace

В предыдущих версиях список мог содержать флаги:

Возможные значения:
timer, call, events, proto, error, warning, trans, async, stream, fax, net, media-flow, rtp-flow, rtp, session, stat

logmaxsize

int

2000

Максимальный суммарный размер лог-файлов за один день, в МБ. При достижении лимита запись логов останавливается в ожидании удаления, в том числе автоматического по времени.

logpartsize

int

200

Максимальный размер одного лог-файла, в МБ.

rtcpmonitor

bool

false

Выключатель логирования статистики на основе пакетов RTCP.

recdumpinterval

int

5000

Интервал сброса данных из кэша в исходный файл записи разговора, в миллисекундах.
Минимальное значение: 500.

Пример конфигурации

Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.

Конфигурация содержит раздел для описания всех экземпляров всех ролей. Параметры определяются для каждого конкретного экземпляра роли.

Пример узла
{
  "name": "mg11",
  "roletype": "mg",
  "iface": "eth0",

  "roleid": 11300,
  "separate": true,
  "port": 2945,
  "mgcgroup": 3,

  "codecs": ["PCMA", "PCMU"],
  "logpartsize": 10,
  "logtrace": [
    "warning"
  ],
  "mgrecordcalls": "alias://paths/b",
  "recdumpinterval": 3000,
  "rtcpmonitor": true,
  "termportrange": "10000:2000"
}

См. также