В данном разделе приведено описание этапов первоначальной настройки ECSS перед проверкой базового функционала.

Понятия и определения

Предварительные условия

Перед началом настройки конфигурации необходимо убедиться в следующем:

Настройка ECSS-10 для производительных систем

Для производительных систем настройка ECSS-10 состоит из следующих этапов:

Выделение отдельных ядер процессора для MSR

Для того чтобы изолировать MSR-медиасервер от остальной сиcтемы, необходимо выделить под него отдельные ядра процессора. Для выделения отдельных ядер процессора необходимо выполнить следующие действия:

  1. Отредактировать файл grub:

    sudo nano /etc/default/grub

    Привести параметр GRUB_CMDLINE_LINUX="" к следующему виду:

    GRUB_CMDLINE_LINUX="isolcpus=0-4"


  2. Обновить конфигурацию grub. Для этого выполните команду:

    sudo update-grub


  3. Перезапустить систему.

    Если всё сделано правильно, то после перезагрузки на изолированных ядрах htop будет показывать нулевую нагрузку.

Пример (Было / Стало):

Установка работы CPU в режим perfomance

По умолчанию в Ubuntu есть пять профилей работы процессора.

Описание профилей:

Выставить параметры ОС в режим производительности

Используем  утилиту cpufrequtils.

sudo apt install cpufrequtils

По умолчанию после инсталляции Ubuntu использует режим "ondemand" - "по запросу" (производительность CPU по запросу приложений, экономит электроэнергию , но ниже производительность):

cat /etc/init.d/cpufrequtils | grep GOVERNOR=


#	GOVERNOR="ondemand"
GOVERNOR="ondemand"

Установить режим - результативность/производительность  -  в файле /etc/init.d/cpufrequtils значение "ondemand" заменить на "performance"

sudo nano /etc/init.d/cpufrequtils

Перезапустить утилиту:

sudo /etc/init.d/cpufrequtils restart 

Затем выполнить команду:

sudo systemctl daemon-reload



Запуск MSR на изолированных ядрах процессора

Для того чтобы MSR запускался на отдельных ядрах процессора, необходимо: 

  1. Включить экземпляр MSR:
    systemctl enable ecss-media-server@msr.service
    systemctl edit ecss-media-server@msr.service
  2. Привести файл /etc/systemd/system/ecss-media-server.service.d/override.conf к следующему виду:
    [Service]
    CPUAffinity=8-11
    CPUSchedulingPolicy=rr


Для просмотра того, на каких ядрах запустился сервис, можно воспользоваться htop. В нем нужно добавить колонку Processor.

В данном примере MSR запущен на ядрах 8, 9, 10, 11. CPUSchedulingPolicy необходим, только если указан isolcpus.

Настройка MSR более подробно описана на странице Настройка медиасервера (MSR).

Аналогичным образом настраивается конфигурация ядер для CORE/SIP/SIGTRAN/DS/MD

Настройка использования определенных ядер процессора для erlang-based служб

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

Для этого разрабатывается схема размещения нод на ядрах.

Схема разрабатывается по следующим правилам:

Распределения ядер на примере двухпроцессорного сервера HP BL660 c двумя процессорами Intel Xeon E5-4657L c 12 ядрами и поддержкой гипертрединга, которые могут образовать 8 виртуальных ядер:

myc  0-3
ds   4-7
core 8-23
sip  24-31
md   32-35
rest 36-39
sp   40-43
msr  44-47

Для осуществления данного распределения необходимо включить режим использования только необходимого количества ядер на erlang-ноде.

Для этого редактируем файл vm.args каждой ноды, расположенный по пути  /usr/lib/ecss/ECSS-SERVICE-NAME/releases/VERSION/.

Например, для ecss-core необходимо отредактировать файл:

sudo nano /usr/lib/ecss/ecss-core/releases/3.14.2.29/vm.args

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

Для 16-ти ядер это:

+sct L0-15c0-15
+sbt db
+S16:16

Для 8-ми ядер:

+sct L0-7c0-7
+sbt db
+S8:8

Для 4-х ядер:

+sct L0-3c0-3
+sbt db
+S4:4

Для 2-х ядер:

+sct L0-1c0-1
+sbt db
+S2:2

Следующая задача — установить сервис на выбранные ядра. Делается это аналогично тому, как описано для MSR.

Необходимо выполнить команду:

sudo systemctl edit ECSS-SERVICE-NAME

Далее добавить параметры:

