The following diagram shows the high level software architecture of the Sonus WebRTC Gateway:
The following table lists the Sonus WRTC Software Framework:
Cassandra is an open source distributed database designed to handle large amount of data across servers and provide highly scalable, eventually consistent, distributed, and structured key-value store. It is a hybrid between a key-value and a column-oriented (or tabular) database. It supports several languages such as Java, Python, and Node JS. As every node in the cluster has the same role, the roles are decentralized and there is no single point of failure. It replicates data among multiple data centers for replication support. It is scalable through read and write throughput increase linearly as new machines are added, with no downtime or interruption to applications. Data is automatically replicated to multiple nodes. In WRTC, the database is used to store WRTC data, trace, logging, and user/subscriber data. It is included as part of WebRTC Gateway.
LCA supports WRTC node registration with EMS.
Conf-D/Tail-f supports the retrieval of WRTC node configuration of data from EMS, after the node has been registered through REST API. Each WRTC instance internally use Conf-D for configuration management and generates CLI and REST API.
WRTC Software Components
The following table lists the WRTC software components name, and their description:
|WRTC Software Component Name||Functions|
|System Manager||Its function is to monitor the health of the system processes on the node and taking corrective actions. This can be process restart or reporting to central management, generating TRAPs, and so on.|
|Application JS||It is the HTTP server providing the Java Script or Web Application page to the browser.|
|J2EE Container||It is the J2EE compliant Application server running the Java Application.|
It is the core Application interworking with sessions between WebRTC and SIP endpoints. It involves the authorization, billing and policies.
|HTTP WS FE||HTTP WebSocket Front end is the module responsible for handling WebSocket connections from the browsers. It will work with authorization modules for validating the users. Then pass the received PDUs to appropriate protocol adapters based on the protocol of the Signaling message received on the Web Socket.|
|SIP over WS||SIP over WebSocket is signaling used for Call control messages between the browser JS client and the WRTC Application.|
|AppSig over WS||AppSig over WebSocket is signaling extensions defined by Sonus to add the differentiating features and increase reliability. Its functionality is to maintain session rehydration and collect statistics from browser for example RTCP statistics.|
|SIP UA||It is the SIP UA represents the User Agent and Sip stack responsible for SIP signaling towards SIP user devices.|
SIP Front End is the front end SIP module handling SIP connections to Peer devices.It relays the incoming request to SIP Proxy (Load balancer ) to be relayed to correct Host for processing.
|SIP proxy (LB)||This module looks in the Subscriber Fast Cache and determines whether SIP Message needs to be passed to SIP UA on this node or relayed to other WRTC instances in the cluster and routes accordingly. It can be deployed as light weight Stateless proxy or re-director for this purpose.|
|Routing Policy||Its function is to determine the route for routing the Sessions based on the query to a routing database.|
|Media Policy||It store policy data pertaining to various media attributes including the following:|
|Tenant Policy||It stores the tenant specific preferences, details of the ID stores, authorization interfaces, and so on.|
Its function is to generate Billing records for the sessions.
Its function is to authorize the users from various ID stores like Facebook, Google, or Enterprise AD databases using OAUTH.
External ID stores are not shown in the diagram. When solution needs to support managed users, an AD Database will be used to manage subscriber data.
|Licensing||Its function is to get or return the licenses from centralized Licensing server based on the usage.|
|Stats||Its function includes sending the statistics, traps, and so on to centralized Manager/EMS for report generation and monitoring.|
|Config||It provides the configuration management / provisioning interface to the centralized configuration manager / EMS.|
This module generates the debug and trace level logs for the Application code.
|System Manager (monit) supports to monitor the health of the system processes on the node and taking corrective actions. This can be process restart or reporting to central management, generating TRAPs, and so on.|
- No labels