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 agents from the core n2svcd
module handle messages
from DiameterApp.
DiameterLuaService
(handles inbound Diameter requests within LogicApp)
The internal DIAMETER-S-… messages are:
DIAMETER-S-REQUEST
DIAMETER-S-RESPONSE
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 sent.
.remote_port
Integer
The remote IP port from which the Diameter request was sent.
.name
String
The name of 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 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 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.
The other attributes of the Diameter response are automatically determined by the DiameterApp
.