	H323-MESSAGES DEFINITIONS -- AUTOMATIC TAGS 
	::=
	BEGIN

	H323-UserInformation ::= SEQUENCE	
	{
		h323-uu-pdu	H323-UU-PDU,
		user-data	SEQUENCE
		{
			protocol-discriminator	INTEGER (0..255),
			user-information	OCTET STRING (SIZE(1..131)) --,
	--	...     
		} OPTIONAL --,
	--	...
	  }

	H323-UU-PDU ::= 	SEQUENCE
	{
		h323-message-body   CHOICE
		{
		setup		Setup-UUIE,
		callProceeding	CallProceeding-UUIE,
		connect		Connect-UUIE,
		alerting	Alerting-UUIE,
		userInformation	UI-UUIE,
		releaseComplete	ReleaseComplete-UUIE,
		facility	Facility-UUIE --,
	--	...
		},
		nonStandardData	NonStandardParameter OPTIONAL --,
	--	...
}	

Alerting-UUIE			::=SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier,		
	destinationInfo		EndpointType,			
	h245Address		TransportAddress OPTIONAL
--,		
--	...
}



CallProceeding-UUIE		::=SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier,				
	destinationInfo		EndpointType,					
	h245Address		TransportAddress OPTIONAL --,		
--	...
}

Connect-UUIE			::=SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier,				
	h245Address		TransportAddress OPTIONAL,				
	destinationInfo		EndpointType,					
	conferenceID		ConferenceIdentifier --,				
--	...
}


UI-UUIE	::=SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier --,			
--	...
}

ReleaseComplete-UUIE ::= SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier,
	reason			ReleaseCompleteReason OPTIONAL --,
--	...
}

ReleaseCompleteReason		::=CHOICE
{
	noBandwidth		NULL,		
	gatekeeperResources	NULL,		
	unreachableDestination	NULL,     	
	destinationRejection	NULL,	
	invalidRevision		NULL,
	noPermission		NULL,		
	unreachableGatekeeper	NULL,				
	gatewayResources	NULL,
	badFormatAddress	NULL,
	adaptiveBusy		NULL,		
	inConf			NULL,		
	undefinedReason	NULL --,
--	...
}	
 
Setup-UUIE			::=SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier,				
	h245Address		TransportAddress OPTIONAL,				
	sourceAddress		SEQUENCE OF AliasAddress OPTIONAL,
	sourceInfo		EndpointType,						
	destinationAddress	SEQUENCE OF AliasAddress OPTIONAL,	
	destCallSignalAddress	TransportAddress OPTIONAL,			
	destExtraCallInfo	SEQUENCE OF AliasAddress OPTIONAL, 
	destExtraCRV		SEQUENCE OF CallReferenceValue OPTIONAL,
	activeMC		BOOLEAN,					
	conferenceID		ConferenceIdentifier,				
	conferenceGoal		CHOICE					
	{
		create		NULL,
		join		NULL,
		invite		NULL,
		...
	},
	callServices		QseriesOptions  OPTIONAL,
	callType		CallType --,
--	...
}

Facility-UUIE ::= SEQUENCE
{
	protocolIdentifier	ProtocolIdentifier,
	alternativeAddress	TransportAddress OPTIONAL,
	alternativeAliasAddress	SEQUENCE OF AliasAddress OPTIONAL,
	conferenceID		ConferenceIdentifier OPTIONAL,			
	reason			FacilityReason --,
--	...
}

FacilityReason		::=CHOICE
{
		routeCallToGatekeeper	NULL,		
		callForwarded		NULL,
		routeCallToMC		NULL,
		undefinedReason	NULL,
		...
	}

