TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) } DEFINITIONS ::= BEGIN EXPORTS OPERATION, ERROR, Component, InvokeIdType; -- Transaction Portion fields MessageType ::= CHOICE { unidirectional [APPLICATION 1] IMPLICIT Unidirectional, begin [APPLICATION 2] IMPLICIT Begin, end [APPLICATION 4] IMPLICIT End, continue [APPLICATION 5] IMPLICIT Continue, abort [APPLICATION 7] IMPLICIT 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 DestTransactionID, reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL } -- NOTE When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause must 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. DialoguePortion ::= [APPLICATION 11] EXTERNAL -- 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) } -- 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 -- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data Units (APDUs). -- TCAP adds returnResultNotLast to allow for the segmentation of a result. Component ::= CHOICE { invoke [1] IMPLICIT Invoke, returnResultLast [2] IMPLICIT ReturnResult, returnError [3] IMPLICIT ReturnError, reject [4] IMPLICIT Reject, returnResultNotLast [7] IMPLICIT ReturnResult } -- The Components are sequences of data elements. Invoke ::= SEQUENCE { invokeID InvokeIdType, linkedID [0] IMPLICIT InvokeIdType OPTIONAL, operationCode OPERATION, parameter ANY DEFINED BY operationCode OPTIONAL } -- 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 InvokeIdType, result SEQUENCE { operationCode OPERATION, parameter ANY DEFINED BY operationCode } 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 ANY DEFINED BY errorCode OPTIONAL } -- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition -- of a particular error. -- Recommendation Q.773 (06/97) 3 Reject ::= SEQUENCE { invokeID CHOICE { derivable InvokeIdType, not-derivable NULL }, problem CHOICE { generalProblem [0] IMPLICIT GeneralProblem, invokeProblem [1] IMPLICIT InvokeProblem, returnResultProblem [2] IMPLICIT ReturnResultProblem, returnErrorProblem [3] IMPLICIT ReturnErrorProblem } } InvokeIdType ::= INTEGER ( -128..127) -- 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. -- FAKE OPERATION OPERATION ::= INTEGER ( 0..65535 ) ERROR ::= INTEGER ( 0..65535 ) --OPERATION MACRO ::= --BEGIN -- TYPE NOTATION ::= Parameter Result Errors LinkedOperations -- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ) -- Parameter ::= ArgKeyword NamedType | empty ArgKeyword ::= "ARGUMENT" | "PARAMETER" -- Result ::= "RESULT" ResultType | empty -- Errors ::= "ERRORS" "{"ErrorNames"}" | empty -- LinkedOperations ::= "LINKED" "{"LinkedOperationNames"}" | empty -- ResultType ::= NamedType | empty -- ErrorNames ::= ErrorList | empty -- ErrorList ::= Error | ErrorList "," Error -- Error ::= value (ERROR) -- -- shall reference an error value -- -- | type -- shall reference an error type -- -- if no error value is specified -- LinkedOperationNames ::= OperationList | empty -- OperationList ::= Operation | OperationList "," Operation -- Operation ::= value (OPERATION) -- shall reference an operation value -- | type -- shall reference an operation type if -- -- no operation value is specified -- NamedType ::= identifier type | type --END -- 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. --ERROR MACRO ::= --BEGIN -- TYPE NOTATION ::= Parameter -- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ) -- Parameter ::= "PARAMETER" NamedType | empty -- NamedType ::= identifier type | type --END -- PROBLEMS GeneralProblem ::= INTEGER { unrecognizedComponent (0), mistypedComponent (1), badlyStructuredComponent (2) } InvokeProblem ::= INTEGER { duplicateInvokeID (0), unrecognizedOperation (1), mistypedParameter (2), resourceLimitation (3), initiatingRelease (4), unrecognizedLinkedID (5), linkedResponseUnexpected (6), unexpectedLinkedOperation (7) } ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0), returnResultUnexpected (1), mistypedParameter (2) } ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0), returnErrorUnexpected (1), unrecognizedError (2), unexpectedError (3), mistypedParameter (4) } END -- TCAPMessages