This section describes high level solution and the network components such as Sonus WebRTC Gateway (WRTC), SBC, EMS, browsers, SIP endpoints, and their interfaces involved in Sonus WebRTC Services Solution.
The following diagram depicts the Sonus WebRTC Services Solution components.
WebRTC Enabled Browser
WebRTC compliant browser such as Microsoft Edge and Chrome 37 and above running on PC, Tablet, smart phone, or any other device. This browser downloads and runs the WebRTC client (java script) from the Web Application.
The Sonus WRTC Gateway is the core component in the Sonus WebRTC Services Solution. It provides the session management and interconnection for WebRTC and SIP endpoints. At high level, it performs the following functions:
- Interacts with JS SDK in the browser
- Web to SIP interworking.
- Maintain WebRTC user registry and routing.
- User Authentication and Enterprise's Policy enforcement
- Session management for browser-to-browser or browser-to-SIP sessions.
The WRTC Gateway runs on a Virtual machine (VM) on any COTS (customer off the shelf server) hardware with Linux Intel processors. It is deployed as multi-nodes cluster application that can support true elastic scaling, with high availability to avoid impacts from possible server failures and address multi-tenancy deployments.
The Sonus Insight Element Management Server (EMS) provides the Fault and Performance monitoring and Configuration management for the WRTC Gateway.
Sonus WebRTC SDK
Sonus WebRTC SDK is the toolkit to enable web and mobile application developers to develop Applications with WebRTC capabilities.
The WebRTC SDK interacts with the mobile or web application and establish the web socket connection with WRTC Gateway. It provides the APIs for voice/video/IM/desktop share, session management, presence, conferencing, user logins, and so on.
Sonus WebRTC SDK provides the libraries for application development across multiple platforms as follows:
- JS library provided to web developer to WebRTC enable their Web Applications/pages.
- JS SDK enables communication on browsers like Chrome, Firefox, and Opera with WebRTC support.
- Browser Plug-ins to enable communications with non-WebRTC supported browsers including Apple Safari and Microsoft IE.
- Temasys plug-in is used for Apple Safari and Microsoft IE.
The Web Application is an application created by the developer (in-house or third party) that resides on the customers Web Application Server. Web Application can be a simple HTML web page with associate Java script to invoke the WebRTC SDK APIs to start WebRTC communication.
The Web Application references the Sonus WebRTC SDK to invoke WebRTC services. Refer to the Sonus WebRTC Software Development Kit Guide for more information.
The Sonus SBC is a security appliance providing security and inter-working for the real time communication infrastructure. Sonus SBC is enhanced to support WebRTC media profile and supports media inter-working between WebRTC and SIP endpoints. Some of the SBC features relevant in WebRTC solution are listed as follows:
- Inter-works WebRTC media DTLS/SRTP to traditional RTP/UDP.
- Relays or transcodes opus to G7xx voice codecs.
- Relays VP8/VP9, and H.264 video codecs.
- ICE and STUN procedures for NAT traversal.
- Policing of the audio/video media streams
- Relays and monitors the media streams.
- SBC leverages PSX to route the sessions.
Sonus Insight EMS is the Element Management system used to manage Sonus network elements including the Sonus WebRTC Gateway, SBC, and so on. The Sonus WebRTC Gateway has a highly scalable architecture that can expand and grow based on network requirement. The Sonus EMS dynamically discovers a WRTC node and registers it into the appropriate cluster. The EMS also supports key functions including fault, configuration, alarms, performance, and statistics.
The Sonus WebRTC Gateway can be deployed into networks where a call server infrastructure is present. The call server can be SIP based or may be a legacy PBX deployed in a call canter or Enterprise. The Sonus WebRTC Gateway can also be deployed in service provider networks alongside carrier grade C5 softswitch or Voice Application Server (VAS) solutions.
The Sonus WebRTC Services Solution supports browser to browser as well as browser to phone communications that is, a phone connected to a standard PBX or phone accessible through the PSTN.
Third Party Components
Sonus involves third party components as part of the Sonus WebRTC Services Solution. The following section describes the components and their use.
TURN Server components can be used to provide NAT traversal for scenarios when two WebRTC endpoints behind different NATs want to communicate with each other. Sonus SBC supports the NAT traversal procedures. When Sonus SBC is in the call path, TURN server does not get used for NAT traversal.
Sonus uses Google Opensource "Google rfc5766-turn-server" to facilitate NAT traversal. However, customers can select TURN server of their choice compatible with rfc5766-turn-server.
- High performance, free open source STUN or TURN Server.
- Supports NAT traversal for media streams.
- Sonus WRTC GW and Google rfc5766-turn-server" support Ephemeral credentials for authentication.
Identity and Authentication Providers
Enterprises and Developers have the choice to choose User Identity and the authentication mechanism to be used for the WebRTC users.
Sonus WRTC GW supports Telephone numbers or/and Email ID as the user identities.
For authentication and authorization WRTC GW supports the following variety of mechanisms:
- No Authentication
- OAuth 2.0—Google, Facebook, LinkedIn,
- LDAP—Enterprises Microsoft Active directory
- Application AuthTokens - WRTC GW can use the application Auth Tokens and validate the same with web application server.
- Generate AuthTokens — WRTC GW exposes the REST API for Enterprise Admins, which which Admin could generate the AuthTokens and vendout the same to end users.
For more information refer to Authentication and Authorization.
HTTP Load balancer
Load balancing is used to balance HTTP loads between active WRTC nodes in a cluster. Sonus has verified the solution with an open source load balancer called NGINX. For more information on WRTC and NGINX configuration refer to the NGINX Load Balancer.
However, customers can choose to utilize an alternate third party solution for load balancing. The following lists the service delivered by the load balancer:
- HTTP load balancer
- WebSocket load balancer
Media Resource Function
WebRTC enabled browsers natively support the VP8 codec while H264 is common codec in SIP world. During realtime video transcoding, Sonus WebRTC solution integrates with third party Media server for providing video transcoding or centralized conferencing solutions.
Sonus has performed interoperability with the Acano and Radisys media servers to support such scenarios involving VP8 to H.264 video transcoding.
Refer the Deployment Models for information regarding various deployment scenarios.