В ходе установки необходимо будет ответить на ряд вопросов для формирования конфигурационного файла. Можно вводить ответы по умолчанию, тогда нужно будет вручную править файл /etc/ecss/ecss-media-server/config.xml. Описание параметров приведено на странице Настройка конфигурационного файла MSR.
Также возможно заранее перед установкой подготовить обычный текстовый файл ответов.
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 - количество рабочих потоков для обработки медиаданных (по умолчанию: "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);
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"/>
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
Переопределять настройки конфигурационных файлов можно в каталогах:
/etc/ecss/ecss-media-server/conf.d для файла config.xml
/etc/ecss/ecss-media-server/conf-without-video.d - для файла config-without-video.xml
В общем случае - /etc/ecss/ecss-media-server/conf-<имя_запускаемого_экземпляра_msr>.d - для файла config-<имя_запускаемого_экземпляра_msr>..xml
Подробнее о запуске нескольких экземпляров - ниже, в разделе "Запуск медиасервера"
Для этого создаются конфигурационные файлы, которые читаются в алфавитном порядке, например:
При изменении конфигурации необходимо обязательно перезапустить сервис 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-ов по той же причине.
Конфигурационные файлы
Для каждого нового экземпляра медиасервера, который будет развернут на хосте, требуется использовать свой файл конфигурации медиасервера.
Отдельно нужно обратить внимание на секцию media, параметры port-start и port-rangeне должны пересекаться с параметрами уже запущенных msr-ов, иначе в ходе работы на одном из msr-ов могут возникнуть ошибки, в виду того, что данные порты уже будут заняты. Так же стоит обратить внимание на секцию mcc, параметр port так же не должен пересекается с параметрами уже запущенных msr-ов по той же причине. Параметр log-path должен быть уникальным для каждого MSR. Если путь указанный в log-path еще не существует, оператор SSW должен прописать его вручную (пользователь для директории с логами должен быть ssw:ssw).
Включение и запуск множества экземпляров сервиса ecss-media-server@
В systemd есть возможность запускать множество экземпляров сервиса, но предварительно данные экземпляры нужно включить. Включение:
В данном случае, этому медиасерверу будет соответствовать файл конфигурации с именем config-<имя_запускамого_экземпляра>.xml располагаемый по пути: /etc/ecss/ecss-media-server/
Например, включенному и запущенному экземпляру msr-а с именем 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> - идентификатор контрольной коннекции, состояние которой необходимо просмотреть.
В данном разделе описываются команды по настройки транспортных таймеров контрольной коннекции.
Таблица 1 - Описание таймеров контрольной коннекции
Параметр
Значение по умолчанию
Описание
Возможные значения
mediactrl_keepalive_timeout
10
Keepalive тайм-аут контрольной коннекции (в секундах)
5 - 100
mediactrl_transaction_timeout
2
Тайм-аут ожидания ответа на транзакцию mediactrl (в секундах)
1 - 20
msr_ban_end_timeout
1000
Тайм-аут, во время которого выбор msr запрещен (в миллисекундах)
-
clean
Команда для восстановление настроек тайм-аутов контрольной коннекции между ECSS-10 и MSR в значения по умолчанию.
Путь команды:
/system/mediactrl/clean [--force]
Синтаксис:
clean [<FIELD>]
Параметры:
<FIELD> - название параметра, значение которого нужно установить по умолчанию. Опциональный параметр. Если параметр не указывать, то все значения будут установлены по умолчанию. Список параметров приведен в таблице 1.
--force - выполнить команду без запроса подтверждения.
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/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]
<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.
Для работы в режиме предварительно настроенной системы можно заранее прописать медиаресурсы, информация о которых известна. Для этого необходимо создать описание известных медиасерверов с указанием всех параметров, что позволить начать работу с медиасервером сразу после его регистрации.
<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 - отображать все задекларированные медиаресурсы.
По умолчанию команда выдает список зарегистрированных медиасерверов
Команда для удаления старых, не активных подключений медиаресурсов к 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) - текущие загрузка и количество активных вызовов;