1TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) tcapPackage(0) version4(4)}
2
3DEFINITIONS ::=
4-- iso(1) memberbody(2)
5-- usa(840) T1.114(10013)
6
7BEGIN
8	 -- defining a module called TCAPPackage which contains type
9	 -- definitions for the contents of any generic TCAP message
10
11--exports everything
12
13IMPORTS OPERATION, ERROR FROM
14		TCAP-Remote-Operations-Information-Objects{iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) information-objects(1) version4(4)};
15
16PackageType ::= CHOICE { unidirectional				[PRIVATE 1] IMPLICIT UniTransactionPDU,
17						 queryWithPerm				[PRIVATE 2] IMPLICIT TransactionPDU,
18						 queryWithoutPerm			[PRIVATE 3] IMPLICIT TransactionPDU,
19						 response					[PRIVATE 4] IMPLICIT TransactionPDU,
20						 conversationWithPerm		[PRIVATE 5] IMPLICIT TransactionPDU,
21						 conversationWithoutPerm	[PRIVATE 6] IMPLICIT TransactionPDU,
22						 abort						[PRIVATE 22] IMPLICIT Abort
23						 }
24
25UniTransactionPDU ::= SEQUENCE {
26						identifier TransactionID,
27						dialoguePortion DialoguePortion OPTIONAL,
28						componentPortion ComponentSequence
29						}
30
31TransactionPDU ::= SEQUENCE {
32						identifier TransactionID,
33						dialoguePortion DialoguePortion OPTIONAL,
34						componentPortion ComponentSequence OPTIONAL
35						}
36--TransactionPDU should include either a Dialogue Portion, a Component Sequence or both
37
38TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING
39-- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort
40-- 8 octets for Conversation in the order Originating then Responding TID
41
42Abort ::= SEQUENCE {
43						identifier				TransactionID,
44						dialogPortion			DialoguePortion OPTIONAL,
45						causeInformation CHOICE {
46							abortCause		P-Abort-cause,
47							userInformation UserAbortInformation --OPTIONAL
48						}
49					}
50-- When the Abort package is generated by the Transaction sublayer,
51-- the P-Abort-cause must be present
52
53P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER{
54						unrecognizedPackageType (1),
55						incorrectTransactionPortion (2),
56						badlyStructuredTransactionPortion (3),
57						unassignedRespondingTransactionID (4),
58						permissionToReleaseProblem (5), -- for further study
59						resourceUnavailable (6),
60						unrecognizedDialoguePortionID (7),
61						badlyStructuredDialoguePortion (8),
62						missingDialoguePortion (9),
63						inconsistentDialoguePortion (10)
64						}
65
66DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE {
67						version			ProtocolVersion OPTIONAL,
68						applicationContext CHOICE {
69							integerApplicationId IntegerApplicationContext,
70							objectApplicationId ObjectIDApplicationContext
71						} OPTIONAL,
72						userInformation UserInformation OPTIONAL,
73						securityContext CHOICE {
74						integerSecurityId [0] IMPLICIT INTEGER,
75						objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER
76						} OPTIONAL,
77
78						confidentiality [2] IMPLICIT Confidentiality OPTIONAL
79}
80
81ProtocolVersion ::=[PRIVATE 26] IMPLICIT OCTET STRING (SIZE (1))
82--0000 0000 not used
83--0000 0001 T1.114-1996
84--0000 0010 T1.114-2000
85--other reserved
86--These values can be combined using the bit-wise logical or operation
87-- to indicate support for more than one version, e.g. the value 0000 0011
88-- means that both 1996 and 2000 versions are supported
89
90IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER
91
92ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER
93
94UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL
95
96Confidentiality ::= SEQUENCE {
97						confidentialityId CHOICE {
98							integerConfidentialityId [0] IMPLICIT INTEGER,
99							objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER
100						} OPTIONAL
101-- The extension marker indicates the possible presence of items
102-- in the confidentiality set that are used by the confidentiality
103-- algorithm.
104}
105
106UserAbortInformation ::= [PRIVATE 24] EXTERNAL
107
108ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU
109-- Component Portion specification starts below
110
111ComponentPDU{ InvokeId: InvokeIdSet, OPERATION: Invocable, OPERATION: Returnable } ::=
112	CHOICE {
113	invokeLast			[PRIVATE 9] IMPLICIT Invoke {{InvokeIdSet}, {Invocable}}
114	(CONSTRAINED BY { --invocable.&invokeLast must be TRUE -- }
115	! RejectProblem : general-incorrectComponentPortion),
116	returnResultLast	[PRIVATE 10] IMPLICIT ReturnResult{{Returnable}},
117	returnError			[PRIVATE 11] IMPLICIT ReturnError{{Errors{{Returnable}}}},
118	reject				[PRIVATE 12] IMPLICIT Reject,
119	invokeNotLast		[PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}}
120	(CONSTRAINED BY { --invocable.&invokeLast must be FALSE -- }
121	! RejectProblem : general-incorrectComponentPortion),
122	returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult {{Returnable}}
123	}
124	(CONSTRAINED BY { -- must conform to the above definition -- }
125	! RejectProblem : general-unrecognisedComponentType)
126
127Invoke{ InvokeID: InvokeIdSet, OPERATION: Operations } ::= SEQUENCE {
128	componentIDs		[PRIVATE 15] IMPLICIT OCTET STRING (SIZE(0..2))
129									-- The invoke ID precedes the correlation id. There may be no
130									-- identifier,only an invoke ID, or both invoke and correlation
131									--ID's.
132									(CONSTRAINED BY { -- must be unambiguous -- }
133									! RejectProblem : invoke-duplicateInvocation )
134									(CONSTRAINED BY { -- correlation ID must identify an
135									-- outstanding operation -- }
136									! RejectProblem : invoke-unrecognisedCorrelationId )
137						OPTIONAL,
138	operationCode		OPERATION.&operationCode
139						((Operations)
140						! RejectProblem : invoke-unrecognisedOperation),
141	parameter
142						OPERATION.&ParameterType
143						({Operations}{@opcode}
144						! RejectProblem : invoke-mistypedArgument ) OPTIONAL
145	}
146	(CONSTRAINED BY { -- must conform to the above definition -- }
147	! RejectProblem : general-incorrectComponentPortion )
148	(CONSTRAINED BY { -- must have consistent encoding -- }
149	! RejectProblem : general-badlyStructuredCompPortion )
150	(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
151	! RejectProblem : general-incorrectComponentCoding )
152
153ReturnResult{ OPERATION: Operations } ::= SEQUENCE {
154	componentID			[PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
155						(CONSTRAINED BY { --must be that of an outstanding operation--}
156						! RejectProblem : returnResult-unrecognisedCorrelationId)
157						(CONSTRAINED BY { -- which returns a result -- }
158						! RejectProblem : returnResult-unexpectedReturnResult),
159	parameter			OPERATION.&ResultType
160						({Operations}{@opcode}
161						! RejectProblem : returnResult-incorrectParameter)
162						OPTIONAL
163	}
164	(CONSTRAINED BY { -- must conform to the above definition -- }
165	! RejectProblem : general-incorrectComponentPortion )
166	(CONSTRAINED BY { -- must have consistent encoding -- }
167	! RejectProblem : general-badlyStructuredCompPortion )
168	(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
169	! RejectProblem : general-incorrectComponentCoding )
170
171ReturnError{ ERROR: Errors } ::= SEQUENCE {
172	componentID			[PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1))
173						(CONSTRAINED BY { --must be that of an outstanding operation--}
174						! RejectProblem : returnError-unrecognisedCorrelationId)
175						(CONSTRAINED BY { --which returns an error-- }
176						! RejectProblem : returnError-unexpectedReturnError),
177	errorCode			ERROR.&errorCode
178						({Errors}
179						! RejectProblem : returnError-unrecognisedError)
180						(CONSTRAINED BY { -- must be in the &Errors field of the
181						--associated operation -- }
182						! RejectProblem : returnError-unexpectedError),
183	parameter
184						ERROR.&ParameterType
185						({Errors}{@errorcode}
186						! RejectProblem : returnError-incorrectParameter) OPTIONAL
187	}
188	(CONSTRAINED BY { -- must conform to the above definition -- }
189	! RejectProblem : general-incorrectComponentPortion )
190	(CONSTRAINED BY { -- must have consistent encoding -- }
191	! RejectProblem : general-badlyStructuredCompPortion )
192	(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
193	! RejectProblem : general-incorrectComponentCoding )
194
195Reject ::= SEQUENCE {
196	componentID			[PRIVATE 15] IMPLICIT OCTET STRING (SIZE(0..1)),
197	rejectProblem		[PRIVATE 21] IMPLICIT Problem,
198	parameter CHOICE {
199		paramSequence [PRIVATE 16] IMPLICIT SEQUENCE { },
200		paramSet [PRIVATE 18] IMPLICIT SET { }
201	}	--The choice between paramSequence and paramSet is implementation
202		--dependent, however paramSequence is preferred.
203}
204	(CONSTRAINED BY { -- must conform to the above definition -- }
205	! RejectProblem : general-incorrectComponentPortion )
206	(CONSTRAINED BY { -- must have consistent encoding -- }
207	! RejectProblem : general-badlyStructuredCompPortion )
208	(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- }
209	! RejectProblem : general-incorrectComponentCoding )
210
211-- PROBLEMS, the specification of Problems follows
212Problem ::= INTEGER {
213	general-unrecognisedComponentType (257),
214	general-incorrectComponentPortion (258),
215	general-badlyStructuredCompPortion (259),
216	general-incorrectComponentCoding (260),
217	invoke-duplicateInvocation (513),
218	invoke-unrecognisedOperation (514),
219	invoke-incorrectParameter (515),
220	invoke-unrecognisedCorrelationID (516),
221	returnResult-unrecognisedCorrelationID (769),
222	returnResult-unexpectedReturnResult (770),
223	returnResult-incorrectParameter (771),
224	returnError-unrecognisedCorrelationID (1025),
225	returnError-unexpectedReturnError (1026),
226	returnError-unrecognisedError (1027),
227	returnError-unexpectedError (1028),
228	returnError-incorrectParameter (1029),
229	-- Applications using T1.114-1988 report Transaction portion
230	-- problems using a Reject component with a problem code in
231	-- the range 1281-1286.
232	-- It is preferred that other applications report
233	-- these problems using the Abort package type
234	transaction-unrecognizedPackageType (1281),
235	transaction-incorrectTransPortion (1282),
236	transaction-badlyStructuredTransPortion (1283),
237	transaction-unassignedRespondingTransID (1284),
238	transaction-permissionToReleaseProblem (1285),
239	transaction-resourceUnavailable (1286)
240	}
241
242END -- end of the TCAPPackage Module
243