SCP EDRs (Common)

Introduction

The DSG-SCP (Diameter Signalling Gateway - SCP) and NP-SCP (Number Portability SCP) applications are built on a common ScpApp base class. This page defines the common SCP-level EDRs which can be generated by one or both applications.

The configuration parameters for configuring EDR output including filename structure and location is defined in the relevent configuration documentation, NP-SCP Application Configuration or DSG-SCP Application Configuration.

The SCP EDR records generated by the N2DSG-SCP and N2NP-SCP applications are identical where they overlap, noting that the N2NP-SCP uses only a small subset of these EDR formats, and that the exact EDR types and content fields will vary according to the application and the configuration.

The SCP EDR Event Types are:

Note that in additional to generating SCP EDRs, the DSG-SCP and NP-SCP applications will also generate EDRs associated with the control-side (LUA or INAP). These control-side EDRs will be included in the same EDR file, and will be interleaved with the SCP EDRs.

Common Format

All SCP EDR records have the same format. There are three special fields at the start of the record, followed by none or more fields specific to the event type.

Here is an example EDR:

2020-05-04 04:45:37.671<234>INITIALDP|CALLED=0800999013|CALLING=414511860|IDP_CLD=0800999013:2
|IDP_CLG=414511860:3|IDP_CPC=f7|IDP_SK=30|TRIGGER=ORIG

In this case the special fields are:

Event-type specific fields follow subsequently, each separated by the | “pipe” character.

Fields are in alphabetical order, but any given field may be missing.

Any application parsing EDRs must be prepared to accept and ignore any unexpected fields that may be present, since new base fields may be added in future without notice.

SHUTDOWN EDR

The SHUTDOWN EDR Event indicates that a SCP instance ended with an internal processing error. This EDR is generated independently of any other SCP EDRs associated with the EDR. In most cases, there will be other SCP EDRs associated with this instance containing additional protocol information.

Example:

2018-05-22 03:44:30.181<2771>SHUTDOWN
|EXCEPTION=No model selector found for InitialDP without TCAP AC.

Field Type Description
EXCEPTION String [Always Present] Description of the reason for the unexpected instance shutdown.

PROBLEM EDR

The PROBLEM EDR Event indicates that a SCP instance encountered a CAMEL/INAP processing error, but managed to recover and continue CAMEL/INAP call processing. Examples of such “recoverable” errors might include an external resource not being available, or a received message not containing an expected field.

In most cases, a Warning message will also be written to the n2svcd log file and/or the Syslog.

Note that an error connecting to a resource will generate a PROBLEM EDR Event, but a problem with playing an announcement will result in a PLAYED EDR Event with an ERROR field.

In the case of on-switch announcements, the bundling of ConnectToResource and PlayAnnouncement will typically result in multiple EDRs if the ConnectToResource fails (generating a PROBLEM Event EDR), as the subsequent PlayAnnouncement (generating a PLAY Event EDR) will also fail (generating a PLAYED Event EDR).

Example:

2020-07-15 03:30:11.754<22294871>PROBLEM
|ERROR=PACUI Failed (Code 16)|TYPE=INTERACTION

Field Type Description
TYPE String [Always Present] A simple keyword defining the categeory of the problem.
ERROR String [Always Present] Description of the error.

INITIALDP EDR

The INITIALDP EDR Event indicates that an inbound SCP InitialDP has been received by the DSG-SCP/NP-SCP.

Example:

2020-05-04 04:45:37.671<234>INITIALDP|CALLED=0800999013|CALLING=414511860|IDP_CLD=0800999013:2
|IDP_CLG=414511860:3|IDP_CPC=f7|IDP_SK=30|TRIGGER=ORIG

