Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-h245.c
blobb5fdc45803b8ae09ac019df1bc32273e15e55c74
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-h245.c */
4 /* asn2wrs.py -q -L -p h245 -c ./h245.cnf -s ./packet-h245-template -D . -O ../.. MULTIMEDIA-SYSTEM-CONTROL.asn */
6 /* packet-h245_asn1.c
7 * Routines for h245 packet dissection
8 * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
16 * To quote the author of the previous H245 dissector:
17 * "This is a complete replacement of the previous limitied dissector
18 * that Ronnie was crazy enough to write by hand. It was a lot of time
19 * to hack it by hand, but it is incomplete and buggy and it is good when
20 * it will go away."
21 * Ronnie did a great job and all the VoIP users had made good use of it!
22 * Credit to Tomas Kukosa for developing the asn2wrs compiler.
26 #include "config.h"
28 #include <epan/packet.h>
29 #include <epan/exceptions.h>
30 #include <epan/strutil.h>
31 #include <epan/addr_resolv.h>
32 #include <epan/prefs.h>
33 #include <epan/t35.h>
34 #include <epan/oids.h>
35 #include <epan/asn1.h>
36 #include <epan/proto_data.h>
37 #include <epan/tap.h>
38 #include <wsutil/pint.h>
39 #include <wsutil/array.h>
40 #include "packet-tpkt.h"
41 #include "packet-per.h"
42 #include "packet-h323.h"
43 #include "packet-h245.h"
44 #include "packet-rtp.h"
45 #include "packet-rtcp.h"
46 #include "packet-t38.h"
48 #define PNAME "MULTIMEDIA-SYSTEM-CONTROL"
49 #define PSNAME "H.245"
50 #define PFNAME "h245"
52 void proto_register_h245(void);
53 void proto_reg_handoff_h245(void);
55 static dissector_handle_t rtcp_handle;
56 static dissector_table_t nsp_object_dissector_table;
57 static dissector_table_t nsp_h221_dissector_table;
58 static dissector_table_t gef_name_dissector_table;
59 static dissector_table_t gef_content_dissector_table;
60 static dissector_handle_t h245_handle;
61 static dissector_handle_t nsp_handle;
62 static dissector_handle_t data_handle;
63 static dissector_handle_t MultimediaSystemControlMessage_handle;
64 static dissector_handle_t h263_handle;
65 static dissector_handle_t amr_handle;
67 static void init_h245_packet_info(h245_packet_info *pi);
68 static int hf_h245_pdu_type;
69 static int hf_h245Manufacturer;
70 static int hf_h245_subMessageIdentifier_standard;
71 static int h245_tap;
72 static int h245dg_tap;
73 static int hf_h245_debug_dissector_try_string;
75 h245_packet_info *h245_pi=NULL;
77 static bool h245_reassembly = true;
78 static bool h245_shorttypes;
79 static bool info_col_fmt_prepend;
82 typedef enum _AudioCapability_enum {
83 AudioCapability_nonStandard = 0,
84 AudioCapability_g711Alaw64k = 1,
85 AudioCapability_g711Alaw56k = 2,
86 AudioCapability_g711Ulaw64k = 3,
87 AudioCapability_g711Ulaw56k = 4,
88 AudioCapability_g722_64k = 5,
89 AudioCapability_g722_56k = 6,
90 AudioCapability_g722_48k = 7,
91 AudioCapability_g7231 = 8,
92 AudioCapability_g728 = 9,
93 AudioCapability_g729 = 10,
94 AudioCapability_g729AnnexA = 11,
95 AudioCapability_is11172AudioCapability = 12,
96 AudioCapability_is13818AudioCapability = 13,
97 AudioCapability_g729wAnnexB = 14,
98 AudioCapability_g729AnnexAwAnnexB = 15,
99 AudioCapability_g7231AnnexCCapability = 16,
100 AudioCapability_gsmFullRate = 17,
101 AudioCapability_gsmHalfRate = 18,
102 AudioCapability_gsmEnhancedFullRate = 19,
103 AudioCapability_genericAudioCapability = 20,
104 AudioCapability_g729Extensions = 21,
105 AudioCapability_vbd = 22,
106 AudioCapability_audioTelephonyEvent = 23,
107 AudioCapability_audioTone = 24
108 } AudioCapability_enum;
110 typedef enum _RequestMessage_enum {
111 RequestMessage_nonStandard = 0,
112 RequestMessage_masterSlaveDetermination = 1,
113 RequestMessage_terminalCapabilitySet = 2,
114 RequestMessage_openLogicalChannel = 3,
115 RequestMessage_closeLogicalChannel = 4,
116 RequestMessage_requestChannelClose = 5,
117 RequestMessage_multiplexEntrySend = 6,
118 RequestMessage_requestMultiplexEntry = 7,
119 RequestMessage_requestMode = 8,
120 RequestMessage_roundTripDelayRequest = 9,
121 RequestMessage_maintenanceLoopRequest = 10,
122 RequestMessage_communicationModeRequest = 11,
123 RequestMessage_conferenceRequest = 12,
124 RequestMessage_multilinkRequest = 13,
125 RequestMessage_logicalChannelRateRequest = 14,
126 RequestMessage_genericRequest = 15
127 } RequestMessage_enum;
129 typedef enum _ResponseMessage_enum {
130 ResponseMessage_nonStandard = 0,
131 ResponseMessage_masterSlaveDeterminationAck = 1,
132 ResponseMessage_masterSlaveDeterminationReject = 2,
133 ResponseMessage_terminalCapabilitySetAck = 3,
134 ResponseMessage_terminalCapabilitySetReject = 4,
135 ResponseMessage_openLogicalChannelAck = 5,
136 ResponseMessage_openLogicalChannelReject = 6,
137 ResponseMessage_closeLogicalChannelAck = 7,
138 ResponseMessage_requestChannelCloseAck = 8,
139 ResponseMessage_requestChannelCloseReject = 9,
140 ResponseMessage_multiplexEntrySendAck = 10,
141 ResponseMessage_multiplexEntrySendReject = 11,
142 ResponseMessage_requestMultiplexEntryAck = 12,
143 ResponseMessage_requestMultiplexEntryReject = 13,
144 ResponseMessage_requestModeAck = 14,
145 ResponseMessage_requestModeReject = 15,
146 ResponseMessage_roundTripDelayResponse = 16,
147 ResponseMessage_maintenanceLoopAck = 17,
148 ResponseMessage_maintenanceLoopReject = 18,
149 ResponseMessage_communicationModeResponse = 19,
150 ResponseMessage_conferenceResponse = 20,
151 ResponseMessage_multilinkResponse = 21,
152 ResponseMessage_logicalChannelRateAcknowledge = 22,
153 ResponseMessage_logicalChannelRateReject = 23,
154 ResponseMessage_genericResponse = 24
155 } ResponseMessage_enum;
157 typedef enum _CommandMessage_enum {
158 CommandMessage_nonStandard = 0,
159 CommandMessage_maintenanceLoopOffCommand = 1,
160 CommandMessage_sendTerminalCapabilitySet = 2,
161 CommandMessage_encryptionCommand = 3,
162 CommandMessage_flowControlCommand = 4,
163 CommandMessage_endSessionCommand = 5,
164 CommandMessage_miscellaneousCommand = 6,
165 CommandMessage_communicationModeCommand = 7,
166 CommandMessage_conferenceCommand = 8,
167 CommandMessage_h223MultiplexReconfiguration = 9,
168 CommandMessage_newATMVCCommand = 10,
169 CommandMessage_mobileMultilinkReconfigurationCommand = 11,
170 CommandMessage_genericCommand = 12
171 } CommandMessage_enum;
173 typedef enum _IndicationMessage_enum {
174 IndicationMessage_nonStandard = 0,
175 IndicationMessage_functionNotUnderstood = 1,
176 IndicationMessage_masterSlaveDeterminationRelease = 2,
177 IndicationMessage_terminalCapabilitySetRelease = 3,
178 IndicationMessage_openLogicalChannelConfirm = 4,
179 IndicationMessage_requestChannelCloseRelease = 5,
180 IndicationMessage_multiplexEntrySendRelease = 6,
181 IndicationMessage_requestMultiplexEntryRelease = 7,
182 IndicationMessage_requestModeRelease = 8,
183 IndicationMessage_miscellaneousIndication = 9,
184 IndicationMessage_jitterIndication = 10,
185 IndicationMessage_h223SkewIndication = 11,
186 IndicationMessage_newATMVCIndication = 12,
187 IndicationMessage_userInput = 13,
188 IndicationMessage_h2250MaximumSkewIndication = 14,
189 IndicationMessage_mcLocationIndication = 15,
190 IndicationMessage_conferenceIndication = 16,
191 IndicationMessage_vendorIdentification = 17,
192 IndicationMessage_functionNotSupported = 18,
193 IndicationMessage_multilinkIndication = 19,
194 IndicationMessage_logicalChannelRateRelease = 20,
195 IndicationMessage_flowControlIndication = 21,
196 IndicationMessage_mobileMultilinkReconfigurationIndication = 22,
197 IndicationMessage_genericIndication = 23
198 } IndicationMessage_enum;
200 static const value_string h245_RequestMessage_short_vals[] = {
201 { RequestMessage_nonStandard , "NSM" },
202 { RequestMessage_masterSlaveDetermination , "MSD" },
203 { RequestMessage_terminalCapabilitySet , "TCS" },
204 { RequestMessage_openLogicalChannel , "OLC" },
205 { RequestMessage_closeLogicalChannel , "CLC" },
206 { RequestMessage_requestChannelClose , "RCC" },
207 { RequestMessage_multiplexEntrySend , "MES" },
208 { RequestMessage_requestMultiplexEntry , "RME" },
209 { RequestMessage_requestMode , "RM" },
210 { RequestMessage_roundTripDelayRequest , "RTDR" },
211 { RequestMessage_maintenanceLoopRequest , "MLR" },
212 { RequestMessage_communicationModeRequest , "CMR" },
213 { RequestMessage_conferenceRequest , "CR" },
214 { RequestMessage_multilinkRequest , "MR" },
215 { RequestMessage_logicalChannelRateRequest, "LCRR" },
216 { RequestMessage_genericRequest , "GR" },
217 { 0, NULL }
219 static const value_string h245_ResponseMessage_short_vals[] = {
220 { ResponseMessage_nonStandard , "NSM" },
221 { ResponseMessage_masterSlaveDeterminationAck , "MSDAck" },
222 { ResponseMessage_masterSlaveDeterminationReject, "MSDReject" },
223 { ResponseMessage_terminalCapabilitySetAck , "TCSAck" },
224 { ResponseMessage_terminalCapabilitySetReject , "TCSReject" },
225 { ResponseMessage_openLogicalChannelAck , "OLCAck" },
226 { ResponseMessage_openLogicalChannelReject , "OLCReject" },
227 { ResponseMessage_closeLogicalChannelAck , "CLCAck" },
228 { ResponseMessage_requestChannelCloseAck , "RCCAck" },
229 { ResponseMessage_requestChannelCloseReject , "RCCReject" },
230 { ResponseMessage_multiplexEntrySendAck , "MESAck" },
231 { ResponseMessage_multiplexEntrySendReject , "MESReject" },
232 { ResponseMessage_requestMultiplexEntryAck , "RMEAck" },
233 { ResponseMessage_requestMultiplexEntryReject , "RMEReject" },
234 { ResponseMessage_requestModeAck , "RMAck" },
235 { ResponseMessage_requestModeReject , "RMReject" },
236 { ResponseMessage_roundTripDelayResponse , "RTDResponse" },
237 { ResponseMessage_maintenanceLoopAck , "MLAck" },
238 { ResponseMessage_maintenanceLoopReject , "MLReject" },
239 { ResponseMessage_communicationModeResponse , "CMResponse" },
240 { ResponseMessage_conferenceResponse , "CResponse" },
241 { ResponseMessage_multilinkResponse , "MResponse" },
242 { ResponseMessage_logicalChannelRateAcknowledge , "LCRAck" },
243 { ResponseMessage_logicalChannelRateReject , "LCRReject" },
244 { ResponseMessage_genericResponse , "GR" },
245 { 0, NULL }
247 static const value_string h245_IndicationMessage_short_vals[] = {
248 { IndicationMessage_nonStandard , "NSM" },
249 { IndicationMessage_functionNotUnderstood , "FNU" },
250 { IndicationMessage_masterSlaveDeterminationRelease , "MSDRelease" },
251 { IndicationMessage_terminalCapabilitySetRelease , "TCSRelease" },
252 { IndicationMessage_openLogicalChannelConfirm , "OLCConfirm" },
253 { IndicationMessage_requestChannelCloseRelease , "RCCRelease" },
254 { IndicationMessage_multiplexEntrySendRelease , "MESRelease" },
255 { IndicationMessage_requestMultiplexEntryRelease , "RMERelease" },
256 { IndicationMessage_requestModeRelease , "RMRelease" },
257 { IndicationMessage_miscellaneousIndication , "MI" },
258 { IndicationMessage_jitterIndication , "JI" },
259 { IndicationMessage_h223SkewIndication , "H223SI" },
260 { IndicationMessage_newATMVCIndication , "NATMVCI" },
261 { IndicationMessage_userInput , "UII" },
262 { IndicationMessage_h2250MaximumSkewIndication , "H2250MSI" },
263 { IndicationMessage_mcLocationIndication , "MCLI" },
264 { IndicationMessage_conferenceIndication , "CI" },
265 { IndicationMessage_vendorIdentification , "VI" },
266 { IndicationMessage_functionNotSupported , "FNS" },
267 { IndicationMessage_multilinkIndication , "MultilinkIndication" },
268 { IndicationMessage_logicalChannelRateRelease , "LCRRelease" },
269 { IndicationMessage_flowControlIndication , "FCIndication" },
270 { IndicationMessage_mobileMultilinkReconfigurationIndication, "MMRI" },
271 { IndicationMessage_genericIndication , "GI" },
272 { 0, NULL }
274 static const value_string h245_CommandMessage_short_vals[] = {
275 { CommandMessage_nonStandard , "NSM" },
276 { CommandMessage_maintenanceLoopOffCommand , "MLOC" },
277 { CommandMessage_sendTerminalCapabilitySet , "STCS" },
278 { CommandMessage_encryptionCommand , "EC" },
279 { CommandMessage_flowControlCommand , "FCC" },
280 { CommandMessage_endSessionCommand , "ESC" },
281 { CommandMessage_miscellaneousCommand , "MC" },
282 { CommandMessage_communicationModeCommand , "CMC" },
283 { CommandMessage_conferenceCommand , "CC" },
284 { CommandMessage_h223MultiplexReconfiguration , "H223MR" },
285 { CommandMessage_newATMVCCommand , "NATMVCC" },
286 { CommandMessage_mobileMultilinkReconfigurationCommand, "MMRC" },
287 { CommandMessage_genericCommand , "GC" },
288 { 0, NULL }
291 static const value_string h245_AudioCapability_short_vals[] = {
292 { AudioCapability_nonStandard , "nonStd" },
293 { AudioCapability_g711Alaw64k , "g711A" },
294 { AudioCapability_g711Alaw56k , "g711A56k" },
295 { AudioCapability_g711Ulaw64k , "g711U" },
296 { AudioCapability_g711Ulaw56k , "g711U56k" },
297 { AudioCapability_g722_64k , "g722-64k" },
298 { AudioCapability_g722_56k , "g722-56k" },
299 { AudioCapability_g722_48k , "g722-48k" },
300 { AudioCapability_g7231 , "g7231" },
301 { AudioCapability_g728 , "g728" },
302 { AudioCapability_g729 , "g729" },
303 { AudioCapability_g729AnnexA , "g729A" },
304 { AudioCapability_is11172AudioCapability, "is11172" },
305 { AudioCapability_is13818AudioCapability, "is13818" },
306 { AudioCapability_g729wAnnexB , "g729B" },
307 { AudioCapability_g729AnnexAwAnnexB , "g729AB" },
308 { AudioCapability_g7231AnnexCCapability , "g7231C" },
309 { AudioCapability_gsmFullRate , "gsmFR" },
310 { AudioCapability_gsmHalfRate , "gsmHR" },
311 { AudioCapability_gsmEnhancedFullRate , "gsmEFR" },
312 { AudioCapability_genericAudioCapability, "generic" },
313 { AudioCapability_g729Extensions , "g729Ext" },
314 { AudioCapability_vbd , "vbd" },
315 { AudioCapability_audioTelephonyEvent , "audioTelEvent" },
316 { AudioCapability_audioTone , "audioTone" },
317 { 0, NULL }
320 /* To put the codec type only in COL_INFO when
321 an OLC is read */
322 const char* codec_type;
323 static uint32_t rfc_number;
325 typedef struct _unicast_addr_t {
326 address addr;
327 uint8_t addr_buf[16];
328 uint32_t port;
329 } unicast_addr_t;
331 typedef struct _channel_info_t {
332 char data_type_str[32];
333 unicast_addr_t *upcoming_addr;
334 unicast_addr_t media_addr;
335 unicast_addr_t media_control_addr;
336 unsigned int rfc2198;
337 bool srtp_flag;
338 bool is_video;
339 } channel_info_t;
341 typedef struct _olc_info_t {
342 uint16_t fwd_lc_num;
343 channel_info_t fwd_lc;
344 channel_info_t rev_lc;
345 } olc_info_t;
347 static wmem_map_t* h245_pending_olc_reqs;
348 static bool fast_start;
349 static olc_info_t *upcoming_olc;
350 static channel_info_t *upcoming_channel;
352 /* NonStandardParameter */
353 static const char *nsiOID;
354 static uint32_t h221NonStandard;
355 static uint32_t t35CountryCode;
356 static uint32_t t35Extension;
357 static uint32_t manufacturerCode;
359 static const value_string h245_RFC_number_vals[] = {
360 { 2190, "RFC 2190 - H.263 Video Streams" },
361 { 2198, "RFC 2198 - RTP Payload for Redundant Audio Data" },
362 { 2429, "RFC 2429 - 1998 Version of ITU-T Rec. H.263 Video (H.263+)" },
363 { 3016, "RFC 3016 - RTP Payload Format for MPEG-4 Audio/Visual Streams" },
364 { 3267, "RFC 3267 - Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB)" },
365 { 3984, "RFC 3984 - RTP Payload Format for H.264 Video" },
366 { 0, NULL }
369 /* Table 7/H.239 subMessageIdentifier values */
370 static const value_string h245_h239subMessageIdentifier_vals[] = {
371 { 1, "flowControlReleaseRequest" },
372 { 2, "flowControlReleaseResponse" },
373 { 3, "presentationTokenRequest" },
374 { 4, "presentationTokenResponse" },
375 { 5, "presentationTokenRelease" },
376 { 6, "presentationTokenIndicateOwner" },
377 { 0, NULL }
381 /* h223 multiplex codes */
382 static h223_set_mc_handle_t h223_set_mc_handle;
383 h223_mux_element *h223_me=NULL;
384 uint8_t h223_mc=0;
385 void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle )
387 h223_set_mc_handle = handle;
390 /* h223 logical channels */
391 typedef struct {
392 h223_lc_params *fw_channel_params;
393 h223_lc_params *rev_channel_params;
394 } h223_pending_olc;
396 static wmem_map_t* h223_pending_olc_reqs[2];
397 static dissector_handle_t h245_lc_dissector;
398 static uint16_t h245_lc_temp;
399 static uint16_t h223_fw_lc_num;
400 static uint16_t h223_rev_lc_num;
401 static h223_lc_params *h223_lc_params_temp;
402 static h223_lc_params *h223_fw_lc_params;
403 static h223_lc_params *h223_rev_lc_params;
404 static h223_add_lc_handle_t h223_add_lc_handle;
406 static void h223_lc_init( void )
408 h223_lc_params_temp = NULL;
409 h245_lc_dissector = NULL;
410 h223_fw_lc_num = 0;
413 void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle )
415 h223_add_lc_handle = handle;
418 static const char *gen_olc_key(uint16_t lc_num, address *dst_addr, address *src_addr, wmem_allocator_t *scope)
420 return wmem_strdup_printf(scope, "%s/%s/%u",
421 address_to_str(scope, dst_addr),
422 address_to_str(scope, src_addr),
423 lc_num);
426 static void update_unicast_addr(unicast_addr_t *req_addr, unicast_addr_t *ack_addr)
428 if (ack_addr->addr.type!=AT_NONE && ack_addr->port!=0) {
429 memcpy(req_addr->addr_buf, ack_addr->addr_buf, sizeof(req_addr->addr_buf));
430 set_address(&req_addr->addr, ack_addr->addr.type, ack_addr->addr.len, req_addr->addr_buf);
431 req_addr->port = ack_addr->port;
435 static void h245_setup_channels(packet_info *pinfo, channel_info_t *upcoming_channel_lcl)
437 rtp_dyn_payload_t *rtp_dyn_payload = NULL;
438 struct srtp_info *dummy_srtp_info = NULL;
440 if (!upcoming_channel_lcl) return;
442 /* T.38 */
443 if (!strcmp(upcoming_channel_lcl->data_type_str, "t38fax")) {
444 if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0) {
445 t38_add_address(pinfo, &upcoming_channel_lcl->media_addr.addr,
446 upcoming_channel_lcl->media_addr.port, 0,
447 "H245", pinfo->num);
449 return;
452 /* (S)RTP, (S)RTCP */
453 if (upcoming_channel_lcl->rfc2198 > 0) {
454 rtp_dyn_payload = rtp_dyn_payload_new();
455 rtp_dyn_payload_insert(rtp_dyn_payload, upcoming_channel_lcl->rfc2198, "red", 8000, 1);
458 if (upcoming_channel_lcl->srtp_flag) {
459 dummy_srtp_info = wmem_new0(wmem_file_scope(), struct srtp_info);
462 /* DEBUG ws_warning("h245_setup_channels media_addr.addr.type %u port %u",upcoming_channel_lcl->media_addr.addr.type, upcoming_channel_lcl->media_addr.port );
464 if (upcoming_channel_lcl->media_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_addr.port!=0) {
465 srtp_add_address(pinfo, PT_UDP, &upcoming_channel_lcl->media_addr.addr,
466 upcoming_channel_lcl->media_addr.port, 0,
467 "H245", pinfo->num, upcoming_channel_lcl->is_video , rtp_dyn_payload, dummy_srtp_info, NULL);
469 if (upcoming_channel_lcl->media_control_addr.addr.type!=AT_NONE && upcoming_channel_lcl->media_control_addr.port!=0 && rtcp_handle) {
470 srtcp_add_address(pinfo, &upcoming_channel_lcl->media_control_addr.addr,
471 upcoming_channel_lcl->media_control_addr.port, 0,
472 "H245", pinfo->num, dummy_srtp_info);
476 /* Prints formated information column of h245 messages. Note that global variables
477 * "h245_shorttypes" and "info_col_fmt_prepend" are used to decide formating preferences */
478 static void print_info_column(column_info *cinfo, const int32_t *value,
479 const value_string *msg_vals, const value_string *short_msg_vals)
481 const value_string *vals;
483 if (h245_shorttypes == false || short_msg_vals == NULL) {
484 vals = msg_vals;
485 } else {
486 vals = short_msg_vals;
489 if (info_col_fmt_prepend == false) {
490 col_append_fstr(cinfo, COL_INFO, "%s ", val_to_str_const(*value, vals, "<unknown>"));
491 } else {
492 col_prepend_fstr(cinfo, COL_INFO, "%s ", val_to_str_const(*value, vals, "<unknown>"));
496 /* Initialize the protocol and registered fields */
497 static int proto_h245;
498 static int hf_h245_OpenLogicalChannel_PDU; /* OpenLogicalChannel */
499 static int hf_h245_request; /* RequestMessage */
500 static int hf_h245_response; /* ResponseMessage */
501 static int hf_h245_command; /* CommandMessage */
502 static int hf_h245_indication; /* IndicationMessage */
503 static int hf_h245_nonStandardMsg; /* NonStandardMessage */
504 static int hf_h245_masterSlaveDetermination; /* MasterSlaveDetermination */
505 static int hf_h245_terminalCapabilitySet; /* TerminalCapabilitySet */
506 static int hf_h245_openLogicalChannel; /* OpenLogicalChannel */
507 static int hf_h245_closeLogicalChannel; /* CloseLogicalChannel */
508 static int hf_h245_requestChannelClose; /* RequestChannelClose */
509 static int hf_h245_multiplexEntrySend; /* MultiplexEntrySend */
510 static int hf_h245_requestMultiplexEntry; /* RequestMultiplexEntry */
511 static int hf_h245_requestMode; /* RequestMode */
512 static int hf_h245_roundTripDelayRequest; /* RoundTripDelayRequest */
513 static int hf_h245_maintenanceLoopRequest; /* MaintenanceLoopRequest */
514 static int hf_h245_communicationModeRequest; /* CommunicationModeRequest */
515 static int hf_h245_conferenceRequest; /* ConferenceRequest */
516 static int hf_h245_multilinkRequest; /* MultilinkRequest */
517 static int hf_h245_logicalChannelRateRequest; /* LogicalChannelRateRequest */
518 static int hf_h245_genericRequest; /* GenericMessage */
519 static int hf_h245_masterSlaveDeterminationAck; /* MasterSlaveDeterminationAck */
520 static int hf_h245_masterSlaveDeterminationReject; /* MasterSlaveDeterminationReject */
521 static int hf_h245_terminalCapabilitySetAck; /* TerminalCapabilitySetAck */
522 static int hf_h245_terminalCapabilitySetReject; /* TerminalCapabilitySetReject */
523 static int hf_h245_openLogicalChannelAck; /* OpenLogicalChannelAck */
524 static int hf_h245_openLogicalChannelReject; /* OpenLogicalChannelReject */
525 static int hf_h245_closeLogicalChannelAck; /* CloseLogicalChannelAck */
526 static int hf_h245_requestChannelCloseAck; /* RequestChannelCloseAck */
527 static int hf_h245_requestChannelCloseReject; /* RequestChannelCloseReject */
528 static int hf_h245_multiplexEntrySendAck; /* MultiplexEntrySendAck */
529 static int hf_h245_multiplexEntrySendReject; /* MultiplexEntrySendReject */
530 static int hf_h245_requestMultiplexEntryAck; /* RequestMultiplexEntryAck */
531 static int hf_h245_requestMultiplexEntryReject; /* RequestMultiplexEntryReject */
532 static int hf_h245_requestModeAck; /* RequestModeAck */
533 static int hf_h245_requestModeReject; /* RequestModeReject */
534 static int hf_h245_roundTripDelayResponse; /* RoundTripDelayResponse */
535 static int hf_h245_maintenanceLoopAck; /* MaintenanceLoopAck */
536 static int hf_h245_maintenanceLoopReject; /* MaintenanceLoopReject */
537 static int hf_h245_communicationModeResponse; /* CommunicationModeResponse */
538 static int hf_h245_conferenceResponse; /* ConferenceResponse */
539 static int hf_h245_multilinkResponse; /* MultilinkResponse */
540 static int hf_h245_logicalChannelRateAcknowledge; /* LogicalChannelRateAcknowledge */
541 static int hf_h245_logicalChannelRateReject; /* LogicalChannelRateReject */
542 static int hf_h245_genericResponse; /* GenericMessage */
543 static int hf_h245_maintenanceLoopOffCommand; /* MaintenanceLoopOffCommand */
544 static int hf_h245_sendTerminalCapabilitySet; /* SendTerminalCapabilitySet */
545 static int hf_h245_encryptionCommand; /* EncryptionCommand */
546 static int hf_h245_flowControlCommand; /* FlowControlCommand */
547 static int hf_h245_endSessionCommand; /* EndSessionCommand */
548 static int hf_h245_miscellaneousCommand; /* MiscellaneousCommand */
549 static int hf_h245_communicationModeCommand; /* CommunicationModeCommand */
550 static int hf_h245_conferenceCommand; /* ConferenceCommand */
551 static int hf_h245_h223MultiplexReconfiguration; /* H223MultiplexReconfiguration */
552 static int hf_h245_newATMVCCommand; /* NewATMVCCommand */
553 static int hf_h245_mobileMultilinkReconfigurationCommand; /* MobileMultilinkReconfigurationCommand */
554 static int hf_h245_genericCommand; /* GenericMessage */
555 static int hf_h245_functionNotUnderstood; /* FunctionNotUnderstood */
556 static int hf_h245_masterSlaveDeterminationRelease; /* MasterSlaveDeterminationRelease */
557 static int hf_h245_terminalCapabilitySetRelease; /* TerminalCapabilitySetRelease */
558 static int hf_h245_openLogicalChannelConfirm; /* OpenLogicalChannelConfirm */
559 static int hf_h245_requestChannelCloseRelease; /* RequestChannelCloseRelease */
560 static int hf_h245_multiplexEntrySendRelease; /* MultiplexEntrySendRelease */
561 static int hf_h245_requestMultiplexEntryRelease; /* RequestMultiplexEntryRelease */
562 static int hf_h245_requestModeRelease; /* RequestModeRelease */
563 static int hf_h245_miscellaneousIndication; /* MiscellaneousIndication */
564 static int hf_h245_jitterIndication; /* JitterIndication */
565 static int hf_h245_h223SkewIndication; /* H223SkewIndication */
566 static int hf_h245_newATMVCIndication; /* NewATMVCIndication */
567 static int hf_h245_userInput; /* UserInputIndication */
568 static int hf_h245_h2250MaximumSkewIndication; /* H2250MaximumSkewIndication */
569 static int hf_h245_mcLocationIndication; /* MCLocationIndication */
570 static int hf_h245_conferenceIndication; /* ConferenceIndication */
571 static int hf_h245_vendorIdentification; /* VendorIdentification */
572 static int hf_h245_functionNotSupported; /* FunctionNotSupported */
573 static int hf_h245_multilinkIndication; /* MultilinkIndication */
574 static int hf_h245_logicalChannelRateRelease; /* LogicalChannelRateRelease */
575 static int hf_h245_flowControlIndication; /* FlowControlIndication */
576 static int hf_h245_mobileMultilinkReconfigurationIndication; /* MobileMultilinkReconfigurationIndication */
577 static int hf_h245_genericIndication; /* GenericMessage */
578 static int hf_h245_messageIdentifier; /* CapabilityIdentifier */
579 static int hf_h245_subMessageIdentifier; /* T_subMessageIdentifier */
580 static int hf_h245_messageContent; /* T_messageContent */
581 static int hf_h245_messageContent_item; /* T_messageContent_item */
582 static int hf_h245_nonStandardData; /* NonStandardParameter */
583 static int hf_h245_nonStandardIdentifier; /* NonStandardIdentifier */
584 static int hf_h245_nsd_data; /* T_nsd_data */
585 static int hf_h245_object; /* T_object */
586 static int hf_h245_h221NonStandardID; /* H221NonStandardID */
587 static int hf_h245_t35CountryCode; /* T_t35CountryCode */
588 static int hf_h245_t35Extension; /* T_t35Extension */
589 static int hf_h245_manufacturerCode; /* T_manufacturerCode */
590 static int hf_h245_terminalType; /* INTEGER_0_255 */
591 static int hf_h245_statusDeterminationNumber; /* INTEGER_0_16777215 */
592 static int hf_h245_decision; /* T_decision */
593 static int hf_h245_master; /* NULL */
594 static int hf_h245_slave; /* NULL */
595 static int hf_h245_msd_rej_cause; /* MasterSlaveDeterminationRejectCause */
596 static int hf_h245_identicalNumbers; /* NULL */
597 static int hf_h245_sequenceNumber; /* SequenceNumber */
598 static int hf_h245_protocolIdentifier; /* OBJECT_IDENTIFIER */
599 static int hf_h245_multiplexCapability; /* MultiplexCapability */
600 static int hf_h245_capabilityTable; /* SET_SIZE_1_256_OF_CapabilityTableEntry */
601 static int hf_h245_capabilityTable_item; /* CapabilityTableEntry */
602 static int hf_h245_capabilityDescriptors; /* SET_SIZE_1_256_OF_CapabilityDescriptor */
603 static int hf_h245_capabilityDescriptors_item; /* CapabilityDescriptor */
604 static int hf_h245_genericInformation; /* SEQUENCE_OF_GenericInformation */
605 static int hf_h245_genericInformation_item; /* GenericInformation */
606 static int hf_h245_capabilityTableEntryNumber; /* CapabilityTableEntryNumber */
607 static int hf_h245_capability; /* Capability */
608 static int hf_h245_capabilityDescriptorNumber; /* CapabilityDescriptorNumber */
609 static int hf_h245_simultaneousCapabilities; /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */
610 static int hf_h245_simultaneousCapabilities_item; /* AlternativeCapabilitySet */
611 static int hf_h245_AlternativeCapabilitySet_item; /* CapabilityTableEntryNumber */
612 static int hf_h245_tcs_rej_cause; /* TerminalCapabilitySetRejectCause */
613 static int hf_h245_unspecified; /* NULL */
614 static int hf_h245_undefinedTableEntryUsed; /* NULL */
615 static int hf_h245_descriptorCapacityExceeded; /* NULL */
616 static int hf_h245_tableEntryCapacityExceeded; /* T_tableEntryCapacityExceeded */
617 static int hf_h245_highestEntryNumberProcessed; /* CapabilityTableEntryNumber */
618 static int hf_h245_noneProcessed; /* NULL */
619 static int hf_h245_nonStandard; /* NonStandardParameter */
620 static int hf_h245_receiveVideoCapability; /* VideoCapability */
621 static int hf_h245_transmitVideoCapability; /* VideoCapability */
622 static int hf_h245_receiveAndTransmitVideoCapability; /* VideoCapability */
623 static int hf_h245_receiveAudioCapability; /* AudioCapability */
624 static int hf_h245_transmitAudioCapability; /* AudioCapability */
625 static int hf_h245_receiveAndTransmitAudioCapability; /* AudioCapability */
626 static int hf_h245_receiveDataApplicationCapability; /* DataApplicationCapability */
627 static int hf_h245_transmitDataApplicationCapability; /* DataApplicationCapability */
628 static int hf_h245_receiveAndTransmitDataApplicationCapability; /* DataApplicationCapability */
629 static int hf_h245_h233EncryptionTransmitCapability; /* BOOLEAN */
630 static int hf_h245_h233EncryptionReceiveCapability; /* T_h233EncryptionReceiveCapability */
631 static int hf_h245_h233IVResponseTime; /* INTEGER_0_255 */
632 static int hf_h245_conferenceCapability; /* ConferenceCapability */
633 static int hf_h245_h235SecurityCapability; /* H235SecurityCapability */
634 static int hf_h245_maxPendingReplacementFor; /* INTEGER_0_255 */
635 static int hf_h245_receiveUserInputCapability; /* UserInputCapability */
636 static int hf_h245_transmitUserInputCapability; /* UserInputCapability */
637 static int hf_h245_receiveAndTransmitUserInputCapability; /* UserInputCapability */
638 static int hf_h245_genericControlCapability; /* GenericCapability */
639 static int hf_h245_receiveMultiplexedStreamCapability; /* MultiplexedStreamCapability */
640 static int hf_h245_transmitMultiplexedStreamCapability; /* MultiplexedStreamCapability */
641 static int hf_h245_receiveAndTransmitMultiplexedStreamCapability; /* MultiplexedStreamCapability */
642 static int hf_h245_receiveRTPAudioTelephonyEventCapability; /* AudioTelephonyEventCapability */
643 static int hf_h245_receiveRTPAudioToneCapability; /* AudioToneCapability */
644 static int hf_h245_depFecCapability; /* DepFECCapability */
645 static int hf_h245_multiplePayloadStreamCapability; /* MultiplePayloadStreamCapability */
646 static int hf_h245_fecCapability; /* FECCapability */
647 static int hf_h245_redundancyEncodingCap; /* RedundancyEncodingCapability */
648 static int hf_h245_oneOfCapabilities; /* AlternativeCapabilitySet */
649 static int hf_h245_encryptionAuthenticationAndIntegrity; /* EncryptionAuthenticationAndIntegrity */
650 static int hf_h245_mediaCapability; /* CapabilityTableEntryNumber */
651 static int hf_h245_h222Capability; /* H222Capability */
652 static int hf_h245_h223Capability; /* H223Capability */
653 static int hf_h245_v76Capability; /* V76Capability */
654 static int hf_h245_h2250Capability; /* H2250Capability */
655 static int hf_h245_genericMultiplexCapability; /* GenericCapability */
656 static int hf_h245_numberOfVCs; /* INTEGER_1_256 */
657 static int hf_h245_vcCapability; /* SET_OF_VCCapability */
658 static int hf_h245_vcCapability_item; /* VCCapability */
659 static int hf_h245_aal1; /* T_aal1 */
660 static int hf_h245_nullClockRecovery; /* BOOLEAN */
661 static int hf_h245_srtsClockRecovery_bool; /* BOOLEAN */
662 static int hf_h245_adaptiveClockRecovery; /* BOOLEAN */
663 static int hf_h245_nullErrorCorrection; /* BOOLEAN */
664 static int hf_h245_longInterleaver; /* BOOLEAN */
665 static int hf_h245_shortInterleaver; /* BOOLEAN */
666 static int hf_h245_errorCorrectionOnly; /* BOOLEAN */
667 static int hf_h245_structuredDataTransfer; /* BOOLEAN */
668 static int hf_h245_partiallyFilledCells; /* BOOLEAN */
669 static int hf_h245_aal5; /* T_aal5 */
670 static int hf_h245_forwardMaximumSDUSize; /* INTEGER_0_65535 */
671 static int hf_h245_backwardMaximumSDUSize; /* INTEGER_0_65535 */
672 static int hf_h245_transportStream_bool; /* BOOLEAN */
673 static int hf_h245_programStream; /* BOOLEAN */
674 static int hf_h245_availableBitRates; /* T_availableBitRates */
675 static int hf_h245_avb_type; /* Avb_type */
676 static int hf_h245_singleBitRate; /* INTEGER_1_65535 */
677 static int hf_h245_rangeOfBitRates; /* T_rangeOfBitRates */
678 static int hf_h245_lowerBitRate; /* INTEGER_1_65535 */
679 static int hf_h245_higherBitRate; /* INTEGER_1_65535 */
680 static int hf_h245_aal1ViaGateway; /* T_aal1ViaGateway */
681 static int hf_h245_gatewayAddress; /* SET_SIZE_1_256_OF_Q2931Address */
682 static int hf_h245_gatewayAddress_item; /* Q2931Address */
683 static int hf_h245_srtsClockRecoveryflag; /* BOOLEAN */
684 static int hf_h245_transportWithI_frames; /* BOOLEAN */
685 static int hf_h245_videoWithAL1; /* BOOLEAN */
686 static int hf_h245_videoWithAL2; /* BOOLEAN */
687 static int hf_h245_videoWithAL3; /* BOOLEAN */
688 static int hf_h245_audioWithAL1; /* BOOLEAN */
689 static int hf_h245_audioWithAL2; /* BOOLEAN */
690 static int hf_h245_audioWithAL3; /* BOOLEAN */
691 static int hf_h245_dataWithAL1; /* BOOLEAN */
692 static int hf_h245_dataWithAL2; /* BOOLEAN */
693 static int hf_h245_dataWithAL3; /* BOOLEAN */
694 static int hf_h245_maximumAl2SDUSize; /* INTEGER_0_65535 */
695 static int hf_h245_maximumAl3SDUSize; /* INTEGER_0_65535 */
696 static int hf_h245_maximumDelayJitter; /* INTEGER_0_1023 */
697 static int hf_h245_h223MultiplexTableCapability; /* T_h223MultiplexTableCapability */
698 static int hf_h245_basic; /* NULL */
699 static int hf_h245_enhanced; /* T_enhanced */
700 static int hf_h245_maximumNestingDepth; /* INTEGER_1_15 */
701 static int hf_h245_maximumElementListSize; /* INTEGER_2_255 */
702 static int hf_h245_maximumSubElementListSize; /* INTEGER_2_255 */
703 static int hf_h245_maxMUXPDUSizeCapability; /* BOOLEAN */
704 static int hf_h245_nsrpSupport; /* BOOLEAN */
705 static int hf_h245_mobileOperationTransmitCapability; /* T_mobileOperationTransmitCapability */
706 static int hf_h245_modeChangeCapability; /* BOOLEAN */
707 static int hf_h245_h223AnnexA; /* BOOLEAN */
708 static int hf_h245_h223AnnexADoubleFlagFlag; /* BOOLEAN */
709 static int hf_h245_h223AnnexB; /* BOOLEAN */
710 static int hf_h245_h223AnnexBwithHeader; /* BOOLEAN */
711 static int hf_h245_h223AnnexCCapability; /* H223AnnexCCapability */
712 static int hf_h245_bitRate_1_19200; /* INTEGER_1_19200 */
713 static int hf_h245_mobileMultilinkFrameCapability; /* T_mobileMultilinkFrameCapability */
714 static int hf_h245_maximumSampleSize; /* INTEGER_1_255 */
715 static int hf_h245_maximumPayloadLength; /* INTEGER_1_65025 */
716 static int hf_h245_videoWithAL1M; /* BOOLEAN */
717 static int hf_h245_videoWithAL2M; /* BOOLEAN */
718 static int hf_h245_videoWithAL3M; /* BOOLEAN */
719 static int hf_h245_audioWithAL1M; /* BOOLEAN */
720 static int hf_h245_audioWithAL2M; /* BOOLEAN */
721 static int hf_h245_audioWithAL3M; /* BOOLEAN */
722 static int hf_h245_dataWithAL1M; /* BOOLEAN */
723 static int hf_h245_dataWithAL2M; /* BOOLEAN */
724 static int hf_h245_dataWithAL3M; /* BOOLEAN */
725 static int hf_h245_alpduInterleaving; /* BOOLEAN */
726 static int hf_h245_maximumAL1MPDUSize; /* INTEGER_0_65535 */
727 static int hf_h245_maximumAL2MSDUSize; /* INTEGER_0_65535 */
728 static int hf_h245_maximumAL3MSDUSize; /* INTEGER_0_65535 */
729 static int hf_h245_rsCodeCapability; /* BOOLEAN */
730 static int hf_h245_suspendResumeCapabilitywAddress; /* BOOLEAN */
731 static int hf_h245_suspendResumeCapabilitywoAddress; /* BOOLEAN */
732 static int hf_h245_rejCapability; /* BOOLEAN */
733 static int hf_h245_sREJCapability; /* BOOLEAN */
734 static int hf_h245_mREJCapability; /* BOOLEAN */
735 static int hf_h245_crc8bitCapability; /* BOOLEAN */
736 static int hf_h245_crc16bitCapability; /* BOOLEAN */
737 static int hf_h245_crc32bitCapability; /* BOOLEAN */
738 static int hf_h245_uihCapability; /* BOOLEAN */
739 static int hf_h245_numOfDLCS; /* INTEGER_2_8191 */
740 static int hf_h245_twoOctetAddressFieldCapability; /* BOOLEAN */
741 static int hf_h245_loopBackTestCapability; /* BOOLEAN */
742 static int hf_h245_n401Capability; /* INTEGER_1_4095 */
743 static int hf_h245_maxWindowSizeCapability; /* INTEGER_1_127 */
744 static int hf_h245_v75Capability; /* V75Capability */
745 static int hf_h245_audioHeader; /* BOOLEAN */
746 static int hf_h245_maximumAudioDelayJitter; /* INTEGER_0_1023 */
747 static int hf_h245_receiveMultipointCapability; /* MultipointCapability */
748 static int hf_h245_transmitMultipointCapability; /* MultipointCapability */
749 static int hf_h245_receiveAndTransmitMultipointCapability; /* MultipointCapability */
750 static int hf_h245_mcCapability; /* T_mcCapability */
751 static int hf_h245_centralizedConferenceMC; /* BOOLEAN */
752 static int hf_h245_decentralizedConferenceMC; /* BOOLEAN */
753 static int hf_h245_rtcpVideoControlCapability; /* BOOLEAN */
754 static int hf_h245_mediaPacketizationCapability; /* MediaPacketizationCapability */
755 static int hf_h245_transportCapability; /* TransportCapability */
756 static int hf_h245_redundancyEncodingCapability; /* SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability */
757 static int hf_h245_redundancyEncodingCapability_item; /* RedundancyEncodingCapability */
758 static int hf_h245_logicalChannelSwitchingCapability; /* BOOLEAN */
759 static int hf_h245_t120DynamicPortCapability; /* BOOLEAN */
760 static int hf_h245_h261aVideoPacketization; /* BOOLEAN */
761 static int hf_h245_rtpPayloadTypes; /* SEQUENCE_SIZE_1_256_OF_RTPPayloadType */
762 static int hf_h245_rtpPayloadTypes_item; /* RTPPayloadType */
763 static int hf_h245_qosMode; /* QOSMode */
764 static int hf_h245_tokenRate; /* INTEGER_1_4294967295 */
765 static int hf_h245_bucketSize; /* INTEGER_1_4294967295 */
766 static int hf_h245_peakRate; /* INTEGER_1_4294967295 */
767 static int hf_h245_minPoliced; /* INTEGER_1_4294967295 */
768 static int hf_h245_maxPktSize; /* INTEGER_1_4294967295 */
769 static int hf_h245_guaranteedQOS; /* NULL */
770 static int hf_h245_controlledLoad; /* NULL */
771 static int hf_h245_maxNTUSize; /* INTEGER_0_65535 */
772 static int hf_h245_atmUBR; /* BOOLEAN */
773 static int hf_h245_atmrtVBR; /* BOOLEAN */
774 static int hf_h245_atmnrtVBR; /* BOOLEAN */
775 static int hf_h245_atmABR; /* BOOLEAN */
776 static int hf_h245_atmCBR; /* BOOLEAN */
777 static int hf_h245_nonStandardParameter; /* NonStandardParameter */
778 static int hf_h245_value; /* INTEGER_0_255 */
779 static int hf_h245_servicePrioritySignalled; /* BOOLEAN */
780 static int hf_h245_servicePriorityValue; /* ServicePriorityValue */
781 static int hf_h245_serviceClass; /* INTEGER_0_4095 */
782 static int hf_h245_serviceSubclass; /* INTEGER_0_255 */
783 static int hf_h245_desired; /* NULL */
784 static int hf_h245_required; /* NULL */
785 static int hf_h245_class0; /* NULL */
786 static int hf_h245_class1; /* NULL */
787 static int hf_h245_class2; /* NULL */
788 static int hf_h245_class3; /* NULL */
789 static int hf_h245_class4; /* NULL */
790 static int hf_h245_class5; /* NULL */
791 static int hf_h245_qosType; /* QOSType */
792 static int hf_h245_qosClass; /* QOSClass */
793 static int hf_h245_averageRate; /* INTEGER_1_4294967295 */
794 static int hf_h245_burst; /* INTEGER_1_4294967295 */
795 static int hf_h245_rsvpParameters; /* RSVPParameters */
796 static int hf_h245_atmParameters; /* ATMParameters */
797 static int hf_h245_localQoS; /* BOOLEAN */
798 static int hf_h245_genericTransportParameters; /* GenericTransportParameters */
799 static int hf_h245_servicePriority; /* ServicePriority */
800 static int hf_h245_authorizationParameter; /* AuthorizationParameters */
801 static int hf_h245_qosDescriptor; /* QOSDescriptor */
802 static int hf_h245_dscpValue; /* INTEGER_0_63 */
803 static int hf_h245_ip_UDP; /* NULL */
804 static int hf_h245_ip_TCP; /* NULL */
805 static int hf_h245_atm_AAL5_UNIDIR; /* NULL */
806 static int hf_h245_atm_AAL5_BIDIR; /* NULL */
807 static int hf_h245_atm_AAL5_compressed; /* T_atm_AAL5_compressed */
808 static int hf_h245_variable_delta; /* BOOLEAN */
809 static int hf_h245_mediaTransport; /* MediaTransportType */
810 static int hf_h245_qOSCapabilities; /* SEQUENCE_SIZE_1_256_OF_QOSCapability */
811 static int hf_h245_qOSCapabilities_item; /* QOSCapability */
812 static int hf_h245_mediaChannelCapabilities; /* SEQUENCE_SIZE_1_256_OF_MediaChannelCapability */
813 static int hf_h245_mediaChannelCapabilities_item; /* MediaChannelCapability */
814 static int hf_h245_redundancyEncodingMethod; /* RedundancyEncodingMethod */
815 static int hf_h245_primaryEncoding; /* CapabilityTableEntryNumber */
816 static int hf_h245_secondaryEncodingCapability; /* SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber */
817 static int hf_h245_secondaryEncodingCapability_item; /* CapabilityTableEntryNumber */
818 static int hf_h245_rtpAudioRedundancyEncoding; /* NULL */
819 static int hf_h245_rtpH263VideoRedundancyEncoding; /* RTPH263VideoRedundancyEncoding */
820 static int hf_h245_numberOfThreads; /* INTEGER_1_16 */
821 static int hf_h245_framesBetweenSyncPoints; /* INTEGER_1_256 */
822 static int hf_h245_frameToThreadMapping; /* T_frameToThreadMapping */
823 static int hf_h245_roundrobin; /* NULL */
824 static int hf_h245_custom; /* SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping */
825 static int hf_h245_custom_item; /* RTPH263VideoRedundancyFrameMapping */
826 static int hf_h245_containedThreads; /* T_containedThreads */
827 static int hf_h245_containedThreads_item; /* INTEGER_0_15 */
828 static int hf_h245_threadNumber; /* INTEGER_0_15 */
829 static int hf_h245_frameSequence; /* T_frameSequence */
830 static int hf_h245_frameSequence_item; /* INTEGER_0_255 */
831 static int hf_h245_multicastCapability; /* BOOLEAN */
832 static int hf_h245_multiUniCastConference; /* BOOLEAN */
833 static int hf_h245_mediaDistributionCapability; /* SEQUENCE_OF_MediaDistributionCapability */
834 static int hf_h245_mediaDistributionCapability_item; /* MediaDistributionCapability */
835 static int hf_h245_centralizedControl; /* BOOLEAN */
836 static int hf_h245_distributedControl; /* BOOLEAN */
837 static int hf_h245_centralizedAudio; /* BOOLEAN */
838 static int hf_h245_distributedAudio; /* BOOLEAN */
839 static int hf_h245_centralizedVideo; /* BOOLEAN */
840 static int hf_h245_distributedVideo; /* BOOLEAN */
841 static int hf_h245_centralizedData; /* SEQUENCE_OF_DataApplicationCapability */
842 static int hf_h245_centralizedData_item; /* DataApplicationCapability */
843 static int hf_h245_distributedData; /* SEQUENCE_OF_DataApplicationCapability */
844 static int hf_h245_distributedData_item; /* DataApplicationCapability */
845 static int hf_h245_h261VideoCapability; /* H261VideoCapability */
846 static int hf_h245_h262VideoCapability; /* H262VideoCapability */
847 static int hf_h245_h263VideoCapability; /* H263VideoCapability */
848 static int hf_h245_is11172VideoCapability; /* IS11172VideoCapability */
849 static int hf_h245_genericVideoCapability; /* GenericCapability */
850 static int hf_h245_extendedVideoCapability; /* ExtendedVideoCapability */
851 static int hf_h245_videoCapability; /* SEQUENCE_OF_VideoCapability */
852 static int hf_h245_videoCapability_item; /* VideoCapability */
853 static int hf_h245_videoCapabilityExtension; /* SEQUENCE_OF_GenericCapability */
854 static int hf_h245_videoCapabilityExtension_item; /* GenericCapability */
855 static int hf_h245_qcifMPI_1_4; /* INTEGER_1_4 */
856 static int hf_h245_cifMPI_1_4; /* INTEGER_1_4 */
857 static int hf_h245_temporalSpatialTradeOffCapability; /* BOOLEAN */
858 static int hf_h245_maxBitRate_1_19200; /* INTEGER_1_19200 */
859 static int hf_h245_stillImageTransmission; /* BOOLEAN */
860 static int hf_h245_videoBadMBsCap; /* BOOLEAN */
861 static int hf_h245_profileAndLevel_SPatML; /* BOOLEAN */
862 static int hf_h245_profileAndLevel_MPatLL; /* BOOLEAN */
863 static int hf_h245_profileAndLevel_MPatML; /* BOOLEAN */
864 static int hf_h245_profileAndLevel_MPatH_14; /* BOOLEAN */
865 static int hf_h245_profileAndLevel_MPatHL; /* BOOLEAN */
866 static int hf_h245_profileAndLevel_SNRatLL; /* BOOLEAN */
867 static int hf_h245_profileAndLevel_SNRatML; /* BOOLEAN */
868 static int hf_h245_profileAndLevel_SpatialatH_14; /* BOOLEAN */
869 static int hf_h245_profileAndLevel_HPatML; /* BOOLEAN */
870 static int hf_h245_profileAndLevel_HPatH_14; /* BOOLEAN */
871 static int hf_h245_profileAndLevel_HPatHL; /* BOOLEAN */
872 static int hf_h245_videoBitRate; /* INTEGER_0_1073741823 */
873 static int hf_h245_vbvBufferSize; /* INTEGER_0_262143 */
874 static int hf_h245_samplesPerLine; /* INTEGER_0_16383 */
875 static int hf_h245_linesPerFrame; /* INTEGER_0_16383 */
876 static int hf_h245_framesPerSecond; /* INTEGER_0_15 */
877 static int hf_h245_luminanceSampleRate; /* INTEGER_0_4294967295 */
878 static int hf_h245_sqcifMPI_1_32; /* INTEGER_1_32 */
879 static int hf_h245_qcifMPI; /* INTEGER_1_32 */
880 static int hf_h245_cifMPI; /* INTEGER_1_32 */
881 static int hf_h245_cif4MPI_1_32; /* INTEGER_1_32 */
882 static int hf_h245_cif16MPI_1_32; /* INTEGER_1_32 */
883 static int hf_h245_maxBitRate; /* INTEGER_1_192400 */
884 static int hf_h245_unrestrictedVector; /* BOOLEAN */
885 static int hf_h245_arithmeticCoding; /* BOOLEAN */
886 static int hf_h245_advancedPrediction; /* BOOLEAN */
887 static int hf_h245_pbFrames; /* BOOLEAN */
888 static int hf_h245_hrd_B; /* INTEGER_0_524287 */
889 static int hf_h245_bppMaxKb; /* INTEGER_0_65535 */
890 static int hf_h245_slowSqcifMPI; /* INTEGER_1_3600 */
891 static int hf_h245_slowQcifMPI; /* INTEGER_1_3600 */
892 static int hf_h245_slowCifMPI; /* INTEGER_1_3600 */
893 static int hf_h245_slowCif4MPI; /* INTEGER_1_3600 */
894 static int hf_h245_slowCif16MPI; /* INTEGER_1_3600 */
895 static int hf_h245_errorCompensation; /* BOOLEAN */
896 static int hf_h245_enhancementLayerInfo; /* EnhancementLayerInfo */
897 static int hf_h245_h263Options; /* H263Options */
898 static int hf_h245_baseBitRateConstrained; /* BOOLEAN */
899 static int hf_h245_snrEnhancement; /* SET_SIZE_1_14_OF_EnhancementOptions */
900 static int hf_h245_snrEnhancement_item; /* EnhancementOptions */
901 static int hf_h245_spatialEnhancement; /* SET_SIZE_1_14_OF_EnhancementOptions */
902 static int hf_h245_spatialEnhancement_item; /* EnhancementOptions */
903 static int hf_h245_bPictureEnhancement; /* SET_SIZE_1_14_OF_BEnhancementParameters */
904 static int hf_h245_bPictureEnhancement_item; /* BEnhancementParameters */
905 static int hf_h245_enhancementOptions; /* EnhancementOptions */
906 static int hf_h245_numberOfBPictures; /* INTEGER_1_64 */
907 static int hf_h245_advancedIntraCodingMode; /* BOOLEAN */
908 static int hf_h245_deblockingFilterMode; /* BOOLEAN */
909 static int hf_h245_improvedPBFramesMode; /* BOOLEAN */
910 static int hf_h245_unlimitedMotionVectors; /* BOOLEAN */
911 static int hf_h245_fullPictureFreeze; /* BOOLEAN */
912 static int hf_h245_partialPictureFreezeAndRelease; /* BOOLEAN */
913 static int hf_h245_resizingPartPicFreezeAndRelease; /* BOOLEAN */
914 static int hf_h245_fullPictureSnapshot; /* BOOLEAN */
915 static int hf_h245_partialPictureSnapshot; /* BOOLEAN */
916 static int hf_h245_videoSegmentTagging; /* BOOLEAN */
917 static int hf_h245_progressiveRefinement; /* BOOLEAN */
918 static int hf_h245_dynamicPictureResizingByFour; /* BOOLEAN */
919 static int hf_h245_dynamicPictureResizingSixteenthPel; /* BOOLEAN */
920 static int hf_h245_dynamicWarpingHalfPel; /* BOOLEAN */
921 static int hf_h245_dynamicWarpingSixteenthPel; /* BOOLEAN */
922 static int hf_h245_independentSegmentDecoding; /* BOOLEAN */
923 static int hf_h245_slicesInOrder_NonRect; /* BOOLEAN */
924 static int hf_h245_slicesInOrder_Rect; /* BOOLEAN */
925 static int hf_h245_slicesNoOrder_NonRect; /* BOOLEAN */
926 static int hf_h245_slicesNoOrder_Rect; /* BOOLEAN */
927 static int hf_h245_alternateInterVLCMode; /* BOOLEAN */
928 static int hf_h245_modifiedQuantizationMode; /* BOOLEAN */
929 static int hf_h245_reducedResolutionUpdate; /* BOOLEAN */
930 static int hf_h245_transparencyParameters; /* TransparencyParameters */
931 static int hf_h245_separateVideoBackChannel; /* BOOLEAN */
932 static int hf_h245_refPictureSelection; /* RefPictureSelection */
933 static int hf_h245_customPictureClockFrequency; /* SET_SIZE_1_16_OF_CustomPictureClockFrequency */
934 static int hf_h245_customPictureClockFrequency_item; /* CustomPictureClockFrequency */
935 static int hf_h245_customPictureFormat; /* SET_SIZE_1_16_OF_CustomPictureFormat */
936 static int hf_h245_customPictureFormat_item; /* CustomPictureFormat */
937 static int hf_h245_modeCombos; /* SET_SIZE_1_16_OF_H263VideoModeCombos */
938 static int hf_h245_modeCombos_item; /* H263VideoModeCombos */
939 static int hf_h245_h263Version3Options; /* H263Version3Options */
940 static int hf_h245_presentationOrder; /* INTEGER_1_256 */
941 static int hf_h245_offset_x; /* INTEGER_M262144_262143 */
942 static int hf_h245_offset_y; /* INTEGER_M262144_262143 */
943 static int hf_h245_scale_x; /* INTEGER_1_255 */
944 static int hf_h245_scale_y; /* INTEGER_1_255 */
945 static int hf_h245_additionalPictureMemory; /* T_additionalPictureMemory */
946 static int hf_h245_sqcifAdditionalPictureMemory; /* INTEGER_1_256 */
947 static int hf_h245_qcifAdditionalPictureMemory; /* INTEGER_1_256 */
948 static int hf_h245_cifAdditionalPictureMemory; /* INTEGER_1_256 */
949 static int hf_h245_cif4AdditionalPictureMemory; /* INTEGER_1_256 */
950 static int hf_h245_cif16AdditionalPictureMemory; /* INTEGER_1_256 */
951 static int hf_h245_bigCpfAdditionalPictureMemory; /* INTEGER_1_256 */
952 static int hf_h245_videoMux; /* BOOLEAN */
953 static int hf_h245_videoBackChannelSend; /* T_videoBackChannelSend */
954 static int hf_h245_none; /* NULL */
955 static int hf_h245_ackMessageOnly; /* NULL */
956 static int hf_h245_nackMessageOnly; /* NULL */
957 static int hf_h245_ackOrNackMessageOnly; /* NULL */
958 static int hf_h245_ackAndNackMessage; /* NULL */
959 static int hf_h245_enhancedReferencePicSelect; /* T_enhancedReferencePicSelect */
960 static int hf_h245_subPictureRemovalParameters; /* T_subPictureRemovalParameters */
961 static int hf_h245_mpuHorizMBs; /* INTEGER_1_128 */
962 static int hf_h245_mpuVertMBs; /* INTEGER_1_72 */
963 static int hf_h245_mpuTotalNumber; /* INTEGER_1_65536 */
964 static int hf_h245_clockConversionCode; /* INTEGER_1000_1001 */
965 static int hf_h245_clockDivisor; /* INTEGER_1_127 */
966 static int hf_h245_sqcifMPI; /* INTEGER_1_2048 */
967 static int hf_h245_qcifMPI_1_2048; /* INTEGER_1_2048 */
968 static int hf_h245_cifMPI2_1_2048; /* INTEGER_1_2048 */
969 static int hf_h245_cif4MPI; /* INTEGER_1_2048 */
970 static int hf_h245_cif16MPI; /* INTEGER_1_2048 */
971 static int hf_h245_maxCustomPictureWidth; /* INTEGER_1_2048 */
972 static int hf_h245_maxCustomPictureHeight; /* INTEGER_1_2048 */
973 static int hf_h245_minCustomPictureWidth; /* INTEGER_1_2048 */
974 static int hf_h245_minCustomPictureHeight; /* INTEGER_1_2048 */
975 static int hf_h245_mPI; /* T_mPI */
976 static int hf_h245_standardMPI; /* INTEGER_1_31 */
977 static int hf_h245_customPCF; /* T_customPCF */
978 static int hf_h245_customPCF_item; /* T_customPCF_item */
979 static int hf_h245_customMPI; /* INTEGER_1_2048 */
980 static int hf_h245_pixelAspectInformation; /* T_pixelAspectInformation */
981 static int hf_h245_anyPixelAspectRatio; /* BOOLEAN */
982 static int hf_h245_pixelAspectCode; /* T_pixelAspectCode */
983 static int hf_h245_pixelAspectCode_item; /* INTEGER_1_14 */
984 static int hf_h245_extendedPAR; /* T_extendedPAR */
985 static int hf_h245_extendedPAR_item; /* T_extendedPAR_item */
986 static int hf_h245_width; /* INTEGER_1_255 */
987 static int hf_h245_height; /* INTEGER_1_255 */
988 static int hf_h245_h263VideoUncoupledModes; /* H263ModeComboFlags */
989 static int hf_h245_h263VideoCoupledModes; /* SET_SIZE_1_16_OF_H263ModeComboFlags */
990 static int hf_h245_h263VideoCoupledModes_item; /* H263ModeComboFlags */
991 static int hf_h245_referencePicSelect; /* BOOLEAN */
992 static int hf_h245_enhancedReferencePicSelectBool; /* BOOLEAN */
993 static int hf_h245_dataPartitionedSlices; /* BOOLEAN */
994 static int hf_h245_fixedPointIDCT0; /* BOOLEAN */
995 static int hf_h245_interlacedFields; /* BOOLEAN */
996 static int hf_h245_currentPictureHeaderRepetition; /* BOOLEAN */
997 static int hf_h245_previousPictureHeaderRepetition; /* BOOLEAN */
998 static int hf_h245_nextPictureHeaderRepetition; /* BOOLEAN */
999 static int hf_h245_pictureNumberBoolean; /* BOOLEAN */
1000 static int hf_h245_spareReferencePictures; /* BOOLEAN */
1001 static int hf_h245_constrainedBitstream; /* BOOLEAN */
1002 static int hf_h245_pictureRate; /* INTEGER_0_15 */
1003 static int hf_h245_g711Alaw64k; /* INTEGER_1_256 */
1004 static int hf_h245_g711Alaw56k; /* INTEGER_1_256 */
1005 static int hf_h245_g711Ulaw64k; /* INTEGER_1_256 */
1006 static int hf_h245_g711Ulaw56k; /* INTEGER_1_256 */
1007 static int hf_h245_g722_64k; /* INTEGER_1_256 */
1008 static int hf_h245_g722_56k; /* INTEGER_1_256 */
1009 static int hf_h245_g722_48k; /* INTEGER_1_256 */
1010 static int hf_h245_g7231; /* T_g7231 */
1011 static int hf_h245_maxAl_sduAudioFrames; /* INTEGER_1_256 */
1012 static int hf_h245_silenceSuppression; /* BOOLEAN */
1013 static int hf_h245_g728; /* INTEGER_1_256 */
1014 static int hf_h245_g729; /* INTEGER_1_256 */
1015 static int hf_h245_g729AnnexA; /* INTEGER_1_256 */
1016 static int hf_h245_is11172AudioCapability; /* IS11172AudioCapability */
1017 static int hf_h245_is13818AudioCapability; /* IS13818AudioCapability */
1018 static int hf_h245_g729wAnnexB; /* INTEGER_1_256 */
1019 static int hf_h245_g729AnnexAwAnnexB; /* INTEGER_1_256 */
1020 static int hf_h245_g7231AnnexCCapability; /* G7231AnnexCCapability */
1021 static int hf_h245_gsmFullRate; /* GSMAudioCapability */
1022 static int hf_h245_gsmHalfRate; /* GSMAudioCapability */
1023 static int hf_h245_gsmEnhancedFullRate; /* GSMAudioCapability */
1024 static int hf_h245_genericAudioCapability; /* GenericCapability */
1025 static int hf_h245_g729Extensions; /* G729Extensions */
1026 static int hf_h245_vbd; /* VBDCapability */
1027 static int hf_h245_audioTelephonyEvent; /* NoPTAudioTelephonyEventCapability */
1028 static int hf_h245_audioTone; /* NoPTAudioToneCapability */
1029 static int hf_h245_audioUnit; /* INTEGER_1_256 */
1030 static int hf_h245_annexA; /* BOOLEAN */
1031 static int hf_h245_annexB; /* BOOLEAN */
1032 static int hf_h245_annexD; /* BOOLEAN */
1033 static int hf_h245_annexE; /* BOOLEAN */
1034 static int hf_h245_annexF; /* BOOLEAN */
1035 static int hf_h245_annexG; /* BOOLEAN */
1036 static int hf_h245_annexH; /* BOOLEAN */
1037 static int hf_h245_highRateMode0; /* INTEGER_27_78 */
1038 static int hf_h245_highRateMode1; /* INTEGER_27_78 */
1039 static int hf_h245_lowRateMode0; /* INTEGER_23_66 */
1040 static int hf_h245_lowRateMode1; /* INTEGER_23_66 */
1041 static int hf_h245_sidMode0; /* INTEGER_6_17 */
1042 static int hf_h245_sidMode1; /* INTEGER_6_17 */
1043 static int hf_h245_g723AnnexCAudioMode; /* G723AnnexCAudioMode */
1044 static int hf_h245_audioLayer1; /* BOOLEAN */
1045 static int hf_h245_audioLayer2; /* BOOLEAN */
1046 static int hf_h245_audioLayer3; /* BOOLEAN */
1047 static int hf_h245_audioSampling32k; /* BOOLEAN */
1048 static int hf_h245_audioSampling44k1; /* BOOLEAN */
1049 static int hf_h245_audioSampling48k; /* BOOLEAN */
1050 static int hf_h245_singleChannel; /* BOOLEAN */
1051 static int hf_h245_twoChannels; /* BOOLEAN */
1052 static int hf_h245_bitRate_1_448; /* INTEGER_1_448 */
1053 static int hf_h245_audioSampling16k; /* BOOLEAN */
1054 static int hf_h245_audioSampling22k05; /* BOOLEAN */
1055 static int hf_h245_audioSampling24k; /* BOOLEAN */
1056 static int hf_h245_threeChannels2_1; /* BOOLEAN */
1057 static int hf_h245_threeChannels3_0; /* BOOLEAN */
1058 static int hf_h245_fourChannels2_0_2_0; /* BOOLEAN */
1059 static int hf_h245_fourChannels2_2; /* BOOLEAN */
1060 static int hf_h245_fourChannels3_1; /* BOOLEAN */
1061 static int hf_h245_fiveChannels3_0_2_0; /* BOOLEAN */
1062 static int hf_h245_fiveChannels3_2; /* BOOLEAN */
1063 static int hf_h245_lowFrequencyEnhancement; /* BOOLEAN */
1064 static int hf_h245_multilingual; /* BOOLEAN */
1065 static int hf_h245_bitRate2_1_1130; /* INTEGER_1_1130 */
1066 static int hf_h245_audioUnitSize; /* INTEGER_1_256 */
1067 static int hf_h245_comfortNoise; /* BOOLEAN */
1068 static int hf_h245_scrambled; /* BOOLEAN */
1069 static int hf_h245_vbd_cap_type; /* AudioCapability */
1070 static int hf_h245_t120; /* DataProtocolCapability */
1071 static int hf_h245_dsm_cc; /* DataProtocolCapability */
1072 static int hf_h245_userData; /* DataProtocolCapability */
1073 static int hf_h245_t84; /* T_t84 */
1074 static int hf_h245_t84Protocol; /* DataProtocolCapability */
1075 static int hf_h245_t84Profile; /* T84Profile */
1076 static int hf_h245_t434; /* DataProtocolCapability */
1077 static int hf_h245_h224; /* DataProtocolCapability */
1078 static int hf_h245_nlpidProtocol; /* DataProtocolCapability */
1079 static int hf_h245_nlpidData; /* OCTET_STRING */
1080 static int hf_h245_nlpid; /* Nlpid */
1081 static int hf_h245_dsvdControl; /* NULL */
1082 static int hf_h245_h222DataPartitioning; /* DataProtocolCapability */
1083 static int hf_h245_t30fax; /* DataProtocolCapability */
1084 static int hf_h245_t140; /* DataProtocolCapability */
1085 static int hf_h245_t38fax; /* T_t38fax */
1086 static int hf_h245_t38FaxProtocol; /* DataProtocolCapability */
1087 static int hf_h245_t38FaxProfile; /* T38FaxProfile */
1088 static int hf_h245_genericDataCapability; /* GenericCapability */
1089 static int hf_h245_application; /* Application */
1090 static int hf_h245_maxBitRate2_0_4294967295; /* INTEGER_0_4294967295 */
1091 static int hf_h245_v14buffered; /* NULL */
1092 static int hf_h245_v42lapm; /* NULL */
1093 static int hf_h245_hdlcFrameTunnelling; /* NULL */
1094 static int hf_h245_h310SeparateVCStack; /* NULL */
1095 static int hf_h245_h310SingleVCStack; /* NULL */
1096 static int hf_h245_transparent; /* NULL */
1097 static int hf_h245_segmentationAndReassembly; /* NULL */
1098 static int hf_h245_hdlcFrameTunnelingwSAR; /* NULL */
1099 static int hf_h245_v120; /* NULL */
1100 static int hf_h245_separateLANStack; /* NULL */
1101 static int hf_h245_v76wCompression; /* T_v76wCompression */
1102 static int hf_h245_transmitCompression; /* CompressionType */
1103 static int hf_h245_receiveCompression; /* CompressionType */
1104 static int hf_h245_transmitAndReceiveCompression; /* CompressionType */
1105 static int hf_h245_tcp; /* NULL */
1106 static int hf_h245_udp; /* NULL */
1107 static int hf_h245_v42bis; /* V42bis */
1108 static int hf_h245_numberOfCodewords; /* INTEGER_1_65536 */
1109 static int hf_h245_maximumStringLength; /* INTEGER_1_256 */
1110 static int hf_h245_t84Unrestricted; /* NULL */
1111 static int hf_h245_t84Restricted; /* T_t84Restricted */
1112 static int hf_h245_qcif_bool; /* BOOLEAN */
1113 static int hf_h245_cif_bool; /* BOOLEAN */
1114 static int hf_h245_ccir601Seq; /* BOOLEAN */
1115 static int hf_h245_ccir601Prog; /* BOOLEAN */
1116 static int hf_h245_hdtvSeq; /* BOOLEAN */
1117 static int hf_h245_hdtvProg; /* BOOLEAN */
1118 static int hf_h245_g3FacsMH200x100; /* BOOLEAN */
1119 static int hf_h245_g3FacsMH200x200; /* BOOLEAN */
1120 static int hf_h245_g4FacsMMR200x100; /* BOOLEAN */
1121 static int hf_h245_g4FacsMMR200x200; /* BOOLEAN */
1122 static int hf_h245_jbig200x200Seq; /* BOOLEAN */
1123 static int hf_h245_jbig200x200Prog; /* BOOLEAN */
1124 static int hf_h245_jbig300x300Seq; /* BOOLEAN */
1125 static int hf_h245_jbig300x300Prog; /* BOOLEAN */
1126 static int hf_h245_digPhotoLow; /* BOOLEAN */
1127 static int hf_h245_digPhotoMedSeq; /* BOOLEAN */
1128 static int hf_h245_digPhotoMedProg; /* BOOLEAN */
1129 static int hf_h245_digPhotoHighSeq; /* BOOLEAN */
1130 static int hf_h245_digPhotoHighProg; /* BOOLEAN */
1131 static int hf_h245_fillBitRemoval; /* BOOLEAN */
1132 static int hf_h245_transcodingJBIG; /* BOOLEAN */
1133 static int hf_h245_transcodingMMR; /* BOOLEAN */
1134 static int hf_h245_version; /* INTEGER_0_255 */
1135 static int hf_h245_t38FaxRateManagement; /* T38FaxRateManagement */
1136 static int hf_h245_t38FaxUdpOptions; /* T38FaxUdpOptions */
1137 static int hf_h245_t38FaxTcpOptions; /* T38FaxTcpOptions */
1138 static int hf_h245_localTCF; /* NULL */
1139 static int hf_h245_transferredTCF; /* NULL */
1140 static int hf_h245_t38FaxMaxBuffer; /* INTEGER */
1141 static int hf_h245_t38FaxMaxDatagram; /* INTEGER */
1142 static int hf_h245_t38FaxUdpEC; /* T_t38FaxUdpEC */
1143 static int hf_h245_t38UDPFEC; /* NULL */
1144 static int hf_h245_t38UDPRedundancy; /* NULL */
1145 static int hf_h245_t38TCPBidirectionalMode; /* BOOLEAN */
1146 static int hf_h245_encryptionCapability; /* EncryptionCapability */
1147 static int hf_h245_authenticationCapability; /* AuthenticationCapability */
1148 static int hf_h245_integrityCapability; /* IntegrityCapability */
1149 static int hf_h245_genericH235SecurityCapability; /* GenericCapability */
1150 static int hf_h245_EncryptionCapability_item; /* MediaEncryptionAlgorithm */
1151 static int hf_h245_algorithm; /* OBJECT_IDENTIFIER */
1152 static int hf_h245_antiSpamAlgorithm; /* OBJECT_IDENTIFIER */
1153 static int hf_h245_ui_nonStandard; /* SEQUENCE_SIZE_1_16_OF_NonStandardParameter */
1154 static int hf_h245_ui_nonStandard_item; /* NonStandardParameter */
1155 static int hf_h245_basicString; /* NULL */
1156 static int hf_h245_iA5String; /* NULL */
1157 static int hf_h245_generalString; /* NULL */
1158 static int hf_h245_dtmf; /* NULL */
1159 static int hf_h245_hookflash; /* NULL */
1160 static int hf_h245_extendedAlphanumericFlag; /* NULL */
1161 static int hf_h245_encryptedBasicString; /* NULL */
1162 static int hf_h245_encryptedIA5String; /* NULL */
1163 static int hf_h245_encryptedGeneralString; /* NULL */
1164 static int hf_h245_secureDTMF; /* NULL */
1165 static int hf_h245_genericUserInputCapability; /* GenericCapability */
1166 static int hf_h245_nonStandardParams; /* SEQUENCE_OF_NonStandardParameter */
1167 static int hf_h245_nonStandardParams_item; /* NonStandardParameter */
1168 static int hf_h245_chairControlCapability; /* BOOLEAN */
1169 static int hf_h245_videoIndicateMixingCapability; /* BOOLEAN */
1170 static int hf_h245_multipointVisualizationCapability; /* BOOLEAN */
1171 static int hf_h245_capabilityIdentifier; /* CapabilityIdentifier */
1172 static int hf_h245_collapsing; /* T_collapsing */
1173 static int hf_h245_collapsing_item; /* T_collapsing_item */
1174 static int hf_h245_nonCollapsing; /* T_nonCollapsing */
1175 static int hf_h245_nonCollapsing_item; /* T_nonCollapsing_item */
1176 static int hf_h245_nonCollapsingRaw; /* T_nonCollapsingRaw */
1177 static int hf_h245_transport; /* DataProtocolCapability */
1178 static int hf_h245_standardOid; /* T_standardOid */
1179 static int hf_h245_h221NonStandard; /* NonStandardParameter */
1180 static int hf_h245_uuid; /* OCTET_STRING_SIZE_16 */
1181 static int hf_h245_domainBased; /* IA5String_SIZE_1_64 */
1182 static int hf_h245_parameterIdentifier; /* ParameterIdentifier */
1183 static int hf_h245_parameterValue; /* ParameterValue */
1184 static int hf_h245_supersedes; /* SEQUENCE_OF_ParameterIdentifier */
1185 static int hf_h245_supersedes_item; /* ParameterIdentifier */
1186 static int hf_h245_standard; /* T_standard */
1187 static int hf_h245_logical; /* NULL */
1188 static int hf_h245_booleanArray; /* T_booleanArray */
1189 static int hf_h245_unsignedMin; /* T_unsignedMin */
1190 static int hf_h245_unsignedMax; /* T_unsignedMax */
1191 static int hf_h245_unsigned32Min; /* T_unsigned32Min */
1192 static int hf_h245_unsigned32Max; /* T_unsigned32Max */
1193 static int hf_h245_octetString; /* T_octetString */
1194 static int hf_h245_genericParameters; /* SEQUENCE_OF_GenericParameter */
1195 static int hf_h245_genericParameters_item; /* GenericParameter */
1196 static int hf_h245_multiplexFormat; /* MultiplexFormat */
1197 static int hf_h245_controlOnMuxStream; /* BOOLEAN */
1198 static int hf_h245_capabilityOnMuxStream; /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */
1199 static int hf_h245_capabilityOnMuxStream_item; /* AlternativeCapabilitySet */
1200 static int hf_h245_dynamicRTPPayloadType; /* INTEGER_96_127 */
1201 static int hf_h245_audioTelephoneEvent; /* GeneralString */
1202 static int hf_h245_capabilities; /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */
1203 static int hf_h245_capabilities_item; /* AlternativeCapabilitySet */
1204 static int hf_h245_fecc_rfc2733; /* FECC_rfc2733 */
1205 static int hf_h245_redundancyEncodingBool; /* BOOLEAN */
1206 static int hf_h245_separateStreamBool; /* T_separateStreamBool */
1207 static int hf_h245_separatePort; /* BOOLEAN */
1208 static int hf_h245_samePortBool; /* BOOLEAN */
1209 static int hf_h245_protectedCapability; /* CapabilityTableEntryNumber */
1210 static int hf_h245_fecScheme; /* OBJECT_IDENTIFIER */
1211 static int hf_h245_rfc2733rfc2198; /* MaxRedundancy */
1212 static int hf_h245_rfc2733sameport; /* MaxRedundancy */
1213 static int hf_h245_rfc2733diffport; /* MaxRedundancy */
1214 static int hf_h245_rfc2733Format; /* Rfc2733Format */
1215 static int hf_h245_olc_fw_lcn; /* OLC_fw_lcn */
1216 static int hf_h245_forwardLogicalChannelParameters; /* T_forwardLogicalChannelParameters */
1217 static int hf_h245_portNumber; /* INTEGER_0_65535 */
1218 static int hf_h245_dataType; /* DataType */
1219 static int hf_h245_olc_forw_multiplexParameters; /* OLC_forw_multiplexParameters */
1220 static int hf_h245_h222LogicalChannelParameters; /* H222LogicalChannelParameters */
1221 static int hf_h245_olc_fw_h223_params; /* OLC_fw_h223_params */
1222 static int hf_h245_v76LogicalChannelParameters; /* V76LogicalChannelParameters */
1223 static int hf_h245_h2250LogicalChannelParameters; /* H2250LogicalChannelParameters */
1224 static int hf_h245_forwardLogicalChannelDependency; /* LogicalChannelNumber */
1225 static int hf_h245_replacementFor; /* LogicalChannelNumber */
1226 static int hf_h245_reverseLogicalChannelParameters; /* OLC_reverseLogicalChannelParameters */
1227 static int hf_h245_olc_rev_multiplexParameter; /* OLC_rev_multiplexParameters */
1228 static int hf_h245_olc_rev_h223_params; /* OLC_rev_h223_params */
1229 static int hf_h245_reverseLogicalChannelDependency; /* LogicalChannelNumber */
1230 static int hf_h245_separateStack; /* NetworkAccessParameters */
1231 static int hf_h245_encryptionSync; /* EncryptionSync */
1232 static int hf_h245_distribution; /* T_distribution */
1233 static int hf_h245_unicast; /* NULL */
1234 static int hf_h245_multicast; /* NULL */
1235 static int hf_h245_networkAddress; /* T_networkAddress */
1236 static int hf_h245_q2931Address; /* Q2931Address */
1237 static int hf_h245_e164Address; /* T_e164Address */
1238 static int hf_h245_localAreaAddress; /* TransportAddress */
1239 static int hf_h245_associateConference; /* BOOLEAN */
1240 static int hf_h245_externalReference; /* OCTET_STRING_SIZE_1_255 */
1241 static int hf_h245_t120SetupProcedure; /* T_t120SetupProcedure */
1242 static int hf_h245_originateCall; /* NULL */
1243 static int hf_h245_waitForCall; /* NULL */
1244 static int hf_h245_issueQuery; /* NULL */
1245 static int hf_h245_address; /* T_address */
1246 static int hf_h245_internationalNumber; /* NumericString_SIZE_1_16 */
1247 static int hf_h245_nsapAddress; /* OCTET_STRING_SIZE_1_20 */
1248 static int hf_h245_subaddress; /* OCTET_STRING_SIZE_1_20 */
1249 static int hf_h245_audioHeaderPresent; /* BOOLEAN */
1250 static int hf_h245_nullData; /* NULL */
1251 static int hf_h245_videoData; /* VideoCapability */
1252 static int hf_h245_audioData; /* AudioCapability */
1253 static int hf_h245_data; /* DataApplicationCapability */
1254 static int hf_h245_encryptionData; /* EncryptionMode */
1255 static int hf_h245_h235Control; /* NonStandardParameter */
1256 static int hf_h245_h235Media; /* H235Media */
1257 static int hf_h245_multiplexedStream; /* MultiplexedStreamParameter */
1258 static int hf_h245_redundancyEncoding; /* RedundancyEncoding */
1259 static int hf_h245_multiplePayloadStream; /* MultiplePayloadStream */
1260 static int hf_h245_depFec; /* DepFECData */
1261 static int hf_h245_fec; /* FECData */
1262 static int hf_h245_mediaType; /* T_mediaType */
1263 static int hf_h245_resourceID; /* INTEGER_0_65535 */
1264 static int hf_h245_subChannelID; /* INTEGER_0_8191 */
1265 static int hf_h245_pcr_pid; /* INTEGER_0_8191 */
1266 static int hf_h245_programDescriptors; /* OCTET_STRING */
1267 static int hf_h245_streamDescriptors; /* OCTET_STRING */
1268 static int hf_h245_adaptationLayerType; /* T_adaptationLayerType */
1269 static int hf_h245_h223_al_type_al1Framed; /* T_h223_al_type_al1Framed */
1270 static int hf_h245_h223_al_type_al1NotFramed; /* T_h223_al_type_al1NotFramed */
1271 static int hf_h245_h223_al_type_al2WithoutSequenceNumbers; /* T_h223_al_type_al2WithoutSequenceNumbers */
1272 static int hf_h245_h223_al_type_al2WithSequenceNumbers; /* T_h223_al_type_al2WithSequenceNumbers */
1273 static int hf_h245_controlFieldOctets; /* T_controlFieldOctets */
1274 static int hf_h245_al3_sendBufferSize; /* T_al3_sendBufferSize */
1275 static int hf_h245_h223_al_type_al3; /* T_h223_al_type_al3 */
1276 static int hf_h245_h223_al_type_al1M; /* T_h223_al_type_al1M */
1277 static int hf_h245_h223_al_type_al2M; /* T_h223_al_type_al2M */
1278 static int hf_h245_h223_al_type_al3M; /* T_h223_al_type_al3M */
1279 static int hf_h245_h223_lc_segmentableFlag; /* T_h223_lc_segmentableFlag */
1280 static int hf_h245_transferMode; /* T_transferMode */
1281 static int hf_h245_framed; /* NULL */
1282 static int hf_h245_unframed; /* NULL */
1283 static int hf_h245_aL1HeaderFEC; /* AL1HeaderFEC */
1284 static int hf_h245_sebch16_7; /* NULL */
1285 static int hf_h245_golay24_12; /* NULL */
1286 static int hf_h245_crcLength2; /* AL1CrcLength */
1287 static int hf_h245_crc4bit; /* NULL */
1288 static int hf_h245_crc12bit; /* NULL */
1289 static int hf_h245_crc20bit; /* NULL */
1290 static int hf_h245_crc28bit; /* NULL */
1291 static int hf_h245_crc8bit; /* NULL */
1292 static int hf_h245_crc16bit; /* NULL */
1293 static int hf_h245_crc32bit; /* NULL */
1294 static int hf_h245_crcNotUsed; /* NULL */
1295 static int hf_h245_rcpcCodeRate; /* INTEGER_8_32 */
1296 static int hf_h245_noArq; /* NULL */
1297 static int hf_h245_typeIArq; /* H223AnnexCArqParameters */
1298 static int hf_h245_typeIIArq; /* H223AnnexCArqParameters */
1299 static int hf_h245_arqType; /* ArqType */
1300 static int hf_h245_alsduSplitting; /* BOOLEAN */
1301 static int hf_h245_rsCodeCorrection; /* INTEGER_0_127 */
1302 static int hf_h245_aL2HeaderFEC; /* AL2HeaderFEC */
1303 static int hf_h245_sebch16_5; /* NULL */
1304 static int hf_h245_headerFormat; /* T_headerFormat */
1305 static int hf_h245_crlength2; /* AL3CrcLength */
1306 static int hf_h245_numberOfRetransmissions; /* T_numberOfRetransmissions */
1307 static int hf_h245_finite; /* INTEGER_0_16 */
1308 static int hf_h245_infinite; /* NULL */
1309 static int hf_h245_sendBufferSize; /* INTEGER_0_16777215 */
1310 static int hf_h245_hdlcParameters; /* V76HDLCParameters */
1311 static int hf_h245_suspendResume; /* T_suspendResume */
1312 static int hf_h245_noSuspendResume; /* NULL */
1313 static int hf_h245_suspendResumewAddress; /* NULL */
1314 static int hf_h245_suspendResumewoAddress; /* NULL */
1315 static int hf_h245_uIH; /* BOOLEAN */
1316 static int hf_h245_v76_mode; /* V76LCP_mode */
1317 static int hf_h245_eRM; /* T_eRM */
1318 static int hf_h245_windowSize; /* INTEGER_1_127 */
1319 static int hf_h245_recovery; /* T_recovery */
1320 static int hf_h245_rej; /* NULL */
1321 static int hf_h245_sREJ; /* NULL */
1322 static int hf_h245_mSREJ; /* NULL */
1323 static int hf_h245_uNERM; /* NULL */
1324 static int hf_h245_v75Parameters; /* V75Parameters */
1325 static int hf_h245_crcLength; /* CRCLength */
1326 static int hf_h245_n401; /* INTEGER_1_4095 */
1327 static int hf_h245_loopbackTestProcedure; /* BOOLEAN */
1328 static int hf_h245_sessionID_0_255; /* INTEGER_0_255 */
1329 static int hf_h245_associatedSessionID; /* INTEGER_1_255 */
1330 static int hf_h245_mediaChannel; /* T_mediaChannel */
1331 static int hf_h245_mediaGuaranteedDelivery; /* BOOLEAN */
1332 static int hf_h245_mediaControlChannel; /* T_mediaControlChannel */
1333 static int hf_h245_mediaControlGuaranteedDelivery; /* BOOLEAN */
1334 static int hf_h245_destination; /* TerminalLabel */
1335 static int hf_h245_mediaPacketization; /* T_mediaPacketization */
1336 static int hf_h245_h261aVideoPacketizationFlag; /* NULL */
1337 static int hf_h245_rtpPayloadType; /* RTPPayloadType */
1338 static int hf_h245_source; /* TerminalLabel */
1339 static int hf_h245_payloadDescriptor; /* T_payloadDescriptor */
1340 static int hf_h245_rfc_number; /* T_rfc_number */
1341 static int hf_h245_oid; /* OBJECT_IDENTIFIER */
1342 static int hf_h245_rtpPayloadType_01; /* T_rtpPayloadType */
1343 static int hf_h245_secondaryEncoding; /* DataType */
1344 static int hf_h245_rtpRedundancyEncoding; /* T_rtpRedundancyEncoding */
1345 static int hf_h245_primary; /* RedundancyEncodingElement */
1346 static int hf_h245_secondary; /* SEQUENCE_OF_RedundancyEncodingElement */
1347 static int hf_h245_secondary_item; /* RedundancyEncodingElement */
1348 static int hf_h245_payloadType; /* INTEGER_0_127 */
1349 static int hf_h245_elements; /* SEQUENCE_OF_MultiplePayloadStreamElement */
1350 static int hf_h245_elements_item; /* MultiplePayloadStreamElement */
1351 static int hf_h245_dep_rfc2733; /* RFC2733Data */
1352 static int hf_h245_fec_data_mode; /* FECdata_mode */
1353 static int hf_h245_redundancyEncodingFlag; /* NULL */
1354 static int hf_h245_differentPort; /* T_differentPort */
1355 static int hf_h245_protectedSessionID; /* INTEGER_1_255 */
1356 static int hf_h245_protectedPayloadType; /* INTEGER_0_127 */
1357 static int hf_h245_samePort; /* T_samePort */
1358 static int hf_h245_separateStream; /* DepSeparateStream */
1359 static int hf_h245_rfc2733; /* T_rfc2733 */
1360 static int hf_h245_pktMode; /* T_pktMode */
1361 static int hf_h245_rfc2198coding; /* NULL */
1362 static int hf_h245_mode_rfc2733sameport; /* T_mode_rfc2733sameport */
1363 static int hf_h245_mode_rfc2733diffport; /* T_mode_rfc2733diffport */
1364 static int hf_h245_protectedChannel; /* LogicalChannelNumber */
1365 static int hf_h245_unicastAddress; /* UnicastAddress */
1366 static int hf_h245_multicastAddress; /* MulticastAddress */
1367 static int hf_h245_iPAddress; /* T_iPAddress */
1368 static int hf_h245_ip4_network; /* Ipv4_network */
1369 static int hf_h245_tsapIdentifier; /* TsapIdentifier */
1370 static int hf_h245_iPXAddress; /* T_iPXAddress */
1371 static int hf_h245_node; /* OCTET_STRING_SIZE_6 */
1372 static int hf_h245_netnum; /* OCTET_STRING_SIZE_4 */
1373 static int hf_h245_ipx_tsapIdentifier; /* OCTET_STRING_SIZE_2 */
1374 static int hf_h245_iP6Address; /* T_iP6Address */
1375 static int hf_h245_ip6_network; /* T_ip6_network */
1376 static int hf_h245_ipv6_tsapIdentifier; /* T_ipv6_tsapIdentifier */
1377 static int hf_h245_netBios; /* OCTET_STRING_SIZE_16 */
1378 static int hf_h245_iPSourceRouteAddress; /* T_iPSourceRouteAddress */
1379 static int hf_h245_routing; /* T_routing */
1380 static int hf_h245_strict; /* NULL */
1381 static int hf_h245_loose; /* NULL */
1382 static int hf_h245_network; /* OCTET_STRING_SIZE_4 */
1383 static int hf_h245_iPSrcRoute_tsapIdentifier; /* INTEGER_0_65535 */
1384 static int hf_h245_route; /* T_route */
1385 static int hf_h245_route_item; /* OCTET_STRING_SIZE_4 */
1386 static int hf_h245_nsap; /* OCTET_STRING_SIZE_1_20 */
1387 static int hf_h245_nonStandardAddress; /* NonStandardParameter */
1388 static int hf_h245_mIPAddress; /* MIPAddress */
1389 static int hf_h245_mip4_network; /* OCTET_STRING_SIZE_4 */
1390 static int hf_h245_multicast_tsapIdentifier; /* INTEGER_0_65535 */
1391 static int hf_h245_mIP6Address; /* MIP6Address */
1392 static int hf_h245_mip6_network; /* OCTET_STRING_SIZE_16 */
1393 static int hf_h245_multicast_IPv6_tsapIdentifier; /* INTEGER_0_65535 */
1394 static int hf_h245_synchFlag; /* INTEGER_0_255 */
1395 static int hf_h245_h235Key; /* OCTET_STRING_SIZE_1_65535 */
1396 static int hf_h245_escrowentry; /* SEQUENCE_SIZE_1_256_OF_EscrowData */
1397 static int hf_h245_escrowentry_item; /* EscrowData */
1398 static int hf_h245_genericParameter; /* GenericParameter */
1399 static int hf_h245_escrowID; /* OBJECT_IDENTIFIER */
1400 static int hf_h245_escrowValue; /* BIT_STRING_SIZE_1_65535 */
1401 static int hf_h245_olc_ack_fw_lcn; /* OLC_ack_fw_lcn */
1402 static int hf_h245_olc_ack_reverseLogicalChannelParameters; /* OLC_ack_reverseLogicalChannelParameters */
1403 static int hf_h245_reverseLogicalChannelNumber; /* T_reverseLogicalChannelNumber */
1404 static int hf_h245_olc_ack_multiplexParameters; /* T_olc_ack_multiplexParameters */
1405 static int hf_h245_forwardMultiplexAckParameters; /* T_forwardMultiplexAckParameters */
1406 static int hf_h245_h2250LogicalChannelAckParameters; /* H2250LogicalChannelAckParameters */
1407 static int hf_h245_forwardLogicalChannelNumber; /* LogicalChannelNumber */
1408 static int hf_h245_olc_rej_cause; /* OpenLogicalChannelRejectCause */
1409 static int hf_h245_unsuitableReverseParameters; /* NULL */
1410 static int hf_h245_dataTypeNotSupported; /* NULL */
1411 static int hf_h245_dataTypeNotAvailable; /* NULL */
1412 static int hf_h245_unknownDataType; /* NULL */
1413 static int hf_h245_dataTypeALCombinationNotSupported; /* NULL */
1414 static int hf_h245_multicastChannelNotAllowed; /* NULL */
1415 static int hf_h245_insufficientBandwidth; /* NULL */
1416 static int hf_h245_separateStackEstablishmentFailed; /* NULL */
1417 static int hf_h245_invalidSessionID; /* NULL */
1418 static int hf_h245_masterSlaveConflict; /* NULL */
1419 static int hf_h245_waitForCommunicationMode; /* NULL */
1420 static int hf_h245_invalidDependentChannel; /* NULL */
1421 static int hf_h245_replacementForRejected; /* NULL */
1422 static int hf_h245_securityDenied; /* NULL */
1423 static int hf_h245_qoSControlNotSupported; /* NULL */
1424 static int hf_h245_sessionID; /* INTEGER_1_255 */
1425 static int hf_h245_ack_mediaChannel; /* Ack_mediaChannel */
1426 static int hf_h245_ack_mediaControlChannel; /* Ack_mediaControlChannel */
1427 static int hf_h245_flowControlToZero; /* BOOLEAN */
1428 static int hf_h245_cLC_source; /* T_cLC_source */
1429 static int hf_h245_user; /* NULL */
1430 static int hf_h245_lcse; /* NULL */
1431 static int hf_h245_clc_reason; /* Clc_reason */
1432 static int hf_h245_unknown; /* NULL */
1433 static int hf_h245_reopen; /* NULL */
1434 static int hf_h245_reservationFailure; /* NULL */
1435 static int hf_h245_networkErrorCode; /* INTEGER_0_255 */
1436 static int hf_h245_qosCapability; /* QOSCapability */
1437 static int hf_h245_reason; /* T_reason */
1438 static int hf_h245_normal; /* NULL */
1439 static int hf_h245_req_chan_clos_rej_cause; /* RequestChannelCloseRejectCause */
1440 static int hf_h245_multiplexEntryDescriptors; /* SET_SIZE_1_15_OF_MultiplexEntryDescriptor */
1441 static int hf_h245_multiplexEntryDescriptors_item; /* MultiplexEntryDescriptor */
1442 static int hf_h245_multiplexTableEntryNumber; /* MultiplexTableEntryNumber */
1443 static int hf_h245_elementList; /* T_elementList */
1444 static int hf_h245_elementList_item; /* MultiplexElement */
1445 static int hf_h245_me_type; /* Me_type */
1446 static int hf_h245_logicalChannelNum; /* T_logicalChannelNum */
1447 static int hf_h245_subElementList; /* T_subElementList */
1448 static int hf_h245_subElementList_item; /* MultiplexElement */
1449 static int hf_h245_me_repeatCount; /* ME_repeatCount */
1450 static int hf_h245_me_repeatCount_finite; /* ME_finiteRepeatCount */
1451 static int hf_h245_untilClosingFlag; /* T_untilClosingFlag */
1452 static int hf_h245_multiplexTableEntryNumbers; /* SET_SIZE_1_15_OF_MultiplexTableEntryNumber */
1453 static int hf_h245_multiplexTableEntryNumbers_item; /* MultiplexTableEntryNumber */
1454 static int hf_h245_sendRejectionDescriptions; /* SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions */
1455 static int hf_h245_sendRejectionDescriptions_item; /* MultiplexEntryRejectionDescriptions */
1456 static int hf_h245_mux_rej_cause; /* MultiplexEntryRejectionDescriptionsCause */
1457 static int hf_h245_unspecifiedCause; /* NULL */
1458 static int hf_h245_descriptorTooComplex; /* NULL */
1459 static int hf_h245_entryNumbers; /* SET_SIZE_1_15_OF_MultiplexTableEntryNumber */
1460 static int hf_h245_entryNumbers_item; /* MultiplexTableEntryNumber */
1461 static int hf_h245_rejectionDescriptions; /* SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions */
1462 static int hf_h245_rejectionDescriptions_item; /* RequestMultiplexEntryRejectionDescriptions */
1463 static int hf_h245_req_mux_rej_cause; /* RequestMultiplexEntryRejectionDescriptionsCause */
1464 static int hf_h245_requestedModes; /* SEQUENCE_SIZE_1_256_OF_ModeDescription */
1465 static int hf_h245_requestedModes_item; /* ModeDescription */
1466 static int hf_h245_req_mode_ack_response; /* Req_mode_ack_response */
1467 static int hf_h245_willTransmitMostPreferredMode; /* NULL */
1468 static int hf_h245_willTransmitLessPreferredMode; /* NULL */
1469 static int hf_h245_req_rej_cause; /* RequestModeRejectCause */
1470 static int hf_h245_modeUnavailable; /* NULL */
1471 static int hf_h245_multipointConstraint; /* NULL */
1472 static int hf_h245_requestDenied; /* NULL */
1473 static int hf_h245_ModeDescription_item; /* ModeElement */
1474 static int hf_h245_videoMode; /* VideoMode */
1475 static int hf_h245_audioMode; /* AudioMode */
1476 static int hf_h245_dataMode; /* DataMode */
1477 static int hf_h245_encryptionMode; /* EncryptionMode */
1478 static int hf_h245_h235Mode; /* H235Mode */
1479 static int hf_h245_multiplexedStreamMode; /* MultiplexedStreamParameter */
1480 static int hf_h245_redundancyEncodingDTMode; /* RedundancyEncodingDTMode */
1481 static int hf_h245_multiplePayloadStreamMode; /* MultiplePayloadStreamMode */
1482 static int hf_h245_depFecMode; /* DepFECMode */
1483 static int hf_h245_fecMode; /* FECMode */
1484 static int hf_h245_type; /* ModeElementType */
1485 static int hf_h245_h223ModeParameters; /* H223ModeParameters */
1486 static int hf_h245_v76ModeParameters; /* V76ModeParameters */
1487 static int hf_h245_h2250ModeParameters; /* H2250ModeParameters */
1488 static int hf_h245_genericModeParameters; /* GenericCapability */
1489 static int hf_h245_multiplexedStreamModeParameters; /* MultiplexedStreamModeParameters */
1490 static int hf_h245_logicalChannelNumber; /* LogicalChannelNumber */
1491 static int hf_h245_mediaMode; /* T_mediaMode */
1492 static int hf_h245_prmary_dtmode; /* RedundancyEncodingDTModeElement */
1493 static int hf_h245_secondaryDTM; /* SEQUENCE_OF_RedundancyEncodingDTModeElement */
1494 static int hf_h245_secondaryDTM_item; /* RedundancyEncodingDTModeElement */
1495 static int hf_h245_re_type; /* Re_type */
1496 static int hf_h245_mpsmElements; /* SEQUENCE_OF_MultiplePayloadStreamElementMode */
1497 static int hf_h245_mpsmElements_item; /* MultiplePayloadStreamElementMode */
1498 static int hf_h245_rfc2733Mode; /* T_rfc2733Mode */
1499 static int hf_h245_fec_mode; /* FEC_mode */
1500 static int hf_h245_protectedElement; /* ModeElementType */
1501 static int hf_h245_adaptationLayer; /* AdaptationLayerType */
1502 static int hf_h245_al1Framed; /* NULL */
1503 static int hf_h245_al1NotFramed; /* NULL */
1504 static int hf_h245_al2WithoutSequenceNumbers; /* NULL */
1505 static int hf_h245_al2WithSequenceNumbers; /* NULL */
1506 static int hf_h245_al3; /* Al3 */
1507 static int hf_h245_al1M; /* H223AL1MParameters */
1508 static int hf_h245_al2M; /* H223AL2MParameters */
1509 static int hf_h245_al3M; /* H223AL3MParameters */
1510 static int hf_h245_segmentableFlag; /* BOOLEAN */
1511 static int hf_h245_redundancyEncodingMode; /* RedundancyEncodingMode */
1512 static int hf_h245_secondaryEncodingMode; /* T_secondaryEncodingMode */
1513 static int hf_h245_h261VideoMode; /* H261VideoMode */
1514 static int hf_h245_h262VideoMode; /* H262VideoMode */
1515 static int hf_h245_h263VideoMode; /* H263VideoMode */
1516 static int hf_h245_is11172VideoMode; /* IS11172VideoMode */
1517 static int hf_h245_genericVideoMode; /* GenericCapability */
1518 static int hf_h245_h261_resolution; /* H261Resolution */
1519 static int hf_h245_qcif; /* NULL */
1520 static int hf_h245_cif; /* NULL */
1521 static int hf_h245_profileAndLevel; /* T_profileAndLevel */
1522 static int hf_h245_profileAndLevel_SPatMLMode; /* NULL */
1523 static int hf_h245_profileAndLevel_MPatLLMode; /* NULL */
1524 static int hf_h245_profileAndLevel_MPatMLMode; /* NULL */
1525 static int hf_h245_profileAndLevel_MPatH_14Mode; /* NULL */
1526 static int hf_h245_profileAndLevel_MPatHLMode; /* NULL */
1527 static int hf_h245_profileAndLevel_SNRatLLMode; /* NULL */
1528 static int hf_h245_profileAndLevel_SNRatMLMode; /* NULL */
1529 static int hf_h245_profileAndLevel_SpatialatH_14Mode; /* NULL */
1530 static int hf_h245_profileAndLevel_HPatMLMode; /* NULL */
1531 static int hf_h245_profileAndLevel_HPatH_14Mode; /* NULL */
1532 static int hf_h245_profileAndLevel_HPatHLMode; /* NULL */
1533 static int hf_h245_h263_resolution; /* H263Resolution */
1534 static int hf_h245_sqcif; /* NULL */
1535 static int hf_h245_cif4; /* NULL */
1536 static int hf_h245_cif16; /* NULL */
1537 static int hf_h245_custom_res; /* NULL */
1538 static int hf_h245_g711Alaw64k_mode; /* NULL */
1539 static int hf_h245_g711Alaw56k_mode; /* NULL */
1540 static int hf_h245_g711Ulaw64k_mode; /* NULL */
1541 static int hf_h245_g711Ulaw56k_mode; /* NULL */
1542 static int hf_h245_g722_64k_mode; /* NULL */
1543 static int hf_h245_g722_56k_mode; /* NULL */
1544 static int hf_h245_g722_48k_mode; /* NULL */
1545 static int hf_h245_g728_mode; /* NULL */
1546 static int hf_h245_g729_mode; /* NULL */
1547 static int hf_h245_g729AnnexA_mode; /* NULL */
1548 static int hf_h245_g7231_mode; /* Mode_g7231 */
1549 static int hf_h245_noSilenceSuppressionLowRate; /* NULL */
1550 static int hf_h245_noSilenceSuppressionHighRate; /* NULL */
1551 static int hf_h245_silenceSuppressionLowRate; /* NULL */
1552 static int hf_h245_silenceSuppressionHighRate; /* NULL */
1553 static int hf_h245_is11172AudioMode; /* IS11172AudioMode */
1554 static int hf_h245_is13818AudioMode; /* IS13818AudioMode */
1555 static int hf_h245_g7231AnnexCMode; /* G7231AnnexCMode */
1556 static int hf_h245_genericAudioMode; /* GenericCapability */
1557 static int hf_h245_vbd_mode; /* VBDMode */
1558 static int hf_h245_audioLayer; /* T_audioLayer */
1559 static int hf_h245_audioLayer1Mode; /* NULL */
1560 static int hf_h245_audioLayer2Mode; /* NULL */
1561 static int hf_h245_audioLayer3Mode; /* NULL */
1562 static int hf_h245_audioSampling; /* T_audioSampling */
1563 static int hf_h245_audioSampling32kMode; /* NULL */
1564 static int hf_h245_audioSampling44k1Mode; /* NULL */
1565 static int hf_h245_audioSampling48kMode; /* NULL */
1566 static int hf_h245_is11172multichannelType; /* IS11172_multichannelType */
1567 static int hf_h245_singleChannelMode; /* NULL */
1568 static int hf_h245_twoChannelStereo; /* NULL */
1569 static int hf_h245_twoChannelDual; /* NULL */
1570 static int hf_h245_audioLayerMode; /* IS13818AudioLayer */
1571 static int hf_h245_audioSamplingMode; /* IS13818AudioSampling */
1572 static int hf_h245_audioSampling16kMode; /* NULL */
1573 static int hf_h245_audioSampling22k05Mode; /* NULL */
1574 static int hf_h245_audioSampling24kMode; /* NULL */
1575 static int hf_h245_is13818MultichannelType; /* IS13818MultichannelType */
1576 static int hf_h245_threeChannels2_1Mode; /* NULL */
1577 static int hf_h245_threeChannels3_0Mode; /* NULL */
1578 static int hf_h245_fourChannels2_0_2_0Mode; /* NULL */
1579 static int hf_h245_fourChannels2_2Mode; /* NULL */
1580 static int hf_h245_fourChannels3_1Mode; /* NULL */
1581 static int hf_h245_fiveChannels3_0_2_0Mode; /* NULL */
1582 static int hf_h245_fiveChannels3_2Mode; /* NULL */
1583 static int hf_h245_vbd_type; /* AudioMode */
1584 static int hf_h245_datamodeapplication; /* DataModeApplication */
1585 static int hf_h245_t84DataProtocolCapability; /* DataProtocolCapability */
1586 static int hf_h245_t38faxDataProtocolCapability; /* T38faxApp */
1587 static int hf_h245_genericDataMode; /* GenericCapability */
1588 static int hf_h245_bitRate_0_4294967295; /* INTEGER_0_4294967295 */
1589 static int hf_h245_h233Encryption; /* NULL */
1590 static int hf_h245_mlr_type; /* Mlr_type */
1591 static int hf_h245_systemLoop; /* NULL */
1592 static int hf_h245_mediaLoop; /* LogicalChannelNumber */
1593 static int hf_h245_logicalChannelLoop; /* LogicalChannelNumber */
1594 static int hf_h245_mla_type; /* Mla_type */
1595 static int hf_h245_mlrej_type; /* Mlrej_type */
1596 static int hf_h245_maintloop_rej_cause; /* MaintenanceLoopRejectCause */
1597 static int hf_h245_canNotPerformLoop; /* NULL */
1598 static int hf_h245_communicationModeTable; /* SET_SIZE_1_256_OF_CommunicationModeTableEntry */
1599 static int hf_h245_communicationModeTable_item; /* CommunicationModeTableEntry */
1600 static int hf_h245_terminalLabel; /* TerminalLabel */
1601 static int hf_h245_sessionDescription; /* BMPString_SIZE_1_128 */
1602 static int hf_h245_entryDataType; /* T_entryDataType */
1603 static int hf_h245_cm_mediaChannel; /* Cm_mediaChannel */
1604 static int hf_h245_cm_mediaControlChannel; /* TransportAddress */
1605 static int hf_h245_sessionDependency; /* INTEGER_1_255 */
1606 static int hf_h245_terminalListRequest; /* NULL */
1607 static int hf_h245_makeMeChair; /* NULL */
1608 static int hf_h245_cancelMakeMeChair; /* NULL */
1609 static int hf_h245_dropTerminal; /* TerminalLabel */
1610 static int hf_h245_requestTerminalID; /* TerminalLabel */
1611 static int hf_h245_enterH243Password; /* NULL */
1612 static int hf_h245_enterH243TerminalID; /* NULL */
1613 static int hf_h245_enterH243ConferenceID; /* NULL */
1614 static int hf_h245_enterExtensionAddress; /* NULL */
1615 static int hf_h245_requestChairTokenOwner; /* NULL */
1616 static int hf_h245_requestTerminalCertificate; /* T_requestTerminalCertificate */
1617 static int hf_h245_certSelectionCriteria; /* CertSelectionCriteria */
1618 static int hf_h245_sRandom; /* INTEGER_1_4294967295 */
1619 static int hf_h245_broadcastMyLogicalChannel; /* LogicalChannelNumber */
1620 static int hf_h245_makeTerminalBroadcaster; /* TerminalLabel */
1621 static int hf_h245_sendThisSource; /* TerminalLabel */
1622 static int hf_h245_requestAllTerminalIDs; /* NULL */
1623 static int hf_h245_remoteMCRequest; /* RemoteMCRequest */
1624 static int hf_h245_CertSelectionCriteria_item; /* Criteria */
1625 static int hf_h245_field; /* OBJECT_IDENTIFIER */
1626 static int hf_h245_criteriaValue; /* OCTET_STRING_SIZE_1_65535 */
1627 static int hf_h245_mcuNumber; /* McuNumber */
1628 static int hf_h245_terminalNumber; /* TerminalNumber */
1629 static int hf_h245_mCTerminalIDResponse; /* T_mCTerminalIDResponse */
1630 static int hf_h245_terminalID; /* TerminalID */
1631 static int hf_h245_terminalIDResponse; /* T_terminalIDResponse */
1632 static int hf_h245_conferenceIDResponse; /* T_conferenceIDResponse */
1633 static int hf_h245_conferenceID; /* ConferenceID */
1634 static int hf_h245_passwordResponse; /* T_passwordResponse */
1635 static int hf_h245_password; /* Password */
1636 static int hf_h245_terminalListResponse; /* SET_SIZE_1_256_OF_TerminalLabel */
1637 static int hf_h245_terminalListResponse_item; /* TerminalLabel */
1638 static int hf_h245_videoCommandReject; /* NULL */
1639 static int hf_h245_terminalDropReject; /* NULL */
1640 static int hf_h245_makeMeChairResponse; /* T_makeMeChairResponse */
1641 static int hf_h245_grantedChairToken; /* NULL */
1642 static int hf_h245_deniedChairToken; /* NULL */
1643 static int hf_h245_extensionAddressResponse; /* T_extensionAddressResponse */
1644 static int hf_h245_extensionAddress; /* TerminalID */
1645 static int hf_h245_chairTokenOwnerResponse; /* T_chairTokenOwnerResponse */
1646 static int hf_h245_terminalCertificateResponse; /* T_terminalCertificateResponse */
1647 static int hf_h245_certificateResponse; /* OCTET_STRING_SIZE_1_65535 */
1648 static int hf_h245_broadcastMyLogicalChannelResponse; /* T_broadcastMyLogicalChannelResponse */
1649 static int hf_h245_grantedBroadcastMyLogicalChannel; /* NULL */
1650 static int hf_h245_deniedBroadcastMyLogicalChannel; /* NULL */
1651 static int hf_h245_makeTerminalBroadcasterResponse; /* T_makeTerminalBroadcasterResponse */
1652 static int hf_h245_grantedMakeTerminalBroadcaster; /* NULL */
1653 static int hf_h245_deniedMakeTerminalBroadcaster; /* NULL */
1654 static int hf_h245_sendThisSourceResponse; /* T_sendThisSourceResponse */
1655 static int hf_h245_grantedSendThisSource; /* NULL */
1656 static int hf_h245_deniedSendThisSource; /* NULL */
1657 static int hf_h245_requestAllTerminalIDsResponse; /* RequestAllTerminalIDsResponse */
1658 static int hf_h245_remoteMCResponse; /* RemoteMCResponse */
1659 static int hf_h245_terminalInformation; /* SEQUENCE_OF_TerminalInformation */
1660 static int hf_h245_terminalInformation_item; /* TerminalInformation */
1661 static int hf_h245_masterActivate; /* NULL */
1662 static int hf_h245_slaveActivate; /* NULL */
1663 static int hf_h245_deActivate; /* NULL */
1664 static int hf_h245_accept; /* NULL */
1665 static int hf_h245_reject; /* T_reject */
1666 static int hf_h245_functionNotSupportedFlag; /* NULL */
1667 static int hf_h245_callInformationReq; /* CallInformationReq */
1668 static int hf_h245_maxNumberOfAdditionalConnections; /* INTEGER_1_65535 */
1669 static int hf_h245_addConnectionReq; /* AddConnectionReq */
1670 static int hf_h245_dialingInformation; /* DialingInformation */
1671 static int hf_h245_removeConnectionReq; /* RemoveConnectionReq */
1672 static int hf_h245_connectionIdentifier; /* ConnectionIdentifier */
1673 static int hf_h245_maximumHeaderIntervalReq; /* MaximumHeaderIntervalReq */
1674 static int hf_h245_requestType; /* T_requestType */
1675 static int hf_h245_currentIntervalInformation; /* NULL */
1676 static int hf_h245_requestedInterval; /* INTEGER_0_65535 */
1677 static int hf_h245_callInformationResp; /* CallInformationResp */
1678 static int hf_h245_callAssociationNumber; /* INTEGER_0_4294967295 */
1679 static int hf_h245_addConnectionResp; /* AddConnectionResp */
1680 static int hf_h245_responseCode; /* T_responseCode */
1681 static int hf_h245_accepted; /* NULL */
1682 static int hf_h245_rejected; /* T_rejected */
1683 static int hf_h245_connectionsNotAvailable; /* NULL */
1684 static int hf_h245_userRejected; /* NULL */
1685 static int hf_h245_removeConnectionResp; /* RemoveConnectionResp */
1686 static int hf_h245_maximumHeaderIntervalResp; /* MaximumHeaderIntervalResp */
1687 static int hf_h245_currentInterval; /* INTEGER_0_65535 */
1688 static int hf_h245_crcDesired; /* T_crcDesired */
1689 static int hf_h245_excessiveError; /* T_excessiveError */
1690 static int hf_h245_differential; /* SET_SIZE_1_65535_OF_DialingInformationNumber */
1691 static int hf_h245_differential_item; /* DialingInformationNumber */
1692 static int hf_h245_infoNotAvailable; /* INTEGER_1_65535 */
1693 static int hf_h245_din_networkAddress; /* NumericString_SIZE_0_40 */
1694 static int hf_h245_subAddress; /* IA5String_SIZE_1_40 */
1695 static int hf_h245_networkType; /* SET_SIZE_1_255_OF_DialingInformationNetworkType */
1696 static int hf_h245_networkType_item; /* DialingInformationNetworkType */
1697 static int hf_h245_n_isdn; /* NULL */
1698 static int hf_h245_gstn; /* NULL */
1699 static int hf_h245_mobile; /* NULL */
1700 static int hf_h245_channelTag; /* INTEGER_0_4294967295 */
1701 static int hf_h245_sequenceNum; /* INTEGER_0_4294967295 */
1702 static int hf_h245_maximumBitRate; /* MaximumBitRate */
1703 static int hf_h245_rejectReason; /* LogicalChannelRateRejectReason */
1704 static int hf_h245_currentMaximumBitRate; /* MaximumBitRate */
1705 static int hf_h245_undefinedReason; /* NULL */
1706 static int hf_h245_insufficientResources; /* NULL */
1707 static int hf_h245_specificRequest; /* T_specificRequest */
1708 static int hf_h245_multiplexCapabilityBool; /* BOOLEAN */
1709 static int hf_h245_capabilityTableEntryNumbers; /* SET_SIZE_1_65535_OF_CapabilityTableEntryNumber */
1710 static int hf_h245_capabilityTableEntryNumbers_item; /* CapabilityTableEntryNumber */
1711 static int hf_h245_capabilityDescriptorNumbers; /* SET_SIZE_1_256_OF_CapabilityDescriptorNumber */
1712 static int hf_h245_capabilityDescriptorNumbers_item; /* CapabilityDescriptorNumber */
1713 static int hf_h245_genericRequestFlag; /* NULL */
1714 static int hf_h245_encryptionSE; /* OCTET_STRING */
1715 static int hf_h245_encryptionIVRequest; /* NULL */
1716 static int hf_h245_encryptionAlgorithmID; /* T_encryptionAlgorithmID */
1717 static int hf_h245_h233AlgorithmIdentifier; /* SequenceNumber */
1718 static int hf_h245_associatedAlgorithm; /* NonStandardParameter */
1719 static int hf_h245_wholeMultiplex; /* NULL */
1720 static int hf_h245_scope; /* Scope */
1721 static int hf_h245_res_maximumBitRate; /* INTEGER_0_16777215 */
1722 static int hf_h245_noRestriction; /* NULL */
1723 static int hf_h245_restriction; /* Restriction */
1724 static int hf_h245_disconnect; /* NULL */
1725 static int hf_h245_gstnOptions; /* T_gstnOptions */
1726 static int hf_h245_telephonyMode; /* NULL */
1727 static int hf_h245_v8bis; /* NULL */
1728 static int hf_h245_v34DSVD; /* NULL */
1729 static int hf_h245_v34DuplexFAX; /* NULL */
1730 static int hf_h245_v34H324; /* NULL */
1731 static int hf_h245_isdnOptions; /* T_isdnOptions */
1732 static int hf_h245_v140; /* NULL */
1733 static int hf_h245_terminalOnHold; /* NULL */
1734 static int hf_h245_cancelBroadcastMyLogicalChannel; /* LogicalChannelNumber */
1735 static int hf_h245_cancelMakeTerminalBroadcaster; /* NULL */
1736 static int hf_h245_cancelSendThisSource; /* NULL */
1737 static int hf_h245_dropConference; /* NULL */
1738 static int hf_h245_substituteConferenceIDCommand; /* SubstituteConferenceIDCommand */
1739 static int hf_h245_conferenceIdentifier; /* OCTET_STRING_SIZE_16 */
1740 static int hf_h245_masterToSlave; /* NULL */
1741 static int hf_h245_slaveToMaster; /* NULL */
1742 static int hf_h245_mc_type; /* Mc_type */
1743 static int hf_h245_equaliseDelay; /* NULL */
1744 static int hf_h245_zeroDelay; /* NULL */
1745 static int hf_h245_multipointModeCommand; /* NULL */
1746 static int hf_h245_cancelMultipointModeCommand; /* NULL */
1747 static int hf_h245_videoFreezePicture; /* NULL */
1748 static int hf_h245_videoFastUpdatePicture; /* NULL */
1749 static int hf_h245_videoFastUpdateGOB; /* T_videoFastUpdateGOB */
1750 static int hf_h245_firstGOB; /* INTEGER_0_17 */
1751 static int hf_h245_numberOfGOBs; /* INTEGER_1_18 */
1752 static int hf_h245_videoTemporalSpatialTradeOff; /* INTEGER_0_31 */
1753 static int hf_h245_videoSendSyncEveryGOB; /* NULL */
1754 static int hf_h245_videoSendSyncEveryGOBCancel; /* NULL */
1755 static int hf_h245_videoFastUpdateMB; /* T_videoFastUpdateMB */
1756 static int hf_h245_firstGOB_0_255; /* INTEGER_0_255 */
1757 static int hf_h245_firstMB_1_8192; /* INTEGER_1_8192 */
1758 static int hf_h245_numberOfMBs; /* INTEGER_1_8192 */
1759 static int hf_h245_maxH223MUXPDUsize; /* INTEGER_1_65535 */
1760 static int hf_h245_encryptionUpdate; /* EncryptionSync */
1761 static int hf_h245_encryptionUpdateRequest; /* EncryptionUpdateRequest */
1762 static int hf_h245_switchReceiveMediaOff; /* NULL */
1763 static int hf_h245_switchReceiveMediaOn; /* NULL */
1764 static int hf_h245_progressiveRefinementStart; /* T_progressiveRefinementStart */
1765 static int hf_h245_repeatCount; /* T_repeatCount */
1766 static int hf_h245_doOneProgression; /* NULL */
1767 static int hf_h245_doContinuousProgressions; /* NULL */
1768 static int hf_h245_doOneIndependentProgression; /* NULL */
1769 static int hf_h245_doContinuousIndependentProgressions; /* NULL */
1770 static int hf_h245_progressiveRefinementAbortOne; /* NULL */
1771 static int hf_h245_progressiveRefinementAbortContinuous; /* NULL */
1772 static int hf_h245_videoBadMBs; /* T_videoBadMBs */
1773 static int hf_h245_firstMB; /* INTEGER_1_9216 */
1774 static int hf_h245_numberOfMBs1_1_9216; /* INTEGER_1_9216 */
1775 static int hf_h245_temporalReference; /* INTEGER_0_1023 */
1776 static int hf_h245_lostPicture; /* SEQUENCE_OF_PictureReference */
1777 static int hf_h245_lostPicture_item; /* PictureReference */
1778 static int hf_h245_lostPartialPicture; /* T_lostPartialPicture */
1779 static int hf_h245_pictureReference; /* PictureReference */
1780 static int hf_h245_recoveryReferencePicture; /* SEQUENCE_OF_PictureReference */
1781 static int hf_h245_recoveryReferencePicture_item; /* PictureReference */
1782 static int hf_h245_encryptionUpdateCommand; /* T_encryptionUpdateCommand */
1783 static int hf_h245_encryptionUpdateAck; /* T_encryptionUpdateAck */
1784 static int hf_h245_direction; /* EncryptionUpdateDirection */
1785 static int hf_h245_secureChannel; /* BOOLEAN */
1786 static int hf_h245_sharedSecret; /* BOOLEAN */
1787 static int hf_h245_certProtectedKey; /* BOOLEAN */
1788 static int hf_h245_keyProtectionMethod; /* KeyProtectionMethod */
1789 static int hf_h245_pictureNumber; /* INTEGER_0_1023 */
1790 static int hf_h245_longTermPictureIndex; /* INTEGER_0_255 */
1791 static int hf_h245_h223ModeChange; /* T_h223ModeChange */
1792 static int hf_h245_toLevel0; /* NULL */
1793 static int hf_h245_toLevel1; /* NULL */
1794 static int hf_h245_toLevel2; /* NULL */
1795 static int hf_h245_toLevel2withOptionalHeader; /* NULL */
1796 static int hf_h245_h223AnnexADoubleFlag; /* T_h223AnnexADoubleFlag */
1797 static int hf_h245_start; /* NULL */
1798 static int hf_h245_stop; /* NULL */
1799 static int hf_h245_bitRate; /* INTEGER_1_65535 */
1800 static int hf_h245_bitRateLockedToPCRClock; /* BOOLEAN */
1801 static int hf_h245_bitRateLockedToNetworkClock; /* BOOLEAN */
1802 static int hf_h245_cmd_aal; /* Cmd_aal */
1803 static int hf_h245_cmd_aal1; /* Cmd_aal1 */
1804 static int hf_h245_cmd_clockRecovery; /* Cmd_clockRecovery */
1805 static int hf_h245_nullClockRecoveryflag; /* NULL */
1806 static int hf_h245_srtsClockRecovery; /* NULL */
1807 static int hf_h245_adaptiveClockRecoveryFlag; /* NULL */
1808 static int hf_h245_cmd_errorCorrection; /* Cmd_errorCorrection */
1809 static int hf_h245_nullErrorCorrectionFlag; /* NULL */
1810 static int hf_h245_longInterleaverFlag; /* NULL */
1811 static int hf_h245_shortInterleaverFlag; /* NULL */
1812 static int hf_h245_errorCorrectionOnlyFlag; /* NULL */
1813 static int hf_h245_cmd_aal5; /* Cmd_aal5 */
1814 static int hf_h245_cmd_multiplex; /* Cmd_multiplex */
1815 static int hf_h245_noMultiplex; /* NULL */
1816 static int hf_h245_transportStream; /* NULL */
1817 static int hf_h245_programStreamFlag; /* NULL */
1818 static int hf_h245_cmd_reverseParameters; /* Cmd_reverseParameters */
1819 static int hf_h245_cmdr_multiplex; /* CmdR_multiplex */
1820 static int hf_h245_sampleSize; /* INTEGER_1_255 */
1821 static int hf_h245_samplesPerFrame; /* INTEGER_1_255 */
1822 static int hf_h245_status; /* T_status */
1823 static int hf_h245_synchronized; /* NULL */
1824 static int hf_h245_reconfiguration; /* NULL */
1825 static int hf_h245_fns_cause; /* FunctionNotSupportedCause */
1826 static int hf_h245_syntaxError; /* NULL */
1827 static int hf_h245_semanticError; /* NULL */
1828 static int hf_h245_unknownFunction; /* NULL */
1829 static int hf_h245_returnedFunction; /* T_returnedFunction */
1830 static int hf_h245_sbeNumber; /* INTEGER_0_9 */
1831 static int hf_h245_terminalNumberAssign; /* TerminalLabel */
1832 static int hf_h245_terminalJoinedConference; /* TerminalLabel */
1833 static int hf_h245_terminalLeftConference; /* TerminalLabel */
1834 static int hf_h245_seenByAtLeastOneOther; /* NULL */
1835 static int hf_h245_cancelSeenByAtLeastOneOther; /* NULL */
1836 static int hf_h245_seenByAll; /* NULL */
1837 static int hf_h245_cancelSeenByAll; /* NULL */
1838 static int hf_h245_terminalYouAreSeeing; /* TerminalLabel */
1839 static int hf_h245_requestForFloor; /* NULL */
1840 static int hf_h245_withdrawChairToken; /* NULL */
1841 static int hf_h245_floorRequested; /* TerminalLabel */
1842 static int hf_h245_terminalYouAreSeeingInSubPictureNumber; /* TerminalYouAreSeeingInSubPictureNumber */
1843 static int hf_h245_videoIndicateCompose; /* VideoIndicateCompose */
1844 static int hf_h245_masterMCU; /* NULL */
1845 static int hf_h245_cancelMasterMCU; /* NULL */
1846 static int hf_h245_subPictureNumber; /* INTEGER_0_255 */
1847 static int hf_h245_compositionNumber; /* INTEGER_0_255 */
1848 static int hf_h245_mi_type; /* Mi_type */
1849 static int hf_h245_logicalChannelActive; /* NULL */
1850 static int hf_h245_logicalChannelInactive; /* NULL */
1851 static int hf_h245_multipointConference; /* NULL */
1852 static int hf_h245_cancelMultipointConference; /* NULL */
1853 static int hf_h245_multipointZeroComm; /* NULL */
1854 static int hf_h245_cancelMultipointZeroComm; /* NULL */
1855 static int hf_h245_multipointSecondaryStatus; /* NULL */
1856 static int hf_h245_cancelMultipointSecondaryStatus; /* NULL */
1857 static int hf_h245_videoIndicateReadyToActivate; /* NULL */
1858 static int hf_h245_videoNotDecodedMBs; /* T_videoNotDecodedMBs */
1859 static int hf_h245_temporalReference_0_255; /* INTEGER_0_255 */
1860 static int hf_h245_estimatedReceivedJitterMantissa; /* INTEGER_0_3 */
1861 static int hf_h245_estimatedReceivedJitterExponent; /* INTEGER_0_7 */
1862 static int hf_h245_skippedFrameCount; /* INTEGER_0_15 */
1863 static int hf_h245_additionalDecoderBuffer; /* INTEGER_0_262143 */
1864 static int hf_h245_logicalChannelNumber1; /* LogicalChannelNumber */
1865 static int hf_h245_logicalChannelNumber2; /* LogicalChannelNumber */
1866 static int hf_h245_skew; /* INTEGER_0_4095 */
1867 static int hf_h245_maximumSkew; /* INTEGER_0_4095 */
1868 static int hf_h245_signalAddress; /* TransportAddress */
1869 static int hf_h245_vendor; /* NonStandardIdentifier */
1870 static int hf_h245_productNumber; /* OCTET_STRING_SIZE_1_256 */
1871 static int hf_h245_versionNumber; /* OCTET_STRING_SIZE_1_256 */
1872 static int hf_h245_ind_aal; /* Ind_aal */
1873 static int hf_h245_ind_aal1; /* Ind_aal1 */
1874 static int hf_h245_ind_clockRecovery; /* Ind_clockRecovery */
1875 static int hf_h245_ind_errorCorrection; /* Ind_errorCorrection */
1876 static int hf_h245_ind_aal5; /* Ind_aal5 */
1877 static int hf_h245_ind_multiplex; /* Ind_multiplex */
1878 static int hf_h245_ind_reverseParameters; /* Ind_reverseParameters */
1879 static int hf_h245_indr_multiplex; /* IndR_multiplex */
1880 static int hf_h245_iv8; /* IV8 */
1881 static int hf_h245_iv16; /* IV16 */
1882 static int hf_h245_iv; /* OCTET_STRING */
1883 static int hf_h245_alphanumeric; /* GeneralString */
1884 static int hf_h245_userInputSupportIndication; /* T_userInputSupportIndication */
1885 static int hf_h245_signal; /* T_signal */
1886 static int hf_h245_signalType; /* T_signalType */
1887 static int hf_h245_duration; /* INTEGER_1_65535 */
1888 static int hf_h245_rtp; /* T_rtp */
1889 static int hf_h245_timestamp; /* INTEGER_0_4294967295 */
1890 static int hf_h245_expirationTime; /* INTEGER_0_4294967295 */
1891 static int hf_h245_rtpPayloadIndication; /* NULL */
1892 static int hf_h245_paramS; /* Params */
1893 static int hf_h245_encryptedSignalType; /* OCTET_STRING_SIZE_1 */
1894 static int hf_h245_algorithmOID; /* OBJECT_IDENTIFIER */
1895 static int hf_h245_signalUpdate; /* T_signalUpdate */
1896 static int hf_h245_si_rtp; /* Si_rtp */
1897 static int hf_h245_extendedAlphanumeric; /* T_extendedAlphanumeric */
1898 static int hf_h245_encrypted; /* OCTET_STRING */
1899 static int hf_h245_encryptedAlphanumeric; /* EncryptedAlphanumeric */
1901 /* Initialize the subtree pointers */
1902 static int ett_h245;
1903 static int ett_h245_returnedFunction;
1904 static int ett_h245_MultimediaSystemControlMessage;
1905 static int ett_h245_RequestMessage;
1906 static int ett_h245_ResponseMessage;
1907 static int ett_h245_CommandMessage;
1908 static int ett_h245_IndicationMessage;
1909 static int ett_h245_GenericMessage;
1910 static int ett_h245_T_messageContent;
1911 static int ett_h245_NonStandardMessage;
1912 static int ett_h245_NonStandardParameter;
1913 static int ett_h245_NonStandardIdentifier;
1914 static int ett_h245_H221NonStandardID;
1915 static int ett_h245_MasterSlaveDetermination;
1916 static int ett_h245_MasterSlaveDeterminationAck;
1917 static int ett_h245_T_decision;
1918 static int ett_h245_MasterSlaveDeterminationReject;
1919 static int ett_h245_MasterSlaveDeterminationRejectCause;
1920 static int ett_h245_MasterSlaveDeterminationRelease;
1921 static int ett_h245_TerminalCapabilitySet;
1922 static int ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry;
1923 static int ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor;
1924 static int ett_h245_SEQUENCE_OF_GenericInformation;
1925 static int ett_h245_CapabilityTableEntry;
1926 static int ett_h245_CapabilityDescriptor;
1927 static int ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet;
1928 static int ett_h245_AlternativeCapabilitySet;
1929 static int ett_h245_TerminalCapabilitySetAck;
1930 static int ett_h245_TerminalCapabilitySetReject;
1931 static int ett_h245_TerminalCapabilitySetRejectCause;
1932 static int ett_h245_T_tableEntryCapacityExceeded;
1933 static int ett_h245_TerminalCapabilitySetRelease;
1934 static int ett_h245_Capability;
1935 static int ett_h245_T_h233EncryptionReceiveCapability;
1936 static int ett_h245_H235SecurityCapability;
1937 static int ett_h245_MultiplexCapability;
1938 static int ett_h245_H222Capability;
1939 static int ett_h245_SET_OF_VCCapability;
1940 static int ett_h245_VCCapability;
1941 static int ett_h245_T_aal1;
1942 static int ett_h245_T_aal5;
1943 static int ett_h245_T_availableBitRates;
1944 static int ett_h245_Avb_type;
1945 static int ett_h245_T_rangeOfBitRates;
1946 static int ett_h245_T_aal1ViaGateway;
1947 static int ett_h245_SET_SIZE_1_256_OF_Q2931Address;
1948 static int ett_h245_H223Capability;
1949 static int ett_h245_T_h223MultiplexTableCapability;
1950 static int ett_h245_T_enhanced;
1951 static int ett_h245_T_mobileOperationTransmitCapability;
1952 static int ett_h245_T_mobileMultilinkFrameCapability;
1953 static int ett_h245_H223AnnexCCapability;
1954 static int ett_h245_V76Capability;
1955 static int ett_h245_V75Capability;
1956 static int ett_h245_H2250Capability;
1957 static int ett_h245_T_mcCapability;
1958 static int ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability;
1959 static int ett_h245_MediaPacketizationCapability;
1960 static int ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType;
1961 static int ett_h245_RSVPParameters;
1962 static int ett_h245_QOSMode;
1963 static int ett_h245_ATMParameters;
1964 static int ett_h245_ServicePriorityValue;
1965 static int ett_h245_ServicePriority;
1966 static int ett_h245_AuthorizationParameters;
1967 static int ett_h245_QOSType;
1968 static int ett_h245_QOSClass;
1969 static int ett_h245_QOSDescriptor;
1970 static int ett_h245_GenericTransportParameters;
1971 static int ett_h245_QOSCapability;
1972 static int ett_h245_MediaTransportType;
1973 static int ett_h245_T_atm_AAL5_compressed;
1974 static int ett_h245_MediaChannelCapability;
1975 static int ett_h245_TransportCapability;
1976 static int ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability;
1977 static int ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability;
1978 static int ett_h245_RedundancyEncodingCapability;
1979 static int ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber;
1980 static int ett_h245_RedundancyEncodingMethod;
1981 static int ett_h245_RTPH263VideoRedundancyEncoding;
1982 static int ett_h245_T_frameToThreadMapping;
1983 static int ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping;
1984 static int ett_h245_T_containedThreads;
1985 static int ett_h245_RTPH263VideoRedundancyFrameMapping;
1986 static int ett_h245_T_frameSequence;
1987 static int ett_h245_MultipointCapability;
1988 static int ett_h245_SEQUENCE_OF_MediaDistributionCapability;
1989 static int ett_h245_MediaDistributionCapability;
1990 static int ett_h245_SEQUENCE_OF_DataApplicationCapability;
1991 static int ett_h245_VideoCapability;
1992 static int ett_h245_ExtendedVideoCapability;
1993 static int ett_h245_SEQUENCE_OF_VideoCapability;
1994 static int ett_h245_SEQUENCE_OF_GenericCapability;
1995 static int ett_h245_H261VideoCapability;
1996 static int ett_h245_H262VideoCapability;
1997 static int ett_h245_H263VideoCapability;
1998 static int ett_h245_EnhancementLayerInfo;
1999 static int ett_h245_SET_SIZE_1_14_OF_EnhancementOptions;
2000 static int ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters;
2001 static int ett_h245_BEnhancementParameters;
2002 static int ett_h245_EnhancementOptions;
2003 static int ett_h245_H263Options;
2004 static int ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency;
2005 static int ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat;
2006 static int ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos;
2007 static int ett_h245_TransparencyParameters;
2008 static int ett_h245_RefPictureSelection;
2009 static int ett_h245_T_additionalPictureMemory;
2010 static int ett_h245_T_videoBackChannelSend;
2011 static int ett_h245_T_enhancedReferencePicSelect;
2012 static int ett_h245_T_subPictureRemovalParameters;
2013 static int ett_h245_CustomPictureClockFrequency;
2014 static int ett_h245_CustomPictureFormat;
2015 static int ett_h245_T_mPI;
2016 static int ett_h245_T_customPCF;
2017 static int ett_h245_T_customPCF_item;
2018 static int ett_h245_T_pixelAspectInformation;
2019 static int ett_h245_T_pixelAspectCode;
2020 static int ett_h245_T_extendedPAR;
2021 static int ett_h245_T_extendedPAR_item;
2022 static int ett_h245_H263VideoModeCombos;
2023 static int ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags;
2024 static int ett_h245_H263ModeComboFlags;
2025 static int ett_h245_H263Version3Options;
2026 static int ett_h245_IS11172VideoCapability;
2027 static int ett_h245_AudioCapability;
2028 static int ett_h245_T_g7231;
2029 static int ett_h245_G729Extensions;
2030 static int ett_h245_G7231AnnexCCapability;
2031 static int ett_h245_G723AnnexCAudioMode;
2032 static int ett_h245_IS11172AudioCapability;
2033 static int ett_h245_IS13818AudioCapability;
2034 static int ett_h245_GSMAudioCapability;
2035 static int ett_h245_VBDCapability;
2036 static int ett_h245_DataApplicationCapability;
2037 static int ett_h245_Application;
2038 static int ett_h245_T_t84;
2039 static int ett_h245_Nlpid;
2040 static int ett_h245_T_t38fax;
2041 static int ett_h245_DataProtocolCapability;
2042 static int ett_h245_T_v76wCompression;
2043 static int ett_h245_CompressionType;
2044 static int ett_h245_V42bis;
2045 static int ett_h245_T84Profile;
2046 static int ett_h245_T_t84Restricted;
2047 static int ett_h245_T38FaxProfile;
2048 static int ett_h245_T38FaxRateManagement;
2049 static int ett_h245_T38FaxUdpOptions;
2050 static int ett_h245_T_t38FaxUdpEC;
2051 static int ett_h245_T38FaxTcpOptions;
2052 static int ett_h245_EncryptionAuthenticationAndIntegrity;
2053 static int ett_h245_EncryptionCapability;
2054 static int ett_h245_MediaEncryptionAlgorithm;
2055 static int ett_h245_AuthenticationCapability;
2056 static int ett_h245_IntegrityCapability;
2057 static int ett_h245_UserInputCapability;
2058 static int ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter;
2059 static int ett_h245_ConferenceCapability;
2060 static int ett_h245_SEQUENCE_OF_NonStandardParameter;
2061 static int ett_h245_GenericCapability;
2062 static int ett_h245_T_collapsing;
2063 static int ett_h245_T_nonCollapsing;
2064 static int ett_h245_CapabilityIdentifier;
2065 static int ett_h245_GenericParameter;
2066 static int ett_h245_SEQUENCE_OF_ParameterIdentifier;
2067 static int ett_h245_ParameterIdentifier;
2068 static int ett_h245_ParameterValue;
2069 static int ett_h245_SEQUENCE_OF_GenericParameter;
2070 static int ett_h245_MultiplexedStreamCapability;
2071 static int ett_h245_MultiplexFormat;
2072 static int ett_h245_AudioTelephonyEventCapability;
2073 static int ett_h245_AudioToneCapability;
2074 static int ett_h245_NoPTAudioTelephonyEventCapability;
2075 static int ett_h245_NoPTAudioToneCapability;
2076 static int ett_h245_MultiplePayloadStreamCapability;
2077 static int ett_h245_DepFECCapability;
2078 static int ett_h245_FECC_rfc2733;
2079 static int ett_h245_T_separateStreamBool;
2080 static int ett_h245_FECCapability;
2081 static int ett_h245_Rfc2733Format;
2082 static int ett_h245_OpenLogicalChannel;
2083 static int ett_h245_T_forwardLogicalChannelParameters;
2084 static int ett_h245_OLC_forw_multiplexParameters;
2085 static int ett_h245_OLC_reverseLogicalChannelParameters;
2086 static int ett_h245_OLC_rev_multiplexParameters;
2087 static int ett_h245_NetworkAccessParameters;
2088 static int ett_h245_T_distribution;
2089 static int ett_h245_T_networkAddress;
2090 static int ett_h245_T_t120SetupProcedure;
2091 static int ett_h245_Q2931Address;
2092 static int ett_h245_T_address;
2093 static int ett_h245_V75Parameters;
2094 static int ett_h245_DataType;
2095 static int ett_h245_H235Media;
2096 static int ett_h245_T_mediaType;
2097 static int ett_h245_MultiplexedStreamParameter;
2098 static int ett_h245_H222LogicalChannelParameters;
2099 static int ett_h245_H223LogicalChannelParameters;
2100 static int ett_h245_T_adaptationLayerType;
2101 static int ett_h245_Al3;
2102 static int ett_h245_H223AL1MParameters;
2103 static int ett_h245_T_transferMode;
2104 static int ett_h245_AL1HeaderFEC;
2105 static int ett_h245_AL1CrcLength;
2106 static int ett_h245_ArqType;
2107 static int ett_h245_H223AL2MParameters;
2108 static int ett_h245_AL2HeaderFEC;
2109 static int ett_h245_H223AL3MParameters;
2110 static int ett_h245_T_headerFormat;
2111 static int ett_h245_AL3CrcLength;
2112 static int ett_h245_H223AnnexCArqParameters;
2113 static int ett_h245_T_numberOfRetransmissions;
2114 static int ett_h245_V76LogicalChannelParameters;
2115 static int ett_h245_T_suspendResume;
2116 static int ett_h245_V76LCP_mode;
2117 static int ett_h245_T_eRM;
2118 static int ett_h245_T_recovery;
2119 static int ett_h245_V76HDLCParameters;
2120 static int ett_h245_CRCLength;
2121 static int ett_h245_H2250LogicalChannelParameters;
2122 static int ett_h245_T_mediaPacketization;
2123 static int ett_h245_RTPPayloadType;
2124 static int ett_h245_T_payloadDescriptor;
2125 static int ett_h245_RedundancyEncoding;
2126 static int ett_h245_T_rtpRedundancyEncoding;
2127 static int ett_h245_SEQUENCE_OF_RedundancyEncodingElement;
2128 static int ett_h245_RedundancyEncodingElement;
2129 static int ett_h245_MultiplePayloadStream;
2130 static int ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement;
2131 static int ett_h245_MultiplePayloadStreamElement;
2132 static int ett_h245_DepFECData;
2133 static int ett_h245_RFC2733Data;
2134 static int ett_h245_FECdata_mode;
2135 static int ett_h245_DepSeparateStream;
2136 static int ett_h245_T_differentPort;
2137 static int ett_h245_T_samePort;
2138 static int ett_h245_FECData;
2139 static int ett_h245_T_rfc2733;
2140 static int ett_h245_T_pktMode;
2141 static int ett_h245_T_mode_rfc2733sameport;
2142 static int ett_h245_T_mode_rfc2733diffport;
2143 static int ett_h245_TransportAddress;
2144 static int ett_h245_UnicastAddress;
2145 static int ett_h245_T_iPAddress;
2146 static int ett_h245_T_iPXAddress;
2147 static int ett_h245_T_iP6Address;
2148 static int ett_h245_T_iPSourceRouteAddress;
2149 static int ett_h245_T_routing;
2150 static int ett_h245_T_route;
2151 static int ett_h245_MulticastAddress;
2152 static int ett_h245_MIPAddress;
2153 static int ett_h245_MIP6Address;
2154 static int ett_h245_EncryptionSync;
2155 static int ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData;
2156 static int ett_h245_EscrowData;
2157 static int ett_h245_OpenLogicalChannelAck;
2158 static int ett_h245_OLC_ack_reverseLogicalChannelParameters;
2159 static int ett_h245_T_olc_ack_multiplexParameters;
2160 static int ett_h245_T_forwardMultiplexAckParameters;
2161 static int ett_h245_OpenLogicalChannelReject;
2162 static int ett_h245_OpenLogicalChannelRejectCause;
2163 static int ett_h245_OpenLogicalChannelConfirm;
2164 static int ett_h245_H2250LogicalChannelAckParameters;
2165 static int ett_h245_CloseLogicalChannel;
2166 static int ett_h245_T_cLC_source;
2167 static int ett_h245_Clc_reason;
2168 static int ett_h245_CloseLogicalChannelAck;
2169 static int ett_h245_RequestChannelClose;
2170 static int ett_h245_T_reason;
2171 static int ett_h245_RequestChannelCloseAck;
2172 static int ett_h245_RequestChannelCloseReject;
2173 static int ett_h245_RequestChannelCloseRejectCause;
2174 static int ett_h245_RequestChannelCloseRelease;
2175 static int ett_h245_MultiplexEntrySend;
2176 static int ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor;
2177 static int ett_h245_MultiplexEntryDescriptor;
2178 static int ett_h245_T_elementList;
2179 static int ett_h245_MultiplexElement;
2180 static int ett_h245_Me_type;
2181 static int ett_h245_T_subElementList;
2182 static int ett_h245_ME_repeatCount;
2183 static int ett_h245_MultiplexEntrySendAck;
2184 static int ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber;
2185 static int ett_h245_MultiplexEntrySendReject;
2186 static int ett_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions;
2187 static int ett_h245_MultiplexEntryRejectionDescriptions;
2188 static int ett_h245_MultiplexEntryRejectionDescriptionsCause;
2189 static int ett_h245_MultiplexEntrySendRelease;
2190 static int ett_h245_RequestMultiplexEntry;
2191 static int ett_h245_RequestMultiplexEntryAck;
2192 static int ett_h245_RequestMultiplexEntryReject;
2193 static int ett_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions;
2194 static int ett_h245_RequestMultiplexEntryRejectionDescriptions;
2195 static int ett_h245_RequestMultiplexEntryRejectionDescriptionsCause;
2196 static int ett_h245_RequestMultiplexEntryRelease;
2197 static int ett_h245_RequestMode;
2198 static int ett_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription;
2199 static int ett_h245_RequestModeAck;
2200 static int ett_h245_Req_mode_ack_response;
2201 static int ett_h245_RequestModeReject;
2202 static int ett_h245_RequestModeRejectCause;
2203 static int ett_h245_RequestModeRelease;
2204 static int ett_h245_ModeDescription;
2205 static int ett_h245_ModeElementType;
2206 static int ett_h245_ModeElement;
2207 static int ett_h245_H235Mode;
2208 static int ett_h245_T_mediaMode;
2209 static int ett_h245_MultiplexedStreamModeParameters;
2210 static int ett_h245_RedundancyEncodingDTMode;
2211 static int ett_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement;
2212 static int ett_h245_RedundancyEncodingDTModeElement;
2213 static int ett_h245_Re_type;
2214 static int ett_h245_MultiplePayloadStreamMode;
2215 static int ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode;
2216 static int ett_h245_MultiplePayloadStreamElementMode;
2217 static int ett_h245_DepFECMode;
2218 static int ett_h245_T_rfc2733Mode;
2219 static int ett_h245_FEC_mode;
2220 static int ett_h245_FECMode;
2221 static int ett_h245_H223ModeParameters;
2222 static int ett_h245_AdaptationLayerType;
2223 static int ett_h245_V76ModeParameters;
2224 static int ett_h245_H2250ModeParameters;
2225 static int ett_h245_RedundancyEncodingMode;
2226 static int ett_h245_T_secondaryEncodingMode;
2227 static int ett_h245_VideoMode;
2228 static int ett_h245_H261VideoMode;
2229 static int ett_h245_H261Resolution;
2230 static int ett_h245_H262VideoMode;
2231 static int ett_h245_T_profileAndLevel;
2232 static int ett_h245_H263VideoMode;
2233 static int ett_h245_H263Resolution;
2234 static int ett_h245_IS11172VideoMode;
2235 static int ett_h245_AudioMode;
2236 static int ett_h245_Mode_g7231;
2237 static int ett_h245_IS11172AudioMode;
2238 static int ett_h245_T_audioLayer;
2239 static int ett_h245_T_audioSampling;
2240 static int ett_h245_IS11172_multichannelType;
2241 static int ett_h245_IS13818AudioMode;
2242 static int ett_h245_IS13818AudioLayer;
2243 static int ett_h245_IS13818AudioSampling;
2244 static int ett_h245_IS13818MultichannelType;
2245 static int ett_h245_G7231AnnexCMode;
2246 static int ett_h245_VBDMode;
2247 static int ett_h245_DataMode;
2248 static int ett_h245_DataModeApplication;
2249 static int ett_h245_T38faxApp;
2250 static int ett_h245_EncryptionMode;
2251 static int ett_h245_RoundTripDelayRequest;
2252 static int ett_h245_RoundTripDelayResponse;
2253 static int ett_h245_MaintenanceLoopRequest;
2254 static int ett_h245_Mlr_type;
2255 static int ett_h245_MaintenanceLoopAck;
2256 static int ett_h245_Mla_type;
2257 static int ett_h245_MaintenanceLoopReject;
2258 static int ett_h245_Mlrej_type;
2259 static int ett_h245_MaintenanceLoopRejectCause;
2260 static int ett_h245_MaintenanceLoopOffCommand;
2261 static int ett_h245_CommunicationModeCommand;
2262 static int ett_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry;
2263 static int ett_h245_CommunicationModeRequest;
2264 static int ett_h245_CommunicationModeResponse;
2265 static int ett_h245_CommunicationModeTableEntry;
2266 static int ett_h245_T_entryDataType;
2267 static int ett_h245_ConferenceRequest;
2268 static int ett_h245_T_requestTerminalCertificate;
2269 static int ett_h245_CertSelectionCriteria;
2270 static int ett_h245_Criteria;
2271 static int ett_h245_TerminalLabel;
2272 static int ett_h245_ConferenceResponse;
2273 static int ett_h245_T_mCTerminalIDResponse;
2274 static int ett_h245_T_terminalIDResponse;
2275 static int ett_h245_T_conferenceIDResponse;
2276 static int ett_h245_T_passwordResponse;
2277 static int ett_h245_SET_SIZE_1_256_OF_TerminalLabel;
2278 static int ett_h245_T_makeMeChairResponse;
2279 static int ett_h245_T_extensionAddressResponse;
2280 static int ett_h245_T_chairTokenOwnerResponse;
2281 static int ett_h245_T_terminalCertificateResponse;
2282 static int ett_h245_T_broadcastMyLogicalChannelResponse;
2283 static int ett_h245_T_makeTerminalBroadcasterResponse;
2284 static int ett_h245_T_sendThisSourceResponse;
2285 static int ett_h245_RequestAllTerminalIDsResponse;
2286 static int ett_h245_SEQUENCE_OF_TerminalInformation;
2287 static int ett_h245_TerminalInformation;
2288 static int ett_h245_RemoteMCRequest;
2289 static int ett_h245_RemoteMCResponse;
2290 static int ett_h245_T_reject;
2291 static int ett_h245_MultilinkRequest;
2292 static int ett_h245_CallInformationReq;
2293 static int ett_h245_AddConnectionReq;
2294 static int ett_h245_RemoveConnectionReq;
2295 static int ett_h245_MaximumHeaderIntervalReq;
2296 static int ett_h245_T_requestType;
2297 static int ett_h245_MultilinkResponse;
2298 static int ett_h245_CallInformationResp;
2299 static int ett_h245_AddConnectionResp;
2300 static int ett_h245_T_responseCode;
2301 static int ett_h245_T_rejected;
2302 static int ett_h245_RemoveConnectionResp;
2303 static int ett_h245_MaximumHeaderIntervalResp;
2304 static int ett_h245_MultilinkIndication;
2305 static int ett_h245_T_crcDesired;
2306 static int ett_h245_T_excessiveError;
2307 static int ett_h245_DialingInformation;
2308 static int ett_h245_SET_SIZE_1_65535_OF_DialingInformationNumber;
2309 static int ett_h245_DialingInformationNumber;
2310 static int ett_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType;
2311 static int ett_h245_DialingInformationNetworkType;
2312 static int ett_h245_ConnectionIdentifier;
2313 static int ett_h245_LogicalChannelRateRequest;
2314 static int ett_h245_LogicalChannelRateAcknowledge;
2315 static int ett_h245_LogicalChannelRateReject;
2316 static int ett_h245_LogicalChannelRateRejectReason;
2317 static int ett_h245_LogicalChannelRateRelease;
2318 static int ett_h245_SendTerminalCapabilitySet;
2319 static int ett_h245_T_specificRequest;
2320 static int ett_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber;
2321 static int ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber;
2322 static int ett_h245_EncryptionCommand;
2323 static int ett_h245_T_encryptionAlgorithmID;
2324 static int ett_h245_FlowControlCommand;
2325 static int ett_h245_Scope;
2326 static int ett_h245_Restriction;
2327 static int ett_h245_EndSessionCommand;
2328 static int ett_h245_T_gstnOptions;
2329 static int ett_h245_T_isdnOptions;
2330 static int ett_h245_ConferenceCommand;
2331 static int ett_h245_SubstituteConferenceIDCommand;
2332 static int ett_h245_EncryptionUpdateDirection;
2333 static int ett_h245_MiscellaneousCommand;
2334 static int ett_h245_Mc_type;
2335 static int ett_h245_T_videoFastUpdateGOB;
2336 static int ett_h245_T_videoFastUpdateMB;
2337 static int ett_h245_T_progressiveRefinementStart;
2338 static int ett_h245_T_repeatCount;
2339 static int ett_h245_T_videoBadMBs;
2340 static int ett_h245_SEQUENCE_OF_PictureReference;
2341 static int ett_h245_T_lostPartialPicture;
2342 static int ett_h245_T_encryptionUpdateCommand;
2343 static int ett_h245_T_encryptionUpdateAck;
2344 static int ett_h245_KeyProtectionMethod;
2345 static int ett_h245_EncryptionUpdateRequest;
2346 static int ett_h245_PictureReference;
2347 static int ett_h245_H223MultiplexReconfiguration;
2348 static int ett_h245_T_h223ModeChange;
2349 static int ett_h245_T_h223AnnexADoubleFlag;
2350 static int ett_h245_NewATMVCCommand;
2351 static int ett_h245_Cmd_aal;
2352 static int ett_h245_Cmd_aal1;
2353 static int ett_h245_Cmd_clockRecovery;
2354 static int ett_h245_Cmd_errorCorrection;
2355 static int ett_h245_Cmd_aal5;
2356 static int ett_h245_Cmd_multiplex;
2357 static int ett_h245_Cmd_reverseParameters;
2358 static int ett_h245_CmdR_multiplex;
2359 static int ett_h245_MobileMultilinkReconfigurationCommand;
2360 static int ett_h245_T_status;
2361 static int ett_h245_FunctionNotUnderstood;
2362 static int ett_h245_FunctionNotSupported;
2363 static int ett_h245_FunctionNotSupportedCause;
2364 static int ett_h245_ConferenceIndication;
2365 static int ett_h245_TerminalYouAreSeeingInSubPictureNumber;
2366 static int ett_h245_VideoIndicateCompose;
2367 static int ett_h245_MiscellaneousIndication;
2368 static int ett_h245_Mi_type;
2369 static int ett_h245_T_videoNotDecodedMBs;
2370 static int ett_h245_JitterIndication;
2371 static int ett_h245_H223SkewIndication;
2372 static int ett_h245_H2250MaximumSkewIndication;
2373 static int ett_h245_MCLocationIndication;
2374 static int ett_h245_VendorIdentification;
2375 static int ett_h245_NewATMVCIndication;
2376 static int ett_h245_Ind_aal;
2377 static int ett_h245_Ind_aal1;
2378 static int ett_h245_Ind_clockRecovery;
2379 static int ett_h245_Ind_errorCorrection;
2380 static int ett_h245_Ind_aal5;
2381 static int ett_h245_Ind_multiplex;
2382 static int ett_h245_Ind_reverseParameters;
2383 static int ett_h245_IndR_multiplex;
2384 static int ett_h245_Params;
2385 static int ett_h245_UserInputIndication;
2386 static int ett_h245_T_userInputSupportIndication;
2387 static int ett_h245_T_signal;
2388 static int ett_h245_T_rtp;
2389 static int ett_h245_T_signalUpdate;
2390 static int ett_h245_Si_rtp;
2391 static int ett_h245_T_extendedAlphanumeric;
2392 static int ett_h245_EncryptedAlphanumeric;
2393 static int ett_h245_FlowControlIndication;
2394 static int ett_h245_MobileMultilinkReconfigurationIndication;
2396 /* Forward declarations */
2397 static int dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2398 static void reset_h245_pi(void *dummy _U_)
2400 h245_pi = NULL; /* Make sure we don't leave pinfo->pool memory lying around */
2403 /*--- Cyclic dependencies ---*/
2405 /* GenericParameter -> ParameterValue -> ParameterValue/genericParameter -> GenericParameter */
2406 static int dissect_h245_GenericParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2408 /* VideoCapability -> ExtendedVideoCapability -> ExtendedVideoCapability/videoCapability -> VideoCapability */
2409 static int dissect_h245_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2411 /* AudioCapability -> VBDCapability -> AudioCapability */
2412 static int dissect_h245_AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2414 /* DataType -> H235Media -> H235Media/mediaType -> RedundancyEncoding -> DataType */
2415 /* DataType -> H235Media -> H235Media/mediaType -> RedundancyEncoding -> RedundancyEncoding/rtpRedundancyEncoding -> RedundancyEncodingElement -> DataType */
2416 /* DataType -> H235Media -> H235Media/mediaType -> MultiplePayloadStream -> MultiplePayloadStream/elements -> MultiplePayloadStreamElement -> DataType */
2417 static int dissect_h245_DataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2419 /* MultiplexElement -> MultiplexElement/type -> MultiplexElement/type/subElementList -> MultiplexElement */
2420 static int dissect_h245_MultiplexElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2422 /* AudioMode -> VBDMode -> AudioMode */
2423 static int dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2425 /* ModeElementType -> RedundancyEncodingDTMode -> RedundancyEncodingDTModeElement -> RedundancyEncodingDTModeElement/type -> FECMode -> ModeElementType */
2426 /* ModeElementType -> MultiplePayloadStreamMode -> MultiplePayloadStreamMode/elements -> MultiplePayloadStreamElementMode -> ModeElementType */
2427 static int dissect_h245_ModeElementType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
2432 static int
2433 dissect_h245_T_object(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2434 offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &nsiOID);
2436 return offset;
2441 static int
2442 dissect_h245_T_t35CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2443 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2444 0U, 255U, &t35CountryCode, false);
2446 return offset;
2451 static int
2452 dissect_h245_T_t35Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2453 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2454 0U, 255U, &t35Extension, false);
2456 return offset;
2461 static int
2462 dissect_h245_T_manufacturerCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2463 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2464 0U, 65535U, &manufacturerCode, false);
2466 return offset;
2470 static const per_sequence_t H221NonStandardID_sequence[] = {
2471 { &hf_h245_t35CountryCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_t35CountryCode },
2472 { &hf_h245_t35Extension , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_t35Extension },
2473 { &hf_h245_manufacturerCode, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_manufacturerCode },
2474 { NULL, 0, 0, NULL }
2477 static int
2478 dissect_h245_H221NonStandardID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2479 t35CountryCode = 0;
2480 t35Extension = 0;
2481 manufacturerCode = 0;
2482 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2483 ett_h245_H221NonStandardID, H221NonStandardID_sequence);
2485 h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
2486 proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
2487 return offset;
2491 static const value_string h245_NonStandardIdentifier_vals[] = {
2492 { 0, "object" },
2493 { 1, "h221NonStandard" },
2494 { 0, NULL }
2497 static const per_choice_t NonStandardIdentifier_choice[] = {
2498 { 0, &hf_h245_object , ASN1_NO_EXTENSIONS , dissect_h245_T_object },
2499 { 1, &hf_h245_h221NonStandardID, ASN1_NO_EXTENSIONS , dissect_h245_H221NonStandardID },
2500 { 0, NULL, 0, NULL }
2503 static int
2504 dissect_h245_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2505 int32_t value;
2507 nsiOID = "";
2508 h221NonStandard = 0;
2510 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2511 ett_h245_NonStandardIdentifier, NonStandardIdentifier_choice,
2512 &value);
2514 switch (value) {
2515 case 0 : /* object */
2516 nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
2517 break;
2518 case 1 : /* h221NonStandard */
2519 nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
2520 break;
2521 default :
2522 nsp_handle = NULL;
2525 return offset;
2530 static int
2531 dissect_h245_T_nsd_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2532 tvbuff_t *next_tvb = NULL;
2534 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2535 NO_BOUND, NO_BOUND, false, &next_tvb);
2537 if (next_tvb && tvb_reported_length(next_tvb)) {
2538 call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
2541 return offset;
2545 static const per_sequence_t NonStandardParameter_sequence[] = {
2546 { &hf_h245_nonStandardIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_NonStandardIdentifier },
2547 { &hf_h245_nsd_data , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_nsd_data },
2548 { NULL, 0, 0, NULL }
2551 static int
2552 dissect_h245_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2553 nsp_handle = NULL;
2554 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2555 ett_h245_NonStandardParameter, NonStandardParameter_sequence);
2557 return offset;
2561 static const per_sequence_t NonStandardMessage_sequence[] = {
2562 { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_NonStandardParameter },
2563 { NULL, 0, 0, NULL }
2566 static int
2567 dissect_h245_NonStandardMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2568 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2569 ett_h245_NonStandardMessage, NonStandardMessage_sequence);
2571 return offset;
2576 static int
2577 dissect_h245_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2578 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2579 0U, 255U, NULL, false);
2581 return offset;
2586 static int
2587 dissect_h245_INTEGER_0_16777215(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2588 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2589 0U, 16777215U, NULL, false);
2591 return offset;
2595 static const per_sequence_t MasterSlaveDetermination_sequence[] = {
2596 { &hf_h245_terminalType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
2597 { &hf_h245_statusDeterminationNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_16777215 },
2598 { NULL, 0, 0, NULL }
2601 static int
2602 dissect_h245_MasterSlaveDetermination(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2603 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2604 ett_h245_MasterSlaveDetermination, MasterSlaveDetermination_sequence);
2607 if (h245_pi != NULL)
2608 h245_pi->msg_type = H245_MastSlvDet;
2609 return offset;
2614 static int
2615 dissect_h245_SequenceNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2616 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2617 0U, 255U, NULL, false);
2619 return offset;
2624 static int
2625 dissect_h245_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2626 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2628 return offset;
2633 static int
2634 dissect_h245_INTEGER_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2635 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2636 1U, 256U, NULL, false);
2638 return offset;
2643 static int
2644 dissect_h245_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2645 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
2647 return offset;
2651 static const per_sequence_t T_aal1_sequence[] = {
2652 { &hf_h245_nullClockRecovery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2653 { &hf_h245_srtsClockRecovery_bool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2654 { &hf_h245_adaptiveClockRecovery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2655 { &hf_h245_nullErrorCorrection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2656 { &hf_h245_longInterleaver, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2657 { &hf_h245_shortInterleaver, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2658 { &hf_h245_errorCorrectionOnly, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2659 { &hf_h245_structuredDataTransfer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2660 { &hf_h245_partiallyFilledCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2661 { NULL, 0, 0, NULL }
2664 static int
2665 dissect_h245_T_aal1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2666 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2667 ett_h245_T_aal1, T_aal1_sequence);
2669 return offset;
2674 static int
2675 dissect_h245_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2676 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2677 0U, 65535U, NULL, false);
2679 return offset;
2683 static const per_sequence_t T_aal5_sequence[] = {
2684 { &hf_h245_forwardMaximumSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
2685 { &hf_h245_backwardMaximumSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
2686 { NULL, 0, 0, NULL }
2689 static int
2690 dissect_h245_T_aal5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2691 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2692 ett_h245_T_aal5, T_aal5_sequence);
2694 return offset;
2699 static int
2700 dissect_h245_INTEGER_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2701 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2702 1U, 65535U, NULL, false);
2704 return offset;
2708 static const per_sequence_t T_rangeOfBitRates_sequence[] = {
2709 { &hf_h245_lowerBitRate , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
2710 { &hf_h245_higherBitRate , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
2711 { NULL, 0, 0, NULL }
2714 static int
2715 dissect_h245_T_rangeOfBitRates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2716 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2717 ett_h245_T_rangeOfBitRates, T_rangeOfBitRates_sequence);
2719 return offset;
2723 static const value_string h245_Avb_type_vals[] = {
2724 { 0, "singleBitRate" },
2725 { 1, "rangeOfBitRates" },
2726 { 0, NULL }
2729 static const per_choice_t Avb_type_choice[] = {
2730 { 0, &hf_h245_singleBitRate , ASN1_NO_EXTENSIONS , dissect_h245_INTEGER_1_65535 },
2731 { 1, &hf_h245_rangeOfBitRates, ASN1_NO_EXTENSIONS , dissect_h245_T_rangeOfBitRates },
2732 { 0, NULL, 0, NULL }
2735 static int
2736 dissect_h245_Avb_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2737 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2738 ett_h245_Avb_type, Avb_type_choice,
2739 NULL);
2741 return offset;
2745 static const per_sequence_t T_availableBitRates_sequence[] = {
2746 { &hf_h245_avb_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Avb_type },
2747 { NULL, 0, 0, NULL }
2750 static int
2751 dissect_h245_T_availableBitRates(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2752 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2753 ett_h245_T_availableBitRates, T_availableBitRates_sequence);
2755 return offset;
2760 static int
2761 dissect_h245_NumericString_SIZE_1_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2762 offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
2763 1, 16, false,
2764 NULL);
2766 return offset;
2771 static int
2772 dissect_h245_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2773 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2774 1, 20, false, NULL);
2776 return offset;
2780 static const value_string h245_T_address_vals[] = {
2781 { 0, "internationalNumber" },
2782 { 1, "nsapAddress" },
2783 { 0, NULL }
2786 static const per_choice_t T_address_choice[] = {
2787 { 0, &hf_h245_internationalNumber, ASN1_EXTENSION_ROOT , dissect_h245_NumericString_SIZE_1_16 },
2788 { 1, &hf_h245_nsapAddress , ASN1_EXTENSION_ROOT , dissect_h245_OCTET_STRING_SIZE_1_20 },
2789 { 0, NULL, 0, NULL }
2792 static int
2793 dissect_h245_T_address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2794 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2795 ett_h245_T_address, T_address_choice,
2796 NULL);
2798 return offset;
2802 static const per_sequence_t Q2931Address_sequence[] = {
2803 { &hf_h245_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_address },
2804 { &hf_h245_subaddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING_SIZE_1_20 },
2805 { NULL, 0, 0, NULL }
2808 static int
2809 dissect_h245_Q2931Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2810 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2811 ett_h245_Q2931Address, Q2931Address_sequence);
2813 return offset;
2817 static const per_sequence_t SET_SIZE_1_256_OF_Q2931Address_set_of[1] = {
2818 { &hf_h245_gatewayAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_Q2931Address },
2821 static int
2822 dissect_h245_SET_SIZE_1_256_OF_Q2931Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2823 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
2824 ett_h245_SET_SIZE_1_256_OF_Q2931Address, SET_SIZE_1_256_OF_Q2931Address_set_of,
2825 1, 256, false);
2827 return offset;
2831 static const per_sequence_t T_aal1ViaGateway_sequence[] = {
2832 { &hf_h245_gatewayAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_256_OF_Q2931Address },
2833 { &hf_h245_nullClockRecovery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2834 { &hf_h245_srtsClockRecoveryflag, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2835 { &hf_h245_adaptiveClockRecovery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2836 { &hf_h245_nullErrorCorrection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2837 { &hf_h245_longInterleaver, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2838 { &hf_h245_shortInterleaver, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2839 { &hf_h245_errorCorrectionOnly, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2840 { &hf_h245_structuredDataTransfer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2841 { &hf_h245_partiallyFilledCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2842 { NULL, 0, 0, NULL }
2845 static int
2846 dissect_h245_T_aal1ViaGateway(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2847 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2848 ett_h245_T_aal1ViaGateway, T_aal1ViaGateway_sequence);
2850 return offset;
2854 static const per_sequence_t VCCapability_sequence[] = {
2855 { &hf_h245_aal1 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_aal1 },
2856 { &hf_h245_aal5 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_aal5 },
2857 { &hf_h245_transportStream_bool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2858 { &hf_h245_programStream , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2859 { &hf_h245_availableBitRates, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_availableBitRates },
2860 { &hf_h245_aal1ViaGateway , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T_aal1ViaGateway },
2861 { NULL, 0, 0, NULL }
2864 static int
2865 dissect_h245_VCCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2866 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2867 ett_h245_VCCapability, VCCapability_sequence);
2869 return offset;
2873 static const per_sequence_t SET_OF_VCCapability_set_of[1] = {
2874 { &hf_h245_vcCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_VCCapability },
2877 static int
2878 dissect_h245_SET_OF_VCCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2879 offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
2880 ett_h245_SET_OF_VCCapability, SET_OF_VCCapability_set_of);
2882 return offset;
2886 static const per_sequence_t H222Capability_sequence[] = {
2887 { &hf_h245_numberOfVCs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
2888 { &hf_h245_vcCapability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_OF_VCCapability },
2889 { NULL, 0, 0, NULL }
2892 static int
2893 dissect_h245_H222Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2894 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2895 ett_h245_H222Capability, H222Capability_sequence);
2897 return offset;
2902 static int
2903 dissect_h245_INTEGER_0_1023(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2904 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2905 0U, 1023U, NULL, false);
2907 return offset;
2912 static int
2913 dissect_h245_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2914 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
2916 return offset;
2921 static int
2922 dissect_h245_INTEGER_1_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2923 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2924 1U, 15U, NULL, false);
2926 return offset;
2931 static int
2932 dissect_h245_INTEGER_2_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2933 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2934 2U, 255U, NULL, false);
2936 return offset;
2940 static const per_sequence_t T_enhanced_sequence[] = {
2941 { &hf_h245_maximumNestingDepth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_15 },
2942 { &hf_h245_maximumElementListSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_2_255 },
2943 { &hf_h245_maximumSubElementListSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_2_255 },
2944 { NULL, 0, 0, NULL }
2947 static int
2948 dissect_h245_T_enhanced(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2949 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2950 ett_h245_T_enhanced, T_enhanced_sequence);
2952 return offset;
2956 static const value_string h245_T_h223MultiplexTableCapability_vals[] = {
2957 { 0, "basic" },
2958 { 1, "enhanced" },
2959 { 0, NULL }
2962 static const per_choice_t T_h223MultiplexTableCapability_choice[] = {
2963 { 0, &hf_h245_basic , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
2964 { 1, &hf_h245_enhanced , ASN1_NO_EXTENSIONS , dissect_h245_T_enhanced },
2965 { 0, NULL, 0, NULL }
2968 static int
2969 dissect_h245_T_h223MultiplexTableCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2970 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2971 ett_h245_T_h223MultiplexTableCapability, T_h223MultiplexTableCapability_choice,
2972 NULL);
2974 return offset;
2978 static const per_sequence_t T_mobileOperationTransmitCapability_sequence[] = {
2979 { &hf_h245_modeChangeCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2980 { &hf_h245_h223AnnexA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2981 { &hf_h245_h223AnnexADoubleFlagFlag, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2982 { &hf_h245_h223AnnexB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2983 { &hf_h245_h223AnnexBwithHeader, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2984 { NULL, 0, 0, NULL }
2987 static int
2988 dissect_h245_T_mobileOperationTransmitCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2989 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2990 ett_h245_T_mobileOperationTransmitCapability, T_mobileOperationTransmitCapability_sequence);
2992 return offset;
2996 static const per_sequence_t H223AnnexCCapability_sequence[] = {
2997 { &hf_h245_videoWithAL1M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2998 { &hf_h245_videoWithAL2M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
2999 { &hf_h245_videoWithAL3M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3000 { &hf_h245_audioWithAL1M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3001 { &hf_h245_audioWithAL2M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3002 { &hf_h245_audioWithAL3M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3003 { &hf_h245_dataWithAL1M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3004 { &hf_h245_dataWithAL2M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3005 { &hf_h245_dataWithAL3M , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3006 { &hf_h245_alpduInterleaving, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3007 { &hf_h245_maximumAL1MPDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
3008 { &hf_h245_maximumAL2MSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
3009 { &hf_h245_maximumAL3MSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
3010 { &hf_h245_rsCodeCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_BOOLEAN },
3011 { NULL, 0, 0, NULL }
3014 static int
3015 dissect_h245_H223AnnexCCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3016 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3017 ett_h245_H223AnnexCCapability, H223AnnexCCapability_sequence);
3019 return offset;
3024 static int
3025 dissect_h245_INTEGER_1_19200(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3026 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3027 1U, 19200U, NULL, false);
3029 return offset;
3034 static int
3035 dissect_h245_INTEGER_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3036 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3037 1U, 255U, NULL, false);
3039 return offset;
3044 static int
3045 dissect_h245_INTEGER_1_65025(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3046 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3047 1U, 65025U, NULL, false);
3049 return offset;
3053 static const per_sequence_t T_mobileMultilinkFrameCapability_sequence[] = {
3054 { &hf_h245_maximumSampleSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
3055 { &hf_h245_maximumPayloadLength, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65025 },
3056 { NULL, 0, 0, NULL }
3059 static int
3060 dissect_h245_T_mobileMultilinkFrameCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3061 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3062 ett_h245_T_mobileMultilinkFrameCapability, T_mobileMultilinkFrameCapability_sequence);
3064 return offset;
3068 static const per_sequence_t H223Capability_sequence[] = {
3069 { &hf_h245_transportWithI_frames, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3070 { &hf_h245_videoWithAL1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3071 { &hf_h245_videoWithAL2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3072 { &hf_h245_videoWithAL3 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3073 { &hf_h245_audioWithAL1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3074 { &hf_h245_audioWithAL2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3075 { &hf_h245_audioWithAL3 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3076 { &hf_h245_dataWithAL1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3077 { &hf_h245_dataWithAL2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3078 { &hf_h245_dataWithAL3 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3079 { &hf_h245_maximumAl2SDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
3080 { &hf_h245_maximumAl3SDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
3081 { &hf_h245_maximumDelayJitter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_1023 },
3082 { &hf_h245_h223MultiplexTableCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_h223MultiplexTableCapability },
3083 { &hf_h245_maxMUXPDUSizeCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3084 { &hf_h245_nsrpSupport , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3085 { &hf_h245_mobileOperationTransmitCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T_mobileOperationTransmitCapability },
3086 { &hf_h245_h223AnnexCCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_H223AnnexCCapability },
3087 { &hf_h245_bitRate_1_19200, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_19200 },
3088 { &hf_h245_mobileMultilinkFrameCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T_mobileMultilinkFrameCapability },
3089 { NULL, 0, 0, NULL }
3093 dissect_h245_H223Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3094 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3095 ett_h245_H223Capability, H223Capability_sequence);
3097 return offset;
3102 static int
3103 dissect_h245_INTEGER_2_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3104 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3105 2U, 8191U, NULL, false);
3107 return offset;
3112 static int
3113 dissect_h245_INTEGER_1_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3114 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3115 1U, 4095U, NULL, false);
3117 return offset;
3122 static int
3123 dissect_h245_INTEGER_1_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3124 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3125 1U, 127U, NULL, false);
3127 return offset;
3131 static const per_sequence_t V75Capability_sequence[] = {
3132 { &hf_h245_audioHeader , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3133 { NULL, 0, 0, NULL }
3136 static int
3137 dissect_h245_V75Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3138 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3139 ett_h245_V75Capability, V75Capability_sequence);
3141 return offset;
3145 static const per_sequence_t V76Capability_sequence[] = {
3146 { &hf_h245_suspendResumeCapabilitywAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3147 { &hf_h245_suspendResumeCapabilitywoAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3148 { &hf_h245_rejCapability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3149 { &hf_h245_sREJCapability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3150 { &hf_h245_mREJCapability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3151 { &hf_h245_crc8bitCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3152 { &hf_h245_crc16bitCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3153 { &hf_h245_crc32bitCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3154 { &hf_h245_uihCapability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3155 { &hf_h245_numOfDLCS , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_2_8191 },
3156 { &hf_h245_twoOctetAddressFieldCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3157 { &hf_h245_loopBackTestCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3158 { &hf_h245_n401Capability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_4095 },
3159 { &hf_h245_maxWindowSizeCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_127 },
3160 { &hf_h245_v75Capability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_V75Capability },
3161 { NULL, 0, 0, NULL }
3164 static int
3165 dissect_h245_V76Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3166 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3167 ett_h245_V76Capability, V76Capability_sequence);
3169 return offset;
3174 static int
3175 dissect_h245_INTEGER_1_65536(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3176 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3177 1U, 65536U, NULL, false);
3179 return offset;
3183 static const per_sequence_t V42bis_sequence[] = {
3184 { &hf_h245_numberOfCodewords, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65536 },
3185 { &hf_h245_maximumStringLength, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
3186 { NULL, 0, 0, NULL }
3189 static int
3190 dissect_h245_V42bis(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3191 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3192 ett_h245_V42bis, V42bis_sequence);
3194 return offset;
3198 static const value_string h245_CompressionType_vals[] = {
3199 { 0, "v42bis" },
3200 { 0, NULL }
3203 static const per_choice_t CompressionType_choice[] = {
3204 { 0, &hf_h245_v42bis , ASN1_EXTENSION_ROOT , dissect_h245_V42bis },
3205 { 0, NULL, 0, NULL }
3208 static int
3209 dissect_h245_CompressionType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3210 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3211 ett_h245_CompressionType, CompressionType_choice,
3212 NULL);
3214 return offset;
3218 static const value_string h245_T_v76wCompression_vals[] = {
3219 { 0, "transmitCompression" },
3220 { 1, "receiveCompression" },
3221 { 2, "transmitAndReceiveCompression" },
3222 { 0, NULL }
3225 static const per_choice_t T_v76wCompression_choice[] = {
3226 { 0, &hf_h245_transmitCompression, ASN1_EXTENSION_ROOT , dissect_h245_CompressionType },
3227 { 1, &hf_h245_receiveCompression, ASN1_EXTENSION_ROOT , dissect_h245_CompressionType },
3228 { 2, &hf_h245_transmitAndReceiveCompression, ASN1_EXTENSION_ROOT , dissect_h245_CompressionType },
3229 { 0, NULL, 0, NULL }
3232 static int
3233 dissect_h245_T_v76wCompression(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3234 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3235 ett_h245_T_v76wCompression, T_v76wCompression_choice,
3236 NULL);
3238 return offset;
3242 const value_string DataProtocolCapability_vals[] = {
3243 { 0, "nonStandard" },
3244 { 1, "v14buffered" },
3245 { 2, "v42lapm" },
3246 { 3, "hdlcFrameTunnelling" },
3247 { 4, "h310SeparateVCStack" },
3248 { 5, "h310SingleVCStack" },
3249 { 6, "transparent" },
3250 { 7, "segmentationAndReassembly" },
3251 { 8, "hdlcFrameTunnelingwSAR" },
3252 { 9, "v120" },
3253 { 10, "separateLANStack" },
3254 { 11, "v76wCompression" },
3255 { 12, "tcp" },
3256 { 13, "udp" },
3257 { 0, NULL }
3260 static const per_choice_t DataProtocolCapability_choice[] = {
3261 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
3262 { 1, &hf_h245_v14buffered , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3263 { 2, &hf_h245_v42lapm , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3264 { 3, &hf_h245_hdlcFrameTunnelling, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3265 { 4, &hf_h245_h310SeparateVCStack, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3266 { 5, &hf_h245_h310SingleVCStack, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3267 { 6, &hf_h245_transparent , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3268 { 7, &hf_h245_segmentationAndReassembly, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
3269 { 8, &hf_h245_hdlcFrameTunnelingwSAR, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
3270 { 9, &hf_h245_v120 , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
3271 { 10, &hf_h245_separateLANStack, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
3272 { 11, &hf_h245_v76wCompression, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_v76wCompression },
3273 { 12, &hf_h245_tcp , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
3274 { 13, &hf_h245_udp , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
3275 { 0, NULL, 0, NULL }
3279 dissect_h245_DataProtocolCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3280 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3281 ett_h245_DataProtocolCapability, DataProtocolCapability_choice,
3282 NULL);
3284 return offset;
3288 static const per_sequence_t T_t84Restricted_sequence[] = {
3289 { &hf_h245_qcif_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3290 { &hf_h245_cif_bool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3291 { &hf_h245_ccir601Seq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3292 { &hf_h245_ccir601Prog , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3293 { &hf_h245_hdtvSeq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3294 { &hf_h245_hdtvProg , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3295 { &hf_h245_g3FacsMH200x100, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3296 { &hf_h245_g3FacsMH200x200, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3297 { &hf_h245_g4FacsMMR200x100, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3298 { &hf_h245_g4FacsMMR200x200, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3299 { &hf_h245_jbig200x200Seq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3300 { &hf_h245_jbig200x200Prog, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3301 { &hf_h245_jbig300x300Seq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3302 { &hf_h245_jbig300x300Prog, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3303 { &hf_h245_digPhotoLow , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3304 { &hf_h245_digPhotoMedSeq , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3305 { &hf_h245_digPhotoMedProg, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3306 { &hf_h245_digPhotoHighSeq, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3307 { &hf_h245_digPhotoHighProg, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3308 { NULL, 0, 0, NULL }
3311 static int
3312 dissect_h245_T_t84Restricted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3313 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3314 ett_h245_T_t84Restricted, T_t84Restricted_sequence);
3316 return offset;
3320 static const value_string h245_T84Profile_vals[] = {
3321 { 0, "t84Unrestricted" },
3322 { 1, "t84Restricted" },
3323 { 0, NULL }
3326 static const per_choice_t T84Profile_choice[] = {
3327 { 0, &hf_h245_t84Unrestricted, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
3328 { 1, &hf_h245_t84Restricted , ASN1_NO_EXTENSIONS , dissect_h245_T_t84Restricted },
3329 { 0, NULL, 0, NULL }
3332 static int
3333 dissect_h245_T84Profile(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3334 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3335 ett_h245_T84Profile, T84Profile_choice,
3336 NULL);
3338 return offset;
3342 static const per_sequence_t T_t84_sequence[] = {
3343 { &hf_h245_t84Protocol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
3344 { &hf_h245_t84Profile , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T84Profile },
3345 { NULL, 0, 0, NULL }
3348 static int
3349 dissect_h245_T_t84(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3350 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3351 ett_h245_T_t84, T_t84_sequence);
3353 return offset;
3358 static int
3359 dissect_h245_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3360 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3361 NO_BOUND, NO_BOUND, false, NULL);
3363 return offset;
3367 static const per_sequence_t Nlpid_sequence[] = {
3368 { &hf_h245_nlpidProtocol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
3369 { &hf_h245_nlpidData , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING },
3370 { NULL, 0, 0, NULL }
3373 static int
3374 dissect_h245_Nlpid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3375 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3376 ett_h245_Nlpid, Nlpid_sequence);
3378 return offset;
3382 static const value_string h245_T38FaxRateManagement_vals[] = {
3383 { 0, "localTCF" },
3384 { 1, "transferredTCF" },
3385 { 0, NULL }
3388 static const per_choice_t T38FaxRateManagement_choice[] = {
3389 { 0, &hf_h245_localTCF , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3390 { 1, &hf_h245_transferredTCF , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3391 { 0, NULL, 0, NULL }
3394 static int
3395 dissect_h245_T38FaxRateManagement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3396 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3397 ett_h245_T38FaxRateManagement, T38FaxRateManagement_choice,
3398 NULL);
3400 return offset;
3405 static int
3406 dissect_h245_INTEGER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3407 offset = dissect_per_integer(tvb, offset, actx, tree, hf_index, NULL);
3409 return offset;
3413 static const value_string h245_T_t38FaxUdpEC_vals[] = {
3414 { 0, "t38UDPFEC" },
3415 { 1, "t38UDPRedundancy" },
3416 { 0, NULL }
3419 static const per_choice_t T_t38FaxUdpEC_choice[] = {
3420 { 0, &hf_h245_t38UDPFEC , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3421 { 1, &hf_h245_t38UDPRedundancy, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3422 { 0, NULL, 0, NULL }
3425 static int
3426 dissect_h245_T_t38FaxUdpEC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3427 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3428 ett_h245_T_t38FaxUdpEC, T_t38FaxUdpEC_choice,
3429 NULL);
3431 return offset;
3435 static const per_sequence_t T38FaxUdpOptions_sequence[] = {
3436 { &hf_h245_t38FaxMaxBuffer, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h245_INTEGER },
3437 { &hf_h245_t38FaxMaxDatagram, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h245_INTEGER },
3438 { &hf_h245_t38FaxUdpEC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_t38FaxUdpEC },
3439 { NULL, 0, 0, NULL }
3442 static int
3443 dissect_h245_T38FaxUdpOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3444 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3445 ett_h245_T38FaxUdpOptions, T38FaxUdpOptions_sequence);
3447 return offset;
3451 static const per_sequence_t T38FaxTcpOptions_sequence[] = {
3452 { &hf_h245_t38TCPBidirectionalMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3453 { NULL, 0, 0, NULL }
3456 static int
3457 dissect_h245_T38FaxTcpOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3458 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3459 ett_h245_T38FaxTcpOptions, T38FaxTcpOptions_sequence);
3461 return offset;
3465 static const per_sequence_t T38FaxProfile_sequence[] = {
3466 { &hf_h245_fillBitRemoval , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3467 { &hf_h245_transcodingJBIG, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3468 { &hf_h245_transcodingMMR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
3469 { &hf_h245_version , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
3470 { &hf_h245_t38FaxRateManagement, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_T38FaxRateManagement },
3471 { &hf_h245_t38FaxUdpOptions, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T38FaxUdpOptions },
3472 { &hf_h245_t38FaxTcpOptions, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T38FaxTcpOptions },
3473 { NULL, 0, 0, NULL }
3477 dissect_h245_T38FaxProfile(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3478 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3479 ett_h245_T38FaxProfile, T38FaxProfile_sequence);
3481 return offset;
3485 static const per_sequence_t T_t38fax_sequence[] = {
3486 { &hf_h245_t38FaxProtocol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
3487 { &hf_h245_t38FaxProfile , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T38FaxProfile },
3488 { NULL, 0, 0, NULL }
3491 static int
3492 dissect_h245_T_t38fax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3493 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3494 ett_h245_T_t38fax, T_t38fax_sequence);
3496 return offset;
3501 static int
3502 dissect_h245_T_standardOid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3503 const char *standard_oid_str = NULL;
3504 gef_ctx_t *gefx;
3506 offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &standard_oid_str);
3508 gefx = gef_ctx_get(actx->private_data);
3509 if (gefx) gefx->id = standard_oid_str;
3511 if(strcmp(standard_oid_str,"0.0.8.235.0.3.76") == 0) { /* MIKEY */
3512 if (upcoming_channel)
3513 upcoming_channel->srtp_flag = true;
3516 if(!h245_lc_dissector && strcmp(standard_oid_str,"0.0.8.245.1.1.1") == 0)
3517 h245_lc_dissector = amr_handle;
3519 return offset;
3524 static int
3525 dissect_h245_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3526 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3527 16, 16, false, NULL);
3529 return offset;
3534 static int
3535 dissect_h245_IA5String_SIZE_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3536 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3537 1, 64, false,
3538 NULL);
3540 return offset;
3544 static const value_string h245_CapabilityIdentifier_vals[] = {
3545 { 0, "standard" },
3546 { 1, "h221NonStandard" },
3547 { 2, "uuid" },
3548 { 3, "domainBased" },
3549 { 0, NULL }
3552 static const per_choice_t CapabilityIdentifier_choice[] = {
3553 { 0, &hf_h245_standardOid , ASN1_EXTENSION_ROOT , dissect_h245_T_standardOid },
3554 { 1, &hf_h245_h221NonStandard, ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
3555 { 2, &hf_h245_uuid , ASN1_EXTENSION_ROOT , dissect_h245_OCTET_STRING_SIZE_16 },
3556 { 3, &hf_h245_domainBased , ASN1_EXTENSION_ROOT , dissect_h245_IA5String_SIZE_1_64 },
3557 { 0, NULL, 0, NULL }
3560 static int
3561 dissect_h245_CapabilityIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3562 gef_ctx_t *gefx;
3563 proto_item* ti;
3565 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3566 ett_h245_CapabilityIdentifier, CapabilityIdentifier_choice,
3567 NULL);
3569 gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data));
3570 gefx = gef_ctx_get(actx->private_data);
3571 if (gefx) {
3572 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3573 proto_item_set_hidden(ti);
3574 dissector_try_string_with_data(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, true, actx);
3576 actx->private_data = gefx; /* subdissector could overwrite it */
3577 return offset;
3582 static int
3583 dissect_h245_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3584 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3585 0U, 4294967295U, NULL, false);
3587 return offset;
3592 static int
3593 dissect_h245_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3594 uint32_t value_int = (uint32_t)-1;
3595 gef_ctx_t *gefx;
3597 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3598 0U, 127U, &value_int, false);
3600 gefx = gef_ctx_get(actx->private_data);
3601 if (gefx) gefx->id = wmem_strdup_printf(actx->pinfo->pool, "%d", value_int);
3603 return offset;
3607 static const value_string h245_ParameterIdentifier_vals[] = {
3608 { 0, "standard" },
3609 { 1, "h221NonStandard" },
3610 { 2, "uuid" },
3611 { 3, "domainBased" },
3612 { 0, NULL }
3615 static const per_choice_t ParameterIdentifier_choice[] = {
3616 { 0, &hf_h245_standard , ASN1_EXTENSION_ROOT , dissect_h245_T_standard },
3617 { 1, &hf_h245_h221NonStandard, ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
3618 { 2, &hf_h245_uuid , ASN1_EXTENSION_ROOT , dissect_h245_OCTET_STRING_SIZE_16 },
3619 { 3, &hf_h245_domainBased , ASN1_EXTENSION_ROOT , dissect_h245_IA5String_SIZE_1_64 },
3620 { 0, NULL, 0, NULL }
3623 static int
3624 dissect_h245_ParameterIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3625 gef_ctx_t *gefx;
3626 proto_item* ti;
3627 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3628 ett_h245_ParameterIdentifier, ParameterIdentifier_choice,
3629 NULL);
3631 gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data));
3632 gefx = gef_ctx_get(actx->private_data);
3633 if (gefx) {
3634 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3635 proto_item_set_hidden(ti);
3636 dissector_try_string_with_data(gef_name_dissector_table, gefx->key, tvb_new_subset_length_caplen(tvb, offset>>3, 0, 0), actx->pinfo, tree, false, actx);
3638 actx->private_data = gefx; /* subdissector could overwrite it */
3639 return offset;
3644 static int
3645 dissect_h245_T_booleanArray(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3646 uint32_t value;
3647 uint8_t *buf;
3648 tvbuff_t *value_tvb;
3649 gef_ctx_t *gefx;
3650 proto_item* ti;
3652 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3653 0U, 255U, &value, false);
3655 gefx = gef_ctx_get(actx->private_data);
3656 if (gefx) {
3657 buf = wmem_new(actx->pinfo->pool, uint8_t);
3658 buf[0] = value;
3659 value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint8_t), sizeof(uint8_t));
3660 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3661 proto_item_set_hidden(ti);
3662 add_new_data_source(actx->pinfo, value_tvb, "booleanArray");
3663 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, false, actx);
3666 return offset;
3671 static int
3672 dissect_h245_T_unsignedMin(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3673 uint32_t value;
3674 uint8_t *buf;
3675 tvbuff_t *value_tvb;
3676 gef_ctx_t *gefx;
3677 proto_item* ti;
3679 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3680 0U, 65535U, &value, false);
3682 gefx = gef_ctx_get(actx->private_data);
3683 if (gefx) {
3684 buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint16_t);
3685 phton16(buf, value);
3686 value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint16_t), sizeof(uint16_t));
3687 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3688 proto_item_set_hidden(ti);
3689 add_new_data_source(actx->pinfo, value_tvb, "unsignedMin");
3690 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3693 return offset;
3698 static int
3699 dissect_h245_T_unsignedMax(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3700 uint32_t value;
3701 uint8_t *buf;
3702 tvbuff_t *value_tvb;
3703 gef_ctx_t *gefx;
3704 proto_item* ti;
3706 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3707 0U, 65535U, &value, false);
3709 gefx = gef_ctx_get(actx->private_data);
3710 if (gefx) {
3711 buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint16_t);
3712 phton16(buf, value);
3713 value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint16_t), sizeof(uint16_t));
3714 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3715 proto_item_set_hidden(ti);
3716 add_new_data_source(actx->pinfo, value_tvb, "unsignedMax");
3717 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3720 return offset;
3725 static int
3726 dissect_h245_T_unsigned32Min(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3727 uint32_t value;
3728 uint8_t *buf;
3729 tvbuff_t *value_tvb;
3730 gef_ctx_t *gefx;
3731 proto_item* ti;
3733 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3734 0U, 4294967295U, &value, false);
3736 gefx = gef_ctx_get(actx->private_data);
3737 if (gefx) {
3738 buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint32_t);
3739 phton32(buf, value);
3740 value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint32_t), sizeof(uint32_t));
3741 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3742 proto_item_set_hidden(ti);
3743 add_new_data_source(actx->pinfo, value_tvb, "unsigned32Min");
3744 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3747 return offset;
3752 static int
3753 dissect_h245_T_unsigned32Max(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3754 uint32_t value;
3755 uint8_t *buf;
3756 tvbuff_t *value_tvb;
3757 gef_ctx_t *gefx;
3758 proto_item* ti;
3760 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3761 0U, 4294967295U, &value, false);
3763 gefx = gef_ctx_get(actx->private_data);
3764 if (gefx) {
3765 buf = (uint8_t *)wmem_new(actx->pinfo->pool, uint32_t);
3766 phton32(buf, value);
3767 value_tvb = tvb_new_child_real_data(tvb, buf, sizeof(uint32_t), sizeof(uint32_t));
3768 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3769 proto_item_set_hidden(ti);
3770 add_new_data_source(actx->pinfo, value_tvb, "unsigned32Max");
3771 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3774 return offset;
3779 static int
3780 dissect_h245_T_octetString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3781 tvbuff_t *value_tvb;
3782 gef_ctx_t *gefx;
3783 proto_item* ti;
3785 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3786 NO_BOUND, NO_BOUND, false, &value_tvb);
3788 gefx = gef_ctx_get(actx->private_data);
3789 if (gefx) {
3790 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3791 proto_item_set_hidden(ti);
3792 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3795 return offset;
3799 static const per_sequence_t SEQUENCE_OF_GenericParameter_sequence_of[1] = {
3800 { &hf_h245_genericParameters_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_GenericParameter },
3803 static int
3804 dissect_h245_SEQUENCE_OF_GenericParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3805 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3806 ett_h245_SEQUENCE_OF_GenericParameter, SEQUENCE_OF_GenericParameter_sequence_of);
3808 return offset;
3812 static const value_string h245_ParameterValue_vals[] = {
3813 { 0, "logical" },
3814 { 1, "booleanArray" },
3815 { 2, "unsignedMin" },
3816 { 3, "unsignedMax" },
3817 { 4, "unsigned32Min" },
3818 { 5, "unsigned32Max" },
3819 { 6, "octetString" },
3820 { 7, "genericParameter" },
3821 { 0, NULL }
3824 static const per_choice_t ParameterValue_choice[] = {
3825 { 0, &hf_h245_logical , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
3826 { 1, &hf_h245_booleanArray , ASN1_EXTENSION_ROOT , dissect_h245_T_booleanArray },
3827 { 2, &hf_h245_unsignedMin , ASN1_EXTENSION_ROOT , dissect_h245_T_unsignedMin },
3828 { 3, &hf_h245_unsignedMax , ASN1_EXTENSION_ROOT , dissect_h245_T_unsignedMax },
3829 { 4, &hf_h245_unsigned32Min , ASN1_EXTENSION_ROOT , dissect_h245_T_unsigned32Min },
3830 { 5, &hf_h245_unsigned32Max , ASN1_EXTENSION_ROOT , dissect_h245_T_unsigned32Max },
3831 { 6, &hf_h245_octetString , ASN1_EXTENSION_ROOT , dissect_h245_T_octetString },
3832 { 7, &hf_h245_genericParameters, ASN1_EXTENSION_ROOT , dissect_h245_SEQUENCE_OF_GenericParameter },
3833 { 0, NULL, 0, NULL }
3836 static int
3837 dissect_h245_ParameterValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3838 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3839 ett_h245_ParameterValue, ParameterValue_choice,
3840 NULL);
3842 return offset;
3846 static const per_sequence_t SEQUENCE_OF_ParameterIdentifier_sequence_of[1] = {
3847 { &hf_h245_supersedes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_ParameterIdentifier },
3850 static int
3851 dissect_h245_SEQUENCE_OF_ParameterIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3852 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3853 ett_h245_SEQUENCE_OF_ParameterIdentifier, SEQUENCE_OF_ParameterIdentifier_sequence_of);
3855 return offset;
3859 static const per_sequence_t GenericParameter_sequence[] = {
3860 { &hf_h245_parameterIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ParameterIdentifier },
3861 { &hf_h245_parameterValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ParameterValue },
3862 { &hf_h245_supersedes , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_ParameterIdentifier },
3863 { NULL, 0, 0, NULL }
3866 static int
3867 dissect_h245_GenericParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3868 // GenericParameter -> ParameterValue -> ParameterValue/genericParameter -> GenericParameter
3869 actx->pinfo->dissection_depth += 3;
3870 increment_dissection_depth(actx->pinfo);
3871 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3872 ett_h245_GenericParameter, GenericParameter_sequence);
3874 actx->pinfo->dissection_depth -= 3;
3875 decrement_dissection_depth(actx->pinfo);
3876 return offset;
3881 static int
3882 dissect_h245_T_collapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3883 gef_ctx_t *parent_gefx;
3885 parent_gefx = gef_ctx_get(actx->private_data);
3886 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "collapsing");
3887 offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index);
3889 actx->private_data = parent_gefx;
3890 return offset;
3894 static const per_sequence_t T_collapsing_sequence_of[1] = {
3895 { &hf_h245_collapsing_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_collapsing_item },
3898 static int
3899 dissect_h245_T_collapsing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3900 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3901 ett_h245_T_collapsing, T_collapsing_sequence_of);
3903 return offset;
3908 static int
3909 dissect_h245_T_nonCollapsing_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3910 gef_ctx_t *parent_gefx;
3912 parent_gefx = gef_ctx_get(actx->private_data);
3913 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "nonCollapsing");
3914 offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index);
3916 actx->private_data = parent_gefx;
3917 return offset;
3921 static const per_sequence_t T_nonCollapsing_sequence_of[1] = {
3922 { &hf_h245_nonCollapsing_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_nonCollapsing_item },
3925 static int
3926 dissect_h245_T_nonCollapsing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3927 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3928 ett_h245_T_nonCollapsing, T_nonCollapsing_sequence_of);
3930 return offset;
3935 static int
3936 dissect_h245_T_nonCollapsingRaw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3937 tvbuff_t *value_tvb;
3938 gef_ctx_t *parent_gefx;
3939 gef_ctx_t *gefx;
3940 proto_item* ti;
3942 parent_gefx = gef_ctx_get(actx->private_data);
3943 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, "nonCollapsingRaw");
3944 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3945 NO_BOUND, NO_BOUND, false, &value_tvb);
3947 gefx = gef_ctx_get(actx->private_data);
3948 if (gefx) {
3949 ti = proto_tree_add_string(tree, hf_h245_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3950 proto_item_set_hidden(ti);
3951 dissector_try_string_with_data(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, true, actx);
3953 actx->private_data = parent_gefx;
3955 return offset;
3959 static const per_sequence_t GenericCapability_sequence[] = {
3960 { &hf_h245_capabilityIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityIdentifier },
3961 { &hf_h245_maxBitRate2_0_4294967295, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
3962 { &hf_h245_collapsing , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_collapsing },
3963 { &hf_h245_nonCollapsing , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_nonCollapsing },
3964 { &hf_h245_nonCollapsingRaw, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_nonCollapsingRaw },
3965 { &hf_h245_transport , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_DataProtocolCapability },
3966 { NULL, 0, 0, NULL }
3969 static int
3970 dissect_h245_GenericCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3971 void *priv_data = actx->private_data;
3972 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericCapability");
3973 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3974 ett_h245_GenericCapability, GenericCapability_sequence);
3976 actx->private_data = priv_data;
3977 return offset;
3981 static const value_string h245_Application_vals[] = {
3982 { 0, "nonStandard" },
3983 { 1, "t120" },
3984 { 2, "dsm-cc" },
3985 { 3, "userData" },
3986 { 4, "t84" },
3987 { 5, "t434" },
3988 { 6, "h224" },
3989 { 7, "nlpid" },
3990 { 8, "dsvdControl" },
3991 { 9, "h222DataPartitioning" },
3992 { 10, "t30fax" },
3993 { 11, "t140" },
3994 { 12, "t38fax" },
3995 { 13, "genericDataCapability" },
3996 { 0, NULL }
3999 static const per_choice_t Application_choice[] = {
4000 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
4001 { 1, &hf_h245_t120 , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
4002 { 2, &hf_h245_dsm_cc , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
4003 { 3, &hf_h245_userData , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
4004 { 4, &hf_h245_t84 , ASN1_EXTENSION_ROOT , dissect_h245_T_t84 },
4005 { 5, &hf_h245_t434 , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
4006 { 6, &hf_h245_h224 , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
4007 { 7, &hf_h245_nlpid , ASN1_EXTENSION_ROOT , dissect_h245_Nlpid },
4008 { 8, &hf_h245_dsvdControl , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4009 { 9, &hf_h245_h222DataPartitioning, ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
4010 { 10, &hf_h245_t30fax , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DataProtocolCapability },
4011 { 11, &hf_h245_t140 , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DataProtocolCapability },
4012 { 12, &hf_h245_t38fax , ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_t38fax },
4013 { 13, &hf_h245_genericDataCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
4014 { 0, NULL, 0, NULL }
4017 static int
4018 dissect_h245_Application(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4019 int32_t value;
4021 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4022 ett_h245_Application, Application_choice,
4023 &value);
4025 codec_type = val_to_str_const(value, h245_Application_vals, "<unknown>");
4027 return offset;
4031 static const per_sequence_t DataApplicationCapability_sequence[] = {
4032 { &hf_h245_application , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Application },
4033 { &hf_h245_maxBitRate2_0_4294967295, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4294967295 },
4034 { NULL, 0, 0, NULL }
4037 static int
4038 dissect_h245_DataApplicationCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4039 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4040 ett_h245_DataApplicationCapability, DataApplicationCapability_sequence);
4042 return offset;
4046 static const per_sequence_t SEQUENCE_OF_DataApplicationCapability_sequence_of[1] = {
4047 { &hf_h245_centralizedData_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DataApplicationCapability },
4050 static int
4051 dissect_h245_SEQUENCE_OF_DataApplicationCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4052 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4053 ett_h245_SEQUENCE_OF_DataApplicationCapability, SEQUENCE_OF_DataApplicationCapability_sequence_of);
4055 return offset;
4059 static const per_sequence_t MediaDistributionCapability_sequence[] = {
4060 { &hf_h245_centralizedControl, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4061 { &hf_h245_distributedControl, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4062 { &hf_h245_centralizedAudio, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4063 { &hf_h245_distributedAudio, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4064 { &hf_h245_centralizedVideo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4065 { &hf_h245_distributedVideo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4066 { &hf_h245_centralizedData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_DataApplicationCapability },
4067 { &hf_h245_distributedData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_DataApplicationCapability },
4068 { NULL, 0, 0, NULL }
4071 static int
4072 dissect_h245_MediaDistributionCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4073 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4074 ett_h245_MediaDistributionCapability, MediaDistributionCapability_sequence);
4076 return offset;
4080 static const per_sequence_t SEQUENCE_OF_MediaDistributionCapability_sequence_of[1] = {
4081 { &hf_h245_mediaDistributionCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MediaDistributionCapability },
4084 static int
4085 dissect_h245_SEQUENCE_OF_MediaDistributionCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4086 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4087 ett_h245_SEQUENCE_OF_MediaDistributionCapability, SEQUENCE_OF_MediaDistributionCapability_sequence_of);
4089 return offset;
4093 static const per_sequence_t MultipointCapability_sequence[] = {
4094 { &hf_h245_multicastCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4095 { &hf_h245_multiUniCastConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4096 { &hf_h245_mediaDistributionCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_OF_MediaDistributionCapability },
4097 { NULL, 0, 0, NULL }
4100 static int
4101 dissect_h245_MultipointCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4102 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4103 ett_h245_MultipointCapability, MultipointCapability_sequence);
4105 return offset;
4109 static const per_sequence_t T_mcCapability_sequence[] = {
4110 { &hf_h245_centralizedConferenceMC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4111 { &hf_h245_decentralizedConferenceMC, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4112 { NULL, 0, 0, NULL }
4115 static int
4116 dissect_h245_T_mcCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4117 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4118 ett_h245_T_mcCapability, T_mcCapability_sequence);
4120 return offset;
4125 static int
4126 dissect_h245_T_rfc_number(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4127 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4128 1U, 32768U, &rfc_number, true);
4130 return offset;
4134 static const value_string h245_T_payloadDescriptor_vals[] = {
4135 { 0, "nonStandardIdentifier" },
4136 { 1, "rfc-number" },
4137 { 2, "oid" },
4138 { 0, NULL }
4141 static const per_choice_t T_payloadDescriptor_choice[] = {
4142 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
4143 { 1, &hf_h245_rfc_number , ASN1_EXTENSION_ROOT , dissect_h245_T_rfc_number },
4144 { 2, &hf_h245_oid , ASN1_EXTENSION_ROOT , dissect_h245_OBJECT_IDENTIFIER },
4145 { 0, NULL, 0, NULL }
4148 static int
4149 dissect_h245_T_payloadDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4150 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4151 ett_h245_T_payloadDescriptor, T_payloadDescriptor_choice,
4152 NULL);
4154 return offset;
4159 static int
4160 dissect_h245_T_rtpPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4161 unsigned int pt;
4163 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4164 0U, 127U, &pt, false);
4167 if ((rfc_number == 2198) && upcoming_channel) {
4168 upcoming_channel->rfc2198 = pt;
4171 return offset;
4175 static const per_sequence_t RTPPayloadType_sequence[] = {
4176 { &hf_h245_payloadDescriptor, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_payloadDescriptor },
4177 { &hf_h245_rtpPayloadType_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_rtpPayloadType },
4178 { NULL, 0, 0, NULL }
4181 static int
4182 dissect_h245_RTPPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4183 rfc_number = 0;
4184 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4185 ett_h245_RTPPayloadType, RTPPayloadType_sequence);
4187 return offset;
4191 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_RTPPayloadType_sequence_of[1] = {
4192 { &hf_h245_rtpPayloadTypes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_RTPPayloadType },
4195 static int
4196 dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4197 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4198 ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType, SEQUENCE_SIZE_1_256_OF_RTPPayloadType_sequence_of,
4199 1, 256, false);
4201 return offset;
4205 static const per_sequence_t MediaPacketizationCapability_sequence[] = {
4206 { &hf_h245_h261aVideoPacketization, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4207 { &hf_h245_rtpPayloadTypes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType },
4208 { NULL, 0, 0, NULL }
4211 static int
4212 dissect_h245_MediaPacketizationCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4213 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4214 ett_h245_MediaPacketizationCapability, MediaPacketizationCapability_sequence);
4216 return offset;
4220 static const value_string h245_QOSMode_vals[] = {
4221 { 0, "guaranteedQOS" },
4222 { 1, "controlledLoad" },
4223 { 0, NULL }
4226 static const per_choice_t QOSMode_choice[] = {
4227 { 0, &hf_h245_guaranteedQOS , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4228 { 1, &hf_h245_controlledLoad , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4229 { 0, NULL, 0, NULL }
4232 static int
4233 dissect_h245_QOSMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4234 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4235 ett_h245_QOSMode, QOSMode_choice,
4236 NULL);
4238 return offset;
4243 static int
4244 dissect_h245_INTEGER_1_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4245 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4246 1U, 4294967295U, NULL, false);
4248 return offset;
4252 static const per_sequence_t RSVPParameters_sequence[] = {
4253 { &hf_h245_qosMode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_QOSMode },
4254 { &hf_h245_tokenRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4255 { &hf_h245_bucketSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4256 { &hf_h245_peakRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4257 { &hf_h245_minPoliced , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4258 { &hf_h245_maxPktSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4259 { NULL, 0, 0, NULL }
4262 static int
4263 dissect_h245_RSVPParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4264 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4265 ett_h245_RSVPParameters, RSVPParameters_sequence);
4267 return offset;
4271 static const per_sequence_t ATMParameters_sequence[] = {
4272 { &hf_h245_maxNTUSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
4273 { &hf_h245_atmUBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4274 { &hf_h245_atmrtVBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4275 { &hf_h245_atmnrtVBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4276 { &hf_h245_atmABR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4277 { &hf_h245_atmCBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4278 { NULL, 0, 0, NULL }
4281 static int
4282 dissect_h245_ATMParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4283 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4284 ett_h245_ATMParameters, ATMParameters_sequence);
4286 return offset;
4290 static const per_sequence_t GenericTransportParameters_sequence[] = {
4291 { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4292 { &hf_h245_averageRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4293 { &hf_h245_burst , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4294 { &hf_h245_peakRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4295 { &hf_h245_maxPktSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
4296 { NULL, 0, 0, NULL }
4299 static int
4300 dissect_h245_GenericTransportParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4301 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4302 ett_h245_GenericTransportParameters, GenericTransportParameters_sequence);
4304 return offset;
4308 static const per_sequence_t ServicePriorityValue_sequence[] = {
4309 { &hf_h245_nonStandardParameter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4310 { &hf_h245_value , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
4311 { NULL, 0, 0, NULL }
4314 static int
4315 dissect_h245_ServicePriorityValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4316 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4317 ett_h245_ServicePriorityValue, ServicePriorityValue_sequence);
4319 return offset;
4324 static int
4325 dissect_h245_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4326 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4327 0U, 4095U, NULL, false);
4329 return offset;
4333 static const per_sequence_t ServicePriority_sequence[] = {
4334 { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4335 { &hf_h245_servicePrioritySignalled, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4336 { &hf_h245_servicePriorityValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_ServicePriorityValue },
4337 { &hf_h245_serviceClass , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_4095 },
4338 { &hf_h245_serviceSubclass, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_255 },
4339 { NULL, 0, 0, NULL }
4342 static int
4343 dissect_h245_ServicePriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4344 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4345 ett_h245_ServicePriority, ServicePriority_sequence);
4347 return offset;
4351 static const per_sequence_t AuthorizationParameters_sequence[] = {
4352 { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4353 { NULL, 0, 0, NULL }
4356 static int
4357 dissect_h245_AuthorizationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4358 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4359 ett_h245_AuthorizationParameters, AuthorizationParameters_sequence);
4361 return offset;
4365 static const value_string h245_QOSType_vals[] = {
4366 { 0, "desired" },
4367 { 1, "required" },
4368 { 0, NULL }
4371 static const per_choice_t QOSType_choice[] = {
4372 { 0, &hf_h245_desired , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4373 { 1, &hf_h245_required , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4374 { 0, NULL, 0, NULL }
4377 static int
4378 dissect_h245_QOSType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4379 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4380 ett_h245_QOSType, QOSType_choice,
4381 NULL);
4383 return offset;
4387 static const value_string h245_QOSClass_vals[] = {
4388 { 0, "class0" },
4389 { 1, "class1" },
4390 { 2, "class2" },
4391 { 3, "class3" },
4392 { 4, "class4" },
4393 { 5, "class5" },
4394 { 0, NULL }
4397 static const per_choice_t QOSClass_choice[] = {
4398 { 0, &hf_h245_class0 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4399 { 1, &hf_h245_class1 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4400 { 2, &hf_h245_class2 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4401 { 3, &hf_h245_class3 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4402 { 4, &hf_h245_class4 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4403 { 5, &hf_h245_class5 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4404 { 0, NULL, 0, NULL }
4407 static int
4408 dissect_h245_QOSClass(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4409 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4410 ett_h245_QOSClass, QOSClass_choice,
4411 NULL);
4413 return offset;
4417 static const per_sequence_t QOSDescriptor_sequence[] = {
4418 { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4419 { &hf_h245_qosType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_QOSType },
4420 { &hf_h245_qosClass , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_QOSClass },
4421 { NULL, 0, 0, NULL }
4424 static int
4425 dissect_h245_QOSDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4426 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4427 ett_h245_QOSDescriptor, QOSDescriptor_sequence);
4429 return offset;
4434 static int
4435 dissect_h245_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4436 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4437 0U, 63U, NULL, false);
4439 return offset;
4443 static const per_sequence_t QOSCapability_sequence[] = {
4444 { &hf_h245_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4445 { &hf_h245_rsvpParameters , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_RSVPParameters },
4446 { &hf_h245_atmParameters , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_ATMParameters },
4447 { &hf_h245_localQoS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_BOOLEAN },
4448 { &hf_h245_genericTransportParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_GenericTransportParameters },
4449 { &hf_h245_servicePriority, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_ServicePriority },
4450 { &hf_h245_authorizationParameter, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_AuthorizationParameters },
4451 { &hf_h245_qosDescriptor , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_QOSDescriptor },
4452 { &hf_h245_dscpValue , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_63 },
4453 { NULL, 0, 0, NULL }
4457 dissect_h245_QOSCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4458 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4459 ett_h245_QOSCapability, QOSCapability_sequence);
4461 return offset;
4465 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of[1] = {
4466 { &hf_h245_qOSCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_QOSCapability },
4469 static int
4470 dissect_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4471 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4472 ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability, SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of,
4473 1, 256, false);
4475 return offset;
4479 static const per_sequence_t T_atm_AAL5_compressed_sequence[] = {
4480 { &hf_h245_variable_delta , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4481 { NULL, 0, 0, NULL }
4484 static int
4485 dissect_h245_T_atm_AAL5_compressed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4486 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4487 ett_h245_T_atm_AAL5_compressed, T_atm_AAL5_compressed_sequence);
4489 return offset;
4493 static const value_string h245_MediaTransportType_vals[] = {
4494 { 0, "ip-UDP" },
4495 { 1, "ip-TCP" },
4496 { 2, "atm-AAL5-UNIDIR" },
4497 { 3, "atm-AAL5-BIDIR" },
4498 { 4, "atm-AAL5-compressed" },
4499 { 0, NULL }
4502 static const per_choice_t MediaTransportType_choice[] = {
4503 { 0, &hf_h245_ip_UDP , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4504 { 1, &hf_h245_ip_TCP , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4505 { 2, &hf_h245_atm_AAL5_UNIDIR, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4506 { 3, &hf_h245_atm_AAL5_BIDIR , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4507 { 4, &hf_h245_atm_AAL5_compressed, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_atm_AAL5_compressed },
4508 { 0, NULL, 0, NULL }
4511 static int
4512 dissect_h245_MediaTransportType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4513 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4514 ett_h245_MediaTransportType, MediaTransportType_choice,
4515 NULL);
4517 return offset;
4521 static const per_sequence_t MediaChannelCapability_sequence[] = {
4522 { &hf_h245_mediaTransport , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_MediaTransportType },
4523 { NULL, 0, 0, NULL }
4526 static int
4527 dissect_h245_MediaChannelCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4528 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4529 ett_h245_MediaChannelCapability, MediaChannelCapability_sequence);
4531 return offset;
4535 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_MediaChannelCapability_sequence_of[1] = {
4536 { &hf_h245_mediaChannelCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MediaChannelCapability },
4539 static int
4540 dissect_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4541 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4542 ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability, SEQUENCE_SIZE_1_256_OF_MediaChannelCapability_sequence_of,
4543 1, 256, false);
4545 return offset;
4549 static const per_sequence_t TransportCapability_sequence[] = {
4550 { &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
4551 { &hf_h245_qOSCapabilities, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability },
4552 { &hf_h245_mediaChannelCapabilities, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability },
4553 { NULL, 0, 0, NULL }
4556 static int
4557 dissect_h245_TransportCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4558 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4559 ett_h245_TransportCapability, TransportCapability_sequence);
4561 return offset;
4566 static int
4567 dissect_h245_INTEGER_1_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4568 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4569 1U, 16U, NULL, false);
4571 return offset;
4576 static int
4577 dissect_h245_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4578 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4579 0U, 15U, NULL, false);
4581 return offset;
4585 static const per_sequence_t T_frameSequence_sequence_of[1] = {
4586 { &hf_h245_frameSequence_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
4589 static int
4590 dissect_h245_T_frameSequence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4591 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4592 ett_h245_T_frameSequence, T_frameSequence_sequence_of,
4593 1, 256, false);
4595 return offset;
4599 static const per_sequence_t RTPH263VideoRedundancyFrameMapping_sequence[] = {
4600 { &hf_h245_threadNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_15 },
4601 { &hf_h245_frameSequence , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_frameSequence },
4602 { NULL, 0, 0, NULL }
4605 static int
4606 dissect_h245_RTPH263VideoRedundancyFrameMapping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4607 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4608 ett_h245_RTPH263VideoRedundancyFrameMapping, RTPH263VideoRedundancyFrameMapping_sequence);
4610 return offset;
4614 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping_sequence_of[1] = {
4615 { &hf_h245_custom_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_RTPH263VideoRedundancyFrameMapping },
4618 static int
4619 dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4620 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4621 ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping, SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping_sequence_of,
4622 1, 256, false);
4624 return offset;
4628 static const value_string h245_T_frameToThreadMapping_vals[] = {
4629 { 0, "roundrobin" },
4630 { 1, "custom" },
4631 { 0, NULL }
4634 static const per_choice_t T_frameToThreadMapping_choice[] = {
4635 { 0, &hf_h245_roundrobin , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4636 { 1, &hf_h245_custom , ASN1_EXTENSION_ROOT , dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping },
4637 { 0, NULL, 0, NULL }
4640 static int
4641 dissect_h245_T_frameToThreadMapping(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4642 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4643 ett_h245_T_frameToThreadMapping, T_frameToThreadMapping_choice,
4644 NULL);
4646 return offset;
4650 static const per_sequence_t T_containedThreads_sequence_of[1] = {
4651 { &hf_h245_containedThreads_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_15 },
4654 static int
4655 dissect_h245_T_containedThreads(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4656 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4657 ett_h245_T_containedThreads, T_containedThreads_sequence_of,
4658 1, 256, false);
4660 return offset;
4664 static const per_sequence_t RTPH263VideoRedundancyEncoding_sequence[] = {
4665 { &hf_h245_numberOfThreads, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_16 },
4666 { &hf_h245_framesBetweenSyncPoints, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
4667 { &hf_h245_frameToThreadMapping, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_frameToThreadMapping },
4668 { &hf_h245_containedThreads, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_containedThreads },
4669 { NULL, 0, 0, NULL }
4672 static int
4673 dissect_h245_RTPH263VideoRedundancyEncoding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4674 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4675 ett_h245_RTPH263VideoRedundancyEncoding, RTPH263VideoRedundancyEncoding_sequence);
4677 return offset;
4681 static const value_string h245_RedundancyEncodingMethod_vals[] = {
4682 { 0, "nonStandard" },
4683 { 1, "rtpAudioRedundancyEncoding" },
4684 { 2, "rtpH263VideoRedundancyEncoding" },
4685 { 0, NULL }
4688 static const per_choice_t RedundancyEncodingMethod_choice[] = {
4689 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
4690 { 1, &hf_h245_rtpAudioRedundancyEncoding, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
4691 { 2, &hf_h245_rtpH263VideoRedundancyEncoding, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RTPH263VideoRedundancyEncoding },
4692 { 0, NULL, 0, NULL }
4695 static int
4696 dissect_h245_RedundancyEncodingMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4697 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4698 ett_h245_RedundancyEncodingMethod, RedundancyEncodingMethod_choice,
4699 NULL);
4701 return offset;
4706 static int
4707 dissect_h245_CapabilityTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4708 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4709 1U, 65535U, NULL, false);
4711 return offset;
4715 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber_sequence_of[1] = {
4716 { &hf_h245_secondaryEncodingCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
4719 static int
4720 dissect_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4721 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4722 ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber, SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber_sequence_of,
4723 1, 256, false);
4725 return offset;
4729 static const per_sequence_t RedundancyEncodingCapability_sequence[] = {
4730 { &hf_h245_redundancyEncodingMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingMethod },
4731 { &hf_h245_primaryEncoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
4732 { &hf_h245_secondaryEncodingCapability, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber },
4733 { NULL, 0, 0, NULL }
4736 static int
4737 dissect_h245_RedundancyEncodingCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4738 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4739 ett_h245_RedundancyEncodingCapability, RedundancyEncodingCapability_sequence);
4741 return offset;
4745 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability_sequence_of[1] = {
4746 { &hf_h245_redundancyEncodingCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingCapability },
4749 static int
4750 dissect_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4751 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
4752 ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability, SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability_sequence_of,
4753 1, 256, false);
4755 return offset;
4759 static const per_sequence_t H2250Capability_sequence[] = {
4760 { &hf_h245_maximumAudioDelayJitter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_1023 },
4761 { &hf_h245_receiveMultipointCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultipointCapability },
4762 { &hf_h245_transmitMultipointCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultipointCapability },
4763 { &hf_h245_receiveAndTransmitMultipointCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultipointCapability },
4764 { &hf_h245_mcCapability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_mcCapability },
4765 { &hf_h245_rtcpVideoControlCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4766 { &hf_h245_mediaPacketizationCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MediaPacketizationCapability },
4767 { &hf_h245_transportCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_TransportCapability },
4768 { &hf_h245_redundancyEncodingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability },
4769 { &hf_h245_logicalChannelSwitchingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4770 { &hf_h245_t120DynamicPortCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4771 { NULL, 0, 0, NULL }
4774 static int
4775 dissect_h245_H2250Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4776 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4777 ett_h245_H2250Capability, H2250Capability_sequence);
4779 return offset;
4783 static const value_string h245_MultiplexCapability_vals[] = {
4784 { 0, "nonStandard" },
4785 { 1, "h222Capability" },
4786 { 2, "h223Capability" },
4787 { 3, "v76Capability" },
4788 { 4, "h2250Capability" },
4789 { 5, "genericMultiplexCapability" },
4790 { 0, NULL }
4793 static const per_choice_t MultiplexCapability_choice[] = {
4794 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
4795 { 1, &hf_h245_h222Capability , ASN1_EXTENSION_ROOT , dissect_h245_H222Capability },
4796 { 2, &hf_h245_h223Capability , ASN1_EXTENSION_ROOT , dissect_h245_H223Capability },
4797 { 3, &hf_h245_v76Capability , ASN1_EXTENSION_ROOT , dissect_h245_V76Capability },
4798 { 4, &hf_h245_h2250Capability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H2250Capability },
4799 { 5, &hf_h245_genericMultiplexCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
4800 { 0, NULL, 0, NULL }
4803 static int
4804 dissect_h245_MultiplexCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4805 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4806 ett_h245_MultiplexCapability, MultiplexCapability_choice,
4807 NULL);
4809 return offset;
4814 static int
4815 dissect_h245_INTEGER_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4816 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4817 1U, 4U, NULL, false);
4819 return offset;
4823 static const per_sequence_t H261VideoCapability_sequence[] = {
4824 { &hf_h245_qcifMPI_1_4 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4 },
4825 { &hf_h245_cifMPI_1_4 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4 },
4826 { &hf_h245_temporalSpatialTradeOffCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4827 { &hf_h245_maxBitRate_1_19200, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_19200 },
4828 { &hf_h245_stillImageTransmission, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4829 { &hf_h245_videoBadMBsCap , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4830 { NULL, 0, 0, NULL }
4833 static int
4834 dissect_h245_H261VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4835 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4836 ett_h245_H261VideoCapability, H261VideoCapability_sequence);
4838 return offset;
4843 static int
4844 dissect_h245_INTEGER_0_1073741823(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4845 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4846 0U, 1073741823U, NULL, false);
4848 return offset;
4853 static int
4854 dissect_h245_INTEGER_0_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4855 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4856 0U, 262143U, NULL, false);
4858 return offset;
4863 static int
4864 dissect_h245_INTEGER_0_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4865 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4866 0U, 16383U, NULL, false);
4868 return offset;
4872 static const per_sequence_t H262VideoCapability_sequence[] = {
4873 { &hf_h245_profileAndLevel_SPatML, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4874 { &hf_h245_profileAndLevel_MPatLL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4875 { &hf_h245_profileAndLevel_MPatML, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4876 { &hf_h245_profileAndLevel_MPatH_14, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4877 { &hf_h245_profileAndLevel_MPatHL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4878 { &hf_h245_profileAndLevel_SNRatLL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4879 { &hf_h245_profileAndLevel_SNRatML, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4880 { &hf_h245_profileAndLevel_SpatialatH_14, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4881 { &hf_h245_profileAndLevel_HPatML, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4882 { &hf_h245_profileAndLevel_HPatH_14, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4883 { &hf_h245_profileAndLevel_HPatHL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4884 { &hf_h245_videoBitRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_1073741823 },
4885 { &hf_h245_vbvBufferSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_262143 },
4886 { &hf_h245_samplesPerLine , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
4887 { &hf_h245_linesPerFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
4888 { &hf_h245_framesPerSecond, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_15 },
4889 { &hf_h245_luminanceSampleRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
4890 { &hf_h245_videoBadMBsCap , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
4891 { NULL, 0, 0, NULL }
4894 static int
4895 dissect_h245_H262VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4896 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4897 ett_h245_H262VideoCapability, H262VideoCapability_sequence);
4899 return offset;
4904 static int
4905 dissect_h245_INTEGER_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4906 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4907 1U, 32U, NULL, false);
4909 return offset;
4914 static int
4915 dissect_h245_INTEGER_1_192400(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4916 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4917 1U, 192400U, NULL, false);
4919 return offset;
4924 static int
4925 dissect_h245_INTEGER_0_524287(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4926 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4927 0U, 524287U, NULL, false);
4929 return offset;
4934 static int
4935 dissect_h245_INTEGER_1_3600(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4936 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4937 1U, 3600U, NULL, false);
4939 return offset;
4944 static int
4945 dissect_h245_INTEGER_M262144_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4946 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4947 -262144, 262143U, NULL, false);
4949 return offset;
4953 static const per_sequence_t TransparencyParameters_sequence[] = {
4954 { &hf_h245_presentationOrder, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
4955 { &hf_h245_offset_x , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_M262144_262143 },
4956 { &hf_h245_offset_y , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_M262144_262143 },
4957 { &hf_h245_scale_x , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
4958 { &hf_h245_scale_y , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
4959 { NULL, 0, 0, NULL }
4962 static int
4963 dissect_h245_TransparencyParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4964 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4965 ett_h245_TransparencyParameters, TransparencyParameters_sequence);
4967 return offset;
4971 static const per_sequence_t T_additionalPictureMemory_sequence[] = {
4972 { &hf_h245_sqcifAdditionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
4973 { &hf_h245_qcifAdditionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
4974 { &hf_h245_cifAdditionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
4975 { &hf_h245_cif4AdditionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
4976 { &hf_h245_cif16AdditionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
4977 { &hf_h245_bigCpfAdditionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
4978 { NULL, 0, 0, NULL }
4981 static int
4982 dissect_h245_T_additionalPictureMemory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4983 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4984 ett_h245_T_additionalPictureMemory, T_additionalPictureMemory_sequence);
4986 return offset;
4990 static const value_string h245_T_videoBackChannelSend_vals[] = {
4991 { 0, "none" },
4992 { 1, "ackMessageOnly" },
4993 { 2, "nackMessageOnly" },
4994 { 3, "ackOrNackMessageOnly" },
4995 { 4, "ackAndNackMessage" },
4996 { 0, NULL }
4999 static const per_choice_t T_videoBackChannelSend_choice[] = {
5000 { 0, &hf_h245_none , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
5001 { 1, &hf_h245_ackMessageOnly , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
5002 { 2, &hf_h245_nackMessageOnly, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
5003 { 3, &hf_h245_ackOrNackMessageOnly, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
5004 { 4, &hf_h245_ackAndNackMessage, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
5005 { 0, NULL, 0, NULL }
5008 static int
5009 dissect_h245_T_videoBackChannelSend(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5010 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5011 ett_h245_T_videoBackChannelSend, T_videoBackChannelSend_choice,
5012 NULL);
5014 return offset;
5019 static int
5020 dissect_h245_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5021 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5022 1U, 128U, NULL, false);
5024 return offset;
5029 static int
5030 dissect_h245_INTEGER_1_72(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5031 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5032 1U, 72U, NULL, false);
5034 return offset;
5038 static const per_sequence_t T_subPictureRemovalParameters_sequence[] = {
5039 { &hf_h245_mpuHorizMBs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_128 },
5040 { &hf_h245_mpuVertMBs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_72 },
5041 { &hf_h245_mpuTotalNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65536 },
5042 { NULL, 0, 0, NULL }
5045 static int
5046 dissect_h245_T_subPictureRemovalParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5047 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5048 ett_h245_T_subPictureRemovalParameters, T_subPictureRemovalParameters_sequence);
5050 return offset;
5054 static const per_sequence_t T_enhancedReferencePicSelect_sequence[] = {
5055 { &hf_h245_subPictureRemovalParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_subPictureRemovalParameters },
5056 { NULL, 0, 0, NULL }
5059 static int
5060 dissect_h245_T_enhancedReferencePicSelect(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5061 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5062 ett_h245_T_enhancedReferencePicSelect, T_enhancedReferencePicSelect_sequence);
5064 return offset;
5068 static const per_sequence_t RefPictureSelection_sequence[] = {
5069 { &hf_h245_additionalPictureMemory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_additionalPictureMemory },
5070 { &hf_h245_videoMux , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5071 { &hf_h245_videoBackChannelSend, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_videoBackChannelSend },
5072 { &hf_h245_enhancedReferencePicSelect, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_T_enhancedReferencePicSelect },
5073 { NULL, 0, 0, NULL }
5076 static int
5077 dissect_h245_RefPictureSelection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5078 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5079 ett_h245_RefPictureSelection, RefPictureSelection_sequence);
5081 return offset;
5086 static int
5087 dissect_h245_INTEGER_1000_1001(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5088 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5089 1000U, 1001U, NULL, false);
5091 return offset;
5096 static int
5097 dissect_h245_INTEGER_1_2048(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5098 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5099 1U, 2048U, NULL, false);
5101 return offset;
5105 static const per_sequence_t CustomPictureClockFrequency_sequence[] = {
5106 { &hf_h245_clockConversionCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1000_1001 },
5107 { &hf_h245_clockDivisor , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_127 },
5108 { &hf_h245_sqcifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_2048 },
5109 { &hf_h245_qcifMPI_1_2048 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_2048 },
5110 { &hf_h245_cifMPI2_1_2048 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_2048 },
5111 { &hf_h245_cif4MPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_2048 },
5112 { &hf_h245_cif16MPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_2048 },
5113 { NULL, 0, 0, NULL }
5116 static int
5117 dissect_h245_CustomPictureClockFrequency(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5118 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5119 ett_h245_CustomPictureClockFrequency, CustomPictureClockFrequency_sequence);
5121 return offset;
5125 static const per_sequence_t SET_SIZE_1_16_OF_CustomPictureClockFrequency_set_of[1] = {
5126 { &hf_h245_customPictureClockFrequency_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CustomPictureClockFrequency },
5129 static int
5130 dissect_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5131 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5132 ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency, SET_SIZE_1_16_OF_CustomPictureClockFrequency_set_of,
5133 1, 16, false);
5135 return offset;
5140 static int
5141 dissect_h245_INTEGER_1_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5142 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5143 1U, 31U, NULL, false);
5145 return offset;
5149 static const per_sequence_t T_customPCF_item_sequence[] = {
5150 { &hf_h245_clockConversionCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1000_1001 },
5151 { &hf_h245_clockDivisor , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_127 },
5152 { &hf_h245_customMPI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_2048 },
5153 { NULL, 0, 0, NULL }
5156 static int
5157 dissect_h245_T_customPCF_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5158 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5159 ett_h245_T_customPCF_item, T_customPCF_item_sequence);
5161 return offset;
5165 static const per_sequence_t T_customPCF_set_of[1] = {
5166 { &hf_h245_customPCF_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_customPCF_item },
5169 static int
5170 dissect_h245_T_customPCF(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5171 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5172 ett_h245_T_customPCF, T_customPCF_set_of,
5173 1, 16, false);
5175 return offset;
5179 static const per_sequence_t T_mPI_sequence[] = {
5180 { &hf_h245_standardMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_31 },
5181 { &hf_h245_customPCF , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_customPCF },
5182 { NULL, 0, 0, NULL }
5185 static int
5186 dissect_h245_T_mPI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5187 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5188 ett_h245_T_mPI, T_mPI_sequence);
5190 return offset;
5195 static int
5196 dissect_h245_INTEGER_1_14(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5197 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5198 1U, 14U, NULL, false);
5200 return offset;
5204 static const per_sequence_t T_pixelAspectCode_set_of[1] = {
5205 { &hf_h245_pixelAspectCode_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_14 },
5208 static int
5209 dissect_h245_T_pixelAspectCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5210 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5211 ett_h245_T_pixelAspectCode, T_pixelAspectCode_set_of,
5212 1, 14, false);
5214 return offset;
5218 static const per_sequence_t T_extendedPAR_item_sequence[] = {
5219 { &hf_h245_width , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
5220 { &hf_h245_height , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
5221 { NULL, 0, 0, NULL }
5224 static int
5225 dissect_h245_T_extendedPAR_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5226 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5227 ett_h245_T_extendedPAR_item, T_extendedPAR_item_sequence);
5229 return offset;
5233 static const per_sequence_t T_extendedPAR_set_of[1] = {
5234 { &hf_h245_extendedPAR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_extendedPAR_item },
5237 static int
5238 dissect_h245_T_extendedPAR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5239 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5240 ett_h245_T_extendedPAR, T_extendedPAR_set_of,
5241 1, 256, false);
5243 return offset;
5247 static const value_string h245_T_pixelAspectInformation_vals[] = {
5248 { 0, "anyPixelAspectRatio" },
5249 { 1, "pixelAspectCode" },
5250 { 2, "extendedPAR" },
5251 { 0, NULL }
5254 static const per_choice_t T_pixelAspectInformation_choice[] = {
5255 { 0, &hf_h245_anyPixelAspectRatio, ASN1_EXTENSION_ROOT , dissect_h245_BOOLEAN },
5256 { 1, &hf_h245_pixelAspectCode, ASN1_EXTENSION_ROOT , dissect_h245_T_pixelAspectCode },
5257 { 2, &hf_h245_extendedPAR , ASN1_EXTENSION_ROOT , dissect_h245_T_extendedPAR },
5258 { 0, NULL, 0, NULL }
5261 static int
5262 dissect_h245_T_pixelAspectInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5263 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5264 ett_h245_T_pixelAspectInformation, T_pixelAspectInformation_choice,
5265 NULL);
5267 return offset;
5271 static const per_sequence_t CustomPictureFormat_sequence[] = {
5272 { &hf_h245_maxCustomPictureWidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_2048 },
5273 { &hf_h245_maxCustomPictureHeight, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_2048 },
5274 { &hf_h245_minCustomPictureWidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_2048 },
5275 { &hf_h245_minCustomPictureHeight, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_2048 },
5276 { &hf_h245_mPI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_mPI },
5277 { &hf_h245_pixelAspectInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_pixelAspectInformation },
5278 { NULL, 0, 0, NULL }
5281 static int
5282 dissect_h245_CustomPictureFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5283 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5284 ett_h245_CustomPictureFormat, CustomPictureFormat_sequence);
5286 return offset;
5290 static const per_sequence_t SET_SIZE_1_16_OF_CustomPictureFormat_set_of[1] = {
5291 { &hf_h245_customPictureFormat_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CustomPictureFormat },
5294 static int
5295 dissect_h245_SET_SIZE_1_16_OF_CustomPictureFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5296 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5297 ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat, SET_SIZE_1_16_OF_CustomPictureFormat_set_of,
5298 1, 16, false);
5300 return offset;
5304 static const per_sequence_t H263Version3Options_sequence[] = {
5305 { &hf_h245_dataPartitionedSlices, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5306 { &hf_h245_fixedPointIDCT0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5307 { &hf_h245_interlacedFields, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5308 { &hf_h245_currentPictureHeaderRepetition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5309 { &hf_h245_previousPictureHeaderRepetition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5310 { &hf_h245_nextPictureHeaderRepetition, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5311 { &hf_h245_pictureNumberBoolean, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5312 { &hf_h245_spareReferencePictures, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5313 { NULL, 0, 0, NULL }
5316 static int
5317 dissect_h245_H263Version3Options(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5318 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5319 ett_h245_H263Version3Options, H263Version3Options_sequence);
5321 return offset;
5325 static const per_sequence_t H263ModeComboFlags_sequence[] = {
5326 { &hf_h245_unrestrictedVector, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5327 { &hf_h245_arithmeticCoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5328 { &hf_h245_advancedPrediction, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5329 { &hf_h245_pbFrames , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5330 { &hf_h245_advancedIntraCodingMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5331 { &hf_h245_deblockingFilterMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5332 { &hf_h245_unlimitedMotionVectors, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5333 { &hf_h245_slicesInOrder_NonRect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5334 { &hf_h245_slicesInOrder_Rect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5335 { &hf_h245_slicesNoOrder_NonRect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5336 { &hf_h245_slicesNoOrder_Rect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5337 { &hf_h245_improvedPBFramesMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5338 { &hf_h245_referencePicSelect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5339 { &hf_h245_dynamicPictureResizingByFour, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5340 { &hf_h245_dynamicPictureResizingSixteenthPel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5341 { &hf_h245_dynamicWarpingHalfPel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5342 { &hf_h245_dynamicWarpingSixteenthPel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5343 { &hf_h245_reducedResolutionUpdate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5344 { &hf_h245_independentSegmentDecoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5345 { &hf_h245_alternateInterVLCMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5346 { &hf_h245_modifiedQuantizationMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5347 { &hf_h245_enhancedReferencePicSelectBool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5348 { &hf_h245_h263Version3Options, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_H263Version3Options },
5349 { NULL, 0, 0, NULL }
5352 static int
5353 dissect_h245_H263ModeComboFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5354 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5355 ett_h245_H263ModeComboFlags, H263ModeComboFlags_sequence);
5357 return offset;
5361 static const per_sequence_t SET_SIZE_1_16_OF_H263ModeComboFlags_set_of[1] = {
5362 { &hf_h245_h263VideoCoupledModes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_H263ModeComboFlags },
5365 static int
5366 dissect_h245_SET_SIZE_1_16_OF_H263ModeComboFlags(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5367 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5368 ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags, SET_SIZE_1_16_OF_H263ModeComboFlags_set_of,
5369 1, 16, false);
5371 return offset;
5375 static const per_sequence_t H263VideoModeCombos_sequence[] = {
5376 { &hf_h245_h263VideoUncoupledModes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_H263ModeComboFlags },
5377 { &hf_h245_h263VideoCoupledModes, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_16_OF_H263ModeComboFlags },
5378 { NULL, 0, 0, NULL }
5381 static int
5382 dissect_h245_H263VideoModeCombos(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5383 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5384 ett_h245_H263VideoModeCombos, H263VideoModeCombos_sequence);
5386 return offset;
5390 static const per_sequence_t SET_SIZE_1_16_OF_H263VideoModeCombos_set_of[1] = {
5391 { &hf_h245_modeCombos_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_H263VideoModeCombos },
5394 static int
5395 dissect_h245_SET_SIZE_1_16_OF_H263VideoModeCombos(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5396 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5397 ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos, SET_SIZE_1_16_OF_H263VideoModeCombos_set_of,
5398 1, 16, false);
5400 return offset;
5404 static const per_sequence_t H263Options_sequence[] = {
5405 { &hf_h245_advancedIntraCodingMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5406 { &hf_h245_deblockingFilterMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5407 { &hf_h245_improvedPBFramesMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5408 { &hf_h245_unlimitedMotionVectors, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5409 { &hf_h245_fullPictureFreeze, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5410 { &hf_h245_partialPictureFreezeAndRelease, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5411 { &hf_h245_resizingPartPicFreezeAndRelease, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5412 { &hf_h245_fullPictureSnapshot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5413 { &hf_h245_partialPictureSnapshot, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5414 { &hf_h245_videoSegmentTagging, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5415 { &hf_h245_progressiveRefinement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5416 { &hf_h245_dynamicPictureResizingByFour, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5417 { &hf_h245_dynamicPictureResizingSixteenthPel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5418 { &hf_h245_dynamicWarpingHalfPel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5419 { &hf_h245_dynamicWarpingSixteenthPel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5420 { &hf_h245_independentSegmentDecoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5421 { &hf_h245_slicesInOrder_NonRect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5422 { &hf_h245_slicesInOrder_Rect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5423 { &hf_h245_slicesNoOrder_NonRect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5424 { &hf_h245_slicesNoOrder_Rect, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5425 { &hf_h245_alternateInterVLCMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5426 { &hf_h245_modifiedQuantizationMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5427 { &hf_h245_reducedResolutionUpdate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5428 { &hf_h245_transparencyParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransparencyParameters },
5429 { &hf_h245_separateVideoBackChannel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5430 { &hf_h245_refPictureSelection, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_RefPictureSelection },
5431 { &hf_h245_customPictureClockFrequency, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency },
5432 { &hf_h245_customPictureFormat, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_16_OF_CustomPictureFormat },
5433 { &hf_h245_modeCombos , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_16_OF_H263VideoModeCombos },
5434 { &hf_h245_videoBadMBsCap , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5435 { &hf_h245_h263Version3Options, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_H263Version3Options },
5436 { NULL, 0, 0, NULL }
5439 static int
5440 dissect_h245_H263Options(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5441 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5442 ett_h245_H263Options, H263Options_sequence);
5444 return offset;
5448 static const per_sequence_t EnhancementOptions_sequence[] = {
5449 { &hf_h245_sqcifMPI_1_32 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5450 { &hf_h245_qcifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5451 { &hf_h245_cifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5452 { &hf_h245_cif4MPI_1_32 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5453 { &hf_h245_cif16MPI_1_32 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5454 { &hf_h245_maxBitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_192400 },
5455 { &hf_h245_unrestrictedVector, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5456 { &hf_h245_arithmeticCoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5457 { &hf_h245_temporalSpatialTradeOffCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5458 { &hf_h245_slowSqcifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5459 { &hf_h245_slowQcifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5460 { &hf_h245_slowCifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5461 { &hf_h245_slowCif4MPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5462 { &hf_h245_slowCif16MPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5463 { &hf_h245_errorCompensation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5464 { &hf_h245_h263Options , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_H263Options },
5465 { NULL, 0, 0, NULL }
5468 static int
5469 dissect_h245_EnhancementOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5470 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5471 ett_h245_EnhancementOptions, EnhancementOptions_sequence);
5473 return offset;
5477 static const per_sequence_t SET_SIZE_1_14_OF_EnhancementOptions_set_of[1] = {
5478 { &hf_h245_snrEnhancement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_EnhancementOptions },
5481 static int
5482 dissect_h245_SET_SIZE_1_14_OF_EnhancementOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5483 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5484 ett_h245_SET_SIZE_1_14_OF_EnhancementOptions, SET_SIZE_1_14_OF_EnhancementOptions_set_of,
5485 1, 14, false);
5487 return offset;
5492 static int
5493 dissect_h245_INTEGER_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5494 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5495 1U, 64U, NULL, false);
5497 return offset;
5501 static const per_sequence_t BEnhancementParameters_sequence[] = {
5502 { &hf_h245_enhancementOptions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_EnhancementOptions },
5503 { &hf_h245_numberOfBPictures, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_64 },
5504 { NULL, 0, 0, NULL }
5507 static int
5508 dissect_h245_BEnhancementParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5509 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5510 ett_h245_BEnhancementParameters, BEnhancementParameters_sequence);
5512 return offset;
5516 static const per_sequence_t SET_SIZE_1_14_OF_BEnhancementParameters_set_of[1] = {
5517 { &hf_h245_bPictureEnhancement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_BEnhancementParameters },
5520 static int
5521 dissect_h245_SET_SIZE_1_14_OF_BEnhancementParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5522 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
5523 ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters, SET_SIZE_1_14_OF_BEnhancementParameters_set_of,
5524 1, 14, false);
5526 return offset;
5530 static const per_sequence_t EnhancementLayerInfo_sequence[] = {
5531 { &hf_h245_baseBitRateConstrained, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5532 { &hf_h245_snrEnhancement , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_14_OF_EnhancementOptions },
5533 { &hf_h245_spatialEnhancement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_14_OF_EnhancementOptions },
5534 { &hf_h245_bPictureEnhancement, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_14_OF_BEnhancementParameters },
5535 { NULL, 0, 0, NULL }
5538 static int
5539 dissect_h245_EnhancementLayerInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5540 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5541 ett_h245_EnhancementLayerInfo, EnhancementLayerInfo_sequence);
5543 return offset;
5547 static const per_sequence_t H263VideoCapability_sequence[] = {
5548 { &hf_h245_sqcifMPI_1_32 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5549 { &hf_h245_qcifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5550 { &hf_h245_cifMPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5551 { &hf_h245_cif4MPI_1_32 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5552 { &hf_h245_cif16MPI_1_32 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_32 },
5553 { &hf_h245_maxBitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_192400 },
5554 { &hf_h245_unrestrictedVector, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5555 { &hf_h245_arithmeticCoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5556 { &hf_h245_advancedPrediction, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5557 { &hf_h245_pbFrames , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5558 { &hf_h245_temporalSpatialTradeOffCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5559 { &hf_h245_hrd_B , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_524287 },
5560 { &hf_h245_bppMaxKb , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_65535 },
5561 { &hf_h245_slowSqcifMPI , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5562 { &hf_h245_slowQcifMPI , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5563 { &hf_h245_slowCifMPI , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5564 { &hf_h245_slowCif4MPI , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5565 { &hf_h245_slowCif16MPI , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_3600 },
5566 { &hf_h245_errorCompensation, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5567 { &hf_h245_enhancementLayerInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_EnhancementLayerInfo },
5568 { &hf_h245_h263Options , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_H263Options },
5569 { NULL, 0, 0, NULL }
5572 static int
5573 dissect_h245_H263VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5574 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5575 ett_h245_H263VideoCapability, H263VideoCapability_sequence);
5577 h245_lc_dissector = h263_handle;
5578 return offset;
5582 static const per_sequence_t IS11172VideoCapability_sequence[] = {
5583 { &hf_h245_constrainedBitstream, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5584 { &hf_h245_videoBitRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_1073741823 },
5585 { &hf_h245_vbvBufferSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_262143 },
5586 { &hf_h245_samplesPerLine , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
5587 { &hf_h245_linesPerFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
5588 { &hf_h245_pictureRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_15 },
5589 { &hf_h245_luminanceSampleRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
5590 { &hf_h245_videoBadMBsCap , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5591 { NULL, 0, 0, NULL }
5594 static int
5595 dissect_h245_IS11172VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5596 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5597 ett_h245_IS11172VideoCapability, IS11172VideoCapability_sequence);
5599 return offset;
5603 static const per_sequence_t SEQUENCE_OF_VideoCapability_sequence_of[1] = {
5604 { &hf_h245_videoCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_VideoCapability },
5607 static int
5608 dissect_h245_SEQUENCE_OF_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5609 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5610 ett_h245_SEQUENCE_OF_VideoCapability, SEQUENCE_OF_VideoCapability_sequence_of);
5612 return offset;
5616 static const per_sequence_t SEQUENCE_OF_GenericCapability_sequence_of[1] = {
5617 { &hf_h245_videoCapabilityExtension_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_GenericCapability },
5620 static int
5621 dissect_h245_SEQUENCE_OF_GenericCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5622 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5623 ett_h245_SEQUENCE_OF_GenericCapability, SEQUENCE_OF_GenericCapability_sequence_of);
5625 return offset;
5629 static const per_sequence_t ExtendedVideoCapability_sequence[] = {
5630 { &hf_h245_videoCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_OF_VideoCapability },
5631 { &hf_h245_videoCapabilityExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericCapability },
5632 { NULL, 0, 0, NULL }
5635 static int
5636 dissect_h245_ExtendedVideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5637 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5638 ett_h245_ExtendedVideoCapability, ExtendedVideoCapability_sequence);
5640 return offset;
5644 static const value_string h245_VideoCapability_vals[] = {
5645 { 0, "nonStandard" },
5646 { 1, "h261VideoCapability" },
5647 { 2, "h262VideoCapability" },
5648 { 3, "h263VideoCapability" },
5649 { 4, "is11172VideoCapability" },
5650 { 5, "genericVideoCapability" },
5651 { 6, "extendedVideoCapability" },
5652 { 0, NULL }
5655 static const per_choice_t VideoCapability_choice[] = {
5656 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
5657 { 1, &hf_h245_h261VideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_H261VideoCapability },
5658 { 2, &hf_h245_h262VideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_H262VideoCapability },
5659 { 3, &hf_h245_h263VideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_H263VideoCapability },
5660 { 4, &hf_h245_is11172VideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_IS11172VideoCapability },
5661 { 5, &hf_h245_genericVideoCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
5662 { 6, &hf_h245_extendedVideoCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_ExtendedVideoCapability },
5663 { 0, NULL, 0, NULL }
5666 static int
5667 dissect_h245_VideoCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5668 // VideoCapability -> ExtendedVideoCapability -> ExtendedVideoCapability/videoCapability -> VideoCapability
5669 actx->pinfo->dissection_depth += 3;
5670 increment_dissection_depth(actx->pinfo);
5671 int32_t value;
5673 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5674 ett_h245_VideoCapability, VideoCapability_choice,
5675 &value);
5677 codec_type = val_to_str_const(value, h245_VideoCapability_vals, "<unknown>");
5680 actx->pinfo->dissection_depth -= 3;
5681 decrement_dissection_depth(actx->pinfo);
5682 return offset;
5686 static const per_sequence_t T_g7231_sequence[] = {
5687 { &hf_h245_maxAl_sduAudioFrames, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
5688 { &hf_h245_silenceSuppression, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5689 { NULL, 0, 0, NULL }
5692 static int
5693 dissect_h245_T_g7231(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5694 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5695 ett_h245_T_g7231, T_g7231_sequence);
5697 return offset;
5702 static int
5703 dissect_h245_INTEGER_1_448(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5704 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5705 1U, 448U, NULL, false);
5707 return offset;
5711 static const per_sequence_t IS11172AudioCapability_sequence[] = {
5712 { &hf_h245_audioLayer1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5713 { &hf_h245_audioLayer2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5714 { &hf_h245_audioLayer3 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5715 { &hf_h245_audioSampling32k, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5716 { &hf_h245_audioSampling44k1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5717 { &hf_h245_audioSampling48k, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5718 { &hf_h245_singleChannel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5719 { &hf_h245_twoChannels , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5720 { &hf_h245_bitRate_1_448 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_448 },
5721 { NULL, 0, 0, NULL }
5724 static int
5725 dissect_h245_IS11172AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5726 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5727 ett_h245_IS11172AudioCapability, IS11172AudioCapability_sequence);
5729 return offset;
5734 static int
5735 dissect_h245_INTEGER_1_1130(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5736 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5737 1U, 1130U, NULL, false);
5739 return offset;
5743 static const per_sequence_t IS13818AudioCapability_sequence[] = {
5744 { &hf_h245_audioLayer1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5745 { &hf_h245_audioLayer2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5746 { &hf_h245_audioLayer3 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5747 { &hf_h245_audioSampling16k, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5748 { &hf_h245_audioSampling22k05, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5749 { &hf_h245_audioSampling24k, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5750 { &hf_h245_audioSampling32k, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5751 { &hf_h245_audioSampling44k1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5752 { &hf_h245_audioSampling48k, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5753 { &hf_h245_singleChannel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5754 { &hf_h245_twoChannels , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5755 { &hf_h245_threeChannels2_1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5756 { &hf_h245_threeChannels3_0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5757 { &hf_h245_fourChannels2_0_2_0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5758 { &hf_h245_fourChannels2_2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5759 { &hf_h245_fourChannels3_1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5760 { &hf_h245_fiveChannels3_0_2_0, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5761 { &hf_h245_fiveChannels3_2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5762 { &hf_h245_lowFrequencyEnhancement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5763 { &hf_h245_multilingual , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5764 { &hf_h245_bitRate2_1_1130, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_1130 },
5765 { NULL, 0, 0, NULL }
5768 static int
5769 dissect_h245_IS13818AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5770 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5771 ett_h245_IS13818AudioCapability, IS13818AudioCapability_sequence);
5773 return offset;
5778 static int
5779 dissect_h245_INTEGER_27_78(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5780 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5781 27U, 78U, NULL, false);
5783 return offset;
5788 static int
5789 dissect_h245_INTEGER_23_66(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5790 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5791 23U, 66U, NULL, false);
5793 return offset;
5798 static int
5799 dissect_h245_INTEGER_6_17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5800 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5801 6U, 17U, NULL, false);
5803 return offset;
5807 static const per_sequence_t G723AnnexCAudioMode_sequence[] = {
5808 { &hf_h245_highRateMode0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_27_78 },
5809 { &hf_h245_highRateMode1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_27_78 },
5810 { &hf_h245_lowRateMode0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_23_66 },
5811 { &hf_h245_lowRateMode1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_23_66 },
5812 { &hf_h245_sidMode0 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_6_17 },
5813 { &hf_h245_sidMode1 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_6_17 },
5814 { NULL, 0, 0, NULL }
5817 static int
5818 dissect_h245_G723AnnexCAudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5819 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5820 ett_h245_G723AnnexCAudioMode, G723AnnexCAudioMode_sequence);
5822 return offset;
5826 static const per_sequence_t G7231AnnexCCapability_sequence[] = {
5827 { &hf_h245_maxAl_sduAudioFrames, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
5828 { &hf_h245_silenceSuppression, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5829 { &hf_h245_g723AnnexCAudioMode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_G723AnnexCAudioMode },
5830 { NULL, 0, 0, NULL }
5833 static int
5834 dissect_h245_G7231AnnexCCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5835 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5836 ett_h245_G7231AnnexCCapability, G7231AnnexCCapability_sequence);
5838 return offset;
5842 static const per_sequence_t GSMAudioCapability_sequence[] = {
5843 { &hf_h245_audioUnitSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
5844 { &hf_h245_comfortNoise , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5845 { &hf_h245_scrambled , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5846 { NULL, 0, 0, NULL }
5849 static int
5850 dissect_h245_GSMAudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5851 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5852 ett_h245_GSMAudioCapability, GSMAudioCapability_sequence);
5854 return offset;
5858 static const per_sequence_t G729Extensions_sequence[] = {
5859 { &hf_h245_audioUnit , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_256 },
5860 { &hf_h245_annexA , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5861 { &hf_h245_annexB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5862 { &hf_h245_annexD , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5863 { &hf_h245_annexE , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5864 { &hf_h245_annexF , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5865 { &hf_h245_annexG , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5866 { &hf_h245_annexH , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
5867 { NULL, 0, 0, NULL }
5870 static int
5871 dissect_h245_G729Extensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5872 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5873 ett_h245_G729Extensions, G729Extensions_sequence);
5875 return offset;
5879 static const per_sequence_t VBDCapability_sequence[] = {
5880 { &hf_h245_vbd_cap_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AudioCapability },
5881 { NULL, 0, 0, NULL }
5884 static int
5885 dissect_h245_VBDCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5886 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5887 ett_h245_VBDCapability, VBDCapability_sequence);
5889 return offset;
5894 static int
5895 dissect_h245_GeneralString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5896 offset = dissect_per_GeneralString(tvb, offset, actx, tree, hf_index);
5898 return offset;
5902 static const per_sequence_t NoPTAudioTelephonyEventCapability_sequence[] = {
5903 { &hf_h245_audioTelephoneEvent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_GeneralString },
5904 { NULL, 0, 0, NULL }
5907 static int
5908 dissect_h245_NoPTAudioTelephonyEventCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5909 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5910 ett_h245_NoPTAudioTelephonyEventCapability, NoPTAudioTelephonyEventCapability_sequence);
5912 return offset;
5916 static const per_sequence_t NoPTAudioToneCapability_sequence[] = {
5917 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
5920 static int
5921 dissect_h245_NoPTAudioToneCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5922 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5923 ett_h245_NoPTAudioToneCapability, NoPTAudioToneCapability_sequence);
5925 return offset;
5929 static const value_string h245_AudioCapability_vals[] = {
5930 { AudioCapability_nonStandard, "nonStandard" },
5931 { AudioCapability_g711Alaw64k, "g711Alaw64k" },
5932 { AudioCapability_g711Alaw56k, "g711Alaw56k" },
5933 { AudioCapability_g711Ulaw64k, "g711Ulaw64k" },
5934 { AudioCapability_g711Ulaw56k, "g711Ulaw56k" },
5935 { AudioCapability_g722_64k, "g722-64k" },
5936 { AudioCapability_g722_56k, "g722-56k" },
5937 { AudioCapability_g722_48k, "g722-48k" },
5938 { AudioCapability_g7231, "g7231" },
5939 { AudioCapability_g728, "g728" },
5940 { AudioCapability_g729, "g729" },
5941 { AudioCapability_g729AnnexA, "g729AnnexA" },
5942 { AudioCapability_is11172AudioCapability, "is11172AudioCapability" },
5943 { AudioCapability_is13818AudioCapability, "is13818AudioCapability" },
5944 { AudioCapability_g729wAnnexB, "g729wAnnexB" },
5945 { AudioCapability_g729AnnexAwAnnexB, "g729AnnexAwAnnexB" },
5946 { AudioCapability_g7231AnnexCCapability, "g7231AnnexCCapability" },
5947 { AudioCapability_gsmFullRate, "gsmFullRate" },
5948 { AudioCapability_gsmHalfRate, "gsmHalfRate" },
5949 { AudioCapability_gsmEnhancedFullRate, "gsmEnhancedFullRate" },
5950 { AudioCapability_genericAudioCapability, "genericAudioCapability" },
5951 { AudioCapability_g729Extensions, "g729Extensions" },
5952 { AudioCapability_vbd, "vbd" },
5953 { AudioCapability_audioTelephonyEvent, "audioTelephonyEvent" },
5954 { AudioCapability_audioTone, "audioTone" },
5955 { 0, NULL }
5958 static const per_choice_t AudioCapability_choice[] = {
5959 { AudioCapability_nonStandard, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
5960 { AudioCapability_g711Alaw64k, &hf_h245_g711Alaw64k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5961 { AudioCapability_g711Alaw56k, &hf_h245_g711Alaw56k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5962 { AudioCapability_g711Ulaw64k, &hf_h245_g711Ulaw64k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5963 { AudioCapability_g711Ulaw56k, &hf_h245_g711Ulaw56k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5964 { AudioCapability_g722_64k, &hf_h245_g722_64k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5965 { AudioCapability_g722_56k, &hf_h245_g722_56k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5966 { AudioCapability_g722_48k, &hf_h245_g722_48k , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5967 { AudioCapability_g7231, &hf_h245_g7231 , ASN1_EXTENSION_ROOT , dissect_h245_T_g7231 },
5968 { AudioCapability_g728, &hf_h245_g728 , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5969 { AudioCapability_g729, &hf_h245_g729 , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5970 { AudioCapability_g729AnnexA, &hf_h245_g729AnnexA , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_256 },
5971 { AudioCapability_is11172AudioCapability, &hf_h245_is11172AudioCapability, ASN1_EXTENSION_ROOT , dissect_h245_IS11172AudioCapability },
5972 { AudioCapability_is13818AudioCapability, &hf_h245_is13818AudioCapability, ASN1_EXTENSION_ROOT , dissect_h245_IS13818AudioCapability },
5973 { AudioCapability_g729wAnnexB, &hf_h245_g729wAnnexB , ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_1_256 },
5974 { AudioCapability_g729AnnexAwAnnexB, &hf_h245_g729AnnexAwAnnexB, ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_1_256 },
5975 { AudioCapability_g7231AnnexCCapability, &hf_h245_g7231AnnexCCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_G7231AnnexCCapability },
5976 { AudioCapability_gsmFullRate, &hf_h245_gsmFullRate , ASN1_NOT_EXTENSION_ROOT, dissect_h245_GSMAudioCapability },
5977 { AudioCapability_gsmHalfRate, &hf_h245_gsmHalfRate , ASN1_NOT_EXTENSION_ROOT, dissect_h245_GSMAudioCapability },
5978 { AudioCapability_gsmEnhancedFullRate, &hf_h245_gsmEnhancedFullRate, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GSMAudioCapability },
5979 { AudioCapability_genericAudioCapability, &hf_h245_genericAudioCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
5980 { AudioCapability_g729Extensions, &hf_h245_g729Extensions , ASN1_NOT_EXTENSION_ROOT, dissect_h245_G729Extensions },
5981 { AudioCapability_vbd, &hf_h245_vbd , ASN1_NOT_EXTENSION_ROOT, dissect_h245_VBDCapability },
5982 { AudioCapability_audioTelephonyEvent, &hf_h245_audioTelephonyEvent, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NoPTAudioTelephonyEventCapability },
5983 { AudioCapability_audioTone, &hf_h245_audioTone , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NoPTAudioToneCapability },
5984 { 0, NULL, 0, NULL }
5987 static int
5988 dissect_h245_AudioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5989 // AudioCapability -> VBDCapability -> AudioCapability
5990 actx->pinfo->dissection_depth += 2;
5991 increment_dissection_depth(actx->pinfo);
5992 int32_t value;
5994 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5995 ett_h245_AudioCapability, AudioCapability_choice,
5996 &value);
5998 codec_type = val_to_str_const(value, h245_AudioCapability_short_vals, "<unknown>");
6000 actx->pinfo->dissection_depth -= 2;
6001 decrement_dissection_depth(actx->pinfo);
6002 return offset;
6006 static const per_sequence_t T_h233EncryptionReceiveCapability_sequence[] = {
6007 { &hf_h245_h233IVResponseTime, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
6008 { NULL, 0, 0, NULL }
6011 static int
6012 dissect_h245_T_h233EncryptionReceiveCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6013 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6014 ett_h245_T_h233EncryptionReceiveCapability, T_h233EncryptionReceiveCapability_sequence);
6016 return offset;
6020 static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
6021 { &hf_h245_nonStandardParams_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_NonStandardParameter },
6024 static int
6025 dissect_h245_SEQUENCE_OF_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6026 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6027 ett_h245_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
6029 return offset;
6033 static const per_sequence_t ConferenceCapability_sequence[] = {
6034 { &hf_h245_nonStandardParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_NonStandardParameter },
6035 { &hf_h245_chairControlCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
6036 { &hf_h245_videoIndicateMixingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
6037 { &hf_h245_multipointVisualizationCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_BOOLEAN },
6038 { NULL, 0, 0, NULL }
6041 static int
6042 dissect_h245_ConferenceCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6043 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6044 ett_h245_ConferenceCapability, ConferenceCapability_sequence);
6046 return offset;
6050 static const value_string h245_MediaEncryptionAlgorithm_vals[] = {
6051 { 0, "nonStandard" },
6052 { 1, "algorithm" },
6053 { 0, NULL }
6056 static const per_choice_t MediaEncryptionAlgorithm_choice[] = {
6057 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
6058 { 1, &hf_h245_algorithm , ASN1_EXTENSION_ROOT , dissect_h245_OBJECT_IDENTIFIER },
6059 { 0, NULL, 0, NULL }
6062 static int
6063 dissect_h245_MediaEncryptionAlgorithm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6064 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6065 ett_h245_MediaEncryptionAlgorithm, MediaEncryptionAlgorithm_choice,
6066 NULL);
6068 return offset;
6072 static const per_sequence_t EncryptionCapability_sequence_of[1] = {
6073 { &hf_h245_EncryptionCapability_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MediaEncryptionAlgorithm },
6076 static int
6077 dissect_h245_EncryptionCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6078 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6079 ett_h245_EncryptionCapability, EncryptionCapability_sequence_of,
6080 1, 256, false);
6082 return offset;
6086 static const per_sequence_t AuthenticationCapability_sequence[] = {
6087 { &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
6088 { &hf_h245_antiSpamAlgorithm, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_OBJECT_IDENTIFIER },
6089 { NULL, 0, 0, NULL }
6092 static int
6093 dissect_h245_AuthenticationCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6094 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6095 ett_h245_AuthenticationCapability, AuthenticationCapability_sequence);
6097 return offset;
6101 static const per_sequence_t IntegrityCapability_sequence[] = {
6102 { &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
6103 { NULL, 0, 0, NULL }
6106 static int
6107 dissect_h245_IntegrityCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6108 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6109 ett_h245_IntegrityCapability, IntegrityCapability_sequence);
6111 return offset;
6115 static const per_sequence_t EncryptionAuthenticationAndIntegrity_sequence[] = {
6116 { &hf_h245_encryptionCapability, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_EncryptionCapability },
6117 { &hf_h245_authenticationCapability, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_AuthenticationCapability },
6118 { &hf_h245_integrityCapability, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_IntegrityCapability },
6119 { &hf_h245_genericH235SecurityCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_GenericCapability },
6120 { NULL, 0, 0, NULL }
6123 static int
6124 dissect_h245_EncryptionAuthenticationAndIntegrity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6125 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6126 ett_h245_EncryptionAuthenticationAndIntegrity, EncryptionAuthenticationAndIntegrity_sequence);
6128 return offset;
6132 static const per_sequence_t H235SecurityCapability_sequence[] = {
6133 { &hf_h245_encryptionAuthenticationAndIntegrity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_EncryptionAuthenticationAndIntegrity },
6134 { &hf_h245_mediaCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
6135 { NULL, 0, 0, NULL }
6138 static int
6139 dissect_h245_H235SecurityCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6140 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6141 ett_h245_H235SecurityCapability, H235SecurityCapability_sequence);
6143 return offset;
6147 static const per_sequence_t SEQUENCE_SIZE_1_16_OF_NonStandardParameter_sequence_of[1] = {
6148 { &hf_h245_ui_nonStandard_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_NonStandardParameter },
6151 static int
6152 dissect_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6153 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6154 ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter, SEQUENCE_SIZE_1_16_OF_NonStandardParameter_sequence_of,
6155 1, 16, false);
6157 return offset;
6161 static const value_string h245_UserInputCapability_vals[] = {
6162 { 0, "nonStandard" },
6163 { 1, "basicString" },
6164 { 2, "iA5String" },
6165 { 3, "generalString" },
6166 { 4, "dtmf" },
6167 { 5, "hookflash" },
6168 { 6, "extendedAlphanumeric" },
6169 { 7, "encryptedBasicString" },
6170 { 8, "encryptedIA5String" },
6171 { 9, "encryptedGeneralString" },
6172 { 10, "secureDTMF" },
6173 { 11, "genericUserInputCapability" },
6174 { 0, NULL }
6177 static const per_choice_t UserInputCapability_choice[] = {
6178 { 0, &hf_h245_ui_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter },
6179 { 1, &hf_h245_basicString , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6180 { 2, &hf_h245_iA5String , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6181 { 3, &hf_h245_generalString , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6182 { 4, &hf_h245_dtmf , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6183 { 5, &hf_h245_hookflash , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6184 { 6, &hf_h245_extendedAlphanumericFlag, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
6185 { 7, &hf_h245_encryptedBasicString, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
6186 { 8, &hf_h245_encryptedIA5String, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
6187 { 9, &hf_h245_encryptedGeneralString, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
6188 { 10, &hf_h245_secureDTMF , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
6189 { 11, &hf_h245_genericUserInputCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
6190 { 0, NULL, 0, NULL }
6193 static int
6194 dissect_h245_UserInputCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6195 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6196 ett_h245_UserInputCapability, UserInputCapability_choice,
6197 NULL);
6199 return offset;
6203 static const value_string h245_MultiplexFormat_vals[] = {
6204 { 0, "nonStandard" },
6205 { 1, "h222Capability" },
6206 { 2, "h223Capability" },
6207 { 0, NULL }
6210 static const per_choice_t MultiplexFormat_choice[] = {
6211 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
6212 { 1, &hf_h245_h222Capability , ASN1_EXTENSION_ROOT , dissect_h245_H222Capability },
6213 { 2, &hf_h245_h223Capability , ASN1_EXTENSION_ROOT , dissect_h245_H223Capability },
6214 { 0, NULL, 0, NULL }
6217 static int
6218 dissect_h245_MultiplexFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6219 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6220 ett_h245_MultiplexFormat, MultiplexFormat_choice,
6221 NULL);
6223 return offset;
6227 static const per_sequence_t AlternativeCapabilitySet_sequence_of[1] = {
6228 { &hf_h245_AlternativeCapabilitySet_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
6231 static int
6232 dissect_h245_AlternativeCapabilitySet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6233 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
6234 ett_h245_AlternativeCapabilitySet, AlternativeCapabilitySet_sequence_of,
6235 1, 256, false);
6237 return offset;
6241 static const per_sequence_t SET_SIZE_1_256_OF_AlternativeCapabilitySet_set_of[1] = {
6242 { &hf_h245_simultaneousCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_AlternativeCapabilitySet },
6245 static int
6246 dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6247 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
6248 ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet, SET_SIZE_1_256_OF_AlternativeCapabilitySet_set_of,
6249 1, 256, false);
6251 return offset;
6255 static const per_sequence_t MultiplexedStreamCapability_sequence[] = {
6256 { &hf_h245_multiplexFormat, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexFormat },
6257 { &hf_h245_controlOnMuxStream, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
6258 { &hf_h245_capabilityOnMuxStream, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet },
6259 { NULL, 0, 0, NULL }
6262 static int
6263 dissect_h245_MultiplexedStreamCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6264 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6265 ett_h245_MultiplexedStreamCapability, MultiplexedStreamCapability_sequence);
6267 return offset;
6272 static int
6273 dissect_h245_INTEGER_96_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6274 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6275 96U, 127U, NULL, false);
6277 return offset;
6281 static const per_sequence_t AudioTelephonyEventCapability_sequence[] = {
6282 { &hf_h245_dynamicRTPPayloadType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_96_127 },
6283 { &hf_h245_audioTelephoneEvent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_GeneralString },
6284 { NULL, 0, 0, NULL }
6287 static int
6288 dissect_h245_AudioTelephonyEventCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6289 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6290 ett_h245_AudioTelephonyEventCapability, AudioTelephonyEventCapability_sequence);
6292 return offset;
6296 static const per_sequence_t AudioToneCapability_sequence[] = {
6297 { &hf_h245_dynamicRTPPayloadType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_96_127 },
6298 { NULL, 0, 0, NULL }
6301 static int
6302 dissect_h245_AudioToneCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6303 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6304 ett_h245_AudioToneCapability, AudioToneCapability_sequence);
6306 return offset;
6310 static const per_sequence_t T_separateStreamBool_sequence[] = {
6311 { &hf_h245_separatePort , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
6312 { &hf_h245_samePortBool , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
6313 { NULL, 0, 0, NULL }
6316 static int
6317 dissect_h245_T_separateStreamBool(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6318 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6319 ett_h245_T_separateStreamBool, T_separateStreamBool_sequence);
6321 return offset;
6325 static const per_sequence_t FECC_rfc2733_sequence[] = {
6326 { &hf_h245_redundancyEncodingBool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
6327 { &hf_h245_separateStreamBool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_separateStreamBool },
6328 { NULL, 0, 0, NULL }
6331 static int
6332 dissect_h245_FECC_rfc2733(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6333 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6334 ett_h245_FECC_rfc2733, FECC_rfc2733_sequence);
6336 return offset;
6340 static const value_string h245_DepFECCapability_vals[] = {
6341 { 0, "rfc2733" },
6342 { 0, NULL }
6345 static const per_choice_t DepFECCapability_choice[] = {
6346 { 0, &hf_h245_fecc_rfc2733 , ASN1_EXTENSION_ROOT , dissect_h245_FECC_rfc2733 },
6347 { 0, NULL, 0, NULL }
6350 static int
6351 dissect_h245_DepFECCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6352 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6353 ett_h245_DepFECCapability, DepFECCapability_choice,
6354 NULL);
6356 return offset;
6360 static const per_sequence_t MultiplePayloadStreamCapability_sequence[] = {
6361 { &hf_h245_capabilities , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet },
6362 { NULL, 0, 0, NULL }
6365 static int
6366 dissect_h245_MultiplePayloadStreamCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6367 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6368 ett_h245_MultiplePayloadStreamCapability, MultiplePayloadStreamCapability_sequence);
6370 return offset;
6375 static int
6376 dissect_h245_MaxRedundancy(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6377 offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index,
6378 1U, NO_BOUND, NULL, false);
6380 return offset;
6384 static const value_string h245_Rfc2733Format_vals[] = {
6385 { 0, "rfc2733rfc2198" },
6386 { 1, "rfc2733sameport" },
6387 { 2, "rfc2733diffport" },
6388 { 0, NULL }
6391 static const per_choice_t Rfc2733Format_choice[] = {
6392 { 0, &hf_h245_rfc2733rfc2198 , ASN1_NO_EXTENSIONS , dissect_h245_MaxRedundancy },
6393 { 1, &hf_h245_rfc2733sameport, ASN1_NO_EXTENSIONS , dissect_h245_MaxRedundancy },
6394 { 2, &hf_h245_rfc2733diffport, ASN1_NO_EXTENSIONS , dissect_h245_MaxRedundancy },
6395 { 0, NULL, 0, NULL }
6398 static int
6399 dissect_h245_Rfc2733Format(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6400 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6401 ett_h245_Rfc2733Format, Rfc2733Format_choice,
6402 NULL);
6404 return offset;
6408 static const per_sequence_t FECCapability_sequence[] = {
6409 { &hf_h245_protectedCapability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
6410 { &hf_h245_fecScheme , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OBJECT_IDENTIFIER },
6411 { &hf_h245_rfc2733Format , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Rfc2733Format },
6412 { NULL, 0, 0, NULL }
6415 static int
6416 dissect_h245_FECCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6417 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6418 ett_h245_FECCapability, FECCapability_sequence);
6420 return offset;
6424 const value_string h245_Capability_vals[] = {
6425 { 0, "nonStandard" },
6426 { 1, "receiveVideoCapability" },
6427 { 2, "transmitVideoCapability" },
6428 { 3, "receiveAndTransmitVideoCapability" },
6429 { 4, "receiveAudioCapability" },
6430 { 5, "transmitAudioCapability" },
6431 { 6, "receiveAndTransmitAudioCapability" },
6432 { 7, "receiveDataApplicationCapability" },
6433 { 8, "transmitDataApplicationCapability" },
6434 { 9, "receiveAndTransmitDataApplicationCapability" },
6435 { 10, "h233EncryptionTransmitCapability" },
6436 { 11, "h233EncryptionReceiveCapability" },
6437 { 12, "conferenceCapability" },
6438 { 13, "h235SecurityCapability" },
6439 { 14, "maxPendingReplacementFor" },
6440 { 15, "receiveUserInputCapability" },
6441 { 16, "transmitUserInputCapability" },
6442 { 17, "receiveAndTransmitUserInputCapability" },
6443 { 18, "genericControlCapability" },
6444 { 19, "receiveMultiplexedStreamCapability" },
6445 { 20, "transmitMultiplexedStreamCapability" },
6446 { 21, "receiveAndTransmitMultiplexedStreamCapability" },
6447 { 22, "receiveRTPAudioTelephonyEventCapability" },
6448 { 23, "receiveRTPAudioToneCapability" },
6449 { 24, "depFecCapability" },
6450 { 25, "multiplePayloadStreamCapability" },
6451 { 26, "fecCapability" },
6452 { 27, "redundancyEncodingCap" },
6453 { 28, "oneOfCapabilities" },
6454 { 0, NULL }
6457 static const per_choice_t Capability_choice[] = {
6458 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
6459 { 1, &hf_h245_receiveVideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_VideoCapability },
6460 { 2, &hf_h245_transmitVideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_VideoCapability },
6461 { 3, &hf_h245_receiveAndTransmitVideoCapability, ASN1_EXTENSION_ROOT , dissect_h245_VideoCapability },
6462 { 4, &hf_h245_receiveAudioCapability, ASN1_EXTENSION_ROOT , dissect_h245_AudioCapability },
6463 { 5, &hf_h245_transmitAudioCapability, ASN1_EXTENSION_ROOT , dissect_h245_AudioCapability },
6464 { 6, &hf_h245_receiveAndTransmitAudioCapability, ASN1_EXTENSION_ROOT , dissect_h245_AudioCapability },
6465 { 7, &hf_h245_receiveDataApplicationCapability, ASN1_EXTENSION_ROOT , dissect_h245_DataApplicationCapability },
6466 { 8, &hf_h245_transmitDataApplicationCapability, ASN1_EXTENSION_ROOT , dissect_h245_DataApplicationCapability },
6467 { 9, &hf_h245_receiveAndTransmitDataApplicationCapability, ASN1_EXTENSION_ROOT , dissect_h245_DataApplicationCapability },
6468 { 10, &hf_h245_h233EncryptionTransmitCapability, ASN1_EXTENSION_ROOT , dissect_h245_BOOLEAN },
6469 { 11, &hf_h245_h233EncryptionReceiveCapability, ASN1_EXTENSION_ROOT , dissect_h245_T_h233EncryptionReceiveCapability },
6470 { 12, &hf_h245_conferenceCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_ConferenceCapability },
6471 { 13, &hf_h245_h235SecurityCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H235SecurityCapability },
6472 { 14, &hf_h245_maxPendingReplacementFor, ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_0_255 },
6473 { 15, &hf_h245_receiveUserInputCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_UserInputCapability },
6474 { 16, &hf_h245_transmitUserInputCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_UserInputCapability },
6475 { 17, &hf_h245_receiveAndTransmitUserInputCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_UserInputCapability },
6476 { 18, &hf_h245_genericControlCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
6477 { 19, &hf_h245_receiveMultiplexedStreamCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplexedStreamCapability },
6478 { 20, &hf_h245_transmitMultiplexedStreamCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplexedStreamCapability },
6479 { 21, &hf_h245_receiveAndTransmitMultiplexedStreamCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplexedStreamCapability },
6480 { 22, &hf_h245_receiveRTPAudioTelephonyEventCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_AudioTelephonyEventCapability },
6481 { 23, &hf_h245_receiveRTPAudioToneCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_AudioToneCapability },
6482 { 24, &hf_h245_depFecCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_DepFECCapability },
6483 { 25, &hf_h245_multiplePayloadStreamCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplePayloadStreamCapability },
6484 { 26, &hf_h245_fecCapability , ASN1_NOT_EXTENSION_ROOT, dissect_h245_FECCapability },
6485 { 27, &hf_h245_redundancyEncodingCap, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RedundancyEncodingCapability },
6486 { 28, &hf_h245_oneOfCapabilities, ASN1_NOT_EXTENSION_ROOT, dissect_h245_AlternativeCapabilitySet },
6487 { 0, NULL, 0, NULL }
6491 dissect_h245_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6492 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6493 ett_h245_Capability, Capability_choice,
6494 NULL);
6496 return offset;
6500 static const per_sequence_t CapabilityTableEntry_sequence[] = {
6501 { &hf_h245_capabilityTableEntryNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
6502 { &hf_h245_capability , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h245_Capability },
6503 { NULL, 0, 0, NULL }
6506 static int
6507 dissect_h245_CapabilityTableEntry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6508 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6509 ett_h245_CapabilityTableEntry, CapabilityTableEntry_sequence);
6511 return offset;
6515 static const per_sequence_t SET_SIZE_1_256_OF_CapabilityTableEntry_set_of[1] = {
6516 { &hf_h245_capabilityTable_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntry },
6519 static int
6520 dissect_h245_SET_SIZE_1_256_OF_CapabilityTableEntry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6521 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
6522 ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry, SET_SIZE_1_256_OF_CapabilityTableEntry_set_of,
6523 1, 256, false);
6525 return offset;
6530 static int
6531 dissect_h245_CapabilityDescriptorNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6532 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6533 0U, 255U, NULL, false);
6535 return offset;
6539 static const per_sequence_t CapabilityDescriptor_sequence[] = {
6540 { &hf_h245_capabilityDescriptorNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityDescriptorNumber },
6541 { &hf_h245_simultaneousCapabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet },
6542 { NULL, 0, 0, NULL }
6545 static int
6546 dissect_h245_CapabilityDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6547 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6548 ett_h245_CapabilityDescriptor, CapabilityDescriptor_sequence);
6550 return offset;
6554 static const per_sequence_t SET_SIZE_1_256_OF_CapabilityDescriptor_set_of[1] = {
6555 { &hf_h245_capabilityDescriptors_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityDescriptor },
6558 static int
6559 dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6560 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
6561 ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor, SET_SIZE_1_256_OF_CapabilityDescriptor_set_of,
6562 1, 256, false);
6564 return offset;
6569 static int
6570 dissect_h245_T_subMessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6571 uint32_t subMessageIdentifier;
6572 gef_ctx_t *gefx;
6574 gefx = gef_ctx_get(actx->private_data);
6575 if (gefx) {
6576 /* If this is a standard generic message use hf_h245_subMessageIdentifier_standard to get
6577 * the value translated and make it fileterable.
6579 if (strcmp("GenericMessage/0.0.8.239.2", gefx->key) == 0) {
6580 hf_index = hf_h245_subMessageIdentifier_standard;
6584 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6585 0U, 127U, &subMessageIdentifier, false);
6587 if (gefx) {
6588 gefx->subid = wmem_strdup_printf(actx->pinfo->pool, "%u", subMessageIdentifier);
6589 gef_ctx_update_key(actx->pinfo->pool, gef_ctx_get(actx->private_data));
6591 if (hf_index == hf_h245_subMessageIdentifier_standard)
6593 col_append_str(actx->pinfo->cinfo, COL_INFO, val_to_str_const(subMessageIdentifier, h245_h239subMessageIdentifier_vals, "<unknown>") );
6594 snprintf(h245_pi->frame_label, 50, "%s", val_to_str_const(subMessageIdentifier, h245_h239subMessageIdentifier_vals, "<unknown>"));
6597 return offset;
6602 static int
6603 dissect_h245_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6604 gef_ctx_t *parent_gefx;
6606 parent_gefx = gef_ctx_get(actx->private_data);
6607 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, parent_gefx, NULL);
6608 offset = dissect_h245_GenericParameter(tvb, offset, actx, tree, hf_index);
6610 actx->private_data = parent_gefx;
6611 return offset;
6615 static const per_sequence_t T_messageContent_sequence_of[1] = {
6616 { &hf_h245_messageContent_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_messageContent_item },
6619 static int
6620 dissect_h245_T_messageContent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6621 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6622 ett_h245_T_messageContent, T_messageContent_sequence_of);
6624 return offset;
6628 static const per_sequence_t GenericMessage_sequence[] = {
6629 { &hf_h245_messageIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityIdentifier },
6630 { &hf_h245_subMessageIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_subMessageIdentifier },
6631 { &hf_h245_messageContent , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_messageContent },
6632 { NULL, 0, 0, NULL }
6635 static int
6636 dissect_h245_GenericMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6637 void *priv_data = actx->private_data;
6638 gef_ctx_t *gefx;
6640 /* check if not inherited from GenericInformation */
6641 gefx = gef_ctx_get(actx->private_data);
6642 if (!gefx) {
6643 gefx = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericMessage");
6644 actx->private_data = gefx;
6646 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6647 ett_h245_GenericMessage, GenericMessage_sequence);
6649 actx->private_data = priv_data;
6650 return offset;
6655 static int
6656 dissect_h245_GenericInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6657 void *priv_data = actx->private_data;
6658 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "GenericInformation");
6659 offset = dissect_h245_GenericMessage(tvb, offset, actx, tree, hf_index);
6661 actx->private_data = priv_data;
6662 return offset;
6666 static const per_sequence_t SEQUENCE_OF_GenericInformation_sequence_of[1] = {
6667 { &hf_h245_genericInformation_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_GenericInformation },
6670 static int
6671 dissect_h245_SEQUENCE_OF_GenericInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6672 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6673 ett_h245_SEQUENCE_OF_GenericInformation, SEQUENCE_OF_GenericInformation_sequence_of);
6675 return offset;
6679 static const per_sequence_t TerminalCapabilitySet_sequence[] = {
6680 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
6681 { &hf_h245_protocolIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OBJECT_IDENTIFIER },
6682 { &hf_h245_multiplexCapability, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_MultiplexCapability },
6683 { &hf_h245_capabilityTable, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_256_OF_CapabilityTableEntry },
6684 { &hf_h245_capabilityDescriptors, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptor },
6685 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
6686 { NULL, 0, 0, NULL }
6689 static int
6690 dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6691 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6692 ett_h245_TerminalCapabilitySet, TerminalCapabilitySet_sequence);
6695 if (h245_pi != NULL)
6696 h245_pi->msg_type = H245_TermCapSet;
6697 return offset;
6702 static int
6703 dissect_h245_LogicalChannelNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6704 uint32_t value;
6705 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6706 1U, 65535U, &value, false);
6708 h245_lc_temp = value & 0xfff;
6710 return offset;
6715 static int
6716 dissect_h245_OLC_fw_lcn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6717 offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index);
6719 if (upcoming_olc) upcoming_olc->fwd_lc_num = h245_lc_temp;
6720 h223_fw_lc_num = h245_lc_temp;
6721 return offset;
6725 static const value_string h245_EncryptionMode_vals[] = {
6726 { 0, "nonStandard" },
6727 { 1, "h233Encryption" },
6728 { 0, NULL }
6731 static const per_choice_t EncryptionMode_choice[] = {
6732 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
6733 { 1, &hf_h245_h233Encryption , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6734 { 0, NULL, 0, NULL }
6737 static int
6738 dissect_h245_EncryptionMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6739 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6740 ett_h245_EncryptionMode, EncryptionMode_choice,
6741 NULL);
6743 return offset;
6748 static int
6749 dissect_h245_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6750 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6751 0U, 127U, NULL, false);
6753 return offset;
6757 static const per_sequence_t RedundancyEncodingElement_sequence[] = {
6758 { &hf_h245_dataType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DataType },
6759 { &hf_h245_payloadType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_127 },
6760 { NULL, 0, 0, NULL }
6763 static int
6764 dissect_h245_RedundancyEncodingElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6765 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6766 ett_h245_RedundancyEncodingElement, RedundancyEncodingElement_sequence);
6768 return offset;
6772 static const per_sequence_t SEQUENCE_OF_RedundancyEncodingElement_sequence_of[1] = {
6773 { &hf_h245_secondary_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingElement },
6776 static int
6777 dissect_h245_SEQUENCE_OF_RedundancyEncodingElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6778 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6779 ett_h245_SEQUENCE_OF_RedundancyEncodingElement, SEQUENCE_OF_RedundancyEncodingElement_sequence_of);
6781 return offset;
6785 static const per_sequence_t T_rtpRedundancyEncoding_sequence[] = {
6786 { &hf_h245_primary , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_RedundancyEncodingElement },
6787 { &hf_h245_secondary , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_RedundancyEncodingElement },
6788 { NULL, 0, 0, NULL }
6791 static int
6792 dissect_h245_T_rtpRedundancyEncoding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6793 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6794 ett_h245_T_rtpRedundancyEncoding, T_rtpRedundancyEncoding_sequence);
6796 return offset;
6800 static const per_sequence_t RedundancyEncoding_sequence[] = {
6801 { &hf_h245_redundancyEncodingMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingMethod },
6802 { &hf_h245_secondaryEncoding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_DataType },
6803 { &hf_h245_rtpRedundancyEncoding, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T_rtpRedundancyEncoding },
6804 { NULL, 0, 0, NULL }
6807 static int
6808 dissect_h245_RedundancyEncoding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6809 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6810 ett_h245_RedundancyEncoding, RedundancyEncoding_sequence);
6812 return offset;
6816 static const per_sequence_t MultiplePayloadStreamElement_sequence[] = {
6817 { &hf_h245_dataType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DataType },
6818 { &hf_h245_payloadType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_127 },
6819 { NULL, 0, 0, NULL }
6822 static int
6823 dissect_h245_MultiplePayloadStreamElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6824 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6825 ett_h245_MultiplePayloadStreamElement, MultiplePayloadStreamElement_sequence);
6827 return offset;
6831 static const per_sequence_t SEQUENCE_OF_MultiplePayloadStreamElement_sequence_of[1] = {
6832 { &hf_h245_elements_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplePayloadStreamElement },
6835 static int
6836 dissect_h245_SEQUENCE_OF_MultiplePayloadStreamElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6837 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6838 ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement, SEQUENCE_OF_MultiplePayloadStreamElement_sequence_of);
6840 return offset;
6844 static const per_sequence_t MultiplePayloadStream_sequence[] = {
6845 { &hf_h245_elements , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_OF_MultiplePayloadStreamElement },
6846 { NULL, 0, 0, NULL }
6849 static int
6850 dissect_h245_MultiplePayloadStream(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6851 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6852 ett_h245_MultiplePayloadStream, MultiplePayloadStream_sequence);
6854 return offset;
6858 static const per_sequence_t T_differentPort_sequence[] = {
6859 { &hf_h245_protectedSessionID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
6860 { &hf_h245_protectedPayloadType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_127 },
6861 { NULL, 0, 0, NULL }
6864 static int
6865 dissect_h245_T_differentPort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6866 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6867 ett_h245_T_differentPort, T_differentPort_sequence);
6869 return offset;
6873 static const per_sequence_t T_samePort_sequence[] = {
6874 { &hf_h245_protectedPayloadType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_127 },
6875 { NULL, 0, 0, NULL }
6878 static int
6879 dissect_h245_T_samePort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6880 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6881 ett_h245_T_samePort, T_samePort_sequence);
6883 return offset;
6887 static const value_string h245_DepSeparateStream_vals[] = {
6888 { 0, "differentPort" },
6889 { 1, "samePort" },
6890 { 0, NULL }
6893 static const per_choice_t DepSeparateStream_choice[] = {
6894 { 0, &hf_h245_differentPort , ASN1_EXTENSION_ROOT , dissect_h245_T_differentPort },
6895 { 1, &hf_h245_samePort , ASN1_EXTENSION_ROOT , dissect_h245_T_samePort },
6896 { 0, NULL, 0, NULL }
6899 static int
6900 dissect_h245_DepSeparateStream(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6901 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6902 ett_h245_DepSeparateStream, DepSeparateStream_choice,
6903 NULL);
6905 return offset;
6909 static const value_string h245_FECdata_mode_vals[] = {
6910 { 0, "redundancyEncoding" },
6911 { 1, "separateStream" },
6912 { 0, NULL }
6915 static const per_choice_t FECdata_mode_choice[] = {
6916 { 0, &hf_h245_redundancyEncodingFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
6917 { 1, &hf_h245_separateStream , ASN1_EXTENSION_ROOT , dissect_h245_DepSeparateStream },
6918 { 0, NULL, 0, NULL }
6921 static int
6922 dissect_h245_FECdata_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6923 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6924 ett_h245_FECdata_mode, FECdata_mode_choice,
6925 NULL);
6927 return offset;
6931 static const per_sequence_t RFC2733Data_sequence[] = {
6932 { &hf_h245_fec_data_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_FECdata_mode },
6933 { NULL, 0, 0, NULL }
6936 static int
6937 dissect_h245_RFC2733Data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6938 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6939 ett_h245_RFC2733Data, RFC2733Data_sequence);
6941 return offset;
6945 static const value_string h245_DepFECData_vals[] = {
6946 { 0, "rfc2733" },
6947 { 0, NULL }
6950 static const per_choice_t DepFECData_choice[] = {
6951 { 0, &hf_h245_dep_rfc2733 , ASN1_NO_EXTENSIONS , dissect_h245_RFC2733Data },
6952 { 0, NULL, 0, NULL }
6955 static int
6956 dissect_h245_DepFECData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6957 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6958 ett_h245_DepFECData, DepFECData_choice,
6959 NULL);
6961 return offset;
6965 static const per_sequence_t T_mode_rfc2733sameport_sequence[] = {
6966 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
6969 static int
6970 dissect_h245_T_mode_rfc2733sameport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6971 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6972 ett_h245_T_mode_rfc2733sameport, T_mode_rfc2733sameport_sequence);
6974 return offset;
6978 static const per_sequence_t T_mode_rfc2733diffport_sequence[] = {
6979 { &hf_h245_protectedChannel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
6980 { NULL, 0, 0, NULL }
6983 static int
6984 dissect_h245_T_mode_rfc2733diffport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6985 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6986 ett_h245_T_mode_rfc2733diffport, T_mode_rfc2733diffport_sequence);
6988 return offset;
6992 static const value_string h245_T_pktMode_vals[] = {
6993 { 0, "rfc2198coding" },
6994 { 1, "rfc2733sameport" },
6995 { 2, "rfc2733diffport" },
6996 { 0, NULL }
6999 static const per_choice_t T_pktMode_choice[] = {
7000 { 0, &hf_h245_rfc2198coding , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7001 { 1, &hf_h245_mode_rfc2733sameport, ASN1_EXTENSION_ROOT , dissect_h245_T_mode_rfc2733sameport },
7002 { 2, &hf_h245_mode_rfc2733diffport, ASN1_EXTENSION_ROOT , dissect_h245_T_mode_rfc2733diffport },
7003 { 0, NULL, 0, NULL }
7006 static int
7007 dissect_h245_T_pktMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7008 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7009 ett_h245_T_pktMode, T_pktMode_choice,
7010 NULL);
7012 return offset;
7016 static const per_sequence_t T_rfc2733_sequence[] = {
7017 { &hf_h245_protectedPayloadType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_127 },
7018 { &hf_h245_fecScheme , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OBJECT_IDENTIFIER },
7019 { &hf_h245_pktMode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_pktMode },
7020 { NULL, 0, 0, NULL }
7023 static int
7024 dissect_h245_T_rfc2733(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7025 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7026 ett_h245_T_rfc2733, T_rfc2733_sequence);
7028 return offset;
7032 static const value_string h245_FECData_vals[] = {
7033 { 0, "rfc2733" },
7034 { 0, NULL }
7037 static const per_choice_t FECData_choice[] = {
7038 { 0, &hf_h245_rfc2733 , ASN1_EXTENSION_ROOT , dissect_h245_T_rfc2733 },
7039 { 0, NULL, 0, NULL }
7042 static int
7043 dissect_h245_FECData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7044 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7045 ett_h245_FECData, FECData_choice,
7046 NULL);
7048 return offset;
7052 static const value_string h245_T_mediaType_vals[] = {
7053 { 0, "nonStandard" },
7054 { 1, "videoData" },
7055 { 2, "audioData" },
7056 { 3, "data" },
7057 { 4, "redundancyEncoding" },
7058 { 5, "multiplePayloadStream" },
7059 { 6, "depFec" },
7060 { 7, "fec" },
7061 { 0, NULL }
7064 static const per_choice_t T_mediaType_choice[] = {
7065 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
7066 { 1, &hf_h245_videoData , ASN1_EXTENSION_ROOT , dissect_h245_VideoCapability },
7067 { 2, &hf_h245_audioData , ASN1_EXTENSION_ROOT , dissect_h245_AudioCapability },
7068 { 3, &hf_h245_data , ASN1_EXTENSION_ROOT , dissect_h245_DataApplicationCapability },
7069 { 4, &hf_h245_redundancyEncoding, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RedundancyEncoding },
7070 { 5, &hf_h245_multiplePayloadStream, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplePayloadStream },
7071 { 6, &hf_h245_depFec , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DepFECData },
7072 { 7, &hf_h245_fec , ASN1_NOT_EXTENSION_ROOT, dissect_h245_FECData },
7073 { 0, NULL, 0, NULL }
7076 static int
7077 dissect_h245_T_mediaType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7078 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7079 ett_h245_T_mediaType, T_mediaType_choice,
7080 NULL);
7082 return offset;
7086 static const per_sequence_t H235Media_sequence[] = {
7087 { &hf_h245_encryptionAuthenticationAndIntegrity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_EncryptionAuthenticationAndIntegrity },
7088 { &hf_h245_mediaType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_mediaType },
7089 { NULL, 0, 0, NULL }
7092 static int
7093 dissect_h245_H235Media(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7094 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7095 ett_h245_H235Media, H235Media_sequence);
7097 return offset;
7101 static const per_sequence_t MultiplexedStreamParameter_sequence[] = {
7102 { &hf_h245_multiplexFormat, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexFormat },
7103 { &hf_h245_controlOnMuxStream, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7104 { NULL, 0, 0, NULL }
7107 static int
7108 dissect_h245_MultiplexedStreamParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7109 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7110 ett_h245_MultiplexedStreamParameter, MultiplexedStreamParameter_sequence);
7112 return offset;
7116 static const value_string h245_DataType_vals[] = {
7117 { 0, "nonStandard" },
7118 { 1, "nullData" },
7119 { 2, "videoData" },
7120 { 3, "audioData" },
7121 { 4, "data" },
7122 { 5, "encryptionData" },
7123 { 6, "h235Control" },
7124 { 7, "h235Media" },
7125 { 8, "multiplexedStream" },
7126 { 9, "redundancyEncoding" },
7127 { 10, "multiplePayloadStream" },
7128 { 11, "depFec" },
7129 { 12, "fec" },
7130 { 0, NULL }
7133 static const per_choice_t DataType_choice[] = {
7134 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
7135 { 1, &hf_h245_nullData , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7136 { 2, &hf_h245_videoData , ASN1_EXTENSION_ROOT , dissect_h245_VideoCapability },
7137 { 3, &hf_h245_audioData , ASN1_EXTENSION_ROOT , dissect_h245_AudioCapability },
7138 { 4, &hf_h245_data , ASN1_EXTENSION_ROOT , dissect_h245_DataApplicationCapability },
7139 { 5, &hf_h245_encryptionData , ASN1_EXTENSION_ROOT , dissect_h245_EncryptionMode },
7140 { 6, &hf_h245_h235Control , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NonStandardParameter },
7141 { 7, &hf_h245_h235Media , ASN1_NOT_EXTENSION_ROOT, dissect_h245_H235Media },
7142 { 8, &hf_h245_multiplexedStream, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplexedStreamParameter },
7143 { 9, &hf_h245_redundancyEncoding, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RedundancyEncoding },
7144 { 10, &hf_h245_multiplePayloadStream, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplePayloadStream },
7145 { 11, &hf_h245_depFec , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DepFECData },
7146 { 12, &hf_h245_fec , ASN1_NOT_EXTENSION_ROOT, dissect_h245_FECData },
7147 { 0, NULL, 0, NULL }
7150 static int
7151 dissect_h245_DataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7152 // DataType -> H235Media -> H235Media/mediaType -> RedundancyEncoding -> DataType
7153 actx->pinfo->dissection_depth += 4;
7154 increment_dissection_depth(actx->pinfo);
7155 int choice_index;
7157 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7158 ett_h245_DataType, DataType_choice,
7159 &choice_index);
7162 if (upcoming_channel){
7163 if (choice_index==2){
7164 upcoming_channel->is_video=true;
7165 }else{
7166 upcoming_channel->is_video=false;
7171 actx->pinfo->dissection_depth -= 4;
7172 decrement_dissection_depth(actx->pinfo);
7173 return offset;
7178 static int
7179 dissect_h245_INTEGER_0_8191(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7180 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7181 0U, 8191U, NULL, false);
7183 return offset;
7187 static const per_sequence_t H222LogicalChannelParameters_sequence[] = {
7188 { &hf_h245_resourceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
7189 { &hf_h245_subChannelID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_8191 },
7190 { &hf_h245_pcr_pid , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_8191 },
7191 { &hf_h245_programDescriptors, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING },
7192 { &hf_h245_streamDescriptors, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING },
7193 { NULL, 0, 0, NULL }
7196 static int
7197 dissect_h245_H222LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7198 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7199 ett_h245_H222LogicalChannelParameters, H222LogicalChannelParameters_sequence);
7201 return offset;
7206 static int
7207 dissect_h245_T_h223_al_type_al1Framed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7208 if(h223_lc_params_temp)
7209 h223_lc_params_temp->al_type = al1Framed;
7210 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
7212 return offset;
7217 static int
7218 dissect_h245_T_h223_al_type_al1NotFramed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7219 if(h223_lc_params_temp)
7220 h223_lc_params_temp->al_type = al1NotFramed;
7221 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
7223 return offset;
7228 static int
7229 dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7230 if(h223_lc_params_temp)
7231 h223_lc_params_temp->al_type = al2WithoutSequenceNumbers;
7232 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
7234 return offset;
7239 static int
7240 dissect_h245_T_h223_al_type_al2WithSequenceNumbers(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7241 if(h223_lc_params_temp)
7242 h223_lc_params_temp->al_type = al2WithSequenceNumbers;
7243 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
7245 return offset;
7250 static int
7251 dissect_h245_T_controlFieldOctets(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7252 uint32_t value;
7253 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7254 0U, 2U, &value, false);
7256 if(h223_lc_params_temp && h223_lc_params_temp->al_params)
7257 ((h223_al3_params*)h223_lc_params_temp->al_params)->control_field_octets = value & 3 ;
7259 return offset;
7264 static int
7265 dissect_h245_T_al3_sendBufferSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7266 uint32_t value;
7267 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7268 0U, 16777215U, &value, false);
7270 if(h223_lc_params_temp && h223_lc_params_temp->al_params)
7271 ((h223_al3_params*)h223_lc_params_temp->al_params)->send_buffer_size = value & 0xfffff;
7273 return offset;
7277 static const per_sequence_t Al3_sequence[] = {
7278 { &hf_h245_controlFieldOctets, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_controlFieldOctets },
7279 { &hf_h245_al3_sendBufferSize, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T_al3_sendBufferSize },
7280 { NULL, 0, 0, NULL }
7283 static int
7284 dissect_h245_Al3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7285 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7286 ett_h245_Al3, Al3_sequence);
7288 return offset;
7293 static int
7294 dissect_h245_T_h223_al_type_al3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7295 if(h223_lc_params_temp) {
7296 h223_lc_params_temp->al_type = al3;
7297 h223_lc_params_temp->al_params = wmem_new(wmem_file_scope(), h223_al3_params);
7299 offset = dissect_h245_Al3(tvb, offset, actx, tree, hf_index);
7301 return offset;
7305 static const value_string h245_T_transferMode_vals[] = {
7306 { 0, "framed" },
7307 { 1, "unframed" },
7308 { 0, NULL }
7311 static const per_choice_t T_transferMode_choice[] = {
7312 { 0, &hf_h245_framed , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7313 { 1, &hf_h245_unframed , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7314 { 0, NULL, 0, NULL }
7317 static int
7318 dissect_h245_T_transferMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7319 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7320 ett_h245_T_transferMode, T_transferMode_choice,
7321 NULL);
7323 return offset;
7327 static const value_string h245_AL1HeaderFEC_vals[] = {
7328 { 0, "sebch16-7" },
7329 { 1, "golay24-12" },
7330 { 0, NULL }
7333 static const per_choice_t AL1HeaderFEC_choice[] = {
7334 { 0, &hf_h245_sebch16_7 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7335 { 1, &hf_h245_golay24_12 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7336 { 0, NULL, 0, NULL }
7339 static int
7340 dissect_h245_AL1HeaderFEC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7341 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7342 ett_h245_AL1HeaderFEC, AL1HeaderFEC_choice,
7343 NULL);
7345 return offset;
7349 static const value_string h245_AL1CrcLength_vals[] = {
7350 { 0, "crc4bit" },
7351 { 1, "crc12bit" },
7352 { 2, "crc20bit" },
7353 { 3, "crc28bit" },
7354 { 4, "crc8bit" },
7355 { 5, "crc16bit" },
7356 { 6, "crc32bit" },
7357 { 7, "crcNotUsed" },
7358 { 0, NULL }
7361 static const per_choice_t AL1CrcLength_choice[] = {
7362 { 0, &hf_h245_crc4bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7363 { 1, &hf_h245_crc12bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7364 { 2, &hf_h245_crc20bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7365 { 3, &hf_h245_crc28bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7366 { 4, &hf_h245_crc8bit , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7367 { 5, &hf_h245_crc16bit , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7368 { 6, &hf_h245_crc32bit , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7369 { 7, &hf_h245_crcNotUsed , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7370 { 0, NULL, 0, NULL }
7373 static int
7374 dissect_h245_AL1CrcLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7375 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7376 ett_h245_AL1CrcLength, AL1CrcLength_choice,
7377 NULL);
7379 return offset;
7384 static int
7385 dissect_h245_INTEGER_8_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7386 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7387 8U, 32U, NULL, false);
7389 return offset;
7394 static int
7395 dissect_h245_INTEGER_0_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7396 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7397 0U, 16U, NULL, false);
7399 return offset;
7403 static const value_string h245_T_numberOfRetransmissions_vals[] = {
7404 { 0, "finite" },
7405 { 1, "infinite" },
7406 { 0, NULL }
7409 static const per_choice_t T_numberOfRetransmissions_choice[] = {
7410 { 0, &hf_h245_finite , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_16 },
7411 { 1, &hf_h245_infinite , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7412 { 0, NULL, 0, NULL }
7415 static int
7416 dissect_h245_T_numberOfRetransmissions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7417 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7418 ett_h245_T_numberOfRetransmissions, T_numberOfRetransmissions_choice,
7419 NULL);
7421 return offset;
7425 static const per_sequence_t H223AnnexCArqParameters_sequence[] = {
7426 { &hf_h245_numberOfRetransmissions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_numberOfRetransmissions },
7427 { &hf_h245_sendBufferSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_16777215 },
7428 { NULL, 0, 0, NULL }
7431 static int
7432 dissect_h245_H223AnnexCArqParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7433 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7434 ett_h245_H223AnnexCArqParameters, H223AnnexCArqParameters_sequence);
7436 return offset;
7440 static const value_string h245_ArqType_vals[] = {
7441 { 0, "noArq" },
7442 { 1, "typeIArq" },
7443 { 2, "typeIIArq" },
7444 { 0, NULL }
7447 static const per_choice_t ArqType_choice[] = {
7448 { 0, &hf_h245_noArq , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7449 { 1, &hf_h245_typeIArq , ASN1_EXTENSION_ROOT , dissect_h245_H223AnnexCArqParameters },
7450 { 2, &hf_h245_typeIIArq , ASN1_EXTENSION_ROOT , dissect_h245_H223AnnexCArqParameters },
7451 { 0, NULL, 0, NULL }
7454 static int
7455 dissect_h245_ArqType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7456 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7457 ett_h245_ArqType, ArqType_choice,
7458 NULL);
7460 return offset;
7464 static const per_sequence_t H223AL1MParameters_sequence[] = {
7465 { &hf_h245_transferMode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_transferMode },
7466 { &hf_h245_aL1HeaderFEC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AL1HeaderFEC },
7467 { &hf_h245_crcLength2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AL1CrcLength },
7468 { &hf_h245_rcpcCodeRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_8_32 },
7469 { &hf_h245_arqType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ArqType },
7470 { &hf_h245_alpduInterleaving, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7471 { &hf_h245_alsduSplitting , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7472 { &hf_h245_rsCodeCorrection, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_127 },
7473 { NULL, 0, 0, NULL }
7476 static int
7477 dissect_h245_H223AL1MParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7478 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7479 ett_h245_H223AL1MParameters, H223AL1MParameters_sequence);
7481 return offset;
7486 static int
7487 dissect_h245_T_h223_al_type_al1M(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7488 if(h223_lc_params_temp)
7489 h223_lc_params_temp->al_type = al1M;
7490 offset = dissect_h245_H223AL1MParameters(tvb, offset, actx, tree, hf_index);
7492 return offset;
7496 static const value_string h245_AL2HeaderFEC_vals[] = {
7497 { 0, "sebch16-5" },
7498 { 1, "golay24-12" },
7499 { 0, NULL }
7502 static const per_choice_t AL2HeaderFEC_choice[] = {
7503 { 0, &hf_h245_sebch16_5 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7504 { 1, &hf_h245_golay24_12 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7505 { 0, NULL, 0, NULL }
7508 static int
7509 dissect_h245_AL2HeaderFEC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7510 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7511 ett_h245_AL2HeaderFEC, AL2HeaderFEC_choice,
7512 NULL);
7514 return offset;
7518 static const per_sequence_t H223AL2MParameters_sequence[] = {
7519 { &hf_h245_aL2HeaderFEC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AL2HeaderFEC },
7520 { &hf_h245_alpduInterleaving, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7521 { NULL, 0, 0, NULL }
7524 static int
7525 dissect_h245_H223AL2MParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7526 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7527 ett_h245_H223AL2MParameters, H223AL2MParameters_sequence);
7529 return offset;
7534 static int
7535 dissect_h245_T_h223_al_type_al2M(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7536 if(h223_lc_params_temp)
7537 h223_lc_params_temp->al_type = al2M;
7538 offset = dissect_h245_H223AL2MParameters(tvb, offset, actx, tree, hf_index);
7540 return offset;
7544 static const value_string h245_T_headerFormat_vals[] = {
7545 { 0, "sebch16-7" },
7546 { 1, "golay24-12" },
7547 { 0, NULL }
7550 static const per_choice_t T_headerFormat_choice[] = {
7551 { 0, &hf_h245_sebch16_7 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7552 { 1, &hf_h245_golay24_12 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7553 { 0, NULL, 0, NULL }
7556 static int
7557 dissect_h245_T_headerFormat(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7558 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7559 ett_h245_T_headerFormat, T_headerFormat_choice,
7560 NULL);
7562 return offset;
7566 static const value_string h245_AL3CrcLength_vals[] = {
7567 { 0, "crc4bit" },
7568 { 1, "crc12bit" },
7569 { 2, "crc20bit" },
7570 { 3, "crc28bit" },
7571 { 4, "crc8bit" },
7572 { 5, "crc16bit" },
7573 { 6, "crc32bit" },
7574 { 7, "crcNotUsed" },
7575 { 0, NULL }
7578 static const per_choice_t AL3CrcLength_choice[] = {
7579 { 0, &hf_h245_crc4bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7580 { 1, &hf_h245_crc12bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7581 { 2, &hf_h245_crc20bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7582 { 3, &hf_h245_crc28bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7583 { 4, &hf_h245_crc8bit , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7584 { 5, &hf_h245_crc16bit , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7585 { 6, &hf_h245_crc32bit , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7586 { 7, &hf_h245_crcNotUsed , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
7587 { 0, NULL, 0, NULL }
7590 static int
7591 dissect_h245_AL3CrcLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7592 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7593 ett_h245_AL3CrcLength, AL3CrcLength_choice,
7594 NULL);
7596 return offset;
7600 static const per_sequence_t H223AL3MParameters_sequence[] = {
7601 { &hf_h245_headerFormat , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_headerFormat },
7602 { &hf_h245_crlength2 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AL3CrcLength },
7603 { &hf_h245_rcpcCodeRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_8_32 },
7604 { &hf_h245_arqType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ArqType },
7605 { &hf_h245_alpduInterleaving, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7606 { &hf_h245_rsCodeCorrection, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_127 },
7607 { NULL, 0, 0, NULL }
7610 static int
7611 dissect_h245_H223AL3MParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7612 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7613 ett_h245_H223AL3MParameters, H223AL3MParameters_sequence);
7615 return offset;
7620 static int
7621 dissect_h245_T_h223_al_type_al3M(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7622 if(h223_lc_params_temp)
7623 h223_lc_params_temp->al_type = al3M;
7624 offset = dissect_h245_H223AL3MParameters(tvb, offset, actx, tree, hf_index);
7626 return offset;
7630 static const value_string h245_T_adaptationLayerType_vals[] = {
7631 { 0, "nonStandard" },
7632 { 1, "al1Framed" },
7633 { 2, "al1NotFramed" },
7634 { 3, "al2WithoutSequenceNumbers" },
7635 { 4, "al2WithSequenceNumbers" },
7636 { 5, "al3" },
7637 { 6, "al1M" },
7638 { 7, "al2M" },
7639 { 8, "al3M" },
7640 { 0, NULL }
7643 static const per_choice_t T_adaptationLayerType_choice[] = {
7644 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
7645 { 1, &hf_h245_h223_al_type_al1Framed, ASN1_EXTENSION_ROOT , dissect_h245_T_h223_al_type_al1Framed },
7646 { 2, &hf_h245_h223_al_type_al1NotFramed, ASN1_EXTENSION_ROOT , dissect_h245_T_h223_al_type_al1NotFramed },
7647 { 3, &hf_h245_h223_al_type_al2WithoutSequenceNumbers, ASN1_EXTENSION_ROOT , dissect_h245_T_h223_al_type_al2WithoutSequenceNumbers },
7648 { 4, &hf_h245_h223_al_type_al2WithSequenceNumbers, ASN1_EXTENSION_ROOT , dissect_h245_T_h223_al_type_al2WithSequenceNumbers },
7649 { 5, &hf_h245_h223_al_type_al3, ASN1_EXTENSION_ROOT , dissect_h245_T_h223_al_type_al3 },
7650 { 6, &hf_h245_h223_al_type_al1M, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_h223_al_type_al1M },
7651 { 7, &hf_h245_h223_al_type_al2M, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_h223_al_type_al2M },
7652 { 8, &hf_h245_h223_al_type_al3M, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_h223_al_type_al3M },
7653 { 0, NULL, 0, NULL }
7656 static int
7657 dissect_h245_T_adaptationLayerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7658 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7659 ett_h245_T_adaptationLayerType, T_adaptationLayerType_choice,
7660 NULL);
7662 return offset;
7667 static int
7668 dissect_h245_T_h223_lc_segmentableFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7669 bool value;
7670 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &value);
7672 if(h223_lc_params_temp)
7673 h223_lc_params_temp->segmentable = value;
7675 return offset;
7679 static const per_sequence_t H223LogicalChannelParameters_sequence[] = {
7680 { &hf_h245_adaptationLayerType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_adaptationLayerType },
7681 { &hf_h245_h223_lc_segmentableFlag, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_h223_lc_segmentableFlag },
7682 { NULL, 0, 0, NULL }
7686 dissect_h245_H223LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7687 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7688 ett_h245_H223LogicalChannelParameters, H223LogicalChannelParameters_sequence);
7690 return offset;
7695 static int
7696 dissect_h245_OLC_fw_h223_params(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7697 h223_fw_lc_params = wmem_new(wmem_file_scope(), h223_lc_params);
7698 h223_fw_lc_params->al_type = al_nonStandard;
7699 h223_fw_lc_params->al_params = NULL;
7700 h223_fw_lc_params->segmentable = 0;
7701 h223_fw_lc_params->subdissector = NULL;
7702 h223_lc_params_temp = h223_fw_lc_params;
7703 offset = dissect_h245_H223LogicalChannelParameters(tvb, offset, actx, tree, hf_index);
7705 return offset;
7709 static const value_string h245_CRCLength_vals[] = {
7710 { 0, "crc8bit" },
7711 { 1, "crc16bit" },
7712 { 2, "crc32bit" },
7713 { 0, NULL }
7716 static const per_choice_t CRCLength_choice[] = {
7717 { 0, &hf_h245_crc8bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7718 { 1, &hf_h245_crc16bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7719 { 2, &hf_h245_crc32bit , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7720 { 0, NULL, 0, NULL }
7723 static int
7724 dissect_h245_CRCLength(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7725 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7726 ett_h245_CRCLength, CRCLength_choice,
7727 NULL);
7729 return offset;
7733 static const per_sequence_t V76HDLCParameters_sequence[] = {
7734 { &hf_h245_crcLength , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CRCLength },
7735 { &hf_h245_n401 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_4095 },
7736 { &hf_h245_loopbackTestProcedure, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7737 { NULL, 0, 0, NULL }
7740 static int
7741 dissect_h245_V76HDLCParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7742 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7743 ett_h245_V76HDLCParameters, V76HDLCParameters_sequence);
7745 return offset;
7749 static const value_string h245_T_suspendResume_vals[] = {
7750 { 0, "noSuspendResume" },
7751 { 1, "suspendResumewAddress" },
7752 { 2, "suspendResumewoAddress" },
7753 { 0, NULL }
7756 static const per_choice_t T_suspendResume_choice[] = {
7757 { 0, &hf_h245_noSuspendResume, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7758 { 1, &hf_h245_suspendResumewAddress, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7759 { 2, &hf_h245_suspendResumewoAddress, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7760 { 0, NULL, 0, NULL }
7763 static int
7764 dissect_h245_T_suspendResume(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7765 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7766 ett_h245_T_suspendResume, T_suspendResume_choice,
7767 NULL);
7769 return offset;
7773 static const value_string h245_T_recovery_vals[] = {
7774 { 0, "rej" },
7775 { 1, "sREJ" },
7776 { 2, "mSREJ" },
7777 { 0, NULL }
7780 static const per_choice_t T_recovery_choice[] = {
7781 { 0, &hf_h245_rej , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7782 { 1, &hf_h245_sREJ , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7783 { 2, &hf_h245_mSREJ , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7784 { 0, NULL, 0, NULL }
7787 static int
7788 dissect_h245_T_recovery(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7789 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7790 ett_h245_T_recovery, T_recovery_choice,
7791 NULL);
7793 return offset;
7797 static const per_sequence_t T_eRM_sequence[] = {
7798 { &hf_h245_windowSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_127 },
7799 { &hf_h245_recovery , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_recovery },
7800 { NULL, 0, 0, NULL }
7803 static int
7804 dissect_h245_T_eRM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7805 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7806 ett_h245_T_eRM, T_eRM_sequence);
7808 return offset;
7812 static const value_string h245_V76LCP_mode_vals[] = {
7813 { 0, "eRM" },
7814 { 1, "uNERM" },
7815 { 0, NULL }
7818 static const per_choice_t V76LCP_mode_choice[] = {
7819 { 0, &hf_h245_eRM , ASN1_EXTENSION_ROOT , dissect_h245_T_eRM },
7820 { 1, &hf_h245_uNERM , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
7821 { 0, NULL, 0, NULL }
7824 static int
7825 dissect_h245_V76LCP_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7826 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7827 ett_h245_V76LCP_mode, V76LCP_mode_choice,
7828 NULL);
7830 return offset;
7834 static const per_sequence_t V75Parameters_sequence[] = {
7835 { &hf_h245_audioHeaderPresent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7836 { NULL, 0, 0, NULL }
7839 static int
7840 dissect_h245_V75Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7841 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7842 ett_h245_V75Parameters, V75Parameters_sequence);
7844 return offset;
7848 static const per_sequence_t V76LogicalChannelParameters_sequence[] = {
7849 { &hf_h245_hdlcParameters , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_V76HDLCParameters },
7850 { &hf_h245_suspendResume , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_suspendResume },
7851 { &hf_h245_uIH , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
7852 { &hf_h245_v76_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_V76LCP_mode },
7853 { &hf_h245_v75Parameters , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_V75Parameters },
7854 { NULL, 0, 0, NULL }
7857 static int
7858 dissect_h245_V76LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7859 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7860 ett_h245_V76LogicalChannelParameters, V76LogicalChannelParameters_sequence);
7862 return offset;
7867 static int
7868 dissect_h245_Ipv4_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7869 tvbuff_t *value_tvb;
7871 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
7872 4, 4, false, &value_tvb);
7875 if (upcoming_channel && upcoming_channel->upcoming_addr) {
7876 tvb_memcpy(value_tvb, upcoming_channel->upcoming_addr->addr_buf, 0, 4);
7877 set_address(&upcoming_channel->upcoming_addr->addr, AT_IPv4, 4, upcoming_channel->upcoming_addr->addr_buf);
7880 return offset;
7885 static int
7886 dissect_h245_TsapIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7887 uint32_t tsapIdentifier;
7889 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7890 0U, 65535U, &tsapIdentifier, false);
7893 if (upcoming_channel && upcoming_channel->upcoming_addr) {
7894 upcoming_channel->upcoming_addr->port = tsapIdentifier;
7897 return offset;
7901 static const per_sequence_t T_iPAddress_sequence[] = {
7902 { &hf_h245_ip4_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Ipv4_network },
7903 { &hf_h245_tsapIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TsapIdentifier },
7904 { NULL, 0, 0, NULL }
7907 static int
7908 dissect_h245_T_iPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7909 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7910 ett_h245_T_iPAddress, T_iPAddress_sequence);
7912 return offset;
7917 static int
7918 dissect_h245_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7919 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
7920 6, 6, false, NULL);
7922 return offset;
7927 static int
7928 dissect_h245_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7929 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
7930 4, 4, false, NULL);
7932 return offset;
7937 static int
7938 dissect_h245_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7939 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
7940 2, 2, false, NULL);
7942 return offset;
7946 static const per_sequence_t T_iPXAddress_sequence[] = {
7947 { &hf_h245_node , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_6 },
7948 { &hf_h245_netnum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_4 },
7949 { &hf_h245_ipx_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_2 },
7950 { NULL, 0, 0, NULL }
7953 static int
7954 dissect_h245_T_iPXAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7955 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7956 ett_h245_T_iPXAddress, T_iPXAddress_sequence);
7958 return offset;
7963 static int
7964 dissect_h245_T_ip6_network(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7965 tvbuff_t *value_tvb;
7967 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
7968 16, 16, false, &value_tvb);
7971 if (upcoming_channel && upcoming_channel->upcoming_addr) {
7972 tvb_memcpy(value_tvb, upcoming_channel->upcoming_addr->addr_buf, 0, 16);
7973 set_address(&upcoming_channel->upcoming_addr->addr, AT_IPv6, 16, upcoming_channel->upcoming_addr->addr_buf);
7976 return offset;
7981 static int
7982 dissect_h245_T_ipv6_tsapIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7983 uint32_t tsapIdentifier;
7985 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
7986 0U, 65535U, &tsapIdentifier, false);
7989 if (upcoming_channel && upcoming_channel->upcoming_addr) {
7990 upcoming_channel->upcoming_addr->port = tsapIdentifier;
7993 return offset;
7997 static const per_sequence_t T_iP6Address_sequence[] = {
7998 { &hf_h245_ip6_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_ip6_network },
7999 { &hf_h245_ipv6_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_ipv6_tsapIdentifier },
8000 { NULL, 0, 0, NULL }
8003 static int
8004 dissect_h245_T_iP6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8005 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8006 ett_h245_T_iP6Address, T_iP6Address_sequence);
8008 return offset;
8012 static const value_string h245_T_routing_vals[] = {
8013 { 0, "strict" },
8014 { 1, "loose" },
8015 { 0, NULL }
8018 static const per_choice_t T_routing_choice[] = {
8019 { 0, &hf_h245_strict , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
8020 { 1, &hf_h245_loose , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
8021 { 0, NULL, 0, NULL }
8024 static int
8025 dissect_h245_T_routing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8026 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8027 ett_h245_T_routing, T_routing_choice,
8028 NULL);
8030 return offset;
8034 static const per_sequence_t T_route_sequence_of[1] = {
8035 { &hf_h245_route_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_4 },
8038 static int
8039 dissect_h245_T_route(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8040 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
8041 ett_h245_T_route, T_route_sequence_of);
8043 return offset;
8047 static const per_sequence_t T_iPSourceRouteAddress_sequence[] = {
8048 { &hf_h245_routing , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_routing },
8049 { &hf_h245_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_4 },
8050 { &hf_h245_iPSrcRoute_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
8051 { &hf_h245_route , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_route },
8052 { NULL, 0, 0, NULL }
8055 static int
8056 dissect_h245_T_iPSourceRouteAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8057 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8058 ett_h245_T_iPSourceRouteAddress, T_iPSourceRouteAddress_sequence);
8060 return offset;
8064 const value_string h245_UnicastAddress_vals[] = {
8065 { 0, "iPAddress" },
8066 { 1, "iPXAddress" },
8067 { 2, "iP6Address" },
8068 { 3, "netBios" },
8069 { 4, "iPSourceRouteAddress" },
8070 { 5, "nsap" },
8071 { 6, "nonStandardAddress" },
8072 { 0, NULL }
8075 static const per_choice_t UnicastAddress_choice[] = {
8076 { 0, &hf_h245_iPAddress , ASN1_EXTENSION_ROOT , dissect_h245_T_iPAddress },
8077 { 1, &hf_h245_iPXAddress , ASN1_EXTENSION_ROOT , dissect_h245_T_iPXAddress },
8078 { 2, &hf_h245_iP6Address , ASN1_EXTENSION_ROOT , dissect_h245_T_iP6Address },
8079 { 3, &hf_h245_netBios , ASN1_EXTENSION_ROOT , dissect_h245_OCTET_STRING_SIZE_16 },
8080 { 4, &hf_h245_iPSourceRouteAddress, ASN1_EXTENSION_ROOT , dissect_h245_T_iPSourceRouteAddress },
8081 { 5, &hf_h245_nsap , ASN1_NOT_EXTENSION_ROOT, dissect_h245_OCTET_STRING_SIZE_1_20 },
8082 { 6, &hf_h245_nonStandardAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NonStandardParameter },
8083 { 0, NULL, 0, NULL }
8087 dissect_h245_UnicastAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8088 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8089 ett_h245_UnicastAddress, UnicastAddress_choice,
8090 NULL);
8092 return offset;
8096 static const per_sequence_t MIPAddress_sequence[] = {
8097 { &hf_h245_mip4_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_4 },
8098 { &hf_h245_multicast_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
8099 { NULL, 0, 0, NULL }
8102 static int
8103 dissect_h245_MIPAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8104 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8105 ett_h245_MIPAddress, MIPAddress_sequence);
8107 return offset;
8111 static const per_sequence_t MIP6Address_sequence[] = {
8112 { &hf_h245_mip6_network , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_16 },
8113 { &hf_h245_multicast_IPv6_tsapIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
8114 { NULL, 0, 0, NULL }
8117 static int
8118 dissect_h245_MIP6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8119 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8120 ett_h245_MIP6Address, MIP6Address_sequence);
8122 return offset;
8126 const value_string h245_MulticastAddress_vals[] = {
8127 { 0, "iPAddress" },
8128 { 1, "iP6Address" },
8129 { 2, "nsap" },
8130 { 3, "nonStandardAddress" },
8131 { 0, NULL }
8134 static const per_choice_t MulticastAddress_choice[] = {
8135 { 0, &hf_h245_mIPAddress , ASN1_EXTENSION_ROOT , dissect_h245_MIPAddress },
8136 { 1, &hf_h245_mIP6Address , ASN1_EXTENSION_ROOT , dissect_h245_MIP6Address },
8137 { 2, &hf_h245_nsap , ASN1_NOT_EXTENSION_ROOT, dissect_h245_OCTET_STRING_SIZE_1_20 },
8138 { 3, &hf_h245_nonStandardAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NonStandardParameter },
8139 { 0, NULL, 0, NULL }
8143 dissect_h245_MulticastAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8144 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8145 ett_h245_MulticastAddress, MulticastAddress_choice,
8146 NULL);
8148 return offset;
8152 const value_string h245_TransportAddress_vals[] = {
8153 { 0, "unicastAddress" },
8154 { 1, "multicastAddress" },
8155 { 0, NULL }
8158 static const per_choice_t TransportAddress_choice[] = {
8159 { 0, &hf_h245_unicastAddress , ASN1_EXTENSION_ROOT , dissect_h245_UnicastAddress },
8160 { 1, &hf_h245_multicastAddress, ASN1_EXTENSION_ROOT , dissect_h245_MulticastAddress },
8161 { 0, NULL, 0, NULL }
8165 dissect_h245_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8166 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8167 ett_h245_TransportAddress, TransportAddress_choice,
8168 NULL);
8170 return offset;
8175 static int
8176 dissect_h245_T_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8177 if (upcoming_channel)
8178 upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
8179 offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
8181 if (upcoming_channel)
8182 upcoming_channel->upcoming_addr = NULL;
8183 return offset;
8188 static int
8189 dissect_h245_T_mediaControlChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8190 if (upcoming_channel)
8191 upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
8192 offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
8194 if (upcoming_channel)
8195 upcoming_channel->upcoming_addr = NULL;
8196 return offset;
8201 static int
8202 dissect_h245_McuNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8203 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8204 0U, 192U, NULL, false);
8206 return offset;
8211 static int
8212 dissect_h245_TerminalNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8213 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8214 0U, 192U, NULL, false);
8216 return offset;
8220 static const per_sequence_t TerminalLabel_sequence[] = {
8221 { &hf_h245_mcuNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_McuNumber },
8222 { &hf_h245_terminalNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalNumber },
8223 { NULL, 0, 0, NULL }
8226 static int
8227 dissect_h245_TerminalLabel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8228 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8229 ett_h245_TerminalLabel, TerminalLabel_sequence);
8231 return offset;
8235 static const value_string h245_T_mediaPacketization_vals[] = {
8236 { 0, "h261aVideoPacketization" },
8237 { 1, "rtpPayloadType" },
8238 { 0, NULL }
8241 static const per_choice_t T_mediaPacketization_choice[] = {
8242 { 0, &hf_h245_h261aVideoPacketizationFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8243 { 1, &hf_h245_rtpPayloadType , ASN1_NOT_EXTENSION_ROOT, dissect_h245_RTPPayloadType },
8244 { 0, NULL, 0, NULL }
8247 static int
8248 dissect_h245_T_mediaPacketization(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8249 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8250 ett_h245_T_mediaPacketization, T_mediaPacketization_choice,
8251 NULL);
8253 return offset;
8257 static const per_sequence_t H2250LogicalChannelParameters_sequence[] = {
8258 { &hf_h245_nonStandardParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_NonStandardParameter },
8259 { &hf_h245_sessionID_0_255, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
8260 { &hf_h245_associatedSessionID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_255 },
8261 { &hf_h245_mediaChannel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_mediaChannel },
8262 { &hf_h245_mediaGuaranteedDelivery, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_BOOLEAN },
8263 { &hf_h245_mediaControlChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_mediaControlChannel },
8264 { &hf_h245_mediaControlGuaranteedDelivery, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_BOOLEAN },
8265 { &hf_h245_silenceSuppression, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_BOOLEAN },
8266 { &hf_h245_destination , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TerminalLabel },
8267 { &hf_h245_dynamicRTPPayloadType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_96_127 },
8268 { &hf_h245_mediaPacketization, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_mediaPacketization },
8269 { &hf_h245_transportCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_TransportCapability },
8270 { &hf_h245_redundancyEncoding, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_RedundancyEncoding },
8271 { &hf_h245_source , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_TerminalLabel },
8272 { NULL, 0, 0, NULL }
8275 static int
8276 dissect_h245_H2250LogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8277 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8278 ett_h245_H2250LogicalChannelParameters, H2250LogicalChannelParameters_sequence);
8280 return offset;
8284 static const value_string h245_OLC_forw_multiplexParameters_vals[] = {
8285 { 0, "h222LogicalChannelParameters" },
8286 { 1, "h223LogicalChannelParameters" },
8287 { 2, "v76LogicalChannelParameters" },
8288 { 3, "h2250LogicalChannelParameters" },
8289 { 4, "none" },
8290 { 0, NULL }
8293 static const per_choice_t OLC_forw_multiplexParameters_choice[] = {
8294 { 0, &hf_h245_h222LogicalChannelParameters, ASN1_EXTENSION_ROOT , dissect_h245_H222LogicalChannelParameters },
8295 { 1, &hf_h245_olc_fw_h223_params, ASN1_EXTENSION_ROOT , dissect_h245_OLC_fw_h223_params },
8296 { 2, &hf_h245_v76LogicalChannelParameters, ASN1_EXTENSION_ROOT , dissect_h245_V76LogicalChannelParameters },
8297 { 3, &hf_h245_h2250LogicalChannelParameters, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H2250LogicalChannelParameters },
8298 { 4, &hf_h245_none , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
8299 { 0, NULL, 0, NULL }
8302 static int
8303 dissect_h245_OLC_forw_multiplexParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8304 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8305 ett_h245_OLC_forw_multiplexParameters, OLC_forw_multiplexParameters_choice,
8306 NULL);
8308 return offset;
8312 static const per_sequence_t T_forwardLogicalChannelParameters_sequence[] = {
8313 { &hf_h245_portNumber , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_65535 },
8314 { &hf_h245_dataType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DataType },
8315 { &hf_h245_olc_forw_multiplexParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OLC_forw_multiplexParameters },
8316 { &hf_h245_forwardLogicalChannelDependency, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_LogicalChannelNumber },
8317 { &hf_h245_replacementFor , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_LogicalChannelNumber },
8318 { NULL, 0, 0, NULL }
8321 static int
8322 dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8324 upcoming_channel = (upcoming_olc) ? &upcoming_olc->fwd_lc : NULL;
8326 h245_lc_dissector = NULL;
8327 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8328 ett_h245_T_forwardLogicalChannelParameters, T_forwardLogicalChannelParameters_sequence);
8330 if(h223_lc_params_temp && h245_lc_dissector)
8331 h223_lc_params_temp->subdissector = h245_lc_dissector;
8332 else if(h223_lc_params_temp)
8333 h223_lc_params_temp->subdissector = data_handle;
8335 if (upcoming_channel && codec_type) {
8336 (void) g_strlcpy(upcoming_channel->data_type_str, codec_type, sizeof(upcoming_channel->data_type_str));
8338 upcoming_channel = NULL;
8340 return offset;
8345 static int
8346 dissect_h245_OLC_rev_h223_params(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8347 h223_rev_lc_params = wmem_new(wmem_file_scope(), h223_lc_params);
8348 h223_rev_lc_params->al_type = al_nonStandard;
8349 h223_rev_lc_params->al_params = NULL;
8350 h223_rev_lc_params->segmentable = 0;
8351 h223_rev_lc_params->subdissector = NULL;
8352 h223_lc_params_temp = h223_rev_lc_params;
8353 offset = dissect_h245_H223LogicalChannelParameters(tvb, offset, actx, tree, hf_index);
8355 return offset;
8359 static const value_string h245_OLC_rev_multiplexParameters_vals[] = {
8360 { 0, "h223LogicalChannelParameters" },
8361 { 1, "v76LogicalChannelParameters" },
8362 { 2, "h2250LogicalChannelParameters" },
8363 { 0, NULL }
8366 static const per_choice_t OLC_rev_multiplexParameters_choice[] = {
8367 { 0, &hf_h245_olc_rev_h223_params, ASN1_EXTENSION_ROOT , dissect_h245_OLC_rev_h223_params },
8368 { 1, &hf_h245_v76LogicalChannelParameters, ASN1_EXTENSION_ROOT , dissect_h245_V76LogicalChannelParameters },
8369 { 2, &hf_h245_h2250LogicalChannelParameters, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H2250LogicalChannelParameters },
8370 { 0, NULL, 0, NULL }
8373 static int
8374 dissect_h245_OLC_rev_multiplexParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8375 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8376 ett_h245_OLC_rev_multiplexParameters, OLC_rev_multiplexParameters_choice,
8377 NULL);
8379 return offset;
8383 static const per_sequence_t OLC_reverseLogicalChannelParameters_sequence[] = {
8384 { &hf_h245_dataType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DataType },
8385 { &hf_h245_olc_rev_multiplexParameter, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OLC_rev_multiplexParameters },
8386 { &hf_h245_reverseLogicalChannelDependency, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_LogicalChannelNumber },
8387 { &hf_h245_replacementFor , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_LogicalChannelNumber },
8388 { NULL, 0, 0, NULL }
8391 static int
8392 dissect_h245_OLC_reverseLogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8394 upcoming_channel = (upcoming_olc) ? &upcoming_olc->rev_lc : NULL;
8396 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8397 ett_h245_OLC_reverseLogicalChannelParameters, OLC_reverseLogicalChannelParameters_sequence);
8400 if (upcoming_channel && codec_type) {
8401 (void) g_strlcpy(upcoming_channel->data_type_str, codec_type, sizeof(upcoming_channel->data_type_str));
8403 upcoming_channel = NULL;
8405 return offset;
8409 static const value_string h245_T_distribution_vals[] = {
8410 { 0, "unicast" },
8411 { 1, "multicast" },
8412 { 0, NULL }
8415 static const per_choice_t T_distribution_choice[] = {
8416 { 0, &hf_h245_unicast , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8417 { 1, &hf_h245_multicast , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8418 { 0, NULL, 0, NULL }
8421 static int
8422 dissect_h245_T_distribution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8423 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8424 ett_h245_T_distribution, T_distribution_choice,
8425 NULL);
8427 return offset;
8432 static int
8433 dissect_h245_T_e164Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8434 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
8435 1, 128, false, "0123456789#*,", 13,
8436 NULL);
8438 return offset;
8442 static const value_string h245_T_networkAddress_vals[] = {
8443 { 0, "q2931Address" },
8444 { 1, "e164Address" },
8445 { 2, "localAreaAddress" },
8446 { 0, NULL }
8449 static const per_choice_t T_networkAddress_choice[] = {
8450 { 0, &hf_h245_q2931Address , ASN1_EXTENSION_ROOT , dissect_h245_Q2931Address },
8451 { 1, &hf_h245_e164Address , ASN1_EXTENSION_ROOT , dissect_h245_T_e164Address },
8452 { 2, &hf_h245_localAreaAddress, ASN1_EXTENSION_ROOT , dissect_h245_TransportAddress },
8453 { 0, NULL, 0, NULL }
8456 static int
8457 dissect_h245_T_networkAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8458 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8459 ett_h245_T_networkAddress, T_networkAddress_choice,
8460 NULL);
8462 return offset;
8467 static int
8468 dissect_h245_OCTET_STRING_SIZE_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8469 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8470 1, 255, false, NULL);
8472 return offset;
8476 static const value_string h245_T_t120SetupProcedure_vals[] = {
8477 { 0, "originateCall" },
8478 { 1, "waitForCall" },
8479 { 2, "issueQuery" },
8480 { 0, NULL }
8483 static const per_choice_t T_t120SetupProcedure_choice[] = {
8484 { 0, &hf_h245_originateCall , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8485 { 1, &hf_h245_waitForCall , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8486 { 2, &hf_h245_issueQuery , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8487 { 0, NULL, 0, NULL }
8490 static int
8491 dissect_h245_T_t120SetupProcedure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8492 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8493 ett_h245_T_t120SetupProcedure, T_t120SetupProcedure_choice,
8494 NULL);
8496 return offset;
8500 static const per_sequence_t NetworkAccessParameters_sequence[] = {
8501 { &hf_h245_distribution , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_distribution },
8502 { &hf_h245_networkAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_networkAddress },
8503 { &hf_h245_associateConference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
8504 { &hf_h245_externalReference, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING_SIZE_1_255 },
8505 { &hf_h245_t120SetupProcedure, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T_t120SetupProcedure },
8506 { NULL, 0, 0, NULL }
8509 static int
8510 dissect_h245_NetworkAccessParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8511 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8512 ett_h245_NetworkAccessParameters, NetworkAccessParameters_sequence);
8514 return offset;
8519 static int
8520 dissect_h245_OCTET_STRING_SIZE_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8521 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
8522 1, 65535, false, NULL);
8524 return offset;
8529 static int
8530 dissect_h245_BIT_STRING_SIZE_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8531 offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
8532 1, 65535, false, NULL, 0, NULL, NULL);
8534 return offset;
8538 static const per_sequence_t EscrowData_sequence[] = {
8539 { &hf_h245_escrowID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OBJECT_IDENTIFIER },
8540 { &hf_h245_escrowValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BIT_STRING_SIZE_1_65535 },
8541 { NULL, 0, 0, NULL }
8544 static int
8545 dissect_h245_EscrowData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8546 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8547 ett_h245_EscrowData, EscrowData_sequence);
8549 return offset;
8553 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_EscrowData_sequence_of[1] = {
8554 { &hf_h245_escrowentry_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_EscrowData },
8557 static int
8558 dissect_h245_SEQUENCE_SIZE_1_256_OF_EscrowData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8559 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8560 ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData, SEQUENCE_SIZE_1_256_OF_EscrowData_sequence_of,
8561 1, 256, false);
8563 return offset;
8567 static const per_sequence_t EncryptionSync_sequence[] = {
8568 { &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NonStandardParameter },
8569 { &hf_h245_synchFlag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
8570 { &hf_h245_h235Key , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_1_65535 },
8571 { &hf_h245_escrowentry , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_SIZE_1_256_OF_EscrowData },
8572 { &hf_h245_genericParameter, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_GenericParameter },
8573 { NULL, 0, 0, NULL }
8576 static int
8577 dissect_h245_EncryptionSync(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8578 void *priv_data = actx->private_data;
8579 actx->private_data = gef_ctx_alloc(actx->pinfo->pool, NULL, "EncryptionSync");
8580 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8581 ett_h245_EncryptionSync, EncryptionSync_sequence);
8583 actx->private_data = priv_data;
8584 return offset;
8588 static const per_sequence_t OpenLogicalChannel_sequence[] = {
8589 { &hf_h245_olc_fw_lcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OLC_fw_lcn },
8590 { &hf_h245_forwardLogicalChannelParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_forwardLogicalChannelParameters },
8591 { &hf_h245_reverseLogicalChannelParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OLC_reverseLogicalChannelParameters },
8592 { &hf_h245_separateStack , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_NetworkAccessParameters },
8593 { &hf_h245_encryptionSync , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_EncryptionSync },
8594 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
8595 { NULL, 0, 0, NULL }
8599 dissect_h245_OpenLogicalChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8600 int32_t temp;
8602 upcoming_olc = (!actx->pinfo->fd->visited) ? wmem_new0(wmem_file_scope(), olc_info_t) : NULL;
8604 h223_fw_lc_num = 0;
8605 h223_lc_params_temp = NULL;
8607 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8608 ett_h245_OpenLogicalChannel, OpenLogicalChannel_sequence);
8611 if(h223_fw_lc_num != 0 && h223_fw_lc_params) {
8612 h223_pending_olc *pending = wmem_new(wmem_file_scope(), h223_pending_olc);
8613 pending->fw_channel_params = h223_fw_lc_params;
8614 pending->rev_channel_params = h223_rev_lc_params;
8615 temp = h223_fw_lc_num;
8616 if (actx->pinfo->p2p_dir > -1)
8617 wmem_map_insert(h223_pending_olc_reqs[actx->pinfo->p2p_dir], GINT_TO_POINTER(temp), pending);
8620 if (upcoming_olc) {
8621 if (fast_start) {
8622 h245_setup_channels(actx->pinfo, &upcoming_olc->rev_lc);
8623 } else {
8624 wmem_map_insert(h245_pending_olc_reqs,
8625 wmem_strdup(wmem_file_scope(), gen_olc_key(upcoming_olc->fwd_lc_num, &actx->pinfo->dst, &actx->pinfo->src, actx->pinfo->pool)),
8626 upcoming_olc);
8629 upcoming_olc = NULL;
8631 if (h245_pi != NULL)
8632 h245_pi->msg_type = H245_OpenLogChn;
8634 return offset;
8638 static const value_string h245_T_cLC_source_vals[] = {
8639 { 0, "user" },
8640 { 1, "lcse" },
8641 { 0, NULL }
8644 static const per_choice_t T_cLC_source_choice[] = {
8645 { 0, &hf_h245_user , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
8646 { 1, &hf_h245_lcse , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
8647 { 0, NULL, 0, NULL }
8650 static int
8651 dissect_h245_T_cLC_source(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8652 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8653 ett_h245_T_cLC_source, T_cLC_source_choice,
8654 NULL);
8656 return offset;
8660 static const value_string h245_Clc_reason_vals[] = {
8661 { 0, "unknown" },
8662 { 1, "reopen" },
8663 { 2, "reservationFailure" },
8664 { 3, "networkErrorCode" },
8665 { 0, NULL }
8668 static const per_choice_t Clc_reason_choice[] = {
8669 { 0, &hf_h245_unknown , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8670 { 1, &hf_h245_reopen , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8671 { 2, &hf_h245_reservationFailure, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8672 { 3, &hf_h245_networkErrorCode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_0_255 },
8673 { 0, NULL, 0, NULL }
8676 static int
8677 dissect_h245_Clc_reason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8678 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8679 ett_h245_Clc_reason, Clc_reason_choice,
8680 NULL);
8682 return offset;
8686 static const per_sequence_t CloseLogicalChannel_sequence[] = {
8687 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
8688 { &hf_h245_cLC_source , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_cLC_source },
8689 { &hf_h245_clc_reason , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_Clc_reason },
8690 { NULL, 0, 0, NULL }
8693 static int
8694 dissect_h245_CloseLogicalChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8695 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8696 ett_h245_CloseLogicalChannel, CloseLogicalChannel_sequence);
8699 if (h245_pi != NULL)
8700 h245_pi->msg_type = H245_CloseLogChn;
8701 return offset;
8705 static const value_string h245_T_reason_vals[] = {
8706 { 0, "unknown" },
8707 { 1, "normal" },
8708 { 2, "reopen" },
8709 { 3, "reservationFailure" },
8710 { 4, "networkErrorCode" },
8711 { 0, NULL }
8714 static const per_choice_t T_reason_choice[] = {
8715 { 0, &hf_h245_unknown , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8716 { 1, &hf_h245_normal , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8717 { 2, &hf_h245_reopen , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8718 { 3, &hf_h245_reservationFailure, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
8719 { 4, &hf_h245_networkErrorCode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_0_255 },
8720 { 0, NULL, 0, NULL }
8723 static int
8724 dissect_h245_T_reason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8725 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8726 ett_h245_T_reason, T_reason_choice,
8727 NULL);
8729 return offset;
8733 static const per_sequence_t RequestChannelClose_sequence[] = {
8734 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
8735 { &hf_h245_qosCapability , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_QOSCapability },
8736 { &hf_h245_reason , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_T_reason },
8737 { NULL, 0, 0, NULL }
8740 static int
8741 dissect_h245_RequestChannelClose(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8742 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8743 ett_h245_RequestChannelClose, RequestChannelClose_sequence);
8745 return offset;
8750 static int
8751 dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8752 uint32_t value;
8753 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8754 1U, 15U, &value, false);
8756 h223_mc = value & 0xf;
8758 return offset;
8763 static int
8764 dissect_h245_T_logicalChannelNum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8765 /*MultiplexElement/type/logicalChannelNumber*/
8766 uint32_t value;
8767 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8768 0U, 65535U, &value, false);
8770 h223_me->sublist = NULL;
8771 h223_me->vc = value & 0xffff;
8773 return offset;
8777 static const per_sequence_t T_subElementList_sequence_of[1] = {
8778 { &hf_h245_subElementList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexElement },
8781 static int
8782 dissect_h245_T_subElementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8783 h223_mux_element dummy_me, *parent_me = h223_me;
8784 memset (&dummy_me, 0, sizeof (h223_mux_element));
8785 h223_me = &dummy_me;
8786 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8787 ett_h245_T_subElementList, T_subElementList_sequence_of,
8788 2, 255, false);
8790 parent_me->sublist = dummy_me.next;
8791 h223_me = parent_me;
8792 h223_me->vc = 0;
8794 return offset;
8798 static const value_string h245_Me_type_vals[] = {
8799 { 0, "logicalChannelNumber" },
8800 { 1, "subElementList" },
8801 { 0, NULL }
8804 static const per_choice_t Me_type_choice[] = {
8805 { 0, &hf_h245_logicalChannelNum, ASN1_NO_EXTENSIONS , dissect_h245_T_logicalChannelNum },
8806 { 1, &hf_h245_subElementList , ASN1_NO_EXTENSIONS , dissect_h245_T_subElementList },
8807 { 0, NULL, 0, NULL }
8810 static int
8811 dissect_h245_Me_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8812 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8813 ett_h245_Me_type, Me_type_choice,
8814 NULL);
8816 return offset;
8821 static int
8822 dissect_h245_ME_finiteRepeatCount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8823 uint32_t value;
8824 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
8825 1U, 65535U, &value, false);
8827 h223_me->repeat_count = value & 0xffff;
8829 return offset;
8834 static int
8835 dissect_h245_T_untilClosingFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8836 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
8838 h223_me->repeat_count = 0;
8839 return offset;
8843 static const value_string h245_ME_repeatCount_vals[] = {
8844 { 0, "finite" },
8845 { 1, "untilClosingFlag" },
8846 { 0, NULL }
8849 static const per_choice_t ME_repeatCount_choice[] = {
8850 { 0, &hf_h245_me_repeatCount_finite, ASN1_NO_EXTENSIONS , dissect_h245_ME_finiteRepeatCount },
8851 { 1, &hf_h245_untilClosingFlag, ASN1_NO_EXTENSIONS , dissect_h245_T_untilClosingFlag },
8852 { 0, NULL, 0, NULL }
8855 static int
8856 dissect_h245_ME_repeatCount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8857 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
8858 ett_h245_ME_repeatCount, ME_repeatCount_choice,
8859 NULL);
8861 return offset;
8865 static const per_sequence_t MultiplexElement_sequence[] = {
8866 { &hf_h245_me_type , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_Me_type },
8867 { &hf_h245_me_repeatCount , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_ME_repeatCount },
8868 { NULL, 0, 0, NULL }
8871 static int
8872 dissect_h245_MultiplexElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8873 // MultiplexElement -> MultiplexElement/type -> MultiplexElement/type/subElementList -> MultiplexElement
8874 actx->pinfo->dissection_depth += 3;
8875 increment_dissection_depth(actx->pinfo);
8876 /*MultiplexElement*/
8877 h223_mux_element* me = wmem_new(wmem_file_scope(), h223_mux_element);
8878 h223_me->next = me;
8879 h223_me = me;
8880 h223_me->next = NULL;
8881 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8882 ett_h245_MultiplexElement, MultiplexElement_sequence);
8884 actx->pinfo->dissection_depth -= 3;
8885 decrement_dissection_depth(actx->pinfo);
8886 return offset;
8890 static const per_sequence_t T_elementList_sequence_of[1] = {
8891 { &hf_h245_elementList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexElement },
8894 static int
8895 dissect_h245_T_elementList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8896 /* create a h223_mux_element to hold onto the head of the list, since
8897 * h223_me will track the tail */
8898 h223_mux_element dummy_me;
8899 memset (&dummy_me, 0, sizeof (h223_mux_element));
8900 h223_me = &dummy_me;
8901 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
8902 ett_h245_T_elementList, T_elementList_sequence_of,
8903 1, 256, false);
8905 /* set h223_me to the head of the list for MEDescriptor to pick up */
8906 h223_me = dummy_me.next;
8908 return offset;
8912 static const per_sequence_t MultiplexEntryDescriptor_sequence[] = {
8913 { &hf_h245_multiplexTableEntryNumber, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexTableEntryNumber },
8914 { &hf_h245_elementList , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_h245_T_elementList },
8915 { NULL, 0, 0, NULL }
8918 static int
8919 dissect_h245_MultiplexEntryDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8920 /*MultiplexEntryDescriptor*/
8921 h223_me = NULL;
8922 h223_mc = 0;
8923 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8924 ett_h245_MultiplexEntryDescriptor, MultiplexEntryDescriptor_sequence);
8926 if(h223_set_mc_handle)
8927 (*h223_set_mc_handle)(actx->pinfo, h223_mc, h223_me);
8928 /* stuff */
8930 return offset;
8934 static const per_sequence_t SET_SIZE_1_15_OF_MultiplexEntryDescriptor_set_of[1] = {
8935 { &hf_h245_multiplexEntryDescriptors_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexEntryDescriptor },
8938 static int
8939 dissect_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8940 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
8941 ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor, SET_SIZE_1_15_OF_MultiplexEntryDescriptor_set_of,
8942 1, 15, false);
8944 return offset;
8948 static const per_sequence_t MultiplexEntrySend_sequence[] = {
8949 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
8950 { &hf_h245_multiplexEntryDescriptors, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor },
8951 { NULL, 0, 0, NULL }
8954 static int
8955 dissect_h245_MultiplexEntrySend(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8956 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8957 ett_h245_MultiplexEntrySend, MultiplexEntrySend_sequence);
8959 return offset;
8963 static const per_sequence_t SET_SIZE_1_15_OF_MultiplexTableEntryNumber_set_of[1] = {
8964 { &hf_h245_multiplexTableEntryNumbers_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexTableEntryNumber },
8967 static int
8968 dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8969 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
8970 ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber, SET_SIZE_1_15_OF_MultiplexTableEntryNumber_set_of,
8971 1, 15, false);
8973 return offset;
8977 static const per_sequence_t RequestMultiplexEntry_sequence[] = {
8978 { &hf_h245_entryNumbers , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber },
8979 { NULL, 0, 0, NULL }
8982 static int
8983 dissect_h245_RequestMultiplexEntry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
8984 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
8985 ett_h245_RequestMultiplexEntry, RequestMultiplexEntry_sequence);
8987 return offset;
8991 static const value_string h245_H261Resolution_vals[] = {
8992 { 0, "qcif" },
8993 { 1, "cif" },
8994 { 0, NULL }
8997 static const per_choice_t H261Resolution_choice[] = {
8998 { 0, &hf_h245_qcif , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
8999 { 1, &hf_h245_cif , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9000 { 0, NULL, 0, NULL }
9003 static int
9004 dissect_h245_H261Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9005 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9006 ett_h245_H261Resolution, H261Resolution_choice,
9007 NULL);
9009 return offset;
9013 static const per_sequence_t H261VideoMode_sequence[] = {
9014 { &hf_h245_h261_resolution, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_H261Resolution },
9015 { &hf_h245_bitRate_1_19200, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_19200 },
9016 { &hf_h245_stillImageTransmission, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9017 { NULL, 0, 0, NULL }
9020 static int
9021 dissect_h245_H261VideoMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9022 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9023 ett_h245_H261VideoMode, H261VideoMode_sequence);
9025 return offset;
9029 static const value_string h245_T_profileAndLevel_vals[] = {
9030 { 0, "profileAndLevel-SPatML" },
9031 { 1, "profileAndLevel-MPatLL" },
9032 { 2, "profileAndLevel-MPatML" },
9033 { 3, "profileAndLevel-MPatH-14" },
9034 { 4, "profileAndLevel-MPatHL" },
9035 { 5, "profileAndLevel-SNRatLL" },
9036 { 6, "profileAndLevel-SNRatML" },
9037 { 7, "profileAndLevel-SpatialatH-14" },
9038 { 8, "profileAndLevel-HPatML" },
9039 { 9, "profileAndLevel-HPatH-14" },
9040 { 10, "profileAndLevel-HPatHL" },
9041 { 0, NULL }
9044 static const per_choice_t T_profileAndLevel_choice[] = {
9045 { 0, &hf_h245_profileAndLevel_SPatMLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9046 { 1, &hf_h245_profileAndLevel_MPatLLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9047 { 2, &hf_h245_profileAndLevel_MPatMLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9048 { 3, &hf_h245_profileAndLevel_MPatH_14Mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9049 { 4, &hf_h245_profileAndLevel_MPatHLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9050 { 5, &hf_h245_profileAndLevel_SNRatLLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9051 { 6, &hf_h245_profileAndLevel_SNRatMLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9052 { 7, &hf_h245_profileAndLevel_SpatialatH_14Mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9053 { 8, &hf_h245_profileAndLevel_HPatMLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9054 { 9, &hf_h245_profileAndLevel_HPatH_14Mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9055 { 10, &hf_h245_profileAndLevel_HPatHLMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9056 { 0, NULL, 0, NULL }
9059 static int
9060 dissect_h245_T_profileAndLevel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9061 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9062 ett_h245_T_profileAndLevel, T_profileAndLevel_choice,
9063 NULL);
9065 return offset;
9069 static const per_sequence_t H262VideoMode_sequence[] = {
9070 { &hf_h245_profileAndLevel, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_profileAndLevel },
9071 { &hf_h245_videoBitRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_1073741823 },
9072 { &hf_h245_vbvBufferSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_262143 },
9073 { &hf_h245_samplesPerLine , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
9074 { &hf_h245_linesPerFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
9075 { &hf_h245_framesPerSecond, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_15 },
9076 { &hf_h245_luminanceSampleRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
9077 { NULL, 0, 0, NULL }
9080 static int
9081 dissect_h245_H262VideoMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9082 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9083 ett_h245_H262VideoMode, H262VideoMode_sequence);
9085 return offset;
9089 static const value_string h245_H263Resolution_vals[] = {
9090 { 0, "sqcif" },
9091 { 1, "qcif" },
9092 { 2, "cif" },
9093 { 3, "cif4" },
9094 { 4, "cif16" },
9095 { 5, "custom" },
9096 { 0, NULL }
9099 static const per_choice_t H263Resolution_choice[] = {
9100 { 0, &hf_h245_sqcif , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9101 { 1, &hf_h245_qcif , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9102 { 2, &hf_h245_cif , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9103 { 3, &hf_h245_cif4 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9104 { 4, &hf_h245_cif16 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9105 { 5, &hf_h245_custom_res , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
9106 { 0, NULL, 0, NULL }
9109 static int
9110 dissect_h245_H263Resolution(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9111 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9112 ett_h245_H263Resolution, H263Resolution_choice,
9113 NULL);
9115 return offset;
9119 static const per_sequence_t H263VideoMode_sequence[] = {
9120 { &hf_h245_h263_resolution, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_H263Resolution },
9121 { &hf_h245_bitRate_1_19200, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_19200 },
9122 { &hf_h245_unrestrictedVector, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9123 { &hf_h245_arithmeticCoding, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9124 { &hf_h245_advancedPrediction, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9125 { &hf_h245_pbFrames , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9126 { &hf_h245_errorCompensation, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9127 { &hf_h245_enhancementLayerInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_EnhancementLayerInfo },
9128 { &hf_h245_h263Options , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_H263Options },
9129 { NULL, 0, 0, NULL }
9132 static int
9133 dissect_h245_H263VideoMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9134 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9135 ett_h245_H263VideoMode, H263VideoMode_sequence);
9137 return offset;
9141 static const per_sequence_t IS11172VideoMode_sequence[] = {
9142 { &hf_h245_constrainedBitstream, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9143 { &hf_h245_videoBitRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_1073741823 },
9144 { &hf_h245_vbvBufferSize , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_262143 },
9145 { &hf_h245_samplesPerLine , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
9146 { &hf_h245_linesPerFrame , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_16383 },
9147 { &hf_h245_pictureRate , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_15 },
9148 { &hf_h245_luminanceSampleRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
9149 { NULL, 0, 0, NULL }
9152 static int
9153 dissect_h245_IS11172VideoMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9154 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9155 ett_h245_IS11172VideoMode, IS11172VideoMode_sequence);
9157 return offset;
9161 static const value_string h245_VideoMode_vals[] = {
9162 { 0, "nonStandard" },
9163 { 1, "h261VideoMode" },
9164 { 2, "h262VideoMode" },
9165 { 3, "h263VideoMode" },
9166 { 4, "is11172VideoMode" },
9167 { 5, "genericVideoMode" },
9168 { 0, NULL }
9171 static const per_choice_t VideoMode_choice[] = {
9172 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9173 { 1, &hf_h245_h261VideoMode , ASN1_EXTENSION_ROOT , dissect_h245_H261VideoMode },
9174 { 2, &hf_h245_h262VideoMode , ASN1_EXTENSION_ROOT , dissect_h245_H262VideoMode },
9175 { 3, &hf_h245_h263VideoMode , ASN1_EXTENSION_ROOT , dissect_h245_H263VideoMode },
9176 { 4, &hf_h245_is11172VideoMode, ASN1_EXTENSION_ROOT , dissect_h245_IS11172VideoMode },
9177 { 5, &hf_h245_genericVideoMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
9178 { 0, NULL, 0, NULL }
9181 static int
9182 dissect_h245_VideoMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9183 int32_t value;
9185 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9186 ett_h245_VideoMode, VideoMode_choice,
9187 &value);
9189 codec_type = val_to_str_const(value, h245_VideoMode_vals, "<unknown>");
9191 return offset;
9195 static const value_string h245_Mode_g7231_vals[] = {
9196 { 0, "noSilenceSuppressionLowRate" },
9197 { 1, "noSilenceSuppressionHighRate" },
9198 { 2, "silenceSuppressionLowRate" },
9199 { 3, "silenceSuppressionHighRate" },
9200 { 0, NULL }
9203 static const per_choice_t Mode_g7231_choice[] = {
9204 { 0, &hf_h245_noSilenceSuppressionLowRate, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9205 { 1, &hf_h245_noSilenceSuppressionHighRate, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9206 { 2, &hf_h245_silenceSuppressionLowRate, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9207 { 3, &hf_h245_silenceSuppressionHighRate, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9208 { 0, NULL, 0, NULL }
9211 static int
9212 dissect_h245_Mode_g7231(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9213 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9214 ett_h245_Mode_g7231, Mode_g7231_choice,
9215 NULL);
9217 return offset;
9221 static const value_string h245_T_audioLayer_vals[] = {
9222 { 0, "audioLayer1" },
9223 { 1, "audioLayer2" },
9224 { 2, "audioLayer3" },
9225 { 0, NULL }
9228 static const per_choice_t T_audioLayer_choice[] = {
9229 { 0, &hf_h245_audioLayer1Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9230 { 1, &hf_h245_audioLayer2Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9231 { 2, &hf_h245_audioLayer3Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9232 { 0, NULL, 0, NULL }
9235 static int
9236 dissect_h245_T_audioLayer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9237 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9238 ett_h245_T_audioLayer, T_audioLayer_choice,
9239 NULL);
9241 return offset;
9245 static const value_string h245_T_audioSampling_vals[] = {
9246 { 0, "audioSampling32k" },
9247 { 1, "audioSampling44k1" },
9248 { 2, "audioSampling48k" },
9249 { 0, NULL }
9252 static const per_choice_t T_audioSampling_choice[] = {
9253 { 0, &hf_h245_audioSampling32kMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9254 { 1, &hf_h245_audioSampling44k1Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9255 { 2, &hf_h245_audioSampling48kMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9256 { 0, NULL, 0, NULL }
9259 static int
9260 dissect_h245_T_audioSampling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9261 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9262 ett_h245_T_audioSampling, T_audioSampling_choice,
9263 NULL);
9265 return offset;
9269 static const value_string h245_IS11172_multichannelType_vals[] = {
9270 { 0, "singleChannel" },
9271 { 1, "twoChannelStereo" },
9272 { 2, "twoChannelDual" },
9273 { 0, NULL }
9276 static const per_choice_t IS11172_multichannelType_choice[] = {
9277 { 0, &hf_h245_singleChannelMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9278 { 1, &hf_h245_twoChannelStereo, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9279 { 2, &hf_h245_twoChannelDual , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9280 { 0, NULL, 0, NULL }
9283 static int
9284 dissect_h245_IS11172_multichannelType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9285 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9286 ett_h245_IS11172_multichannelType, IS11172_multichannelType_choice,
9287 NULL);
9289 return offset;
9293 static const per_sequence_t IS11172AudioMode_sequence[] = {
9294 { &hf_h245_audioLayer , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_audioLayer },
9295 { &hf_h245_audioSampling , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_audioSampling },
9296 { &hf_h245_is11172multichannelType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_IS11172_multichannelType },
9297 { &hf_h245_bitRate_1_448 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_448 },
9298 { NULL, 0, 0, NULL }
9301 static int
9302 dissect_h245_IS11172AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9303 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9304 ett_h245_IS11172AudioMode, IS11172AudioMode_sequence);
9306 return offset;
9310 static const value_string h245_IS13818AudioLayer_vals[] = {
9311 { 0, "audioLayer1" },
9312 { 1, "audioLayer2" },
9313 { 2, "audioLayer3" },
9314 { 0, NULL }
9317 static const per_choice_t IS13818AudioLayer_choice[] = {
9318 { 0, &hf_h245_audioLayer1Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9319 { 1, &hf_h245_audioLayer2Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9320 { 2, &hf_h245_audioLayer3Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9321 { 0, NULL, 0, NULL }
9324 static int
9325 dissect_h245_IS13818AudioLayer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9326 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9327 ett_h245_IS13818AudioLayer, IS13818AudioLayer_choice,
9328 NULL);
9330 return offset;
9334 static const value_string h245_IS13818AudioSampling_vals[] = {
9335 { 0, "audioSampling16k" },
9336 { 1, "audioSampling22k05" },
9337 { 2, "audioSampling24k" },
9338 { 3, "audioSampling32k" },
9339 { 4, "audioSampling44k1" },
9340 { 5, "audioSampling48k" },
9341 { 0, NULL }
9344 static const per_choice_t IS13818AudioSampling_choice[] = {
9345 { 0, &hf_h245_audioSampling16kMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9346 { 1, &hf_h245_audioSampling22k05Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9347 { 2, &hf_h245_audioSampling24kMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9348 { 3, &hf_h245_audioSampling32kMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9349 { 4, &hf_h245_audioSampling44k1Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9350 { 5, &hf_h245_audioSampling48kMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9351 { 0, NULL, 0, NULL }
9354 static int
9355 dissect_h245_IS13818AudioSampling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9356 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9357 ett_h245_IS13818AudioSampling, IS13818AudioSampling_choice,
9358 NULL);
9360 return offset;
9364 static const value_string h245_IS13818MultichannelType_vals[] = {
9365 { 0, "singleChannel" },
9366 { 1, "twoChannelStereo" },
9367 { 2, "twoChannelDual" },
9368 { 3, "threeChannels2-1" },
9369 { 4, "threeChannels3-0" },
9370 { 5, "fourChannels2-0-2-0" },
9371 { 6, "fourChannels2-2" },
9372 { 7, "fourChannels3-1" },
9373 { 8, "fiveChannels3-0-2-0" },
9374 { 9, "fiveChannels3-2" },
9375 { 0, NULL }
9378 static const per_choice_t IS13818MultichannelType_choice[] = {
9379 { 0, &hf_h245_singleChannelMode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9380 { 1, &hf_h245_twoChannelStereo, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9381 { 2, &hf_h245_twoChannelDual , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9382 { 3, &hf_h245_threeChannels2_1Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9383 { 4, &hf_h245_threeChannels3_0Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9384 { 5, &hf_h245_fourChannels2_0_2_0Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9385 { 6, &hf_h245_fourChannels2_2Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9386 { 7, &hf_h245_fourChannels3_1Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9387 { 8, &hf_h245_fiveChannels3_0_2_0Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9388 { 9, &hf_h245_fiveChannels3_2Mode, ASN1_NO_EXTENSIONS , dissect_h245_NULL },
9389 { 0, NULL, 0, NULL }
9392 static int
9393 dissect_h245_IS13818MultichannelType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9394 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9395 ett_h245_IS13818MultichannelType, IS13818MultichannelType_choice,
9396 NULL);
9398 return offset;
9402 static const per_sequence_t IS13818AudioMode_sequence[] = {
9403 { &hf_h245_audioLayerMode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_IS13818AudioLayer },
9404 { &hf_h245_audioSamplingMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_IS13818AudioSampling },
9405 { &hf_h245_is13818MultichannelType, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_IS13818MultichannelType },
9406 { &hf_h245_lowFrequencyEnhancement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9407 { &hf_h245_multilingual , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9408 { &hf_h245_bitRate2_1_1130, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_1130 },
9409 { NULL, 0, 0, NULL }
9412 static int
9413 dissect_h245_IS13818AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9414 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9415 ett_h245_IS13818AudioMode, IS13818AudioMode_sequence);
9417 return offset;
9421 static const per_sequence_t G7231AnnexCMode_sequence[] = {
9422 { &hf_h245_maxAl_sduAudioFrames, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_256 },
9423 { &hf_h245_silenceSuppression, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9424 { &hf_h245_g723AnnexCAudioMode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_G723AnnexCAudioMode },
9425 { NULL, 0, 0, NULL }
9428 static int
9429 dissect_h245_G7231AnnexCMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9430 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9431 ett_h245_G7231AnnexCMode, G7231AnnexCMode_sequence);
9433 return offset;
9437 static const per_sequence_t VBDMode_sequence[] = {
9438 { &hf_h245_vbd_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AudioMode },
9439 { NULL, 0, 0, NULL }
9442 static int
9443 dissect_h245_VBDMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9444 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9445 ett_h245_VBDMode, VBDMode_sequence);
9447 return offset;
9451 static const value_string h245_AudioMode_vals[] = {
9452 { 0, "nonStandard" },
9453 { 1, "g711Alaw64k" },
9454 { 2, "g711Alaw56k" },
9455 { 3, "g711Ulaw64k" },
9456 { 4, "g711Ulaw56k" },
9457 { 5, "g722-64k" },
9458 { 6, "g722-56k" },
9459 { 7, "g722-48k" },
9460 { 8, "g728" },
9461 { 9, "g729" },
9462 { 10, "g729AnnexA" },
9463 { 11, "g7231" },
9464 { 12, "is11172AudioMode" },
9465 { 13, "is13818AudioMode" },
9466 { 14, "g729wAnnexB" },
9467 { 15, "g729AnnexAwAnnexB" },
9468 { 16, "g7231AnnexCMode" },
9469 { 17, "gsmFullRate" },
9470 { 18, "gsmHalfRate" },
9471 { 19, "gsmEnhancedFullRate" },
9472 { 20, "genericAudioMode" },
9473 { 21, "g729Extensions" },
9474 { 22, "vbd" },
9475 { 0, NULL }
9478 static const per_choice_t AudioMode_choice[] = {
9479 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9480 { 1, &hf_h245_g711Alaw64k_mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9481 { 2, &hf_h245_g711Alaw56k_mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9482 { 3, &hf_h245_g711Ulaw64k_mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9483 { 4, &hf_h245_g711Ulaw56k_mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9484 { 5, &hf_h245_g722_64k_mode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9485 { 6, &hf_h245_g722_56k_mode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9486 { 7, &hf_h245_g722_48k_mode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9487 { 8, &hf_h245_g728_mode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9488 { 9, &hf_h245_g729_mode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9489 { 10, &hf_h245_g729AnnexA_mode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9490 { 11, &hf_h245_g7231_mode , ASN1_EXTENSION_ROOT , dissect_h245_Mode_g7231 },
9491 { 12, &hf_h245_is11172AudioMode, ASN1_EXTENSION_ROOT , dissect_h245_IS11172AudioMode },
9492 { 13, &hf_h245_is13818AudioMode, ASN1_EXTENSION_ROOT , dissect_h245_IS13818AudioMode },
9493 { 14, &hf_h245_g729wAnnexB , ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_1_256 },
9494 { 15, &hf_h245_g729AnnexAwAnnexB, ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_1_256 },
9495 { 16, &hf_h245_g7231AnnexCMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_G7231AnnexCMode },
9496 { 17, &hf_h245_gsmFullRate , ASN1_NOT_EXTENSION_ROOT, dissect_h245_GSMAudioCapability },
9497 { 18, &hf_h245_gsmHalfRate , ASN1_NOT_EXTENSION_ROOT, dissect_h245_GSMAudioCapability },
9498 { 19, &hf_h245_gsmEnhancedFullRate, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GSMAudioCapability },
9499 { 20, &hf_h245_genericAudioMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
9500 { 21, &hf_h245_g729Extensions , ASN1_NOT_EXTENSION_ROOT, dissect_h245_G729Extensions },
9501 { 22, &hf_h245_vbd_mode , ASN1_NOT_EXTENSION_ROOT, dissect_h245_VBDMode },
9502 { 0, NULL, 0, NULL }
9505 static int
9506 dissect_h245_AudioMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9507 // AudioMode -> VBDMode -> AudioMode
9508 actx->pinfo->dissection_depth += 2;
9509 increment_dissection_depth(actx->pinfo);
9510 int32_t value;
9512 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9513 ett_h245_AudioMode, AudioMode_choice,
9514 &value);
9516 codec_type = val_to_str_const(value, h245_AudioMode_vals, "<unknown>");
9518 actx->pinfo->dissection_depth -= 2;
9519 decrement_dissection_depth(actx->pinfo);
9520 return offset;
9524 static const per_sequence_t T38faxApp_sequence[] = {
9525 { &hf_h245_t38FaxProtocol , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
9526 { &hf_h245_t38FaxProfile , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_T38FaxProfile },
9527 { NULL, 0, 0, NULL }
9530 static int
9531 dissect_h245_T38faxApp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9532 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9533 ett_h245_T38faxApp, T38faxApp_sequence);
9535 return offset;
9539 static const value_string h245_DataModeApplication_vals[] = {
9540 { 0, "nonStandard" },
9541 { 1, "t120" },
9542 { 2, "dsm-cc" },
9543 { 3, "userData" },
9544 { 4, "t84" },
9545 { 5, "t434" },
9546 { 6, "h224" },
9547 { 7, "nlpid" },
9548 { 8, "dsvdControl" },
9549 { 9, "h222DataPartitioning" },
9550 { 10, "t30fax" },
9551 { 11, "t140" },
9552 { 12, "t38fax" },
9553 { 13, "genericDataMode" },
9554 { 0, NULL }
9557 static const per_choice_t DataModeApplication_choice[] = {
9558 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9559 { 1, &hf_h245_t120 , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9560 { 2, &hf_h245_dsm_cc , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9561 { 3, &hf_h245_userData , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9562 { 4, &hf_h245_t84DataProtocolCapability, ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9563 { 5, &hf_h245_t434 , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9564 { 6, &hf_h245_h224 , ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9565 { 7, &hf_h245_nlpid , ASN1_EXTENSION_ROOT , dissect_h245_Nlpid },
9566 { 8, &hf_h245_dsvdControl , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9567 { 9, &hf_h245_h222DataPartitioning, ASN1_EXTENSION_ROOT , dissect_h245_DataProtocolCapability },
9568 { 10, &hf_h245_t30fax , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DataProtocolCapability },
9569 { 11, &hf_h245_t140 , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DataProtocolCapability },
9570 { 12, &hf_h245_t38faxDataProtocolCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T38faxApp },
9571 { 13, &hf_h245_genericDataMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericCapability },
9572 { 0, NULL, 0, NULL }
9575 static int
9576 dissect_h245_DataModeApplication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9577 int32_t value;
9579 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9580 ett_h245_DataModeApplication, DataModeApplication_choice,
9581 &value);
9583 codec_type = val_to_str_const(value, h245_DataModeApplication_vals, "<unknown>");
9585 return offset;
9589 static const per_sequence_t DataMode_sequence[] = {
9590 { &hf_h245_datamodeapplication, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DataModeApplication },
9591 { &hf_h245_bitRate_0_4294967295, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4294967295 },
9592 { NULL, 0, 0, NULL }
9595 static int
9596 dissect_h245_DataMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9597 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9598 ett_h245_DataMode, DataMode_sequence);
9600 return offset;
9604 static const value_string h245_T_mediaMode_vals[] = {
9605 { 0, "nonStandard" },
9606 { 1, "videoMode" },
9607 { 2, "audioMode" },
9608 { 3, "dataMode" },
9609 { 0, NULL }
9612 static const per_choice_t T_mediaMode_choice[] = {
9613 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9614 { 1, &hf_h245_videoMode , ASN1_EXTENSION_ROOT , dissect_h245_VideoMode },
9615 { 2, &hf_h245_audioMode , ASN1_EXTENSION_ROOT , dissect_h245_AudioMode },
9616 { 3, &hf_h245_dataMode , ASN1_EXTENSION_ROOT , dissect_h245_DataMode },
9617 { 0, NULL, 0, NULL }
9620 static int
9621 dissect_h245_T_mediaMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9622 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9623 ett_h245_T_mediaMode, T_mediaMode_choice,
9624 NULL);
9626 return offset;
9630 static const per_sequence_t H235Mode_sequence[] = {
9631 { &hf_h245_encryptionAuthenticationAndIntegrity, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_EncryptionAuthenticationAndIntegrity },
9632 { &hf_h245_mediaMode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_mediaMode },
9633 { NULL, 0, 0, NULL }
9636 static int
9637 dissect_h245_H235Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9638 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9639 ett_h245_H235Mode, H235Mode_sequence);
9641 return offset;
9645 static const per_sequence_t FECMode_sequence[] = {
9646 { &hf_h245_protectedElement, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ModeElementType },
9647 { &hf_h245_fecScheme , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OBJECT_IDENTIFIER },
9648 { &hf_h245_rfc2733Format , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Rfc2733Format },
9649 { NULL, 0, 0, NULL }
9652 static int
9653 dissect_h245_FECMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9654 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9655 ett_h245_FECMode, FECMode_sequence);
9657 return offset;
9661 static const value_string h245_Re_type_vals[] = {
9662 { 0, "nonStandard" },
9663 { 1, "videoMode" },
9664 { 2, "audioMode" },
9665 { 3, "dataMode" },
9666 { 4, "encryptionMode" },
9667 { 5, "h235Mode" },
9668 { 6, "fecMode" },
9669 { 0, NULL }
9672 static const per_choice_t Re_type_choice[] = {
9673 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9674 { 1, &hf_h245_videoMode , ASN1_EXTENSION_ROOT , dissect_h245_VideoMode },
9675 { 2, &hf_h245_audioMode , ASN1_EXTENSION_ROOT , dissect_h245_AudioMode },
9676 { 3, &hf_h245_dataMode , ASN1_EXTENSION_ROOT , dissect_h245_DataMode },
9677 { 4, &hf_h245_encryptionMode , ASN1_EXTENSION_ROOT , dissect_h245_EncryptionMode },
9678 { 5, &hf_h245_h235Mode , ASN1_EXTENSION_ROOT , dissect_h245_H235Mode },
9679 { 6, &hf_h245_fecMode , ASN1_NOT_EXTENSION_ROOT, dissect_h245_FECMode },
9680 { 0, NULL, 0, NULL }
9683 static int
9684 dissect_h245_Re_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9685 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9686 ett_h245_Re_type, Re_type_choice,
9687 NULL);
9689 return offset;
9693 static const per_sequence_t RedundancyEncodingDTModeElement_sequence[] = {
9694 { &hf_h245_re_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Re_type },
9695 { NULL, 0, 0, NULL }
9698 static int
9699 dissect_h245_RedundancyEncodingDTModeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9700 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9701 ett_h245_RedundancyEncodingDTModeElement, RedundancyEncodingDTModeElement_sequence);
9703 return offset;
9707 static const per_sequence_t SEQUENCE_OF_RedundancyEncodingDTModeElement_sequence_of[1] = {
9708 { &hf_h245_secondaryDTM_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingDTModeElement },
9711 static int
9712 dissect_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9713 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
9714 ett_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement, SEQUENCE_OF_RedundancyEncodingDTModeElement_sequence_of);
9716 return offset;
9720 static const per_sequence_t RedundancyEncodingDTMode_sequence[] = {
9721 { &hf_h245_redundancyEncodingMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingMethod },
9722 { &hf_h245_prmary_dtmode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingDTModeElement },
9723 { &hf_h245_secondaryDTM , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement },
9724 { NULL, 0, 0, NULL }
9727 static int
9728 dissect_h245_RedundancyEncodingDTMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9729 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9730 ett_h245_RedundancyEncodingDTMode, RedundancyEncodingDTMode_sequence);
9732 return offset;
9736 static const per_sequence_t MultiplePayloadStreamElementMode_sequence[] = {
9737 { &hf_h245_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ModeElementType },
9738 { NULL, 0, 0, NULL }
9741 static int
9742 dissect_h245_MultiplePayloadStreamElementMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9743 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9744 ett_h245_MultiplePayloadStreamElementMode, MultiplePayloadStreamElementMode_sequence);
9746 return offset;
9750 static const per_sequence_t SEQUENCE_OF_MultiplePayloadStreamElementMode_sequence_of[1] = {
9751 { &hf_h245_mpsmElements_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplePayloadStreamElementMode },
9754 static int
9755 dissect_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9756 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
9757 ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode, SEQUENCE_OF_MultiplePayloadStreamElementMode_sequence_of);
9759 return offset;
9763 static const per_sequence_t MultiplePayloadStreamMode_sequence[] = {
9764 { &hf_h245_mpsmElements , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode },
9765 { NULL, 0, 0, NULL }
9768 static int
9769 dissect_h245_MultiplePayloadStreamMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9770 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9771 ett_h245_MultiplePayloadStreamMode, MultiplePayloadStreamMode_sequence);
9773 return offset;
9777 static const value_string h245_FEC_mode_vals[] = {
9778 { 0, "redundancyEncoding" },
9779 { 1, "separateStream" },
9780 { 0, NULL }
9783 static const per_choice_t FEC_mode_choice[] = {
9784 { 0, &hf_h245_redundancyEncodingFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9785 { 1, &hf_h245_separateStream , ASN1_EXTENSION_ROOT , dissect_h245_DepSeparateStream },
9786 { 0, NULL, 0, NULL }
9789 static int
9790 dissect_h245_FEC_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9791 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9792 ett_h245_FEC_mode, FEC_mode_choice,
9793 NULL);
9795 return offset;
9799 static const per_sequence_t T_rfc2733Mode_sequence[] = {
9800 { &hf_h245_fec_mode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_FEC_mode },
9801 { NULL, 0, 0, NULL }
9804 static int
9805 dissect_h245_T_rfc2733Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9806 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9807 ett_h245_T_rfc2733Mode, T_rfc2733Mode_sequence);
9809 return offset;
9813 static const value_string h245_DepFECMode_vals[] = {
9814 { 0, "rfc2733Mode" },
9815 { 0, NULL }
9818 static const per_choice_t DepFECMode_choice[] = {
9819 { 0, &hf_h245_rfc2733Mode , ASN1_EXTENSION_ROOT , dissect_h245_T_rfc2733Mode },
9820 { 0, NULL, 0, NULL }
9823 static int
9824 dissect_h245_DepFECMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9825 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9826 ett_h245_DepFECMode, DepFECMode_choice,
9827 NULL);
9829 return offset;
9833 static const value_string h245_ModeElementType_vals[] = {
9834 { 0, "nonStandard" },
9835 { 1, "videoMode" },
9836 { 2, "audioMode" },
9837 { 3, "dataMode" },
9838 { 4, "encryptionMode" },
9839 { 5, "h235Mode" },
9840 { 6, "multiplexedStreamMode" },
9841 { 7, "redundancyEncodingDTMode" },
9842 { 8, "multiplePayloadStreamMode" },
9843 { 9, "depFecMode" },
9844 { 10, "fecMode" },
9845 { 0, NULL }
9848 static const per_choice_t ModeElementType_choice[] = {
9849 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9850 { 1, &hf_h245_videoMode , ASN1_EXTENSION_ROOT , dissect_h245_VideoMode },
9851 { 2, &hf_h245_audioMode , ASN1_EXTENSION_ROOT , dissect_h245_AudioMode },
9852 { 3, &hf_h245_dataMode , ASN1_EXTENSION_ROOT , dissect_h245_DataMode },
9853 { 4, &hf_h245_encryptionMode , ASN1_EXTENSION_ROOT , dissect_h245_EncryptionMode },
9854 { 5, &hf_h245_h235Mode , ASN1_NOT_EXTENSION_ROOT, dissect_h245_H235Mode },
9855 { 6, &hf_h245_multiplexedStreamMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplexedStreamParameter },
9856 { 7, &hf_h245_redundancyEncodingDTMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RedundancyEncodingDTMode },
9857 { 8, &hf_h245_multiplePayloadStreamMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultiplePayloadStreamMode },
9858 { 9, &hf_h245_depFecMode , ASN1_NOT_EXTENSION_ROOT, dissect_h245_DepFECMode },
9859 { 10, &hf_h245_fecMode , ASN1_NOT_EXTENSION_ROOT, dissect_h245_FECMode },
9860 { 0, NULL, 0, NULL }
9863 static int
9864 dissect_h245_ModeElementType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9865 // ModeElementType -> RedundancyEncodingDTMode -> RedundancyEncodingDTModeElement -> RedundancyEncodingDTModeElement/type -> FECMode -> ModeElementType
9866 actx->pinfo->dissection_depth += 5;
9867 increment_dissection_depth(actx->pinfo);
9868 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9869 ett_h245_ModeElementType, ModeElementType_choice,
9870 NULL);
9872 actx->pinfo->dissection_depth -= 5;
9873 decrement_dissection_depth(actx->pinfo);
9874 return offset;
9878 static const value_string h245_AdaptationLayerType_vals[] = {
9879 { 0, "nonStandard" },
9880 { 1, "al1Framed" },
9881 { 2, "al1NotFramed" },
9882 { 3, "al2WithoutSequenceNumbers" },
9883 { 4, "al2WithSequenceNumbers" },
9884 { 5, "al3" },
9885 { 6, "al1M" },
9886 { 7, "al2M" },
9887 { 8, "al3M" },
9888 { 0, NULL }
9891 static const per_choice_t AdaptationLayerType_choice[] = {
9892 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9893 { 1, &hf_h245_al1Framed , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9894 { 2, &hf_h245_al1NotFramed , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9895 { 3, &hf_h245_al2WithoutSequenceNumbers, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9896 { 4, &hf_h245_al2WithSequenceNumbers, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9897 { 5, &hf_h245_al3 , ASN1_EXTENSION_ROOT , dissect_h245_Al3 },
9898 { 6, &hf_h245_al1M , ASN1_NOT_EXTENSION_ROOT, dissect_h245_H223AL1MParameters },
9899 { 7, &hf_h245_al2M , ASN1_NOT_EXTENSION_ROOT, dissect_h245_H223AL2MParameters },
9900 { 8, &hf_h245_al3M , ASN1_NOT_EXTENSION_ROOT, dissect_h245_H223AL3MParameters },
9901 { 0, NULL, 0, NULL }
9904 static int
9905 dissect_h245_AdaptationLayerType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9906 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9907 ett_h245_AdaptationLayerType, AdaptationLayerType_choice,
9908 NULL);
9910 return offset;
9914 static const per_sequence_t H223ModeParameters_sequence[] = {
9915 { &hf_h245_adaptationLayer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_AdaptationLayerType },
9916 { &hf_h245_segmentableFlag, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
9917 { NULL, 0, 0, NULL }
9920 static int
9921 dissect_h245_H223ModeParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9922 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9923 ett_h245_H223ModeParameters, H223ModeParameters_sequence);
9925 return offset;
9929 static const value_string h245_V76ModeParameters_vals[] = {
9930 { 0, "suspendResumewAddress" },
9931 { 1, "suspendResumewoAddress" },
9932 { 0, NULL }
9935 static const per_choice_t V76ModeParameters_choice[] = {
9936 { 0, &hf_h245_suspendResumewAddress, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9937 { 1, &hf_h245_suspendResumewoAddress, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
9938 { 0, NULL, 0, NULL }
9941 static int
9942 dissect_h245_V76ModeParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9943 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9944 ett_h245_V76ModeParameters, V76ModeParameters_choice,
9945 NULL);
9947 return offset;
9951 static const value_string h245_T_secondaryEncodingMode_vals[] = {
9952 { 0, "nonStandard" },
9953 { 1, "audioData" },
9954 { 0, NULL }
9957 static const per_choice_t T_secondaryEncodingMode_choice[] = {
9958 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
9959 { 1, &hf_h245_audioMode , ASN1_EXTENSION_ROOT , dissect_h245_AudioMode },
9960 { 0, NULL, 0, NULL }
9963 static int
9964 dissect_h245_T_secondaryEncodingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9965 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
9966 ett_h245_T_secondaryEncodingMode, T_secondaryEncodingMode_choice,
9967 NULL);
9969 return offset;
9973 static const per_sequence_t RedundancyEncodingMode_sequence[] = {
9974 { &hf_h245_redundancyEncodingMethod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RedundancyEncodingMethod },
9975 { &hf_h245_secondaryEncodingMode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_secondaryEncodingMode },
9976 { NULL, 0, 0, NULL }
9979 static int
9980 dissect_h245_RedundancyEncodingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9981 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9982 ett_h245_RedundancyEncodingMode, RedundancyEncodingMode_sequence);
9984 return offset;
9988 static const per_sequence_t H2250ModeParameters_sequence[] = {
9989 { &hf_h245_redundancyEncodingMode, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_RedundancyEncodingMode },
9990 { NULL, 0, 0, NULL }
9993 static int
9994 dissect_h245_H2250ModeParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
9995 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
9996 ett_h245_H2250ModeParameters, H2250ModeParameters_sequence);
9998 return offset;
10002 static const per_sequence_t MultiplexedStreamModeParameters_sequence[] = {
10003 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
10004 { NULL, 0, 0, NULL }
10007 static int
10008 dissect_h245_MultiplexedStreamModeParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10009 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10010 ett_h245_MultiplexedStreamModeParameters, MultiplexedStreamModeParameters_sequence);
10012 return offset;
10016 static const per_sequence_t ModeElement_sequence[] = {
10017 { &hf_h245_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ModeElementType },
10018 { &hf_h245_h223ModeParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_H223ModeParameters },
10019 { &hf_h245_v76ModeParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_V76ModeParameters },
10020 { &hf_h245_h2250ModeParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_H2250ModeParameters },
10021 { &hf_h245_genericModeParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_GenericCapability },
10022 { &hf_h245_multiplexedStreamModeParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_MultiplexedStreamModeParameters },
10023 { &hf_h245_logicalChannelNumber, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_LogicalChannelNumber },
10024 { NULL, 0, 0, NULL }
10027 static int
10028 dissect_h245_ModeElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10029 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10030 ett_h245_ModeElement, ModeElement_sequence);
10032 return offset;
10036 static const per_sequence_t ModeDescription_set_of[1] = {
10037 { &hf_h245_ModeDescription_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_ModeElement },
10040 static int
10041 dissect_h245_ModeDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10042 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
10043 ett_h245_ModeDescription, ModeDescription_set_of,
10044 1, 256, false);
10046 return offset;
10050 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_ModeDescription_sequence_of[1] = {
10051 { &hf_h245_requestedModes_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_ModeDescription },
10054 static int
10055 dissect_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10056 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10057 ett_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription, SEQUENCE_SIZE_1_256_OF_ModeDescription_sequence_of,
10058 1, 256, false);
10060 return offset;
10064 static const per_sequence_t RequestMode_sequence[] = {
10065 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
10066 { &hf_h245_requestedModes , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription },
10067 { NULL, 0, 0, NULL }
10070 static int
10071 dissect_h245_RequestMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10072 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10073 ett_h245_RequestMode, RequestMode_sequence);
10075 return offset;
10079 static const per_sequence_t RoundTripDelayRequest_sequence[] = {
10080 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
10081 { NULL, 0, 0, NULL }
10084 static int
10085 dissect_h245_RoundTripDelayRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10086 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10087 ett_h245_RoundTripDelayRequest, RoundTripDelayRequest_sequence);
10089 return offset;
10093 static const value_string h245_Mlr_type_vals[] = {
10094 { 0, "systemLoop" },
10095 { 1, "mediaLoop" },
10096 { 2, "logicalChannelLoop" },
10097 { 0, NULL }
10100 static const per_choice_t Mlr_type_choice[] = {
10101 { 0, &hf_h245_systemLoop , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10102 { 1, &hf_h245_mediaLoop , ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
10103 { 2, &hf_h245_logicalChannelLoop, ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
10104 { 0, NULL, 0, NULL }
10107 static int
10108 dissect_h245_Mlr_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10109 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10110 ett_h245_Mlr_type, Mlr_type_choice,
10111 NULL);
10113 return offset;
10117 static const per_sequence_t MaintenanceLoopRequest_sequence[] = {
10118 { &hf_h245_mlr_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Mlr_type },
10119 { NULL, 0, 0, NULL }
10122 static int
10123 dissect_h245_MaintenanceLoopRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10124 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10125 ett_h245_MaintenanceLoopRequest, MaintenanceLoopRequest_sequence);
10127 return offset;
10131 static const per_sequence_t CommunicationModeRequest_sequence[] = {
10132 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
10135 static int
10136 dissect_h245_CommunicationModeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10137 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10138 ett_h245_CommunicationModeRequest, CommunicationModeRequest_sequence);
10140 return offset;
10144 static const per_sequence_t Criteria_sequence[] = {
10145 { &hf_h245_field , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OBJECT_IDENTIFIER },
10146 { &hf_h245_criteriaValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_1_65535 },
10147 { NULL, 0, 0, NULL }
10150 static int
10151 dissect_h245_Criteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10152 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10153 ett_h245_Criteria, Criteria_sequence);
10155 return offset;
10159 static const per_sequence_t CertSelectionCriteria_sequence_of[1] = {
10160 { &hf_h245_CertSelectionCriteria_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_Criteria },
10163 static int
10164 dissect_h245_CertSelectionCriteria(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10165 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
10166 ett_h245_CertSelectionCriteria, CertSelectionCriteria_sequence_of,
10167 1, 16, false);
10169 return offset;
10173 static const per_sequence_t T_requestTerminalCertificate_sequence[] = {
10174 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TerminalLabel },
10175 { &hf_h245_certSelectionCriteria, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_CertSelectionCriteria },
10176 { &hf_h245_sRandom , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_4294967295 },
10177 { NULL, 0, 0, NULL }
10180 static int
10181 dissect_h245_T_requestTerminalCertificate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10182 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10183 ett_h245_T_requestTerminalCertificate, T_requestTerminalCertificate_sequence);
10185 return offset;
10189 static const value_string h245_RemoteMCRequest_vals[] = {
10190 { 0, "masterActivate" },
10191 { 1, "slaveActivate" },
10192 { 2, "deActivate" },
10193 { 0, NULL }
10196 static const per_choice_t RemoteMCRequest_choice[] = {
10197 { 0, &hf_h245_masterActivate , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10198 { 1, &hf_h245_slaveActivate , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10199 { 2, &hf_h245_deActivate , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10200 { 0, NULL, 0, NULL }
10203 static int
10204 dissect_h245_RemoteMCRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10205 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10206 ett_h245_RemoteMCRequest, RemoteMCRequest_choice,
10207 NULL);
10209 return offset;
10213 static const value_string h245_ConferenceRequest_vals[] = {
10214 { 0, "terminalListRequest" },
10215 { 1, "makeMeChair" },
10216 { 2, "cancelMakeMeChair" },
10217 { 3, "dropTerminal" },
10218 { 4, "requestTerminalID" },
10219 { 5, "enterH243Password" },
10220 { 6, "enterH243TerminalID" },
10221 { 7, "enterH243ConferenceID" },
10222 { 8, "enterExtensionAddress" },
10223 { 9, "requestChairTokenOwner" },
10224 { 10, "requestTerminalCertificate" },
10225 { 11, "broadcastMyLogicalChannel" },
10226 { 12, "makeTerminalBroadcaster" },
10227 { 13, "sendThisSource" },
10228 { 14, "requestAllTerminalIDs" },
10229 { 15, "remoteMCRequest" },
10230 { 0, NULL }
10233 static const per_choice_t ConferenceRequest_choice[] = {
10234 { 0, &hf_h245_terminalListRequest, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10235 { 1, &hf_h245_makeMeChair , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10236 { 2, &hf_h245_cancelMakeMeChair, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10237 { 3, &hf_h245_dropTerminal , ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
10238 { 4, &hf_h245_requestTerminalID, ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
10239 { 5, &hf_h245_enterH243Password, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10240 { 6, &hf_h245_enterH243TerminalID, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10241 { 7, &hf_h245_enterH243ConferenceID, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10242 { 8, &hf_h245_enterExtensionAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
10243 { 9, &hf_h245_requestChairTokenOwner, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
10244 { 10, &hf_h245_requestTerminalCertificate, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_requestTerminalCertificate },
10245 { 11, &hf_h245_broadcastMyLogicalChannel, ASN1_NOT_EXTENSION_ROOT, dissect_h245_LogicalChannelNumber },
10246 { 12, &hf_h245_makeTerminalBroadcaster, ASN1_NOT_EXTENSION_ROOT, dissect_h245_TerminalLabel },
10247 { 13, &hf_h245_sendThisSource , ASN1_NOT_EXTENSION_ROOT, dissect_h245_TerminalLabel },
10248 { 14, &hf_h245_requestAllTerminalIDs, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
10249 { 15, &hf_h245_remoteMCRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RemoteMCRequest },
10250 { 0, NULL, 0, NULL }
10253 static int
10254 dissect_h245_ConferenceRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10255 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10256 ett_h245_ConferenceRequest, ConferenceRequest_choice,
10257 NULL);
10259 return offset;
10263 static const per_sequence_t CallInformationReq_sequence[] = {
10264 { &hf_h245_maxNumberOfAdditionalConnections, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
10265 { NULL, 0, 0, NULL }
10268 static int
10269 dissect_h245_CallInformationReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10270 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10271 ett_h245_CallInformationReq, CallInformationReq_sequence);
10273 return offset;
10278 static int
10279 dissect_h245_NumericString_SIZE_0_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10280 offset = dissect_per_NumericString(tvb, offset, actx, tree, hf_index,
10281 0, 40, false,
10282 NULL);
10284 return offset;
10289 static int
10290 dissect_h245_IA5String_SIZE_1_40(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10291 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
10292 1, 40, false,
10293 NULL);
10295 return offset;
10299 static const value_string h245_DialingInformationNetworkType_vals[] = {
10300 { 0, "nonStandard" },
10301 { 1, "n-isdn" },
10302 { 2, "gstn" },
10303 { 3, "mobile" },
10304 { 0, NULL }
10307 static const per_choice_t DialingInformationNetworkType_choice[] = {
10308 { 0, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
10309 { 1, &hf_h245_n_isdn , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10310 { 2, &hf_h245_gstn , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10311 { 3, &hf_h245_mobile , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
10312 { 0, NULL, 0, NULL }
10315 static int
10316 dissect_h245_DialingInformationNetworkType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10317 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10318 ett_h245_DialingInformationNetworkType, DialingInformationNetworkType_choice,
10319 NULL);
10321 return offset;
10325 static const per_sequence_t SET_SIZE_1_255_OF_DialingInformationNetworkType_set_of[1] = {
10326 { &hf_h245_networkType_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DialingInformationNetworkType },
10329 static int
10330 dissect_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10331 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
10332 ett_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType, SET_SIZE_1_255_OF_DialingInformationNetworkType_set_of,
10333 1, 255, false);
10335 return offset;
10339 static const per_sequence_t DialingInformationNumber_sequence[] = {
10340 { &hf_h245_din_networkAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_NumericString_SIZE_0_40 },
10341 { &hf_h245_subAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_IA5String_SIZE_1_40 },
10342 { &hf_h245_networkType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType },
10343 { NULL, 0, 0, NULL }
10346 static int
10347 dissect_h245_DialingInformationNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10348 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10349 ett_h245_DialingInformationNumber, DialingInformationNumber_sequence);
10351 return offset;
10355 static const per_sequence_t SET_SIZE_1_65535_OF_DialingInformationNumber_set_of[1] = {
10356 { &hf_h245_differential_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_DialingInformationNumber },
10359 static int
10360 dissect_h245_SET_SIZE_1_65535_OF_DialingInformationNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10361 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
10362 ett_h245_SET_SIZE_1_65535_OF_DialingInformationNumber, SET_SIZE_1_65535_OF_DialingInformationNumber_set_of,
10363 1, 65535, false);
10365 return offset;
10369 static const value_string h245_DialingInformation_vals[] = {
10370 { 0, "nonStandard" },
10371 { 1, "differential" },
10372 { 2, "infoNotAvailable" },
10373 { 0, NULL }
10376 static const per_choice_t DialingInformation_choice[] = {
10377 { 0, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
10378 { 1, &hf_h245_differential , ASN1_EXTENSION_ROOT , dissect_h245_SET_SIZE_1_65535_OF_DialingInformationNumber },
10379 { 2, &hf_h245_infoNotAvailable, ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_1_65535 },
10380 { 0, NULL, 0, NULL }
10383 static int
10384 dissect_h245_DialingInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10385 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10386 ett_h245_DialingInformation, DialingInformation_choice,
10387 NULL);
10389 return offset;
10393 static const per_sequence_t AddConnectionReq_sequence[] = {
10394 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
10395 { &hf_h245_dialingInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DialingInformation },
10396 { NULL, 0, 0, NULL }
10399 static int
10400 dissect_h245_AddConnectionReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10401 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10402 ett_h245_AddConnectionReq, AddConnectionReq_sequence);
10404 return offset;
10408 static const per_sequence_t ConnectionIdentifier_sequence[] = {
10409 { &hf_h245_channelTag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4294967295 },
10410 { &hf_h245_sequenceNum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4294967295 },
10411 { NULL, 0, 0, NULL }
10414 static int
10415 dissect_h245_ConnectionIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10416 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10417 ett_h245_ConnectionIdentifier, ConnectionIdentifier_sequence);
10419 return offset;
10423 static const per_sequence_t RemoveConnectionReq_sequence[] = {
10424 { &hf_h245_connectionIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ConnectionIdentifier },
10425 { NULL, 0, 0, NULL }
10428 static int
10429 dissect_h245_RemoveConnectionReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10430 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10431 ett_h245_RemoveConnectionReq, RemoveConnectionReq_sequence);
10433 return offset;
10437 static const value_string h245_T_requestType_vals[] = {
10438 { 0, "currentIntervalInformation" },
10439 { 1, "requestedInterval" },
10440 { 0, NULL }
10443 static const per_choice_t T_requestType_choice[] = {
10444 { 0, &hf_h245_currentIntervalInformation, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10445 { 1, &hf_h245_requestedInterval, ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_65535 },
10446 { 0, NULL, 0, NULL }
10449 static int
10450 dissect_h245_T_requestType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10451 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10452 ett_h245_T_requestType, T_requestType_choice,
10453 NULL);
10455 return offset;
10459 static const per_sequence_t MaximumHeaderIntervalReq_sequence[] = {
10460 { &hf_h245_requestType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_requestType },
10461 { NULL, 0, 0, NULL }
10464 static int
10465 dissect_h245_MaximumHeaderIntervalReq(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10466 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10467 ett_h245_MaximumHeaderIntervalReq, MaximumHeaderIntervalReq_sequence);
10469 return offset;
10473 static const value_string h245_MultilinkRequest_vals[] = {
10474 { 0, "nonStandard" },
10475 { 1, "callInformation" },
10476 { 2, "addConnection" },
10477 { 3, "removeConnection" },
10478 { 4, "maximumHeaderInterval" },
10479 { 0, NULL }
10482 static const per_choice_t MultilinkRequest_choice[] = {
10483 { 0, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
10484 { 1, &hf_h245_callInformationReq, ASN1_EXTENSION_ROOT , dissect_h245_CallInformationReq },
10485 { 2, &hf_h245_addConnectionReq, ASN1_EXTENSION_ROOT , dissect_h245_AddConnectionReq },
10486 { 3, &hf_h245_removeConnectionReq, ASN1_EXTENSION_ROOT , dissect_h245_RemoveConnectionReq },
10487 { 4, &hf_h245_maximumHeaderIntervalReq, ASN1_EXTENSION_ROOT , dissect_h245_MaximumHeaderIntervalReq },
10488 { 0, NULL, 0, NULL }
10491 static int
10492 dissect_h245_MultilinkRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10493 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10494 ett_h245_MultilinkRequest, MultilinkRequest_choice,
10495 NULL);
10497 return offset;
10502 static int
10503 dissect_h245_MaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10504 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
10505 0U, 4294967295U, NULL, false);
10507 return offset;
10511 static const per_sequence_t LogicalChannelRateRequest_sequence[] = {
10512 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
10513 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
10514 { &hf_h245_maximumBitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MaximumBitRate },
10515 { NULL, 0, 0, NULL }
10518 static int
10519 dissect_h245_LogicalChannelRateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10520 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10521 ett_h245_LogicalChannelRateRequest, LogicalChannelRateRequest_sequence);
10523 return offset;
10527 static const value_string h245_RequestMessage_vals[] = {
10528 { RequestMessage_nonStandard, "nonStandard" },
10529 { RequestMessage_masterSlaveDetermination, "masterSlaveDetermination" },
10530 { RequestMessage_terminalCapabilitySet, "terminalCapabilitySet" },
10531 { RequestMessage_openLogicalChannel, "openLogicalChannel" },
10532 { RequestMessage_closeLogicalChannel, "closeLogicalChannel" },
10533 { RequestMessage_requestChannelClose, "requestChannelClose" },
10534 { RequestMessage_multiplexEntrySend, "multiplexEntrySend" },
10535 { RequestMessage_requestMultiplexEntry, "requestMultiplexEntry" },
10536 { RequestMessage_requestMode, "requestMode" },
10537 { RequestMessage_roundTripDelayRequest, "roundTripDelayRequest" },
10538 { RequestMessage_maintenanceLoopRequest, "maintenanceLoopRequest" },
10539 { RequestMessage_communicationModeRequest, "communicationModeRequest" },
10540 { RequestMessage_conferenceRequest, "conferenceRequest" },
10541 { RequestMessage_multilinkRequest, "multilinkRequest" },
10542 { RequestMessage_logicalChannelRateRequest, "logicalChannelRateRequest" },
10543 { RequestMessage_genericRequest, "genericRequest" },
10544 { 0, NULL }
10547 static const per_choice_t RequestMessage_choice[] = {
10548 { RequestMessage_nonStandard, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
10549 { RequestMessage_masterSlaveDetermination, &hf_h245_masterSlaveDetermination, ASN1_EXTENSION_ROOT , dissect_h245_MasterSlaveDetermination },
10550 { RequestMessage_terminalCapabilitySet, &hf_h245_terminalCapabilitySet, ASN1_EXTENSION_ROOT , dissect_h245_TerminalCapabilitySet },
10551 { RequestMessage_openLogicalChannel, &hf_h245_openLogicalChannel, ASN1_EXTENSION_ROOT , dissect_h245_OpenLogicalChannel },
10552 { RequestMessage_closeLogicalChannel, &hf_h245_closeLogicalChannel, ASN1_EXTENSION_ROOT , dissect_h245_CloseLogicalChannel },
10553 { RequestMessage_requestChannelClose, &hf_h245_requestChannelClose, ASN1_EXTENSION_ROOT , dissect_h245_RequestChannelClose },
10554 { RequestMessage_multiplexEntrySend, &hf_h245_multiplexEntrySend, ASN1_EXTENSION_ROOT , dissect_h245_MultiplexEntrySend },
10555 { RequestMessage_requestMultiplexEntry, &hf_h245_requestMultiplexEntry, ASN1_EXTENSION_ROOT , dissect_h245_RequestMultiplexEntry },
10556 { RequestMessage_requestMode, &hf_h245_requestMode , ASN1_EXTENSION_ROOT , dissect_h245_RequestMode },
10557 { RequestMessage_roundTripDelayRequest, &hf_h245_roundTripDelayRequest, ASN1_EXTENSION_ROOT , dissect_h245_RoundTripDelayRequest },
10558 { RequestMessage_maintenanceLoopRequest, &hf_h245_maintenanceLoopRequest, ASN1_EXTENSION_ROOT , dissect_h245_MaintenanceLoopRequest },
10559 { RequestMessage_communicationModeRequest, &hf_h245_communicationModeRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h245_CommunicationModeRequest },
10560 { RequestMessage_conferenceRequest, &hf_h245_conferenceRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h245_ConferenceRequest },
10561 { RequestMessage_multilinkRequest, &hf_h245_multilinkRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultilinkRequest },
10562 { RequestMessage_logicalChannelRateRequest, &hf_h245_logicalChannelRateRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h245_LogicalChannelRateRequest },
10563 { RequestMessage_genericRequest, &hf_h245_genericRequest , ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericMessage },
10564 { 0, NULL, 0, NULL }
10567 static int
10568 dissect_h245_RequestMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10569 int32_t value;
10571 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10572 ett_h245_RequestMessage, RequestMessage_choice,
10573 &value);
10575 print_info_column(actx->pinfo->cinfo, &value, h245_RequestMessage_vals, h245_RequestMessage_short_vals);
10577 if (( codec_type != NULL ) && ( value == RequestMessage_openLogicalChannel) ){
10578 col_append_fstr(actx->pinfo->cinfo, COL_INFO, "(%s) ", codec_type );
10581 col_set_fence(actx->pinfo->cinfo,COL_INFO);
10583 /* Add to packet info */
10584 if (h245_pi == NULL)
10585 return offset;
10587 if (strlen(h245_pi->frame_label) == 0)
10589 snprintf(h245_pi->frame_label, 50, "%s", val_to_str_const(value, h245_RequestMessage_short_vals, "UKN"));
10591 /* if it is OLC or RM*/
10592 if ((codec_type != NULL) && (( value == RequestMessage_openLogicalChannel) || ( value == RequestMessage_requestMode)))
10594 (void) g_strlcat(h245_pi->frame_label, " (", 50);
10595 (void) g_strlcat(h245_pi->frame_label, codec_type, 50);
10596 (void) g_strlcat(h245_pi->frame_label, ")", 50);
10599 (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_RequestMessage_vals, "<unknown>"), 50);
10601 return offset;
10605 static const value_string h245_T_decision_vals[] = {
10606 { 0, "master" },
10607 { 1, "slave" },
10608 { 0, NULL }
10611 static const per_choice_t T_decision_choice[] = {
10612 { 0, &hf_h245_master , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
10613 { 1, &hf_h245_slave , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
10614 { 0, NULL, 0, NULL }
10617 static int
10618 dissect_h245_T_decision(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10619 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10620 ett_h245_T_decision, T_decision_choice,
10621 NULL);
10623 return offset;
10627 static const per_sequence_t MasterSlaveDeterminationAck_sequence[] = {
10628 { &hf_h245_decision , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_decision },
10629 { NULL, 0, 0, NULL }
10632 static int
10633 dissect_h245_MasterSlaveDeterminationAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10634 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10635 ett_h245_MasterSlaveDeterminationAck, MasterSlaveDeterminationAck_sequence);
10638 if (h245_pi != NULL)
10639 h245_pi->msg_type = H245_MastSlvDetAck;
10640 return offset;
10644 static const value_string h245_MasterSlaveDeterminationRejectCause_vals[] = {
10645 { 0, "identicalNumbers" },
10646 { 0, NULL }
10649 static const per_choice_t MasterSlaveDeterminationRejectCause_choice[] = {
10650 { 0, &hf_h245_identicalNumbers, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10651 { 0, NULL, 0, NULL }
10654 static int
10655 dissect_h245_MasterSlaveDeterminationRejectCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10656 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10657 ett_h245_MasterSlaveDeterminationRejectCause, MasterSlaveDeterminationRejectCause_choice,
10658 NULL);
10660 return offset;
10664 static const per_sequence_t MasterSlaveDeterminationReject_sequence[] = {
10665 { &hf_h245_msd_rej_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MasterSlaveDeterminationRejectCause },
10666 { NULL, 0, 0, NULL }
10669 static int
10670 dissect_h245_MasterSlaveDeterminationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10671 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10672 ett_h245_MasterSlaveDeterminationReject, MasterSlaveDeterminationReject_sequence);
10675 if (h245_pi != NULL)
10676 h245_pi->msg_type = H245_MastSlvDetRjc;
10677 return offset;
10681 static const per_sequence_t TerminalCapabilitySetAck_sequence[] = {
10682 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
10683 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
10684 { NULL, 0, 0, NULL }
10687 static int
10688 dissect_h245_TerminalCapabilitySetAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10689 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10690 ett_h245_TerminalCapabilitySetAck, TerminalCapabilitySetAck_sequence);
10693 if (h245_pi != NULL)
10694 h245_pi->msg_type = H245_TermCapSetAck;
10695 return offset;
10699 static const value_string h245_T_tableEntryCapacityExceeded_vals[] = {
10700 { 0, "highestEntryNumberProcessed" },
10701 { 1, "noneProcessed" },
10702 { 0, NULL }
10705 static const per_choice_t T_tableEntryCapacityExceeded_choice[] = {
10706 { 0, &hf_h245_highestEntryNumberProcessed, ASN1_NO_EXTENSIONS , dissect_h245_CapabilityTableEntryNumber },
10707 { 1, &hf_h245_noneProcessed , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
10708 { 0, NULL, 0, NULL }
10711 static int
10712 dissect_h245_T_tableEntryCapacityExceeded(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10713 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10714 ett_h245_T_tableEntryCapacityExceeded, T_tableEntryCapacityExceeded_choice,
10715 NULL);
10717 return offset;
10721 static const value_string h245_TerminalCapabilitySetRejectCause_vals[] = {
10722 { 0, "unspecified" },
10723 { 1, "undefinedTableEntryUsed" },
10724 { 2, "descriptorCapacityExceeded" },
10725 { 3, "tableEntryCapacityExceeded" },
10726 { 0, NULL }
10729 static const per_choice_t TerminalCapabilitySetRejectCause_choice[] = {
10730 { 0, &hf_h245_unspecified , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10731 { 1, &hf_h245_undefinedTableEntryUsed, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10732 { 2, &hf_h245_descriptorCapacityExceeded, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10733 { 3, &hf_h245_tableEntryCapacityExceeded, ASN1_EXTENSION_ROOT , dissect_h245_T_tableEntryCapacityExceeded },
10734 { 0, NULL, 0, NULL }
10737 static int
10738 dissect_h245_TerminalCapabilitySetRejectCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10739 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10740 ett_h245_TerminalCapabilitySetRejectCause, TerminalCapabilitySetRejectCause_choice,
10741 NULL);
10743 return offset;
10747 static const per_sequence_t TerminalCapabilitySetReject_sequence[] = {
10748 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
10749 { &hf_h245_tcs_rej_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalCapabilitySetRejectCause },
10750 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
10751 { NULL, 0, 0, NULL }
10754 static int
10755 dissect_h245_TerminalCapabilitySetReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10756 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10757 ett_h245_TerminalCapabilitySetReject, TerminalCapabilitySetReject_sequence);
10760 if (h245_pi != NULL)
10761 h245_pi->msg_type = H245_TermCapSetRjc;
10762 return offset;
10767 static int
10768 dissect_h245_OLC_ack_fw_lcn(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10769 offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index);
10771 if (upcoming_olc) upcoming_olc->fwd_lc_num = h245_lc_temp;
10772 h223_fw_lc_num = h245_lc_temp;
10773 return offset;
10778 static int
10779 dissect_h245_T_reverseLogicalChannelNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10780 offset = dissect_h245_LogicalChannelNumber(tvb, offset, actx, tree, hf_index);
10782 h223_rev_lc_num = h245_lc_temp;
10783 return offset;
10787 static const value_string h245_T_olc_ack_multiplexParameters_vals[] = {
10788 { 0, "h222LogicalChannelParameters" },
10789 { 1, "h2250LogicalChannelParameters" },
10790 { 0, NULL }
10793 static const per_choice_t T_olc_ack_multiplexParameters_choice[] = {
10794 { 0, &hf_h245_h222LogicalChannelParameters, ASN1_EXTENSION_ROOT , dissect_h245_H222LogicalChannelParameters },
10795 { 1, &hf_h245_h2250LogicalChannelParameters, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H2250LogicalChannelParameters },
10796 { 0, NULL, 0, NULL }
10799 static int
10800 dissect_h245_T_olc_ack_multiplexParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10801 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10802 ett_h245_T_olc_ack_multiplexParameters, T_olc_ack_multiplexParameters_choice,
10803 NULL);
10805 return offset;
10809 static const per_sequence_t OLC_ack_reverseLogicalChannelParameters_sequence[] = {
10810 { &hf_h245_reverseLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_reverseLogicalChannelNumber },
10811 { &hf_h245_portNumber , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_65535 },
10812 { &hf_h245_olc_ack_multiplexParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_olc_ack_multiplexParameters },
10813 { &hf_h245_replacementFor , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_LogicalChannelNumber },
10814 { NULL, 0, 0, NULL }
10817 static int
10818 dissect_h245_OLC_ack_reverseLogicalChannelParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10819 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10820 ett_h245_OLC_ack_reverseLogicalChannelParameters, OLC_ack_reverseLogicalChannelParameters_sequence);
10822 return offset;
10827 static int
10828 dissect_h245_Ack_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10829 if (upcoming_channel)
10830 upcoming_channel->upcoming_addr = &upcoming_channel->media_addr;
10831 offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
10833 if (upcoming_channel)
10834 upcoming_channel->upcoming_addr = NULL;
10835 return offset;
10840 static int
10841 dissect_h245_Ack_mediaControlChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10842 if (upcoming_channel)
10843 upcoming_channel->upcoming_addr = &upcoming_channel->media_control_addr;
10844 offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
10846 if (upcoming_channel)
10847 upcoming_channel->upcoming_addr = NULL;
10848 return offset;
10852 static const per_sequence_t H2250LogicalChannelAckParameters_sequence[] = {
10853 { &hf_h245_nonStandardParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_NonStandardParameter },
10854 { &hf_h245_sessionID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_255 },
10855 { &hf_h245_ack_mediaChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Ack_mediaChannel },
10856 { &hf_h245_ack_mediaControlChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Ack_mediaControlChannel },
10857 { &hf_h245_dynamicRTPPayloadType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_96_127 },
10858 { &hf_h245_flowControlToZero, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
10859 { &hf_h245_portNumber , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_65535 },
10860 { NULL, 0, 0, NULL }
10863 static int
10864 dissect_h245_H2250LogicalChannelAckParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10865 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10866 ett_h245_H2250LogicalChannelAckParameters, H2250LogicalChannelAckParameters_sequence);
10868 return offset;
10872 static const value_string h245_T_forwardMultiplexAckParameters_vals[] = {
10873 { 0, "h2250LogicalChannelAckParameters" },
10874 { 0, NULL }
10877 static const per_choice_t T_forwardMultiplexAckParameters_choice[] = {
10878 { 0, &hf_h245_h2250LogicalChannelAckParameters, ASN1_EXTENSION_ROOT , dissect_h245_H2250LogicalChannelAckParameters },
10879 { 0, NULL, 0, NULL }
10882 static int
10883 dissect_h245_T_forwardMultiplexAckParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10885 upcoming_channel = (upcoming_olc) ? &upcoming_olc->fwd_lc : NULL;
10887 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
10888 ett_h245_T_forwardMultiplexAckParameters, T_forwardMultiplexAckParameters_choice,
10889 NULL);
10892 upcoming_channel = NULL;
10894 return offset;
10898 static const per_sequence_t OpenLogicalChannelAck_sequence[] = {
10899 { &hf_h245_olc_ack_fw_lcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OLC_ack_fw_lcn },
10900 { &hf_h245_olc_ack_reverseLogicalChannelParameters, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OLC_ack_reverseLogicalChannelParameters },
10901 { &hf_h245_separateStack , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_NetworkAccessParameters },
10902 { &hf_h245_forwardMultiplexAckParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_T_forwardMultiplexAckParameters },
10903 { &hf_h245_encryptionSync , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_EncryptionSync },
10904 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
10905 { NULL, 0, 0, NULL }
10908 static int
10909 dissect_h245_OpenLogicalChannelAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
10910 uint32_t temp;
10911 int p2p_dir;
10912 h223_pending_olc *pend;
10913 const char *olc_key;
10914 olc_info_t *olc_req;
10916 upcoming_olc = (!actx->pinfo->fd->visited) ? wmem_new0(actx->pinfo->pool, olc_info_t) : NULL;
10918 h223_fw_lc_num = 0;
10919 h223_rev_lc_num = 0;
10921 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
10922 ett_h245_OpenLogicalChannelAck, OpenLogicalChannelAck_sequence);
10925 temp = h223_fw_lc_num;
10926 p2p_dir = actx->pinfo->p2p_dir;
10928 if(actx->pinfo->p2p_dir == P2P_DIR_SENT)
10929 actx->pinfo->p2p_dir = P2P_DIR_RECV;
10930 else
10931 actx->pinfo->p2p_dir = P2P_DIR_SENT;
10932 pend = (h223_pending_olc *)wmem_map_lookup( h223_pending_olc_reqs[actx->pinfo->p2p_dir], GINT_TO_POINTER(temp) );
10933 if (pend) {
10934 DISSECTOR_ASSERT( ( h223_rev_lc_num && pend->rev_channel_params)
10935 || (!h223_rev_lc_num && !pend->rev_channel_params) );
10936 if(h223_add_lc_handle) {
10937 (*h223_add_lc_handle)( actx->pinfo, h223_fw_lc_num, pend->fw_channel_params);
10938 if(h223_rev_lc_num)
10939 (*h223_add_lc_handle)( actx->pinfo, h223_rev_lc_num, pend->rev_channel_params);
10941 } else {
10942 /* we missed the OpenLogicalChannel packet */
10944 actx->pinfo->p2p_dir = p2p_dir;
10946 if (upcoming_olc) {
10947 olc_key = gen_olc_key(upcoming_olc->fwd_lc_num, &actx->pinfo->src, &actx->pinfo->dst, actx->pinfo->pool);
10948 olc_req = (olc_info_t *)wmem_map_lookup(h245_pending_olc_reqs, olc_key);
10949 if (olc_req) {
10950 update_unicast_addr(&olc_req->fwd_lc.media_addr, &upcoming_olc->fwd_lc.media_addr);
10951 update_unicast_addr(&olc_req->fwd_lc.media_control_addr, &upcoming_olc->fwd_lc.media_control_addr);
10952 update_unicast_addr(&olc_req->rev_lc.media_addr, &upcoming_olc->rev_lc.media_addr);
10953 update_unicast_addr(&olc_req->rev_lc.media_control_addr, &upcoming_olc->rev_lc.media_control_addr);
10954 h245_setup_channels(actx->pinfo, &olc_req->fwd_lc);
10955 h245_setup_channels(actx->pinfo, &olc_req->rev_lc);
10956 wmem_map_remove(h245_pending_olc_reqs, olc_key);
10957 } else {
10958 h245_setup_channels(actx->pinfo, &upcoming_olc->fwd_lc);
10961 upcoming_olc = NULL;
10963 if (h245_pi != NULL)
10964 h245_pi->msg_type = H245_OpenLogChnAck;
10966 return offset;
10970 static const value_string h245_OpenLogicalChannelRejectCause_vals[] = {
10971 { 0, "unspecified" },
10972 { 1, "unsuitableReverseParameters" },
10973 { 2, "dataTypeNotSupported" },
10974 { 3, "dataTypeNotAvailable" },
10975 { 4, "unknownDataType" },
10976 { 5, "dataTypeALCombinationNotSupported" },
10977 { 6, "multicastChannelNotAllowed" },
10978 { 7, "insufficientBandwidth" },
10979 { 8, "separateStackEstablishmentFailed" },
10980 { 9, "invalidSessionID" },
10981 { 10, "masterSlaveConflict" },
10982 { 11, "waitForCommunicationMode" },
10983 { 12, "invalidDependentChannel" },
10984 { 13, "replacementForRejected" },
10985 { 14, "securityDenied" },
10986 { 15, "qoSControlNotSupported" },
10987 { 0, NULL }
10990 static const per_choice_t OpenLogicalChannelRejectCause_choice[] = {
10991 { 0, &hf_h245_unspecified , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10992 { 1, &hf_h245_unsuitableReverseParameters, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10993 { 2, &hf_h245_dataTypeNotSupported, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10994 { 3, &hf_h245_dataTypeNotAvailable, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10995 { 4, &hf_h245_unknownDataType, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10996 { 5, &hf_h245_dataTypeALCombinationNotSupported, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
10997 { 6, &hf_h245_multicastChannelNotAllowed, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
10998 { 7, &hf_h245_insufficientBandwidth, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
10999 { 8, &hf_h245_separateStackEstablishmentFailed, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11000 { 9, &hf_h245_invalidSessionID, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11001 { 10, &hf_h245_masterSlaveConflict, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11002 { 11, &hf_h245_waitForCommunicationMode, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11003 { 12, &hf_h245_invalidDependentChannel, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11004 { 13, &hf_h245_replacementForRejected, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11005 { 14, &hf_h245_securityDenied , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11006 { 15, &hf_h245_qoSControlNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
11007 { 0, NULL, 0, NULL }
11010 static int
11011 dissect_h245_OpenLogicalChannelRejectCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11012 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11013 ett_h245_OpenLogicalChannelRejectCause, OpenLogicalChannelRejectCause_choice,
11014 NULL);
11016 return offset;
11020 static const per_sequence_t OpenLogicalChannelReject_sequence[] = {
11021 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
11022 { &hf_h245_olc_rej_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OpenLogicalChannelRejectCause },
11023 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
11024 { NULL, 0, 0, NULL }
11027 static int
11028 dissect_h245_OpenLogicalChannelReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11029 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11030 ett_h245_OpenLogicalChannelReject, OpenLogicalChannelReject_sequence);
11033 if (h245_pi != NULL)
11034 h245_pi->msg_type = H245_OpenLogChnRjc;
11035 return offset;
11039 static const per_sequence_t CloseLogicalChannelAck_sequence[] = {
11040 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
11041 { NULL, 0, 0, NULL }
11044 static int
11045 dissect_h245_CloseLogicalChannelAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11046 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11047 ett_h245_CloseLogicalChannelAck, CloseLogicalChannelAck_sequence);
11050 if (h245_pi != NULL)
11051 h245_pi->msg_type = H245_CloseLogChnAck;
11052 return offset;
11056 static const per_sequence_t RequestChannelCloseAck_sequence[] = {
11057 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
11058 { NULL, 0, 0, NULL }
11061 static int
11062 dissect_h245_RequestChannelCloseAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11063 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11064 ett_h245_RequestChannelCloseAck, RequestChannelCloseAck_sequence);
11066 return offset;
11070 static const value_string h245_RequestChannelCloseRejectCause_vals[] = {
11071 { 0, "unspecified" },
11072 { 0, NULL }
11075 static const per_choice_t RequestChannelCloseRejectCause_choice[] = {
11076 { 0, &hf_h245_unspecified , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11077 { 0, NULL, 0, NULL }
11080 static int
11081 dissect_h245_RequestChannelCloseRejectCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11082 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11083 ett_h245_RequestChannelCloseRejectCause, RequestChannelCloseRejectCause_choice,
11084 NULL);
11086 return offset;
11090 static const per_sequence_t RequestChannelCloseReject_sequence[] = {
11091 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
11092 { &hf_h245_req_chan_clos_rej_cause, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RequestChannelCloseRejectCause },
11093 { NULL, 0, 0, NULL }
11096 static int
11097 dissect_h245_RequestChannelCloseReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11098 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11099 ett_h245_RequestChannelCloseReject, RequestChannelCloseReject_sequence);
11101 return offset;
11105 static const per_sequence_t MultiplexEntrySendAck_sequence[] = {
11106 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
11107 { &hf_h245_multiplexTableEntryNumbers, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber },
11108 { NULL, 0, 0, NULL }
11111 static int
11112 dissect_h245_MultiplexEntrySendAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11113 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11114 ett_h245_MultiplexEntrySendAck, MultiplexEntrySendAck_sequence);
11116 return offset;
11120 static const value_string h245_MultiplexEntryRejectionDescriptionsCause_vals[] = {
11121 { 0, "unspecifiedCause" },
11122 { 1, "descriptorTooComplex" },
11123 { 0, NULL }
11126 static const per_choice_t MultiplexEntryRejectionDescriptionsCause_choice[] = {
11127 { 0, &hf_h245_unspecifiedCause, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11128 { 1, &hf_h245_descriptorTooComplex, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11129 { 0, NULL, 0, NULL }
11132 static int
11133 dissect_h245_MultiplexEntryRejectionDescriptionsCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11134 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11135 ett_h245_MultiplexEntryRejectionDescriptionsCause, MultiplexEntryRejectionDescriptionsCause_choice,
11136 NULL);
11138 return offset;
11142 static const per_sequence_t MultiplexEntryRejectionDescriptions_sequence[] = {
11143 { &hf_h245_multiplexTableEntryNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexTableEntryNumber },
11144 { &hf_h245_mux_rej_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexEntryRejectionDescriptionsCause },
11145 { NULL, 0, 0, NULL }
11148 static int
11149 dissect_h245_MultiplexEntryRejectionDescriptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11150 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11151 ett_h245_MultiplexEntryRejectionDescriptions, MultiplexEntryRejectionDescriptions_sequence);
11153 return offset;
11157 static const per_sequence_t SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions_set_of[1] = {
11158 { &hf_h245_sendRejectionDescriptions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexEntryRejectionDescriptions },
11161 static int
11162 dissect_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11163 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
11164 ett_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions, SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions_set_of,
11165 1, 15, false);
11167 return offset;
11171 static const per_sequence_t MultiplexEntrySendReject_sequence[] = {
11172 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
11173 { &hf_h245_sendRejectionDescriptions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions },
11174 { NULL, 0, 0, NULL }
11177 static int
11178 dissect_h245_MultiplexEntrySendReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11179 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11180 ett_h245_MultiplexEntrySendReject, MultiplexEntrySendReject_sequence);
11182 return offset;
11186 static const per_sequence_t RequestMultiplexEntryAck_sequence[] = {
11187 { &hf_h245_entryNumbers , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber },
11188 { NULL, 0, 0, NULL }
11191 static int
11192 dissect_h245_RequestMultiplexEntryAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11193 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11194 ett_h245_RequestMultiplexEntryAck, RequestMultiplexEntryAck_sequence);
11196 return offset;
11200 static const value_string h245_RequestMultiplexEntryRejectionDescriptionsCause_vals[] = {
11201 { 0, "unspecifiedCause" },
11202 { 0, NULL }
11205 static const per_choice_t RequestMultiplexEntryRejectionDescriptionsCause_choice[] = {
11206 { 0, &hf_h245_unspecifiedCause, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11207 { 0, NULL, 0, NULL }
11210 static int
11211 dissect_h245_RequestMultiplexEntryRejectionDescriptionsCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11212 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11213 ett_h245_RequestMultiplexEntryRejectionDescriptionsCause, RequestMultiplexEntryRejectionDescriptionsCause_choice,
11214 NULL);
11216 return offset;
11220 static const per_sequence_t RequestMultiplexEntryRejectionDescriptions_sequence[] = {
11221 { &hf_h245_multiplexTableEntryNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MultiplexTableEntryNumber },
11222 { &hf_h245_req_mux_rej_cause, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RequestMultiplexEntryRejectionDescriptionsCause },
11223 { NULL, 0, 0, NULL }
11226 static int
11227 dissect_h245_RequestMultiplexEntryRejectionDescriptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11228 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11229 ett_h245_RequestMultiplexEntryRejectionDescriptions, RequestMultiplexEntryRejectionDescriptions_sequence);
11231 return offset;
11235 static const per_sequence_t SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions_set_of[1] = {
11236 { &hf_h245_rejectionDescriptions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_RequestMultiplexEntryRejectionDescriptions },
11239 static int
11240 dissect_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11241 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
11242 ett_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions, SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions_set_of,
11243 1, 15, false);
11245 return offset;
11249 static const per_sequence_t RequestMultiplexEntryReject_sequence[] = {
11250 { &hf_h245_entryNumbers , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber },
11251 { &hf_h245_rejectionDescriptions, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions },
11252 { NULL, 0, 0, NULL }
11255 static int
11256 dissect_h245_RequestMultiplexEntryReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11257 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11258 ett_h245_RequestMultiplexEntryReject, RequestMultiplexEntryReject_sequence);
11260 return offset;
11264 static const value_string h245_Req_mode_ack_response_vals[] = {
11265 { 0, "willTransmitMostPreferredMode" },
11266 { 1, "willTransmitLessPreferredMode" },
11267 { 0, NULL }
11270 static const per_choice_t Req_mode_ack_response_choice[] = {
11271 { 0, &hf_h245_willTransmitMostPreferredMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11272 { 1, &hf_h245_willTransmitLessPreferredMode, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11273 { 0, NULL, 0, NULL }
11276 static int
11277 dissect_h245_Req_mode_ack_response(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11278 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11279 ett_h245_Req_mode_ack_response, Req_mode_ack_response_choice,
11280 NULL);
11282 return offset;
11286 static const per_sequence_t RequestModeAck_sequence[] = {
11287 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
11288 { &hf_h245_req_mode_ack_response, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Req_mode_ack_response },
11289 { NULL, 0, 0, NULL }
11292 static int
11293 dissect_h245_RequestModeAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11294 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11295 ett_h245_RequestModeAck, RequestModeAck_sequence);
11297 return offset;
11301 static const value_string h245_RequestModeRejectCause_vals[] = {
11302 { 0, "modeUnavailable" },
11303 { 1, "multipointConstraint" },
11304 { 2, "requestDenied" },
11305 { 0, NULL }
11308 static const per_choice_t RequestModeRejectCause_choice[] = {
11309 { 0, &hf_h245_modeUnavailable, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11310 { 1, &hf_h245_multipointConstraint, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11311 { 2, &hf_h245_requestDenied , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11312 { 0, NULL, 0, NULL }
11315 static int
11316 dissect_h245_RequestModeRejectCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11317 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11318 ett_h245_RequestModeRejectCause, RequestModeRejectCause_choice,
11319 NULL);
11321 return offset;
11325 static const per_sequence_t RequestModeReject_sequence[] = {
11326 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
11327 { &hf_h245_req_rej_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_RequestModeRejectCause },
11328 { NULL, 0, 0, NULL }
11331 static int
11332 dissect_h245_RequestModeReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11333 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11334 ett_h245_RequestModeReject, RequestModeReject_sequence);
11336 return offset;
11340 static const per_sequence_t RoundTripDelayResponse_sequence[] = {
11341 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
11342 { NULL, 0, 0, NULL }
11345 static int
11346 dissect_h245_RoundTripDelayResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11347 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11348 ett_h245_RoundTripDelayResponse, RoundTripDelayResponse_sequence);
11350 return offset;
11354 static const value_string h245_Mla_type_vals[] = {
11355 { 0, "systemLoop" },
11356 { 1, "mediaLoop" },
11357 { 2, "logicalChannelLoop" },
11358 { 0, NULL }
11361 static const per_choice_t Mla_type_choice[] = {
11362 { 0, &hf_h245_systemLoop , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11363 { 1, &hf_h245_mediaLoop , ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
11364 { 2, &hf_h245_logicalChannelLoop, ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
11365 { 0, NULL, 0, NULL }
11368 static int
11369 dissect_h245_Mla_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11370 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11371 ett_h245_Mla_type, Mla_type_choice,
11372 NULL);
11374 return offset;
11378 static const per_sequence_t MaintenanceLoopAck_sequence[] = {
11379 { &hf_h245_mla_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Mla_type },
11380 { NULL, 0, 0, NULL }
11383 static int
11384 dissect_h245_MaintenanceLoopAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11385 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11386 ett_h245_MaintenanceLoopAck, MaintenanceLoopAck_sequence);
11388 return offset;
11392 static const value_string h245_Mlrej_type_vals[] = {
11393 { 0, "systemLoop" },
11394 { 1, "mediaLoop" },
11395 { 2, "logicalChannelLoop" },
11396 { 0, NULL }
11399 static const per_choice_t Mlrej_type_choice[] = {
11400 { 0, &hf_h245_systemLoop , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11401 { 1, &hf_h245_mediaLoop , ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
11402 { 2, &hf_h245_logicalChannelLoop, ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
11403 { 0, NULL, 0, NULL }
11406 static int
11407 dissect_h245_Mlrej_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11408 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11409 ett_h245_Mlrej_type, Mlrej_type_choice,
11410 NULL);
11412 return offset;
11416 static const value_string h245_MaintenanceLoopRejectCause_vals[] = {
11417 { 0, "canNotPerformLoop" },
11418 { 0, NULL }
11421 static const per_choice_t MaintenanceLoopRejectCause_choice[] = {
11422 { 0, &hf_h245_canNotPerformLoop, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11423 { 0, NULL, 0, NULL }
11426 static int
11427 dissect_h245_MaintenanceLoopRejectCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11428 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11429 ett_h245_MaintenanceLoopRejectCause, MaintenanceLoopRejectCause_choice,
11430 NULL);
11432 return offset;
11436 static const per_sequence_t MaintenanceLoopReject_sequence[] = {
11437 { &hf_h245_mlrej_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Mlrej_type },
11438 { &hf_h245_maintloop_rej_cause, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MaintenanceLoopRejectCause },
11439 { NULL, 0, 0, NULL }
11442 static int
11443 dissect_h245_MaintenanceLoopReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11444 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11445 ett_h245_MaintenanceLoopReject, MaintenanceLoopReject_sequence);
11447 return offset;
11452 static int
11453 dissect_h245_BMPString_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11454 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
11455 1, 128, false);
11457 return offset;
11461 static const value_string h245_T_entryDataType_vals[] = {
11462 { 0, "videoData" },
11463 { 1, "audioData" },
11464 { 2, "data" },
11465 { 0, NULL }
11468 static const per_choice_t T_entryDataType_choice[] = {
11469 { 0, &hf_h245_videoData , ASN1_EXTENSION_ROOT , dissect_h245_VideoCapability },
11470 { 1, &hf_h245_audioData , ASN1_EXTENSION_ROOT , dissect_h245_AudioCapability },
11471 { 2, &hf_h245_data , ASN1_EXTENSION_ROOT , dissect_h245_DataApplicationCapability },
11472 { 0, NULL, 0, NULL }
11475 static int
11476 dissect_h245_T_entryDataType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11477 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11478 ett_h245_T_entryDataType, T_entryDataType_choice,
11479 NULL);
11481 return offset;
11486 static int
11487 dissect_h245_Cm_mediaChannel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11488 offset = dissect_h245_TransportAddress(tvb, offset, actx, tree, hf_index);
11490 return offset;
11494 static const per_sequence_t CommunicationModeTableEntry_sequence[] = {
11495 { &hf_h245_nonStandardParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_NonStandardParameter },
11496 { &hf_h245_sessionID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
11497 { &hf_h245_associatedSessionID, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_255 },
11498 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TerminalLabel },
11499 { &hf_h245_sessionDescription, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BMPString_SIZE_1_128 },
11500 { &hf_h245_entryDataType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_entryDataType },
11501 { &hf_h245_cm_mediaChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Cm_mediaChannel },
11502 { &hf_h245_mediaGuaranteedDelivery, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_BOOLEAN },
11503 { &hf_h245_cm_mediaControlChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
11504 { &hf_h245_mediaControlGuaranteedDelivery, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_BOOLEAN },
11505 { &hf_h245_redundancyEncoding, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_RedundancyEncoding },
11506 { &hf_h245_sessionDependency, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_1_255 },
11507 { &hf_h245_destination , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_TerminalLabel },
11508 { NULL, 0, 0, NULL }
11511 static int
11512 dissect_h245_CommunicationModeTableEntry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11513 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11514 ett_h245_CommunicationModeTableEntry, CommunicationModeTableEntry_sequence);
11516 return offset;
11520 static const per_sequence_t SET_SIZE_1_256_OF_CommunicationModeTableEntry_set_of[1] = {
11521 { &hf_h245_communicationModeTable_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CommunicationModeTableEntry },
11524 static int
11525 dissect_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11526 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
11527 ett_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry, SET_SIZE_1_256_OF_CommunicationModeTableEntry_set_of,
11528 1, 256, false);
11530 return offset;
11534 static const value_string h245_CommunicationModeResponse_vals[] = {
11535 { 0, "communicationModeTable" },
11536 { 0, NULL }
11539 static const per_choice_t CommunicationModeResponse_choice[] = {
11540 { 0, &hf_h245_communicationModeTable, ASN1_EXTENSION_ROOT , dissect_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry },
11541 { 0, NULL, 0, NULL }
11544 static int
11545 dissect_h245_CommunicationModeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11546 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11547 ett_h245_CommunicationModeResponse, CommunicationModeResponse_choice,
11548 NULL);
11550 return offset;
11555 static int
11556 dissect_h245_TerminalID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11557 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
11558 1, 128, false, NULL);
11560 return offset;
11564 static const per_sequence_t T_mCTerminalIDResponse_sequence[] = {
11565 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11566 { &hf_h245_terminalID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalID },
11567 { NULL, 0, 0, NULL }
11570 static int
11571 dissect_h245_T_mCTerminalIDResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11572 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11573 ett_h245_T_mCTerminalIDResponse, T_mCTerminalIDResponse_sequence);
11575 return offset;
11579 static const per_sequence_t T_terminalIDResponse_sequence[] = {
11580 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11581 { &hf_h245_terminalID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalID },
11582 { NULL, 0, 0, NULL }
11585 static int
11586 dissect_h245_T_terminalIDResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11587 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11588 ett_h245_T_terminalIDResponse, T_terminalIDResponse_sequence);
11590 return offset;
11595 static int
11596 dissect_h245_ConferenceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11597 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
11598 1, 32, false, NULL);
11600 return offset;
11604 static const per_sequence_t T_conferenceIDResponse_sequence[] = {
11605 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11606 { &hf_h245_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ConferenceID },
11607 { NULL, 0, 0, NULL }
11610 static int
11611 dissect_h245_T_conferenceIDResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11612 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11613 ett_h245_T_conferenceIDResponse, T_conferenceIDResponse_sequence);
11615 return offset;
11620 static int
11621 dissect_h245_Password(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11622 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
11623 1, 32, false, NULL);
11625 return offset;
11629 static const per_sequence_t T_passwordResponse_sequence[] = {
11630 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11631 { &hf_h245_password , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Password },
11632 { NULL, 0, 0, NULL }
11635 static int
11636 dissect_h245_T_passwordResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11637 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11638 ett_h245_T_passwordResponse, T_passwordResponse_sequence);
11640 return offset;
11644 static const per_sequence_t SET_SIZE_1_256_OF_TerminalLabel_set_of[1] = {
11645 { &hf_h245_terminalListResponse_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11648 static int
11649 dissect_h245_SET_SIZE_1_256_OF_TerminalLabel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11650 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
11651 ett_h245_SET_SIZE_1_256_OF_TerminalLabel, SET_SIZE_1_256_OF_TerminalLabel_set_of,
11652 1, 256, false);
11654 return offset;
11658 static const value_string h245_T_makeMeChairResponse_vals[] = {
11659 { 0, "grantedChairToken" },
11660 { 1, "deniedChairToken" },
11661 { 0, NULL }
11664 static const per_choice_t T_makeMeChairResponse_choice[] = {
11665 { 0, &hf_h245_grantedChairToken, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11666 { 1, &hf_h245_deniedChairToken, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11667 { 0, NULL, 0, NULL }
11670 static int
11671 dissect_h245_T_makeMeChairResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11672 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11673 ett_h245_T_makeMeChairResponse, T_makeMeChairResponse_choice,
11674 NULL);
11676 return offset;
11680 static const per_sequence_t T_extensionAddressResponse_sequence[] = {
11681 { &hf_h245_extensionAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalID },
11682 { NULL, 0, 0, NULL }
11685 static int
11686 dissect_h245_T_extensionAddressResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11687 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11688 ett_h245_T_extensionAddressResponse, T_extensionAddressResponse_sequence);
11690 return offset;
11694 static const per_sequence_t T_chairTokenOwnerResponse_sequence[] = {
11695 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11696 { &hf_h245_terminalID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalID },
11697 { NULL, 0, 0, NULL }
11700 static int
11701 dissect_h245_T_chairTokenOwnerResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11702 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11703 ett_h245_T_chairTokenOwnerResponse, T_chairTokenOwnerResponse_sequence);
11705 return offset;
11709 static const per_sequence_t T_terminalCertificateResponse_sequence[] = {
11710 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TerminalLabel },
11711 { &hf_h245_certificateResponse, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING_SIZE_1_65535 },
11712 { NULL, 0, 0, NULL }
11715 static int
11716 dissect_h245_T_terminalCertificateResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11717 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11718 ett_h245_T_terminalCertificateResponse, T_terminalCertificateResponse_sequence);
11720 return offset;
11724 static const value_string h245_T_broadcastMyLogicalChannelResponse_vals[] = {
11725 { 0, "grantedBroadcastMyLogicalChannel" },
11726 { 1, "deniedBroadcastMyLogicalChannel" },
11727 { 0, NULL }
11730 static const per_choice_t T_broadcastMyLogicalChannelResponse_choice[] = {
11731 { 0, &hf_h245_grantedBroadcastMyLogicalChannel, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11732 { 1, &hf_h245_deniedBroadcastMyLogicalChannel, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11733 { 0, NULL, 0, NULL }
11736 static int
11737 dissect_h245_T_broadcastMyLogicalChannelResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11738 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11739 ett_h245_T_broadcastMyLogicalChannelResponse, T_broadcastMyLogicalChannelResponse_choice,
11740 NULL);
11742 return offset;
11746 static const value_string h245_T_makeTerminalBroadcasterResponse_vals[] = {
11747 { 0, "grantedMakeTerminalBroadcaster" },
11748 { 1, "deniedMakeTerminalBroadcaster" },
11749 { 0, NULL }
11752 static const per_choice_t T_makeTerminalBroadcasterResponse_choice[] = {
11753 { 0, &hf_h245_grantedMakeTerminalBroadcaster, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11754 { 1, &hf_h245_deniedMakeTerminalBroadcaster, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11755 { 0, NULL, 0, NULL }
11758 static int
11759 dissect_h245_T_makeTerminalBroadcasterResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11760 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11761 ett_h245_T_makeTerminalBroadcasterResponse, T_makeTerminalBroadcasterResponse_choice,
11762 NULL);
11764 return offset;
11768 static const value_string h245_T_sendThisSourceResponse_vals[] = {
11769 { 0, "grantedSendThisSource" },
11770 { 1, "deniedSendThisSource" },
11771 { 0, NULL }
11774 static const per_choice_t T_sendThisSourceResponse_choice[] = {
11775 { 0, &hf_h245_grantedSendThisSource, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11776 { 1, &hf_h245_deniedSendThisSource, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11777 { 0, NULL, 0, NULL }
11780 static int
11781 dissect_h245_T_sendThisSourceResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11782 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11783 ett_h245_T_sendThisSourceResponse, T_sendThisSourceResponse_choice,
11784 NULL);
11786 return offset;
11790 static const per_sequence_t TerminalInformation_sequence[] = {
11791 { &hf_h245_terminalLabel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalLabel },
11792 { &hf_h245_terminalID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalID },
11793 { NULL, 0, 0, NULL }
11796 static int
11797 dissect_h245_TerminalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11798 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11799 ett_h245_TerminalInformation, TerminalInformation_sequence);
11801 return offset;
11805 static const per_sequence_t SEQUENCE_OF_TerminalInformation_sequence_of[1] = {
11806 { &hf_h245_terminalInformation_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_TerminalInformation },
11809 static int
11810 dissect_h245_SEQUENCE_OF_TerminalInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11811 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
11812 ett_h245_SEQUENCE_OF_TerminalInformation, SEQUENCE_OF_TerminalInformation_sequence_of);
11814 return offset;
11818 static const per_sequence_t RequestAllTerminalIDsResponse_sequence[] = {
11819 { &hf_h245_terminalInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SEQUENCE_OF_TerminalInformation },
11820 { NULL, 0, 0, NULL }
11823 static int
11824 dissect_h245_RequestAllTerminalIDsResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11825 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11826 ett_h245_RequestAllTerminalIDsResponse, RequestAllTerminalIDsResponse_sequence);
11828 return offset;
11832 static const value_string h245_T_reject_vals[] = {
11833 { 0, "unspecified" },
11834 { 1, "functionNotSupported" },
11835 { 0, NULL }
11838 static const per_choice_t T_reject_choice[] = {
11839 { 0, &hf_h245_unspecified , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11840 { 1, &hf_h245_functionNotSupportedFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11841 { 0, NULL, 0, NULL }
11844 static int
11845 dissect_h245_T_reject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11846 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11847 ett_h245_T_reject, T_reject_choice,
11848 NULL);
11850 return offset;
11854 static const value_string h245_RemoteMCResponse_vals[] = {
11855 { 0, "accept" },
11856 { 1, "reject" },
11857 { 0, NULL }
11860 static const per_choice_t RemoteMCResponse_choice[] = {
11861 { 0, &hf_h245_accept , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11862 { 1, &hf_h245_reject , ASN1_EXTENSION_ROOT , dissect_h245_T_reject },
11863 { 0, NULL, 0, NULL }
11866 static int
11867 dissect_h245_RemoteMCResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11868 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11869 ett_h245_RemoteMCResponse, RemoteMCResponse_choice,
11870 NULL);
11872 return offset;
11876 static const value_string h245_ConferenceResponse_vals[] = {
11877 { 0, "mCTerminalIDResponse" },
11878 { 1, "terminalIDResponse" },
11879 { 2, "conferenceIDResponse" },
11880 { 3, "passwordResponse" },
11881 { 4, "terminalListResponse" },
11882 { 5, "videoCommandReject" },
11883 { 6, "terminalDropReject" },
11884 { 7, "makeMeChairResponse" },
11885 { 8, "extensionAddressResponse" },
11886 { 9, "chairTokenOwnerResponse" },
11887 { 10, "terminalCertificateResponse" },
11888 { 11, "broadcastMyLogicalChannelResponse" },
11889 { 12, "makeTerminalBroadcasterResponse" },
11890 { 13, "sendThisSourceResponse" },
11891 { 14, "requestAllTerminalIDsResponse" },
11892 { 15, "remoteMCResponse" },
11893 { 0, NULL }
11896 static const per_choice_t ConferenceResponse_choice[] = {
11897 { 0, &hf_h245_mCTerminalIDResponse, ASN1_EXTENSION_ROOT , dissect_h245_T_mCTerminalIDResponse },
11898 { 1, &hf_h245_terminalIDResponse, ASN1_EXTENSION_ROOT , dissect_h245_T_terminalIDResponse },
11899 { 2, &hf_h245_conferenceIDResponse, ASN1_EXTENSION_ROOT , dissect_h245_T_conferenceIDResponse },
11900 { 3, &hf_h245_passwordResponse, ASN1_EXTENSION_ROOT , dissect_h245_T_passwordResponse },
11901 { 4, &hf_h245_terminalListResponse, ASN1_EXTENSION_ROOT , dissect_h245_SET_SIZE_1_256_OF_TerminalLabel },
11902 { 5, &hf_h245_videoCommandReject, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11903 { 6, &hf_h245_terminalDropReject, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11904 { 7, &hf_h245_makeMeChairResponse, ASN1_EXTENSION_ROOT , dissect_h245_T_makeMeChairResponse },
11905 { 8, &hf_h245_extensionAddressResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_extensionAddressResponse },
11906 { 9, &hf_h245_chairTokenOwnerResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_chairTokenOwnerResponse },
11907 { 10, &hf_h245_terminalCertificateResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_terminalCertificateResponse },
11908 { 11, &hf_h245_broadcastMyLogicalChannelResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_broadcastMyLogicalChannelResponse },
11909 { 12, &hf_h245_makeTerminalBroadcasterResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_makeTerminalBroadcasterResponse },
11910 { 13, &hf_h245_sendThisSourceResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_sendThisSourceResponse },
11911 { 14, &hf_h245_requestAllTerminalIDsResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RequestAllTerminalIDsResponse },
11912 { 15, &hf_h245_remoteMCResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_RemoteMCResponse },
11913 { 0, NULL, 0, NULL }
11916 static int
11917 dissect_h245_ConferenceResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11918 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11919 ett_h245_ConferenceResponse, ConferenceResponse_choice,
11920 NULL);
11922 return offset;
11926 static const per_sequence_t CallInformationResp_sequence[] = {
11927 { &hf_h245_dialingInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_DialingInformation },
11928 { &hf_h245_callAssociationNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4294967295 },
11929 { NULL, 0, 0, NULL }
11932 static int
11933 dissect_h245_CallInformationResp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11934 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11935 ett_h245_CallInformationResp, CallInformationResp_sequence);
11937 return offset;
11941 static const value_string h245_T_rejected_vals[] = {
11942 { 0, "connectionsNotAvailable" },
11943 { 1, "userRejected" },
11944 { 0, NULL }
11947 static const per_choice_t T_rejected_choice[] = {
11948 { 0, &hf_h245_connectionsNotAvailable, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11949 { 1, &hf_h245_userRejected , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11950 { 0, NULL, 0, NULL }
11953 static int
11954 dissect_h245_T_rejected(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11955 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11956 ett_h245_T_rejected, T_rejected_choice,
11957 NULL);
11959 return offset;
11963 static const value_string h245_T_responseCode_vals[] = {
11964 { 0, "accepted" },
11965 { 1, "rejected" },
11966 { 0, NULL }
11969 static const per_choice_t T_responseCode_choice[] = {
11970 { 0, &hf_h245_accepted , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
11971 { 1, &hf_h245_rejected , ASN1_EXTENSION_ROOT , dissect_h245_T_rejected },
11972 { 0, NULL, 0, NULL }
11975 static int
11976 dissect_h245_T_responseCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11977 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
11978 ett_h245_T_responseCode, T_responseCode_choice,
11979 NULL);
11981 return offset;
11985 static const per_sequence_t AddConnectionResp_sequence[] = {
11986 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
11987 { &hf_h245_responseCode , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_responseCode },
11988 { NULL, 0, 0, NULL }
11991 static int
11992 dissect_h245_AddConnectionResp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
11993 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
11994 ett_h245_AddConnectionResp, AddConnectionResp_sequence);
11996 return offset;
12000 static const per_sequence_t RemoveConnectionResp_sequence[] = {
12001 { &hf_h245_connectionIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ConnectionIdentifier },
12002 { NULL, 0, 0, NULL }
12005 static int
12006 dissect_h245_RemoveConnectionResp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12007 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12008 ett_h245_RemoveConnectionResp, RemoveConnectionResp_sequence);
12010 return offset;
12014 static const per_sequence_t MaximumHeaderIntervalResp_sequence[] = {
12015 { &hf_h245_currentInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
12016 { NULL, 0, 0, NULL }
12019 static int
12020 dissect_h245_MaximumHeaderIntervalResp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12021 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12022 ett_h245_MaximumHeaderIntervalResp, MaximumHeaderIntervalResp_sequence);
12024 return offset;
12028 static const value_string h245_MultilinkResponse_vals[] = {
12029 { 0, "nonStandard" },
12030 { 1, "callInformation" },
12031 { 2, "addConnection" },
12032 { 3, "removeConnection" },
12033 { 4, "maximumHeaderInterval" },
12034 { 0, NULL }
12037 static const per_choice_t MultilinkResponse_choice[] = {
12038 { 0, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
12039 { 1, &hf_h245_callInformationResp, ASN1_EXTENSION_ROOT , dissect_h245_CallInformationResp },
12040 { 2, &hf_h245_addConnectionResp, ASN1_EXTENSION_ROOT , dissect_h245_AddConnectionResp },
12041 { 3, &hf_h245_removeConnectionResp, ASN1_EXTENSION_ROOT , dissect_h245_RemoveConnectionResp },
12042 { 4, &hf_h245_maximumHeaderIntervalResp, ASN1_EXTENSION_ROOT , dissect_h245_MaximumHeaderIntervalResp },
12043 { 0, NULL, 0, NULL }
12046 static int
12047 dissect_h245_MultilinkResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12048 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12049 ett_h245_MultilinkResponse, MultilinkResponse_choice,
12050 NULL);
12052 return offset;
12056 static const per_sequence_t LogicalChannelRateAcknowledge_sequence[] = {
12057 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
12058 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
12059 { &hf_h245_maximumBitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_MaximumBitRate },
12060 { NULL, 0, 0, NULL }
12063 static int
12064 dissect_h245_LogicalChannelRateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12065 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12066 ett_h245_LogicalChannelRateAcknowledge, LogicalChannelRateAcknowledge_sequence);
12068 return offset;
12072 static const value_string h245_LogicalChannelRateRejectReason_vals[] = {
12073 { 0, "undefinedReason" },
12074 { 1, "insufficientResources" },
12075 { 0, NULL }
12078 static const per_choice_t LogicalChannelRateRejectReason_choice[] = {
12079 { 0, &hf_h245_undefinedReason, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12080 { 1, &hf_h245_insufficientResources, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12081 { 0, NULL, 0, NULL }
12084 static int
12085 dissect_h245_LogicalChannelRateRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12086 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12087 ett_h245_LogicalChannelRateRejectReason, LogicalChannelRateRejectReason_choice,
12088 NULL);
12090 return offset;
12094 static const per_sequence_t LogicalChannelRateReject_sequence[] = {
12095 { &hf_h245_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
12096 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
12097 { &hf_h245_rejectReason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelRateRejectReason },
12098 { &hf_h245_currentMaximumBitRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_MaximumBitRate },
12099 { NULL, 0, 0, NULL }
12102 static int
12103 dissect_h245_LogicalChannelRateReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12104 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12105 ett_h245_LogicalChannelRateReject, LogicalChannelRateReject_sequence);
12107 return offset;
12111 static const value_string h245_ResponseMessage_vals[] = {
12112 { ResponseMessage_nonStandard, "nonStandard" },
12113 { ResponseMessage_masterSlaveDeterminationAck, "masterSlaveDeterminationAck" },
12114 { ResponseMessage_masterSlaveDeterminationReject, "masterSlaveDeterminationReject" },
12115 { ResponseMessage_terminalCapabilitySetAck, "terminalCapabilitySetAck" },
12116 { ResponseMessage_terminalCapabilitySetReject, "terminalCapabilitySetReject" },
12117 { ResponseMessage_openLogicalChannelAck, "openLogicalChannelAck" },
12118 { ResponseMessage_openLogicalChannelReject, "openLogicalChannelReject" },
12119 { ResponseMessage_closeLogicalChannelAck, "closeLogicalChannelAck" },
12120 { ResponseMessage_requestChannelCloseAck, "requestChannelCloseAck" },
12121 { ResponseMessage_requestChannelCloseReject, "requestChannelCloseReject" },
12122 { ResponseMessage_multiplexEntrySendAck, "multiplexEntrySendAck" },
12123 { ResponseMessage_multiplexEntrySendReject, "multiplexEntrySendReject" },
12124 { ResponseMessage_requestMultiplexEntryAck, "requestMultiplexEntryAck" },
12125 { ResponseMessage_requestMultiplexEntryReject, "requestMultiplexEntryReject" },
12126 { ResponseMessage_requestModeAck, "requestModeAck" },
12127 { ResponseMessage_requestModeReject, "requestModeReject" },
12128 { ResponseMessage_roundTripDelayResponse, "roundTripDelayResponse" },
12129 { ResponseMessage_maintenanceLoopAck, "maintenanceLoopAck" },
12130 { ResponseMessage_maintenanceLoopReject, "maintenanceLoopReject" },
12131 { ResponseMessage_communicationModeResponse, "communicationModeResponse" },
12132 { ResponseMessage_conferenceResponse, "conferenceResponse" },
12133 { ResponseMessage_multilinkResponse, "multilinkResponse" },
12134 { ResponseMessage_logicalChannelRateAcknowledge, "logicalChannelRateAcknowledge" },
12135 { ResponseMessage_logicalChannelRateReject, "logicalChannelRateReject" },
12136 { ResponseMessage_genericResponse, "genericResponse" },
12137 { 0, NULL }
12140 static const per_choice_t ResponseMessage_choice[] = {
12141 { ResponseMessage_nonStandard, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
12142 { ResponseMessage_masterSlaveDeterminationAck, &hf_h245_masterSlaveDeterminationAck, ASN1_EXTENSION_ROOT , dissect_h245_MasterSlaveDeterminationAck },
12143 { ResponseMessage_masterSlaveDeterminationReject, &hf_h245_masterSlaveDeterminationReject, ASN1_EXTENSION_ROOT , dissect_h245_MasterSlaveDeterminationReject },
12144 { ResponseMessage_terminalCapabilitySetAck, &hf_h245_terminalCapabilitySetAck, ASN1_EXTENSION_ROOT , dissect_h245_TerminalCapabilitySetAck },
12145 { ResponseMessage_terminalCapabilitySetReject, &hf_h245_terminalCapabilitySetReject, ASN1_EXTENSION_ROOT , dissect_h245_TerminalCapabilitySetReject },
12146 { ResponseMessage_openLogicalChannelAck, &hf_h245_openLogicalChannelAck, ASN1_EXTENSION_ROOT , dissect_h245_OpenLogicalChannelAck },
12147 { ResponseMessage_openLogicalChannelReject, &hf_h245_openLogicalChannelReject, ASN1_EXTENSION_ROOT , dissect_h245_OpenLogicalChannelReject },
12148 { ResponseMessage_closeLogicalChannelAck, &hf_h245_closeLogicalChannelAck, ASN1_EXTENSION_ROOT , dissect_h245_CloseLogicalChannelAck },
12149 { ResponseMessage_requestChannelCloseAck, &hf_h245_requestChannelCloseAck, ASN1_EXTENSION_ROOT , dissect_h245_RequestChannelCloseAck },
12150 { ResponseMessage_requestChannelCloseReject, &hf_h245_requestChannelCloseReject, ASN1_EXTENSION_ROOT , dissect_h245_RequestChannelCloseReject },
12151 { ResponseMessage_multiplexEntrySendAck, &hf_h245_multiplexEntrySendAck, ASN1_EXTENSION_ROOT , dissect_h245_MultiplexEntrySendAck },
12152 { ResponseMessage_multiplexEntrySendReject, &hf_h245_multiplexEntrySendReject, ASN1_EXTENSION_ROOT , dissect_h245_MultiplexEntrySendReject },
12153 { ResponseMessage_requestMultiplexEntryAck, &hf_h245_requestMultiplexEntryAck, ASN1_EXTENSION_ROOT , dissect_h245_RequestMultiplexEntryAck },
12154 { ResponseMessage_requestMultiplexEntryReject, &hf_h245_requestMultiplexEntryReject, ASN1_EXTENSION_ROOT , dissect_h245_RequestMultiplexEntryReject },
12155 { ResponseMessage_requestModeAck, &hf_h245_requestModeAck , ASN1_EXTENSION_ROOT , dissect_h245_RequestModeAck },
12156 { ResponseMessage_requestModeReject, &hf_h245_requestModeReject, ASN1_EXTENSION_ROOT , dissect_h245_RequestModeReject },
12157 { ResponseMessage_roundTripDelayResponse, &hf_h245_roundTripDelayResponse, ASN1_EXTENSION_ROOT , dissect_h245_RoundTripDelayResponse },
12158 { ResponseMessage_maintenanceLoopAck, &hf_h245_maintenanceLoopAck, ASN1_EXTENSION_ROOT , dissect_h245_MaintenanceLoopAck },
12159 { ResponseMessage_maintenanceLoopReject, &hf_h245_maintenanceLoopReject, ASN1_EXTENSION_ROOT , dissect_h245_MaintenanceLoopReject },
12160 { ResponseMessage_communicationModeResponse, &hf_h245_communicationModeResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_CommunicationModeResponse },
12161 { ResponseMessage_conferenceResponse, &hf_h245_conferenceResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_ConferenceResponse },
12162 { ResponseMessage_multilinkResponse, &hf_h245_multilinkResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultilinkResponse },
12163 { ResponseMessage_logicalChannelRateAcknowledge, &hf_h245_logicalChannelRateAcknowledge, ASN1_NOT_EXTENSION_ROOT, dissect_h245_LogicalChannelRateAcknowledge },
12164 { ResponseMessage_logicalChannelRateReject, &hf_h245_logicalChannelRateReject, ASN1_NOT_EXTENSION_ROOT, dissect_h245_LogicalChannelRateReject },
12165 { ResponseMessage_genericResponse, &hf_h245_genericResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericMessage },
12166 { 0, NULL, 0, NULL }
12169 static int
12170 dissect_h245_ResponseMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12171 int32_t value;
12173 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12174 ett_h245_ResponseMessage, ResponseMessage_choice,
12175 &value);
12177 print_info_column(actx->pinfo->cinfo, &value, h245_ResponseMessage_vals, h245_ResponseMessage_short_vals);
12178 col_set_fence(actx->pinfo->cinfo,COL_INFO);
12180 if (h245_pi != NULL){
12181 /* Add to packet info */
12182 if ( strlen(h245_pi->frame_label) == 0 ){
12183 snprintf(h245_pi->frame_label, 50, "%s", val_to_str_const(value, h245_ResponseMessage_short_vals, "UKN"));
12185 (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_ResponseMessage_vals, "<unknown>"), 50);
12189 return offset;
12193 static const per_sequence_t MaintenanceLoopOffCommand_sequence[] = {
12194 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
12197 static int
12198 dissect_h245_MaintenanceLoopOffCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12199 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12200 ett_h245_MaintenanceLoopOffCommand, MaintenanceLoopOffCommand_sequence);
12202 return offset;
12206 static const per_sequence_t SET_SIZE_1_65535_OF_CapabilityTableEntryNumber_set_of[1] = {
12207 { &hf_h245_capabilityTableEntryNumbers_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityTableEntryNumber },
12210 static int
12211 dissect_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12212 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
12213 ett_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber, SET_SIZE_1_65535_OF_CapabilityTableEntryNumber_set_of,
12214 1, 65535, false);
12216 return offset;
12220 static const per_sequence_t SET_SIZE_1_256_OF_CapabilityDescriptorNumber_set_of[1] = {
12221 { &hf_h245_capabilityDescriptorNumbers_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_CapabilityDescriptorNumber },
12224 static int
12225 dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12226 offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
12227 ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber, SET_SIZE_1_256_OF_CapabilityDescriptorNumber_set_of,
12228 1, 256, false);
12230 return offset;
12234 static const per_sequence_t T_specificRequest_sequence[] = {
12235 { &hf_h245_multiplexCapabilityBool, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
12236 { &hf_h245_capabilityTableEntryNumbers, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber },
12237 { &hf_h245_capabilityDescriptorNumbers, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber },
12238 { NULL, 0, 0, NULL }
12241 static int
12242 dissect_h245_T_specificRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12243 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12244 ett_h245_T_specificRequest, T_specificRequest_sequence);
12246 return offset;
12250 static const value_string h245_SendTerminalCapabilitySet_vals[] = {
12251 { 0, "specificRequest" },
12252 { 1, "genericRequest" },
12253 { 0, NULL }
12256 static const per_choice_t SendTerminalCapabilitySet_choice[] = {
12257 { 0, &hf_h245_specificRequest, ASN1_EXTENSION_ROOT , dissect_h245_T_specificRequest },
12258 { 1, &hf_h245_genericRequestFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12259 { 0, NULL, 0, NULL }
12262 static int
12263 dissect_h245_SendTerminalCapabilitySet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12264 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12265 ett_h245_SendTerminalCapabilitySet, SendTerminalCapabilitySet_choice,
12266 NULL);
12268 return offset;
12272 static const per_sequence_t T_encryptionAlgorithmID_sequence[] = {
12273 { &hf_h245_h233AlgorithmIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_SequenceNumber },
12274 { &hf_h245_associatedAlgorithm, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_NonStandardParameter },
12275 { NULL, 0, 0, NULL }
12278 static int
12279 dissect_h245_T_encryptionAlgorithmID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12280 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12281 ett_h245_T_encryptionAlgorithmID, T_encryptionAlgorithmID_sequence);
12283 return offset;
12287 static const value_string h245_EncryptionCommand_vals[] = {
12288 { 0, "encryptionSE" },
12289 { 1, "encryptionIVRequest" },
12290 { 2, "encryptionAlgorithmID" },
12291 { 0, NULL }
12294 static const per_choice_t EncryptionCommand_choice[] = {
12295 { 0, &hf_h245_encryptionSE , ASN1_EXTENSION_ROOT , dissect_h245_OCTET_STRING },
12296 { 1, &hf_h245_encryptionIVRequest, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12297 { 2, &hf_h245_encryptionAlgorithmID, ASN1_EXTENSION_ROOT , dissect_h245_T_encryptionAlgorithmID },
12298 { 0, NULL, 0, NULL }
12301 static int
12302 dissect_h245_EncryptionCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12303 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12304 ett_h245_EncryptionCommand, EncryptionCommand_choice,
12305 NULL);
12307 return offset;
12311 static const value_string h245_Scope_vals[] = {
12312 { 0, "logicalChannelNumber" },
12313 { 1, "resourceID" },
12314 { 2, "wholeMultiplex" },
12315 { 0, NULL }
12318 static const per_choice_t Scope_choice[] = {
12319 { 0, &hf_h245_logicalChannelNumber, ASN1_NO_EXTENSIONS , dissect_h245_LogicalChannelNumber },
12320 { 1, &hf_h245_resourceID , ASN1_NO_EXTENSIONS , dissect_h245_INTEGER_0_65535 },
12321 { 2, &hf_h245_wholeMultiplex , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
12322 { 0, NULL, 0, NULL }
12325 static int
12326 dissect_h245_Scope(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12327 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12328 ett_h245_Scope, Scope_choice,
12329 NULL);
12331 return offset;
12335 static const value_string h245_Restriction_vals[] = {
12336 { 0, "maximumBitRate" },
12337 { 1, "noRestriction" },
12338 { 0, NULL }
12341 static const per_choice_t Restriction_choice[] = {
12342 { 0, &hf_h245_res_maximumBitRate, ASN1_NO_EXTENSIONS , dissect_h245_INTEGER_0_16777215 },
12343 { 1, &hf_h245_noRestriction , ASN1_NO_EXTENSIONS , dissect_h245_NULL },
12344 { 0, NULL, 0, NULL }
12347 static int
12348 dissect_h245_Restriction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12349 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12350 ett_h245_Restriction, Restriction_choice,
12351 NULL);
12353 return offset;
12357 static const per_sequence_t FlowControlCommand_sequence[] = {
12358 { &hf_h245_scope , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Scope },
12359 { &hf_h245_restriction , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Restriction },
12360 { NULL, 0, 0, NULL }
12363 static int
12364 dissect_h245_FlowControlCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12365 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12366 ett_h245_FlowControlCommand, FlowControlCommand_sequence);
12368 return offset;
12372 static const value_string h245_T_gstnOptions_vals[] = {
12373 { 0, "telephonyMode" },
12374 { 1, "v8bis" },
12375 { 2, "v34DSVD" },
12376 { 3, "v34DuplexFAX" },
12377 { 4, "v34H324" },
12378 { 0, NULL }
12381 static const per_choice_t T_gstnOptions_choice[] = {
12382 { 0, &hf_h245_telephonyMode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12383 { 1, &hf_h245_v8bis , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12384 { 2, &hf_h245_v34DSVD , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12385 { 3, &hf_h245_v34DuplexFAX , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12386 { 4, &hf_h245_v34H324 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12387 { 0, NULL, 0, NULL }
12390 static int
12391 dissect_h245_T_gstnOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12392 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12393 ett_h245_T_gstnOptions, T_gstnOptions_choice,
12394 NULL);
12396 return offset;
12400 static const value_string h245_T_isdnOptions_vals[] = {
12401 { 0, "telephonyMode" },
12402 { 1, "v140" },
12403 { 2, "terminalOnHold" },
12404 { 0, NULL }
12407 static const per_choice_t T_isdnOptions_choice[] = {
12408 { 0, &hf_h245_telephonyMode , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12409 { 1, &hf_h245_v140 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12410 { 2, &hf_h245_terminalOnHold , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12411 { 0, NULL, 0, NULL }
12414 static int
12415 dissect_h245_T_isdnOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12416 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12417 ett_h245_T_isdnOptions, T_isdnOptions_choice,
12418 NULL);
12420 return offset;
12424 static const value_string h245_EndSessionCommand_vals[] = {
12425 { 0, "nonStandard" },
12426 { 1, "disconnect" },
12427 { 2, "gstnOptions" },
12428 { 3, "isdnOptions" },
12429 { 4, "genericInformation" },
12430 { 0, NULL }
12433 static const per_choice_t EndSessionCommand_choice[] = {
12434 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
12435 { 1, &hf_h245_disconnect , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12436 { 2, &hf_h245_gstnOptions , ASN1_EXTENSION_ROOT , dissect_h245_T_gstnOptions },
12437 { 3, &hf_h245_isdnOptions , ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_isdnOptions },
12438 { 4, &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, dissect_h245_SEQUENCE_OF_GenericInformation },
12439 { 0, NULL, 0, NULL }
12442 static int
12443 dissect_h245_EndSessionCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12444 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12445 ett_h245_EndSessionCommand, EndSessionCommand_choice,
12446 NULL);
12448 return offset;
12453 static int
12454 dissect_h245_INTEGER_0_17(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12455 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12456 0U, 17U, NULL, false);
12458 return offset;
12463 static int
12464 dissect_h245_INTEGER_1_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12465 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12466 1U, 18U, NULL, false);
12468 return offset;
12472 static const per_sequence_t T_videoFastUpdateGOB_sequence[] = {
12473 { &hf_h245_firstGOB , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_17 },
12474 { &hf_h245_numberOfGOBs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_18 },
12475 { NULL, 0, 0, NULL }
12478 static int
12479 dissect_h245_T_videoFastUpdateGOB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12480 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12481 ett_h245_T_videoFastUpdateGOB, T_videoFastUpdateGOB_sequence);
12483 return offset;
12488 static int
12489 dissect_h245_INTEGER_0_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12490 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12491 0U, 31U, NULL, false);
12493 return offset;
12498 static int
12499 dissect_h245_INTEGER_1_8192(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12500 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12501 1U, 8192U, NULL, false);
12503 return offset;
12507 static const per_sequence_t T_videoFastUpdateMB_sequence[] = {
12508 { &hf_h245_firstGOB_0_255 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_255 },
12509 { &hf_h245_firstMB_1_8192 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_8192 },
12510 { &hf_h245_numberOfMBs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_8192 },
12511 { NULL, 0, 0, NULL }
12514 static int
12515 dissect_h245_T_videoFastUpdateMB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12516 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12517 ett_h245_T_videoFastUpdateMB, T_videoFastUpdateMB_sequence);
12519 return offset;
12523 static const per_sequence_t KeyProtectionMethod_sequence[] = {
12524 { &hf_h245_secureChannel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
12525 { &hf_h245_sharedSecret , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
12526 { &hf_h245_certProtectedKey, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
12527 { NULL, 0, 0, NULL }
12530 static int
12531 dissect_h245_KeyProtectionMethod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12532 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12533 ett_h245_KeyProtectionMethod, KeyProtectionMethod_sequence);
12535 return offset;
12539 static const per_sequence_t EncryptionUpdateRequest_sequence[] = {
12540 { &hf_h245_keyProtectionMethod, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_KeyProtectionMethod },
12541 { &hf_h245_synchFlag , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_INTEGER_0_255 },
12542 { NULL, 0, 0, NULL }
12545 static int
12546 dissect_h245_EncryptionUpdateRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12547 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12548 ett_h245_EncryptionUpdateRequest, EncryptionUpdateRequest_sequence);
12550 return offset;
12554 static const value_string h245_T_repeatCount_vals[] = {
12555 { 0, "doOneProgression" },
12556 { 1, "doContinuousProgressions" },
12557 { 2, "doOneIndependentProgression" },
12558 { 3, "doContinuousIndependentProgressions" },
12559 { 0, NULL }
12562 static const per_choice_t T_repeatCount_choice[] = {
12563 { 0, &hf_h245_doOneProgression, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12564 { 1, &hf_h245_doContinuousProgressions, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12565 { 2, &hf_h245_doOneIndependentProgression, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12566 { 3, &hf_h245_doContinuousIndependentProgressions, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12567 { 0, NULL, 0, NULL }
12570 static int
12571 dissect_h245_T_repeatCount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12572 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12573 ett_h245_T_repeatCount, T_repeatCount_choice,
12574 NULL);
12576 return offset;
12580 static const per_sequence_t T_progressiveRefinementStart_sequence[] = {
12581 { &hf_h245_repeatCount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_repeatCount },
12582 { NULL, 0, 0, NULL }
12585 static int
12586 dissect_h245_T_progressiveRefinementStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12587 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12588 ett_h245_T_progressiveRefinementStart, T_progressiveRefinementStart_sequence);
12590 return offset;
12595 static int
12596 dissect_h245_INTEGER_1_9216(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12597 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
12598 1U, 9216U, NULL, false);
12600 return offset;
12604 static const per_sequence_t T_videoBadMBs_sequence[] = {
12605 { &hf_h245_firstMB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_9216 },
12606 { &hf_h245_numberOfMBs1_1_9216, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_9216 },
12607 { &hf_h245_temporalReference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_1023 },
12608 { NULL, 0, 0, NULL }
12611 static int
12612 dissect_h245_T_videoBadMBs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12613 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12614 ett_h245_T_videoBadMBs, T_videoBadMBs_sequence);
12616 return offset;
12620 static const value_string h245_PictureReference_vals[] = {
12621 { 0, "pictureNumber" },
12622 { 1, "longTermPictureIndex" },
12623 { 0, NULL }
12626 static const per_choice_t PictureReference_choice[] = {
12627 { 0, &hf_h245_pictureNumber , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_1023 },
12628 { 1, &hf_h245_longTermPictureIndex, ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_255 },
12629 { 0, NULL, 0, NULL }
12632 static int
12633 dissect_h245_PictureReference(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12634 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12635 ett_h245_PictureReference, PictureReference_choice,
12636 NULL);
12638 return offset;
12642 static const per_sequence_t SEQUENCE_OF_PictureReference_sequence_of[1] = {
12643 { &hf_h245_lostPicture_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_PictureReference },
12646 static int
12647 dissect_h245_SEQUENCE_OF_PictureReference(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12648 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
12649 ett_h245_SEQUENCE_OF_PictureReference, SEQUENCE_OF_PictureReference_sequence_of);
12651 return offset;
12655 static const per_sequence_t T_lostPartialPicture_sequence[] = {
12656 { &hf_h245_pictureReference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_PictureReference },
12657 { &hf_h245_firstMB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_9216 },
12658 { &hf_h245_numberOfMBs1_1_9216, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_9216 },
12659 { NULL, 0, 0, NULL }
12662 static int
12663 dissect_h245_T_lostPartialPicture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12664 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12665 ett_h245_T_lostPartialPicture, T_lostPartialPicture_sequence);
12667 return offset;
12671 static const per_sequence_t T_encryptionUpdateCommand_sequence[] = {
12672 { &hf_h245_encryptionSync , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_EncryptionSync },
12673 { &hf_h245_multiplePayloadStream, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_MultiplePayloadStream },
12674 { NULL, 0, 0, NULL }
12677 static int
12678 dissect_h245_T_encryptionUpdateCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12679 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12680 ett_h245_T_encryptionUpdateCommand, T_encryptionUpdateCommand_sequence);
12682 return offset;
12686 static const per_sequence_t T_encryptionUpdateAck_sequence[] = {
12687 { &hf_h245_synchFlag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
12688 { NULL, 0, 0, NULL }
12691 static int
12692 dissect_h245_T_encryptionUpdateAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12693 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12694 ett_h245_T_encryptionUpdateAck, T_encryptionUpdateAck_sequence);
12696 return offset;
12700 static const value_string h245_Mc_type_vals[] = {
12701 { 0, "equaliseDelay" },
12702 { 1, "zeroDelay" },
12703 { 2, "multipointModeCommand" },
12704 { 3, "cancelMultipointModeCommand" },
12705 { 4, "videoFreezePicture" },
12706 { 5, "videoFastUpdatePicture" },
12707 { 6, "videoFastUpdateGOB" },
12708 { 7, "videoTemporalSpatialTradeOff" },
12709 { 8, "videoSendSyncEveryGOB" },
12710 { 9, "videoSendSyncEveryGOBCancel" },
12711 { 10, "videoFastUpdateMB" },
12712 { 11, "maxH223MUXPDUsize" },
12713 { 12, "encryptionUpdate" },
12714 { 13, "encryptionUpdateRequest" },
12715 { 14, "switchReceiveMediaOff" },
12716 { 15, "switchReceiveMediaOn" },
12717 { 16, "progressiveRefinementStart" },
12718 { 17, "progressiveRefinementAbortOne" },
12719 { 18, "progressiveRefinementAbortContinuous" },
12720 { 19, "videoBadMBs" },
12721 { 20, "lostPicture" },
12722 { 21, "lostPartialPicture" },
12723 { 22, "recoveryReferencePicture" },
12724 { 23, "encryptionUpdateCommand" },
12725 { 24, "encryptionUpdateAck" },
12726 { 0, NULL }
12729 static const per_choice_t Mc_type_choice[] = {
12730 { 0, &hf_h245_equaliseDelay , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12731 { 1, &hf_h245_zeroDelay , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12732 { 2, &hf_h245_multipointModeCommand, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12733 { 3, &hf_h245_cancelMultipointModeCommand, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12734 { 4, &hf_h245_videoFreezePicture, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12735 { 5, &hf_h245_videoFastUpdatePicture, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12736 { 6, &hf_h245_videoFastUpdateGOB, ASN1_EXTENSION_ROOT , dissect_h245_T_videoFastUpdateGOB },
12737 { 7, &hf_h245_videoTemporalSpatialTradeOff, ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_31 },
12738 { 8, &hf_h245_videoSendSyncEveryGOB, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12739 { 9, &hf_h245_videoSendSyncEveryGOBCancel, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12740 { 10, &hf_h245_videoFastUpdateMB, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_videoFastUpdateMB },
12741 { 11, &hf_h245_maxH223MUXPDUsize, ASN1_NOT_EXTENSION_ROOT, dissect_h245_INTEGER_1_65535 },
12742 { 12, &hf_h245_encryptionUpdate, ASN1_NOT_EXTENSION_ROOT, dissect_h245_EncryptionSync },
12743 { 13, &hf_h245_encryptionUpdateRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h245_EncryptionUpdateRequest },
12744 { 14, &hf_h245_switchReceiveMediaOff, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
12745 { 15, &hf_h245_switchReceiveMediaOn, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
12746 { 16, &hf_h245_progressiveRefinementStart, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_progressiveRefinementStart },
12747 { 17, &hf_h245_progressiveRefinementAbortOne, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
12748 { 18, &hf_h245_progressiveRefinementAbortContinuous, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
12749 { 19, &hf_h245_videoBadMBs , ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_videoBadMBs },
12750 { 20, &hf_h245_lostPicture , ASN1_NOT_EXTENSION_ROOT, dissect_h245_SEQUENCE_OF_PictureReference },
12751 { 21, &hf_h245_lostPartialPicture, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_lostPartialPicture },
12752 { 22, &hf_h245_recoveryReferencePicture, ASN1_NOT_EXTENSION_ROOT, dissect_h245_SEQUENCE_OF_PictureReference },
12753 { 23, &hf_h245_encryptionUpdateCommand, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_encryptionUpdateCommand },
12754 { 24, &hf_h245_encryptionUpdateAck, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_encryptionUpdateAck },
12755 { 0, NULL, 0, NULL }
12758 static int
12759 dissect_h245_Mc_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12760 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12761 ett_h245_Mc_type, Mc_type_choice,
12762 NULL);
12764 return offset;
12768 static const value_string h245_EncryptionUpdateDirection_vals[] = {
12769 { 0, "masterToSlave" },
12770 { 1, "slaveToMaster" },
12771 { 0, NULL }
12774 static const per_choice_t EncryptionUpdateDirection_choice[] = {
12775 { 0, &hf_h245_masterToSlave , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12776 { 1, &hf_h245_slaveToMaster , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12777 { 0, NULL, 0, NULL }
12780 static int
12781 dissect_h245_EncryptionUpdateDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12782 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12783 ett_h245_EncryptionUpdateDirection, EncryptionUpdateDirection_choice,
12784 NULL);
12786 return offset;
12790 static const per_sequence_t MiscellaneousCommand_sequence[] = {
12791 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
12792 { &hf_h245_mc_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Mc_type },
12793 { &hf_h245_direction , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_EncryptionUpdateDirection },
12794 { NULL, 0, 0, NULL }
12797 static int
12798 dissect_h245_MiscellaneousCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12799 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12800 ett_h245_MiscellaneousCommand, MiscellaneousCommand_sequence);
12802 return offset;
12806 static const per_sequence_t CommunicationModeCommand_sequence[] = {
12807 { &hf_h245_communicationModeTable, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry },
12808 { NULL, 0, 0, NULL }
12811 static int
12812 dissect_h245_CommunicationModeCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12813 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12814 ett_h245_CommunicationModeCommand, CommunicationModeCommand_sequence);
12816 return offset;
12820 static const per_sequence_t SubstituteConferenceIDCommand_sequence[] = {
12821 { &hf_h245_conferenceIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING_SIZE_16 },
12822 { NULL, 0, 0, NULL }
12825 static int
12826 dissect_h245_SubstituteConferenceIDCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12827 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12828 ett_h245_SubstituteConferenceIDCommand, SubstituteConferenceIDCommand_sequence);
12830 return offset;
12834 static const value_string h245_ConferenceCommand_vals[] = {
12835 { 0, "broadcastMyLogicalChannel" },
12836 { 1, "cancelBroadcastMyLogicalChannel" },
12837 { 2, "makeTerminalBroadcaster" },
12838 { 3, "cancelMakeTerminalBroadcaster" },
12839 { 4, "sendThisSource" },
12840 { 5, "cancelSendThisSource" },
12841 { 6, "dropConference" },
12842 { 7, "substituteConferenceIDCommand" },
12843 { 0, NULL }
12846 static const per_choice_t ConferenceCommand_choice[] = {
12847 { 0, &hf_h245_broadcastMyLogicalChannel, ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
12848 { 1, &hf_h245_cancelBroadcastMyLogicalChannel, ASN1_EXTENSION_ROOT , dissect_h245_LogicalChannelNumber },
12849 { 2, &hf_h245_makeTerminalBroadcaster, ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
12850 { 3, &hf_h245_cancelMakeTerminalBroadcaster, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12851 { 4, &hf_h245_sendThisSource , ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
12852 { 5, &hf_h245_cancelSendThisSource, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12853 { 6, &hf_h245_dropConference , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12854 { 7, &hf_h245_substituteConferenceIDCommand, ASN1_NOT_EXTENSION_ROOT, dissect_h245_SubstituteConferenceIDCommand },
12855 { 0, NULL, 0, NULL }
12858 static int
12859 dissect_h245_ConferenceCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12860 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12861 ett_h245_ConferenceCommand, ConferenceCommand_choice,
12862 NULL);
12864 return offset;
12868 static const value_string h245_T_h223ModeChange_vals[] = {
12869 { 0, "toLevel0" },
12870 { 1, "toLevel1" },
12871 { 2, "toLevel2" },
12872 { 3, "toLevel2withOptionalHeader" },
12873 { 0, NULL }
12876 static const per_choice_t T_h223ModeChange_choice[] = {
12877 { 0, &hf_h245_toLevel0 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12878 { 1, &hf_h245_toLevel1 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12879 { 2, &hf_h245_toLevel2 , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12880 { 3, &hf_h245_toLevel2withOptionalHeader, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12881 { 0, NULL, 0, NULL }
12884 static int
12885 dissect_h245_T_h223ModeChange(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12886 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12887 ett_h245_T_h223ModeChange, T_h223ModeChange_choice,
12888 NULL);
12890 return offset;
12894 static const value_string h245_T_h223AnnexADoubleFlag_vals[] = {
12895 { 0, "start" },
12896 { 1, "stop" },
12897 { 0, NULL }
12900 static const per_choice_t T_h223AnnexADoubleFlag_choice[] = {
12901 { 0, &hf_h245_start , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12902 { 1, &hf_h245_stop , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12903 { 0, NULL, 0, NULL }
12906 static int
12907 dissect_h245_T_h223AnnexADoubleFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12908 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12909 ett_h245_T_h223AnnexADoubleFlag, T_h223AnnexADoubleFlag_choice,
12910 NULL);
12912 return offset;
12916 static const value_string h245_H223MultiplexReconfiguration_vals[] = {
12917 { 0, "h223ModeChange" },
12918 { 1, "h223AnnexADoubleFlag" },
12919 { 0, NULL }
12922 static const per_choice_t H223MultiplexReconfiguration_choice[] = {
12923 { 0, &hf_h245_h223ModeChange , ASN1_EXTENSION_ROOT , dissect_h245_T_h223ModeChange },
12924 { 1, &hf_h245_h223AnnexADoubleFlag, ASN1_EXTENSION_ROOT , dissect_h245_T_h223AnnexADoubleFlag },
12925 { 0, NULL, 0, NULL }
12928 static int
12929 dissect_h245_H223MultiplexReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12930 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12931 ett_h245_H223MultiplexReconfiguration, H223MultiplexReconfiguration_choice,
12932 NULL);
12934 return offset;
12938 static const value_string h245_Cmd_clockRecovery_vals[] = {
12939 { 0, "nullClockRecovery" },
12940 { 1, "srtsClockRecovery" },
12941 { 2, "adaptiveClockRecovery" },
12942 { 0, NULL }
12945 static const per_choice_t Cmd_clockRecovery_choice[] = {
12946 { 0, &hf_h245_nullClockRecoveryflag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12947 { 1, &hf_h245_srtsClockRecovery, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12948 { 2, &hf_h245_adaptiveClockRecoveryFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12949 { 0, NULL, 0, NULL }
12952 static int
12953 dissect_h245_Cmd_clockRecovery(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12954 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12955 ett_h245_Cmd_clockRecovery, Cmd_clockRecovery_choice,
12956 NULL);
12958 return offset;
12962 static const value_string h245_Cmd_errorCorrection_vals[] = {
12963 { 0, "nullErrorCorrection" },
12964 { 1, "longInterleaver" },
12965 { 2, "shortInterleaver" },
12966 { 3, "errorCorrectionOnly" },
12967 { 0, NULL }
12970 static const per_choice_t Cmd_errorCorrection_choice[] = {
12971 { 0, &hf_h245_nullErrorCorrectionFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12972 { 1, &hf_h245_longInterleaverFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12973 { 2, &hf_h245_shortInterleaverFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12974 { 3, &hf_h245_errorCorrectionOnlyFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
12975 { 0, NULL, 0, NULL }
12978 static int
12979 dissect_h245_Cmd_errorCorrection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12980 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
12981 ett_h245_Cmd_errorCorrection, Cmd_errorCorrection_choice,
12982 NULL);
12984 return offset;
12988 static const per_sequence_t Cmd_aal1_sequence[] = {
12989 { &hf_h245_cmd_clockRecovery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Cmd_clockRecovery },
12990 { &hf_h245_cmd_errorCorrection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Cmd_errorCorrection },
12991 { &hf_h245_structuredDataTransfer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
12992 { &hf_h245_partiallyFilledCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
12993 { NULL, 0, 0, NULL }
12996 static int
12997 dissect_h245_Cmd_aal1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
12998 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
12999 ett_h245_Cmd_aal1, Cmd_aal1_sequence);
13001 return offset;
13005 static const per_sequence_t Cmd_aal5_sequence[] = {
13006 { &hf_h245_forwardMaximumSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
13007 { &hf_h245_backwardMaximumSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
13008 { NULL, 0, 0, NULL }
13011 static int
13012 dissect_h245_Cmd_aal5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13013 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13014 ett_h245_Cmd_aal5, Cmd_aal5_sequence);
13016 return offset;
13020 static const value_string h245_Cmd_aal_vals[] = {
13021 { 0, "aal1" },
13022 { 1, "aal5" },
13023 { 0, NULL }
13026 static const per_choice_t Cmd_aal_choice[] = {
13027 { 0, &hf_h245_cmd_aal1 , ASN1_EXTENSION_ROOT , dissect_h245_Cmd_aal1 },
13028 { 1, &hf_h245_cmd_aal5 , ASN1_EXTENSION_ROOT , dissect_h245_Cmd_aal5 },
13029 { 0, NULL, 0, NULL }
13032 static int
13033 dissect_h245_Cmd_aal(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13034 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13035 ett_h245_Cmd_aal, Cmd_aal_choice,
13036 NULL);
13038 return offset;
13042 static const value_string h245_Cmd_multiplex_vals[] = {
13043 { 0, "noMultiplex" },
13044 { 1, "transportStream" },
13045 { 2, "programStream" },
13046 { 0, NULL }
13049 static const per_choice_t Cmd_multiplex_choice[] = {
13050 { 0, &hf_h245_noMultiplex , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13051 { 1, &hf_h245_transportStream, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13052 { 2, &hf_h245_programStreamFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13053 { 0, NULL, 0, NULL }
13056 static int
13057 dissect_h245_Cmd_multiplex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13058 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13059 ett_h245_Cmd_multiplex, Cmd_multiplex_choice,
13060 NULL);
13062 return offset;
13066 static const value_string h245_CmdR_multiplex_vals[] = {
13067 { 0, "noMultiplex" },
13068 { 1, "transportStream" },
13069 { 2, "programStream" },
13070 { 0, NULL }
13073 static const per_choice_t CmdR_multiplex_choice[] = {
13074 { 0, &hf_h245_noMultiplex , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13075 { 1, &hf_h245_transportStream, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13076 { 2, &hf_h245_programStreamFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13077 { 0, NULL, 0, NULL }
13080 static int
13081 dissect_h245_CmdR_multiplex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13082 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13083 ett_h245_CmdR_multiplex, CmdR_multiplex_choice,
13084 NULL);
13086 return offset;
13090 static const per_sequence_t Cmd_reverseParameters_sequence[] = {
13091 { &hf_h245_bitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
13092 { &hf_h245_bitRateLockedToPCRClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13093 { &hf_h245_bitRateLockedToNetworkClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13094 { &hf_h245_cmdr_multiplex , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_CmdR_multiplex },
13095 { NULL, 0, 0, NULL }
13098 static int
13099 dissect_h245_Cmd_reverseParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13100 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13101 ett_h245_Cmd_reverseParameters, Cmd_reverseParameters_sequence);
13103 return offset;
13107 static const per_sequence_t NewATMVCCommand_sequence[] = {
13108 { &hf_h245_resourceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
13109 { &hf_h245_bitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
13110 { &hf_h245_bitRateLockedToPCRClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13111 { &hf_h245_bitRateLockedToNetworkClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13112 { &hf_h245_cmd_aal , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Cmd_aal },
13113 { &hf_h245_cmd_multiplex , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Cmd_multiplex },
13114 { &hf_h245_cmd_reverseParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Cmd_reverseParameters },
13115 { NULL, 0, 0, NULL }
13118 static int
13119 dissect_h245_NewATMVCCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13120 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13121 ett_h245_NewATMVCCommand, NewATMVCCommand_sequence);
13123 return offset;
13127 static const value_string h245_T_status_vals[] = {
13128 { 0, "synchronized" },
13129 { 1, "reconfiguration" },
13130 { 0, NULL }
13133 static const per_choice_t T_status_choice[] = {
13134 { 0, &hf_h245_synchronized , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13135 { 1, &hf_h245_reconfiguration, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13136 { 0, NULL, 0, NULL }
13139 static int
13140 dissect_h245_T_status(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13141 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13142 ett_h245_T_status, T_status_choice,
13143 NULL);
13145 return offset;
13149 static const per_sequence_t MobileMultilinkReconfigurationCommand_sequence[] = {
13150 { &hf_h245_sampleSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
13151 { &hf_h245_samplesPerFrame, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
13152 { &hf_h245_status , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_status },
13153 { NULL, 0, 0, NULL }
13156 static int
13157 dissect_h245_MobileMultilinkReconfigurationCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13158 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13159 ett_h245_MobileMultilinkReconfigurationCommand, MobileMultilinkReconfigurationCommand_sequence);
13161 return offset;
13165 static const value_string h245_CommandMessage_vals[] = {
13166 { CommandMessage_nonStandard, "nonStandard" },
13167 { CommandMessage_maintenanceLoopOffCommand, "maintenanceLoopOffCommand" },
13168 { CommandMessage_sendTerminalCapabilitySet, "sendTerminalCapabilitySet" },
13169 { CommandMessage_encryptionCommand, "encryptionCommand" },
13170 { CommandMessage_flowControlCommand, "flowControlCommand" },
13171 { CommandMessage_endSessionCommand, "endSessionCommand" },
13172 { CommandMessage_miscellaneousCommand, "miscellaneousCommand" },
13173 { CommandMessage_communicationModeCommand, "communicationModeCommand" },
13174 { CommandMessage_conferenceCommand, "conferenceCommand" },
13175 { CommandMessage_h223MultiplexReconfiguration, "h223MultiplexReconfiguration" },
13176 { CommandMessage_newATMVCCommand, "newATMVCCommand" },
13177 { CommandMessage_mobileMultilinkReconfigurationCommand, "mobileMultilinkReconfigurationCommand" },
13178 { CommandMessage_genericCommand, "genericCommand" },
13179 { 0, NULL }
13182 static const per_choice_t CommandMessage_choice[] = {
13183 { CommandMessage_nonStandard, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
13184 { CommandMessage_maintenanceLoopOffCommand, &hf_h245_maintenanceLoopOffCommand, ASN1_EXTENSION_ROOT , dissect_h245_MaintenanceLoopOffCommand },
13185 { CommandMessage_sendTerminalCapabilitySet, &hf_h245_sendTerminalCapabilitySet, ASN1_EXTENSION_ROOT , dissect_h245_SendTerminalCapabilitySet },
13186 { CommandMessage_encryptionCommand, &hf_h245_encryptionCommand, ASN1_EXTENSION_ROOT , dissect_h245_EncryptionCommand },
13187 { CommandMessage_flowControlCommand, &hf_h245_flowControlCommand, ASN1_EXTENSION_ROOT , dissect_h245_FlowControlCommand },
13188 { CommandMessage_endSessionCommand, &hf_h245_endSessionCommand, ASN1_EXTENSION_ROOT , dissect_h245_EndSessionCommand },
13189 { CommandMessage_miscellaneousCommand, &hf_h245_miscellaneousCommand, ASN1_EXTENSION_ROOT , dissect_h245_MiscellaneousCommand },
13190 { CommandMessage_communicationModeCommand, &hf_h245_communicationModeCommand, ASN1_NOT_EXTENSION_ROOT, dissect_h245_CommunicationModeCommand },
13191 { CommandMessage_conferenceCommand, &hf_h245_conferenceCommand, ASN1_NOT_EXTENSION_ROOT, dissect_h245_ConferenceCommand },
13192 { CommandMessage_h223MultiplexReconfiguration, &hf_h245_h223MultiplexReconfiguration, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H223MultiplexReconfiguration },
13193 { CommandMessage_newATMVCCommand, &hf_h245_newATMVCCommand, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NewATMVCCommand },
13194 { CommandMessage_mobileMultilinkReconfigurationCommand, &hf_h245_mobileMultilinkReconfigurationCommand, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MobileMultilinkReconfigurationCommand },
13195 { CommandMessage_genericCommand, &hf_h245_genericCommand , ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericMessage },
13196 { 0, NULL, 0, NULL }
13199 static int
13200 dissect_h245_CommandMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13201 int32_t value;
13203 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13204 ett_h245_CommandMessage, CommandMessage_choice,
13205 &value);
13207 print_info_column(actx->pinfo->cinfo, &value, h245_CommandMessage_vals, h245_CommandMessage_short_vals);
13208 col_set_fence(actx->pinfo->cinfo,COL_INFO);
13210 /* Add to packet info */
13211 if (h245_pi != NULL){
13212 if ( strlen(h245_pi->frame_label) == 0 ){
13213 snprintf(h245_pi->frame_label, 50, "%s", val_to_str_const(value, h245_CommandMessage_short_vals, "UKN"));
13215 (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_CommandMessage_vals, "<unknown>"), 50);
13219 return offset;
13223 static const value_string h245_FunctionNotUnderstood_vals[] = {
13224 { 0, "request" },
13225 { 1, "response" },
13226 { 2, "command" },
13227 { 0, NULL }
13230 static const per_choice_t FunctionNotUnderstood_choice[] = {
13231 { 0, &hf_h245_request , ASN1_NO_EXTENSIONS , dissect_h245_RequestMessage },
13232 { 1, &hf_h245_response , ASN1_NO_EXTENSIONS , dissect_h245_ResponseMessage },
13233 { 2, &hf_h245_command , ASN1_NO_EXTENSIONS , dissect_h245_CommandMessage },
13234 { 0, NULL, 0, NULL }
13237 static int
13238 dissect_h245_FunctionNotUnderstood(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13239 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13240 ett_h245_FunctionNotUnderstood, FunctionNotUnderstood_choice,
13241 NULL);
13243 return offset;
13247 static const per_sequence_t MasterSlaveDeterminationRelease_sequence[] = {
13248 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
13251 static int
13252 dissect_h245_MasterSlaveDeterminationRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13253 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13254 ett_h245_MasterSlaveDeterminationRelease, MasterSlaveDeterminationRelease_sequence);
13257 if (h245_pi != NULL)
13258 h245_pi->msg_type = H245_MastSlvDetRls;
13259 return offset;
13263 static const per_sequence_t TerminalCapabilitySetRelease_sequence[] = {
13264 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
13265 { NULL, 0, 0, NULL }
13268 static int
13269 dissect_h245_TerminalCapabilitySetRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13270 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13271 ett_h245_TerminalCapabilitySetRelease, TerminalCapabilitySetRelease_sequence);
13274 if (h245_pi != NULL)
13275 h245_pi->msg_type = H245_TermCapSetRls;
13276 return offset;
13280 static const per_sequence_t OpenLogicalChannelConfirm_sequence[] = {
13281 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13282 { &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_SEQUENCE_OF_GenericInformation },
13283 { NULL, 0, 0, NULL }
13286 static int
13287 dissect_h245_OpenLogicalChannelConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13288 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13289 ett_h245_OpenLogicalChannelConfirm, OpenLogicalChannelConfirm_sequence);
13292 if (h245_pi != NULL)
13293 h245_pi->msg_type = H245_OpenLogChnCnf;
13294 return offset;
13298 static const per_sequence_t RequestChannelCloseRelease_sequence[] = {
13299 { &hf_h245_forwardLogicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13300 { NULL, 0, 0, NULL }
13303 static int
13304 dissect_h245_RequestChannelCloseRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13305 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13306 ett_h245_RequestChannelCloseRelease, RequestChannelCloseRelease_sequence);
13308 return offset;
13312 static const per_sequence_t MultiplexEntrySendRelease_sequence[] = {
13313 { &hf_h245_multiplexTableEntryNumbers, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber },
13314 { NULL, 0, 0, NULL }
13317 static int
13318 dissect_h245_MultiplexEntrySendRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13319 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13320 ett_h245_MultiplexEntrySendRelease, MultiplexEntrySendRelease_sequence);
13322 return offset;
13326 static const per_sequence_t RequestMultiplexEntryRelease_sequence[] = {
13327 { &hf_h245_entryNumbers , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber },
13328 { NULL, 0, 0, NULL }
13331 static int
13332 dissect_h245_RequestMultiplexEntryRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13333 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13334 ett_h245_RequestMultiplexEntryRelease, RequestMultiplexEntryRelease_sequence);
13336 return offset;
13340 static const per_sequence_t RequestModeRelease_sequence[] = {
13341 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
13344 static int
13345 dissect_h245_RequestModeRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13346 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13347 ett_h245_RequestModeRelease, RequestModeRelease_sequence);
13349 return offset;
13353 static const per_sequence_t T_videoNotDecodedMBs_sequence[] = {
13354 { &hf_h245_firstMB_1_8192 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_8192 },
13355 { &hf_h245_numberOfMBs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_8192 },
13356 { &hf_h245_temporalReference_0_255, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
13357 { NULL, 0, 0, NULL }
13360 static int
13361 dissect_h245_T_videoNotDecodedMBs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13362 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13363 ett_h245_T_videoNotDecodedMBs, T_videoNotDecodedMBs_sequence);
13365 return offset;
13369 static const value_string h245_Mi_type_vals[] = {
13370 { 0, "logicalChannelActive" },
13371 { 1, "logicalChannelInactive" },
13372 { 2, "multipointConference" },
13373 { 3, "cancelMultipointConference" },
13374 { 4, "multipointZeroComm" },
13375 { 5, "cancelMultipointZeroComm" },
13376 { 6, "multipointSecondaryStatus" },
13377 { 7, "cancelMultipointSecondaryStatus" },
13378 { 8, "videoIndicateReadyToActivate" },
13379 { 9, "videoTemporalSpatialTradeOff" },
13380 { 10, "videoNotDecodedMBs" },
13381 { 11, "transportCapability" },
13382 { 0, NULL }
13385 static const per_choice_t Mi_type_choice[] = {
13386 { 0, &hf_h245_logicalChannelActive, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13387 { 1, &hf_h245_logicalChannelInactive, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13388 { 2, &hf_h245_multipointConference, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13389 { 3, &hf_h245_cancelMultipointConference, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13390 { 4, &hf_h245_multipointZeroComm, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13391 { 5, &hf_h245_cancelMultipointZeroComm, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13392 { 6, &hf_h245_multipointSecondaryStatus, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13393 { 7, &hf_h245_cancelMultipointSecondaryStatus, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13394 { 8, &hf_h245_videoIndicateReadyToActivate, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13395 { 9, &hf_h245_videoTemporalSpatialTradeOff, ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_31 },
13396 { 10, &hf_h245_videoNotDecodedMBs, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_videoNotDecodedMBs },
13397 { 11, &hf_h245_transportCapability, ASN1_NOT_EXTENSION_ROOT, dissect_h245_TransportCapability },
13398 { 0, NULL, 0, NULL }
13401 static int
13402 dissect_h245_Mi_type(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13403 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13404 ett_h245_Mi_type, Mi_type_choice,
13405 NULL);
13407 return offset;
13411 static const per_sequence_t MiscellaneousIndication_sequence[] = {
13412 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13413 { &hf_h245_mi_type , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Mi_type },
13414 { NULL, 0, 0, NULL }
13417 static int
13418 dissect_h245_MiscellaneousIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13419 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13420 ett_h245_MiscellaneousIndication, MiscellaneousIndication_sequence);
13422 return offset;
13427 static int
13428 dissect_h245_INTEGER_0_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13429 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13430 0U, 3U, NULL, false);
13432 return offset;
13437 static int
13438 dissect_h245_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13439 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13440 0U, 7U, NULL, false);
13442 return offset;
13446 static const per_sequence_t JitterIndication_sequence[] = {
13447 { &hf_h245_scope , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Scope },
13448 { &hf_h245_estimatedReceivedJitterMantissa, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_3 },
13449 { &hf_h245_estimatedReceivedJitterExponent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_7 },
13450 { &hf_h245_skippedFrameCount, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_15 },
13451 { &hf_h245_additionalDecoderBuffer, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_262143 },
13452 { NULL, 0, 0, NULL }
13455 static int
13456 dissect_h245_JitterIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13457 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13458 ett_h245_JitterIndication, JitterIndication_sequence);
13460 return offset;
13464 static const per_sequence_t H223SkewIndication_sequence[] = {
13465 { &hf_h245_logicalChannelNumber1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13466 { &hf_h245_logicalChannelNumber2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13467 { &hf_h245_skew , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4095 },
13468 { NULL, 0, 0, NULL }
13471 static int
13472 dissect_h245_H223SkewIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13473 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13474 ett_h245_H223SkewIndication, H223SkewIndication_sequence);
13476 return offset;
13480 static const value_string h245_Ind_clockRecovery_vals[] = {
13481 { 0, "nullClockRecovery" },
13482 { 1, "srtsClockRecovery" },
13483 { 2, "adaptiveClockRecovery" },
13484 { 0, NULL }
13487 static const per_choice_t Ind_clockRecovery_choice[] = {
13488 { 0, &hf_h245_nullClockRecoveryflag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13489 { 1, &hf_h245_srtsClockRecovery, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13490 { 2, &hf_h245_adaptiveClockRecoveryFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13491 { 0, NULL, 0, NULL }
13494 static int
13495 dissect_h245_Ind_clockRecovery(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13496 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13497 ett_h245_Ind_clockRecovery, Ind_clockRecovery_choice,
13498 NULL);
13500 return offset;
13504 static const value_string h245_Ind_errorCorrection_vals[] = {
13505 { 0, "nullErrorCorrection" },
13506 { 1, "longInterleaver" },
13507 { 2, "shortInterleaver" },
13508 { 3, "errorCorrectionOnly" },
13509 { 0, NULL }
13512 static const per_choice_t Ind_errorCorrection_choice[] = {
13513 { 0, &hf_h245_nullErrorCorrectionFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13514 { 1, &hf_h245_longInterleaverFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13515 { 2, &hf_h245_shortInterleaverFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13516 { 3, &hf_h245_errorCorrectionOnlyFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13517 { 0, NULL, 0, NULL }
13520 static int
13521 dissect_h245_Ind_errorCorrection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13522 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13523 ett_h245_Ind_errorCorrection, Ind_errorCorrection_choice,
13524 NULL);
13526 return offset;
13530 static const per_sequence_t Ind_aal1_sequence[] = {
13531 { &hf_h245_ind_clockRecovery, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Ind_clockRecovery },
13532 { &hf_h245_ind_errorCorrection, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Ind_errorCorrection },
13533 { &hf_h245_structuredDataTransfer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13534 { &hf_h245_partiallyFilledCells, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13535 { NULL, 0, 0, NULL }
13538 static int
13539 dissect_h245_Ind_aal1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13540 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13541 ett_h245_Ind_aal1, Ind_aal1_sequence);
13543 return offset;
13547 static const per_sequence_t Ind_aal5_sequence[] = {
13548 { &hf_h245_forwardMaximumSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
13549 { &hf_h245_backwardMaximumSDUSize, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
13550 { NULL, 0, 0, NULL }
13553 static int
13554 dissect_h245_Ind_aal5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13555 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13556 ett_h245_Ind_aal5, Ind_aal5_sequence);
13558 return offset;
13562 static const value_string h245_Ind_aal_vals[] = {
13563 { 0, "aal1" },
13564 { 1, "aal5" },
13565 { 0, NULL }
13568 static const per_choice_t Ind_aal_choice[] = {
13569 { 0, &hf_h245_ind_aal1 , ASN1_EXTENSION_ROOT , dissect_h245_Ind_aal1 },
13570 { 1, &hf_h245_ind_aal5 , ASN1_EXTENSION_ROOT , dissect_h245_Ind_aal5 },
13571 { 0, NULL, 0, NULL }
13574 static int
13575 dissect_h245_Ind_aal(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13576 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13577 ett_h245_Ind_aal, Ind_aal_choice,
13578 NULL);
13580 return offset;
13584 static const value_string h245_Ind_multiplex_vals[] = {
13585 { 0, "noMultiplex" },
13586 { 1, "transportStream" },
13587 { 2, "programStream" },
13588 { 0, NULL }
13591 static const per_choice_t Ind_multiplex_choice[] = {
13592 { 0, &hf_h245_noMultiplex , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13593 { 1, &hf_h245_transportStream, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13594 { 2, &hf_h245_programStreamFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13595 { 0, NULL, 0, NULL }
13598 static int
13599 dissect_h245_Ind_multiplex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13600 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13601 ett_h245_Ind_multiplex, Ind_multiplex_choice,
13602 NULL);
13604 return offset;
13608 static const value_string h245_IndR_multiplex_vals[] = {
13609 { 0, "noMultiplex" },
13610 { 1, "transportStream" },
13611 { 2, "programStream" },
13612 { 0, NULL }
13615 static const per_choice_t IndR_multiplex_choice[] = {
13616 { 0, &hf_h245_noMultiplex , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13617 { 1, &hf_h245_transportStream, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13618 { 2, &hf_h245_programStreamFlag, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13619 { 0, NULL, 0, NULL }
13622 static int
13623 dissect_h245_IndR_multiplex(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13624 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13625 ett_h245_IndR_multiplex, IndR_multiplex_choice,
13626 NULL);
13628 return offset;
13632 static const per_sequence_t Ind_reverseParameters_sequence[] = {
13633 { &hf_h245_bitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
13634 { &hf_h245_bitRateLockedToPCRClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13635 { &hf_h245_bitRateLockedToNetworkClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13636 { &hf_h245_indr_multiplex , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_IndR_multiplex },
13637 { NULL, 0, 0, NULL }
13640 static int
13641 dissect_h245_Ind_reverseParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13642 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13643 ett_h245_Ind_reverseParameters, Ind_reverseParameters_sequence);
13645 return offset;
13649 static const per_sequence_t NewATMVCIndication_sequence[] = {
13650 { &hf_h245_resourceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_65535 },
13651 { &hf_h245_bitRate , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
13652 { &hf_h245_bitRateLockedToPCRClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13653 { &hf_h245_bitRateLockedToNetworkClock, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_BOOLEAN },
13654 { &hf_h245_ind_aal , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Ind_aal },
13655 { &hf_h245_ind_multiplex , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Ind_multiplex },
13656 { &hf_h245_ind_reverseParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_Ind_reverseParameters },
13657 { NULL, 0, 0, NULL }
13660 static int
13661 dissect_h245_NewATMVCIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13662 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13663 ett_h245_NewATMVCIndication, NewATMVCIndication_sequence);
13665 return offset;
13669 static const value_string h245_T_userInputSupportIndication_vals[] = {
13670 { 0, "nonStandard" },
13671 { 1, "basicString" },
13672 { 2, "iA5String" },
13673 { 3, "generalString" },
13674 { 4, "encryptedBasicString" },
13675 { 5, "encryptedIA5String" },
13676 { 6, "encryptedGeneralString" },
13677 { 0, NULL }
13680 static const per_choice_t T_userInputSupportIndication_choice[] = {
13681 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
13682 { 1, &hf_h245_basicString , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13683 { 2, &hf_h245_iA5String , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13684 { 3, &hf_h245_generalString , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13685 { 4, &hf_h245_encryptedBasicString, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
13686 { 5, &hf_h245_encryptedIA5String, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
13687 { 6, &hf_h245_encryptedGeneralString, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
13688 { 0, NULL, 0, NULL }
13691 static int
13692 dissect_h245_T_userInputSupportIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13693 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13694 ett_h245_T_userInputSupportIndication, T_userInputSupportIndication_choice,
13695 NULL);
13697 return offset;
13702 static int
13703 dissect_h245_T_signalType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13704 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
13705 1, 1, false, "0123456789#*ABCD!", 17,
13706 NULL);
13708 return offset;
13712 static const per_sequence_t T_rtp_sequence[] = {
13713 { &hf_h245_timestamp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
13714 { &hf_h245_expirationTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_0_4294967295 },
13715 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13716 { NULL, 0, 0, NULL }
13719 static int
13720 dissect_h245_T_rtp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13721 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13722 ett_h245_T_rtp, T_rtp_sequence);
13724 return offset;
13729 static int
13730 dissect_h245_IV8(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13731 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
13732 8, 8, false, NULL);
13734 return offset;
13739 static int
13740 dissect_h245_IV16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13741 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
13742 16, 16, false, NULL);
13744 return offset;
13748 static const per_sequence_t Params_sequence[] = {
13749 { &hf_h245_iv8 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_IV8 },
13750 { &hf_h245_iv16 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_IV16 },
13751 { &hf_h245_iv , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING },
13752 { NULL, 0, 0, NULL }
13755 static int
13756 dissect_h245_Params(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13757 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13758 ett_h245_Params, Params_sequence);
13760 return offset;
13765 static int
13766 dissect_h245_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13767 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
13768 1, 1, false, NULL);
13770 return offset;
13774 static const per_sequence_t T_signal_sequence[] = {
13775 { &hf_h245_signalType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_T_signalType },
13776 { &hf_h245_duration , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_INTEGER_1_65535 },
13777 { &hf_h245_rtp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_rtp },
13778 { &hf_h245_rtpPayloadIndication, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_NULL },
13779 { &hf_h245_paramS , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_Params },
13780 { &hf_h245_encryptedSignalType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_OCTET_STRING_SIZE_1 },
13781 { &hf_h245_algorithmOID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_OBJECT_IDENTIFIER },
13782 { NULL, 0, 0, NULL }
13785 static int
13786 dissect_h245_T_signal(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13787 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13788 ett_h245_T_signal, T_signal_sequence);
13790 return offset;
13794 static const per_sequence_t Si_rtp_sequence[] = {
13795 { &hf_h245_logicalChannelNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13796 { NULL, 0, 0, NULL }
13799 static int
13800 dissect_h245_Si_rtp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13801 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13802 ett_h245_Si_rtp, Si_rtp_sequence);
13804 return offset;
13808 static const per_sequence_t T_signalUpdate_sequence[] = {
13809 { &hf_h245_duration , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_65535 },
13810 { &hf_h245_si_rtp , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Si_rtp },
13811 { NULL, 0, 0, NULL }
13814 static int
13815 dissect_h245_T_signalUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13816 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13817 ett_h245_T_signalUpdate, T_signalUpdate_sequence);
13819 return offset;
13823 static const per_sequence_t EncryptedAlphanumeric_sequence[] = {
13824 { &hf_h245_algorithmOID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OBJECT_IDENTIFIER },
13825 { &hf_h245_paramS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_Params },
13826 { &hf_h245_encrypted , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_OCTET_STRING },
13827 { NULL, 0, 0, NULL }
13830 static int
13831 dissect_h245_EncryptedAlphanumeric(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13832 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13833 ett_h245_EncryptedAlphanumeric, EncryptedAlphanumeric_sequence);
13835 return offset;
13839 static const per_sequence_t T_extendedAlphanumeric_sequence[] = {
13840 { &hf_h245_alphanumeric , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_GeneralString },
13841 { &hf_h245_rtpPayloadIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_NULL },
13842 { &hf_h245_encryptedAlphanumeric, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h245_EncryptedAlphanumeric },
13843 { NULL, 0, 0, NULL }
13846 static int
13847 dissect_h245_T_extendedAlphanumeric(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13848 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13849 ett_h245_T_extendedAlphanumeric, T_extendedAlphanumeric_sequence);
13851 return offset;
13855 static const value_string h245_UserInputIndication_vals[] = {
13856 { 0, "nonStandard" },
13857 { 1, "alphanumeric" },
13858 { 2, "userInputSupportIndication" },
13859 { 3, "signal" },
13860 { 4, "signalUpdate" },
13861 { 5, "extendedAlphanumeric" },
13862 { 6, "encryptedAlphanumeric" },
13863 { 7, "genericInformation" },
13864 { 0, NULL }
13867 static const per_choice_t UserInputIndication_choice[] = {
13868 { 0, &hf_h245_nonStandard , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardParameter },
13869 { 1, &hf_h245_alphanumeric , ASN1_EXTENSION_ROOT , dissect_h245_GeneralString },
13870 { 2, &hf_h245_userInputSupportIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_userInputSupportIndication },
13871 { 3, &hf_h245_signal , ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_signal },
13872 { 4, &hf_h245_signalUpdate , ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_signalUpdate },
13873 { 5, &hf_h245_extendedAlphanumeric, ASN1_NOT_EXTENSION_ROOT, dissect_h245_T_extendedAlphanumeric },
13874 { 6, &hf_h245_encryptedAlphanumeric, ASN1_NOT_EXTENSION_ROOT, dissect_h245_EncryptedAlphanumeric },
13875 { 7, &hf_h245_genericInformation, ASN1_NOT_EXTENSION_ROOT, dissect_h245_SEQUENCE_OF_GenericInformation },
13876 { 0, NULL, 0, NULL }
13879 static int
13880 dissect_h245_UserInputIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13881 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
13882 ett_h245_UserInputIndication, UserInputIndication_choice,
13883 NULL);
13885 return offset;
13889 static const per_sequence_t H2250MaximumSkewIndication_sequence[] = {
13890 { &hf_h245_logicalChannelNumber1, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13891 { &hf_h245_logicalChannelNumber2, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_LogicalChannelNumber },
13892 { &hf_h245_maximumSkew , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_4095 },
13893 { NULL, 0, 0, NULL }
13896 static int
13897 dissect_h245_H2250MaximumSkewIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13898 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13899 ett_h245_H2250MaximumSkewIndication, H2250MaximumSkewIndication_sequence);
13901 return offset;
13905 static const per_sequence_t MCLocationIndication_sequence[] = {
13906 { &hf_h245_signalAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TransportAddress },
13907 { NULL, 0, 0, NULL }
13910 static int
13911 dissect_h245_MCLocationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13912 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13913 ett_h245_MCLocationIndication, MCLocationIndication_sequence);
13915 return offset;
13920 static int
13921 dissect_h245_INTEGER_0_9(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13922 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
13923 0U, 9U, NULL, false);
13925 return offset;
13929 static const per_sequence_t TerminalYouAreSeeingInSubPictureNumber_sequence[] = {
13930 { &hf_h245_terminalNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_TerminalNumber },
13931 { &hf_h245_subPictureNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
13932 { &hf_h245_mcuNumber , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h245_McuNumber },
13933 { NULL, 0, 0, NULL }
13936 static int
13937 dissect_h245_TerminalYouAreSeeingInSubPictureNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13938 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13939 ett_h245_TerminalYouAreSeeingInSubPictureNumber, TerminalYouAreSeeingInSubPictureNumber_sequence);
13941 return offset;
13945 static const per_sequence_t VideoIndicateCompose_sequence[] = {
13946 { &hf_h245_compositionNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_0_255 },
13947 { NULL, 0, 0, NULL }
13950 static int
13951 dissect_h245_VideoIndicateCompose(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
13952 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
13953 ett_h245_VideoIndicateCompose, VideoIndicateCompose_sequence);
13955 return offset;
13959 static const value_string h245_ConferenceIndication_vals[] = {
13960 { 0, "sbeNumber" },
13961 { 1, "terminalNumberAssign" },
13962 { 2, "terminalJoinedConference" },
13963 { 3, "terminalLeftConference" },
13964 { 4, "seenByAtLeastOneOther" },
13965 { 5, "cancelSeenByAtLeastOneOther" },
13966 { 6, "seenByAll" },
13967 { 7, "cancelSeenByAll" },
13968 { 8, "terminalYouAreSeeing" },
13969 { 9, "requestForFloor" },
13970 { 10, "withdrawChairToken" },
13971 { 11, "floorRequested" },
13972 { 12, "terminalYouAreSeeingInSubPictureNumber" },
13973 { 13, "videoIndicateCompose" },
13974 { 14, "masterMCU" },
13975 { 15, "cancelMasterMCU" },
13976 { 0, NULL }
13979 static const per_choice_t ConferenceIndication_choice[] = {
13980 { 0, &hf_h245_sbeNumber , ASN1_EXTENSION_ROOT , dissect_h245_INTEGER_0_9 },
13981 { 1, &hf_h245_terminalNumberAssign, ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
13982 { 2, &hf_h245_terminalJoinedConference, ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
13983 { 3, &hf_h245_terminalLeftConference, ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
13984 { 4, &hf_h245_seenByAtLeastOneOther, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13985 { 5, &hf_h245_cancelSeenByAtLeastOneOther, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13986 { 6, &hf_h245_seenByAll , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13987 { 7, &hf_h245_cancelSeenByAll, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13988 { 8, &hf_h245_terminalYouAreSeeing, ASN1_EXTENSION_ROOT , dissect_h245_TerminalLabel },
13989 { 9, &hf_h245_requestForFloor, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
13990 { 10, &hf_h245_withdrawChairToken, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
13991 { 11, &hf_h245_floorRequested , ASN1_NOT_EXTENSION_ROOT, dissect_h245_TerminalLabel },
13992 { 12, &hf_h245_terminalYouAreSeeingInSubPictureNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h245_TerminalYouAreSeeingInSubPictureNumber },
13993 { 13, &hf_h245_videoIndicateCompose, ASN1_NOT_EXTENSION_ROOT, dissect_h245_VideoIndicateCompose },
13994 { 14, &hf_h245_masterMCU , ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
13995 { 15, &hf_h245_cancelMasterMCU, ASN1_NOT_EXTENSION_ROOT, dissect_h245_NULL },
13996 { 0, NULL, 0, NULL }
13999 static int
14000 dissect_h245_ConferenceIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14001 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14002 ett_h245_ConferenceIndication, ConferenceIndication_choice,
14003 NULL);
14005 return offset;
14010 static int
14011 dissect_h245_OCTET_STRING_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14012 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
14013 1, 256, false, NULL);
14015 return offset;
14019 static const per_sequence_t VendorIdentification_sequence[] = {
14020 { &hf_h245_vendor , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_NonStandardIdentifier },
14021 { &hf_h245_productNumber , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING_SIZE_1_256 },
14022 { &hf_h245_versionNumber , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_OCTET_STRING_SIZE_1_256 },
14023 { NULL, 0, 0, NULL }
14026 static int
14027 dissect_h245_VendorIdentification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14028 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14029 ett_h245_VendorIdentification, VendorIdentification_sequence);
14031 return offset;
14035 static const value_string h245_FunctionNotSupportedCause_vals[] = {
14036 { 0, "syntaxError" },
14037 { 1, "semanticError" },
14038 { 2, "unknownFunction" },
14039 { 0, NULL }
14042 static const per_choice_t FunctionNotSupportedCause_choice[] = {
14043 { 0, &hf_h245_syntaxError , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
14044 { 1, &hf_h245_semanticError , ASN1_EXTENSION_ROOT , dissect_h245_NULL },
14045 { 2, &hf_h245_unknownFunction, ASN1_EXTENSION_ROOT , dissect_h245_NULL },
14046 { 0, NULL, 0, NULL }
14049 static int
14050 dissect_h245_FunctionNotSupportedCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14051 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14052 ett_h245_FunctionNotSupportedCause, FunctionNotSupportedCause_choice,
14053 NULL);
14055 return offset;
14060 static int
14061 dissect_h245_T_returnedFunction(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14062 tvbuff_t *next_tvb = NULL;
14063 proto_item *item;
14064 proto_tree *subtree;
14065 h245_packet_info *saved_h245_pi;
14067 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
14068 NO_BOUND, NO_BOUND, false, &next_tvb);
14071 if (next_tvb && tvb_reported_length(next_tvb)) {
14072 saved_h245_pi = h245_pi;
14073 h245_pi = NULL;
14074 subtree = proto_tree_add_subtree(tree, next_tvb, 0, -1, ett_h245_returnedFunction, &item, "The returned function");
14075 proto_item_set_generated(item);
14076 dissect_h245_MultimediaSystemControlMessage(next_tvb, 0, actx, subtree, hf_h245_pdu_type);
14077 h245_pi = saved_h245_pi;
14081 return offset;
14085 static const per_sequence_t FunctionNotSupported_sequence[] = {
14086 { &hf_h245_fns_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_FunctionNotSupportedCause },
14087 { &hf_h245_returnedFunction, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_T_returnedFunction },
14088 { NULL, 0, 0, NULL }
14091 static int
14092 dissect_h245_FunctionNotSupported(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14093 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14094 ett_h245_FunctionNotSupported, FunctionNotSupported_sequence);
14096 return offset;
14100 static const per_sequence_t T_crcDesired_sequence[] = {
14101 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
14104 static int
14105 dissect_h245_T_crcDesired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14106 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14107 ett_h245_T_crcDesired, T_crcDesired_sequence);
14109 return offset;
14113 static const per_sequence_t T_excessiveError_sequence[] = {
14114 { &hf_h245_connectionIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_ConnectionIdentifier },
14115 { NULL, 0, 0, NULL }
14118 static int
14119 dissect_h245_T_excessiveError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14120 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14121 ett_h245_T_excessiveError, T_excessiveError_sequence);
14123 return offset;
14127 static const value_string h245_MultilinkIndication_vals[] = {
14128 { 0, "nonStandard" },
14129 { 1, "crcDesired" },
14130 { 2, "excessiveError" },
14131 { 0, NULL }
14134 static const per_choice_t MultilinkIndication_choice[] = {
14135 { 0, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
14136 { 1, &hf_h245_crcDesired , ASN1_EXTENSION_ROOT , dissect_h245_T_crcDesired },
14137 { 2, &hf_h245_excessiveError , ASN1_EXTENSION_ROOT , dissect_h245_T_excessiveError },
14138 { 0, NULL, 0, NULL }
14141 static int
14142 dissect_h245_MultilinkIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14143 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14144 ett_h245_MultilinkIndication, MultilinkIndication_choice,
14145 NULL);
14147 return offset;
14151 static const per_sequence_t LogicalChannelRateRelease_sequence[] = {
14152 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
14155 static int
14156 dissect_h245_LogicalChannelRateRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14157 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14158 ett_h245_LogicalChannelRateRelease, LogicalChannelRateRelease_sequence);
14160 return offset;
14164 static const per_sequence_t FlowControlIndication_sequence[] = {
14165 { &hf_h245_scope , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Scope },
14166 { &hf_h245_restriction , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Restriction },
14167 { NULL, 0, 0, NULL }
14170 static int
14171 dissect_h245_FlowControlIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14172 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14173 ett_h245_FlowControlIndication, FlowControlIndication_sequence);
14175 return offset;
14179 static const per_sequence_t MobileMultilinkReconfigurationIndication_sequence[] = {
14180 { &hf_h245_sampleSize , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
14181 { &hf_h245_samplesPerFrame, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_INTEGER_1_255 },
14182 { NULL, 0, 0, NULL }
14185 static int
14186 dissect_h245_MobileMultilinkReconfigurationIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14187 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
14188 ett_h245_MobileMultilinkReconfigurationIndication, MobileMultilinkReconfigurationIndication_sequence);
14190 return offset;
14194 static const value_string h245_IndicationMessage_vals[] = {
14195 { IndicationMessage_nonStandard, "nonStandard" },
14196 { IndicationMessage_functionNotUnderstood, "functionNotUnderstood" },
14197 { IndicationMessage_masterSlaveDeterminationRelease, "masterSlaveDeterminationRelease" },
14198 { IndicationMessage_terminalCapabilitySetRelease, "terminalCapabilitySetRelease" },
14199 { IndicationMessage_openLogicalChannelConfirm, "openLogicalChannelConfirm" },
14200 { IndicationMessage_requestChannelCloseRelease, "requestChannelCloseRelease" },
14201 { IndicationMessage_multiplexEntrySendRelease, "multiplexEntrySendRelease" },
14202 { IndicationMessage_requestMultiplexEntryRelease, "requestMultiplexEntryRelease" },
14203 { IndicationMessage_requestModeRelease, "requestModeRelease" },
14204 { IndicationMessage_miscellaneousIndication, "miscellaneousIndication" },
14205 { IndicationMessage_jitterIndication, "jitterIndication" },
14206 { IndicationMessage_h223SkewIndication, "h223SkewIndication" },
14207 { IndicationMessage_newATMVCIndication, "newATMVCIndication" },
14208 { IndicationMessage_userInput, "userInput" },
14209 { IndicationMessage_h2250MaximumSkewIndication, "h2250MaximumSkewIndication" },
14210 { IndicationMessage_mcLocationIndication, "mcLocationIndication" },
14211 { IndicationMessage_conferenceIndication, "conferenceIndication" },
14212 { IndicationMessage_vendorIdentification, "vendorIdentification" },
14213 { IndicationMessage_functionNotSupported, "functionNotSupported" },
14214 { IndicationMessage_multilinkIndication, "multilinkIndication" },
14215 { IndicationMessage_logicalChannelRateRelease, "logicalChannelRateRelease" },
14216 { IndicationMessage_flowControlIndication, "flowControlIndication" },
14217 { IndicationMessage_mobileMultilinkReconfigurationIndication, "mobileMultilinkReconfigurationIndication" },
14218 { IndicationMessage_genericIndication, "genericIndication" },
14219 { 0, NULL }
14222 static const per_choice_t IndicationMessage_choice[] = {
14223 { IndicationMessage_nonStandard, &hf_h245_nonStandardMsg , ASN1_EXTENSION_ROOT , dissect_h245_NonStandardMessage },
14224 { IndicationMessage_functionNotUnderstood, &hf_h245_functionNotUnderstood, ASN1_EXTENSION_ROOT , dissect_h245_FunctionNotUnderstood },
14225 { IndicationMessage_masterSlaveDeterminationRelease, &hf_h245_masterSlaveDeterminationRelease, ASN1_EXTENSION_ROOT , dissect_h245_MasterSlaveDeterminationRelease },
14226 { IndicationMessage_terminalCapabilitySetRelease, &hf_h245_terminalCapabilitySetRelease, ASN1_EXTENSION_ROOT , dissect_h245_TerminalCapabilitySetRelease },
14227 { IndicationMessage_openLogicalChannelConfirm, &hf_h245_openLogicalChannelConfirm, ASN1_EXTENSION_ROOT , dissect_h245_OpenLogicalChannelConfirm },
14228 { IndicationMessage_requestChannelCloseRelease, &hf_h245_requestChannelCloseRelease, ASN1_EXTENSION_ROOT , dissect_h245_RequestChannelCloseRelease },
14229 { IndicationMessage_multiplexEntrySendRelease, &hf_h245_multiplexEntrySendRelease, ASN1_EXTENSION_ROOT , dissect_h245_MultiplexEntrySendRelease },
14230 { IndicationMessage_requestMultiplexEntryRelease, &hf_h245_requestMultiplexEntryRelease, ASN1_EXTENSION_ROOT , dissect_h245_RequestMultiplexEntryRelease },
14231 { IndicationMessage_requestModeRelease, &hf_h245_requestModeRelease, ASN1_EXTENSION_ROOT , dissect_h245_RequestModeRelease },
14232 { IndicationMessage_miscellaneousIndication, &hf_h245_miscellaneousIndication, ASN1_EXTENSION_ROOT , dissect_h245_MiscellaneousIndication },
14233 { IndicationMessage_jitterIndication, &hf_h245_jitterIndication, ASN1_EXTENSION_ROOT , dissect_h245_JitterIndication },
14234 { IndicationMessage_h223SkewIndication, &hf_h245_h223SkewIndication, ASN1_EXTENSION_ROOT , dissect_h245_H223SkewIndication },
14235 { IndicationMessage_newATMVCIndication, &hf_h245_newATMVCIndication, ASN1_EXTENSION_ROOT , dissect_h245_NewATMVCIndication },
14236 { IndicationMessage_userInput, &hf_h245_userInput , ASN1_EXTENSION_ROOT , dissect_h245_UserInputIndication },
14237 { IndicationMessage_h2250MaximumSkewIndication, &hf_h245_h2250MaximumSkewIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_H2250MaximumSkewIndication },
14238 { IndicationMessage_mcLocationIndication, &hf_h245_mcLocationIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MCLocationIndication },
14239 { IndicationMessage_conferenceIndication, &hf_h245_conferenceIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_ConferenceIndication },
14240 { IndicationMessage_vendorIdentification, &hf_h245_vendorIdentification, ASN1_NOT_EXTENSION_ROOT, dissect_h245_VendorIdentification },
14241 { IndicationMessage_functionNotSupported, &hf_h245_functionNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h245_FunctionNotSupported },
14242 { IndicationMessage_multilinkIndication, &hf_h245_multilinkIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MultilinkIndication },
14243 { IndicationMessage_logicalChannelRateRelease, &hf_h245_logicalChannelRateRelease, ASN1_NOT_EXTENSION_ROOT, dissect_h245_LogicalChannelRateRelease },
14244 { IndicationMessage_flowControlIndication, &hf_h245_flowControlIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_FlowControlIndication },
14245 { IndicationMessage_mobileMultilinkReconfigurationIndication, &hf_h245_mobileMultilinkReconfigurationIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_MobileMultilinkReconfigurationIndication },
14246 { IndicationMessage_genericIndication, &hf_h245_genericIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h245_GenericMessage },
14247 { 0, NULL, 0, NULL }
14250 static int
14251 dissect_h245_IndicationMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14252 int32_t value;
14254 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14255 ett_h245_IndicationMessage, IndicationMessage_choice,
14256 &value);
14258 print_info_column(actx->pinfo->cinfo, &value, h245_IndicationMessage_vals, h245_IndicationMessage_short_vals);
14259 col_set_fence(actx->pinfo->cinfo,COL_INFO);
14261 /* Add to packet info */
14262 if (h245_pi !=NULL){
14263 if ( strlen(h245_pi->frame_label) == 0 ){
14264 snprintf(h245_pi->frame_label, 50, "%s", val_to_str_const(value, h245_IndicationMessage_short_vals, "UKN"));
14266 (void) g_strlcat(h245_pi->comment, val_to_str_const(value, h245_IndicationMessage_vals, "<unknown>"), 50);
14271 return offset;
14275 static const value_string h245_MultimediaSystemControlMessage_vals[] = {
14276 { 0, "request" },
14277 { 1, "response" },
14278 { 2, "command" },
14279 { 3, "indication" },
14280 { 0, NULL }
14283 static const per_choice_t MultimediaSystemControlMessage_choice[] = {
14284 { 0, &hf_h245_request , ASN1_EXTENSION_ROOT , dissect_h245_RequestMessage },
14285 { 1, &hf_h245_response , ASN1_EXTENSION_ROOT , dissect_h245_ResponseMessage },
14286 { 2, &hf_h245_command , ASN1_EXTENSION_ROOT , dissect_h245_CommandMessage },
14287 { 3, &hf_h245_indication , ASN1_EXTENSION_ROOT , dissect_h245_IndicationMessage },
14288 { 0, NULL, 0, NULL }
14291 static int
14292 dissect_h245_MultimediaSystemControlMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
14293 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
14294 ett_h245_MultimediaSystemControlMessage, MultimediaSystemControlMessage_choice,
14295 NULL);
14297 return offset;
14300 /*--- PDUs ---*/
14302 static int dissect_OpenLogicalChannel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
14303 int offset = 0;
14304 asn1_ctx_t asn1_ctx;
14305 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14306 offset = dissect_h245_OpenLogicalChannel(tvb, offset, &asn1_ctx, tree, hf_h245_OpenLogicalChannel_PDU);
14307 offset += 7; offset >>= 3;
14308 return offset;
14312 static int
14313 dissect_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
14316 * MultimediaSystemControlMessage_handle is the handle for
14317 * dissect_h245_h245, so we don't want to do any h245_pi or tap stuff here.
14319 dissect_tpkt_encap(tvb, pinfo, parent_tree, h245_reassembly, MultimediaSystemControlMessage_handle);
14320 return tvb_captured_length(tvb);
14324 static int
14325 dissect_h245_h245(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
14327 proto_item *it;
14328 proto_tree *tr;
14329 uint32_t offset=0;
14330 asn1_ctx_t asn1_ctx;
14332 fast_start = false;
14333 /* Clean up from any previous packet dissection */
14334 upcoming_olc = NULL;
14335 upcoming_channel = NULL;
14336 codec_type = NULL;
14338 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
14340 it=proto_tree_add_protocol_format(parent_tree, proto_h245, tvb, 0, -1, PSNAME);
14341 tr=proto_item_add_subtree(it, ett_h245);
14343 /* assume that whilst there is more tvb data, there are more h245 commands */
14344 while ( tvb_reported_length_remaining( tvb, offset>>3 )>0 ){
14345 CLEANUP_PUSH(reset_h245_pi, NULL);
14346 h245_pi=wmem_new(pinfo->pool, h245_packet_info);
14347 init_h245_packet_info(h245_pi);
14348 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, true, pinfo);
14349 offset = dissect_h245_MultimediaSystemControlMessage(tvb, offset, &asn1_ctx, tr, hf_h245_pdu_type);
14350 tap_queue_packet(h245dg_tap, pinfo, h245_pi);
14351 offset = (offset+0x07) & 0xfffffff8;
14352 CLEANUP_CALL_AND_POP;
14354 return tvb_captured_length(tvb);
14357 void
14358 dissect_h245_FastStart_OLC(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, char *codec_str) {
14360 fast_start = true;
14361 /* Clean up from any previous packet dissection */
14362 upcoming_olc = NULL;
14363 upcoming_channel = NULL;
14364 codec_type = NULL;
14366 dissect_OpenLogicalChannel_PDU(tvb, pinfo, tree, NULL);
14368 if (h245_pi != NULL)
14369 h245_pi->msg_type = H245_OpenLogChn;
14371 if (codec_str && codec_type){
14372 (void) g_strlcpy(codec_str, codec_type, 50);
14377 /*--- proto_register_h245 -------------------------------------------*/
14378 void proto_register_h245(void) {
14380 /* List of fields */
14381 static hf_register_info hf[] = {
14382 { &hf_h245_pdu_type,
14383 { "PDU Type", "h245.pdu_type", FT_UINT32, BASE_DEC,
14384 VALS(h245_MultimediaSystemControlMessage_vals), 0, "Type of H.245 PDU", HFILL }},
14385 { &hf_h245Manufacturer,
14386 { "H.245 Manufacturer", "h245.Manufacturer", FT_UINT32, BASE_HEX,
14387 VALS(H221ManufacturerCode_vals), 0, "h245.H.221 Manufacturer", HFILL }},
14388 { &hf_h245_subMessageIdentifier_standard,
14389 { "subMessageIdentifier", "h245.subMessageIdentifier.standard",
14390 FT_UINT32, BASE_DEC, VALS(h245_h239subMessageIdentifier_vals), 0,
14391 NULL, HFILL }},
14392 { &hf_h245_debug_dissector_try_string,
14393 { "*** DEBUG dissector_try_string", "h245.debug.dissector_try_string", FT_STRING, BASE_NONE,
14394 NULL, 0, NULL, HFILL }},
14396 { &hf_h245_OpenLogicalChannel_PDU,
14397 { "OpenLogicalChannel", "h245.OpenLogicalChannel_element",
14398 FT_NONE, BASE_NONE, NULL, 0,
14399 NULL, HFILL }},
14400 { &hf_h245_request,
14401 { "request", "h245.request",
14402 FT_UINT32, BASE_DEC, VALS(h245_RequestMessage_vals), 0,
14403 "RequestMessage", HFILL }},
14404 { &hf_h245_response,
14405 { "response", "h245.response",
14406 FT_UINT32, BASE_DEC, VALS(h245_ResponseMessage_vals), 0,
14407 "ResponseMessage", HFILL }},
14408 { &hf_h245_command,
14409 { "command", "h245.command",
14410 FT_UINT32, BASE_DEC, VALS(h245_CommandMessage_vals), 0,
14411 "CommandMessage", HFILL }},
14412 { &hf_h245_indication,
14413 { "indication", "h245.indication",
14414 FT_UINT32, BASE_DEC, VALS(h245_IndicationMessage_vals), 0,
14415 "IndicationMessage", HFILL }},
14416 { &hf_h245_nonStandardMsg,
14417 { "nonStandard", "h245.nonStandardMsg_element",
14418 FT_NONE, BASE_NONE, NULL, 0,
14419 "NonStandardMessage", HFILL }},
14420 { &hf_h245_masterSlaveDetermination,
14421 { "masterSlaveDetermination", "h245.masterSlaveDetermination_element",
14422 FT_NONE, BASE_NONE, NULL, 0,
14423 NULL, HFILL }},
14424 { &hf_h245_terminalCapabilitySet,
14425 { "terminalCapabilitySet", "h245.terminalCapabilitySet_element",
14426 FT_NONE, BASE_NONE, NULL, 0,
14427 NULL, HFILL }},
14428 { &hf_h245_openLogicalChannel,
14429 { "openLogicalChannel", "h245.openLogicalChannel_element",
14430 FT_NONE, BASE_NONE, NULL, 0,
14431 NULL, HFILL }},
14432 { &hf_h245_closeLogicalChannel,
14433 { "closeLogicalChannel", "h245.closeLogicalChannel_element",
14434 FT_NONE, BASE_NONE, NULL, 0,
14435 NULL, HFILL }},
14436 { &hf_h245_requestChannelClose,
14437 { "requestChannelClose", "h245.requestChannelClose_element",
14438 FT_NONE, BASE_NONE, NULL, 0,
14439 NULL, HFILL }},
14440 { &hf_h245_multiplexEntrySend,
14441 { "multiplexEntrySend", "h245.multiplexEntrySend_element",
14442 FT_NONE, BASE_NONE, NULL, 0,
14443 NULL, HFILL }},
14444 { &hf_h245_requestMultiplexEntry,
14445 { "requestMultiplexEntry", "h245.requestMultiplexEntry_element",
14446 FT_NONE, BASE_NONE, NULL, 0,
14447 NULL, HFILL }},
14448 { &hf_h245_requestMode,
14449 { "requestMode", "h245.requestMode_element",
14450 FT_NONE, BASE_NONE, NULL, 0,
14451 NULL, HFILL }},
14452 { &hf_h245_roundTripDelayRequest,
14453 { "roundTripDelayRequest", "h245.roundTripDelayRequest_element",
14454 FT_NONE, BASE_NONE, NULL, 0,
14455 NULL, HFILL }},
14456 { &hf_h245_maintenanceLoopRequest,
14457 { "maintenanceLoopRequest", "h245.maintenanceLoopRequest_element",
14458 FT_NONE, BASE_NONE, NULL, 0,
14459 NULL, HFILL }},
14460 { &hf_h245_communicationModeRequest,
14461 { "communicationModeRequest", "h245.communicationModeRequest_element",
14462 FT_NONE, BASE_NONE, NULL, 0,
14463 NULL, HFILL }},
14464 { &hf_h245_conferenceRequest,
14465 { "conferenceRequest", "h245.conferenceRequest",
14466 FT_UINT32, BASE_DEC, VALS(h245_ConferenceRequest_vals), 0,
14467 NULL, HFILL }},
14468 { &hf_h245_multilinkRequest,
14469 { "multilinkRequest", "h245.multilinkRequest",
14470 FT_UINT32, BASE_DEC, VALS(h245_MultilinkRequest_vals), 0,
14471 NULL, HFILL }},
14472 { &hf_h245_logicalChannelRateRequest,
14473 { "logicalChannelRateRequest", "h245.logicalChannelRateRequest_element",
14474 FT_NONE, BASE_NONE, NULL, 0,
14475 NULL, HFILL }},
14476 { &hf_h245_genericRequest,
14477 { "genericRequest", "h245.genericRequest_element",
14478 FT_NONE, BASE_NONE, NULL, 0,
14479 "GenericMessage", HFILL }},
14480 { &hf_h245_masterSlaveDeterminationAck,
14481 { "masterSlaveDeterminationAck", "h245.masterSlaveDeterminationAck_element",
14482 FT_NONE, BASE_NONE, NULL, 0,
14483 NULL, HFILL }},
14484 { &hf_h245_masterSlaveDeterminationReject,
14485 { "masterSlaveDeterminationReject", "h245.masterSlaveDeterminationReject_element",
14486 FT_NONE, BASE_NONE, NULL, 0,
14487 NULL, HFILL }},
14488 { &hf_h245_terminalCapabilitySetAck,
14489 { "terminalCapabilitySetAck", "h245.terminalCapabilitySetAck_element",
14490 FT_NONE, BASE_NONE, NULL, 0,
14491 NULL, HFILL }},
14492 { &hf_h245_terminalCapabilitySetReject,
14493 { "terminalCapabilitySetReject", "h245.terminalCapabilitySetReject_element",
14494 FT_NONE, BASE_NONE, NULL, 0,
14495 NULL, HFILL }},
14496 { &hf_h245_openLogicalChannelAck,
14497 { "openLogicalChannelAck", "h245.openLogicalChannelAck_element",
14498 FT_NONE, BASE_NONE, NULL, 0,
14499 NULL, HFILL }},
14500 { &hf_h245_openLogicalChannelReject,
14501 { "openLogicalChannelReject", "h245.openLogicalChannelReject_element",
14502 FT_NONE, BASE_NONE, NULL, 0,
14503 NULL, HFILL }},
14504 { &hf_h245_closeLogicalChannelAck,
14505 { "closeLogicalChannelAck", "h245.closeLogicalChannelAck_element",
14506 FT_NONE, BASE_NONE, NULL, 0,
14507 NULL, HFILL }},
14508 { &hf_h245_requestChannelCloseAck,
14509 { "requestChannelCloseAck", "h245.requestChannelCloseAck_element",
14510 FT_NONE, BASE_NONE, NULL, 0,
14511 NULL, HFILL }},
14512 { &hf_h245_requestChannelCloseReject,
14513 { "requestChannelCloseReject", "h245.requestChannelCloseReject_element",
14514 FT_NONE, BASE_NONE, NULL, 0,
14515 NULL, HFILL }},
14516 { &hf_h245_multiplexEntrySendAck,
14517 { "multiplexEntrySendAck", "h245.multiplexEntrySendAck_element",
14518 FT_NONE, BASE_NONE, NULL, 0,
14519 NULL, HFILL }},
14520 { &hf_h245_multiplexEntrySendReject,
14521 { "multiplexEntrySendReject", "h245.multiplexEntrySendReject_element",
14522 FT_NONE, BASE_NONE, NULL, 0,
14523 NULL, HFILL }},
14524 { &hf_h245_requestMultiplexEntryAck,
14525 { "requestMultiplexEntryAck", "h245.requestMultiplexEntryAck_element",
14526 FT_NONE, BASE_NONE, NULL, 0,
14527 NULL, HFILL }},
14528 { &hf_h245_requestMultiplexEntryReject,
14529 { "requestMultiplexEntryReject", "h245.requestMultiplexEntryReject_element",
14530 FT_NONE, BASE_NONE, NULL, 0,
14531 NULL, HFILL }},
14532 { &hf_h245_requestModeAck,
14533 { "requestModeAck", "h245.requestModeAck_element",
14534 FT_NONE, BASE_NONE, NULL, 0,
14535 NULL, HFILL }},
14536 { &hf_h245_requestModeReject,
14537 { "requestModeReject", "h245.requestModeReject_element",
14538 FT_NONE, BASE_NONE, NULL, 0,
14539 NULL, HFILL }},
14540 { &hf_h245_roundTripDelayResponse,
14541 { "roundTripDelayResponse", "h245.roundTripDelayResponse_element",
14542 FT_NONE, BASE_NONE, NULL, 0,
14543 NULL, HFILL }},
14544 { &hf_h245_maintenanceLoopAck,
14545 { "maintenanceLoopAck", "h245.maintenanceLoopAck_element",
14546 FT_NONE, BASE_NONE, NULL, 0,
14547 NULL, HFILL }},
14548 { &hf_h245_maintenanceLoopReject,
14549 { "maintenanceLoopReject", "h245.maintenanceLoopReject_element",
14550 FT_NONE, BASE_NONE, NULL, 0,
14551 NULL, HFILL }},
14552 { &hf_h245_communicationModeResponse,
14553 { "communicationModeResponse", "h245.communicationModeResponse",
14554 FT_UINT32, BASE_DEC, VALS(h245_CommunicationModeResponse_vals), 0,
14555 NULL, HFILL }},
14556 { &hf_h245_conferenceResponse,
14557 { "conferenceResponse", "h245.conferenceResponse",
14558 FT_UINT32, BASE_DEC, VALS(h245_ConferenceResponse_vals), 0,
14559 NULL, HFILL }},
14560 { &hf_h245_multilinkResponse,
14561 { "multilinkResponse", "h245.multilinkResponse",
14562 FT_UINT32, BASE_DEC, VALS(h245_MultilinkResponse_vals), 0,
14563 NULL, HFILL }},
14564 { &hf_h245_logicalChannelRateAcknowledge,
14565 { "logicalChannelRateAcknowledge", "h245.logicalChannelRateAcknowledge_element",
14566 FT_NONE, BASE_NONE, NULL, 0,
14567 NULL, HFILL }},
14568 { &hf_h245_logicalChannelRateReject,
14569 { "logicalChannelRateReject", "h245.logicalChannelRateReject_element",
14570 FT_NONE, BASE_NONE, NULL, 0,
14571 NULL, HFILL }},
14572 { &hf_h245_genericResponse,
14573 { "genericResponse", "h245.genericResponse_element",
14574 FT_NONE, BASE_NONE, NULL, 0,
14575 "GenericMessage", HFILL }},
14576 { &hf_h245_maintenanceLoopOffCommand,
14577 { "maintenanceLoopOffCommand", "h245.maintenanceLoopOffCommand_element",
14578 FT_NONE, BASE_NONE, NULL, 0,
14579 NULL, HFILL }},
14580 { &hf_h245_sendTerminalCapabilitySet,
14581 { "sendTerminalCapabilitySet", "h245.sendTerminalCapabilitySet",
14582 FT_UINT32, BASE_DEC, VALS(h245_SendTerminalCapabilitySet_vals), 0,
14583 NULL, HFILL }},
14584 { &hf_h245_encryptionCommand,
14585 { "encryptionCommand", "h245.encryptionCommand",
14586 FT_UINT32, BASE_DEC, VALS(h245_EncryptionCommand_vals), 0,
14587 NULL, HFILL }},
14588 { &hf_h245_flowControlCommand,
14589 { "flowControlCommand", "h245.flowControlCommand_element",
14590 FT_NONE, BASE_NONE, NULL, 0,
14591 NULL, HFILL }},
14592 { &hf_h245_endSessionCommand,
14593 { "endSessionCommand", "h245.endSessionCommand",
14594 FT_UINT32, BASE_DEC, VALS(h245_EndSessionCommand_vals), 0,
14595 NULL, HFILL }},
14596 { &hf_h245_miscellaneousCommand,
14597 { "miscellaneousCommand", "h245.miscellaneousCommand_element",
14598 FT_NONE, BASE_NONE, NULL, 0,
14599 NULL, HFILL }},
14600 { &hf_h245_communicationModeCommand,
14601 { "communicationModeCommand", "h245.communicationModeCommand_element",
14602 FT_NONE, BASE_NONE, NULL, 0,
14603 NULL, HFILL }},
14604 { &hf_h245_conferenceCommand,
14605 { "conferenceCommand", "h245.conferenceCommand",
14606 FT_UINT32, BASE_DEC, VALS(h245_ConferenceCommand_vals), 0,
14607 NULL, HFILL }},
14608 { &hf_h245_h223MultiplexReconfiguration,
14609 { "h223MultiplexReconfiguration", "h245.h223MultiplexReconfiguration",
14610 FT_UINT32, BASE_DEC, VALS(h245_H223MultiplexReconfiguration_vals), 0,
14611 NULL, HFILL }},
14612 { &hf_h245_newATMVCCommand,
14613 { "newATMVCCommand", "h245.newATMVCCommand_element",
14614 FT_NONE, BASE_NONE, NULL, 0,
14615 NULL, HFILL }},
14616 { &hf_h245_mobileMultilinkReconfigurationCommand,
14617 { "mobileMultilinkReconfigurationCommand", "h245.mobileMultilinkReconfigurationCommand_element",
14618 FT_NONE, BASE_NONE, NULL, 0,
14619 NULL, HFILL }},
14620 { &hf_h245_genericCommand,
14621 { "genericCommand", "h245.genericCommand_element",
14622 FT_NONE, BASE_NONE, NULL, 0,
14623 "GenericMessage", HFILL }},
14624 { &hf_h245_functionNotUnderstood,
14625 { "functionNotUnderstood", "h245.functionNotUnderstood",
14626 FT_UINT32, BASE_DEC, VALS(h245_FunctionNotUnderstood_vals), 0,
14627 NULL, HFILL }},
14628 { &hf_h245_masterSlaveDeterminationRelease,
14629 { "masterSlaveDeterminationRelease", "h245.masterSlaveDeterminationRelease_element",
14630 FT_NONE, BASE_NONE, NULL, 0,
14631 NULL, HFILL }},
14632 { &hf_h245_terminalCapabilitySetRelease,
14633 { "terminalCapabilitySetRelease", "h245.terminalCapabilitySetRelease_element",
14634 FT_NONE, BASE_NONE, NULL, 0,
14635 NULL, HFILL }},
14636 { &hf_h245_openLogicalChannelConfirm,
14637 { "openLogicalChannelConfirm", "h245.openLogicalChannelConfirm_element",
14638 FT_NONE, BASE_NONE, NULL, 0,
14639 NULL, HFILL }},
14640 { &hf_h245_requestChannelCloseRelease,
14641 { "requestChannelCloseRelease", "h245.requestChannelCloseRelease_element",
14642 FT_NONE, BASE_NONE, NULL, 0,
14643 NULL, HFILL }},
14644 { &hf_h245_multiplexEntrySendRelease,
14645 { "multiplexEntrySendRelease", "h245.multiplexEntrySendRelease_element",
14646 FT_NONE, BASE_NONE, NULL, 0,
14647 NULL, HFILL }},
14648 { &hf_h245_requestMultiplexEntryRelease,
14649 { "requestMultiplexEntryRelease", "h245.requestMultiplexEntryRelease_element",
14650 FT_NONE, BASE_NONE, NULL, 0,
14651 NULL, HFILL }},
14652 { &hf_h245_requestModeRelease,
14653 { "requestModeRelease", "h245.requestModeRelease_element",
14654 FT_NONE, BASE_NONE, NULL, 0,
14655 NULL, HFILL }},
14656 { &hf_h245_miscellaneousIndication,
14657 { "miscellaneousIndication", "h245.miscellaneousIndication_element",
14658 FT_NONE, BASE_NONE, NULL, 0,
14659 NULL, HFILL }},
14660 { &hf_h245_jitterIndication,
14661 { "jitterIndication", "h245.jitterIndication_element",
14662 FT_NONE, BASE_NONE, NULL, 0,
14663 NULL, HFILL }},
14664 { &hf_h245_h223SkewIndication,
14665 { "h223SkewIndication", "h245.h223SkewIndication_element",
14666 FT_NONE, BASE_NONE, NULL, 0,
14667 NULL, HFILL }},
14668 { &hf_h245_newATMVCIndication,
14669 { "newATMVCIndication", "h245.newATMVCIndication_element",
14670 FT_NONE, BASE_NONE, NULL, 0,
14671 NULL, HFILL }},
14672 { &hf_h245_userInput,
14673 { "userInput", "h245.userInput",
14674 FT_UINT32, BASE_DEC, VALS(h245_UserInputIndication_vals), 0,
14675 "UserInputIndication", HFILL }},
14676 { &hf_h245_h2250MaximumSkewIndication,
14677 { "h2250MaximumSkewIndication", "h245.h2250MaximumSkewIndication_element",
14678 FT_NONE, BASE_NONE, NULL, 0,
14679 NULL, HFILL }},
14680 { &hf_h245_mcLocationIndication,
14681 { "mcLocationIndication", "h245.mcLocationIndication_element",
14682 FT_NONE, BASE_NONE, NULL, 0,
14683 NULL, HFILL }},
14684 { &hf_h245_conferenceIndication,
14685 { "conferenceIndication", "h245.conferenceIndication",
14686 FT_UINT32, BASE_DEC, VALS(h245_ConferenceIndication_vals), 0,
14687 NULL, HFILL }},
14688 { &hf_h245_vendorIdentification,
14689 { "vendorIdentification", "h245.vendorIdentification_element",
14690 FT_NONE, BASE_NONE, NULL, 0,
14691 NULL, HFILL }},
14692 { &hf_h245_functionNotSupported,
14693 { "functionNotSupported", "h245.functionNotSupported_element",
14694 FT_NONE, BASE_NONE, NULL, 0,
14695 NULL, HFILL }},
14696 { &hf_h245_multilinkIndication,
14697 { "multilinkIndication", "h245.multilinkIndication",
14698 FT_UINT32, BASE_DEC, VALS(h245_MultilinkIndication_vals), 0,
14699 NULL, HFILL }},
14700 { &hf_h245_logicalChannelRateRelease,
14701 { "logicalChannelRateRelease", "h245.logicalChannelRateRelease_element",
14702 FT_NONE, BASE_NONE, NULL, 0,
14703 NULL, HFILL }},
14704 { &hf_h245_flowControlIndication,
14705 { "flowControlIndication", "h245.flowControlIndication_element",
14706 FT_NONE, BASE_NONE, NULL, 0,
14707 NULL, HFILL }},
14708 { &hf_h245_mobileMultilinkReconfigurationIndication,
14709 { "mobileMultilinkReconfigurationIndication", "h245.mobileMultilinkReconfigurationIndication_element",
14710 FT_NONE, BASE_NONE, NULL, 0,
14711 NULL, HFILL }},
14712 { &hf_h245_genericIndication,
14713 { "genericIndication", "h245.genericIndication_element",
14714 FT_NONE, BASE_NONE, NULL, 0,
14715 "GenericMessage", HFILL }},
14716 { &hf_h245_messageIdentifier,
14717 { "messageIdentifier", "h245.messageIdentifier",
14718 FT_UINT32, BASE_DEC, VALS(h245_CapabilityIdentifier_vals), 0,
14719 "CapabilityIdentifier", HFILL }},
14720 { &hf_h245_subMessageIdentifier,
14721 { "subMessageIdentifier", "h245.subMessageIdentifier",
14722 FT_UINT32, BASE_DEC, NULL, 0,
14723 NULL, HFILL }},
14724 { &hf_h245_messageContent,
14725 { "messageContent", "h245.messageContent",
14726 FT_UINT32, BASE_DEC, NULL, 0,
14727 NULL, HFILL }},
14728 { &hf_h245_messageContent_item,
14729 { "messageContent item", "h245.messageContent_item_element",
14730 FT_NONE, BASE_NONE, NULL, 0,
14731 "T_messageContent_item", HFILL }},
14732 { &hf_h245_nonStandardData,
14733 { "nonStandardData", "h245.nonStandardData_element",
14734 FT_NONE, BASE_NONE, NULL, 0,
14735 "NonStandardParameter", HFILL }},
14736 { &hf_h245_nonStandardIdentifier,
14737 { "nonStandardIdentifier", "h245.nonStandardIdentifier",
14738 FT_UINT32, BASE_DEC, VALS(h245_NonStandardIdentifier_vals), 0,
14739 NULL, HFILL }},
14740 { &hf_h245_nsd_data,
14741 { "data", "h245.nsd_data",
14742 FT_BYTES, BASE_NONE, NULL, 0,
14743 "T_nsd_data", HFILL }},
14744 { &hf_h245_object,
14745 { "object", "h245.object",
14746 FT_OID, BASE_NONE, NULL, 0,
14747 NULL, HFILL }},
14748 { &hf_h245_h221NonStandardID,
14749 { "h221NonStandard", "h245.h221NonStandardID_element",
14750 FT_NONE, BASE_NONE, NULL, 0,
14751 "H221NonStandardID", HFILL }},
14752 { &hf_h245_t35CountryCode,
14753 { "t35CountryCode", "h245.t35CountryCode",
14754 FT_UINT32, BASE_DEC, VALS(T35CountryCode_vals), 0,
14755 NULL, HFILL }},
14756 { &hf_h245_t35Extension,
14757 { "t35Extension", "h245.t35Extension",
14758 FT_UINT32, BASE_DEC, NULL, 0,
14759 NULL, HFILL }},
14760 { &hf_h245_manufacturerCode,
14761 { "manufacturerCode", "h245.manufacturerCode",
14762 FT_UINT32, BASE_DEC, NULL, 0,
14763 NULL, HFILL }},
14764 { &hf_h245_terminalType,
14765 { "terminalType", "h245.terminalType",
14766 FT_UINT32, BASE_DEC, NULL, 0,
14767 "INTEGER_0_255", HFILL }},
14768 { &hf_h245_statusDeterminationNumber,
14769 { "statusDeterminationNumber", "h245.statusDeterminationNumber",
14770 FT_UINT32, BASE_DEC, NULL, 0,
14771 "INTEGER_0_16777215", HFILL }},
14772 { &hf_h245_decision,
14773 { "decision", "h245.decision",
14774 FT_UINT32, BASE_DEC, VALS(h245_T_decision_vals), 0,
14775 NULL, HFILL }},
14776 { &hf_h245_master,
14777 { "master", "h245.master_element",
14778 FT_NONE, BASE_NONE, NULL, 0,
14779 NULL, HFILL }},
14780 { &hf_h245_slave,
14781 { "slave", "h245.slave_element",
14782 FT_NONE, BASE_NONE, NULL, 0,
14783 NULL, HFILL }},
14784 { &hf_h245_msd_rej_cause,
14785 { "cause", "h245.msd_rej_cause",
14786 FT_UINT32, BASE_DEC, VALS(h245_MasterSlaveDeterminationRejectCause_vals), 0,
14787 "MasterSlaveDeterminationRejectCause", HFILL }},
14788 { &hf_h245_identicalNumbers,
14789 { "identicalNumbers", "h245.identicalNumbers_element",
14790 FT_NONE, BASE_NONE, NULL, 0,
14791 NULL, HFILL }},
14792 { &hf_h245_sequenceNumber,
14793 { "sequenceNumber", "h245.sequenceNumber",
14794 FT_UINT32, BASE_DEC, NULL, 0,
14795 NULL, HFILL }},
14796 { &hf_h245_protocolIdentifier,
14797 { "protocolIdentifier", "h245.protocolIdentifier",
14798 FT_OID, BASE_NONE, NULL, 0,
14799 "OBJECT_IDENTIFIER", HFILL }},
14800 { &hf_h245_multiplexCapability,
14801 { "multiplexCapability", "h245.multiplexCapability",
14802 FT_UINT32, BASE_DEC, VALS(h245_MultiplexCapability_vals), 0,
14803 NULL, HFILL }},
14804 { &hf_h245_capabilityTable,
14805 { "capabilityTable", "h245.capabilityTable",
14806 FT_UINT32, BASE_DEC, NULL, 0,
14807 "SET_SIZE_1_256_OF_CapabilityTableEntry", HFILL }},
14808 { &hf_h245_capabilityTable_item,
14809 { "CapabilityTableEntry", "h245.CapabilityTableEntry_element",
14810 FT_NONE, BASE_NONE, NULL, 0,
14811 NULL, HFILL }},
14812 { &hf_h245_capabilityDescriptors,
14813 { "capabilityDescriptors", "h245.capabilityDescriptors",
14814 FT_UINT32, BASE_DEC, NULL, 0,
14815 "SET_SIZE_1_256_OF_CapabilityDescriptor", HFILL }},
14816 { &hf_h245_capabilityDescriptors_item,
14817 { "CapabilityDescriptor", "h245.CapabilityDescriptor_element",
14818 FT_NONE, BASE_NONE, NULL, 0,
14819 NULL, HFILL }},
14820 { &hf_h245_genericInformation,
14821 { "genericInformation", "h245.genericInformation",
14822 FT_UINT32, BASE_DEC, NULL, 0,
14823 "SEQUENCE_OF_GenericInformation", HFILL }},
14824 { &hf_h245_genericInformation_item,
14825 { "GenericInformation", "h245.GenericInformation_element",
14826 FT_NONE, BASE_NONE, NULL, 0,
14827 NULL, HFILL }},
14828 { &hf_h245_capabilityTableEntryNumber,
14829 { "capabilityTableEntryNumber", "h245.capabilityTableEntryNumber",
14830 FT_UINT32, BASE_DEC, NULL, 0,
14831 NULL, HFILL }},
14832 { &hf_h245_capability,
14833 { "capability", "h245.capability",
14834 FT_UINT32, BASE_DEC, VALS(h245_Capability_vals), 0,
14835 NULL, HFILL }},
14836 { &hf_h245_capabilityDescriptorNumber,
14837 { "capabilityDescriptorNumber", "h245.capabilityDescriptorNumber",
14838 FT_UINT32, BASE_DEC, NULL, 0,
14839 NULL, HFILL }},
14840 { &hf_h245_simultaneousCapabilities,
14841 { "simultaneousCapabilities", "h245.simultaneousCapabilities",
14842 FT_UINT32, BASE_DEC, NULL, 0,
14843 "SET_SIZE_1_256_OF_AlternativeCapabilitySet", HFILL }},
14844 { &hf_h245_simultaneousCapabilities_item,
14845 { "AlternativeCapabilitySet", "h245.AlternativeCapabilitySet",
14846 FT_UINT32, BASE_DEC, NULL, 0,
14847 NULL, HFILL }},
14848 { &hf_h245_AlternativeCapabilitySet_item,
14849 { "alternativeCapability", "h245.CapabilityTableEntryNumber",
14850 FT_UINT32, BASE_DEC, NULL, 0,
14851 "CapabilityTableEntryNumber", HFILL }},
14852 { &hf_h245_tcs_rej_cause,
14853 { "cause", "h245.tcs_rej_cause",
14854 FT_UINT32, BASE_DEC, VALS(h245_TerminalCapabilitySetRejectCause_vals), 0,
14855 "TerminalCapabilitySetRejectCause", HFILL }},
14856 { &hf_h245_unspecified,
14857 { "unspecified", "h245.unspecified_element",
14858 FT_NONE, BASE_NONE, NULL, 0,
14859 NULL, HFILL }},
14860 { &hf_h245_undefinedTableEntryUsed,
14861 { "undefinedTableEntryUsed", "h245.undefinedTableEntryUsed_element",
14862 FT_NONE, BASE_NONE, NULL, 0,
14863 NULL, HFILL }},
14864 { &hf_h245_descriptorCapacityExceeded,
14865 { "descriptorCapacityExceeded", "h245.descriptorCapacityExceeded_element",
14866 FT_NONE, BASE_NONE, NULL, 0,
14867 NULL, HFILL }},
14868 { &hf_h245_tableEntryCapacityExceeded,
14869 { "tableEntryCapacityExceeded", "h245.tableEntryCapacityExceeded",
14870 FT_UINT32, BASE_DEC, VALS(h245_T_tableEntryCapacityExceeded_vals), 0,
14871 NULL, HFILL }},
14872 { &hf_h245_highestEntryNumberProcessed,
14873 { "highestEntryNumberProcessed", "h245.highestEntryNumberProcessed",
14874 FT_UINT32, BASE_DEC, NULL, 0,
14875 "CapabilityTableEntryNumber", HFILL }},
14876 { &hf_h245_noneProcessed,
14877 { "noneProcessed", "h245.noneProcessed_element",
14878 FT_NONE, BASE_NONE, NULL, 0,
14879 NULL, HFILL }},
14880 { &hf_h245_nonStandard,
14881 { "nonStandard", "h245.nonStandard_element",
14882 FT_NONE, BASE_NONE, NULL, 0,
14883 "NonStandardParameter", HFILL }},
14884 { &hf_h245_receiveVideoCapability,
14885 { "receiveVideoCapability", "h245.receiveVideoCapability",
14886 FT_UINT32, BASE_DEC, VALS(h245_VideoCapability_vals), 0,
14887 "VideoCapability", HFILL }},
14888 { &hf_h245_transmitVideoCapability,
14889 { "transmitVideoCapability", "h245.transmitVideoCapability",
14890 FT_UINT32, BASE_DEC, VALS(h245_VideoCapability_vals), 0,
14891 "VideoCapability", HFILL }},
14892 { &hf_h245_receiveAndTransmitVideoCapability,
14893 { "receiveAndTransmitVideoCapability", "h245.receiveAndTransmitVideoCapability",
14894 FT_UINT32, BASE_DEC, VALS(h245_VideoCapability_vals), 0,
14895 "VideoCapability", HFILL }},
14896 { &hf_h245_receiveAudioCapability,
14897 { "receiveAudioCapability", "h245.receiveAudioCapability",
14898 FT_UINT32, BASE_DEC, VALS(h245_AudioCapability_vals), 0,
14899 "AudioCapability", HFILL }},
14900 { &hf_h245_transmitAudioCapability,
14901 { "transmitAudioCapability", "h245.transmitAudioCapability",
14902 FT_UINT32, BASE_DEC, VALS(h245_AudioCapability_vals), 0,
14903 "AudioCapability", HFILL }},
14904 { &hf_h245_receiveAndTransmitAudioCapability,
14905 { "receiveAndTransmitAudioCapability", "h245.receiveAndTransmitAudioCapability",
14906 FT_UINT32, BASE_DEC, VALS(h245_AudioCapability_vals), 0,
14907 "AudioCapability", HFILL }},
14908 { &hf_h245_receiveDataApplicationCapability,
14909 { "receiveDataApplicationCapability", "h245.receiveDataApplicationCapability_element",
14910 FT_NONE, BASE_NONE, NULL, 0,
14911 "DataApplicationCapability", HFILL }},
14912 { &hf_h245_transmitDataApplicationCapability,
14913 { "transmitDataApplicationCapability", "h245.transmitDataApplicationCapability_element",
14914 FT_NONE, BASE_NONE, NULL, 0,
14915 "DataApplicationCapability", HFILL }},
14916 { &hf_h245_receiveAndTransmitDataApplicationCapability,
14917 { "receiveAndTransmitDataApplicationCapability", "h245.receiveAndTransmitDataApplicationCapability_element",
14918 FT_NONE, BASE_NONE, NULL, 0,
14919 "DataApplicationCapability", HFILL }},
14920 { &hf_h245_h233EncryptionTransmitCapability,
14921 { "h233EncryptionTransmitCapability", "h245.h233EncryptionTransmitCapability",
14922 FT_BOOLEAN, BASE_NONE, NULL, 0,
14923 "BOOLEAN", HFILL }},
14924 { &hf_h245_h233EncryptionReceiveCapability,
14925 { "h233EncryptionReceiveCapability", "h245.h233EncryptionReceiveCapability_element",
14926 FT_NONE, BASE_NONE, NULL, 0,
14927 NULL, HFILL }},
14928 { &hf_h245_h233IVResponseTime,
14929 { "h233IVResponseTime", "h245.h233IVResponseTime",
14930 FT_UINT32, BASE_DEC, NULL, 0,
14931 "INTEGER_0_255", HFILL }},
14932 { &hf_h245_conferenceCapability,
14933 { "conferenceCapability", "h245.conferenceCapability_element",
14934 FT_NONE, BASE_NONE, NULL, 0,
14935 NULL, HFILL }},
14936 { &hf_h245_h235SecurityCapability,
14937 { "h235SecurityCapability", "h245.h235SecurityCapability_element",
14938 FT_NONE, BASE_NONE, NULL, 0,
14939 NULL, HFILL }},
14940 { &hf_h245_maxPendingReplacementFor,
14941 { "maxPendingReplacementFor", "h245.maxPendingReplacementFor",
14942 FT_UINT32, BASE_DEC, NULL, 0,
14943 "INTEGER_0_255", HFILL }},
14944 { &hf_h245_receiveUserInputCapability,
14945 { "receiveUserInputCapability", "h245.receiveUserInputCapability",
14946 FT_UINT32, BASE_DEC, VALS(h245_UserInputCapability_vals), 0,
14947 "UserInputCapability", HFILL }},
14948 { &hf_h245_transmitUserInputCapability,
14949 { "transmitUserInputCapability", "h245.transmitUserInputCapability",
14950 FT_UINT32, BASE_DEC, VALS(h245_UserInputCapability_vals), 0,
14951 "UserInputCapability", HFILL }},
14952 { &hf_h245_receiveAndTransmitUserInputCapability,
14953 { "receiveAndTransmitUserInputCapability", "h245.receiveAndTransmitUserInputCapability",
14954 FT_UINT32, BASE_DEC, VALS(h245_UserInputCapability_vals), 0,
14955 "UserInputCapability", HFILL }},
14956 { &hf_h245_genericControlCapability,
14957 { "genericControlCapability", "h245.genericControlCapability_element",
14958 FT_NONE, BASE_NONE, NULL, 0,
14959 "GenericCapability", HFILL }},
14960 { &hf_h245_receiveMultiplexedStreamCapability,
14961 { "receiveMultiplexedStreamCapability", "h245.receiveMultiplexedStreamCapability_element",
14962 FT_NONE, BASE_NONE, NULL, 0,
14963 "MultiplexedStreamCapability", HFILL }},
14964 { &hf_h245_transmitMultiplexedStreamCapability,
14965 { "transmitMultiplexedStreamCapability", "h245.transmitMultiplexedStreamCapability_element",
14966 FT_NONE, BASE_NONE, NULL, 0,
14967 "MultiplexedStreamCapability", HFILL }},
14968 { &hf_h245_receiveAndTransmitMultiplexedStreamCapability,
14969 { "receiveAndTransmitMultiplexedStreamCapability", "h245.receiveAndTransmitMultiplexedStreamCapability_element",
14970 FT_NONE, BASE_NONE, NULL, 0,
14971 "MultiplexedStreamCapability", HFILL }},
14972 { &hf_h245_receiveRTPAudioTelephonyEventCapability,
14973 { "receiveRTPAudioTelephonyEventCapability", "h245.receiveRTPAudioTelephonyEventCapability_element",
14974 FT_NONE, BASE_NONE, NULL, 0,
14975 "AudioTelephonyEventCapability", HFILL }},
14976 { &hf_h245_receiveRTPAudioToneCapability,
14977 { "receiveRTPAudioToneCapability", "h245.receiveRTPAudioToneCapability_element",
14978 FT_NONE, BASE_NONE, NULL, 0,
14979 "AudioToneCapability", HFILL }},
14980 { &hf_h245_depFecCapability,
14981 { "depFecCapability", "h245.depFecCapability",
14982 FT_UINT32, BASE_DEC, VALS(h245_DepFECCapability_vals), 0,
14983 NULL, HFILL }},
14984 { &hf_h245_multiplePayloadStreamCapability,
14985 { "multiplePayloadStreamCapability", "h245.multiplePayloadStreamCapability_element",
14986 FT_NONE, BASE_NONE, NULL, 0,
14987 NULL, HFILL }},
14988 { &hf_h245_fecCapability,
14989 { "fecCapability", "h245.fecCapability_element",
14990 FT_NONE, BASE_NONE, NULL, 0,
14991 NULL, HFILL }},
14992 { &hf_h245_redundancyEncodingCap,
14993 { "redundancyEncodingCap", "h245.redundancyEncodingCap_element",
14994 FT_NONE, BASE_NONE, NULL, 0,
14995 "RedundancyEncodingCapability", HFILL }},
14996 { &hf_h245_oneOfCapabilities,
14997 { "oneOfCapabilities", "h245.oneOfCapabilities",
14998 FT_UINT32, BASE_DEC, NULL, 0,
14999 "AlternativeCapabilitySet", HFILL }},
15000 { &hf_h245_encryptionAuthenticationAndIntegrity,
15001 { "encryptionAuthenticationAndIntegrity", "h245.encryptionAuthenticationAndIntegrity_element",
15002 FT_NONE, BASE_NONE, NULL, 0,
15003 NULL, HFILL }},
15004 { &hf_h245_mediaCapability,
15005 { "mediaCapability", "h245.mediaCapability",
15006 FT_UINT32, BASE_DEC, NULL, 0,
15007 "CapabilityTableEntryNumber", HFILL }},
15008 { &hf_h245_h222Capability,
15009 { "h222Capability", "h245.h222Capability_element",
15010 FT_NONE, BASE_NONE, NULL, 0,
15011 NULL, HFILL }},
15012 { &hf_h245_h223Capability,
15013 { "h223Capability", "h245.h223Capability_element",
15014 FT_NONE, BASE_NONE, NULL, 0,
15015 NULL, HFILL }},
15016 { &hf_h245_v76Capability,
15017 { "v76Capability", "h245.v76Capability_element",
15018 FT_NONE, BASE_NONE, NULL, 0,
15019 NULL, HFILL }},
15020 { &hf_h245_h2250Capability,
15021 { "h2250Capability", "h245.h2250Capability_element",
15022 FT_NONE, BASE_NONE, NULL, 0,
15023 NULL, HFILL }},
15024 { &hf_h245_genericMultiplexCapability,
15025 { "genericMultiplexCapability", "h245.genericMultiplexCapability_element",
15026 FT_NONE, BASE_NONE, NULL, 0,
15027 "GenericCapability", HFILL }},
15028 { &hf_h245_numberOfVCs,
15029 { "numberOfVCs", "h245.numberOfVCs",
15030 FT_UINT32, BASE_DEC, NULL, 0,
15031 "INTEGER_1_256", HFILL }},
15032 { &hf_h245_vcCapability,
15033 { "vcCapability", "h245.vcCapability",
15034 FT_UINT32, BASE_DEC, NULL, 0,
15035 "SET_OF_VCCapability", HFILL }},
15036 { &hf_h245_vcCapability_item,
15037 { "VCCapability", "h245.VCCapability_element",
15038 FT_NONE, BASE_NONE, NULL, 0,
15039 NULL, HFILL }},
15040 { &hf_h245_aal1,
15041 { "aal1", "h245.aal1_element",
15042 FT_NONE, BASE_NONE, NULL, 0,
15043 NULL, HFILL }},
15044 { &hf_h245_nullClockRecovery,
15045 { "nullClockRecovery", "h245.nullClockRecovery",
15046 FT_BOOLEAN, BASE_NONE, NULL, 0,
15047 "BOOLEAN", HFILL }},
15048 { &hf_h245_srtsClockRecovery_bool,
15049 { "srtsClockRecovery", "h245.srtsClockRecovery_bool",
15050 FT_BOOLEAN, BASE_NONE, NULL, 0,
15051 "BOOLEAN", HFILL }},
15052 { &hf_h245_adaptiveClockRecovery,
15053 { "adaptiveClockRecovery", "h245.adaptiveClockRecovery",
15054 FT_BOOLEAN, BASE_NONE, NULL, 0,
15055 "BOOLEAN", HFILL }},
15056 { &hf_h245_nullErrorCorrection,
15057 { "nullErrorCorrection", "h245.nullErrorCorrection",
15058 FT_BOOLEAN, BASE_NONE, NULL, 0,
15059 "BOOLEAN", HFILL }},
15060 { &hf_h245_longInterleaver,
15061 { "longInterleaver", "h245.longInterleaver",
15062 FT_BOOLEAN, BASE_NONE, NULL, 0,
15063 "BOOLEAN", HFILL }},
15064 { &hf_h245_shortInterleaver,
15065 { "shortInterleaver", "h245.shortInterleaver",
15066 FT_BOOLEAN, BASE_NONE, NULL, 0,
15067 "BOOLEAN", HFILL }},
15068 { &hf_h245_errorCorrectionOnly,
15069 { "errorCorrectionOnly", "h245.errorCorrectionOnly",
15070 FT_BOOLEAN, BASE_NONE, NULL, 0,
15071 "BOOLEAN", HFILL }},
15072 { &hf_h245_structuredDataTransfer,
15073 { "structuredDataTransfer", "h245.structuredDataTransfer",
15074 FT_BOOLEAN, BASE_NONE, NULL, 0,
15075 "BOOLEAN", HFILL }},
15076 { &hf_h245_partiallyFilledCells,
15077 { "partiallyFilledCells", "h245.partiallyFilledCells",
15078 FT_BOOLEAN, BASE_NONE, NULL, 0,
15079 "BOOLEAN", HFILL }},
15080 { &hf_h245_aal5,
15081 { "aal5", "h245.aal5_element",
15082 FT_NONE, BASE_NONE, NULL, 0,
15083 NULL, HFILL }},
15084 { &hf_h245_forwardMaximumSDUSize,
15085 { "forwardMaximumSDUSize", "h245.forwardMaximumSDUSize",
15086 FT_UINT32, BASE_DEC, NULL, 0,
15087 "INTEGER_0_65535", HFILL }},
15088 { &hf_h245_backwardMaximumSDUSize,
15089 { "backwardMaximumSDUSize", "h245.backwardMaximumSDUSize",
15090 FT_UINT32, BASE_DEC, NULL, 0,
15091 "INTEGER_0_65535", HFILL }},
15092 { &hf_h245_transportStream_bool,
15093 { "transportStream", "h245.transportStream_bool",
15094 FT_BOOLEAN, BASE_NONE, NULL, 0,
15095 "BOOLEAN", HFILL }},
15096 { &hf_h245_programStream,
15097 { "programStream", "h245.programStream",
15098 FT_BOOLEAN, BASE_NONE, NULL, 0,
15099 "BOOLEAN", HFILL }},
15100 { &hf_h245_availableBitRates,
15101 { "availableBitRates", "h245.availableBitRates_element",
15102 FT_NONE, BASE_NONE, NULL, 0,
15103 NULL, HFILL }},
15104 { &hf_h245_avb_type,
15105 { "type", "h245.avb_type",
15106 FT_UINT32, BASE_DEC, VALS(h245_Avb_type_vals), 0,
15107 "Avb_type", HFILL }},
15108 { &hf_h245_singleBitRate,
15109 { "singleBitRate", "h245.singleBitRate",
15110 FT_UINT32, BASE_DEC, NULL, 0,
15111 "INTEGER_1_65535", HFILL }},
15112 { &hf_h245_rangeOfBitRates,
15113 { "rangeOfBitRates", "h245.rangeOfBitRates_element",
15114 FT_NONE, BASE_NONE, NULL, 0,
15115 NULL, HFILL }},
15116 { &hf_h245_lowerBitRate,
15117 { "lowerBitRate", "h245.lowerBitRate",
15118 FT_UINT32, BASE_DEC, NULL, 0,
15119 "INTEGER_1_65535", HFILL }},
15120 { &hf_h245_higherBitRate,
15121 { "higherBitRate", "h245.higherBitRate",
15122 FT_UINT32, BASE_DEC, NULL, 0,
15123 "INTEGER_1_65535", HFILL }},
15124 { &hf_h245_aal1ViaGateway,
15125 { "aal1ViaGateway", "h245.aal1ViaGateway_element",
15126 FT_NONE, BASE_NONE, NULL, 0,
15127 NULL, HFILL }},
15128 { &hf_h245_gatewayAddress,
15129 { "gatewayAddress", "h245.gatewayAddress",
15130 FT_UINT32, BASE_DEC, NULL, 0,
15131 "SET_SIZE_1_256_OF_Q2931Address", HFILL }},
15132 { &hf_h245_gatewayAddress_item,
15133 { "Q2931Address", "h245.Q2931Address_element",
15134 FT_NONE, BASE_NONE, NULL, 0,
15135 NULL, HFILL }},
15136 { &hf_h245_srtsClockRecoveryflag,
15137 { "srtsClockRecovery", "h245.srtsClockRecoveryflag",
15138 FT_BOOLEAN, BASE_NONE, NULL, 0,
15139 "BOOLEAN", HFILL }},
15140 { &hf_h245_transportWithI_frames,
15141 { "transportWithI-frames", "h245.transportWithI_frames",
15142 FT_BOOLEAN, BASE_NONE, NULL, 0,
15143 "BOOLEAN", HFILL }},
15144 { &hf_h245_videoWithAL1,
15145 { "videoWithAL1", "h245.videoWithAL1",
15146 FT_BOOLEAN, BASE_NONE, NULL, 0,
15147 "BOOLEAN", HFILL }},
15148 { &hf_h245_videoWithAL2,
15149 { "videoWithAL2", "h245.videoWithAL2",
15150 FT_BOOLEAN, BASE_NONE, NULL, 0,
15151 "BOOLEAN", HFILL }},
15152 { &hf_h245_videoWithAL3,
15153 { "videoWithAL3", "h245.videoWithAL3",
15154 FT_BOOLEAN, BASE_NONE, NULL, 0,
15155 "BOOLEAN", HFILL }},
15156 { &hf_h245_audioWithAL1,
15157 { "audioWithAL1", "h245.audioWithAL1",
15158 FT_BOOLEAN, BASE_NONE, NULL, 0,
15159 "BOOLEAN", HFILL }},
15160 { &hf_h245_audioWithAL2,
15161 { "audioWithAL2", "h245.audioWithAL2",
15162 FT_BOOLEAN, BASE_NONE, NULL, 0,
15163 "BOOLEAN", HFILL }},
15164 { &hf_h245_audioWithAL3,
15165 { "audioWithAL3", "h245.audioWithAL3",
15166 FT_BOOLEAN, BASE_NONE, NULL, 0,
15167 "BOOLEAN", HFILL }},
15168 { &hf_h245_dataWithAL1,
15169 { "dataWithAL1", "h245.dataWithAL1",
15170 FT_BOOLEAN, BASE_NONE, NULL, 0,
15171 "BOOLEAN", HFILL }},
15172 { &hf_h245_dataWithAL2,
15173 { "dataWithAL2", "h245.dataWithAL2",
15174 FT_BOOLEAN, BASE_NONE, NULL, 0,
15175 "BOOLEAN", HFILL }},
15176 { &hf_h245_dataWithAL3,
15177 { "dataWithAL3", "h245.dataWithAL3",
15178 FT_BOOLEAN, BASE_NONE, NULL, 0,
15179 "BOOLEAN", HFILL }},
15180 { &hf_h245_maximumAl2SDUSize,
15181 { "maximumAl2SDUSize", "h245.maximumAl2SDUSize",
15182 FT_UINT32, BASE_DEC, NULL, 0,
15183 "INTEGER_0_65535", HFILL }},
15184 { &hf_h245_maximumAl3SDUSize,
15185 { "maximumAl3SDUSize", "h245.maximumAl3SDUSize",
15186 FT_UINT32, BASE_DEC, NULL, 0,
15187 "INTEGER_0_65535", HFILL }},
15188 { &hf_h245_maximumDelayJitter,
15189 { "maximumDelayJitter", "h245.maximumDelayJitter",
15190 FT_UINT32, BASE_DEC, NULL, 0,
15191 "INTEGER_0_1023", HFILL }},
15192 { &hf_h245_h223MultiplexTableCapability,
15193 { "h223MultiplexTableCapability", "h245.h223MultiplexTableCapability",
15194 FT_UINT32, BASE_DEC, VALS(h245_T_h223MultiplexTableCapability_vals), 0,
15195 NULL, HFILL }},
15196 { &hf_h245_basic,
15197 { "basic", "h245.basic_element",
15198 FT_NONE, BASE_NONE, NULL, 0,
15199 NULL, HFILL }},
15200 { &hf_h245_enhanced,
15201 { "enhanced", "h245.enhanced_element",
15202 FT_NONE, BASE_NONE, NULL, 0,
15203 NULL, HFILL }},
15204 { &hf_h245_maximumNestingDepth,
15205 { "maximumNestingDepth", "h245.maximumNestingDepth",
15206 FT_UINT32, BASE_DEC, NULL, 0,
15207 "INTEGER_1_15", HFILL }},
15208 { &hf_h245_maximumElementListSize,
15209 { "maximumElementListSize", "h245.maximumElementListSize",
15210 FT_UINT32, BASE_DEC, NULL, 0,
15211 "INTEGER_2_255", HFILL }},
15212 { &hf_h245_maximumSubElementListSize,
15213 { "maximumSubElementListSize", "h245.maximumSubElementListSize",
15214 FT_UINT32, BASE_DEC, NULL, 0,
15215 "INTEGER_2_255", HFILL }},
15216 { &hf_h245_maxMUXPDUSizeCapability,
15217 { "maxMUXPDUSizeCapability", "h245.maxMUXPDUSizeCapability",
15218 FT_BOOLEAN, BASE_NONE, NULL, 0,
15219 "BOOLEAN", HFILL }},
15220 { &hf_h245_nsrpSupport,
15221 { "nsrpSupport", "h245.nsrpSupport",
15222 FT_BOOLEAN, BASE_NONE, NULL, 0,
15223 "BOOLEAN", HFILL }},
15224 { &hf_h245_mobileOperationTransmitCapability,
15225 { "mobileOperationTransmitCapability", "h245.mobileOperationTransmitCapability_element",
15226 FT_NONE, BASE_NONE, NULL, 0,
15227 NULL, HFILL }},
15228 { &hf_h245_modeChangeCapability,
15229 { "modeChangeCapability", "h245.modeChangeCapability",
15230 FT_BOOLEAN, BASE_NONE, NULL, 0,
15231 "BOOLEAN", HFILL }},
15232 { &hf_h245_h223AnnexA,
15233 { "h223AnnexA", "h245.h223AnnexA",
15234 FT_BOOLEAN, BASE_NONE, NULL, 0,
15235 "BOOLEAN", HFILL }},
15236 { &hf_h245_h223AnnexADoubleFlagFlag,
15237 { "h223AnnexADoubleFlag", "h245.h223AnnexADoubleFlagFlag",
15238 FT_BOOLEAN, BASE_NONE, NULL, 0,
15239 "BOOLEAN", HFILL }},
15240 { &hf_h245_h223AnnexB,
15241 { "h223AnnexB", "h245.h223AnnexB",
15242 FT_BOOLEAN, BASE_NONE, NULL, 0,
15243 "BOOLEAN", HFILL }},
15244 { &hf_h245_h223AnnexBwithHeader,
15245 { "h223AnnexBwithHeader", "h245.h223AnnexBwithHeader",
15246 FT_BOOLEAN, BASE_NONE, NULL, 0,
15247 "BOOLEAN", HFILL }},
15248 { &hf_h245_h223AnnexCCapability,
15249 { "h223AnnexCCapability", "h245.h223AnnexCCapability_element",
15250 FT_NONE, BASE_NONE, NULL, 0,
15251 NULL, HFILL }},
15252 { &hf_h245_bitRate_1_19200,
15253 { "bitRate", "h245.bitRate_1_19200",
15254 FT_UINT32, BASE_DEC, NULL, 0,
15255 "INTEGER_1_19200", HFILL }},
15256 { &hf_h245_mobileMultilinkFrameCapability,
15257 { "mobileMultilinkFrameCapability", "h245.mobileMultilinkFrameCapability_element",
15258 FT_NONE, BASE_NONE, NULL, 0,
15259 NULL, HFILL }},
15260 { &hf_h245_maximumSampleSize,
15261 { "maximumSampleSize", "h245.maximumSampleSize",
15262 FT_UINT32, BASE_DEC, NULL, 0,
15263 "INTEGER_1_255", HFILL }},
15264 { &hf_h245_maximumPayloadLength,
15265 { "maximumPayloadLength", "h245.maximumPayloadLength",
15266 FT_UINT32, BASE_DEC, NULL, 0,
15267 "INTEGER_1_65025", HFILL }},
15268 { &hf_h245_videoWithAL1M,
15269 { "videoWithAL1M", "h245.videoWithAL1M",
15270 FT_BOOLEAN, BASE_NONE, NULL, 0,
15271 "BOOLEAN", HFILL }},
15272 { &hf_h245_videoWithAL2M,
15273 { "videoWithAL2M", "h245.videoWithAL2M",
15274 FT_BOOLEAN, BASE_NONE, NULL, 0,
15275 "BOOLEAN", HFILL }},
15276 { &hf_h245_videoWithAL3M,
15277 { "videoWithAL3M", "h245.videoWithAL3M",
15278 FT_BOOLEAN, BASE_NONE, NULL, 0,
15279 "BOOLEAN", HFILL }},
15280 { &hf_h245_audioWithAL1M,
15281 { "audioWithAL1M", "h245.audioWithAL1M",
15282 FT_BOOLEAN, BASE_NONE, NULL, 0,
15283 "BOOLEAN", HFILL }},
15284 { &hf_h245_audioWithAL2M,
15285 { "audioWithAL2M", "h245.audioWithAL2M",
15286 FT_BOOLEAN, BASE_NONE, NULL, 0,
15287 "BOOLEAN", HFILL }},
15288 { &hf_h245_audioWithAL3M,
15289 { "audioWithAL3M", "h245.audioWithAL3M",
15290 FT_BOOLEAN, BASE_NONE, NULL, 0,
15291 "BOOLEAN", HFILL }},
15292 { &hf_h245_dataWithAL1M,
15293 { "dataWithAL1M", "h245.dataWithAL1M",
15294 FT_BOOLEAN, BASE_NONE, NULL, 0,
15295 "BOOLEAN", HFILL }},
15296 { &hf_h245_dataWithAL2M,
15297 { "dataWithAL2M", "h245.dataWithAL2M",
15298 FT_BOOLEAN, BASE_NONE, NULL, 0,
15299 "BOOLEAN", HFILL }},
15300 { &hf_h245_dataWithAL3M,
15301 { "dataWithAL3M", "h245.dataWithAL3M",
15302 FT_BOOLEAN, BASE_NONE, NULL, 0,
15303 "BOOLEAN", HFILL }},
15304 { &hf_h245_alpduInterleaving,
15305 { "alpduInterleaving", "h245.alpduInterleaving",
15306 FT_BOOLEAN, BASE_NONE, NULL, 0,
15307 "BOOLEAN", HFILL }},
15308 { &hf_h245_maximumAL1MPDUSize,
15309 { "maximumAL1MPDUSize", "h245.maximumAL1MPDUSize",
15310 FT_UINT32, BASE_DEC, NULL, 0,
15311 "INTEGER_0_65535", HFILL }},
15312 { &hf_h245_maximumAL2MSDUSize,
15313 { "maximumAL2MSDUSize", "h245.maximumAL2MSDUSize",
15314 FT_UINT32, BASE_DEC, NULL, 0,
15315 "INTEGER_0_65535", HFILL }},
15316 { &hf_h245_maximumAL3MSDUSize,
15317 { "maximumAL3MSDUSize", "h245.maximumAL3MSDUSize",
15318 FT_UINT32, BASE_DEC, NULL, 0,
15319 "INTEGER_0_65535", HFILL }},
15320 { &hf_h245_rsCodeCapability,
15321 { "rsCodeCapability", "h245.rsCodeCapability",
15322 FT_BOOLEAN, BASE_NONE, NULL, 0,
15323 "BOOLEAN", HFILL }},
15324 { &hf_h245_suspendResumeCapabilitywAddress,
15325 { "suspendResumeCapabilitywAddress", "h245.suspendResumeCapabilitywAddress",
15326 FT_BOOLEAN, BASE_NONE, NULL, 0,
15327 "BOOLEAN", HFILL }},
15328 { &hf_h245_suspendResumeCapabilitywoAddress,
15329 { "suspendResumeCapabilitywoAddress", "h245.suspendResumeCapabilitywoAddress",
15330 FT_BOOLEAN, BASE_NONE, NULL, 0,
15331 "BOOLEAN", HFILL }},
15332 { &hf_h245_rejCapability,
15333 { "rejCapability", "h245.rejCapability",
15334 FT_BOOLEAN, BASE_NONE, NULL, 0,
15335 "BOOLEAN", HFILL }},
15336 { &hf_h245_sREJCapability,
15337 { "sREJCapability", "h245.sREJCapability",
15338 FT_BOOLEAN, BASE_NONE, NULL, 0,
15339 "BOOLEAN", HFILL }},
15340 { &hf_h245_mREJCapability,
15341 { "mREJCapability", "h245.mREJCapability",
15342 FT_BOOLEAN, BASE_NONE, NULL, 0,
15343 "BOOLEAN", HFILL }},
15344 { &hf_h245_crc8bitCapability,
15345 { "crc8bitCapability", "h245.crc8bitCapability",
15346 FT_BOOLEAN, BASE_NONE, NULL, 0,
15347 "BOOLEAN", HFILL }},
15348 { &hf_h245_crc16bitCapability,
15349 { "crc16bitCapability", "h245.crc16bitCapability",
15350 FT_BOOLEAN, BASE_NONE, NULL, 0,
15351 "BOOLEAN", HFILL }},
15352 { &hf_h245_crc32bitCapability,
15353 { "crc32bitCapability", "h245.crc32bitCapability",
15354 FT_BOOLEAN, BASE_NONE, NULL, 0,
15355 "BOOLEAN", HFILL }},
15356 { &hf_h245_uihCapability,
15357 { "uihCapability", "h245.uihCapability",
15358 FT_BOOLEAN, BASE_NONE, NULL, 0,
15359 "BOOLEAN", HFILL }},
15360 { &hf_h245_numOfDLCS,
15361 { "numOfDLCS", "h245.numOfDLCS",
15362 FT_UINT32, BASE_DEC, NULL, 0,
15363 "INTEGER_2_8191", HFILL }},
15364 { &hf_h245_twoOctetAddressFieldCapability,
15365 { "twoOctetAddressFieldCapability", "h245.twoOctetAddressFieldCapability",
15366 FT_BOOLEAN, BASE_NONE, NULL, 0,
15367 "BOOLEAN", HFILL }},
15368 { &hf_h245_loopBackTestCapability,
15369 { "loopBackTestCapability", "h245.loopBackTestCapability",
15370 FT_BOOLEAN, BASE_NONE, NULL, 0,
15371 "BOOLEAN", HFILL }},
15372 { &hf_h245_n401Capability,
15373 { "n401Capability", "h245.n401Capability",
15374 FT_UINT32, BASE_DEC, NULL, 0,
15375 "INTEGER_1_4095", HFILL }},
15376 { &hf_h245_maxWindowSizeCapability,
15377 { "maxWindowSizeCapability", "h245.maxWindowSizeCapability",
15378 FT_UINT32, BASE_DEC, NULL, 0,
15379 "INTEGER_1_127", HFILL }},
15380 { &hf_h245_v75Capability,
15381 { "v75Capability", "h245.v75Capability_element",
15382 FT_NONE, BASE_NONE, NULL, 0,
15383 NULL, HFILL }},
15384 { &hf_h245_audioHeader,
15385 { "audioHeader", "h245.audioHeader",
15386 FT_BOOLEAN, BASE_NONE, NULL, 0,
15387 "BOOLEAN", HFILL }},
15388 { &hf_h245_maximumAudioDelayJitter,
15389 { "maximumAudioDelayJitter", "h245.maximumAudioDelayJitter",
15390 FT_UINT32, BASE_DEC, NULL, 0,
15391 "INTEGER_0_1023", HFILL }},
15392 { &hf_h245_receiveMultipointCapability,
15393 { "receiveMultipointCapability", "h245.receiveMultipointCapability_element",
15394 FT_NONE, BASE_NONE, NULL, 0,
15395 "MultipointCapability", HFILL }},
15396 { &hf_h245_transmitMultipointCapability,
15397 { "transmitMultipointCapability", "h245.transmitMultipointCapability_element",
15398 FT_NONE, BASE_NONE, NULL, 0,
15399 "MultipointCapability", HFILL }},
15400 { &hf_h245_receiveAndTransmitMultipointCapability,
15401 { "receiveAndTransmitMultipointCapability", "h245.receiveAndTransmitMultipointCapability_element",
15402 FT_NONE, BASE_NONE, NULL, 0,
15403 "MultipointCapability", HFILL }},
15404 { &hf_h245_mcCapability,
15405 { "mcCapability", "h245.mcCapability_element",
15406 FT_NONE, BASE_NONE, NULL, 0,
15407 NULL, HFILL }},
15408 { &hf_h245_centralizedConferenceMC,
15409 { "centralizedConferenceMC", "h245.centralizedConferenceMC",
15410 FT_BOOLEAN, BASE_NONE, NULL, 0,
15411 "BOOLEAN", HFILL }},
15412 { &hf_h245_decentralizedConferenceMC,
15413 { "decentralizedConferenceMC", "h245.decentralizedConferenceMC",
15414 FT_BOOLEAN, BASE_NONE, NULL, 0,
15415 "BOOLEAN", HFILL }},
15416 { &hf_h245_rtcpVideoControlCapability,
15417 { "rtcpVideoControlCapability", "h245.rtcpVideoControlCapability",
15418 FT_BOOLEAN, BASE_NONE, NULL, 0,
15419 "BOOLEAN", HFILL }},
15420 { &hf_h245_mediaPacketizationCapability,
15421 { "mediaPacketizationCapability", "h245.mediaPacketizationCapability_element",
15422 FT_NONE, BASE_NONE, NULL, 0,
15423 NULL, HFILL }},
15424 { &hf_h245_transportCapability,
15425 { "transportCapability", "h245.transportCapability_element",
15426 FT_NONE, BASE_NONE, NULL, 0,
15427 NULL, HFILL }},
15428 { &hf_h245_redundancyEncodingCapability,
15429 { "redundancyEncodingCapability", "h245.redundancyEncodingCapability",
15430 FT_UINT32, BASE_DEC, NULL, 0,
15431 "SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability", HFILL }},
15432 { &hf_h245_redundancyEncodingCapability_item,
15433 { "RedundancyEncodingCapability", "h245.RedundancyEncodingCapability_element",
15434 FT_NONE, BASE_NONE, NULL, 0,
15435 NULL, HFILL }},
15436 { &hf_h245_logicalChannelSwitchingCapability,
15437 { "logicalChannelSwitchingCapability", "h245.logicalChannelSwitchingCapability",
15438 FT_BOOLEAN, BASE_NONE, NULL, 0,
15439 "BOOLEAN", HFILL }},
15440 { &hf_h245_t120DynamicPortCapability,
15441 { "t120DynamicPortCapability", "h245.t120DynamicPortCapability",
15442 FT_BOOLEAN, BASE_NONE, NULL, 0,
15443 "BOOLEAN", HFILL }},
15444 { &hf_h245_h261aVideoPacketization,
15445 { "h261aVideoPacketization", "h245.h261aVideoPacketization",
15446 FT_BOOLEAN, BASE_NONE, NULL, 0,
15447 "BOOLEAN", HFILL }},
15448 { &hf_h245_rtpPayloadTypes,
15449 { "rtpPayloadType", "h245.rtpPayloadTypes",
15450 FT_UINT32, BASE_DEC, NULL, 0,
15451 "SEQUENCE_SIZE_1_256_OF_RTPPayloadType", HFILL }},
15452 { &hf_h245_rtpPayloadTypes_item,
15453 { "RTPPayloadType", "h245.RTPPayloadType_element",
15454 FT_NONE, BASE_NONE, NULL, 0,
15455 NULL, HFILL }},
15456 { &hf_h245_qosMode,
15457 { "qosMode", "h245.qosMode",
15458 FT_UINT32, BASE_DEC, VALS(h245_QOSMode_vals), 0,
15459 NULL, HFILL }},
15460 { &hf_h245_tokenRate,
15461 { "tokenRate", "h245.tokenRate",
15462 FT_UINT32, BASE_DEC, NULL, 0,
15463 "INTEGER_1_4294967295", HFILL }},
15464 { &hf_h245_bucketSize,
15465 { "bucketSize", "h245.bucketSize",
15466 FT_UINT32, BASE_DEC, NULL, 0,
15467 "INTEGER_1_4294967295", HFILL }},
15468 { &hf_h245_peakRate,
15469 { "peakRate", "h245.peakRate",
15470 FT_UINT32, BASE_DEC, NULL, 0,
15471 "INTEGER_1_4294967295", HFILL }},
15472 { &hf_h245_minPoliced,
15473 { "minPoliced", "h245.minPoliced",
15474 FT_UINT32, BASE_DEC, NULL, 0,
15475 "INTEGER_1_4294967295", HFILL }},
15476 { &hf_h245_maxPktSize,
15477 { "maxPktSize", "h245.maxPktSize",
15478 FT_UINT32, BASE_DEC, NULL, 0,
15479 "INTEGER_1_4294967295", HFILL }},
15480 { &hf_h245_guaranteedQOS,
15481 { "guaranteedQOS", "h245.guaranteedQOS_element",
15482 FT_NONE, BASE_NONE, NULL, 0,
15483 NULL, HFILL }},
15484 { &hf_h245_controlledLoad,
15485 { "controlledLoad", "h245.controlledLoad_element",
15486 FT_NONE, BASE_NONE, NULL, 0,
15487 NULL, HFILL }},
15488 { &hf_h245_maxNTUSize,
15489 { "maxNTUSize", "h245.maxNTUSize",
15490 FT_UINT32, BASE_DEC, NULL, 0,
15491 "INTEGER_0_65535", HFILL }},
15492 { &hf_h245_atmUBR,
15493 { "atmUBR", "h245.atmUBR",
15494 FT_BOOLEAN, BASE_NONE, NULL, 0,
15495 "BOOLEAN", HFILL }},
15496 { &hf_h245_atmrtVBR,
15497 { "atmrtVBR", "h245.atmrtVBR",
15498 FT_BOOLEAN, BASE_NONE, NULL, 0,
15499 "BOOLEAN", HFILL }},
15500 { &hf_h245_atmnrtVBR,
15501 { "atmnrtVBR", "h245.atmnrtVBR",
15502 FT_BOOLEAN, BASE_NONE, NULL, 0,
15503 "BOOLEAN", HFILL }},
15504 { &hf_h245_atmABR,
15505 { "atmABR", "h245.atmABR",
15506 FT_BOOLEAN, BASE_NONE, NULL, 0,
15507 "BOOLEAN", HFILL }},
15508 { &hf_h245_atmCBR,
15509 { "atmCBR", "h245.atmCBR",
15510 FT_BOOLEAN, BASE_NONE, NULL, 0,
15511 "BOOLEAN", HFILL }},
15512 { &hf_h245_nonStandardParameter,
15513 { "nonStandardParameter", "h245.nonStandardParameter_element",
15514 FT_NONE, BASE_NONE, NULL, 0,
15515 NULL, HFILL }},
15516 { &hf_h245_value,
15517 { "value", "h245.value",
15518 FT_UINT32, BASE_DEC, NULL, 0,
15519 "INTEGER_0_255", HFILL }},
15520 { &hf_h245_servicePrioritySignalled,
15521 { "servicePrioritySignalled", "h245.servicePrioritySignalled",
15522 FT_BOOLEAN, BASE_NONE, NULL, 0,
15523 "BOOLEAN", HFILL }},
15524 { &hf_h245_servicePriorityValue,
15525 { "servicePriorityValue", "h245.servicePriorityValue_element",
15526 FT_NONE, BASE_NONE, NULL, 0,
15527 NULL, HFILL }},
15528 { &hf_h245_serviceClass,
15529 { "serviceClass", "h245.serviceClass",
15530 FT_UINT32, BASE_DEC, NULL, 0,
15531 "INTEGER_0_4095", HFILL }},
15532 { &hf_h245_serviceSubclass,
15533 { "serviceSubclass", "h245.serviceSubclass",
15534 FT_UINT32, BASE_DEC, NULL, 0,
15535 "INTEGER_0_255", HFILL }},
15536 { &hf_h245_desired,
15537 { "desired", "h245.desired_element",
15538 FT_NONE, BASE_NONE, NULL, 0,
15539 NULL, HFILL }},
15540 { &hf_h245_required,
15541 { "required", "h245.required_element",
15542 FT_NONE, BASE_NONE, NULL, 0,
15543 NULL, HFILL }},
15544 { &hf_h245_class0,
15545 { "class0", "h245.class0_element",
15546 FT_NONE, BASE_NONE, NULL, 0,
15547 NULL, HFILL }},
15548 { &hf_h245_class1,
15549 { "class1", "h245.class1_element",
15550 FT_NONE, BASE_NONE, NULL, 0,
15551 NULL, HFILL }},
15552 { &hf_h245_class2,
15553 { "class2", "h245.class2_element",
15554 FT_NONE, BASE_NONE, NULL, 0,
15555 NULL, HFILL }},
15556 { &hf_h245_class3,
15557 { "class3", "h245.class3_element",
15558 FT_NONE, BASE_NONE, NULL, 0,
15559 NULL, HFILL }},
15560 { &hf_h245_class4,
15561 { "class4", "h245.class4_element",
15562 FT_NONE, BASE_NONE, NULL, 0,
15563 NULL, HFILL }},
15564 { &hf_h245_class5,
15565 { "class5", "h245.class5_element",
15566 FT_NONE, BASE_NONE, NULL, 0,
15567 NULL, HFILL }},
15568 { &hf_h245_qosType,
15569 { "qosType", "h245.qosType",
15570 FT_UINT32, BASE_DEC, VALS(h245_QOSType_vals), 0,
15571 NULL, HFILL }},
15572 { &hf_h245_qosClass,
15573 { "qosClass", "h245.qosClass",
15574 FT_UINT32, BASE_DEC, VALS(h245_QOSClass_vals), 0,
15575 NULL, HFILL }},
15576 { &hf_h245_averageRate,
15577 { "averageRate", "h245.averageRate",
15578 FT_UINT32, BASE_DEC, NULL, 0,
15579 "INTEGER_1_4294967295", HFILL }},
15580 { &hf_h245_burst,
15581 { "burst", "h245.burst",
15582 FT_UINT32, BASE_DEC, NULL, 0,
15583 "INTEGER_1_4294967295", HFILL }},
15584 { &hf_h245_rsvpParameters,
15585 { "rsvpParameters", "h245.rsvpParameters_element",
15586 FT_NONE, BASE_NONE, NULL, 0,
15587 NULL, HFILL }},
15588 { &hf_h245_atmParameters,
15589 { "atmParameters", "h245.atmParameters_element",
15590 FT_NONE, BASE_NONE, NULL, 0,
15591 NULL, HFILL }},
15592 { &hf_h245_localQoS,
15593 { "localQoS", "h245.localQoS",
15594 FT_BOOLEAN, BASE_NONE, NULL, 0,
15595 "BOOLEAN", HFILL }},
15596 { &hf_h245_genericTransportParameters,
15597 { "genericTransportParameters", "h245.genericTransportParameters_element",
15598 FT_NONE, BASE_NONE, NULL, 0,
15599 NULL, HFILL }},
15600 { &hf_h245_servicePriority,
15601 { "servicePriority", "h245.servicePriority_element",
15602 FT_NONE, BASE_NONE, NULL, 0,
15603 NULL, HFILL }},
15604 { &hf_h245_authorizationParameter,
15605 { "authorizationParameter", "h245.authorizationParameter_element",
15606 FT_NONE, BASE_NONE, NULL, 0,
15607 "AuthorizationParameters", HFILL }},
15608 { &hf_h245_qosDescriptor,
15609 { "qosDescriptor", "h245.qosDescriptor_element",
15610 FT_NONE, BASE_NONE, NULL, 0,
15611 NULL, HFILL }},
15612 { &hf_h245_dscpValue,
15613 { "dscpValue", "h245.dscpValue",
15614 FT_UINT32, BASE_DEC, NULL, 0,
15615 "INTEGER_0_63", HFILL }},
15616 { &hf_h245_ip_UDP,
15617 { "ip-UDP", "h245.ip_UDP_element",
15618 FT_NONE, BASE_NONE, NULL, 0,
15619 NULL, HFILL }},
15620 { &hf_h245_ip_TCP,
15621 { "ip-TCP", "h245.ip_TCP_element",
15622 FT_NONE, BASE_NONE, NULL, 0,
15623 NULL, HFILL }},
15624 { &hf_h245_atm_AAL5_UNIDIR,
15625 { "atm-AAL5-UNIDIR", "h245.atm_AAL5_UNIDIR_element",
15626 FT_NONE, BASE_NONE, NULL, 0,
15627 NULL, HFILL }},
15628 { &hf_h245_atm_AAL5_BIDIR,
15629 { "atm-AAL5-BIDIR", "h245.atm_AAL5_BIDIR_element",
15630 FT_NONE, BASE_NONE, NULL, 0,
15631 NULL, HFILL }},
15632 { &hf_h245_atm_AAL5_compressed,
15633 { "atm-AAL5-compressed", "h245.atm_AAL5_compressed_element",
15634 FT_NONE, BASE_NONE, NULL, 0,
15635 NULL, HFILL }},
15636 { &hf_h245_variable_delta,
15637 { "variable-delta", "h245.variable_delta",
15638 FT_BOOLEAN, BASE_NONE, NULL, 0,
15639 "BOOLEAN", HFILL }},
15640 { &hf_h245_mediaTransport,
15641 { "mediaTransport", "h245.mediaTransport",
15642 FT_UINT32, BASE_DEC, VALS(h245_MediaTransportType_vals), 0,
15643 "MediaTransportType", HFILL }},
15644 { &hf_h245_qOSCapabilities,
15645 { "qOSCapabilities", "h245.qOSCapabilities",
15646 FT_UINT32, BASE_DEC, NULL, 0,
15647 "SEQUENCE_SIZE_1_256_OF_QOSCapability", HFILL }},
15648 { &hf_h245_qOSCapabilities_item,
15649 { "QOSCapability", "h245.QOSCapability_element",
15650 FT_NONE, BASE_NONE, NULL, 0,
15651 NULL, HFILL }},
15652 { &hf_h245_mediaChannelCapabilities,
15653 { "mediaChannelCapabilities", "h245.mediaChannelCapabilities",
15654 FT_UINT32, BASE_DEC, NULL, 0,
15655 "SEQUENCE_SIZE_1_256_OF_MediaChannelCapability", HFILL }},
15656 { &hf_h245_mediaChannelCapabilities_item,
15657 { "MediaChannelCapability", "h245.MediaChannelCapability_element",
15658 FT_NONE, BASE_NONE, NULL, 0,
15659 NULL, HFILL }},
15660 { &hf_h245_redundancyEncodingMethod,
15661 { "redundancyEncodingMethod", "h245.redundancyEncodingMethod",
15662 FT_UINT32, BASE_DEC, VALS(h245_RedundancyEncodingMethod_vals), 0,
15663 NULL, HFILL }},
15664 { &hf_h245_primaryEncoding,
15665 { "primaryEncoding", "h245.primaryEncoding",
15666 FT_UINT32, BASE_DEC, NULL, 0,
15667 "CapabilityTableEntryNumber", HFILL }},
15668 { &hf_h245_secondaryEncodingCapability,
15669 { "secondaryEncoding", "h245.secondaryEncodingCapability",
15670 FT_UINT32, BASE_DEC, NULL, 0,
15671 "SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber", HFILL }},
15672 { &hf_h245_secondaryEncodingCapability_item,
15673 { "CapabilityTableEntryNumber", "h245.CapabilityTableEntryNumber",
15674 FT_UINT32, BASE_DEC, NULL, 0,
15675 NULL, HFILL }},
15676 { &hf_h245_rtpAudioRedundancyEncoding,
15677 { "rtpAudioRedundancyEncoding", "h245.rtpAudioRedundancyEncoding_element",
15678 FT_NONE, BASE_NONE, NULL, 0,
15679 NULL, HFILL }},
15680 { &hf_h245_rtpH263VideoRedundancyEncoding,
15681 { "rtpH263VideoRedundancyEncoding", "h245.rtpH263VideoRedundancyEncoding_element",
15682 FT_NONE, BASE_NONE, NULL, 0,
15683 NULL, HFILL }},
15684 { &hf_h245_numberOfThreads,
15685 { "numberOfThreads", "h245.numberOfThreads",
15686 FT_UINT32, BASE_DEC, NULL, 0,
15687 "INTEGER_1_16", HFILL }},
15688 { &hf_h245_framesBetweenSyncPoints,
15689 { "framesBetweenSyncPoints", "h245.framesBetweenSyncPoints",
15690 FT_UINT32, BASE_DEC, NULL, 0,
15691 "INTEGER_1_256", HFILL }},
15692 { &hf_h245_frameToThreadMapping,
15693 { "frameToThreadMapping", "h245.frameToThreadMapping",
15694 FT_UINT32, BASE_DEC, VALS(h245_T_frameToThreadMapping_vals), 0,
15695 NULL, HFILL }},
15696 { &hf_h245_roundrobin,
15697 { "roundrobin", "h245.roundrobin_element",
15698 FT_NONE, BASE_NONE, NULL, 0,
15699 NULL, HFILL }},
15700 { &hf_h245_custom,
15701 { "custom", "h245.custom",
15702 FT_UINT32, BASE_DEC, NULL, 0,
15703 "SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping", HFILL }},
15704 { &hf_h245_custom_item,
15705 { "RTPH263VideoRedundancyFrameMapping", "h245.RTPH263VideoRedundancyFrameMapping_element",
15706 FT_NONE, BASE_NONE, NULL, 0,
15707 NULL, HFILL }},
15708 { &hf_h245_containedThreads,
15709 { "containedThreads", "h245.containedThreads",
15710 FT_UINT32, BASE_DEC, NULL, 0,
15711 NULL, HFILL }},
15712 { &hf_h245_containedThreads_item,
15713 { "containedThreads item", "h245.containedThreads_item",
15714 FT_UINT32, BASE_DEC, NULL, 0,
15715 "INTEGER_0_15", HFILL }},
15716 { &hf_h245_threadNumber,
15717 { "threadNumber", "h245.threadNumber",
15718 FT_UINT32, BASE_DEC, NULL, 0,
15719 "INTEGER_0_15", HFILL }},
15720 { &hf_h245_frameSequence,
15721 { "frameSequence", "h245.frameSequence",
15722 FT_UINT32, BASE_DEC, NULL, 0,
15723 NULL, HFILL }},
15724 { &hf_h245_frameSequence_item,
15725 { "frameSequence item", "h245.frameSequence_item",
15726 FT_UINT32, BASE_DEC, NULL, 0,
15727 "INTEGER_0_255", HFILL }},
15728 { &hf_h245_multicastCapability,
15729 { "multicastCapability", "h245.multicastCapability",
15730 FT_BOOLEAN, BASE_NONE, NULL, 0,
15731 "BOOLEAN", HFILL }},
15732 { &hf_h245_multiUniCastConference,
15733 { "multiUniCastConference", "h245.multiUniCastConference",
15734 FT_BOOLEAN, BASE_NONE, NULL, 0,
15735 "BOOLEAN", HFILL }},
15736 { &hf_h245_mediaDistributionCapability,
15737 { "mediaDistributionCapability", "h245.mediaDistributionCapability",
15738 FT_UINT32, BASE_DEC, NULL, 0,
15739 "SEQUENCE_OF_MediaDistributionCapability", HFILL }},
15740 { &hf_h245_mediaDistributionCapability_item,
15741 { "MediaDistributionCapability", "h245.MediaDistributionCapability_element",
15742 FT_NONE, BASE_NONE, NULL, 0,
15743 NULL, HFILL }},
15744 { &hf_h245_centralizedControl,
15745 { "centralizedControl", "h245.centralizedControl",
15746 FT_BOOLEAN, BASE_NONE, NULL, 0,
15747 "BOOLEAN", HFILL }},
15748 { &hf_h245_distributedControl,
15749 { "distributedControl", "h245.distributedControl",
15750 FT_BOOLEAN, BASE_NONE, NULL, 0,
15751 "BOOLEAN", HFILL }},
15752 { &hf_h245_centralizedAudio,
15753 { "centralizedAudio", "h245.centralizedAudio",
15754 FT_BOOLEAN, BASE_NONE, NULL, 0,
15755 "BOOLEAN", HFILL }},
15756 { &hf_h245_distributedAudio,
15757 { "distributedAudio", "h245.distributedAudio",
15758 FT_BOOLEAN, BASE_NONE, NULL, 0,
15759 "BOOLEAN", HFILL }},
15760 { &hf_h245_centralizedVideo,
15761 { "centralizedVideo", "h245.centralizedVideo",
15762 FT_BOOLEAN, BASE_NONE, NULL, 0,
15763 "BOOLEAN", HFILL }},
15764 { &hf_h245_distributedVideo,
15765 { "distributedVideo", "h245.distributedVideo",
15766 FT_BOOLEAN, BASE_NONE, NULL, 0,
15767 "BOOLEAN", HFILL }},
15768 { &hf_h245_centralizedData,
15769 { "centralizedData", "h245.centralizedData",
15770 FT_UINT32, BASE_DEC, NULL, 0,
15771 "SEQUENCE_OF_DataApplicationCapability", HFILL }},
15772 { &hf_h245_centralizedData_item,
15773 { "DataApplicationCapability", "h245.DataApplicationCapability_element",
15774 FT_NONE, BASE_NONE, NULL, 0,
15775 NULL, HFILL }},
15776 { &hf_h245_distributedData,
15777 { "distributedData", "h245.distributedData",
15778 FT_UINT32, BASE_DEC, NULL, 0,
15779 "SEQUENCE_OF_DataApplicationCapability", HFILL }},
15780 { &hf_h245_distributedData_item,
15781 { "DataApplicationCapability", "h245.DataApplicationCapability_element",
15782 FT_NONE, BASE_NONE, NULL, 0,
15783 NULL, HFILL }},
15784 { &hf_h245_h261VideoCapability,
15785 { "h261VideoCapability", "h245.h261VideoCapability_element",
15786 FT_NONE, BASE_NONE, NULL, 0,
15787 NULL, HFILL }},
15788 { &hf_h245_h262VideoCapability,
15789 { "h262VideoCapability", "h245.h262VideoCapability_element",
15790 FT_NONE, BASE_NONE, NULL, 0,
15791 NULL, HFILL }},
15792 { &hf_h245_h263VideoCapability,
15793 { "h263VideoCapability", "h245.h263VideoCapability_element",
15794 FT_NONE, BASE_NONE, NULL, 0,
15795 NULL, HFILL }},
15796 { &hf_h245_is11172VideoCapability,
15797 { "is11172VideoCapability", "h245.is11172VideoCapability_element",
15798 FT_NONE, BASE_NONE, NULL, 0,
15799 NULL, HFILL }},
15800 { &hf_h245_genericVideoCapability,
15801 { "genericVideoCapability", "h245.genericVideoCapability_element",
15802 FT_NONE, BASE_NONE, NULL, 0,
15803 "GenericCapability", HFILL }},
15804 { &hf_h245_extendedVideoCapability,
15805 { "extendedVideoCapability", "h245.extendedVideoCapability_element",
15806 FT_NONE, BASE_NONE, NULL, 0,
15807 NULL, HFILL }},
15808 { &hf_h245_videoCapability,
15809 { "videoCapability", "h245.videoCapability",
15810 FT_UINT32, BASE_DEC, NULL, 0,
15811 "SEQUENCE_OF_VideoCapability", HFILL }},
15812 { &hf_h245_videoCapability_item,
15813 { "VideoCapability", "h245.VideoCapability",
15814 FT_UINT32, BASE_DEC, VALS(h245_VideoCapability_vals), 0,
15815 NULL, HFILL }},
15816 { &hf_h245_videoCapabilityExtension,
15817 { "videoCapabilityExtension", "h245.videoCapabilityExtension",
15818 FT_UINT32, BASE_DEC, NULL, 0,
15819 "SEQUENCE_OF_GenericCapability", HFILL }},
15820 { &hf_h245_videoCapabilityExtension_item,
15821 { "GenericCapability", "h245.GenericCapability_element",
15822 FT_NONE, BASE_NONE, NULL, 0,
15823 NULL, HFILL }},
15824 { &hf_h245_qcifMPI_1_4,
15825 { "qcifMPI", "h245.qcifMPI_1_4",
15826 FT_UINT32, BASE_DEC, NULL, 0,
15827 "INTEGER_1_4", HFILL }},
15828 { &hf_h245_cifMPI_1_4,
15829 { "cifMPI", "h245.cifMPI_1_4",
15830 FT_UINT32, BASE_DEC, NULL, 0,
15831 "INTEGER_1_4", HFILL }},
15832 { &hf_h245_temporalSpatialTradeOffCapability,
15833 { "temporalSpatialTradeOffCapability", "h245.temporalSpatialTradeOffCapability",
15834 FT_BOOLEAN, BASE_NONE, NULL, 0,
15835 "BOOLEAN", HFILL }},
15836 { &hf_h245_maxBitRate_1_19200,
15837 { "maxBitRate", "h245.maxBitRate_1_19200",
15838 FT_UINT32, BASE_DEC, NULL, 0,
15839 "INTEGER_1_19200", HFILL }},
15840 { &hf_h245_stillImageTransmission,
15841 { "stillImageTransmission", "h245.stillImageTransmission",
15842 FT_BOOLEAN, BASE_NONE, NULL, 0,
15843 "BOOLEAN", HFILL }},
15844 { &hf_h245_videoBadMBsCap,
15845 { "videoBadMBsCap", "h245.videoBadMBsCap",
15846 FT_BOOLEAN, BASE_NONE, NULL, 0,
15847 "BOOLEAN", HFILL }},
15848 { &hf_h245_profileAndLevel_SPatML,
15849 { "profileAndLevel-SPatML", "h245.profileAndLevel_SPatML",
15850 FT_BOOLEAN, BASE_NONE, NULL, 0,
15851 "BOOLEAN", HFILL }},
15852 { &hf_h245_profileAndLevel_MPatLL,
15853 { "profileAndLevel-MPatLL", "h245.profileAndLevel_MPatLL",
15854 FT_BOOLEAN, BASE_NONE, NULL, 0,
15855 "BOOLEAN", HFILL }},
15856 { &hf_h245_profileAndLevel_MPatML,
15857 { "profileAndLevel-MPatML", "h245.profileAndLevel_MPatML",
15858 FT_BOOLEAN, BASE_NONE, NULL, 0,
15859 "BOOLEAN", HFILL }},
15860 { &hf_h245_profileAndLevel_MPatH_14,
15861 { "profileAndLevel-MPatH-14", "h245.profileAndLevel_MPatH_14",
15862 FT_BOOLEAN, BASE_NONE, NULL, 0,
15863 "BOOLEAN", HFILL }},
15864 { &hf_h245_profileAndLevel_MPatHL,
15865 { "profileAndLevel-MPatHL", "h245.profileAndLevel_MPatHL",
15866 FT_BOOLEAN, BASE_NONE, NULL, 0,
15867 "BOOLEAN", HFILL }},
15868 { &hf_h245_profileAndLevel_SNRatLL,
15869 { "profileAndLevel-SNRatLL", "h245.profileAndLevel_SNRatLL",
15870 FT_BOOLEAN, BASE_NONE, NULL, 0,
15871 "BOOLEAN", HFILL }},
15872 { &hf_h245_profileAndLevel_SNRatML,
15873 { "profileAndLevel-SNRatML", "h245.profileAndLevel_SNRatML",
15874 FT_BOOLEAN, BASE_NONE, NULL, 0,
15875 "BOOLEAN", HFILL }},
15876 { &hf_h245_profileAndLevel_SpatialatH_14,
15877 { "profileAndLevel-SpatialatH-14", "h245.profileAndLevel_SpatialatH_14",
15878 FT_BOOLEAN, BASE_NONE, NULL, 0,
15879 "BOOLEAN", HFILL }},
15880 { &hf_h245_profileAndLevel_HPatML,
15881 { "profileAndLevel-HPatML", "h245.profileAndLevel_HPatML",
15882 FT_BOOLEAN, BASE_NONE, NULL, 0,
15883 "BOOLEAN", HFILL }},
15884 { &hf_h245_profileAndLevel_HPatH_14,
15885 { "profileAndLevel-HPatH-14", "h245.profileAndLevel_HPatH_14",
15886 FT_BOOLEAN, BASE_NONE, NULL, 0,
15887 "BOOLEAN", HFILL }},
15888 { &hf_h245_profileAndLevel_HPatHL,
15889 { "profileAndLevel-HPatHL", "h245.profileAndLevel_HPatHL",
15890 FT_BOOLEAN, BASE_NONE, NULL, 0,
15891 "BOOLEAN", HFILL }},
15892 { &hf_h245_videoBitRate,
15893 { "videoBitRate", "h245.videoBitRate",
15894 FT_UINT32, BASE_DEC, NULL, 0,
15895 "INTEGER_0_1073741823", HFILL }},
15896 { &hf_h245_vbvBufferSize,
15897 { "vbvBufferSize", "h245.vbvBufferSize",
15898 FT_UINT32, BASE_DEC, NULL, 0,
15899 "INTEGER_0_262143", HFILL }},
15900 { &hf_h245_samplesPerLine,
15901 { "samplesPerLine", "h245.samplesPerLine",
15902 FT_UINT32, BASE_DEC, NULL, 0,
15903 "INTEGER_0_16383", HFILL }},
15904 { &hf_h245_linesPerFrame,
15905 { "linesPerFrame", "h245.linesPerFrame",
15906 FT_UINT32, BASE_DEC, NULL, 0,
15907 "INTEGER_0_16383", HFILL }},
15908 { &hf_h245_framesPerSecond,
15909 { "framesPerSecond", "h245.framesPerSecond",
15910 FT_UINT32, BASE_DEC, NULL, 0,
15911 "INTEGER_0_15", HFILL }},
15912 { &hf_h245_luminanceSampleRate,
15913 { "luminanceSampleRate", "h245.luminanceSampleRate",
15914 FT_UINT32, BASE_DEC, NULL, 0,
15915 "INTEGER_0_4294967295", HFILL }},
15916 { &hf_h245_sqcifMPI_1_32,
15917 { "sqcifMPI", "h245.sqcifMPI_1_32",
15918 FT_UINT32, BASE_DEC, NULL, 0,
15919 "INTEGER_1_32", HFILL }},
15920 { &hf_h245_qcifMPI,
15921 { "qcifMPI", "h245.qcifMPI",
15922 FT_UINT32, BASE_DEC, NULL, 0,
15923 "INTEGER_1_32", HFILL }},
15924 { &hf_h245_cifMPI,
15925 { "cifMPI", "h245.cifMPI",
15926 FT_UINT32, BASE_DEC, NULL, 0,
15927 "INTEGER_1_32", HFILL }},
15928 { &hf_h245_cif4MPI_1_32,
15929 { "cif4MPI", "h245.cif4MPI_1_32",
15930 FT_UINT32, BASE_DEC, NULL, 0,
15931 "INTEGER_1_32", HFILL }},
15932 { &hf_h245_cif16MPI_1_32,
15933 { "cif16MPI", "h245.cif16MPI_1_32",
15934 FT_UINT32, BASE_DEC, NULL, 0,
15935 "INTEGER_1_32", HFILL }},
15936 { &hf_h245_maxBitRate,
15937 { "maxBitRate", "h245.maxBitRate",
15938 FT_UINT32, BASE_DEC, NULL, 0,
15939 "INTEGER_1_192400", HFILL }},
15940 { &hf_h245_unrestrictedVector,
15941 { "unrestrictedVector", "h245.unrestrictedVector",
15942 FT_BOOLEAN, BASE_NONE, NULL, 0,
15943 "BOOLEAN", HFILL }},
15944 { &hf_h245_arithmeticCoding,
15945 { "arithmeticCoding", "h245.arithmeticCoding",
15946 FT_BOOLEAN, BASE_NONE, NULL, 0,
15947 "BOOLEAN", HFILL }},
15948 { &hf_h245_advancedPrediction,
15949 { "advancedPrediction", "h245.advancedPrediction",
15950 FT_BOOLEAN, BASE_NONE, NULL, 0,
15951 "BOOLEAN", HFILL }},
15952 { &hf_h245_pbFrames,
15953 { "pbFrames", "h245.pbFrames",
15954 FT_BOOLEAN, BASE_NONE, NULL, 0,
15955 "BOOLEAN", HFILL }},
15956 { &hf_h245_hrd_B,
15957 { "hrd-B", "h245.hrd_B",
15958 FT_UINT32, BASE_DEC, NULL, 0,
15959 "INTEGER_0_524287", HFILL }},
15960 { &hf_h245_bppMaxKb,
15961 { "bppMaxKb", "h245.bppMaxKb",
15962 FT_UINT32, BASE_DEC, NULL, 0,
15963 "INTEGER_0_65535", HFILL }},
15964 { &hf_h245_slowSqcifMPI,
15965 { "slowSqcifMPI", "h245.slowSqcifMPI",
15966 FT_UINT32, BASE_DEC, NULL, 0,
15967 "INTEGER_1_3600", HFILL }},
15968 { &hf_h245_slowQcifMPI,
15969 { "slowQcifMPI", "h245.slowQcifMPI",
15970 FT_UINT32, BASE_DEC, NULL, 0,
15971 "INTEGER_1_3600", HFILL }},
15972 { &hf_h245_slowCifMPI,
15973 { "slowCifMPI", "h245.slowCifMPI",
15974 FT_UINT32, BASE_DEC, NULL, 0,
15975 "INTEGER_1_3600", HFILL }},
15976 { &hf_h245_slowCif4MPI,
15977 { "slowCif4MPI", "h245.slowCif4MPI",
15978 FT_UINT32, BASE_DEC, NULL, 0,
15979 "INTEGER_1_3600", HFILL }},
15980 { &hf_h245_slowCif16MPI,
15981 { "slowCif16MPI", "h245.slowCif16MPI",
15982 FT_UINT32, BASE_DEC, NULL, 0,
15983 "INTEGER_1_3600", HFILL }},
15984 { &hf_h245_errorCompensation,
15985 { "errorCompensation", "h245.errorCompensation",
15986 FT_BOOLEAN, BASE_NONE, NULL, 0,
15987 "BOOLEAN", HFILL }},
15988 { &hf_h245_enhancementLayerInfo,
15989 { "enhancementLayerInfo", "h245.enhancementLayerInfo_element",
15990 FT_NONE, BASE_NONE, NULL, 0,
15991 NULL, HFILL }},
15992 { &hf_h245_h263Options,
15993 { "h263Options", "h245.h263Options_element",
15994 FT_NONE, BASE_NONE, NULL, 0,
15995 NULL, HFILL }},
15996 { &hf_h245_baseBitRateConstrained,
15997 { "baseBitRateConstrained", "h245.baseBitRateConstrained",
15998 FT_BOOLEAN, BASE_NONE, NULL, 0,
15999 "BOOLEAN", HFILL }},
16000 { &hf_h245_snrEnhancement,
16001 { "snrEnhancement", "h245.snrEnhancement",
16002 FT_UINT32, BASE_DEC, NULL, 0,
16003 "SET_SIZE_1_14_OF_EnhancementOptions", HFILL }},
16004 { &hf_h245_snrEnhancement_item,
16005 { "EnhancementOptions", "h245.EnhancementOptions_element",
16006 FT_NONE, BASE_NONE, NULL, 0,
16007 NULL, HFILL }},
16008 { &hf_h245_spatialEnhancement,
16009 { "spatialEnhancement", "h245.spatialEnhancement",
16010 FT_UINT32, BASE_DEC, NULL, 0,
16011 "SET_SIZE_1_14_OF_EnhancementOptions", HFILL }},
16012 { &hf_h245_spatialEnhancement_item,
16013 { "EnhancementOptions", "h245.EnhancementOptions_element",
16014 FT_NONE, BASE_NONE, NULL, 0,
16015 NULL, HFILL }},
16016 { &hf_h245_bPictureEnhancement,
16017 { "bPictureEnhancement", "h245.bPictureEnhancement",
16018 FT_UINT32, BASE_DEC, NULL, 0,
16019 "SET_SIZE_1_14_OF_BEnhancementParameters", HFILL }},
16020 { &hf_h245_bPictureEnhancement_item,
16021 { "BEnhancementParameters", "h245.BEnhancementParameters_element",
16022 FT_NONE, BASE_NONE, NULL, 0,
16023 NULL, HFILL }},
16024 { &hf_h245_enhancementOptions,
16025 { "enhancementOptions", "h245.enhancementOptions_element",
16026 FT_NONE, BASE_NONE, NULL, 0,
16027 NULL, HFILL }},
16028 { &hf_h245_numberOfBPictures,
16029 { "numberOfBPictures", "h245.numberOfBPictures",
16030 FT_UINT32, BASE_DEC, NULL, 0,
16031 "INTEGER_1_64", HFILL }},
16032 { &hf_h245_advancedIntraCodingMode,
16033 { "advancedIntraCodingMode", "h245.advancedIntraCodingMode",
16034 FT_BOOLEAN, BASE_NONE, NULL, 0,
16035 "BOOLEAN", HFILL }},
16036 { &hf_h245_deblockingFilterMode,
16037 { "deblockingFilterMode", "h245.deblockingFilterMode",
16038 FT_BOOLEAN, BASE_NONE, NULL, 0,
16039 "BOOLEAN", HFILL }},
16040 { &hf_h245_improvedPBFramesMode,
16041 { "improvedPBFramesMode", "h245.improvedPBFramesMode",
16042 FT_BOOLEAN, BASE_NONE, NULL, 0,
16043 "BOOLEAN", HFILL }},
16044 { &hf_h245_unlimitedMotionVectors,
16045 { "unlimitedMotionVectors", "h245.unlimitedMotionVectors",
16046 FT_BOOLEAN, BASE_NONE, NULL, 0,
16047 "BOOLEAN", HFILL }},
16048 { &hf_h245_fullPictureFreeze,
16049 { "fullPictureFreeze", "h245.fullPictureFreeze",
16050 FT_BOOLEAN, BASE_NONE, NULL, 0,
16051 "BOOLEAN", HFILL }},
16052 { &hf_h245_partialPictureFreezeAndRelease,
16053 { "partialPictureFreezeAndRelease", "h245.partialPictureFreezeAndRelease",
16054 FT_BOOLEAN, BASE_NONE, NULL, 0,
16055 "BOOLEAN", HFILL }},
16056 { &hf_h245_resizingPartPicFreezeAndRelease,
16057 { "resizingPartPicFreezeAndRelease", "h245.resizingPartPicFreezeAndRelease",
16058 FT_BOOLEAN, BASE_NONE, NULL, 0,
16059 "BOOLEAN", HFILL }},
16060 { &hf_h245_fullPictureSnapshot,
16061 { "fullPictureSnapshot", "h245.fullPictureSnapshot",
16062 FT_BOOLEAN, BASE_NONE, NULL, 0,
16063 "BOOLEAN", HFILL }},
16064 { &hf_h245_partialPictureSnapshot,
16065 { "partialPictureSnapshot", "h245.partialPictureSnapshot",
16066 FT_BOOLEAN, BASE_NONE, NULL, 0,
16067 "BOOLEAN", HFILL }},
16068 { &hf_h245_videoSegmentTagging,
16069 { "videoSegmentTagging", "h245.videoSegmentTagging",
16070 FT_BOOLEAN, BASE_NONE, NULL, 0,
16071 "BOOLEAN", HFILL }},
16072 { &hf_h245_progressiveRefinement,
16073 { "progressiveRefinement", "h245.progressiveRefinement",
16074 FT_BOOLEAN, BASE_NONE, NULL, 0,
16075 "BOOLEAN", HFILL }},
16076 { &hf_h245_dynamicPictureResizingByFour,
16077 { "dynamicPictureResizingByFour", "h245.dynamicPictureResizingByFour",
16078 FT_BOOLEAN, BASE_NONE, NULL, 0,
16079 "BOOLEAN", HFILL }},
16080 { &hf_h245_dynamicPictureResizingSixteenthPel,
16081 { "dynamicPictureResizingSixteenthPel", "h245.dynamicPictureResizingSixteenthPel",
16082 FT_BOOLEAN, BASE_NONE, NULL, 0,
16083 "BOOLEAN", HFILL }},
16084 { &hf_h245_dynamicWarpingHalfPel,
16085 { "dynamicWarpingHalfPel", "h245.dynamicWarpingHalfPel",
16086 FT_BOOLEAN, BASE_NONE, NULL, 0,
16087 "BOOLEAN", HFILL }},
16088 { &hf_h245_dynamicWarpingSixteenthPel,
16089 { "dynamicWarpingSixteenthPel", "h245.dynamicWarpingSixteenthPel",
16090 FT_BOOLEAN, BASE_NONE, NULL, 0,
16091 "BOOLEAN", HFILL }},
16092 { &hf_h245_independentSegmentDecoding,
16093 { "independentSegmentDecoding", "h245.independentSegmentDecoding",
16094 FT_BOOLEAN, BASE_NONE, NULL, 0,
16095 "BOOLEAN", HFILL }},
16096 { &hf_h245_slicesInOrder_NonRect,
16097 { "slicesInOrder-NonRect", "h245.slicesInOrder_NonRect",
16098 FT_BOOLEAN, BASE_NONE, NULL, 0,
16099 "BOOLEAN", HFILL }},
16100 { &hf_h245_slicesInOrder_Rect,
16101 { "slicesInOrder-Rect", "h245.slicesInOrder_Rect",
16102 FT_BOOLEAN, BASE_NONE, NULL, 0,
16103 "BOOLEAN", HFILL }},
16104 { &hf_h245_slicesNoOrder_NonRect,
16105 { "slicesNoOrder-NonRect", "h245.slicesNoOrder_NonRect",
16106 FT_BOOLEAN, BASE_NONE, NULL, 0,
16107 "BOOLEAN", HFILL }},
16108 { &hf_h245_slicesNoOrder_Rect,
16109 { "slicesNoOrder-Rect", "h245.slicesNoOrder_Rect",
16110 FT_BOOLEAN, BASE_NONE, NULL, 0,
16111 "BOOLEAN", HFILL }},
16112 { &hf_h245_alternateInterVLCMode,
16113 { "alternateInterVLCMode", "h245.alternateInterVLCMode",
16114 FT_BOOLEAN, BASE_NONE, NULL, 0,
16115 "BOOLEAN", HFILL }},
16116 { &hf_h245_modifiedQuantizationMode,
16117 { "modifiedQuantizationMode", "h245.modifiedQuantizationMode",
16118 FT_BOOLEAN, BASE_NONE, NULL, 0,
16119 "BOOLEAN", HFILL }},
16120 { &hf_h245_reducedResolutionUpdate,
16121 { "reducedResolutionUpdate", "h245.reducedResolutionUpdate",
16122 FT_BOOLEAN, BASE_NONE, NULL, 0,
16123 "BOOLEAN", HFILL }},
16124 { &hf_h245_transparencyParameters,
16125 { "transparencyParameters", "h245.transparencyParameters_element",
16126 FT_NONE, BASE_NONE, NULL, 0,
16127 NULL, HFILL }},
16128 { &hf_h245_separateVideoBackChannel,
16129 { "separateVideoBackChannel", "h245.separateVideoBackChannel",
16130 FT_BOOLEAN, BASE_NONE, NULL, 0,
16131 "BOOLEAN", HFILL }},
16132 { &hf_h245_refPictureSelection,
16133 { "refPictureSelection", "h245.refPictureSelection_element",
16134 FT_NONE, BASE_NONE, NULL, 0,
16135 NULL, HFILL }},
16136 { &hf_h245_customPictureClockFrequency,
16137 { "customPictureClockFrequency", "h245.customPictureClockFrequency",
16138 FT_UINT32, BASE_DEC, NULL, 0,
16139 "SET_SIZE_1_16_OF_CustomPictureClockFrequency", HFILL }},
16140 { &hf_h245_customPictureClockFrequency_item,
16141 { "CustomPictureClockFrequency", "h245.CustomPictureClockFrequency_element",
16142 FT_NONE, BASE_NONE, NULL, 0,
16143 NULL, HFILL }},
16144 { &hf_h245_customPictureFormat,
16145 { "customPictureFormat", "h245.customPictureFormat",
16146 FT_UINT32, BASE_DEC, NULL, 0,
16147 "SET_SIZE_1_16_OF_CustomPictureFormat", HFILL }},
16148 { &hf_h245_customPictureFormat_item,
16149 { "CustomPictureFormat", "h245.CustomPictureFormat_element",
16150 FT_NONE, BASE_NONE, NULL, 0,
16151 NULL, HFILL }},
16152 { &hf_h245_modeCombos,
16153 { "modeCombos", "h245.modeCombos",
16154 FT_UINT32, BASE_DEC, NULL, 0,
16155 "SET_SIZE_1_16_OF_H263VideoModeCombos", HFILL }},
16156 { &hf_h245_modeCombos_item,
16157 { "H263VideoModeCombos", "h245.H263VideoModeCombos_element",
16158 FT_NONE, BASE_NONE, NULL, 0,
16159 NULL, HFILL }},
16160 { &hf_h245_h263Version3Options,
16161 { "h263Version3Options", "h245.h263Version3Options_element",
16162 FT_NONE, BASE_NONE, NULL, 0,
16163 NULL, HFILL }},
16164 { &hf_h245_presentationOrder,
16165 { "presentationOrder", "h245.presentationOrder",
16166 FT_UINT32, BASE_DEC, NULL, 0,
16167 "INTEGER_1_256", HFILL }},
16168 { &hf_h245_offset_x,
16169 { "offset-x", "h245.offset_x",
16170 FT_INT32, BASE_DEC, NULL, 0,
16171 "INTEGER_M262144_262143", HFILL }},
16172 { &hf_h245_offset_y,
16173 { "offset-y", "h245.offset_y",
16174 FT_INT32, BASE_DEC, NULL, 0,
16175 "INTEGER_M262144_262143", HFILL }},
16176 { &hf_h245_scale_x,
16177 { "scale-x", "h245.scale_x",
16178 FT_UINT32, BASE_DEC, NULL, 0,
16179 "INTEGER_1_255", HFILL }},
16180 { &hf_h245_scale_y,
16181 { "scale-y", "h245.scale_y",
16182 FT_UINT32, BASE_DEC, NULL, 0,
16183 "INTEGER_1_255", HFILL }},
16184 { &hf_h245_additionalPictureMemory,
16185 { "additionalPictureMemory", "h245.additionalPictureMemory_element",
16186 FT_NONE, BASE_NONE, NULL, 0,
16187 NULL, HFILL }},
16188 { &hf_h245_sqcifAdditionalPictureMemory,
16189 { "sqcifAdditionalPictureMemory", "h245.sqcifAdditionalPictureMemory",
16190 FT_UINT32, BASE_DEC, NULL, 0,
16191 "INTEGER_1_256", HFILL }},
16192 { &hf_h245_qcifAdditionalPictureMemory,
16193 { "qcifAdditionalPictureMemory", "h245.qcifAdditionalPictureMemory",
16194 FT_UINT32, BASE_DEC, NULL, 0,
16195 "INTEGER_1_256", HFILL }},
16196 { &hf_h245_cifAdditionalPictureMemory,
16197 { "cifAdditionalPictureMemory", "h245.cifAdditionalPictureMemory",
16198 FT_UINT32, BASE_DEC, NULL, 0,
16199 "INTEGER_1_256", HFILL }},
16200 { &hf_h245_cif4AdditionalPictureMemory,
16201 { "cif4AdditionalPictureMemory", "h245.cif4AdditionalPictureMemory",
16202 FT_UINT32, BASE_DEC, NULL, 0,
16203 "INTEGER_1_256", HFILL }},
16204 { &hf_h245_cif16AdditionalPictureMemory,
16205 { "cif16AdditionalPictureMemory", "h245.cif16AdditionalPictureMemory",
16206 FT_UINT32, BASE_DEC, NULL, 0,
16207 "INTEGER_1_256", HFILL }},
16208 { &hf_h245_bigCpfAdditionalPictureMemory,
16209 { "bigCpfAdditionalPictureMemory", "h245.bigCpfAdditionalPictureMemory",
16210 FT_UINT32, BASE_DEC, NULL, 0,
16211 "INTEGER_1_256", HFILL }},
16212 { &hf_h245_videoMux,
16213 { "videoMux", "h245.videoMux",
16214 FT_BOOLEAN, BASE_NONE, NULL, 0,
16215 "BOOLEAN", HFILL }},
16216 { &hf_h245_videoBackChannelSend,
16217 { "videoBackChannelSend", "h245.videoBackChannelSend",
16218 FT_UINT32, BASE_DEC, VALS(h245_T_videoBackChannelSend_vals), 0,
16219 NULL, HFILL }},
16220 { &hf_h245_none,
16221 { "none", "h245.none_element",
16222 FT_NONE, BASE_NONE, NULL, 0,
16223 NULL, HFILL }},
16224 { &hf_h245_ackMessageOnly,
16225 { "ackMessageOnly", "h245.ackMessageOnly_element",
16226 FT_NONE, BASE_NONE, NULL, 0,
16227 NULL, HFILL }},
16228 { &hf_h245_nackMessageOnly,
16229 { "nackMessageOnly", "h245.nackMessageOnly_element",
16230 FT_NONE, BASE_NONE, NULL, 0,
16231 NULL, HFILL }},
16232 { &hf_h245_ackOrNackMessageOnly,
16233 { "ackOrNackMessageOnly", "h245.ackOrNackMessageOnly_element",
16234 FT_NONE, BASE_NONE, NULL, 0,
16235 NULL, HFILL }},
16236 { &hf_h245_ackAndNackMessage,
16237 { "ackAndNackMessage", "h245.ackAndNackMessage_element",
16238 FT_NONE, BASE_NONE, NULL, 0,
16239 NULL, HFILL }},
16240 { &hf_h245_enhancedReferencePicSelect,
16241 { "enhancedReferencePicSelect", "h245.enhancedReferencePicSelect_element",
16242 FT_NONE, BASE_NONE, NULL, 0,
16243 NULL, HFILL }},
16244 { &hf_h245_subPictureRemovalParameters,
16245 { "subPictureRemovalParameters", "h245.subPictureRemovalParameters_element",
16246 FT_NONE, BASE_NONE, NULL, 0,
16247 NULL, HFILL }},
16248 { &hf_h245_mpuHorizMBs,
16249 { "mpuHorizMBs", "h245.mpuHorizMBs",
16250 FT_UINT32, BASE_DEC, NULL, 0,
16251 "INTEGER_1_128", HFILL }},
16252 { &hf_h245_mpuVertMBs,
16253 { "mpuVertMBs", "h245.mpuVertMBs",
16254 FT_UINT32, BASE_DEC, NULL, 0,
16255 "INTEGER_1_72", HFILL }},
16256 { &hf_h245_mpuTotalNumber,
16257 { "mpuTotalNumber", "h245.mpuTotalNumber",
16258 FT_UINT32, BASE_DEC, NULL, 0,
16259 "INTEGER_1_65536", HFILL }},
16260 { &hf_h245_clockConversionCode,
16261 { "clockConversionCode", "h245.clockConversionCode",
16262 FT_UINT32, BASE_DEC, NULL, 0,
16263 "INTEGER_1000_1001", HFILL }},
16264 { &hf_h245_clockDivisor,
16265 { "clockDivisor", "h245.clockDivisor",
16266 FT_UINT32, BASE_DEC, NULL, 0,
16267 "INTEGER_1_127", HFILL }},
16268 { &hf_h245_sqcifMPI,
16269 { "sqcifMPI", "h245.sqcifMPI",
16270 FT_UINT32, BASE_DEC, NULL, 0,
16271 "INTEGER_1_2048", HFILL }},
16272 { &hf_h245_qcifMPI_1_2048,
16273 { "qcifMPI", "h245.qcifMPI_1_2048",
16274 FT_UINT32, BASE_DEC, NULL, 0,
16275 "INTEGER_1_2048", HFILL }},
16276 { &hf_h245_cifMPI2_1_2048,
16277 { "cifMPI", "h245.cifMPI2_1_2048",
16278 FT_UINT32, BASE_DEC, NULL, 0,
16279 "INTEGER_1_2048", HFILL }},
16280 { &hf_h245_cif4MPI,
16281 { "cif4MPI", "h245.cif4MPI",
16282 FT_UINT32, BASE_DEC, NULL, 0,
16283 "INTEGER_1_2048", HFILL }},
16284 { &hf_h245_cif16MPI,
16285 { "cif16MPI", "h245.cif16MPI",
16286 FT_UINT32, BASE_DEC, NULL, 0,
16287 "INTEGER_1_2048", HFILL }},
16288 { &hf_h245_maxCustomPictureWidth,
16289 { "maxCustomPictureWidth", "h245.maxCustomPictureWidth",
16290 FT_UINT32, BASE_DEC, NULL, 0,
16291 "INTEGER_1_2048", HFILL }},
16292 { &hf_h245_maxCustomPictureHeight,
16293 { "maxCustomPictureHeight", "h245.maxCustomPictureHeight",
16294 FT_UINT32, BASE_DEC, NULL, 0,
16295 "INTEGER_1_2048", HFILL }},
16296 { &hf_h245_minCustomPictureWidth,
16297 { "minCustomPictureWidth", "h245.minCustomPictureWidth",
16298 FT_UINT32, BASE_DEC, NULL, 0,
16299 "INTEGER_1_2048", HFILL }},
16300 { &hf_h245_minCustomPictureHeight,
16301 { "minCustomPictureHeight", "h245.minCustomPictureHeight",
16302 FT_UINT32, BASE_DEC, NULL, 0,
16303 "INTEGER_1_2048", HFILL }},
16304 { &hf_h245_mPI,
16305 { "mPI", "h245.mPI_element",
16306 FT_NONE, BASE_NONE, NULL, 0,
16307 NULL, HFILL }},
16308 { &hf_h245_standardMPI,
16309 { "standardMPI", "h245.standardMPI",
16310 FT_UINT32, BASE_DEC, NULL, 0,
16311 "INTEGER_1_31", HFILL }},
16312 { &hf_h245_customPCF,
16313 { "customPCF", "h245.customPCF",
16314 FT_UINT32, BASE_DEC, NULL, 0,
16315 NULL, HFILL }},
16316 { &hf_h245_customPCF_item,
16317 { "customPCF item", "h245.customPCF_item_element",
16318 FT_NONE, BASE_NONE, NULL, 0,
16319 NULL, HFILL }},
16320 { &hf_h245_customMPI,
16321 { "customMPI", "h245.customMPI",
16322 FT_UINT32, BASE_DEC, NULL, 0,
16323 "INTEGER_1_2048", HFILL }},
16324 { &hf_h245_pixelAspectInformation,
16325 { "pixelAspectInformation", "h245.pixelAspectInformation",
16326 FT_UINT32, BASE_DEC, VALS(h245_T_pixelAspectInformation_vals), 0,
16327 NULL, HFILL }},
16328 { &hf_h245_anyPixelAspectRatio,
16329 { "anyPixelAspectRatio", "h245.anyPixelAspectRatio",
16330 FT_BOOLEAN, BASE_NONE, NULL, 0,
16331 "BOOLEAN", HFILL }},
16332 { &hf_h245_pixelAspectCode,
16333 { "pixelAspectCode", "h245.pixelAspectCode",
16334 FT_UINT32, BASE_DEC, NULL, 0,
16335 NULL, HFILL }},
16336 { &hf_h245_pixelAspectCode_item,
16337 { "pixelAspectCode item", "h245.pixelAspectCode_item",
16338 FT_UINT32, BASE_DEC, NULL, 0,
16339 "INTEGER_1_14", HFILL }},
16340 { &hf_h245_extendedPAR,
16341 { "extendedPAR", "h245.extendedPAR",
16342 FT_UINT32, BASE_DEC, NULL, 0,
16343 NULL, HFILL }},
16344 { &hf_h245_extendedPAR_item,
16345 { "extendedPAR item", "h245.extendedPAR_item_element",
16346 FT_NONE, BASE_NONE, NULL, 0,
16347 NULL, HFILL }},
16348 { &hf_h245_width,
16349 { "width", "h245.width",
16350 FT_UINT32, BASE_DEC, NULL, 0,
16351 "INTEGER_1_255", HFILL }},
16352 { &hf_h245_height,
16353 { "height", "h245.height",
16354 FT_UINT32, BASE_DEC, NULL, 0,
16355 "INTEGER_1_255", HFILL }},
16356 { &hf_h245_h263VideoUncoupledModes,
16357 { "h263VideoUncoupledModes", "h245.h263VideoUncoupledModes_element",
16358 FT_NONE, BASE_NONE, NULL, 0,
16359 "H263ModeComboFlags", HFILL }},
16360 { &hf_h245_h263VideoCoupledModes,
16361 { "h263VideoCoupledModes", "h245.h263VideoCoupledModes",
16362 FT_UINT32, BASE_DEC, NULL, 0,
16363 "SET_SIZE_1_16_OF_H263ModeComboFlags", HFILL }},
16364 { &hf_h245_h263VideoCoupledModes_item,
16365 { "H263ModeComboFlags", "h245.H263ModeComboFlags_element",
16366 FT_NONE, BASE_NONE, NULL, 0,
16367 NULL, HFILL }},
16368 { &hf_h245_referencePicSelect,
16369 { "referencePicSelect", "h245.referencePicSelect",
16370 FT_BOOLEAN, BASE_NONE, NULL, 0,
16371 "BOOLEAN", HFILL }},
16372 { &hf_h245_enhancedReferencePicSelectBool,
16373 { "enhancedReferencePicSelect", "h245.enhancedReferencePicSelectBool",
16374 FT_BOOLEAN, BASE_NONE, NULL, 0,
16375 "BOOLEAN", HFILL }},
16376 { &hf_h245_dataPartitionedSlices,
16377 { "dataPartitionedSlices", "h245.dataPartitionedSlices",
16378 FT_BOOLEAN, BASE_NONE, NULL, 0,
16379 "BOOLEAN", HFILL }},
16380 { &hf_h245_fixedPointIDCT0,
16381 { "fixedPointIDCT0", "h245.fixedPointIDCT0",
16382 FT_BOOLEAN, BASE_NONE, NULL, 0,
16383 "BOOLEAN", HFILL }},
16384 { &hf_h245_interlacedFields,
16385 { "interlacedFields", "h245.interlacedFields",
16386 FT_BOOLEAN, BASE_NONE, NULL, 0,
16387 "BOOLEAN", HFILL }},
16388 { &hf_h245_currentPictureHeaderRepetition,
16389 { "currentPictureHeaderRepetition", "h245.currentPictureHeaderRepetition",
16390 FT_BOOLEAN, BASE_NONE, NULL, 0,
16391 "BOOLEAN", HFILL }},
16392 { &hf_h245_previousPictureHeaderRepetition,
16393 { "previousPictureHeaderRepetition", "h245.previousPictureHeaderRepetition",
16394 FT_BOOLEAN, BASE_NONE, NULL, 0,
16395 "BOOLEAN", HFILL }},
16396 { &hf_h245_nextPictureHeaderRepetition,
16397 { "nextPictureHeaderRepetition", "h245.nextPictureHeaderRepetition",
16398 FT_BOOLEAN, BASE_NONE, NULL, 0,
16399 "BOOLEAN", HFILL }},
16400 { &hf_h245_pictureNumberBoolean,
16401 { "pictureNumber", "h245.pictureNumberBoolean",
16402 FT_BOOLEAN, BASE_NONE, NULL, 0,
16403 "BOOLEAN", HFILL }},
16404 { &hf_h245_spareReferencePictures,
16405 { "spareReferencePictures", "h245.spareReferencePictures",
16406 FT_BOOLEAN, BASE_NONE, NULL, 0,
16407 "BOOLEAN", HFILL }},
16408 { &hf_h245_constrainedBitstream,
16409 { "constrainedBitstream", "h245.constrainedBitstream",
16410 FT_BOOLEAN, BASE_NONE, NULL, 0,
16411 "BOOLEAN", HFILL }},
16412 { &hf_h245_pictureRate,
16413 { "pictureRate", "h245.pictureRate",
16414 FT_UINT32, BASE_DEC, NULL, 0,
16415 "INTEGER_0_15", HFILL }},
16416 { &hf_h245_g711Alaw64k,
16417 { "g711Alaw64k", "h245.g711Alaw64k",
16418 FT_UINT32, BASE_DEC, NULL, 0,
16419 "INTEGER_1_256", HFILL }},
16420 { &hf_h245_g711Alaw56k,
16421 { "g711Alaw56k", "h245.g711Alaw56k",
16422 FT_UINT32, BASE_DEC, NULL, 0,
16423 "INTEGER_1_256", HFILL }},
16424 { &hf_h245_g711Ulaw64k,
16425 { "g711Ulaw64k", "h245.g711Ulaw64k",
16426 FT_UINT32, BASE_DEC, NULL, 0,
16427 "INTEGER_1_256", HFILL }},
16428 { &hf_h245_g711Ulaw56k,
16429 { "g711Ulaw56k", "h245.g711Ulaw56k",
16430 FT_UINT32, BASE_DEC, NULL, 0,
16431 "INTEGER_1_256", HFILL }},
16432 { &hf_h245_g722_64k,
16433 { "g722-64k", "h245.g722_64k",
16434 FT_UINT32, BASE_DEC, NULL, 0,
16435 "INTEGER_1_256", HFILL }},
16436 { &hf_h245_g722_56k,
16437 { "g722-56k", "h245.g722_56k",
16438 FT_UINT32, BASE_DEC, NULL, 0,
16439 "INTEGER_1_256", HFILL }},
16440 { &hf_h245_g722_48k,
16441 { "g722-48k", "h245.g722_48k",
16442 FT_UINT32, BASE_DEC, NULL, 0,
16443 "INTEGER_1_256", HFILL }},
16444 { &hf_h245_g7231,
16445 { "g7231", "h245.g7231_element",
16446 FT_NONE, BASE_NONE, NULL, 0,
16447 NULL, HFILL }},
16448 { &hf_h245_maxAl_sduAudioFrames,
16449 { "maxAl-sduAudioFrames", "h245.maxAl_sduAudioFrames",
16450 FT_UINT32, BASE_DEC, NULL, 0,
16451 "INTEGER_1_256", HFILL }},
16452 { &hf_h245_silenceSuppression,
16453 { "silenceSuppression", "h245.silenceSuppression",
16454 FT_BOOLEAN, BASE_NONE, NULL, 0,
16455 "BOOLEAN", HFILL }},
16456 { &hf_h245_g728,
16457 { "g728", "h245.g728",
16458 FT_UINT32, BASE_DEC, NULL, 0,
16459 "INTEGER_1_256", HFILL }},
16460 { &hf_h245_g729,
16461 { "g729", "h245.g729",
16462 FT_UINT32, BASE_DEC, NULL, 0,
16463 "INTEGER_1_256", HFILL }},
16464 { &hf_h245_g729AnnexA,
16465 { "g729AnnexA", "h245.g729AnnexA",
16466 FT_UINT32, BASE_DEC, NULL, 0,
16467 "INTEGER_1_256", HFILL }},
16468 { &hf_h245_is11172AudioCapability,
16469 { "is11172AudioCapability", "h245.is11172AudioCapability_element",
16470 FT_NONE, BASE_NONE, NULL, 0,
16471 NULL, HFILL }},
16472 { &hf_h245_is13818AudioCapability,
16473 { "is13818AudioCapability", "h245.is13818AudioCapability_element",
16474 FT_NONE, BASE_NONE, NULL, 0,
16475 NULL, HFILL }},
16476 { &hf_h245_g729wAnnexB,
16477 { "g729wAnnexB", "h245.g729wAnnexB",
16478 FT_UINT32, BASE_DEC, NULL, 0,
16479 "INTEGER_1_256", HFILL }},
16480 { &hf_h245_g729AnnexAwAnnexB,
16481 { "g729AnnexAwAnnexB", "h245.g729AnnexAwAnnexB",
16482 FT_UINT32, BASE_DEC, NULL, 0,
16483 "INTEGER_1_256", HFILL }},
16484 { &hf_h245_g7231AnnexCCapability,
16485 { "g7231AnnexCCapability", "h245.g7231AnnexCCapability_element",
16486 FT_NONE, BASE_NONE, NULL, 0,
16487 NULL, HFILL }},
16488 { &hf_h245_gsmFullRate,
16489 { "gsmFullRate", "h245.gsmFullRate_element",
16490 FT_NONE, BASE_NONE, NULL, 0,
16491 "GSMAudioCapability", HFILL }},
16492 { &hf_h245_gsmHalfRate,
16493 { "gsmHalfRate", "h245.gsmHalfRate_element",
16494 FT_NONE, BASE_NONE, NULL, 0,
16495 "GSMAudioCapability", HFILL }},
16496 { &hf_h245_gsmEnhancedFullRate,
16497 { "gsmEnhancedFullRate", "h245.gsmEnhancedFullRate_element",
16498 FT_NONE, BASE_NONE, NULL, 0,
16499 "GSMAudioCapability", HFILL }},
16500 { &hf_h245_genericAudioCapability,
16501 { "genericAudioCapability", "h245.genericAudioCapability_element",
16502 FT_NONE, BASE_NONE, NULL, 0,
16503 "GenericCapability", HFILL }},
16504 { &hf_h245_g729Extensions,
16505 { "g729Extensions", "h245.g729Extensions_element",
16506 FT_NONE, BASE_NONE, NULL, 0,
16507 NULL, HFILL }},
16508 { &hf_h245_vbd,
16509 { "vbd", "h245.vbd_element",
16510 FT_NONE, BASE_NONE, NULL, 0,
16511 "VBDCapability", HFILL }},
16512 { &hf_h245_audioTelephonyEvent,
16513 { "audioTelephonyEvent", "h245.audioTelephonyEvent_element",
16514 FT_NONE, BASE_NONE, NULL, 0,
16515 "NoPTAudioTelephonyEventCapability", HFILL }},
16516 { &hf_h245_audioTone,
16517 { "audioTone", "h245.audioTone_element",
16518 FT_NONE, BASE_NONE, NULL, 0,
16519 "NoPTAudioToneCapability", HFILL }},
16520 { &hf_h245_audioUnit,
16521 { "audioUnit", "h245.audioUnit",
16522 FT_UINT32, BASE_DEC, NULL, 0,
16523 "INTEGER_1_256", HFILL }},
16524 { &hf_h245_annexA,
16525 { "annexA", "h245.annexA",
16526 FT_BOOLEAN, BASE_NONE, NULL, 0,
16527 "BOOLEAN", HFILL }},
16528 { &hf_h245_annexB,
16529 { "annexB", "h245.annexB",
16530 FT_BOOLEAN, BASE_NONE, NULL, 0,
16531 "BOOLEAN", HFILL }},
16532 { &hf_h245_annexD,
16533 { "annexD", "h245.annexD",
16534 FT_BOOLEAN, BASE_NONE, NULL, 0,
16535 "BOOLEAN", HFILL }},
16536 { &hf_h245_annexE,
16537 { "annexE", "h245.annexE",
16538 FT_BOOLEAN, BASE_NONE, NULL, 0,
16539 "BOOLEAN", HFILL }},
16540 { &hf_h245_annexF,
16541 { "annexF", "h245.annexF",
16542 FT_BOOLEAN, BASE_NONE, NULL, 0,
16543 "BOOLEAN", HFILL }},
16544 { &hf_h245_annexG,
16545 { "annexG", "h245.annexG",
16546 FT_BOOLEAN, BASE_NONE, NULL, 0,
16547 "BOOLEAN", HFILL }},
16548 { &hf_h245_annexH,
16549 { "annexH", "h245.annexH",
16550 FT_BOOLEAN, BASE_NONE, NULL, 0,
16551 "BOOLEAN", HFILL }},
16552 { &hf_h245_highRateMode0,
16553 { "highRateMode0", "h245.highRateMode0",
16554 FT_UINT32, BASE_DEC, NULL, 0,
16555 "INTEGER_27_78", HFILL }},
16556 { &hf_h245_highRateMode1,
16557 { "highRateMode1", "h245.highRateMode1",
16558 FT_UINT32, BASE_DEC, NULL, 0,
16559 "INTEGER_27_78", HFILL }},
16560 { &hf_h245_lowRateMode0,
16561 { "lowRateMode0", "h245.lowRateMode0",
16562 FT_UINT32, BASE_DEC, NULL, 0,
16563 "INTEGER_23_66", HFILL }},
16564 { &hf_h245_lowRateMode1,
16565 { "lowRateMode1", "h245.lowRateMode1",
16566 FT_UINT32, BASE_DEC, NULL, 0,
16567 "INTEGER_23_66", HFILL }},
16568 { &hf_h245_sidMode0,
16569 { "sidMode0", "h245.sidMode0",
16570 FT_UINT32, BASE_DEC, NULL, 0,
16571 "INTEGER_6_17", HFILL }},
16572 { &hf_h245_sidMode1,
16573 { "sidMode1", "h245.sidMode1",
16574 FT_UINT32, BASE_DEC, NULL, 0,
16575 "INTEGER_6_17", HFILL }},
16576 { &hf_h245_g723AnnexCAudioMode,
16577 { "g723AnnexCAudioMode", "h245.g723AnnexCAudioMode_element",
16578 FT_NONE, BASE_NONE, NULL, 0,
16579 NULL, HFILL }},
16580 { &hf_h245_audioLayer1,
16581 { "audioLayer1", "h245.audioLayer1",
16582 FT_BOOLEAN, BASE_NONE, NULL, 0,
16583 "BOOLEAN", HFILL }},
16584 { &hf_h245_audioLayer2,
16585 { "audioLayer2", "h245.audioLayer2",
16586 FT_BOOLEAN, BASE_NONE, NULL, 0,
16587 "BOOLEAN", HFILL }},
16588 { &hf_h245_audioLayer3,
16589 { "audioLayer3", "h245.audioLayer3",
16590 FT_BOOLEAN, BASE_NONE, NULL, 0,
16591 "BOOLEAN", HFILL }},
16592 { &hf_h245_audioSampling32k,
16593 { "audioSampling32k", "h245.audioSampling32k",
16594 FT_BOOLEAN, BASE_NONE, NULL, 0,
16595 "BOOLEAN", HFILL }},
16596 { &hf_h245_audioSampling44k1,
16597 { "audioSampling44k1", "h245.audioSampling44k1",
16598 FT_BOOLEAN, BASE_NONE, NULL, 0,
16599 "BOOLEAN", HFILL }},
16600 { &hf_h245_audioSampling48k,
16601 { "audioSampling48k", "h245.audioSampling48k",
16602 FT_BOOLEAN, BASE_NONE, NULL, 0,
16603 "BOOLEAN", HFILL }},
16604 { &hf_h245_singleChannel,
16605 { "singleChannel", "h245.singleChannel",
16606 FT_BOOLEAN, BASE_NONE, NULL, 0,
16607 "BOOLEAN", HFILL }},
16608 { &hf_h245_twoChannels,
16609 { "twoChannels", "h245.twoChannels",
16610 FT_BOOLEAN, BASE_NONE, NULL, 0,
16611 "BOOLEAN", HFILL }},
16612 { &hf_h245_bitRate_1_448,
16613 { "bitRate", "h245.bitRate_1_448",
16614 FT_UINT32, BASE_DEC, NULL, 0,
16615 "INTEGER_1_448", HFILL }},
16616 { &hf_h245_audioSampling16k,
16617 { "audioSampling16k", "h245.audioSampling16k",
16618 FT_BOOLEAN, BASE_NONE, NULL, 0,
16619 "BOOLEAN", HFILL }},
16620 { &hf_h245_audioSampling22k05,
16621 { "audioSampling22k05", "h245.audioSampling22k05",
16622 FT_BOOLEAN, BASE_NONE, NULL, 0,
16623 "BOOLEAN", HFILL }},
16624 { &hf_h245_audioSampling24k,
16625 { "audioSampling24k", "h245.audioSampling24k",
16626 FT_BOOLEAN, BASE_NONE, NULL, 0,
16627 "BOOLEAN", HFILL }},
16628 { &hf_h245_threeChannels2_1,
16629 { "threeChannels2-1", "h245.threeChannels2_1",
16630 FT_BOOLEAN, BASE_NONE, NULL, 0,
16631 "BOOLEAN", HFILL }},
16632 { &hf_h245_threeChannels3_0,
16633 { "threeChannels3-0", "h245.threeChannels3_0",
16634 FT_BOOLEAN, BASE_NONE, NULL, 0,
16635 "BOOLEAN", HFILL }},
16636 { &hf_h245_fourChannels2_0_2_0,
16637 { "fourChannels2-0-2-0", "h245.fourChannels2_0_2_0",
16638 FT_BOOLEAN, BASE_NONE, NULL, 0,
16639 "BOOLEAN", HFILL }},
16640 { &hf_h245_fourChannels2_2,
16641 { "fourChannels2-2", "h245.fourChannels2_2",
16642 FT_BOOLEAN, BASE_NONE, NULL, 0,
16643 "BOOLEAN", HFILL }},
16644 { &hf_h245_fourChannels3_1,
16645 { "fourChannels3-1", "h245.fourChannels3_1",
16646 FT_BOOLEAN, BASE_NONE, NULL, 0,
16647 "BOOLEAN", HFILL }},
16648 { &hf_h245_fiveChannels3_0_2_0,
16649 { "fiveChannels3-0-2-0", "h245.fiveChannels3_0_2_0",
16650 FT_BOOLEAN, BASE_NONE, NULL, 0,
16651 "BOOLEAN", HFILL }},
16652 { &hf_h245_fiveChannels3_2,
16653 { "fiveChannels3-2", "h245.fiveChannels3_2",
16654 FT_BOOLEAN, BASE_NONE, NULL, 0,
16655 "BOOLEAN", HFILL }},
16656 { &hf_h245_lowFrequencyEnhancement,
16657 { "lowFrequencyEnhancement", "h245.lowFrequencyEnhancement",
16658 FT_BOOLEAN, BASE_NONE, NULL, 0,
16659 "BOOLEAN", HFILL }},
16660 { &hf_h245_multilingual,
16661 { "multilingual", "h245.multilingual",
16662 FT_BOOLEAN, BASE_NONE, NULL, 0,
16663 "BOOLEAN", HFILL }},
16664 { &hf_h245_bitRate2_1_1130,
16665 { "bitRate", "h245.bitRate2_1_1130",
16666 FT_UINT32, BASE_DEC, NULL, 0,
16667 "INTEGER_1_1130", HFILL }},
16668 { &hf_h245_audioUnitSize,
16669 { "audioUnitSize", "h245.audioUnitSize",
16670 FT_UINT32, BASE_DEC, NULL, 0,
16671 "INTEGER_1_256", HFILL }},
16672 { &hf_h245_comfortNoise,
16673 { "comfortNoise", "h245.comfortNoise",
16674 FT_BOOLEAN, BASE_NONE, NULL, 0,
16675 "BOOLEAN", HFILL }},
16676 { &hf_h245_scrambled,
16677 { "scrambled", "h245.scrambled",
16678 FT_BOOLEAN, BASE_NONE, NULL, 0,
16679 "BOOLEAN", HFILL }},
16680 { &hf_h245_vbd_cap_type,
16681 { "type", "h245.vbd_cap_type",
16682 FT_UINT32, BASE_DEC, VALS(h245_AudioCapability_vals), 0,
16683 "AudioCapability", HFILL }},
16684 { &hf_h245_t120,
16685 { "t120", "h245.t120",
16686 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16687 "DataProtocolCapability", HFILL }},
16688 { &hf_h245_dsm_cc,
16689 { "dsm-cc", "h245.dsm_cc",
16690 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16691 "DataProtocolCapability", HFILL }},
16692 { &hf_h245_userData,
16693 { "userData", "h245.userData",
16694 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16695 "DataProtocolCapability", HFILL }},
16696 { &hf_h245_t84,
16697 { "t84", "h245.t84_element",
16698 FT_NONE, BASE_NONE, NULL, 0,
16699 NULL, HFILL }},
16700 { &hf_h245_t84Protocol,
16701 { "t84Protocol", "h245.t84Protocol",
16702 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16703 "DataProtocolCapability", HFILL }},
16704 { &hf_h245_t84Profile,
16705 { "t84Profile", "h245.t84Profile",
16706 FT_UINT32, BASE_DEC, VALS(h245_T84Profile_vals), 0,
16707 NULL, HFILL }},
16708 { &hf_h245_t434,
16709 { "t434", "h245.t434",
16710 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16711 "DataProtocolCapability", HFILL }},
16712 { &hf_h245_h224,
16713 { "h224", "h245.h224",
16714 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16715 "DataProtocolCapability", HFILL }},
16716 { &hf_h245_nlpidProtocol,
16717 { "nlpidProtocol", "h245.nlpidProtocol",
16718 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16719 "DataProtocolCapability", HFILL }},
16720 { &hf_h245_nlpidData,
16721 { "nlpidData", "h245.nlpidData",
16722 FT_BYTES, BASE_NONE, NULL, 0,
16723 "OCTET_STRING", HFILL }},
16724 { &hf_h245_nlpid,
16725 { "nlpid", "h245.nlpid_element",
16726 FT_NONE, BASE_NONE, NULL, 0,
16727 NULL, HFILL }},
16728 { &hf_h245_dsvdControl,
16729 { "dsvdControl", "h245.dsvdControl_element",
16730 FT_NONE, BASE_NONE, NULL, 0,
16731 NULL, HFILL }},
16732 { &hf_h245_h222DataPartitioning,
16733 { "h222DataPartitioning", "h245.h222DataPartitioning",
16734 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16735 "DataProtocolCapability", HFILL }},
16736 { &hf_h245_t30fax,
16737 { "t30fax", "h245.t30fax",
16738 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16739 "DataProtocolCapability", HFILL }},
16740 { &hf_h245_t140,
16741 { "t140", "h245.t140",
16742 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16743 "DataProtocolCapability", HFILL }},
16744 { &hf_h245_t38fax,
16745 { "t38fax", "h245.t38fax_element",
16746 FT_NONE, BASE_NONE, NULL, 0,
16747 NULL, HFILL }},
16748 { &hf_h245_t38FaxProtocol,
16749 { "t38FaxProtocol", "h245.t38FaxProtocol",
16750 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
16751 "DataProtocolCapability", HFILL }},
16752 { &hf_h245_t38FaxProfile,
16753 { "t38FaxProfile", "h245.t38FaxProfile_element",
16754 FT_NONE, BASE_NONE, NULL, 0,
16755 NULL, HFILL }},
16756 { &hf_h245_genericDataCapability,
16757 { "genericDataCapability", "h245.genericDataCapability_element",
16758 FT_NONE, BASE_NONE, NULL, 0,
16759 "GenericCapability", HFILL }},
16760 { &hf_h245_application,
16761 { "application", "h245.application",
16762 FT_UINT32, BASE_DEC, VALS(h245_Application_vals), 0,
16763 NULL, HFILL }},
16764 { &hf_h245_maxBitRate2_0_4294967295,
16765 { "maxBitRate", "h245.maxBitRate2_0_4294967295",
16766 FT_UINT32, BASE_DEC, NULL, 0,
16767 "INTEGER_0_4294967295", HFILL }},
16768 { &hf_h245_v14buffered,
16769 { "v14buffered", "h245.v14buffered_element",
16770 FT_NONE, BASE_NONE, NULL, 0,
16771 NULL, HFILL }},
16772 { &hf_h245_v42lapm,
16773 { "v42lapm", "h245.v42lapm_element",
16774 FT_NONE, BASE_NONE, NULL, 0,
16775 NULL, HFILL }},
16776 { &hf_h245_hdlcFrameTunnelling,
16777 { "hdlcFrameTunnelling", "h245.hdlcFrameTunnelling_element",
16778 FT_NONE, BASE_NONE, NULL, 0,
16779 NULL, HFILL }},
16780 { &hf_h245_h310SeparateVCStack,
16781 { "h310SeparateVCStack", "h245.h310SeparateVCStack_element",
16782 FT_NONE, BASE_NONE, NULL, 0,
16783 NULL, HFILL }},
16784 { &hf_h245_h310SingleVCStack,
16785 { "h310SingleVCStack", "h245.h310SingleVCStack_element",
16786 FT_NONE, BASE_NONE, NULL, 0,
16787 NULL, HFILL }},
16788 { &hf_h245_transparent,
16789 { "transparent", "h245.transparent_element",
16790 FT_NONE, BASE_NONE, NULL, 0,
16791 NULL, HFILL }},
16792 { &hf_h245_segmentationAndReassembly,
16793 { "segmentationAndReassembly", "h245.segmentationAndReassembly_element",
16794 FT_NONE, BASE_NONE, NULL, 0,
16795 NULL, HFILL }},
16796 { &hf_h245_hdlcFrameTunnelingwSAR,
16797 { "hdlcFrameTunnelingwSAR", "h245.hdlcFrameTunnelingwSAR_element",
16798 FT_NONE, BASE_NONE, NULL, 0,
16799 NULL, HFILL }},
16800 { &hf_h245_v120,
16801 { "v120", "h245.v120_element",
16802 FT_NONE, BASE_NONE, NULL, 0,
16803 NULL, HFILL }},
16804 { &hf_h245_separateLANStack,
16805 { "separateLANStack", "h245.separateLANStack_element",
16806 FT_NONE, BASE_NONE, NULL, 0,
16807 NULL, HFILL }},
16808 { &hf_h245_v76wCompression,
16809 { "v76wCompression", "h245.v76wCompression",
16810 FT_UINT32, BASE_DEC, VALS(h245_T_v76wCompression_vals), 0,
16811 NULL, HFILL }},
16812 { &hf_h245_transmitCompression,
16813 { "transmitCompression", "h245.transmitCompression",
16814 FT_UINT32, BASE_DEC, VALS(h245_CompressionType_vals), 0,
16815 "CompressionType", HFILL }},
16816 { &hf_h245_receiveCompression,
16817 { "receiveCompression", "h245.receiveCompression",
16818 FT_UINT32, BASE_DEC, VALS(h245_CompressionType_vals), 0,
16819 "CompressionType", HFILL }},
16820 { &hf_h245_transmitAndReceiveCompression,
16821 { "transmitAndReceiveCompression", "h245.transmitAndReceiveCompression",
16822 FT_UINT32, BASE_DEC, VALS(h245_CompressionType_vals), 0,
16823 "CompressionType", HFILL }},
16824 { &hf_h245_tcp,
16825 { "tcp", "h245.tcp_element",
16826 FT_NONE, BASE_NONE, NULL, 0,
16827 NULL, HFILL }},
16828 { &hf_h245_udp,
16829 { "udp", "h245.udp_element",
16830 FT_NONE, BASE_NONE, NULL, 0,
16831 NULL, HFILL }},
16832 { &hf_h245_v42bis,
16833 { "v42bis", "h245.v42bis_element",
16834 FT_NONE, BASE_NONE, NULL, 0,
16835 NULL, HFILL }},
16836 { &hf_h245_numberOfCodewords,
16837 { "numberOfCodewords", "h245.numberOfCodewords",
16838 FT_UINT32, BASE_DEC, NULL, 0,
16839 "INTEGER_1_65536", HFILL }},
16840 { &hf_h245_maximumStringLength,
16841 { "maximumStringLength", "h245.maximumStringLength",
16842 FT_UINT32, BASE_DEC, NULL, 0,
16843 "INTEGER_1_256", HFILL }},
16844 { &hf_h245_t84Unrestricted,
16845 { "t84Unrestricted", "h245.t84Unrestricted_element",
16846 FT_NONE, BASE_NONE, NULL, 0,
16847 NULL, HFILL }},
16848 { &hf_h245_t84Restricted,
16849 { "t84Restricted", "h245.t84Restricted_element",
16850 FT_NONE, BASE_NONE, NULL, 0,
16851 NULL, HFILL }},
16852 { &hf_h245_qcif_bool,
16853 { "qcif", "h245.qcif_bool",
16854 FT_BOOLEAN, BASE_NONE, NULL, 0,
16855 "BOOLEAN", HFILL }},
16856 { &hf_h245_cif_bool,
16857 { "cif", "h245.cif_bool",
16858 FT_BOOLEAN, BASE_NONE, NULL, 0,
16859 "BOOLEAN", HFILL }},
16860 { &hf_h245_ccir601Seq,
16861 { "ccir601Seq", "h245.ccir601Seq",
16862 FT_BOOLEAN, BASE_NONE, NULL, 0,
16863 "BOOLEAN", HFILL }},
16864 { &hf_h245_ccir601Prog,
16865 { "ccir601Prog", "h245.ccir601Prog",
16866 FT_BOOLEAN, BASE_NONE, NULL, 0,
16867 "BOOLEAN", HFILL }},
16868 { &hf_h245_hdtvSeq,
16869 { "hdtvSeq", "h245.hdtvSeq",
16870 FT_BOOLEAN, BASE_NONE, NULL, 0,
16871 "BOOLEAN", HFILL }},
16872 { &hf_h245_hdtvProg,
16873 { "hdtvProg", "h245.hdtvProg",
16874 FT_BOOLEAN, BASE_NONE, NULL, 0,
16875 "BOOLEAN", HFILL }},
16876 { &hf_h245_g3FacsMH200x100,
16877 { "g3FacsMH200x100", "h245.g3FacsMH200x100",
16878 FT_BOOLEAN, BASE_NONE, NULL, 0,
16879 "BOOLEAN", HFILL }},
16880 { &hf_h245_g3FacsMH200x200,
16881 { "g3FacsMH200x200", "h245.g3FacsMH200x200",
16882 FT_BOOLEAN, BASE_NONE, NULL, 0,
16883 "BOOLEAN", HFILL }},
16884 { &hf_h245_g4FacsMMR200x100,
16885 { "g4FacsMMR200x100", "h245.g4FacsMMR200x100",
16886 FT_BOOLEAN, BASE_NONE, NULL, 0,
16887 "BOOLEAN", HFILL }},
16888 { &hf_h245_g4FacsMMR200x200,
16889 { "g4FacsMMR200x200", "h245.g4FacsMMR200x200",
16890 FT_BOOLEAN, BASE_NONE, NULL, 0,
16891 "BOOLEAN", HFILL }},
16892 { &hf_h245_jbig200x200Seq,
16893 { "jbig200x200Seq", "h245.jbig200x200Seq",
16894 FT_BOOLEAN, BASE_NONE, NULL, 0,
16895 "BOOLEAN", HFILL }},
16896 { &hf_h245_jbig200x200Prog,
16897 { "jbig200x200Prog", "h245.jbig200x200Prog",
16898 FT_BOOLEAN, BASE_NONE, NULL, 0,
16899 "BOOLEAN", HFILL }},
16900 { &hf_h245_jbig300x300Seq,
16901 { "jbig300x300Seq", "h245.jbig300x300Seq",
16902 FT_BOOLEAN, BASE_NONE, NULL, 0,
16903 "BOOLEAN", HFILL }},
16904 { &hf_h245_jbig300x300Prog,
16905 { "jbig300x300Prog", "h245.jbig300x300Prog",
16906 FT_BOOLEAN, BASE_NONE, NULL, 0,
16907 "BOOLEAN", HFILL }},
16908 { &hf_h245_digPhotoLow,
16909 { "digPhotoLow", "h245.digPhotoLow",
16910 FT_BOOLEAN, BASE_NONE, NULL, 0,
16911 "BOOLEAN", HFILL }},
16912 { &hf_h245_digPhotoMedSeq,
16913 { "digPhotoMedSeq", "h245.digPhotoMedSeq",
16914 FT_BOOLEAN, BASE_NONE, NULL, 0,
16915 "BOOLEAN", HFILL }},
16916 { &hf_h245_digPhotoMedProg,
16917 { "digPhotoMedProg", "h245.digPhotoMedProg",
16918 FT_BOOLEAN, BASE_NONE, NULL, 0,
16919 "BOOLEAN", HFILL }},
16920 { &hf_h245_digPhotoHighSeq,
16921 { "digPhotoHighSeq", "h245.digPhotoHighSeq",
16922 FT_BOOLEAN, BASE_NONE, NULL, 0,
16923 "BOOLEAN", HFILL }},
16924 { &hf_h245_digPhotoHighProg,
16925 { "digPhotoHighProg", "h245.digPhotoHighProg",
16926 FT_BOOLEAN, BASE_NONE, NULL, 0,
16927 "BOOLEAN", HFILL }},
16928 { &hf_h245_fillBitRemoval,
16929 { "fillBitRemoval", "h245.fillBitRemoval",
16930 FT_BOOLEAN, BASE_NONE, NULL, 0,
16931 "BOOLEAN", HFILL }},
16932 { &hf_h245_transcodingJBIG,
16933 { "transcodingJBIG", "h245.transcodingJBIG",
16934 FT_BOOLEAN, BASE_NONE, NULL, 0,
16935 "BOOLEAN", HFILL }},
16936 { &hf_h245_transcodingMMR,
16937 { "transcodingMMR", "h245.transcodingMMR",
16938 FT_BOOLEAN, BASE_NONE, NULL, 0,
16939 "BOOLEAN", HFILL }},
16940 { &hf_h245_version,
16941 { "version", "h245.version",
16942 FT_UINT32, BASE_DEC, NULL, 0,
16943 "INTEGER_0_255", HFILL }},
16944 { &hf_h245_t38FaxRateManagement,
16945 { "t38FaxRateManagement", "h245.t38FaxRateManagement",
16946 FT_UINT32, BASE_DEC, VALS(h245_T38FaxRateManagement_vals), 0,
16947 NULL, HFILL }},
16948 { &hf_h245_t38FaxUdpOptions,
16949 { "t38FaxUdpOptions", "h245.t38FaxUdpOptions_element",
16950 FT_NONE, BASE_NONE, NULL, 0,
16951 NULL, HFILL }},
16952 { &hf_h245_t38FaxTcpOptions,
16953 { "t38FaxTcpOptions", "h245.t38FaxTcpOptions_element",
16954 FT_NONE, BASE_NONE, NULL, 0,
16955 NULL, HFILL }},
16956 { &hf_h245_localTCF,
16957 { "localTCF", "h245.localTCF_element",
16958 FT_NONE, BASE_NONE, NULL, 0,
16959 NULL, HFILL }},
16960 { &hf_h245_transferredTCF,
16961 { "transferredTCF", "h245.transferredTCF_element",
16962 FT_NONE, BASE_NONE, NULL, 0,
16963 NULL, HFILL }},
16964 { &hf_h245_t38FaxMaxBuffer,
16965 { "t38FaxMaxBuffer", "h245.t38FaxMaxBuffer",
16966 FT_INT32, BASE_DEC, NULL, 0,
16967 "INTEGER", HFILL }},
16968 { &hf_h245_t38FaxMaxDatagram,
16969 { "t38FaxMaxDatagram", "h245.t38FaxMaxDatagram",
16970 FT_INT32, BASE_DEC, NULL, 0,
16971 "INTEGER", HFILL }},
16972 { &hf_h245_t38FaxUdpEC,
16973 { "t38FaxUdpEC", "h245.t38FaxUdpEC",
16974 FT_UINT32, BASE_DEC, VALS(h245_T_t38FaxUdpEC_vals), 0,
16975 NULL, HFILL }},
16976 { &hf_h245_t38UDPFEC,
16977 { "t38UDPFEC", "h245.t38UDPFEC_element",
16978 FT_NONE, BASE_NONE, NULL, 0,
16979 NULL, HFILL }},
16980 { &hf_h245_t38UDPRedundancy,
16981 { "t38UDPRedundancy", "h245.t38UDPRedundancy_element",
16982 FT_NONE, BASE_NONE, NULL, 0,
16983 NULL, HFILL }},
16984 { &hf_h245_t38TCPBidirectionalMode,
16985 { "t38TCPBidirectionalMode", "h245.t38TCPBidirectionalMode",
16986 FT_BOOLEAN, BASE_NONE, NULL, 0,
16987 "BOOLEAN", HFILL }},
16988 { &hf_h245_encryptionCapability,
16989 { "encryptionCapability", "h245.encryptionCapability",
16990 FT_UINT32, BASE_DEC, NULL, 0,
16991 NULL, HFILL }},
16992 { &hf_h245_authenticationCapability,
16993 { "authenticationCapability", "h245.authenticationCapability_element",
16994 FT_NONE, BASE_NONE, NULL, 0,
16995 NULL, HFILL }},
16996 { &hf_h245_integrityCapability,
16997 { "integrityCapability", "h245.integrityCapability_element",
16998 FT_NONE, BASE_NONE, NULL, 0,
16999 NULL, HFILL }},
17000 { &hf_h245_genericH235SecurityCapability,
17001 { "genericH235SecurityCapability", "h245.genericH235SecurityCapability_element",
17002 FT_NONE, BASE_NONE, NULL, 0,
17003 "GenericCapability", HFILL }},
17004 { &hf_h245_EncryptionCapability_item,
17005 { "MediaEncryptionAlgorithm", "h245.MediaEncryptionAlgorithm",
17006 FT_UINT32, BASE_DEC, VALS(h245_MediaEncryptionAlgorithm_vals), 0,
17007 NULL, HFILL }},
17008 { &hf_h245_algorithm,
17009 { "algorithm", "h245.algorithm",
17010 FT_OID, BASE_NONE, NULL, 0,
17011 "OBJECT_IDENTIFIER", HFILL }},
17012 { &hf_h245_antiSpamAlgorithm,
17013 { "antiSpamAlgorithm", "h245.antiSpamAlgorithm",
17014 FT_OID, BASE_NONE, NULL, 0,
17015 "OBJECT_IDENTIFIER", HFILL }},
17016 { &hf_h245_ui_nonStandard,
17017 { "nonStandard", "h245.ui_nonStandard",
17018 FT_UINT32, BASE_DEC, NULL, 0,
17019 "SEQUENCE_SIZE_1_16_OF_NonStandardParameter", HFILL }},
17020 { &hf_h245_ui_nonStandard_item,
17021 { "NonStandardParameter", "h245.NonStandardParameter_element",
17022 FT_NONE, BASE_NONE, NULL, 0,
17023 NULL, HFILL }},
17024 { &hf_h245_basicString,
17025 { "basicString", "h245.basicString_element",
17026 FT_NONE, BASE_NONE, NULL, 0,
17027 NULL, HFILL }},
17028 { &hf_h245_iA5String,
17029 { "iA5String", "h245.iA5String_element",
17030 FT_NONE, BASE_NONE, NULL, 0,
17031 NULL, HFILL }},
17032 { &hf_h245_generalString,
17033 { "generalString", "h245.generalString_element",
17034 FT_NONE, BASE_NONE, NULL, 0,
17035 NULL, HFILL }},
17036 { &hf_h245_dtmf,
17037 { "dtmf", "h245.dtmf_element",
17038 FT_NONE, BASE_NONE, NULL, 0,
17039 NULL, HFILL }},
17040 { &hf_h245_hookflash,
17041 { "hookflash", "h245.hookflash_element",
17042 FT_NONE, BASE_NONE, NULL, 0,
17043 NULL, HFILL }},
17044 { &hf_h245_extendedAlphanumericFlag,
17045 { "extendedAlphanumeric", "h245.extendedAlphanumericFlag_element",
17046 FT_NONE, BASE_NONE, NULL, 0,
17047 NULL, HFILL }},
17048 { &hf_h245_encryptedBasicString,
17049 { "encryptedBasicString", "h245.encryptedBasicString_element",
17050 FT_NONE, BASE_NONE, NULL, 0,
17051 NULL, HFILL }},
17052 { &hf_h245_encryptedIA5String,
17053 { "encryptedIA5String", "h245.encryptedIA5String_element",
17054 FT_NONE, BASE_NONE, NULL, 0,
17055 NULL, HFILL }},
17056 { &hf_h245_encryptedGeneralString,
17057 { "encryptedGeneralString", "h245.encryptedGeneralString_element",
17058 FT_NONE, BASE_NONE, NULL, 0,
17059 NULL, HFILL }},
17060 { &hf_h245_secureDTMF,
17061 { "secureDTMF", "h245.secureDTMF_element",
17062 FT_NONE, BASE_NONE, NULL, 0,
17063 NULL, HFILL }},
17064 { &hf_h245_genericUserInputCapability,
17065 { "genericUserInputCapability", "h245.genericUserInputCapability_element",
17066 FT_NONE, BASE_NONE, NULL, 0,
17067 "GenericCapability", HFILL }},
17068 { &hf_h245_nonStandardParams,
17069 { "nonStandardData", "h245.nonStandardParams",
17070 FT_UINT32, BASE_DEC, NULL, 0,
17071 "SEQUENCE_OF_NonStandardParameter", HFILL }},
17072 { &hf_h245_nonStandardParams_item,
17073 { "NonStandardParameter", "h245.NonStandardParameter_element",
17074 FT_NONE, BASE_NONE, NULL, 0,
17075 NULL, HFILL }},
17076 { &hf_h245_chairControlCapability,
17077 { "chairControlCapability", "h245.chairControlCapability",
17078 FT_BOOLEAN, BASE_NONE, NULL, 0,
17079 "BOOLEAN", HFILL }},
17080 { &hf_h245_videoIndicateMixingCapability,
17081 { "videoIndicateMixingCapability", "h245.videoIndicateMixingCapability",
17082 FT_BOOLEAN, BASE_NONE, NULL, 0,
17083 "BOOLEAN", HFILL }},
17084 { &hf_h245_multipointVisualizationCapability,
17085 { "multipointVisualizationCapability", "h245.multipointVisualizationCapability",
17086 FT_BOOLEAN, BASE_NONE, NULL, 0,
17087 "BOOLEAN", HFILL }},
17088 { &hf_h245_capabilityIdentifier,
17089 { "capabilityIdentifier", "h245.capabilityIdentifier",
17090 FT_UINT32, BASE_DEC, VALS(h245_CapabilityIdentifier_vals), 0,
17091 NULL, HFILL }},
17092 { &hf_h245_collapsing,
17093 { "collapsing", "h245.collapsing",
17094 FT_UINT32, BASE_DEC, NULL, 0,
17095 NULL, HFILL }},
17096 { &hf_h245_collapsing_item,
17097 { "collapsing item", "h245.collapsing_item_element",
17098 FT_NONE, BASE_NONE, NULL, 0,
17099 NULL, HFILL }},
17100 { &hf_h245_nonCollapsing,
17101 { "nonCollapsing", "h245.nonCollapsing",
17102 FT_UINT32, BASE_DEC, NULL, 0,
17103 NULL, HFILL }},
17104 { &hf_h245_nonCollapsing_item,
17105 { "nonCollapsing item", "h245.nonCollapsing_item_element",
17106 FT_NONE, BASE_NONE, NULL, 0,
17107 NULL, HFILL }},
17108 { &hf_h245_nonCollapsingRaw,
17109 { "nonCollapsingRaw", "h245.nonCollapsingRaw",
17110 FT_BYTES, BASE_NONE, NULL, 0,
17111 NULL, HFILL }},
17112 { &hf_h245_transport,
17113 { "transport", "h245.transport",
17114 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
17115 "DataProtocolCapability", HFILL }},
17116 { &hf_h245_standardOid,
17117 { "standard", "h245.standardOid",
17118 FT_OID, BASE_NONE, NULL, 0,
17119 "T_standardOid", HFILL }},
17120 { &hf_h245_h221NonStandard,
17121 { "h221NonStandard", "h245.h221NonStandard_element",
17122 FT_NONE, BASE_NONE, NULL, 0,
17123 "NonStandardParameter", HFILL }},
17124 { &hf_h245_uuid,
17125 { "uuid", "h245.uuid",
17126 FT_BYTES, BASE_NONE, NULL, 0,
17127 "OCTET_STRING_SIZE_16", HFILL }},
17128 { &hf_h245_domainBased,
17129 { "domainBased", "h245.domainBased",
17130 FT_STRING, BASE_NONE, NULL, 0,
17131 "IA5String_SIZE_1_64", HFILL }},
17132 { &hf_h245_parameterIdentifier,
17133 { "parameterIdentifier", "h245.parameterIdentifier",
17134 FT_UINT32, BASE_DEC, VALS(h245_ParameterIdentifier_vals), 0,
17135 NULL, HFILL }},
17136 { &hf_h245_parameterValue,
17137 { "parameterValue", "h245.parameterValue",
17138 FT_UINT32, BASE_DEC, VALS(h245_ParameterValue_vals), 0,
17139 NULL, HFILL }},
17140 { &hf_h245_supersedes,
17141 { "supersedes", "h245.supersedes",
17142 FT_UINT32, BASE_DEC, NULL, 0,
17143 "SEQUENCE_OF_ParameterIdentifier", HFILL }},
17144 { &hf_h245_supersedes_item,
17145 { "ParameterIdentifier", "h245.ParameterIdentifier",
17146 FT_UINT32, BASE_DEC, VALS(h245_ParameterIdentifier_vals), 0,
17147 NULL, HFILL }},
17148 { &hf_h245_standard,
17149 { "standard", "h245.standard",
17150 FT_UINT32, BASE_DEC, NULL, 0,
17151 NULL, HFILL }},
17152 { &hf_h245_logical,
17153 { "logical", "h245.logical_element",
17154 FT_NONE, BASE_NONE, NULL, 0,
17155 NULL, HFILL }},
17156 { &hf_h245_booleanArray,
17157 { "booleanArray", "h245.booleanArray",
17158 FT_UINT32, BASE_DEC, NULL, 0,
17159 NULL, HFILL }},
17160 { &hf_h245_unsignedMin,
17161 { "unsignedMin", "h245.unsignedMin",
17162 FT_UINT32, BASE_DEC, NULL, 0,
17163 NULL, HFILL }},
17164 { &hf_h245_unsignedMax,
17165 { "unsignedMax", "h245.unsignedMax",
17166 FT_UINT32, BASE_DEC, NULL, 0,
17167 NULL, HFILL }},
17168 { &hf_h245_unsigned32Min,
17169 { "unsigned32Min", "h245.unsigned32Min",
17170 FT_UINT32, BASE_DEC, NULL, 0,
17171 NULL, HFILL }},
17172 { &hf_h245_unsigned32Max,
17173 { "unsigned32Max", "h245.unsigned32Max",
17174 FT_UINT32, BASE_DEC, NULL, 0,
17175 NULL, HFILL }},
17176 { &hf_h245_octetString,
17177 { "octetString", "h245.octetString",
17178 FT_UINT32, BASE_DEC, NULL, 0,
17179 NULL, HFILL }},
17180 { &hf_h245_genericParameters,
17181 { "genericParameter", "h245.genericParameters",
17182 FT_UINT32, BASE_DEC, NULL, 0,
17183 "SEQUENCE_OF_GenericParameter", HFILL }},
17184 { &hf_h245_genericParameters_item,
17185 { "GenericParameter", "h245.GenericParameter_element",
17186 FT_NONE, BASE_NONE, NULL, 0,
17187 NULL, HFILL }},
17188 { &hf_h245_multiplexFormat,
17189 { "multiplexFormat", "h245.multiplexFormat",
17190 FT_UINT32, BASE_DEC, VALS(h245_MultiplexFormat_vals), 0,
17191 NULL, HFILL }},
17192 { &hf_h245_controlOnMuxStream,
17193 { "controlOnMuxStream", "h245.controlOnMuxStream",
17194 FT_BOOLEAN, BASE_NONE, NULL, 0,
17195 "BOOLEAN", HFILL }},
17196 { &hf_h245_capabilityOnMuxStream,
17197 { "capabilityOnMuxStream", "h245.capabilityOnMuxStream",
17198 FT_UINT32, BASE_DEC, NULL, 0,
17199 "SET_SIZE_1_256_OF_AlternativeCapabilitySet", HFILL }},
17200 { &hf_h245_capabilityOnMuxStream_item,
17201 { "AlternativeCapabilitySet", "h245.AlternativeCapabilitySet",
17202 FT_UINT32, BASE_DEC, NULL, 0,
17203 NULL, HFILL }},
17204 { &hf_h245_dynamicRTPPayloadType,
17205 { "dynamicRTPPayloadType", "h245.dynamicRTPPayloadType",
17206 FT_UINT32, BASE_DEC, NULL, 0,
17207 "INTEGER_96_127", HFILL }},
17208 { &hf_h245_audioTelephoneEvent,
17209 { "audioTelephoneEvent", "h245.audioTelephoneEvent",
17210 FT_STRING, BASE_NONE, NULL, 0,
17211 "GeneralString", HFILL }},
17212 { &hf_h245_capabilities,
17213 { "capabilities", "h245.capabilities",
17214 FT_UINT32, BASE_DEC, NULL, 0,
17215 "SET_SIZE_1_256_OF_AlternativeCapabilitySet", HFILL }},
17216 { &hf_h245_capabilities_item,
17217 { "AlternativeCapabilitySet", "h245.AlternativeCapabilitySet",
17218 FT_UINT32, BASE_DEC, NULL, 0,
17219 NULL, HFILL }},
17220 { &hf_h245_fecc_rfc2733,
17221 { "rfc2733", "h245.fecc_rfc2733_element",
17222 FT_NONE, BASE_NONE, NULL, 0,
17223 "FECC_rfc2733", HFILL }},
17224 { &hf_h245_redundancyEncodingBool,
17225 { "redundancyEncoding", "h245.redundancyEncodingBool",
17226 FT_BOOLEAN, BASE_NONE, NULL, 0,
17227 "BOOLEAN", HFILL }},
17228 { &hf_h245_separateStreamBool,
17229 { "separateStream", "h245.separateStreamBool_element",
17230 FT_NONE, BASE_NONE, NULL, 0,
17231 "T_separateStreamBool", HFILL }},
17232 { &hf_h245_separatePort,
17233 { "separatePort", "h245.separatePort",
17234 FT_BOOLEAN, BASE_NONE, NULL, 0,
17235 "BOOLEAN", HFILL }},
17236 { &hf_h245_samePortBool,
17237 { "samePort", "h245.samePortBool",
17238 FT_BOOLEAN, BASE_NONE, NULL, 0,
17239 "BOOLEAN", HFILL }},
17240 { &hf_h245_protectedCapability,
17241 { "protectedCapability", "h245.protectedCapability",
17242 FT_UINT32, BASE_DEC, NULL, 0,
17243 "CapabilityTableEntryNumber", HFILL }},
17244 { &hf_h245_fecScheme,
17245 { "fecScheme", "h245.fecScheme",
17246 FT_OID, BASE_NONE, NULL, 0,
17247 "OBJECT_IDENTIFIER", HFILL }},
17248 { &hf_h245_rfc2733rfc2198,
17249 { "rfc2733rfc2198", "h245.rfc2733rfc2198",
17250 FT_UINT64, BASE_DEC, NULL, 0,
17251 "MaxRedundancy", HFILL }},
17252 { &hf_h245_rfc2733sameport,
17253 { "rfc2733sameport", "h245.rfc2733sameport",
17254 FT_UINT64, BASE_DEC, NULL, 0,
17255 "MaxRedundancy", HFILL }},
17256 { &hf_h245_rfc2733diffport,
17257 { "rfc2733diffport", "h245.rfc2733diffport",
17258 FT_UINT64, BASE_DEC, NULL, 0,
17259 "MaxRedundancy", HFILL }},
17260 { &hf_h245_rfc2733Format,
17261 { "rfc2733Format", "h245.rfc2733Format",
17262 FT_UINT32, BASE_DEC, VALS(h245_Rfc2733Format_vals), 0,
17263 NULL, HFILL }},
17264 { &hf_h245_olc_fw_lcn,
17265 { "forwardLogicalChannelNumber", "h245.olc_fw_lcn",
17266 FT_UINT32, BASE_DEC, NULL, 0,
17267 "OLC_fw_lcn", HFILL }},
17268 { &hf_h245_forwardLogicalChannelParameters,
17269 { "forwardLogicalChannelParameters", "h245.forwardLogicalChannelParameters_element",
17270 FT_NONE, BASE_NONE, NULL, 0,
17271 NULL, HFILL }},
17272 { &hf_h245_portNumber,
17273 { "portNumber", "h245.portNumber",
17274 FT_UINT32, BASE_DEC, NULL, 0,
17275 "INTEGER_0_65535", HFILL }},
17276 { &hf_h245_dataType,
17277 { "dataType", "h245.dataType",
17278 FT_UINT32, BASE_DEC, VALS(h245_DataType_vals), 0,
17279 NULL, HFILL }},
17280 { &hf_h245_olc_forw_multiplexParameters,
17281 { "multiplexParameters", "h245.olc_forw_multiplexParameters",
17282 FT_UINT32, BASE_DEC, VALS(h245_OLC_forw_multiplexParameters_vals), 0,
17283 "OLC_forw_multiplexParameters", HFILL }},
17284 { &hf_h245_h222LogicalChannelParameters,
17285 { "h222LogicalChannelParameters", "h245.h222LogicalChannelParameters_element",
17286 FT_NONE, BASE_NONE, NULL, 0,
17287 NULL, HFILL }},
17288 { &hf_h245_olc_fw_h223_params,
17289 { "h223LogicalChannelParameters", "h245.olc_fw_h223_params_element",
17290 FT_NONE, BASE_NONE, NULL, 0,
17291 "OLC_fw_h223_params", HFILL }},
17292 { &hf_h245_v76LogicalChannelParameters,
17293 { "v76LogicalChannelParameters", "h245.v76LogicalChannelParameters_element",
17294 FT_NONE, BASE_NONE, NULL, 0,
17295 NULL, HFILL }},
17296 { &hf_h245_h2250LogicalChannelParameters,
17297 { "h2250LogicalChannelParameters", "h245.h2250LogicalChannelParameters_element",
17298 FT_NONE, BASE_NONE, NULL, 0,
17299 NULL, HFILL }},
17300 { &hf_h245_forwardLogicalChannelDependency,
17301 { "forwardLogicalChannelDependency", "h245.forwardLogicalChannelDependency",
17302 FT_UINT32, BASE_DEC, NULL, 0,
17303 "LogicalChannelNumber", HFILL }},
17304 { &hf_h245_replacementFor,
17305 { "replacementFor", "h245.replacementFor",
17306 FT_UINT32, BASE_DEC, NULL, 0,
17307 "LogicalChannelNumber", HFILL }},
17308 { &hf_h245_reverseLogicalChannelParameters,
17309 { "reverseLogicalChannelParameters", "h245.reverseLogicalChannelParameters_element",
17310 FT_NONE, BASE_NONE, NULL, 0,
17311 "OLC_reverseLogicalChannelParameters", HFILL }},
17312 { &hf_h245_olc_rev_multiplexParameter,
17313 { "multiplexParameters", "h245.olc_rev_multiplexParameter",
17314 FT_UINT32, BASE_DEC, VALS(h245_OLC_rev_multiplexParameters_vals), 0,
17315 "OLC_rev_multiplexParameters", HFILL }},
17316 { &hf_h245_olc_rev_h223_params,
17317 { "h223LogicalChannelParameters", "h245.olc_rev_h223_params_element",
17318 FT_NONE, BASE_NONE, NULL, 0,
17319 "OLC_rev_h223_params", HFILL }},
17320 { &hf_h245_reverseLogicalChannelDependency,
17321 { "reverseLogicalChannelDependency", "h245.reverseLogicalChannelDependency",
17322 FT_UINT32, BASE_DEC, NULL, 0,
17323 "LogicalChannelNumber", HFILL }},
17324 { &hf_h245_separateStack,
17325 { "separateStack", "h245.separateStack_element",
17326 FT_NONE, BASE_NONE, NULL, 0,
17327 "NetworkAccessParameters", HFILL }},
17328 { &hf_h245_encryptionSync,
17329 { "encryptionSync", "h245.encryptionSync_element",
17330 FT_NONE, BASE_NONE, NULL, 0,
17331 NULL, HFILL }},
17332 { &hf_h245_distribution,
17333 { "distribution", "h245.distribution",
17334 FT_UINT32, BASE_DEC, VALS(h245_T_distribution_vals), 0,
17335 NULL, HFILL }},
17336 { &hf_h245_unicast,
17337 { "unicast", "h245.unicast_element",
17338 FT_NONE, BASE_NONE, NULL, 0,
17339 NULL, HFILL }},
17340 { &hf_h245_multicast,
17341 { "multicast", "h245.multicast_element",
17342 FT_NONE, BASE_NONE, NULL, 0,
17343 NULL, HFILL }},
17344 { &hf_h245_networkAddress,
17345 { "networkAddress", "h245.networkAddress",
17346 FT_UINT32, BASE_DEC, VALS(h245_T_networkAddress_vals), 0,
17347 NULL, HFILL }},
17348 { &hf_h245_q2931Address,
17349 { "q2931Address", "h245.q2931Address_element",
17350 FT_NONE, BASE_NONE, NULL, 0,
17351 NULL, HFILL }},
17352 { &hf_h245_e164Address,
17353 { "e164Address", "h245.e164Address",
17354 FT_STRING, BASE_NONE, NULL, 0,
17355 NULL, HFILL }},
17356 { &hf_h245_localAreaAddress,
17357 { "localAreaAddress", "h245.localAreaAddress",
17358 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
17359 "TransportAddress", HFILL }},
17360 { &hf_h245_associateConference,
17361 { "associateConference", "h245.associateConference",
17362 FT_BOOLEAN, BASE_NONE, NULL, 0,
17363 "BOOLEAN", HFILL }},
17364 { &hf_h245_externalReference,
17365 { "externalReference", "h245.externalReference",
17366 FT_BYTES, BASE_NONE, NULL, 0,
17367 "OCTET_STRING_SIZE_1_255", HFILL }},
17368 { &hf_h245_t120SetupProcedure,
17369 { "t120SetupProcedure", "h245.t120SetupProcedure",
17370 FT_UINT32, BASE_DEC, VALS(h245_T_t120SetupProcedure_vals), 0,
17371 NULL, HFILL }},
17372 { &hf_h245_originateCall,
17373 { "originateCall", "h245.originateCall_element",
17374 FT_NONE, BASE_NONE, NULL, 0,
17375 NULL, HFILL }},
17376 { &hf_h245_waitForCall,
17377 { "waitForCall", "h245.waitForCall_element",
17378 FT_NONE, BASE_NONE, NULL, 0,
17379 NULL, HFILL }},
17380 { &hf_h245_issueQuery,
17381 { "issueQuery", "h245.issueQuery_element",
17382 FT_NONE, BASE_NONE, NULL, 0,
17383 NULL, HFILL }},
17384 { &hf_h245_address,
17385 { "address", "h245.address",
17386 FT_UINT32, BASE_DEC, VALS(h245_T_address_vals), 0,
17387 NULL, HFILL }},
17388 { &hf_h245_internationalNumber,
17389 { "internationalNumber", "h245.internationalNumber",
17390 FT_STRING, BASE_NONE, NULL, 0,
17391 "NumericString_SIZE_1_16", HFILL }},
17392 { &hf_h245_nsapAddress,
17393 { "nsapAddress", "h245.nsapAddress",
17394 FT_BYTES, BASE_NONE, NULL, 0,
17395 "OCTET_STRING_SIZE_1_20", HFILL }},
17396 { &hf_h245_subaddress,
17397 { "subaddress", "h245.subaddress",
17398 FT_BYTES, BASE_NONE, NULL, 0,
17399 "OCTET_STRING_SIZE_1_20", HFILL }},
17400 { &hf_h245_audioHeaderPresent,
17401 { "audioHeaderPresent", "h245.audioHeaderPresent",
17402 FT_BOOLEAN, BASE_NONE, NULL, 0,
17403 "BOOLEAN", HFILL }},
17404 { &hf_h245_nullData,
17405 { "nullData", "h245.nullData_element",
17406 FT_NONE, BASE_NONE, NULL, 0,
17407 NULL, HFILL }},
17408 { &hf_h245_videoData,
17409 { "videoData", "h245.videoData",
17410 FT_UINT32, BASE_DEC, VALS(h245_VideoCapability_vals), 0,
17411 "VideoCapability", HFILL }},
17412 { &hf_h245_audioData,
17413 { "audioData", "h245.audioData",
17414 FT_UINT32, BASE_DEC, VALS(h245_AudioCapability_vals), 0,
17415 "AudioCapability", HFILL }},
17416 { &hf_h245_data,
17417 { "data", "h245.data_element",
17418 FT_NONE, BASE_NONE, NULL, 0,
17419 "DataApplicationCapability", HFILL }},
17420 { &hf_h245_encryptionData,
17421 { "encryptionData", "h245.encryptionData",
17422 FT_UINT32, BASE_DEC, VALS(h245_EncryptionMode_vals), 0,
17423 "EncryptionMode", HFILL }},
17424 { &hf_h245_h235Control,
17425 { "h235Control", "h245.h235Control_element",
17426 FT_NONE, BASE_NONE, NULL, 0,
17427 "NonStandardParameter", HFILL }},
17428 { &hf_h245_h235Media,
17429 { "h235Media", "h245.h235Media_element",
17430 FT_NONE, BASE_NONE, NULL, 0,
17431 NULL, HFILL }},
17432 { &hf_h245_multiplexedStream,
17433 { "multiplexedStream", "h245.multiplexedStream_element",
17434 FT_NONE, BASE_NONE, NULL, 0,
17435 "MultiplexedStreamParameter", HFILL }},
17436 { &hf_h245_redundancyEncoding,
17437 { "redundancyEncoding", "h245.redundancyEncoding_element",
17438 FT_NONE, BASE_NONE, NULL, 0,
17439 NULL, HFILL }},
17440 { &hf_h245_multiplePayloadStream,
17441 { "multiplePayloadStream", "h245.multiplePayloadStream_element",
17442 FT_NONE, BASE_NONE, NULL, 0,
17443 NULL, HFILL }},
17444 { &hf_h245_depFec,
17445 { "depFec", "h245.depFec",
17446 FT_UINT32, BASE_DEC, VALS(h245_DepFECData_vals), 0,
17447 "DepFECData", HFILL }},
17448 { &hf_h245_fec,
17449 { "fec", "h245.fec",
17450 FT_UINT32, BASE_DEC, VALS(h245_FECData_vals), 0,
17451 "FECData", HFILL }},
17452 { &hf_h245_mediaType,
17453 { "mediaType", "h245.mediaType",
17454 FT_UINT32, BASE_DEC, VALS(h245_T_mediaType_vals), 0,
17455 NULL, HFILL }},
17456 { &hf_h245_resourceID,
17457 { "resourceID", "h245.resourceID",
17458 FT_UINT32, BASE_DEC, NULL, 0,
17459 "INTEGER_0_65535", HFILL }},
17460 { &hf_h245_subChannelID,
17461 { "subChannelID", "h245.subChannelID",
17462 FT_UINT32, BASE_DEC, NULL, 0,
17463 "INTEGER_0_8191", HFILL }},
17464 { &hf_h245_pcr_pid,
17465 { "pcr-pid", "h245.pcr_pid",
17466 FT_UINT32, BASE_DEC, NULL, 0,
17467 "INTEGER_0_8191", HFILL }},
17468 { &hf_h245_programDescriptors,
17469 { "programDescriptors", "h245.programDescriptors",
17470 FT_BYTES, BASE_NONE, NULL, 0,
17471 "OCTET_STRING", HFILL }},
17472 { &hf_h245_streamDescriptors,
17473 { "streamDescriptors", "h245.streamDescriptors",
17474 FT_BYTES, BASE_NONE, NULL, 0,
17475 "OCTET_STRING", HFILL }},
17476 { &hf_h245_adaptationLayerType,
17477 { "adaptationLayerType", "h245.adaptationLayerType",
17478 FT_UINT32, BASE_DEC, VALS(h245_T_adaptationLayerType_vals), 0,
17479 NULL, HFILL }},
17480 { &hf_h245_h223_al_type_al1Framed,
17481 { "al1Framed", "h245.h223_al_type_al1Framed_element",
17482 FT_NONE, BASE_NONE, NULL, 0,
17483 "T_h223_al_type_al1Framed", HFILL }},
17484 { &hf_h245_h223_al_type_al1NotFramed,
17485 { "al1NotFramed", "h245.h223_al_type_al1NotFramed_element",
17486 FT_NONE, BASE_NONE, NULL, 0,
17487 "T_h223_al_type_al1NotFramed", HFILL }},
17488 { &hf_h245_h223_al_type_al2WithoutSequenceNumbers,
17489 { "al2WithoutSequenceNumbers", "h245.h223_al_type_al2WithoutSequenceNumbers_element",
17490 FT_NONE, BASE_NONE, NULL, 0,
17491 "T_h223_al_type_al2WithoutSequenceNumbers", HFILL }},
17492 { &hf_h245_h223_al_type_al2WithSequenceNumbers,
17493 { "al2WithSequenceNumbers", "h245.h223_al_type_al2WithSequenceNumbers_element",
17494 FT_NONE, BASE_NONE, NULL, 0,
17495 "T_h223_al_type_al2WithSequenceNumbers", HFILL }},
17496 { &hf_h245_controlFieldOctets,
17497 { "controlFieldOctets", "h245.controlFieldOctets",
17498 FT_UINT32, BASE_DEC, NULL, 0,
17499 NULL, HFILL }},
17500 { &hf_h245_al3_sendBufferSize,
17501 { "sendBufferSize", "h245.al3_sendBufferSize",
17502 FT_UINT32, BASE_DEC, NULL, 0,
17503 "T_al3_sendBufferSize", HFILL }},
17504 { &hf_h245_h223_al_type_al3,
17505 { "al3", "h245.h223_al_type_al3_element",
17506 FT_NONE, BASE_NONE, NULL, 0,
17507 "T_h223_al_type_al3", HFILL }},
17508 { &hf_h245_h223_al_type_al1M,
17509 { "al1M", "h245.h223_al_type_al1M_element",
17510 FT_NONE, BASE_NONE, NULL, 0,
17511 "T_h223_al_type_al1M", HFILL }},
17512 { &hf_h245_h223_al_type_al2M,
17513 { "al2M", "h245.h223_al_type_al2M_element",
17514 FT_NONE, BASE_NONE, NULL, 0,
17515 "T_h223_al_type_al2M", HFILL }},
17516 { &hf_h245_h223_al_type_al3M,
17517 { "al3M", "h245.h223_al_type_al3M_element",
17518 FT_NONE, BASE_NONE, NULL, 0,
17519 "T_h223_al_type_al3M", HFILL }},
17520 { &hf_h245_h223_lc_segmentableFlag,
17521 { "segmentableFlag", "h245.h223_lc_segmentableFlag",
17522 FT_BOOLEAN, BASE_NONE, NULL, 0,
17523 "T_h223_lc_segmentableFlag", HFILL }},
17524 { &hf_h245_transferMode,
17525 { "transferMode", "h245.transferMode",
17526 FT_UINT32, BASE_DEC, VALS(h245_T_transferMode_vals), 0,
17527 NULL, HFILL }},
17528 { &hf_h245_framed,
17529 { "framed", "h245.framed_element",
17530 FT_NONE, BASE_NONE, NULL, 0,
17531 NULL, HFILL }},
17532 { &hf_h245_unframed,
17533 { "unframed", "h245.unframed_element",
17534 FT_NONE, BASE_NONE, NULL, 0,
17535 NULL, HFILL }},
17536 { &hf_h245_aL1HeaderFEC,
17537 { "headerFEC", "h245.aL1HeaderFEC",
17538 FT_UINT32, BASE_DEC, VALS(h245_AL1HeaderFEC_vals), 0,
17539 "AL1HeaderFEC", HFILL }},
17540 { &hf_h245_sebch16_7,
17541 { "sebch16-7", "h245.sebch16_7_element",
17542 FT_NONE, BASE_NONE, NULL, 0,
17543 NULL, HFILL }},
17544 { &hf_h245_golay24_12,
17545 { "golay24-12", "h245.golay24_12_element",
17546 FT_NONE, BASE_NONE, NULL, 0,
17547 NULL, HFILL }},
17548 { &hf_h245_crcLength2,
17549 { "crcLength", "h245.crcLength2",
17550 FT_UINT32, BASE_DEC, VALS(h245_AL1CrcLength_vals), 0,
17551 "AL1CrcLength", HFILL }},
17552 { &hf_h245_crc4bit,
17553 { "crc4bit", "h245.crc4bit_element",
17554 FT_NONE, BASE_NONE, NULL, 0,
17555 NULL, HFILL }},
17556 { &hf_h245_crc12bit,
17557 { "crc12bit", "h245.crc12bit_element",
17558 FT_NONE, BASE_NONE, NULL, 0,
17559 NULL, HFILL }},
17560 { &hf_h245_crc20bit,
17561 { "crc20bit", "h245.crc20bit_element",
17562 FT_NONE, BASE_NONE, NULL, 0,
17563 NULL, HFILL }},
17564 { &hf_h245_crc28bit,
17565 { "crc28bit", "h245.crc28bit_element",
17566 FT_NONE, BASE_NONE, NULL, 0,
17567 NULL, HFILL }},
17568 { &hf_h245_crc8bit,
17569 { "crc8bit", "h245.crc8bit_element",
17570 FT_NONE, BASE_NONE, NULL, 0,
17571 NULL, HFILL }},
17572 { &hf_h245_crc16bit,
17573 { "crc16bit", "h245.crc16bit_element",
17574 FT_NONE, BASE_NONE, NULL, 0,
17575 NULL, HFILL }},
17576 { &hf_h245_crc32bit,
17577 { "crc32bit", "h245.crc32bit_element",
17578 FT_NONE, BASE_NONE, NULL, 0,
17579 NULL, HFILL }},
17580 { &hf_h245_crcNotUsed,
17581 { "crcNotUsed", "h245.crcNotUsed_element",
17582 FT_NONE, BASE_NONE, NULL, 0,
17583 NULL, HFILL }},
17584 { &hf_h245_rcpcCodeRate,
17585 { "rcpcCodeRate", "h245.rcpcCodeRate",
17586 FT_UINT32, BASE_DEC, NULL, 0,
17587 "INTEGER_8_32", HFILL }},
17588 { &hf_h245_noArq,
17589 { "noArq", "h245.noArq_element",
17590 FT_NONE, BASE_NONE, NULL, 0,
17591 NULL, HFILL }},
17592 { &hf_h245_typeIArq,
17593 { "typeIArq", "h245.typeIArq_element",
17594 FT_NONE, BASE_NONE, NULL, 0,
17595 "H223AnnexCArqParameters", HFILL }},
17596 { &hf_h245_typeIIArq,
17597 { "typeIIArq", "h245.typeIIArq_element",
17598 FT_NONE, BASE_NONE, NULL, 0,
17599 "H223AnnexCArqParameters", HFILL }},
17600 { &hf_h245_arqType,
17601 { "arqType", "h245.arqType",
17602 FT_UINT32, BASE_DEC, VALS(h245_ArqType_vals), 0,
17603 NULL, HFILL }},
17604 { &hf_h245_alsduSplitting,
17605 { "alsduSplitting", "h245.alsduSplitting",
17606 FT_BOOLEAN, BASE_NONE, NULL, 0,
17607 "BOOLEAN", HFILL }},
17608 { &hf_h245_rsCodeCorrection,
17609 { "rsCodeCorrection", "h245.rsCodeCorrection",
17610 FT_UINT32, BASE_DEC, NULL, 0,
17611 "INTEGER_0_127", HFILL }},
17612 { &hf_h245_aL2HeaderFEC,
17613 { "headerFEC", "h245.aL2HeaderFEC",
17614 FT_UINT32, BASE_DEC, VALS(h245_AL2HeaderFEC_vals), 0,
17615 "AL2HeaderFEC", HFILL }},
17616 { &hf_h245_sebch16_5,
17617 { "sebch16-5", "h245.sebch16_5_element",
17618 FT_NONE, BASE_NONE, NULL, 0,
17619 NULL, HFILL }},
17620 { &hf_h245_headerFormat,
17621 { "headerFormat", "h245.headerFormat",
17622 FT_UINT32, BASE_DEC, VALS(h245_T_headerFormat_vals), 0,
17623 NULL, HFILL }},
17624 { &hf_h245_crlength2,
17625 { "crcLength", "h245.crlength2",
17626 FT_UINT32, BASE_DEC, VALS(h245_AL3CrcLength_vals), 0,
17627 "AL3CrcLength", HFILL }},
17628 { &hf_h245_numberOfRetransmissions,
17629 { "numberOfRetransmissions", "h245.numberOfRetransmissions",
17630 FT_UINT32, BASE_DEC, VALS(h245_T_numberOfRetransmissions_vals), 0,
17631 NULL, HFILL }},
17632 { &hf_h245_finite,
17633 { "finite", "h245.finite",
17634 FT_UINT32, BASE_DEC, NULL, 0,
17635 "INTEGER_0_16", HFILL }},
17636 { &hf_h245_infinite,
17637 { "infinite", "h245.infinite_element",
17638 FT_NONE, BASE_NONE, NULL, 0,
17639 NULL, HFILL }},
17640 { &hf_h245_sendBufferSize,
17641 { "sendBufferSize", "h245.sendBufferSize",
17642 FT_UINT32, BASE_DEC, NULL, 0,
17643 "INTEGER_0_16777215", HFILL }},
17644 { &hf_h245_hdlcParameters,
17645 { "hdlcParameters", "h245.hdlcParameters_element",
17646 FT_NONE, BASE_NONE, NULL, 0,
17647 "V76HDLCParameters", HFILL }},
17648 { &hf_h245_suspendResume,
17649 { "suspendResume", "h245.suspendResume",
17650 FT_UINT32, BASE_DEC, VALS(h245_T_suspendResume_vals), 0,
17651 NULL, HFILL }},
17652 { &hf_h245_noSuspendResume,
17653 { "noSuspendResume", "h245.noSuspendResume_element",
17654 FT_NONE, BASE_NONE, NULL, 0,
17655 NULL, HFILL }},
17656 { &hf_h245_suspendResumewAddress,
17657 { "suspendResumewAddress", "h245.suspendResumewAddress_element",
17658 FT_NONE, BASE_NONE, NULL, 0,
17659 NULL, HFILL }},
17660 { &hf_h245_suspendResumewoAddress,
17661 { "suspendResumewoAddress", "h245.suspendResumewoAddress_element",
17662 FT_NONE, BASE_NONE, NULL, 0,
17663 NULL, HFILL }},
17664 { &hf_h245_uIH,
17665 { "uIH", "h245.uIH",
17666 FT_BOOLEAN, BASE_NONE, NULL, 0,
17667 "BOOLEAN", HFILL }},
17668 { &hf_h245_v76_mode,
17669 { "mode", "h245.v76_mode",
17670 FT_UINT32, BASE_DEC, VALS(h245_V76LCP_mode_vals), 0,
17671 "V76LCP_mode", HFILL }},
17672 { &hf_h245_eRM,
17673 { "eRM", "h245.eRM_element",
17674 FT_NONE, BASE_NONE, NULL, 0,
17675 NULL, HFILL }},
17676 { &hf_h245_windowSize,
17677 { "windowSize", "h245.windowSize",
17678 FT_UINT32, BASE_DEC, NULL, 0,
17679 "INTEGER_1_127", HFILL }},
17680 { &hf_h245_recovery,
17681 { "recovery", "h245.recovery",
17682 FT_UINT32, BASE_DEC, VALS(h245_T_recovery_vals), 0,
17683 NULL, HFILL }},
17684 { &hf_h245_rej,
17685 { "rej", "h245.rej_element",
17686 FT_NONE, BASE_NONE, NULL, 0,
17687 NULL, HFILL }},
17688 { &hf_h245_sREJ,
17689 { "sREJ", "h245.sREJ_element",
17690 FT_NONE, BASE_NONE, NULL, 0,
17691 NULL, HFILL }},
17692 { &hf_h245_mSREJ,
17693 { "mSREJ", "h245.mSREJ_element",
17694 FT_NONE, BASE_NONE, NULL, 0,
17695 NULL, HFILL }},
17696 { &hf_h245_uNERM,
17697 { "uNERM", "h245.uNERM_element",
17698 FT_NONE, BASE_NONE, NULL, 0,
17699 NULL, HFILL }},
17700 { &hf_h245_v75Parameters,
17701 { "v75Parameters", "h245.v75Parameters_element",
17702 FT_NONE, BASE_NONE, NULL, 0,
17703 NULL, HFILL }},
17704 { &hf_h245_crcLength,
17705 { "crcLength", "h245.crcLength",
17706 FT_UINT32, BASE_DEC, VALS(h245_CRCLength_vals), 0,
17707 NULL, HFILL }},
17708 { &hf_h245_n401,
17709 { "n401", "h245.n401",
17710 FT_UINT32, BASE_DEC, NULL, 0,
17711 "INTEGER_1_4095", HFILL }},
17712 { &hf_h245_loopbackTestProcedure,
17713 { "loopbackTestProcedure", "h245.loopbackTestProcedure",
17714 FT_BOOLEAN, BASE_NONE, NULL, 0,
17715 "BOOLEAN", HFILL }},
17716 { &hf_h245_sessionID_0_255,
17717 { "sessionID", "h245.sessionID_0_255",
17718 FT_UINT32, BASE_DEC, NULL, 0,
17719 "INTEGER_0_255", HFILL }},
17720 { &hf_h245_associatedSessionID,
17721 { "associatedSessionID", "h245.associatedSessionID",
17722 FT_UINT32, BASE_DEC, NULL, 0,
17723 "INTEGER_1_255", HFILL }},
17724 { &hf_h245_mediaChannel,
17725 { "mediaChannel", "h245.mediaChannel",
17726 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
17727 NULL, HFILL }},
17728 { &hf_h245_mediaGuaranteedDelivery,
17729 { "mediaGuaranteedDelivery", "h245.mediaGuaranteedDelivery",
17730 FT_BOOLEAN, BASE_NONE, NULL, 0,
17731 "BOOLEAN", HFILL }},
17732 { &hf_h245_mediaControlChannel,
17733 { "mediaControlChannel", "h245.mediaControlChannel",
17734 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
17735 NULL, HFILL }},
17736 { &hf_h245_mediaControlGuaranteedDelivery,
17737 { "mediaControlGuaranteedDelivery", "h245.mediaControlGuaranteedDelivery",
17738 FT_BOOLEAN, BASE_NONE, NULL, 0,
17739 "BOOLEAN", HFILL }},
17740 { &hf_h245_destination,
17741 { "destination", "h245.destination_element",
17742 FT_NONE, BASE_NONE, NULL, 0,
17743 "TerminalLabel", HFILL }},
17744 { &hf_h245_mediaPacketization,
17745 { "mediaPacketization", "h245.mediaPacketization",
17746 FT_UINT32, BASE_DEC, VALS(h245_T_mediaPacketization_vals), 0,
17747 NULL, HFILL }},
17748 { &hf_h245_h261aVideoPacketizationFlag,
17749 { "h261aVideoPacketization", "h245.h261aVideoPacketizationFlag_element",
17750 FT_NONE, BASE_NONE, NULL, 0,
17751 NULL, HFILL }},
17752 { &hf_h245_rtpPayloadType,
17753 { "rtpPayloadType", "h245.rtpPayloadType_element",
17754 FT_NONE, BASE_NONE, NULL, 0,
17755 NULL, HFILL }},
17756 { &hf_h245_source,
17757 { "source", "h245.source_element",
17758 FT_NONE, BASE_NONE, NULL, 0,
17759 "TerminalLabel", HFILL }},
17760 { &hf_h245_payloadDescriptor,
17761 { "payloadDescriptor", "h245.payloadDescriptor",
17762 FT_UINT32, BASE_DEC, VALS(h245_T_payloadDescriptor_vals), 0,
17763 NULL, HFILL }},
17764 { &hf_h245_rfc_number,
17765 { "rfc-number", "h245.rfc_number",
17766 FT_UINT32, BASE_DEC, VALS(h245_RFC_number_vals), 0,
17767 NULL, HFILL }},
17768 { &hf_h245_oid,
17769 { "oid", "h245.oid",
17770 FT_OID, BASE_NONE, NULL, 0,
17771 "OBJECT_IDENTIFIER", HFILL }},
17772 { &hf_h245_rtpPayloadType_01,
17773 { "payloadType", "h245.rtpPayloadType",
17774 FT_UINT32, BASE_DEC, NULL, 0,
17775 "T_rtpPayloadType", HFILL }},
17776 { &hf_h245_secondaryEncoding,
17777 { "secondaryEncoding", "h245.secondaryEncoding",
17778 FT_UINT32, BASE_DEC, VALS(h245_DataType_vals), 0,
17779 "DataType", HFILL }},
17780 { &hf_h245_rtpRedundancyEncoding,
17781 { "rtpRedundancyEncoding", "h245.rtpRedundancyEncoding_element",
17782 FT_NONE, BASE_NONE, NULL, 0,
17783 NULL, HFILL }},
17784 { &hf_h245_primary,
17785 { "primary", "h245.primary_element",
17786 FT_NONE, BASE_NONE, NULL, 0,
17787 "RedundancyEncodingElement", HFILL }},
17788 { &hf_h245_secondary,
17789 { "secondary", "h245.secondary",
17790 FT_UINT32, BASE_DEC, NULL, 0,
17791 "SEQUENCE_OF_RedundancyEncodingElement", HFILL }},
17792 { &hf_h245_secondary_item,
17793 { "RedundancyEncodingElement", "h245.RedundancyEncodingElement_element",
17794 FT_NONE, BASE_NONE, NULL, 0,
17795 NULL, HFILL }},
17796 { &hf_h245_payloadType,
17797 { "payloadType", "h245.payloadType",
17798 FT_UINT32, BASE_DEC, NULL, 0,
17799 "INTEGER_0_127", HFILL }},
17800 { &hf_h245_elements,
17801 { "elements", "h245.elements",
17802 FT_UINT32, BASE_DEC, NULL, 0,
17803 "SEQUENCE_OF_MultiplePayloadStreamElement", HFILL }},
17804 { &hf_h245_elements_item,
17805 { "MultiplePayloadStreamElement", "h245.MultiplePayloadStreamElement_element",
17806 FT_NONE, BASE_NONE, NULL, 0,
17807 NULL, HFILL }},
17808 { &hf_h245_dep_rfc2733,
17809 { "rfc2733", "h245.dep_rfc2733_element",
17810 FT_NONE, BASE_NONE, NULL, 0,
17811 "RFC2733Data", HFILL }},
17812 { &hf_h245_fec_data_mode,
17813 { "mode", "h245.fec_data_mode",
17814 FT_UINT32, BASE_DEC, VALS(h245_FECdata_mode_vals), 0,
17815 "FECdata_mode", HFILL }},
17816 { &hf_h245_redundancyEncodingFlag,
17817 { "redundancyEncoding", "h245.redundancyEncodingFlag_element",
17818 FT_NONE, BASE_NONE, NULL, 0,
17819 NULL, HFILL }},
17820 { &hf_h245_differentPort,
17821 { "differentPort", "h245.differentPort_element",
17822 FT_NONE, BASE_NONE, NULL, 0,
17823 NULL, HFILL }},
17824 { &hf_h245_protectedSessionID,
17825 { "protectedSessionID", "h245.protectedSessionID",
17826 FT_UINT32, BASE_DEC, NULL, 0,
17827 "INTEGER_1_255", HFILL }},
17828 { &hf_h245_protectedPayloadType,
17829 { "protectedPayloadType", "h245.protectedPayloadType",
17830 FT_UINT32, BASE_DEC, NULL, 0,
17831 "INTEGER_0_127", HFILL }},
17832 { &hf_h245_samePort,
17833 { "samePort", "h245.samePort_element",
17834 FT_NONE, BASE_NONE, NULL, 0,
17835 NULL, HFILL }},
17836 { &hf_h245_separateStream,
17837 { "separateStream", "h245.separateStream",
17838 FT_UINT32, BASE_DEC, VALS(h245_DepSeparateStream_vals), 0,
17839 "DepSeparateStream", HFILL }},
17840 { &hf_h245_rfc2733,
17841 { "rfc2733", "h245.rfc2733_element",
17842 FT_NONE, BASE_NONE, NULL, 0,
17843 NULL, HFILL }},
17844 { &hf_h245_pktMode,
17845 { "pktMode", "h245.pktMode",
17846 FT_UINT32, BASE_DEC, VALS(h245_T_pktMode_vals), 0,
17847 NULL, HFILL }},
17848 { &hf_h245_rfc2198coding,
17849 { "rfc2198coding", "h245.rfc2198coding_element",
17850 FT_NONE, BASE_NONE, NULL, 0,
17851 NULL, HFILL }},
17852 { &hf_h245_mode_rfc2733sameport,
17853 { "rfc2733sameport", "h245.mode_rfc2733sameport_element",
17854 FT_NONE, BASE_NONE, NULL, 0,
17855 "T_mode_rfc2733sameport", HFILL }},
17856 { &hf_h245_mode_rfc2733diffport,
17857 { "rfc2733diffport", "h245.mode_rfc2733diffport_element",
17858 FT_NONE, BASE_NONE, NULL, 0,
17859 "T_mode_rfc2733diffport", HFILL }},
17860 { &hf_h245_protectedChannel,
17861 { "protectedChannel", "h245.protectedChannel",
17862 FT_UINT32, BASE_DEC, NULL, 0,
17863 "LogicalChannelNumber", HFILL }},
17864 { &hf_h245_unicastAddress,
17865 { "unicastAddress", "h245.unicastAddress",
17866 FT_UINT32, BASE_DEC, VALS(h245_UnicastAddress_vals), 0,
17867 NULL, HFILL }},
17868 { &hf_h245_multicastAddress,
17869 { "multicastAddress", "h245.multicastAddress",
17870 FT_UINT32, BASE_DEC, VALS(h245_MulticastAddress_vals), 0,
17871 NULL, HFILL }},
17872 { &hf_h245_iPAddress,
17873 { "iPAddress", "h245.iPAddress_element",
17874 FT_NONE, BASE_NONE, NULL, 0,
17875 NULL, HFILL }},
17876 { &hf_h245_ip4_network,
17877 { "network", "h245.ip4_network",
17878 FT_IPv4, BASE_NONE, NULL, 0,
17879 "Ipv4_network", HFILL }},
17880 { &hf_h245_tsapIdentifier,
17881 { "tsapIdentifier", "h245.tsapIdentifier",
17882 FT_UINT32, BASE_DEC, NULL, 0,
17883 NULL, HFILL }},
17884 { &hf_h245_iPXAddress,
17885 { "iPXAddress", "h245.iPXAddress_element",
17886 FT_NONE, BASE_NONE, NULL, 0,
17887 NULL, HFILL }},
17888 { &hf_h245_node,
17889 { "node", "h245.node",
17890 FT_BYTES, BASE_NONE, NULL, 0,
17891 "OCTET_STRING_SIZE_6", HFILL }},
17892 { &hf_h245_netnum,
17893 { "netnum", "h245.netnum",
17894 FT_BYTES, BASE_NONE, NULL, 0,
17895 "OCTET_STRING_SIZE_4", HFILL }},
17896 { &hf_h245_ipx_tsapIdentifier,
17897 { "tsapIdentifier", "h245.ipx.tsapIdentifier",
17898 FT_BYTES, BASE_NONE, NULL, 0,
17899 "OCTET_STRING_SIZE_2", HFILL }},
17900 { &hf_h245_iP6Address,
17901 { "iP6Address", "h245.iP6Address_element",
17902 FT_NONE, BASE_NONE, NULL, 0,
17903 NULL, HFILL }},
17904 { &hf_h245_ip6_network,
17905 { "network", "h245.ip6_network",
17906 FT_IPv6, BASE_NONE, NULL, 0,
17907 "T_ip6_network", HFILL }},
17908 { &hf_h245_ipv6_tsapIdentifier,
17909 { "tsapIdentifier", "h245.ipv6.tsapIdentifier",
17910 FT_UINT32, BASE_DEC, NULL, 0,
17911 "T_ipv6_tsapIdentifier", HFILL }},
17912 { &hf_h245_netBios,
17913 { "netBios", "h245.netBios",
17914 FT_BYTES, BASE_NONE, NULL, 0,
17915 "OCTET_STRING_SIZE_16", HFILL }},
17916 { &hf_h245_iPSourceRouteAddress,
17917 { "iPSourceRouteAddress", "h245.iPSourceRouteAddress_element",
17918 FT_NONE, BASE_NONE, NULL, 0,
17919 NULL, HFILL }},
17920 { &hf_h245_routing,
17921 { "routing", "h245.routing",
17922 FT_UINT32, BASE_DEC, VALS(h245_T_routing_vals), 0,
17923 NULL, HFILL }},
17924 { &hf_h245_strict,
17925 { "strict", "h245.strict_element",
17926 FT_NONE, BASE_NONE, NULL, 0,
17927 NULL, HFILL }},
17928 { &hf_h245_loose,
17929 { "loose", "h245.loose_element",
17930 FT_NONE, BASE_NONE, NULL, 0,
17931 NULL, HFILL }},
17932 { &hf_h245_network,
17933 { "network", "h245.network",
17934 FT_BYTES, BASE_NONE, NULL, 0,
17935 "OCTET_STRING_SIZE_4", HFILL }},
17936 { &hf_h245_iPSrcRoute_tsapIdentifier,
17937 { "tsapIdentifier", "h245.iPSrcRoute.tsapIdentifier",
17938 FT_UINT32, BASE_DEC, NULL, 0,
17939 "INTEGER_0_65535", HFILL }},
17940 { &hf_h245_route,
17941 { "route", "h245.route",
17942 FT_UINT32, BASE_DEC, NULL, 0,
17943 NULL, HFILL }},
17944 { &hf_h245_route_item,
17945 { "route item", "h245.route_item",
17946 FT_BYTES, BASE_NONE, NULL, 0,
17947 "OCTET_STRING_SIZE_4", HFILL }},
17948 { &hf_h245_nsap,
17949 { "nsap", "h245.nsap",
17950 FT_BYTES, BASE_NONE, NULL, 0,
17951 "OCTET_STRING_SIZE_1_20", HFILL }},
17952 { &hf_h245_nonStandardAddress,
17953 { "nonStandardAddress", "h245.nonStandardAddress_element",
17954 FT_NONE, BASE_NONE, NULL, 0,
17955 "NonStandardParameter", HFILL }},
17956 { &hf_h245_mIPAddress,
17957 { "iPAddress", "h245.mIPAddress_element",
17958 FT_NONE, BASE_NONE, NULL, 0,
17959 "MIPAddress", HFILL }},
17960 { &hf_h245_mip4_network,
17961 { "network", "h245.mip4_network",
17962 FT_IPv4, BASE_NONE, NULL, 0,
17963 "OCTET_STRING_SIZE_4", HFILL }},
17964 { &hf_h245_multicast_tsapIdentifier,
17965 { "tsapIdentifier", "h245.multicast.tsapIdentifier",
17966 FT_UINT32, BASE_DEC, NULL, 0,
17967 "INTEGER_0_65535", HFILL }},
17968 { &hf_h245_mIP6Address,
17969 { "iP6Address", "h245.mIP6Address_element",
17970 FT_NONE, BASE_NONE, NULL, 0,
17971 "MIP6Address", HFILL }},
17972 { &hf_h245_mip6_network,
17973 { "network", "h245.mip6_network",
17974 FT_IPv6, BASE_NONE, NULL, 0,
17975 "OCTET_STRING_SIZE_16", HFILL }},
17976 { &hf_h245_multicast_IPv6_tsapIdentifier,
17977 { "tsapIdentifier", "h245.multicast_IPv6.tsapIdentifier",
17978 FT_UINT32, BASE_DEC, NULL, 0,
17979 "INTEGER_0_65535", HFILL }},
17980 { &hf_h245_synchFlag,
17981 { "synchFlag", "h245.synchFlag",
17982 FT_UINT32, BASE_DEC, NULL, 0,
17983 "INTEGER_0_255", HFILL }},
17984 { &hf_h245_h235Key,
17985 { "h235Key", "h245.h235Key",
17986 FT_BYTES, BASE_NONE, NULL, 0,
17987 "OCTET_STRING_SIZE_1_65535", HFILL }},
17988 { &hf_h245_escrowentry,
17989 { "escrowentry", "h245.escrowentry",
17990 FT_UINT32, BASE_DEC, NULL, 0,
17991 "SEQUENCE_SIZE_1_256_OF_EscrowData", HFILL }},
17992 { &hf_h245_escrowentry_item,
17993 { "EscrowData", "h245.EscrowData_element",
17994 FT_NONE, BASE_NONE, NULL, 0,
17995 NULL, HFILL }},
17996 { &hf_h245_genericParameter,
17997 { "genericParameter", "h245.genericParameter_element",
17998 FT_NONE, BASE_NONE, NULL, 0,
17999 NULL, HFILL }},
18000 { &hf_h245_escrowID,
18001 { "escrowID", "h245.escrowID",
18002 FT_OID, BASE_NONE, NULL, 0,
18003 "OBJECT_IDENTIFIER", HFILL }},
18004 { &hf_h245_escrowValue,
18005 { "escrowValue", "h245.escrowValue",
18006 FT_BYTES, BASE_NONE, NULL, 0,
18007 "BIT_STRING_SIZE_1_65535", HFILL }},
18008 { &hf_h245_olc_ack_fw_lcn,
18009 { "forwardLogicalChannelNumber", "h245.olc_ack_fw_lcn",
18010 FT_UINT32, BASE_DEC, NULL, 0,
18011 "OLC_ack_fw_lcn", HFILL }},
18012 { &hf_h245_olc_ack_reverseLogicalChannelParameters,
18013 { "reverseLogicalChannelParameters", "h245.olc_ack_reverseLogicalChannelParameters_element",
18014 FT_NONE, BASE_NONE, NULL, 0,
18015 "OLC_ack_reverseLogicalChannelParameters", HFILL }},
18016 { &hf_h245_reverseLogicalChannelNumber,
18017 { "reverseLogicalChannelNumber", "h245.reverseLogicalChannelNumber",
18018 FT_UINT32, BASE_DEC, NULL, 0,
18019 NULL, HFILL }},
18020 { &hf_h245_olc_ack_multiplexParameters,
18021 { "multiplexParameters", "h245.olc_ack_multiplexParameters",
18022 FT_UINT32, BASE_DEC, VALS(h245_T_olc_ack_multiplexParameters_vals), 0,
18023 "T_olc_ack_multiplexParameters", HFILL }},
18024 { &hf_h245_forwardMultiplexAckParameters,
18025 { "forwardMultiplexAckParameters", "h245.forwardMultiplexAckParameters",
18026 FT_UINT32, BASE_DEC, VALS(h245_T_forwardMultiplexAckParameters_vals), 0,
18027 NULL, HFILL }},
18028 { &hf_h245_h2250LogicalChannelAckParameters,
18029 { "h2250LogicalChannelAckParameters", "h245.h2250LogicalChannelAckParameters_element",
18030 FT_NONE, BASE_NONE, NULL, 0,
18031 NULL, HFILL }},
18032 { &hf_h245_forwardLogicalChannelNumber,
18033 { "forwardLogicalChannelNumber", "h245.forwardLogicalChannelNumber",
18034 FT_UINT32, BASE_DEC, NULL, 0,
18035 "LogicalChannelNumber", HFILL }},
18036 { &hf_h245_olc_rej_cause,
18037 { "cause", "h245.olc_rej_cause",
18038 FT_UINT32, BASE_DEC, VALS(h245_OpenLogicalChannelRejectCause_vals), 0,
18039 "OpenLogicalChannelRejectCause", HFILL }},
18040 { &hf_h245_unsuitableReverseParameters,
18041 { "unsuitableReverseParameters", "h245.unsuitableReverseParameters_element",
18042 FT_NONE, BASE_NONE, NULL, 0,
18043 NULL, HFILL }},
18044 { &hf_h245_dataTypeNotSupported,
18045 { "dataTypeNotSupported", "h245.dataTypeNotSupported_element",
18046 FT_NONE, BASE_NONE, NULL, 0,
18047 NULL, HFILL }},
18048 { &hf_h245_dataTypeNotAvailable,
18049 { "dataTypeNotAvailable", "h245.dataTypeNotAvailable_element",
18050 FT_NONE, BASE_NONE, NULL, 0,
18051 NULL, HFILL }},
18052 { &hf_h245_unknownDataType,
18053 { "unknownDataType", "h245.unknownDataType_element",
18054 FT_NONE, BASE_NONE, NULL, 0,
18055 NULL, HFILL }},
18056 { &hf_h245_dataTypeALCombinationNotSupported,
18057 { "dataTypeALCombinationNotSupported", "h245.dataTypeALCombinationNotSupported_element",
18058 FT_NONE, BASE_NONE, NULL, 0,
18059 NULL, HFILL }},
18060 { &hf_h245_multicastChannelNotAllowed,
18061 { "multicastChannelNotAllowed", "h245.multicastChannelNotAllowed_element",
18062 FT_NONE, BASE_NONE, NULL, 0,
18063 NULL, HFILL }},
18064 { &hf_h245_insufficientBandwidth,
18065 { "insufficientBandwidth", "h245.insufficientBandwidth_element",
18066 FT_NONE, BASE_NONE, NULL, 0,
18067 NULL, HFILL }},
18068 { &hf_h245_separateStackEstablishmentFailed,
18069 { "separateStackEstablishmentFailed", "h245.separateStackEstablishmentFailed_element",
18070 FT_NONE, BASE_NONE, NULL, 0,
18071 NULL, HFILL }},
18072 { &hf_h245_invalidSessionID,
18073 { "invalidSessionID", "h245.invalidSessionID_element",
18074 FT_NONE, BASE_NONE, NULL, 0,
18075 NULL, HFILL }},
18076 { &hf_h245_masterSlaveConflict,
18077 { "masterSlaveConflict", "h245.masterSlaveConflict_element",
18078 FT_NONE, BASE_NONE, NULL, 0,
18079 NULL, HFILL }},
18080 { &hf_h245_waitForCommunicationMode,
18081 { "waitForCommunicationMode", "h245.waitForCommunicationMode_element",
18082 FT_NONE, BASE_NONE, NULL, 0,
18083 NULL, HFILL }},
18084 { &hf_h245_invalidDependentChannel,
18085 { "invalidDependentChannel", "h245.invalidDependentChannel_element",
18086 FT_NONE, BASE_NONE, NULL, 0,
18087 NULL, HFILL }},
18088 { &hf_h245_replacementForRejected,
18089 { "replacementForRejected", "h245.replacementForRejected_element",
18090 FT_NONE, BASE_NONE, NULL, 0,
18091 NULL, HFILL }},
18092 { &hf_h245_securityDenied,
18093 { "securityDenied", "h245.securityDenied_element",
18094 FT_NONE, BASE_NONE, NULL, 0,
18095 NULL, HFILL }},
18096 { &hf_h245_qoSControlNotSupported,
18097 { "qoSControlNotSupported", "h245.qoSControlNotSupported_element",
18098 FT_NONE, BASE_NONE, NULL, 0,
18099 NULL, HFILL }},
18100 { &hf_h245_sessionID,
18101 { "sessionID", "h245.sessionID",
18102 FT_UINT32, BASE_DEC, NULL, 0,
18103 "INTEGER_1_255", HFILL }},
18104 { &hf_h245_ack_mediaChannel,
18105 { "mediaChannel", "h245.ack_mediaChannel",
18106 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
18107 "Ack_mediaChannel", HFILL }},
18108 { &hf_h245_ack_mediaControlChannel,
18109 { "mediaControlChannel", "h245.ack_mediaControlChannel",
18110 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
18111 "Ack_mediaControlChannel", HFILL }},
18112 { &hf_h245_flowControlToZero,
18113 { "flowControlToZero", "h245.flowControlToZero",
18114 FT_BOOLEAN, BASE_NONE, NULL, 0,
18115 "BOOLEAN", HFILL }},
18116 { &hf_h245_cLC_source,
18117 { "source", "h245.cLC_source",
18118 FT_UINT32, BASE_DEC, VALS(h245_T_cLC_source_vals), 0,
18119 "T_cLC_source", HFILL }},
18120 { &hf_h245_user,
18121 { "user", "h245.user_element",
18122 FT_NONE, BASE_NONE, NULL, 0,
18123 NULL, HFILL }},
18124 { &hf_h245_lcse,
18125 { "lcse", "h245.lcse_element",
18126 FT_NONE, BASE_NONE, NULL, 0,
18127 NULL, HFILL }},
18128 { &hf_h245_clc_reason,
18129 { "reason", "h245.clc_reason",
18130 FT_UINT32, BASE_DEC, VALS(h245_Clc_reason_vals), 0,
18131 "Clc_reason", HFILL }},
18132 { &hf_h245_unknown,
18133 { "unknown", "h245.unknown_element",
18134 FT_NONE, BASE_NONE, NULL, 0,
18135 NULL, HFILL }},
18136 { &hf_h245_reopen,
18137 { "reopen", "h245.reopen_element",
18138 FT_NONE, BASE_NONE, NULL, 0,
18139 NULL, HFILL }},
18140 { &hf_h245_reservationFailure,
18141 { "reservationFailure", "h245.reservationFailure_element",
18142 FT_NONE, BASE_NONE, NULL, 0,
18143 NULL, HFILL }},
18144 { &hf_h245_networkErrorCode,
18145 { "networkErrorCode", "h245.networkErrorCode",
18146 FT_UINT32, BASE_DEC, NULL, 0,
18147 "INTEGER_0_255", HFILL }},
18148 { &hf_h245_qosCapability,
18149 { "qosCapability", "h245.qosCapability_element",
18150 FT_NONE, BASE_NONE, NULL, 0,
18151 NULL, HFILL }},
18152 { &hf_h245_reason,
18153 { "reason", "h245.reason",
18154 FT_UINT32, BASE_DEC, VALS(h245_T_reason_vals), 0,
18155 NULL, HFILL }},
18156 { &hf_h245_normal,
18157 { "normal", "h245.normal_element",
18158 FT_NONE, BASE_NONE, NULL, 0,
18159 NULL, HFILL }},
18160 { &hf_h245_req_chan_clos_rej_cause,
18161 { "cause", "h245.req_chan_clos_rej_cause",
18162 FT_UINT32, BASE_DEC, VALS(h245_RequestChannelCloseRejectCause_vals), 0,
18163 "RequestChannelCloseRejectCause", HFILL }},
18164 { &hf_h245_multiplexEntryDescriptors,
18165 { "multiplexEntryDescriptors", "h245.multiplexEntryDescriptors",
18166 FT_UINT32, BASE_DEC, NULL, 0,
18167 "SET_SIZE_1_15_OF_MultiplexEntryDescriptor", HFILL }},
18168 { &hf_h245_multiplexEntryDescriptors_item,
18169 { "MultiplexEntryDescriptor", "h245.MultiplexEntryDescriptor_element",
18170 FT_NONE, BASE_NONE, NULL, 0,
18171 NULL, HFILL }},
18172 { &hf_h245_multiplexTableEntryNumber,
18173 { "multiplexTableEntryNumber", "h245.multiplexTableEntryNumber",
18174 FT_UINT32, BASE_DEC, NULL, 0,
18175 NULL, HFILL }},
18176 { &hf_h245_elementList,
18177 { "elementList", "h245.elementList",
18178 FT_UINT32, BASE_DEC, NULL, 0,
18179 NULL, HFILL }},
18180 { &hf_h245_elementList_item,
18181 { "MultiplexElement", "h245.MultiplexElement_element",
18182 FT_NONE, BASE_NONE, NULL, 0,
18183 NULL, HFILL }},
18184 { &hf_h245_me_type,
18185 { "type", "h245.me_type",
18186 FT_UINT32, BASE_DEC, VALS(h245_Me_type_vals), 0,
18187 "Me_type", HFILL }},
18188 { &hf_h245_logicalChannelNum,
18189 { "logicalChannelNumber", "h245.logicalChannelNum",
18190 FT_UINT32, BASE_DEC, NULL, 0,
18191 "T_logicalChannelNum", HFILL }},
18192 { &hf_h245_subElementList,
18193 { "subElementList", "h245.subElementList",
18194 FT_UINT32, BASE_DEC, NULL, 0,
18195 NULL, HFILL }},
18196 { &hf_h245_subElementList_item,
18197 { "MultiplexElement", "h245.MultiplexElement_element",
18198 FT_NONE, BASE_NONE, NULL, 0,
18199 NULL, HFILL }},
18200 { &hf_h245_me_repeatCount,
18201 { "repeatCount", "h245.me_repeatCount",
18202 FT_UINT32, BASE_DEC, VALS(h245_ME_repeatCount_vals), 0,
18203 "ME_repeatCount", HFILL }},
18204 { &hf_h245_me_repeatCount_finite,
18205 { "finite", "h245.me_repeatCount_finite",
18206 FT_UINT32, BASE_DEC, NULL, 0,
18207 "ME_finiteRepeatCount", HFILL }},
18208 { &hf_h245_untilClosingFlag,
18209 { "untilClosingFlag", "h245.untilClosingFlag_element",
18210 FT_NONE, BASE_NONE, NULL, 0,
18211 NULL, HFILL }},
18212 { &hf_h245_multiplexTableEntryNumbers,
18213 { "multiplexTableEntryNumber", "h245.multiplexTableEntryNumbers",
18214 FT_UINT32, BASE_DEC, NULL, 0,
18215 "SET_SIZE_1_15_OF_MultiplexTableEntryNumber", HFILL }},
18216 { &hf_h245_multiplexTableEntryNumbers_item,
18217 { "MultiplexTableEntryNumber", "h245.MultiplexTableEntryNumber",
18218 FT_UINT32, BASE_DEC, NULL, 0,
18219 NULL, HFILL }},
18220 { &hf_h245_sendRejectionDescriptions,
18221 { "rejectionDescriptions", "h245.sendRejectionDescriptions",
18222 FT_UINT32, BASE_DEC, NULL, 0,
18223 "SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions", HFILL }},
18224 { &hf_h245_sendRejectionDescriptions_item,
18225 { "MultiplexEntryRejectionDescriptions", "h245.MultiplexEntryRejectionDescriptions_element",
18226 FT_NONE, BASE_NONE, NULL, 0,
18227 NULL, HFILL }},
18228 { &hf_h245_mux_rej_cause,
18229 { "cause", "h245.mux_rej_cause",
18230 FT_UINT32, BASE_DEC, VALS(h245_MultiplexEntryRejectionDescriptionsCause_vals), 0,
18231 "MultiplexEntryRejectionDescriptionsCause", HFILL }},
18232 { &hf_h245_unspecifiedCause,
18233 { "unspecifiedCause", "h245.unspecifiedCause_element",
18234 FT_NONE, BASE_NONE, NULL, 0,
18235 NULL, HFILL }},
18236 { &hf_h245_descriptorTooComplex,
18237 { "descriptorTooComplex", "h245.descriptorTooComplex_element",
18238 FT_NONE, BASE_NONE, NULL, 0,
18239 NULL, HFILL }},
18240 { &hf_h245_entryNumbers,
18241 { "entryNumbers", "h245.entryNumbers",
18242 FT_UINT32, BASE_DEC, NULL, 0,
18243 "SET_SIZE_1_15_OF_MultiplexTableEntryNumber", HFILL }},
18244 { &hf_h245_entryNumbers_item,
18245 { "MultiplexTableEntryNumber", "h245.MultiplexTableEntryNumber",
18246 FT_UINT32, BASE_DEC, NULL, 0,
18247 NULL, HFILL }},
18248 { &hf_h245_rejectionDescriptions,
18249 { "rejectionDescriptions", "h245.rejectionDescriptions",
18250 FT_UINT32, BASE_DEC, NULL, 0,
18251 "SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions", HFILL }},
18252 { &hf_h245_rejectionDescriptions_item,
18253 { "RequestMultiplexEntryRejectionDescriptions", "h245.RequestMultiplexEntryRejectionDescriptions_element",
18254 FT_NONE, BASE_NONE, NULL, 0,
18255 NULL, HFILL }},
18256 { &hf_h245_req_mux_rej_cause,
18257 { "cause", "h245.req_mux_rej_cause",
18258 FT_UINT32, BASE_DEC, VALS(h245_RequestMultiplexEntryRejectionDescriptionsCause_vals), 0,
18259 "RequestMultiplexEntryRejectionDescriptionsCause", HFILL }},
18260 { &hf_h245_requestedModes,
18261 { "requestedModes", "h245.requestedModes",
18262 FT_UINT32, BASE_DEC, NULL, 0,
18263 "SEQUENCE_SIZE_1_256_OF_ModeDescription", HFILL }},
18264 { &hf_h245_requestedModes_item,
18265 { "ModeDescription", "h245.ModeDescription",
18266 FT_UINT32, BASE_DEC, NULL, 0,
18267 NULL, HFILL }},
18268 { &hf_h245_req_mode_ack_response,
18269 { "response", "h245.req_mode_ack_response",
18270 FT_UINT32, BASE_DEC, VALS(h245_Req_mode_ack_response_vals), 0,
18271 "Req_mode_ack_response", HFILL }},
18272 { &hf_h245_willTransmitMostPreferredMode,
18273 { "willTransmitMostPreferredMode", "h245.willTransmitMostPreferredMode_element",
18274 FT_NONE, BASE_NONE, NULL, 0,
18275 NULL, HFILL }},
18276 { &hf_h245_willTransmitLessPreferredMode,
18277 { "willTransmitLessPreferredMode", "h245.willTransmitLessPreferredMode_element",
18278 FT_NONE, BASE_NONE, NULL, 0,
18279 NULL, HFILL }},
18280 { &hf_h245_req_rej_cause,
18281 { "cause", "h245.req_rej_cause",
18282 FT_UINT32, BASE_DEC, VALS(h245_RequestModeRejectCause_vals), 0,
18283 "RequestModeRejectCause", HFILL }},
18284 { &hf_h245_modeUnavailable,
18285 { "modeUnavailable", "h245.modeUnavailable_element",
18286 FT_NONE, BASE_NONE, NULL, 0,
18287 NULL, HFILL }},
18288 { &hf_h245_multipointConstraint,
18289 { "multipointConstraint", "h245.multipointConstraint_element",
18290 FT_NONE, BASE_NONE, NULL, 0,
18291 NULL, HFILL }},
18292 { &hf_h245_requestDenied,
18293 { "requestDenied", "h245.requestDenied_element",
18294 FT_NONE, BASE_NONE, NULL, 0,
18295 NULL, HFILL }},
18296 { &hf_h245_ModeDescription_item,
18297 { "ModeElement", "h245.ModeElement_element",
18298 FT_NONE, BASE_NONE, NULL, 0,
18299 NULL, HFILL }},
18300 { &hf_h245_videoMode,
18301 { "videoMode", "h245.videoMode",
18302 FT_UINT32, BASE_DEC, VALS(h245_VideoMode_vals), 0,
18303 NULL, HFILL }},
18304 { &hf_h245_audioMode,
18305 { "audioMode", "h245.audioMode",
18306 FT_UINT32, BASE_DEC, VALS(h245_AudioMode_vals), 0,
18307 NULL, HFILL }},
18308 { &hf_h245_dataMode,
18309 { "dataMode", "h245.dataMode_element",
18310 FT_NONE, BASE_NONE, NULL, 0,
18311 NULL, HFILL }},
18312 { &hf_h245_encryptionMode,
18313 { "encryptionMode", "h245.encryptionMode",
18314 FT_UINT32, BASE_DEC, VALS(h245_EncryptionMode_vals), 0,
18315 NULL, HFILL }},
18316 { &hf_h245_h235Mode,
18317 { "h235Mode", "h245.h235Mode_element",
18318 FT_NONE, BASE_NONE, NULL, 0,
18319 NULL, HFILL }},
18320 { &hf_h245_multiplexedStreamMode,
18321 { "multiplexedStreamMode", "h245.multiplexedStreamMode_element",
18322 FT_NONE, BASE_NONE, NULL, 0,
18323 "MultiplexedStreamParameter", HFILL }},
18324 { &hf_h245_redundancyEncodingDTMode,
18325 { "redundancyEncodingDTMode", "h245.redundancyEncodingDTMode_element",
18326 FT_NONE, BASE_NONE, NULL, 0,
18327 NULL, HFILL }},
18328 { &hf_h245_multiplePayloadStreamMode,
18329 { "multiplePayloadStreamMode", "h245.multiplePayloadStreamMode_element",
18330 FT_NONE, BASE_NONE, NULL, 0,
18331 NULL, HFILL }},
18332 { &hf_h245_depFecMode,
18333 { "depFecMode", "h245.depFecMode",
18334 FT_UINT32, BASE_DEC, VALS(h245_DepFECMode_vals), 0,
18335 NULL, HFILL }},
18336 { &hf_h245_fecMode,
18337 { "fecMode", "h245.fecMode_element",
18338 FT_NONE, BASE_NONE, NULL, 0,
18339 NULL, HFILL }},
18340 { &hf_h245_type,
18341 { "type", "h245.type",
18342 FT_UINT32, BASE_DEC, VALS(h245_ModeElementType_vals), 0,
18343 "ModeElementType", HFILL }},
18344 { &hf_h245_h223ModeParameters,
18345 { "h223ModeParameters", "h245.h223ModeParameters_element",
18346 FT_NONE, BASE_NONE, NULL, 0,
18347 NULL, HFILL }},
18348 { &hf_h245_v76ModeParameters,
18349 { "v76ModeParameters", "h245.v76ModeParameters",
18350 FT_UINT32, BASE_DEC, VALS(h245_V76ModeParameters_vals), 0,
18351 NULL, HFILL }},
18352 { &hf_h245_h2250ModeParameters,
18353 { "h2250ModeParameters", "h245.h2250ModeParameters_element",
18354 FT_NONE, BASE_NONE, NULL, 0,
18355 NULL, HFILL }},
18356 { &hf_h245_genericModeParameters,
18357 { "genericModeParameters", "h245.genericModeParameters_element",
18358 FT_NONE, BASE_NONE, NULL, 0,
18359 "GenericCapability", HFILL }},
18360 { &hf_h245_multiplexedStreamModeParameters,
18361 { "multiplexedStreamModeParameters", "h245.multiplexedStreamModeParameters_element",
18362 FT_NONE, BASE_NONE, NULL, 0,
18363 NULL, HFILL }},
18364 { &hf_h245_logicalChannelNumber,
18365 { "logicalChannelNumber", "h245.logicalChannelNumber",
18366 FT_UINT32, BASE_DEC, NULL, 0,
18367 NULL, HFILL }},
18368 { &hf_h245_mediaMode,
18369 { "mediaMode", "h245.mediaMode",
18370 FT_UINT32, BASE_DEC, VALS(h245_T_mediaMode_vals), 0,
18371 NULL, HFILL }},
18372 { &hf_h245_prmary_dtmode,
18373 { "primary", "h245.prmary_dtmode_element",
18374 FT_NONE, BASE_NONE, NULL, 0,
18375 "RedundancyEncodingDTModeElement", HFILL }},
18376 { &hf_h245_secondaryDTM,
18377 { "secondary", "h245.secondaryDTM",
18378 FT_UINT32, BASE_DEC, NULL, 0,
18379 "SEQUENCE_OF_RedundancyEncodingDTModeElement", HFILL }},
18380 { &hf_h245_secondaryDTM_item,
18381 { "RedundancyEncodingDTModeElement", "h245.RedundancyEncodingDTModeElement_element",
18382 FT_NONE, BASE_NONE, NULL, 0,
18383 NULL, HFILL }},
18384 { &hf_h245_re_type,
18385 { "type", "h245.re_type",
18386 FT_UINT32, BASE_DEC, VALS(h245_Re_type_vals), 0,
18387 "Re_type", HFILL }},
18388 { &hf_h245_mpsmElements,
18389 { "elements", "h245.mpsmElements",
18390 FT_UINT32, BASE_DEC, NULL, 0,
18391 "SEQUENCE_OF_MultiplePayloadStreamElementMode", HFILL }},
18392 { &hf_h245_mpsmElements_item,
18393 { "MultiplePayloadStreamElementMode", "h245.MultiplePayloadStreamElementMode_element",
18394 FT_NONE, BASE_NONE, NULL, 0,
18395 NULL, HFILL }},
18396 { &hf_h245_rfc2733Mode,
18397 { "rfc2733Mode", "h245.rfc2733Mode_element",
18398 FT_NONE, BASE_NONE, NULL, 0,
18399 NULL, HFILL }},
18400 { &hf_h245_fec_mode,
18401 { "mode", "h245.fec_mode",
18402 FT_UINT32, BASE_DEC, VALS(h245_FEC_mode_vals), 0,
18403 "FEC_mode", HFILL }},
18404 { &hf_h245_protectedElement,
18405 { "protectedElement", "h245.protectedElement",
18406 FT_UINT32, BASE_DEC, VALS(h245_ModeElementType_vals), 0,
18407 "ModeElementType", HFILL }},
18408 { &hf_h245_adaptationLayer,
18409 { "adaptationLayerType", "h245.adaptationLayer",
18410 FT_UINT32, BASE_DEC, VALS(h245_AdaptationLayerType_vals), 0,
18411 NULL, HFILL }},
18412 { &hf_h245_al1Framed,
18413 { "al1Framed", "h245.al1Framed_element",
18414 FT_NONE, BASE_NONE, NULL, 0,
18415 NULL, HFILL }},
18416 { &hf_h245_al1NotFramed,
18417 { "al1NotFramed", "h245.al1NotFramed_element",
18418 FT_NONE, BASE_NONE, NULL, 0,
18419 NULL, HFILL }},
18420 { &hf_h245_al2WithoutSequenceNumbers,
18421 { "al2WithoutSequenceNumbers", "h245.al2WithoutSequenceNumbers_element",
18422 FT_NONE, BASE_NONE, NULL, 0,
18423 NULL, HFILL }},
18424 { &hf_h245_al2WithSequenceNumbers,
18425 { "al2WithSequenceNumbers", "h245.al2WithSequenceNumbers_element",
18426 FT_NONE, BASE_NONE, NULL, 0,
18427 NULL, HFILL }},
18428 { &hf_h245_al3,
18429 { "al3", "h245.al3_element",
18430 FT_NONE, BASE_NONE, NULL, 0,
18431 NULL, HFILL }},
18432 { &hf_h245_al1M,
18433 { "al1M", "h245.al1M_element",
18434 FT_NONE, BASE_NONE, NULL, 0,
18435 "H223AL1MParameters", HFILL }},
18436 { &hf_h245_al2M,
18437 { "al2M", "h245.al2M_element",
18438 FT_NONE, BASE_NONE, NULL, 0,
18439 "H223AL2MParameters", HFILL }},
18440 { &hf_h245_al3M,
18441 { "al3M", "h245.al3M_element",
18442 FT_NONE, BASE_NONE, NULL, 0,
18443 "H223AL3MParameters", HFILL }},
18444 { &hf_h245_segmentableFlag,
18445 { "segmentableFlag", "h245.segmentableFlag",
18446 FT_BOOLEAN, BASE_NONE, NULL, 0,
18447 "BOOLEAN", HFILL }},
18448 { &hf_h245_redundancyEncodingMode,
18449 { "redundancyEncodingMode", "h245.redundancyEncodingMode_element",
18450 FT_NONE, BASE_NONE, NULL, 0,
18451 NULL, HFILL }},
18452 { &hf_h245_secondaryEncodingMode,
18453 { "secondaryEncoding", "h245.secondaryEncodingMode",
18454 FT_UINT32, BASE_DEC, VALS(h245_T_secondaryEncodingMode_vals), 0,
18455 "T_secondaryEncodingMode", HFILL }},
18456 { &hf_h245_h261VideoMode,
18457 { "h261VideoMode", "h245.h261VideoMode_element",
18458 FT_NONE, BASE_NONE, NULL, 0,
18459 NULL, HFILL }},
18460 { &hf_h245_h262VideoMode,
18461 { "h262VideoMode", "h245.h262VideoMode_element",
18462 FT_NONE, BASE_NONE, NULL, 0,
18463 NULL, HFILL }},
18464 { &hf_h245_h263VideoMode,
18465 { "h263VideoMode", "h245.h263VideoMode_element",
18466 FT_NONE, BASE_NONE, NULL, 0,
18467 NULL, HFILL }},
18468 { &hf_h245_is11172VideoMode,
18469 { "is11172VideoMode", "h245.is11172VideoMode_element",
18470 FT_NONE, BASE_NONE, NULL, 0,
18471 NULL, HFILL }},
18472 { &hf_h245_genericVideoMode,
18473 { "genericVideoMode", "h245.genericVideoMode_element",
18474 FT_NONE, BASE_NONE, NULL, 0,
18475 "GenericCapability", HFILL }},
18476 { &hf_h245_h261_resolution,
18477 { "resolution", "h245.h261_resolution",
18478 FT_UINT32, BASE_DEC, VALS(h245_H261Resolution_vals), 0,
18479 "H261Resolution", HFILL }},
18480 { &hf_h245_qcif,
18481 { "qcif", "h245.qcif_element",
18482 FT_NONE, BASE_NONE, NULL, 0,
18483 NULL, HFILL }},
18484 { &hf_h245_cif,
18485 { "cif", "h245.cif_element",
18486 FT_NONE, BASE_NONE, NULL, 0,
18487 NULL, HFILL }},
18488 { &hf_h245_profileAndLevel,
18489 { "profileAndLevel", "h245.profileAndLevel",
18490 FT_UINT32, BASE_DEC, VALS(h245_T_profileAndLevel_vals), 0,
18491 NULL, HFILL }},
18492 { &hf_h245_profileAndLevel_SPatMLMode,
18493 { "profileAndLevel-SPatML", "h245.profileAndLevel_SPatMLMode_element",
18494 FT_NONE, BASE_NONE, NULL, 0,
18495 NULL, HFILL }},
18496 { &hf_h245_profileAndLevel_MPatLLMode,
18497 { "profileAndLevel-MPatLL", "h245.profileAndLevel_MPatLLMode_element",
18498 FT_NONE, BASE_NONE, NULL, 0,
18499 NULL, HFILL }},
18500 { &hf_h245_profileAndLevel_MPatMLMode,
18501 { "profileAndLevel-MPatML", "h245.profileAndLevel_MPatMLMode_element",
18502 FT_NONE, BASE_NONE, NULL, 0,
18503 NULL, HFILL }},
18504 { &hf_h245_profileAndLevel_MPatH_14Mode,
18505 { "profileAndLevel-MPatH-14", "h245.profileAndLevel_MPatH_14Mode_element",
18506 FT_NONE, BASE_NONE, NULL, 0,
18507 NULL, HFILL }},
18508 { &hf_h245_profileAndLevel_MPatHLMode,
18509 { "profileAndLevel-MPatHL", "h245.profileAndLevel_MPatHLMode_element",
18510 FT_NONE, BASE_NONE, NULL, 0,
18511 NULL, HFILL }},
18512 { &hf_h245_profileAndLevel_SNRatLLMode,
18513 { "profileAndLevel-SNRatLL", "h245.profileAndLevel_SNRatLLMode_element",
18514 FT_NONE, BASE_NONE, NULL, 0,
18515 NULL, HFILL }},
18516 { &hf_h245_profileAndLevel_SNRatMLMode,
18517 { "profileAndLevel-SNRatML", "h245.profileAndLevel_SNRatMLMode_element",
18518 FT_NONE, BASE_NONE, NULL, 0,
18519 NULL, HFILL }},
18520 { &hf_h245_profileAndLevel_SpatialatH_14Mode,
18521 { "profileAndLevel-SpatialatH-14", "h245.profileAndLevel_SpatialatH_14Mode_element",
18522 FT_NONE, BASE_NONE, NULL, 0,
18523 NULL, HFILL }},
18524 { &hf_h245_profileAndLevel_HPatMLMode,
18525 { "profileAndLevel-HPatML", "h245.profileAndLevel_HPatMLMode_element",
18526 FT_NONE, BASE_NONE, NULL, 0,
18527 NULL, HFILL }},
18528 { &hf_h245_profileAndLevel_HPatH_14Mode,
18529 { "profileAndLevel-HPatH-14", "h245.profileAndLevel_HPatH_14Mode_element",
18530 FT_NONE, BASE_NONE, NULL, 0,
18531 NULL, HFILL }},
18532 { &hf_h245_profileAndLevel_HPatHLMode,
18533 { "profileAndLevel-HPatHL", "h245.profileAndLevel_HPatHLMode_element",
18534 FT_NONE, BASE_NONE, NULL, 0,
18535 NULL, HFILL }},
18536 { &hf_h245_h263_resolution,
18537 { "resolution", "h245.h263_resolution",
18538 FT_UINT32, BASE_DEC, VALS(h245_H263Resolution_vals), 0,
18539 "H263Resolution", HFILL }},
18540 { &hf_h245_sqcif,
18541 { "sqcif", "h245.sqcif_element",
18542 FT_NONE, BASE_NONE, NULL, 0,
18543 NULL, HFILL }},
18544 { &hf_h245_cif4,
18545 { "cif4", "h245.cif4_element",
18546 FT_NONE, BASE_NONE, NULL, 0,
18547 NULL, HFILL }},
18548 { &hf_h245_cif16,
18549 { "cif16", "h245.cif16_element",
18550 FT_NONE, BASE_NONE, NULL, 0,
18551 NULL, HFILL }},
18552 { &hf_h245_custom_res,
18553 { "custom", "h245.custom_res_element",
18554 FT_NONE, BASE_NONE, NULL, 0,
18555 NULL, HFILL }},
18556 { &hf_h245_g711Alaw64k_mode,
18557 { "g711Alaw64k", "h245.g711Alaw64k_mode_element",
18558 FT_NONE, BASE_NONE, NULL, 0,
18559 NULL, HFILL }},
18560 { &hf_h245_g711Alaw56k_mode,
18561 { "g711Alaw56k", "h245.g711Alaw56k_mode_element",
18562 FT_NONE, BASE_NONE, NULL, 0,
18563 NULL, HFILL }},
18564 { &hf_h245_g711Ulaw64k_mode,
18565 { "g711Ulaw64k", "h245.g711Ulaw64k_mode_element",
18566 FT_NONE, BASE_NONE, NULL, 0,
18567 NULL, HFILL }},
18568 { &hf_h245_g711Ulaw56k_mode,
18569 { "g711Ulaw56k", "h245.g711Ulaw56k_mode_element",
18570 FT_NONE, BASE_NONE, NULL, 0,
18571 NULL, HFILL }},
18572 { &hf_h245_g722_64k_mode,
18573 { "g722-64k", "h245.g722_64k_mode_element",
18574 FT_NONE, BASE_NONE, NULL, 0,
18575 NULL, HFILL }},
18576 { &hf_h245_g722_56k_mode,
18577 { "g722-56k", "h245.g722_56k_mode_element",
18578 FT_NONE, BASE_NONE, NULL, 0,
18579 NULL, HFILL }},
18580 { &hf_h245_g722_48k_mode,
18581 { "g722-48k", "h245.g722_48k_mode_element",
18582 FT_NONE, BASE_NONE, NULL, 0,
18583 NULL, HFILL }},
18584 { &hf_h245_g728_mode,
18585 { "g728", "h245.g728_mode_element",
18586 FT_NONE, BASE_NONE, NULL, 0,
18587 NULL, HFILL }},
18588 { &hf_h245_g729_mode,
18589 { "g729", "h245.g729_mode_element",
18590 FT_NONE, BASE_NONE, NULL, 0,
18591 NULL, HFILL }},
18592 { &hf_h245_g729AnnexA_mode,
18593 { "g729AnnexA", "h245.g729AnnexA_mode_element",
18594 FT_NONE, BASE_NONE, NULL, 0,
18595 NULL, HFILL }},
18596 { &hf_h245_g7231_mode,
18597 { "g7231", "h245.g7231_mode",
18598 FT_UINT32, BASE_DEC, VALS(h245_Mode_g7231_vals), 0,
18599 "Mode_g7231", HFILL }},
18600 { &hf_h245_noSilenceSuppressionLowRate,
18601 { "noSilenceSuppressionLowRate", "h245.noSilenceSuppressionLowRate_element",
18602 FT_NONE, BASE_NONE, NULL, 0,
18603 NULL, HFILL }},
18604 { &hf_h245_noSilenceSuppressionHighRate,
18605 { "noSilenceSuppressionHighRate", "h245.noSilenceSuppressionHighRate_element",
18606 FT_NONE, BASE_NONE, NULL, 0,
18607 NULL, HFILL }},
18608 { &hf_h245_silenceSuppressionLowRate,
18609 { "silenceSuppressionLowRate", "h245.silenceSuppressionLowRate_element",
18610 FT_NONE, BASE_NONE, NULL, 0,
18611 NULL, HFILL }},
18612 { &hf_h245_silenceSuppressionHighRate,
18613 { "silenceSuppressionHighRate", "h245.silenceSuppressionHighRate_element",
18614 FT_NONE, BASE_NONE, NULL, 0,
18615 NULL, HFILL }},
18616 { &hf_h245_is11172AudioMode,
18617 { "is11172AudioMode", "h245.is11172AudioMode_element",
18618 FT_NONE, BASE_NONE, NULL, 0,
18619 NULL, HFILL }},
18620 { &hf_h245_is13818AudioMode,
18621 { "is13818AudioMode", "h245.is13818AudioMode_element",
18622 FT_NONE, BASE_NONE, NULL, 0,
18623 NULL, HFILL }},
18624 { &hf_h245_g7231AnnexCMode,
18625 { "g7231AnnexCMode", "h245.g7231AnnexCMode_element",
18626 FT_NONE, BASE_NONE, NULL, 0,
18627 NULL, HFILL }},
18628 { &hf_h245_genericAudioMode,
18629 { "genericAudioMode", "h245.genericAudioMode_element",
18630 FT_NONE, BASE_NONE, NULL, 0,
18631 "GenericCapability", HFILL }},
18632 { &hf_h245_vbd_mode,
18633 { "vbd", "h245.vbd_mode_element",
18634 FT_NONE, BASE_NONE, NULL, 0,
18635 "VBDMode", HFILL }},
18636 { &hf_h245_audioLayer,
18637 { "audioLayer", "h245.audioLayer",
18638 FT_UINT32, BASE_DEC, VALS(h245_T_audioLayer_vals), 0,
18639 NULL, HFILL }},
18640 { &hf_h245_audioLayer1Mode,
18641 { "audioLayer1", "h245.audioLayer1Mode_element",
18642 FT_NONE, BASE_NONE, NULL, 0,
18643 NULL, HFILL }},
18644 { &hf_h245_audioLayer2Mode,
18645 { "audioLayer2", "h245.audioLayer2Mode_element",
18646 FT_NONE, BASE_NONE, NULL, 0,
18647 NULL, HFILL }},
18648 { &hf_h245_audioLayer3Mode,
18649 { "audioLayer3", "h245.audioLayer3Mode_element",
18650 FT_NONE, BASE_NONE, NULL, 0,
18651 NULL, HFILL }},
18652 { &hf_h245_audioSampling,
18653 { "audioSampling", "h245.audioSampling",
18654 FT_UINT32, BASE_DEC, VALS(h245_T_audioSampling_vals), 0,
18655 NULL, HFILL }},
18656 { &hf_h245_audioSampling32kMode,
18657 { "audioSampling32k", "h245.audioSampling32kMode_element",
18658 FT_NONE, BASE_NONE, NULL, 0,
18659 NULL, HFILL }},
18660 { &hf_h245_audioSampling44k1Mode,
18661 { "audioSampling44k1", "h245.audioSampling44k1Mode_element",
18662 FT_NONE, BASE_NONE, NULL, 0,
18663 NULL, HFILL }},
18664 { &hf_h245_audioSampling48kMode,
18665 { "audioSampling48k", "h245.audioSampling48kMode_element",
18666 FT_NONE, BASE_NONE, NULL, 0,
18667 NULL, HFILL }},
18668 { &hf_h245_is11172multichannelType,
18669 { "multichannelType", "h245.is11172multichannelType",
18670 FT_UINT32, BASE_DEC, VALS(h245_IS11172_multichannelType_vals), 0,
18671 "IS11172_multichannelType", HFILL }},
18672 { &hf_h245_singleChannelMode,
18673 { "singleChannel", "h245.singleChannelMode_element",
18674 FT_NONE, BASE_NONE, NULL, 0,
18675 NULL, HFILL }},
18676 { &hf_h245_twoChannelStereo,
18677 { "twoChannelStereo", "h245.twoChannelStereo_element",
18678 FT_NONE, BASE_NONE, NULL, 0,
18679 NULL, HFILL }},
18680 { &hf_h245_twoChannelDual,
18681 { "twoChannelDual", "h245.twoChannelDual_element",
18682 FT_NONE, BASE_NONE, NULL, 0,
18683 NULL, HFILL }},
18684 { &hf_h245_audioLayerMode,
18685 { "audioLayer", "h245.audioLayerMode",
18686 FT_UINT32, BASE_DEC, VALS(h245_IS13818AudioLayer_vals), 0,
18687 "IS13818AudioLayer", HFILL }},
18688 { &hf_h245_audioSamplingMode,
18689 { "audioSampling", "h245.audioSamplingMode",
18690 FT_UINT32, BASE_DEC, VALS(h245_IS13818AudioSampling_vals), 0,
18691 "IS13818AudioSampling", HFILL }},
18692 { &hf_h245_audioSampling16kMode,
18693 { "audioSampling16k", "h245.audioSampling16kMode_element",
18694 FT_NONE, BASE_NONE, NULL, 0,
18695 NULL, HFILL }},
18696 { &hf_h245_audioSampling22k05Mode,
18697 { "audioSampling22k05", "h245.audioSampling22k05Mode_element",
18698 FT_NONE, BASE_NONE, NULL, 0,
18699 NULL, HFILL }},
18700 { &hf_h245_audioSampling24kMode,
18701 { "audioSampling24k", "h245.audioSampling24kMode_element",
18702 FT_NONE, BASE_NONE, NULL, 0,
18703 NULL, HFILL }},
18704 { &hf_h245_is13818MultichannelType,
18705 { "multichannelType", "h245.is13818MultichannelType",
18706 FT_UINT32, BASE_DEC, VALS(h245_IS13818MultichannelType_vals), 0,
18707 "IS13818MultichannelType", HFILL }},
18708 { &hf_h245_threeChannels2_1Mode,
18709 { "threeChannels2-1", "h245.threeChannels2_1Mode_element",
18710 FT_NONE, BASE_NONE, NULL, 0,
18711 NULL, HFILL }},
18712 { &hf_h245_threeChannels3_0Mode,
18713 { "threeChannels3-0", "h245.threeChannels3_0Mode_element",
18714 FT_NONE, BASE_NONE, NULL, 0,
18715 NULL, HFILL }},
18716 { &hf_h245_fourChannels2_0_2_0Mode,
18717 { "fourChannels2-0-2-0", "h245.fourChannels2_0_2_0Mode_element",
18718 FT_NONE, BASE_NONE, NULL, 0,
18719 NULL, HFILL }},
18720 { &hf_h245_fourChannels2_2Mode,
18721 { "fourChannels2-2", "h245.fourChannels2_2Mode_element",
18722 FT_NONE, BASE_NONE, NULL, 0,
18723 NULL, HFILL }},
18724 { &hf_h245_fourChannels3_1Mode,
18725 { "fourChannels3-1", "h245.fourChannels3_1Mode_element",
18726 FT_NONE, BASE_NONE, NULL, 0,
18727 NULL, HFILL }},
18728 { &hf_h245_fiveChannels3_0_2_0Mode,
18729 { "fiveChannels3-0-2-0", "h245.fiveChannels3_0_2_0Mode_element",
18730 FT_NONE, BASE_NONE, NULL, 0,
18731 NULL, HFILL }},
18732 { &hf_h245_fiveChannels3_2Mode,
18733 { "fiveChannels3-2", "h245.fiveChannels3_2Mode_element",
18734 FT_NONE, BASE_NONE, NULL, 0,
18735 NULL, HFILL }},
18736 { &hf_h245_vbd_type,
18737 { "type", "h245.vbd_type",
18738 FT_UINT32, BASE_DEC, VALS(h245_AudioMode_vals), 0,
18739 "AudioMode", HFILL }},
18740 { &hf_h245_datamodeapplication,
18741 { "application", "h245.datamodeapplication",
18742 FT_UINT32, BASE_DEC, VALS(h245_DataModeApplication_vals), 0,
18743 "DataModeApplication", HFILL }},
18744 { &hf_h245_t84DataProtocolCapability,
18745 { "t84", "h245.t84DataProtocolCapability",
18746 FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
18747 "DataProtocolCapability", HFILL }},
18748 { &hf_h245_t38faxDataProtocolCapability,
18749 { "t38fax", "h245.t38faxDataProtocolCapability_element",
18750 FT_NONE, BASE_NONE, NULL, 0,
18751 "T38faxApp", HFILL }},
18752 { &hf_h245_genericDataMode,
18753 { "genericDataMode", "h245.genericDataMode_element",
18754 FT_NONE, BASE_NONE, NULL, 0,
18755 "GenericCapability", HFILL }},
18756 { &hf_h245_bitRate_0_4294967295,
18757 { "bitRate", "h245.bitRate_0_4294967295",
18758 FT_UINT32, BASE_DEC, NULL, 0,
18759 "INTEGER_0_4294967295", HFILL }},
18760 { &hf_h245_h233Encryption,
18761 { "h233Encryption", "h245.h233Encryption_element",
18762 FT_NONE, BASE_NONE, NULL, 0,
18763 NULL, HFILL }},
18764 { &hf_h245_mlr_type,
18765 { "type", "h245.mlr_type",
18766 FT_UINT32, BASE_DEC, VALS(h245_Mlr_type_vals), 0,
18767 "Mlr_type", HFILL }},
18768 { &hf_h245_systemLoop,
18769 { "systemLoop", "h245.systemLoop_element",
18770 FT_NONE, BASE_NONE, NULL, 0,
18771 NULL, HFILL }},
18772 { &hf_h245_mediaLoop,
18773 { "mediaLoop", "h245.mediaLoop",
18774 FT_UINT32, BASE_DEC, NULL, 0,
18775 "LogicalChannelNumber", HFILL }},
18776 { &hf_h245_logicalChannelLoop,
18777 { "logicalChannelLoop", "h245.logicalChannelLoop",
18778 FT_UINT32, BASE_DEC, NULL, 0,
18779 "LogicalChannelNumber", HFILL }},
18780 { &hf_h245_mla_type,
18781 { "type", "h245.mla_type",
18782 FT_UINT32, BASE_DEC, VALS(h245_Mla_type_vals), 0,
18783 "Mla_type", HFILL }},
18784 { &hf_h245_mlrej_type,
18785 { "type", "h245.mlrej_type",
18786 FT_UINT32, BASE_DEC, VALS(h245_Mlrej_type_vals), 0,
18787 "Mlrej_type", HFILL }},
18788 { &hf_h245_maintloop_rej_cause,
18789 { "cause", "h245.maintloop_rej_cause",
18790 FT_UINT32, BASE_DEC, VALS(h245_MaintenanceLoopRejectCause_vals), 0,
18791 "MaintenanceLoopRejectCause", HFILL }},
18792 { &hf_h245_canNotPerformLoop,
18793 { "canNotPerformLoop", "h245.canNotPerformLoop_element",
18794 FT_NONE, BASE_NONE, NULL, 0,
18795 NULL, HFILL }},
18796 { &hf_h245_communicationModeTable,
18797 { "communicationModeTable", "h245.communicationModeTable",
18798 FT_UINT32, BASE_DEC, NULL, 0,
18799 "SET_SIZE_1_256_OF_CommunicationModeTableEntry", HFILL }},
18800 { &hf_h245_communicationModeTable_item,
18801 { "CommunicationModeTableEntry", "h245.CommunicationModeTableEntry_element",
18802 FT_NONE, BASE_NONE, NULL, 0,
18803 NULL, HFILL }},
18804 { &hf_h245_terminalLabel,
18805 { "terminalLabel", "h245.terminalLabel_element",
18806 FT_NONE, BASE_NONE, NULL, 0,
18807 NULL, HFILL }},
18808 { &hf_h245_sessionDescription,
18809 { "sessionDescription", "h245.sessionDescription",
18810 FT_STRING, BASE_NONE, NULL, 0,
18811 "BMPString_SIZE_1_128", HFILL }},
18812 { &hf_h245_entryDataType,
18813 { "dataType", "h245.entryDataType",
18814 FT_UINT32, BASE_DEC, VALS(h245_T_entryDataType_vals), 0,
18815 "T_entryDataType", HFILL }},
18816 { &hf_h245_cm_mediaChannel,
18817 { "mediaChannel", "h245.cm_mediaChannel",
18818 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
18819 "Cm_mediaChannel", HFILL }},
18820 { &hf_h245_cm_mediaControlChannel,
18821 { "mediaControlChannel", "h245.cm_mediaControlChannel",
18822 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
18823 "TransportAddress", HFILL }},
18824 { &hf_h245_sessionDependency,
18825 { "sessionDependency", "h245.sessionDependency",
18826 FT_UINT32, BASE_DEC, NULL, 0,
18827 "INTEGER_1_255", HFILL }},
18828 { &hf_h245_terminalListRequest,
18829 { "terminalListRequest", "h245.terminalListRequest_element",
18830 FT_NONE, BASE_NONE, NULL, 0,
18831 NULL, HFILL }},
18832 { &hf_h245_makeMeChair,
18833 { "makeMeChair", "h245.makeMeChair_element",
18834 FT_NONE, BASE_NONE, NULL, 0,
18835 NULL, HFILL }},
18836 { &hf_h245_cancelMakeMeChair,
18837 { "cancelMakeMeChair", "h245.cancelMakeMeChair_element",
18838 FT_NONE, BASE_NONE, NULL, 0,
18839 NULL, HFILL }},
18840 { &hf_h245_dropTerminal,
18841 { "dropTerminal", "h245.dropTerminal_element",
18842 FT_NONE, BASE_NONE, NULL, 0,
18843 "TerminalLabel", HFILL }},
18844 { &hf_h245_requestTerminalID,
18845 { "requestTerminalID", "h245.requestTerminalID_element",
18846 FT_NONE, BASE_NONE, NULL, 0,
18847 "TerminalLabel", HFILL }},
18848 { &hf_h245_enterH243Password,
18849 { "enterH243Password", "h245.enterH243Password_element",
18850 FT_NONE, BASE_NONE, NULL, 0,
18851 NULL, HFILL }},
18852 { &hf_h245_enterH243TerminalID,
18853 { "enterH243TerminalID", "h245.enterH243TerminalID_element",
18854 FT_NONE, BASE_NONE, NULL, 0,
18855 NULL, HFILL }},
18856 { &hf_h245_enterH243ConferenceID,
18857 { "enterH243ConferenceID", "h245.enterH243ConferenceID_element",
18858 FT_NONE, BASE_NONE, NULL, 0,
18859 NULL, HFILL }},
18860 { &hf_h245_enterExtensionAddress,
18861 { "enterExtensionAddress", "h245.enterExtensionAddress_element",
18862 FT_NONE, BASE_NONE, NULL, 0,
18863 NULL, HFILL }},
18864 { &hf_h245_requestChairTokenOwner,
18865 { "requestChairTokenOwner", "h245.requestChairTokenOwner_element",
18866 FT_NONE, BASE_NONE, NULL, 0,
18867 NULL, HFILL }},
18868 { &hf_h245_requestTerminalCertificate,
18869 { "requestTerminalCertificate", "h245.requestTerminalCertificate_element",
18870 FT_NONE, BASE_NONE, NULL, 0,
18871 NULL, HFILL }},
18872 { &hf_h245_certSelectionCriteria,
18873 { "certSelectionCriteria", "h245.certSelectionCriteria",
18874 FT_UINT32, BASE_DEC, NULL, 0,
18875 NULL, HFILL }},
18876 { &hf_h245_sRandom,
18877 { "sRandom", "h245.sRandom",
18878 FT_UINT32, BASE_DEC, NULL, 0,
18879 "INTEGER_1_4294967295", HFILL }},
18880 { &hf_h245_broadcastMyLogicalChannel,
18881 { "broadcastMyLogicalChannel", "h245.broadcastMyLogicalChannel",
18882 FT_UINT32, BASE_DEC, NULL, 0,
18883 "LogicalChannelNumber", HFILL }},
18884 { &hf_h245_makeTerminalBroadcaster,
18885 { "makeTerminalBroadcaster", "h245.makeTerminalBroadcaster_element",
18886 FT_NONE, BASE_NONE, NULL, 0,
18887 "TerminalLabel", HFILL }},
18888 { &hf_h245_sendThisSource,
18889 { "sendThisSource", "h245.sendThisSource_element",
18890 FT_NONE, BASE_NONE, NULL, 0,
18891 "TerminalLabel", HFILL }},
18892 { &hf_h245_requestAllTerminalIDs,
18893 { "requestAllTerminalIDs", "h245.requestAllTerminalIDs_element",
18894 FT_NONE, BASE_NONE, NULL, 0,
18895 NULL, HFILL }},
18896 { &hf_h245_remoteMCRequest,
18897 { "remoteMCRequest", "h245.remoteMCRequest",
18898 FT_UINT32, BASE_DEC, VALS(h245_RemoteMCRequest_vals), 0,
18899 NULL, HFILL }},
18900 { &hf_h245_CertSelectionCriteria_item,
18901 { "Criteria", "h245.Criteria_element",
18902 FT_NONE, BASE_NONE, NULL, 0,
18903 NULL, HFILL }},
18904 { &hf_h245_field,
18905 { "field", "h245.field",
18906 FT_OID, BASE_NONE, NULL, 0,
18907 "OBJECT_IDENTIFIER", HFILL }},
18908 { &hf_h245_criteriaValue,
18909 { "value", "h245.criteriaValue",
18910 FT_BYTES, BASE_NONE, NULL, 0,
18911 "OCTET_STRING_SIZE_1_65535", HFILL }},
18912 { &hf_h245_mcuNumber,
18913 { "mcuNumber", "h245.mcuNumber",
18914 FT_UINT32, BASE_DEC, NULL, 0,
18915 NULL, HFILL }},
18916 { &hf_h245_terminalNumber,
18917 { "terminalNumber", "h245.terminalNumber",
18918 FT_UINT32, BASE_DEC, NULL, 0,
18919 NULL, HFILL }},
18920 { &hf_h245_mCTerminalIDResponse,
18921 { "mCTerminalIDResponse", "h245.mCTerminalIDResponse_element",
18922 FT_NONE, BASE_NONE, NULL, 0,
18923 NULL, HFILL }},
18924 { &hf_h245_terminalID,
18925 { "terminalID", "h245.terminalID",
18926 FT_BYTES, BASE_NONE, NULL, 0,
18927 NULL, HFILL }},
18928 { &hf_h245_terminalIDResponse,
18929 { "terminalIDResponse", "h245.terminalIDResponse_element",
18930 FT_NONE, BASE_NONE, NULL, 0,
18931 NULL, HFILL }},
18932 { &hf_h245_conferenceIDResponse,
18933 { "conferenceIDResponse", "h245.conferenceIDResponse_element",
18934 FT_NONE, BASE_NONE, NULL, 0,
18935 NULL, HFILL }},
18936 { &hf_h245_conferenceID,
18937 { "conferenceID", "h245.conferenceID",
18938 FT_BYTES, BASE_NONE, NULL, 0,
18939 NULL, HFILL }},
18940 { &hf_h245_passwordResponse,
18941 { "passwordResponse", "h245.passwordResponse_element",
18942 FT_NONE, BASE_NONE, NULL, 0,
18943 NULL, HFILL }},
18944 { &hf_h245_password,
18945 { "password", "h245.password",
18946 FT_BYTES, BASE_NONE, NULL, 0,
18947 NULL, HFILL }},
18948 { &hf_h245_terminalListResponse,
18949 { "terminalListResponse", "h245.terminalListResponse",
18950 FT_UINT32, BASE_DEC, NULL, 0,
18951 "SET_SIZE_1_256_OF_TerminalLabel", HFILL }},
18952 { &hf_h245_terminalListResponse_item,
18953 { "TerminalLabel", "h245.TerminalLabel_element",
18954 FT_NONE, BASE_NONE, NULL, 0,
18955 NULL, HFILL }},
18956 { &hf_h245_videoCommandReject,
18957 { "videoCommandReject", "h245.videoCommandReject_element",
18958 FT_NONE, BASE_NONE, NULL, 0,
18959 NULL, HFILL }},
18960 { &hf_h245_terminalDropReject,
18961 { "terminalDropReject", "h245.terminalDropReject_element",
18962 FT_NONE, BASE_NONE, NULL, 0,
18963 NULL, HFILL }},
18964 { &hf_h245_makeMeChairResponse,
18965 { "makeMeChairResponse", "h245.makeMeChairResponse",
18966 FT_UINT32, BASE_DEC, VALS(h245_T_makeMeChairResponse_vals), 0,
18967 NULL, HFILL }},
18968 { &hf_h245_grantedChairToken,
18969 { "grantedChairToken", "h245.grantedChairToken_element",
18970 FT_NONE, BASE_NONE, NULL, 0,
18971 NULL, HFILL }},
18972 { &hf_h245_deniedChairToken,
18973 { "deniedChairToken", "h245.deniedChairToken_element",
18974 FT_NONE, BASE_NONE, NULL, 0,
18975 NULL, HFILL }},
18976 { &hf_h245_extensionAddressResponse,
18977 { "extensionAddressResponse", "h245.extensionAddressResponse_element",
18978 FT_NONE, BASE_NONE, NULL, 0,
18979 NULL, HFILL }},
18980 { &hf_h245_extensionAddress,
18981 { "extensionAddress", "h245.extensionAddress",
18982 FT_BYTES, BASE_NONE, NULL, 0,
18983 "TerminalID", HFILL }},
18984 { &hf_h245_chairTokenOwnerResponse,
18985 { "chairTokenOwnerResponse", "h245.chairTokenOwnerResponse_element",
18986 FT_NONE, BASE_NONE, NULL, 0,
18987 NULL, HFILL }},
18988 { &hf_h245_terminalCertificateResponse,
18989 { "terminalCertificateResponse", "h245.terminalCertificateResponse_element",
18990 FT_NONE, BASE_NONE, NULL, 0,
18991 NULL, HFILL }},
18992 { &hf_h245_certificateResponse,
18993 { "certificateResponse", "h245.certificateResponse",
18994 FT_BYTES, BASE_NONE, NULL, 0,
18995 "OCTET_STRING_SIZE_1_65535", HFILL }},
18996 { &hf_h245_broadcastMyLogicalChannelResponse,
18997 { "broadcastMyLogicalChannelResponse", "h245.broadcastMyLogicalChannelResponse",
18998 FT_UINT32, BASE_DEC, VALS(h245_T_broadcastMyLogicalChannelResponse_vals), 0,
18999 NULL, HFILL }},
19000 { &hf_h245_grantedBroadcastMyLogicalChannel,
19001 { "grantedBroadcastMyLogicalChannel", "h245.grantedBroadcastMyLogicalChannel_element",
19002 FT_NONE, BASE_NONE, NULL, 0,
19003 NULL, HFILL }},
19004 { &hf_h245_deniedBroadcastMyLogicalChannel,
19005 { "deniedBroadcastMyLogicalChannel", "h245.deniedBroadcastMyLogicalChannel_element",
19006 FT_NONE, BASE_NONE, NULL, 0,
19007 NULL, HFILL }},
19008 { &hf_h245_makeTerminalBroadcasterResponse,
19009 { "makeTerminalBroadcasterResponse", "h245.makeTerminalBroadcasterResponse",
19010 FT_UINT32, BASE_DEC, VALS(h245_T_makeTerminalBroadcasterResponse_vals), 0,
19011 NULL, HFILL }},
19012 { &hf_h245_grantedMakeTerminalBroadcaster,
19013 { "grantedMakeTerminalBroadcaster", "h245.grantedMakeTerminalBroadcaster_element",
19014 FT_NONE, BASE_NONE, NULL, 0,
19015 NULL, HFILL }},
19016 { &hf_h245_deniedMakeTerminalBroadcaster,
19017 { "deniedMakeTerminalBroadcaster", "h245.deniedMakeTerminalBroadcaster_element",
19018 FT_NONE, BASE_NONE, NULL, 0,
19019 NULL, HFILL }},
19020 { &hf_h245_sendThisSourceResponse,
19021 { "sendThisSourceResponse", "h245.sendThisSourceResponse",
19022 FT_UINT32, BASE_DEC, VALS(h245_T_sendThisSourceResponse_vals), 0,
19023 NULL, HFILL }},
19024 { &hf_h245_grantedSendThisSource,
19025 { "grantedSendThisSource", "h245.grantedSendThisSource_element",
19026 FT_NONE, BASE_NONE, NULL, 0,
19027 NULL, HFILL }},
19028 { &hf_h245_deniedSendThisSource,
19029 { "deniedSendThisSource", "h245.deniedSendThisSource_element",
19030 FT_NONE, BASE_NONE, NULL, 0,
19031 NULL, HFILL }},
19032 { &hf_h245_requestAllTerminalIDsResponse,
19033 { "requestAllTerminalIDsResponse", "h245.requestAllTerminalIDsResponse_element",
19034 FT_NONE, BASE_NONE, NULL, 0,
19035 NULL, HFILL }},
19036 { &hf_h245_remoteMCResponse,
19037 { "remoteMCResponse", "h245.remoteMCResponse",
19038 FT_UINT32, BASE_DEC, VALS(h245_RemoteMCResponse_vals), 0,
19039 NULL, HFILL }},
19040 { &hf_h245_terminalInformation,
19041 { "terminalInformation", "h245.terminalInformation",
19042 FT_UINT32, BASE_DEC, NULL, 0,
19043 "SEQUENCE_OF_TerminalInformation", HFILL }},
19044 { &hf_h245_terminalInformation_item,
19045 { "TerminalInformation", "h245.TerminalInformation_element",
19046 FT_NONE, BASE_NONE, NULL, 0,
19047 NULL, HFILL }},
19048 { &hf_h245_masterActivate,
19049 { "masterActivate", "h245.masterActivate_element",
19050 FT_NONE, BASE_NONE, NULL, 0,
19051 NULL, HFILL }},
19052 { &hf_h245_slaveActivate,
19053 { "slaveActivate", "h245.slaveActivate_element",
19054 FT_NONE, BASE_NONE, NULL, 0,
19055 NULL, HFILL }},
19056 { &hf_h245_deActivate,
19057 { "deActivate", "h245.deActivate_element",
19058 FT_NONE, BASE_NONE, NULL, 0,
19059 NULL, HFILL }},
19060 { &hf_h245_accept,
19061 { "accept", "h245.accept_element",
19062 FT_NONE, BASE_NONE, NULL, 0,
19063 NULL, HFILL }},
19064 { &hf_h245_reject,
19065 { "reject", "h245.reject",
19066 FT_UINT32, BASE_DEC, VALS(h245_T_reject_vals), 0,
19067 NULL, HFILL }},
19068 { &hf_h245_functionNotSupportedFlag,
19069 { "functionNotSupported", "h245.functionNotSupportedFlag_element",
19070 FT_NONE, BASE_NONE, NULL, 0,
19071 NULL, HFILL }},
19072 { &hf_h245_callInformationReq,
19073 { "callInformation", "h245.callInformationReq_element",
19074 FT_NONE, BASE_NONE, NULL, 0,
19075 "CallInformationReq", HFILL }},
19076 { &hf_h245_maxNumberOfAdditionalConnections,
19077 { "maxNumberOfAdditionalConnections", "h245.maxNumberOfAdditionalConnections",
19078 FT_UINT32, BASE_DEC, NULL, 0,
19079 "INTEGER_1_65535", HFILL }},
19080 { &hf_h245_addConnectionReq,
19081 { "addConnection", "h245.addConnectionReq_element",
19082 FT_NONE, BASE_NONE, NULL, 0,
19083 "AddConnectionReq", HFILL }},
19084 { &hf_h245_dialingInformation,
19085 { "dialingInformation", "h245.dialingInformation",
19086 FT_UINT32, BASE_DEC, VALS(h245_DialingInformation_vals), 0,
19087 NULL, HFILL }},
19088 { &hf_h245_removeConnectionReq,
19089 { "removeConnection", "h245.removeConnectionReq_element",
19090 FT_NONE, BASE_NONE, NULL, 0,
19091 "RemoveConnectionReq", HFILL }},
19092 { &hf_h245_connectionIdentifier,
19093 { "connectionIdentifier", "h245.connectionIdentifier_element",
19094 FT_NONE, BASE_NONE, NULL, 0,
19095 NULL, HFILL }},
19096 { &hf_h245_maximumHeaderIntervalReq,
19097 { "maximumHeaderInterval", "h245.maximumHeaderIntervalReq_element",
19098 FT_NONE, BASE_NONE, NULL, 0,
19099 "MaximumHeaderIntervalReq", HFILL }},
19100 { &hf_h245_requestType,
19101 { "requestType", "h245.requestType",
19102 FT_UINT32, BASE_DEC, VALS(h245_T_requestType_vals), 0,
19103 NULL, HFILL }},
19104 { &hf_h245_currentIntervalInformation,
19105 { "currentIntervalInformation", "h245.currentIntervalInformation_element",
19106 FT_NONE, BASE_NONE, NULL, 0,
19107 NULL, HFILL }},
19108 { &hf_h245_requestedInterval,
19109 { "requestedInterval", "h245.requestedInterval",
19110 FT_UINT32, BASE_DEC, NULL, 0,
19111 "INTEGER_0_65535", HFILL }},
19112 { &hf_h245_callInformationResp,
19113 { "callInformation", "h245.callInformationResp_element",
19114 FT_NONE, BASE_NONE, NULL, 0,
19115 "CallInformationResp", HFILL }},
19116 { &hf_h245_callAssociationNumber,
19117 { "callAssociationNumber", "h245.callAssociationNumber",
19118 FT_UINT32, BASE_DEC, NULL, 0,
19119 "INTEGER_0_4294967295", HFILL }},
19120 { &hf_h245_addConnectionResp,
19121 { "addConnection", "h245.addConnectionResp_element",
19122 FT_NONE, BASE_NONE, NULL, 0,
19123 "AddConnectionResp", HFILL }},
19124 { &hf_h245_responseCode,
19125 { "responseCode", "h245.responseCode",
19126 FT_UINT32, BASE_DEC, VALS(h245_T_responseCode_vals), 0,
19127 NULL, HFILL }},
19128 { &hf_h245_accepted,
19129 { "accepted", "h245.accepted_element",
19130 FT_NONE, BASE_NONE, NULL, 0,
19131 NULL, HFILL }},
19132 { &hf_h245_rejected,
19133 { "rejected", "h245.rejected",
19134 FT_UINT32, BASE_DEC, VALS(h245_T_rejected_vals), 0,
19135 NULL, HFILL }},
19136 { &hf_h245_connectionsNotAvailable,
19137 { "connectionsNotAvailable", "h245.connectionsNotAvailable_element",
19138 FT_NONE, BASE_NONE, NULL, 0,
19139 NULL, HFILL }},
19140 { &hf_h245_userRejected,
19141 { "userRejected", "h245.userRejected_element",
19142 FT_NONE, BASE_NONE, NULL, 0,
19143 NULL, HFILL }},
19144 { &hf_h245_removeConnectionResp,
19145 { "removeConnection", "h245.removeConnectionResp_element",
19146 FT_NONE, BASE_NONE, NULL, 0,
19147 "RemoveConnectionResp", HFILL }},
19148 { &hf_h245_maximumHeaderIntervalResp,
19149 { "maximumHeaderInterval", "h245.maximumHeaderIntervalResp_element",
19150 FT_NONE, BASE_NONE, NULL, 0,
19151 "MaximumHeaderIntervalResp", HFILL }},
19152 { &hf_h245_currentInterval,
19153 { "currentInterval", "h245.currentInterval",
19154 FT_UINT32, BASE_DEC, NULL, 0,
19155 "INTEGER_0_65535", HFILL }},
19156 { &hf_h245_crcDesired,
19157 { "crcDesired", "h245.crcDesired_element",
19158 FT_NONE, BASE_NONE, NULL, 0,
19159 NULL, HFILL }},
19160 { &hf_h245_excessiveError,
19161 { "excessiveError", "h245.excessiveError_element",
19162 FT_NONE, BASE_NONE, NULL, 0,
19163 NULL, HFILL }},
19164 { &hf_h245_differential,
19165 { "differential", "h245.differential",
19166 FT_UINT32, BASE_DEC, NULL, 0,
19167 "SET_SIZE_1_65535_OF_DialingInformationNumber", HFILL }},
19168 { &hf_h245_differential_item,
19169 { "DialingInformationNumber", "h245.DialingInformationNumber_element",
19170 FT_NONE, BASE_NONE, NULL, 0,
19171 NULL, HFILL }},
19172 { &hf_h245_infoNotAvailable,
19173 { "infoNotAvailable", "h245.infoNotAvailable",
19174 FT_UINT32, BASE_DEC, NULL, 0,
19175 "INTEGER_1_65535", HFILL }},
19176 { &hf_h245_din_networkAddress,
19177 { "networkAddress", "h245.din_networkAddress",
19178 FT_STRING, BASE_NONE, NULL, 0,
19179 "NumericString_SIZE_0_40", HFILL }},
19180 { &hf_h245_subAddress,
19181 { "subAddress", "h245.subAddress",
19182 FT_STRING, BASE_NONE, NULL, 0,
19183 "IA5String_SIZE_1_40", HFILL }},
19184 { &hf_h245_networkType,
19185 { "networkType", "h245.networkType",
19186 FT_UINT32, BASE_DEC, NULL, 0,
19187 "SET_SIZE_1_255_OF_DialingInformationNetworkType", HFILL }},
19188 { &hf_h245_networkType_item,
19189 { "DialingInformationNetworkType", "h245.DialingInformationNetworkType",
19190 FT_UINT32, BASE_DEC, VALS(h245_DialingInformationNetworkType_vals), 0,
19191 NULL, HFILL }},
19192 { &hf_h245_n_isdn,
19193 { "n-isdn", "h245.n_isdn_element",
19194 FT_NONE, BASE_NONE, NULL, 0,
19195 NULL, HFILL }},
19196 { &hf_h245_gstn,
19197 { "gstn", "h245.gstn_element",
19198 FT_NONE, BASE_NONE, NULL, 0,
19199 NULL, HFILL }},
19200 { &hf_h245_mobile,
19201 { "mobile", "h245.mobile_element",
19202 FT_NONE, BASE_NONE, NULL, 0,
19203 NULL, HFILL }},
19204 { &hf_h245_channelTag,
19205 { "channelTag", "h245.channelTag",
19206 FT_UINT32, BASE_DEC, NULL, 0,
19207 "INTEGER_0_4294967295", HFILL }},
19208 { &hf_h245_sequenceNum,
19209 { "sequenceNumber", "h245.sequenceNum",
19210 FT_UINT32, BASE_DEC, NULL, 0,
19211 "INTEGER_0_4294967295", HFILL }},
19212 { &hf_h245_maximumBitRate,
19213 { "maximumBitRate", "h245.maximumBitRate",
19214 FT_UINT32, BASE_DEC, NULL, 0,
19215 NULL, HFILL }},
19216 { &hf_h245_rejectReason,
19217 { "rejectReason", "h245.rejectReason",
19218 FT_UINT32, BASE_DEC, VALS(h245_LogicalChannelRateRejectReason_vals), 0,
19219 "LogicalChannelRateRejectReason", HFILL }},
19220 { &hf_h245_currentMaximumBitRate,
19221 { "currentMaximumBitRate", "h245.currentMaximumBitRate",
19222 FT_UINT32, BASE_DEC, NULL, 0,
19223 "MaximumBitRate", HFILL }},
19224 { &hf_h245_undefinedReason,
19225 { "undefinedReason", "h245.undefinedReason_element",
19226 FT_NONE, BASE_NONE, NULL, 0,
19227 NULL, HFILL }},
19228 { &hf_h245_insufficientResources,
19229 { "insufficientResources", "h245.insufficientResources_element",
19230 FT_NONE, BASE_NONE, NULL, 0,
19231 NULL, HFILL }},
19232 { &hf_h245_specificRequest,
19233 { "specificRequest", "h245.specificRequest_element",
19234 FT_NONE, BASE_NONE, NULL, 0,
19235 NULL, HFILL }},
19236 { &hf_h245_multiplexCapabilityBool,
19237 { "multiplexCapability", "h245.multiplexCapabilityBool",
19238 FT_BOOLEAN, BASE_NONE, NULL, 0,
19239 "BOOLEAN", HFILL }},
19240 { &hf_h245_capabilityTableEntryNumbers,
19241 { "capabilityTableEntryNumbers", "h245.capabilityTableEntryNumbers",
19242 FT_UINT32, BASE_DEC, NULL, 0,
19243 "SET_SIZE_1_65535_OF_CapabilityTableEntryNumber", HFILL }},
19244 { &hf_h245_capabilityTableEntryNumbers_item,
19245 { "CapabilityTableEntryNumber", "h245.CapabilityTableEntryNumber",
19246 FT_UINT32, BASE_DEC, NULL, 0,
19247 NULL, HFILL }},
19248 { &hf_h245_capabilityDescriptorNumbers,
19249 { "capabilityDescriptorNumbers", "h245.capabilityDescriptorNumbers",
19250 FT_UINT32, BASE_DEC, NULL, 0,
19251 "SET_SIZE_1_256_OF_CapabilityDescriptorNumber", HFILL }},
19252 { &hf_h245_capabilityDescriptorNumbers_item,
19253 { "CapabilityDescriptorNumber", "h245.CapabilityDescriptorNumber",
19254 FT_UINT32, BASE_DEC, NULL, 0,
19255 NULL, HFILL }},
19256 { &hf_h245_genericRequestFlag,
19257 { "genericRequest", "h245.genericRequestFlag_element",
19258 FT_NONE, BASE_NONE, NULL, 0,
19259 NULL, HFILL }},
19260 { &hf_h245_encryptionSE,
19261 { "encryptionSE", "h245.encryptionSE",
19262 FT_BYTES, BASE_NONE, NULL, 0,
19263 "OCTET_STRING", HFILL }},
19264 { &hf_h245_encryptionIVRequest,
19265 { "encryptionIVRequest", "h245.encryptionIVRequest_element",
19266 FT_NONE, BASE_NONE, NULL, 0,
19267 NULL, HFILL }},
19268 { &hf_h245_encryptionAlgorithmID,
19269 { "encryptionAlgorithmID", "h245.encryptionAlgorithmID_element",
19270 FT_NONE, BASE_NONE, NULL, 0,
19271 NULL, HFILL }},
19272 { &hf_h245_h233AlgorithmIdentifier,
19273 { "h233AlgorithmIdentifier", "h245.h233AlgorithmIdentifier",
19274 FT_UINT32, BASE_DEC, NULL, 0,
19275 "SequenceNumber", HFILL }},
19276 { &hf_h245_associatedAlgorithm,
19277 { "associatedAlgorithm", "h245.associatedAlgorithm_element",
19278 FT_NONE, BASE_NONE, NULL, 0,
19279 "NonStandardParameter", HFILL }},
19280 { &hf_h245_wholeMultiplex,
19281 { "wholeMultiplex", "h245.wholeMultiplex_element",
19282 FT_NONE, BASE_NONE, NULL, 0,
19283 NULL, HFILL }},
19284 { &hf_h245_scope,
19285 { "scope", "h245.scope",
19286 FT_UINT32, BASE_DEC, VALS(h245_Scope_vals), 0,
19287 NULL, HFILL }},
19288 { &hf_h245_res_maximumBitRate,
19289 { "maximumBitRate", "h245.res_maximumBitRate",
19290 FT_UINT32, BASE_DEC, NULL, 0,
19291 "INTEGER_0_16777215", HFILL }},
19292 { &hf_h245_noRestriction,
19293 { "noRestriction", "h245.noRestriction_element",
19294 FT_NONE, BASE_NONE, NULL, 0,
19295 NULL, HFILL }},
19296 { &hf_h245_restriction,
19297 { "restriction", "h245.restriction",
19298 FT_UINT32, BASE_DEC, VALS(h245_Restriction_vals), 0,
19299 NULL, HFILL }},
19300 { &hf_h245_disconnect,
19301 { "disconnect", "h245.disconnect_element",
19302 FT_NONE, BASE_NONE, NULL, 0,
19303 NULL, HFILL }},
19304 { &hf_h245_gstnOptions,
19305 { "gstnOptions", "h245.gstnOptions",
19306 FT_UINT32, BASE_DEC, VALS(h245_T_gstnOptions_vals), 0,
19307 NULL, HFILL }},
19308 { &hf_h245_telephonyMode,
19309 { "telephonyMode", "h245.telephonyMode_element",
19310 FT_NONE, BASE_NONE, NULL, 0,
19311 NULL, HFILL }},
19312 { &hf_h245_v8bis,
19313 { "v8bis", "h245.v8bis_element",
19314 FT_NONE, BASE_NONE, NULL, 0,
19315 NULL, HFILL }},
19316 { &hf_h245_v34DSVD,
19317 { "v34DSVD", "h245.v34DSVD_element",
19318 FT_NONE, BASE_NONE, NULL, 0,
19319 NULL, HFILL }},
19320 { &hf_h245_v34DuplexFAX,
19321 { "v34DuplexFAX", "h245.v34DuplexFAX_element",
19322 FT_NONE, BASE_NONE, NULL, 0,
19323 NULL, HFILL }},
19324 { &hf_h245_v34H324,
19325 { "v34H324", "h245.v34H324_element",
19326 FT_NONE, BASE_NONE, NULL, 0,
19327 NULL, HFILL }},
19328 { &hf_h245_isdnOptions,
19329 { "isdnOptions", "h245.isdnOptions",
19330 FT_UINT32, BASE_DEC, VALS(h245_T_isdnOptions_vals), 0,
19331 NULL, HFILL }},
19332 { &hf_h245_v140,
19333 { "v140", "h245.v140_element",
19334 FT_NONE, BASE_NONE, NULL, 0,
19335 NULL, HFILL }},
19336 { &hf_h245_terminalOnHold,
19337 { "terminalOnHold", "h245.terminalOnHold_element",
19338 FT_NONE, BASE_NONE, NULL, 0,
19339 NULL, HFILL }},
19340 { &hf_h245_cancelBroadcastMyLogicalChannel,
19341 { "cancelBroadcastMyLogicalChannel", "h245.cancelBroadcastMyLogicalChannel",
19342 FT_UINT32, BASE_DEC, NULL, 0,
19343 "LogicalChannelNumber", HFILL }},
19344 { &hf_h245_cancelMakeTerminalBroadcaster,
19345 { "cancelMakeTerminalBroadcaster", "h245.cancelMakeTerminalBroadcaster_element",
19346 FT_NONE, BASE_NONE, NULL, 0,
19347 NULL, HFILL }},
19348 { &hf_h245_cancelSendThisSource,
19349 { "cancelSendThisSource", "h245.cancelSendThisSource_element",
19350 FT_NONE, BASE_NONE, NULL, 0,
19351 NULL, HFILL }},
19352 { &hf_h245_dropConference,
19353 { "dropConference", "h245.dropConference_element",
19354 FT_NONE, BASE_NONE, NULL, 0,
19355 NULL, HFILL }},
19356 { &hf_h245_substituteConferenceIDCommand,
19357 { "substituteConferenceIDCommand", "h245.substituteConferenceIDCommand_element",
19358 FT_NONE, BASE_NONE, NULL, 0,
19359 NULL, HFILL }},
19360 { &hf_h245_conferenceIdentifier,
19361 { "conferenceIdentifier", "h245.conferenceIdentifier",
19362 FT_BYTES, BASE_NONE, NULL, 0,
19363 "OCTET_STRING_SIZE_16", HFILL }},
19364 { &hf_h245_masterToSlave,
19365 { "masterToSlave", "h245.masterToSlave_element",
19366 FT_NONE, BASE_NONE, NULL, 0,
19367 NULL, HFILL }},
19368 { &hf_h245_slaveToMaster,
19369 { "slaveToMaster", "h245.slaveToMaster_element",
19370 FT_NONE, BASE_NONE, NULL, 0,
19371 NULL, HFILL }},
19372 { &hf_h245_mc_type,
19373 { "type", "h245.mc_type",
19374 FT_UINT32, BASE_DEC, VALS(h245_Mc_type_vals), 0,
19375 "Mc_type", HFILL }},
19376 { &hf_h245_equaliseDelay,
19377 { "equaliseDelay", "h245.equaliseDelay_element",
19378 FT_NONE, BASE_NONE, NULL, 0,
19379 NULL, HFILL }},
19380 { &hf_h245_zeroDelay,
19381 { "zeroDelay", "h245.zeroDelay_element",
19382 FT_NONE, BASE_NONE, NULL, 0,
19383 NULL, HFILL }},
19384 { &hf_h245_multipointModeCommand,
19385 { "multipointModeCommand", "h245.multipointModeCommand_element",
19386 FT_NONE, BASE_NONE, NULL, 0,
19387 NULL, HFILL }},
19388 { &hf_h245_cancelMultipointModeCommand,
19389 { "cancelMultipointModeCommand", "h245.cancelMultipointModeCommand_element",
19390 FT_NONE, BASE_NONE, NULL, 0,
19391 NULL, HFILL }},
19392 { &hf_h245_videoFreezePicture,
19393 { "videoFreezePicture", "h245.videoFreezePicture_element",
19394 FT_NONE, BASE_NONE, NULL, 0,
19395 NULL, HFILL }},
19396 { &hf_h245_videoFastUpdatePicture,
19397 { "videoFastUpdatePicture", "h245.videoFastUpdatePicture_element",
19398 FT_NONE, BASE_NONE, NULL, 0,
19399 NULL, HFILL }},
19400 { &hf_h245_videoFastUpdateGOB,
19401 { "videoFastUpdateGOB", "h245.videoFastUpdateGOB_element",
19402 FT_NONE, BASE_NONE, NULL, 0,
19403 NULL, HFILL }},
19404 { &hf_h245_firstGOB,
19405 { "firstGOB", "h245.firstGOB",
19406 FT_UINT32, BASE_DEC, NULL, 0,
19407 "INTEGER_0_17", HFILL }},
19408 { &hf_h245_numberOfGOBs,
19409 { "numberOfGOBs", "h245.numberOfGOBs",
19410 FT_UINT32, BASE_DEC, NULL, 0,
19411 "INTEGER_1_18", HFILL }},
19412 { &hf_h245_videoTemporalSpatialTradeOff,
19413 { "videoTemporalSpatialTradeOff", "h245.videoTemporalSpatialTradeOff",
19414 FT_UINT32, BASE_DEC, NULL, 0,
19415 "INTEGER_0_31", HFILL }},
19416 { &hf_h245_videoSendSyncEveryGOB,
19417 { "videoSendSyncEveryGOB", "h245.videoSendSyncEveryGOB_element",
19418 FT_NONE, BASE_NONE, NULL, 0,
19419 NULL, HFILL }},
19420 { &hf_h245_videoSendSyncEveryGOBCancel,
19421 { "videoSendSyncEveryGOBCancel", "h245.videoSendSyncEveryGOBCancel_element",
19422 FT_NONE, BASE_NONE, NULL, 0,
19423 NULL, HFILL }},
19424 { &hf_h245_videoFastUpdateMB,
19425 { "videoFastUpdateMB", "h245.videoFastUpdateMB_element",
19426 FT_NONE, BASE_NONE, NULL, 0,
19427 NULL, HFILL }},
19428 { &hf_h245_firstGOB_0_255,
19429 { "firstGOB", "h245.firstGOB_0_255",
19430 FT_UINT32, BASE_DEC, NULL, 0,
19431 "INTEGER_0_255", HFILL }},
19432 { &hf_h245_firstMB_1_8192,
19433 { "firstMB", "h245.firstMB_1_8192",
19434 FT_UINT32, BASE_DEC, NULL, 0,
19435 "INTEGER_1_8192", HFILL }},
19436 { &hf_h245_numberOfMBs,
19437 { "numberOfMBs", "h245.numberOfMBs",
19438 FT_UINT32, BASE_DEC, NULL, 0,
19439 "INTEGER_1_8192", HFILL }},
19440 { &hf_h245_maxH223MUXPDUsize,
19441 { "maxH223MUXPDUsize", "h245.maxH223MUXPDUsize",
19442 FT_UINT32, BASE_DEC, NULL, 0,
19443 "INTEGER_1_65535", HFILL }},
19444 { &hf_h245_encryptionUpdate,
19445 { "encryptionUpdate", "h245.encryptionUpdate_element",
19446 FT_NONE, BASE_NONE, NULL, 0,
19447 "EncryptionSync", HFILL }},
19448 { &hf_h245_encryptionUpdateRequest,
19449 { "encryptionUpdateRequest", "h245.encryptionUpdateRequest_element",
19450 FT_NONE, BASE_NONE, NULL, 0,
19451 NULL, HFILL }},
19452 { &hf_h245_switchReceiveMediaOff,
19453 { "switchReceiveMediaOff", "h245.switchReceiveMediaOff_element",
19454 FT_NONE, BASE_NONE, NULL, 0,
19455 NULL, HFILL }},
19456 { &hf_h245_switchReceiveMediaOn,
19457 { "switchReceiveMediaOn", "h245.switchReceiveMediaOn_element",
19458 FT_NONE, BASE_NONE, NULL, 0,
19459 NULL, HFILL }},
19460 { &hf_h245_progressiveRefinementStart,
19461 { "progressiveRefinementStart", "h245.progressiveRefinementStart_element",
19462 FT_NONE, BASE_NONE, NULL, 0,
19463 NULL, HFILL }},
19464 { &hf_h245_repeatCount,
19465 { "repeatCount", "h245.repeatCount",
19466 FT_UINT32, BASE_DEC, VALS(h245_T_repeatCount_vals), 0,
19467 NULL, HFILL }},
19468 { &hf_h245_doOneProgression,
19469 { "doOneProgression", "h245.doOneProgression_element",
19470 FT_NONE, BASE_NONE, NULL, 0,
19471 NULL, HFILL }},
19472 { &hf_h245_doContinuousProgressions,
19473 { "doContinuousProgressions", "h245.doContinuousProgressions_element",
19474 FT_NONE, BASE_NONE, NULL, 0,
19475 NULL, HFILL }},
19476 { &hf_h245_doOneIndependentProgression,
19477 { "doOneIndependentProgression", "h245.doOneIndependentProgression_element",
19478 FT_NONE, BASE_NONE, NULL, 0,
19479 NULL, HFILL }},
19480 { &hf_h245_doContinuousIndependentProgressions,
19481 { "doContinuousIndependentProgressions", "h245.doContinuousIndependentProgressions_element",
19482 FT_NONE, BASE_NONE, NULL, 0,
19483 NULL, HFILL }},
19484 { &hf_h245_progressiveRefinementAbortOne,
19485 { "progressiveRefinementAbortOne", "h245.progressiveRefinementAbortOne_element",
19486 FT_NONE, BASE_NONE, NULL, 0,
19487 NULL, HFILL }},
19488 { &hf_h245_progressiveRefinementAbortContinuous,
19489 { "progressiveRefinementAbortContinuous", "h245.progressiveRefinementAbortContinuous_element",
19490 FT_NONE, BASE_NONE, NULL, 0,
19491 NULL, HFILL }},
19492 { &hf_h245_videoBadMBs,
19493 { "videoBadMBs", "h245.videoBadMBs_element",
19494 FT_NONE, BASE_NONE, NULL, 0,
19495 NULL, HFILL }},
19496 { &hf_h245_firstMB,
19497 { "firstMB", "h245.firstMB",
19498 FT_UINT32, BASE_DEC, NULL, 0,
19499 "INTEGER_1_9216", HFILL }},
19500 { &hf_h245_numberOfMBs1_1_9216,
19501 { "numberOfMBs", "h245.numberOfMBs1_1_9216",
19502 FT_UINT32, BASE_DEC, NULL, 0,
19503 "INTEGER_1_9216", HFILL }},
19504 { &hf_h245_temporalReference,
19505 { "temporalReference", "h245.temporalReference",
19506 FT_UINT32, BASE_DEC, NULL, 0,
19507 "INTEGER_0_1023", HFILL }},
19508 { &hf_h245_lostPicture,
19509 { "lostPicture", "h245.lostPicture",
19510 FT_UINT32, BASE_DEC, NULL, 0,
19511 "SEQUENCE_OF_PictureReference", HFILL }},
19512 { &hf_h245_lostPicture_item,
19513 { "PictureReference", "h245.PictureReference",
19514 FT_UINT32, BASE_DEC, VALS(h245_PictureReference_vals), 0,
19515 NULL, HFILL }},
19516 { &hf_h245_lostPartialPicture,
19517 { "lostPartialPicture", "h245.lostPartialPicture_element",
19518 FT_NONE, BASE_NONE, NULL, 0,
19519 NULL, HFILL }},
19520 { &hf_h245_pictureReference,
19521 { "pictureReference", "h245.pictureReference",
19522 FT_UINT32, BASE_DEC, VALS(h245_PictureReference_vals), 0,
19523 NULL, HFILL }},
19524 { &hf_h245_recoveryReferencePicture,
19525 { "recoveryReferencePicture", "h245.recoveryReferencePicture",
19526 FT_UINT32, BASE_DEC, NULL, 0,
19527 "SEQUENCE_OF_PictureReference", HFILL }},
19528 { &hf_h245_recoveryReferencePicture_item,
19529 { "PictureReference", "h245.PictureReference",
19530 FT_UINT32, BASE_DEC, VALS(h245_PictureReference_vals), 0,
19531 NULL, HFILL }},
19532 { &hf_h245_encryptionUpdateCommand,
19533 { "encryptionUpdateCommand", "h245.encryptionUpdateCommand_element",
19534 FT_NONE, BASE_NONE, NULL, 0,
19535 NULL, HFILL }},
19536 { &hf_h245_encryptionUpdateAck,
19537 { "encryptionUpdateAck", "h245.encryptionUpdateAck_element",
19538 FT_NONE, BASE_NONE, NULL, 0,
19539 NULL, HFILL }},
19540 { &hf_h245_direction,
19541 { "direction", "h245.direction",
19542 FT_UINT32, BASE_DEC, VALS(h245_EncryptionUpdateDirection_vals), 0,
19543 "EncryptionUpdateDirection", HFILL }},
19544 { &hf_h245_secureChannel,
19545 { "secureChannel", "h245.secureChannel",
19546 FT_BOOLEAN, BASE_NONE, NULL, 0,
19547 "BOOLEAN", HFILL }},
19548 { &hf_h245_sharedSecret,
19549 { "sharedSecret", "h245.sharedSecret",
19550 FT_BOOLEAN, BASE_NONE, NULL, 0,
19551 "BOOLEAN", HFILL }},
19552 { &hf_h245_certProtectedKey,
19553 { "certProtectedKey", "h245.certProtectedKey",
19554 FT_BOOLEAN, BASE_NONE, NULL, 0,
19555 "BOOLEAN", HFILL }},
19556 { &hf_h245_keyProtectionMethod,
19557 { "keyProtectionMethod", "h245.keyProtectionMethod_element",
19558 FT_NONE, BASE_NONE, NULL, 0,
19559 NULL, HFILL }},
19560 { &hf_h245_pictureNumber,
19561 { "pictureNumber", "h245.pictureNumber",
19562 FT_UINT32, BASE_DEC, NULL, 0,
19563 "INTEGER_0_1023", HFILL }},
19564 { &hf_h245_longTermPictureIndex,
19565 { "longTermPictureIndex", "h245.longTermPictureIndex",
19566 FT_UINT32, BASE_DEC, NULL, 0,
19567 "INTEGER_0_255", HFILL }},
19568 { &hf_h245_h223ModeChange,
19569 { "h223ModeChange", "h245.h223ModeChange",
19570 FT_UINT32, BASE_DEC, VALS(h245_T_h223ModeChange_vals), 0,
19571 NULL, HFILL }},
19572 { &hf_h245_toLevel0,
19573 { "toLevel0", "h245.toLevel0_element",
19574 FT_NONE, BASE_NONE, NULL, 0,
19575 NULL, HFILL }},
19576 { &hf_h245_toLevel1,
19577 { "toLevel1", "h245.toLevel1_element",
19578 FT_NONE, BASE_NONE, NULL, 0,
19579 NULL, HFILL }},
19580 { &hf_h245_toLevel2,
19581 { "toLevel2", "h245.toLevel2_element",
19582 FT_NONE, BASE_NONE, NULL, 0,
19583 NULL, HFILL }},
19584 { &hf_h245_toLevel2withOptionalHeader,
19585 { "toLevel2withOptionalHeader", "h245.toLevel2withOptionalHeader_element",
19586 FT_NONE, BASE_NONE, NULL, 0,
19587 NULL, HFILL }},
19588 { &hf_h245_h223AnnexADoubleFlag,
19589 { "h223AnnexADoubleFlag", "h245.h223AnnexADoubleFlag",
19590 FT_UINT32, BASE_DEC, VALS(h245_T_h223AnnexADoubleFlag_vals), 0,
19591 NULL, HFILL }},
19592 { &hf_h245_start,
19593 { "start", "h245.start_element",
19594 FT_NONE, BASE_NONE, NULL, 0,
19595 NULL, HFILL }},
19596 { &hf_h245_stop,
19597 { "stop", "h245.stop_element",
19598 FT_NONE, BASE_NONE, NULL, 0,
19599 NULL, HFILL }},
19600 { &hf_h245_bitRate,
19601 { "bitRate", "h245.bitRate",
19602 FT_UINT32, BASE_DEC, NULL, 0,
19603 "INTEGER_1_65535", HFILL }},
19604 { &hf_h245_bitRateLockedToPCRClock,
19605 { "bitRateLockedToPCRClock", "h245.bitRateLockedToPCRClock",
19606 FT_BOOLEAN, BASE_NONE, NULL, 0,
19607 "BOOLEAN", HFILL }},
19608 { &hf_h245_bitRateLockedToNetworkClock,
19609 { "bitRateLockedToNetworkClock", "h245.bitRateLockedToNetworkClock",
19610 FT_BOOLEAN, BASE_NONE, NULL, 0,
19611 "BOOLEAN", HFILL }},
19612 { &hf_h245_cmd_aal,
19613 { "aal", "h245.cmd_aal",
19614 FT_UINT32, BASE_DEC, VALS(h245_Cmd_aal_vals), 0,
19615 "Cmd_aal", HFILL }},
19616 { &hf_h245_cmd_aal1,
19617 { "aal1", "h245.cmd_aal1_element",
19618 FT_NONE, BASE_NONE, NULL, 0,
19619 "Cmd_aal1", HFILL }},
19620 { &hf_h245_cmd_clockRecovery,
19621 { "clockRecovery", "h245.cmd_clockRecovery",
19622 FT_UINT32, BASE_DEC, VALS(h245_Cmd_clockRecovery_vals), 0,
19623 "Cmd_clockRecovery", HFILL }},
19624 { &hf_h245_nullClockRecoveryflag,
19625 { "nullClockRecovery", "h245.nullClockRecoveryflag_element",
19626 FT_NONE, BASE_NONE, NULL, 0,
19627 NULL, HFILL }},
19628 { &hf_h245_srtsClockRecovery,
19629 { "srtsClockRecovery", "h245.srtsClockRecovery_element",
19630 FT_NONE, BASE_NONE, NULL, 0,
19631 NULL, HFILL }},
19632 { &hf_h245_adaptiveClockRecoveryFlag,
19633 { "adaptiveClockRecovery", "h245.adaptiveClockRecoveryFlag_element",
19634 FT_NONE, BASE_NONE, NULL, 0,
19635 NULL, HFILL }},
19636 { &hf_h245_cmd_errorCorrection,
19637 { "errorCorrection", "h245.cmd_errorCorrection",
19638 FT_UINT32, BASE_DEC, VALS(h245_Cmd_errorCorrection_vals), 0,
19639 "Cmd_errorCorrection", HFILL }},
19640 { &hf_h245_nullErrorCorrectionFlag,
19641 { "nullErrorCorrection", "h245.nullErrorCorrectionFlag_element",
19642 FT_NONE, BASE_NONE, NULL, 0,
19643 NULL, HFILL }},
19644 { &hf_h245_longInterleaverFlag,
19645 { "longInterleaver", "h245.longInterleaverFlag_element",
19646 FT_NONE, BASE_NONE, NULL, 0,
19647 NULL, HFILL }},
19648 { &hf_h245_shortInterleaverFlag,
19649 { "shortInterleaver", "h245.shortInterleaverFlag_element",
19650 FT_NONE, BASE_NONE, NULL, 0,
19651 NULL, HFILL }},
19652 { &hf_h245_errorCorrectionOnlyFlag,
19653 { "errorCorrectionOnly", "h245.errorCorrectionOnlyFlag_element",
19654 FT_NONE, BASE_NONE, NULL, 0,
19655 NULL, HFILL }},
19656 { &hf_h245_cmd_aal5,
19657 { "aal5", "h245.cmd_aal5_element",
19658 FT_NONE, BASE_NONE, NULL, 0,
19659 "Cmd_aal5", HFILL }},
19660 { &hf_h245_cmd_multiplex,
19661 { "multiplex", "h245.cmd_multiplex",
19662 FT_UINT32, BASE_DEC, VALS(h245_Cmd_multiplex_vals), 0,
19663 "Cmd_multiplex", HFILL }},
19664 { &hf_h245_noMultiplex,
19665 { "noMultiplex", "h245.noMultiplex_element",
19666 FT_NONE, BASE_NONE, NULL, 0,
19667 NULL, HFILL }},
19668 { &hf_h245_transportStream,
19669 { "transportStream", "h245.transportStream_element",
19670 FT_NONE, BASE_NONE, NULL, 0,
19671 NULL, HFILL }},
19672 { &hf_h245_programStreamFlag,
19673 { "programStream", "h245.programStreamFlag_element",
19674 FT_NONE, BASE_NONE, NULL, 0,
19675 NULL, HFILL }},
19676 { &hf_h245_cmd_reverseParameters,
19677 { "reverseParameters", "h245.cmd_reverseParameters_element",
19678 FT_NONE, BASE_NONE, NULL, 0,
19679 "Cmd_reverseParameters", HFILL }},
19680 { &hf_h245_cmdr_multiplex,
19681 { "multiplex", "h245.cmdr_multiplex",
19682 FT_UINT32, BASE_DEC, VALS(h245_CmdR_multiplex_vals), 0,
19683 "CmdR_multiplex", HFILL }},
19684 { &hf_h245_sampleSize,
19685 { "sampleSize", "h245.sampleSize",
19686 FT_UINT32, BASE_DEC, NULL, 0,
19687 "INTEGER_1_255", HFILL }},
19688 { &hf_h245_samplesPerFrame,
19689 { "samplesPerFrame", "h245.samplesPerFrame",
19690 FT_UINT32, BASE_DEC, NULL, 0,
19691 "INTEGER_1_255", HFILL }},
19692 { &hf_h245_status,
19693 { "status", "h245.status",
19694 FT_UINT32, BASE_DEC, VALS(h245_T_status_vals), 0,
19695 NULL, HFILL }},
19696 { &hf_h245_synchronized,
19697 { "synchronized", "h245.synchronized_element",
19698 FT_NONE, BASE_NONE, NULL, 0,
19699 NULL, HFILL }},
19700 { &hf_h245_reconfiguration,
19701 { "reconfiguration", "h245.reconfiguration_element",
19702 FT_NONE, BASE_NONE, NULL, 0,
19703 NULL, HFILL }},
19704 { &hf_h245_fns_cause,
19705 { "cause", "h245.fns_cause",
19706 FT_UINT32, BASE_DEC, VALS(h245_FunctionNotSupportedCause_vals), 0,
19707 "FunctionNotSupportedCause", HFILL }},
19708 { &hf_h245_syntaxError,
19709 { "syntaxError", "h245.syntaxError_element",
19710 FT_NONE, BASE_NONE, NULL, 0,
19711 NULL, HFILL }},
19712 { &hf_h245_semanticError,
19713 { "semanticError", "h245.semanticError_element",
19714 FT_NONE, BASE_NONE, NULL, 0,
19715 NULL, HFILL }},
19716 { &hf_h245_unknownFunction,
19717 { "unknownFunction", "h245.unknownFunction_element",
19718 FT_NONE, BASE_NONE, NULL, 0,
19719 NULL, HFILL }},
19720 { &hf_h245_returnedFunction,
19721 { "returnedFunction", "h245.returnedFunction",
19722 FT_BYTES, BASE_NONE, NULL, 0,
19723 NULL, HFILL }},
19724 { &hf_h245_sbeNumber,
19725 { "sbeNumber", "h245.sbeNumber",
19726 FT_UINT32, BASE_DEC, NULL, 0,
19727 "INTEGER_0_9", HFILL }},
19728 { &hf_h245_terminalNumberAssign,
19729 { "terminalNumberAssign", "h245.terminalNumberAssign_element",
19730 FT_NONE, BASE_NONE, NULL, 0,
19731 "TerminalLabel", HFILL }},
19732 { &hf_h245_terminalJoinedConference,
19733 { "terminalJoinedConference", "h245.terminalJoinedConference_element",
19734 FT_NONE, BASE_NONE, NULL, 0,
19735 "TerminalLabel", HFILL }},
19736 { &hf_h245_terminalLeftConference,
19737 { "terminalLeftConference", "h245.terminalLeftConference_element",
19738 FT_NONE, BASE_NONE, NULL, 0,
19739 "TerminalLabel", HFILL }},
19740 { &hf_h245_seenByAtLeastOneOther,
19741 { "seenByAtLeastOneOther", "h245.seenByAtLeastOneOther_element",
19742 FT_NONE, BASE_NONE, NULL, 0,
19743 NULL, HFILL }},
19744 { &hf_h245_cancelSeenByAtLeastOneOther,
19745 { "cancelSeenByAtLeastOneOther", "h245.cancelSeenByAtLeastOneOther_element",
19746 FT_NONE, BASE_NONE, NULL, 0,
19747 NULL, HFILL }},
19748 { &hf_h245_seenByAll,
19749 { "seenByAll", "h245.seenByAll_element",
19750 FT_NONE, BASE_NONE, NULL, 0,
19751 NULL, HFILL }},
19752 { &hf_h245_cancelSeenByAll,
19753 { "cancelSeenByAll", "h245.cancelSeenByAll_element",
19754 FT_NONE, BASE_NONE, NULL, 0,
19755 NULL, HFILL }},
19756 { &hf_h245_terminalYouAreSeeing,
19757 { "terminalYouAreSeeing", "h245.terminalYouAreSeeing_element",
19758 FT_NONE, BASE_NONE, NULL, 0,
19759 "TerminalLabel", HFILL }},
19760 { &hf_h245_requestForFloor,
19761 { "requestForFloor", "h245.requestForFloor_element",
19762 FT_NONE, BASE_NONE, NULL, 0,
19763 NULL, HFILL }},
19764 { &hf_h245_withdrawChairToken,
19765 { "withdrawChairToken", "h245.withdrawChairToken_element",
19766 FT_NONE, BASE_NONE, NULL, 0,
19767 NULL, HFILL }},
19768 { &hf_h245_floorRequested,
19769 { "floorRequested", "h245.floorRequested_element",
19770 FT_NONE, BASE_NONE, NULL, 0,
19771 "TerminalLabel", HFILL }},
19772 { &hf_h245_terminalYouAreSeeingInSubPictureNumber,
19773 { "terminalYouAreSeeingInSubPictureNumber", "h245.terminalYouAreSeeingInSubPictureNumber_element",
19774 FT_NONE, BASE_NONE, NULL, 0,
19775 NULL, HFILL }},
19776 { &hf_h245_videoIndicateCompose,
19777 { "videoIndicateCompose", "h245.videoIndicateCompose_element",
19778 FT_NONE, BASE_NONE, NULL, 0,
19779 NULL, HFILL }},
19780 { &hf_h245_masterMCU,
19781 { "masterMCU", "h245.masterMCU_element",
19782 FT_NONE, BASE_NONE, NULL, 0,
19783 NULL, HFILL }},
19784 { &hf_h245_cancelMasterMCU,
19785 { "cancelMasterMCU", "h245.cancelMasterMCU_element",
19786 FT_NONE, BASE_NONE, NULL, 0,
19787 NULL, HFILL }},
19788 { &hf_h245_subPictureNumber,
19789 { "subPictureNumber", "h245.subPictureNumber",
19790 FT_UINT32, BASE_DEC, NULL, 0,
19791 "INTEGER_0_255", HFILL }},
19792 { &hf_h245_compositionNumber,
19793 { "compositionNumber", "h245.compositionNumber",
19794 FT_UINT32, BASE_DEC, NULL, 0,
19795 "INTEGER_0_255", HFILL }},
19796 { &hf_h245_mi_type,
19797 { "type", "h245.mi_type",
19798 FT_UINT32, BASE_DEC, VALS(h245_Mi_type_vals), 0,
19799 "Mi_type", HFILL }},
19800 { &hf_h245_logicalChannelActive,
19801 { "logicalChannelActive", "h245.logicalChannelActive_element",
19802 FT_NONE, BASE_NONE, NULL, 0,
19803 NULL, HFILL }},
19804 { &hf_h245_logicalChannelInactive,
19805 { "logicalChannelInactive", "h245.logicalChannelInactive_element",
19806 FT_NONE, BASE_NONE, NULL, 0,
19807 NULL, HFILL }},
19808 { &hf_h245_multipointConference,
19809 { "multipointConference", "h245.multipointConference_element",
19810 FT_NONE, BASE_NONE, NULL, 0,
19811 NULL, HFILL }},
19812 { &hf_h245_cancelMultipointConference,
19813 { "cancelMultipointConference", "h245.cancelMultipointConference_element",
19814 FT_NONE, BASE_NONE, NULL, 0,
19815 NULL, HFILL }},
19816 { &hf_h245_multipointZeroComm,
19817 { "multipointZeroComm", "h245.multipointZeroComm_element",
19818 FT_NONE, BASE_NONE, NULL, 0,
19819 NULL, HFILL }},
19820 { &hf_h245_cancelMultipointZeroComm,
19821 { "cancelMultipointZeroComm", "h245.cancelMultipointZeroComm_element",
19822 FT_NONE, BASE_NONE, NULL, 0,
19823 NULL, HFILL }},
19824 { &hf_h245_multipointSecondaryStatus,
19825 { "multipointSecondaryStatus", "h245.multipointSecondaryStatus_element",
19826 FT_NONE, BASE_NONE, NULL, 0,
19827 NULL, HFILL }},
19828 { &hf_h245_cancelMultipointSecondaryStatus,
19829 { "cancelMultipointSecondaryStatus", "h245.cancelMultipointSecondaryStatus_element",
19830 FT_NONE, BASE_NONE, NULL, 0,
19831 NULL, HFILL }},
19832 { &hf_h245_videoIndicateReadyToActivate,
19833 { "videoIndicateReadyToActivate", "h245.videoIndicateReadyToActivate_element",
19834 FT_NONE, BASE_NONE, NULL, 0,
19835 NULL, HFILL }},
19836 { &hf_h245_videoNotDecodedMBs,
19837 { "videoNotDecodedMBs", "h245.videoNotDecodedMBs_element",
19838 FT_NONE, BASE_NONE, NULL, 0,
19839 NULL, HFILL }},
19840 { &hf_h245_temporalReference_0_255,
19841 { "temporalReference", "h245.temporalReference_0_255",
19842 FT_UINT32, BASE_DEC, NULL, 0,
19843 "INTEGER_0_255", HFILL }},
19844 { &hf_h245_estimatedReceivedJitterMantissa,
19845 { "estimatedReceivedJitterMantissa", "h245.estimatedReceivedJitterMantissa",
19846 FT_UINT32, BASE_DEC, NULL, 0,
19847 "INTEGER_0_3", HFILL }},
19848 { &hf_h245_estimatedReceivedJitterExponent,
19849 { "estimatedReceivedJitterExponent", "h245.estimatedReceivedJitterExponent",
19850 FT_UINT32, BASE_DEC, NULL, 0,
19851 "INTEGER_0_7", HFILL }},
19852 { &hf_h245_skippedFrameCount,
19853 { "skippedFrameCount", "h245.skippedFrameCount",
19854 FT_UINT32, BASE_DEC, NULL, 0,
19855 "INTEGER_0_15", HFILL }},
19856 { &hf_h245_additionalDecoderBuffer,
19857 { "additionalDecoderBuffer", "h245.additionalDecoderBuffer",
19858 FT_UINT32, BASE_DEC, NULL, 0,
19859 "INTEGER_0_262143", HFILL }},
19860 { &hf_h245_logicalChannelNumber1,
19861 { "logicalChannelNumber1", "h245.logicalChannelNumber1",
19862 FT_UINT32, BASE_DEC, NULL, 0,
19863 "LogicalChannelNumber", HFILL }},
19864 { &hf_h245_logicalChannelNumber2,
19865 { "logicalChannelNumber2", "h245.logicalChannelNumber2",
19866 FT_UINT32, BASE_DEC, NULL, 0,
19867 "LogicalChannelNumber", HFILL }},
19868 { &hf_h245_skew,
19869 { "skew", "h245.skew",
19870 FT_UINT32, BASE_DEC, NULL, 0,
19871 "INTEGER_0_4095", HFILL }},
19872 { &hf_h245_maximumSkew,
19873 { "maximumSkew", "h245.maximumSkew",
19874 FT_UINT32, BASE_DEC, NULL, 0,
19875 "INTEGER_0_4095", HFILL }},
19876 { &hf_h245_signalAddress,
19877 { "signalAddress", "h245.signalAddress",
19878 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
19879 "TransportAddress", HFILL }},
19880 { &hf_h245_vendor,
19881 { "vendor", "h245.vendor",
19882 FT_UINT32, BASE_DEC, VALS(h245_NonStandardIdentifier_vals), 0,
19883 "NonStandardIdentifier", HFILL }},
19884 { &hf_h245_productNumber,
19885 { "productNumber", "h245.productNumber",
19886 FT_STRING, BASE_NONE, NULL, 0,
19887 "OCTET_STRING_SIZE_1_256", HFILL }},
19888 { &hf_h245_versionNumber,
19889 { "versionNumber", "h245.versionNumber",
19890 FT_STRING, BASE_NONE, NULL, 0,
19891 "OCTET_STRING_SIZE_1_256", HFILL }},
19892 { &hf_h245_ind_aal,
19893 { "aal", "h245.ind_aal",
19894 FT_UINT32, BASE_DEC, VALS(h245_Ind_aal_vals), 0,
19895 "Ind_aal", HFILL }},
19896 { &hf_h245_ind_aal1,
19897 { "aal1", "h245.ind_aal1_element",
19898 FT_NONE, BASE_NONE, NULL, 0,
19899 "Ind_aal1", HFILL }},
19900 { &hf_h245_ind_clockRecovery,
19901 { "clockRecovery", "h245.ind_clockRecovery",
19902 FT_UINT32, BASE_DEC, VALS(h245_Ind_clockRecovery_vals), 0,
19903 "Ind_clockRecovery", HFILL }},
19904 { &hf_h245_ind_errorCorrection,
19905 { "errorCorrection", "h245.ind_errorCorrection",
19906 FT_UINT32, BASE_DEC, VALS(h245_Ind_errorCorrection_vals), 0,
19907 "Ind_errorCorrection", HFILL }},
19908 { &hf_h245_ind_aal5,
19909 { "aal5", "h245.ind_aal5_element",
19910 FT_NONE, BASE_NONE, NULL, 0,
19911 "Ind_aal5", HFILL }},
19912 { &hf_h245_ind_multiplex,
19913 { "multiplex", "h245.ind_multiplex",
19914 FT_UINT32, BASE_DEC, VALS(h245_Ind_multiplex_vals), 0,
19915 "Ind_multiplex", HFILL }},
19916 { &hf_h245_ind_reverseParameters,
19917 { "reverseParameters", "h245.ind_reverseParameters_element",
19918 FT_NONE, BASE_NONE, NULL, 0,
19919 "Ind_reverseParameters", HFILL }},
19920 { &hf_h245_indr_multiplex,
19921 { "multiplex", "h245.indr_multiplex",
19922 FT_UINT32, BASE_DEC, VALS(h245_IndR_multiplex_vals), 0,
19923 "IndR_multiplex", HFILL }},
19924 { &hf_h245_iv8,
19925 { "iv8", "h245.iv8",
19926 FT_BYTES, BASE_NONE, NULL, 0,
19927 NULL, HFILL }},
19928 { &hf_h245_iv16,
19929 { "iv16", "h245.iv16",
19930 FT_BYTES, BASE_NONE, NULL, 0,
19931 NULL, HFILL }},
19932 { &hf_h245_iv,
19933 { "iv", "h245.iv",
19934 FT_BYTES, BASE_NONE, NULL, 0,
19935 "OCTET_STRING", HFILL }},
19936 { &hf_h245_alphanumeric,
19937 { "alphanumeric", "h245.alphanumeric",
19938 FT_STRING, BASE_NONE, NULL, 0,
19939 "GeneralString", HFILL }},
19940 { &hf_h245_userInputSupportIndication,
19941 { "userInputSupportIndication", "h245.userInputSupportIndication",
19942 FT_UINT32, BASE_DEC, VALS(h245_T_userInputSupportIndication_vals), 0,
19943 NULL, HFILL }},
19944 { &hf_h245_signal,
19945 { "signal", "h245.signal_element",
19946 FT_NONE, BASE_NONE, NULL, 0,
19947 NULL, HFILL }},
19948 { &hf_h245_signalType,
19949 { "signalType", "h245.signalType",
19950 FT_STRING, BASE_NONE, NULL, 0,
19951 NULL, HFILL }},
19952 { &hf_h245_duration,
19953 { "duration", "h245.duration",
19954 FT_UINT32, BASE_DEC, NULL, 0,
19955 "INTEGER_1_65535", HFILL }},
19956 { &hf_h245_rtp,
19957 { "rtp", "h245.rtp_element",
19958 FT_NONE, BASE_NONE, NULL, 0,
19959 NULL, HFILL }},
19960 { &hf_h245_timestamp,
19961 { "timestamp", "h245.timestamp",
19962 FT_UINT32, BASE_DEC, NULL, 0,
19963 "INTEGER_0_4294967295", HFILL }},
19964 { &hf_h245_expirationTime,
19965 { "expirationTime", "h245.expirationTime",
19966 FT_UINT32, BASE_DEC, NULL, 0,
19967 "INTEGER_0_4294967295", HFILL }},
19968 { &hf_h245_rtpPayloadIndication,
19969 { "rtpPayloadIndication", "h245.rtpPayloadIndication_element",
19970 FT_NONE, BASE_NONE, NULL, 0,
19971 NULL, HFILL }},
19972 { &hf_h245_paramS,
19973 { "paramS", "h245.paramS_element",
19974 FT_NONE, BASE_NONE, NULL, 0,
19975 NULL, HFILL }},
19976 { &hf_h245_encryptedSignalType,
19977 { "encryptedSignalType", "h245.encryptedSignalType",
19978 FT_BYTES, BASE_NONE, NULL, 0,
19979 "OCTET_STRING_SIZE_1", HFILL }},
19980 { &hf_h245_algorithmOID,
19981 { "algorithmOID", "h245.algorithmOID",
19982 FT_OID, BASE_NONE, NULL, 0,
19983 "OBJECT_IDENTIFIER", HFILL }},
19984 { &hf_h245_signalUpdate,
19985 { "signalUpdate", "h245.signalUpdate_element",
19986 FT_NONE, BASE_NONE, NULL, 0,
19987 NULL, HFILL }},
19988 { &hf_h245_si_rtp,
19989 { "rtp", "h245.si_rtp_element",
19990 FT_NONE, BASE_NONE, NULL, 0,
19991 "Si_rtp", HFILL }},
19992 { &hf_h245_extendedAlphanumeric,
19993 { "extendedAlphanumeric", "h245.extendedAlphanumeric_element",
19994 FT_NONE, BASE_NONE, NULL, 0,
19995 NULL, HFILL }},
19996 { &hf_h245_encrypted,
19997 { "encrypted", "h245.encrypted",
19998 FT_BYTES, BASE_NONE, NULL, 0,
19999 "OCTET_STRING", HFILL }},
20000 { &hf_h245_encryptedAlphanumeric,
20001 { "encryptedAlphanumeric", "h245.encryptedAlphanumeric_element",
20002 FT_NONE, BASE_NONE, NULL, 0,
20003 NULL, HFILL }},
20006 /* List of subtrees */
20007 static int *ett[] = {
20008 &ett_h245,
20009 &ett_h245_returnedFunction,
20010 &ett_h245_MultimediaSystemControlMessage,
20011 &ett_h245_RequestMessage,
20012 &ett_h245_ResponseMessage,
20013 &ett_h245_CommandMessage,
20014 &ett_h245_IndicationMessage,
20015 &ett_h245_GenericMessage,
20016 &ett_h245_T_messageContent,
20017 &ett_h245_NonStandardMessage,
20018 &ett_h245_NonStandardParameter,
20019 &ett_h245_NonStandardIdentifier,
20020 &ett_h245_H221NonStandardID,
20021 &ett_h245_MasterSlaveDetermination,
20022 &ett_h245_MasterSlaveDeterminationAck,
20023 &ett_h245_T_decision,
20024 &ett_h245_MasterSlaveDeterminationReject,
20025 &ett_h245_MasterSlaveDeterminationRejectCause,
20026 &ett_h245_MasterSlaveDeterminationRelease,
20027 &ett_h245_TerminalCapabilitySet,
20028 &ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry,
20029 &ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor,
20030 &ett_h245_SEQUENCE_OF_GenericInformation,
20031 &ett_h245_CapabilityTableEntry,
20032 &ett_h245_CapabilityDescriptor,
20033 &ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet,
20034 &ett_h245_AlternativeCapabilitySet,
20035 &ett_h245_TerminalCapabilitySetAck,
20036 &ett_h245_TerminalCapabilitySetReject,
20037 &ett_h245_TerminalCapabilitySetRejectCause,
20038 &ett_h245_T_tableEntryCapacityExceeded,
20039 &ett_h245_TerminalCapabilitySetRelease,
20040 &ett_h245_Capability,
20041 &ett_h245_T_h233EncryptionReceiveCapability,
20042 &ett_h245_H235SecurityCapability,
20043 &ett_h245_MultiplexCapability,
20044 &ett_h245_H222Capability,
20045 &ett_h245_SET_OF_VCCapability,
20046 &ett_h245_VCCapability,
20047 &ett_h245_T_aal1,
20048 &ett_h245_T_aal5,
20049 &ett_h245_T_availableBitRates,
20050 &ett_h245_Avb_type,
20051 &ett_h245_T_rangeOfBitRates,
20052 &ett_h245_T_aal1ViaGateway,
20053 &ett_h245_SET_SIZE_1_256_OF_Q2931Address,
20054 &ett_h245_H223Capability,
20055 &ett_h245_T_h223MultiplexTableCapability,
20056 &ett_h245_T_enhanced,
20057 &ett_h245_T_mobileOperationTransmitCapability,
20058 &ett_h245_T_mobileMultilinkFrameCapability,
20059 &ett_h245_H223AnnexCCapability,
20060 &ett_h245_V76Capability,
20061 &ett_h245_V75Capability,
20062 &ett_h245_H2250Capability,
20063 &ett_h245_T_mcCapability,
20064 &ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability,
20065 &ett_h245_MediaPacketizationCapability,
20066 &ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType,
20067 &ett_h245_RSVPParameters,
20068 &ett_h245_QOSMode,
20069 &ett_h245_ATMParameters,
20070 &ett_h245_ServicePriorityValue,
20071 &ett_h245_ServicePriority,
20072 &ett_h245_AuthorizationParameters,
20073 &ett_h245_QOSType,
20074 &ett_h245_QOSClass,
20075 &ett_h245_QOSDescriptor,
20076 &ett_h245_GenericTransportParameters,
20077 &ett_h245_QOSCapability,
20078 &ett_h245_MediaTransportType,
20079 &ett_h245_T_atm_AAL5_compressed,
20080 &ett_h245_MediaChannelCapability,
20081 &ett_h245_TransportCapability,
20082 &ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability,
20083 &ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability,
20084 &ett_h245_RedundancyEncodingCapability,
20085 &ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber,
20086 &ett_h245_RedundancyEncodingMethod,
20087 &ett_h245_RTPH263VideoRedundancyEncoding,
20088 &ett_h245_T_frameToThreadMapping,
20089 &ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping,
20090 &ett_h245_T_containedThreads,
20091 &ett_h245_RTPH263VideoRedundancyFrameMapping,
20092 &ett_h245_T_frameSequence,
20093 &ett_h245_MultipointCapability,
20094 &ett_h245_SEQUENCE_OF_MediaDistributionCapability,
20095 &ett_h245_MediaDistributionCapability,
20096 &ett_h245_SEQUENCE_OF_DataApplicationCapability,
20097 &ett_h245_VideoCapability,
20098 &ett_h245_ExtendedVideoCapability,
20099 &ett_h245_SEQUENCE_OF_VideoCapability,
20100 &ett_h245_SEQUENCE_OF_GenericCapability,
20101 &ett_h245_H261VideoCapability,
20102 &ett_h245_H262VideoCapability,
20103 &ett_h245_H263VideoCapability,
20104 &ett_h245_EnhancementLayerInfo,
20105 &ett_h245_SET_SIZE_1_14_OF_EnhancementOptions,
20106 &ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters,
20107 &ett_h245_BEnhancementParameters,
20108 &ett_h245_EnhancementOptions,
20109 &ett_h245_H263Options,
20110 &ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency,
20111 &ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat,
20112 &ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos,
20113 &ett_h245_TransparencyParameters,
20114 &ett_h245_RefPictureSelection,
20115 &ett_h245_T_additionalPictureMemory,
20116 &ett_h245_T_videoBackChannelSend,
20117 &ett_h245_T_enhancedReferencePicSelect,
20118 &ett_h245_T_subPictureRemovalParameters,
20119 &ett_h245_CustomPictureClockFrequency,
20120 &ett_h245_CustomPictureFormat,
20121 &ett_h245_T_mPI,
20122 &ett_h245_T_customPCF,
20123 &ett_h245_T_customPCF_item,
20124 &ett_h245_T_pixelAspectInformation,
20125 &ett_h245_T_pixelAspectCode,
20126 &ett_h245_T_extendedPAR,
20127 &ett_h245_T_extendedPAR_item,
20128 &ett_h245_H263VideoModeCombos,
20129 &ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags,
20130 &ett_h245_H263ModeComboFlags,
20131 &ett_h245_H263Version3Options,
20132 &ett_h245_IS11172VideoCapability,
20133 &ett_h245_AudioCapability,
20134 &ett_h245_T_g7231,
20135 &ett_h245_G729Extensions,
20136 &ett_h245_G7231AnnexCCapability,
20137 &ett_h245_G723AnnexCAudioMode,
20138 &ett_h245_IS11172AudioCapability,
20139 &ett_h245_IS13818AudioCapability,
20140 &ett_h245_GSMAudioCapability,
20141 &ett_h245_VBDCapability,
20142 &ett_h245_DataApplicationCapability,
20143 &ett_h245_Application,
20144 &ett_h245_T_t84,
20145 &ett_h245_Nlpid,
20146 &ett_h245_T_t38fax,
20147 &ett_h245_DataProtocolCapability,
20148 &ett_h245_T_v76wCompression,
20149 &ett_h245_CompressionType,
20150 &ett_h245_V42bis,
20151 &ett_h245_T84Profile,
20152 &ett_h245_T_t84Restricted,
20153 &ett_h245_T38FaxProfile,
20154 &ett_h245_T38FaxRateManagement,
20155 &ett_h245_T38FaxUdpOptions,
20156 &ett_h245_T_t38FaxUdpEC,
20157 &ett_h245_T38FaxTcpOptions,
20158 &ett_h245_EncryptionAuthenticationAndIntegrity,
20159 &ett_h245_EncryptionCapability,
20160 &ett_h245_MediaEncryptionAlgorithm,
20161 &ett_h245_AuthenticationCapability,
20162 &ett_h245_IntegrityCapability,
20163 &ett_h245_UserInputCapability,
20164 &ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter,
20165 &ett_h245_ConferenceCapability,
20166 &ett_h245_SEQUENCE_OF_NonStandardParameter,
20167 &ett_h245_GenericCapability,
20168 &ett_h245_T_collapsing,
20169 &ett_h245_T_nonCollapsing,
20170 &ett_h245_CapabilityIdentifier,
20171 &ett_h245_GenericParameter,
20172 &ett_h245_SEQUENCE_OF_ParameterIdentifier,
20173 &ett_h245_ParameterIdentifier,
20174 &ett_h245_ParameterValue,
20175 &ett_h245_SEQUENCE_OF_GenericParameter,
20176 &ett_h245_MultiplexedStreamCapability,
20177 &ett_h245_MultiplexFormat,
20178 &ett_h245_AudioTelephonyEventCapability,
20179 &ett_h245_AudioToneCapability,
20180 &ett_h245_NoPTAudioTelephonyEventCapability,
20181 &ett_h245_NoPTAudioToneCapability,
20182 &ett_h245_MultiplePayloadStreamCapability,
20183 &ett_h245_DepFECCapability,
20184 &ett_h245_FECC_rfc2733,
20185 &ett_h245_T_separateStreamBool,
20186 &ett_h245_FECCapability,
20187 &ett_h245_Rfc2733Format,
20188 &ett_h245_OpenLogicalChannel,
20189 &ett_h245_T_forwardLogicalChannelParameters,
20190 &ett_h245_OLC_forw_multiplexParameters,
20191 &ett_h245_OLC_reverseLogicalChannelParameters,
20192 &ett_h245_OLC_rev_multiplexParameters,
20193 &ett_h245_NetworkAccessParameters,
20194 &ett_h245_T_distribution,
20195 &ett_h245_T_networkAddress,
20196 &ett_h245_T_t120SetupProcedure,
20197 &ett_h245_Q2931Address,
20198 &ett_h245_T_address,
20199 &ett_h245_V75Parameters,
20200 &ett_h245_DataType,
20201 &ett_h245_H235Media,
20202 &ett_h245_T_mediaType,
20203 &ett_h245_MultiplexedStreamParameter,
20204 &ett_h245_H222LogicalChannelParameters,
20205 &ett_h245_H223LogicalChannelParameters,
20206 &ett_h245_T_adaptationLayerType,
20207 &ett_h245_Al3,
20208 &ett_h245_H223AL1MParameters,
20209 &ett_h245_T_transferMode,
20210 &ett_h245_AL1HeaderFEC,
20211 &ett_h245_AL1CrcLength,
20212 &ett_h245_ArqType,
20213 &ett_h245_H223AL2MParameters,
20214 &ett_h245_AL2HeaderFEC,
20215 &ett_h245_H223AL3MParameters,
20216 &ett_h245_T_headerFormat,
20217 &ett_h245_AL3CrcLength,
20218 &ett_h245_H223AnnexCArqParameters,
20219 &ett_h245_T_numberOfRetransmissions,
20220 &ett_h245_V76LogicalChannelParameters,
20221 &ett_h245_T_suspendResume,
20222 &ett_h245_V76LCP_mode,
20223 &ett_h245_T_eRM,
20224 &ett_h245_T_recovery,
20225 &ett_h245_V76HDLCParameters,
20226 &ett_h245_CRCLength,
20227 &ett_h245_H2250LogicalChannelParameters,
20228 &ett_h245_T_mediaPacketization,
20229 &ett_h245_RTPPayloadType,
20230 &ett_h245_T_payloadDescriptor,
20231 &ett_h245_RedundancyEncoding,
20232 &ett_h245_T_rtpRedundancyEncoding,
20233 &ett_h245_SEQUENCE_OF_RedundancyEncodingElement,
20234 &ett_h245_RedundancyEncodingElement,
20235 &ett_h245_MultiplePayloadStream,
20236 &ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement,
20237 &ett_h245_MultiplePayloadStreamElement,
20238 &ett_h245_DepFECData,
20239 &ett_h245_RFC2733Data,
20240 &ett_h245_FECdata_mode,
20241 &ett_h245_DepSeparateStream,
20242 &ett_h245_T_differentPort,
20243 &ett_h245_T_samePort,
20244 &ett_h245_FECData,
20245 &ett_h245_T_rfc2733,
20246 &ett_h245_T_pktMode,
20247 &ett_h245_T_mode_rfc2733sameport,
20248 &ett_h245_T_mode_rfc2733diffport,
20249 &ett_h245_TransportAddress,
20250 &ett_h245_UnicastAddress,
20251 &ett_h245_T_iPAddress,
20252 &ett_h245_T_iPXAddress,
20253 &ett_h245_T_iP6Address,
20254 &ett_h245_T_iPSourceRouteAddress,
20255 &ett_h245_T_routing,
20256 &ett_h245_T_route,
20257 &ett_h245_MulticastAddress,
20258 &ett_h245_MIPAddress,
20259 &ett_h245_MIP6Address,
20260 &ett_h245_EncryptionSync,
20261 &ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData,
20262 &ett_h245_EscrowData,
20263 &ett_h245_OpenLogicalChannelAck,
20264 &ett_h245_OLC_ack_reverseLogicalChannelParameters,
20265 &ett_h245_T_olc_ack_multiplexParameters,
20266 &ett_h245_T_forwardMultiplexAckParameters,
20267 &ett_h245_OpenLogicalChannelReject,
20268 &ett_h245_OpenLogicalChannelRejectCause,
20269 &ett_h245_OpenLogicalChannelConfirm,
20270 &ett_h245_H2250LogicalChannelAckParameters,
20271 &ett_h245_CloseLogicalChannel,
20272 &ett_h245_T_cLC_source,
20273 &ett_h245_Clc_reason,
20274 &ett_h245_CloseLogicalChannelAck,
20275 &ett_h245_RequestChannelClose,
20276 &ett_h245_T_reason,
20277 &ett_h245_RequestChannelCloseAck,
20278 &ett_h245_RequestChannelCloseReject,
20279 &ett_h245_RequestChannelCloseRejectCause,
20280 &ett_h245_RequestChannelCloseRelease,
20281 &ett_h245_MultiplexEntrySend,
20282 &ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor,
20283 &ett_h245_MultiplexEntryDescriptor,
20284 &ett_h245_T_elementList,
20285 &ett_h245_MultiplexElement,
20286 &ett_h245_Me_type,
20287 &ett_h245_T_subElementList,
20288 &ett_h245_ME_repeatCount,
20289 &ett_h245_MultiplexEntrySendAck,
20290 &ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber,
20291 &ett_h245_MultiplexEntrySendReject,
20292 &ett_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions,
20293 &ett_h245_MultiplexEntryRejectionDescriptions,
20294 &ett_h245_MultiplexEntryRejectionDescriptionsCause,
20295 &ett_h245_MultiplexEntrySendRelease,
20296 &ett_h245_RequestMultiplexEntry,
20297 &ett_h245_RequestMultiplexEntryAck,
20298 &ett_h245_RequestMultiplexEntryReject,
20299 &ett_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions,
20300 &ett_h245_RequestMultiplexEntryRejectionDescriptions,
20301 &ett_h245_RequestMultiplexEntryRejectionDescriptionsCause,
20302 &ett_h245_RequestMultiplexEntryRelease,
20303 &ett_h245_RequestMode,
20304 &ett_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription,
20305 &ett_h245_RequestModeAck,
20306 &ett_h245_Req_mode_ack_response,
20307 &ett_h245_RequestModeReject,
20308 &ett_h245_RequestModeRejectCause,
20309 &ett_h245_RequestModeRelease,
20310 &ett_h245_ModeDescription,
20311 &ett_h245_ModeElementType,
20312 &ett_h245_ModeElement,
20313 &ett_h245_H235Mode,
20314 &ett_h245_T_mediaMode,
20315 &ett_h245_MultiplexedStreamModeParameters,
20316 &ett_h245_RedundancyEncodingDTMode,
20317 &ett_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement,
20318 &ett_h245_RedundancyEncodingDTModeElement,
20319 &ett_h245_Re_type,
20320 &ett_h245_MultiplePayloadStreamMode,
20321 &ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode,
20322 &ett_h245_MultiplePayloadStreamElementMode,
20323 &ett_h245_DepFECMode,
20324 &ett_h245_T_rfc2733Mode,
20325 &ett_h245_FEC_mode,
20326 &ett_h245_FECMode,
20327 &ett_h245_H223ModeParameters,
20328 &ett_h245_AdaptationLayerType,
20329 &ett_h245_V76ModeParameters,
20330 &ett_h245_H2250ModeParameters,
20331 &ett_h245_RedundancyEncodingMode,
20332 &ett_h245_T_secondaryEncodingMode,
20333 &ett_h245_VideoMode,
20334 &ett_h245_H261VideoMode,
20335 &ett_h245_H261Resolution,
20336 &ett_h245_H262VideoMode,
20337 &ett_h245_T_profileAndLevel,
20338 &ett_h245_H263VideoMode,
20339 &ett_h245_H263Resolution,
20340 &ett_h245_IS11172VideoMode,
20341 &ett_h245_AudioMode,
20342 &ett_h245_Mode_g7231,
20343 &ett_h245_IS11172AudioMode,
20344 &ett_h245_T_audioLayer,
20345 &ett_h245_T_audioSampling,
20346 &ett_h245_IS11172_multichannelType,
20347 &ett_h245_IS13818AudioMode,
20348 &ett_h245_IS13818AudioLayer,
20349 &ett_h245_IS13818AudioSampling,
20350 &ett_h245_IS13818MultichannelType,
20351 &ett_h245_G7231AnnexCMode,
20352 &ett_h245_VBDMode,
20353 &ett_h245_DataMode,
20354 &ett_h245_DataModeApplication,
20355 &ett_h245_T38faxApp,
20356 &ett_h245_EncryptionMode,
20357 &ett_h245_RoundTripDelayRequest,
20358 &ett_h245_RoundTripDelayResponse,
20359 &ett_h245_MaintenanceLoopRequest,
20360 &ett_h245_Mlr_type,
20361 &ett_h245_MaintenanceLoopAck,
20362 &ett_h245_Mla_type,
20363 &ett_h245_MaintenanceLoopReject,
20364 &ett_h245_Mlrej_type,
20365 &ett_h245_MaintenanceLoopRejectCause,
20366 &ett_h245_MaintenanceLoopOffCommand,
20367 &ett_h245_CommunicationModeCommand,
20368 &ett_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry,
20369 &ett_h245_CommunicationModeRequest,
20370 &ett_h245_CommunicationModeResponse,
20371 &ett_h245_CommunicationModeTableEntry,
20372 &ett_h245_T_entryDataType,
20373 &ett_h245_ConferenceRequest,
20374 &ett_h245_T_requestTerminalCertificate,
20375 &ett_h245_CertSelectionCriteria,
20376 &ett_h245_Criteria,
20377 &ett_h245_TerminalLabel,
20378 &ett_h245_ConferenceResponse,
20379 &ett_h245_T_mCTerminalIDResponse,
20380 &ett_h245_T_terminalIDResponse,
20381 &ett_h245_T_conferenceIDResponse,
20382 &ett_h245_T_passwordResponse,
20383 &ett_h245_SET_SIZE_1_256_OF_TerminalLabel,
20384 &ett_h245_T_makeMeChairResponse,
20385 &ett_h245_T_extensionAddressResponse,
20386 &ett_h245_T_chairTokenOwnerResponse,
20387 &ett_h245_T_terminalCertificateResponse,
20388 &ett_h245_T_broadcastMyLogicalChannelResponse,
20389 &ett_h245_T_makeTerminalBroadcasterResponse,
20390 &ett_h245_T_sendThisSourceResponse,
20391 &ett_h245_RequestAllTerminalIDsResponse,
20392 &ett_h245_SEQUENCE_OF_TerminalInformation,
20393 &ett_h245_TerminalInformation,
20394 &ett_h245_RemoteMCRequest,
20395 &ett_h245_RemoteMCResponse,
20396 &ett_h245_T_reject,
20397 &ett_h245_MultilinkRequest,
20398 &ett_h245_CallInformationReq,
20399 &ett_h245_AddConnectionReq,
20400 &ett_h245_RemoveConnectionReq,
20401 &ett_h245_MaximumHeaderIntervalReq,
20402 &ett_h245_T_requestType,
20403 &ett_h245_MultilinkResponse,
20404 &ett_h245_CallInformationResp,
20405 &ett_h245_AddConnectionResp,
20406 &ett_h245_T_responseCode,
20407 &ett_h245_T_rejected,
20408 &ett_h245_RemoveConnectionResp,
20409 &ett_h245_MaximumHeaderIntervalResp,
20410 &ett_h245_MultilinkIndication,
20411 &ett_h245_T_crcDesired,
20412 &ett_h245_T_excessiveError,
20413 &ett_h245_DialingInformation,
20414 &ett_h245_SET_SIZE_1_65535_OF_DialingInformationNumber,
20415 &ett_h245_DialingInformationNumber,
20416 &ett_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType,
20417 &ett_h245_DialingInformationNetworkType,
20418 &ett_h245_ConnectionIdentifier,
20419 &ett_h245_LogicalChannelRateRequest,
20420 &ett_h245_LogicalChannelRateAcknowledge,
20421 &ett_h245_LogicalChannelRateReject,
20422 &ett_h245_LogicalChannelRateRejectReason,
20423 &ett_h245_LogicalChannelRateRelease,
20424 &ett_h245_SendTerminalCapabilitySet,
20425 &ett_h245_T_specificRequest,
20426 &ett_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber,
20427 &ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber,
20428 &ett_h245_EncryptionCommand,
20429 &ett_h245_T_encryptionAlgorithmID,
20430 &ett_h245_FlowControlCommand,
20431 &ett_h245_Scope,
20432 &ett_h245_Restriction,
20433 &ett_h245_EndSessionCommand,
20434 &ett_h245_T_gstnOptions,
20435 &ett_h245_T_isdnOptions,
20436 &ett_h245_ConferenceCommand,
20437 &ett_h245_SubstituteConferenceIDCommand,
20438 &ett_h245_EncryptionUpdateDirection,
20439 &ett_h245_MiscellaneousCommand,
20440 &ett_h245_Mc_type,
20441 &ett_h245_T_videoFastUpdateGOB,
20442 &ett_h245_T_videoFastUpdateMB,
20443 &ett_h245_T_progressiveRefinementStart,
20444 &ett_h245_T_repeatCount,
20445 &ett_h245_T_videoBadMBs,
20446 &ett_h245_SEQUENCE_OF_PictureReference,
20447 &ett_h245_T_lostPartialPicture,
20448 &ett_h245_T_encryptionUpdateCommand,
20449 &ett_h245_T_encryptionUpdateAck,
20450 &ett_h245_KeyProtectionMethod,
20451 &ett_h245_EncryptionUpdateRequest,
20452 &ett_h245_PictureReference,
20453 &ett_h245_H223MultiplexReconfiguration,
20454 &ett_h245_T_h223ModeChange,
20455 &ett_h245_T_h223AnnexADoubleFlag,
20456 &ett_h245_NewATMVCCommand,
20457 &ett_h245_Cmd_aal,
20458 &ett_h245_Cmd_aal1,
20459 &ett_h245_Cmd_clockRecovery,
20460 &ett_h245_Cmd_errorCorrection,
20461 &ett_h245_Cmd_aal5,
20462 &ett_h245_Cmd_multiplex,
20463 &ett_h245_Cmd_reverseParameters,
20464 &ett_h245_CmdR_multiplex,
20465 &ett_h245_MobileMultilinkReconfigurationCommand,
20466 &ett_h245_T_status,
20467 &ett_h245_FunctionNotUnderstood,
20468 &ett_h245_FunctionNotSupported,
20469 &ett_h245_FunctionNotSupportedCause,
20470 &ett_h245_ConferenceIndication,
20471 &ett_h245_TerminalYouAreSeeingInSubPictureNumber,
20472 &ett_h245_VideoIndicateCompose,
20473 &ett_h245_MiscellaneousIndication,
20474 &ett_h245_Mi_type,
20475 &ett_h245_T_videoNotDecodedMBs,
20476 &ett_h245_JitterIndication,
20477 &ett_h245_H223SkewIndication,
20478 &ett_h245_H2250MaximumSkewIndication,
20479 &ett_h245_MCLocationIndication,
20480 &ett_h245_VendorIdentification,
20481 &ett_h245_NewATMVCIndication,
20482 &ett_h245_Ind_aal,
20483 &ett_h245_Ind_aal1,
20484 &ett_h245_Ind_clockRecovery,
20485 &ett_h245_Ind_errorCorrection,
20486 &ett_h245_Ind_aal5,
20487 &ett_h245_Ind_multiplex,
20488 &ett_h245_Ind_reverseParameters,
20489 &ett_h245_IndR_multiplex,
20490 &ett_h245_Params,
20491 &ett_h245_UserInputIndication,
20492 &ett_h245_T_userInputSupportIndication,
20493 &ett_h245_T_signal,
20494 &ett_h245_T_rtp,
20495 &ett_h245_T_signalUpdate,
20496 &ett_h245_Si_rtp,
20497 &ett_h245_T_extendedAlphanumeric,
20498 &ett_h245_EncryptedAlphanumeric,
20499 &ett_h245_FlowControlIndication,
20500 &ett_h245_MobileMultilinkReconfigurationIndication,
20502 module_t *h245_module;
20504 /* Register protocol */
20505 proto_h245 = proto_register_protocol(PNAME, PSNAME, PFNAME);
20506 h223_pending_olc_reqs[P2P_DIR_SENT] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal );
20507 h223_pending_olc_reqs[P2P_DIR_RECV] = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal );
20508 h245_pending_olc_reqs = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), wmem_str_hash, g_str_equal);
20510 register_init_routine(h223_lc_init);
20511 /* Register fields and subtrees */
20512 proto_register_field_array(proto_h245, hf, array_length(hf));
20513 proto_register_subtree_array(ett, array_length(ett));
20515 /* From Ronnie Sahlbergs original H245 dissector */
20517 h245_module = prefs_register_protocol(proto_h245, NULL);
20518 prefs_register_bool_preference(h245_module, "reassembly",
20519 "Reassemble H.245 messages spanning multiple TCP segments",
20520 "Whether the H.245 dissector should reassemble messages spanning multiple TCP segments."
20521 " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
20522 &h245_reassembly);
20523 prefs_register_bool_preference(h245_module, "shorttypes",
20524 "Show short message types",
20525 "Whether the dissector should show short names or the long names from the standard",
20526 &h245_shorttypes);
20527 prefs_register_bool_preference(h245_module, "prepand",
20528 "Show h245 info in reversed order",
20529 "Whether the dissector should print items of h245 Info column in reversed order",
20530 &info_col_fmt_prepend);
20531 MultimediaSystemControlMessage_handle = register_dissector("h245dg", dissect_h245_h245, proto_h245);
20532 h245_handle = register_dissector("h245", dissect_h245, proto_h245);
20534 nsp_object_dissector_table = register_dissector_table("h245.nsp.object", "H.245 NonStandardParameter (object)", proto_h245, FT_STRING, STRING_CASE_SENSITIVE);
20535 nsp_h221_dissector_table = register_dissector_table("h245.nsp.h221", "H.245 NonStandardParameter (h221)", proto_h245, FT_UINT32, BASE_HEX);
20536 gef_name_dissector_table = register_dissector_table("h245.gef.name", "H.245 Generic Extensible Framework Name", proto_h245, FT_STRING, STRING_CASE_SENSITIVE);
20537 gef_content_dissector_table = register_dissector_table("h245.gef.content", "H.245 Generic Extensible Framework Content", proto_h245, FT_STRING, STRING_CASE_SENSITIVE);
20539 h245_tap = register_tap("h245");
20540 h245dg_tap = register_tap("h245dg");
20542 oid_add_from_string("h239ControlCapability","0.0.8.239.1.1");
20543 oid_add_from_string("h239ExtendedVideoCapability","0.0.8.239.1.2");
20544 oid_add_from_string("generic-message","0.0.8.239.2");
20545 oid_add_from_string("h245 version 3","0.0.8.245.0.3");
20546 oid_add_from_string("h245 version 4","0.0.8.245.0.4");
20547 oid_add_from_string("h245 version 5","0.0.8.245.0.5");
20548 oid_add_from_string("h245 version 6","0.0.8.245.0.6");
20549 oid_add_from_string("h245 version 7","0.0.8.245.0.7");
20550 oid_add_from_string("h245 version 8","0.0.8.245.0.8");
20551 oid_add_from_string("h245 version 9","0.0.8.245.0.9");
20552 oid_add_from_string("h245 version 10","0.0.8.245.0.10");
20553 oid_add_from_string("h245 version 11","0.0.8.245.0.11");
20554 oid_add_from_string("h245 version 12","0.0.8.245.0.12");
20555 oid_add_from_string("h245 version 13","0.0.8.245.0.13");
20556 /* This capability is defined in Annex E. */
20557 oid_add_from_string("ISO/IEC 14496-2 MPEG-4 video","0.0.8.245.1.0.0");
20558 /* This capability is defined in Annex H. */
20559 oid_add_from_string("ISO/IEC 14496-3 MPEG-4 audio","0.0.8.245.1.1.0");
20560 /* This capability is defined in Annex I. */
20561 oid_add_from_string("AMR","0.0.8.245.1.1.1");
20562 /* This capability is defined in Annex J. */
20563 oid_add_from_string("acelp","0.0.8.245.1.1.2");
20564 /* This capability is defined in Annex K. */
20565 oid_add_from_string("us1","0.0.8.245.1.1.3");
20566 /* This capability is defined in Annex L. */
20567 oid_add_from_string("is127evrc","0.0.8.245.1.1.4");
20568 /* This capability is defined in Annex M. */
20569 oid_add_from_string("ISO/IEC 13818-7","0.0.8.245.1.1.5");
20570 /* This capability is defined in Annex N. */
20571 oid_add_from_string("rfc3389","0.0.8.245.1.1.6");
20572 /* This capability is defined in Annex O. */
20573 oid_add_from_string("L-16","0.0.8.245.1.1.7");
20574 /* This capability is defined in Annex P. */
20575 oid_add_from_string("bounded-audio-stream","0.0.8.245.1.1.8");
20576 /* This capability is defined in Annex R. */
20577 oid_add_from_string("AMR-NB","0.0.8.245.1.1.9");
20578 /* This capability is defined in Annex R. */
20579 oid_add_from_string("AMR-WB","0.0.8.245.1.1.10");
20580 /* This capability is defined in Annex S. */
20581 oid_add_from_string("ilbc","0.0.8.245.1.1.11");
20583 oid_add_from_string("ISO/IEC 14496-1","0.0.8.245.1.2.0");
20584 oid_add_from_string("Nx64","0.0.8.245.1.2.1");
20585 oid_add_from_string("logical-channel-bit-ratemanagement","0.0.8.245.1.3.0");
20587 oid_add_from_string("h264 generic-capabilities","0.0.8.241.0.0.1");
20588 oid_add_from_string("iPpacketization_h241AnnexA(single NAL unit mode)","0.0.8.241.0.0.0.0");
20589 oid_add_from_string("iPpacketization_RFC3984NonInterleaved","0.0.8.241.0.0.0.1");
20590 oid_add_from_string("iPpacketization_RFC3984Interleaved","0.0.8.241.0.0.0.2");
20594 /*--- proto_reg_handoff_h245 ---------------------------------------*/
20595 void proto_reg_handoff_h245(void) {
20596 rtcp_handle = find_dissector("rtcp");
20597 data_handle = find_dissector("data");
20598 h263_handle = find_dissector("h263data");
20599 amr_handle = find_dissector("amr_if2_nb");
20602 dissector_add_for_decode_as_with_preference("tcp.port", h245_handle);
20603 dissector_add_for_decode_as_with_preference("udp.port", MultimediaSystemControlMessage_handle);
20606 static void init_h245_packet_info(h245_packet_info *pi)
20608 if(pi == NULL) {
20609 return;
20612 pi->msg_type = H245_OTHER;
20613 pi->frame_label[0] = '\0';
20614 snprintf(pi->comment, sizeof(pi->comment), "H245 ");