0% found this document useful (0 votes)
218 views3 pages

TCAP

This document defines the ASN.1 notation for Transaction Capabilities Application Part (TCAP) messages. It specifies the structure of TCAP messages which include transaction portion fields like begin, end, continue, and abort messages. It also defines the component portion fields for operations like invoke, return result, and return error. Data types like origination transaction ID, destination transaction ID, and problems are also defined.

Uploaded by

nagendrasharma
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
218 views3 pages

TCAP

This document defines the ASN.1 notation for Transaction Capabilities Application Part (TCAP) messages. It specifies the structure of TCAP messages which include transaction portion fields like begin, end, continue, and abort messages. It also defines the component portion fields for operations like invoke, return result, and return error. Data types like origination transaction ID, destination transaction ID, and problems are also defined.

Uploaded by

nagendrasharma
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

-- SLE: numeric notation is mandatory for tyrannioware parser -- Compile to Python using py_output.py - - implicit tcap.asn > tcap_asn.

py -- Freely adapted from the ASN.1 used in WireShark. TCAPMessages {itu-t (0) recommendation (0) q (17) 773 modules(2) messages(1) version3(3)} DEFINITIONS BEGIN --EXPORTS OPERATION, ERROR, Component, InvokeId Type; -- WS stuff ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE { oid OBJECT IDENTIFIER, dialog [0] IMPLICIT Dialog1 } Dialog1 ::= OCTET STRING -- End WS -- Transaction Portion fields TCMessage ::= CHOICE { unidirectional begin end continue abort } Unidirectional ::= SEQUENCE{ dialoguePortion DialoguePortion OPTIONAL, components ComponentPortion } Begin ::= SEQUENCE{ otid OrigTransactionID, dialoguePortion DialoguePortion OPTIONAL, components ComponentPortion OPTIONAL } End ::= SEQUENCE{ dtid DestTransactionID, dialoguePortion DialoguePortion OPTIONAL, components ComponentPortion OPTIONAL } Continue ::= SEQUENCE { otid OrigTransactionID, dtid DestTransactionID, dialoguePortion DialoguePortion OPTIONAL, components ComponentPortion OPTIONAL } Abort ::= SEQUENCE{ dtid reason } Reason ::= CHOICE{ p-abortCause u-abortCause } -------------DestTransactionID, Reason OPTIONAL ::=

[APPLICATION 1] IMPLICIT Unidirectional, [APPLICATION 2] IMPLICIT Begin, [APPLICATION 4] IMPLICIT End, [APPLICATION 5] IMPLICIT Continue, [APPLICATION 7] IMPLICIT Abort

P-AbortCause, DialoguePortion

NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may be present. The u-abortCause may be generated by the component sublayer in which case it is an ABRT APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined abstract syntax. WS adaptation DialoguePortion ::= [APPLICATION DialogueOC ::= OCTET STRING WS adaptation: END

DialoguePortion ::= [APPLICATION 11] EXPLICIT EXTERNAL 11] IMPLICIT DialogueOC

The dialogue portion carries the dialogue control PDUs as value of the external data type. The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) } if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) } if unstructured dialogue is used or any user defined abstract syntax name when only user information is carried (e.g. when user information is sent in a 1988 Abort message).

OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) ) DestTransactionID ::=[APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) ) P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER { unrecognizedMessageType (0),

unrecognizedTransactionID (1), badlyFormattedTransactionPortion (2), incorrectTransactionPortion (3), resourceLimitation (4)}(0..127) -- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion. -- The Component Portion may be absent. ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component -- Component Portion fields -- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking -- operations, returning results or error, and for the rejection of invalid PDUs. -- TCAP adds returnResultNotLast to allow for the segmentation of a result. Component ::= CHOICE { invoke returnResultLast returnError reject returnResultNotLast } Invoke ::= [1] IMPLICIT Invoke, [2] IMPLICIT ReturnResult, [3] IMPLICIT ReturnError, [4] IMPLICIT Reject, [7] IMPLICIT ReturnResult

-- The Components are sequences of data elements. SEQUENCE { invokeID linkedID operationCode parameter InvokeIdType, [0] IMPLICIT InvokeIdType OPTIONAL, OPERATION, Parameter OPTIONAL }

Parameter ::= ANY -- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT -- in the type definition of a particular operation. ReturnResult ::= SEQUENCE { invokeID resultretres operationCode parameter } OPTIONAL } InvokeIdType, SEQUENCE { OPERATION, Parameter OPTIONAL

-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition -- of a particular operation. ReturnError ::= SEQUENCE { invokeID InvokeIdType, errorCode ERROR, parameter Parameter OPTIONAL } -- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition -- of a particular error. Reject ::= SEQUENCE { invokeID CHOICE { derivable not-derivable problem CHOICE { generalProblem invokeProblem returnResultProblem returnErrorProblem INTEGER (-128..127) ::= CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ERROR ::= CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } -- OPERATIONS -- Operations are specified with the OPERATION MACRO. -- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated. -- Default values and optional parameters are permitted. --OPERATION MACRO --BEGIN ------TYPE NOTATION VALUE NOTATION ::= ::= Parameter Result Errors LinkedOperations value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ) ::= ArgKeyword NamedType | empty ::= "ARGUMENT" | "PARAMETER"

InvokeIdType, NULL }, [0] [1] [2] [3] IMPLICIT IMPLICIT IMPLICIT IMPLICIT GeneralProblem, InvokeProblem, ReturnResultProblem, ReturnErrorProblem } }

InvokeIdType ::= OPERATION

::=

Parameter ArgKeyword

--------

Result Errors LinkedOperations ResultType ErrorNames ErrorList Error

::=

::= "RESULT" ResultType | empty "ERRORS" "{"ErrorNames"}" | empty ::= "LINKED" "{"LinkedOperationNames"}" | empty ::= NamedType | empty ::= ErrorList | empty ::= Error | ErrorList "," Error ::= value (ERROR) -- shall reference an error value --| type shall reference an error type -- if no error value is specified OperationList | empty Operation | OperationList "," Operation ::= value (OPERATION) -- shall reference an operation value | type shall reference an operation type if -- no operation value is specified ::= identifier type | type

-------END -----

LinkedOperationNames OperationList Operation

::= ::=

NamedType

ERRORS Errors are specified with the ERROR MACRO. When an error is specified, the valid parameters for that error are indicated. Default values and optional parameters are permitted. MACRO ::=

--ERROR ---BEGIN --------END

TYPE NOTATION VALUE NOTATION

::=

::= Parameter value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ) "PARAMETER" NamedType | empty identifier type | type

Parameter NamedType

::= ::=

-- PROBLEMS GeneralProblem ::= INTEGER { unrecognizedComponent (0), mistypedComponent (1), badlyStructuredComponent (2) } duplicateInvokeID (0), unrecognizedOperation (1), mistypedParameter (2), resourceLimitation (3), initiatingRelease (4), unrecognizedLinkedID (5), linkedResponseUnexpected (6), unexpectedLinkedOperation (7) } unrecognizedInvokeID (0), returnResultUnexpected (1), mistypedParameter (2) } unrecognizedInvokeID (0), returnErrorUnexpected (1), unrecognizedError (2), unexpectedError (3), mistypedParameter (4) }

InvokeProblem

::=

INTEGER {

ReturnResultProblem

::=

INTEGER {

ReturnErrorProblem

::=

INTEGER {

END -- end of the TCAP Package Module

You might also like