Field Type Description
CALLED Hex String [Always Present] The logical “Called Party” after normalisation.
Taken from calledPartyNumber or calledPartyBCDNumber.
CALLING Hex String [Always Present] The logical “Calling Party” after normalisation.
Taken from callingPartyNumber.
IDP_CDB String The Digits and the NoA of the received callingPartyBCDNumber before normalisation, with : separator.
(Default = callingPartyBCDNumber was not present).
IDP_CLD String The Digits and the NoA of the received callingPartyNumber before normalisation, with : separator.
(Default = callingPartyNumber was not present).
IDP_CLG String [Always Present] The Digits and the NoA of the received callingPartyNumber before normalisation, with : separator.
IDP_RDR String The Digits and the NoA of the received redirectingPartyID before normalisation, with : separator.
(Default = redirectingPartyID was not present).
IDP_CPC Hex String The complete received callingPartysCategory argument in hex.
(Default = callingPartysCategory was not present).
IDP_SK Integer [Always Present] The integer value of the ServiceKey argument.
IDP_CRN Hex String The value of the callReferenceNumber argument.
(Default = not present).
INAP String The matched INAP variant used for the codec and call flows for this call.
E.g. cs1, cs2, cs3, camel1, camel2, camel3, camel4.
REDIRECTING Hex String The logical “Redirecting Party” after normalisation.
(Default = No redirecting party was extracted).
TRIGGER String [Always Present] One of ORIG, TERM, or FWD
The value is determined by looking at the eventTypeBCSM and the presence/absence of the redirectingPartyID within the InitialDP.

TCAP-ABORT EDR

The TCAP-ABORT EDR Event indicates that the SCP service logic has deliberately sent an outbound TCAP-ABORT message on the SSP transaction. Note that a well-formed service will not typically do this, and so this EDR is not usually seen in production sites.

Note that the TCAP ABORT message can be sent or received in many unplanned error situations, in which case a SHUTDOWN EDR will be generated instead of a TCAP-ABORT EDR.

Example:

2020-05-04 00:39:46.517<4>TCAP-ABORT

No core fields are present for this EDR.

ABANDON EDR

The ABANDON EDR Event indicates that the caller abandoned the call during the call setup or processing phase. This EDR type is only used in the case where there is no other applicable EDR type.

Example:

2020-07-17 03:13:35.232<1974486694>ABANDON|DURING=Announcement

Field Type Description
DURING String Additional information indicating the stage of processing at the time the caller abandoned the call.

RELEASE

The RELEASE EDR Event indicates that the service logic has requested the call be torn down via a ReleaseCall operation which is performed instead of attempting to terminate a B-Leg.

Note that the ReleaseCall operation is also sent mid-call, e.g. to forcefully terminate a B-Leg in the case where the service logic denies an extension of talk-time. In that mid-call case there is no RELEASE EDR generated. Instead the REASON field of the TEARDOWN EDR is set to RELEASE and the cause value is indicated in the CAUSE field of the TEARDOWN EDR.

Example:

2020-05-04 00:44:36.470<4>RELEASE|CAUSE=1

Field Type Description
CAUSE Integer The initialCallSegment_cause value.

TERMINATION EDR

The TERMINATION EDR Event indicates that the service logic has requested the call processing resume with a Connect or Continue operation. Prior to the Connect/Continue operation, the following operations may be sent:

Example:

2018-05-22 03:44:30.3442020-05-04 00:45:29.429<7>TERMINATION|ARMED=4/5.2/6.2/7.2/10.1/9.1/9.2
|DRA=04200999007:3|NOANSWER=70

