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