Diameter Op - Outbound Request

Overview

The Diameter OP Outbound Request can be used to send an outbound Diameter request to an external Diameter server.

Attributes

Theo operation attributes are as follws.

Attribute Type Description
type String diameter.Request or diameter.to_server.Request
label String An optional label for this node if it is to be the target of a branch operation.
arguments Object [Required] The structure of the Diameter request to perform. Expressions may be supplied within this structure.
tests Array of Object An array of anonymous Objects. Each Object represents a check to be performed. The associated Pass/Fail entries will be generated in the test instance check_log. Refer to the Operation Tests documentation for more information on the syntext for Operation tests.

Example

This is an example entry within the operations array:

{
    "type": "diameter.Request",
    "arguments": {
        "name": "Credit-Control-Request",
        "avps": [
            {
              "name": "Session-Id_auto"
            },
            {
              "name": "Service-Context-Id",
              "value": "sms@huawei.com"
            },
            {
              "name": "CC-Request-Type",
              "value": 1
            },
            {
              "name": "CC-Request-Number",
              "value": 1
            },
            {
              "name": "Rating-Group",
              "value": 900
            },
            {
              "name": "Requested-Action",
              "value": 0
            },
            {
              "name": "Requested-Service-Unit",
              "value": [
                {
                  "name": "CC-Service-Specific-Units",
                  "value": 1
                }
              ],
              "vendor_specific": 0
            },
            {
              "name": "Service-Identifier",
              "value": 200
            },
            {
              "name": "Subscription-Id",
              "value": [
                {
                  "name": "Subscription-Id-Data",
                  "value": "64220635462"
                },
                {
                  "name": "Subscription-Id-Type",
                  "value": 0
                }
              ]
            },
            {
              "name": "Value-Digits",
              "value": 1
            }
        ]
    },
    "tests": [
        { "kpath": "response.avps.[name=Origin-Host].value", "value": "ece.enabil.com" }
    ]
}

Arguments

The following arguments for outbound requests are supported.

Argument Type Notes
name String The name of Diameter command, e.g. Credit-Control.
This must be a supported message name within N2::DIAMETER::Codec.
If your command name is not supported, you may instead specify code.
code Integer Alternatively you may specify the numeric command value instead of name.
application_id Integer Expressly specify the default Application ID in the Diameter message header.
If you set this, you are also responsible for adding Auth-Application-Id AVP.
(Default = Configured Application ID in header and in Auth-Application-Id AVP)
avps Array of Object Array of AVPs.
ack_sent 0/1 Flag to indicate if a DIAMETER-C-SENT message is sent to the requesting application once the original DIAMETER-C-REQUEST is placed on-the-wire. (Default = 0)

AVP Parameters

Each AVP definition may contain the following elements:

Argument Type Notes
name String The name of the Diameter AVP, e.g. Rating-Group.
This must be a supported AVP name within N2::DIAMETER::Codec or DiameterApp custom AVPs.
If your AVP name is not supported, you may instead specify code.
code Integer The code of the Diameter AVP, if not specifying by name.
vendor_id Integer The vendor ID. This field is optional and can be specified when selecting the AVP by code in order to specify the intended vendor ID.
type String One of:
  • None
  • OctetString
  • UTF8String
  • DiamIdent
  • Integer32
  • Integer64
  • Unsigned32
  • Enumerated
  • Time
  • Unsigned64
  • Address
  • Grouped
This is used only when specifying an AVP by code. For named AVPs the type is predefined.
mandatory 0/1 Override the default mandatory AVP flag.
This is used only when specifying an AVP by code. For named AVPs the mandatory flag is predefined.
encryption 0/1 Override the default encryption AVP flag.
This is used only when specifying an AVP by code. For named AVPs the encryption flag is predefined.
value Various The value for this AVP.
For AVPs of type Grouped this will be an ARRAY of 0 or more AVPs.
For all other AVPs this is a SCALAR of the appropriate type.

KPath Test Paths

For Diameter tests the following top-level elements are available via the KPath:

The response object will contain attributes to match any {key}={value} pairs returned in the Diameter response object. If any {key} value occurs more than once, then the corresponding value in the returned object will be an Array/ARRAY listing all of the returned values for that key.