Field Type Description
ARMED String This field is present if and only if the SCP armed EDPs for this termination.
Armed EDP are separated by / and show the EDP number and the leg number joined with ..
Note that this list may not match the RequestReportBCSM EDP list for several reasons, e.g. an EDP may already be armed from a previous termination (will be present in this list but not in the RRBCSME. Alternatively, if an EDP needs to be cleared then it will be absent from this list but present in the RRBCSME.
CIR Hex String This field is present if and only the service requested that a CallInformationRequest operation be sent. A hex-string representation of the CallInformationRequest field bitmask.
This is a hex value in the range 00 - 1f where the bits are as described in the configuration for the call_information_supported SSP model parameter.
DRA String This field is present if and only if the Connect operation is used.
The denormalised digits and NoA of the destinationRoutingAddress separated by :.
FCI 1 This field is present if and only if the service requested that a FurnishChargingInformation operation be sent.
NOANSWER Integer This field is present if and only if the service specified a no-answer timer value.
Unit = seconds.
ORIGINAL_CALLED String This field is present if and only if the Connect operation is used, and the service specified an original called party ID.
The denormalised digits and NoA of the originalCalledPartyID separated by :.
REDIRECTING String This field is present if and only if the Connect operation is used, and the service specified a redirecting party ID.
The denormalised digits and NoA of the redirectingPartyID separated by :.

ANSWER EDR

The ANSWER EDR Event indicates that the SSP notified us of the success of a termination attempt using an Answer EDP.

Example:

2020-05-04 00:45:30.441<7>ANSWER|EDP=oAnswer_leg2|ONGOING=1

Field Type Description
EDP String The name of the EDP, including the leg. This will be an Answer EDP.
FINAL 1 This field is present if and only if this represents the end of the call control.
i.e. No Disconnect EDPs are armed, no CallInformationRequest is open, no ApplyCharging is open.
ONGOING 1 This field is present if and only if the call control is ongoing.
i.e. Disconnect EDPs are armed, and/or CallInformationRequest is open, and/or ApplyCharging is open.

TEARDOWN EDR

The TEARDOWN EDR Event indicates that a B-Leg has been torn down by the SSP either because it failed to be answered, or because of a post-answer disconnection by the A-party or B-party, or because the SSP detected the conclusion of a non-extensible ApplyCharging.

Example:

2020-05-04 00:45:30.441<7>TEARDOWN|EDP=oDisconnect_leg1|FINAL=1|TALK_DS=58

Field Type Description
EDP String The name of the EDP, including the leg. This will be empty when REASON = TCPE or REASON = RELEASE.
FINAL 1 This field is present if and only if this represents the end of the call control.
i.e. if no follow-on call is possible because the call was torn down by Abandon or by Disconnect on leg 1, or due to an overdue INAP operation from the SSP, or by forced call termination using an INAP model which does not retain A-Leg control in that case.
GRANT_SECS Integer This field is present if and only if the call is a charged call.
This is the total time that was granted by the charging layer during this call talk segment. The used time is typically less than this value. In exceptional cases and depending on configuration it may be greater.
Unit = seconds.
ONGOING 1 This field is present if and only if the call control is ongoing.
i.e. if a follow-on call is possible because the call was torn down by Disconnect on leg 2, or by forced call termination using an INAP model which retains A-Leg control in that case.
REASON String The REASON indicates the reason that the call was ended. Possible values are:
  • EDP indicates that the talk time ended as a result of an Event Detection Point transition reported by the SSP.
  • RADE indicates that the SSP terminated the call at the conclusion of a non-extensible ApplyCharging.
  • RELEASE indicates that the SCP terminated the call deliberately with a ReleaseCall in response to an ApplyChargingReport where the service declined to grant an extension ApplyCharging. Note that in this case there will not be a separate RELEASE EDR generated.
  • CIR indicates that the talk time ended as a result of a Call Information Report reported by the SSP. This value is used only in the case where no Event Detection Point was reported.

RING_DSM Integer The measured ring time determined by the SCP. The wall-clock time measured from the sending of INAP/CAMEL Connect/Continue to the received oAnswer, tAnswer, oNoAnswer or tNoAnswer EDP notification. Is not present for Busy results nor for RouteSelectFailure.
Unit = deci-seconds.
TALK_DS Integer This field is present if and only if the call is a charged call.
For CAMEL 1 charged calls this will contain the talk time determined by the SCP, as per TALK_DSM. Otherwise this will contain the talk-time in deci-seconds as reported by the SSP using ApplyChargingReport.
Unit = deci-seconds.
TALK_DSM Integer The measured talk time determined by the SCP. The wall-clock time measured from the received oAnswer or tAnswer EDP notification, to the first hangup event (sent ReleaseCall, received CallInformationReport, received EventReportBCSM, received ApplyChargingReport, sending of a confirmed ActivityTest).
Unit = deci-seconds.
CAUSE Integer The numeric “cause” code extract from the following source as applicable:
The outbound ReleaseCall.initialCallSegment value, or
The received EventReportBCSM.oCalledPartyBusySpecificInfo.busyCause, or
The received EventReportBCSM.tBusySpecificInfo.busyCause, or
The received EventReportBCSM.tCalledPartyBusySpecificInfo.busyCause, or
The received EventReportBCSM.routeSelectFailureSpecificInfo.failureCause, or
The received EventReportBCSM.oNoAnswerSpecificInfo.oNoAnswerCause The received EventReportBCSM.tNoAnswerSpecificInfo.tNoAnswerCause The received EventReportBCSM.oDisconnectSpecificInfo.releaseCause, or
The received EventReportBCSM.tDisconnectSpecificInfo.releaseCause
CIR_CAET Integer The callAttemptElapsedTimeValue from the CallInformationReport (if present).
Unit = seconds.
CIR_CST The callStopTimeValue_yymmddhhmmss from the CallInformationReport (if present).
CIR_CCET Integer The callConnectedElapsedTimeValue from the CallInformationReport (if present).
Unit = deci-seconds.
CIR_CA Hex Digits The calledAddressValue_digits from the CallInformationReport (if present).
The corresponding noa, nqi, ni, npi, pri, and si fields are available to service logic but are not logged in the base EDR.
CIR_RC Integer The releaseCauseValue_cause from the CallInformationReport (if present).

Note that some SSPs will report an EventReportBCSMEvent at the conclusion of Time Charge Period Expiry, while others will not. For consistency, the N-Squared SCP will never set the EDP field in the TEARDOWN EDR in the case of a detected Time Charge Period Expiry, even if one is nominally supplied by the SSP.

PLAY EDR

The PLAY EDR Event indicates the SCP requesting to an on-switch or external SRP that an announcement be played (possibly including variable part content), and that optionally a DTMF digit response be entered by the handset.

Example:

2020-05-04 04:49:02.917<4>PLAY|LANGUAGE=1|MAX_DIGITS=4|MESSAGE_ID=1860|MIN_DIGITS=4|PROMPT=1|SRP=ext-srp

Field Type Description
DURATION Integer This field is present if and only if the service specified a duration for the interaction.
Contains the value of the duration field of the operation.
Unit = seconds.
FIRST_DGT_TO Integer This field is present if and only if the interaction was a prompt, and the service specified a first digit time-out.
Contains the value of the firstDigitTimeOut field of the operation.
Unit = seconds.
INTER_DGT_TO Integer This field is present if and only if the interaction was a prompt, and the service specified an inter digit time-out.
Contains the value of the interDigitTimeOut field of the operation.
Unit = seconds.
INTERRUPTABLE Integer This field is present if and only if the interaction was a prompt, and the service specified that the prompt be interruptable.
INTERVAL Integer This field is present if and only if the service specified an interval for the interaction.
Contains the value of the interval field of the operation.
Unit = seconds.
LANGUAGE Integer This field is present if and only if the service specified a language for the interaction.
This is the SRP-specific language identifier.
MAX_DIGITS Integer This field is present if and only if the interaction was a prompt.
Contains the value of the maximumNbOfDigits field of the operation.
MESSAGE_ID Integer The elementaryMessageID in the case where only one message ID is requested.
Either MESSAGE_ID or MESSAGE_IDS must be present.
MESSAGE_IDS Integer List The elementaryMessageIDs in the case where more than one message ID is requested.
This is a comma-separated list in the EDR.
MIN_DIGITS Integer This field is present if and only if the interaction was a prompt.
Contains the value of the minimumNbOfDigits field of the operation.
PROMPT 1 This field is present if and only if user DTMF input was requested.
REPETITION Integer This field is present if and only if the service specified a number of repetitions for the interaction.
Contains the value of the numberOfRepetitions field of the operation.
Unit = seconds.
SRP String [Always Present] The name of the SRP that will be engaged to perform the interaction.

PLAYED EDR

The PLAYED EDR Event indicates that the on-switch or external SRP has completed playing an announcement (possibly including variable part content), and that optionally a DTMF digit response has been entered by the handset.

There should always be a 1:1 correspondence between PLAYED and PLAY EDR Events, and so a missing announcement, or a mid-announcement hangup/abandon will generate PLAYED EDR Events with an ERROR field (rather than PROBLEM EDR Events).

Example:

2020-05-04 04:20:27.206<0>PLAYED|COMPLETE=1|DIGITS=1234

Field Type Description
DIGITS String The returned digits if DTMF entry was requested and if a sufficient number of digits was supplied by the user.
ERROR Integer Indicates that an error occurred during the announcement, such as the requested announcement ID(s) not being known, or the caller abandoning during the announcement.
Note that the caller not providing sufficient digits before timeout (e.g. entering 3 digits when a minimum of 4 is specified) will be recorded as DIGITS present but empty, and ERROR not present.