Skip Headers
Oracle® Communications WebRTC Session Controller Installation Guide
Release 7.0

E40974-02
Go to Documentation Home
Home
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

8 Installing WebRTC Session Controller Media Engine

This chapter describes how to install Oracle Communications WebRTC Session Controller Media Engine (Media Engine).

Before you install Media Engine, you must complete the tasks in the following chapters:

About Installing Media Engine

Table 8-1 describes the Media Engine software distribution formats available from https://edelivery.oracle.com. Download the one that is appropriate for your environment.

Table 8-1 Media Engine Software Distribution Formats

Name Description

Oracle Communications WebRTC Session Controller 7.0 - ME Software USB Image

A Media Engine distribution suitable for use with the BMC tool to create a USB software installation stick.

Only download this software archive if you are installing Media Engine using a USB stick.

The BMC tool is included in the USB image archive. For more information on the BMC tool, see the discussion on creating and commissioning USB sticks in the Oracle Communications Application Session Controller Installation and Commissioning Guide.

Oracle Communications WebRTC Session Controller 7.0 - ME Software Supertar

A Media Engine installation file used for upgrading an existing installation.

Oracle Communications WebRTC Session Controller 7.0 - ME Software ISO Image

A Media Engine distribution suitable for creating a bootable CD/DVD image.

Only download this software archive if you are installing Media Engine using a CD or DVD drive.

Oracle Communications WebRTC Session Controller 7.0 - ME Software Xen Server Image

A Media Engine distribution suitable for loading on a Xen virtualization server.

Only download this software archive if you are installing Media Engine on a Xen hypervisor.


For more information on Media Engine installation scenarios, see the Oracle Communications Application Session Controller System Installation and Commissioning Guide.

For details on supported bare metal servers as well as general hardware requirements, see "Media Engine Hardware Requirements".

Media Engine Installation and Network Configuration

Once you have created the Media Engine installation image, you first attach the bootable image to your hardware, run the Media Engine system installation, and configure basic networking information.

To install Media Engine and configure networking information:

  1. Insert the bootable CD/DVD or attach the bootable USB drive to your server.

  2. Power on the machine.

  3. Once the installation image has booted, you are prompted to reformat the primary hard disk. Select yes.

    When the installation is complete, the machine will reboot.

  4. At the login prompt, enter root and press Enter.

    The password prompt appears.

    Note:

    While not required for the initial login, the root password should be changed as soon as possible after installation. For more information, see the discussion about configuring permissions, users and authorization in Oracle Communications Application Session Controller System Administration Guide.
  5. Press Enter.

    The application-level user name prompt appears.

  6. Press Enter. No application-level user name is required upon initial login.

    The application-level password prompt appears.

  7. Press Enter.

    After you have logged in, the Media Engine automatically reboots. Once the system has finished rebooting, you must run the setup script to create a management IP interface.

  8. At the console prompt, type config setup to access the basic configuration objects and properties you must modify on your first network interface to ping the Media Engine and access it via SSH on port 22, and HTTPS on port 443.

    Note:

    Once you have configured basic access to your first network interface, you can access the system and use the configuration commands to complete your system configuration. For more information on configuration objects and properties, see the Oracle Communications OS-E Objects and Properties Reference Guide.
  9. When prompted for a hostname, enter the name you want to use for the host and press Enter.

  10. When prompted for an interface, enter the name of the ethernet interface, for example, eth1, and press Enter.

  11. When prompted for an ip-address, enter the IP address and subnet mask of the host, for example, 192.168.12.123/24, and press Enter.

  12. When asked if you want to enable ssh access to the Media Engine host, enter y and press Enter.

  13. When asked if you want to enable web access to the Media Engine host, enter y and press Enter.

  14. When prompted for a route, enter default for the ethernet interface route and press Enter.

  15. When prompted for a default gateway, enter the IP address of the host's default gateway and press Enter.

  16. When prompted for the text you want to use for the host's prompt, enter a string of your choice and press Enter.

  17. When prompted for media-sessions, enter the session capacity per feature to match what you have purchased, and press Enter.

  18. When you are asked to commit this setup script, enter y.

  19. When you are asked to update the startup configuration, enter y.

Editing and Installing a Media Engine Configuration File

You must edit the sample configuration file provided with Media Engine with details specific to your installation. See "Sample Media Engine Configuration File" for more information.

Once you have made the necessary changes to the configuration file, you must upload it to the Media Engine /cxc folder.

