WebRTC Enabled VoIP Endpoints incorporate the WebRTC standards to allow direct communication with WebRTC embedded endpoints from web based applications. This enables WebRTC communications between browsers and VoIP endpoints without the need to transcode the media streams. VOCAL’s WebRTC enabled libraries allow embedded systems to work in the WebRTC ecosystem. Connect to an embedded device using a WebRTC enabled web application. Contact us to discuss your WebRTC application requirements.
WebRTC compatibility requires support for:
- Mandatory codec’s – OPUS, G.711, H.264, VP8
- Multiple extensions to RTP, RTCP, and SDP
- DTLS as a keying mechanism for SRTP
- ICE, STUN, and TURN as methods for NAT traversal
- WebSockets as a transport for call signaling
Codec Support
The WebRTC standards were designed to maintain a certain level of compatibility with existing VoIP endpoints. As such, WebRTC uses many codec’s that are standard in various VoIP implementations. This means that most of the codec requirements are met by default and the only mandatory codec to implement in most existing implementations is VP8. These codec’s represent only minimum compatibility with the WebRTC standards and a complete solution includes these along with many other codec options.
RTP, RTCP and SDP Extensions
WebRTC extensions improve the quality and performance of real-time communications. Many of these extensions are not commonly found within VoIP endpoints and create a barrier to WebRTC compatibility unless implemented.
- RTP extensions support multiple endpoints in a single RTP session and discontinuous transmission.
- RTCP extensions include support for multiple simultaneous SSRC values, synchronization information used for lip syncing between audio and video streams, sending and receiving multiple packet types, and control over the bandwidth usage of RTCP as a fraction of RTP bandwidth.
- SDP extensions provide the addition of the fingerprint attribute for use with DTLS peer certificate verification, the bundle extension used to combine multiple RTP streams, and the candidate attribute for ICE processing.
DTLS as a Keying Mechanism for SRTP
SRTP provides a means to encrypt communications between endpoints so that they can only be understood when paired with the correct key. WebRTC defines the use of the DTLS handshake to establish the SRTP keys. DTLS, however, is not common among VoIP applications and must be added if WebRTC compatibility is desired.
ICE, STUN, and TURN for NAT traversal
ICE is required by WebRTC to provide a means for reliable media establishment. Using the protocols defined by STUN and TURN; ICE provides a powerful NAT traversal mechanism that has some use within VoIP endpoints but is completely absent in older implementations.
WebSockets as a Transport for Call Signaling
Web browsers do not allow applications to make direct internet connections over protocols like UDP or TCP to prevent malicious applications from accessing the user’s network. WebSockets enables browser based applications to connect to existing HTTP servers and open a connection similar to that of UDP or TCP but with considerations made to prevent attacks by malicious applications.
SIP servers can act as gateways between WebSockets and traditional SIP transports so WebSockets support is not required for basic WebRTC compatibility. However, a complete solution will include WebSockets to support the application specific signaling protocols as well as applications that use SIP.
VOCAL’s solution is available for the above platforms. Please contact us for specific supported platforms.