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