To upload the sample configuration file to the Media Engine /cxc folder:

  1. Navigate to the Media Engine login page:

    https://hostname

    The login page appears.

  2. Click Login.

    The Media Engine home page appears.

    Note:

    No credentials are required to login until users, permissions, and authorization have been configured. For more information on configuring those objects and properties, see Oracle Communications OS-E System Administration Guide.
  3. Select the Tools tab.

  4. Click Upload File.

  5. Click Browse and navigate to the sample configuration file.

  6. Click Update.

  7. Sign out of the Media Engine web page and open a SSH session with the Media Engine host.

  8. Sign in to the Media Engine console.

  9. Enter the following command to validate the configuration file:

    config validate /cxc/filename
    
  10. Enter the following command to activate the configuration file:

    config replace /cxc/filename
    
  11. Enter the following command to save the sample configuration file:

    config save /cxc/filename
    

Sample Media Engine Configuration File

Example 8-1 shows an annotated Media Engine configuration file. Variables that must be updated in this configuration file are indicated by the text, SET THIS.

Note:

This is only an example. The exact contents of this configuration file can vary significantly depending upon your particular networking environment and requirements.

For more information on the objects and properties referenced in this example, see the Oracle Communications OS-E Objects and Properties Reference Guide.

Example 8-1 Annotated Media Engine Configuration File

#
# This is an example of a Media Engine cluster configuration with recommended configuration
# settings. Details will be different for each customer site and may differ from this template.
#
# Items marked with ----> SET THIS must be supplied
#
 
config cluster
 
#
# Standard box-level settings.
#
 config box 1
  set hostname SET THIS to the host name
  set timezone                           SET THIS to the host's timezone
  set name                                       SET THIS to the box name 
  set identifier SET THIS to the box's eth0 MAC address
 
#
# Interface backing the VRRP vx interface - see VRRP configuration below.
#
  config interface eth1
  return
 
#
# Heartbeat interface for other boxes in the cluster. The eth0 interface is recommended.
#
  config interface eth0
   config ip heartbeat1
    set ip-address static SET THIS to the IP address and network mask, for example, 192.168.1.1/24
 
#
# Web services are configured here so the load factor application can retrieve statistics
# for all boxes in the cluster.
#
    config web-service
    return
#
# Set up a Network Time Protocol (NTP) server. It is important that cluster time is correct, and
# this NTP server acts as backup in case an external NTP server is not available.
#
    config ntp-server
    return
 
    config vrrp-advertisements
    return
    config messaging
    return
   return
  return
  config cli
   set prompt SET THIS to a useful descriptor such as the box name
   set display scrolled
  return
 
#
# Set to an external NTP server; it is important that the cluster have the correct time.
#
  config ntp-client
   set server                            SET THIS to the external NTP server's IP, for example, 10.148.104.1
  return
 
#
# Increases the size of the kernel Address Resolution Protocol (ARP) cache.
#
  config os
   set arp-thresholds 4096 4096 8192
  return
 
#
# Sets the number of active ports available for media anchoring.
#
  config media-anchor-limits
   config port-limit CXC CXC
    set full-limit 800000
   return
  return
 return
 
#
# Standard box-level settings for an additional box.
#
 config box 2
  set hostname SET THIS to the box's host name.
  set timezone                           SET THIS to box's timezone.
  set name                                       SET THIS to the box's name. 
  set identifier SET THIS to the box's MAC address.
 
#
# Interface backing the Virtual Router Redundancy Protocol (VRRP) vx interface - see VRRP
# configuration below.
#
  config interface eth0
  return
 
#
# Heartbeat interface to the other box in the cluster
#
  config interface eth1
   config ip heartbeat2
    set ip-address static SET THIS to the local interface/netmask, for example, 192.168.1.2/24
 
#
# Web services are configured here so the load factor application can get access
# to statistics on every box in the cluster.
#
    config web-service
    return
 
    config vrrp-advertisements
    return
    config messaging
    return
   return
  return
  config cli
   set prompt                            SET THIS to the box name.
   set display scrolled
  return
 
#
# Set to an external NTP server; it's important that the cluster have the correct time
#
  config ntp-client
   set server                            SET THIS to the external NTP server IP, for example, 10.148.104.1
   set server                            SET THIS to the internal NTP server on ip Heartbeat1, for example, 192.168.1.1
  return
 
#
# Increases the size of the kernel ARP cache.
#
  config os
   set arp-thresholds 4096 4096 8192
  return
 
