TCAPMessages-simple { ccitt recommendation q 773 modules (2) messages (1) version2 (2) }
DEFINITIONS ::=
BEGIN
EXPORTS OPERATION, ERROR, Component, InvokeIdType;
-- Transaction Portion fields
MessageType ::= CHOICE { unidirectional [APPLICATION 1] IMPLICIT Unidirectional,
begin [APPLICATION 2] IMPLICIT Begin,
end [APPLICATION 4] IMPLICIT End,
continue [APPLICATION 5] IMPLICIT Continue,
abort [APPLICATION 7] IMPLICIT Abort }
Unidirectional ::= SEQUENCE {
dialoguePortion DialoguePortion OPTIONAL,
components ComponentPortion }
Begin ::= SEQUENCE {
otid OrigTransactionID,
dialoguePortion DialoguePortion OPTIONAL,
components ComponentPortion OPTIONAL
}
End ::= SEQUENCE {
dtid DestTransactionID,
dialoguePortion DialoguePortion OPTIONAL,
components ComponentPortion OPTIONAL
}
Continue ::= SEQUENCE {
otid OrigTransactionID,
dtid DestTransactionID,
dialoguePortion DialoguePortion OPTIONAL,
components ComponentPortion OPTIONAL
}
Abort ::= SEQUENCE {
dtid DestTransactionID,
reason CHOICE { p-abortCause P-AbortCause, u-abortCause DialoguePortion } OPTIONAL
}
-- NOTE When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause must be
-- present.The u-abortCause may be generated by the component sublayer in which case it is an ABRT
-- APDU, or by the TC-User in which case it could be either an ABRT APDU or data in some user-defined
-- abstract syntax.
DialoguePortion ::= [APPLICATION 11] EXTERNAL
-- The dialogue portion carries the dialogue control PDUs as value of the external data type.
-- The direct reference should be set to { ccitt recommendation q 773 as (1) dialogue-as (1) version (1) }
-- if structured dialogue is used and to { ccitt recommendation q 773 as (1) unidialogue-as (2) version (1) }
-- if unstructured dialogue is used or any user defined abstract syntax name when only user information
-- is carried (e.g. when user information is sent in a 1988 Abort message).
OrigTransactionID ::= [APPLICATION 8] IMPLICIT OCTET STRING (SIZE (1..4) )
DestTransactionID ::= [APPLICATION 9] IMPLICIT OCTET STRING (SIZE (1..4) )
P-AbortCause ::= [APPLICATION 10] IMPLICIT INTEGER {
unrecognizedMessageType (0),
unrecognizedTransactionID (1),
badlyFormattedTransactionPortion (2),
incorrectTransactionPortion (3),
resourceLimitation (4) }
-- COMPONENT PORTION. The last field in the transaction portion of the TCAP message is the Component Portion.
-- The Component Portion may be absent.
ComponentPortion ::= [APPLICATION 12] IMPLICIT SEQUENCE SIZE (1..MAX) OF Component
-- Component Portion fields
-- COMPONENT TYPE. Recommendation X.229 defines four Application Protocol Data Units (APDUs).
-- TCAP adds returnResultNotLast to allow for the segmentation of a result.
Component ::= CHOICE {
invoke [1] IMPLICIT Invoke,
returnResultLast [2] IMPLICIT ReturnResult,
returnError [3] IMPLICIT ReturnError,
reject [4] IMPLICIT Reject,
returnResultNotLast [7] IMPLICIT ReturnResult }
-- The Components are sequences of data elements.
Invoke ::= SEQUENCE {
invokeID InvokeIdType,
linkedID [0] IMPLICIT InvokeIdType OPTIONAL,
operationCode OPERATION,
parameter ANY DEFINED BY operationCode OPTIONAL }
-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER or the keyword ARGUMENT
-- in the type definition of a particular operation.
ReturnResult ::= SEQUENCE {
invokeID InvokeIdType,
result SEQUENCE {
operationCode OPERATION,
parameter ANY DEFINED BY operationCode
} OPTIONAL
}
-- ANY is filled by the single ASN.1 data type following the keyword RESULT in the type definition
-- of a particular operation.
ReturnError ::= SEQUENCE {
invokeID InvokeIdType,
errorCode ERROR,
parameter ANY DEFINED BY errorCode OPTIONAL }
-- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition
-- of a particular error.
-- Recommendation Q.773 (06/97) 3
Reject ::= SEQUENCE {
invokeID CHOICE {
derivable InvokeIdType,
not-derivable NULL },
problem CHOICE {
generalProblem [0] IMPLICIT GeneralProblem,
invokeProblem [1] IMPLICIT InvokeProblem,
returnResultProblem [2] IMPLICIT ReturnResultProblem,
returnErrorProblem [3] IMPLICIT ReturnErrorProblem
}
}
InvokeIdType ::= INTEGER ( -128..127)
-- OPERATIONS
-- Operations are specified with the OPERATION MACRO.
-- When an operation is specified, the valid parameter set, results, and errors for that operation are indicated.
-- Default values and optional parameters are permitted.
-- FAKE OPERATION
OPERATION ::= INTEGER ( 0..65535 )
ERROR ::= INTEGER ( 0..65535 )
--OPERATION MACRO ::=
--BEGIN
-- TYPE NOTATION ::= Parameter Result Errors LinkedOperations
-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
-- Parameter ::= ArgKeyword NamedType | empty ArgKeyword ::= "ARGUMENT" | "PARAMETER"
-- Result ::= "RESULT" ResultType | empty
-- Errors ::= "ERRORS" "{"ErrorNames"}" | empty
-- LinkedOperations ::= "LINKED" "{"LinkedOperationNames"}" | empty
-- ResultType ::= NamedType | empty
-- ErrorNames ::= ErrorList | empty
-- ErrorList ::= Error | ErrorList "," Error
-- Error ::= value (ERROR)
--
-- shall reference an error value
--
-- | type
-- shall reference an error type
--
-- if no error value is specified
-- LinkedOperationNames ::= OperationList | empty
-- OperationList ::= Operation | OperationList "," Operation
-- Operation ::= value (OPERATION)
-- shall reference an operation value
-- | type
-- shall reference an operation type if
--
-- no operation value is specified
-- NamedType ::= identifier type | type
--END
-- ERRORS
-- Errors are specified with the ERROR MACRO.
-- When an error is specified, the valid parameters for that error are indicated.
-- Default values and optional parameters are permitted.
--ERROR MACRO ::=
--BEGIN
-- TYPE NOTATION ::= Parameter
-- VALUE NOTATION ::= value (VALUE CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } )
-- Parameter ::= "PARAMETER" NamedType | empty
-- NamedType ::= identifier type | type
--END
-- PROBLEMS
GeneralProblem ::= INTEGER { unrecognizedComponent (0),
mistypedComponent (1),
badlyStructuredComponent (2) }
InvokeProblem ::= INTEGER { duplicateInvokeID (0),
unrecognizedOperation (1),
mistypedParameter (2),
resourceLimitation (3),
initiatingRelease (4),
unrecognizedLinkedID (5),
linkedResponseUnexpected (6),
unexpectedLinkedOperation (7) }
ReturnResultProblem ::= INTEGER { unrecognizedInvokeID (0),
returnResultUnexpected (1),
mistypedParameter (2) }
ReturnErrorProblem ::= INTEGER { unrecognizedInvokeID (0),
returnErrorUnexpected (1),
unrecognizedError (2),
unexpectedError (3),
mistypedParameter (4) }
END -- TCAPMessages