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 
8 typedef struct TransportAddress_ipAddress {	/* SEQUENCE */
9 	int options;		/* No use */
10 	unsigned ip;
11 } TransportAddress_ipAddress;
12 
13 typedef struct TransportAddress_ip6Address {	/* SEQUENCE */
14 	int options;		/* No use */
15 	unsigned ip;
16 } TransportAddress_ip6Address;
17 
18 typedef 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 
34 typedef 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 
53 typedef 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 
75 typedef struct DataApplicationCapability {	/* SEQUENCE */
76 	int options;		/* No use */
77 	DataApplicationCapability_application application;
78 } DataApplicationCapability;
79 
80 typedef 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 
97 typedef struct UnicastAddress_iPAddress {	/* SEQUENCE */
98 	int options;		/* No use */
99 	unsigned network;
100 } UnicastAddress_iPAddress;
101 
102 typedef struct UnicastAddress_iP6Address {	/* SEQUENCE */
103 	int options;		/* No use */
104 	unsigned network;
105 } UnicastAddress_iP6Address;
106 
107 typedef 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 
123 typedef 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 
133 typedef 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 
159 typedef 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 
172 typedef 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 
186 typedef 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 
197 typedef 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 
210 typedef 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 
221 typedef 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 
230 typedef 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 
244 typedef struct Setup_UUIE_fastStart {	/* SEQUENCE OF */
245 	int count;
246 	OpenLogicalChannel item[30];
247 } Setup_UUIE_fastStart;
248 
249 typedef 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 
290 typedef struct CallProceeding_UUIE_fastStart {	/* SEQUENCE OF */
291 	int count;
292 	OpenLogicalChannel item[30];
293 } CallProceeding_UUIE_fastStart;
294 
295 typedef 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 
312 typedef struct Connect_UUIE_fastStart {	/* SEQUENCE OF */
313 	int count;
314 	OpenLogicalChannel item[30];
315 } Connect_UUIE_fastStart;
316 
317 typedef 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 
340 typedef struct Alerting_UUIE_fastStart {	/* SEQUENCE OF */
341 	int count;
342 	OpenLogicalChannel item[30];
343 } Alerting_UUIE_fastStart;
344 
345 typedef 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 
367 typedef 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 
383 typedef struct Facility_UUIE_fastStart {	/* SEQUENCE OF */
384 	int count;
385 	OpenLogicalChannel item[30];
386 } Facility_UUIE_fastStart;
387 
388 typedef 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 
416 typedef struct Progress_UUIE_fastStart {	/* SEQUENCE OF */
417 	int count;
418 	OpenLogicalChannel item[30];
419 } Progress_UUIE_fastStart;
420 
421 typedef 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 
436 typedef 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 
462 typedef 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 
485 typedef 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 
495 typedef 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 
508 typedef 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 
525 typedef struct OpenLogicalChannelAck_forwardMultiplexAckParameters {	/* CHOICE */
526 	enum {
527 		eOpenLogicalChannelAck_forwardMultiplexAckParameters_h2250LogicalChannelAckParameters,
528 	} choice;
529 	union {
530 		H2250LogicalChannelAckParameters
531 		    h2250LogicalChannelAckParameters;
532 	};
533 } OpenLogicalChannelAck_forwardMultiplexAckParameters;
534 
535 typedef 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 
551 typedef 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 
583 typedef 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 
596 typedef struct H323_UU_PDU_h245Control {	/* SEQUENCE OF */
597 	int count;
598 	MultimediaSystemControlMessage item[4];
599 } H323_UU_PDU_h245Control;
600 
601 typedef 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 
618 typedef 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 
625 typedef 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 
645 typedef 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 
662 typedef struct RegistrationRequest_callSignalAddress {	/* SEQUENCE OF */
663 	int count;
664 	TransportAddress item[10];
665 } RegistrationRequest_callSignalAddress;
666 
667 typedef struct RegistrationRequest_rasAddress {	/* SEQUENCE OF */
668 	int count;
669 	TransportAddress item[10];
670 } RegistrationRequest_rasAddress;
671 
672 typedef 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 
704 typedef struct RegistrationConfirm_callSignalAddress {	/* SEQUENCE OF */
705 	int count;
706 	TransportAddress item[10];
707 } RegistrationConfirm_callSignalAddress;
708 
709 typedef 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 
736 typedef struct UnregistrationRequest_callSignalAddress {	/* SEQUENCE OF */
737 	int count;
738 	TransportAddress item[10];
739 } UnregistrationRequest_callSignalAddress;
740 
741 typedef 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 
760 typedef 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 
792 typedef 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 
821 typedef 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 
841 typedef 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 
864 typedef struct InfoRequestResponse_callSignalAddress {	/* SEQUENCE OF */
865 	int count;
866 	TransportAddress item[10];
867 } InfoRequestResponse_callSignalAddress;
868 
869 typedef 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 
887 typedef 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