DIAMETER-S Messages

Introduction

The DiameterApp uses DIAMETER-S-… messages to communicate with other applications (such as the LogicApp) to handle inbound Diameter requests received from an external Diameter Client.

The following LuaApp services from the core n2svcd module handle messages from DiameterApp.

The internal DIAMETER-S-… messages are:

Note that this page uses the term “on-the-wire” to refer to the sending or receiving of Diameter content by the DiameterApp. This term is also inclusive of the case where the message is sent by local loopback and does not physically transit a Network Interface Controller (NIC).

DIAMETER-S-REQUEST

The DIAMETER-S-REQUEST message is sent by DiameterApp to the application that is configured for handling of inbound Diameter requests.

Refer to the DiameterApp Configuration documentation for more information on setting default parameters.

The attributes of the DIAMETER-S-REQUEST message are:

Attribute Type Description
diameter Object Container for the parameters of the Diameter request that we have received.
.bytes Object [Required] The raw on-the-wire Diameter request bytes.
.connection String Container for connection information.
.remote_ip String The remote dot-notation IP address from which the Diameter request was received.
.remote_port Integer The remote TCP or UDP port from which the Diameter request was received.
.name String The name of the Diameter command, e.g. Credit-Control if known.
.code Integer [Required] The numeric code for the command.
.application_id Integer The received Application-ID from the request header.
.avps Array of Object [Required] Array of AVP descriptors each with the following fields.
[].name String The name of the Diameter AVP, e.g. Rating-Group, if known.
[].code Integer [Required] The code of the Diameter AVP.
[].vendor_id Integer The vendor ID, if present.
[].type String [Required] One of None, OctetString, UTF8String, DiamIdent, Integer32, Integer64, Unsigned32, Enumerated, Time, Unsigned64, Address, Grouped.
[].mandatory 0/1 Is the AVP specified as mandatory?
[].encryption 0/1 Is the AVP specified as encrypted?
[].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.

DIAMETER-S-RESPONSE

The DIAMETER-S-RESPONSE message is sent back to the DiameterApp by the handling application when it is ready to send a Diameter Response to the original received Diameter Request.

The attributes of the DIAMETER-S-RESPONSE message are:

Field Type Description
success 0/1 [Required] Indicates if the request handling was successful or not.
error String Indicates the reason why the request handling failed.
Present and applicable only if success == 0.
diameter Object Container for the Diameter response parameters we are to send.
Present only if success == 1.
.avps Array of Object Array of AVP descriptors each with the fields described as for a request.
[].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 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.

The other attributes of the Diameter response are automatically determined by the DiameterApp.