TransportAddress		::=CHOICE
{
	ipAddress		SEQUENCE
	{
		ip		OCTET STRING (SIZE(4)),
		port		INTEGER(0..65535)
	},
	ipSourceRoute		SEQUENCE	{
		ip		OCTET STRING (SIZE(4)),
		port		INTEGER(0..65535),
		route		SEQUENCE OF OCTET STRING(SIZE(4)),
		routing 	CHOICE
		{
			strict	NULL,
			loose	NULL --,
--			...
		} --,
--		...
	},
	ipxAddress		SEQUENCE
	{
		node		OCTET STRING (SIZE(6)),
		netnum		OCTET STRING (SIZE(4)),
		port		OCTET STRING (SIZE(2))
	},
	ip6Address		SEQUENCE
	{
		ip		OCTET STRING (SIZE(16)),
		port		INTEGER(0..65535) --,
--		...
	},
	netBios			OCTET STRING (SIZE(16)),
	nsap			OCTET STRING (SIZE(1..20)),
	nonStandardAddress	NonStandardParameter --,
--	...	
}

EndpointType		::=SEQUENCE
{
	
nonStandardData		NonStandardParameter OPTIONAL,
vendor			VendorIdentifier OPTIONAL,
gatekeeper		GatekeeperInfo OPTIONAL,
	gateway		GatewayInfo OPTIONAL,
	mcu			McuInfo OPTIONAL,  
	terminal		TerminalInfo OPTIONAL,
	mc			BOOLEAN,		
	undefinedNode		BOOLEAN --,
--	...
}

