About real-time communication services
Real-time communication services have evolved in the last two decades at a fast pace. Traditionally, voice services were provided by telecom operators using a dedicated infrastructure named “Public Switched Telephone Network” (PSTN). Despite its success, the technology needed to provide this service is complex and expensive due to the requirements of implementing a dedicated infrastructure for the circuit switching approach.
Voice services have rapidly evolved and adapted their capabilities to modern requirements, as well as extended their usability (e.g., video, multi conferences…) allowed by the growth of IP-based networks (i.e., Internet). This has allowed an inexpensive and more flexible way to supply voice and video services given the fact that there are no dedicated links for communications, but a common infrastructure (i.e., Internet) which is shared for voice and data flows.
Although VoIP (Voice over IP) technologies were firstly adopted by telecom operators like PSTN, they are now available to companies and even domestic users so that they can deploy their own real-time communication services by hosting these services within their own company or deploying them through third-party providers in cloud hosts, for example, IaaS (Infrastructure as a Service), or PaaS (Platform as a Service).
Self-hosting can have particular advantages in some contexts when privacy is necessary, such as healthcare or private companies.
As a counterpart, it demands assessing a series of capabilities such as adaptability and scalability, quality of service (QoS), and security in both, communications, and personal data treatment. These requirements are reinforced when referring to IP-based real-time services, which are especially sensitive to any performance anomalies (e.g., delay, packet loss) .
This use case proposes a microservices-based voice and video conference platform to face all these difficulties. When compared to old monolithic applications, microservices can provide: (a) replication of microservices (i.e., to improve availability, adaptability, and scalability), and (b) an inherent security layer thanks to container and virtual machine (VM) native isolations.
Despite its usefulness, the microservice architecture presents a series of difficulties for the developer given the large granularity of its elements.
For example, in the chosen real-time communication use case, the final system must include, at least the following functionalities (as separated microservices):
- Voice and video gateways (e.g., Kamailio): supplying a signaling gateway for users, and load balancing between different voice and video servers.
- Web server (e.g., Apache webserver): allows users to join or start a call using a browser.
- RTP Proxy: redirects RTP connections to the corresponding server.
- VoIP server (e.g., Doubango): handles SIP signaling (e.g., call establishment) for audio calls.
- VideoIP server (e.g., Doubango): handles SIP signaling (e.g., call establishment) for video calls.
- Mixer and/or transcoder: supplies transcoding and mixing video tools.
- Database (e.g., MySQL, Redis…): supplies storage capabilities (e.g., registered users, calls in progress).
Services can be deployed as isolated instances using a well-known technology such as Dockers. Dockers is an open-source project that automates the deployment of software applications inside containers by providing an additional layer of abstraction and automation of OS-level virtualization on Linux. Opposite to the Virtual Machine paradigm, containerized applications do execute over the host operating system, just using a docker layer in between.
Consequently, the whole real-time communication platform system can be illustrated as follows:
Developing, deploying, and monitoring complex systems such as the real-time communication platform we previously described using containers are a challenging task, but thanks to SmartCLIDE, developers will be able not only to deploy it, but also to gain:
- A deeper insight into QoS, by providing monitoring tools that will allow the developer to track quality of service and quality of experience,
- Tools to perform performance scaling, by replicating any of the deployed containers when it reaches saturation conditions,
- Easier deployment services management.
In conclusion, SmartCLIDE will be an asset to the developer throughout all the creation and implementation phases, such as development, testing, deployment, and maintenance.
 Bergstra, J. A., & Middelburg, C. A. (2003). ITU-T Recommendation G. 107: The E-Model, a computational model for use in transmission planning.