Generating RTCP

The Oracle® Enterprise Session Border Controller is capable of creating and sending RTCP reports using Transcoding resources. This produces RFC 3550 compliant RTCP report information on media traffic for active sessions. The system calculates these statistics using measurements on traffic between a target end station and itself. With respect to a given media session, the system does not produce end-to-end reports. In addition, the system can drop RTCP reports generated upstream so target stations don't receive RTCP reports that are redundant to its own.

RTCP reporting generated at the Oracle® Enterprise Session Border Controller provides the following benefits:

  • Provide RTCP reporting to core applications that may otherwise not be receiving this data.
  • Provide RTCP reporting to access elements, including mobile client applications, that may otherwise not be receiving this data.
  • Generate valid RTCP data for transcoded calls.
  • Generate RTCP data from the Oracle® Enterprise Session Border Controller's perspective.
  • Applicable RTCP reports continue to be sent when a call is muted or placed on-hold.

The user enables and specifies the type of calls on which the system generates RTCP reports via configuration. Applicable configuration includes creating rtcp-policy objects and applying them to realms. These objects specify whether to issue reports for transcoded or all calls traversing the realm. There is also a configuration to disable the policy.

How it Works

The Oracle® Enterprise Session Border Controller generates RTCP by sending RTCP sender report information to the media termination point within 5 seconds after an RTP session starts, per RFC 3550. All RTCP messaging includes Sender Reports and, if the end station is receiving media, statistics corresponding to the received media. This messaging persists, within 5-second windows for the duration of the session. The system sends a goodbye message no more than 20 ms after the call is complete. The network administrator should note this timing and ensure that network NAT configuration does not block these final messages. Depending on call type and configuration, the system listens for and drops RTCP reports generated upstream. RTCP reports generated prior to transcoding provide unreliable information.

All reports include the source description with a CNAME string. The CNAME string is the IP address and port number used for the corresponding media stream's RTCP in the format:

<UDP Local Port Num for RTCP>@<IP address of the applicable steering pool>

The system sources this data from the applicable steering pool configuration.

Functional Matrix - Configuration vs. Call Type

RTCP generation and any corresponding RTCP blocking is a function of the type of call (transcoded or non-transcoded), and configuration. Applicable rtcp-policy configuration includes specifying whether the system should generate RTCP for all calls, or for transcoded calls only.

The behavior is as follows:
  • For Non-Transcoded Calls—Based on the RTCP-generation configuration:
    • xcoded-calls-only—No RTCP generated; existing RTCP passes
    • all-calls—RTCP generated; existing RTCP blocked
  • For Transcoded Calls—RTCP generated; existing RTCP blocked for both configurations
  • The RTCP generation setting includes a disabled setting (none) that is set by default. This specifies that the policy never generate RTCP. Realms configured with these disabled policy settings cause the system to pass existing RTCP for non-transcoded calls and block existing RTCP for transcoded calls.

When RTCP generation is enabled for non-transcoded calls using the all-calls setting, these calls must negotiate a codec that the Oracle® Enterprise Session Border Controller can transcode. This ensures that the call utilizes the system's transcoding resources, which can then generate the RTCP.

Note:

A realm's rtcp-policy takes precedence over its block-rtcp setting. Specifically, if block-rtcp is disabled and the rtcp-policy is set to block, the system blocks existing RTCP.

RTCP Generation Platform Support

RTCP Generation requires transcoding resources as the call would be treated as a transcoding call. For transcoding resources, the top codec in the offer requires a license in virtual SBC. The following platforms require DSP hardware:

  • Acme Packet 1100
  • Acme Packet 3900
  • Acme Packet 3950
  • Acme Packet 4600
  • Acme Packet 4900
  • Acme Packet 6300
  • Acme Packet 6350

Virtual SBCs (vSBCs) require one or more transcoding cores in their startup configuration.

When generating RTCP for a non-transcoded call using DSPs, the system processes the call as a transcoded, but uses a "null" transcoding methodology that sets the input codec equal to the output codec.

The system provides alarms to help you verify the status of the hardware. Refer to "Transcoding Troubleshooting and Maintenance" for more information about transcoding hardware status. Refer to the Maintenance and Troubleshooting Guide for information about interface hardware status.

Use the show xcode xlist command to verify the presence of transcoding hardware with DSP modules.

Configuring RTCP Generation

The procedure below provides the steps needed to configure RTCP generation on the Oracle® Enterprise Session Border Controller.

