Skip Headers
Oracle® Communications WebRTC Session Controller System Administrator's Guide
Release 7.0

E40973-01
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

5 Configuring WebRTC Session Controller Diameter Rx to PCRF Integration

This chapter describes how to integrate Oracle Communications WebRTC Session Controller with a Diameter Rx Policy Control and Charging Rules Function (PCRF) server.

About the WebRTC Session Controller Rx Interface

You can use WebRTC Session Controller to enforce media and Quality of Service (QoS) policies by integrating with a PCRF using the Diameter Rx interface. The Diameter Rx interface includes session information and access charging identifiers that both your PCRF and WebRTC Session Controller implementation can use to enforce QoS limits.

See the chapter on using policy data in messages and the appendix section on Diameter Rx Protocol support in WebRTC Session Controller Extension Developer's Guide for more information on supported commands, requests and answers.

Overview of Diameter Rx Protocol Configuration

WebRTC Session Controller domain includes support for the Diameter base protocol and the IMS Diameter Rx interface deployed to engine tier servers that act as Diameter client nodes. SIP Servlets deployed on the engines can use the available Diameter application to initiate requests for PCRF functions.

Installing the Diameter Domain Template

You enable Diameter Rx functionality by extending an existing WebRTC Session Controller domain with the appropriate WebRTC Session Controller Diameter domain template JAR file located in:

Middleware_Home/wlserver/common/templates/wls directory

where Middleware_Home is the directory where you installed WebRTC Session Controller.

Domain template files are provided for both basic domain and replicated domain configurations. Use the wsc_diameter_basicdomain.jar when updating basic domains and the wsc_diameter_replicateddomain.jar when updating replicated domains.

To upgrade an existing domain with the Diameter Domain template:

  1. Log on to the host where you installed WebRTC Session Controller.

  2. Navigate to the Middleware_Home/common/bin directory where Middleware_Home is the location where you installed WebRTC Session Controller.

  3. Start the Fusion Middleware Configuration Wizard with ./config.sh.

  4. On the Configuration Type wizard screen, select Update an existing domain.

  5. In the Domain Location, enter the path to the domain directory of the domain you are updating. Alternatively, click Browse to browse to and select the location.

  6. Click Next.

  7. In the Templates wizard screen, select Update Domain Using Custom Template.

  8. Click Browse.

  9. Browse to and select the Middleware_Home/wlserver/common/templates/wls directory.

  10. Click Open.

  11. Select either the wsc_diameter_basicdomain.jar or wsc_diameter_replicateddomain.jar template file corresponding to your domain.

  12. Click OK.

  13. Click Next.

  14. Adjust any properties in the Advance Configuration wizard screen if needed.

  15. Click Next.

  16. In the Configuration Summary wizard screen click Update.

  17. Click Next when the update is done.

  18. Click Finish to exit the wizard.

Creating TCP, TLS, and SCTP Network Channels for the Diameter Protocol

The WebRTC Session Controller Diameter implementation supports the Diameter protocol over the TCP, TLS, and SCTP transport protocols. (SCTP transport is provided with certain restrictions as described in "Configuring and Using SCTP for Diameter Messaging".)

To enable incoming Diameter connections on a server, you must configure a dedicated network channel of the appropriate protocol type:

  • diameter channels use TCP transport

  • diameters channels use TCP/TLS transport

  • diameter-sctp channels use TCP/SCTP transport.

Servers that use a TCP/TLS channel for Diameter (diameters channels) must also enable two-way SSL. WebRTC Session Controller may automatically upgrade Diameter TCP connections to use TLS as described in the Diameter specification (RFC 3558).

