signerl/TCAP/asn_src/ITU/TC.asn

102 lines
2.7 KiB
Groff

-- This is a manually-crafted simplified TCAP ASN.1 syntax, created
-- for the signerl project by Harald Welte <laforge@gnumonks.org>
--
-- The "problem" with the real TCAP spec is its use of templates,
-- which is nice if you want to create a fully integrated TCAP + MAP
-- decoder, but in this case we simply want to parse all the common
-- parts and ignore the application-specific parameters/rsults of the
-- respective operation.
TC
DEFINITIONS IMPLICIT TAGS
::=
BEGIN
Components ::= [APPLICATION 12] SEQUENCE SIZE (1..MAX) OF Component
Component ::= CHOICE {
invoke [1] Invoke,
returnResult [2] ReturnResult,
returnError [3] ReturnError,
reject [4] Reject,
returnResultNotLast [7] ReturnResult
}
Invoke ::= SEQUENCE {
invokeId InvokeId,
linkedId CHOICE {
present [0] IMPLICIT present < InvokeId,
absent [1] IMPLICIT NULL
} OPTIONAL,
opcode Code,
argument Param OPTIONAL
}
ReturnResult ::= SEQUENCE {
invokeId InvokeId,
result SEQUENCE {
opcode Code,
result Param OPTIONAL
} OPTIONAL
}
ReturnError ::= SEQUENCE {
invokeId InvokeId,
errcode Code,
parameter Param OPTIONAL
}
Reject ::= SEQUENCE {
invokeId InvokeId,
problem CHOICE {
general [0] GeneralProblem,
invoke [1] InvokeProblem,
returnResult [2] ReturnResultProblem,
returnError [3] ReturnErrorProblem
}
}
GeneralProblem ::= INTEGER {
unrecognizedPDU(0), mistypedPDU(1), badlyStructuredPDU(2)}
InvokeProblem ::= INTEGER {
duplicateInvocation(0), unrecognizedOperation(1), mistypedArgument(2),
resourceLimitation(3), releaseInProgress(4), unrecognizedLinkedId(5),
linkedResponseUnexpected(6), unexpectedLinkedOperation(7)}
ReturnResultProblem ::= INTEGER {
unrecognizedInvocation(0), resultResponseUnexpected(1), mistypedResult(2)
}
ReturnErrorProblem ::= INTEGER {
unrecognizedInvocation(0), errorResponseUnexpected(1), unrecognizedError(2),
unexpectedError(3), mistypedParameter(4)}
RejectProblem ::= INTEGER {
general-unrecognizedPDU(0), general-mistypedPDU(1),
general-badlyStructuredPDU(2), invoke-duplicateInvocation(10),
invoke-unrecognizedOperation(11), invoke-mistypedArgument(12),
invoke-resourceLimitation(13), invoke-releaseInProgress(14),
invoke-unrecognizedLinkedId(15), invoke-linkedResponseUnexpected(16),
invoke-unexpectedLinkedOperation(17),
returnResult-unrecognizedInvocation(20),
returnResult-resultResponseUnexpected(21), returnResult-mistypedResult(22),
returnError-unrecognizedInvocation(30),
returnError-errorResponseUnexpected(31), returnError-unrecognizedError(32),
returnError-unexpectedError(33), returnError-mistypedParameter(34)}
InvokeId ::= CHOICE {present INTEGER,
absent NULL
}
Code ::= CHOICE {local INTEGER,
global OBJECT IDENTIFIER
}
Param ::= ANY
END