Add a Diameter AVP to a Diameter Packet

You can add Diameter AVPs to the following Diameter packets: AA Request, AA Answer, Accounting Request, Accounting Answer, Credit-Control Request, and Credit-Control Answer.

About this task

This task assumes the Diameter AVP to add is contained in the Diameter Dictionary.

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.

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 to the defined packets (y/n)?.
    Note: The second question will not be in the file if the answer to the default Diameter dictionary question was y.

    A 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 script prompts you for answers to the following question:
    • 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 to the defined packets (y/n)?

      Enter y to specify in which application packets you want to define the AVPs. the number of AVPs for each Diameter packet, the AVP names, and the MDC field name to which each AVP maps.

  4. Answer the following questions:
    • Diameter:Do you want to add Diameter AVPs to any packets defined in the Common application (y/n)? 
      Diameter:Do you want to add Diameter AVPs to any packets defined in the NASREQ application (y/n)?
      Diameter:Do you want to add Diameter AVPs to any packets defined in the Accounting application (y/n)? 
      Diameter:Do you want to add Diameter AVPs to any packets defined in the Credit-Control application (y/n)? 
      Diameter:Do you want to add Diameter AVPs to any packets defined in the Gx application (y/n)?
      Diameter:Do you want to add Diameter AVPs to any packets defined in the Sy application (y/n)? 
      
    One or more additional questions are asked as determined by the answers to the questions above. For each application to which you answered y, you must answer the following questions where PacketName is the application name, the command name, and Request or Answer:
    • How many required Diameter AVPs do you want to add to the PacketName Request packet?
    • How many optional Diameter AVPs do you want to add to the PacketName Answer packet?

    For example: How many required Diameter AVPs do you want to add to the Common application Capabilities-Exchange Request packet?

  5. Based on your answers in the previous question, for each AVP in each packet, answer the following questions:
    • What is the AVP's name?
    • What is the grouped AVP's name?
      Specify the full path of the field in the MDC, separated by dots (.). For example:
      Diameter:New Credit-Control application Credit-Control Request required AVP:1 What is the AVP's name?Calling-Party-Number
      Diameter:New Credit-Control application Credit-Control Request required AVP:1 What is the MDC's field name?ServiceInfo.InInfo.CallingPartyNumber 
      
      Note: In this example, the Calling-Party-Number AVP must have been added already to the Diameter Dictionary as described in the discussion about adding a simple AVP to the Diameter Dictionary and the MtxDiamRoMsg MDC must have been extended to include the InInfo.CallingPartyNumber field.
      For example, ServiceInfo.InInfo.CallingPartyNumber. You can specify a field name up to a total of eight levels.
      Note: To add an AVP to a packet but do not want the AVP to be processed by MATRIXX Engine by mapping it to an MDC field, leave the MDC field name empty and press Enter.

    For more information about Diameter configuration, see the discussion about Diameter protocol configuration.

  6. To specify the maximum number of times an AVP can occur and which decoding should be used for the AVP, answer y to the following question:
    Diameter: New grouped AVP:1:optional:1:Do you want to specify additional attributes for this mapping (y/n)?
    For example:
    Diameter:Credit-Control application Credit-Control Request AVP required AVP:1 Do you want to specify additional attributes for this mapping (y/n)?
    If you answer y to this question, you must answer the following questions:
    • Diameter: New grouped AVP:1:optional:1:What is the maximum number of times this AVP can occur? (default = 1)
    • What type of decoding should be used for this AVP? (default = none)

      See the discussion about decode operations for a complete list of decoding options.

What to do next

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