To configure a TCP or TCP/TLS channel for use with the Diameter provider:

  1. Access the Administration Console for the WebRTC Session Controller domain.

  2. Click Lock & Edit to obtain a configuration lock.

    If you are using a development domain, Lock & Edit is only present if you enable configuration locking. See "Enable and disable the domain configuration lock" in the Administration Console Online Help for more information.

  3. In the Domain Structure tree, expand Environment.

  4. Click Servers.

  5. In the Servers table, select the server to configure.

  6. Select the Protocols tab, and then select the Channels subtab to display the configured channels.

  7. Click New to configure a new channel.

  8. Fill in the fields of the Identity Properties page as follows:

    • Name: Enter an administrative name for this channel, such as "Diameter TCP/TLS Channel."

    • Protocol: Select diameter to support the TCP transport, diameters to support both TCP and TLS transports, or diameter-sctp to support TCP transport.

      Note:

      If a server configures at least one TLS channel, the server operates in TLS mode and will reject peer connections from nodes that do not support TLS (as indicated in their capabilities exchange).
  9. Click Next to continue.

  10. Fill in the fields of the Network Channel Addressing page as follows:

    • Listen Address: Enter the IP address or DNS name for this channel. On a multi-homed system, enter the exact IP address of the interface you want to configure, or a DNS name that maps to the exact IP address.

    • Listen Port: Enter the port number used to communication through this channel. Diameter nodes conventionally use port 3868 for incoming connections.

    • External Listen Address: The external IP address or DNS name for this channel.

    • External Listen Port: Re-enter the Listen Port value.

  11. Click Next to continue.

  12. Chose attributes in the Network Channel Properties page as follows:

    • Enabled: Select this attribute to ensure that the new channel accepts network traffic.

    • Tunneling Enabled: Un-check this attribute for Diameter channels.

    • HTTP Enabled for this Protocol: Un-check this attribute for Diameter channels.

    • Outbound Enabled: Select this attribute to ensure that the node can initiate Diameter messages using the channel.

  13. Click Next to continue.

  14. For diameters channels, select the following two attributes:

    • Two Way SSL Enabled: Two-way SSL is required for TLS transport.

    • Client Certificate Enforced: Select this attribute to honor available client certificates for secure communication.

  15. Click Finish to create the new channel.

  16. Select the name of the newly-created channel in the Network Channels table.

  17. Display the advanced configuration items for the newly-created channel by expanding the Advanced link.

  18. Change the Idle Connection Timeout value from the default (65 seconds) to a larger value that will ensure the Diameter connection remains consistently available.

    Note:

    If you do not change the default value, the Diameter connection will be dropped and recreated every 65 seconds with idle traffic.
  19. Click Save.

  20. Click Activate Changes.

Configuring Two-Way SSL for Diameter TLS Channels

Diameter channels that use TLS (diameters channels) require that you also enable two-way SSL, which is disabled by default. If you have not already configured Two-Way SSL, see "Configuring SSL" in Administering Security for Oracle WebLogic Server for more information.

Configuring and Using SCTP for Diameter Messaging

SCTP is a reliable, message-based transport protocol that is designed for use in telephony networks. SCTP provides several benefits over TCP:

  • SCTP preserves the internal structure of messages when transmitting data to an endpoint, whereas TCP transmits raw bytes that must be received in order.

  • SCTP supports multihoming, where each endpoint may have multiple IP addresses. The SCTP protocol can transparently failover to another IP address should a connection fail.

  • SCTP provides multistreaming capabilities, where multiple streams in a connection transmit data independently of one another.

WebRTC Session Controller supports SCTP for Diameter network traffic, with several limitations:

  • Only 1 stream per connection is currently supported.

  • Use SCTP only for Diameter network traffic; SIP traffic cannot use a configured SCTP channel.

  • TLS is not supported over SCTP.

SCTP channels can operate on either IPv4 or IPv6 networks. "Creating TCP, TLS, and SCTP Network Channels for the Diameter Protocol" describes how to create a SCTP channel. To enable multihoming capabilities for an existing SCTP channel, specify the IPv4 address 0.0.0.0 as the listen address for the channel (or use the :: address for IPv6 networks).

Configuring Diameter Nodes

The Diameter node configuration for WebRTC Session Controller engines is specified in the diameter.xml configuration file, which is located in the directory: Middleware_Home/user_projects/domains/domain_name/config/custom

Where Middleware_Home is the directory in which the WebRTC Session Controller software is installed (the installation program used to install WebRTC Session Controller refers to this as Middleware Home), and domain_name is the name of the Diameter domain.

To provide diameter services on an engine tier server, you must create a Diamter node configuration and target the configuration to an existing engine server instance.

