Selective Updates

Selective updates are commands that enable the system to selectively update a MATRIXX Data Container (MDC) as it is processed. They perform basic transformations on the MDCs.

Selective Update Locations

Customize behavior in the locations described in Processing Locations. For example, the Charging Server input interface identifies the normalization_task in the Charging Server. Usually, any MDC that is read by a task can be modified by a selective update at the specified location. Tasks receive many types of MDCs. For example, tasks in the Charging Server can receive Diameter-related MDCs, CAMEL-related MDCs, ActiveMQ-related MDCs, and many other MDCs.
Important: A task can process many types of MDCs.
Table 1. Processing Locations
Location String Service Name / Task Name Description
Charging Server input interface ChargingServer:Input charging_server / normalization_task Operates on an MDC received from a gateway before the Charging Server processes the MDC.
Charging Server to Transaction Server interface ChargingServer:ToTransactionServer charging_server / enrichment_task Operates on an MDC that has been processed by the Charging Server before it is sent to the Transaction Server. See the discussion below about enrichment tasks for more information.
Charging Server pricing to outbound TCAP interface ChargingServer:ToTcapOutbound charging_server / enrichment_task Operates on an MtxTcapMsg MDC after attributes have been added, but before the outbound TCAP messages are constructed. See the discussion below about enrichment tasks for more information.
Charging Server output interface ChargingServer:Output charging_server / response_task Operates on an MDC that is being sent to a gateway.
Charging Server Camel to rating interface ChargingServer:CamelToRating charging_server / charging_task Operates on an MDC sent from the FromTcapTask to the ChargingTask.
Diameter Gateway input interface DiameterGateway:Input diameter_gateway / from_diameter_task Operates on an MDC created from a Diameter packet received from the network.
Diameter Gateway output interface DiameterGateway:Output diameter_gateway / to_diameter_task Operates on an MDC just before it is converted to a Diameter packet and then sent to the network.
MDC Gateway input interface MdcGateway:Input mdc_gateway / from_network_task Operates on an MDC created from a packet received from the network.
MDC Gateway output interface MdcGateway:Output mdc_gateway / to_network_task Operates on an MDC just before it is converted to a packet and then sent to the network.
CDR Converter input interface CdrConverter:Output cdr_converter / cdr_converter_driver_task Operates on an MDC that has been received by the CDR Converter.
CDR Converter dispatcher output interface CdrConverter:Input cdr_converter / cdr_dispatcher_sender_task Operates on an MDC after it has been processed by the CDR Converter.
CDR Converter Diameter input interface CdrConverter:Diameter:Input cdr_converter / from_diameter_task Operates on an MDC from a Diameter socket to the CDR Converter.
CDR Converter Diameter output interface CdrConverter:Diameter:Output cdr_converter / to_diameter_task Operates on an MDC from the CDR Converter to a Diameter socket.
ActiveMQ ActiveMQ Gateway Diameter input interface ActiveMQGateway:Input mdc_gateway / from_activemq_task Operates on an MDC from an ActiveMQ connection to the pod's ActiveMQ Gateway.
ActiveMQ Gateway Diameter output interface ActiveMQGateway:Output mdc_gateway / to_activemq_task Operates on an MDC from the pod's ActiveMQ Gateway to an ActiveMQ server.
CAMEL Application Part (CAP) SCCP input interface CamelGateway:SCCP:Input camel_gateway / from_sccp_task Operates on an MDC from an SCCP socket to CAMEL Gateway.
CAMEL Application Part (CAP) SCCP output interface CamelGateway:SCCP:Output camel_gateway / to_sccp_task Operates on an MDC from the CAMEL Gateway to an SCCP socket.
Network Enabler sender interface NetworkEnabler:Sender network_enabler / sender_task In case of a domain failure, operates on the decoded M3UA message in a MtxTcapMsg MDC.
Network Enabler domain lookup interface NetworkEnabler:Domain:Lookup network_enabler / domain_lookup_task In case of a domain failure, operates on the decoded M3UA message in a MtxTcapMsg MDC.
Network Enabler incoming interface NetworkEnabler:Incoming network_enabler / external_network_task In case of a domain failure, operates on the decoded M3UA message in a MtxTcapMsg MDC.

