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 to wor ...
and an established
VoIP Voice over Internet Protocol (VoIP), also called IP telephony, is a method and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. The terms Internet t ...
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 to wor ...
(Web Real-Time Communication) is an
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
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 and led by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working to ...
(W3C) that supports browser-to-browser applications for
voice calling A telephone call is a connection over a telephone network between the called party and the calling party. First telephone call The first telephone call was made on March 10, 1876, by Alexander Graham Bell. Bell demonstrated his ability to "talk ...
,
video chat Videotelephony, also known as videoconferencing and video teleconferencing, is the two-way or multipoint reception and transmission of audio and video signals by people in different locations for real time communication.McGraw-Hill Concise Ency ...
, 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 called IP telephony, is a method and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. The terms Internet t ...
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 The Hypertext Transfer Protocol (HTTP) 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, ...
and
WebSocket WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as in 2011. The current API specification allowing web applications ...
. 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) provides infrastructure and services for public telecommunication. The PSTN is the aggregate of the world's circuit-switched telephone networks that are operated by national, regional, or local teleph ...
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 that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
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 that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
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 full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as in 2011. The current API specification allowing web applications ...
layer into UDP,
TCP TCP may refer to: Science and technology * Transformer coupled plasma * Tool Center Point, see Robot end effector Computing * Transmission Control Protocol, a fundamental Internet standard * Telephony control protocol, a Bluetooth communication s ...
or
TLS TLS may refer to: Computing * Transport Layer Security, a cryptographic protocol for secure computer network communication * Thread level speculation, an optimisation on multiprocessor CPUs * Thread-local storage, a mechanism for allocating vari ...
. * 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 called IP telephony, is a method and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet. The terms Internet t ...
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. G.711 passes audio signals in the range of 300–3400 Hz and samples them at the rate of 8,000 samples per second ...
or
OPUS ''Opus'' (pl. ''opera'') is a Latin word meaning "work". Italian equivalents are ''opera'' (singular) and ''opere'' (pl.). Opus or OPUS may refer to: Arts and entertainment Music * Opus number, (abbr. Op.) specifying order of (usually) publicatio ...
as the Audio codec. Applications using SIP for establishing audio session are free to choose any type of codec. 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 Organizations * National Actors Theatre, New York City, U.S. * National AIDS trust, a British charity * National Archives of Thailand * National As ...
, 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 frozen into a solid state, typically forming at or below temperatures of 0 degrees Celsius or Depending on the presence of impurities such as particles of soil or bubbles of air, it can appear transparent or a more or less opaq ...
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 frozen into a solid state, typically forming at or below temperatures of 0 degrees Celsius or Depending on the presence of impurities such as particles of soil or bubbles of air, it can appear transparent or a more or less opaq ...
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 a 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 pre ...
*
Asterisk The asterisk ( ), from Late Latin , from Ancient Greek , ''asteriskos'', "little star", is a typographical symbol. It is so called because it resembles a conventional image of a heraldic star. Computer scientists and mathematicians often voc ...
* * WebRTC2SIP *
Janus In ancient Roman religion and myth, Janus ( ; la, Ianvs ) 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 Janu ...
*
FreeSWITCH FreeSWITCH is free and open-source server software for real-time communication applications, including WebRTC, video, and voice over Internet Protocol (VoIP). It runs on Linux, Windows, macOS, and FreeBSD. FreeSWITCH is used to build private bran ...
* 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 agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
* Pexip Infinity Platform * PortSIP WebRTC Gateway * REVE WebRTC-SIP Gateway * Ribbon's Kandy Link Gateway (previously GENBAND & Sonus) * 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 ...