1GCC-PROTOCOL DEFINITIONS AUTOMATIC TAGS ::=
2BEGIN
3
4-- Export all symbols
5
6-- ==========================================================================
7-- Part 1:  Elements of which messages are composed
8-- ==========================================================================
9
10ChannelID		::= INTEGER (1..65535)
11StaticChannelID		::= INTEGER (1..1000)		-- Those assigned by specifications
12DynamicChannelID	::= INTEGER (1001..65535)	-- Those created and deleted by MCS
13UserID			::= DynamicChannelID
14
15TokenID			::= INTEGER (1..65535)
16StaticTokenID		::= INTEGER (1..16383)		-- Those assigned by specifications
17DynamicTokenID		::= INTEGER (16384..65535)	-- Those assigned by the registry
18
19Time			::= INTEGER (-2147483647..2147483647)  -- Time in seconds
20Handle			::= INTEGER (0..4294967295)	-- 32-bit value
21
22H221NonStandardIdentifier ::= OCTET STRING (SIZE (4..255))
23							-- First four octets shall be country code and
24							-- Manufacturer code, assigned as specified in
25							-- H.221 Annex A for NS-cap and NS-comm
26
27Key ::= CHOICE			-- Identifier of a standard or non-standard object
28{
29	object			OBJECT IDENTIFIER,
30	h221NonStandard		H221NonStandardIdentifier
31}
32
33NonStandardParameter ::= SEQUENCE
34{
35	key		Key,
36	data		OCTET STRING
37}
38
39TextString ::= BMPString (SIZE (0..255))			-- Basic Multilingual Plane of ISO/IEC 10646-1 (Unicode)
40
41simpleTextFirstCharacter UniversalString ::= {0, 0, 0, 0}
42
43simpleTextLastCharacter UniversalString ::= {0, 0, 0, 255}
44
45SimpleTextString ::= BMPString (SIZE (0..255)) (FROM (simpleTextFirstCharacter..simpleTextLastCharacter))
46
47SimpleNumericString ::= NumericString (SIZE (1..255)) (FROM ("0123456789"))
48
49DialingString ::= NumericString (SIZE (1..16)) (FROM ("0123456789"))
50
51SubAddressString ::= NumericString (SIZE (1..40)) (FROM ("0123456789"))
52
53ExtraDialingString ::= TextString (SIZE (1..255)) (FROM ("0123456789#*,"))
54
55UserData ::= SET OF SEQUENCE
56{
57	key		Key,
58	value		OCTET STRING OPTIONAL
59}
60
61Password ::= SEQUENCE
62{
63	numeric		SimpleNumericString,
64	text		SimpleTextString OPTIONAL,
65	...
66}
67
68PasswordSelector ::= CHOICE
69{
70	numeric		SimpleNumericString,
71	text		SimpleTextString,
72	...
73}
74
75ChallengeResponseItem ::= CHOICE
76{
77	passwordString		PasswordSelector,
78	responseData		UserData,
79	...
80}
81
82ChallengeResponseAlgorithm ::= CHOICE
83{
84	passwordInTheClear	NULL,
85	nonStandardAlgorithm	NonStandardParameter,
86	...
87}
88
89ChallengeItem ::= SEQUENCE
90{
91	responseAlgorithm	ChallengeResponseAlgorithm,
92	challengeData		UserData,
93	...
94}
95
96ChallengeRequest ::= SEQUENCE
97{
98	challengeTag		INTEGER,
99	challengeSet		SET OF ChallengeItem,  -- Set of algorithms offered for response
100	...
101}
102
103ChallengeResponse ::= SEQUENCE
104{
105	challengeTag		INTEGER,
106	responseAlgorithm	ChallengeResponseAlgorithm,
107							-- Specific algorithm selected from the set of
108							-- items presented in the ChallengeRequest
109	responseItem		ChallengeResponseItem,
110	...
111}
112
113PasswordChallengeRequestResponse ::= CHOICE
114{
115	passwordInTheClear		PasswordSelector,
116        challengeRequestResponse	SEQUENCE
117	{
118		challengeRequest	ChallengeRequest OPTIONAL,
119		challengeResponse	ChallengeResponse OPTIONAL,
120		...
121	},
122	...
123}
124
125ConferenceName ::= SEQUENCE
126{
127	numeric		SimpleNumericString,
128	text		SimpleTextString OPTIONAL,
129	...
130}
131
132ConferenceNameSelector ::= CHOICE
133{
134	numeric		SimpleNumericString,
135	text		SimpleTextString,
136	...
137}
138
139ConferenceNameModifier ::= SimpleNumericString
140
141Privilege	 ::= ENUMERATED
142{
143	terminate	(0),
144	ejectUser	(1),
145	add		(2),
146	lockUnlock	(3),
147	transfer	(4),
148	...
149}
150
151TerminationMethod ::= ENUMERATED
152{
153	automatic	(0),
154	manual		(1),
155	...
156}
157
158ConferencePriorityScheme ::= CHOICE
159{
160	nonStandardScheme	NonStandardParameter,
161	...
162}
163
164ConferencePriority ::= SEQUENCE
165{
166	priority	INTEGER (0..65535),
167	scheme		ConferencePriorityScheme,
168	...
169}
170
171NetworkAddress	::=	SEQUENCE (SIZE (1..64)) OF CHOICE  -- Listed in order of use
172{
173	aggregatedChannel	SEQUENCE
174	{
175		transferModes	SEQUENCE	-- One or more
176		{
177			speech		BOOLEAN,
178			voice-band	BOOLEAN,
179			digital-56k	BOOLEAN,
180			digital-64k	BOOLEAN,
181			digital-128k	BOOLEAN,
182			digital-192k	BOOLEAN,
183			digital-256k	BOOLEAN,
184			digital-320k	BOOLEAN,
185			digital-384k	BOOLEAN,
186			digital-512k	BOOLEAN,
187			digital-768k	BOOLEAN,
188			digital-1152k	BOOLEAN,
189			digital-1472k	BOOLEAN,
190			digital-1536k	BOOLEAN,
191			digital-1920k	BOOLEAN,
192			packet-mode	BOOLEAN,
193			frame-mode	BOOLEAN,
194			atm		BOOLEAN,
195			...
196		},
197
198		internationalNumber	DialingString,
199		subAddress		SubAddressString OPTIONAL,
200		extraDialing		ExtraDialingString OPTIONAL,
201
202		highLayerCompatibility	SEQUENCE
203		{
204			telephony3kHz	BOOLEAN,
205			telephony7kHz	BOOLEAN,
206			videotelephony	BOOLEAN,
207			videoconference	BOOLEAN,
208			audiographic	BOOLEAN,
209			audiovisual	BOOLEAN,
210			multimedia	BOOLEAN,
211			...
212		} OPTIONAL,
213		...
214	},
215
216	transportConnection	SEQUENCE
217	{
218		nsapAddress		OCTET STRING (SIZE (1..20)),
219		transportSelector	OCTET STRING OPTIONAL
220	},
221
222	nonStandard		NonStandardParameter,
223	...
224}
225
226NodeType ::= ENUMERATED
227{
228	terminal		(0),
229	multiportTerminal	(1),
230	mcu			(2),
231	...
232}
233
234NodeProperties ::= SEQUENCE
235{
236	managementDevice	BOOLEAN,	-- Is the node a device such as a reservation system
237	peripheralDevice	BOOLEAN,	-- Is the node a peripheral to a primary node
238	...
239}
240
241AsymmetryIndicator ::= CHOICE
242{
243	callingNode	NULL,
244	calledNode	NULL,
245	unknown		INTEGER (0..4294967295)	-- Uniformly distributed 32-bit random number
246}
247
248AlternativeNodeID ::= CHOICE
249{
250	h243NodeID	OCTET STRING (SIZE (2)),
251	...
252}
253
254ConferenceDescriptor 	::= SEQUENCE
255{
256	conferenceName			ConferenceName,
257	conferenceNameModifier		ConferenceNameModifier OPTIONAL,
258	conferenceDescription		TextString OPTIONAL,
259	lockedConference		BOOLEAN,
260	passwordInTheClearRequired	BOOLEAN,
261	networkAddress			NetworkAddress OPTIONAL,
262	...,
263	defaultConferenceFlag		BOOLEAN
264}
265
266NodeRecord ::= SEQUENCE
267{
268	superiorNode		UserID OPTIONAL,	-- Not present only for the Top GCC Provider
269	nodeType		NodeType,
270	nodeProperties		NodeProperties,
271	nodeName		TextString OPTIONAL,
272	participantsList	SEQUENCE OF TextString OPTIONAL,
273	siteInformation		TextString OPTIONAL,
274	networkAddress		NetworkAddress OPTIONAL,
275	alternativeNodeID	AlternativeNodeID OPTIONAL,
276	userData		UserData OPTIONAL,
277	...
278}
279
280SessionKey ::= SEQUENCE
281{
282	applicationProtocolKey	Key,
283	sessionID		ChannelID OPTIONAL
284}
285
286ChannelType ::= ENUMERATED
287{
288	static			(0),
289	dynamicMulticast	(1),
290	dynamicPrivate		(2),
291	dynamicUserId		(3)
292}
293
294ApplicationRecord ::= SEQUENCE
295{
296	applicationActive		BOOLEAN,		-- Active/Inactive flag
297	conductingOperationCapable	BOOLEAN,		-- Maximum one per node per session
298	startupChannel			ChannelType OPTIONAL,
299	applicationUserID		UserID OPTIONAL,	-- User ID assigned to the Application Protocol Entity
300	nonCollapsingCapabilities	SET OF SEQUENCE
301	{
302		capabilityID		CapabilityID,
303		applicationData		OCTET STRING OPTIONAL
304	} OPTIONAL,
305	...
306}
307
308CapabilityID ::= CHOICE
309{
310	standard	INTEGER (0..65535),	-- Assigned by Application Protocol specifications
311	nonStandard	Key
312}
313
314CapabilityClass ::= CHOICE
315{
316	logical		NULL,
317	unsignedMin	INTEGER (0..MAX),	-- Capability value
318	unsignedMax	INTEGER (0..MAX),	-- Capability value
319	...
320}
321
322EntityID ::= INTEGER (0..65535)
323
324ApplicationInvokeSpecifier ::= SEQUENCE
325{
326  	sessionKey		SessionKey,
327	expectedCapabilitySet	SET OF SEQUENCE
328	{
329		capabilityID		CapabilityID,
330		capabilityClass		CapabilityClass,
331		...
332	} OPTIONAL,
333	startupChannel		ChannelType OPTIONAL,
334	mandatoryFlag		BOOLEAN,		-- TRUE indicates required Application Protocol Entity
335	...
336}
337
338RegistryKey ::= SEQUENCE
339{
340	sessionKey	SessionKey,
341	resourceID	OCTET STRING (SIZE (0..64))
342}
343
344RegistryItem	 ::= CHOICE
345{
346	channelID	DynamicChannelID,
347	tokenID		DynamicTokenID,
348	parameter	OCTET STRING (SIZE (0..64)),
349	vacant		NULL,
350	...
351}
352
353RegistryEntryOwner ::= CHOICE
354{
355	owned	SEQUENCE
356	{
357		nodeID		UserID,		-- Node ID of the owning node
358		entityID	EntityID	-- Entity ID of the owning
359	},					-- Appliction Protocol Entity
360	notOwned	NULL			-- There is no current owner
361}
362
363RegistryModificationRights ::= ENUMERATED
364{
365	owner		(0),
366	session		(1),
367	public		(2)
368}
369
370-- ==========================================================================
371-- Part 2:  PDU Messages
372-- ==========================================================================
373
374UserIDIndication ::= SEQUENCE
375{
376	tag	INTEGER,
377	...
378}
379
380ConferenceCreateRequest ::= SEQUENCE
381{						-- MCS-Connect-Provider request user data
382	conferenceName		ConferenceName,
383	convenerPassword	Password OPTIONAL,
384	password		Password OPTIONAL,
385	lockedConference	BOOLEAN,
386	listedConference	BOOLEAN,
387	conductibleConference	BOOLEAN,
388	terminationMethod	TerminationMethod,
389	conductorPrivileges	SET OF Privilege OPTIONAL,
390	conductedPrivileges	SET OF Privilege OPTIONAL,
391	nonConductedPrivileges  SET OF Privilege OPTIONAL,
392	conferenceDescription	TextString OPTIONAL,
393	callerIdentifier	TextString OPTIONAL,
394	userData		UserData OPTIONAL,
395	...,
396	conferencePriority	ConferencePriority OPTIONAL
397}
398
399ConferenceCreateResponse ::= SEQUENCE
400{						-- MCS-Connect-Provider response user data
401	nodeID		UserID,			-- Node ID of the sending node
402	tag		INTEGER,
403	result		ENUMERATED
404	{
405		success				(0),
406		userRejected			(1),
407		resourcesNotAvailable		(2),
408		rejectedForSymmetryBreaking	(3),
409		lockedConferenceNotSupported	(4),
410		...
411	},
412	userData	UserData OPTIONAL,
413	...
414}
415
416ConferenceQueryRequest 	::= SEQUENCE
417{						-- MCS-Connect-Provider request user data
418	nodeType		NodeType,
419	asymmetryIndicator	AsymmetryIndicator OPTIONAL,
420	userData		UserData OPTIONAL,
421	...
422}
423
424ConferenceQueryResponse ::= SEQUENCE
425{						-- MCS-Connect-Provider response user data
426	nodeType			NodeType,
427	asymmetryIndicator		AsymmetryIndicator OPTIONAL,
428	conferenceList			SET OF ConferenceDescriptor,
429	result				ENUMERATED
430	{
431		success		(0),
432		userRejected	(1),
433		...
434	},
435	userData			UserData OPTIONAL,
436	...,
437	waitForInvitationFlag		BOOLEAN OPTIONAL,
438	noUnlistedConferenceFlag	BOOLEAN OPTIONAL
439}
440
441ConferenceJoinRequest ::= SEQUENCE
442{						-- MCS-Connect-Provider request user data as well as
443						-- MCS-Send-Data on Node ID Channel of Top GCC sent
444						-- by the receiver of the MCS-Connect-Provider
445	conferenceName		ConferenceNameSelector OPTIONAL,
446						-- Required when part of MCS-Connect-Provider
447	conferenceNameModifier	ConferenceNameModifier OPTIONAL,
448	tag			INTEGER OPTIONAL,	-- Filled in when sent on Node ID Channel of Top GCC
449	password		PasswordChallengeRequestResponse OPTIONAL,
450	convenerPassword	PasswordSelector OPTIONAL,
451	callerIdentifier	TextString OPTIONAL,
452	userData		UserData OPTIONAL,
453	...
454}
455
456ConferenceJoinResponse 	::= SEQUENCE
457{						-- MCS-Connect-Provider response user data as well as
458						-- MCS-Send-Data on Node ID Channel of
459						-- the receiver of the MCS-Connect-Provider
460	nodeID				UserID OPTIONAL,  -- Node ID of directly connected node only
461	topNodeID			UserID, 			-- Node ID of Top GCC Provider
462	tag				INTEGER,
463	conferenceNameAlias		ConferenceNameSelector OPTIONAL,
464	passwordInTheClearRequired	BOOLEAN,
465	lockedConference		BOOLEAN,
466	listedConference		BOOLEAN,
467	conductibleConference		BOOLEAN,
468	terminationMethod		TerminationMethod,
469	conductorPrivileges		SET OF Privilege OPTIONAL,  -- No privilege shall be listed more than once
470	conductedPrivileges		SET OF Privilege OPTIONAL,  -- No privilege shall be listed more than once
471	nonConductedPrivileges  	SET OF Privilege OPTIONAL,  -- No privilege shall be listed more than once
472	conferenceDescription		TextString OPTIONAL,
473	password			PasswordChallengeRequestResponse OPTIONAL,
474	result				ENUMERATED
475	{
476		success				(0),
477		userRejected			(1),
478		invalidConference		(2),
479		invalidPassword			(3),
480		invalidConvenerPassword		(4),
481		challengeResponseRequired	(5),
482		invalidChallengeResponse	(6),
483		...
484	},
485	userData			UserData OPTIONAL,
486	...
487}
488
489ConferenceInviteRequest 	::= SEQUENCE
490{						-- MCS-Connect-Provider request user data
491	conferenceName			ConferenceName,
492	nodeID				UserID,			-- Node ID of the sending node
493	topNodeID			UserID,			-- Node ID of Top GCC Provider
494	tag				INTEGER,
495	passwordInTheClearRequired	BOOLEAN,
496	lockedConference		BOOLEAN,
497	listedConference		BOOLEAN,
498	conductibleConference		BOOLEAN,
499	terminationMethod		TerminationMethod,
500	conductorPrivileges		SET OF Privilege OPTIONAL,  -- No privilege shall be listed more than once
501	conductedPrivileges		SET OF Privilege OPTIONAL,  -- No privilege shall be listed more than once
502	nonConductedPrivileges		SET OF Privilege OPTIONAL,  -- No privilege shall be listed more than once
503	conferenceDescription		TextString OPTIONAL,
504	callerIdentifier		TextString OPTIONAL,
505	userData			UserData OPTIONAL,
506	...,
507	conferencePriority		ConferencePriority OPTIONAL
508}
509
510ConferenceInviteResponse ::= SEQUENCE
511{						-- MCS-Connect-Provider response user data
512	result		ENUMERATED
513	{
514		success		(0),
515		userRejected	(1),
516		...
517	},
518	userData	UserData OPTIONAL,
519	...
520}
521
522ConferenceAddRequest ::= SEQUENCE
523{						-- MCS-Send-Data on Node ID Channel of Top GCC or
524						-- Node ID Channel of Adding MCU if specified
525	networkAddress		NetworkAddress,
526	requestingNode		UserID,
527	tag			INTEGER,
528	addingMCU		UserID OPTIONAL,
529	userData		UserData OPTIONAL,
530	...
531}
532
533ConferenceAddResponse 	::= SEQUENCE
534{						-- MCS-Send-Data on Node ID Channel of requester
535
536	tag		INTEGER,
537	result		ENUMERATED
538	{
539		success			(0),
540		invalidRequester	(1),
541		invalidNetworkType	(2),
542		invalidNetworkAddress	(3),
543		addedNodeBusy		(4),
544		networkBusy		(5),
545		noPortsAvailable	(6),
546		connectionUnsuccessful	(7),
547		...
548	},
549	userData	UserData OPTIONAL,
550	...
551}
552
553ConferenceLockRequest ::= SEQUENCE
554{						-- MCS-Send-Data on Node ID Channel of Top GCC
555	-- No parameters
556	...
557}
558
559ConferenceLockResponse 	::= SEQUENCE
560{						-- MCS-Send-Data on Node ID Channel of requester
561	result		ENUMERATED
562	{
563		success			(0),
564		invalidRequester	(1),
565		alreadyLocked		(2),
566		...
567	},
568	...
569}
570
571ConferenceLockIndication 	::= SEQUENCE
572{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
573						-- or MCS-Send-Data on Node ID Channel
574	-- No parameters
575	...
576}
577
578ConferenceUnlockRequest ::= SEQUENCE
579{						-- MCS-Send-Data on Node ID Channel of Top GCC
580	-- No parameters
581	...
582}
583
584ConferenceUnlockResponse ::= SEQUENCE
585{						-- MCS-Send-Data on Node ID Channel of requester
586	result	ENUMERATED
587	{
588		success			(0),
589		invalidRequester	(1),
590		alreadyUnlocked		(2),
591		...
592	},
593	...
594}
595
596ConferenceUnlockIndication ::= SEQUENCE
597{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
598						-- or MCS-Send-Data on Node ID Channel
599	-- No parameters
600	...
601}
602
603ConferenceTerminateRequest 	::= SEQUENCE
604{						-- MCS-Send-Data on Node ID Channel of Top GCC
605	reason	ENUMERATED
606	{
607		userInitiated			(0),
608		timedConferenceTermination	(1),
609		...
610	},
611	...
612}
613
614ConferenceTerminateResponse ::= SEQUENCE
615{						-- MCS-Send-Data on Node ID Channel of requester
616	result	ENUMERATED
617	{
618		success			(0),
619		invalidRequester	(1),
620		...
621	},
622	...
623}
624
625ConferenceTerminateIndication ::= SEQUENCE
626{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
627	reason	ENUMERATED
628	{
629		userInitiated			(0),
630		timedConferenceTermination	(1),
631		...
632	},
633	...
634}
635
636ConferenceEjectUserRequest ::= SEQUENCE
637{						-- MCS-Send-Data on Node ID Channel of Top GCC
638	nodeToEject	UserID,			-- Node ID of the node to eject
639	reason		ENUMERATED
640	{
641		userInitiated	(0),
642		...
643	},
644	...
645}
646
647ConferenceEjectUserResponse 	::= SEQUENCE
648{						-- MCS-Send-Data on Node ID Channel of requester
649	nodeToEject	UserID,			-- Node ID of the node to eject
650	result		ENUMERATED
651	{
652		success			(0),
653		invalidRequester	(1),
654		invalidNode		(2),
655		...
656	},
657	...
658}
659
660ConferenceEjectUserIndication 	::= SEQUENCE
661{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
662	nodeToEject	UserID,			-- Node ID of the node to eject
663	reason		ENUMERATED
664	{
665		userInitiated		(0),
666		higherNodeDisconnected	(1),
667		higherNodeEjected	(2),
668		...
669	},
670	...
671}
672
673ConferenceTransferRequest ::= SEQUENCE
674{						-- MCS-Send-Data on Node ID Channel of Top GCC
675	conferenceName		ConferenceNameSelector,	-- Name of conference to transfer to
676	conferenceNameModifier	ConferenceNameModifier OPTIONAL,
677	networkAddress		NetworkAddress OPTIONAL,
678	transferringNodes	SET (SIZE (1..65536)) OF UserID OPTIONAL,
679	password		PasswordSelector OPTIONAL,
680	...
681}
682
683ConferenceTransferResponse	 ::= SEQUENCE
684{						-- MCS-Send-Data on Node ID Channel of requester
685	conferenceName		ConferenceNameSelector,	-- Name of conference to transfer to
686	conferenceNameModifier	ConferenceNameModifier OPTIONAL,
687	transferringNodes	SET (SIZE (1..65536)) OF UserID OPTIONAL,
688	result			ENUMERATED
689	{
690		success			(0),
691		invalidRequester	(1),
692		...
693	},
694	...
695}
696
697ConferenceTransferIndication 	::= SEQUENCE
698{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
699	conferenceName		ConferenceNameSelector,	-- Name of conference to transfer to
700	conferenceNameModifier	ConferenceNameModifier OPTIONAL,
701	networkAddress		NetworkAddress OPTIONAL,
702	transferringNodes	SET (SIZE (1..65536)) OF UserID OPTIONAL,
703						-- List of Node IDs,
704						-- not present if destined for all nodes
705	password		PasswordSelector OPTIONAL,
706	...
707}
708
709RosterUpdateIndication ::= SEQUENCE
710{						-- MCS-Send-Data on Node ID Channel or
711						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
712	fullRefresh		BOOLEAN,	-- Conference Roster and all
713						-- ApplicationProtocol Sessions refreshed
714	nodeInformation		SEQUENCE
715	{
716		nodeRecordList	CHOICE
717		{
718			noChange	NULL,
719			refresh		SET (SIZE (1..65536)) OF SEQUENCE
720						-- One for each node in the conference;
721						-- no node shall be listed more than once
722			{
723				nodeID		UserID,		-- Node ID of the node
724				nodeRecord	NodeRecord
725			},
726			update		SET (SIZE (1..65536)) OF SEQUENCE
727						-- One for each node changing its node record;
728						-- no node shall be listed more than once
729			{
730				nodeID		UserID,		-- Node ID of the node
731				nodeUpdate	CHOICE
732				{
733					addRecord	NodeRecord,
734					replaceRecord	NodeRecord,
735					removeRecord	NULL,
736					...
737				}
738			},
739			...
740		},
741		rosterInstanceNumber	INTEGER (0..65535),
742		nodesAdded		BOOLEAN,		-- Nodes have been added since last instance
743		nodesRemoved		BOOLEAN,		-- Nodes have been removed since last instance
744		...
745	} ,
746	applicationInformation	SET (SIZE (0..65535)) OF SEQUENCE
747						-- One for each Application Protocol Session;
748						-- all Application Protocol Sessions if full refresh;
749						-- no Application Protocol Session shall be
750						-- listed more than once
751	{
752		sessionKey		SessionKey,
753		applicationRecordList	CHOICE
754		{
755			noChange	NULL,
756			refresh		SET (SIZE (0..65535)) OF SEQUENCE
757						-- One for each node with the
758						-- Application Protocol Session enrolled;
759						-- no node shall be listed more than once
760			{
761				nodeID			UserID,		-- Node ID of node
762				entityID		EntityID,	-- ID for this Application Protocol Entity at this node
763				applicationRecord	ApplicationRecord
764			},
765			update		SET (SIZE (1..65536)) OF SEQUENCE
766						-- One for each node modifying its Application Record;
767						-- no node shall be listed more than once
768			{
769				nodeID			UserID,		-- Node ID of node
770				entityID		EntityID,	-- ID for this Application Protocol Entity at this node
771				applicationUpdate	CHOICE
772				{
773					addRecord	ApplicationRecord,
774					replaceRecord	ApplicationRecord,
775					removeRecord	NULL,
776					...
777				}
778			},
779			...
780		},
781		applicationCapabilitiesList	CHOICE
782		{
783			noChange	NULL,
784			refresh		SET OF SEQUENCE
785			{
786				capabilityID		CapabilityID,
787				capabilityClass		CapabilityClass,
788				numberOfEntities	INTEGER (1..65536),
789						-- Number of Application Protocol Entities
790						--  which issued the capability
791				...
792			},
793			...
794		},
795		rosterInstanceNumber	INTEGER (0..65535),
796		peerEntitiesAdded	BOOLEAN,		-- Peer Entities have been added since last instance
797		peerEntitiesRemoved	BOOLEAN,		-- Peer Entities have been removed since last instance
798		...
799	},
800	...
801}
802
803ApplicationInvokeIndication ::= SEQUENCE
804{						-- MCS-Send-Data or MCS-Uniform-Send-Data
805						-- on GCC-Broadcast-Channel or Node ID Channel
806	applicationProtocolEntiyList	SET (SIZE (1..65536)) OF ApplicationInvokeSpecifier,
807	destinationNodes		SET (SIZE (1..65536)) OF UserID OPTIONAL,
808						-- List of Node IDs,
809						-- not presesnt if destined for all nodes
810	...
811}
812
813RegistryRegisterChannelRequest ::= SEQUENCE
814{						-- MCS-Send-Data on Node ID Channel of Top GCC
815	entityID	EntityID,
816	key		RegistryKey,
817	channelID	DynamicChannelID,
818	...
819}
820
821RegistryAssignTokenRequest 	::= SEQUENCE
822{						-- MCS-Send-Data on Node ID Channel of Top GCC
823	entityID	EntityID,
824	key		RegistryKey,
825	...
826}
827
828RegistrySetParameterRequest 	::= SEQUENCE
829{						-- MCS-Send-Data on Node ID Channel of Top GCC
830	entityID		EntityID,
831	key			RegistryKey,
832	parameter		OCTET STRING (SIZE (0..64)),
833        modificationRights	RegistryModificationRights OPTIONAL,
834	...
835}
836
837RegistryRetrieveEntryRequest 	::= SEQUENCE
838{						-- MCS-Send-Data on Node ID Channel of Top GCC
839	entityID	EntityID,
840	key		RegistryKey,
841	...
842}
843
844RegistryDeleteEntryRequest ::= SEQUENCE
845{						-- MCS-Send-Data on Node ID Channel of Top GCC
846	entityID	EntityID,
847	key		RegistryKey,
848	...
849}
850
851RegistryMonitorEntryRequest ::= SEQUENCE
852{						-- MCS-Send-Data on Node ID Channel of Top GCC
853	entityID	EntityID,
854	key		RegistryKey,
855	...
856}
857
858RegistryMonitorEntryIndication ::= SEQUENCE
859{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
860	key			RegistryKey,
861	item			RegistryItem,	-- Contents: channel, token, parameter, or empty
862        owner			RegistryEntryOwner,
863	modificationRights	RegistryModificationRights OPTIONAL,
864	...
865}
866
867RegistryAllocateHandleRequest ::= SEQUENCE
868{						-- MCS-Send-Data on Node ID Channel of Top GCC
869	entityID	EntityID,
870	numberOfHandles	INTEGER (1..1024),
871	...
872}
873
874RegistryAllocateHandleResponse ::= SEQUENCE
875{						-- MCS-Send-Data on Node ID Channel of requester
876	entityID	EntityID,
877	numberOfHandles	INTEGER (1..1024),
878	firstHandle	Handle,
879	result		ENUMERATED
880	{
881		successful		(0),
882		noHandlesAvailable	(1),
883		...
884	},
885	...
886}
887
888RegistryResponse ::= SEQUENCE
889{						-- MCS-Send-Data on Node ID Channel of requester
890	entityID		EntityID,	-- Entity ID of the requesting Application Protocol Entity
891	primitiveType		ENUMERATED
892	{
893		registerChannel		(0),
894		assignToken		(1),
895		setParameter		(2),
896		retrieveEntry		(3),
897		deleteEntry		(4),
898		monitorEntry		(5),
899		...
900	},
901	key			RegistryKey,		-- Database index
902	item			RegistryItem,		-- Contents: channel, token, parameter, or vacant
903        owner			RegistryEntryOwner,
904	modificationRights	RegistryModificationRights OPTIONAL,
905	result			ENUMERATED
906	{
907		successful		(0),
908		belongsToOther		(1),
909		tooManyEntries		(2),
910		inconsistentType	(3),
911		entryNotFound		(4),
912		entryAlreadyExists	(5),
913		invalidRequester	(6),
914		...
915	},
916	...
917}
918
919ConductorAssignIndication ::= SEQUENCE
920{												-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
921	conductingNode	UserID,
922	...
923}
924
925ConductorReleaseIndication ::= SEQUENCE
926{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
927	-- No parameters
928	...
929}
930
931ConductorPermissionAskIndication ::= SEQUENCE
932{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
933	grantFlag	BOOLEAN,	-- TRUE to request permission grant, FALSE to release
934	...
935}
936
937ConductorPermissionGrantIndication ::= SEQUENCE
938{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
939	permissionList	SEQUENCE (SIZE (0..65535)) OF UserID,
940						-- Node ID of nodes granted permission
941	waitingList	SEQUENCE (SIZE (1..65536)) OF UserID OPTIONAL,
942						-- Node ID of nodes waiting form permission
943	...
944}
945
946ConferenceTimeRemainingIndication 	::= SEQUENCE
947{						-- MCS-Send-Data on GCC-Broadcast-Channel
948	timeRemaining	Time,
949	nodeID		UserID OPTIONAL,
950	...
951}
952
953ConferenceTimeInquireIndication ::= SEQUENCE
954{						-- MCS-Send-Data on GCC-Convener-Channel
955	nodeSpecificTimeFlag	BOOLEAN,	-- FALSE for conference-wide, TRUE for node-specific
956	...
957}
958
959ConferenceTimeExtendIndication ::= SEQUENCE
960{						-- MCS-Send-Data on GCC-Convener-Channel
961	timeToExtend		Time,
962	nodeSpecificTimeFlag	BOOLEAN,	-- FALSE for conference-wide, TRUE for node-specific
963	...
964}
965
966ConferenceAssistanceIndication ::= SEQUENCE
967{						-- MCS-Uniform-Send-Data on GCC-Broadcast-Channel
968	userData	UserData OPTIONAL,
969	...
970}
971
972TextMessageIndication ::= SEQUENCE
973{						-- MCS-Send-Data or MCS-Uniform-Send-Data
974	message		TextString,		-- on GCC-Broadcast-Channel or Node ID Channel
975	...
976}
977
978FunctionNotSupportedResponse ::= SEQUENCE
979{
980	request		RequestPDU
981}
982
983NonStandardPDU ::= SEQUENCE
984{
985	data		NonStandardParameter,
986	...
987}
988
989
990-- ==========================================================================
991-- Part 3:  Messages sent as MCS-Connect-Provider user data
992-- ==========================================================================
993
994ConnectData ::= SEQUENCE
995{
996	t124Identifier		Key,		-- This shall be set to the value {itu recommendation t 124 version(0) 1}
997	connectPDU		OCTET STRING
998}
999
1000ConnectGCCPDU 	::= CHOICE
1001{
1002	conferenceCreateRequest		ConferenceCreateRequest,
1003	conferenceCreateResponse	ConferenceCreateResponse,
1004	conferenceQueryRequest		ConferenceQueryRequest,
1005	conferenceQueryResponse		ConferenceQueryResponse,
1006	conferenceJoinRequest		ConferenceJoinRequest,
1007	conferenceJoinResponse		ConferenceJoinResponse,
1008	conferenceInviteRequest		ConferenceInviteRequest,
1009	conferenceInviteResponse	ConferenceInviteResponse,
1010	...
1011}
1012
1013
1014-- ==========================================================================
1015-- Part 4:  Messages sent using MCS-Send-Data or MCS-Uniform-Send-Data
1016-- ==========================================================================
1017
1018GCCPDU ::= CHOICE
1019{
1020	request				RequestPDU,
1021	response			ResponsePDU,
1022	indication			IndicationPDU
1023}
1024
1025RequestPDU ::= CHOICE
1026{
1027	conferenceJoinRequest			ConferenceJoinRequest,
1028	conferenceAddRequest			ConferenceAddRequest,
1029	conferenceLockRequest			ConferenceLockRequest,
1030	conferenceUnlockRequest			ConferenceUnlockRequest,
1031	conferenceTerminateRequest		ConferenceTerminateRequest,
1032	conferenceEjectUserRequest		ConferenceEjectUserRequest,
1033	conferenceTransferRequest		ConferenceTransferRequest,
1034	registryRegisterChannelRequest		RegistryRegisterChannelRequest,
1035	registryAssignTokenRequest		RegistryAssignTokenRequest,
1036	registrySetParameterRequest		RegistrySetParameterRequest,
1037	registryRetrieveEntryRequest		RegistryRetrieveEntryRequest,
1038	registryDeleteEntryRequest		RegistryDeleteEntryRequest,
1039	registryMonitorEntryRequest		RegistryMonitorEntryRequest,
1040	registryAllocateHandleRequest		RegistryAllocateHandleRequest,
1041	nonStandardRequest			NonStandardPDU,
1042	...
1043}
1044
1045ResponsePDU ::= CHOICE
1046{
1047	conferenceJoinResponse			ConferenceJoinResponse,
1048	conferenceAddResponse			ConferenceAddResponse,
1049	conferenceLockResponse			ConferenceLockResponse,
1050	conferenceUnlockResponse		ConferenceUnlockResponse,
1051	conferenceTerminateResponse		ConferenceTerminateResponse,
1052	conferenceEjectUserResponse		ConferenceEjectUserResponse,
1053	conferenceTransferResponse		ConferenceTransferResponse,
1054	registryResponse			RegistryResponse,
1055	registryAllocateHandleResponse		RegistryAllocateHandleResponse,
1056	functionNotSupportedResponse		FunctionNotSupportedResponse,
1057	nonStandardResponse			NonStandardPDU,
1058	...
1059}
1060
1061IndicationPDU ::= CHOICE
1062{
1063	userIDIndication			UserIDIndication,
1064	conferenceLockIndication		ConferenceLockIndication,
1065	conferenceUnlockIndication		ConferenceUnlockIndication,
1066	conferenceTerminateIndication		ConferenceTerminateIndication,
1067	conferenceEjectUserIndication		ConferenceEjectUserIndication,
1068	conferenceTransferIndication		ConferenceTransferIndication,
1069	rosterUpdateIndication			RosterUpdateIndication,
1070	applicationInvokeIndication		ApplicationInvokeIndication,
1071	registryMonitorEntryIndication		RegistryMonitorEntryIndication,
1072	conductorAssignIndication		ConductorAssignIndication,
1073	conductorReleaseIndication		ConductorReleaseIndication,
1074	conductorPermissionAskIndication	ConductorPermissionAskIndication,
1075	conductorPermissionGrantIndication	ConductorPermissionGrantIndication,
1076	conferenceTimeRemainingIndication	ConferenceTimeRemainingIndication,
1077	conferenceTimeInquireIndication		ConferenceTimeInquireIndication,
1078	conferenceTimeExtendIndication		ConferenceTimeExtendIndication,
1079	conferenceAssistanceIndication		ConferenceAssistanceIndication,
1080	textMessageIndication			TextMessageIndication,
1081	nonStandardIndication			NonStandardPDU,
1082	...
1083}
1084
1085
1086END
1087