[Service]
CPUAffinity=0-3

где в значении CPUAffinity указываются те ядра, на которых должны запускаться процессы сервиса.

Пример настройки ecss-core по указанной выше схеме:

> sudo systemctl edit ecss-core.service
[Service]
CPUAffinity=8-23

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

sudo systemctl daemon-reload

Перезапустить сервисы:

sudo systemctl restart ecss.slice

Убедиться в корректной привязке сервисов к ядрам можно утилитой htop, включив отображение колонки PROCESSOR.

Порядок начальной настройки конфигурации

В первую очередь необходимо выполнить общие настройки для всей системы:

Далее необходимо задекларировать и настроить следующие сервисы:

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

Рекомендуется проводить первоначальную настройку в порядке, приведенном ниже.

Настройка программного медиасервера

Порядок настройки программного медиасервера (MSR):


Создание и настройка группы SIP-IP-адресов (IP-set)

Произвести настройку адаптера SIP можно выполнить одним из двух способов:

Без предварительного создания IP-set не будут работать команды создания Домена/транка/абонента. Для работы данных объектов обязательным условием является информация, через какие IP адреса (порты) будет выполняться обмен сигнальной информацией. IP-set может быть как индивидуальный для каждого домена, так и  общим для всех доменов SSW, в зависимости от проекта. Так же можно назначить на разные домены индивидуальные порты ( для примера домен А использует порт=5061, а домен В порт=5062) на одних IP адресах (10.0.10.91/92)


Пример создание через CLI (в примере имя IP set "test_set", IP add = 10.0.10.91/92)

  1. Создать IP set и указать IP адрес для первой ноды:
    /cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss1 ip = 10.0.10.91
  2. К созданному IP set добавить IP адрес второй ноды:
    /cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss2 ip = 10.0.10.92
  3. К созданному IP set добавить IP порт:
    /cluster/adapter/sip1/sip/network/set ip_set test_set listen-ports list = [5060]

Пример создание через Web (в примере имя IP set "test_set", IP add = 10.0.10.91/92) приложение "Кластеры"

  1. Открыть приложение "Кластеры";
  2. Двойным кликом открыть "sip1 adapter";
  3. В окне Свойства кластера "sip1" выбрать "Транспорт";
  4. Добавить;
  5. Указать имя нового IP set (в примере "test_set");
  6. Из выпадающего списка выбрать IP адрес, через который будет работать ecss2 нод;
  7. Так же указать IP адрес для ecss1 нод (по умолчанию подставляет 127.0.0.1);
  8. Выбрать правильный (в примере 10.0.10.91);
  9. Сохранить.

Создание и настройка доменов (виртуальных АТС)

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

Декларация доменов

Необходимо создать домен по каждому из запроектированных доменов (виртуальных АТС).

Создание домена можно выполнить одним из двух способов:

Пример создание через CLI (в примере имя домена "test_test"):

  1. Создать домен с именем "test_domain":
    /domain/declare test_test --add-domain-admin-privileges --add-domain-user-privileges
  2. Подключить к созданному домену, ранее созданный  IP-set ("test_set"):
    /domain/test_test/sip/network/set ip_set [test_set]
  3. Назначить на созданный домен доступные услуги (все или определенные/необходимые):
    /cluster/storage/ds1/ss/access-list add test_domain *
  4. Установить на созданном домене политику применения лицензии с указанием имени (для примера "new_sub")
    /domain/test_test/ss/licence/politics/declare new_sub
  5. Добавить на созданном домене в новую политику пакет лицензионных услуг (для примера "ECSS-FULL+")
    /domain/test_test/ss/licence/politics/package-add new_sub ECSS-FULL+
  6. Активизируем новую политику применения лицензии на новом домене:
    /domain/test_test/ss/licence/politics/activate new_sub

Пример создание через Web (в примере имя домена "test_test") приложение "Домены":

Создание домена
  1. Выбрать "Добавить домен";
  2. Указать имя нового домена (в примере "test_test");
  3. Сохранить ("Ок").

Подключение IP set
  1. Выбрать домен (в примере "test_test");
  2. Выбрать "Свойства домена";
  3. Выбрать "SIP/SIP транспорт";
  4. Выбрать IP set, который будет обслуживать данный домен, из выпадающего списка;
  5. Сохранить.

Конфигурацию услуг, для нового домена, выполнить в CLI. 


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

Для примера :

