WebRTC Gateway
   HOME

TheInfoList



OR:

WebRTC Gateway connects between
WebRTC WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and ...
and an established
VoIP Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
technology such as SIP.
WebRTC WebRTC (Web Real-Time Communication) is a free and open-source project providing web browsers and mobile applications with real-time communication (RTC) via application programming interfaces (APIs). It allows audio and video communication and ...
(Web Real-Time Communication) is an
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
definition drafted by the
World Wide Web Consortium The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
(W3C) that supports browser-to-browser applications for
voice calling A telephone call, phone call, voice call, or simply a call, is the effective use of a connection over a telephone network between the calling party and the called party. Telephone calls are the form of human communication that was first ena ...
,
video chat Videotelephony (also known as videoconferencing or video calling) is the use of audio and video for simultaneous two-way communication. Today, videotelephony is widespread. There are many terms to refer to videotelephony. ''Videophones'' are ...
, and messaging without the need of either internal or external plugins.


Usage scenario

To enable browsers using different application providers to communicate with each other (e.g. a user logged into application providers X wants to call someone that is logged into application provider Y) a so-called WebRTC trapezoid can be used. In this case the two providers use a widely used
VoIP Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
signalling protocol such as SIP to federate between them. However, each of their respective browser-based clients signals to its server using proprietary application protocols built on top of
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
and
WebSocket WebSocket is a computer communications protocol, providing a full-duplex, simultaneous two-way communication channel over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the Internet Engineering ...
. This component that mediates between WebRTC and SIP is referred to as a WebRTC Gateway. Beside connecting different WebRTC applications, a WebRTC gateway also enables the communication between a WebRTC phone and a VoIP or even a
PSTN The public switched telephone network (PSTN) is the aggregate of the world's telephone networks that are operated by national, regional, or local telephony operators. It provides infrastructure and services for public telephony. The PSTN consists ...
phone. Thereby, a WebRTC gateway extends the scope of WebRTC applications and enables much wider reach and usage scenarios.


Functionality

