SCP EDRs (Common)

Introduction

All of the N-Squared Intelligent Networking (IN) SCP interaction and control solutions including The N2DSG-SCP (N-Squared Diameter Signalling Gateway - SCP), N2NP-SCP (N-Squared Number Portability SCP), and N2ACD-SIP (N-Squared Advanced Call Distribution SCP version) are built on a single common ScpApp base class.

This page defines the common SCP-level EDRs which can be generated by any of these SCP call control applications.

The SCP EDR Event Types are:

Each application built on this framework will typically generate additional service-specific Event Data Records which may be merged into the same EDR stream, or may be written to an independent EDR stream.

Not all applications will use all event types.

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 EDRs are written 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.

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 call. 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|CLD=0800999013:2
|CLG=414511860:3|CPC=f7|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.
CDB String Received IDP callingPartyBCDNumber field data as a concatenation (separated by :):
  • calledPartyBCDNumber digits
  • calledPartyBCDNumber NOA
  • calledPartyBCDNumber NPI (only if extended IDP EDRs are enabled)
(Default = callingPartyBCDNumber was not present).
CLD String Received IDP calledPartyNumber field data as a concatenation (separated by :):
  • calledPartyNumber digits
  • calledPartyNumber NOA
  • calledPartyNumber INN (only if extended IDP EDRs are enabled)
  • calledPartyNumber NPI (only if extended IDP EDRs are enabled)
(Default = calledPartyNumber was not present).
CLG String [Always Present] Received IDP callingPartyNumber field data as a concatenation (separated by :):
  • callingPartyNumber digits
  • callingPartyNumber NOA
  • callingPartyNumber NI (only if extended IDP EDRs are enabled)
  • callingPartyNumber NPI (only if extended IDP EDRs are enabled)
  • callingPartyNumber PRI (only if extended IDP EDRs are enabled)
  • callingPartyNumber SI (only if extended IDP EDRs are enabled)
RDR String Received IDP redirectingPartyID field data as a concatenation (separated by :):
  • redirectingPartyID digits
  • redirectingPartyID NOA
  • redirectingPartyID NPI (only if extended IDP EDRs are enabled)
  • redirectingPartyID PRI (only if extended IDP EDRs are enabled)
(Default = redirectingPartyID was not present).
CPC Hex String The complete received callingPartysCategory argument in hex.
(Default = callingPartysCategory was not present).
SK Integer [Always Present] The integer value of the ServiceKey argument.
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, etc.
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.

If the edr_initialdp_extended configuration parameter is set, INITIALDP EDRs may also contain additional fields. All of these fields are only present if the received IDP contained the relevant information.

Note that some core fields may contain additional data if extended IDP EDRs are enabled, as shown above.

Field Type Description
ACLG Hex String Additional calling party information as a concatenation (separated by :) of the IDP:
  • additionalCallingPartyNumber digits
  • additionalCallingPartyNumber NQI
  • additionalCallingPartyNumber NOA
  • additionalCallingPartyNumber NI
  • additionalCallingPartyNumber NPI
  • additionalCallingPartyNumber PRI
  • additionalCallingPartyNumber SI
AOLI Integer The value of the IDP ageOfLocationInformation.
BC Hex String The value of the IDP bearerCapability.
CFU Integer Set to 1 if the IDP contains either gsm-ForwardingPending or callForwardingSS-Pending.
CI Hex String The value of the IDP cellGlobalIdOrServiceAreaIdOrLAI cell ID.
CRN Hex String The value of the IDP callReferenceNumber.
ET Integer The value of the IDP eventTypeBCSM.
FDST Hex String Forwarding destination information as a concatenation (separated by :) of the IDP:
  • initialDPArgExtension->forwardingDestinationNumber digits
  • initialDPArgExtension->forwardingDestinationNumber NOA
  • initialDPArgExtension->forwardingDestinationNumber INN
  • initialDPArgExtension->forwardingDestinationNumber NPI
GMSC Hex String GMSC address information as a concatenation (separated by :) of the IDP:
  • initialDPArgExtension->gmscAddress digits
  • initialDPArgExtension->gmscAddress NOA
  • initialDPArgExtension->gmscAddress NPI
HLC Hex String The value of the IDP highLayerCompatibility.
IMEI Hex String The value of the IDP iMEI digits.
IMSI Hex String The value of the IDP iMSI digits.
IPSSPCAP Hex String The value of the IDP ipSSPCapabilities.
LAC Hex String The value of the IDP cellGlobalIdOrServiceAreaIdOrLAI LAC.
LIDT String The type of location information, either CGI, LAI, or SAI.
LOC Hex String Location number information as a concatenation (separated by :) of the IDP:
  • locationNumber digits
  • locationNumber NOA
  • locationNumber INN
  • locationNumber NPI
  • locationNumber PRI
  • locationNumber SI