/var/lib/ecss/modification/ctx/src/Имя_домена
/var/lib/ecss/routing/ctx/src/Имя_домена
/var/lib/ecss/cdИмя_домена

и т.д.

Настройка маршрутизации

Маршрутизация телефонных вызовов — это процесс определения интерфейса назначения для конкретного вызова на основании информации об интерфейсе источника вызова, информации о телефонном номере вызывающего и вызываемого абонента, категории вызывающего абонента, времени суток и дне недели.
Контекст маршрутизации — совокупность правил маршрутизации уникальная в домене маршрутизации, в рамках которого идет определение интерфейса вызываемого абонента.

Описание процесса маршрутизации вызовов в системе ECSS-10 приведено в разделе "Виртуальная АТС. Маршрутизация телефонных вызовов".

Создание контекстов маршрутизации

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

Это можно сделать несколькими способами:

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

Применение контекстов маршрутизации для системных интерфейсов

Для интерфейсов system:ivr и system:teleconference необходимо назначить контексты маршрутизации. Настройки выполняются с помощью команд CLI. Описание и примеры команд приведены в разделе "/domain/<DOMAIN>/system-iface/ - команды управления системными интерфейсами".



Создание и настройка абонентов

В соответствии с проектом в доменах нужно создать требуемое количество абонентов. Сделать это можно с помощью команды CLI /domain/<DOMAIN>/sip/user/declare или приложения web-конфигуратора "Карточка абонента (Subscriber card)".

При создании абоненту нужно назначить номер, группу, контекст маршрутизации, CDR-группу, способ авторизации и авторизационные данные. Также сразу можно для каждого абонента назначить набор необходимых услуг и настроить необходимые ограничения.

Абоненты в домене — условие необязательное, в системе могут быть и чисто транзитные домены, на которых настраиваются соответствующие правила прохождения вызовов.

Создание и настройка транков

  • Транк представляет собой совокупность ресурсов для обслуживания телефонных вызовов в заданном направлении (см. раздел "Транки и бриджи");
  • SIP-Транк представляет собой направление, работающее по протоколу SIP/SIP-Т/SIP-I;
  • Динамический транк — транк с обязательной поддержкой регистрации. Для совершения вызова по динамическому транку взаимодействующий шлюз должен быть зарегистрирован по данному транку в системе ECSS-10.

Декларация и настройка транков производится:

Порядок создания и настройки транков приведен в разделе "Управление SIP-транками".

Далее на транках настраиваются необходимые сервисы.

Создание и настройка bridge-интерфейсов

Бридж  — виртуальный транк, позволяющий соединять между собой две виртуальные АТС в рамках одной системы ECSS-10.

Если в системе имеется более одного домена, то связь между ними осуществляется с помощью бриджей (см. раздел "Транки и бриджи").

Бриджи создаются и настраиваются:

Настройка ограничений

Для каждого домена существует возможность задать разного рода ограничения в рамках лицензии.

Таблица 1. Список ограничений уровня домена

Ограничения настраиваются в соответствии с проектом:

Сценарии IVR

Для каждой виртуальной АТС можно настроить дополнительные сценарии IVR, если они сразу предусмотрены проектом. Сценарии создаются в приложении web-конфигуратора "IVR-редактор (IVR editor)".  Также управлять сценариями можно с помощью команд CLI. Описание и примеры приведены в разделе "/domain/<DOMAIN>/ivr/ - команды управления IVR-скриптами".

При необходимости для каждого домена можно настроить ограничения для работы IVR:

Настройка дополнительных сервисов

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

Настройка взаимодействия с серверами RADIUS

Описание и настройка взаимодействия с подсистемой AAA (Authentication, Authorization, Accounting) приведены в разделе "Настройка динамических абонентов и системы RADIUS".

Порядок настройки взаимодействия с серверами ААА:

Настройка функции СОРМ

В комплексе ECSS-10 заложены возможности для выполнения требований к системе технических средств по обеспечению функций оперативно-розыскных мероприятий на электронных АТС, утвержденные приказом Госкомсвязи России от 20.04.1999 № 70 и приказом Минкомсвязи России №268 от 19.11.2012.

Порядок настройки функции СОРМ:

Описание и настройка системы СОРМ приведены в разделе "Система СОРМ" / " Система СОРМ3".

Настройка дополнительных приложений

В составе экосистемы ECSS-10 возможно использование дополнительных сервисных приложений, расширяющих функциональные возможности:

Описание данных приложений приведено в соответствующих разделах документации.