Webitel: Документація

Архітектура Webitel

Цей розділ описує загальну архітектуру платформи Webitel, основні компоненти системи та вимоги до середовища розгортання.

1. Загальна схема архітектури

Screenshot 2026-05-25 at 16.44.09.png

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. Варіанти розгортання

4. Детальна схема взаємодії компонентів

Architecture by services.png

4.1. Опис компонентів

Назва

Опис

Debian Linux 12

Операційна система, під якою ведеться розробка комплексу додатків Webitel.

PostgreSQL 15

Критично важливий елемент архітектури. Основна база даних для зберігання конфігурації та даних користувачів. Усі додатки (крім RTP, FreeSWITCH і nginx) підключені до бази даних.
Фізично файли бази даних зберігаються в /var/lib/postgresql, якщо під час встановлення не було вказано інше.
До базової поставки включаються додаткові модулі:

  • TimescaleDB;

  • Webitel Extension.

Consul

Критично важливий елемент архітектури. Децентралізований відмовостійкий discovery-сервіс від компанії HashiCorp. Кожен застосунок (крім PostgreSQL, RTP, OpenSIPS і nginx) реєструється в цьому сервісі.

rabbitmq

Критично важливий елемент архітектури. Шина обміну повідомленнями між сервісами:

  • OpenSIPS - публікація статусів реєстрацій пристроїв і діалогів;

  • FreeSWITCH - публікація статусів діалогів і виконання голосових застосунків;

  • Webitel - публікація і читання статусів користувачів і голосових каналів;

  • Messages - публікація текстових додатків;

  • Engine - публікація та читання статусів користувачів;

  • CallCenter - публікація і читання статусів операторів. Публікація та читання статусів роботи дайлерів;

  • Flow - публікація і читання статусів виконання голосових і текстових застосунків;

  • Storage - читання статусів діалогів.

OpenSIPS

SIP Proxy - забезпечує роботу сигнального протоколу (SIP\WebRTC).

RTP

rtpengine - забезпечує роботу мультимедіа протоколів.

FreeSWITCH

Голосовий медіасервер. Дозволяє створити IVR меню та об'єднувати голосові канали.
До базової поставки включаються додаткові модулі:

  • Webitel GRPC;

  • AMD - робота з автовідповідачами;

  • AMQP - робота з rabbitmq;

  • Transcribe - модуль асинхронної роботи зі STT;

  • PUSH - підтримка PUSH повідомлень для реєстрацій на мобільних пристроях (iOS\Android).

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.
Якщо не використовується S3 сховище, то файли записів розмов зберігаються в /opt/storage, якщо під час установлення не було вказано інше.

Logger

Сервіс відстеження змін.