The usual process with WebRTC is that a user downloads a WebRTC
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
application. This application is then used to communicate with another user. A WebRTC gateway would usually contain the server from where a user would download the WebRTC
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
application. When receiving a call from the user, the WebRTC gateway needs to decide whether the callee is reachable over WebRTC. If not, then the call will have to be translated into SIP for example. To translate a call into SIP, the gateway will have to map different layers: * Signalling: There is no standardised signalling protocol for WebRTC applications. However, SIP over WebSockets () is often used partially due to the applicability of SIP to most of the envisaged communication scenarios as well as the availability of open source software such as
JsSIP JsSIP is a library for the programming language JavaScript. It takes advantage of SIP and WebRTC to provide a fully featured SIP endpoint in any website. JsSIP allows any website to get real-time communication features using audio and video. It ...
. In such a case, the gateway would only need to repackage the SIP packets from the
WebSocket WebSocket is a computer communications protocol, providing a full-duplex, simultaneous two-way communication channel over a single Transmission Control Protocol (TCP) connection. The WebSocket protocol was standardized by the Internet Engineering ...
layer into UDP, TCP or TLS. * Media transport: The WebRTC specifications indicate that for security reasons WebRTC applications must use SRTP for transporting media content. While some
VoIP Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
applications support SRTP as well, this is optional and hence not always the case. If the callee does not support SRTP then the WebRTC gateway will have to map between SRTP and RTP. * Media content: The WebRTC specifications indicate that WebRTC applications must use for audio communication either
G.711 G.711 is a narrowband audio codec originally designed for use in telephony that provides toll-quality audio at 64 kbit/s. It is an ITU-T standard (Recommendation) for audio encoding, titled Pulse code modulation (PCM) of voice frequencies ...
or
OPUS Opus (: opera Opera is a form of History of theatre#European theatre, Western theatre in which music is a fundamental component and dramatic roles are taken by Singing, singers. Such a "work" (the literal translation of the Italian word "opera ...
as the
Audio codec An audio codec is a device or computer program capable of encoding or decoding a digital data stream (a codec) that encodes or decodes audio. In software, an audio codec is a computer program implementing an algorithm that compresses and decompres ...
. Applications using SIP for establishing audio session are free to choose any type of
codec A codec is a computer hardware or software component that encodes or decodes a data stream or signal. ''Codec'' is a portmanteau of coder/decoder. In electronic communications, an endec is a device that acts as both an encoder and a decoder o ...
. If the callee does not support OPUS or G.711 then the WebRTC gateway will have to transcode between the WebRTC and SIP sides of the communication. * Media address negotiation: In order to be able to traverse all kinds of
NAT Nat or NAT may refer to: Computing * Network address translation (NAT), in computer networking Chemistry, biology, and medicine * Natural antisense transcript, an RNA transcript in a cell * N-acetyltransferase, an enzyme; also NAT1, NAT2, et ...
, the WebRTC specifications indicate that WebRTC applications must use
STUN STUN (Session Traversal Utilities for NAT; originally Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators) is a standardized set of methods, including a network protocol, for traversal of network address transl ...
and
ICE Ice is water that is frozen into a solid state, typically forming at or below temperatures of 0 ° C, 32 ° F, or 273.15 K. It occurs naturally on Earth, on other planets, in Oort cloud objects, and as interstellar ice. As a naturally oc ...
in order to detect the addresses under which two end points can exchange media packets. While these technologies are also implemented by some SIP user agents, this is not mandatory. If the callee does not support
ICE Ice is water that is frozen into a solid state, typically forming at or below temperatures of 0 ° C, 32 ° F, or 273.15 K. It occurs naturally on Earth, on other planets, in Oort cloud objects, and as interstellar ice. As a naturally oc ...
or in case media transport layer needs mapping or media transcoding is required then the WebRTC gateway will have to act as an ICE end point and route the media packets between the caller and callee.


Available solutions

There are already a number of open source and commercial solutions available for providing the WebRTC gateway functionality. As a lot of required functionality of a WebRTC gateway such as media handling, signalling mapping is supported by SBC the function of WebRTC gateway is often integrated into SBCs or provided by SBC vendors.


Open-source WebRTC gateways

* OverSIP *
Kamailio Kamailio, formerly OpenSER (and sharing some common history with SIP Express Router (SER)), is an SIP server licensed under the GPL-2.0-or-later license. It can be configured to act as a SIP registrar, proxy or redirect server, and features pr ...
*
Asterisk The asterisk ( ), from Late Latin , from Ancient Greek , , "little star", is a Typography, typographical symbol. It is so called because it resembles a conventional image of a star (heraldry), heraldic star. Computer scientists and Mathematici ...
* * WebRTC2SIP *
Janus In ancient Roman religion and myth, Janus ( ; ) is the god of beginnings, gates, transitions, time, duality, doorways, passages, frames, and endings. He is usually depicted as having two faces. The month of January is named for Janus (''Ianu ...
*
FreeSWITCH FreeSWITCH is a free and open-source telephony software for real-time communication protocols using audio, video, text and other forms of media. The software has applications in WebRTC, voice over Internet Protocol (VoIP), video transcoding, Multi ...
* SylkServer * mediasoup * rtpengine


Proprietary solutions

* AhoyRTC * AudioCodes WebRTC enabled SBC, WebRTC GW * Cisco Meeting Server (previously Acano) * Video RTC Gateway (WebRTC) * FRAFOS ABC WebRTC Gateway * Frozen Mountain - LiveSwitch * IVèS Audio Video and Text WebRTC to SIP GW *
Oracle An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination. Descript ...
* Pexip Infinity Platform * PortSIP WebRTC Gateway * REVE WebRTC-SIP Gateway * Ribbon's Kandy Link Gateway (previously GENBAND & Sonus) * TekSIP * TeleFinity WebRTC-SIP Gateway * WIT Software


References

{{Reflist, 30em
Web development Web development is the work involved in developing a website for the Internet (World Wide Web) or an intranet (a private network). Web development can range from developing a simple single static page of plain text to complex web applications, ...