-- $Id$ TCAPMessages {itu-t recommendation q 773 modules(2) messages(1) version3(3)} DEFINITIONS ::= BEGIN --EXPORTS OPERATION, ERROR, Component, InvokeId Type; -- WS stuff ExternalPDU ::= [UNIVERSAL 8] IMPLICIT SEQUENCE { oid OBJECT IDENTIFIER, dialog [0] IMPLICIT Dialog1 } Dialog1 ::= OCTET STRING -- End WS -- Transaction Portion fields TCMessage ::= 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 Reason OPTIONAL } Reason ::= CHOICE{ p-abortCause P-AbortCause, u-abortCause DialoguePortion } -- NOTE - When the Abort Message is generated by the Transaction sublayer, a p-Abort Cause may 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] EXPLICIT EXTERNAL -- WS adaptation DialoguePortion ::= [APPLICATION 11] IMPLICIT DialogueOC DialogueOC ::= OCTET STRING -- 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)}(0..127) -- 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 -- Recommendation X.880 defines four Application Protocol Data Units (APDUs) for invoking -- operations, returning results or error, and for the rejection of invalid PDUs. -- 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, opCode OPERATION, parameter Parameter OPTIONAL } Parameter ::= ANY -- 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, resultretres SEQUENCE { opCode OPERATION, parameter Parameter OPTIONAL } 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 ErrorCode, parameter Parameter OPTIONAL } -- ANY is filled by the single ASN.1 data type following the keyword PARAMETER in the type definition -- of a particular error. Reject ::= SEQUENCE { invokeIDRej 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) OPERATION ::= CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } ERROR ::= CHOICE { localValue INTEGER, globalValue OBJECT IDENTIFIER } -- 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. --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) } ErrorCode ::= CHOICE { nationaler [PRIVATE 19] IMPLICIT INTEGER (-32768..32767), privateer [PRIVATE 20] IMPLICIT INTEGER } END -- end of the TCAP Package Module