#
# Sets the number of active ports available for media anchoring.
#
  config media-anchor-limits
   config port-limit CXC CXC
    set full-limit 800000
   return
  return
 return
 
#
# Cluster support
#
 set share-signaling-entries true
 set mirror-media-streams true
 
#
# Cluster interfaces using VRRP
#
 config vrrp
 
#
# management, web service and SIP interface
#
  config vinterface vx36
 
#
# Define a group of box interfaces tied to this cluster interface.
#
   set group 1
   set host-interface cluster\box 1\interface eth0
   set host-interface cluster\box 2\interface eth0
 
#
# We're doing "one-arm" routing, in that there are no separate public, private 
# and management interfaces.
# 
   config ip Service
    set ip-address static SET THIS to the IP address/netmask, for example, 10.1.1.1/16
 
#
# Management protocols.
#   
    config ssh
    return
    config web
    return
 
#
# Required for the media control API between Signaling Engine and Media Engine.
#
    config web-service
    set min-spare-threads 4
    return    
 
# 
# SIP and media.  Note that Network Address Translation (NAT) is enabled.
#   
    config sip
     set udp-port 5060 "" "" any 0
     set tcp-port 5060 "" "" any 0
     set tls-port 5061 "" "" any 0
     config ws-port 9080
     return
    return
    config icmp
    return
    config media-ports
    return
 
#
# Routing - default route for the box.
#
    config routing
     config route default
      set gateway SET THIS to the gateway IP address, for example, 10.1.0.1
     return
    return
 
#
# These are the default ports for the STUN server.  'disabled' refers to the TURN relay.
#  
    config stun-server
     set port UDP 3478 disabled
    return
   return
 
#
# Configuration for the load factor application which supplies load factor
# values for the Media Engine cluster to the Signaling Engines.
#
 
   config ip loadfactor
    set ip-address static SET THIS to an IP address/netmask, for example, 10.1.1.2/16
    config web-service
     config virtual-host SET THIS to same static address for this ip, for example, 10.1.1.2
      config web-app-config /loadfactor
       set context-parameter ascMgmtHost SET THIS to the web services IP address on the 
                                                  IP Service, for example, 10.1.1.1
       set context-parameter ascUsername SET THIS to the Media Engine user name in ME access
                                                  configuration with web services privileges
       set context-parameter ascPassword SET THIS to the password of the Media Engine user name
                                                  specified above
      return
     return
    return
   return
  return
 
#
# Sets the Media Engine to initiate a VRRP failover to backup boxes if the local Session
# Initialization Protocol (SIP) process goes dead
#
  set sip-dead-groups 1
 return
return
 
#
# Standard logging, and other options.
#
config services
 config event-log
  config file krnlsys.log
   set filter krnlsys debug
  return
  config file management.log
   set filter management info
  return
  config file access.log
   set filter access info
  return
  config file system.log
   set filter general info
   set filter sipSvr info
   set filter system info
   config advanced-filter
    set blocked-event irqbalance
   return
  return
  config file error.log
   set filter all error
  return
  config file db.log
   set filter db debug
  return
 return
 config data-locations
 return
 config storage-device
  set fail-threshold 200
 return
 
#
# Configure the collect command group specific to WebRTC for debugging.
#
 config collect
  config collect-group wsc-me
   set status-class version
   set status-class ice-state-status
   set status-class ice-dtls-status
   set status-class media-stream-stats
   set status-class media-stream-addresses
   set status-class kernel-rule-stats
   set status-class kernel-rule
   set description "WSC ME Debug"
  return
 return
return
 
#
# Enables and sets the master box for master services. Each master services can run on 
# one box in the cluster.
#
config master-services

# 
# Box for controlling the cluster configuration.
#
 config cluster-master
  set host-box cluster\box 1
  set host-box cluster\box 2
  set group 1
 return

#
# The internal cluster database for call-log debugging.
#
 config database
  set host-box cluster\box 2
  set host-box cluster\box 1
  set group 2
  set media enabled
 return

#
# Failover for media processing.
#
 config call-failover
  set host-box cluster\box 1
  set host-box cluster\box 2
  set group 3
 return

#
# Event service settings.
#
 config events
  set host-box cluster\box 1
  set host-box cluster\box 2
  set group 4
 return
return
 
config vsp
 set admin enabled
 
#
# Default session config; this is overridden/supplemented by policy rules and named 
# session configs.
#  
 config default-session-config
 
