Документация 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

  • 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% значительно ухудшат качество связи, вызывая ощутимые прерывания, артефакты или «зависание» видео.