|

Архитектура серверной части платформы Elph обеспечивает функционирование основных сервисов системы, включающих обработку сообщений, маршрутизацию данных, взаимодействие с внешними и внутренними системами, а также управление клиентскими подключениями.
Платформа Elph реализована в микросервисной архитектуре и состоит из следующих основных компонентов:
Платформа взаимодействует с корпоративной инфраструктурой заказчика:
Система также взаимодействует с внешними сервисами:
Компонент Elph Server развертывается во внутреннем сетевом сегменте, обеспечивает основную бизнес-логику платформы, взаимодействие с ECSS-10 через Elph-API и управление сервисами. Развертывается на Ubuntu или Astra Linux. Основное ПО развертывается в виде контейнеров Docker и состоит из следующих модулей:
Компонент Elph Proxy развертывается в DMZ и обеспечивает:
Развертывается на Ubuntu или Astra Linux. Требует 2 CPU, 4 GB RAM и 30 GB HDD.
Обеспечивает интеграцию с ECSS-10, управление конференциями и взаимодействие с другими компонентами системы;
Компонент ECSS Elph-API устанавливается на том же хосте, что и ECSS-10, и обеспечивает:

Мобильный клиент Elph IOS не может работать в закрытом контуре, так как все вызовы на устройствах IOS осуществляются с помощью «push-сообщений», которые проходят через Apple APN. Поэтому для их отправки у SSW должен быть доступ к APNs (api.push.apple.com:443). |

При такой схеме развёртывания абоненты elph-desktop, находящиеся за NAT, сначала проходят через stun-server для успешной регистрации на e-sbc. Для работы push-нотификаций на SSW должны быть активированы настройки push-сервисов, а у ECSS-кластера должен быть доступ к сервисам push-сообщений Android (Firebase Cloud Messaging) и Apple (Apple Push Notification Service). |
В таблице ниже собраны все порты, упомянутые в документе. Направление «Исходящий» обычно означает, что соединение инициируется самим компонентом, но ответный трафик должен быть разрешен на указанный порт.
| Компонент / Сервис | Целевой компонент / Назначение | Порт / Протокол | Примечания |
|---|---|---|---|
| Клиенты (Elph Desktop, Mobile) | |||
| Elph Desktop/Android/IOS | Elph Proxy | TCP/443 (HTTPS/WSS) | Основное соединение для данных |
| Elph Desktop | E-SBC / STUN Server | UDP/3478, UDP/5349 | Установление голосовых/видеосоединений (STUN) |
| Elph Desktop/Android/IOS | E-SBC | UDP/5060 (SIP), UDP/RTP 10000-20000 | SIP-сигнализация и медиапотоки (через E-SBC) |
| Elph iOS | Apple APN (api.push.apple.com) | TCP/443 (HTTPS) | Исходящее с iOS-устройств. Обязательно для работы. |
| Elph Android | Google FCM | TCP/443 (HTTPS) | Исходящее с Android-устройств. Обязательно для работы в экономичном режиме и режиме push proxy. |
| Elph Proxy | |||
| Elph Proxy (в DMZ) | Клиенты (внешние) | TCP/443 (HTTPS/WSS) | Входящее. Единая точка входа. |
| Elph Proxy | Elph Server (внутр. сеть) | TCP/3000, 3002, 3003, 3005, 3007, 3011, 4000, 5672, 8080, 8098, 8282 | Исходящее. Перенаправление трафика на внутренние сервисы. |
| Elph Server (и внутренние сервисы) | |||
| Elph Server / Микросервисы | ECSS Softswitch | TCP/8086 | Исходящее. (ECSS Web API) |
| Elph Server / Микросервисы | ECSS Softswitch База данных (My SQL) | TCP/3306 | Исходящее. Требуется разрешить в базе MySQL на SSW подключения с адреса Elph Server. |
| SSO | Elph Server / Клиенты (через Proxy) | TCP/8282 | Входящее. |
| SSO | Elph Server | TCP/9100 (health check) | Входящее. |
| Chat Server | Elph Server / Клиенты (через Proxy) | TCP/3011 | Входящее. |
| Chat Client | Elph Server / Клиенты (через Proxy) | TCP/8080 | Входящее. |
| Call History Service | Elph Server / Клиенты (через Proxy) | TCP/3000 | Входящее |
| Status Service | Elph Server / Клиенты (через Proxy) | TCP/3002 | Входящее. |
| File Service (S3) | Elph Server / Клиенты (через Proxy) | TCP/3005 | Входящее. для S3-совместимого хранилища. |
| Mini Apps Service | Elph Server / Клиенты (через Proxy) | TCP/3007 | Входящее. |
| Address Book | Elph Server / Клиенты (через Proxy) | TCP/4000 | Входящее. |
| Push Gateway | Elph Server / Клиенты (через Proxy) | TCP/3003 | Входящее. |
| RabbitMQ | Elph Server | TCP/5672 | Входящее. |
| ECSS Elph-API & SSW | |||
| ECSS Elph-API | ECSS-10 (Softswitch) | TCP/9999 (Mediator) | Исходящее. Управление вызовами и конференциями. |
| ECSS-10 (SSW) | E-SBC | UDP/5060 (SIP), UDP/RTP 10000-20000 | Входящее/Исходящее. SIP-сигнализация и медиапотоки. |
| ECSS-10 (SSW) | Apple APN (api.push.apple.com) | TCP/443 (HTTPS) | Исходящее. Для отправки push-уведомлений на iOS. |
| ECSS-10 (SSW) | Google FCM | TCP/443 (HTTPS) | Исходящее. Для отправки push-уведомлений на Android. |
| Взаимодействие с инфраструктурой | |||
| Платформа (Elph Server, SSO) | Active Directory / LDAP | TCP/389 (LDAP), TCP/636 (LDAPS) | Исходящее. Аутентификация и синхронизация пользователей. |
| Платформа (все компоненты) | Monitoring (Prometheus) | TCP/9090 (и др.) | Исходящее. Отправка метрик. |
| Monitoring (Grafana) | Платформа (все компоненты) | TCP/3000 (и др.) | |
Ключевые выводы по схемам:
Elph Proxy выступает единой точкой входа (порт 443) и перенаправляет трафик на внутренние сервисы;
Для работы Elph Desktop вне корпоративной сети требуется доступ к STUN-серверу (обычно UDP-порты 3478, 5349) для установления VoIP-соединений клиентами за NAT;
Для работы мобильных клиентов (iOS/Android) необходимы исходящие подключения к внешним сервисам Apple APN и Google FCM (оба на TCP/443) как для самих клиентов, так и для серверов. Для Android не обязательны, в случае, если не используется «экономичный» режим и режим «push proxy»;
iOS-клиенты не могут работать в полностью изолированном контуре из-за обязательного использования Apple APN.

