Custom MDC and MDC Field Creation
Adding a field to an Event Detail Record (EDR) requires you to create a new EDR, because you cannot add fields to system MATRIXX Data Containers (MDCs). This involves editing the MATRIXX configuration information file, create_config.info, to either remove or change the answers to the questions about adding custom MDCs and running the create_config.py script.
To add a custom field, you must add a custom MATRIXX Data Container (MDC) to contain the field and then add the field(s) to it. You must answer yest to the following create_config.info questions:
Do you want to add any private MDCs?
Do you want to add any private fields to an MDC?
y
to the first question to be
asked the second question.Question | Description |
---|---|
How many private MDCs do you want to
add? |
Enter the number of new EDR containers to create. |
What is the container's name? |
Enter the name of the new EDR container. The container name is
the event_field_container value in the service type
definition. The name must not start with Mtx and is limited to 63
characters in length. |
What is the container's key? |
A negative integer that identifies the EDR during lookup operations. For better performance, start with –1 for the first custom MDC created, then use sequential numbers for each additional custom MDC. Once a number has been used, it must not be reassigned or changed in the future. |
What is the name of the base container (if
any)? |
The base MDC that the new EDR container extends. For example, to add a field to the base container for a voice event EDR, the base container is MtxVoiceEvent. |
How many fields do you want to add? |
Enter the number of fields to add to the container being configured. |
What is the field's name? |
Enter the name of the field to add. This is the
event_field_name value in the service type
definition. The name must be alpha-numeric ASCII with no special
characters. The maximum size is 63 bytes. |
What is the field's type? |
Enter the type of data contained in the field, for example,
signed int32 , phone number , or
string . |
Is this field a list (y/n)? |
Answer y if the field is a list. |
Is this field an array (y/n)? |
Answer y if the field is an array. |
When the create_config.py script finishes, you must run the configure_engine.py script to propagate the changed configuration files to the other servers in the cluster and then run the restart_engine.py to update each blade's configuration.
You can also add a field that is mapped to an AVP that you added to the base network message MDC (MtxDiamRoMsg). In this case, you must add the AVP to the Diameter Dictionary if it is not already there, add the AVP to the necessary Diameter packet, and then optionally identify the field that maps to the AVP for it to be operated on by MATRIXX Engine.