Before proceeding, make sure you know whether your platform supports transcoding. As described in the section on RTCP generation, this can affect your configuration and operational results.
To have your Oracle® Enterprise Session Border Controller generate RTCP traffic statistics reporting:
  1. In Superuser mode, use the following command sequence to access the rtcp-policy element.
    ORACLE# configure terminal
    ORACLE(configure)# media-manager
    ORACLE(media-manager)# rtcp-policy

    From this point, you can configure a new RTCP policy or select an existing policy for editing.

  2. name—Name your policy for use when applying it to a realm-config.
    ORACLE(rtcp-policy)# name report-allcalls
  3. rtcp-generate—Enter the desired setting to generate RTCP. The effect of these settings is dependent on the platform and the presence of specific hardware on that platform. See the section on Generating RTCP in the ACLI Configuration Guide for these details.
    • none—Disables this policy.
    • all-xcoded-calls—The system generates RTCP report information only for the transcoded calls that pass through the realm.
    • all-calls—The system generates RTCP report information for all calls that pass through the realm.
    ORACLE(rtcp-policy)# rtcp-generate all-calls
  4. Type done and exit to retain your configuration.
  5. Access the realm to which you want to apply this rtcp-policy.
    ORACLE(media-manager)# realm-config
    ORACLE(realm-config)# select
  6. Apply the rtcp-policy to your realm.
    ORACLE(realm-config)# rtcp-policy report-allcalls
  7. Type done and exit configuration mode. Save and activate your configuration.

Obtaining System Information about RTCP Generation

The Oracle® Enterprise Session Border Controller provides information about RTCP report generation within log files.

The log.mbcd file, when configured to capture at the DEBUG level, includes system messages related to invoking and firing rtcp-policy rules.

An example of applicable log information is provided below.

[XC] NatFlow::check_transcoding()
[XC]  SessionSetRtcpPorts for A: src=10001 dest=20001
[XC] NatFlow::check_transcoding() SessionSetRtcpOptions(A):
[XC]  RtcpPolicy "my_rtcp_policy"; rtcp-generate set to: RTCP_GEN_MODE_ALL_CALLS
[XC]  Will generate RTCP with CNAME=192.160.1.100:10001
[XC] NatFlow::check_transcoding()
[XC]  SessionSetRtcpPorts for B: src=10001 dest=20001
[XC] NatFlow::check_transcoding() SessionSetRtcpOptions(B):
[XC]  RtcpPolicy "my_rtcp_policy"; rtcp-generate set to: RTCP_GEN_MODE_ALL_CALLS
[XC]  Will generate RTCP with CNAME=172.16.1.100:10101

Error and non-error system messages related to RTCP generation can be found in log.sipd, log.mbcd, and log.xserv.

Forced RTCP Receiver Report Generation

When the Oracle® Enterprise Session Border Controller (ESBC) generates a Real-Time Control Protocol (RTCP) Sender Report using Digital Signalling Processors (DSP)s, the report includes blocks for both sender and receiver statistics in the same report per RFC 3550. When you want to generate a separate RTCP Receiver Report, for example to encapsulate the receiver statistics differently, add the xcode-gratuitous-rtcp-report-generation option in the media-manager configuration. After you add the RTCP Receiver Report generation option and reboot the ESBC, the system runs RTCP Receiver Reports for all media sessions that generate RTCP from DSPs.

Only systems with transcoding resources can support RTCP Receiver Reports.

The ESBC can send RTCP sender reports and receiver reports:
  • for media streams.
  • for media streams with IPv6 Media Bypass OFF.
  • when the end point places a call on hold.
  • when the system plays music on hold.
  • for every secure call for every media stream the ESBC receives and sends using TLS and SRTP.
  • for every secure call for every media stream the ESBC receives and sends using TLS and SRTP with IPv6 Media Bypass OFF.

You can configure xcode-gratuitous-rtcp-report-generation from the ACLI and the Web GUI.

Generate an RTCP Receiver Report

When you want to generate a Real-Time Transport Control Protocol (RTCP) Receiver Report separately from the default Sender-Receiver Report (RFC 3550), for example to encapsulate the receiver statistics differently, add the xcode-gratuitous-rtcp-report-generation option in the media-manager configuration. After you add the option and reboot the system, the ESBC runs RTCP Receiver Reports for all media sessions that generate RTCP from DSPs.

When you add the xcode-gratuitous-rtcp-report-generation option, be sure to type the + character before the option. The + character appends the new option to the realm configuration's options list. Without the + character, the system overwrites any previously configured options.

  1. Access the media-manager-config configuration element.
    ORACLE# configure terminal
    ORACLE(configure)# media-manager
    ORACLE(media-manager)# media-manager
    ORACLE(media-manager-config)# 
  2. Type select, and press Enter.
    The system displays the (media-manager-config)# prompt.
  3. Type options, insert a space, type the + character, and type xcode-gratuitous-rtcp-report-generation.
    ORACLE (media-manager-config)# options +xcode-gratuitous-rtcp-report-generation
  4. Press Enter.
  5. Type done to save your configuration.
  6. Activate the configuration.
  7. Reboot the system.