Этот раздел описывает общую архитектуру платформы Webitel, основные компоненты системы и требования к среде развертывания.
1. Общая схема архитектуры
2. Требования к среде развертывания
Архитектура Webitel рассчитана на работу в средах с изолированными и гарантированными ресурсами. Использование бюджетных VPS/VDS (Virtual Private/Dedicated Server) с разделённым процессорным временем (Shared CPU) не рекомендуется из-за рисков появления “шумных соседей” (noisy neighbors) и высоких сетевых задержек, что критично для качества работы VoIP-компонентов (FreeSWITCH, RTP, OpenSIPS).
Поддерживаемые платформы:
-
On-Premise (локальные серверы):
-
Физические серверы (Bare Metal);
-
Корпоративные гипервизоры (VMware, KVM, Xen, Proxmox VE).
-
-
Облачные провайдеры (Cloud Providers):
-
AWS (Amazon EC2);
-
Google Cloud (Compute Engine);
-
Microsoft Azure (Virtual Machines);
-
DigitalOcean (Droplets);
-
Hetzner (Cloud / Dedicated).
-
ВАЖНО! При выборе тарифных планов у облачных провайдеров (особенно DigitalOcean и Hetzner) настоятельно рекомендуется выбирать виртуальные машины категории:
-
Dedicated vCPU, или
-
Compute-Optimized,
для компонентов, отвечающих за обработку медиа и голоса.
3. Варианты развертывания
-
Установка и лицензирование Webitel на одном сервере - до 50 тыс. звонков в день
-
Базовая архитектура промышленной среды - около 400 тыс. звонков в день
-
Расширенная архитектура промышленной среды - около 500 тыс. звонок в день
4. Детальная схема взаимодействия компонентов
4.1. Описание компонентов
|
Название |
Описание |
|---|---|
|
Debian Linux 12 |
Операционная система, под которой ведется разработка комплекса приложений Webitel |
|
PostgreSQL 15 |
Критически важный элемент архитектуры. Основная база данных для хранения конфигурации и данных пользователей. Все приложения (кроме RTP, FreeSWITCH и nginx) подключены к базе данных.
|
|
Consul |
Критически важный элемент архитектуры. Децентрализованный отказоустойчивый discovery-сервис от компании HashiCorp. Каждое приложение (кроме PostgreSQL, RTP, OpenSIPS и nginx) регистрируется в данном сервисе. |
|
rabbitmq |
Критически важный элемент архитектуры. Шина обмена сообщениями между сервисами:
|
|
OpenSIPS |
SIP Proxy - обеспечивает работу сигнального протокола (SIP\WebRTC) |
|
STUN/TURN |
coTURN - используется функционалом подключения к рабочему столу оператора для прохождения NAT (опционально). |
|
RTP |
rtpengine - обеспечивает работу мультимедиа протоколов |
|
FreeSWITCH |
Голосовой медиасервер. Позволяет создать IVR меню и объединять голосовые каналы.
|
|
AI AMD v2 |
Нейронная сеть для определения автоответчиков при работе автодайлеров (опционально). |
|
WebRTC Rec |
Сервис записей экранов оператора (опционально). |
|
nginx |
Веб-сервер приложений. Обеспечивает проксирование HTTP REST API и WebSocket. |
|
Grafana |
Сервис построения отчетов и дашбордов из базы данных по звонкам, чатам и пользователям |
|
Webitel API Gateway |
Шлюз между публичным HTTP REST API и внутренним GRPC протоколом |
|
Webitel Applications |
Менеджер лицензий и статусов пользователей |
|
Webitel UAC |
Поддержка SIP подключений с регистрацией на оператора (PSTN) |
|
Messages Bot |
Публичный сервис регистрации и взаимодействия с чат-ботами |
|
Messages Portal |
Сервис работы с внешними портальными пользователями и мобильным SDK |
|
Messages Worker |
Внутренний сервис обработки текстовых сообщений |
|
Engine Worker |
Внутренний сервис работы с WebSocket протоколом и API |
|
CallCenter Worker |
Внутренний сервис работы с менеджером очередей, дайлеров и операторов КЦ |
|
Flow Manager |
Внутренний сервис интерпретации JSON схем в маршрутизацию звонков, ботов, голосовых меню и прочего. Взаимодействует с внешними HTTP веб-сервисами, вызывает Web-хуки, может выполнять запросы во внешние SQL базы данных. |
|
Storage |
Сервис обработки и хранения медиафайлов. Обеспечивает работу сервисов TTS\STT.
|
|
Logger |
Сервис отслеживания изменений. |
|
Cases |
Сервис работы модуля Обращений |
|
ESF |
Сервис полнотекстового поиска (опционально) |