These services differ from other example services as they do not use the Example RA to trigger them. Instead the OpenCloud Scenario Simulator with the Diameter Scenario Pack is used. To learn how to run the client and server simulation scenarios see the Diameter Scenario Pack documentation.

The Mediation service uses two resource adaptors (CCA and Ro) to mediate between a client and server implementing those interfaces. It maps credit control requests from one interface to the other, and maps answers in the reverse direction. Since CCA and Ro are similar interfaces, the service mostly copies the AVPs 1-to-1, with the following exceptions:

  • It copies Service-Identifier, Requested-Service-Unit, and Used-Service-Unit from the Diameter CCA request message to the Diameter Ro request’s first Multiple-Services-Credit-Control AVP.

  • It applies reverse transformation for Ro answers, copying Granted-Service-Unit, Final-Unit-Indication, and Validity-Time from the Multiple-Services-Credit-Control AVP to the CCA answer message.

  • It silently drops AVPs that the outgoing interface does not support, and ignores all extension AVPs.

Note The Diameter Scenario Pack contains example scenarios for use with this Mediation service.

Credit Control Forward Service

Warning Diameter CC Forward requires a production version of Rhino as demonstrating fault-tolerance requires at least a two node cluster.

The Diameter CC Forward service is an example of a replicated service that makes use of Diameter RAs with session replication enabled (fault-tolerant mode). The Diameter CC Forward service forwards incoming CCA and/or Ro messages to configured servers. This service can be used with any CCA/Ro client supporting session fail-over and generating credit control requests and an OCS server responding to those requests. Effectively Diameter CC Forward example service acts as a proxy between the two.

Fail-over of active charging session can be invoked in two ways:

  • administratively disabling Diameter RA serving the session with reassignment of activities to another node in the cluster,

  • killing the Rhino node that is serving the session.

Example test environment using OpenCloud tools

A single machine can be used to host the entire test environment. To avoid TCP/IP port conflicts multiple IPv4 network addresses from the 127.0.0.0/8 loopback subnet are used.

The OpenCloud Scenario Simulator with the Diameter Scenario Pack can be used to simulate client in this scenario but due to lack of session fail-over support in current version of Diameter Scenario Pack ( 2.5.0.1 ) this is not a straightforward process. The server can be simulated using Online Charging System (OCS) Simulator. To make up for lack of session fail-over support in the client another Rhino cluster with Diameter CC Forward service is used. This additional Rhino instance acts as a proxy server between OpenCloud Scenario Simulator and Rhino cluster used for testing the fail-over behaviour.

Example fail-over testing environment
Figure 1. Example fail-over testing environment

There are two separate Rhino clusters on the diagram. The first consists of nodes 101 and 102, while nodes 201 and 202 constitute the second. The first - Front cluster is used to deliver client session fail-over support, while the second - Back cluster is used to test the RA and example service behaviour in node failure scenario.

Prerequisites
  • Production Rhino with a valid license (including the license for Diameter RA)

  • Scenario Simulator with Diameter Scenario Pack (recent Scenario Simulator Package versions are bundled with Diameter Scenario Pack)

Environment setup:
  1. Install two separate Rhino clusters, remember to select different cluster ids and ports for both clusters, for details refer to Rhino Documentation.

  2. Create two nodes in each of the clusters (node 101, 102 in the Front cluster and nodes 201, 202 in the Back cluster).

  3. Unpack the Diameter Resource Adaptors package into each Rhino Cluster installation directory.

  4. Change the profile.import.file in example service configuration file examples/ccforward/build.properties to:

    • DiameterConfigFront.xml for the Front cluster

    • DiameterConfigBack.xml for the Back cluster

  5. Change the diameter configuration for OCS simulator to match the Back cluster configuration. That is, in file simulators/ocs-simulator/config/DiameterConfig.xml change the value of listenAddress element in server profile to 127.3.0.1.

  6. Install and configure OpenCloud Scenario Simulator by following instructions in examples/ccforward/diameter-examples/README-ccforward-example.txt.

  7. Start the reconfigured OCS simulator using script simulators/ocs-simulator/ro-simulator.sh.

  8. Start nodes of the Back cluster and install the Diameter CC Forward service (run ant in Diameter Resource Adaptors package examples/ccforward of the Back Rhino Cluster).

  9. Start nodes of the Front cluster and install the Diameter CC Forward service (run ant in Diameter Resource Adaptors package examples/ccforward of the Front Rhino Cluster).

  10. Optionally deactivate the creditcontrol-0 Diameter CCA entity, as the example scenario distributed with Scenario Simulator uses the Diameter Ro Application.

  11. Start the Scenario Simulator (refer to examples/ccforward/diameter-examples/README-ccforward-example.txt) and run one of the loaded scenarios.

After that you can experiment with session fail-over by inducing session adoption in different session states through customizing timeouts and delays between messages in the example scenarios used in Scenario Simulator. Note that routing table configuration of the Front cluster is such that node 202 of the Back cluster is always preferred when reachable.

Previous page