1/* Generated by Jing Min Zhao's ASN.1 parser, May 16 2007
2 *
3 * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
4 *
5 * This source code is licensed under General Public License version 2.
6 */
7
8typedef struct TransportAddress_ipAddress {	/* SEQUENCE */
9	int options;		/* No use */
10	unsigned ip;
11} TransportAddress_ipAddress;
12
13typedef struct TransportAddress_ip6Address {	/* SEQUENCE */
14	int options;		/* No use */
15	unsigned ip;
16} TransportAddress_ip6Address;
17
18typedef struct TransportAddress {	/* CHOICE */
19	enum {
20		eTransportAddress_ipAddress,
21		eTransportAddress_ipSourceRoute,
22		eTransportAddress_ipxAddress,
23		eTransportAddress_ip6Address,
24		eTransportAddress_netBios,
25		eTransportAddress_nsap,
26		eTransportAddress_nonStandardAddress,
27	} choice;
28	union {
29		TransportAddress_ipAddress ipAddress;
30		TransportAddress_ip6Address ip6Address;
31	};
32} TransportAddress;
33
34typedef struct DataProtocolCapability {	/* CHOICE */
35	enum {
36		eDataProtocolCapability_nonStandard,
37		eDataProtocolCapability_v14buffered,
38		eDataProtocolCapability_v42lapm,
39		eDataProtocolCapability_hdlcFrameTunnelling,
40		eDataProtocolCapability_h310SeparateVCStack,
41		eDataProtocolCapability_h310SingleVCStack,
42		eDataProtocolCapability_transparent,
43		eDataProtocolCapability_segmentationAndReassembly,
44		eDataProtocolCapability_hdlcFrameTunnelingwSAR,
45		eDataProtocolCapability_v120,
46		eDataProtocolCapability_separateLANStack,
47		eDataProtocolCapability_v76wCompression,
48		eDataProtocolCapability_tcp,
49		eDataProtocolCapability_udp,
50	} choice;
51} DataProtocolCapability;
52
53typedef struct DataApplicationCapability_application {	/* CHOICE */
54	enum {
55		eDataApplicationCapability_application_nonStandard,
56		eDataApplicationCapability_application_t120,
57		eDataApplicationCapability_application_dsm_cc,
58		eDataApplicationCapability_application_userData,
59		eDataApplicationCapability_application_t84,
60		eDataApplicationCapability_application_t434,
61		eDataApplicationCapability_application_h224,
62		eDataApplicationCapability_application_nlpid,
63		eDataApplicationCapability_application_dsvdControl,
64		eDataApplicationCapability_application_h222DataPartitioning,
65		eDataApplicationCapability_application_t30fax,
66		eDataApplicationCapability_application_t140,
67		eDataApplicationCapability_application_t38fax,
68		eDataApplicationCapability_application_genericDataCapability,
69	} choice;
70	union {
71		DataProtocolCapability t120;
72	};
73} DataApplicationCapability_application;
74
75typedef struct DataApplicationCapability {	/* SEQUENCE */
76	int options;		/* No use */
77	DataApplicationCapability_application application;
78} DataApplicationCapability;
79
80typedef struct DataType {	/* CHOICE */
81	enum {
82		eDataType_nonStandard,
83		eDataType_nullData,
84		eDataType_videoData,
85		eDataType_audioData,
86		eDataType_data,
87		eDataType_encryptionData,
88		eDataType_h235Control,
89		eDataType_h235Media,
90		eDataType_multiplexedStream,
91	} choice;
92	union {
93		DataApplicationCapability data;
94	};
95} DataType;
96
97typedef struct UnicastAddress_iPAddress {	/* SEQUENCE */
98	int options;		/* No use */
99	unsigned network;
100} UnicastAddress_iPAddress;
101
102typedef struct UnicastAddress_iP6Address {	/* SEQUENCE */
103	int options;		/* No use */
104	unsigned network;
105} UnicastAddress_iP6Address;
106
107typedef struct UnicastAddress {	/* CHOICE */
108	enum {
109		eUnicastAddress_iPAddress,
110		eUnicastAddress_iPXAddress,
111		eUnicastAddress_iP6Address,
112		eUnicastAddress_netBios,
113		eUnicastAddress_iPSourceRouteAddress,
114		eUnicastAddress_nsap,
115		eUnicastAddress_nonStandardAddress,
116	} choice;
117	union {
118		UnicastAddress_iPAddress iPAddress;
119		UnicastAddress_iP6Address iP6Address;
120	};
121} UnicastAddress;
122
123typedef struct H245_TransportAddress {	/* CHOICE */
124	enum {
125		eH245_TransportAddress_unicastAddress,
126		eH245_TransportAddress_multicastAddress,
127	} choice;
128	union {
129		UnicastAddress unicastAddress;
130	};
131} H245_TransportAddress;
132
133typedef struct H2250LogicalChannelParameters {	/* SEQUENCE */
134	enum {
135		eH2250LogicalChannelParameters_nonStandard = (1 << 31),
136		eH2250LogicalChannelParameters_associatedSessionID =
137		    (1 << 30),
138		eH2250LogicalChannelParameters_mediaChannel = (1 << 29),
139		eH2250LogicalChannelParameters_mediaGuaranteedDelivery =
140		    (1 << 28),
141		eH2250LogicalChannelParameters_mediaControlChannel =
142		    (1 << 27),
143		eH2250LogicalChannelParameters_mediaControlGuaranteedDelivery
144		    = (1 << 26),
145		eH2250LogicalChannelParameters_silenceSuppression = (1 << 25),
146		eH2250LogicalChannelParameters_destination = (1 << 24),
147		eH2250LogicalChannelParameters_dynamicRTPPayloadType =
148		    (1 << 23),
149		eH2250LogicalChannelParameters_mediaPacketization = (1 << 22),
150		eH2250LogicalChannelParameters_transportCapability =
151		    (1 << 21),
152		eH2250LogicalChannelParameters_redundancyEncoding = (1 << 20),
153		eH2250LogicalChannelParameters_source = (1 << 19),
154	} options;
155	H245_TransportAddress mediaChannel;
156	H245_TransportAddress mediaControlChannel;
157} H2250LogicalChannelParameters;
158
159typedef struct OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters {	/* CHOICE */
160	enum {
161		eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
162		eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
163		eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
164		eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
165		eOpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_none,
166	} choice;
167	union {
168		H2250LogicalChannelParameters h2250LogicalChannelParameters;
169	};
170} OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters;
171
172typedef struct OpenLogicalChannel_forwardLogicalChannelParameters {	/* SEQUENCE */
173	enum {
174		eOpenLogicalChannel_forwardLogicalChannelParameters_portNumber
175		    = (1 << 31),
176		eOpenLogicalChannel_forwardLogicalChannelParameters_forwardLogicalChannelDependency
177		    = (1 << 30),
178		eOpenLogicalChannel_forwardLogicalChannelParameters_replacementFor
179		    = (1 << 29),
180	} options;
181	DataType dataType;
182	OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters
183	    multiplexParameters;
184} OpenLogicalChannel_forwardLogicalChannelParameters;
185
186typedef struct OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters {	/* CHOICE */
187	enum {
188		eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h223LogicalChannelParameters,
189		eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_v76LogicalChannelParameters,
190		eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
191	} choice;
192	union {
193		H2250LogicalChannelParameters h2250LogicalChannelParameters;
194	};
195} OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters;
196
197typedef struct OpenLogicalChannel_reverseLogicalChannelParameters {	/* SEQUENCE */
198	enum {
199		eOpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
200		    = (1 << 31),
201		eOpenLogicalChannel_reverseLogicalChannelParameters_reverseLogicalChannelDependency
202		    = (1 << 30),
203		eOpenLogicalChannel_reverseLogicalChannelParameters_replacementFor
204		    = (1 << 29),
205	} options;
206	OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters
207	    multiplexParameters;
208} OpenLogicalChannel_reverseLogicalChannelParameters;
209
210typedef struct NetworkAccessParameters_networkAddress {	/* CHOICE */
211	enum {
212		eNetworkAccessParameters_networkAddress_q2931Address,
213		eNetworkAccessParameters_networkAddress_e164Address,
214		eNetworkAccessParameters_networkAddress_localAreaAddress,
215	} choice;
216	union {
217		H245_TransportAddress localAreaAddress;
218	};
219} NetworkAccessParameters_networkAddress;
220
221typedef struct NetworkAccessParameters {	/* SEQUENCE */
222	enum {
223		eNetworkAccessParameters_distribution = (1 << 31),
224		eNetworkAccessParameters_externalReference = (1 << 30),
225		eNetworkAccessParameters_t120SetupProcedure = (1 << 29),
226	} options;
227	NetworkAccessParameters_networkAddress networkAddress;
228} NetworkAccessParameters;
229
230typedef struct OpenLogicalChannel {	/* SEQUENCE */
231	enum {
232		eOpenLogicalChannel_reverseLogicalChannelParameters =
233		    (1 << 31),
234		eOpenLogicalChannel_separateStack = (1 << 30),
235		eOpenLogicalChannel_encryptionSync = (1 << 29),
236	} options;
237	OpenLogicalChannel_forwardLogicalChannelParameters
238	    forwardLogicalChannelParameters;
239	OpenLogicalChannel_reverseLogicalChannelParameters
240	    reverseLogicalChannelParameters;
241	NetworkAccessParameters separateStack;
242} OpenLogicalChannel;
243
244typedef struct Setup_UUIE_fastStart {	/* SEQUENCE OF */
245	int count;
246	OpenLogicalChannel item[30];
247} Setup_UUIE_fastStart;
248
249typedef struct Setup_UUIE {	/* SEQUENCE */
250	enum {
251		eSetup_UUIE_h245Address = (1 << 31),
252		eSetup_UUIE_sourceAddress = (1 << 30),
253		eSetup_UUIE_destinationAddress = (1 << 29),
254		eSetup_UUIE_destCallSignalAddress = (1 << 28),
255		eSetup_UUIE_destExtraCallInfo = (1 << 27),
256		eSetup_UUIE_destExtraCRV = (1 << 26),
257		eSetup_UUIE_callServices = (1 << 25),
258		eSetup_UUIE_sourceCallSignalAddress = (1 << 24),
259		eSetup_UUIE_remoteExtensionAddress = (1 << 23),
260		eSetup_UUIE_callIdentifier = (1 << 22),
261		eSetup_UUIE_h245SecurityCapability = (1 << 21),
262		eSetup_UUIE_tokens = (1 << 20),
263		eSetup_UUIE_cryptoTokens = (1 << 19),
264		eSetup_UUIE_fastStart = (1 << 18),
265		eSetup_UUIE_mediaWaitForConnect = (1 << 17),
266		eSetup_UUIE_canOverlapSend = (1 << 16),
267		eSetup_UUIE_endpointIdentifier = (1 << 15),
268		eSetup_UUIE_multipleCalls = (1 << 14),
269		eSetup_UUIE_maintainConnection = (1 << 13),
270		eSetup_UUIE_connectionParameters = (1 << 12),
271		eSetup_UUIE_language = (1 << 11),
272		eSetup_UUIE_presentationIndicator = (1 << 10),
273		eSetup_UUIE_screeningIndicator = (1 << 9),
274		eSetup_UUIE_serviceControl = (1 << 8),
275		eSetup_UUIE_symmetricOperationRequired = (1 << 7),
276		eSetup_UUIE_capacity = (1 << 6),
277		eSetup_UUIE_circuitInfo = (1 << 5),
278		eSetup_UUIE_desiredProtocols = (1 << 4),
279		eSetup_UUIE_neededFeatures = (1 << 3),
280		eSetup_UUIE_desiredFeatures = (1 << 2),
281		eSetup_UUIE_supportedFeatures = (1 << 1),
282		eSetup_UUIE_parallelH245Control = (1 << 0),
283	} options;
284	TransportAddress h245Address;
285	TransportAddress destCallSignalAddress;
286	TransportAddress sourceCallSignalAddress;
287	Setup_UUIE_fastStart fastStart;
288} Setup_UUIE;
289
290typedef struct CallProceeding_UUIE_fastStart {	/* SEQUENCE OF */
291	int count;
292	OpenLogicalChannel item[30];
293} CallProceeding_UUIE_fastStart;
294
295typedef struct CallProceeding_UUIE {	/* SEQUENCE */
296	enum {
297		eCallProceeding_UUIE_h245Address = (1 << 31),
298		eCallProceeding_UUIE_callIdentifier = (1 << 30),
299		eCallProceeding_UUIE_h245SecurityMode = (1 << 29),
300		eCallProceeding_UUIE_tokens = (1 << 28),
301		eCallProceeding_UUIE_cryptoTokens = (1 << 27),
302		eCallProceeding_UUIE_fastStart = (1 << 26),
303		eCallProceeding_UUIE_multipleCalls = (1 << 25),
304		eCallProceeding_UUIE_maintainConnection = (1 << 24),
305		eCallProceeding_UUIE_fastConnectRefused = (1 << 23),
306		eCallProceeding_UUIE_featureSet = (1 << 22),
307	} options;
308	TransportAddress h245Address;
309	CallProceeding_UUIE_fastStart fastStart;
310} CallProceeding_UUIE;
311
312typedef struct Connect_UUIE_fastStart {	/* SEQUENCE OF */
313	int count;
314	OpenLogicalChannel item[30];
315} Connect_UUIE_fastStart;
316
317typedef struct Connect_UUIE {	/* SEQUENCE */
318	enum {
319		eConnect_UUIE_h245Address = (1 << 31),
320		eConnect_UUIE_callIdentifier = (1 << 30),
321		eConnect_UUIE_h245SecurityMode = (1 << 29),
322		eConnect_UUIE_tokens = (1 << 28),
323		eConnect_UUIE_cryptoTokens = (1 << 27),
324		eConnect_UUIE_fastStart = (1 << 26),
325		eConnect_UUIE_multipleCalls = (1 << 25),
326		eConnect_UUIE_maintainConnection = (1 << 24),
327		eConnect_UUIE_language = (1 << 23),
328		eConnect_UUIE_connectedAddress = (1 << 22),
329		eConnect_UUIE_presentationIndicator = (1 << 21),
330		eConnect_UUIE_screeningIndicator = (1 << 20),
331		eConnect_UUIE_fastConnectRefused = (1 << 19),
332		eConnect_UUIE_serviceControl = (1 << 18),
333		eConnect_UUIE_capacity = (1 << 17),
334		eConnect_UUIE_featureSet = (1 << 16),
335	} options;
336	TransportAddress h245Address;
337	Connect_UUIE_fastStart fastStart;
338} Connect_UUIE;
339
340typedef struct Alerting_UUIE_fastStart {	/* SEQUENCE OF */
341	int count;
342	OpenLogicalChannel item[30];
343} Alerting_UUIE_fastStart;
344
345typedef struct Alerting_UUIE {	/* SEQUENCE */
346	enum {
347		eAlerting_UUIE_h245Address = (1 << 31),
348		eAlerting_UUIE_callIdentifier = (1 << 30),
349		eAlerting_UUIE_h245SecurityMode = (1 << 29),
350		eAlerting_UUIE_tokens = (1 << 28),
351		eAlerting_UUIE_cryptoTokens = (1 << 27),
352		eAlerting_UUIE_fastStart = (1 << 26),
353		eAlerting_UUIE_multipleCalls = (1 << 25),
354		eAlerting_UUIE_maintainConnection = (1 << 24),
355		eAlerting_UUIE_alertingAddress = (1 << 23),
356		eAlerting_UUIE_presentationIndicator = (1 << 22),
357		eAlerting_UUIE_screeningIndicator = (1 << 21),
358		eAlerting_UUIE_fastConnectRefused = (1 << 20),
359		eAlerting_UUIE_serviceControl = (1 << 19),
360		eAlerting_UUIE_capacity = (1 << 18),
361		eAlerting_UUIE_featureSet = (1 << 17),
362	} options;
363	TransportAddress h245Address;
364	Alerting_UUIE_fastStart fastStart;
365} Alerting_UUIE;
366
367typedef struct FacilityReason {	/* CHOICE */
368	enum {
369		eFacilityReason_routeCallToGatekeeper,
370		eFacilityReason_callForwarded,
371		eFacilityReason_routeCallToMC,
372		eFacilityReason_undefinedReason,
373		eFacilityReason_conferenceListChoice,
374		eFacilityReason_startH245,
375		eFacilityReason_noH245,
376		eFacilityReason_newTokens,
377		eFacilityReason_featureSetUpdate,
378		eFacilityReason_forwardedElements,
379		eFacilityReason_transportedInformation,
380	} choice;
381} FacilityReason;
382
383typedef struct Facility_UUIE_fastStart {	/* SEQUENCE OF */
384	int count;
385	OpenLogicalChannel item[30];
386} Facility_UUIE_fastStart;
387
388typedef struct Facility_UUIE {	/* SEQUENCE */
389	enum {
390		eFacility_UUIE_alternativeAddress = (1 << 31),
391		eFacility_UUIE_alternativeAliasAddress = (1 << 30),
392		eFacility_UUIE_conferenceID = (1 << 29),
393		eFacility_UUIE_callIdentifier = (1 << 28),
394		eFacility_UUIE_destExtraCallInfo = (1 << 27),
395		eFacility_UUIE_remoteExtensionAddress = (1 << 26),
396		eFacility_UUIE_tokens = (1 << 25),
397		eFacility_UUIE_cryptoTokens = (1 << 24),
398		eFacility_UUIE_conferences = (1 << 23),
399		eFacility_UUIE_h245Address = (1 << 22),
400		eFacility_UUIE_fastStart = (1 << 21),
401		eFacility_UUIE_multipleCalls = (1 << 20),
402		eFacility_UUIE_maintainConnection = (1 << 19),
403		eFacility_UUIE_fastConnectRefused = (1 << 18),
404		eFacility_UUIE_serviceControl = (1 << 17),
405		eFacility_UUIE_circuitInfo = (1 << 16),
406		eFacility_UUIE_featureSet = (1 << 15),
407		eFacility_UUIE_destinationInfo = (1 << 14),
408		eFacility_UUIE_h245SecurityMode = (1 << 13),
409	} options;
410	TransportAddress alternativeAddress;
411	FacilityReason reason;
412	TransportAddress h245Address;
413	Facility_UUIE_fastStart fastStart;
414} Facility_UUIE;
415
416typedef struct Progress_UUIE_fastStart {	/* SEQUENCE OF */
417	int count;
418	OpenLogicalChannel item[30];
419} Progress_UUIE_fastStart;
420
421typedef struct Progress_UUIE {	/* SEQUENCE */
422	enum {
423		eProgress_UUIE_h245Address = (1 << 31),
424		eProgress_UUIE_h245SecurityMode = (1 << 30),
425		eProgress_UUIE_tokens = (1 << 29),
426		eProgress_UUIE_cryptoTokens = (1 << 28),
427		eProgress_UUIE_fastStart = (1 << 27),
428		eProgress_UUIE_multipleCalls = (1 << 26),
429		eProgress_UUIE_maintainConnection = (1 << 25),
430		eProgress_UUIE_fastConnectRefused = (1 << 24),
431	} options;
432	TransportAddress h245Address;
433	Progress_UUIE_fastStart fastStart;
434} Progress_UUIE;
435
436typedef struct H323_UU_PDU_h323_message_body {	/* CHOICE */
437	enum {
438		eH323_UU_PDU_h323_message_body_setup,
439		eH323_UU_PDU_h323_message_body_callProceeding,
440		eH323_UU_PDU_h323_message_body_connect,
441		eH323_UU_PDU_h323_message_body_alerting,
442		eH323_UU_PDU_h323_message_body_information,
443		eH323_UU_PDU_h323_message_body_releaseComplete,
444		eH323_UU_PDU_h323_message_body_facility,
445		eH323_UU_PDU_h323_message_body_progress,
446		eH323_UU_PDU_h323_message_body_empty,
447		eH323_UU_PDU_h323_message_body_status,
448		eH323_UU_PDU_h323_message_body_statusInquiry,
449		eH323_UU_PDU_h323_message_body_setupAcknowledge,
450		eH323_UU_PDU_h323_message_body_notify,
451	} choice;
452	union {
453		Setup_UUIE setup;
454		CallProceeding_UUIE callProceeding;
455		Connect_UUIE connect;
456		Alerting_UUIE alerting;
457		Facility_UUIE facility;
458		Progress_UUIE progress;
459	};
460} H323_UU_PDU_h323_message_body;
461
462typedef struct RequestMessage {	/* CHOICE */
463	enum {
464		eRequestMessage_nonStandard,
465		eRequestMessage_masterSlaveDetermination,
466		eRequestMessage_terminalCapabilitySet,
467		eRequestMessage_openLogicalChannel,
468		eRequestMessage_closeLogicalChannel,
469		eRequestMessage_requestChannelClose,
470		eRequestMessage_multiplexEntrySend,
471		eRequestMessage_requestMultiplexEntry,
472		eRequestMessage_requestMode,
473		eRequestMessage_roundTripDelayRequest,
474		eRequestMessage_maintenanceLoopRequest,
475		eRequestMessage_communicationModeRequest,
476		eRequestMessage_conferenceRequest,
477		eRequestMessage_multilinkRequest,
478		eRequestMessage_logicalChannelRateRequest,
479	} choice;
480	union {
481		OpenLogicalChannel openLogicalChannel;
482	};
483} RequestMessage;
484
485typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters {	/* CHOICE */
486	enum {
487		eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h222LogicalChannelParameters,
488		eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters,
489	} choice;
490	union {
491		H2250LogicalChannelParameters h2250LogicalChannelParameters;
492	};
493} OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters;
494
495typedef struct OpenLogicalChannelAck_reverseLogicalChannelParameters {	/* SEQUENCE */
496	enum {
497		eOpenLogicalChannelAck_reverseLogicalChannelParameters_portNumber
498		    = (1 << 31),
499		eOpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
500		    = (1 << 30),
501		eOpenLogicalChannelAck_reverseLogicalChannelParameters_replacementFor
502		    = (1 << 29),
503	} options;
504	OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters
505	    multiplexParameters;
506} OpenLogicalChannelAck_reverseLogicalChannelParameters;
507
508typedef struct H2250LogicalChannelAckParameters {	/* SEQUENCE */
509	enum {
510		eH2250LogicalChannelAckParameters_nonStandard = (1 << 31),
511		eH2250LogicalChannelAckParameters_sessionID = (1 << 30),
512		eH2250LogicalChannelAckParameters_mediaChannel = (1 << 29),
513		eH2250LogicalChannelAckParameters_mediaControlChannel =
514		    (1 << 28),
515		eH2250LogicalChannelAckParameters_dynamicRTPPayloadType =
516		    (1 << 27),
517		eH2250LogicalChannelAckParameters_flowControlToZero =
518		    (1 << 26),
519		eH2250LogicalChannelAckParameters_portNumber = (1 << 25),
520	} options;
521	H245_TransportAddress mediaChannel;
522	H245_TransportAddress mediaControlChannel;
523} H2250LogicalChannelAckParameters;
524
525typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters {	/* CHOICE */
526	enum {
527		eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters,
528	} choice;
529	union {
530		H2250LogicalChannelAckParameters
531		    h2250LogicalChannelAckParameters;
532	};
533} OpenLogicalChannelAck_forwardMultiplexAckParameters;
534
535typedef struct OpenLogicalChannelAck {	/* SEQUENCE */
536	enum {
537		eOpenLogicalChannelAck_reverseLogicalChannelParameters =
538		    (1 << 31),
539		eOpenLogicalChannelAck_separateStack = (1 << 30),
540		eOpenLogicalChannelAck_forwardMultiplexAckParameters =
541		    (1 << 29),
542		eOpenLogicalChannelAck_encryptionSync = (1 << 28),
543	} options;
544	OpenLogicalChannelAck_reverseLogicalChannelParameters
545	    reverseLogicalChannelParameters;
546	NetworkAccessParameters separateStack;
547	OpenLogicalChannelAck_forwardMultiplexAckParameters
548	    forwardMultiplexAckParameters;
549} OpenLogicalChannelAck;
550
551typedef struct ResponseMessage {	/* CHOICE */
552	enum {
553		eResponseMessage_nonStandard,
554		eResponseMessage_masterSlaveDeterminationAck,
555		eResponseMessage_masterSlaveDeterminationReject,
556		eResponseMessage_terminalCapabilitySetAck,
557		eResponseMessage_terminalCapabilitySetReject,
558		eResponseMessage_openLogicalChannelAck,
559		eResponseMessage_openLogicalChannelReject,
560		eResponseMessage_closeLogicalChannelAck,
561		eResponseMessage_requestChannelCloseAck,
562		eResponseMessage_requestChannelCloseReject,
563		eResponseMessage_multiplexEntrySendAck,
564		eResponseMessage_multiplexEntrySendReject,
565		eResponseMessage_requestMultiplexEntryAck,
566		eResponseMessage_requestMultiplexEntryReject,
567		eResponseMessage_requestModeAck,
568		eResponseMessage_requestModeReject,
569		eResponseMessage_roundTripDelayResponse,
570		eResponseMessage_maintenanceLoopAck,
571		eResponseMessage_maintenanceLoopReject,
572		eResponseMessage_communicationModeResponse,
573		eResponseMessage_conferenceResponse,
574		eResponseMessage_multilinkResponse,
575		eResponseMessage_logicalChannelRateAcknowledge,
576		eResponseMessage_logicalChannelRateReject,
577	} choice;
578	union {
579		OpenLogicalChannelAck openLogicalChannelAck;
580	};
581} ResponseMessage;
582
583typedef struct MultimediaSystemControlMessage {	/* CHOICE */
584	enum {
585		eMultimediaSystemControlMessage_request,
586		eMultimediaSystemControlMessage_response,
587		eMultimediaSystemControlMessage_command,
588		eMultimediaSystemControlMessage_indication,
589	} choice;
590	union {
591		RequestMessage request;
592		ResponseMessage response;
593	};
594} MultimediaSystemControlMessage;
595
596typedef struct H323_UU_PDU_h245Control {	/* SEQUENCE OF */
597	int count;
598	MultimediaSystemControlMessage item[4];
599} H323_UU_PDU_h245Control;
600
601typedef struct H323_UU_PDU {	/* SEQUENCE */
602	enum {
603		eH323_UU_PDU_nonStandardData = (1 << 31),
604		eH323_UU_PDU_h4501SupplementaryService = (1 << 30),
605		eH323_UU_PDU_h245Tunneling = (1 << 29),
606		eH323_UU_PDU_h245Control = (1 << 28),
607		eH323_UU_PDU_nonStandardControl = (1 << 27),
608		eH323_UU_PDU_callLinkage = (1 << 26),
609		eH323_UU_PDU_tunnelledSignallingMessage = (1 << 25),
610		eH323_UU_PDU_provisionalRespToH245Tunneling = (1 << 24),
611		eH323_UU_PDU_stimulusControl = (1 << 23),
612		eH323_UU_PDU_genericData = (1 << 22),
613	} options;
614	H323_UU_PDU_h323_message_body h323_message_body;
615	H323_UU_PDU_h245Control h245Control;
616} H323_UU_PDU;
617
618typedef struct H323_UserInformation {	/* SEQUENCE */
619	enum {
620		eH323_UserInformation_user_data = (1 << 31),
621	} options;
622	H323_UU_PDU h323_uu_pdu;
623} H323_UserInformation;
624
625typedef struct GatekeeperRequest {	/* SEQUENCE */
626	enum {
627		eGatekeeperRequest_nonStandardData = (1 << 31),
628		eGatekeeperRequest_gatekeeperIdentifier = (1 << 30),
629		eGatekeeperRequest_callServices = (1 << 29),
630		eGatekeeperRequest_endpointAlias = (1 << 28),
631		eGatekeeperRequest_alternateEndpoints = (1 << 27),
632		eGatekeeperRequest_tokens = (1 << 26),
633		eGatekeeperRequest_cryptoTokens = (1 << 25),
634		eGatekeeperRequest_authenticationCapability = (1 << 24),
635		eGatekeeperRequest_algorithmOIDs = (1 << 23),
636		eGatekeeperRequest_integrity = (1 << 22),
637		eGatekeeperRequest_integrityCheckValue = (1 << 21),
638		eGatekeeperRequest_supportsAltGK = (1 << 20),
639		eGatekeeperRequest_featureSet = (1 << 19),
640		eGatekeeperRequest_genericData = (1 << 18),
641	} options;
642	TransportAddress rasAddress;
643} GatekeeperRequest;
644
645typedef struct GatekeeperConfirm {	/* SEQUENCE */
646	enum {
647		eGatekeeperConfirm_nonStandardData = (1 << 31),
648		eGatekeeperConfirm_gatekeeperIdentifier = (1 << 30),
649		eGatekeeperConfirm_alternateGatekeeper = (1 << 29),
650		eGatekeeperConfirm_authenticationMode = (1 << 28),
651		eGatekeeperConfirm_tokens = (1 << 27),
652		eGatekeeperConfirm_cryptoTokens = (1 << 26),
653		eGatekeeperConfirm_algorithmOID = (1 << 25),
654		eGatekeeperConfirm_integrity = (1 << 24),
655		eGatekeeperConfirm_integrityCheckValue = (1 << 23),
656		eGatekeeperConfirm_featureSet = (1 << 22),
657		eGatekeeperConfirm_genericData = (1 << 21),
658	} options;
659	TransportAddress rasAddress;
660} GatekeeperConfirm;
661
662typedef struct RegistrationRequest_callSignalAddress {	/* SEQUENCE OF */
663	int count;
664	TransportAddress item[10];
665} RegistrationRequest_callSignalAddress;
666
667typedef struct RegistrationRequest_rasAddress {	/* SEQUENCE OF */
668	int count;
669	TransportAddress item[10];
670} RegistrationRequest_rasAddress;
671
672typedef struct RegistrationRequest {	/* SEQUENCE */
673	enum {
674		eRegistrationRequest_nonStandardData = (1 << 31),
675		eRegistrationRequest_terminalAlias = (1 << 30),
676		eRegistrationRequest_gatekeeperIdentifier = (1 << 29),
677		eRegistrationRequest_alternateEndpoints = (1 << 28),
678		eRegistrationRequest_timeToLive = (1 << 27),
679		eRegistrationRequest_tokens = (1 << 26),
680		eRegistrationRequest_cryptoTokens = (1 << 25),
681		eRegistrationRequest_integrityCheckValue = (1 << 24),
682		eRegistrationRequest_keepAlive = (1 << 23),
683		eRegistrationRequest_endpointIdentifier = (1 << 22),
684		eRegistrationRequest_willSupplyUUIEs = (1 << 21),
685		eRegistrationRequest_maintainConnection = (1 << 20),
686		eRegistrationRequest_alternateTransportAddresses = (1 << 19),
687		eRegistrationRequest_additiveRegistration = (1 << 18),
688		eRegistrationRequest_terminalAliasPattern = (1 << 17),
689		eRegistrationRequest_supportsAltGK = (1 << 16),
690		eRegistrationRequest_usageReportingCapability = (1 << 15),
691		eRegistrationRequest_multipleCalls = (1 << 14),
692		eRegistrationRequest_supportedH248Packages = (1 << 13),
693		eRegistrationRequest_callCreditCapability = (1 << 12),
694		eRegistrationRequest_capacityReportingCapability = (1 << 11),
695		eRegistrationRequest_capacity = (1 << 10),
696		eRegistrationRequest_featureSet = (1 << 9),
697		eRegistrationRequest_genericData = (1 << 8),
698	} options;
699	RegistrationRequest_callSignalAddress callSignalAddress;
700	RegistrationRequest_rasAddress rasAddress;
701	unsigned timeToLive;
702} RegistrationRequest;
703
704typedef struct RegistrationConfirm_callSignalAddress {	/* SEQUENCE OF */
705	int count;
706	TransportAddress item[10];
707} RegistrationConfirm_callSignalAddress;
708
709typedef struct RegistrationConfirm {	/* SEQUENCE */
710	enum {
711		eRegistrationConfirm_nonStandardData = (1 << 31),
712		eRegistrationConfirm_terminalAlias = (1 << 30),
713		eRegistrationConfirm_gatekeeperIdentifier = (1 << 29),
714		eRegistrationConfirm_alternateGatekeeper = (1 << 28),
715		eRegistrationConfirm_timeToLive = (1 << 27),
716		eRegistrationConfirm_tokens = (1 << 26),
717		eRegistrationConfirm_cryptoTokens = (1 << 25),
718		eRegistrationConfirm_integrityCheckValue = (1 << 24),
719		eRegistrationConfirm_willRespondToIRR = (1 << 23),
720		eRegistrationConfirm_preGrantedARQ = (1 << 22),
721		eRegistrationConfirm_maintainConnection = (1 << 21),
722		eRegistrationConfirm_serviceControl = (1 << 20),
723		eRegistrationConfirm_supportsAdditiveRegistration = (1 << 19),
724		eRegistrationConfirm_terminalAliasPattern = (1 << 18),
725		eRegistrationConfirm_supportedPrefixes = (1 << 17),
726		eRegistrationConfirm_usageSpec = (1 << 16),
727		eRegistrationConfirm_featureServerAlias = (1 << 15),
728		eRegistrationConfirm_capacityReportingSpec = (1 << 14),
729		eRegistrationConfirm_featureSet = (1 << 13),
730		eRegistrationConfirm_genericData = (1 << 12),
731	} options;
732	RegistrationConfirm_callSignalAddress callSignalAddress;
733	unsigned timeToLive;
734} RegistrationConfirm;
735
736typedef struct UnregistrationRequest_callSignalAddress {	/* SEQUENCE OF */
737	int count;
738	TransportAddress item[10];
739} UnregistrationRequest_callSignalAddress;
740
741typedef struct UnregistrationRequest {	/* SEQUENCE */
742	enum {
743		eUnregistrationRequest_endpointAlias = (1 << 31),
744		eUnregistrationRequest_nonStandardData = (1 << 30),
745		eUnregistrationRequest_endpointIdentifier = (1 << 29),
746		eUnregistrationRequest_alternateEndpoints = (1 << 28),
747		eUnregistrationRequest_gatekeeperIdentifier = (1 << 27),
748		eUnregistrationRequest_tokens = (1 << 26),
749		eUnregistrationRequest_cryptoTokens = (1 << 25),
750		eUnregistrationRequest_integrityCheckValue = (1 << 24),
751		eUnregistrationRequest_reason = (1 << 23),
752		eUnregistrationRequest_endpointAliasPattern = (1 << 22),
753		eUnregistrationRequest_supportedPrefixes = (1 << 21),
754		eUnregistrationRequest_alternateGatekeeper = (1 << 20),
755		eUnregistrationRequest_genericData = (1 << 19),
756	} options;
757	UnregistrationRequest_callSignalAddress callSignalAddress;
758} UnregistrationRequest;
759
760typedef struct AdmissionRequest {	/* SEQUENCE */
761	enum {
762		eAdmissionRequest_callModel = (1 << 31),
763		eAdmissionRequest_destinationInfo = (1 << 30),
764		eAdmissionRequest_destCallSignalAddress = (1 << 29),
765		eAdmissionRequest_destExtraCallInfo = (1 << 28),
766		eAdmissionRequest_srcCallSignalAddress = (1 << 27),
767		eAdmissionRequest_nonStandardData = (1 << 26),
768		eAdmissionRequest_callServices = (1 << 25),
769		eAdmissionRequest_canMapAlias = (1 << 24),
770		eAdmissionRequest_callIdentifier = (1 << 23),
771		eAdmissionRequest_srcAlternatives = (1 << 22),
772		eAdmissionRequest_destAlternatives = (1 << 21),
773		eAdmissionRequest_gatekeeperIdentifier = (1 << 20),
774		eAdmissionRequest_tokens = (1 << 19),
775		eAdmissionRequest_cryptoTokens = (1 << 18),
776		eAdmissionRequest_integrityCheckValue = (1 << 17),
777		eAdmissionRequest_transportQOS = (1 << 16),
778		eAdmissionRequest_willSupplyUUIEs = (1 << 15),
779		eAdmissionRequest_callLinkage = (1 << 14),
780		eAdmissionRequest_gatewayDataRate = (1 << 13),
781		eAdmissionRequest_capacity = (1 << 12),
782		eAdmissionRequest_circuitInfo = (1 << 11),
783		eAdmissionRequest_desiredProtocols = (1 << 10),
784		eAdmissionRequest_desiredTunnelledProtocol = (1 << 9),
785		eAdmissionRequest_featureSet = (1 << 8),
786		eAdmissionRequest_genericData = (1 << 7),
787	} options;
788	TransportAddress destCallSignalAddress;
789	TransportAddress srcCallSignalAddress;
790} AdmissionRequest;
791
792typedef struct AdmissionConfirm {	/* SEQUENCE */
793	enum {
794		eAdmissionConfirm_irrFrequency = (1 << 31),
795		eAdmissionConfirm_nonStandardData = (1 << 30),
796		eAdmissionConfirm_destinationInfo = (1 << 29),
797		eAdmissionConfirm_destExtraCallInfo = (1 << 28),
798		eAdmissionConfirm_destinationType = (1 << 27),
799		eAdmissionConfirm_remoteExtensionAddress = (1 << 26),
800		eAdmissionConfirm_alternateEndpoints = (1 << 25),
801		eAdmissionConfirm_tokens = (1 << 24),
802		eAdmissionConfirm_cryptoTokens = (1 << 23),
803		eAdmissionConfirm_integrityCheckValue = (1 << 22),
804		eAdmissionConfirm_transportQOS = (1 << 21),
805		eAdmissionConfirm_willRespondToIRR = (1 << 20),
806		eAdmissionConfirm_uuiesRequested = (1 << 19),
807		eAdmissionConfirm_language = (1 << 18),
808		eAdmissionConfirm_alternateTransportAddresses = (1 << 17),
809		eAdmissionConfirm_useSpecifiedTransport = (1 << 16),
810		eAdmissionConfirm_circuitInfo = (1 << 15),
811		eAdmissionConfirm_usageSpec = (1 << 14),
812		eAdmissionConfirm_supportedProtocols = (1 << 13),
813		eAdmissionConfirm_serviceControl = (1 << 12),
814		eAdmissionConfirm_multipleCalls = (1 << 11),
815		eAdmissionConfirm_featureSet = (1 << 10),
816		eAdmissionConfirm_genericData = (1 << 9),
817	} options;
818	TransportAddress destCallSignalAddress;
819} AdmissionConfirm;
820
821typedef struct LocationRequest {	/* SEQUENCE */
822	enum {
823		eLocationRequest_endpointIdentifier = (1 << 31),
824		eLocationRequest_nonStandardData = (1 << 30),
825		eLocationRequest_sourceInfo = (1 << 29),
826		eLocationRequest_canMapAlias = (1 << 28),
827		eLocationRequest_gatekeeperIdentifier = (1 << 27),
828		eLocationRequest_tokens = (1 << 26),
829		eLocationRequest_cryptoTokens = (1 << 25),
830		eLocationRequest_integrityCheckValue = (1 << 24),
831		eLocationRequest_desiredProtocols = (1 << 23),
832		eLocationRequest_desiredTunnelledProtocol = (1 << 22),
833		eLocationRequest_featureSet = (1 << 21),
834		eLocationRequest_genericData = (1 << 20),
835		eLocationRequest_hopCount = (1 << 19),
836		eLocationRequest_circuitInfo = (1 << 18),
837	} options;
838	TransportAddress replyAddress;
839} LocationRequest;
840
841typedef struct LocationConfirm {	/* SEQUENCE */
842	enum {
843		eLocationConfirm_nonStandardData = (1 << 31),
844		eLocationConfirm_destinationInfo = (1 << 30),
845		eLocationConfirm_destExtraCallInfo = (1 << 29),
846		eLocationConfirm_destinationType = (1 << 28),
847		eLocationConfirm_remoteExtensionAddress = (1 << 27),
848		eLocationConfirm_alternateEndpoints = (1 << 26),
849		eLocationConfirm_tokens = (1 << 25),
850		eLocationConfirm_cryptoTokens = (1 << 24),
851		eLocationConfirm_integrityCheckValue = (1 << 23),
852		eLocationConfirm_alternateTransportAddresses = (1 << 22),
853		eLocationConfirm_supportedProtocols = (1 << 21),
854		eLocationConfirm_multipleCalls = (1 << 20),
855		eLocationConfirm_featureSet = (1 << 19),
856		eLocationConfirm_genericData = (1 << 18),
857		eLocationConfirm_circuitInfo = (1 << 17),
858		eLocationConfirm_serviceControl = (1 << 16),
859	} options;
860	TransportAddress callSignalAddress;
861	TransportAddress rasAddress;
862} LocationConfirm;
863
864typedef struct InfoRequestResponse_callSignalAddress {	/* SEQUENCE OF */
865	int count;
866	TransportAddress item[10];
867} InfoRequestResponse_callSignalAddress;
868
869typedef struct InfoRequestResponse {	/* SEQUENCE */
870	enum {
871		eInfoRequestResponse_nonStandardData = (1 << 31),
872		eInfoRequestResponse_endpointAlias = (1 << 30),
873		eInfoRequestResponse_perCallInfo = (1 << 29),
874		eInfoRequestResponse_tokens = (1 << 28),
875		eInfoRequestResponse_cryptoTokens = (1 << 27),
876		eInfoRequestResponse_integrityCheckValue = (1 << 26),
877		eInfoRequestResponse_needResponse = (1 << 25),
878		eInfoRequestResponse_capacity = (1 << 24),
879		eInfoRequestResponse_irrStatus = (1 << 23),
880		eInfoRequestResponse_unsolicited = (1 << 22),
881		eInfoRequestResponse_genericData = (1 << 21),
882	} options;
883	TransportAddress rasAddress;
884	InfoRequestResponse_callSignalAddress callSignalAddress;
885} InfoRequestResponse;
886
887typedef struct RasMessage {	/* CHOICE */
888	enum {
889		eRasMessage_gatekeeperRequest,
890		eRasMessage_gatekeeperConfirm,
891		eRasMessage_gatekeeperReject,
892		eRasMessage_registrationRequest,
893		eRasMessage_registrationConfirm,
894		eRasMessage_registrationReject,
895		eRasMessage_unregistrationRequest,
896		eRasMessage_unregistrationConfirm,
897		eRasMessage_unregistrationReject,
898		eRasMessage_admissionRequest,
899		eRasMessage_admissionConfirm,
900		eRasMessage_admissionReject,
901		eRasMessage_bandwidthRequest,
902		eRasMessage_bandwidthConfirm,
903		eRasMessage_bandwidthReject,
904		eRasMessage_disengageRequest,
905		eRasMessage_disengageConfirm,
906		eRasMessage_disengageReject,
907		eRasMessage_locationRequest,
908		eRasMessage_locationConfirm,
909		eRasMessage_locationReject,
910		eRasMessage_infoRequest,
911		eRasMessage_infoRequestResponse,
912		eRasMessage_nonStandardMessage,
913		eRasMessage_unknownMessageResponse,
914		eRasMessage_requestInProgress,
915		eRasMessage_resourcesAvailableIndicate,
916		eRasMessage_resourcesAvailableConfirm,
917		eRasMessage_infoRequestAck,
918		eRasMessage_infoRequestNak,
919		eRasMessage_serviceControlIndication,
920		eRasMessage_serviceControlResponse,
921	} choice;
922	union {
923		GatekeeperRequest gatekeeperRequest;
924		GatekeeperConfirm gatekeeperConfirm;
925		RegistrationRequest registrationRequest;
926		RegistrationConfirm registrationConfirm;
927		UnregistrationRequest unregistrationRequest;
928		AdmissionRequest admissionRequest;
929		AdmissionConfirm admissionConfirm;
930		LocationRequest locationRequest;
931		LocationConfirm locationConfirm;
932		InfoRequestResponse infoRequestResponse;
933	};
934} RasMessage;
935