Платформа Elph взаимодействует со следующими внутренними смежными системами:
Платформа Elph взаимодействует со следующими внешними системами:
При выборе сервера необходимо учитывать следующие системные требования (требования предоставляются к VM без учета резервирования системы, требования к размеру диска для Chat Server зависят от общей активности пользователей при передаче файлов):
Сводная таблица системных требований для виртуальных машин, исходя из нагрузки, около 1000 пользователей.
Все требования указаны с учётом системных требований самой ОС, на которой будет установлен пакет. При компоновке некоторых сервисов вместе на одном хосте системные требования не суммируются. Вариант установки всех сервисов на одном хосте не рекомендован с точки зрения безопасности, но возможен. |
Название VM | CPU core, Xeon | RAM, Gb | HDD, Gb |
|---|---|---|---|
Elph API (подробнее по ссылке) | Требования релевантны с SSW ECSS10, так как пакет устанавливается на том же хосте | ||
| Chat Server (подробнее по ссылке) | 4, 64-bit x86 CPUs | 16 | 200 |
| Elph Proxy (подробнее по ссылке) | 2, 64-bit x86 CPUs | 4 | 30 |
| Elph Proxy + Chat-Server | 4, 64-bit x86 CPUs | 16 | 200 |
| SSW ECSS10 + Elph Api + Chat-Server | 12, 64-bit x86 CPUs | 32 | 300 |
| Всё на одном хосте | 16, 64-bit x86 CPUs | 32 | 300 |
Более точные требования и примеры расчёта можно найти в описании к отдельным компонентам системы. |
| Название компонента | Ubuntu 18.04 | Ubuntu 20.04 | Ubuntu 22.04 | Ubuntu 24.04 | Astra Linux SE: 1.7.3; 1.7.5; 1.7.6; 1.7.7. |
|---|---|---|---|---|---|
| Elph API | Может быть развёрнут на любой ОС, но ограничен совместимостью SSW ECSS10, так как устанавливается на том же хосте | ||||
| Elph Server | + | + | + | + (начиная с версии Elph 2.13.0) | + |
| Elph Proxy | + | + | + | + (начиная с версии Elph 2.13.0)
| + (требуется ручная установка доп. пакетов) |