Цей розділ описує загальну архітектуру платформи 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). |
|
RTP |
rtpengine - забезпечує роботу мультимедіа протоколів. |
|
FreeSWITCH |
Голосовий медіасервер. Дозволяє створити IVR меню та об'єднувати голосові канали.
|
|
nginx |
Вебсервер додатків. Забезпечує проксування HTTP REST API та WebSocket. |
|
Grafana |
Сервіс побудови звітів і дашбордів із бази даних за дзвінками, чатами та користувачами. |
|
Webitel API Gateway |
Шлюз між публічним HTTP REST API та внутрішнім GRPC протоколом. |
|
Webitel Applications |
Менеджер ліцензій і статусів користувачів. |
|
Webitel UAC |
Підтримка SIP підключень з реєстрацією на оператора (PSTN). |
|
Messages Bot |
Публічний сервіс реєстрації та взаємодії з чат-ботами. |
|
Messages Worker |
Внутрішній сервіс обробки текстових повідомлень. |
|
Engine Worker |
Внутрішній сервіс роботи з WebSocket протоколом і API. |
|
CallCenter Worker |
Внутрішній сервіс роботи з менеджером черг, дайлерів і операторів КЦ. |
|
Flow Manager |
Внутрішній сервіс інтерпретації JSON схем у маршрутизацію дзвінків, ботів, голосових меню та іншого. Взаємодіє із зовнішніми HTTP-вебсервісами, викликає Web-хуки, може виконувати запити до зовнішніх SQL-баз даних. |
|
Storage |
Сервіс обробки та зберігання медіафайлів. Забезпечує роботу сервісів TTS\STT.
|
|
Logger |
Сервіс відстеження змін. |