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-RECV
TCAP-SEND
TCAP-SENT
TCAP-FAIL
TCAP-PREARRANGED-END
TCAP-TXNCHECK-REQUEST
TCAP-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-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 as received in this TCAP message.
See below for definition of the structure for all local_sccp and remote_sccp elements.
local_sccp
SCCP Address Object
[BEGIN, Required] Our local SCCP address as received in this TCAP message.
See below for definition of the structure for all local_sccp and remote_sccp elements.
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_info_0_octets
Binary
The
reason
.u-abortCause
.single-ASN1-type
.dialoguePDU
.dialogueAbort
.user-information
[0
].encoding
.octet-aligned
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_digits
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 for BEGIN] The far-end SCCP destination address to which the TCAP BEGIN is sent.
This field is not used for TCAP types other than BEGIN.
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_info_0_octets
Binary
Applicable for ABORT only. Not used for BEGIN/CONTINUE/END.
The value to encode into reason
.u-abortCause
.single-ASN1-type
.dialoguePDU
.dialogueAbort
.user-information
[0
].encoding
.octet-aligned
if present.
Note: The local SCCP address is never specified when using TCAP-SEND. It will be set automatically by the SigtranApp which performs the final message encoding and delivery.
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
.