Web Real-Time Communications (WebRTC) is a collection of open standards for real-time communication, mainly developed by the WebRTC World Wide Web Consortium (W3C) Working Group and the Real-Time Communication in Web-browsers (RTCWEB) Internet Engineering Task Force (IETF) Working Group.
The W3C focuses their work with WebRTC mainly on the browser Application Programming Interfaces (APIs) to interact with the audio/video sources. The IETF created the RTCweb group to focus on the inter-browser interface and definition of (signaling) protocols.
WebRTC [19] opens up possibilities for real-time communications such as audio and video calls, screen sharing and video conferencing within web-browsers, but without any use of additional software (only modern web browsers are required). This makes it easy for web developers to implement WebRTC features only by using Hypertext Markup Language version 5 (HTML5) and a variety of JavaScript Application Programming Interfaces (API).
Besides providing a powerful decentralized media engine within browsers, WebRTC has other benefits such as open-source code & APIs, free audio & video codecs (adaptive, high definition), and network support inbuilt (e.g. encryption, network discovery).
However, due to its technical design, WebRTC is not narrowed to the use within browsers. It can also be used via apps and native implementations, so that nearly every modern connected device - computers, tablets or even televisions - could become a WebRTC peer and thus a fully-fledged communications device. These participants of a communication can be named as WebRTC peers or shortly peers, which can also be seen as a synonym for the entire communication device. Besides it is easy to handle characteristics the most revolutionary aspect of WebRTC is its communication concept.
In contrast to other real-time communication systems, providing communication using WebRTC does not require a big infrastructure which handles the communication traffic throughout the peers.
Usually, there are two communication patterns in WebRTC, the basic pattern, called the WebRTC Triangle and a more advanced pattern, the WebRTC Trapezoid.
In the case of a Triangle pattern (shown in Figure 10), in the first place, all peers or respectively browsers, which shall communicate with each other connect to a web server. This web server provides a WebRTC web application, often implemented as a JavaScript file, which invokes a set of APIs that are provided by the web server. In order to set up the WebRTC session, those API requests are used to set up the signaling channel. The signaling in WebRTC is not standardized and thus depending on the specific WebRTC implementation, between the peers via the web server. The transport of user data (such as audio, video or others) is done via the PeerConnection, which is established directly between both peers.
Figure 11 depicts the trapezoid communication pattern, which is used for communication between the peers that are not connected to the same web server. In this case, the communication throughout the web servers is done with the use of a standardized signaling protocol such as the SIP. However, the user data transmission via the PeerConnection remains unchanged and therefore is still done directly between the peers.