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