ApiRTC Architecture
Last updated
Last updated
Any ApiRTC implementation involves possibly 3 parts:
your frontend application
your backend application (optional)
the ApiRTC CPaaS
The client application is the web or mobile application that connects users together. It allows them to share messages or media, and it displays messages or media from others.
The ApiRTC library lets you build web and mobile applications, using any modern application framework or native languages.
The application backend may require some interactions with the ApiRTC CPaaS through REST APIs or webhooks to manage the video communication lifecycle.
The ApiRTC platform is a compound of different systems. All together they bring a full-featured communication system for various applications.
The ApiRTC CPaaS offers several interfaces to orchestrate and run the whole lifecycle of video communications.
The ApiRTC CPaaS is manageable through the Console interface.
Basic WebRTC applications are using full mesh topology. Each client must :
encode and send their stream(s) to each remote peer
receive and decode every remote peer stream(s)
The CPU load and the required bandwidth increase linearly as the number of peers and streams grow. The mesh topology is unsuitable for applications where larger groups of peers need to be connected at once.
More details about the WebRTC standard are available on the W3C's website.
ApiRTC makes the implementation of WebRTC video communication in your app easier and quicker.
The ApiRTC library takes care of:
Signalling and connection initialization
ICE protocol on STUN and TURN servers
Connection retries
"Mesh" to "Star" smart switching
Video call quality management
ApiRTC enables the usage of a star topology by providing SFUs (Selective Forwarding Units) that act as a central server that relays each peer’s streams.
In ApiRTC, media streams are sent by participants to video communication and flow through ApiRTC SFUs infrastructure and then are dispatched to every other participant.
The ApiRTC library enables to implement fine interactions happening during video communication:
Camera selection
Current speaker detection
Screensharing
Whiteboard sharing
...
ApiRTC provides simplified interfaces to use the WebRTC DataChannel to synchronise the participants' interactions across a conversation.
Each video communication is part of a conversation that can be planned ahead, configured, and historized to keep track of relationship management.
ApiRTC includes a composite media recording of any video streamed throughout its infrastructure. Streams are recorded in a video file and then stored in dedicated data storage.
Files exchanged during an ApiRTC video communication are stored on the ApiRTC CPaaS data storage space and can be retrieved afterwards.