Diameter node configurations are divided into several categories:

  • General configuration defines the host identity and realm for the node, and basic connection information and default routing behavior.

  • Application configuration defines the Diameter application(s) that run on the node, and any optional configuration parameters passed to those applications.

  • Peer configuration defines the other Diameter nodes with which this node operates.

  • Routes configuration defines realm-based routes that the node can use when resolving messages.

The sections that follow describe how to configure each aspect of a Diameter node.

Creating a New Node Configuration (General Node Configuration)

Follow these steps to create a Diameter node configuration and target it to an existing WebRTC Session Controller engine tier instance:

  1. Log in to the Administration Console for the WebRTC Session Controller domain you want to configure.

  2. Click Lock & Edit to obtain a configuration lock.

    If you are using a development domain, Lock & Edit is only present if you enable configuration locking. See "Enable and disable the domain configuration lock" in the Administration Console Online Help for more information.

  3. In the Domain Structure tree, select Diameter.

  4. Click New in the right pane to create a Diameter configuration.

  5. Fill in the fields of the Create a New Configuration page as described in Table 5-1, then click Finish.

    Table 5-1 Diameter Node General Configuration Properties

    Property Name Description

    Name

    Enter the administrative name for this Diameter node configuration.

    Host

    Enter the host identity of this Diameter node, or leave the field blank to automatically assign the host name of the target engine tier server as the Diameter node's host identity. The host identity may or may not match the DNS name.

    When configuring Diameter support for multiple Sh client nodes, it is best to omit the host element from the diameter.xml file. This omission enables you to deploy the same Diameter web Application to all servers in the engine tier cluster, and the host name is dynamically obtained for each server instance.

    Realm

    Enter the realm name for which this node has responsibility, or leave the field blank to use the domain name portion of the target engine tier server's fully-qualified host name (for example, host@oracle.com).

    You can run multiple Diameter nodes on a single host using different realms and listen port numbers.

    Note: An HSS, Application Server, and relay agents must all agree on a realm name or names. The realm name for the HSS and Application Server need not match.

    Address

    Enter the listen address for this Diameter node, using either the DNS name or IP address, or leave the field blank to use the host identity as the listen address.

    Note: The host identity may or may not match the DNS name of the Diameter node. Oracle recommends configuring the Address property with an explicit DNS name or IP address to avoid configuration errors.

    TLS

    Select this option if the Diameter node is configured with support for TLS (diameters network channels). This field advertises TLS capabilities when the node is interrogated by another Diameter node.

    Debug

    Select this option to enable debug message output. Debug messages are disabled by default.

    Dynamic Peers Allowed

    Select this option to allow dynamic discovery of Diameter peer nodes. Dynamic peer support is disabled by default. Oracle recommends enabling dynamic peers only when using the TLS transport, because no access control mechanism is available to restrict hosts from becoming peers.

    Peer Retry Delay

    Enter the amount of time, in seconds, this node waits before retrying a request to a Diameter peer. The default value is 30 seconds.

    Request Timeout

    Enter the amount of time, in milliseconds, this node waits for an answer message before timing out.

    Watchdog Timeout

    Enter the number of seconds this node uses for the value of the Diameter Tw watchdog timer interval.

    Targets

    Enter one or more target engine tier server names. The Diameter node configuration only applies to servers listed in this field.

    Default Route Action

    Specify an action type that describes the role of this Diameter node when using a default route. The value of this element can be one of the following:

    • none

    • local

    • relay

    • proxy

    • redirect

    Default Route Servers

    Specifies one or more target servers for the default route. Any server you include in this element must also be defined as a peer to this Diameter node, or dynamic peer support must be enabled.


  6. Click Finish.

  7. Click Activate Changes to apply the configuration to target servers.

After creating a general node configuration, the configuration name appears in the list of Diameter nodes. You can select the node to configure Diameter applications, peers, and routes, as described in the sections that follow.

Configuring Diameter Applications

