TCAP Messages

Introduction

The SIGTRAN Application (SigtranApp) uses TCAP messages to pass inbound and outbound TCAP content internally over the n2svcd message bus.

The following applications from the core n2svcd module use SigtranApp.

The following LuaApp services from the core n2svcd module use SigtranApp.

The following applications from the n2sip module use SigtranApp.

The internal TCAP messages are:

Note that this page uses the term “on-the-wire” to refer to the sending or receiving of TCAP content by the SigtranApp. This term is also inclusive of the case where the message is sent by local loopback and does not physically transit a Network Interface Controller (NIC).

Context for TCAP Messages

Note that when using send_message to send TCAP-… internal messages across the IPC message bus, the contexts are non-standard.

The context for the SigtranApp is the Local TID in hex format (if confirmed).

The “Other App” context is “|” e.g. “424|ssp.scp”.

Message Sender Context Recipient Context
TCAP-RECV (BEGIN, Uncorrelated)
SigtranApp -> Other App
New Local TID `undef`
TCAP-RECV (BEGIN, Correlated, e.g. ARI)
SigtranApp -> Other App
New Local TID "|"
For previous transaction.
TCAP-RECV (non-BEGIN)
SigtranApp -> Other App
Local TID "|"
TCAP-SEND (BEGIN)
Other App -> SigtranApp
"|" New Local TID
TCAP-SEND (non-BEGIN)
Other App -> SigtranApp
"|" Existing Local TID
TCAP-FAIL
TCAP-SENT
Local TID (iff present in TCAP-SEND) "|"
TCAP-TXNCHECK-REQUEST
SigtranApp -> Other App
Existing Local TID "|"
TCAP-TXNCHECK-RESPONSE
Other App -> SigtranApp
"|" Existing Local TID

TCAP-RECV

The TCAP-RECV message is generated by SigtranApp and sent to the receiving app when an inbound TCAP message is received over the SIGTRAN interface. The SigtranApp is responsible for determining which application should receive the TCAP.

For a TCAP BEGIN, this is done using the handlers configuration which will examine the originator, and/or the SCCP SSN, and/or may perform inspection of the user content.

For a TCAP non-BEGIN, there must be an existing context for the Local Transaction ID (TID).

Refer to the SigtranApp Configuration documentation for more information on handling and routing of TCAP-BEGIN within SigtranApp.

The receiving application is responsible for deciding how to process the TCAP-RECV when it arrives. Refer to the documentation for the receiving application.

The attributes of the TCAP-RECV message are:

Field Type Description
type BEGIN, CONTINUE, END, ABORT [Required] One of the specified constant string types.
remote_sccp SCCP Address Object [BEGIN, Required] The far-end SCCP address. See below.
local_sccp SCCP Address Object [BEGIN, Required] Our local SCCP address. See below.
remote_tid Hex String [BEGIN/CONTINUE, Required] Far-end transaction ID in hexadecimal format.
local_tid Hex String [Required] Local transaction ID in hexadecimal format.
For type = BEGIN this is assigned locally by SigtranApp.
For other type values this was received on-the-wire.
dialogue Dialogue Object An object containing parameters related to the TCAP dialogue.
components Array of Component Objects An array of Objects representing TCAP components (if any are present).
Not present for type = ABORT.
abort Object Information extracted from ABORT message received.
p_cause Integer The reason.p-abortCause if present.
u_source 0 / 1 The reason.u-abortCause.single-ASN1-type.dialoguePDU.dialogueAbort.abort-source if present.
u_information Array of Binary The raw ASN.1 content for any elements in the reason.u-abortCause.single-ASN1-type.dialoguePDU.dialogueAbort.user-information if present.
bytes Binary [Required] The TCAP-encoded bytes received on-the-wire.

An SCCP Address Object may contain the following fields:

Field Type Description
ri 0/1 [Required] Routing Indicator.
1 = route on PC + SSN, 0 = Route on GT)
pc Integer Point Code if present.
ssn Integer Sub-System Number if present.
gt_digit Hex Digits Hex Digits for Global Title Address if present.
gt_noa Integer Global Title Nature of Address (0-127) if present.
(Default = 0)
gt_np Integer Global Title Numbering Plan (0-7) if present.
(Default = 1, E.164)
gt_tt Integer Global Title Translation Type (0-255) if present.

A Dialogue Object may contain the following fields:

Field Type Description
protocol_version 1 TCAP Protocol Version. Must be 1 if present.
result Integer Value for single-ASN1-type.dialoguePDU.dialogueResponse.result if present.
result_diagnostic_user Integer Value for single-ASN1-type.dialoguePDU.dialogueResponse.result-source-diagnostic.dialogue-service-user if present.
result_diagnostic_provider Integer Value for single-ASN1-type.dialoguePDU.dialogueResponse.result-source-diagnostic.dialogue-service-provider if present.
application_context Binary Value for single-ASN1-type.dialoguePDU.dialogueResponse.application-context-name if present.
map_open Object Attributes for the MAP-OPEN dialog section if present.
.destination_reference_digits Hex String Value for map-open.destinationReference if present.
.origination_reference_digits Hex String Value for map-open.originationReference if present.

A Component Object may contain the following fields:

