Extending MATRIXX Engine Functionality
You can extend MATRIXX Engine functionality to capture new subscriber-related data and then use the extended fields as a basis for pricing, rating, and policy decisions. You can also add new Diameter AVPs to capture information from the network and base rating and post-rating operations on this data.
To add new data to MATRIXX Engine, you run the create_config.py script to create a custom MATRIXX Data Container (MDC) based on the one you want to extend, and add fields to that private MDC. A custom MDC can be an extension of an existing MDC—system or custom—or one that is not based upon any MDC. An MDC that is based on another MDC inherits that MDC's data definitions. You cannot add fields to the system MDCs.
To add new AVPs to MATRIXX Engine schema, you must create a custom MDC that extends any of the MDCs that are defined for Diameter packets. The custom MDC is added to the Diameter Dictionary to be used when Diameter messages are sent between Diameter clients and the MATRIXX Engine. You can optionally map the new AVP to a field in the custom MDC so the values can be set and operated on. The create_config.py script asks questions about the MDC to create and its fields, and the AVPs to add, if necessary. For more information about adding new Diameter AVPs, see the discussion about extending the Diameter dictionary in MATRIXX Diameter Integration.
For example, MtxDiamRoMsg has a struct field
named ServiceInfo
that has a struct_id
of
MtxDiamServiceInfoData
. If you define a custom MDC named
PrivateDiamServiceInfoData using MtxDiamServiceInfoData as its base and add fields
to PrivateDiamServiceInfoData
, you can configure a selective update
on Diameter Gateway
to use PrivateDiamServiceInfoData instead of MtxDiamServiceInfoData.
When configuring the selective update, you
must use the custom MDC name when identifying the field. For example, if you add the
PrivateDiamServiceInfoData MDC based on MtxDiamServiceInfoData and it includes a
field named PrivateFlag
, you must enter
PrivateDiamServiceInfoData:PrivateFlag for the
field_name
.
To use a custom MDC in a struct, you must answer the following question during Diameter protocol configuation:Do you want to use a private MDC instead of the diameter_struct_name MDC (y/n)?
If the answer to this question is y, and there is only one possible custom MDC, the MDC is used. However, if there is more than one element in the list, you must answer the following additional question: What custom MDC do you want to use instead of the diameter_struct_name MDC?
For information about running the create_config.py script, see the discussion about MDC and MDC field extension configuration.