This section describes the general architecture of the Webitel platform, the main system components, and the requirements for the deployment environment.
1. General architecture diagram
2. Deployment Environment Requirements
The Webitel architecture is designed to operate in environments with isolated and guaranteed resources. Using budget VPS/VDS (Virtual Private/Dedicated Server) instances with shared CPU time is not recommended due to the risks of “noisy neighbors” and high network latency, which is critical for the quality of VoIP components (FreeSWITCH, RTP, OpenSIPS).
Supported platforms include:
-
On-Premise (Local servers):
-
Physical servers (Bare Metal);
-
Enterprise hypervisors (VMware, KVM, Xen, Proxmox VE).
-
-
Cloud Providers:
-
AWS (Amazon EC2);
-
Google Cloud (Compute Engine);
-
Microsoft Azure (Virtual Machines);
-
DigitalOcean (Droplets);
-
Hetzner (Cloud / Dedicated).
-
IMPORTANT! When choosing cloud provider plans (especially DigitalOcean and Hetzner), it is strongly recommended to select virtual machines in the following categories:
-
Dedicated vCPU, or
-
Compute-Optimized,
for components responsible for media and voice processing.
3. Deployment options
-
Webitel installation and licensing on one server - up to 50 thousand calls per day.
-
Basic Architecture of the Industrial Environment - about 400 thousand calls per day.
-
Extended Architecture of the Industrial Environment - more than 500 thousand calls per day.
4. Detailed component interaction diagram
4.1. Component descriptions
|
Name |
Description |
|---|---|
|
Debian Linux 12 |
The operating system under which Webitel application suite is being developed |
|
PostgreSQL 15 |
A critical piece of architecture. The main database for storing configuration and user data. All applications (except RTP, FreeSWITCH, and Nginx) are connected to the database.
|
|
Consul |
A critical piece of architecture. Decentralized fault-tolerant discovery service from HashiCorp. Every application (except PostgreSQL, RTP, OpenSIPS, and Nginx) registers with this service. |
|
rabbitmq |
A critical architectural element. Messaging bus between services:
|
|
OpenSIPS |
SIP Proxy - provides signaling protocol (SIP/WebRTC) |
|
RTP |
rtpengine - provides multimedia protocols |
|
FreeSWITCH |
Voice media server. Allows to create an IVR menu and combine voice channels.
|
|
nginx |
Application Web Server. Provides HTTP REST API and WebSocket proxying. |
|
Grafana |
Service for building reports and dashboards from a database of calls, chats and users |
|
Webitel API Gateway |
Gateway between public HTTP REST API and internal GRPC protocol |
|
Webitel Applications |
License and user status manager |
|
Webitel UAC |
Support for SIP connections with registration (PSTN) |
|
Messages Bot |
Public service for registration and interaction with chatbots |
|
Messages Worker |
Internal text message processing service |
|
Engine Worker |
Internal service for working with the WebSocket protocol and API |
|
CallCenter Worker |
Internal service for working with the queue manager, dialers, and CC agents |
|
Flow Manager |
An internal service for interpreting JSON schemas for routing calls, bots, voice menus, and more. Interacts with external HTTP web services, invokes Web hooks, and can execute queries against external SQL databases. |
|
Storage |
Service for processing and storing media files. Provides TTS/STT services.
|
|
Logger |
Change tracking service. |