Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Provides a graphical interface to many client API features. Used as a personal account by PBX owners. When deploying the platform, it is possible to configure the color scheme, add your logo and contact information. The screenshots show sample pages in neutral gray.


Home Page:

Image Added


Settings page

Image Added


Call Log Page

Image Added

Schematic diagram

Image Added

Component Description

Designation

ComponentDescription
kamailioKamailioBased on open source project . Is the entry point of SIP traffic. Responsible for authorizing incoming requests, routing outgoing calls, registration
fs1, fs2...FreeSwitchBased on open source project . Interacts only with kamailio via SIP, is engaged in processing media
CouB1,CouB2...CouchbaseCompiled on the basis of the project of the same name . Used to store FreeSwitch dynamic configurations and store temporary data (in memcached bucket)
SqlMariaDBMariaDB sql server, is used to ensure data integrity required for kamailio and CDR archive.
API (web backend)Rest API

API based on the REST architecture. Used to configure PBXs and receive reports. The user can work with the API directly or through interfaces based on this API. Built on Flask and nginx

Server requirements

For small operators (about 200 simultaneous calls maximum) it is possible to install on one middle-level server. Example configuration for such a server:
16 GB of RAM 2 SSD disks of 128 GB (mirror) 2 HDDs of 512 GB (mirror) CPU Intel (R) Xeon (R) CPU E5-2407 v2 @ 2.40GHz

To increase reliability (redundancy) and system performance, it is recommended to use a scheme with at least two servers.

Scalability, fault tolerance

For fault tolerance, 2 servers are sufficient: one of them will be the entry point and serve all services, the second is only part of the RTP traffic. In case of problems with the 1st server, its address is automatically (VRRP protocol) picked up by the 2nd server and the entry point changes. Servers are preferably located in different data centers.

Image Added

The platform is designed in such a way that there is a possibility of increasing productivity with an increase in the number of calls, by adding new servers. For example, add 2 media processing servers to the previous scheme.

Image Added

In this case, "Server 1" and "Server 2" remain as interchangeable entry points for telephony / API, and "Media 1" and "Media 2" are used exclusively for voice / video processing.

When any server with the role of processing media fails, it is automatically excluded from the cluster, and when it comes back on line, a reverse addition occurs.

Examples of working clusters

At the moment (autumn 2018), the operators are successfully running two installations:

  1. A relatively small cluster of two servers, about 7 thousand additional and 35 thousand calls per day.
  2.  A cluster of eight servers serving about 100 thousand additional, up to 2500 simultaneous calls at the peak and about 500 thousand calls per day.