Field Type Description
type Invoke/ReturnResult/ ReturnError [Required] Indicates type of component contained within.
last 0/1 Applicable only for type = ReturnResult.
(Default = 0)
invoke_id Integer [Required] The Invoke ID for this component for all types.
invoke Object [Required for Invoke] Parameters within the Invoke.
.linked_id Integer Optional Linked ID iff this Invoke is associated with an earlier Invoke.
.parameter Binary Encoded binary (usually ASN.1 BER) Invoke parameter body.
result Object [Required for ReturnResult] Parameters within the ReturnResult.
.operation_code Integer Operation Code for which this result applies.
.parameter Binary Encoded binary (usually ASN.1 BER) ReturnResult parameter body.
error_code Integer [Required for ReturnError] The code describing the error.

TCAP-SEND

The TCAP-SEND is sent to the SigtranApp by another application wishing to place TCAP bytes on-the-wire. This message can be used to send any TCAP message type.

The attributes of the TCAP-SEND message are:

Field Type Description
ack_sent 0 / 1 Do we require a TCAP-SENT response for tracing purposes?
(Default = 0)
type BEGIN / CONTINUE / END / ABORT [Required] Specify the type of message to be constructed.
remote_sccp SCCP Address Object [Required] The far-end SCCP address.
local_sccp SCCP Address Object [Required] Our local SCCP address.
local_tid Hex String [Required for CONTINUE/END/ABORT] Local transaction ID in hexadecimal format.
The calling application must specify this when continuing an existing transaction. When starting a new transaction with type = BEGIN then the SigtranApp will assign a local transaction ID and provide it to the originating application by using TCAP-CONTINUE.
Note that remote_tid is never specified in TCAP-SEND, instead it is managed by SigtranApp.
components Array of Component Objects Applicable for BEGIN/CONTINUE/END only. Not used for ABORT.
An array of Objects representing TCAP components (if any are present).
dialogue Dialogue Object Applicable for BEGIN/CONTINUE/END only. Not used for ABORT.
An object containing parameters related to the TCAP dialogue.
abort Object Applicable for ABORT only. Not used for BEGIN/CONTINUE/END.
An object containing parameters related to the ABORT content.
p_cause Integer Applicable for ABORT only. Not used for BEGIN/CONTINUE/END.
The value to encode into reason.p-abortCause if present.
u_source 0 / 1 Applicable for ABORT only. Not used for BEGIN/CONTINUE/END.
The value to encode into reason.u-abortCause.single-ASN1-type.dialoguePDU.dialogueAbort.abort-source if present.
u_information Array of Binary Applicable for ABORT only. Not used for BEGIN/CONTINUE/END.
The elements to encode into reason.u-abortCause.single-ASN1-type.dialoguePDU.dialogueAbort.user-information if present.

TCAP-SENT

The TCAP-SENT is sent by the SigtranApp by another application whenever a TCAP-SEND results in a TCAP message being placed on-the-wire.

The attributes of the TCAP-SENT message are:

Field Type Description
type BEGIN/CONTINUE/END/ABORT [Required] The type of TCAP message that was placed on-the-wire.
bytes Binary [Required] The TCAP-encoded bytes placed on-the-wire.

TCAP-FAIL

The TCAP-FAIL is sent by the SigtranApp by another application whenever a TCAP-SEND does not successfully place a TCAP message on-the-wire.

The attributes of the TCAP-FAIL message are:

Field Type Description
type BEGIN/CONTINUE/END/ABORT [Required] The type of TCAP message that was not placed on-the-wire.
local_tid Hex String [Required] Local transaction ID in hexadecimal format.
When this TCAP-FAIL is for type BEGIN, the sending application is responsible for capturing and storing this local transaction ID and including it when attempting to send any follow-up TCAP content for this transaction.
bytes Binary [Required] The TCAP-encoded bytes placed on-the-wire.

TCAP-PREARRANGED-END

The TCAP-PREARRANGED-END is sent by any application to the SigtranApp to indicate that the TCAP local transaction ID should be released, and that no further messages are expected to be received.

There are three ways in which a local transaction ID can be freed (and hence avoid leaking).

  1. Receipt of an on-the-wire TCAP END or TCAP ABORT.
  2. Sending an on-the-wire TCAP END or TCAP ABORT.
  3. Use of TCAP-PREARRANGED-END.

The attributes of the TCAP-PREARRANGED-END message are:

Field Type Description
local_tid Hex String [Required] Local transaction ID in hexadecimal format.

TCAP-SENT

The TCAP-SENT is sent by the SigtranApp by another application whenever a TCAP-SEND results in a TCAP message being placed on-the-wire.

The attributes of the TCAP-SENT message are:

Field Type Description
type BEGIN/CONTINUE/END/ABORT [Required] The type of TCAP message that was placed on-the-wire.
bytes Binary [Required] The TCAP-encoded bytes placed on-the-wire.

TCAP-TXNCHECK-REQUEST

The TCAP-TXNCHECK-REQUEST is sent by the SigtranApp by another application whenever it is concerned that too long an interval has passed without any activity following the sending or receiving of a TCAP CONTINUE message.

The TCAP-TXNCHECK-REQUEST message does not have any details body.

TCAP-TXNCHECK-RESPONSE

The TCAP-TXNCHECK-RESPONSE is sent by the SigtranApp by another application whenever it is concerned that too long an interval has passed without any activity following the sending or receiving of a TCAP CONTINUE message.

The attributes of the TCAP-TXNCHECK-RESPONSE message are:

Field Type Description
success 0/1 [Required] Set to 1 iff the Instance is active, the Transaction is known, and the Transaction is open.
error String Indicates the reason for the non-success response.
Present and applicable only if success == 0.