Each Diameter node can deploy one or more applications. To configure Diameter Rx applications:

  1. Log in to the Administration Console for the WebRTC Session Controller domain you want to configure.

  2. Click Lock & Edit to obtain a configuration lock.

    If you are using a development domain, Lock & Edit is only present if you enable configuration locking. See "Enable and disable the domain configuration lock" in the Administration Console Online Help for more information.

  3. In the Domain Structure tree, select Diameter.

  4. In the Diameter Configurations table, select the name of a Diameter node configuration.

  5. Select the Applications tab.

  6. Click New to configure a new Diameter application, or select an existing application configuration from the table.

  7. Fill in the application properties as follows:

    • Application Name: Enter a name for the application configuration.

    • Class Name: Enter the classname of the application to deploy on this node.

    • Parameters: Enter optional parameters to pass to the application upon startup.

  8. Click Finish to create the new application configuration.

  9. Click Activate Changes to apply the configuration to the Diameter node.

Configuring the Rx Client Application

The WebRTC Session Controller Rx client application enables SIP Servlets to issue PCRF messages using the IMS Rx interface. To configure the Rx application, specify the class com.bea.wcp.diameter.charging.RxApplication.

See the chapter on using policy data in messages in WebRTC Session Controller Extension Developer's Guide for more information about using the Rx application API in deployed applications.

Configuring Peer Nodes

A Diameter node should define peer connection information for each other Diameter node in the realm, or enable dynamic peers in combination with TLS transport to allow peers to be recognized automatically.

To configure Diameter Peer Nodes:

  1. Log in to the Administration Console for the WebRTC Session Controller domain you want to configure.

  2. Click Lock & Edit to obtain a configuration lock.

    If you are using a development domain, Lock & Edit is only present if you enable configuration locking. See "Enable and disable the domain configuration lock" in the Administration Console Online Help for more information.

  3. In the Domain Structure tree, select Diameter.

  4. In the Diameter Configurations table, select the name of a Diameter node configuration you want to add a peer to.

  5. Select the Peers tab.

  6. Click New to define a new peer entry.

  7. Fill in the fields of the Create a New Peer page as follows:

    • Host: Enter the peer node's host identity.

    • Address: Enter the peer node's address (DNS name or IP address).

    • Port Number: Enter the listen port number of the peer node.

    • Protocol: Select the protocol used to communicate with the peer (TCP or SCTP).

      Note:

      WebRTC Session Controller attempts to connect to the peer using only the protocol you specify (TCP or SCTP). The other protocol is not used, even if a connection fails using the selected protocol. TCP is used as by default if you do not specify a protocol.
    • Watchdog: Indicate whether the peer supports the Diameter Tw watchdog timer interval.

  8. Click Finish to create the new peer entry.

  9. Click Activate Changes to apply the configuration.

Configuring Routes

Certain Diameter nodes, such as relays, should configure realm-based routes for use when resolving Diameter messages. You configure Diameter routes in the Administration Console.

To configure Diameter routes:

  1. Log in to the Administration Console for the WebRTC Session Controller domain you want to configure.

  2. Click Lock & Edit to obtain a configuration lock.

    If you are using a development domain, Lock & Edit is only present if you enable configuration locking. See "Enable and disable the domain configuration lock" in the Administration Console Online Help for more information.

  3. In the Domain Structure tree, select Diameter.

  4. In the Diameter Configurations table, select the name of a Diameter node you want to configure a route for.

  5. Select the Routes tab.

  6. Click New to configure a new Route.

  7. Fill in the fields of the Create a New Route page as follows:

    • Name: Enter an administrative name for the route.

    • Realm: Enter the target realm for this route.

    • Application ID: Enter the target Diameter application ID for this route.

    • Action: Select an action that this node performs when using the configured route. The action type may be one of: none, local, relay, proxy, or redirect.

    • Server Names: Enter the names of target servers that will use the route.

  8. Click Finish to create the new route entry.

  9. Click Activate Changes to apply the configuration.

Troubleshooting Diameter Configurations

SIP Servlets deployed on WebRTC Session Controller use the available Diameter applications to initiate requests for PCRF information. If a SIP Servlet performing these requests generates an error similar to:

Failed to dispatch Sip message to servlet ServletName
java.lang.IllegalArgumentException: No registered provider for protocol: Protocol

The message may indicate that you have not properly configured the associated Diameter application for the protocol. See "Configuring Diameter Applications" for more information.

If you experience problems connecting to a Diameter peer node, verify that you have configured the correct protocol for communicating with the peer in "Configuring Peer Nodes". Be aware that WebRTC Session Controller tries only the protocol you specify for the peer configuration (or TCP if you do not specify a protocol).