Selective updates handle MDCs from Diameter Gateway, MDC Gateway, and CAMEL Gateway. A common location for a selective update is between Diameter Gateway and the Charging Server. For example, you can define a selective update to add a default value to an optional AVP, such as 3GPP-SGSN-MCC-MNC. For a complete description of AVP to MDC data mapping, see MATRIXX Diameter Integration.

Each selective update element has an ID that identifies it in the system and determines the order in which all elements in the configuration are processed—from the smallest value to the highest value. This ensures they are added to the mtx_config.xml file in the order in which they should be processed.
Note: IDs 500-999 are reserved for MATRIXX and must not be assigned by customers.

Selective Update Sequences

The Diameter Gateway sequence of execution is:
  • Receive
    1. Receive a Diameter packet.
    2. diameter_gateway:from_diameter_task
    3. charging_server:normalization_task
    4. charging_server:from_tcap_task
    5. charging_server:charging_task
    6. charging_server:enrichment_task
    7. transaction_server
  • Send
    1. transaction_server
    2. charging_server:response_task
    3. diameter_gateway:to_diameter_task
    4. Send a Diameter packet.
The CAMEL Gateway sequence of execution is:
  • Receive
    1. Receive a packet.
    2. camel_gateway:from_sccp_task
    3. charging_server:normalization_task
    4. charging_server:from_tcap_task
    5. charging_server:charging_task
    6. charging_server:enrichment_task
    7. transaction_server
  • Send
    1. transaction_server
    2. charging_server:response_task
    3. camel_gateway:to_sccp_task
    4. Send a packet.
The MDC Gateway sequence of execution is:
  • Receive
    1. Receive a packet.
    2. mdc_gateway:from_network_task
    3. charging_server:normalization_task
    4. charging_server:from_tcap_task
    5. charging_server:charging_task
    6. charging_server:enrichment_task
    7. transaction_server
  • Send
    1. transaction_server
    2. charging_server:response_task
    3. mdc_gateway:to_network_task
    4. Send a packet.
The ActiveMQ Gateway sequence of execution is:
  • Receive
    1. Receive a packet.
    2. mdc_gateway:from_activemq_task
    3. mdc_gateway:from_network_task
    4. charging_server:normalization_task
    5. charging_server:from_tcap_task
    6. charging_server:charging_task
    7. charging_server:enrichment_task
    8. transaction_server
  • Send
    1. transaction_server
    2. charging_server:response_task
    3. mdc_gateway:to_network_task
    4. mdc_gateway:to_activemq_task
    5. Send a packet.

The Network Enabler sequence of execution depends on whether sub-domain routing is enabled. For information, see the discussion about configuring sub-domain routing.

When sub-domain routing is used, the sequence of execution is:
  • Receive
    1. external_network_task
    2. domain_lookup_task
  • Send
    1. domain_lookup_task
    2. sender_task
When sub-domain routing is not used, the sequence of execution is:
  • Receive
    • external_network_task
  • Send
    • internal_network_task
Note: You use selective updates on Network Enabler interfaces only for configuring the fallback processing action to take in case of domain failure. For more information, see the discussion about Network Enabler fallback processing in MATRIXX Call Control Framework Integration.

Enrichment Tasks

An enrichment task occurs when a selective update is configured at either the "Charging Server to Transaction Server interface" or "Charging Server pricing to outbound TCAP interface" or both locations.

The sequence of execution for the enrichment_task is:
  1. Run the Charging Server to Transaction Server selective updates.
  2. Add the attributes to the message.
  3. If this is an MtxTcapMsg, run the Charging Server pricing to outbound TCAP selective updates.
  4. Send the message to the transaction server.

Selective Update Elements

You define selective update elements by running the create_config.py script, which adds each element to the necessary location in the mtx_config.xml file.

A selective update element specifies an MDC name, one or more selection key clauses, one or more optional masks, and the operations to perform if all the clauses find a match. Selective Update Elements describes the selective update elements.
Table 2. Selective Update Elements
Element Description
Container Name The name of the MDC containing the targeted data.
Selection Key One or more clauses that define the operation to perform.
Optional Masks A mask added to a method as an and operation and the mask result is used in the operation. Methods are defined in the selection key.
Operations Operations are listed after all selection key clauses and determine what to do with the result of the action and method: copy the MDC field value, set it, modify it, or delete it.

For information about testing selective updates on a stopped engine, see the discussion about testing selective updates.