GatewayInfo		::=SEQUENCE{
	protocol	SEQUENCE OF SupportedProtocols OPTIONAL,
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

SupportedProtocols 	::= CHOICE
{
nonStandardData	NonStandardParameter,
	h310		H310Caps,
	h320		H320Caps,
	h321		H321Caps,
	h322		H322Caps,
	h323		H323Caps,
	h324		H324Caps,
	voice		VoiceCaps,
	t120-only	T120OnlyCaps --,
--	...
}

H310Caps 	::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

H320Caps 	::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

H321Caps 	::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

H322Caps ::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

H323Caps ::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

H324Caps ::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

VoiceCaps ::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

T120OnlyCaps ::= SEQUENCE
{
nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}


McuInfo		::=SEQUENCE
{
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

TerminalInfo		::=SEQUENCE 
{
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

GatekeeperInfo		::=SEQUENCE 
{
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

VendorIdentifier		::=SEQUENCE
{
	vendor			H221NonStandard,
	productId		OCTET STRING (SIZE(1..256)) OPTIONAL,
	versionId		OCTET STRING (SIZE(1..256)) OPTIONAL --,
--	...
}



AliasAddress		::=CHOICE
{
	e164		IA5String (SIZE (1..128)), --(FROM ("0123456789#*,")),
	h323-ID		BMPString (SIZE (1..256)) --,
--	...
}	



QseriesOptions			::=SEQUENCE
{
	q932Full		BOOLEAN,
	q951Full		BOOLEAN, 
	q952Full		BOOLEAN, 
	q953Full		BOOLEAN, 
	q955Full		BOOLEAN, 
	q956Full		BOOLEAN, 
	q957Full		BOOLEAN, 	
	q954Info		Q954Details --,	
--	...
}

Q954Details			::=SEQUENCE
{
	conferenceCalling	BOOLEAN,
	threePartyService	BOOLEAN --,
--	...
}



ConferenceIdentifier	::=	OCTET STRING (SIZE (16))
RequestSeqNum		::=	INTEGER (1..65535)
GatekeeperIdentifier	::=	BMPString (SIZE(128))
BandWidth		::=	INTEGER (1.. 4294967295)
CallReferenceValue	::=	INTEGER (1..65535)
EndpointIdentifier	::=	BMPString (SIZE(128))
ProtocolIdentifier	::=	OBJECT IDENTIFIER	

NonStandardParameter	::=SEQUENCE
{
	nonStandardIdentifier	NonStandardIdentifier,
	data			OCTET STRING
}

H221NonStandard		::=SEQUENCE
{	t35CountryCode	INTEGER(0..255),
	t35Extension		INTEGER(0..255),
	manufacturerCode	INTEGER(0..65535) --,
--	...
}

NonStandardIdentifier		::=CHOICE
{
	object			OBJECT IDENTIFIER,
	h221NonStandard	H221NonStandard --,
--	...
}

RasMessage	::= CHOICE   
{
	gatekeeperRequest		GatekeeperRequest,
	gatekeeperConfirm		GatekeeperConfirm,
	gatekeeperReject		GatekeeperReject,
	registrationRequest		RegistrationRequest,
	registrationConfirm		RegistrationConfirm,
	registrationReject		RegistrationReject,
	unregistrationRequest		UnregistrationRequest,
	unregistrationConfirm		UnregistrationConfirm,
	unregistrationReject		UnregistrationReject,
	admissionRequest		AdmissionRequest,
	admissionConfirm		AdmissionConfirm,
	admissionReject			AdmissionReject,
	bandwidthRequest		BandwidthRequest,
	bandwidthConfirm		BandwidthConfirm,
	bandwidthReject			BandwidthReject,
	disengageRequest		DisengageRequest,
	disengageConfirm		DisengageConfirm,
	disengageReject			DisengageReject,
	locationRequest			LocationRequest,
	locationConfirm			LocationConfirm,
	locationReject			LocationReject, 
	infoRequest			InfoRequest,
	infoRequestResponse		InfoRequestResponse,
	nonStandardMessage		NonStandardMessage,		
	unknownMessageResponse		UnknownMessageResponse --,
--	...
}

GatekeeperRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,			
	protocolIdentifier	ProtocolIdentifier,			
	nonStandardData		NonStandardParameter OPTIONAL,	
	rasAddress		TransportAddress,			
	endpointType		EndpointType,				
	gatekeeperIdentifier	GatekeeperIdentifier OPTIONAL,
	callServices		QseriesOptions  OPTIONAL, 
	endpointAlias		SEQUENCE OF AliasAddress OPTIONAL --,
--	...
}

GatekeeperConfirm	::=SEQUENCE 
{
	
	requestSeqNum		RequestSeqNum,
	protocolIdentifier	ProtocolIdentifier,			
	nonStandardData		NonStandardParameter OPTIONAL,
	gatekeeperIdentifier	GatekeeperIdentifier  OPTIONAL,
	rasAddress		TransportAddress --,
--	...
}

GatekeeperReject		::=SEQUENCE 
{
	
	requestSeqNum		RequestSeqNum,
	protocolIdentifier	ProtocolIdentifier,			
	nonStandardData		NonStandardParameter OPTIONAL,
	gatekeeperIdentifier	GatekeeperIdentifier  OPTIONAL,
	rejectReason		GatekeeperRejectReason --,
--	...
}

GatekeeperRejectReason		::=CHOICE
{
	resourceUnavailable		NULL,
	terminalExcluded		NULL,	
	invalidRevision			NULL,
	undefinedReason			NULL --,
--	...
}

RegistrationRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,				
	protocolIdentifier	ProtocolIdentifier,						
	nonStandardData		NonStandardParameter OPTIONAL,	
	discoveryComplete	BOOLEAN,					
	callSignalAddress	SEQUENCE OF TransportAddress,		
	rasAddress		SEQUENCE OF TransportAddress,		
	terminalType		EndpointType,					
	terminalAlias		SEQUENCE OF AliasAddress OPTIONAL,		
	gatekeeperIdentifier	GatekeeperIdentifier  OPTIONAL,
	endpointVendor		VendorIdentifier --,
--	...
}

RegistrationConfirm	::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,				
	protocolIdentifier	ProtocolIdentifier,				
	nonStandardData		NonStandardParameter OPTIONAL,
	callSignalAddress	SEQUENCE OF TransportAddress,		
	terminalAlias		SEQUENCE OF AliasAddress OPTIONAL,
	gatekeeperIdentifier	GatekeeperIdentifier  OPTIONAL,
	endpointIdentifier	EndpointIdentifier --,
--	...	
}

RegistrationReject		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,				
	protocolIdentifier	ProtocolIdentifier,				
	nonStandardData		NonStandardParameter OPTIONAL,
	rejectReason		RegistrationRejectReason,					
	gatekeeperIdentifier	GatekeeperIdentifier  OPTIONAL --,
--	...
}