#
# By default anchor media and terminate calls where there has been no media activity 
# for the specified period.
#
  config media
   set anchor enabled
   config nat-traversal
    set symmetricRTP true
   return
   set inactivity-timeout enabled "0 days 00:01:00"
   set rtp-stats enabled
  return
 
#
# We'll allow endpoints to use media encryption if they want.  reuse-key ensures 
# that the key is not renegotiated when a re-INVITE is received.  Chrome uses SHA1-80,
# so we'll disabled SHA1-32.
#
 config in-encryption
   set mode allow
   set type multiple
   set priority-AES-128-CM-HMAC-SHA1-32 0
   set priority-AES-128-CM-HMAC-SHA1-80 1
   set reuse-key enabled
   set encryption-preferences 1 DTLS
   set encryption-preferences 2 RFC_3711
  return
  config out-encryption
   set mode allow
   set type multiple
   set reuse-key enabled
   set encryption-preferences 1 DTLS
   set encryption-preferences 2 RFC_3711
  return
 
#
# The only video codec supported by Chrome is VP8, so we'll get rid of anything else.   
#
  config media-type
   set allowed-media-types video VP8
   set blocked-media-types video any
  return
 
#
# Minimizes the risk of Chrome and other endpoints choking on SDP attributes they don't understand.  
# Pass SDP attributes unchanged.
# 
  config sdp-regeneration
   set origin pass
   set add-rtpmaps enabled
   set pass-attribute candidate
   set pass-attribute ice-pwd
   set pass-attribute ice-ufrag
   set pass-attribute rtcp
   set pass-attribute rtcp-mux
   set pass-attribute ssrc
   set pass-attribute remote-candidates
   set pass-attribute fingerprint
   set pass-attribute rtcp-fb
   set pass-attribute wsc-session-id
  return
 
#
# We'll let calls in by default.
#
  config sip-directive
   set directive allow
  return
 
#
# Enables call log for debugging purposes.  
#
  config log-alert
  return
 
#
# Makes sure we are using the RTP profile required by WebRTC.
#
  config header-settings
   config altered-body 1
    set altered-body "(.*)RTP/SAVP (.*)" "\1RTP/SAVPF \2" custom
   return
  return
 
#
# 3PCC is not just third party call control, it's the whole SIP state machine.
# Note that setting always-apply-req-uri-spec to disabled means we do the right 
# thing when the request URI is changed during a call.  
#
  config third-party-call-control
   set admin enabled
   set handle-refer-locally disabled
   set always-apply-req-uri-spec disabled
   set terminate-reinvite-locally enabled
  return
 
#
# The event-settings are required for the media control API.
#
  config event-settings
   set channel /wsc/agent/%$call.request-id%
   set named-variable-entry to
   set include-media-content enabled
  return
 
#
# In some cases, SSRC in SDP can cause trouble, so we'll strip it out, 
# and add it in elsewhere if we need it.  
#
  config in-sdp-attribute-settings
   set ssrc-in-sdp strip
  return
  config out-sdp-attribute-settings
   set ssrc-in-sdp strip
  return
 return
 
#
# DTLS settings.
# 
 config tls
  config default-dtls-settings
   set dtls-cookie-exchange disabled
  return
 return
 
 config static-stack-settings
 
#
# Set the maximum number of concurrent sessions.
#
  set max-number-of-sessions 100000
 
#
# So we don't have to worry about matching host names in the location cache.
#   
  set location-lookup-pattern user-only
 return
 
#
# Contains specific session configurations that are set in Signaling Engine configurations 
# to be sent to Media Engine depending on the type of call
#
 config session-config-pool
 
#
# WebRTC to SIP call. Inbound leg ICE and encryption enabled.
# 
  config entry web-to-sip
   config in-encryption
    set mode require
    set type multiple
    set priority-AES-128-CM-HMAC-SHA1-32 0
    set priority-AES-128-CM-HMAC-SHA1-80 1
    set reuse-key enabled
    set encryption-preferences 1 DTLS
    set encryption-preferences 2 RFC_3711
   return
   config header-settings
    config altered-body 1
     set altered-body "(.*)RTP/SAVP (.*)" "\1RTP/SAVPF \2" custom
    return
    config altered-body 33
     set altered-body "(.*)a=rtcp-fb(.*)nack pli\r\n(.*)" "\1a=rtcp-fb:* ccm fir \ba=rtcp-fb:* nack\r\n\b\3" custom
    return
   return
   config in-ice-settings
    set admin enabled
   return
   config in-sdp-attribute-settings
    set ssrc-in-sdp strip
    set patch-audio-group enabled
   return
  return
 
