1TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) } 2 3DEFINITIONS ::= 4 5BEGIN 6 7EXPORTS OPERATION, ERROR, Component, InvokeIdType; 8 9-- Transaction Portion fields 10 11MessageType ::= CHOICE { unidirectional [APPLICATION 1] IMPLICIT Unidirectional, 12 begin [APPLICATION 2] IMPLICIT Begin, 13 end [APPLICATION 4] IMPLICIT End, 14 continue [APPLICATION 5] IMPLICIT Continue, 15 abort [APPLICATION 7] IMPLICIT Abort } 16 17Unidirectional ::= SEQUENCE { 18 dialoguePortion DialoguePortion OPTIONAL, 19 components ComponentPortion } 20 21Begin ::= SEQUENCE { 22 otid OrigTransactionID, 23 dialoguePortion DialoguePortion OPTIONAL, 24 components ComponentPortion OPTIONAL 25 } 26 27End ::= SEQUENCE { 28 dtid DestTransactionID, 29 dialoguePortion DialoguePortion OPTIONAL, 30 components ComponentPortion OPTIONAL 31 } 32 33Continue ::= SEQUENCE { 34 otid OrigTransactionID, 35 dtid DestTransactionID, 36 dialoguePortion DialoguePortion OPTIONAL, 37 components ComponentPortion OPTIONAL 38 } 39 40Abort ::= SEQUENCE { 41 dtid DestTransactionID, 42 reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL 43 } 44 45-- NOTE When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause must be 46-- present.The u-abortCause may be generated by the component sublayer in which case it is an ABRT 47-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined 48-- abstract syntax. 49 50DialoguePortion ::= [APPLICATION 11] EXTERNAL 51 52-- The dialogue portion carries the dialogue control PDUs as value of the external data type. 53-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) } 54-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) } 55-- if unstructured dialogue is used or any user defined abstract syntax name when only user information 56-- is carried (e.g. when user information is sent in a 1988 Abort message). 57 58OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) ) 59DestTransactionID ::= [APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) ) 60 61P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER { 62 unrecognizedMessageType (0), 63 unrecognizedTransactionID (1), 64 badlyFormattedTransactionPortion (2), 65 incorrectTransactionPortion (3), 66 resourceLimitation (4) } 67 68-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion. 69-- The Component Portion may be absent. 70 71ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component 72 73-- Component Portion fields 74-- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data Units (APDUs). 75-- TCAP adds returnResultNotLast to allow for the segmentation of a result. 76 77Component ::= CHOICE { 78 invoke [1] IMPLICIT Invoke, 79 returnResultLast [2] IMPLICIT ReturnResult, 80 returnError [3] IMPLICIT ReturnError, 81 reject [4] IMPLICIT Reject, 82 returnResultNotLast [7] IMPLICIT ReturnResult } 83 84-- The Components are sequences of data elements. 85 86Invoke ::= SEQUENCE { 87 invokeID InvokeIdType, 88 linkedID [0] IMPLICIT InvokeIdType OPTIONAL, 89 operationCode OPERATION, 90 parameter ANY DEFINED BY operationCode OPTIONAL } 91 92-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT 93-- in the type definition of a particular operation. 94 95ReturnResult ::= SEQUENCE { 96 invokeID InvokeIdType, 97 result SEQUENCE { 98 operationCode OPERATION, 99 parameter ANY DEFINED BY operationCode 100 } OPTIONAL 101 } 102 103-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition 104-- of a particular operation. 105 106ReturnError ::= SEQUENCE { 107 invokeID InvokeIdType, 108 errorCode ERROR, 109 parameter ANY DEFINED BY errorCode OPTIONAL } 110 111-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition 112-- of a particular error. 113 114 115 116-- Recommendation Q.773 (06/97) 3 117 118Reject ::= SEQUENCE { 119 invokeID CHOICE { 120 derivable InvokeIdType, 121 not-derivable NULL }, 122 problem CHOICE { 123 generalProblem [0] IMPLICIT GeneralProblem, 124 invokeProblem [1] IMPLICIT InvokeProblem, 125 returnResultProblem [2] IMPLICIT ReturnResultProblem, 126 returnErrorProblem [3] IMPLICIT ReturnErrorProblem 127 } 128 } 129 130InvokeIdType ::= INTEGER ( -128..127) 131 132-- OPERATIONS 133-- Operations are specified with the OPERATION MACRO. 134-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated. 135-- Default values and optional parameters are permitted. 136 137-- FAKE OPERATION 138OPERATION ::= INTEGER ( 0..65535 ) 139ERROR ::= INTEGER ( 0..65535 ) 140 141--OPERATION MACRO ::= 142--BEGIN 143-- TYPE NOTATION ::= Parameter Result Errors LinkedOperations 144-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ) 145-- Parameter ::= ArgKeyword NamedType | empty ArgKeyword ::= "ARGUMENT" | "PARAMETER" 146-- Result ::= "RESULT" ResultType | empty 147-- Errors ::= "ERRORS" "{"ErrorNames"}" | empty 148-- LinkedOperations ::= "LINKED" "{"LinkedOperationNames"}" | empty 149-- ResultType ::= NamedType | empty 150-- ErrorNames ::= ErrorList | empty 151-- ErrorList ::= Error | ErrorList "," Error 152-- Error ::= value (ERROR) 153-- 154-- shall reference an error value 155-- 156-- | type 157-- shall reference an error type 158-- 159-- if no error value is specified 160-- LinkedOperationNames ::= OperationList | empty 161-- OperationList ::= Operation | OperationList "," Operation 162-- Operation ::= value (OPERATION) 163-- shall reference an operation value 164-- | type 165-- shall reference an operation type if 166-- 167-- no operation value is specified 168-- NamedType ::= identifier type | type 169--END 170 171-- ERRORS 172-- Errors are specified with the ERROR MACRO. 173-- When an error is specified, the valid parameters for that error are indicated. 174-- Default values and optional parameters are permitted. 175 176--ERROR MACRO ::= 177--BEGIN 178-- TYPE NOTATION ::= Parameter 179-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ) 180-- Parameter ::= "PARAMETER" NamedType | empty 181-- NamedType ::= identifier type | type 182--END 183 184-- PROBLEMS 185 186GeneralProblem ::= INTEGER { unrecognizedComponent (0), 187 mistypedComponent (1), 188 badlyStructuredComponent (2) } 189InvokeProblem ::= INTEGER { duplicateInvokeID (0), 190 unrecognizedOperation (1), 191 mistypedParameter (2), 192 resourceLimitation (3), 193 initiatingRelease (4), 194 unrecognizedLinkedID (5), 195 linkedResponseUnexpected (6), 196 unexpectedLinkedOperation (7) } 197ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0), 198 returnResultUnexpected (1), 199 mistypedParameter (2) } 200ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0), 201 returnErrorUnexpected (1), 202 unrecognizedError (2), 203 unexpectedError (3), 204 mistypedParameter (4) } 205 206END -- TCAPMessages 207