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 Remote-Operations-Information-Objects {joint-iso-itu-t remote-operations(4) informationObjects(5) version1(0)};
-- TCAPRemoteperationsInformationbjects {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,
dialoguePortion 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
ComponentSequence ::= [PRIVATE 8] IMPLICIT SEQUENCE OF ComponentPDU{NoInvokeId,ProbeAndAcknowledge,ProbeAndAcknowledge}
-- 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:generalincorrectComponentPortion),
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:generalincorrectComponentPortion),
returnResultNotLast [PRIVATE 14] IMPLICIT ReturnResult{{Returnable}}}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:generalunrecognisedComponentType)
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.
(CONSTRAINED BY {-- must be unambiguous --} !
RejectProblem:invokeduplicateInvocation)
(CONSTRAINED BY {-- correlation ID must identify an--
-- outstanding operation --} !
RejectProblem:invokeunrecognisedCorrelationId)
OPTIONAL,
-- operationCode
opcode
OPERATION.&operationCode
-- ((Operations) !RejectProblem:invokeunrecognisedOperation),
({Operations} !RejectProblem:invokeunrecognisedOperation),
parameter
-- OPERATION.&ParameterType
OPERATION.&ResultType
({Operations}{@opcode} !RejectProblem:invoke-mistypedArgument) OPTIONAL}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:generalincorrectComponentPortion)
(CONSTRAINED BY { -- must have consistent encoding --} !
RejectProblem:generalbadlyStructuredCompPortion)
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
RejectProblem:generalincorrectComponentCoding)
ReturnResult{OPERATION:Operations} ::= SEQUENCE {
componentID
[PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
(CONSTRAINED BY {
--must be that of an outstanding operation--} !
RejectProblem:
returnResultunrecognisedCorrelationId)
(CONSTRAINED BY {-- which returns a result --} !
RejectProblem:returnResultunexpectedReturnResult),
parameter
OPERATION.&ResultType
-- ({Operations}{@opcode} !RejectProblem:returnResultincorrectParameter)
-- ({Operations}{@componentID} !RejectProblem:returnResultincorrectParameter)
OPTIONAL}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:generalincorrectComponentPortion)
(CONSTRAINED BY { -- must have consistent encoding --} !
RejectProblem:generalbadlyStructuredCompPortion)
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
RejectProblem:generalincorrectComponentCoding)
ReturnError{ERROR:Errors} ::= SEQUENCE {
componentID
[PRIVATE 15] IMPLICIT OCTET STRING(SIZE (1))
(CONSTRAINED BY {
--must be that of an outstanding operation--} !
RejectProblem:returnErrorunrecognisedCorrelationId)
(CONSTRAINED BY {--which returns an error--} !
RejectProblem:returnErrorunexpectedReturnError),
errorCode
ERROR.&errorCode({Errors} !RejectProblem:returnErrorunrecognisedError)
(CONSTRAINED BY {-- must be in the &Errors field of the--
-- associated operation --} !RejectProblem:returnErrorunexpectedError),
parameter
-- Error.&ParameterType
ERROR.&ParameterType
-- ({Errors}{@errorcode} !RejectProblem:returnErrorincorrectParameter)
({Errors}{@errorCode} !RejectProblem:returnErrorincorrectParameter)
OPTIONAL}
(CONSTRAINED BY { -- must conform to the above definition --} !
RejectProblem:generalincorrectComponentPortion)
(CONSTRAINED BY { -- must have consistent encoding --} !
RejectProblem:generalbadlyStructuredCompPortion)
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
RejectProblem:generalincorrectComponentCoding)
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:generalincorrectComponentPortion)
(CONSTRAINED BY { -- must have consistent encoding --} !
RejectProblem:generalbadlyStructuredCompPortion)
(CONSTRAINED BY { -- must conform to T1.114.3 encoding rules --} !
RejectProblem:generalincorrectComponentCoding)
-- PROBLEMS, the specification of Problems follows
Problem ::= INTEGER {
generalunrecognisedComponentType(257), generalincorrectComponentPortion(258),
generalbadlyStructuredCompPortion(259), generalincorrectComponentCoding(260),
invokeduplicateInvocation(513), invokeunrecognisedOperation(514),
invokeincorrectParameter(515), invokeunrecognisedCorrelationID(516),
returnResultunrecognisedCorrelationID(769),
returnResultunexpectedReturnResult(770), returnResultincorrectParameter(771),
returnErrorunrecognisedCorrelationID(1025),
returnErrorunexpectedReturnError(1026), returnErrorunrecognisedError(1027),
returnErrorunexpectedError(1028),
returnErrorincorrectParameter(1029),
-- Applications using T1.114-1988 report Transaction portion
-- problems using a Reject component with a problem code in
-- the range 1281e6
-- It is preferred that other applications report
-- these problems using the Abort package type
transactionunrecognizedPackageType(1281),
transactionincorrectTransPortion(1282),
transactionbadlyStructuredTransPortion(1283),
transactionunassignedRespondingTransID(1284),
transactionpermissionToReleaseProblem(1285),
transactionresourceUnavailable(1286)}
--added imaginary defs by Bertil
InvokeId ::= CHOICE
{
present INTEGER,
absent NULL
}
noInvokeId InvokeId ::= absent:NULL
NoInvokeId InvokeId ::= {noInvokeId}
probe OPERATION ::=
{
ARGUMENT SEQUENCE
{
invokeId [0] InvokeId
}
RESULT ENUMERATED{running(0), finished(1), unknown(2), ...}
ERRORS ErrorSet
ALWAYS RESPONDS TRUE
CODE local:-2
}
acknowledge OPERATION ::=
{
ARGUMENT InvokeId
RESULT ENUMERATED{acknowledged(0), unknown(1), ...}
ALWAYS RESPONDS TRUE
CODE local:-3
}
ProbeAndAcknowledge OPERATION ::= {probe | acknowledge}
error1 ERROR ::= {PARAMETER INTEGER PRIORITY 25 CODE local:22}
error2 ERROR ::= {PARAMETER BOOLEAN PRIORITY 15 CODE local:21}
ErrorSet ERROR ::= {error1|error2}
--parameterized object set definition
Errors{OPERATION:OperationSet} ERROR ::= {OperationSet.&Errors}
END -- end of the TCAPPackage Module