Oracle Communications WebRTC Session Controller: Basic Admin Student Guide Edition 1.0 April 2015
Copyright 2015, Oracle and/or its affiliates. All rights reserved. Disclaimer This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way. Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization of Oracle. The information contained in this document is subject to change without notice. This document is not warranted to be error-free. Restricted Rights Notice If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS The U.S. Government s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract. Trademark Notice Oracle and Java are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Table of Contents Architecture...1-1 WebRTC Session Controller Architecture...1-3 Agenda...1-4 Network Deployment...1-5 Signaling and Media...1-6 Signaling and Media Integration...1-7 Signaling and Media Anchored Flow...1-8 Signaling and Media Deployment...1-9 Agenda...1-10 Signaling Engine Technologies...1-11 Signaling Engine Feature Highlights...1-12 Signaling Engine Components...1-13 Signaling Engine Architecture...1-14 Signaling Engine Protocols...1-15 Signaling Engine APIs and Extensibility...1-16 Signaling Engine Interfaces...1-17 Signaling Engine Domain...1-18 Signaling Engine JSON-RTC protocol...1-19 Signaling Engine Sessions...1-20 Signaling Engine Application Concepts...1-21 Signaling Engine Message Flow...1-22 Signaling Engine Templating...1-23 Signaling Engine Templating, Continued...1-26 Signaling Engine Templating, Continued...1-27 Signaling Engine Configuration...1-28 Signaling Engine High Availability and Load Balancing...1-29 Signaling Engine Failover Scenario...1-30 Signaling Engine Failover Scenario, Continued...1-31 Signaling Engine Security...1-32 Agenda...1-33 Media Engine Technologies...1-34 Media Engine Feature Highlights...1-35 Media Engine Components...1-36 Media Engine Architecture...1-37 Media Engine Protocols...1-38 Media Engine Cluster...1-39 Media Engine SDP processing...1-41 Media Engine High Availability and Load Balancing...1-42 Media Engine Security...1-43 Media Engine Security ICE...1-44 Media Engine Security DTLS...1-45 Media Engine Installation and Administration...2-1 WebRTC Session Controller Media Engine Installation and Administration...2-3 Agenda...2-4 Installation Options...2-5 Installation Packages...2-6
Hardware Requirements...2-7 Installation Overview...2-8 Hardware Installation Overview...2-9 Xen Installation Overview...2-10 Setup Management IP Interface...2-11 Shell and Poweroff...2-12 Media Engine Directories...2-13 Agenda...2-14 Media Engine Configuration...2-15 Access Configuration...2-16 Cluster Configuration...2-17 Load Factor Application Configuration...2-18 Master Services Configuration...2-19 Virtual System Partition Configuration...2-21 Agenda...2-22 Media Engine Object Types...2-23 Media Engine Object Types Configuration...2-24 Media Engine Object Types Status...2-25 Media Engine Object Types Actions...2-26 Media Engine Object Types Events...2-27 Agenda...2-28 Media Engine Administration Tools...2-29 Media Engine Administration Tools CLI...2-30 Configure box object using CLI command (example: box IP address)...2-31 Configure vsp object using CLI command (example: default-session-config in-encryption)...2-32 Configure vsp object using CLI command (continue)...2-33 Show object status using CLI command (example: ice-state-status)...2-34 Show object status using CLI command (verbose)...2-35 Media Engine Administration Tools Web UI...2-36 Configure vsp object using web UI (example: default-session-config in-encryption)...2-37 Configure box object using web UI (example: box IP address)...2-38 Configure box object using web UI (continue)...2-39 Show object status using Web UI (example: ice-state-status)...2-40 Show object status using Web UI (verbose)...2-41 Signaling Engine Installation and Administration...3-1 WebRTC Session Controller Signaling Engine Installation and Administration...3-3 Agenda...3-4 Installation Prerequisites and Requirements...3-5 Installation Modes...3-6 Signaling Engine Installation...3-7 Signaling Engine Installation (Optional Silent Mode)...3-8 Agenda...3-10 WebLogic Server Concepts...3-11 WebLogic Server Domain...3-12 WebLogic Server Domain, Continued...3-13 WebLogic Administration Server...3-15 WebLogic Managed Servers...3-16 WebLogic Managed Server Clusters...3-17 Agenda...3-18
Creating the Signaling Engine Domain...3-19 Silent Domain Creation...3-20 Silent Domain Creation, Continued...3-21 Agenda...3-22 Signaling Engine Administration...3-23 Accessing the Administration Consoles...3-24 User Interface Overview...3-25 Concepts...3-26 Applications...3-27 Packages...3-28 Packages and Mapping to Criteria...3-29 Applications...3-30 Applications Request URI...3-31 Applications Security Group...3-32 Applications Resource Limits...3-33 Applications Allowed Domains...3-34 Applications Packages...3-35 Packages...3-36 Script Library...3-37 Configuration Signaling Engine...3-38 Configuration Media Engine...3-39
Architecture Chapter 1 Architecture Chapter 1 - Page 1
Architecture Chapter 1 - Page 2
WebRTC Session Controller Architecture Architecture Chapter 1 - Page 3
Agenda Architecture Chapter 1 - Page 4
Network Deployment Network Deployment WebRTC Session Controller is a gateway server at the border of SIP/IMS network. Architecturally parallel to a P-CSCF. While P-CSCF is entry for the SIP endpoints, WebRTC Session Controller is entry point for HTML5 endpoints. Provide signaling and media integration between WebRTC browser clients with SIP/IMS. WebRTC Session Controller does not host any business applications, but leverage such functions from IMS applications deployed in the IMS application server. Architecture Chapter 1 - Page 5
Signaling and Media Signaling and Media WebRTC Session Controller interact with WebRTC app: Using JSON-RTC (JSON over WebSockets) for signaling. Using SRTP/ICE/STUN/TURN for media. WebRTC Session Controller interact with SIP network for signaling. WebRTC Session Controller interact with legacy SIP nodes and media functions using RTP. Architecture Chapter 1 - Page 6
Signaling and Media Integration Signaling and Media Integration WebRTC Session Controller is physically split in a Signaling Engine (WSC-SE) and a Media Engine (WSC-ME). WSC-SE handle all signaling and WSC-ME handle all media. WSC-SE and WSC-ME communicate to control the media sessions using an internal HTTP/SOAP based protocol: JSON-RTC. Architecture Chapter 1 - Page 7
Signaling and Media Anchored Flow Sample call flow for simple call setup Architecture Chapter 1 - Page 8
Signaling and Media Deployment Signaling and Media Deployment Signaling Engine Cluster - All nodes are active - Cluster state is shared - Load balance logic towards Media Engines is built in Media Engine - Multiple independent clusters of master/slave - Response is sent to originating Signaling Engine or the backup Signaling Engine Signaling Engines and Media Engines can scale independently Architecture Chapter 1 - Page 9
Agenda Architecture Chapter 1 - Page 10
Signaling Engine Technologies Architecture Chapter 1 - Page 11
Signaling Engine Feature Highlights Architecture Chapter 1 - Page 12
Signaling Engine Components Signaling Engine Components Admin Server Configuration and Management Engine Servers WSC-SE app with runtime processing Client javascript library For writing WebRTC HTML5 apps Converged Load Balancer (CLB) SIP load balancer Lightweight Proxy Registrar (LWPR) Built-in Proxy/Registrar Architecture Chapter 1 - Page 13
Signaling Engine Architecture Main layers: - JVM - WLS - Protocol stacks (SIP, HTTP, Diameter) - Services - Message processing, including Template Engine (Groovy) and APIs - Fabric Architecture Chapter 1 - Page 14
Signaling Engine Protocols Architecture Chapter 1 - Page 15
Signaling Engine APIs and Extensibility Architecture Chapter 1 - Page 16
Signaling Engine Interfaces Architecture Chapter 1 - Page 17
Signaling Engine Domain Engine and Replica Tier scale independently Architecture Chapter 1 - Page 18
Signaling Engine JSON-RTC protocol Architecture Chapter 1 - Page 19
Signaling Engine Sessions Signaling Engine Sessions WEB Session ~ Web Socket Sub Session ~ SIP Session Media session, 0-1 per Sub Session Architecture Chapter 1 - Page 20
Signaling Engine Application Concepts Architecture Chapter 1 - Page 21
Signaling Engine Message Flow Signaling Engine Message Flow Web Handler manage websockets (Web Socket Application) Fabric makes the right node process each message (local if possible). Leverage Coherence. Message Processing do protocol mapping and translation SIP Handler manage SIP (SIP Servlet) and maintains SIP session state. Leverage SIP application session. Side Functions provide integration with external features such as Rx and Media Engine Architecture Chapter 1 - Page 22
Signaling Engine Templating Signaling Engine Templating Groovy scripts are used for mediation between web and sip messages. There are a large number of template groovy scripts available out-of-the-box. Architecture Chapter 1 - Page 23
Note that example is simplified for readability. 1. Standard HTTP authentication (e.g. username/password or OAuth) 2. Browser establish Web Socket connection 3. Browser send connect JSON message 4. Signaling Engine process the JSON frame (creates session A, sub session 1, SIP session) 5. Signaling Engine resolve script to execute based on criteria 6. Groovy execute script 7-8. Groovy script create and send SIP REGISTER to SIP network 9. 200 OK received from SIP network 10-11. Signaling Engine process the SIP response and resolve script to execute 12. Groovy execute script 13-14. Groovy script create and send JSON response (including session info) Architecture Chapter 1 - Page 24
Red marks highlight various application concepts. Architecture Chapter 1 - Page 25
Signaling Engine Templating, Continued Architecture Chapter 1 - Page 26
Signaling Engine Templating, Continued Architecture Chapter 1 - Page 27
Signaling Engine Configuration Architecture Chapter 1 - Page 28
Signaling Engine High Availability and Load Balancing Architecture Chapter 1 - Page 29
Signaling Engine Failover Scenario Signaling Engine Failover Scenario Application web socket connected to Signaling Engine 1 SIP signaling flow through Signaling Engine 1 Media interaction between Signaling Engine 1 and Media Engine Media flow through Media Engine Architecture Chapter 1 - Page 30
Signaling Engine Failover Scenario, Continued Signaling Engine Failover Scenario, Continued The application detect web socket disconnect (by heartbeat or socket disconnect) - Reconnects to the Load Balancer, which forwards to Signaling Engine 2 and recovers full state - Messages are queued until the application is reconnected - SIP signaling flow redirected through Signaling Engine 2 - Media interaction between Signaling Engine 2 and Media Engine - Media continue to flow through Media Engine Theoretically, the application, Media Engine and SIP can all connect to different nodes. The fabric make sure messages are distributed properly. Architecture Chapter 1 - Page 31
Signaling Engine Security Architecture Chapter 1 - Page 32
Agenda Architecture Chapter 1 - Page 33
Media Engine Technologies Architecture Chapter 1 - Page 34
Media Engine Feature Highlights Architecture Chapter 1 - Page 35
Media Engine Components Architecture Chapter 1 - Page 36
Media Engine Architecture Architecture Chapter 1 - Page 37
Media Engine Protocols Architecture Chapter 1 - Page 38
Media Engine Cluster Architecture Chapter 1 - Page 39
Media Engine Interfaces Each node in the cluster can host a VRRP interface on one or more local physical interfaces. Each physical interface can host more than one VRRP interface at a time. Architecture Chapter 1 - Page 40
Media Engine SDP processing Architecture Chapter 1 - Page 41
Media Engine High Availability and Load Balancing Architecture Chapter 1 - Page 42
Media Engine Security Architecture Chapter 1 - Page 43
Media Engine Security ICE Architecture Chapter 1 - Page 44
Media Engine Security DTLS Architecture Chapter 1 - Page 45
Architecture Chapter 1 - Page 46
Media Engine Installation and Administration Chapter 2 Media Engine Installation and Administration Chapter 2 - Page 1
Media Engine Installation and Administration Chapter 2 - Page 2
WebRTC Session Controller Media Engine Installation and Administration Media Engine Installation and Administration Chapter 2 - Page 3
Agenda Media Engine Installation and Administration Chapter 2 - Page 4
Installation Options Media Engine Installation and Administration Chapter 2 - Page 5
Installation Packages Media Engine Installation and Administration Chapter 2 - Page 6
Hardware Requirements Media Engine Installation and Administration Chapter 2 - Page 7
Installation Overview Media Engine Installation and Administration Chapter 2 - Page 8
Hardware Installation Overview Media Engine Installation and Administration Chapter 2 - Page 9
Xen Installation Overview Media Engine Installation and Administration Chapter 2 - Page 10
Setup Management IP Interface Media Engine Installation and Administration Chapter 2 - Page 11
Shell and Poweroff Media Engine Installation and Administration Chapter 2 - Page 12
Media Engine Directories Media Engine Installation and Administration Chapter 2 - Page 13
Agenda Media Engine Installation and Administration Chapter 2 - Page 14
Media Engine Configuration Media Engine Installation and Administration Chapter 2 - Page 15
Access Configuration Media Engine Installation and Administration Chapter 2 - Page 16
Cluster Configuration Media Engine Installation and Administration Chapter 2 - Page 17
Load Factor Application Configuration Media Engine Installation and Administration Chapter 2 - Page 18
Master Services Configuration Media Engine Installation and Administration Chapter 2 - Page 19
Media Engine Installation and Administration Chapter 2 - Page 20
Virtual System Partition Configuration Media Engine Installation and Administration Chapter 2 - Page 21
Agenda Media Engine Installation and Administration Chapter 2 - Page 22
Media Engine Object Types Media Engine Installation and Administration Chapter 2 - Page 23
Media Engine Object Types Configuration Media Engine Installation and Administration Chapter 2 - Page 24
Media Engine Object Types Status Media Engine Installation and Administration Chapter 2 - Page 25
Media Engine Object Types Actions Media Engine Installation and Administration Chapter 2 - Page 26
Media Engine Object Types Events Media Engine Installation and Administration Chapter 2 - Page 27
Agenda Media Engine Installation and Administration Chapter 2 - Page 28
Media Engine Administration Tools Media Engine Installation and Administration Chapter 2 - Page 29
Media Engine Administration Tools CLI Media Engine Installation and Administration Chapter 2 - Page 30
Configure box object using CLI command (example: box IP address) Media Engine Installation and Administration Chapter 2 - Page 31
Configure vsp object using CLI command (example: default-sessionconfig in-encryption) Media Engine Installation and Administration Chapter 2 - Page 32
Configure vsp object using CLI command (continue) Media Engine Installation and Administration Chapter 2 - Page 33
Show object status using CLI command (example: ice-state-status) Media Engine Installation and Administration Chapter 2 - Page 34
Show object status using CLI command (verbose) Media Engine Installation and Administration Chapter 2 - Page 35
Media Engine Administration Tools Web UI Media Engine Installation and Administration Chapter 2 - Page 36
Configure vsp object using web UI (example: default-session-config in-encryption) Media Engine Installation and Administration Chapter 2 - Page 37
Configure box object using web UI (example: box IP address) Media Engine Installation and Administration Chapter 2 - Page 38
Configure box object using web UI (continue) Media Engine Installation and Administration Chapter 2 - Page 39
Show object status using Web UI (example: ice-state-status) Media Engine Installation and Administration Chapter 2 - Page 40
Show object status using Web UI (verbose) Media Engine Installation and Administration Chapter 2 - Page 41
Media Engine Installation and Administration Chapter 2 - Page 42
Signaling Engine Installation and Administration Chapter 3 Signaling Engine Installation and Administration Chapter 3 - Page 1
Signaling Engine Installation and Administration Chapter 3 - Page 2
WebRTC Session Controller Signaling Engine Installation and Administration Signaling Engine Installation and Administration Chapter 3 - Page 3
Agenda Signaling Engine Installation and Administration Chapter 3 - Page 4
Installation Prerequisites and Requirements Signaling Engine Installation and Administration Chapter 3 - Page 5
Installation Modes Signaling Engine Installation and Administration Chapter 3 - Page 6
Signaling Engine Installation Signaling Engine Installation and Administration Chapter 3 - Page 7
Signaling Engine Installation (Optional Silent Mode) Signaling Engine Installation and Administration Chapter 3 - Page 8
Signaling Engine Installation (Optional Silent Mode) Signaling Engine Installation and Administration Chapter 3 - Page 9
Agenda Signaling Engine Installation and Administration Chapter 3 - Page 10
WebLogic Server Concepts Signaling Engine Installation and Administration Chapter 3 - Page 11
WebLogic Server Domain Signaling Engine Installation and Administration Chapter 3 - Page 12
WebLogic Server Domain, Continued Signaling Engine Installation and Administration Chapter 3 - Page 13
WebLogic Server Domain, Continued Signaling Engine Installation and Administration Chapter 3 - Page 14
WebLogic Administration Server Signaling Engine Installation and Administration Chapter 3 - Page 15
WebLogic Managed Servers Signaling Engine Installation and Administration Chapter 3 - Page 16
WebLogic Managed Server Clusters Signaling Engine Installation and Administration Chapter 3 - Page 17
Agenda Signaling Engine Installation and Administration Chapter 3 - Page 18
Creating the Signaling Engine Domain Signaling Engine Installation and Administration Chapter 3 - Page 19
Silent Domain Creation Signaling Engine Installation and Administration Chapter 3 - Page 20
Silent Domain Creation, Continued Signaling Engine Installation and Administration Chapter 3 - Page 21
Agenda Signaling Engine Installation and Administration Chapter 3 - Page 22
Signaling Engine Administration Signaling Engine Installation and Administration Chapter 3 - Page 23
Accessing the Administration Consoles Signaling Engine Installation and Administration Chapter 3 - Page 24
User Interface Overview Signaling Engine Installation and Administration Chapter 3 - Page 25
Concepts Signaling Engine Installation and Administration Chapter 3 - Page 26
Applications Signaling Engine Installation and Administration Chapter 3 - Page 27
Packages Signaling Engine Installation and Administration Chapter 3 - Page 28
Packages and Mapping to Criteria Signaling Engine Installation and Administration Chapter 3 - Page 29
Applications Signaling Engine Installation and Administration Chapter 3 - Page 30
Applications Request URI Signaling Engine Installation and Administration Chapter 3 - Page 31
Applications Security Group Signaling Engine Installation and Administration Chapter 3 - Page 32
Applications Resource Limits Signaling Engine Installation and Administration Chapter 3 - Page 33
Applications Allowed Domains Signaling Engine Installation and Administration Chapter 3 - Page 34
Applications Packages Signaling Engine Installation and Administration Chapter 3 - Page 35
Packages Signaling Engine Installation and Administration Chapter 3 - Page 36
Script Library Signaling Engine Installation and Administration Chapter 3 - Page 37
Configuration Signaling Engine Glare Handling: Handles simultaneous updates. Sip Session Default Time: Maps to sip extension field Session-Expires (default time is 3600 seconds), which defines lifetime of a sip session. Sip Session Minimum Time: Maps to sip extension field Min-SE (min value 90 seconds), defines sip session timer. Websocket Disconnect Time Limit: Time interval between disconnect and reconnect of the websocket session (default time is 60000 ms). Websocket Idle Time Limit: Idle time interval after which websocket times out (30 seconds). Websocket Maximum Connections: Number of maximum connections. Signaling Engine Installation and Administration Chapter 3 - Page 38
Configuration Media Engine User/Password: Media engine user and password. Block Traffic: To unblock the traffic from the node. Unblock Traffic: To block the traffic from the node. Address/Port: Media engine address and port Media Node Traffic Enabled: Node is allowed to receive the traffic. Media Node Status: Up or Down. Load Factor: Load value on the current node. Signaling Engine Installation and Administration Chapter 3 - Page 39
Signaling Engine Installation and Administration Chapter 3 - Page 40