LTID Hex String TCAP Local transaction ID of the received TCAP BEGIN containing the InitialDP.
MCC Hex String The value of the IDP cellGlobalIdOrServiceAreaIdOrLAI MCC.
MNC Hex String The value of the IDP cellGlobalIdOrServiceAreaIdOrLAI MNC.
MSC Hex String MSC address information as a concatenation (separated by :) of the IDP:
  • mscAddress digits
  • mscAddress NOA
  • mscAddress NPI
OCAP4F Hex String The value of the IDP initialDPArgExtension-> offeredCamel4Functionalities digits.
OCLD Hex String Original called party information as a concatenation (separated by :) of the IDP:
  • calledPartyNumber digits
  • calledPartyNumber NOA
  • calledPartyNumber NPI
  • calledPartyNumber PRI
RDI String Redirection information as a concatenation (separated by :) of the IDP:
  • redirectionInformation -> original redirection reason
  • redirectionInformation -> redirection indicator
  • redirectionInformation -> redirection reason
  • redirectionInformation -> redirection national indicator
  • redirectionInformation -> redirection counter
RTID Hex String TCAP Remote transaction ID of the received TCAP BEGIN containing the InitialDP.
RPC Integer SCCP Remote Point Code of received TCAP BEGIN containing the InitialDP (if present).
RSSN Integer SCCP Remote Sub-System Number of received TCAP BEGIN containing the InitialDP (if present).
RGTD Hex String SCCP Remote Global Title Digits of received TCAP BEGIN containing the InitialDP (if present).
SCAP Hex String The value of the IDP initialDPArgExtension-> offeredCamel4Functionalities digits.
SUBS String The subscriber state, inferred from the IDP subscriberState field. One of:
  • IDLE - assumed idle
  • BUSY - busy
  • NDNR - network determined not reachable
  • NPVLR - not provided from VLR
  • UNK - otherwise
TIME Hex String The value of the IDP timeAndTimezone digits.
TSVC Hex String The value of the IDP ext-Teleservice digits.
VLR Hex String VLR number information as a concatenation (separated by :) of the IDP:
  • locationInformation->vlrNumber digits
  • locationInformation->vlrNumber NOA
  • locationInformation->vlrNumber NPI

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

Field Type Description
CALLED Hex String [Always Present] The logical "Called Party" after normalisation.
Taken from calledPartyNumber or calledPartyBCDNumber.

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
|DESTINATION=04200999007|DRA=04200999007:3|NOANSWER=70

Field Type Description
ARMED String This field shows the INAP/CAMEL event detection points (EDPs) that the SCP requested be armed during this termination.
Requested EDP are separated by / and show the EDP number and the leg number joined with a . character.
Note that this list may not match the on-the-wire RequestReportBCSM EDP list in the case where an EDP is still armed from a previous termination, for the two following cases:
  1. An EDP still armed from a previous termination and still required will be present in this list, but absent in the RRBCSME.
  2. An EDP still armed from a previous termination but not required will be absent in this list, but present in the RRBCSM.
This field will be empty if the SCP does not require any EDPs to be armed for this termination.
BPARTY_BEEP 1 This field is present and set to 1 if and only the termination attempt will effect a B-Party Beep after answer.
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.
DESTINATION String This field is present if and only if the Connect operation is used.
The pre-denormalised digits of the destination routing address as requested by the service logic.
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 :.
This will include any digits added by the SSP rrbcsm_prefix configuration.
FCI 1 This field is present if and only if the service requested that a `FurnishChargingInformation` operation be sent.
SCI 1 This field is present if and only if the service requested that a `SendChargingInformation` operation be sent.
NOANSWER Integer This field is present if and only if the service specified a no-answer timer value.
Unit = seconds.
OCP String This field is present if and only if the Connect operation is used, and contained an original called party ID.
The denormalised digits and NoA of the originalCalledPartyID separated by :.
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 pre-denormalised original called party digits requested by the service.
RDP String This field is present if and only if the `Connect` operation is used, and contained a redirecting party ID.
The denormalised digits and NoA of the redirectingPartyID 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 pre-denormalised redirecting party digits requested by the service.
1 Boolean This field is present and set to 1 if and only if the `Connect` operation is used, and the service specified redirection information.
CALLING String This field is present if and only if the Connect operation is used, and the service specified a calling party number.
The denormalised digits and NoA of the calling party number separated by :. Note that for CAMEL networks, this value is sent in the genericNumber field, but for other networks it is sent as callingPartyNumber

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 from the service logic side.
I.e. the call control is using "Attempt" type termination.
The call has been answered and hence the service logic may not attempt subsequent telephony actions.
ONGOING 1 This field is present if and only if the call control is ongoing from the service logic side.
I.e. the call control is using "Monitored" or "Charged" type termination.
The call has been answered. The service logic may subsequently affect the ongoing call legs, e.g. grant or deny extensions, or end the call which is in progress.

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 <YYMMDDHHMMSS> 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.
TIMER Integer This field is present if and only if a ResetTimer operation is sent to the SSP as part of the interaction.
Contains the value of the timervalue field of the ResetTimer 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.
If the service or system defaults marked these digits as "private" then the digits will be replaced by the ? character in the EDR.
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.