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 AVP descriptors each with the following fields.
[].name String The name of 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 Diameter AVP, if not specifying by [].name.
[].vendor_id Integer The vendor ID. This field is optional and can be specified both when selecting the AVP by [].name (to distinguish between scenarios where the same name is used by different vendors) or 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 pre-defined.
[].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 pre-defined.
[].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 pre-defined.
[].value Various The value for this AVP.
For AVPs of type Grouped this will be an ARRAY.
For all other AVPs this is a SCALAR of the appropriate type.
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)

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.