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.
TesterApp(initates outbound MAP/INAP/CAMEL dialogs)ScriptApp(handles inbound MAP/INAP/CAMEL dialogs)
The following LuaApp services from the core n2svcd module use SigtranApp.
ProcessUssdLuaService(handles inbound MAP dialogs)
The following applications from the n2sip module use SigtranApp.
MssApp(initates outbound INAP/CAMEL dialogs)SrpApp(handles outbound INAP/CAMEL dialogs)
The internal TCAP messages are:
TCAP-RECVTCAP-SENDTCAP-SENTTCAP-FAILTCAP-PREARRANGED-ENDTCAP-TXNCHECK-REQUESTTCAP-TXNCHECK-RESPONSE
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 “
| 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-FAILTCAP-SENT
|
Local TID (iff present in TCAP-SEND)
|
" |
TCAP-TXNCHECK-REQUESTSigtranApp -> Other App |
Existing Local TID |
" |
TCAP-TXNCHECK-RESPONSEOther 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).
- Receipt of an on-the-wire TCAP END or TCAP ABORT.
- Sending an on-the-wire TCAP END or TCAP ABORT.
- 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.
|