DSG-SCP EDRs
Introduction
The The DSG-SCP (Diameter Signalling Gateway - SCP) implements the Diameter interaction and service logic component of a CAMEL/Diameter interworking function.
It is built on top of the ScpApp
base class, and generates the base
SCP EDRs.
In addition, the N2DSG-SCP logs the service logic events associated with the Diameter messaging that it performs. These DSG EDRs are written to the same EDR stream as the SCP EDRs, and will be interleaved with them in the EDR files.
The DSG-SCP creates EDRs for the following Event Types:
DIAMETER
/DIAMETER-R
/DIAMETER-A
GRACE
EXTERNAL
BYPASS
PROBLEM
CUG
Common Format
The configuration parameters for configuring EDR output including filename structure
and location is defined in the configuration documentation for the EdrApp
which is
a base component provided by the n2svcd
package.
All DSG EDRs are generated by the EdrApp
application using its file and record formatting rules.
Refer to the n2svcd
base documentation for more details on configuring and managing EDR
streams, and on the syntax/encoding details for N-Squared EDRs.
DIAMETER / DIAMETER-R / DIAMETER-A Event Type EDRs
The DIAMETER
EDR Event represents a single Diameter Credit-Control-Request
message and its associated
Credit-Control-Answer
response message , if any. DIAMETER
EDRs are only produced if the DSG-SCP application
parameter diameter_split_edrs
is set to produce combined EDRs.
If the application is configured to produce split Diameter EDRs, Diameter Credit-Control-Request
messages will instead
produce a DIAMETER-R
EDR and Diameter Credit-Control-Answer
messages - or the failure to receive a message - will
produce a DIAMETER-A
EDR. DIAMETER
EDRs contain all fields from DIAMETER-R
and DIAMETER-A
EDRs.
In all cases, other SCP EDRs will be associated with Diameter EDRs containing additional information.
Attribute | Type | In DIAMETER-R | In DIAMETER-A | Description |
---|---|---|---|---|
DIAMETER_SID |
String | Yes | Yes | [Always Present] The generated Diameter Session-Id value for this call. |
RECEIVED |
Integer | No | Yes | Set to 0 if no response was received from the OCS, otherwise not present. |
MSISDN |
String | Yes | No | The Subscription-Id → Subscription-Id-Data value sent to the OCS when DSG-SCP is configured to send the received MSISDN. |
IMSI |
String | Yes | No | The Subscription-Id → Subscription-Id-Data value sent to the OCS when DSG-SCP is configured to send the received IMSI. |
REQ_NUM |
Integer | Yes | Yes | [Always Present] The Diameter CC-Request-Number value. |
REQ_TYPE |
Integer | Yes | Yes | [Always Present] The Diameter CC-Request-Type value. One of 1 (INITIAL_REQUEST ), 2 (UPDATE_REQUEST ), or 3 (TERMINATE_REQUEST ). |
RC_ROOT |
Integer | No | Yes | [Always Present] The root-level Result-Code used to determine the action to apply. |
RC_ORIG_ROOT |
Integer | No | Yes | The root-level Result-Code returned from the OCS. Only present if the Result-Code returned from the OCS was overridden as part of Result-Code rule processing. |
RC_MSCC |
Integer | No | Yes | The Multiple-Services-Credit-Control → Result-Code used to determine the action to apply, if any. |
RC_ORIG_ROOT |
Integer | No | Yes | The Multiple-Services-Credit-Control → Result-Code returned from the OCS. Only present if the Multiple-Services-Credit-Control → Result-Code returned from the OCS was overridden as part of Result-Code rule processing. |
ACTION |
Integer | No | Yes | [Always Present] The Result-Code rule action selected based on the OCS response. Note that this may contain alternate values in some cases:
|
NOTF |
String | No | Yes | The notification message name sent, if any, according to the Result-Code rule applied. |
TOTAL |
Integer | Yes | No | The total time reported used (in seconds) by the network for the call, if any. |
SI |
Integer | Yes | No | The Service-Identifier value sent to the OCS for this request, if any. |
RG |
Integer | Yes | No | The Rating-Group value sent to the OCS for this request, if any. |
SCID |
String | Yes | No | The Service-Context-Id value sent to the OCS for this request, if any. |
RSU |
Integer | Yes | No | The Requested-Service-Units > → CC-Time value sent to the OCS for this request, if any. |
USU |
Integer | Yes | No | The Used-Service-Units > → CC-Time value sent to the OCS for this request, if any. |
GSU |
Integer | No | Yes | The Granted-Service-Units > → CC-Time value returned from the OCS for this request, if any. |
BF |
Integer | No | Yes | Set to 1 if the Result-Code rule indicates is_bf , otherwise not present. |
FINAL |
Integer | No | Yes | Set to 1 if the OCS returned a Final-Unit-Indication , otherwise not present. |
TONE |
Integer | No | Yes | Set according to the tone value of the matched tone rule, if any. |
FCI |
String | No | Yes | The FCI message name sent, if any. |
SCI |
String | No | Yes | The SCI message name sent, if any. |
(tags) | (various) | Conditional | Yes | The name and value for each tag that has had a value assigned to it for this call instance. Note that tags that have their value set by the billing engine via AVP reading are suppressed in DIAMETER-R EDRs, although their value is still taken into account when building the request, i.e. when applying selector rules and specifying tags as part of the condition. |
GRACE Event Type EDRs
The GRACE
EDR Event provides information on time granted for a call outside the control of the OCS. Such EDRs are
produced when the Result-Code rule action,
billing bypass rule action, or CUG action used is continue_period
, and they record the
amount of unrated time that the call used. In all cases, either a DIAMETER
EDR or BYPASS
EDR will be produced, as
appropriate, as well as other SCP EDRs that are associated with this instance containing additional information. These
EDRs provide sufficient information to allow calls to be post-rated on the OCS, if required.
Attribute | Type | Description |
---|---|---|
MSISDN |
String | The Subscription-Id → Subscription-Id-Data value originally sent to the OCS when DSG-SCP is configured to send the received MSISDN. |
IMSI |
String | The Subscription-Id → Subscription-Id-Data value originally sent to the OCS when DSG-SCP is configured to send the received IMSI. |
ACTION |
Integer | [Always Present] The triggering Result-Code rule action or CUG action applied. |
TOTAL |
Integer | [Always Present] The total time reported used (in seconds) by the network for the call, if any. This includes the grace grant. |
SI |
Integer | The Service-Identifier value originally sent to the OCS for this request, if any. |
RG |
Integer | The Rating-Group value originally sent to the OCS for this request, if any. |
SCID |
String | The Service-Context-Id value originally sent to the OCS for this request, if any. |
USU |
Integer | The Used-Service-Units > → CC-Time value that would have been sent to the OCS for the grace grant, i.e. the used time. |
GSU |
Integer | The number of seconds given for the grace grant. |
(tags) | (various) | The name and value for each tag that has had a value assigned to it for this call instance. |
EXTERNAL Event Type EDRs
EXTERNAL
EDRs are created for each external processing action that a call receives.
Attribute | Type | Description |
---|---|---|
ACTION |
String | [Always Present] The external process action applied. |
SUCCEEDED |
Boolean | [Always Present] 1 if the action succeeded, otherwise 0 . |
ERROR |
String | If SUCCEEDED is 0 , freeform text indicating the failure. |
MSISDN |
String | As for the DIAMETER EDR MSISDN field. |
IMSI |
String | As for the DIAMETER EDR IMSI field. |
(tags) | (various) | As for the DIAMETER EDR. |
Some external actions (e.g. CUG processing) may write additional EDRs as part of their action processing.
BYPASS Event Type EDRs
BYPASS
EDRs are created when a received call matches a billing bypass rule.
Attribute | Type | Description |
---|---|---|
ACTION |
String | [Always Present] The billing bypass rule action applied. |
MSISDN |
String | As for the DIAMETER EDR MSISDN field. |
IMSI |
String | As for the DIAMETER EDR IMSI field. |
NOTF |
String | The notification message name sent, if any, according to the billing bypass rule applied. |
(tags) | (various) | As for the DIAMETER EDR. |
PROBLEM Event Type EDRs
The DSG-SCP creates PROBLEM
EDRs when issues are encountered during processing. These EDRs extend the format for
SCP PROBLEM EDRs.
Attribute | Type | Description |
---|---|---|
TYPE |
String | [Always Present] A simple keyword defining the category of the problem. |
ERROR |
String | [Always Present] Description of the error. |
ACTION |
String | [Always Present] The error handling rule action applied for the error. |
MSISDN |
String | As for the DIAMETER EDR MSISDN field. |
IMSI |
String | As for the DIAMETER EDR IMSI field. |
NOTF |
String | The notification message name sent, if any, according to the error handling rule applied. |
FCI |
String | The FCI message name sent, if any. |
SCI |
String | The SCI message name sent, if any. |
(tags) | (various) | As for the DIAMETER EDR. |
CUG Event Type EDRs
The DSG-SCP creates CUG
EDRs when a CUG query is successfully performed as part of external action processing.
Note that if no CUG user was found, no fields will be included for CUG matches or CUG lists.
Attribute | Type | Description |
---|---|---|
USER |
Boolean | [Always Present] 1 if a CUG user was found, otherwise 0 . |
U_IN |
String | [Always Present] The input value for the user in the CUG lookup. |
USCA |
Boolean | [Always Present] 1 if the CUG user lookup allowed a match to be made on short codes, otherwise 0 . |
M_IN |
String | [Always Present] The input value for the match in the CUG lookup. |
MSCA |
Boolean | [Always Present] 1 if the CUG match lookup allowed a match to be made on short code, otherwise 0 . |
ACTION |
String | [Always Present] The CUG rule action applied. |
MSISDN |
String | As for the DIAMETER EDR MSISDN field. |
IMSI |
String | As for the DIAMETER EDR IMSI field. |
U_NUM |
String | The user number found in the CUG lookup. Note that this may be different to the match number initially provided for the CUG query. |
G_ID |
Integer | The database ID of the CUG group for the CUG user. |
GROUP |
String | The name of the CUG user’s CUG group |
U_ID |
Integer | The database ID of the CUG user. |
U_SHORT |
String | The short code of the CUG user. |
U_LONG |
String | The long number of the CUG user. |
U_LN |
Boolean | 1 if the CUG user was found by long number, otherwise 0 . |
U_PREF |
Boolean | 1 if the CUG user was found by prefix, otherwise 0 . |
U_RANGE |
Integer | The range size of the CUG user. |
U_ORIG_ON |
Boolean | 1 if the CUG user is allowed to make calls within the CUG group, otherwise 0 . |
U_ORIG_OFF |
Boolean | 1 if the CUG user is allowed to make calls outside the CUG group, otherwise 0 . |
U_TERM_ON |
Boolean | 1 if the CUG user is allowed to receive calls from within the CUG group, otherwise 0 . |
U_TERM_OFF |
Boolean | 1 if the CUG user is allowed to receive calls from outside the CUG group, otherwise 0 . |
MATCH |
Boolean | 1 if a CUG match was found, otherwise 0 . |
M_ID |
Integer | The database ID of the CUG match user. |
M_SHORT |
String | The short code of the CUG match user. |
M_LONG |
String | The long number of the CUG match user. |
M_LN |
Boolean | 1 if the match was made against long number, otherwise 0 . |
M_PREF |
Boolean | 1 if the match was made by prefix, otherwise 0 . |
M_RANGE |
Integer | The range size of the CUG match user. |
M_VIRTUAL |
Boolean | 1 if the CUG match user is virtual, otherwise 0 . |
M_SC_DISP |
Boolean | 1 if the caller shortcode was sent for presentation in the Connect messages, otherwise 0 . |
LIST |
Boolean | 1 if a match was made to a blacklist or a whitelist, otherwise 0 . |
L_DENY |
Boolean | 1 if the applicable list disallowed the call, otherwise 0 . |
L_ID |
Integer | The database ID of the applicable list entry number. |
L_NUM |
String | The match number found in the list lookup. Note that this may be different to the match number initially provided for the CUG query. |
L_WHITE |
Boolean | 1 if the applicable list is a whitelist, otherwise 0 . |
L_PREF |
Boolean | 1 if the applicable list match was made by prefix, otherwise 0 . |
(tags) | (various) | As for the DIAMETER EDR. |
For further information on CUG concepts, refer to the CUG functionality overview.