В данном разделе приведено описание этапов первоначальной настройки ECSS перед проверкой базового функционала.
Перед началом настройки конфигурации необходимо убедиться в следующем:
Для производительных систем настройка ECSS-10 состоит из следующих этапов:
Для того чтобы изолировать MSR-медиасервер от остальной сиcтемы, необходимо выделить под него отдельные ядра процессора. Для выделения отдельных ядер процессора необходимо выполнить следующие действия:
Отредактировать файл grub:
sudo nano /etc/default/grub |
Привести параметр GRUB_CMDLINE_LINUX="" к следующему виду:
GRUB_CMDLINE_LINUX="isolcpus=0-4" |
Обновить конфигурацию grub. Для этого выполните команду:
sudo update-grub |
Перезапустить систему.
Если всё сделано правильно, то после перезагрузки на изолированных ядрах htop будет показывать нулевую нагрузку.
Пример (Было / Стало):


По умолчанию в 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 запускался на отдельных ядрах процессора, необходимо:
systemctl enable ecss-media-server@msr.service systemctl edit ecss-media-server@msr.service |
[Service] CPUAffinity=8-11 CPUSchedulingPolicy=rr |
Для просмотра того, на каких ядрах запустился сервис, можно воспользоваться htop. В нем нужно добавить колонку Processor.
В данном примере MSR запущен на ядрах 8, 9, 10, 11. CPUSchedulingPolicy необходим, только если указан isolcpus.
Настройка MSR более подробно описана на странице Настройка медиасервера (MSR).
Аналогичным образом настраивается конфигурация ядер для CORE/SIP/SIGTRAN/DS/MD
Для того чтобы ядра процессора использовались правильно, необходимо скорректировать параметры запуска 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-set не будут работать команды создания Домена/транка/абонента. Для работы данных объектов обязательным условием является информация, через какие IP адреса (порты) будет выполняться обмен сигнальной информацией. IP-set может быть как индивидуальный для каждого домена, так и общим для всех доменов SSW, в зависимости от проекта. Так же можно назначить на разные домены индивидуальные порты ( для примера домен А использует порт=5061, а домен В порт=5062) на одних IP адресах (10.0.10.91/92) |
/cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss1 ip = 10.0.10.91/cluster/adapter/sip1/sip/network/set ip_set test_set node-ip node = sip1@ecss2 ip = 10.0.10.92/cluster/adapter/sip1/sip/network/set ip_set test_set listen-ports list = [5060]
Данный этап включает в себя процесс создания виртуальных АТС, настройку правил маршрутизации вызовов, транков, абонентов, правил обслуживания абонентов.
Необходимо создать домен по каждому из запроектированных доменов (виртуальных АТС).
Создание домена можно выполнить одним из двух способов:
/domain/declare test_test --add-domain-admin-privileges --add-domain-user-privileges/domain/test_test/sip/network/set ip_set [test_set]/cluster/storage/ds1/ss/access-list add test_domain */domain/test_test/ss/licence/politics/declare new_sub/domain/test_test/ss/licence/politics/package-add new_sub ECSS-FULL+/domain/test_test/ss/licence/politics/activate new_sub

Конфигурацию услуг, для нового домена, выполнить в 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-транками".
Далее на транках настраиваются необходимые сервисы.
Бридж — виртуальный транк, позволяющий соединять между собой две виртуальные АТС в рамках одной системы ECSS-10. |
Если в системе имеется более одного домена, то связь между ними осуществляется с помощью бриджей (см. раздел "Транки и бриджи").
Бриджи создаются и настраиваются:
Для каждого домена существует возможность задать разного рода ограничения в рамках лицензии.
Таблица 1. Список ограничений уровня домена
Ограничения настраиваются в соответствии с проектом:
Для каждой виртуальной АТС можно настроить дополнительные сценарии IVR, если они сразу предусмотрены проектом. Сценарии создаются в приложении web-конфигуратора "IVR-редактор (IVR editor)". Также управлять сценариями можно с помощью команд CLI. Описание и примеры приведены в разделе "/domain/<DOMAIN>/ivr/ - команды управления IVR-скриптами".
При необходимости для каждого домена можно настроить ограничения для работы IVR:
Если предусмотрено проектом, на начальном этапе настраиваются также дополнительные сервисы.
Описание и настройка взаимодействия с подсистемой AAA (Authentication, Authorization, Accounting) приведены в разделе "Настройка динамических абонентов и системы RADIUS".
Порядок настройки взаимодействия с серверами ААА:
В комплексе ECSS-10 заложены возможности для выполнения требований к системе технических средств по обеспечению функций оперативно-розыскных мероприятий на электронных АТС, утвержденные приказом Госкомсвязи России от 20.04.1999 № 70 и приказом Минкомсвязи России №268 от 19.11.2012.
Порядок настройки функции СОРМ:
Описание и настройка системы СОРМ приведены в разделе "Система СОРМ" / " Система СОРМ3".
В составе экосистемы ECSS-10 возможно использование дополнительных сервисных приложений, расширяющих функциональные возможности:
визуализация статистических данных в системе мониторинга "Grafana";
Описание данных приложений приведено в соответствующих разделах документации.