Для настройки медиасервера выполните следующие шаги:

1. Установка медиасервера

Установка программного медиасервера производится из репозитория ECSS-10, пакет ecss-media-server.

Перед установкой рекомендуется удалить старые версии медиасервера вместе с конфигурацией, если они были установлены ранее:

Например:

sudo apt purge ecss-media-server

Для установки в консоли ОС Linux необходимо выполнить команду:

sudo apt update
sudo apt install ecss-media-server

В ходе установки необходимо будет ответить на ряд вопросов для формирования конфигурационного файла. Можно вводить ответы по умолчанию, тогда нужно будет вручную править файл /etc/ecss/ecss-media-server/config.xml. Описание параметров приведено на странице 3.14.3 Настройка медиасервера.

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

 Пример файла ответов
ecss-media-server	ecss-media-server/accounts/core1/MsrName	string	msr_2
ecss-media-server	ecss-media-server/mcc/bind-addr/configure?	boolean	true
ecss-media-server	ecss-media-server/transport/port	string	5040
ecss-media-server	ecss-media-server/accounts/core2/MsrName	string	msr_2
ecss-media-server	ecss-media-server/transport	boolean	true
ecss-media-server	ecss-media-server/accounts/core1/configure?	boolean	true
ecss-media-server	ecss-media-server/accounts/core2/RealmAddr/port	string	5000
ecss-media-server	ecss-media-server/media/video-src/configure?	boolean	false
ecss-media-server	ecss-media-server/codec/g729	select	0
ecss-media-server	ecss-media-server/codec/h264	select	1
ecss-media-server	ecss-media-server/codec/speex	select	0
ecss-media-server	ecss-media-server/codec/select	multiselect	pcma, pcmu, g722, h264, h263-1998, t38
ecss-media-server	ecss-media-server/accounts/core2/configure?	boolean	true
ecss-media-server	ecss-media-server/accounts/core2/add?	boolean	true
ecss-media-server	ecss-media-server/mcc/bind-addr	string	192.168.2.22
ecss-media-server	ecss-media-server/accounts/core1/RealmAddr/port	string	5000
ecss-media-server	ecss-media-server/transport/port/configure?	boolean	false
ecss-media-server	ecss-media-server/media/video-src	string	/usr/share/ecss-media-server/video/dummy_video.yuv
ecss-media-server	ecss-media-server/accounts/core2/RealmAddr/addr	string	192.168.2.22
ecss-media-server	ecss-media-server/codec/gsm	select	0
ecss-media-server	ecss-media-server/mcc/configure?	boolean	true
ecss-media-server	ecss-media-server/codec/g722	select	3
ecss-media-server	ecss-media-server/mcc/port/configure?	boolean	false
ecss-media-server	ecss-media-server/accounts/core1/RealmAddr/addr	string	192.168.2.21
ecss-media-server	ecss-media-server/transport/bind-addr	string	192.168.2.22
ecss-media-server	ecss-media-server/accounts/core2/RealmAddr/configure?	boolean	true
ecss-media-server	ecss-media-server/transport/bind-addr/configure?	boolean	true
ecss-media-server	ecss-media-server/accounts/core1/RealmAddr/configure?	boolean	true
ecss-media-server	ecss-media-server/accounts/core2/RealmAddr/port/configure?	boolean	false
ecss-media-server	ecss-media-server/codec/configure?	boolean	false
ecss-media-server	ecss-media-server/accounts/core2/MsrName/configure?	boolean	true
ecss-media-server	ecss-media-server/media-server/configure?	boolean	true
ecss-media-server	ecss-media-server/codec/l16	select	0
ecss-media-server	ecss-media-server/codec/pcmu	select	2
ecss-media-server	ecss-media-server/accounts/core1/MsrName/configure?	boolean	true
ecss-media-server	ecss-media-server/codec/t38	select	1
ecss-media-server	ecss-media-server/accounts/core1/RealmAddr/port/configure?	boolean	false
ecss-media-server	ecss-media-server/accounts/core2/RealmAddr/addr/configure?	boolean	true
ecss-media-server	ecss-media-server/accounts/configure?	boolean	true
ecss-media-server	ecss-media-server/mcc/port	string	5700
ecss-media-server	ecss-media-server/codec/ilbc	select	0
ecss-media-server	ecss-media-server/accounts/core1/RealmAddr/addr/configure?	boolean	true
ecss-media-server	ecss-media-server/codec/h263-1998	select	2
ecss-media-server	ecss-media-server/media/configure?	boolean	true
ecss-media-server	ecss-media-server/codec/pcma	select	1

Далее внести изменения в debconf командой:

sudo debconf-set-selections <имя файла ответов>

И после этого уже ставить пакет. Вопросов задаваться не будет

2. Настройка конфигурационного файла MSR

Конфигурационный XML-файл после установки медиасервера находится по пути /etc/ecss/ecss-media-server/config.xml.

 Пример дефолтного файла
<?xml version="1.0" encoding="utf-8"?>
<config date="09:20:39 13.10.2019">
  <general log-level="3" log-rotate="yes" max-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" suspicious-mode="no"/>
  <transport bind-addr="127.0.0.1" port="5040" transport="udp+tcp"/>
  <media mixer-clock-rate="48000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="1024" tias-in-sdp="no" thread-cnt="2" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="1280" video-enc-height="720"/>
  <codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" g7221="0" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/>
  <accounts>
    <dynamic msr_name="MSR.name" realm="sip:127.0.0.1:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password"/>
  </accounts>
  <pbyte>
    <mcc bind-addr="127.0.0.1" port="5700"/>
  </pbyte>
  <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/>
</config
XML

