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:
SHUTDOWNPROBLEMINITIALDPABANDONTCAP-ABORTRELEASETERMINATIONANSWERTEARDOWNPLAYPLAYED
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:
2020-05-04 04:45:37.671- Event log Timestamp (in UTC) YYYY-MM-DD HH:MM:SS.sss format.<234>- The key field for this call instance.INITIALDP- The Event type, which also determines the regular fields which may follow.
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:
RequestReportBCSMEvent(one or two)ApplyChargingCallInformationRequestFurnishChargingInformation
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.