WebRTC with Multiple Connections
Although it has yet to be standardized, WebRTC is being utilized by developers to provide simple RTC applications within apps on the web. Nevertheless WebRTC has the potential to power innovative solutions in other areas such as e-learning, interactive customer support etc. For example, a team of 5 or 6 people may want to collaborate on an office project or a school may want to broadcast a guest lecture to hundreds of students.
The above use cases involve multiple media streams being distributed to multiple endpoints. WebRTC was designed as a standards-based solution for peer to peer communication and it is not easy to scale video chats beyond two participants. However, service providers and business organizations have several alternatives when identifying a suitable architecture for multi-party WebRTC services. Some of them are:
This is the simplest solution and involves the creation of multiple media streams in a mesh configuration connecting every endpoint. If a video call involves 3 participants, then three separate one-to-one data streams will be necessary. The mesh topology works very well when the number of endpoints is low. It is popular with service providers because it does not require setting up expensive infrastructure. On the other hand, bandwidth requirements will be quite high and mobile devices may not be able to handle the processing load.
This approach is analogous to the traditional server client network architecture. Enterprises can provision a central element which maintains individual media streams with each endpoint thus relieving the burden from mobile devices or legacy hardware. This solution has been used successfully in the past for multi-conference calls and the central element is often referred to as Multipoint Control Unit (MCU). The MCU handles transcoding, stream forwarding and is able to push different media streams with appropriate resolution as per the capabilities of the receiving device. Some service providers such as TokBox provide MCU capabilities in the cloud so that developers can take advantage of multiparty features without much set up.
Although it is not yet commonly used, routers are an inexpensive and scalable approach for multiparty services. A centrally located router receives media streams from every endpoint and sends out a corresponding stream to every other device. The router does not transcode media and usually only does packet inspection and forwarding.
Enterprises considering the use of WebRTC and signaling API for many-to-many or one-to-many services will need to assemble the necessary infrastructure and service providers are actively developing software to meet the needs of their clients.