1
TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) }
7
EXPORTS OPERATION, ERROR, Component, InvokeIdType;
9
-- Transaction Portion fields
11
MessageType ::= 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 }
17
Unidirectional ::= SEQUENCE {
18
dialoguePortion DialoguePortion OPTIONAL,
19
components ComponentPortion }
22
otid OrigTransactionID,
23
dialoguePortion DialoguePortion OPTIONAL,
24
components ComponentPortion OPTIONAL
28
dtid DestTransactionID,
29
dialoguePortion DialoguePortion OPTIONAL,
30
components ComponentPortion OPTIONAL
33
Continue ::= SEQUENCE {
34
otid OrigTransactionID,
35
dtid DestTransactionID,
36
dialoguePortion DialoguePortion OPTIONAL,
37
components ComponentPortion OPTIONAL
41
dtid DestTransactionID,
42
reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL
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
50
DialoguePortion ::= [APPLICATION 11] EXTERNAL
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).
58
OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
59
DestTransactionID ::= [APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
61
P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
62
unrecognizedMessageType (0),
63
unrecognizedTransactionID (1),
64
badlyFormattedTransactionPortion (2),
65
incorrectTransactionPortion (3),
66
resourceLimitation (4) }
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.
71
ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
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.
77
Component ::= 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 }
84
-- The Components are sequences of data elements.
87
invokeID InvokeIdType,
88
linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
89
operationCode OPERATION,
90
parameter ANY DEFINED BY operationCode OPTIONAL }
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.
95
ReturnResult ::= SEQUENCE {
96
invokeID InvokeIdType,
98
operationCode OPERATION,
99
parameter ANY DEFINED BY operationCode
103
-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
104
-- of a particular operation.
106
ReturnError ::= SEQUENCE {
107
invokeID InvokeIdType,
109
parameter ANY DEFINED BY errorCode OPTIONAL }
111
-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
112
-- of a particular error.
116
-- Recommendation Q.773 (06/97) 3
118
Reject ::= SEQUENCE {
120
derivable InvokeIdType,
121
not-derivable NULL },
123
generalProblem [0] IMPLICIT GeneralProblem,
124
invokeProblem [1] IMPLICIT InvokeProblem,
125
returnResultProblem [2] IMPLICIT ReturnResultProblem,
126
returnErrorProblem [3] IMPLICIT ReturnErrorProblem
130
InvokeIdType ::= INTEGER ( -128..127)
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.
138
OPERATION ::= INTEGER ( 0..65535 )
139
ERROR ::= INTEGER ( 0..65535 )
141
--OPERATION MACRO ::=
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)
154
-- shall reference an error value
157
-- shall reference an error type
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
165
-- shall reference an operation type if
167
-- no operation value is specified
168
-- NamedType ::= identifier type | type
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.
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
186
GeneralProblem ::= INTEGER { unrecognizedComponent (0),
187
mistypedComponent (1),
188
badlyStructuredComponent (2) }
189
InvokeProblem ::= INTEGER { duplicateInvokeID (0),
190
unrecognizedOperation (1),
191
mistypedParameter (2),
192
resourceLimitation (3),
193
initiatingRelease (4),
194
unrecognizedLinkedID (5),
195
linkedResponseUnexpected (6),
196
unexpectedLinkedOperation (7) }
197
ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0),
198
returnResultUnexpected (1),
199
mistypedParameter (2) }
200
ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0),
201
returnErrorUnexpected (1),
202
unrecognizedError (2),
204
mistypedParameter (4) }