Add a Simple AVP to the Diameter Dictionary

For MATRIXX Engine to recognize and process AVPs sent in the network message, they must be included in the Diameter Dictionary.

About this task

This task assumes you are changing a MATRIXX Engine installation that is online, in production, and has multiple engines. In such cases, you must perform this procedure on an engine running in standby mode. If you are changing an offline engine, you need not perform any steps after running the configure_engine.py script, except to run the script again on the other engines. If you are changing a single engine, you need not perform any steps after running the configure_engine.py script.

Important: AVP names must be unique in the Diameter dictionary. When adding an AVP to the Diameter dictionary, you must prefix it with a customer-specific prefix. For example, adding the AVP Call-Reference-Number with the prefix XYZ results in the following in the diameter_dictionary.xml file:
<avp name="XYZCall-Reference-Number" code="99998" type_name="OctetString" vendor_name="XYZ Company"/>

AVP names are not sent in any packets and are only for human-readable reference. The AVP's numeric code (and similar attributes) are used in the packets The AVP name does not affect the AVP encoding and decoding in a packet.

For more information about the MATRIXX environment variables, see the discussion about container directories and environment variables in MATRIXX Installation and Upgrade.

Procedure

  1. Use a configuration source to configure the grouped AVP in create_config.info. You must delete the following create_config.info question:
    Diameter: Do you want to use the default Diameter Gateway dictionary (y/n)? and Do you want to add any Diameter AVPs (y/n)?.
    Note: The second question will not be in the file if the answer to the default Diameter dictionary question was y.

    The MATRIXX Engine configuration source image can contain multiple configuration files to be merged at start-up as inputs for the create_config.py command. Files are loaded in alphabetical order. Each filename must end in create_config.info.

  2. Run create_config.py.
    For example:
    kubectl exec -it engine_pod_name -n matrixx -- bash --login -c"create_config.py"
  3. The create_config.py script prompts you for answers to the following questions:
    • Diameter: Do you want to use the default Diameter Gateway dictionary (y/n)? Enter n to change the base configuration.
    • Do you want to add any Diameter AVPs (y/n)? Enter y to add an AVP to the Diameter Dictionary so it can be recognized by MATRIXX Charging Application.
    • How many simple (non-grouped) Diameter AVPs do you want to add? Enter the number of AVPs to add.
    • What is the AVP's name?
      What is the AVP's code?
      What is the AVP's type?
      What is the AVP's vendorId name?
      The AVP type is the data type. The AVP vendor ID is the IANA assigned SMI Network Management Private Enterprise Codes value. If you enter y for the AVP vendor ID, specify the vendor name and number.
    • Do you want to add any Diameter AVPs to the defined packets (y/n)? After adding the AVP to the Diameter Dictionary, you can add it to a private MtxDiamRoMsg MDC, which has the Diameter packet information. In such cases, after adding a custom message MDC, run the create_config.py script and specify the number of AVPs for each Diameter packet, the AVP names, and the MDC field names to which each AVP maps. For more information, see the discussion about adding a Diameter AVP to a Diameter packet.
    When the script finishes, the AVP is added to the ${MTX_CUSTOM_DIR}/diameter_dictionary_base_xml.sed file and the ${MTX_CONF_DIR}/diameter_dictionary.xml file.

What to do next

When create_config.py finishes, update the configuration on each server in the engine as described about configuring MATRIXX Engine.