1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -p h323 -c ./h323.cnf -s ./packet-h323-template -D . -O ../../epan/dissectors RAS-PROTOCOL-TUNNEL.asn ROBUSTNESS-DATA.asn */
6 /* Input file: packet-h323-template.c */
8 #line 1 "../../asn1/h323/packet-h323-template.c"
10 * Routines for H.323 packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
37 #include <epan/packet.h>
38 #include <epan/oids.h>
39 #include <epan/asn1.h>
40 #include <epan/wmem/wmem.h>
42 #include "packet-per.h"
43 #include "packet-h225.h"
44 #include "packet-h323.h"
47 #define PSNAME "H.323"
51 /* Generic Extensible Framework */
52 gef_ctx_t
* gef_ctx_alloc(gef_ctx_t
*parent
, const gchar
*type
) {
55 gefx
= wmem_new0(wmem_packet_scope(), gef_ctx_t
);
56 gefx
->signature
= GEF_CTX_SIGNATURE
;
57 gefx
->parent
= parent
;
62 gboolean
gef_ctx_check_signature(gef_ctx_t
*gefx
) {
63 return gefx
&& (gefx
->signature
== GEF_CTX_SIGNATURE
);
66 gef_ctx_t
* gef_ctx_get(void *ptr
) {
67 gef_ctx_t
*gefx
= (gef_ctx_t
*)ptr
;
68 asn1_ctx_t
*actx
= (asn1_ctx_t
*)ptr
;
70 if (!asn1_ctx_check_signature(actx
))
74 gefx
= (gef_ctx_t
*)actx
->private_data
;
76 if (!gef_ctx_check_signature(gefx
))
82 void gef_ctx_update_key(gef_ctx_t
*gefx
) {
83 const gchar
*parent_key
;
86 parent_key
= (gefx
->parent
) ? gefx
->parent
->key
: NULL
;
87 gefx
->key
= wmem_strdup_printf(wmem_packet_scope(),
88 "%s%s" /* parent prefix */
89 "%s%s%s" /* type, id */
91 (parent_key
) ? parent_key
: "", (parent_key
) ? "/" : "",
92 (gefx
->type
) ? gefx
->type
: "", (gefx
->type
&& (gefx
->id
|| gefx
->subid
)) ? "/" : "", (gefx
->id
) ? gefx
->id
: "",
93 (gefx
->subid
) ? "-" : "", (gefx
->subid
) ? gefx
->subid
: ""
97 /* Initialize the protocol and registered fields */
98 static int proto_h323
= -1;
100 /*--- Included file: packet-h323-hf.c ---*/
101 #line 1 "../../asn1/h323/packet-h323-hf.c"
102 static int hf_h323_RasTunnelledSignallingMessage_PDU
= -1; /* RasTunnelledSignallingMessage */
103 static int hf_h323_RobustnessData_PDU
= -1; /* RobustnessData */
104 static int hf_h323_tunnelledProtocolID
= -1; /* TunnelledProtocol */
105 static int hf_h323_messageContent
= -1; /* T_messageContent */
106 static int hf_h323_messageContent_item
= -1; /* OCTET_STRING */
107 static int hf_h323_tunnellingRequired
= -1; /* NULL */
108 static int hf_h323_nonStandardData
= -1; /* NonStandardParameter */
109 static int hf_h323_versionID
= -1; /* INTEGER_1_256 */
110 static int hf_h323_robustnessData
= -1; /* T_robustnessData */
111 static int hf_h323_rrqData
= -1; /* Rrq_RD */
112 static int hf_h323_rcfData
= -1; /* Rcf_RD */
113 static int hf_h323_setupData
= -1; /* Setup_RD */
114 static int hf_h323_connectData
= -1; /* Connect_RD */
115 static int hf_h323_statusData
= -1; /* Status_RD */
116 static int hf_h323_statusInquiryData
= -1; /* StatusInquiry_RD */
117 static int hf_h323_BackupCallSignalAddresses_item
= -1; /* BackupCallSignalAddresses_item */
118 static int hf_h323_tcp
= -1; /* TransportAddress */
119 static int hf_h323_alternateTransport
= -1; /* AlternateTransportAddresses */
120 static int hf_h323_backupCallSignalAddresses
= -1; /* BackupCallSignalAddresses */
121 static int hf_h323_hasSharedRepository
= -1; /* NULL */
122 static int hf_h323_irrFrequency
= -1; /* INTEGER_1_65535 */
123 static int hf_h323_endpointGuid
= -1; /* GloballyUniqueIdentifier */
124 static int hf_h323_h245Address
= -1; /* TransportAddress */
125 static int hf_h323_fastStart
= -1; /* T_fastStart */
126 static int hf_h323_fastStart_item
= -1; /* OCTET_STRING */
127 static int hf_h323_resetH245
= -1; /* NULL */
128 static int hf_h323_timeToLive
= -1; /* TimeToLive */
129 static int hf_h323_includeFastStart
= -1; /* NULL */
131 /*--- End of included file: packet-h323-hf.c ---*/
132 #line 92 "../../asn1/h323/packet-h323-template.c"
134 /* Initialize the subtree pointers */
136 /*--- Included file: packet-h323-ett.c ---*/
137 #line 1 "../../asn1/h323/packet-h323-ett.c"
138 static gint ett_h323_RasTunnelledSignallingMessage
= -1;
139 static gint ett_h323_T_messageContent
= -1;
140 static gint ett_h323_RobustnessData
= -1;
141 static gint ett_h323_T_robustnessData
= -1;
142 static gint ett_h323_BackupCallSignalAddresses
= -1;
143 static gint ett_h323_BackupCallSignalAddresses_item
= -1;
144 static gint ett_h323_Rrq_RD
= -1;
145 static gint ett_h323_Rcf_RD
= -1;
146 static gint ett_h323_Setup_RD
= -1;
147 static gint ett_h323_Connect_RD
= -1;
148 static gint ett_h323_Status_RD
= -1;
149 static gint ett_h323_T_fastStart
= -1;
150 static gint ett_h323_StatusInquiry_RD
= -1;
152 /*--- End of included file: packet-h323-ett.c ---*/
153 #line 95 "../../asn1/h323/packet-h323-template.c"
156 /*--- Included file: packet-h323-fn.c ---*/
157 #line 1 "../../asn1/h323/packet-h323-fn.c"
161 dissect_h323_OCTET_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
162 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
163 NO_BOUND
, NO_BOUND
, FALSE
, NULL
);
169 static const per_sequence_t T_messageContent_sequence_of
[1] = {
170 { &hf_h323_messageContent_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h323_OCTET_STRING
},
174 dissect_h323_T_messageContent(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
175 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
176 ett_h323_T_messageContent
, T_messageContent_sequence_of
);
184 dissect_h323_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
185 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
191 static const per_sequence_t RasTunnelledSignallingMessage_sequence
[] = {
192 { &hf_h323_tunnelledProtocolID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_TunnelledProtocol
},
193 { &hf_h323_messageContent
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h323_T_messageContent
},
194 { &hf_h323_tunnellingRequired
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
195 { &hf_h323_nonStandardData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_NonStandardParameter
},
200 dissect_h323_RasTunnelledSignallingMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
201 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
202 ett_h323_RasTunnelledSignallingMessage
, RasTunnelledSignallingMessage_sequence
);
210 dissect_h323_INTEGER_1_256(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
211 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
212 1U, 256U, NULL
, FALSE
);
218 static const value_string h323_BackupCallSignalAddresses_item_vals
[] = {
220 { 1, "alternateTransport" },
224 static const per_choice_t BackupCallSignalAddresses_item_choice
[] = {
225 { 0, &hf_h323_tcp
, ASN1_EXTENSION_ROOT
, dissect_h225_TransportAddress
},
226 { 1, &hf_h323_alternateTransport
, ASN1_EXTENSION_ROOT
, dissect_h225_AlternateTransportAddresses
},
231 dissect_h323_BackupCallSignalAddresses_item(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
232 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
233 ett_h323_BackupCallSignalAddresses_item
, BackupCallSignalAddresses_item_choice
,
240 static const per_sequence_t BackupCallSignalAddresses_sequence_of
[1] = {
241 { &hf_h323_BackupCallSignalAddresses_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h323_BackupCallSignalAddresses_item
},
245 dissect_h323_BackupCallSignalAddresses(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
246 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
247 ett_h323_BackupCallSignalAddresses
, BackupCallSignalAddresses_sequence_of
);
253 static const per_sequence_t Rrq_RD_sequence
[] = {
254 { &hf_h323_backupCallSignalAddresses
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h323_BackupCallSignalAddresses
},
255 { &hf_h323_hasSharedRepository
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
260 dissect_h323_Rrq_RD(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
261 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
262 ett_h323_Rrq_RD
, Rrq_RD_sequence
);
270 dissect_h323_INTEGER_1_65535(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
271 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
272 1U, 65535U, NULL
, FALSE
);
278 static const per_sequence_t Rcf_RD_sequence
[] = {
279 { &hf_h323_hasSharedRepository
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
280 { &hf_h323_irrFrequency
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_INTEGER_1_65535
},
285 dissect_h323_Rcf_RD(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
286 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
287 ett_h323_Rcf_RD
, Rcf_RD_sequence
);
295 dissect_h323_GloballyUniqueIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
296 offset
= dissect_h225_GloballyUniqueID(tvb
, offset
, actx
, tree
, hf_index
);
302 static const per_sequence_t Setup_RD_sequence
[] = {
303 { &hf_h323_backupCallSignalAddresses
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h323_BackupCallSignalAddresses
},
304 { &hf_h323_hasSharedRepository
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
305 { &hf_h323_endpointGuid
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_GloballyUniqueIdentifier
},
310 dissect_h323_Setup_RD(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
311 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
312 ett_h323_Setup_RD
, Setup_RD_sequence
);
318 static const per_sequence_t Connect_RD_sequence
[] = {
319 { &hf_h323_backupCallSignalAddresses
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h323_BackupCallSignalAddresses
},
320 { &hf_h323_hasSharedRepository
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
321 { &hf_h323_endpointGuid
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_GloballyUniqueIdentifier
},
326 dissect_h323_Connect_RD(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
327 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
328 ett_h323_Connect_RD
, Connect_RD_sequence
);
334 static const per_sequence_t T_fastStart_sequence_of
[1] = {
335 { &hf_h323_fastStart_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h323_OCTET_STRING
},
339 dissect_h323_T_fastStart(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
340 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
341 ett_h323_T_fastStart
, T_fastStart_sequence_of
);
347 static const per_sequence_t Status_RD_sequence
[] = {
348 { &hf_h323_h245Address
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_TransportAddress
},
349 { &hf_h323_fastStart
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_T_fastStart
},
350 { &hf_h323_resetH245
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
355 dissect_h323_Status_RD(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
356 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
357 ett_h323_Status_RD
, Status_RD_sequence
);
363 static const per_sequence_t StatusInquiry_RD_sequence
[] = {
364 { &hf_h323_h245Address
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_TransportAddress
},
365 { &hf_h323_timeToLive
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_TimeToLive
},
366 { &hf_h323_includeFastStart
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h323_NULL
},
371 dissect_h323_StatusInquiry_RD(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
372 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
373 ett_h323_StatusInquiry_RD
, StatusInquiry_RD_sequence
);
379 static const value_string h323_T_robustnessData_vals
[] = {
383 { 3, "connectData" },
385 { 5, "statusInquiryData" },
389 static const per_choice_t T_robustnessData_choice
[] = {
390 { 0, &hf_h323_rrqData
, ASN1_EXTENSION_ROOT
, dissect_h323_Rrq_RD
},
391 { 1, &hf_h323_rcfData
, ASN1_EXTENSION_ROOT
, dissect_h323_Rcf_RD
},
392 { 2, &hf_h323_setupData
, ASN1_EXTENSION_ROOT
, dissect_h323_Setup_RD
},
393 { 3, &hf_h323_connectData
, ASN1_EXTENSION_ROOT
, dissect_h323_Connect_RD
},
394 { 4, &hf_h323_statusData
, ASN1_EXTENSION_ROOT
, dissect_h323_Status_RD
},
395 { 5, &hf_h323_statusInquiryData
, ASN1_EXTENSION_ROOT
, dissect_h323_StatusInquiry_RD
},
400 dissect_h323_T_robustnessData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
401 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
402 ett_h323_T_robustnessData
, T_robustnessData_choice
,
409 static const per_sequence_t RobustnessData_sequence
[] = {
410 { &hf_h323_versionID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h323_INTEGER_1_256
},
411 { &hf_h323_robustnessData
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h323_T_robustnessData
},
416 dissect_h323_RobustnessData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
417 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
418 ett_h323_RobustnessData
, RobustnessData_sequence
);
425 static int dissect_RasTunnelledSignallingMessage_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
428 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
429 offset
= dissect_h323_RasTunnelledSignallingMessage(tvb
, offset
, &asn1_ctx
, tree
, hf_h323_RasTunnelledSignallingMessage_PDU
);
430 offset
+= 7; offset
>>= 3;
433 static int dissect_RobustnessData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
436 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, TRUE
, pinfo
);
437 offset
= dissect_h323_RobustnessData(tvb
, offset
, &asn1_ctx
, tree
, hf_h323_RobustnessData_PDU
);
438 offset
+= 7; offset
>>= 3;
443 /*--- End of included file: packet-h323-fn.c ---*/
444 #line 97 "../../asn1/h323/packet-h323-template.c"
446 /*--- proto_register_h323 ----------------------------------------------*/
447 void proto_register_h323(void) {
450 static hf_register_info hf
[] = {
452 /*--- Included file: packet-h323-hfarr.c ---*/
453 #line 1 "../../asn1/h323/packet-h323-hfarr.c"
454 { &hf_h323_RasTunnelledSignallingMessage_PDU
,
455 { "RasTunnelledSignallingMessage", "h323.RasTunnelledSignallingMessage_element",
456 FT_NONE
, BASE_NONE
, NULL
, 0,
458 { &hf_h323_RobustnessData_PDU
,
459 { "RobustnessData", "h323.RobustnessData_element",
460 FT_NONE
, BASE_NONE
, NULL
, 0,
462 { &hf_h323_tunnelledProtocolID
,
463 { "tunnelledProtocolID", "h323.tunnelledProtocolID_element",
464 FT_NONE
, BASE_NONE
, NULL
, 0,
465 "TunnelledProtocol", HFILL
}},
466 { &hf_h323_messageContent
,
467 { "messageContent", "h323.messageContent",
468 FT_UINT32
, BASE_DEC
, NULL
, 0,
470 { &hf_h323_messageContent_item
,
471 { "messageContent item", "h323.messageContent_item",
472 FT_BYTES
, BASE_NONE
, NULL
, 0,
473 "OCTET_STRING", HFILL
}},
474 { &hf_h323_tunnellingRequired
,
475 { "tunnellingRequired", "h323.tunnellingRequired_element",
476 FT_NONE
, BASE_NONE
, NULL
, 0,
478 { &hf_h323_nonStandardData
,
479 { "nonStandardData", "h323.nonStandardData_element",
480 FT_NONE
, BASE_NONE
, NULL
, 0,
481 "NonStandardParameter", HFILL
}},
482 { &hf_h323_versionID
,
483 { "versionID", "h323.versionID",
484 FT_UINT32
, BASE_DEC
, NULL
, 0,
485 "INTEGER_1_256", HFILL
}},
486 { &hf_h323_robustnessData
,
487 { "robustnessData", "h323.robustnessData",
488 FT_UINT32
, BASE_DEC
, VALS(h323_T_robustnessData_vals
), 0,
491 { "rrqData", "h323.rrqData_element",
492 FT_NONE
, BASE_NONE
, NULL
, 0,
495 { "rcfData", "h323.rcfData_element",
496 FT_NONE
, BASE_NONE
, NULL
, 0,
498 { &hf_h323_setupData
,
499 { "setupData", "h323.setupData_element",
500 FT_NONE
, BASE_NONE
, NULL
, 0,
501 "Setup_RD", HFILL
}},
502 { &hf_h323_connectData
,
503 { "connectData", "h323.connectData_element",
504 FT_NONE
, BASE_NONE
, NULL
, 0,
505 "Connect_RD", HFILL
}},
506 { &hf_h323_statusData
,
507 { "statusData", "h323.statusData_element",
508 FT_NONE
, BASE_NONE
, NULL
, 0,
509 "Status_RD", HFILL
}},
510 { &hf_h323_statusInquiryData
,
511 { "statusInquiryData", "h323.statusInquiryData_element",
512 FT_NONE
, BASE_NONE
, NULL
, 0,
513 "StatusInquiry_RD", HFILL
}},
514 { &hf_h323_BackupCallSignalAddresses_item
,
515 { "BackupCallSignalAddresses item", "h323.BackupCallSignalAddresses_item",
516 FT_UINT32
, BASE_DEC
, VALS(h323_BackupCallSignalAddresses_item_vals
), 0,
520 FT_UINT32
, BASE_DEC
, VALS(h225_TransportAddress_vals
), 0,
521 "TransportAddress", HFILL
}},
522 { &hf_h323_alternateTransport
,
523 { "alternateTransport", "h323.alternateTransport_element",
524 FT_NONE
, BASE_NONE
, NULL
, 0,
525 "AlternateTransportAddresses", HFILL
}},
526 { &hf_h323_backupCallSignalAddresses
,
527 { "backupCallSignalAddresses", "h323.backupCallSignalAddresses",
528 FT_UINT32
, BASE_DEC
, NULL
, 0,
530 { &hf_h323_hasSharedRepository
,
531 { "hasSharedRepository", "h323.hasSharedRepository_element",
532 FT_NONE
, BASE_NONE
, NULL
, 0,
534 { &hf_h323_irrFrequency
,
535 { "irrFrequency", "h323.irrFrequency",
536 FT_UINT32
, BASE_DEC
, NULL
, 0,
537 "INTEGER_1_65535", HFILL
}},
538 { &hf_h323_endpointGuid
,
539 { "endpointGuid", "h323.endpointGuid",
540 FT_GUID
, BASE_NONE
, NULL
, 0,
541 "GloballyUniqueIdentifier", HFILL
}},
542 { &hf_h323_h245Address
,
543 { "h245Address", "h323.h245Address",
544 FT_UINT32
, BASE_DEC
, VALS(h225_TransportAddress_vals
), 0,
545 "TransportAddress", HFILL
}},
546 { &hf_h323_fastStart
,
547 { "fastStart", "h323.fastStart",
548 FT_UINT32
, BASE_DEC
, NULL
, 0,
550 { &hf_h323_fastStart_item
,
551 { "fastStart item", "h323.fastStart_item",
552 FT_BYTES
, BASE_NONE
, NULL
, 0,
553 "OCTET_STRING", HFILL
}},
554 { &hf_h323_resetH245
,
555 { "resetH245", "h323.resetH245_element",
556 FT_NONE
, BASE_NONE
, NULL
, 0,
558 { &hf_h323_timeToLive
,
559 { "timeToLive", "h323.timeToLive",
560 FT_UINT32
, BASE_DEC
, NULL
, 0,
562 { &hf_h323_includeFastStart
,
563 { "includeFastStart", "h323.includeFastStart_element",
564 FT_NONE
, BASE_NONE
, NULL
, 0,
567 /*--- End of included file: packet-h323-hfarr.c ---*/
568 #line 104 "../../asn1/h323/packet-h323-template.c"
571 /* List of subtrees */
572 static gint
*ett
[] = {
574 /*--- Included file: packet-h323-ettarr.c ---*/
575 #line 1 "../../asn1/h323/packet-h323-ettarr.c"
576 &ett_h323_RasTunnelledSignallingMessage
,
577 &ett_h323_T_messageContent
,
578 &ett_h323_RobustnessData
,
579 &ett_h323_T_robustnessData
,
580 &ett_h323_BackupCallSignalAddresses
,
581 &ett_h323_BackupCallSignalAddresses_item
,
585 &ett_h323_Connect_RD
,
587 &ett_h323_T_fastStart
,
588 &ett_h323_StatusInquiry_RD
,
590 /*--- End of included file: packet-h323-ettarr.c ---*/
591 #line 109 "../../asn1/h323/packet-h323-template.c"
594 /* Register protocol */
595 proto_h323
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
597 /* Register fields and subtrees */
598 proto_register_field_array(proto_h323
, hf
, array_length(hf
));
599 proto_register_subtree_array(ett
, array_length(ett
));
604 /*--- proto_reg_handoff_h323 -------------------------------------------*/
605 void proto_reg_handoff_h323(void)
607 dissector_handle_t q931_handle
;
609 q931_handle
= find_dissector("q931");
611 /* H.323, Annex M1, Tunnelling of signalling protocols (QSIG) in H.323 */
612 dissector_add_string("h225.tp", "1.3.12.9", q931_handle
);
614 /* H.323, Annex M4, Tunnelling of narrow-band signalling syntax (NSS) for H.323 */
615 dissector_add_string("h225.gef.content", "GenericData/1000/1",
616 new_create_dissector_handle(dissect_RasTunnelledSignallingMessage_PDU
, proto_h323
));
618 /* H.323, Annex R, Robustness methods for H.323 entities */
619 dissector_add_string("h225.gef.content", "GenericData/1/1",
620 new_create_dissector_handle(dissect_RobustnessData_PDU
, proto_h323
));