#
# SIP to WebRTC call. Outbound leg ICE and encryption enabled.
#
  config entry sip-to-web
   config out-encryption
    set mode require
    set type multiple
    set reuse-key enabled
    set encryption-preferences 1 DTLS
    set encryption-preferences 2 RFC_3711
   return
   config out-media-normalization
    config codec-payload-type-bindings
     set binding telephone-event 101
    return
   return
   config out-ice-settings
    set admin enabled
    set suppress-re-invites enabled
   return
  return
 
#
# WebRTC to WebRTC call. Inbound and outbound ICE and encryption; enable rtcp-mux for rtp and
# rtcp to use the same port.
#
  config entry web-to-web-anchored
   config in-encryption
    set mode require
    set type multiple
    set priority-AES-128-CM-HMAC-SHA1-32 0
    set priority-AES-128-CM-HMAC-SHA1-80 1
    set reuse-key enabled
    set encryption-preferences 1 DTLS
    set encryption-preferences 2 RFC_3711
   return
   config out-encryption
    set mode require
    set type multiple
    set reuse-key enabled
    set encryption-preferences 1 DTLS
    set encryption-preferences 2 RFC_3711
   return
   config sdp-regeneration
    set origin pass
    set add-rtpmaps enabled
    set pass-attribute candidate
    set pass-attribute ice-ufrag
    set pass-attribute ice-pwd
    set pass-attribute rtcp
    set pass-attribute rtcp-mux
    set pass-attribute rtcp-fb
    set pass-attribute ssrc
    set pass-attribute remote-candidates
    set pass-attribute fingerprint
    set pass-attribute wsc-session-id
   return
   config in-ice-settings
    set admin enabled
   return
   config out-ice-settings
    set admin enabled
    set suppress-re-invites enabled
   return
   config in-sdp-attribute-settings
    set rtcp-mux enabled
   return
   config out-sdp-attribute-settings
    set rtcp-mux enabled
   return
  return
 
#
# WebRTC to SIP call. Media conditionally anchored; release if possible. Inbound leg ICE and
# encryption enabled; augmented ICE enabled, and rtcp mux disabled.
#
  config entry web-to-web-anchor-conditional
   config media
    set anchor enabled
    config nat-traversal
     set symmetricRTP true
    return
    set inactivity-timeout enabled "0 days 00:01:00"
    set rtp-stats enabled
    set augmented-ice enabled
   return
   config in-encryption
    set mode pass-thru
    set type multiple
    set reuse-key enabled
    set encryption-preferences 1 DTLS
    set encryption-preferences 2 RFC_3711
   return
   config out-encryption
    set mode pass-thru
    set type multiple
    set reuse-key enabled
    set encryption-preferences 1 DTLS
    set encryption-preferences 2 RFC_3711
   return
   config sdp-regeneration
    set origin pass
    set add-rtpmaps enabled
    set pass-attribute candidate
    set pass-attribute ice-ufrag
    set pass-attribute ice-pwd
    set pass-attribute rtcp
    set pass-attribute rtcp-mux
    set pass-attribute rtcp-fb
    set pass-attribute ssrc
    set pass-attribute remote-candidates
    set pass-attribute fingerprint
    set pass-attribute wsc-session-id
   return
   config in-ice-settings
    set admin enabled
    set delay-stun-requests enabled
   return
   config out-ice-settings
    set admin enabled
    set suppress-re-invites enabled
    set delay-stun-requests enabled
   return
   config in-sdp-attribute-settings
   return
   config out-sdp-attribute-settings
   return
  return
 return
 
#
# Dial plan.  Note the special type of peer server, 'web', for event-based WebRTC endpoints
# signaled via the media control API.
# 
 config dial-plan
  config route WebRTC
   config condition-list
    set to-uri-condition scheme match webrtc
   return
   set priority 80
   set location-match-preferred no
   set peer web
   set request-uri-match condition-list
  return
 return
return
 
config external-services
return
 
#
# Display Oracle Communications WebRTC Session Controller Media Engine brand in the 
# web management UI.
#
config preferences
 config gui-preferences
  set show-unlicensed-features false
  set channel webrtc-session-controller-media-engine
  set display-home-page-links disabled
  set display-footer disabled
 return
return
 
#
# Don't forget to configure users here.
#
config access
return
 
config features
return

Next Steps

After you install Media Engine, you must complete Media Engine post-installation tasks. See "WebRTC Session Controller Media Engine Post-Installation Tasks" for instructions.