wireshark/asn1/tcap/tcap.asn

247 lines
7.5 KiB
Groff

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