TCAPPackage {iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) tcapPackage(0) version4(4)} DEFINITIONS ::= -- iso(1) memberbody(2) -- usa(840) T1.114(10013) BEGIN -- defining a module called TCAPPackage which contains type -- definitions for the contents of any generic TCAP message --exports everything IMPORTS OPERATION, ERROR FROM TCAP-Remote-Operations-Information-Objects{iso(1) memberbody(2) usa(840) t1-114(10013) modules(0) information-objects(1) version4(4)}; PackageType ::= CHOICE { unidirectional [PRIVATE 1] IMPLICIT UniTransactionPDU, queryWithPerm [PRIVATE 2] IMPLICIT TransactionPDU, queryWithoutPerm [PRIVATE 3] IMPLICIT TransactionPDU, response [PRIVATE 4] IMPLICIT TransactionPDU, conversationWithPerm [PRIVATE 5] IMPLICIT TransactionPDU, conversationWithoutPerm [PRIVATE 6] IMPLICIT TransactionPDU, abort [PRIVATE 22] IMPLICIT Abort } UniTransactionPDU ::= SEQUENCE { identifier TransactionID, dialoguePortion DialoguePortion OPTIONAL, componentPortion ComponentSequence } TransactionPDU ::= SEQUENCE { identifier TransactionID, dialoguePortion DialoguePortion OPTIONAL, componentPortion ComponentSequence OPTIONAL } --TransactionPDU should include either a Dialogue Portion, a Component Sequence or both TransactionID ::= [PRIVATE 7] IMPLICIT OCTET STRING -- 0 octets for the Unidirectional, 4 octets for Query, Response & Abort -- 8 octets for Conversation in the order Originating then Responding TID Abort ::= SEQUENCE { identifier TransactionID, dialogPortion DialoguePortion OPTIONAL, causeInformation CHOICE { abortCause P-Abort-cause, userInformation UserAbortInformation --OPTIONAL } } -- When the Abort package is generated by the Transaction sublayer, -- the P-Abort-cause must be present P-Abort-cause ::= [PRIVATE 23] IMPLICIT INTEGER{ unrecognizedPackageType (1), incorrectTransactionPortion (2), badlyStructuredTransactionPortion (3), unassignedRespondingTransactionID (4), permissionToReleaseProblem (5), -- for further study resourceUnavailable (6), unrecognizedDialoguePortionID (7), badlyStructuredDialoguePortion (8), missingDialoguePortion (9), inconsistentDialoguePortion (10) } DialoguePortion ::= [PRIVATE 25] IMPLICIT SEQUENCE { version ProtocolVersion OPTIONAL, applicationContext CHOICE { integerApplicationId IntegerApplicationContext, objectApplicationId ObjectIDApplicationContext } OPTIONAL, userInformation UserInformation OPTIONAL, securityContext CHOICE { integerSecurityId [0] IMPLICIT INTEGER, objectSecurityId [1] IMPLICIT OBJECT IDENTIFIER } OPTIONAL, confidentiality [2] IMPLICIT Confidentiality OPTIONAL } ProtocolVersion ::=[PRIVATE 26] IMPLICIT OCTET STRING (SIZE (1)) --0000 0000 not used --0000 0001 T1.114-1996 --0000 0010 T1.114-2000 --other reserved --These values can be combined using the bit-wise logical or operation -- to indicate support for more than one version, e.g. the value 0000 0011 -- means that both 1996 and 2000 versions are supported IntegerApplicationContext ::= [PRIVATE 27] IMPLICIT INTEGER ObjectIDApplicationContext ::= [PRIVATE 28] IMPLICIT OBJECT IDENTIFIER UserInformation ::= [PRIVATE 29] IMPLICIT SEQUENCE OF EXTERNAL Confidentiality ::= SEQUENCE { confidentialityId CHOICE { integerConfidentialityId [0] IMPLICIT INTEGER, objectConfidentialityId [1] IMPLICIT OBJECT IDENTIFIER } OPTIONAL -- The extension marker indicates the possible presence of items -- in the confidentiality set that are used by the confidentiality -- algorithm. } UserAbortInformation ::= [PRIVATE 24] EXTERNAL ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU -- Component Portion specification starts below ComponentPDU{ InvokeId: InvokeIdSet, OPERATION: Invocable, OPERATION: Returnable } ::= CHOICE { invokeLast [PRIVATE 9] IMPLICIT Invoke {{InvokeIdSet}, {Invocable}} (CONSTRAINED BY { --invocable.&invokeLast must be TRUE -- } ! RejectProblem : general-incorrectComponentPortion), returnResultLast [PRIVATE 10] IMPLICIT ReturnResult{{Returnable}}, returnError [PRIVATE 11] IMPLICIT ReturnError{{Errors{{Returnable}}}}, reject [PRIVATE 12] IMPLICIT Reject, invokeNotLast [PRIVATE 13] IMPLICIT Invoke{{InvokeIdSet}, {Invocable}} (CONSTRAINED BY { --invocable.&invokeLast must be FALSE -- } ! RejectProblem : general-incorrectComponentPortion), returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult {{Returnable}} } (CONSTRAINED BY { -- must conform to the above definition -- } ! RejectProblem : general-unrecognisedComponentType) Invoke{ InvokeID: InvokeIdSet, OPERATION: Operations } ::= SEQUENCE { componentIDs [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(0..2)) -- The invoke ID precedes the correlation id. There may be no -- identifier,only an invoke ID, or both invoke and correlation --ID’s. (CONSTRAINED BY { -- must be unambiguous -- } ! RejectProblem : invoke-duplicateInvocation ) (CONSTRAINED BY { -- correlation ID must identify an -- outstanding operation -- } ! RejectProblem : invoke-unrecognisedCorrelationId ) OPTIONAL, operationCode OPERATION.&operationCode ((Operations) ! RejectProblem : invoke-unrecognisedOperation), parameter OPERATION.&ParameterType ({Operations}{@opcode} ! RejectProblem : invoke-mistypedArgument ) OPTIONAL } (CONSTRAINED BY { -- must conform to the above definition -- } ! RejectProblem : general-incorrectComponentPortion ) (CONSTRAINED BY { -- must have consistent encoding -- } ! RejectProblem : general-badlyStructuredCompPortion ) (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- } ! RejectProblem : general-incorrectComponentCoding ) ReturnResult{ OPERATION: Operations } ::= SEQUENCE { componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1)) (CONSTRAINED BY { --must be that of an outstanding operation--} ! RejectProblem : returnResult-unrecognisedCorrelationId) (CONSTRAINED BY { -- which returns a result -- } ! RejectProblem : returnResult-unexpectedReturnResult), parameter OPERATION.&ResultType ({Operations}{@opcode} ! RejectProblem : returnResult-incorrectParameter) OPTIONAL } (CONSTRAINED BY { -- must conform to the above definition -- } ! RejectProblem : general-incorrectComponentPortion ) (CONSTRAINED BY { -- must have consistent encoding -- } ! RejectProblem : general-badlyStructuredCompPortion ) (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- } ! RejectProblem : general-incorrectComponentCoding ) ReturnError{ ERROR: Errors } ::= SEQUENCE { componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(1)) (CONSTRAINED BY { --must be that of an outstanding operation--} ! RejectProblem : returnError-unrecognisedCorrelationId) (CONSTRAINED BY { --which returns an error-- } ! RejectProblem : returnError-unexpectedReturnError), errorCode ERROR.&errorCode ({Errors} ! RejectProblem : returnError-unrecognisedError) (CONSTRAINED BY { -- must be in the &Errors field of the --associated operation -- } ! RejectProblem : returnError-unexpectedError), parameter ERROR.&ParameterType ({Errors}{@errorcode} ! RejectProblem : returnError-incorrectParameter) OPTIONAL } (CONSTRAINED BY { -- must conform to the above definition -- } ! RejectProblem : general-incorrectComponentPortion ) (CONSTRAINED BY { -- must have consistent encoding -- } ! RejectProblem : general-badlyStructuredCompPortion ) (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- } ! RejectProblem : general-incorrectComponentCoding ) Reject ::= SEQUENCE { componentID [PRIVATE 15] IMPLICIT OCTET STRING (SIZE(0..1)), rejectProblem [PRIVATE 21] IMPLICIT Problem, parameter CHOICE { paramSequence [PRIVATE 16] IMPLICIT SEQUENCE { }, paramSet [PRIVATE 18] IMPLICIT SET { } } --The choice between paramSequence and paramSet is implementation --dependent, however paramSequence is preferred. } (CONSTRAINED BY { -- must conform to the above definition -- } ! RejectProblem : general-incorrectComponentPortion ) (CONSTRAINED BY { -- must have consistent encoding -- } ! RejectProblem : general-badlyStructuredCompPortion ) (CONSTRAINED BY { -- must conform to T1.114.3 encoding rules -- } ! RejectProblem : general-incorrectComponentCoding ) -- PROBLEMS, the specification of Problems follows Problem ::= INTEGER { general-unrecognisedComponentType (257), general-incorrectComponentPortion (258), general-badlyStructuredCompPortion (259), general-incorrectComponentCoding (260), invoke-duplicateInvocation (513), invoke-unrecognisedOperation (514), invoke-incorrectParameter (515), invoke-unrecognisedCorrelationID (516), returnResult-unrecognisedCorrelationID (769), returnResult-unexpectedReturnResult (770), returnResult-incorrectParameter (771), returnError-unrecognisedCorrelationID (1025), returnError-unexpectedReturnError (1026), returnError-unrecognisedError (1027), returnError-unexpectedError (1028), returnError-incorrectParameter (1029), -- Applications using T1.114-1988 report Transaction portion -- problems using a Reject component with a problem code in -- the range 1281-1286. -- It is preferred that other applications report -- these problems using the Abort package type transaction-unrecognizedPackageType (1281), transaction-incorrectTransPortion (1282), transaction-badlyStructuredTransPortion (1283), transaction-unassignedRespondingTransID (1284), transaction-permissionToReleaseProblem (1285), transaction-resourceUnavailable (1286) } END -- end of the TCAPPackage Module