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

Розширена архітектура промислового середовища

Цей розділ описує розширену архітектуру промислового середовища Webitel, розраховану на ~1 млн дзвінків та ~200 тис. чатів на день.

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

Webitel Extended Architecture.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. Опис загальної інфраструктури

Для промислового середовища з навантаженням 400–500 одночасних дзвінків (≈ 1 млн дзвінків/день) та 200 тис. чатів/день необхідно підготувати 7 віртуальних машин (зазначених у пунктах 1-6 таблиці нижче).

Вимоги та умови розгортання:

  • Потрібно встановити лише операційну систему та залишити доступ до Інтернету для завантаження додаткового ПЗ.

  • Після інсталяції доступ до Інтернету може бути вимкнений.

  • Віртуальні машини 1–6 працюють в одному VLAN, без фільтрації портів (дозволити весь трафік).

  • Доступ розробникам надається по SSH з правами root на час інсталяції та тестування.

  • Резервування має відбуватися засобами віртуальних машин.

4. Специфікація серверів

Object

Software

Resources (min)

Connectivity

Description

  1. Webitel Server

Debian 12 Linux 64bit - базова серверна інсталяція з SSH підключенням;

Встановимо самостійно:

Nginx; SSL; Webitel Services

  • 4 vCPU > 2,4 GHz (покоління Haswell або новіше), Не більше 2 віртуальних ядер на 1 фізичне ядро;

  • 8Gb RAM;

  • 80 GB, 2000 IOPS;

  • 2 мережеві інтерфейси >= 1 GbE.

in-out: 80/tcp, 443/tcp

Обов'язкова наявність SSL-сертифікатів із довіреним CA для забезпечення захищеного під'єднання за HTTPS-протоколом і роботи телефонії в браузері.

Можливе масштабування.

  1. PostgreSQL

Debian 12 Linux 64bit - базова серверна інсталяція з SSH підключенням;

Встановимо самостійно:

Linux; PostgreSQL 15; Grafana

  • 8 vCPU, > 2,6 GHz (покоління Haswell або новіше), Не більше 2 віртуальних ядер на 1 фізичне ядро;

  • 16Gb RAM;

  • 80 GB, 2000 IOPS;

  • 500+ GB, 5000 IOPS;

  • 1 мережевий інтерфейс >= 1 GbE.


Сервер баз даних PostgreSQL з налаштованою Streaming Replication.

  1. MQ & Storage Server

Debian 12 Linux 64bit - базова серверна інсталяція з SSH підключенням;

Встановимо самостійно:

Linux; Redis Server; Consul; RabbitMQ; Webitel Storage; Redis Server; Consul; RabbitMQ; Webitel Storage

  • 4 vCPU, > 2,6 GHz (покоління Haswell або новіше), Не більше 2 віртуальних ядер на 1 фізичне ядро;

  • 8Gb RAM;

  • 120 GB, 2000 IOPS;

  • 1 мережевий інтерфейс >= 1 GbE.


Сервер реєстрації додатків, сервіс обміну повідомленнями та сховище записів розмов.

Записи розмов зберігаються в S3 сховищі

  1. OpenSIPS & rtpengine

Debian 12 Linux 64bit - базова серверна інсталяція з SSH підключенням;

Встановимо самостійно:

OpenSIPS 3.4, Rtpengine

  • 8 vCPU > 2,6 GHz (покоління Haswell або новіше), Не більше 2 віртуальних ядер на 1 фізичне ядро;

  • 16Gb RAM;

  • 60 GB, 2000 IOPS;

  • 2 мережеві інтерфейси >= 1 GbE.

5060/tcp, 5060/udp, 5061/tcp

in-out: 10000-50000/udp

Сервер телефонії.

Можливе масштабування.

  1. FreeSWITCH

Debian 12 Linux 64bit - базова серверна інсталяція з SSH підключенням;

Встановимо самостійно:

FreeSWITCH; Webitel FlowManager

  • 8 vCPU, > 2,6 GHz (покоління Haswell або новіше), Не більше 2 віртуальних ядер на 1 фізичне ядро

  • 16Gb RAM;

  • 120 GB, 2000 IOPS;

  • 1 мережевий інтерфейс >= 1 GbE.


Сервер побудови голосових додатків.

У разі збільшення навантаження необхідно продублювати сервер.

Можливе масштабування.

  1. Homer & Grafana

Debian 11 Linux 64bit - базова серверна інсталяція з SSH підключенням;

Встановимо самостійно:

Homer + PostgreSQL, Grafana

  • 4 vCPU, > 2,6 GHz (покоління Haswell або новіше), Не більше 2 віртуальних ядер на 1 фізичне ядро;

  • 8Gb RAM;

  • 200 GB, 2000 IOPS;

  • 1 мережевий інтерфейс >= 1 GbE.


Grafana для аналітики.

Збір логів і журналів дзвінків.

  1. Team

Microsoft Windows 11/ Linux 64bit

Google Chrome / Microsoft Edge (остання або передостання версії)

  • 4 vCPU

  • 8Gb RAM

Підключення до ІС не менше ніж 2 Мб/c на користувача, із затримками не більше ніж 15-20 мс.

Робоче місце співробітників

  1. Hardware SIP Phone



Підключення до ІС не менше ніж 5 Мб/c на апарат, із затримками не більше ніж 15-20 мс.

in-out: 5060/udp, 10000-20000/udp

Апаратний телефон з підтримкою протоколу SIP 2.0

  1. External Data Services




Інтеграції із зовнішніми системами

10. PSTN




Телефонна мережа загального користування (Public Switched Telephone Network) - загальна абонентська мережа зв'язку, для доступу до якої використовують телефонні апарати, АТС та обладнання передавання даних.

5. Вимоги до мережевих параметрів


Швидкість підключення

Затримка (Ping)

Джитер (Jitter)

Втрати пакетів

WebRTC  

  • Для аудіо-дзвінків: мінімум 100–300 Kbps.

  • Для відео-дзвінків (стандартна якість): мінімум 1-2 Mbps.

  • Для відео у високій якості (HD або Full HD): мінімум 2-4 Mbps.

  • Для конференцій чи трансляцій (4K відео): рекомендується 8-25 Mbps.

  • Оптимальна затримка для WebRTC повинна бути менш ніж 50 мс.

  • Допустима затримка: 50-100 мс.

  • Якщо затримка перевищує 150 мс, це може призвести до відчутних затримок під час розмови чи відео.

  • Оптимальне значення джитера має бути менше 30 мс. Джитер є варіацією в затримці пакетів, і якщо це значення занадто високе, якість аудіо чи відео може значно погіршитися.

  • Значення понад 50 мс може спричинити спотворення або затримки аудіо/відео.

  • Оптимальне значення втрат пакетів для WebRTC: менше 1%.

  • Втрати до 2-3% можуть бути прийнятними для аудіо, але вже погіршать якість відео.

  • Втрати понад 5% значно погіршать якість зв’язку, викликаючи відчутні переривання, артефакти або “зависання” відео.