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:
SHUTDOWN
PROBLEM
INITIALDP
ABANDON
TCAP-ABORT
RELEASE
TERMINATION
ANSWER
TEARDOWN
PLAY
PLAYED
SPECIAL
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 : ):
callingPartyBCDNumber was not present).
|
CLD
|
String |
Received IDP calledPartyNumber field data as a concatenation (separated by : ):
calledPartyNumber was not present).
|
CLG
|
String |
[Always Present] Received IDP callingPartyNumber field data as a concatenation (separated by : ):
|
RDR
|
String |
Received IDP redirectingPartyID field data as a concatenation (separated by : ):
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, as configured in the appropriate
SSP Model inap parameter.
|
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:
|
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 or cellIdOrLAI 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:
|
GMSC
|
Hex String |
GMSC address information as a concatenation (separated by : ) of the IDP:
|
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 or cellIdOrLAI LAC.
|
LIDT
|
String |
The type of location information, either CI , CGI , LAI , or SAI .
|
LOC
|
Hex String |
Location number information as a concatenation (separated by : ) of the IDP:
|
LTID
|
Hex String | TCAP Local transaction ID of the received TCAP BEGIN containing the InitialDP. |
MCC
|
Hex String |
The value of the IDP cellGlobalIdOrServiceAreaIdOrLAI or cellIdOrLAI MCC.
|
MNC
|
Hex String |
The value of the IDP cellGlobalIdOrServiceAreaIdOrLAI or cellIdOrLAI MNC.
|
MSC
|
Hex String |
MSC address information as a concatenation (separated by : ) of the IDP:
|
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:
|
RDI
|
String |
Redirection information as a concatenation (separated by : ) of the IDP:
|
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:
|
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:
|
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:
RequestReportBCSMEvent
(one or two)ApplyCharging
CallInformationRequest
FurnishChargingInformation
SendChargingInformation
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:
|
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.
|
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 |
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. |
MAX_TALK
|
Integer |
This field is present if and only if the call is a monitored or charged call. It specifies the maximum allowed talk time for the call. Unit = seconds. |
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. |
REDIRECTION
|
1
|
This field is present and set to 1 if and only if the `Connect` operation is used, and the service specified redirection information.
|
SCI
|
1
|
This field is present if and only if the service requested that a `SendChargingInformation` operation be sent. |
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.
|
RING_DSM
|
Integer | The ring-time in deci-seconds as measured by us, i.e. the wall-clock time between sending INAP/CAMEL `Connect`/`Continue` and receiving `ERBCSM` (Answer). |
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:
|
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, orThe received EventReportBCSM.oCalledPartyBusySpecificInfo.busyCause , orThe received EventReportBCSM.tBusySpecificInfo.busyCause , orThe received EventReportBCSM.tCalledPartyBusySpecificInfo.busyCause , orThe received EventReportBCSM.routeSelectFailureSpecificInfo.failureCause , orThe received EventReportBCSM.oNoAnswerSpecificInfo.oNoAnswerCause
The received EventReportBCSM.tNoAnswerSpecificInfo.tNoAnswerCause
The received EventReportBCSM.oDisconnectSpecificInfo.releaseCause , orThe received EventReportBCSM.tDisconnectSpecificInfo.releaseCause
|
CIR_CAET
|
Integer |
The callAttemptElapsedTimeValue from the CallInformationReport (if present).Unit = seconds. |
CIR_CST
|
<YYYYMMDDHHMMSS>
|
The callStopTimeValue_yyyymmddhhmmss from the CallInformationReport (if present).Note that for INAP the call stop time value on the wire does not specify the millenium or century. The digits 20 will be prefixed to standardise the format with CAMEL.
|
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 SRF 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|SRF=ext-srf
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 SRF-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. |
SRF
|
String | [Always Present] The name of the SRF that will be engaged to perform the interaction. |
PLAYED EDR
The PLAYED
EDR Event indicates that the on-switch or external SRF 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. |
SPECIAL EDR
The SPECIAL
EDR Event is created when a call undergoes special number handling.
Attribute | Type | Description |
---|---|---|
NUMBER
|
String | [Always Present] The destination number that triggered special handling. |
SPECIAL
|
String | [Always Present] The special number handling applied for this call. |
TRANSLATION
|
String | The translated called party number, if number translation was applied for this call. |