Normalizer Chaining

You can configure a normalizer template to copy the field value determined during normalizations to another MATRIXX Data Container (MDC) field. The MDC field can then be used during subscriber usage rating to apply policies and pricing.

This mapping functionality, called normalizer chaining, allows you to change a field value in the incoming network message from one data type to another data type so normalizations can be performed on the transformed data type. For example, using normalizer chaining, you could set up rating based on the mobile country code (MCC) and mobile network code (MNC) tuple that is associated with a phone call even if the network message provides an IP address instead of the MCC/MNC code.

In addition, during rating, a temporary MtxChrgMsgWorkspace MDC is created to process a message and is recreated each time the message is retried. The MtxChrgMsgWorkspace MDC can be customized and used to store the results of normalizers. The fields from the customized MDC can be used for normalizer chaining and event field mapping.

Normalizer chaining is restricted to the following containers:
  • MtxMsg
  • MtxMultiServiceData
  • MtxChargingSessionExtension
  • MtxPolicySessionExtension
  • MtxChrgMsgWorkspace

To implement normalizer chaining, pricing administrators create normalizer template-instance pairs. In the example described here, there are two normalizer template-instance pairs—the first pair sets up the mappings from the source field to the target field and the second pair uses the target field value to determine which pricing to apply.

Assume that you can determine the IP address from the SGSN-Address AVP in the network message and you want to map it to the carrier name and the MCC/MNC code. The following example provides an overview of how to create the normalizer chaining to enable rating based on the MCC/MNC code.

  1. Define two custom fields in MtxDiamRoMsg or MtxChrgMsgWorkspace to hold the carrier name and the MCC/MNC code. Name the fields Carrier and MccMncToUse. See MATRIXX Installation and Upgrade for information about extending the MtxDiamRoMsg container.
  2. Define an IPv4 Address Match normalizer template that maps the normalizer result name field to the MtxDiamRoMsg or MtxChrgMsgWorkspace custom Carrier field and maps the resulting description to the MtxDiamRoMsg or MtxChrgMsgWorkspace custom MccMncToUse field. See the discussion about normalizer templates in My MATRIXX Help for information about defining the normalizer template and configuring the result field mappings.
  3. Create an instance of the new normalizer. Example IPv4 Address Match Normalizer Template shows a sample configuration.
    Table 1. Example IPv4 Address Match Normalizer Template
    Name Description Value
    AT&T 310089 100.123.111.10/24
    Spring 310111 100.124.82.0/26
    T-Mobile 310222 100.193.122.0/28

    In this configuration, the Name holds the carrier name and the Description holds the MCC/MNC code. The Value is compared against the input MDC to find a match.

  4. Use the new normalizer in a usage rate table. When that rate table is evaluated by the rating engine, the normalizer is evaluated.
    Important: Chaining only copies the matching normalizer entry Name and Description values if the target MDC fields are not already set. Chaining never overwrites an existing MDC field. This means that chaining occurs the first time, and only the first time, a normalizer is evaluated. If the target field was set previously (for example, in a Diameter Dictionary mapping or a selective update), chaining does not occur. If the target field was not set previously, chaining occurs regardless of the outcome of the rate table (skip, deny, or rate). If the description field is blank, chaining still occurs, and the target MDC field is an empty string.

Chained values are available for rating immediately after the normalizer is evaluated. You can configure multiple normalizers in the same rate table that chain to different MDC fields with a rate table that has only one row with a skip formula so that the chained values can be used in subsequent rate tables.

To set up the data mapping, use the Result information in the first normalizer template.

For more information about Diameter AVPs, see MATRIXX Diameter Integration.

Limitations

Do not use normalizer chaining in the following scenarios:
  • When saving the result value of a normalizer to an MDC field that has already been set.
  • In any environment that supports rating across Diameter Gy/Ro triggers (for example, configuring your pricing to support a scenario where MCCs and MNCs change within the same session).

Whenever possible, data modify actions should be used in place of normalizer chaining. For example, data modify actions can be used to save intermittent data and result values from normalizers to a specified MDC field. It is recommended that you use data modify actions instead of normalizer chaining in releases 5270 and onward. For more information, see the discussion about data modify actions in My MATRIXX Help.