aboutsummaryrefslogblamecommitdiffstats
path: root/lib/asn1/test/asn1_SUITE_data/TCAPMessages-simple.asn
blob: a9ace659d50a550a8a1e368cad0a2702752ca7ab (plain) (tree)













































































































































































































                                                                                                                  
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