RegistrationRejectReason		::=CHOICE
{
	discoveryRequired		NULL,	
	invalidRevision			NULL,
	invalidCallSignalAddress	NULL,
	invalidRASAddress		NULL,	
	duplicateAlias			SEQUENCE OF AliasAddress,	
	invalidTerminalType		NULL,
	undefinedReason			NULL,
	transportNotSupported		NULL --,	
--	...
}

UnregistrationRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,			
	callSignalAddress	SEQUENCE OF TransportAddress,	
	endpointAlias		SEQUENCE OF AliasAddress OPTIONAL,		
	nonStandardData		NonStandardParameter OPTIONAL,
	endpointIdentifier	EndpointIdentifier OPTIONAL --,
--	...
}

UnregistrationConfirm		::=SEQUENCE 
{
	requestSeqNum	RequestSeqNum,				
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

UnregistrationReject		::=SEQUENCE 
{
	
	requestSeqNum	RequestSeqNum,				
	rejectReason	UnregRejectReason,				
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

UnregRejectReason		::=CHOICE
{
	notCurrentlyRegistered	NULL,	
	callInProgress		NULL,	
	undefinedReason	NULL --,
--	...
}

AdmissionRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,		
	callType		CallType,		
	callModel		CallModel OPTIONAL,		
	endpointIdentifier	EndpointIdentifier,		
	destinationInfo		SEQUENCE OF AliasAddress OPTIONAL, 
	destCallSignalAddress	TransportAddress OPTIONAL,	 
	destExtraCallInfo	SEQUENCE OF AliasAddress OPTIONAL,
	srcInfo			SEQUENCE OF AliasAddress,	
	srcCallSignalAddress	TransportAddress OPTIONAL, 
	bandWidth		BandWidth,   				
	callReferenceValue	CallReferenceValue,			
	nonStandardData		NonStandardParameter OPTIONAL,
	callServices		QseriesOptions  OPTIONAL,
	conferenceID		ConferenceIdentifier,
	activeMC		BOOLEAN,
	answerCall		BOOLEAN --,
--	...
}

CallType			::=CHOICE
{	
	pointToPoint		NULL,		
	oneToN			NULL,		
	nToOne			NULL,		
	nToN			NULL --,
--	...
}
	
CallModel			::=CHOICE
{
	direct			NULL,
	gatekeeperRouted	NULL --,
--	...
}

AdmissionConfirm	::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,			
	bandWidth		BandWidth,				
	callModel		CallModel,				
	destCallSignalAddress	TransportAddress,			
	irrFrequency		INTEGER (1..65535) OPTIONAL,			
	nonStandardData		NonStandardParameter OPTIONAL --,
--	...	
}

AdmissionReject		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,		
	rejectReason		AdmissionRejectReason,	
	nonStandardData		NonStandardParameter OPTIONAL --,
--	...
}

AdmissionRejectReason		::= CHOICE
{
	calledPartyNotRegistered	NULL,		
	invalidPermission		NULL,	
	requestDenied			NULL,	
	undefinedReason			NULL,
	callerNotRegistered		NULL,
	routeCallToGatekeeper		NULL,
	invalidEndpointIdentifier	NULL,
	resourceUnavailable		NULL --,
--	...
}

BandwidthRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,			
	endpointIdentifier	EndpointIdentifier,			
	conferenceID		ConferenceIdentifier,			
	callReferenceValue	CallReferenceValue,			
	callType		CallType OPTIONAL,
 	bandWidth		BandWidth,   				
	nonStandardData		NonStandardParameter OPTIONAL --,
--	...
}

BandwidthConfirm	::=SEQUENCE 
{
	requestSeqNum	RequestSeqNum,			
	bandWidth	BandWidth,   					
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

BandwidthReject		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,		
	rejectReason		BandRejectReason,		
	allowedBandWidth	BandWidth,   			
	nonStandardData		NonStandardParameter OPTIONAL --,
--	...
}

BandRejectReason	::= CHOICE
{
	notBound			NULL,	
	invalidConferenceID		NULL,	
	invalidPermission		NULL,	
	insufficientResources		NULL,	
	invalidRevision			NULL,
	undefinedReason			NULL --,
--	...
}

LocationRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,		
	endpointIdentifier	EndpointIdentifier OPTIONAL,		
	destinationInfo		SEQUENCE OF AliasAddress,
	nonStandardData		NonStandardParameter OPTIONAL,
	replyAddress		TransportAddress --,
--	...
}

LocationConfirm	::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,			
	callSignalAddress	TransportAddress,			
	rasAddress		TransportAddress,		
	nonStandardData		NonStandardParameter OPTIONAL --,
--	...	
}

LocationReject		::=SEQUENCE 
{
	requestSeqNum	RequestSeqNum,		
	rejectReason	LocationRejectReason,	
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

LocationRejectReason		::=CHOICE
{
	notRegistered		NULL,
	invalidPermission	NULL,	
	requestDenied		NULL,	
	undefinedReason		NULL --,
--	...
}

DisengageRequest		::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,			
	endpointIdentifier	EndpointIdentifier,			
	conferenceID		ConferenceIdentifier,		
	callReferenceValue	CallReferenceValue,			
	disengageReason		DisengageReason,				
	nonStandardData		NonStandardParameter OPTIONAL --,
--	...	
}

DisengageReason		::=CHOICE
{
	forcedDrop		NULL,	
	normalDrop		NULL,	
	undefinedReason		NULL --,
--	...
}

DisengageConfirm	::=SEQUENCE 
{
	requestSeqNum	RequestSeqNum,		
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

DisengageReject	::= SEQUENCE 
{
	requestSeqNum	RequestSeqNum,		
	rejectReason	DisengageRejectReason,		
	nonStandardData	NonStandardParameter OPTIONAL --,
--	...
}

DisengageRejectReason	::=CHOICE
{
	notRegistered		NULL,	
	requestToDropOther	NULL --, 	
--	...
}

InfoRequest	::=SEQUENCE 
{
	requestSeqNum		RequestSeqNum,				
	callReferenceValue	CallReferenceValue,			
	nonStandardData		NonStandardParameter  OPTIONAL,
	replyAddress		TransportAddress OPTIONAL --,
--	...
}

InfoRequestResponse	::=SEQUENCE 
{
	nonStandardData		NonStandardParameter OPTIONAL,
	requestSeqNum		RequestSeqNum,			
	endpointType		EndpointType,
	endpointIdentifier	EndpointIdentifier,
	rasAddress		TransportAddress,			
	callSignalAddress	SEQUENCE OF TransportAddress,
	endpointAlias		SEQUENCE OF AliasAddress OPTIONAL,
	perCallInfo		SEQUENCE OF SEQUENCE
	{				
		nonStandardData		NonStandardParameter OPTIONAL,
		callReferenceValue	CallReferenceValue,			
		conferenceID		ConferenceIdentifier,			
		originator		BOOLEAN OPTIONAL,				
		audio			SEQUENCE OF RTPSession OPTIONAL,
		video			SEQUENCE OF RTPSession OPTIONAL,
		data			SEQUENCE OF TransportChannelInfo OPTIONAL,
		h245			TransportChannelInfo,
		callSignaling		TransportChannelInfo,
		callType		CallType,				
		bandWidth		BandWidth,				
		callModel		CallModel --,
--		...
	} OPTIONAL --,
--	...
}

TransportChannelInfo 	::= SEQUENCE
{
	sendAddress		TransportAddress OPTIONAL,
	recvAddress		TransportAddress OPTIONAL --,
--	...
}

RTPSession ::= SEQUENCE
{
	rtpAddress		TransportChannelInfo,
	rtcpAddress		TransportChannelInfo,
	cname			PrintableString,
	ssrc			INTEGER (1..4294967295),
	sessionId		INTEGER (1..255),
	associatedSessionIds	SEQUENCE OF INTEGER (1..255) --,
--	...
}

NonStandardMessage		::=SEQUENCE
{
	requestSeqNum	RequestSeqNum,
	nonStandardData	NonStandardParameter  --,
--	...
}

UnknownMessageResponse		::=	SEQUENCE	
{
	requestSeqNum	RequestSeqNum --,
--	...
}

END	