где

  • general - общие настройки медиасервера:
    • log-level - уровень логов. Чем больше значение, тем больше информации в логах (по умолчанию: "3");
    • log-rotate - ротация логов (по умолчанию: "no")
    • log-path - путь до директории с логами;
    • spool-dir-size - размер каталога /var/spool/ecss/ecss-media-server, предназначенного для хранения временных файлов факсов. При превышении указанного значения старые файлы удаляются (по умолчанию - 100M). Подробнее ниже, в разделе "Тонкая настройка системы";
    • max-calls - максимальное количество одновременно обслуживаемых медиасервером вызовов (по умолчанию: "256");
    • max-in-group - максимальное количество абонентов в группе в рамках конференции (по умолчанию: "128");

      Если услуга "Конференц-связь" используется с большим количеством участников, то необходимо увеличить значение данного параметра. Максимальное значение 4000.
    • load-delta - определяет относительное изменение(сравнение текущей загрузки с предыдущей) загрузки msr(от 1 до 100), при которой формируется нотификации о текущей загрузки msr(не чаще 1 раза в секунду). Коэффициент загрузки отправляется в каждое ядро посредством SIP PUBLISH с Event eltex-load-sensor, в Body находится текущая загрузка msr (по умолчанию -10);
    • load-sensor - включение механизма информирования ядра о загрузке msr(по умолчанию - media;
    • use-srtp - использование srtp (значения"disabled" rtp не используется,  "optional" - будет возможность звонить как с rtp, так и с srtp,  "mandatory" будет использоваться только srtp. (rtp звонки приниматься не будут)
  • transport - настройки транспорта:
    • bind-addr - IP-адрес, который будет использовать медиасервер для SIP-сигнализации (по умолчанию: "127.0.0.1"). Данный параметр необходимо настроить в соответствии с сетевыми настройками хоста;
    • port - номер порта для SIP (по умолчанию: "5040"). Если на хосте, где установлен медиасервер, порт 5040 уже занят, то значение данного параметра необходимо изменить;
    • transport - тип транспорта (по умолчанию: "udp+tcp"), принимает значения: "udp", "tcp", "udp+tcp". Данный параметр не требует изменений.
  • media - параметры медиа:
    • mixer-clock-rate - частота используемая внутренним микшером медиасервера (по умолчанию: "48000"). Данный параметр настраивается в соответствии с аппаратными возможностями сети. (К примеру, для поддержки работы G.722 в режиме HD, параметр устанавливается в соответствии с частотой дискретизации данного кодека "16000"). Диапазон значений-8000-48000. Если будет задано значение > 48000, то будет устновлено в 48000. (в syslog будет предупреждение об этом).

      • При установке ECSS-10 версии 3.14, данный параметр имеет дефолтное значение 48000. Это сделано для поддержки HD кодеков, а также уверенного распознавания речи в таких сервисах как ivr, транскрибирование, ASR.
      • Выставление mixer-clock-rate = 48000 приводит к увеличению нагрузки на CPU, увеличение сетевого трафика и объема записанных файлов разговоров.
      • При штатном обновлении этот параметр сам собой не изменится.
    • use-vad - включить Voice Activity Detection (по умолчанию: "no"). Данный параметр не требует изменений;
    • cng-level - 0 - выкл, любое другое значение будет подставляться в поле level пакета. По умолчанию указывается "0" в целях сохранения обратной совместимости.
    • jb-size - максимальная задержка в мс, которая будет вноситься для поддержания непрерывного потока media;
    • rtcp-timeout - если в течение этого периода времени не приходит RTCP медиасерверу, то можно считать, что клиент неактивен (по умолчанию: "0" - не используется). При использовании функции контроля, контроль включается только после приема от встречной стороны одного RTCP пакета;
    • rtp-timeout - тайм-аут RTP-трафика, аналогично предыдущему параметру (по умолчанию: "0" - не используется);
    • cn-multiplier - множитель к rtp-timeout, если последний полученный RTP-пакет был с comfort noise (по умолчанию: "2");
    • port-start - начало диапазона портов, которые будут использоваться для RTP-потоков (по умолчанию: "12000");
    • port-range - размер диапазона (по умолчанию: "1024");
    • tias-in-sdp - включение/отключение передачи атрибута b=TIAS/AS в offer SDP (по умолчанию: "no");
    • thread-cnt - количество рабочих потоков для обработки медиаданных (поdtmf-to-total-energy
      умолчанию: "2");
    • silence-threshold - пороговый уровень тишины для Voicemail в дБ (по умолчанию: "-30" дБ);
    • dummy-video-src - путь к файлу видеозаставки (формат YUV420), которая отображается при отсутствии видеопотока (по умолчанию: "/usr/share/ecss-media-server/video/dummy_video.yuv");
    • video-enc-width и video-enc-height - все кадры поступающие на енкодер с шириной или высотой больше данных будут конвертированы в данный размер. По умолчанию устанавливаются в 1280х720.
    • video-dscp - значение DCSP для видео(по умолчанию - 0);
    • other-dscp - значение DCSP для остальных типов медии(по умолчанию - 0);
    • dtmf-hits-to-begin - (один hit равен 12.75 сек.) - количество подряд детекций одного и того же сигнала, который распознается в DTMF (по умолчанию - 2; возможные значения: 1..10);
    • dtmf-misses-to-end - (один miss равен 12.75 сек.) - количество подряд детекций НЕ DTMF сигнала следом за указанным количеством hit-ов которые распознали DTMF сигнал (по умолчанию - 2; возможные значения: 1..10)
  • codec - приоритеты кодеков (1 - максимальный, 255 - минимальный, 0 - кодек отключен). Поддерживаемые кодеки:
    • pcma
    • pcmu
    • ilbc
    • gsm 
    • g722
    • g722.1
    • g729
    • speex
    • l16
    • h264
    • h263-1998
    • t38
    • tel-event-pt
  • accounts - все аккаунты для регистрации медиасервера. Может содержать до 32-х элементов acc;
  • dynamic - отдельный аккаунт с параметрами:
    • msr_name - имя MSR, отображаемое на ECSS;
    • realm - сервер регистрации в формате sip:domain. Указывается адрес SIP-сервера для регистрации медиасервера;
    • dtmf_mode - режим детектирования DTMF ("rfc", "inband", "info"). Данный параметр необходимо настроить в соответствии с настройками отправки DTMF на абонентском устройстве.
    • auth_name - имя пользователя, используемое для авторизации;
    • auth_password - пароль для авторизации.
  • rtp -  режим подмены ip в sdp.
    • auto  - автоматический режим . Определяет общий ip для всех sdp, например : <auto addr-v4="192.168.1.2" addr-v6="::1"/>

    • manual - ручной режим. Задаются пары интерфейс-ip, например: <manual name="bond1.2" addr-v4="192.168.1.2" addr-v6="::1">
  • pbyte - настройка соединений pbyte;
    • mcc - настройка управляющего соединения media control channel;
    • bind-addr - IP-адрес, на котором будет ожидаться подключение;
    • port - порт для входящих подключений, (по умолчанию: 5700).
  • conf_dir path - путь до папки в которой будут содеражться конфигурации MSR. Данные конфигурации будут переопределять дефолтную конфигурацию config.xml
  • Не используйте плавающие (keepalive) адреса для медиасервера.
  • Не используйте 0.0.0.0 в качестве listen-ip
  • Если вы настроили свой MSR через дефолтный конфиг config.xml, то при последуюущем обновлении или настройке с помощью dpkg-reconfigure он будет полностью перезатерт и сброшен в дефолт. Поэтому свой MSR лучше настраивать в отдельном файле, например в /etc/ecss/ecss-media-server/conf.d/01-ecss-conf.xml

Переопределять настройки конфигурационных файлов можно в каталогах:

  1. /etc/ecss/ecss-media-server/conf.d для файла config.xml
  2. /etc/ecss/ecss-media-server/conf-without-video.d - для файла config-without-video.xml
  3. В общем случае - /etc/ecss/ecss-media-server/conf-<имя_запускаемого_экземпляра_msr>.d - для файла config-<имя_запускаемого_экземпляра_msr>..xml

Подробнее о запуске нескольких экземпляров - ниже, в разделе "3.14.3 Настройка медиасервера"

Для этого создаются конфигурационные файлы, которые читаются в алфавитном порядке, например:

<!-- 01-ecss-conf.xml -->
<?xml version="1.0" encoding="utf-8"?>
<config>
  <general log-level="666" />
  <accounts>
    <dynamic msr_name="some name" realm="sip:x.x.x.x:zzzz" 
        dtmf_mode="rfc+inband+info" auth_name="user1" auth_password="password123"/>
  </accounts>
</config>

<!-- 02-ecss-conf.xml -->
<?xml version="1.0" encoding="utf-8"?>
<config>
  <rtp>
    <auto name="1.1.1.1"/>
   </rtp>
</config>
CODE

В результате должен переопределиться уровень логгирования и добавится аккаунт, а также включена опция подмены ip в sdp.

3. Запуск медиасервера

Запуск медиасервера в виде сервиса (по умолчанию)

Для работы сервис использует конфигурацию из файла

/etc/ecss/ecss-media-server/config.xml

Подробнее о настройках - в разделе "3.14.3 Настройка медиасервера".

При изменении конфигурации необходимо обязательно перезапустить сервис ecss-media-server

Запуск сервиса:

sudo systemctl start ecss-media-server.service

Остановка сервиса:

sudo systemctl stop ecss-media-server.service

Перезапуск сервиса:

sudo systemctl restart ecss-media-server.service

Запуск медиасервера вручную в виде приложения

Описание опций команды ecss-media-server [options]

[options] - опция команды ecss-media-server, принимает значения:

  • --help - вывод помощи;
  • --dbg - вывод логов на экран;
  • --version - вывод информации о версии;
  • --daemon - запуск процесса в фоновом режиме, все пути должны быть абсолютными;
  • --noiput - не пытаться читать какие-либо входные данные;
  • --config=file - настройка пути к конфигурационному XML-файлу;
  • --analyze=script - синтаксический и семантический анализ IVR-скрипта.

Пример:

ecss-media-server --config=/home/ssw/config.xml

Запуск более одного медиасервера на одном хосте через systemd сервис

В состав deb пакета ecss-media-server был добавлен сервис 'ecss-media-server@', который позволяет запускать мн-во экземпляров медиасервера.

Так же, для медиасервера был добавлен предсконфигурированный файл конфигурации(с выключенной поддержкой видео) с именем config-without-video.xml. 
После установки deb пакета располагается по пути: /etc/ecss/ecss-media-server. Хотя данный файл предсконфигурирован, но для каждого конкретного случая его нужно донастраивать/перенастраивать:

  • секция transport
    • параметры bind-addr и port
  • секция accounts -> секция dynamic
    • параметры msr_name и realm
  • секция pbyte -> секция mcc
    • параметры bind-addr и port.
Отдельно нужно обратить внимание на секцию media, параметры port-start и port-range не должны пересекаться с параметрами уже запущенных msr-ов, иначе в ходе работы на одном из msr-ов могут возникнуть ошибки, в виду того, что данные порты уже будут заняты. Так же стоит обратить внимание на секцию mcc, параметр port так же не должен пересекается с параметрами уже запущенных msr-ов по той же причине.

Конфигурационные файлы

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

 Пример файла конфигурации MSR
<?xml version="1.0" encoding="utf-8"?>
<config date="12:02:54 15.03.2018">
    <general log-level="0" log-rotate="yes" max-calls="4000" max-in-group="128" load-sensor="media" load-delta="10" 
     log-path="/var/log/ecss/media-server/without-video" />
    <transport bind-addr="192.168.1.1" port="5045" transport="udp+tcp" />
    <ivr fetchtimeout_ms="600" />
    <media use-vad="yes" cng-level="70"  video-dscp="2" other-dscp="2" 
     rtcp-timeout="0" rtp-timeout="0" cn-multiplier="3" port-start="40100" port-range="10000" 
     tias-in-sdp="no" thread-cnt="4" silence-threshold="-30" dtmf-flash-disable="no" 
     dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="1280" video-enc-height="720" />
    <codec pcma="1" pcmu="2" ilbc="0" gsm="0" g722="3" g729="0" speex="0" l16="0" h264="0" h263-1998="0" t38="1" tel-event-pt="1"/>
    <accounts>
        <dynamic msr_name="msr-without-video.ecss1" realm="sip:192.168.1.1:5000" dtmf_mode="rfc+inband+info" auth_name="msr_second_to_ecss1" auth_password="L0@%Y5" />
        <dynamic msr_name="msr-without-video.ecss2" realm="sip:192.168.1.2:5000" dtmf_mode="rfc+inband+info" auth_name="msr_second_to_ecss2" auth_password="2mV5x3" />
    </accounts>
    <pbyte>
        <mcc bind-addr="192.168.1.1" port="5702" />
    </pbyte>
</config>
XML
Отдельно нужно обратить внимание на секцию media, параметры port-start и port-range не должны пересекаться с параметрами уже запущенных msr-ов, иначе в ходе работы на одном из msr-ов могут возникнуть ошибки, в виду того, что данные порты уже будут заняты. Так же стоит обратить внимание на секцию mcc, параметр port так же не должен пересекается с параметрами уже запущенных msr-ов по той же причине. Параметр log-path должен быть уникальным для каждого MSR. Если путь указанный в log-path еще не существует, оператор SSW должен прописать его вручную (пользователь для директории с логами должен быть ssw:ssw).

Включение и запуск множества экземпляров сервиса ecss-media-server@

В systemd есть возможность запускать множество экземпляров сервиса, но предварительно данные экземпляры нужно включить.
Включение:

sudo systemctl enable ecss-media-server@<имя_запускаемого_экземпляра>

Запуск:

sudo systemctl start ecss-media-server@<имя_запускаемого_экземпляра>

В данном случае, этому медиасерверу будет соответствовать файл конфигурации с именем config-<имя_запускамого_экземпляра>.xml располагаемый по пути: /etc/ecss/ecss-media-server/

Например, включенному и запущенному экземпляру msr-а с именем without-video:

sudo systemctl enable ecss-media-server@without-video
Created symlink /etc/systemd/system/multi-user.target.wants/ecss-media-server@without-video.service → /lib/systemd/system/ecss-media-server@.service.

sudo systemctl start ecss-media-server@without-video

будет соответствовать файл конфигурации с именем config-without-video.xml расположенный по пути: /etc/ecss/ecss-media-server/
Для каждого экземпляра медиасервера должен быть сконфигурирован свой файл конфигурации медиасервера.

Убедиться, что экземпляр ecss-media-server@without-video запустился можно следующей командой:

ecss1@ssw 05:04:58 ~$ sudo systemctl status ecss-media-server@without-video
● ecss-media-server@without-video.service - daemon ecss-media-server-without/video of ecss-10
   Loaded: loaded (/etc/systemd/system/ecss-media-server@.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-12-07 08:07:58 +07; 4s ago
 Main PID: 12144 (ecss-media-serv)
    Tasks: 19 (limit: 4915)
   CGroup: /ecss.slice/ecss-media-server@without-video.service
           └─12144 /usr/bin/ecss-media-server --config=/etc/ecss/ecss-media-server/config-without-video.xml --noinput

дек 07 08:07:58 ssw systemd[1]: Started daemon ecss-media-server-without/video of ecss-10.
дек 07 08:07:59 ssw ecss-media-server[8867]: WARNING: no real random source present!

4. Настройка ECSS-10 для работы с медиасервером

Проверка контрольной коннекции

 Нажмите здесь для раскрытия...

В данном разделе описываются команды для управления настройками контрольной коннекции от ECSS-10 до MSR.

Таблица 1 - Описание параметров control channel коннекции:

ПараметрЗначение по умолчаниюОписание
ecss_zmq_transport"m1" => m1.msr.ecss:5700|trueСписок коннекций от ECSS-10 до MSR

status

Команда просмотра текущего состояния контрольных коннекций между ECSS-10 и MSR.

Путь команды:

/system/zmq/status

Синтаксис:

status [<ConnectionId>]

Параметры:

<ConnectionId> - идентификатор контрольной коннекции, состояние которой необходимо просмотреть.

Пример:

admin@[mycelium1@ecss1]:/$ system/zmq/status    
ecss_zmq_transport connection status:
┌─────────────┬───────────┬─────────┬────────┐
│Connection ID│   Node    │ Status  │IsActive│
├─────────────┼───────────┼─────────┼────────┤
│22abcd       │core1@ecss1│connected│true    │
│             │core1@ecss2│connected│true    │
│c5b9d8       │core1@ecss1│connected│true    │
│             │core1@ecss2│connected│true    │
└─────────────┴───────────┴─────────┴────────┘

[exec at: 17.02.2019 12:07:32, exec time: 141ms, nodes: core1@ecss2]

Настройка таймеров контрольной коннекции

 Нажмите здесь для раскрытия...

В данном разделе описываются команды по настройки транспортных таймеров контрольной коннекции.

Таблица 1 - Описание таймеров контрольной коннекции

ПараметрЗначение по умолчаниюОписаниеВозможные значения
mediactrl_keepalive_timeout10Keepalive тайм-аут контрольной коннекции (в секундах)5 - 100
mediactrl_transaction_timeout2Тайм-аут ожидания ответа на транзакцию mediactrl (в секундах)1 - 20
msr_ban_end_timeout1000Тайм-аут, во время которого выбор msr запрещен (в миллисекундах)
-

clean

Команда для восстановление настроек тайм-аутов контрольной коннекции между ECSS-10 и MSR в значения по умолчанию.

Путь команды:

/system/mediactrl/clean [--force]

Синтаксис:

clean [<FIELD>]

Параметры:

<FIELD> - название параметра, значение которого нужно установить по умолчанию. Опциональный параметр. Если параметр не указывать, то все значения будут установлены по умолчанию. Список параметров приведен в таблице 1.

--force - выполнить команду без запроса подтверждения.

Пример:

admin@core1@ecss1:/$ system/mediactrl/clean mediactrl_keepalive_timeout 
Property mediactrl_keepalive_timeout values successfully restored

[exec at: 06.04.2019 10:46:58, exec time: 158ms, nodes: core1@ecss1]

info

Команда просмотра текущих настроек тайм-аутов контрольной коннекции.

Путь команды:

/system/mediactrl/info

Синтаксис:

info [<FIELD>]

Параметры:

<FIELD> - название параметра, опциональный параметр, список приведен в таблице 1.

Пример:

admin@core1@ecss1:/$ system/mediactrl/info 
┌─────────────────────────────┬─────┐
│          Property           │Value│
├─────────────────────────────┼─────┤
│mediactrl_keepalive_timeout  │10   │
│mediactrl_transaction_timeout│2    │
│msr_ban_end_timeout          │1000 │
└─────────────────────────────┴─────┘

[exec at: 06.04.2019 10:36:20, exec time: 75ms, nodes: core1@ecss1]

set

Команда для изменения тайм-аутов контрольной коннекций.

Путь команды:

/system/mediactrl/set

Синтаксис:

set <FIELD> <VALUE>

Параметры:

<FIELD> - имя настраиваемого параметра, список приведен в таблице 1.

Пример:

admin@core1@ecss1:/$ system/mediactrl/set mediactrl_keepalive_timeout 5
Property "mediactrl_keepalive_timeout" successfully changed from: 
10
   to
5.

[exec at: 06.04.2019 10:46:06, exec time: 196ms, nodes: core1@ecss1]

Настройка параметров Registrar-сервера

 Нажмите здесь для раскрытия...

Registrar-сервер предназначен для регистрации динамических аккаунтов медиасервера.

clean

Команда для восстановления настроек по умолчанию.

Путь команды:

/system/media/registrar/clean

Синтаксис:

clean (private <CORE> | common) <FIELD>

Параметры:

<CORE> - нода ядра, для которой восстанавливаются значения, доступно только для индивидуальных параметров (private);

<FIELD> - название параметра, значение которого нужно установить по умолчанию. Для восстановления всех значений используется параметр all.

Пример:

Установить значения по умолчанию для всех общих настроек (common):

admin@[mycelium1@ecss1]:/$ system/media/registrar/clean common all            
All common parameters is clean.

[exec at: 17.02.2019 12:29:07, exec time: 359ms, nodes: core1@ecss1]

admin@[mycelium1@ecss1]:/$ system/media/registrar/clean private core1@ecss1 all          
All private parameters is clean at node core1@ecss1.

[exec at: 17.02.2019 12:29:39, exec time: 316ms, nodes: core1@ecss2]

info

Команда просмотра текущих настроек Registrar-сервера.

Путь команды:

/system/media/registrar/info

Пример:

admin@[mycelium1@ecss1]:/$ system/media/registrar/info         
 Common parameters:
┌───────────────────────────┬───────┐
│         Parameter         │ Value │
├───────────────────────────┼───────┤
│ registration-timeout, sec │    90 │
└───────────────────────────┴───────┘
 Private parameters:
┌─────────────┬────────┬───────────┬──────────────┬─────────────┐
│    Node     │ Status │ Is-active │  Listen-ip   │ Listen-port │
├─────────────┼────────┼───────────┼──────────────┼─────────────┤
│ core1@ecss1 │ active │ true      │ 192.168.2.21 │        5000 │
│ core1@ecss2 │ active │ true      │ 192.168.2.22 │        5000 │
└─────────────┴────────┴───────────┴──────────────┴─────────────┘

[exec at: 17.02.2019 12:22:55, exec time: 75ms, nodes: core1@ecss1]

set

Команда для изменения общих и индивидуальных параметров.

Путь команды:

/system/media/registrar/set

Синтаксис настройки общих параметров:

set common <FIELD> <VALUE>

Параметры:

<FIELD> - имя настраиваемого параметра;

<VALUE> - значение настраиваемого параметра

Где
  • common - тип выставляемого параметра;
  • <common parameter> - общий параметр медиарегистратора для всех нод: registration-timeout;
  • private - тип выставляемого параметра;
  • <node name> - имя ноды на которой находится медиарегистратор;
  • <private parameter> - параметр медиарегистратора, который выставляется на <node name>: is-active, listen-interface & listen-port.

Cписок параметров доступных для настройки:

  • is-active - позволяет включить или выключить регистратор (false - деактивирует регистратор, регистратор перестает принимать SIP трафик);
  • listen-interface - имя интерфейса, который использует регистратор;
  • listen-port - порт, на котором регистратор принимает запросы на регистрацию (по умолчанию 5000);
  • registration-timeout - таймер перерегистрации, диапазон значений от 60 до 86400.

В общих параметрах доступна настройка времени регистрации, по умолчанию установлено 60 секунд.

Пример:
Установить время регистрации 60 секунд:

admin@[mycelium1@ecss1]:/$ system/media/registrar/set common registration-timeout 60           
Common parameter registration-timeout set to 60.

[exec at: 17.02.2019 12:25:08, exec time: 241ms, nodes: core1@ecss2]

Синтаксис настройки индивидуальных параметров:

system/media/registrar/set private <CORE> <FIELD> <VALUE>

Параметры:

<CORE> - нода ядра, для которой настраивается Registrar-сервер;

<FIELD> - имя настраиваемого параметра;

<VALUE> - значение настраиваемого параметра.

Настраиваемые параметры:

  • is-active - активен ли Registrar-сервер, принимает значения true | false;
  • listen-ip - ip-адрес, на котором Registrar-сервер будет принимать соединения (по умолчанию 0.0.0.0);
  • listen-port - сетевой порт, на котором Registrar-сервер будет принимать соединения (по умолчанию 5000).

Пример:

Установить порт 5001 для приема соединений от медиасервера:

admin@[mycelium1@ecss1]:/$ system/media/registrar/set private core1@ecss1 listen-port 5001       
Private parameter listen-port set to 5000 at node core1@ecss1.

[exec at: 17.02.2019 12:25:40, exec time: 237ms, nodes: core1@ecss2]

Добавление медиаресурсов

 Нажмите здесь для раскрытия...

Медиаресурс - это описание параметров медиасервера, необходимых для работы с ним.

declare

Команда для объявления подключения медиасервера к ECSS-10.

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

Команда для создания конфигурации медиасервера:

Путь команды:

/system/media/resource/declare

Синтаксис:

declare <node> by_contact <contact> <zone> <site> <is active>

или

declare <node> by_iface <msr> <acc_id> <iface> <zone> <site> <is active>

Параметры:

<node> - имя ноды core;
<contact> - contact uri декларируемого медиаресурса;
<zone> - логическая зона обслуживания MSR;
<site> - идентификатор сети обслуживания MSR;
<is active> - состояние активности медиаресурса, значения true/false;
<msr> - имя MSR;
<acc_id> - номер идентификатор ресурса;
<iface> - название интерфейса.

Пример:

admin@[mycelium1@ecss1]:/$ system/media/resource/declare * contact bond1.476:SIP11@msr_1 default local true              
  Declared media resources
┌─────────────┬───────────────────────┬────────┬─────────┬───────┐
│    Node     │        Contact        │ Active │   Zone  │  Site │
├─────────────┼───────────────────────┼────────┼─────────┼───────┤
│ core1@ecss1 │ bond1.476:SIP11@msr_1 │ true   │ default │ local │
│ core1@ecss2 │ bond1.476:SIP11@msr_1 │ true   │ default │ local │
└─────────────┴───────────────────────┴────────┴─────────┴───────┘

[exec at: 17.02.2019 12:38:02, exec time: 124ms, nodes: core1@ecss2]

info

Команда для просмотра информации о состоянии подключения конкретного медиаресурса.

Путь команды:

/system/media/resource/info

Синтаксис:

info <contact uri>

Параметры:

<contact> - contact uri декларируемого медиаресурса.

Пример:

admin@[mycelium1@ecss1]:/$ system/media/resource/info core1@ecss1 bond1.2:SIP61@msr_1              
  Media resource specific for node core1@ecss1:
┌─┬─────────────────┬─────────────────────────────┐
│F│    Parameter    │            Value            │
├─┼─────────────────┼─────────────────────────────┤
│r│ Contact         │ bond1.2:SIP61@msr_1         │
│r│ Status          │ registered                  │
│r│ Cc-status       │ connected                   │
│r│ Cc-status uptime│ 00:04:56                    │
│r│ Cc-id           │ 22abcd                      │
│r│ Address         │                             │
│r│ Register time   │ 2019/02/17 12:34:23         │
│r│ Expired         │ 38                          │
│r│ Iface           │ bond1.2:SIP61(192.168.2.61) │
│ │ Active          │ false                       │
│ │ Zone            │                             │
│ │ Site            │                             │
│r│ MSR version     │ 3.14.0.6                    │
│r│ MSR load        │ 0                           │
│r│ MSR perf coef   │ 1.0                         │
└─┴─────────────────┴─────────────────────────────┘

Legend:
Column F - means Flag, values r - flag for readonly parameter

[exec at: 17.02.2019 12:34:45, exec time: 75ms, nodes: core1@ecss2]

list

Команда для просмотра списка медиаресурсов в системе ECSS-10.

Путь команды:

/system/media/resource/list

Синтаксис:

list [active | all | register]

Параметры:

  • active - отображать только активные медиаресурсы (по умолчанию);
  • register - отображать только зарегистрированные медиаресурсы;
  • short - отобразить минимальную информацию;
  • all - отображать все задекларированные медиаресурсы.

По умолчанию команда выдает список зарегистрированных медиасерверов

Пример:

admin@[mycelium1@ecss1]:/$ system/media/resource/list short              
  Active media resource selected list specific:
┌─────────────┬───────┬──────────┬───────────┬───────────┐
│    Node     │  MSR  │   MSR    │ Cc-status │ Cc-uptime │
│             │       │ version  │           │           │
├─────────────┼───────┼──────────┼───────────┼───────────┤
│ core1@ecss1 │ msr_1 │ 3.14.0.6 │ connected │ 00:09:37  │
│             │ msr_2 │ 3.14.0.6 │ connected │ 00:09:23  │
│ core1@ecss2 │ msr_1 │ 3.14.0.6 │ connected │ 00:09:42  │
│             │ msr_2 │ 3.14.0.6 │ connected │ 00:09:43  │
└─────────────┴───────┴──────────┴───────────┴───────────┘

[exec at: 17.02.2019 12:39:26, exec time: 91ms, nodes: core1@ecss2]

## Команда для запроса списка всех известных системе медиасерверов (зарегистрированных, дерегистрированных и сконфигурированных) с ключом all:

admin@[mycelium1@ecss1]:/$ system/media/resource/list all   
  All media resource selected list specific:
┌─────────────┬───────┬──────────┬───────────┬──────┬────────┬───────────┬───────────┬───────────────────┬─────────────────┬──────────────┬────────┬─────────┬───────┬───────────────────────┬──────────────┬─────────┐
│    Node     │  MSR  │   MSR    │    MSR    │ MSR  │ Cc-id  │ Cc-status │ Cc-uptime │    Cc-address     │      Iface      │    Iface     │ Active │  Zone   │ Site  │        Contact        │    Status    │ Expired │
│             │       │ version  │ perf coef │ load │        │           │           │                   │      name       │     addr     │        │         │       │                       │              │         │
├─────────────┼───────┼──────────┼───────────┼──────┼────────┼───────────┼───────────┼───────────────────┼─────────────────┼──────────────┼────────┼─────────┼───────┼───────────────────────┼──────────────┼─────────┤
│ core1@ecss1 │ msr_1 │ 3.14.0.6 │       1.0 │    0 │ 22abcd │ connected │ 00:09:43  │ 192.168.2.21:5700 │ bond1.2         │ 192.168.2.21 │ true   │ default │ local │ bond1.2@msr_1         │ registered   │      36 │
│             │       │          │           │      │        │           │           │                   │ bond1.2:SIP61   │ 192.168.2.61 │ false  │         │       │ bond1.2:SIP61@msr_1   │ registered   │      31 │
│             │       │          │           │      │        │           │           │                   │ bond1.2:SIP62   │ 192.168.2.62 │ false  │         │       │ bond1.2:SIP62@msr_1   │ unregistered │ expired │
│             │       │          │           │      │        │           │           │                   │ bond1.2:TC      │ 192.168.2.63 │ false  │         │       │ bond1.2:TC@msr_1      │ registered   │      32 │
│             │       │          │           │      │        │           │           │                   │ bond1.3:MYSQL   │ 192.168.1.71 │ false  │         │       │ bond1.3:MYSQL@msr_1   │ registered   │      35 │
│             │       │          │           │      │        │           │           │                   │ bond1.3         │ 192.168.1.21 │ false  │         │       │ bond1.3@msr_1         │ registered   │      38 │
│             │       │          │           │      │        │           │           │                   │ bond1.476:SIP10 │ 10.16.33.10  │ true   │ default │ local │ bond1.476:SIP10@msr_1 │ registered   │      29 │
│             │       │          │           │      │        │           │           │                   │ bond1.476:SIP11 │ 10.16.33.11  │ true   │ default │ local │ bond1.476:SIP11@msr_1 │ unregistered │ expired │
│             │       │          │           │      │        │           │           │                   │ bond1.476       │ 10.16.33.5   │ false  │         │       │ bond1.476@msr_1       │ registered   │      39 │
│             │       │          │           │      │        │           │           │                   │ lo              │ 127.0.0.1    │ false  │         │       │ lo@msr_1              │ registered   │      36 │
│             │ msr_2 │ 3.14.0.6 │       0.5 │    0 │ c5b9d8 │ connected │ 00:09:29  │ 192.168.2.22:5700 │ bond1.2         │ 192.168.2.22 │ true   │ default │ local │ bond1.2@msr_2         │ registered   │      50 │
│             │       │          │           │      │        │           │           │                   │ bond1.2:SIP62   │ 192.168.2.62 │ false  │         │       │ bond1.2:SIP62@msr_2   │ registered   │      24 │
│             │       │          │           │      │        │           │           │                   │ bond1.3         │ 192.168.1.22 │ false  │         │       │ bond1.3@msr_2         │ registered   │      50 │
│             │       │          │           │      │        │           │           │                   │ bond1.476:SIP11 │ 10.16.33.11  │ false  │         │       │ bond1.476:SIP11@msr_2 │ registered   │      24 │
│             │       │          │           │      │        │           │           │                   │ bond1.476       │ 10.16.33.6   │ false  │         │       │ bond1.476@msr_2       │ registered   │      50 │
│             │       │          │           │      │        │           │           │                   │ lo              │ 127.0.0.1    │ false  │         │       │ lo@msr_2              │ registered   │      50 │
│ core1@ecss2 │       │          │       1.0 │    0 │        │           │           │                   │                 │              │ true   │ default │ local │ bond1.476:SIP11@msr_1 │              │         │
│             │ msr_1 │ 3.14.0.6 │       1.0 │    0 │ 22abcd │ connected │ 00:09:48  │ 192.168.2.21:5700 │ bond1.2         │ 192.168.2.21 │ true   │ default │ local │ bond1.2@msr_1         │ registered   │      31 │
│             │       │          │           │      │        │           │           │                   │ bond1.2:SIP61   │ 192.168.2.61 │ false  │         │       │ bond1.2:SIP61@msr_1   │ registered   │      30 │
│             │       │          │           │      │        │           │           │                   │ bond1.2:TC      │ 192.168.2.63 │ false  │         │       │ bond1.2:TC@msr_1      │ registered   │      29 │
│             │       │          │           │      │        │           │           │                   │ bond1.3:MYSQL   │ 192.168.1.71 │ false  │         │       │ bond1.3:MYSQL@msr_1   │ registered   │      28 │
│             │       │          │           │      │        │           │           │                   │ bond1.3         │ 192.168.1.21 │ false  │         │       │ bond1.3@msr_1         │ registered   │      31 │
│             │       │          │           │      │        │           │           │                   │ bond1.476:SIP10 │ 10.16.33.10  │ false  │         │       │ bond1.476:SIP10@msr_1 │ registered   │      28 │
│             │       │          │           │      │        │           │           │                   │ bond1.476       │ 10.16.33.5   │ false  │         │       │ bond1.476@msr_1       │ registered   │      28 │
│             │       │          │           │      │        │           │           │                   │ lo              │ 127.0.0.1    │ false  │         │       │ lo@msr_1              │ registered   │      29 │
│             │ msr_2 │ 3.14.0.6 │       0.5 │    0 │ c5b9d8 │ connected │ 00:09:49  │ 192.168.2.22:5700 │ bond1.2         │ 192.168.2.22 │ true   │ default │ local │ bond1.2@msr_2         │ registered   │      30 │
│             │       │          │           │      │        │           │           │                   │ bond1.2:SIP62   │ 192.168.2.62 │ false  │         │       │ bond1.2:SIP62@msr_2   │ registered   │      31 │
│             │       │          │           │      │        │           │           │                   │ bond1.3         │ 192.168.1.22 │ false  │         │       │ bond1.3@msr_2         │ registered   │      29 │
│             │       │          │           │      │        │           │           │                   │ bond1.476:SIP11 │ 10.16.33.11  │ false  │         │       │ bond1.476:SIP11@msr_2 │ registered   │      31 │
│             │       │          │           │      │        │           │           │                   │ bond1.476       │ 10.16.33.6   │ false  │         │       │ bond1.476@msr_2       │ registered   │      30 │
│             │       │          │           │      │        │           │           │                   │ lo              │ 127.0.0.1    │ false  │         │       │ lo@msr_2              │ registered   │      30 │
└─────────────┴───────┴──────────┴───────────┴──────┴────────┴───────────┴───────────┴───────────────────┴─────────────────┴──────────────┴────────┴─────────┴───────┴───────────────────────┴──────────────┴─────────┘

[exec at: 17.02.2019 12:39:32, exec time: 100ms, nodes: core1@ecss2]

purge

Команда для удаления старых, не активных подключений медиаресурсов к ECSS-10.

Путь команды:

/system/media/resource/purge

Синтаксис:

purge <node>

Параметры:

<node> - имя ноды.

Пример:

admin@[mycelium1@ecss1]:/$ system/media/resource/purge *              
Purged contact list at node core1@ecss1:
 bond1.2:SIP62@msr_1
Not found media-resources at node core1@ecss2.

[exec at: 17.02.2019 12:41:22, exec time: 116ms, nodes: core1@ecss1]

remove

Команда для удаления информации о настройках медиаресурса, добавленных ранее в ECSS-10.

Путь команды:

/system/media/resource/remove

Синтаксис:

remove <node> contact <contact> | msr <msr>

Параметры:

<node> - имя ноды;
<contact> - contact uri декларируемого медиаресурса;
<msr> - имя MSR.

Пример:

admin@[mycelium1@ecss1]:/$ system/media/resource/remove * contact bond1.476:SIP11@msr_1              
Media resource with contact(bond1.476:SIP11@msr_1) deleted at nodes:
   core1@ecss2
   core1@ecss1

[exec at: 17.02.2019 12:44:23, exec time: 109ms, nodes: core1@ecss1]

admin@[mycelium1@ecss1]:/$ system/media/resource/remove * contact bond1.476:SIP10@msr_1 
Media resource with contact(bond1.476:SIP10@msr_1) deleted at nodes:
   core1@ecss1
Not found at nodes:
   core1@ecss2

[exec at: 17.02.2019 12:44:48, exec time: 112ms, nodes: core1@ecss2]

set

Команда для изменения настроек медиаресурсов.

Путь команды:

/system/media/resource/set

Синтаксис:

set <node|*> <contact> <active|zone|site> <value>

Параметры:

<node|*> - имя ноды;
<contact> - contact uri декларируемого медиаресурса;
<active|zone|site> - активация | зона | сайт;
<value> - значение параметра.

Пример:

admin@[mycelium1@ecss1]:/$ system/media/resource/set * bond1.476:SIP11@msr_1 active true           
  Media resource:
┌─────────────┬───────────────────────┬──────────┬───────┐
│    Node     │        Contact        │ Property │ Value │
├─────────────┼───────────────────────┼──────────┼───────┤
│ core1@ecss2 │ bond1.476:SIP11@msr_1 │ active   │ true  │
│ core1@ecss1 │ bond1.476:SIP11@msr_1 │ active   │ true  │
└─────────────┴───────────────────────┴──────────┴───────┘

[exec at: 17.02.2019 12:43:15, exec time: 126ms, nodes: core1@ecss2]

status

Команда для просмотра текущего состояния зарегистрированных медиаресурсов.

Путь команды:

/system/media/resource/status

Синтаксис:

status

Параметры:

Команда не имеет параметров.

Выводимая информация:

  • Node - имя ядра;
  • MSR - имя MSR;
  • MSR version - версия MSR;
  • MSR perf coef - коэффициент производительности;
  • MSR load calls(level) - текущие загрузка и количество активных вызовов;
  • Cc status(uptime) - статус контрольной коннекции;
  • Iface name:addr - сетевой интерфейс и адрес MSR;
  • Active - активен или нет данный медиаресурс;
  • Status - статус регистрации;
  • Expired - время до окончания регистрации.

Пример:

admin@mycelium1@ecss1:/$ system/media/resource/status       
  Status of active media resource list:
┌─────────────┬───────┬────────────┬───────────┬──────────────┬────────────────────────┬──────────────────────┬────────┬────────────┬─────────┐
│    Node     │  MSR  │    MSR     │    MSR    │   MSR load   │           Cc           │        Iface         │ Active │   Status   │ Expired │
│             │       │  version   │ perf coef │ calls(level) │     status(uptime)     │      name:addr       │        │            │         │
├─────────────┼───────┼────────────┼───────────┼──────────────┼────────────────────────┼──────────────────────┼────────┼────────────┼─────────┤
│ core1@ecss1 │ msr_1 │ 3.14.0.156 │       2.0 │    - (0%)    │ connected (1 12:54:23) │ bond1.2:192.168.2.21 │ true   │ registered │      49 │
│             │ msr_2 │ 3.14.0.156 │       1.0 │    - (0%)    │ connected (12:54:17)   │ bond1.2:192.168.2.22 │ true   │ registered │      48 │
│ core1@ecss2 │ msr_1 │ 3.14.0.156 │       2.0 │    - (0%)    │ connected (00:49:08)   │ bond1.2:192.168.2.21 │ true   │ registered │      80 │
│             │ msr_2 │ 3.14.0.156 │       1.0 │    - (0%)    │ connected (00:49:09)   │ bond1.2:192.168.2.22 │ true   │ registered │      80 │
└─────────────┴───────┴────────────┴───────────┴──────────────┴────────────────────────┴──────────────────────┴────────┴────────────┴─────────┘

[exec at: 21.07.2019 22:44:34, exec time: 14ms, nodes: core1@ecss1]