Use address functions instead of ADDRESS macros in asn1 and epan
[metze/wireshark/wip.git] / epan / dissectors / packet-h225.c
1 /* Do not modify this file. Changes will be overwritten.                      */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler       */
3 /* packet-h225.c                                                              */
4 /* ../../tools/asn2wrs.py -p h225 -c ./h225.cnf -s ./packet-h225-template -D . -O ../../epan/dissectors H323-MESSAGES.asn */
5
6 /* Input file: packet-h225-template.c */
7
8 #line 1 "../../asn1/h225/packet-h225-template.c"
9 /* packet-h225.c
10  * Routines for h225 packet dissection
11  * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
12  *
13  * Wireshark - Network traffic analyzer
14  * By Gerald Combs <gerald@wireshark.org>
15  * Copyright 1998 Gerald Combs
16  *
17  * This program is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU General Public License
19  * as published by the Free Software Foundation; either version 2
20  * of the License, or (at your option) any later version.
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
30  *
31  * To quote the author of the previous H323/H225/H245 dissector:
32  *   "This is a complete replacement of the previous limitied dissector
33  * that Ronnie was crazy enough to write by hand. It was a lot of time
34  * to hack it by hand, but it is incomplete and buggy and it is good when
35  * it will go away."
36  * Ronnie did a great job and all the VoIP users had made good use of it!
37  * Credit to Tomas Kukosa for developing the asn2wrs compiler.
38  *
39  */
40
41 #include "config.h"
42
43 #include <epan/packet.h>
44 #include <epan/conversation.h>
45
46 #include <epan/prefs.h>
47 #include <epan/oids.h>
48 #include <epan/next_tvb.h>
49 #include <epan/asn1.h>
50 #include <epan/t35.h>
51 #include <epan/tap.h>
52 #include <epan/stat_tap_ui.h>
53 #include <epan/rtd_table.h>
54 #include "packet-tpkt.h"
55 #include "packet-per.h"
56 #include "packet-h225.h"
57 #include "packet-h235.h"
58 #include "packet-h245.h"
59 #include "packet-h323.h"
60 #include "packet-q931.h"
61 #include "packet-ssl.h"
62
63 #define PNAME  "H323-MESSAGES"
64 #define PSNAME "H.225.0"
65 #define PFNAME "h225"
66
67 #define UDP_PORT_RAS1 1718
68 #define UDP_PORT_RAS2 1719
69 #define TCP_PORT_CS   1720
70 #define TLS_PORT_CS   1300
71
72 void proto_register_h225(void);
73 static void reset_h225_packet_info(h225_packet_info *pi);
74 static void h225_init_routine(void);
75 static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi);
76
77 /* Item of ras request list*/
78 typedef struct _h225ras_call_t {
79   guint32 requestSeqNum;
80   e_guid_t guid;
81   guint32 req_num;  /* frame number request seen */
82   guint32 rsp_num;  /* frame number response seen */
83   nstime_t req_time;  /* arrival time of request */
84   gboolean responded; /* true, if request has been responded */
85   struct _h225ras_call_t *next_call; /* pointer to next ras request with same SequenceNumber and conversation handle */
86 } h225ras_call_t;
87
88
89 /* Item of ras-request key list*/
90 typedef struct _h225ras_call_info_key {
91   guint reqSeqNum;
92   conversation_t *conversation;
93 } h225ras_call_info_key;
94
95 static h225_packet_info pi_arr[5]; /* We assuming a maximum of 5 H.225 messages per packet */
96 static int pi_current=0;
97 static h225_packet_info *h225_pi=&pi_arr[0];
98
99 /* Global Memory Chunks for lists and Global hash tables*/
100
101 static GHashTable *ras_calls[7] = {NULL, NULL, NULL, NULL, NULL, NULL, NULL};
102
103 /* functions, needed using ras-request and halfcall matching*/
104 static h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category);
105 static h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category);
106 static h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category);
107
108 static dissector_handle_t data_handle;
109 /* Subdissector tables */
110 static dissector_table_t nsp_object_dissector_table;
111 static dissector_table_t nsp_h221_dissector_table;
112 static dissector_table_t tp_dissector_table;
113 static dissector_table_t gef_name_dissector_table;
114 static dissector_table_t gef_content_dissector_table;
115
116
117 static dissector_handle_t h245_handle=NULL;
118 static dissector_handle_t h245dg_handle=NULL;
119 static dissector_handle_t h4501_handle=NULL;
120
121 static dissector_handle_t nsp_handle;
122 static dissector_handle_t tp_handle;
123
124 static next_tvb_list_t h245_list;
125 static next_tvb_list_t tp_list;
126
127 /* Initialize the protocol and registered fields */
128 static int h225_tap = -1;
129 static int proto_h225 = -1;
130
131 static int hf_h221Manufacturer = -1;
132 static int hf_h225_ras_req_frame = -1;
133 static int hf_h225_ras_rsp_frame = -1;
134 static int hf_h225_ras_dup = -1;
135 static int hf_h225_ras_deltatime = -1;
136 static int hf_h225_debug_dissector_try_string = -1;
137
138
139 /*--- Included file: packet-h225-hf.c ---*/
140 #line 1 "../../asn1/h225/packet-h225-hf.c"
141 static int hf_h225_H323_UserInformation_PDU = -1;  /* H323_UserInformation */
142 static int hf_h225_h225_ExtendedAliasAddress_PDU = -1;  /* ExtendedAliasAddress */
143 static int hf_h225_RasMessage_PDU = -1;           /* RasMessage */
144 static int hf_h225_h323_uu_pdu = -1;              /* H323_UU_PDU */
145 static int hf_h225_user_data = -1;                /* T_user_data */
146 static int hf_h225_protocol_discriminator = -1;   /* INTEGER_0_255 */
147 static int hf_h225_user_information = -1;         /* OCTET_STRING_SIZE_1_131 */
148 static int hf_h225_h323_message_body = -1;        /* T_h323_message_body */
149 static int hf_h225_setup = -1;                    /* Setup_UUIE */
150 static int hf_h225_callProceeding = -1;           /* CallProceeding_UUIE */
151 static int hf_h225_connect = -1;                  /* Connect_UUIE */
152 static int hf_h225_alerting = -1;                 /* Alerting_UUIE */
153 static int hf_h225_information = -1;              /* Information_UUIE */
154 static int hf_h225_releaseComplete = -1;          /* ReleaseComplete_UUIE */
155 static int hf_h225_facility = -1;                 /* Facility_UUIE */
156 static int hf_h225_progress = -1;                 /* Progress_UUIE */
157 static int hf_h225_empty_flg = -1;                /* T_empty_flg */
158 static int hf_h225_status = -1;                   /* Status_UUIE */
159 static int hf_h225_statusInquiry = -1;            /* StatusInquiry_UUIE */
160 static int hf_h225_setupAcknowledge = -1;         /* SetupAcknowledge_UUIE */
161 static int hf_h225_notify = -1;                   /* Notify_UUIE */
162 static int hf_h225_nonStandardData = -1;          /* NonStandardParameter */
163 static int hf_h225_h4501SupplementaryService = -1;  /* T_h4501SupplementaryService */
164 static int hf_h225_h4501SupplementaryService_item = -1;  /* T_h4501SupplementaryService_item */
165 static int hf_h225_h245Tunnelling = -1;           /* T_h245Tunnelling */
166 static int hf_h225_H245Control_item = -1;         /* H245Control_item */
167 static int hf_h225_h245Control = -1;              /* H245Control */
168 static int hf_h225_nonStandardControl = -1;       /* SEQUENCE_OF_NonStandardParameter */
169 static int hf_h225_nonStandardControl_item = -1;  /* NonStandardParameter */
170 static int hf_h225_callLinkage = -1;              /* CallLinkage */
171 static int hf_h225_tunnelledSignallingMessage = -1;  /* T_tunnelledSignallingMessage */
172 static int hf_h225_tunnelledProtocolID = -1;      /* TunnelledProtocol */
173 static int hf_h225_messageContent = -1;           /* T_messageContent */
174 static int hf_h225_messageContent_item = -1;      /* T_messageContent_item */
175 static int hf_h225_tunnellingRequired = -1;       /* NULL */
176 static int hf_h225_provisionalRespToH245Tunnelling = -1;  /* NULL */
177 static int hf_h225_stimulusControl = -1;          /* StimulusControl */
178 static int hf_h225_genericData = -1;              /* SEQUENCE_OF_GenericData */
179 static int hf_h225_genericData_item = -1;         /* GenericData */
180 static int hf_h225_nonStandard = -1;              /* NonStandardParameter */
181 static int hf_h225_isText = -1;                   /* NULL */
182 static int hf_h225_h248Message = -1;              /* OCTET_STRING */
183 static int hf_h225_protocolIdentifier = -1;       /* ProtocolIdentifier */
184 static int hf_h225_uUIE_destinationInfo = -1;     /* EndpointType */
185 static int hf_h225_h245Address = -1;              /* H245TransportAddress */
186 static int hf_h225_callIdentifier = -1;           /* CallIdentifier */
187 static int hf_h225_h245SecurityMode = -1;         /* H245Security */
188 static int hf_h225_tokens = -1;                   /* SEQUENCE_OF_ClearToken */
189 static int hf_h225_tokens_item = -1;              /* ClearToken */
190 static int hf_h225_cryptoTokens = -1;             /* SEQUENCE_OF_CryptoH323Token */
191 static int hf_h225_cryptoTokens_item = -1;        /* CryptoH323Token */
192 static int hf_h225_fastStart = -1;                /* FastStart */
193 static int hf_h225_multipleCalls = -1;            /* BOOLEAN */
194 static int hf_h225_maintainConnection = -1;       /* BOOLEAN */
195 static int hf_h225_alertingAddress = -1;          /* SEQUENCE_OF_AliasAddress */
196 static int hf_h225_alertingAddress_item = -1;     /* AliasAddress */
197 static int hf_h225_presentationIndicator = -1;    /* PresentationIndicator */
198 static int hf_h225_screeningIndicator = -1;       /* ScreeningIndicator */
199 static int hf_h225_fastConnectRefused = -1;       /* NULL */
200 static int hf_h225_serviceControl = -1;           /* SEQUENCE_OF_ServiceControlSession */
201 static int hf_h225_serviceControl_item = -1;      /* ServiceControlSession */
202 static int hf_h225_capacity = -1;                 /* CallCapacity */
203 static int hf_h225_featureSet = -1;               /* FeatureSet */
204 static int hf_h225_displayName = -1;              /* SEQUENCE_OF_DisplayName */
205 static int hf_h225_displayName_item = -1;         /* DisplayName */
206 static int hf_h225_conferenceID = -1;             /* ConferenceIdentifier */
207 static int hf_h225_language = -1;                 /* Language */
208 static int hf_h225_connectedAddress = -1;         /* SEQUENCE_OF_AliasAddress */
209 static int hf_h225_connectedAddress_item = -1;    /* AliasAddress */
210 static int hf_h225_circuitInfo = -1;              /* CircuitInfo */
211 static int hf_h225_releaseCompleteReason = -1;    /* ReleaseCompleteReason */
212 static int hf_h225_busyAddress = -1;              /* SEQUENCE_OF_AliasAddress */
213 static int hf_h225_busyAddress_item = -1;         /* AliasAddress */
214 static int hf_h225_destinationInfo = -1;          /* EndpointType */
215 static int hf_h225_noBandwidth = -1;              /* NULL */
216 static int hf_h225_gatekeeperResources = -1;      /* NULL */
217 static int hf_h225_unreachableDestination = -1;   /* NULL */
218 static int hf_h225_destinationRejection = -1;     /* NULL */
219 static int hf_h225_invalidRevision = -1;          /* NULL */
220 static int hf_h225_noPermission = -1;             /* NULL */
221 static int hf_h225_unreachableGatekeeper = -1;    /* NULL */
222 static int hf_h225_gatewayResources = -1;         /* NULL */
223 static int hf_h225_badFormatAddress = -1;         /* NULL */
224 static int hf_h225_adaptiveBusy = -1;             /* NULL */
225 static int hf_h225_inConf = -1;                   /* NULL */
226 static int hf_h225_undefinedReason = -1;          /* NULL */
227 static int hf_h225_facilityCallDeflection = -1;   /* NULL */
228 static int hf_h225_securityDenied = -1;           /* NULL */
229 static int hf_h225_calledPartyNotRegistered = -1;  /* NULL */
230 static int hf_h225_callerNotRegistered = -1;      /* NULL */
231 static int hf_h225_newConnectionNeeded = -1;      /* NULL */
232 static int hf_h225_nonStandardReason = -1;        /* NonStandardParameter */
233 static int hf_h225_replaceWithConferenceInvite = -1;  /* ConferenceIdentifier */
234 static int hf_h225_genericDataReason = -1;        /* NULL */
235 static int hf_h225_neededFeatureNotSupported = -1;  /* NULL */
236 static int hf_h225_tunnelledSignallingRejected = -1;  /* NULL */
237 static int hf_h225_invalidCID = -1;               /* NULL */
238 static int hf_h225_rLC_securityError = -1;        /* SecurityErrors */
239 static int hf_h225_hopCountExceeded = -1;         /* NULL */
240 static int hf_h225_sourceAddress = -1;            /* SEQUENCE_OF_AliasAddress */
241 static int hf_h225_sourceAddress_item = -1;       /* AliasAddress */
242 static int hf_h225_setup_UUIE_sourceInfo = -1;    /* EndpointType */
243 static int hf_h225_destinationAddress = -1;       /* SEQUENCE_OF_AliasAddress */
244 static int hf_h225_destinationAddress_item = -1;  /* AliasAddress */
245 static int hf_h225_destCallSignalAddress = -1;    /* TransportAddress */
246 static int hf_h225_destExtraCallInfo = -1;        /* SEQUENCE_OF_AliasAddress */
247 static int hf_h225_destExtraCallInfo_item = -1;   /* AliasAddress */
248 static int hf_h225_destExtraCRV = -1;             /* SEQUENCE_OF_CallReferenceValue */
249 static int hf_h225_destExtraCRV_item = -1;        /* CallReferenceValue */
250 static int hf_h225_activeMC = -1;                 /* BOOLEAN */
251 static int hf_h225_conferenceGoal = -1;           /* T_conferenceGoal */
252 static int hf_h225_create = -1;                   /* NULL */
253 static int hf_h225_join = -1;                     /* NULL */
254 static int hf_h225_invite = -1;                   /* NULL */
255 static int hf_h225_capability_negotiation = -1;   /* NULL */
256 static int hf_h225_callIndependentSupplementaryService = -1;  /* NULL */
257 static int hf_h225_callServices = -1;             /* QseriesOptions */
258 static int hf_h225_callType = -1;                 /* CallType */
259 static int hf_h225_sourceCallSignalAddress = -1;  /* TransportAddress */
260 static int hf_h225_uUIE_remoteExtensionAddress = -1;  /* AliasAddress */
261 static int hf_h225_h245SecurityCapability = -1;   /* SEQUENCE_OF_H245Security */
262 static int hf_h225_h245SecurityCapability_item = -1;  /* H245Security */
263 static int hf_h225_FastStart_item = -1;           /* FastStart_item */
264 static int hf_h225_mediaWaitForConnect = -1;      /* BOOLEAN */
265 static int hf_h225_canOverlapSend = -1;           /* BOOLEAN */
266 static int hf_h225_endpointIdentifier = -1;       /* EndpointIdentifier */
267 static int hf_h225_connectionParameters = -1;     /* T_connectionParameters */
268 static int hf_h225_connectionType = -1;           /* ScnConnectionType */
269 static int hf_h225_numberOfScnConnections = -1;   /* INTEGER_0_65535 */
270 static int hf_h225_connectionAggregation = -1;    /* ScnConnectionAggregation */
271 static int hf_h225_Language_item = -1;            /* IA5String_SIZE_1_32 */
272 static int hf_h225_symmetricOperationRequired = -1;  /* NULL */
273 static int hf_h225_desiredProtocols = -1;         /* SEQUENCE_OF_SupportedProtocols */
274 static int hf_h225_desiredProtocols_item = -1;    /* SupportedProtocols */
275 static int hf_h225_neededFeatures = -1;           /* SEQUENCE_OF_FeatureDescriptor */
276 static int hf_h225_neededFeatures_item = -1;      /* FeatureDescriptor */
277 static int hf_h225_desiredFeatures = -1;          /* SEQUENCE_OF_FeatureDescriptor */
278 static int hf_h225_desiredFeatures_item = -1;     /* FeatureDescriptor */
279 static int hf_h225_supportedFeatures = -1;        /* SEQUENCE_OF_FeatureDescriptor */
280 static int hf_h225_supportedFeatures_item = -1;   /* FeatureDescriptor */
281 static int hf_h225_ParallelH245Control_item = -1;  /* ParallelH245Control_item */
282 static int hf_h225_parallelH245Control = -1;      /* ParallelH245Control */
283 static int hf_h225_additionalSourceAddresses = -1;  /* SEQUENCE_OF_ExtendedAliasAddress */
284 static int hf_h225_additionalSourceAddresses_item = -1;  /* ExtendedAliasAddress */
285 static int hf_h225_hopCount_1_31 = -1;            /* INTEGER_1_31 */
286 static int hf_h225_unknown = -1;                  /* NULL */
287 static int hf_h225_bChannel = -1;                 /* NULL */
288 static int hf_h225_hybrid2x64 = -1;               /* NULL */
289 static int hf_h225_hybrid384 = -1;                /* NULL */
290 static int hf_h225_hybrid1536 = -1;               /* NULL */
291 static int hf_h225_hybrid1920 = -1;               /* NULL */
292 static int hf_h225_multirate = -1;                /* NULL */
293 static int hf_h225_auto = -1;                     /* NULL */
294 static int hf_h225_none = -1;                     /* NULL */
295 static int hf_h225_h221 = -1;                     /* NULL */
296 static int hf_h225_bonded_mode1 = -1;             /* NULL */
297 static int hf_h225_bonded_mode2 = -1;             /* NULL */
298 static int hf_h225_bonded_mode3 = -1;             /* NULL */
299 static int hf_h225_presentationAllowed = -1;      /* NULL */
300 static int hf_h225_presentationRestricted = -1;   /* NULL */
301 static int hf_h225_addressNotAvailable = -1;      /* NULL */
302 static int hf_h225_alternativeAddress = -1;       /* TransportAddress */
303 static int hf_h225_alternativeAliasAddress = -1;  /* SEQUENCE_OF_AliasAddress */
304 static int hf_h225_alternativeAliasAddress_item = -1;  /* AliasAddress */
305 static int hf_h225_facilityReason = -1;           /* FacilityReason */
306 static int hf_h225_conferences = -1;              /* SEQUENCE_OF_ConferenceList */
307 static int hf_h225_conferences_item = -1;         /* ConferenceList */
308 static int hf_h225_conferenceAlias = -1;          /* AliasAddress */
309 static int hf_h225_routeCallToGatekeeper = -1;    /* NULL */
310 static int hf_h225_callForwarded = -1;            /* NULL */
311 static int hf_h225_routeCallToMC = -1;            /* NULL */
312 static int hf_h225_conferenceListChoice = -1;     /* NULL */
313 static int hf_h225_startH245 = -1;                /* NULL */
314 static int hf_h225_noH245 = -1;                   /* NULL */
315 static int hf_h225_newTokens = -1;                /* NULL */
316 static int hf_h225_featureSetUpdate = -1;         /* NULL */
317 static int hf_h225_forwardedElements = -1;        /* NULL */
318 static int hf_h225_transportedInformation = -1;   /* NULL */
319 static int hf_h225_h245IpAddress = -1;            /* T_h245IpAddress */
320 static int hf_h225_h245Ip = -1;                   /* T_h245Ip */
321 static int hf_h225_h245IpPort = -1;               /* T_h245IpPort */
322 static int hf_h225_h245IpSourceRoute = -1;        /* T_h245IpSourceRoute */
323 static int hf_h225_ip = -1;                       /* OCTET_STRING_SIZE_4 */
324 static int hf_h225_port = -1;                     /* INTEGER_0_65535 */
325 static int hf_h225_h245Route = -1;                /* T_h245Route */
326 static int hf_h225_h245Route_item = -1;           /* OCTET_STRING_SIZE_4 */
327 static int hf_h225_h245Routing = -1;              /* T_h245Routing */
328 static int hf_h225_strict = -1;                   /* NULL */
329 static int hf_h225_loose = -1;                    /* NULL */
330 static int hf_h225_h245IpxAddress = -1;           /* T_h245IpxAddress */
331 static int hf_h225_node = -1;                     /* OCTET_STRING_SIZE_6 */
332 static int hf_h225_netnum = -1;                   /* OCTET_STRING_SIZE_4 */
333 static int hf_h225_h245IpxPort = -1;              /* OCTET_STRING_SIZE_2 */
334 static int hf_h225_h245Ip6Address = -1;           /* T_h245Ip6Address */
335 static int hf_h225_h245Ip6 = -1;                  /* T_h245Ip6 */
336 static int hf_h225_port_01 = -1;                  /* T_port */
337 static int hf_h225_netBios = -1;                  /* OCTET_STRING_SIZE_16 */
338 static int hf_h225_nsap = -1;                     /* OCTET_STRING_SIZE_1_20 */
339 static int hf_h225_nonStandardAddress = -1;       /* NonStandardParameter */
340 static int hf_h225_ipAddress = -1;                /* T_ipAddress */
341 static int hf_h225_ipV4 = -1;                     /* IpV4 */
342 static int hf_h225_ipV4_port = -1;                /* INTEGER_0_65535 */
343 static int hf_h225_ipSourceRoute = -1;            /* T_ipSourceRoute */
344 static int hf_h225_src_route_ipV4 = -1;           /* OCTET_STRING_SIZE_4 */
345 static int hf_h225_ipV4_src_port = -1;            /* INTEGER_0_65535 */
346 static int hf_h225_route = -1;                    /* T_route */
347 static int hf_h225_route_item = -1;               /* OCTET_STRING_SIZE_4 */
348 static int hf_h225_routing = -1;                  /* T_routing */
349 static int hf_h225_ipxAddress = -1;               /* T_ipxAddress */
350 static int hf_h225_ipx_port = -1;                 /* OCTET_STRING_SIZE_2 */
351 static int hf_h225_ip6Address = -1;               /* T_ip6Address */
352 static int hf_h225_ipV6 = -1;                     /* OCTET_STRING_SIZE_16 */
353 static int hf_h225_ipV6_port = -1;                /* INTEGER_0_65535 */
354 static int hf_h225_vendor = -1;                   /* VendorIdentifier */
355 static int hf_h225_gatekeeper = -1;               /* GatekeeperInfo */
356 static int hf_h225_gateway = -1;                  /* GatewayInfo */
357 static int hf_h225_mcu = -1;                      /* McuInfo */
358 static int hf_h225_terminal = -1;                 /* TerminalInfo */
359 static int hf_h225_mc = -1;                       /* BOOLEAN */
360 static int hf_h225_undefinedNode = -1;            /* BOOLEAN */
361 static int hf_h225_set = -1;                      /* BIT_STRING_SIZE_32 */
362 static int hf_h225_supportedTunnelledProtocols = -1;  /* SEQUENCE_OF_TunnelledProtocol */
363 static int hf_h225_supportedTunnelledProtocols_item = -1;  /* TunnelledProtocol */
364 static int hf_h225_protocol = -1;                 /* SEQUENCE_OF_SupportedProtocols */
365 static int hf_h225_protocol_item = -1;            /* SupportedProtocols */
366 static int hf_h225_h310 = -1;                     /* H310Caps */
367 static int hf_h225_h320 = -1;                     /* H320Caps */
368 static int hf_h225_h321 = -1;                     /* H321Caps */
369 static int hf_h225_h322 = -1;                     /* H322Caps */
370 static int hf_h225_h323 = -1;                     /* H323Caps */
371 static int hf_h225_h324 = -1;                     /* H324Caps */
372 static int hf_h225_voice = -1;                    /* VoiceCaps */
373 static int hf_h225_t120_only = -1;                /* T120OnlyCaps */
374 static int hf_h225_nonStandardProtocol = -1;      /* NonStandardProtocol */
375 static int hf_h225_t38FaxAnnexbOnly = -1;         /* T38FaxAnnexbOnlyCaps */
376 static int hf_h225_sip = -1;                      /* SIPCaps */
377 static int hf_h225_dataRatesSupported = -1;       /* SEQUENCE_OF_DataRate */
378 static int hf_h225_dataRatesSupported_item = -1;  /* DataRate */
379 static int hf_h225_supportedPrefixes = -1;        /* SEQUENCE_OF_SupportedPrefix */
380 static int hf_h225_supportedPrefixes_item = -1;   /* SupportedPrefix */
381 static int hf_h225_t38FaxProtocol = -1;           /* DataProtocolCapability */
382 static int hf_h225_t38FaxProfile = -1;            /* T38FaxProfile */
383 static int hf_h225_vendorIdentifier_vendor = -1;  /* H221NonStandard */
384 static int hf_h225_productId = -1;                /* OCTET_STRING_SIZE_1_256 */
385 static int hf_h225_versionId = -1;                /* OCTET_STRING_SIZE_1_256 */
386 static int hf_h225_enterpriseNumber = -1;         /* OBJECT_IDENTIFIER */
387 static int hf_h225_t35CountryCode = -1;           /* T_t35CountryCode */
388 static int hf_h225_t35Extension = -1;             /* T_t35Extension */
389 static int hf_h225_manufacturerCode = -1;         /* T_manufacturerCode */
390 static int hf_h225_tunnelledProtocol_id = -1;     /* TunnelledProtocol_id */
391 static int hf_h225_tunnelledProtocolObjectID = -1;  /* T_tunnelledProtocolObjectID */
392 static int hf_h225_tunnelledProtocolAlternateID = -1;  /* TunnelledProtocolAlternateIdentifier */
393 static int hf_h225_subIdentifier = -1;            /* IA5String_SIZE_1_64 */
394 static int hf_h225_protocolType = -1;             /* IA5String_SIZE_1_64 */
395 static int hf_h225_protocolVariant = -1;          /* IA5String_SIZE_1_64 */
396 static int hf_h225_nonStandardIdentifier = -1;    /* NonStandardIdentifier */
397 static int hf_h225_nsp_data = -1;                 /* T_nsp_data */
398 static int hf_h225_nsiOID = -1;                   /* T_nsiOID */
399 static int hf_h225_h221NonStandard = -1;          /* H221NonStandard */
400 static int hf_h225_dialledDigits = -1;            /* DialedDigits */
401 static int hf_h225_h323_ID = -1;                  /* BMPString_SIZE_1_256 */
402 static int hf_h225_url_ID = -1;                   /* IA5String_SIZE_1_512 */
403 static int hf_h225_transportID = -1;              /* TransportAddress */
404 static int hf_h225_email_ID = -1;                 /* IA5String_SIZE_1_512 */
405 static int hf_h225_partyNumber = -1;              /* PartyNumber */
406 static int hf_h225_mobileUIM = -1;                /* MobileUIM */
407 static int hf_h225_isupNumber = -1;               /* IsupNumber */
408 static int hf_h225_wildcard = -1;                 /* AliasAddress */
409 static int hf_h225_range = -1;                    /* T_range */
410 static int hf_h225_startOfRange = -1;             /* PartyNumber */
411 static int hf_h225_endOfRange = -1;               /* PartyNumber */
412 static int hf_h225_e164Number = -1;               /* PublicPartyNumber */
413 static int hf_h225_dataPartyNumber = -1;          /* NumberDigits */
414 static int hf_h225_telexPartyNumber = -1;         /* NumberDigits */
415 static int hf_h225_privateNumber = -1;            /* PrivatePartyNumber */
416 static int hf_h225_nationalStandardPartyNumber = -1;  /* NumberDigits */
417 static int hf_h225_publicTypeOfNumber = -1;       /* PublicTypeOfNumber */
418 static int hf_h225_publicNumberDigits = -1;       /* NumberDigits */
419 static int hf_h225_privateTypeOfNumber = -1;      /* PrivateTypeOfNumber */
420 static int hf_h225_privateNumberDigits = -1;      /* NumberDigits */
421 static int hf_h225_language_01 = -1;              /* IA5String */
422 static int hf_h225_name = -1;                     /* BMPString_SIZE_1_80 */
423 static int hf_h225_internationalNumber = -1;      /* NULL */
424 static int hf_h225_nationalNumber = -1;           /* NULL */
425 static int hf_h225_networkSpecificNumber = -1;    /* NULL */
426 static int hf_h225_subscriberNumber = -1;         /* NULL */
427 static int hf_h225_abbreviatedNumber = -1;        /* NULL */
428 static int hf_h225_level2RegionalNumber = -1;     /* NULL */
429 static int hf_h225_level1RegionalNumber = -1;     /* NULL */
430 static int hf_h225_pISNSpecificNumber = -1;       /* NULL */
431 static int hf_h225_localNumber = -1;              /* NULL */
432 static int hf_h225_ansi_41_uim = -1;              /* ANSI_41_UIM */
433 static int hf_h225_gsm_uim = -1;                  /* GSM_UIM */
434 static int hf_h225_imsi = -1;                     /* TBCD_STRING_SIZE_3_16 */
435 static int hf_h225_min = -1;                      /* TBCD_STRING_SIZE_3_16 */
436 static int hf_h225_mdn = -1;                      /* TBCD_STRING_SIZE_3_16 */
437 static int hf_h225_msisdn = -1;                   /* TBCD_STRING_SIZE_3_16 */
438 static int hf_h225_esn = -1;                      /* TBCD_STRING_SIZE_16 */
439 static int hf_h225_mscid = -1;                    /* TBCD_STRING_SIZE_3_16 */
440 static int hf_h225_system_id = -1;                /* T_system_id */
441 static int hf_h225_sid = -1;                      /* TBCD_STRING_SIZE_1_4 */
442 static int hf_h225_mid = -1;                      /* TBCD_STRING_SIZE_1_4 */
443 static int hf_h225_systemMyTypeCode = -1;         /* OCTET_STRING_SIZE_1 */
444 static int hf_h225_systemAccessType = -1;         /* OCTET_STRING_SIZE_1 */
445 static int hf_h225_qualificationInformationCode = -1;  /* OCTET_STRING_SIZE_1 */
446 static int hf_h225_sesn = -1;                     /* TBCD_STRING_SIZE_16 */
447 static int hf_h225_soc = -1;                      /* TBCD_STRING_SIZE_3_16 */
448 static int hf_h225_tmsi = -1;                     /* OCTET_STRING_SIZE_1_4 */
449 static int hf_h225_imei = -1;                     /* TBCD_STRING_SIZE_15_16 */
450 static int hf_h225_hplmn = -1;                    /* TBCD_STRING_SIZE_1_4 */
451 static int hf_h225_vplmn = -1;                    /* TBCD_STRING_SIZE_1_4 */
452 static int hf_h225_isupE164Number = -1;           /* IsupPublicPartyNumber */
453 static int hf_h225_isupDataPartyNumber = -1;      /* IsupDigits */
454 static int hf_h225_isupTelexPartyNumber = -1;     /* IsupDigits */
455 static int hf_h225_isupPrivateNumber = -1;        /* IsupPrivatePartyNumber */
456 static int hf_h225_isupNationalStandardPartyNumber = -1;  /* IsupDigits */
457 static int hf_h225_natureOfAddress = -1;          /* NatureOfAddress */
458 static int hf_h225_address = -1;                  /* IsupDigits */
459 static int hf_h225_routingNumberNationalFormat = -1;  /* NULL */
460 static int hf_h225_routingNumberNetworkSpecificFormat = -1;  /* NULL */
461 static int hf_h225_routingNumberWithCalledDirectoryNumber = -1;  /* NULL */
462 static int hf_h225_extAliasAddress = -1;          /* AliasAddress */
463 static int hf_h225_aliasAddress = -1;             /* SEQUENCE_OF_AliasAddress */
464 static int hf_h225_aliasAddress_item = -1;        /* AliasAddress */
465 static int hf_h225_callSignalAddress = -1;        /* SEQUENCE_OF_TransportAddress */
466 static int hf_h225_callSignalAddress_item = -1;   /* TransportAddress */
467 static int hf_h225_rasAddress = -1;               /* SEQUENCE_OF_TransportAddress */
468 static int hf_h225_rasAddress_item = -1;          /* TransportAddress */
469 static int hf_h225_endpointType = -1;             /* EndpointType */
470 static int hf_h225_priority = -1;                 /* INTEGER_0_127 */
471 static int hf_h225_remoteExtensionAddress = -1;   /* SEQUENCE_OF_AliasAddress */
472 static int hf_h225_remoteExtensionAddress_item = -1;  /* AliasAddress */
473 static int hf_h225_alternateTransportAddresses = -1;  /* AlternateTransportAddresses */
474 static int hf_h225_annexE = -1;                   /* SEQUENCE_OF_TransportAddress */
475 static int hf_h225_annexE_item = -1;              /* TransportAddress */
476 static int hf_h225_sctp = -1;                     /* SEQUENCE_OF_TransportAddress */
477 static int hf_h225_sctp_item = -1;                /* TransportAddress */
478 static int hf_h225_tcp = -1;                      /* NULL */
479 static int hf_h225_annexE_flg = -1;               /* NULL */
480 static int hf_h225_sctp_flg = -1;                 /* NULL */
481 static int hf_h225_alternateGK_rasAddress = -1;   /* TransportAddress */
482 static int hf_h225_gatekeeperIdentifier = -1;     /* GatekeeperIdentifier */
483 static int hf_h225_needToRegister = -1;           /* BOOLEAN */
484 static int hf_h225_alternateGatekeeper = -1;      /* SEQUENCE_OF_AlternateGK */
485 static int hf_h225_alternateGatekeeper_item = -1;  /* AlternateGK */
486 static int hf_h225_altGKisPermanent = -1;         /* BOOLEAN */
487 static int hf_h225_default = -1;                  /* NULL */
488 static int hf_h225_encryption = -1;               /* SecurityServiceMode */
489 static int hf_h225_authenticaton = -1;            /* SecurityServiceMode */
490 static int hf_h225_securityCapabilities_integrity = -1;  /* SecurityServiceMode */
491 static int hf_h225_securityWrongSyncTime = -1;    /* NULL */
492 static int hf_h225_securityReplay = -1;           /* NULL */
493 static int hf_h225_securityWrongGeneralID = -1;   /* NULL */
494 static int hf_h225_securityWrongSendersID = -1;   /* NULL */
495 static int hf_h225_securityIntegrityFailed = -1;  /* NULL */
496 static int hf_h225_securityWrongOID = -1;         /* NULL */
497 static int hf_h225_securityDHmismatch = -1;       /* NULL */
498 static int hf_h225_securityCertificateExpired = -1;  /* NULL */
499 static int hf_h225_securityCertificateDateInvalid = -1;  /* NULL */
500 static int hf_h225_securityCertificateRevoked = -1;  /* NULL */
501 static int hf_h225_securityCertificateNotReadable = -1;  /* NULL */
502 static int hf_h225_securityCertificateSignatureInvalid = -1;  /* NULL */
503 static int hf_h225_securityCertificateMissing = -1;  /* NULL */
504 static int hf_h225_securityCertificateIncomplete = -1;  /* NULL */
505 static int hf_h225_securityUnsupportedCertificateAlgOID = -1;  /* NULL */
506 static int hf_h225_securityUnknownCA = -1;        /* NULL */
507 static int hf_h225_noSecurity = -1;               /* NULL */
508 static int hf_h225_tls = -1;                      /* SecurityCapabilities */
509 static int hf_h225_ipsec = -1;                    /* SecurityCapabilities */
510 static int hf_h225_q932Full = -1;                 /* BOOLEAN */
511 static int hf_h225_q951Full = -1;                 /* BOOLEAN */
512 static int hf_h225_q952Full = -1;                 /* BOOLEAN */
513 static int hf_h225_q953Full = -1;                 /* BOOLEAN */
514 static int hf_h225_q955Full = -1;                 /* BOOLEAN */
515 static int hf_h225_q956Full = -1;                 /* BOOLEAN */
516 static int hf_h225_q957Full = -1;                 /* BOOLEAN */
517 static int hf_h225_q954Info = -1;                 /* Q954Details */
518 static int hf_h225_conferenceCalling = -1;        /* BOOLEAN */
519 static int hf_h225_threePartyService = -1;        /* BOOLEAN */
520 static int hf_h225_guid = -1;                     /* T_guid */
521 static int hf_h225_isoAlgorithm = -1;             /* OBJECT_IDENTIFIER */
522 static int hf_h225_hMAC_MD5 = -1;                 /* NULL */
523 static int hf_h225_hMAC_iso10118_2_s = -1;        /* EncryptIntAlg */
524 static int hf_h225_hMAC_iso10118_2_l = -1;        /* EncryptIntAlg */
525 static int hf_h225_hMAC_iso10118_3 = -1;          /* OBJECT_IDENTIFIER */
526 static int hf_h225_digSig = -1;                   /* NULL */
527 static int hf_h225_iso9797 = -1;                  /* OBJECT_IDENTIFIER */
528 static int hf_h225_nonIsoIM = -1;                 /* NonIsoIntegrityMechanism */
529 static int hf_h225_algorithmOID = -1;             /* OBJECT_IDENTIFIER */
530 static int hf_h225_icv = -1;                      /* BIT_STRING */
531 static int hf_h225_cryptoEPPwdHash = -1;          /* T_cryptoEPPwdHash */
532 static int hf_h225_alias = -1;                    /* AliasAddress */
533 static int hf_h225_timeStamp = -1;                /* TimeStamp */
534 static int hf_h225_token = -1;                    /* HASHED */
535 static int hf_h225_cryptoGKPwdHash = -1;          /* T_cryptoGKPwdHash */
536 static int hf_h225_gatekeeperId = -1;             /* GatekeeperIdentifier */
537 static int hf_h225_cryptoEPPwdEncr = -1;          /* ENCRYPTED */
538 static int hf_h225_cryptoGKPwdEncr = -1;          /* ENCRYPTED */
539 static int hf_h225_cryptoEPCert = -1;             /* SIGNED */
540 static int hf_h225_cryptoGKCert = -1;             /* SIGNED */
541 static int hf_h225_cryptoFastStart = -1;          /* SIGNED */
542 static int hf_h225_nestedcryptoToken = -1;        /* CryptoToken */
543 static int hf_h225_channelRate = -1;              /* BandWidth */
544 static int hf_h225_channelMultiplier = -1;        /* INTEGER_1_256 */
545 static int hf_h225_globalCallId = -1;             /* GloballyUniqueID */
546 static int hf_h225_threadId = -1;                 /* GloballyUniqueID */
547 static int hf_h225_prefix = -1;                   /* AliasAddress */
548 static int hf_h225_canReportCallCapacity = -1;    /* BOOLEAN */
549 static int hf_h225_capacityReportingSpecification_when = -1;  /* CapacityReportingSpecification_when */
550 static int hf_h225_callStart = -1;                /* NULL */
551 static int hf_h225_callEnd = -1;                  /* NULL */
552 static int hf_h225_maximumCallCapacity = -1;      /* CallCapacityInfo */
553 static int hf_h225_currentCallCapacity = -1;      /* CallCapacityInfo */
554 static int hf_h225_voiceGwCallsAvailable = -1;    /* SEQUENCE_OF_CallsAvailable */
555 static int hf_h225_voiceGwCallsAvailable_item = -1;  /* CallsAvailable */
556 static int hf_h225_h310GwCallsAvailable = -1;     /* SEQUENCE_OF_CallsAvailable */
557 static int hf_h225_h310GwCallsAvailable_item = -1;  /* CallsAvailable */
558 static int hf_h225_h320GwCallsAvailable = -1;     /* SEQUENCE_OF_CallsAvailable */
559 static int hf_h225_h320GwCallsAvailable_item = -1;  /* CallsAvailable */
560 static int hf_h225_h321GwCallsAvailable = -1;     /* SEQUENCE_OF_CallsAvailable */
561 static int hf_h225_h321GwCallsAvailable_item = -1;  /* CallsAvailable */
562 static int hf_h225_h322GwCallsAvailable = -1;     /* SEQUENCE_OF_CallsAvailable */
563 static int hf_h225_h322GwCallsAvailable_item = -1;  /* CallsAvailable */
564 static int hf_h225_h323GwCallsAvailable = -1;     /* SEQUENCE_OF_CallsAvailable */
565 static int hf_h225_h323GwCallsAvailable_item = -1;  /* CallsAvailable */
566 static int hf_h225_h324GwCallsAvailable = -1;     /* SEQUENCE_OF_CallsAvailable */
567 static int hf_h225_h324GwCallsAvailable_item = -1;  /* CallsAvailable */
568 static int hf_h225_t120OnlyGwCallsAvailable = -1;  /* SEQUENCE_OF_CallsAvailable */
569 static int hf_h225_t120OnlyGwCallsAvailable_item = -1;  /* CallsAvailable */
570 static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable = -1;  /* SEQUENCE_OF_CallsAvailable */
571 static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item = -1;  /* CallsAvailable */
572 static int hf_h225_terminalCallsAvailable = -1;   /* SEQUENCE_OF_CallsAvailable */
573 static int hf_h225_terminalCallsAvailable_item = -1;  /* CallsAvailable */
574 static int hf_h225_mcuCallsAvailable = -1;        /* SEQUENCE_OF_CallsAvailable */
575 static int hf_h225_mcuCallsAvailable_item = -1;   /* CallsAvailable */
576 static int hf_h225_sipGwCallsAvailable = -1;      /* SEQUENCE_OF_CallsAvailable */
577 static int hf_h225_sipGwCallsAvailable_item = -1;  /* CallsAvailable */
578 static int hf_h225_calls = -1;                    /* INTEGER_0_4294967295 */
579 static int hf_h225_group_IA5String = -1;          /* IA5String_SIZE_1_128 */
580 static int hf_h225_carrier = -1;                  /* CarrierInfo */
581 static int hf_h225_sourceCircuitID = -1;          /* CircuitIdentifier */
582 static int hf_h225_destinationCircuitID = -1;     /* CircuitIdentifier */
583 static int hf_h225_cic = -1;                      /* CicInfo */
584 static int hf_h225_group = -1;                    /* GroupID */
585 static int hf_h225_cic_2_4 = -1;                  /* T_cic_2_4 */
586 static int hf_h225_cic_2_4_item = -1;             /* OCTET_STRING_SIZE_2_4 */
587 static int hf_h225_pointCode = -1;                /* OCTET_STRING_SIZE_2_5 */
588 static int hf_h225_member = -1;                   /* T_member */
589 static int hf_h225_member_item = -1;              /* INTEGER_0_65535 */
590 static int hf_h225_carrierIdentificationCode = -1;  /* OCTET_STRING_SIZE_3_4 */
591 static int hf_h225_carrierName = -1;              /* IA5String_SIZE_1_128 */
592 static int hf_h225_url = -1;                      /* IA5String_SIZE_0_512 */
593 static int hf_h225_signal = -1;                   /* H248SignalsDescriptor */
594 static int hf_h225_callCreditServiceControl = -1;  /* CallCreditServiceControl */
595 static int hf_h225_sessionId_0_255 = -1;          /* INTEGER_0_255 */
596 static int hf_h225_contents = -1;                 /* ServiceControlDescriptor */
597 static int hf_h225_reason = -1;                   /* ServiceControlSession_reason */
598 static int hf_h225_open = -1;                     /* NULL */
599 static int hf_h225_refresh = -1;                  /* NULL */
600 static int hf_h225_close = -1;                    /* NULL */
601 static int hf_h225_nonStandardUsageTypes = -1;    /* SEQUENCE_OF_NonStandardParameter */
602 static int hf_h225_nonStandardUsageTypes_item = -1;  /* NonStandardParameter */
603 static int hf_h225_startTime = -1;                /* NULL */
604 static int hf_h225_endTime_flg = -1;              /* NULL */
605 static int hf_h225_terminationCause_flg = -1;     /* NULL */
606 static int hf_h225_when = -1;                     /* RasUsageSpecification_when */
607 static int hf_h225_start = -1;                    /* NULL */
608 static int hf_h225_end = -1;                      /* NULL */
609 static int hf_h225_inIrr = -1;                    /* NULL */
610 static int hf_h225_ras_callStartingPoint = -1;    /* RasUsageSpecificationcallStartingPoint */
611 static int hf_h225_alerting_flg = -1;             /* NULL */
612 static int hf_h225_connect_flg = -1;              /* NULL */
613 static int hf_h225_required = -1;                 /* RasUsageInfoTypes */
614 static int hf_h225_nonStandardUsageFields = -1;   /* SEQUENCE_OF_NonStandardParameter */
615 static int hf_h225_nonStandardUsageFields_item = -1;  /* NonStandardParameter */
616 static int hf_h225_alertingTime = -1;             /* TimeStamp */
617 static int hf_h225_connectTime = -1;              /* TimeStamp */
618 static int hf_h225_endTime = -1;                  /* TimeStamp */
619 static int hf_h225_releaseCompleteCauseIE = -1;   /* OCTET_STRING_SIZE_2_32 */
620 static int hf_h225_sender = -1;                   /* BOOLEAN */
621 static int hf_h225_multicast = -1;                /* BOOLEAN */
622 static int hf_h225_bandwidth = -1;                /* BandWidth */
623 static int hf_h225_rtcpAddresses = -1;            /* TransportChannelInfo */
624 static int hf_h225_canDisplayAmountString = -1;   /* BOOLEAN */
625 static int hf_h225_canEnforceDurationLimit = -1;  /* BOOLEAN */
626 static int hf_h225_amountString = -1;             /* BMPString_SIZE_1_512 */
627 static int hf_h225_billingMode = -1;              /* T_billingMode */
628 static int hf_h225_credit = -1;                   /* NULL */
629 static int hf_h225_debit = -1;                    /* NULL */
630 static int hf_h225_callDurationLimit = -1;        /* INTEGER_1_4294967295 */
631 static int hf_h225_enforceCallDurationLimit = -1;  /* BOOLEAN */
632 static int hf_h225_callStartingPoint = -1;        /* CallCreditServiceControl_callStartingPoint */
633 static int hf_h225_id = -1;                       /* GenericIdentifier */
634 static int hf_h225_parameters = -1;               /* SEQUENCE_SIZE_1_512_OF_EnumeratedParameter */
635 static int hf_h225_parameters_item = -1;          /* EnumeratedParameter */
636 static int hf_h225_standard = -1;                 /* T_standard */
637 static int hf_h225_oid = -1;                      /* T_oid */
638 static int hf_h225_genericIdentifier_nonStandard = -1;  /* GloballyUniqueID */
639 static int hf_h225_content = -1;                  /* Content */
640 static int hf_h225_raw = -1;                      /* T_raw */
641 static int hf_h225_text = -1;                     /* IA5String */
642 static int hf_h225_unicode = -1;                  /* BMPString */
643 static int hf_h225_bool = -1;                     /* BOOLEAN */
644 static int hf_h225_number8 = -1;                  /* INTEGER_0_255 */
645 static int hf_h225_number16 = -1;                 /* INTEGER_0_65535 */
646 static int hf_h225_number32 = -1;                 /* INTEGER_0_4294967295 */
647 static int hf_h225_transport = -1;                /* TransportAddress */
648 static int hf_h225_compound = -1;                 /* SEQUENCE_SIZE_1_512_OF_EnumeratedParameter */
649 static int hf_h225_compound_item = -1;            /* EnumeratedParameter */
650 static int hf_h225_nested = -1;                   /* SEQUENCE_SIZE_1_16_OF_GenericData */
651 static int hf_h225_nested_item = -1;              /* GenericData */
652 static int hf_h225_replacementFeatureSet = -1;    /* BOOLEAN */
653 static int hf_h225_sendAddress = -1;              /* TransportAddress */
654 static int hf_h225_recvAddress = -1;              /* TransportAddress */
655 static int hf_h225_rtpAddress = -1;               /* TransportChannelInfo */
656 static int hf_h225_rtcpAddress = -1;              /* TransportChannelInfo */
657 static int hf_h225_cname = -1;                    /* PrintableString */
658 static int hf_h225_ssrc = -1;                     /* INTEGER_1_4294967295 */
659 static int hf_h225_sessionId = -1;                /* INTEGER_1_255 */
660 static int hf_h225_associatedSessionIds = -1;     /* T_associatedSessionIds */
661 static int hf_h225_associatedSessionIds_item = -1;  /* INTEGER_1_255 */
662 static int hf_h225_multicast_flg = -1;            /* NULL */
663 static int hf_h225_gatekeeperBased = -1;          /* NULL */
664 static int hf_h225_endpointBased = -1;            /* NULL */
665 static int hf_h225_gatekeeperRequest = -1;        /* GatekeeperRequest */
666 static int hf_h225_gatekeeperConfirm = -1;        /* GatekeeperConfirm */
667 static int hf_h225_gatekeeperReject = -1;         /* GatekeeperReject */
668 static int hf_h225_registrationRequest = -1;      /* RegistrationRequest */
669 static int hf_h225_registrationConfirm = -1;      /* RegistrationConfirm */
670 static int hf_h225_registrationReject = -1;       /* RegistrationReject */
671 static int hf_h225_unregistrationRequest = -1;    /* UnregistrationRequest */
672 static int hf_h225_unregistrationConfirm = -1;    /* UnregistrationConfirm */
673 static int hf_h225_unregistrationReject = -1;     /* UnregistrationReject */
674 static int hf_h225_admissionRequest = -1;         /* AdmissionRequest */
675 static int hf_h225_admissionConfirm = -1;         /* AdmissionConfirm */
676 static int hf_h225_admissionReject = -1;          /* AdmissionReject */
677 static int hf_h225_bandwidthRequest = -1;         /* BandwidthRequest */
678 static int hf_h225_bandwidthConfirm = -1;         /* BandwidthConfirm */
679 static int hf_h225_bandwidthReject = -1;          /* BandwidthReject */
680 static int hf_h225_disengageRequest = -1;         /* DisengageRequest */
681 static int hf_h225_disengageConfirm = -1;         /* DisengageConfirm */
682 static int hf_h225_disengageReject = -1;          /* DisengageReject */
683 static int hf_h225_locationRequest = -1;          /* LocationRequest */
684 static int hf_h225_locationConfirm = -1;          /* LocationConfirm */
685 static int hf_h225_locationReject = -1;           /* LocationReject */
686 static int hf_h225_infoRequest = -1;              /* InfoRequest */
687 static int hf_h225_infoRequestResponse = -1;      /* InfoRequestResponse */
688 static int hf_h225_nonStandardMessage = -1;       /* NonStandardMessage */
689 static int hf_h225_unknownMessageResponse = -1;   /* UnknownMessageResponse */
690 static int hf_h225_requestInProgress = -1;        /* RequestInProgress */
691 static int hf_h225_resourcesAvailableIndicate = -1;  /* ResourcesAvailableIndicate */
692 static int hf_h225_resourcesAvailableConfirm = -1;  /* ResourcesAvailableConfirm */
693 static int hf_h225_infoRequestAck = -1;           /* InfoRequestAck */
694 static int hf_h225_infoRequestNak = -1;           /* InfoRequestNak */
695 static int hf_h225_serviceControlIndication = -1;  /* ServiceControlIndication */
696 static int hf_h225_serviceControlResponse = -1;   /* ServiceControlResponse */
697 static int hf_h225_admissionConfirmSequence = -1;  /* SEQUENCE_OF_AdmissionConfirm */
698 static int hf_h225_admissionConfirmSequence_item = -1;  /* AdmissionConfirm */
699 static int hf_h225_requestSeqNum = -1;            /* RequestSeqNum */
700 static int hf_h225_gatekeeperRequest_rasAddress = -1;  /* TransportAddress */
701 static int hf_h225_endpointAlias = -1;            /* SEQUENCE_OF_AliasAddress */
702 static int hf_h225_endpointAlias_item = -1;       /* AliasAddress */
703 static int hf_h225_alternateEndpoints = -1;       /* SEQUENCE_OF_Endpoint */
704 static int hf_h225_alternateEndpoints_item = -1;  /* Endpoint */
705 static int hf_h225_authenticationCapability = -1;  /* SEQUENCE_OF_AuthenticationMechanism */
706 static int hf_h225_authenticationCapability_item = -1;  /* AuthenticationMechanism */
707 static int hf_h225_algorithmOIDs = -1;            /* T_algorithmOIDs */
708 static int hf_h225_algorithmOIDs_item = -1;       /* OBJECT_IDENTIFIER */
709 static int hf_h225_integrity = -1;                /* SEQUENCE_OF_IntegrityMechanism */
710 static int hf_h225_integrity_item = -1;           /* IntegrityMechanism */
711 static int hf_h225_integrityCheckValue = -1;      /* ICV */
712 static int hf_h225_supportsAltGK = -1;            /* NULL */
713 static int hf_h225_supportsAssignedGK = -1;       /* BOOLEAN */
714 static int hf_h225_assignedGatekeeper = -1;       /* AlternateGK */
715 static int hf_h225_gatekeeperConfirm_rasAddress = -1;  /* TransportAddress */
716 static int hf_h225_authenticationMode = -1;       /* AuthenticationMechanism */
717 static int hf_h225_rehomingModel = -1;            /* RehomingModel */
718 static int hf_h225_gatekeeperRejectReason = -1;   /* GatekeeperRejectReason */
719 static int hf_h225_altGKInfo = -1;                /* AltGKInfo */
720 static int hf_h225_resourceUnavailable = -1;      /* NULL */
721 static int hf_h225_terminalExcluded = -1;         /* NULL */
722 static int hf_h225_securityDenial = -1;           /* NULL */
723 static int hf_h225_gkRej_securityError = -1;      /* SecurityErrors */
724 static int hf_h225_discoveryComplete = -1;        /* BOOLEAN */
725 static int hf_h225_terminalType = -1;             /* EndpointType */
726 static int hf_h225_terminalAlias = -1;            /* SEQUENCE_OF_AliasAddress */
727 static int hf_h225_terminalAlias_item = -1;       /* AliasAddress */
728 static int hf_h225_endpointVendor = -1;           /* VendorIdentifier */
729 static int hf_h225_timeToLive = -1;               /* TimeToLive */
730 static int hf_h225_keepAlive = -1;                /* BOOLEAN */
731 static int hf_h225_willSupplyUUIEs = -1;          /* BOOLEAN */
732 static int hf_h225_additiveRegistration = -1;     /* NULL */
733 static int hf_h225_terminalAliasPattern = -1;     /* SEQUENCE_OF_AddressPattern */
734 static int hf_h225_terminalAliasPattern_item = -1;  /* AddressPattern */
735 static int hf_h225_usageReportingCapability = -1;  /* RasUsageInfoTypes */
736 static int hf_h225_supportedH248Packages = -1;    /* SEQUENCE_OF_H248PackagesDescriptor */
737 static int hf_h225_supportedH248Packages_item = -1;  /* H248PackagesDescriptor */
738 static int hf_h225_callCreditCapability = -1;     /* CallCreditCapability */
739 static int hf_h225_capacityReportingCapability = -1;  /* CapacityReportingCapability */
740 static int hf_h225_restart = -1;                  /* NULL */
741 static int hf_h225_supportsACFSequences = -1;     /* NULL */
742 static int hf_h225_transportQOS = -1;             /* TransportQOS */
743 static int hf_h225_willRespondToIRR = -1;         /* BOOLEAN */
744 static int hf_h225_preGrantedARQ = -1;            /* T_preGrantedARQ */
745 static int hf_h225_makeCall = -1;                 /* BOOLEAN */
746 static int hf_h225_useGKCallSignalAddressToMakeCall = -1;  /* BOOLEAN */
747 static int hf_h225_answerCall = -1;               /* BOOLEAN */
748 static int hf_h225_useGKCallSignalAddressToAnswer = -1;  /* BOOLEAN */
749 static int hf_h225_irrFrequencyInCall = -1;       /* INTEGER_1_65535 */
750 static int hf_h225_totalBandwidthRestriction = -1;  /* BandWidth */
751 static int hf_h225_useSpecifiedTransport = -1;    /* UseSpecifiedTransport */
752 static int hf_h225_supportsAdditiveRegistration = -1;  /* NULL */
753 static int hf_h225_usageSpec = -1;                /* SEQUENCE_OF_RasUsageSpecification */
754 static int hf_h225_usageSpec_item = -1;           /* RasUsageSpecification */
755 static int hf_h225_featureServerAlias = -1;       /* AliasAddress */
756 static int hf_h225_capacityReportingSpec = -1;    /* CapacityReportingSpecification */
757 static int hf_h225_registrationRejectReason = -1;  /* RegistrationRejectReason */
758 static int hf_h225_discoveryRequired = -1;        /* NULL */
759 static int hf_h225_invalidCallSignalAddress = -1;  /* NULL */
760 static int hf_h225_invalidRASAddress = -1;        /* NULL */
761 static int hf_h225_duplicateAlias = -1;           /* SEQUENCE_OF_AliasAddress */
762 static int hf_h225_duplicateAlias_item = -1;      /* AliasAddress */
763 static int hf_h225_invalidTerminalType = -1;      /* NULL */
764 static int hf_h225_transportNotSupported = -1;    /* NULL */
765 static int hf_h225_transportQOSNotSupported = -1;  /* NULL */
766 static int hf_h225_invalidAlias = -1;             /* NULL */
767 static int hf_h225_fullRegistrationRequired = -1;  /* NULL */
768 static int hf_h225_additiveRegistrationNotSupported = -1;  /* NULL */
769 static int hf_h225_invalidTerminalAliases = -1;   /* T_invalidTerminalAliases */
770 static int hf_h225_reg_securityError = -1;        /* SecurityErrors */
771 static int hf_h225_registerWithAssignedGK = -1;   /* NULL */
772 static int hf_h225_unregRequestReason = -1;       /* UnregRequestReason */
773 static int hf_h225_endpointAliasPattern = -1;     /* SEQUENCE_OF_AddressPattern */
774 static int hf_h225_endpointAliasPattern_item = -1;  /* AddressPattern */
775 static int hf_h225_reregistrationRequired = -1;   /* NULL */
776 static int hf_h225_ttlExpired = -1;               /* NULL */
777 static int hf_h225_maintenance = -1;              /* NULL */
778 static int hf_h225_securityError = -1;            /* SecurityErrors2 */
779 static int hf_h225_unregRejectReason = -1;        /* UnregRejectReason */
780 static int hf_h225_notCurrentlyRegistered = -1;   /* NULL */
781 static int hf_h225_callInProgress = -1;           /* NULL */
782 static int hf_h225_permissionDenied = -1;         /* NULL */
783 static int hf_h225_callModel = -1;                /* CallModel */
784 static int hf_h225_DestinationInfo_item = -1;     /* DestinationInfo_item */
785 static int hf_h225_destinationInfo_01 = -1;       /* DestinationInfo */
786 static int hf_h225_srcInfo = -1;                  /* SEQUENCE_OF_AliasAddress */
787 static int hf_h225_srcInfo_item = -1;             /* AliasAddress */
788 static int hf_h225_srcCallSignalAddress = -1;     /* TransportAddress */
789 static int hf_h225_bandWidth = -1;                /* BandWidth */
790 static int hf_h225_callReferenceValue = -1;       /* CallReferenceValue */
791 static int hf_h225_canMapAlias = -1;              /* BOOLEAN */
792 static int hf_h225_srcAlternatives = -1;          /* SEQUENCE_OF_Endpoint */
793 static int hf_h225_srcAlternatives_item = -1;     /* Endpoint */
794 static int hf_h225_destAlternatives = -1;         /* SEQUENCE_OF_Endpoint */
795 static int hf_h225_destAlternatives_item = -1;    /* Endpoint */
796 static int hf_h225_gatewayDataRate = -1;          /* DataRate */
797 static int hf_h225_desiredTunnelledProtocol = -1;  /* TunnelledProtocol */
798 static int hf_h225_canMapSrcAlias = -1;           /* BOOLEAN */
799 static int hf_h225_pointToPoint = -1;             /* NULL */
800 static int hf_h225_oneToN = -1;                   /* NULL */
801 static int hf_h225_nToOne = -1;                   /* NULL */
802 static int hf_h225_nToN = -1;                     /* NULL */
803 static int hf_h225_direct = -1;                   /* NULL */
804 static int hf_h225_gatekeeperRouted = -1;         /* NULL */
805 static int hf_h225_endpointControlled = -1;       /* NULL */
806 static int hf_h225_gatekeeperControlled = -1;     /* NULL */
807 static int hf_h225_noControl = -1;                /* NULL */
808 static int hf_h225_qOSCapabilities = -1;          /* SEQUENCE_SIZE_1_256_OF_QOSCapability */
809 static int hf_h225_qOSCapabilities_item = -1;     /* QOSCapability */
810 static int hf_h225_irrFrequency = -1;             /* INTEGER_1_65535 */
811 static int hf_h225_destinationType = -1;          /* EndpointType */
812 static int hf_h225_uuiesRequested = -1;           /* UUIEsRequested */
813 static int hf_h225_supportedProtocols = -1;       /* SEQUENCE_OF_SupportedProtocols */
814 static int hf_h225_supportedProtocols_item = -1;  /* SupportedProtocols */
815 static int hf_h225_modifiedSrcInfo = -1;          /* SEQUENCE_OF_AliasAddress */
816 static int hf_h225_modifiedSrcInfo_item = -1;     /* AliasAddress */
817 static int hf_h225_setup_bool = -1;               /* BOOLEAN */
818 static int hf_h225_callProceeding_flg = -1;       /* BOOLEAN */
819 static int hf_h225_connect_bool = -1;             /* BOOLEAN */
820 static int hf_h225_alerting_bool = -1;            /* BOOLEAN */
821 static int hf_h225_information_bool = -1;         /* BOOLEAN */
822 static int hf_h225_releaseComplete_bool = -1;     /* BOOLEAN */
823 static int hf_h225_facility_bool = -1;            /* BOOLEAN */
824 static int hf_h225_progress_bool = -1;            /* BOOLEAN */
825 static int hf_h225_empty = -1;                    /* BOOLEAN */
826 static int hf_h225_status_bool = -1;              /* BOOLEAN */
827 static int hf_h225_statusInquiry_bool = -1;       /* BOOLEAN */
828 static int hf_h225_setupAcknowledge_bool = -1;    /* BOOLEAN */
829 static int hf_h225_notify_bool = -1;              /* BOOLEAN */
830 static int hf_h225_rejectReason = -1;             /* AdmissionRejectReason */
831 static int hf_h225_invalidPermission = -1;        /* NULL */
832 static int hf_h225_requestDenied = -1;            /* NULL */
833 static int hf_h225_invalidEndpointIdentifier = -1;  /* NULL */
834 static int hf_h225_qosControlNotSupported = -1;   /* NULL */
835 static int hf_h225_incompleteAddress = -1;        /* NULL */
836 static int hf_h225_aliasesInconsistent = -1;      /* NULL */
837 static int hf_h225_routeCallToSCN = -1;           /* SEQUENCE_OF_PartyNumber */
838 static int hf_h225_routeCallToSCN_item = -1;      /* PartyNumber */
839 static int hf_h225_exceedsCallCapacity = -1;      /* NULL */
840 static int hf_h225_collectDestination = -1;       /* NULL */
841 static int hf_h225_collectPIN = -1;               /* NULL */
842 static int hf_h225_noRouteToDestination = -1;     /* NULL */
843 static int hf_h225_unallocatedNumber = -1;        /* NULL */
844 static int hf_h225_answeredCall = -1;             /* BOOLEAN */
845 static int hf_h225_usageInformation = -1;         /* RasUsageInformation */
846 static int hf_h225_bandwidthDetails = -1;         /* SEQUENCE_OF_BandwidthDetails */
847 static int hf_h225_bandwidthDetails_item = -1;    /* BandwidthDetails */
848 static int hf_h225_bandRejectReason = -1;         /* BandRejectReason */
849 static int hf_h225_allowedBandWidth = -1;         /* BandWidth */
850 static int hf_h225_notBound = -1;                 /* NULL */
851 static int hf_h225_invalidConferenceID = -1;      /* NULL */
852 static int hf_h225_insufficientResources = -1;    /* NULL */
853 static int hf_h225_replyAddress = -1;             /* TransportAddress */
854 static int hf_h225_sourceInfo = -1;               /* SEQUENCE_OF_AliasAddress */
855 static int hf_h225_sourceInfo_item = -1;          /* AliasAddress */
856 static int hf_h225_hopCount = -1;                 /* INTEGER_1_255 */
857 static int hf_h225_sourceEndpointInfo = -1;       /* SEQUENCE_OF_AliasAddress */
858 static int hf_h225_sourceEndpointInfo_item = -1;  /* AliasAddress */
859 static int hf_h225_locationConfirm_callSignalAddress = -1;  /* TransportAddress */
860 static int hf_h225_locationConfirm_rasAddress = -1;  /* TransportAddress */
861 static int hf_h225_locationRejectReason = -1;     /* LocationRejectReason */
862 static int hf_h225_notRegistered = -1;            /* NULL */
863 static int hf_h225_routeCalltoSCN = -1;           /* SEQUENCE_OF_PartyNumber */
864 static int hf_h225_routeCalltoSCN_item = -1;      /* PartyNumber */
865 static int hf_h225_disengageReason = -1;          /* DisengageReason */
866 static int hf_h225_terminationCause = -1;         /* CallTerminationCause */
867 static int hf_h225_forcedDrop = -1;               /* NULL */
868 static int hf_h225_normalDrop = -1;               /* NULL */
869 static int hf_h225_disengageRejectReason = -1;    /* DisengageRejectReason */
870 static int hf_h225_requestToDropOther = -1;       /* NULL */
871 static int hf_h225_usageInfoRequested = -1;       /* RasUsageInfoTypes */
872 static int hf_h225_segmentedResponseSupported = -1;  /* NULL */
873 static int hf_h225_nextSegmentRequested = -1;     /* INTEGER_0_65535 */
874 static int hf_h225_capacityInfoRequested = -1;    /* NULL */
875 static int hf_h225_infoRequestResponse_rasAddress = -1;  /* TransportAddress */
876 static int hf_h225_perCallInfo = -1;              /* T_perCallInfo */
877 static int hf_h225_perCallInfo_item = -1;         /* T_perCallInfo_item */
878 static int hf_h225_originator = -1;               /* BOOLEAN */
879 static int hf_h225_audio = -1;                    /* SEQUENCE_OF_RTPSession */
880 static int hf_h225_audio_item = -1;               /* RTPSession */
881 static int hf_h225_video = -1;                    /* SEQUENCE_OF_RTPSession */
882 static int hf_h225_video_item = -1;               /* RTPSession */
883 static int hf_h225_data = -1;                     /* SEQUENCE_OF_TransportChannelInfo */
884 static int hf_h225_data_item = -1;                /* TransportChannelInfo */
885 static int hf_h225_h245 = -1;                     /* TransportChannelInfo */
886 static int hf_h225_callSignalling = -1;           /* TransportChannelInfo */
887 static int hf_h225_substituteConfIDs = -1;        /* SEQUENCE_OF_ConferenceIdentifier */
888 static int hf_h225_substituteConfIDs_item = -1;   /* ConferenceIdentifier */
889 static int hf_h225_pdu = -1;                      /* T_pdu */
890 static int hf_h225_pdu_item = -1;                 /* T_pdu_item */
891 static int hf_h225_h323pdu = -1;                  /* H323_UU_PDU */
892 static int hf_h225_sent = -1;                     /* BOOLEAN */
893 static int hf_h225_needResponse = -1;             /* BOOLEAN */
894 static int hf_h225_irrStatus = -1;                /* InfoRequestResponseStatus */
895 static int hf_h225_unsolicited = -1;              /* BOOLEAN */
896 static int hf_h225_complete = -1;                 /* NULL */
897 static int hf_h225_incomplete = -1;               /* NULL */
898 static int hf_h225_segment = -1;                  /* INTEGER_0_65535 */
899 static int hf_h225_invalidCall = -1;              /* NULL */
900 static int hf_h225_nakReason = -1;                /* InfoRequestNakReason */
901 static int hf_h225_messageNotUnderstood = -1;     /* OCTET_STRING */
902 static int hf_h225_delay = -1;                    /* INTEGER_1_65535 */
903 static int hf_h225_protocols = -1;                /* SEQUENCE_OF_SupportedProtocols */
904 static int hf_h225_protocols_item = -1;           /* SupportedProtocols */
905 static int hf_h225_almostOutOfResources = -1;     /* BOOLEAN */
906 static int hf_h225_callSpecific = -1;             /* T_callSpecific */
907 static int hf_h225_result = -1;                   /* T_result */
908 static int hf_h225_started = -1;                  /* NULL */
909 static int hf_h225_failed = -1;                   /* NULL */
910 static int hf_h225_stopped = -1;                  /* NULL */
911 static int hf_h225_notAvailable = -1;             /* NULL */
912
913 /*--- End of included file: packet-h225-hf.c ---*/
914 #line 131 "../../asn1/h225/packet-h225-template.c"
915
916 /* Initialize the subtree pointers */
917 static gint ett_h225 = -1;
918
919 /*--- Included file: packet-h225-ett.c ---*/
920 #line 1 "../../asn1/h225/packet-h225-ett.c"
921 static gint ett_h225_H323_UserInformation = -1;
922 static gint ett_h225_T_user_data = -1;
923 static gint ett_h225_H323_UU_PDU = -1;
924 static gint ett_h225_T_h323_message_body = -1;
925 static gint ett_h225_T_h4501SupplementaryService = -1;
926 static gint ett_h225_H245Control = -1;
927 static gint ett_h225_SEQUENCE_OF_NonStandardParameter = -1;
928 static gint ett_h225_T_tunnelledSignallingMessage = -1;
929 static gint ett_h225_T_messageContent = -1;
930 static gint ett_h225_SEQUENCE_OF_GenericData = -1;
931 static gint ett_h225_StimulusControl = -1;
932 static gint ett_h225_Alerting_UUIE = -1;
933 static gint ett_h225_SEQUENCE_OF_ClearToken = -1;
934 static gint ett_h225_SEQUENCE_OF_CryptoH323Token = -1;
935 static gint ett_h225_SEQUENCE_OF_AliasAddress = -1;
936 static gint ett_h225_SEQUENCE_OF_ServiceControlSession = -1;
937 static gint ett_h225_SEQUENCE_OF_DisplayName = -1;
938 static gint ett_h225_CallProceeding_UUIE = -1;
939 static gint ett_h225_Connect_UUIE = -1;
940 static gint ett_h225_Information_UUIE = -1;
941 static gint ett_h225_ReleaseComplete_UUIE = -1;
942 static gint ett_h225_ReleaseCompleteReason = -1;
943 static gint ett_h225_Setup_UUIE = -1;
944 static gint ett_h225_SEQUENCE_OF_CallReferenceValue = -1;
945 static gint ett_h225_T_conferenceGoal = -1;
946 static gint ett_h225_SEQUENCE_OF_H245Security = -1;
947 static gint ett_h225_FastStart = -1;
948 static gint ett_h225_T_connectionParameters = -1;
949 static gint ett_h225_Language = -1;
950 static gint ett_h225_SEQUENCE_OF_SupportedProtocols = -1;
951 static gint ett_h225_SEQUENCE_OF_FeatureDescriptor = -1;
952 static gint ett_h225_ParallelH245Control = -1;
953 static gint ett_h225_SEQUENCE_OF_ExtendedAliasAddress = -1;
954 static gint ett_h225_ScnConnectionType = -1;
955 static gint ett_h225_ScnConnectionAggregation = -1;
956 static gint ett_h225_PresentationIndicator = -1;
957 static gint ett_h225_Facility_UUIE = -1;
958 static gint ett_h225_SEQUENCE_OF_ConferenceList = -1;
959 static gint ett_h225_ConferenceList = -1;
960 static gint ett_h225_FacilityReason = -1;
961 static gint ett_h225_Progress_UUIE = -1;
962 static gint ett_h225_TransportAddress = -1;
963 static gint ett_h225_H245TransportAddress = -1;
964 static gint ett_h225_T_h245IpAddress = -1;
965 static gint ett_h225_T_h245IpSourceRoute = -1;
966 static gint ett_h225_T_h245Route = -1;
967 static gint ett_h225_T_h245Routing = -1;
968 static gint ett_h225_T_h245IpxAddress = -1;
969 static gint ett_h225_T_h245Ip6Address = -1;
970 static gint ett_h225_T_ipAddress = -1;
971 static gint ett_h225_T_ipSourceRoute = -1;
972 static gint ett_h225_T_route = -1;
973 static gint ett_h225_T_routing = -1;
974 static gint ett_h225_T_ipxAddress = -1;
975 static gint ett_h225_T_ip6Address = -1;
976 static gint ett_h225_Status_UUIE = -1;
977 static gint ett_h225_StatusInquiry_UUIE = -1;
978 static gint ett_h225_SetupAcknowledge_UUIE = -1;
979 static gint ett_h225_Notify_UUIE = -1;
980 static gint ett_h225_EndpointType = -1;
981 static gint ett_h225_SEQUENCE_OF_TunnelledProtocol = -1;
982 static gint ett_h225_GatewayInfo = -1;
983 static gint ett_h225_SupportedProtocols = -1;
984 static gint ett_h225_H310Caps = -1;
985 static gint ett_h225_SEQUENCE_OF_DataRate = -1;
986 static gint ett_h225_SEQUENCE_OF_SupportedPrefix = -1;
987 static gint ett_h225_H320Caps = -1;
988 static gint ett_h225_H321Caps = -1;
989 static gint ett_h225_H322Caps = -1;
990 static gint ett_h225_H323Caps = -1;
991 static gint ett_h225_H324Caps = -1;
992 static gint ett_h225_VoiceCaps = -1;
993 static gint ett_h225_T120OnlyCaps = -1;
994 static gint ett_h225_NonStandardProtocol = -1;
995 static gint ett_h225_T38FaxAnnexbOnlyCaps = -1;
996 static gint ett_h225_SIPCaps = -1;
997 static gint ett_h225_McuInfo = -1;
998 static gint ett_h225_TerminalInfo = -1;
999 static gint ett_h225_GatekeeperInfo = -1;
1000 static gint ett_h225_VendorIdentifier = -1;
1001 static gint ett_h225_H221NonStandard = -1;
1002 static gint ett_h225_TunnelledProtocol = -1;
1003 static gint ett_h225_TunnelledProtocol_id = -1;
1004 static gint ett_h225_TunnelledProtocolAlternateIdentifier = -1;
1005 static gint ett_h225_NonStandardParameter = -1;
1006 static gint ett_h225_NonStandardIdentifier = -1;
1007 static gint ett_h225_AliasAddress = -1;
1008 static gint ett_h225_AddressPattern = -1;
1009 static gint ett_h225_T_range = -1;
1010 static gint ett_h225_PartyNumber = -1;
1011 static gint ett_h225_PublicPartyNumber = -1;
1012 static gint ett_h225_PrivatePartyNumber = -1;
1013 static gint ett_h225_DisplayName = -1;
1014 static gint ett_h225_PublicTypeOfNumber = -1;
1015 static gint ett_h225_PrivateTypeOfNumber = -1;
1016 static gint ett_h225_MobileUIM = -1;
1017 static gint ett_h225_ANSI_41_UIM = -1;
1018 static gint ett_h225_T_system_id = -1;
1019 static gint ett_h225_GSM_UIM = -1;
1020 static gint ett_h225_IsupNumber = -1;
1021 static gint ett_h225_IsupPublicPartyNumber = -1;
1022 static gint ett_h225_IsupPrivatePartyNumber = -1;
1023 static gint ett_h225_NatureOfAddress = -1;
1024 static gint ett_h225_ExtendedAliasAddress = -1;
1025 static gint ett_h225_Endpoint = -1;
1026 static gint ett_h225_SEQUENCE_OF_TransportAddress = -1;
1027 static gint ett_h225_AlternateTransportAddresses = -1;
1028 static gint ett_h225_UseSpecifiedTransport = -1;
1029 static gint ett_h225_AlternateGK = -1;
1030 static gint ett_h225_AltGKInfo = -1;
1031 static gint ett_h225_SEQUENCE_OF_AlternateGK = -1;
1032 static gint ett_h225_SecurityServiceMode = -1;
1033 static gint ett_h225_SecurityCapabilities = -1;
1034 static gint ett_h225_SecurityErrors = -1;
1035 static gint ett_h225_SecurityErrors2 = -1;
1036 static gint ett_h225_H245Security = -1;
1037 static gint ett_h225_QseriesOptions = -1;
1038 static gint ett_h225_Q954Details = -1;
1039 static gint ett_h225_CallIdentifier = -1;
1040 static gint ett_h225_EncryptIntAlg = -1;
1041 static gint ett_h225_NonIsoIntegrityMechanism = -1;
1042 static gint ett_h225_IntegrityMechanism = -1;
1043 static gint ett_h225_ICV = -1;
1044 static gint ett_h225_CryptoH323Token = -1;
1045 static gint ett_h225_T_cryptoEPPwdHash = -1;
1046 static gint ett_h225_T_cryptoGKPwdHash = -1;
1047 static gint ett_h225_DataRate = -1;
1048 static gint ett_h225_CallLinkage = -1;
1049 static gint ett_h225_SupportedPrefix = -1;
1050 static gint ett_h225_CapacityReportingCapability = -1;
1051 static gint ett_h225_CapacityReportingSpecification = -1;
1052 static gint ett_h225_CapacityReportingSpecification_when = -1;
1053 static gint ett_h225_CallCapacity = -1;
1054 static gint ett_h225_CallCapacityInfo = -1;
1055 static gint ett_h225_SEQUENCE_OF_CallsAvailable = -1;
1056 static gint ett_h225_CallsAvailable = -1;
1057 static gint ett_h225_CircuitInfo = -1;
1058 static gint ett_h225_CircuitIdentifier = -1;
1059 static gint ett_h225_CicInfo = -1;
1060 static gint ett_h225_T_cic_2_4 = -1;
1061 static gint ett_h225_GroupID = -1;
1062 static gint ett_h225_T_member = -1;
1063 static gint ett_h225_CarrierInfo = -1;
1064 static gint ett_h225_ServiceControlDescriptor = -1;
1065 static gint ett_h225_ServiceControlSession = -1;
1066 static gint ett_h225_ServiceControlSession_reason = -1;
1067 static gint ett_h225_RasUsageInfoTypes = -1;
1068 static gint ett_h225_RasUsageSpecification = -1;
1069 static gint ett_h225_RasUsageSpecification_when = -1;
1070 static gint ett_h225_RasUsageSpecificationcallStartingPoint = -1;
1071 static gint ett_h225_RasUsageInformation = -1;
1072 static gint ett_h225_CallTerminationCause = -1;
1073 static gint ett_h225_BandwidthDetails = -1;
1074 static gint ett_h225_CallCreditCapability = -1;
1075 static gint ett_h225_CallCreditServiceControl = -1;
1076 static gint ett_h225_T_billingMode = -1;
1077 static gint ett_h225_CallCreditServiceControl_callStartingPoint = -1;
1078 static gint ett_h225_GenericData = -1;
1079 static gint ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter = -1;
1080 static gint ett_h225_GenericIdentifier = -1;
1081 static gint ett_h225_EnumeratedParameter = -1;
1082 static gint ett_h225_Content = -1;
1083 static gint ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData = -1;
1084 static gint ett_h225_FeatureSet = -1;
1085 static gint ett_h225_TransportChannelInfo = -1;
1086 static gint ett_h225_RTPSession = -1;
1087 static gint ett_h225_T_associatedSessionIds = -1;
1088 static gint ett_h225_RehomingModel = -1;
1089 static gint ett_h225_RasMessage = -1;
1090 static gint ett_h225_SEQUENCE_OF_AdmissionConfirm = -1;
1091 static gint ett_h225_GatekeeperRequest = -1;
1092 static gint ett_h225_SEQUENCE_OF_Endpoint = -1;
1093 static gint ett_h225_SEQUENCE_OF_AuthenticationMechanism = -1;
1094 static gint ett_h225_T_algorithmOIDs = -1;
1095 static gint ett_h225_SEQUENCE_OF_IntegrityMechanism = -1;
1096 static gint ett_h225_GatekeeperConfirm = -1;
1097 static gint ett_h225_GatekeeperReject = -1;
1098 static gint ett_h225_GatekeeperRejectReason = -1;
1099 static gint ett_h225_RegistrationRequest = -1;
1100 static gint ett_h225_SEQUENCE_OF_AddressPattern = -1;
1101 static gint ett_h225_SEQUENCE_OF_H248PackagesDescriptor = -1;
1102 static gint ett_h225_RegistrationConfirm = -1;
1103 static gint ett_h225_T_preGrantedARQ = -1;
1104 static gint ett_h225_SEQUENCE_OF_RasUsageSpecification = -1;
1105 static gint ett_h225_RegistrationReject = -1;
1106 static gint ett_h225_RegistrationRejectReason = -1;
1107 static gint ett_h225_T_invalidTerminalAliases = -1;
1108 static gint ett_h225_UnregistrationRequest = -1;
1109 static gint ett_h225_UnregRequestReason = -1;
1110 static gint ett_h225_UnregistrationConfirm = -1;
1111 static gint ett_h225_UnregistrationReject = -1;
1112 static gint ett_h225_UnregRejectReason = -1;
1113 static gint ett_h225_AdmissionRequest = -1;
1114 static gint ett_h225_DestinationInfo = -1;
1115 static gint ett_h225_CallType = -1;
1116 static gint ett_h225_CallModel = -1;
1117 static gint ett_h225_TransportQOS = -1;
1118 static gint ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability = -1;
1119 static gint ett_h225_AdmissionConfirm = -1;
1120 static gint ett_h225_UUIEsRequested = -1;
1121 static gint ett_h225_AdmissionReject = -1;
1122 static gint ett_h225_AdmissionRejectReason = -1;
1123 static gint ett_h225_SEQUENCE_OF_PartyNumber = -1;
1124 static gint ett_h225_BandwidthRequest = -1;
1125 static gint ett_h225_SEQUENCE_OF_BandwidthDetails = -1;
1126 static gint ett_h225_BandwidthConfirm = -1;
1127 static gint ett_h225_BandwidthReject = -1;
1128 static gint ett_h225_BandRejectReason = -1;
1129 static gint ett_h225_LocationRequest = -1;
1130 static gint ett_h225_LocationConfirm = -1;
1131 static gint ett_h225_LocationReject = -1;
1132 static gint ett_h225_LocationRejectReason = -1;
1133 static gint ett_h225_DisengageRequest = -1;
1134 static gint ett_h225_DisengageReason = -1;
1135 static gint ett_h225_DisengageConfirm = -1;
1136 static gint ett_h225_DisengageReject = -1;
1137 static gint ett_h225_DisengageRejectReason = -1;
1138 static gint ett_h225_InfoRequest = -1;
1139 static gint ett_h225_InfoRequestResponse = -1;
1140 static gint ett_h225_T_perCallInfo = -1;
1141 static gint ett_h225_T_perCallInfo_item = -1;
1142 static gint ett_h225_SEQUENCE_OF_RTPSession = -1;
1143 static gint ett_h225_SEQUENCE_OF_TransportChannelInfo = -1;
1144 static gint ett_h225_SEQUENCE_OF_ConferenceIdentifier = -1;
1145 static gint ett_h225_T_pdu = -1;
1146 static gint ett_h225_T_pdu_item = -1;
1147 static gint ett_h225_InfoRequestResponseStatus = -1;
1148 static gint ett_h225_InfoRequestAck = -1;
1149 static gint ett_h225_InfoRequestNak = -1;
1150 static gint ett_h225_InfoRequestNakReason = -1;
1151 static gint ett_h225_NonStandardMessage = -1;
1152 static gint ett_h225_UnknownMessageResponse = -1;
1153 static gint ett_h225_RequestInProgress = -1;
1154 static gint ett_h225_ResourcesAvailableIndicate = -1;
1155 static gint ett_h225_ResourcesAvailableConfirm = -1;
1156 static gint ett_h225_ServiceControlIndication = -1;
1157 static gint ett_h225_T_callSpecific = -1;
1158 static gint ett_h225_ServiceControlResponse = -1;
1159 static gint ett_h225_T_result = -1;
1160
1161 /*--- End of included file: packet-h225-ett.c ---*/
1162 #line 135 "../../asn1/h225/packet-h225-template.c"
1163
1164 /* Preferences */
1165 static guint h225_tls_port = TLS_PORT_CS;
1166 static gboolean h225_reassembly = TRUE;
1167 static gboolean h225_h245_in_tree = TRUE;
1168 static gboolean h225_tp_in_tree = TRUE;
1169
1170 /* Global variables */
1171 static guint32 ipv4_address;
1172 static struct e_in6_addr ipv6_address;
1173 static struct e_in6_addr ipv6_address_zeros = {{0}};
1174 static guint32 ip_port;
1175 static gboolean contains_faststart = FALSE;
1176 static e_guid_t *call_id_guid;
1177
1178 /* NonStandardParameter */
1179 static const char *nsiOID;
1180 static guint32 h221NonStandard;
1181 static guint32 t35CountryCode;
1182 static guint32 t35Extension;
1183 static guint32 manufacturerCode;
1184
1185 /* TunnelledProtocol */
1186 static const char *tpOID;
1187
1188 static const value_string ras_message_category[] = {
1189   {  0, "Gatekeeper    "},
1190   {  1, "Registration  "},
1191   {  2, "UnRegistration"},
1192   {  3, "Admission     "},
1193   {  4, "Bandwidth     "},
1194   {  5, "Disengage     "},
1195   {  6, "Location      "},
1196   {  0, NULL }
1197 };
1198
1199 typedef enum _ras_type {
1200   RAS_REQUEST,
1201   RAS_CONFIRM,
1202   RAS_REJECT,
1203   RAS_OTHER
1204 }ras_type;
1205
1206 typedef enum _ras_category {
1207   RAS_GATEKEEPER,
1208   RAS_REGISTRATION,
1209   RAS_UNREGISTRATION,
1210   RAS_ADMISSION,
1211   RAS_BANDWIDTH,
1212   RAS_DISENGAGE,
1213   RAS_LOCATION,
1214   RAS_OTHERS
1215 }ras_category;
1216
1217 #define NUM_RAS_STATS 7
1218
1219 static gboolean
1220 h225rassrt_packet(void *phs, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *phi)
1221 {
1222   rtd_data_t* rtd_data = (rtd_data_t*)phs;
1223   rtd_stat_table* rs = &rtd_data->stat_table;
1224   const h225_packet_info *pi=(const h225_packet_info *)phi;
1225
1226   ras_type rasmsg_type = RAS_OTHER;
1227   ras_category rascategory = RAS_OTHERS;
1228
1229   if (pi->msg_type != H225_RAS || pi->msg_tag == -1) {
1230     /* No RAS Message or uninitialized msg_tag -> return */
1231     return FALSE;
1232   }
1233
1234   if (pi->msg_tag < 21) {
1235     /* */
1236     rascategory = (ras_category)(pi->msg_tag / 3);
1237     rasmsg_type = (ras_type)(pi->msg_tag % 3);
1238   }
1239   else {
1240     /* No SRT yet (ToDo) */
1241     return FALSE;
1242   }
1243
1244   switch(rasmsg_type) {
1245
1246   case RAS_REQUEST:
1247     if(pi->is_duplicate){
1248       rs->time_stats[rascategory].req_dup_num++;
1249     }
1250     else {
1251       rs->time_stats[rascategory].open_req_num++;
1252     }
1253     break;
1254
1255   case RAS_CONFIRM:
1256     /* no break - delay stats are identical for Confirm and Reject */
1257   case RAS_REJECT:
1258     if(pi->is_duplicate){
1259       /* Duplicate is ignored */
1260       rs->time_stats[rascategory].rsp_dup_num++;
1261     }
1262     else if (!pi->request_available) {
1263       /* no request was seen, ignore response */
1264       rs->time_stats[rascategory].disc_rsp_num++;
1265     }
1266     else {
1267       rs->time_stats[rascategory].open_req_num--;
1268       time_stat_update(&(rs->time_stats[rascategory].rtd[0]),&(pi->delta_time), pinfo);
1269     }
1270     break;
1271
1272   default:
1273     return FALSE;
1274   }
1275   return TRUE;
1276 }
1277
1278
1279 /*--- Included file: packet-h225-fn.c ---*/
1280 #line 1 "../../asn1/h225/packet-h225-fn.c"
1281 /*--- Cyclic dependencies ---*/
1282
1283 /* EnumeratedParameter -> Content -> Content/compound -> EnumeratedParameter */
1284 static int dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1285
1286 /* GenericData -> GenericData/parameters -> EnumeratedParameter -> Content -> Content/nested -> GenericData */
1287 int dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1288
1289
1290
1291
1292 static int
1293 dissect_h225_ProtocolIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1294   offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
1295
1296   return offset;
1297 }
1298
1299
1300
1301 static int
1302 dissect_h225_T_h245Ip(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1303 #line 322 "../../asn1/h225/h225.cnf"
1304   tvbuff_t *value_tvb;
1305
1306   ipv4_address = 0;
1307   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1308                                        4, 4, FALSE, &value_tvb);
1309
1310   if (value_tvb)
1311     ipv4_address = tvb_get_ipv4(value_tvb, 0);
1312
1313
1314   return offset;
1315 }
1316
1317
1318
1319 static int
1320 dissect_h225_T_h245IpPort(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1321   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1322                                                             0U, 65535U, &ip_port, FALSE);
1323
1324   return offset;
1325 }
1326
1327
1328 static const per_sequence_t T_h245IpAddress_sequence[] = {
1329   { &hf_h225_h245Ip         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip },
1330   { &hf_h225_h245IpPort     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h245IpPort },
1331   { NULL, 0, 0, NULL }
1332 };
1333
1334 static int
1335 dissect_h225_T_h245IpAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1336   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1337                                    ett_h225_T_h245IpAddress, T_h245IpAddress_sequence);
1338
1339   return offset;
1340 }
1341
1342
1343
1344 static int
1345 dissect_h225_OCTET_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1346   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1347                                        4, 4, FALSE, NULL);
1348
1349   return offset;
1350 }
1351
1352
1353
1354 static int
1355 dissect_h225_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1357                                                             0U, 65535U, NULL, FALSE);
1358
1359   return offset;
1360 }
1361
1362
1363 static const per_sequence_t T_h245Route_sequence_of[1] = {
1364   { &hf_h225_h245Route_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1365 };
1366
1367 static int
1368 dissect_h225_T_h245Route(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1369   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1370                                       ett_h225_T_h245Route, T_h245Route_sequence_of);
1371
1372   return offset;
1373 }
1374
1375
1376
1377 static int
1378 dissect_h225_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1379   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1380
1381   return offset;
1382 }
1383
1384
1385 static const value_string h225_T_h245Routing_vals[] = {
1386   {   0, "strict" },
1387   {   1, "loose" },
1388   { 0, NULL }
1389 };
1390
1391 static const per_choice_t T_h245Routing_choice[] = {
1392   {   0, &hf_h225_strict         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1393   {   1, &hf_h225_loose          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1394   { 0, NULL, 0, NULL }
1395 };
1396
1397 static int
1398 dissect_h225_T_h245Routing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1399   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1400                                  ett_h225_T_h245Routing, T_h245Routing_choice,
1401                                  NULL);
1402
1403   return offset;
1404 }
1405
1406
1407 static const per_sequence_t T_h245IpSourceRoute_sequence[] = {
1408   { &hf_h225_ip             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1409   { &hf_h225_port           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1410   { &hf_h225_h245Route      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Route },
1411   { &hf_h225_h245Routing    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Routing },
1412   { NULL, 0, 0, NULL }
1413 };
1414
1415 static int
1416 dissect_h225_T_h245IpSourceRoute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1417   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1418                                    ett_h225_T_h245IpSourceRoute, T_h245IpSourceRoute_sequence);
1419
1420   return offset;
1421 }
1422
1423
1424
1425 static int
1426 dissect_h225_OCTET_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1427   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1428                                        6, 6, FALSE, NULL);
1429
1430   return offset;
1431 }
1432
1433
1434
1435 static int
1436 dissect_h225_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1437   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1438                                        2, 2, FALSE, NULL);
1439
1440   return offset;
1441 }
1442
1443
1444 static const per_sequence_t T_h245IpxAddress_sequence[] = {
1445   { &hf_h225_node           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1446   { &hf_h225_netnum         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1447   { &hf_h225_h245IpxPort    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1448   { NULL, 0, 0, NULL }
1449 };
1450
1451 static int
1452 dissect_h225_T_h245IpxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1453   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1454                                    ett_h225_T_h245IpxAddress, T_h245IpxAddress_sequence);
1455
1456   return offset;
1457 }
1458
1459
1460
1461 static int
1462 dissect_h225_T_h245Ip6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1463 #line 331 "../../asn1/h225/h225.cnf"
1464   tvbuff_t *value_tvb;
1465
1466   ipv6_address = ipv6_address_zeros;
1467   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1468                                        16, 16, FALSE, &value_tvb);
1469
1470   if (value_tvb)
1471     tvb_get_ipv6(value_tvb, 0, &ipv6_address);
1472
1473
1474   return offset;
1475 }
1476
1477
1478
1479 static int
1480 dissect_h225_T_port(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1481   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1482                                                             0U, 65535U, &ip_port, FALSE);
1483
1484   return offset;
1485 }
1486
1487
1488 static const per_sequence_t T_h245Ip6Address_sequence[] = {
1489   { &hf_h225_h245Ip6        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h245Ip6 },
1490   { &hf_h225_port_01        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_port },
1491   { NULL, 0, 0, NULL }
1492 };
1493
1494 static int
1495 dissect_h225_T_h245Ip6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1496   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1497                                    ett_h225_T_h245Ip6Address, T_h245Ip6Address_sequence);
1498
1499   return offset;
1500 }
1501
1502
1503
1504 static int
1505 dissect_h225_OCTET_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1506   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1507                                        16, 16, FALSE, NULL);
1508
1509   return offset;
1510 }
1511
1512
1513
1514 static int
1515 dissect_h225_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_) {
1516   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1517                                        1, 20, FALSE, NULL);
1518
1519   return offset;
1520 }
1521
1522
1523
1524 static int
1525 dissect_h225_T_nsiOID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1526   offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &nsiOID);
1527
1528   return offset;
1529 }
1530
1531
1532
1533 static int
1534 dissect_h225_T_t35CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1535   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1536                                                             0U, 255U, &t35CountryCode, FALSE);
1537
1538   return offset;
1539 }
1540
1541
1542
1543 static int
1544 dissect_h225_T_t35Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1545   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1546                                                             0U, 255U, &t35Extension, FALSE);
1547
1548   return offset;
1549 }
1550
1551
1552
1553 static int
1554 dissect_h225_T_manufacturerCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1555   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1556                                                             0U, 65535U, &manufacturerCode, FALSE);
1557
1558   return offset;
1559 }
1560
1561
1562 static const per_sequence_t H221NonStandard_sequence[] = {
1563   { &hf_h225_t35CountryCode , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_t35CountryCode },
1564   { &hf_h225_t35Extension   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_t35Extension },
1565   { &hf_h225_manufacturerCode, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_manufacturerCode },
1566   { NULL, 0, 0, NULL }
1567 };
1568
1569 static int
1570 dissect_h225_H221NonStandard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1571 #line 627 "../../asn1/h225/h225.cnf"
1572   t35CountryCode = 0;
1573   t35Extension = 0;
1574   manufacturerCode = 0;
1575
1576   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1577                                    ett_h225_H221NonStandard, H221NonStandard_sequence);
1578
1579 #line 631 "../../asn1/h225/h225.cnf"
1580   h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
1581   proto_tree_add_uint(tree, hf_h221Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);
1582
1583   return offset;
1584 }
1585
1586
1587 static const value_string h225_NonStandardIdentifier_vals[] = {
1588   {   0, "object" },
1589   {   1, "h221NonStandard" },
1590   { 0, NULL }
1591 };
1592
1593 static const per_choice_t NonStandardIdentifier_choice[] = {
1594   {   0, &hf_h225_nsiOID         , ASN1_EXTENSION_ROOT    , dissect_h225_T_nsiOID },
1595   {   1, &hf_h225_h221NonStandard, ASN1_EXTENSION_ROOT    , dissect_h225_H221NonStandard },
1596   { 0, NULL, 0, NULL }
1597 };
1598
1599 static int
1600 dissect_h225_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1601 #line 608 "../../asn1/h225/h225.cnf"
1602   gint32 value;
1603
1604   nsiOID = "";
1605   h221NonStandard = 0;
1606
1607   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1608                                  ett_h225_NonStandardIdentifier, NonStandardIdentifier_choice,
1609                                  &value);
1610
1611   switch (value) {
1612     case 0 :  /* object */
1613       nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, nsiOID);
1614       break;
1615     case 1 :  /* h221NonStandard */
1616       nsp_handle = dissector_get_uint_handle(nsp_h221_dissector_table, h221NonStandard);
1617       break;
1618     default :
1619       nsp_handle = NULL;
1620     }
1621
1622
1623   return offset;
1624 }
1625
1626
1627
1628 static int
1629 dissect_h225_T_nsp_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1630 #line 642 "../../asn1/h225/h225.cnf"
1631   tvbuff_t *next_tvb = NULL;
1632
1633   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1634                                        NO_BOUND, NO_BOUND, FALSE, &next_tvb);
1635
1636   if (next_tvb && tvb_reported_length(next_tvb)) {
1637     call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, actx->pinfo, tree);
1638   }
1639
1640
1641   return offset;
1642 }
1643
1644
1645 static const per_sequence_t NonStandardParameter_sequence[] = {
1646   { &hf_h225_nonStandardIdentifier, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardIdentifier },
1647   { &hf_h225_nsp_data       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_nsp_data },
1648   { NULL, 0, 0, NULL }
1649 };
1650
1651 int
1652 dissect_h225_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1653 #line 640 "../../asn1/h225/h225.cnf"
1654   nsp_handle = NULL;
1655
1656   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1657                                    ett_h225_NonStandardParameter, NonStandardParameter_sequence);
1658
1659   return offset;
1660 }
1661
1662
1663 static const value_string h225_H245TransportAddress_vals[] = {
1664   {   0, "ipAddress" },
1665   {   1, "ipSourceRoute" },
1666   {   2, "ipxAddress" },
1667   {   3, "ip6Address" },
1668   {   4, "netBios" },
1669   {   5, "nsap" },
1670   {   6, "nonStandardAddress" },
1671   { 0, NULL }
1672 };
1673
1674 static const per_choice_t H245TransportAddress_choice[] = {
1675   {   0, &hf_h225_h245IpAddress  , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpAddress },
1676   {   1, &hf_h225_h245IpSourceRoute, ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpSourceRoute },
1677   {   2, &hf_h225_h245IpxAddress , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245IpxAddress },
1678   {   3, &hf_h225_h245Ip6Address , ASN1_EXTENSION_ROOT    , dissect_h225_T_h245Ip6Address },
1679   {   4, &hf_h225_netBios        , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_16 },
1680   {   5, &hf_h225_nsap           , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_1_20 },
1681   {   6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
1682   { 0, NULL, 0, NULL }
1683 };
1684
1685 static int
1686 dissect_h225_H245TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1687 #line 443 "../../asn1/h225/h225.cnf"
1688   ipv4_address=0;
1689   ipv6_address = ipv6_address_zeros;
1690   ip_port=0;
1691
1692
1693   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1694                                  ett_h225_H245TransportAddress, H245TransportAddress_choice,
1695                                  NULL);
1696
1697 #line 450 "../../asn1/h225/h225.cnf"
1698   /* we need this info for TAPing */
1699   h225_pi->is_h245 = TRUE;
1700   h225_pi->h245_address = ipv4_address;
1701   h225_pi->h245_port = ip_port;
1702
1703   if ( !actx->pinfo->fd->flags.visited && h245_handle && ip_port!=0 ) {
1704     address src_addr;
1705     conversation_t *conv=NULL;
1706
1707     if (ipv4_address!=0) {
1708       set_address(&src_addr, AT_IPv4, 4, &ipv4_address);
1709     } else if (memcmp(ipv6_address.bytes, ipv6_address_zeros.bytes, sizeof(ipv6_address.bytes))!=0) {
1710       set_address(&src_addr, AT_IPv6, 16, ipv6_address.bytes);
1711     } else {
1712       return offset;
1713     }
1714
1715     conv=find_conversation(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR_B|NO_PORT_B);
1716     if(!conv){
1717       conv=conversation_new(actx->pinfo->fd->num, &src_addr, &src_addr, PT_TCP, ip_port, ip_port, NO_ADDR2|NO_PORT2);
1718       conversation_set_dissector(conv, h245_handle);
1719     }
1720   }
1721
1722   return offset;
1723 }
1724
1725
1726
1727 static int
1728 dissect_h225_DialedDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1729 #line 304 "../../asn1/h225/h225.cnf"
1730   tvbuff_t *value_tvb = NULL;
1731   guint len = 0;
1732
1733   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1734                                                       1, 128, FALSE, "0123456789#*,", 13,
1735                                                       &value_tvb);
1736
1737   if (h225_pi && h225_pi->is_destinationInfo == TRUE) {
1738     if (value_tvb) {
1739       len = tvb_reported_length(value_tvb);
1740       /* XXX - should this be allocated as an ephemeral string? */
1741       if (len > sizeof h225_pi->dialedDigits - 1)
1742         len = sizeof h225_pi->dialedDigits - 1;
1743       tvb_memcpy(value_tvb, (guint8*)h225_pi->dialedDigits, 0, len);
1744     }
1745     h225_pi->dialedDigits[len] = '\0';
1746     h225_pi->is_destinationInfo = FALSE;
1747   }
1748
1749
1750   return offset;
1751 }
1752
1753
1754
1755 static int
1756 dissect_h225_BMPString_SIZE_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1757   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
1758                                           1, 256, FALSE);
1759
1760   return offset;
1761 }
1762
1763
1764
1765 static int
1766 dissect_h225_IA5String_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1767   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1768                                           1, 512, FALSE);
1769
1770   return offset;
1771 }
1772
1773
1774
1775 static int
1776 dissect_h225_IpV4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1777   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1778                                        4, 4, FALSE, NULL);
1779
1780   return offset;
1781 }
1782
1783
1784 static const per_sequence_t T_ipAddress_sequence[] = {
1785   { &hf_h225_ipV4           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IpV4 },
1786   { &hf_h225_ipV4_port      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1787   { NULL, 0, 0, NULL }
1788 };
1789
1790 static int
1791 dissect_h225_T_ipAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1792   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1793                                    ett_h225_T_ipAddress, T_ipAddress_sequence);
1794
1795   return offset;
1796 }
1797
1798
1799 static const per_sequence_t T_route_sequence_of[1] = {
1800   { &hf_h225_route_item     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1801 };
1802
1803 static int
1804 dissect_h225_T_route(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1805   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1806                                       ett_h225_T_route, T_route_sequence_of);
1807
1808   return offset;
1809 }
1810
1811
1812 static const value_string h225_T_routing_vals[] = {
1813   {   0, "strict" },
1814   {   1, "loose" },
1815   { 0, NULL }
1816 };
1817
1818 static const per_choice_t T_routing_choice[] = {
1819   {   0, &hf_h225_strict         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1820   {   1, &hf_h225_loose          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1821   { 0, NULL, 0, NULL }
1822 };
1823
1824 static int
1825 dissect_h225_T_routing(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1826   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1827                                  ett_h225_T_routing, T_routing_choice,
1828                                  NULL);
1829
1830   return offset;
1831 }
1832
1833
1834 static const per_sequence_t T_ipSourceRoute_sequence[] = {
1835   { &hf_h225_src_route_ipV4 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1836   { &hf_h225_ipV4_src_port  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1837   { &hf_h225_route          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_route },
1838   { &hf_h225_routing        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_routing },
1839   { NULL, 0, 0, NULL }
1840 };
1841
1842 static int
1843 dissect_h225_T_ipSourceRoute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1844   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1845                                    ett_h225_T_ipSourceRoute, T_ipSourceRoute_sequence);
1846
1847   return offset;
1848 }
1849
1850
1851 static const per_sequence_t T_ipxAddress_sequence[] = {
1852   { &hf_h225_node           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_6 },
1853   { &hf_h225_netnum         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_4 },
1854   { &hf_h225_ipx_port       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2 },
1855   { NULL, 0, 0, NULL }
1856 };
1857
1858 static int
1859 dissect_h225_T_ipxAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1860   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1861                                    ett_h225_T_ipxAddress, T_ipxAddress_sequence);
1862
1863   return offset;
1864 }
1865
1866
1867 static const per_sequence_t T_ip6Address_sequence[] = {
1868   { &hf_h225_ipV6           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_16 },
1869   { &hf_h225_ipV6_port      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
1870   { NULL, 0, 0, NULL }
1871 };
1872
1873 static int
1874 dissect_h225_T_ip6Address(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1875   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1876                                    ett_h225_T_ip6Address, T_ip6Address_sequence);
1877
1878   return offset;
1879 }
1880
1881
1882 const value_string h225_TransportAddress_vals[] = {
1883   {   0, "ipAddress" },
1884   {   1, "ipSourceRoute" },
1885   {   2, "ipxAddress" },
1886   {   3, "ip6Address" },
1887   {   4, "netBios" },
1888   {   5, "nsap" },
1889   {   6, "nonStandardAddress" },
1890   { 0, NULL }
1891 };
1892
1893 static const per_choice_t TransportAddress_choice[] = {
1894   {   0, &hf_h225_ipAddress      , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipAddress },
1895   {   1, &hf_h225_ipSourceRoute  , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipSourceRoute },
1896   {   2, &hf_h225_ipxAddress     , ASN1_EXTENSION_ROOT    , dissect_h225_T_ipxAddress },
1897   {   3, &hf_h225_ip6Address     , ASN1_EXTENSION_ROOT    , dissect_h225_T_ip6Address },
1898   {   4, &hf_h225_netBios        , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_16 },
1899   {   5, &hf_h225_nsap           , ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_1_20 },
1900   {   6, &hf_h225_nonStandardAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
1901   { 0, NULL, 0, NULL }
1902 };
1903
1904 int
1905 dissect_h225_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1906   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1907                                  ett_h225_TransportAddress, TransportAddress_choice,
1908                                  NULL);
1909
1910   return offset;
1911 }
1912
1913
1914 const value_string h225_PublicTypeOfNumber_vals[] = {
1915   {   0, "unknown" },
1916   {   1, "internationalNumber" },
1917   {   2, "nationalNumber" },
1918   {   3, "networkSpecificNumber" },
1919   {   4, "subscriberNumber" },
1920   {   5, "abbreviatedNumber" },
1921   { 0, NULL }
1922 };
1923
1924 static const per_choice_t PublicTypeOfNumber_choice[] = {
1925   {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1926   {   1, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1927   {   2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1928   {   3, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1929   {   4, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1930   {   5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1931   { 0, NULL, 0, NULL }
1932 };
1933
1934 int
1935 dissect_h225_PublicTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1936   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1937                                  ett_h225_PublicTypeOfNumber, PublicTypeOfNumber_choice,
1938                                  NULL);
1939
1940   return offset;
1941 }
1942
1943
1944
1945 static int
1946 dissect_h225_NumberDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1947   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
1948                                                       1, 128, FALSE, "0123456789#*,", 13,
1949                                                       NULL);
1950
1951   return offset;
1952 }
1953
1954
1955 static const per_sequence_t PublicPartyNumber_sequence[] = {
1956   { &hf_h225_publicTypeOfNumber, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PublicTypeOfNumber },
1957   { &hf_h225_publicNumberDigits, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
1958   { NULL, 0, 0, NULL }
1959 };
1960
1961 static int
1962 dissect_h225_PublicPartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1963   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1964                                    ett_h225_PublicPartyNumber, PublicPartyNumber_sequence);
1965
1966   return offset;
1967 }
1968
1969
1970 const value_string h225_PrivateTypeOfNumber_vals[] = {
1971   {   0, "unknown" },
1972   {   1, "level2RegionalNumber" },
1973   {   2, "level1RegionalNumber" },
1974   {   3, "pISNSpecificNumber" },
1975   {   4, "localNumber" },
1976   {   5, "abbreviatedNumber" },
1977   { 0, NULL }
1978 };
1979
1980 static const per_choice_t PrivateTypeOfNumber_choice[] = {
1981   {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1982   {   1, &hf_h225_level2RegionalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1983   {   2, &hf_h225_level1RegionalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1984   {   3, &hf_h225_pISNSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1985   {   4, &hf_h225_localNumber    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1986   {   5, &hf_h225_abbreviatedNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
1987   { 0, NULL, 0, NULL }
1988 };
1989
1990 int
1991 dissect_h225_PrivateTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1992   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1993                                  ett_h225_PrivateTypeOfNumber, PrivateTypeOfNumber_choice,
1994                                  NULL);
1995
1996   return offset;
1997 }
1998
1999
2000 static const per_sequence_t PrivatePartyNumber_sequence[] = {
2001   { &hf_h225_privateTypeOfNumber, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
2002   { &hf_h225_privateNumberDigits, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NumberDigits },
2003   { NULL, 0, 0, NULL }
2004 };
2005
2006 static int
2007 dissect_h225_PrivatePartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2008   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2009                                    ett_h225_PrivatePartyNumber, PrivatePartyNumber_sequence);
2010
2011   return offset;
2012 }
2013
2014
2015 const value_string h225_PartyNumber_vals[] = {
2016   {   0, "e164Number" },
2017   {   1, "dataPartyNumber" },
2018   {   2, "telexPartyNumber" },
2019   {   3, "privateNumber" },
2020   {   4, "nationalStandardPartyNumber" },
2021   { 0, NULL }
2022 };
2023
2024 static const per_choice_t PartyNumber_choice[] = {
2025   {   0, &hf_h225_e164Number     , ASN1_EXTENSION_ROOT    , dissect_h225_PublicPartyNumber },
2026   {   1, &hf_h225_dataPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2027   {   2, &hf_h225_telexPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2028   {   3, &hf_h225_privateNumber  , ASN1_EXTENSION_ROOT    , dissect_h225_PrivatePartyNumber },
2029   {   4, &hf_h225_nationalStandardPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NumberDigits },
2030   { 0, NULL, 0, NULL }
2031 };
2032
2033 int
2034 dissect_h225_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2036                                  ett_h225_PartyNumber, PartyNumber_choice,
2037                                  NULL);
2038
2039   return offset;
2040 }
2041
2042
2043
2044 static int
2045 dissect_h225_TBCD_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2046 #line 737 "../../asn1/h225/h225.cnf"
2047   int min_len, max_len;
2048   gboolean has_extension;
2049
2050   get_size_constraint_from_stack(actx, "TBCD_STRING", &min_len, &max_len, &has_extension);
2051
2052   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2053                                                       min_len, max_len, has_extension, "0123456789#*abc", 15,
2054                                                       NULL);
2055
2056   return offset;
2057 }
2058
2059
2060
2061 static int
2062 dissect_h225_TBCD_STRING_SIZE_3_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2063   offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2064                                                 "TBCD_STRING", 3, 16, FALSE);
2065
2066   return offset;
2067 }
2068
2069
2070
2071 static int
2072 dissect_h225_TBCD_STRING_SIZE_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2073   offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2074                                                 "TBCD_STRING", 16, 16, FALSE);
2075
2076   return offset;
2077 }
2078
2079
2080
2081 static int
2082 dissect_h225_TBCD_STRING_SIZE_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2083   offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2084                                                 "TBCD_STRING", 1, 4, FALSE);
2085
2086   return offset;
2087 }
2088
2089
2090 static const value_string h225_T_system_id_vals[] = {
2091   {   0, "sid" },
2092   {   1, "mid" },
2093   { 0, NULL }
2094 };
2095
2096 static const per_choice_t T_system_id_choice[] = {
2097   {   0, &hf_h225_sid            , ASN1_EXTENSION_ROOT    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2098   {   1, &hf_h225_mid            , ASN1_EXTENSION_ROOT    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2099   { 0, NULL, 0, NULL }
2100 };
2101
2102 static int
2103 dissect_h225_T_system_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2104   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2105                                  ett_h225_T_system_id, T_system_id_choice,
2106                                  NULL);
2107
2108   return offset;
2109 }
2110
2111
2112
2113 static int
2114 dissect_h225_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2115   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2116                                        1, 1, FALSE, NULL);
2117
2118   return offset;
2119 }
2120
2121
2122 static const per_sequence_t ANSI_41_UIM_sequence[] = {
2123   { &hf_h225_imsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2124   { &hf_h225_min            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2125   { &hf_h225_mdn            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2126   { &hf_h225_msisdn         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2127   { &hf_h225_esn            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_16 },
2128   { &hf_h225_mscid          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2129   { &hf_h225_system_id      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_system_id },
2130   { &hf_h225_systemMyTypeCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2131   { &hf_h225_systemAccessType, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2132   { &hf_h225_qualificationInformationCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1 },
2133   { &hf_h225_sesn           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_16 },
2134   { &hf_h225_soc            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2135   { NULL, 0, 0, NULL }
2136 };
2137
2138 static int
2139 dissect_h225_ANSI_41_UIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2140   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2141                                    ett_h225_ANSI_41_UIM, ANSI_41_UIM_sequence);
2142
2143   return offset;
2144 }
2145
2146
2147
2148 static int
2149 dissect_h225_OCTET_STRING_SIZE_1_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2150   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2151                                        1, 4, FALSE, NULL);
2152
2153   return offset;
2154 }
2155
2156
2157
2158 static int
2159 dissect_h225_TBCD_STRING_SIZE_15_16(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2160   offset = dissect_per_size_constrained_type(tvb, offset, actx, tree, hf_index, dissect_h225_TBCD_STRING,
2161                                                 "TBCD_STRING", 15, 16, FALSE);
2162
2163   return offset;
2164 }
2165
2166
2167 static const per_sequence_t GSM_UIM_sequence[] = {
2168   { &hf_h225_imsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2169   { &hf_h225_tmsi           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_4 },
2170   { &hf_h225_msisdn         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_3_16 },
2171   { &hf_h225_imei           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_15_16 },
2172   { &hf_h225_hplmn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2173   { &hf_h225_vplmn          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TBCD_STRING_SIZE_1_4 },
2174   { NULL, 0, 0, NULL }
2175 };
2176
2177 static int
2178 dissect_h225_GSM_UIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2179   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2180                                    ett_h225_GSM_UIM, GSM_UIM_sequence);
2181
2182   return offset;
2183 }
2184
2185
2186 static const value_string h225_MobileUIM_vals[] = {
2187   {   0, "ansi-41-uim" },
2188   {   1, "gsm-uim" },
2189   { 0, NULL }
2190 };
2191
2192 static const per_choice_t MobileUIM_choice[] = {
2193   {   0, &hf_h225_ansi_41_uim    , ASN1_EXTENSION_ROOT    , dissect_h225_ANSI_41_UIM },
2194   {   1, &hf_h225_gsm_uim        , ASN1_EXTENSION_ROOT    , dissect_h225_GSM_UIM },
2195   { 0, NULL, 0, NULL }
2196 };
2197
2198 static int
2199 dissect_h225_MobileUIM(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2200   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2201                                  ett_h225_MobileUIM, MobileUIM_choice,
2202                                  NULL);
2203
2204   return offset;
2205 }
2206
2207
2208 static const value_string h225_NatureOfAddress_vals[] = {
2209   {   0, "unknown" },
2210   {   1, "subscriberNumber" },
2211   {   2, "nationalNumber" },
2212   {   3, "internationalNumber" },
2213   {   4, "networkSpecificNumber" },
2214   {   5, "routingNumberNationalFormat" },
2215   {   6, "routingNumberNetworkSpecificFormat" },
2216   {   7, "routingNumberWithCalledDirectoryNumber" },
2217   { 0, NULL }
2218 };
2219
2220 static const per_choice_t NatureOfAddress_choice[] = {
2221   {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2222   {   1, &hf_h225_subscriberNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2223   {   2, &hf_h225_nationalNumber , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2224   {   3, &hf_h225_internationalNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2225   {   4, &hf_h225_networkSpecificNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2226   {   5, &hf_h225_routingNumberNationalFormat, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2227   {   6, &hf_h225_routingNumberNetworkSpecificFormat, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2228   {   7, &hf_h225_routingNumberWithCalledDirectoryNumber, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2229   { 0, NULL, 0, NULL }
2230 };
2231
2232 static int
2233 dissect_h225_NatureOfAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2234   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2235                                  ett_h225_NatureOfAddress, NatureOfAddress_choice,
2236                                  NULL);
2237
2238   return offset;
2239 }
2240
2241
2242
2243 static int
2244 dissect_h225_IsupDigits(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2245   offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
2246                                                       1, 128, FALSE, "0123456789ABCDE", 15,
2247                                                       NULL);
2248
2249   return offset;
2250 }
2251
2252
2253 static const per_sequence_t IsupPublicPartyNumber_sequence[] = {
2254   { &hf_h225_natureOfAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_NatureOfAddress },
2255   { &hf_h225_address        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2256   { NULL, 0, 0, NULL }
2257 };
2258
2259 static int
2260 dissect_h225_IsupPublicPartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2261   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2262                                    ett_h225_IsupPublicPartyNumber, IsupPublicPartyNumber_sequence);
2263
2264   return offset;
2265 }
2266
2267
2268 static const per_sequence_t IsupPrivatePartyNumber_sequence[] = {
2269   { &hf_h225_privateTypeOfNumber, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PrivateTypeOfNumber },
2270   { &hf_h225_address        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IsupDigits },
2271   { NULL, 0, 0, NULL }
2272 };
2273
2274 static int
2275 dissect_h225_IsupPrivatePartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2276   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2277                                    ett_h225_IsupPrivatePartyNumber, IsupPrivatePartyNumber_sequence);
2278
2279   return offset;
2280 }
2281
2282
2283 static const value_string h225_IsupNumber_vals[] = {
2284   {   0, "e164Number" },
2285   {   1, "dataPartyNumber" },
2286   {   2, "telexPartyNumber" },
2287   {   3, "privateNumber" },
2288   {   4, "nationalStandardPartyNumber" },
2289   { 0, NULL }
2290 };
2291
2292 static const per_choice_t IsupNumber_choice[] = {
2293   {   0, &hf_h225_isupE164Number , ASN1_EXTENSION_ROOT    , dissect_h225_IsupPublicPartyNumber },
2294   {   1, &hf_h225_isupDataPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2295   {   2, &hf_h225_isupTelexPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2296   {   3, &hf_h225_isupPrivateNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupPrivatePartyNumber },
2297   {   4, &hf_h225_isupNationalStandardPartyNumber, ASN1_EXTENSION_ROOT    , dissect_h225_IsupDigits },
2298   { 0, NULL, 0, NULL }
2299 };
2300
2301 static int
2302 dissect_h225_IsupNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2303   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2304                                  ett_h225_IsupNumber, IsupNumber_choice,
2305                                  NULL);
2306
2307   return offset;
2308 }
2309
2310
2311 const value_string AliasAddress_vals[] = {
2312   {   0, "dialledDigits" },
2313   {   1, "h323-ID" },
2314   {   2, "url-ID" },
2315   {   3, "transportID" },
2316   {   4, "email-ID" },
2317   {   5, "partyNumber" },
2318   {   6, "mobileUIM" },
2319   {   7, "isupNumber" },
2320   { 0, NULL }
2321 };
2322
2323 static const per_choice_t AliasAddress_choice[] = {
2324   {   0, &hf_h225_dialledDigits  , ASN1_EXTENSION_ROOT    , dissect_h225_DialedDigits },
2325   {   1, &hf_h225_h323_ID        , ASN1_EXTENSION_ROOT    , dissect_h225_BMPString_SIZE_1_256 },
2326   {   2, &hf_h225_url_ID         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2327   {   3, &hf_h225_transportID    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_TransportAddress },
2328   {   4, &hf_h225_email_ID       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IA5String_SIZE_1_512 },
2329   {   5, &hf_h225_partyNumber    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_PartyNumber },
2330   {   6, &hf_h225_mobileUIM      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_MobileUIM },
2331   {   7, &hf_h225_isupNumber     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_IsupNumber },
2332   { 0, NULL, 0, NULL }
2333 };
2334
2335 int
2336 dissect_h225_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2337   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2338                                  ett_h225_AliasAddress, AliasAddress_choice,
2339                                  NULL);
2340
2341   return offset;
2342 }
2343
2344
2345 static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
2346   { &hf_h225_alertingAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2347 };
2348
2349 static int
2350 dissect_h225_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2351   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2352                                       ett_h225_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
2353
2354   return offset;
2355 }
2356
2357
2358
2359 static int
2360 dissect_h225_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_) {
2361   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2362                                        1, 256, FALSE, NULL);
2363
2364   return offset;
2365 }
2366
2367
2368
2369 static int
2370 dissect_h225_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2371   offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2372
2373   return offset;
2374 }
2375
2376
2377 static const per_sequence_t VendorIdentifier_sequence[] = {
2378   { &hf_h225_vendorIdentifier_vendor, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_H221NonStandard },
2379   { &hf_h225_productId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_256 },
2380   { &hf_h225_versionId      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_1_256 },
2381   { &hf_h225_enterpriseNumber, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_OBJECT_IDENTIFIER },
2382   { NULL, 0, 0, NULL }
2383 };
2384
2385 static int
2386 dissect_h225_VendorIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2387   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2388                                    ett_h225_VendorIdentifier, VendorIdentifier_sequence);
2389
2390   return offset;
2391 }
2392
2393
2394 static const per_sequence_t GatekeeperInfo_sequence[] = {
2395   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2396   { NULL, 0, 0, NULL }
2397 };
2398
2399 static int
2400 dissect_h225_GatekeeperInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2401   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2402                                    ett_h225_GatekeeperInfo, GatekeeperInfo_sequence);
2403
2404   return offset;
2405 }
2406
2407
2408
2409 int
2410 dissect_h225_BandWidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2411   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2412                                                             0U, 4294967295U, NULL, FALSE);
2413
2414   return offset;
2415 }
2416
2417
2418
2419 static int
2420 dissect_h225_INTEGER_1_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2421   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2422                                                             1U, 256U, NULL, FALSE);
2423
2424   return offset;
2425 }
2426
2427
2428 static const per_sequence_t DataRate_sequence[] = {
2429   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2430   { &hf_h225_channelRate    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
2431   { &hf_h225_channelMultiplier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_256 },
2432   { NULL, 0, 0, NULL }
2433 };
2434
2435 static int
2436 dissect_h225_DataRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2437   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2438                                    ett_h225_DataRate, DataRate_sequence);
2439
2440   return offset;
2441 }
2442
2443
2444 static const per_sequence_t SEQUENCE_OF_DataRate_sequence_of[1] = {
2445   { &hf_h225_dataRatesSupported_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DataRate },
2446 };
2447
2448 static int
2449 dissect_h225_SEQUENCE_OF_DataRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2450   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2451                                       ett_h225_SEQUENCE_OF_DataRate, SEQUENCE_OF_DataRate_sequence_of);
2452
2453   return offset;
2454 }
2455
2456
2457 static const per_sequence_t SupportedPrefix_sequence[] = {
2458   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2459   { &hf_h225_prefix         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
2460   { NULL, 0, 0, NULL }
2461 };
2462
2463 static int
2464 dissect_h225_SupportedPrefix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2465   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2466                                    ett_h225_SupportedPrefix, SupportedPrefix_sequence);
2467
2468   return offset;
2469 }
2470
2471
2472 static const per_sequence_t SEQUENCE_OF_SupportedPrefix_sequence_of[1] = {
2473   { &hf_h225_supportedPrefixes_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_SupportedPrefix },
2474 };
2475
2476 static int
2477 dissect_h225_SEQUENCE_OF_SupportedPrefix(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2478   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2479                                       ett_h225_SEQUENCE_OF_SupportedPrefix, SEQUENCE_OF_SupportedPrefix_sequence_of);
2480
2481   return offset;
2482 }
2483
2484
2485 static const per_sequence_t H310Caps_sequence[] = {
2486   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2487   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2488   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2489   { NULL, 0, 0, NULL }
2490 };
2491
2492 static int
2493 dissect_h225_H310Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2494   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2495                                    ett_h225_H310Caps, H310Caps_sequence);
2496
2497   return offset;
2498 }
2499
2500
2501 static const per_sequence_t H320Caps_sequence[] = {
2502   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2503   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2504   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2505   { NULL, 0, 0, NULL }
2506 };
2507
2508 static int
2509 dissect_h225_H320Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2510   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2511                                    ett_h225_H320Caps, H320Caps_sequence);
2512
2513   return offset;
2514 }
2515
2516
2517 static const per_sequence_t H321Caps_sequence[] = {
2518   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2519   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2520   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2521   { NULL, 0, 0, NULL }
2522 };
2523
2524 static int
2525 dissect_h225_H321Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2526   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2527                                    ett_h225_H321Caps, H321Caps_sequence);
2528
2529   return offset;
2530 }
2531
2532
2533 static const per_sequence_t H322Caps_sequence[] = {
2534   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2535   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2536   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2537   { NULL, 0, 0, NULL }
2538 };
2539
2540 static int
2541 dissect_h225_H322Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2542   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2543                                    ett_h225_H322Caps, H322Caps_sequence);
2544
2545   return offset;
2546 }
2547
2548
2549 static const per_sequence_t H323Caps_sequence[] = {
2550   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2551   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2552   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2553   { NULL, 0, 0, NULL }
2554 };
2555
2556 static int
2557 dissect_h225_H323Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2558   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2559                                    ett_h225_H323Caps, H323Caps_sequence);
2560
2561   return offset;
2562 }
2563
2564
2565 static const per_sequence_t H324Caps_sequence[] = {
2566   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2567   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2568   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2569   { NULL, 0, 0, NULL }
2570 };
2571
2572 static int
2573 dissect_h225_H324Caps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2574   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2575                                    ett_h225_H324Caps, H324Caps_sequence);
2576
2577   return offset;
2578 }
2579
2580
2581 static const per_sequence_t VoiceCaps_sequence[] = {
2582   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2583   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2584   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2585   { NULL, 0, 0, NULL }
2586 };
2587
2588 static int
2589 dissect_h225_VoiceCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2590   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2591                                    ett_h225_VoiceCaps, VoiceCaps_sequence);
2592
2593   return offset;
2594 }
2595
2596
2597 static const per_sequence_t T120OnlyCaps_sequence[] = {
2598   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2599   { &hf_h225_dataRatesSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2600   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2601   { NULL, 0, 0, NULL }
2602 };
2603
2604 static int
2605 dissect_h225_T120OnlyCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2606   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2607                                    ett_h225_T120OnlyCaps, T120OnlyCaps_sequence);
2608
2609   return offset;
2610 }
2611
2612
2613 static const per_sequence_t NonStandardProtocol_sequence[] = {
2614   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2615   { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2616   { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2617   { NULL, 0, 0, NULL }
2618 };
2619
2620 static int
2621 dissect_h225_NonStandardProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2622   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2623                                    ett_h225_NonStandardProtocol, NonStandardProtocol_sequence);
2624
2625   return offset;
2626 }
2627
2628
2629 static const per_sequence_t T38FaxAnnexbOnlyCaps_sequence[] = {
2630   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2631   { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2632   { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedPrefix },
2633   { &hf_h225_t38FaxProtocol , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h245_DataProtocolCapability },
2634   { &hf_h225_t38FaxProfile  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h245_T38FaxProfile },
2635   { NULL, 0, 0, NULL }
2636 };
2637
2638 static int
2639 dissect_h225_T38FaxAnnexbOnlyCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2640   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2641                                    ett_h225_T38FaxAnnexbOnlyCaps, T38FaxAnnexbOnlyCaps_sequence);
2642
2643   return offset;
2644 }
2645
2646
2647 static const per_sequence_t SIPCaps_sequence[] = {
2648   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2649   { &hf_h225_dataRatesSupported, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DataRate },
2650   { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
2651   { NULL, 0, 0, NULL }
2652 };
2653
2654 static int
2655 dissect_h225_SIPCaps(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2656   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2657                                    ett_h225_SIPCaps, SIPCaps_sequence);
2658
2659   return offset;
2660 }
2661
2662
2663 const value_string h225_SupportedProtocols_vals[] = {
2664   {   0, "nonStandardData" },
2665   {   1, "h310" },
2666   {   2, "h320" },
2667   {   3, "h321" },
2668   {   4, "h322" },
2669   {   5, "h323" },
2670   {   6, "h324" },
2671   {   7, "voice" },
2672   {   8, "t120-only" },
2673   {   9, "nonStandardProtocol" },
2674   {  10, "t38FaxAnnexbOnly" },
2675   {  11, "sip" },
2676   { 0, NULL }
2677 };
2678
2679 static const per_choice_t SupportedProtocols_choice[] = {
2680   {   0, &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
2681   {   1, &hf_h225_h310           , ASN1_EXTENSION_ROOT    , dissect_h225_H310Caps },
2682   {   2, &hf_h225_h320           , ASN1_EXTENSION_ROOT    , dissect_h225_H320Caps },
2683   {   3, &hf_h225_h321           , ASN1_EXTENSION_ROOT    , dissect_h225_H321Caps },
2684   {   4, &hf_h225_h322           , ASN1_EXTENSION_ROOT    , dissect_h225_H322Caps },
2685   {   5, &hf_h225_h323           , ASN1_EXTENSION_ROOT    , dissect_h225_H323Caps },
2686   {   6, &hf_h225_h324           , ASN1_EXTENSION_ROOT    , dissect_h225_H324Caps },
2687   {   7, &hf_h225_voice          , ASN1_EXTENSION_ROOT    , dissect_h225_VoiceCaps },
2688   {   8, &hf_h225_t120_only      , ASN1_EXTENSION_ROOT    , dissect_h225_T120OnlyCaps },
2689   {   9, &hf_h225_nonStandardProtocol, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardProtocol },
2690   {  10, &hf_h225_t38FaxAnnexbOnly, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T38FaxAnnexbOnlyCaps },
2691   {  11, &hf_h225_sip            , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SIPCaps },
2692   { 0, NULL, 0, NULL }
2693 };
2694
2695 int
2696 dissect_h225_SupportedProtocols(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2697   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2698                                  ett_h225_SupportedProtocols, SupportedProtocols_choice,
2699                                  NULL);
2700
2701   return offset;
2702 }
2703
2704
2705 static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of[1] = {
2706   { &hf_h225_desiredProtocols_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_SupportedProtocols },
2707 };
2708
2709 static int
2710 dissect_h225_SEQUENCE_OF_SupportedProtocols(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2711   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2712                                       ett_h225_SEQUENCE_OF_SupportedProtocols, SEQUENCE_OF_SupportedProtocols_sequence_of);
2713
2714   return offset;
2715 }
2716
2717
2718 static const per_sequence_t GatewayInfo_sequence[] = {
2719   { &hf_h225_protocol       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2720   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2721   { NULL, 0, 0, NULL }
2722 };
2723
2724 static int
2725 dissect_h225_GatewayInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2726   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2727                                    ett_h225_GatewayInfo, GatewayInfo_sequence);
2728
2729   return offset;
2730 }
2731
2732
2733 static const per_sequence_t McuInfo_sequence[] = {
2734   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2735   { &hf_h225_protocol       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
2736   { NULL, 0, 0, NULL }
2737 };
2738
2739 static int
2740 dissect_h225_McuInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2741   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2742                                    ett_h225_McuInfo, McuInfo_sequence);
2743
2744   return offset;
2745 }
2746
2747
2748 static const per_sequence_t TerminalInfo_sequence[] = {
2749   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2750   { NULL, 0, 0, NULL }
2751 };
2752
2753 static int
2754 dissect_h225_TerminalInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2755   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2756                                    ett_h225_TerminalInfo, TerminalInfo_sequence);
2757
2758   return offset;
2759 }
2760
2761
2762
2763 static int
2764 dissect_h225_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2765   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
2766
2767   return offset;
2768 }
2769
2770
2771
2772 static int
2773 dissect_h225_BIT_STRING_SIZE_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2774   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
2775                                      32, 32, FALSE, NULL, NULL);
2776
2777   return offset;
2778 }
2779
2780
2781
2782 static int
2783 dissect_h225_T_tunnelledProtocolObjectID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2784   offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &tpOID);
2785
2786   return offset;
2787 }
2788
2789
2790
2791 static int
2792 dissect_h225_IA5String_SIZE_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2793   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
2794                                           1, 64, FALSE);
2795
2796   return offset;
2797 }
2798
2799
2800 static const per_sequence_t TunnelledProtocolAlternateIdentifier_sequence[] = {
2801   { &hf_h225_protocolType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_64 },
2802   { &hf_h225_protocolVariant, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_64 },
2803   { NULL, 0, 0, NULL }
2804 };
2805
2806 static int
2807 dissect_h225_TunnelledProtocolAlternateIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2808   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2809                                    ett_h225_TunnelledProtocolAlternateIdentifier, TunnelledProtocolAlternateIdentifier_sequence);
2810
2811   return offset;
2812 }
2813
2814
2815 static const value_string h225_TunnelledProtocol_id_vals[] = {
2816   {   0, "tunnelledProtocolObjectID" },
2817   {   1, "tunnelledProtocolAlternateID" },
2818   { 0, NULL }
2819 };
2820
2821 static const per_choice_t TunnelledProtocol_id_choice[] = {
2822   {   0, &hf_h225_tunnelledProtocolObjectID, ASN1_EXTENSION_ROOT    , dissect_h225_T_tunnelledProtocolObjectID },
2823   {   1, &hf_h225_tunnelledProtocolAlternateID, ASN1_EXTENSION_ROOT    , dissect_h225_TunnelledProtocolAlternateIdentifier },
2824   { 0, NULL, 0, NULL }
2825 };
2826
2827 static int
2828 dissect_h225_TunnelledProtocol_id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2829   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2830                                  ett_h225_TunnelledProtocol_id, TunnelledProtocol_id_choice,
2831                                  NULL);
2832
2833   return offset;
2834 }
2835
2836
2837 static const per_sequence_t TunnelledProtocol_sequence[] = {
2838   { &hf_h225_tunnelledProtocol_id, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol_id },
2839   { &hf_h225_subIdentifier  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_64 },
2840   { NULL, 0, 0, NULL }
2841 };
2842
2843 int
2844 dissect_h225_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2845 #line 585 "../../asn1/h225/h225.cnf"
2846   tpOID = "";
2847
2848   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2849                                    ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
2850
2851 #line 587 "../../asn1/h225/h225.cnf"
2852   tp_handle = dissector_get_string_handle(tp_dissector_table, tpOID);
2853
2854   return offset;
2855 }
2856
2857
2858 static const per_sequence_t SEQUENCE_OF_TunnelledProtocol_sequence_of[1] = {
2859   { &hf_h225_supportedTunnelledProtocols_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
2860 };
2861
2862 static int
2863 dissect_h225_SEQUENCE_OF_TunnelledProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2864   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2865                                       ett_h225_SEQUENCE_OF_TunnelledProtocol, SEQUENCE_OF_TunnelledProtocol_sequence_of);
2866
2867   return offset;
2868 }
2869
2870
2871 static const per_sequence_t EndpointType_sequence[] = {
2872   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
2873   { &hf_h225_vendor         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_VendorIdentifier },
2874   { &hf_h225_gatekeeper     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperInfo },
2875   { &hf_h225_gateway        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatewayInfo },
2876   { &hf_h225_mcu            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_McuInfo },
2877   { &hf_h225_terminal       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TerminalInfo },
2878   { &hf_h225_mc             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2879   { &hf_h225_undefinedNode  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2880   { &hf_h225_set            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BIT_STRING_SIZE_32 },
2881   { &hf_h225_supportedTunnelledProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TunnelledProtocol },
2882   { NULL, 0, 0, NULL }
2883 };
2884
2885 int
2886 dissect_h225_EndpointType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2887   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2888                                    ett_h225_EndpointType, EndpointType_sequence);
2889
2890   return offset;
2891 }
2892
2893
2894
2895 int
2896 dissect_h225_CallReferenceValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2897   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2898                                                             0U, 65535U, NULL, FALSE);
2899
2900   return offset;
2901 }
2902
2903
2904 static const per_sequence_t SEQUENCE_OF_CallReferenceValue_sequence_of[1] = {
2905   { &hf_h225_destExtraCRV_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
2906 };
2907
2908 static int
2909 dissect_h225_SEQUENCE_OF_CallReferenceValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2910   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2911                                       ett_h225_SEQUENCE_OF_CallReferenceValue, SEQUENCE_OF_CallReferenceValue_sequence_of);
2912
2913   return offset;
2914 }
2915
2916
2917
2918 int
2919 dissect_h225_GloballyUniqueID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2920   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2921                                        16, 16, FALSE, (tvbuff_t **)actx->value_ptr);
2922
2923   return offset;
2924 }
2925
2926
2927
2928 int
2929 dissect_h225_ConferenceIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2930   offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
2931
2932   return offset;
2933 }
2934
2935
2936 static const value_string h225_T_conferenceGoal_vals[] = {
2937   {   0, "create" },
2938   {   1, "join" },
2939   {   2, "invite" },
2940   {   3, "capability-negotiation" },
2941   {   4, "callIndependentSupplementaryService" },
2942   { 0, NULL }
2943 };
2944
2945 static const per_choice_t T_conferenceGoal_choice[] = {
2946   {   0, &hf_h225_create         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2947   {   1, &hf_h225_join           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2948   {   2, &hf_h225_invite         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
2949   {   3, &hf_h225_capability_negotiation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2950   {   4, &hf_h225_callIndependentSupplementaryService, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
2951   { 0, NULL, 0, NULL }
2952 };
2953
2954 static int
2955 dissect_h225_T_conferenceGoal(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2956   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2957                                  ett_h225_T_conferenceGoal, T_conferenceGoal_choice,
2958                                  NULL);
2959
2960   return offset;
2961 }
2962
2963
2964 static const per_sequence_t Q954Details_sequence[] = {
2965   { &hf_h225_conferenceCalling, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2966   { &hf_h225_threePartyService, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2967   { NULL, 0, 0, NULL }
2968 };
2969
2970 static int
2971 dissect_h225_Q954Details(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2972   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2973                                    ett_h225_Q954Details, Q954Details_sequence);
2974
2975   return offset;
2976 }
2977
2978
2979 static const per_sequence_t QseriesOptions_sequence[] = {
2980   { &hf_h225_q932Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2981   { &hf_h225_q951Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2982   { &hf_h225_q952Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2983   { &hf_h225_q953Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2984   { &hf_h225_q955Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2985   { &hf_h225_q956Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2986   { &hf_h225_q957Full       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
2987   { &hf_h225_q954Info       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_Q954Details },
2988   { NULL, 0, 0, NULL }
2989 };
2990
2991 static int
2992 dissect_h225_QseriesOptions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2993   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2994                                    ett_h225_QseriesOptions, QseriesOptions_sequence);
2995
2996   return offset;
2997 }
2998
2999
3000 static const value_string h225_CallType_vals[] = {
3001   {   0, "pointToPoint" },
3002   {   1, "oneToN" },
3003   {   2, "nToOne" },
3004   {   3, "nToN" },
3005   { 0, NULL }
3006 };
3007
3008 static const per_choice_t CallType_choice[] = {
3009   {   0, &hf_h225_pointToPoint   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3010   {   1, &hf_h225_oneToN         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3011   {   2, &hf_h225_nToOne         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3012   {   3, &hf_h225_nToN           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3013   { 0, NULL, 0, NULL }
3014 };
3015
3016 static int
3017 dissect_h225_CallType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3018   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3019                                  ett_h225_CallType, CallType_choice,
3020                                  NULL);
3021
3022   return offset;
3023 }
3024
3025
3026
3027 static int
3028 dissect_h225_T_guid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3029 #line 559 "../../asn1/h225/h225.cnf"
3030   tvbuff_t *guid_tvb = NULL;
3031
3032   actx->value_ptr = &guid_tvb;
3033   offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
3034
3035   if (guid_tvb)
3036     tvb_get_ntohguid(guid_tvb, 0, call_id_guid = wmem_new(wmem_packet_scope(), e_guid_t));
3037   actx->value_ptr = NULL;
3038
3039
3040   return offset;
3041 }
3042
3043
3044 static const per_sequence_t CallIdentifier_sequence[] = {
3045   { &hf_h225_guid           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_guid },
3046   { NULL, 0, 0, NULL }
3047 };
3048
3049 int
3050 dissect_h225_CallIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3051   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3052                                    ett_h225_CallIdentifier, CallIdentifier_sequence);
3053
3054   return offset;
3055 }
3056
3057
3058 static const value_string h225_SecurityServiceMode_vals[] = {
3059   {   0, "nonStandard" },
3060   {   1, "none" },
3061   {   2, "default" },
3062   { 0, NULL }
3063 };
3064
3065 static const per_choice_t SecurityServiceMode_choice[] = {
3066   {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3067   {   1, &hf_h225_none           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3068   {   2, &hf_h225_default        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3069   { 0, NULL, 0, NULL }
3070 };
3071
3072 static int
3073 dissect_h225_SecurityServiceMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3074   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3075                                  ett_h225_SecurityServiceMode, SecurityServiceMode_choice,
3076                                  NULL);
3077
3078   return offset;
3079 }
3080
3081
3082 static const per_sequence_t SecurityCapabilities_sequence[] = {
3083   { &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
3084   { &hf_h225_encryption     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3085   { &hf_h225_authenticaton  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3086   { &hf_h225_securityCapabilities_integrity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SecurityServiceMode },
3087   { NULL, 0, 0, NULL }
3088 };
3089
3090 static int
3091 dissect_h225_SecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3092   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3093                                    ett_h225_SecurityCapabilities, SecurityCapabilities_sequence);
3094
3095   return offset;
3096 }
3097
3098
3099 static const value_string h225_H245Security_vals[] = {
3100   {   0, "nonStandard" },
3101   {   1, "noSecurity" },
3102   {   2, "tls" },
3103   {   3, "ipsec" },
3104   { 0, NULL }
3105 };
3106
3107 static const per_choice_t H245Security_choice[] = {
3108   {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3109   {   1, &hf_h225_noSecurity     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3110   {   2, &hf_h225_tls            , ASN1_EXTENSION_ROOT    , dissect_h225_SecurityCapabilities },
3111   {   3, &hf_h225_ipsec          , ASN1_EXTENSION_ROOT    , dissect_h225_SecurityCapabilities },
3112   { 0, NULL, 0, NULL }
3113 };
3114
3115 static int
3116 dissect_h225_H245Security(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3117   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3118                                  ett_h225_H245Security, H245Security_choice,
3119                                  NULL);
3120
3121   return offset;
3122 }
3123
3124
3125 static const per_sequence_t SEQUENCE_OF_H245Security_sequence_of[1] = {
3126   { &hf_h225_h245SecurityCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H245Security },
3127 };
3128
3129 static int
3130 dissect_h225_SEQUENCE_OF_H245Security(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3131   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3132                                       ett_h225_SEQUENCE_OF_H245Security, SEQUENCE_OF_H245Security_sequence_of);
3133
3134   return offset;
3135 }
3136
3137
3138 static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of[1] = {
3139   { &hf_h225_tokens_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
3140 };
3141
3142 static int
3143 dissect_h225_SEQUENCE_OF_ClearToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3144   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3145                                       ett_h225_SEQUENCE_OF_ClearToken, SEQUENCE_OF_ClearToken_sequence_of);
3146
3147   return offset;
3148 }
3149
3150
3151 static const per_sequence_t T_cryptoEPPwdHash_sequence[] = {
3152   { &hf_h225_alias          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
3153   { &hf_h225_timeStamp      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3154   { &hf_h225_token          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3155   { NULL, 0, 0, NULL }
3156 };
3157
3158 static int
3159 dissect_h225_T_cryptoEPPwdHash(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3160   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3161                                    ett_h225_T_cryptoEPPwdHash, T_cryptoEPPwdHash_sequence);
3162
3163   return offset;
3164 }
3165
3166
3167
3168 int
3169 dissect_h225_GatekeeperIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3170   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3171                                           1, 128, FALSE);
3172
3173   return offset;
3174 }
3175
3176
3177 static const per_sequence_t T_cryptoGKPwdHash_sequence[] = {
3178   { &hf_h225_gatekeeperId   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperIdentifier },
3179   { &hf_h225_timeStamp      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_TimeStamp },
3180   { &hf_h225_token          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_HASHED },
3181   { NULL, 0, 0, NULL }
3182 };
3183
3184 static int
3185 dissect_h225_T_cryptoGKPwdHash(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3186   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3187                                    ett_h225_T_cryptoGKPwdHash, T_cryptoGKPwdHash_sequence);
3188
3189   return offset;
3190 }
3191
3192
3193 const value_string h225_CryptoH323Token_vals[] = {
3194   {   0, "cryptoEPPwdHash" },
3195   {   1, "cryptoGKPwdHash" },
3196   {   2, "cryptoEPPwdEncr" },
3197   {   3, "cryptoGKPwdEncr" },
3198   {   4, "cryptoEPCert" },
3199   {   5, "cryptoGKCert" },
3200   {   6, "cryptoFastStart" },
3201   {   7, "nestedcryptoToken" },
3202   { 0, NULL }
3203 };
3204
3205 static const per_choice_t CryptoH323Token_choice[] = {
3206   {   0, &hf_h225_cryptoEPPwdHash, ASN1_EXTENSION_ROOT    , dissect_h225_T_cryptoEPPwdHash },
3207   {   1, &hf_h225_cryptoGKPwdHash, ASN1_EXTENSION_ROOT    , dissect_h225_T_cryptoGKPwdHash },
3208   {   2, &hf_h225_cryptoEPPwdEncr, ASN1_EXTENSION_ROOT    , dissect_h235_ENCRYPTED },
3209   {   3, &hf_h225_cryptoGKPwdEncr, ASN1_EXTENSION_ROOT    , dissect_h235_ENCRYPTED },
3210   {   4, &hf_h225_cryptoEPCert   , ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3211   {   5, &hf_h225_cryptoGKCert   , ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3212   {   6, &hf_h225_cryptoFastStart, ASN1_EXTENSION_ROOT    , dissect_h235_SIGNED },
3213   {   7, &hf_h225_nestedcryptoToken, ASN1_EXTENSION_ROOT    , dissect_h235_CryptoToken },
3214   { 0, NULL, 0, NULL }
3215 };
3216
3217 int
3218 dissect_h225_CryptoH323Token(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3219   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3220                                  ett_h225_CryptoH323Token, CryptoH323Token_choice,
3221                                  NULL);
3222
3223   return offset;
3224 }
3225
3226
3227 static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of[1] = {
3228   { &hf_h225_cryptoTokens_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CryptoH323Token },
3229 };
3230
3231 static int
3232 dissect_h225_SEQUENCE_OF_CryptoH323Token(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3233   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3234                                       ett_h225_SEQUENCE_OF_CryptoH323Token, SEQUENCE_OF_CryptoH323Token_sequence_of);
3235
3236   return offset;
3237 }
3238
3239
3240
3241 static int
3242 dissect_h225_FastStart_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3243 #line 268 "../../asn1/h225/h225.cnf"
3244   tvbuff_t *value_tvb = NULL;
3245   char codec_str[50];
3246   codec_str[0] = '\0';
3247
3248   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3249                                        NO_BOUND, NO_BOUND, FALSE, &value_tvb);
3250
3251   if (value_tvb && tvb_reported_length(value_tvb)) {
3252     dissect_h245_FastStart_OLC(value_tvb, actx->pinfo, tree, codec_str);
3253   }
3254
3255   /* Add to packet info */
3256   g_snprintf(h225_pi->frame_label, 50, "%s %s", h225_pi->frame_label, codec_str);
3257
3258   contains_faststart = TRUE;
3259   h225_pi->is_faststart = TRUE;
3260
3261
3262   return offset;
3263 }
3264
3265
3266 static const per_sequence_t FastStart_sequence_of[1] = {
3267   { &hf_h225_FastStart_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_FastStart_item },
3268 };
3269
3270 static int
3271 dissect_h225_FastStart(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3272   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3273                                       ett_h225_FastStart, FastStart_sequence_of);
3274
3275   return offset;
3276 }
3277
3278
3279
3280 static int
3281 dissect_h225_EndpointIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3282   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3283                                           1, 128, FALSE);
3284
3285   return offset;
3286 }
3287
3288
3289 static const value_string h225_ScnConnectionType_vals[] = {
3290   {   0, "unknown" },
3291   {   1, "bChannel" },
3292   {   2, "hybrid2x64" },
3293   {   3, "hybrid384" },
3294   {   4, "hybrid1536" },
3295   {   5, "hybrid1920" },
3296   {   6, "multirate" },
3297   { 0, NULL }
3298 };
3299
3300 static const per_choice_t ScnConnectionType_choice[] = {
3301   {   0, &hf_h225_unknown        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3302   {   1, &hf_h225_bChannel       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3303   {   2, &hf_h225_hybrid2x64     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3304   {   3, &hf_h225_hybrid384      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3305   {   4, &hf_h225_hybrid1536     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3306   {   5, &hf_h225_hybrid1920     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3307   {   6, &hf_h225_multirate      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3308   { 0, NULL, 0, NULL }
3309 };
3310
3311 static int
3312 dissect_h225_ScnConnectionType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3313   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3314                                  ett_h225_ScnConnectionType, ScnConnectionType_choice,
3315                                  NULL);
3316
3317   return offset;
3318 }
3319
3320
3321 static const value_string h225_ScnConnectionAggregation_vals[] = {
3322   {   0, "auto" },
3323   {   1, "none" },
3324   {   2, "h221" },
3325   {   3, "bonded-mode1" },
3326   {   4, "bonded-mode2" },
3327   {   5, "bonded-mode3" },
3328   { 0, NULL }
3329 };
3330
3331 static const per_choice_t ScnConnectionAggregation_choice[] = {
3332   {   0, &hf_h225_auto           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3333   {   1, &hf_h225_none           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3334   {   2, &hf_h225_h221           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3335   {   3, &hf_h225_bonded_mode1   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3336   {   4, &hf_h225_bonded_mode2   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3337   {   5, &hf_h225_bonded_mode3   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3338   { 0, NULL, 0, NULL }
3339 };
3340
3341 static int
3342 dissect_h225_ScnConnectionAggregation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3343   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3344                                  ett_h225_ScnConnectionAggregation, ScnConnectionAggregation_choice,
3345                                  NULL);
3346
3347   return offset;
3348 }
3349
3350
3351 static const per_sequence_t T_connectionParameters_sequence[] = {
3352   { &hf_h225_connectionType , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionType },
3353   { &hf_h225_numberOfScnConnections, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3354   { &hf_h225_connectionAggregation, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ScnConnectionAggregation },
3355   { NULL, 0, 0, NULL }
3356 };
3357
3358 static int
3359 dissect_h225_T_connectionParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3360   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3361                                    ett_h225_T_connectionParameters, T_connectionParameters_sequence);
3362
3363   return offset;
3364 }
3365
3366
3367
3368 static int
3369 dissect_h225_IA5String_SIZE_1_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3370   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3371                                           1, 32, FALSE);
3372
3373   return offset;
3374 }
3375
3376
3377 static const per_sequence_t Language_sequence_of[1] = {
3378   { &hf_h225_Language_item  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_32 },
3379 };
3380
3381 static int
3382 dissect_h225_Language(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3383   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3384                                       ett_h225_Language, Language_sequence_of);
3385
3386   return offset;
3387 }
3388
3389
3390 const value_string h225_PresentationIndicator_vals[] = {
3391   {   0, "presentationAllowed" },
3392   {   1, "presentationRestricted" },
3393   {   2, "addressNotAvailable" },
3394   { 0, NULL }
3395 };
3396
3397 static const per_choice_t PresentationIndicator_choice[] = {
3398   {   0, &hf_h225_presentationAllowed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3399   {   1, &hf_h225_presentationRestricted, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3400   {   2, &hf_h225_addressNotAvailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3401   { 0, NULL, 0, NULL }
3402 };
3403
3404 int
3405 dissect_h225_PresentationIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3406   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3407                                  ett_h225_PresentationIndicator, PresentationIndicator_choice,
3408                                  NULL);
3409
3410   return offset;
3411 }
3412
3413
3414 const value_string h225_ScreeningIndicator_vals[] = {
3415   {   0, "userProvidedNotScreened" },
3416   {   1, "userProvidedVerifiedAndPassed" },
3417   {   2, "userProvidedVerifiedAndFailed" },
3418   {   3, "networkProvided" },
3419   { 0, NULL }
3420 };
3421
3422
3423 int
3424 dissect_h225_ScreeningIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3425   offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
3426                                      4, NULL, TRUE, 0, NULL);
3427
3428   return offset;
3429 }
3430
3431
3432
3433 static int
3434 dissect_h225_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3435   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3436                                                             0U, 255U, NULL, FALSE);
3437
3438   return offset;
3439 }
3440
3441
3442
3443 static int
3444 dissect_h225_IA5String_SIZE_0_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3445   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3446                                           0, 512, FALSE);
3447
3448   return offset;
3449 }
3450
3451
3452
3453 static int
3454 dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3455   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3456                                        NO_BOUND, NO_BOUND, FALSE, NULL);
3457
3458   return offset;
3459 }
3460
3461
3462
3463 static int
3464 dissect_h225_BMPString_SIZE_1_512(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3465   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3466                                           1, 512, FALSE);
3467
3468   return offset;
3469 }
3470
3471
3472 static const value_string h225_T_billingMode_vals[] = {
3473   {   0, "credit" },
3474   {   1, "debit" },
3475   { 0, NULL }
3476 };
3477
3478 static const per_choice_t T_billingMode_choice[] = {
3479   {   0, &hf_h225_credit         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3480   {   1, &hf_h225_debit          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3481   { 0, NULL, 0, NULL }
3482 };
3483
3484 static int
3485 dissect_h225_T_billingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3486   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3487                                  ett_h225_T_billingMode, T_billingMode_choice,
3488                                  NULL);
3489
3490   return offset;
3491 }
3492
3493
3494
3495 static int
3496 dissect_h225_INTEGER_1_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3497   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3498                                                             1U, 4294967295U, NULL, FALSE);
3499
3500   return offset;
3501 }
3502
3503
3504 static const value_string h225_CallCreditServiceControl_callStartingPoint_vals[] = {
3505   {   0, "alerting" },
3506   {   1, "connect" },
3507   { 0, NULL }
3508 };
3509
3510 static const per_choice_t CallCreditServiceControl_callStartingPoint_choice[] = {
3511   {   0, &hf_h225_alerting_flg   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3512   {   1, &hf_h225_connect_flg    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3513   { 0, NULL, 0, NULL }
3514 };
3515
3516 static int
3517 dissect_h225_CallCreditServiceControl_callStartingPoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3518   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3519                                  ett_h225_CallCreditServiceControl_callStartingPoint, CallCreditServiceControl_callStartingPoint_choice,
3520                                  NULL);
3521
3522   return offset;
3523 }
3524
3525
3526 static const per_sequence_t CallCreditServiceControl_sequence[] = {
3527   { &hf_h225_amountString   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BMPString_SIZE_1_512 },
3528   { &hf_h225_billingMode    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_billingMode },
3529   { &hf_h225_callDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_4294967295 },
3530   { &hf_h225_enforceCallDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
3531   { &hf_h225_callStartingPoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCreditServiceControl_callStartingPoint },
3532   { NULL, 0, 0, NULL }
3533 };
3534
3535 static int
3536 dissect_h225_CallCreditServiceControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3537   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3538                                    ett_h225_CallCreditServiceControl, CallCreditServiceControl_sequence);
3539
3540   return offset;
3541 }
3542
3543
3544 static const value_string h225_ServiceControlDescriptor_vals[] = {
3545   {   0, "url" },
3546   {   1, "signal" },
3547   {   2, "nonStandard" },
3548   {   3, "callCreditServiceControl" },
3549   { 0, NULL }
3550 };
3551
3552 static const per_choice_t ServiceControlDescriptor_choice[] = {
3553   {   0, &hf_h225_url            , ASN1_EXTENSION_ROOT    , dissect_h225_IA5String_SIZE_0_512 },
3554   {   1, &hf_h225_signal         , ASN1_EXTENSION_ROOT    , dissect_h225_H248SignalsDescriptor },
3555   {   2, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
3556   {   3, &hf_h225_callCreditServiceControl, ASN1_EXTENSION_ROOT    , dissect_h225_CallCreditServiceControl },
3557   { 0, NULL, 0, NULL }
3558 };
3559
3560 static int
3561 dissect_h225_ServiceControlDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3562   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3563                                  ett_h225_ServiceControlDescriptor, ServiceControlDescriptor_choice,
3564                                  NULL);
3565
3566   return offset;
3567 }
3568
3569
3570 static const value_string h225_ServiceControlSession_reason_vals[] = {
3571   {   0, "open" },
3572   {   1, "refresh" },
3573   {   2, "close" },
3574   { 0, NULL }
3575 };
3576
3577 static const per_choice_t ServiceControlSession_reason_choice[] = {
3578   {   0, &hf_h225_open           , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3579   {   1, &hf_h225_refresh        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3580   {   2, &hf_h225_close          , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
3581   { 0, NULL, 0, NULL }
3582 };
3583
3584 static int
3585 dissect_h225_ServiceControlSession_reason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3586   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3587                                  ett_h225_ServiceControlSession_reason, ServiceControlSession_reason_choice,
3588                                  NULL);
3589
3590   return offset;
3591 }
3592
3593
3594 static const per_sequence_t ServiceControlSession_sequence[] = {
3595   { &hf_h225_sessionId_0_255, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
3596   { &hf_h225_contents       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ServiceControlDescriptor },
3597   { &hf_h225_reason         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession_reason },
3598   { NULL, 0, 0, NULL }
3599 };
3600
3601 int
3602 dissect_h225_ServiceControlSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3603   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3604                                    ett_h225_ServiceControlSession, ServiceControlSession_sequence);
3605
3606   return offset;
3607 }
3608
3609
3610 static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of[1] = {
3611   { &hf_h225_serviceControl_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession },
3612 };
3613
3614 static int
3615 dissect_h225_SEQUENCE_OF_ServiceControlSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3616   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3617                                       ett_h225_SEQUENCE_OF_ServiceControlSession, SEQUENCE_OF_ServiceControlSession_sequence_of);
3618
3619   return offset;
3620 }
3621
3622
3623
3624 static int
3625 dissect_h225_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3626   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3627                                                             0U, 4294967295U, NULL, FALSE);
3628
3629   return offset;
3630 }
3631
3632
3633
3634 static int
3635 dissect_h225_IA5String_SIZE_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3636   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3637                                           1, 128, FALSE);
3638
3639   return offset;
3640 }
3641
3642
3643
3644 static int
3645 dissect_h225_OCTET_STRING_SIZE_3_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3646   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3647                                        3, 4, FALSE, NULL);
3648
3649   return offset;
3650 }
3651
3652
3653 static const per_sequence_t CarrierInfo_sequence[] = {
3654   { &hf_h225_carrierIdentificationCode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING_SIZE_3_4 },
3655   { &hf_h225_carrierName    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_128 },
3656   { NULL, 0, 0, NULL }
3657 };
3658
3659 static int
3660 dissect_h225_CarrierInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3661   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3662                                    ett_h225_CarrierInfo, CarrierInfo_sequence);
3663
3664   return offset;
3665 }
3666
3667
3668 static const per_sequence_t CallsAvailable_sequence[] = {
3669   { &hf_h225_calls          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_4294967295 },
3670   { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_IA5String_SIZE_1_128 },
3671   { &hf_h225_carrier        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CarrierInfo },
3672   { NULL, 0, 0, NULL }
3673 };
3674
3675 static int
3676 dissect_h225_CallsAvailable(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3677   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3678                                    ett_h225_CallsAvailable, CallsAvailable_sequence);
3679
3680   return offset;
3681 }
3682
3683
3684 static const per_sequence_t SEQUENCE_OF_CallsAvailable_sequence_of[1] = {
3685   { &hf_h225_voiceGwCallsAvailable_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_CallsAvailable },
3686 };
3687
3688 static int
3689 dissect_h225_SEQUENCE_OF_CallsAvailable(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3690   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3691                                       ett_h225_SEQUENCE_OF_CallsAvailable, SEQUENCE_OF_CallsAvailable_sequence_of);
3692
3693   return offset;
3694 }
3695
3696
3697 static const per_sequence_t CallCapacityInfo_sequence[] = {
3698   { &hf_h225_voiceGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3699   { &hf_h225_h310GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3700   { &hf_h225_h320GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3701   { &hf_h225_h321GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3702   { &hf_h225_h322GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3703   { &hf_h225_h323GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3704   { &hf_h225_h324GwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3705   { &hf_h225_t120OnlyGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3706   { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3707   { &hf_h225_terminalCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3708   { &hf_h225_mcuCallsAvailable, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3709   { &hf_h225_sipGwCallsAvailable, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallsAvailable },
3710   { NULL, 0, 0, NULL }
3711 };
3712
3713 static int
3714 dissect_h225_CallCapacityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3715   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3716                                    ett_h225_CallCapacityInfo, CallCapacityInfo_sequence);
3717
3718   return offset;
3719 }
3720
3721
3722 static const per_sequence_t CallCapacity_sequence[] = {
3723   { &hf_h225_maximumCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCapacityInfo },
3724   { &hf_h225_currentCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallCapacityInfo },
3725   { NULL, 0, 0, NULL }
3726 };
3727
3728 static int
3729 dissect_h225_CallCapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3730   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3731                                    ett_h225_CallCapacity, CallCapacity_sequence);
3732
3733   return offset;
3734 }
3735
3736
3737
3738 static int
3739 dissect_h225_OCTET_STRING_SIZE_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3740   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3741                                        2, 4, FALSE, NULL);
3742
3743   return offset;
3744 }
3745
3746
3747 static const per_sequence_t T_cic_2_4_sequence_of[1] = {
3748   { &hf_h225_cic_2_4_item   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_4 },
3749 };
3750
3751 static int
3752 dissect_h225_T_cic_2_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3753   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3754                                       ett_h225_T_cic_2_4, T_cic_2_4_sequence_of);
3755
3756   return offset;
3757 }
3758
3759
3760
3761 static int
3762 dissect_h225_OCTET_STRING_SIZE_2_5(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3763   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3764                                        2, 5, FALSE, NULL);
3765
3766   return offset;
3767 }
3768
3769
3770 static const per_sequence_t CicInfo_sequence[] = {
3771   { &hf_h225_cic_2_4        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_cic_2_4 },
3772   { &hf_h225_pointCode      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_2_5 },
3773   { NULL, 0, 0, NULL }
3774 };
3775
3776 static int
3777 dissect_h225_CicInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3778   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3779                                    ett_h225_CicInfo, CicInfo_sequence);
3780
3781   return offset;
3782 }
3783
3784
3785 static const per_sequence_t T_member_sequence_of[1] = {
3786   { &hf_h225_member_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_65535 },
3787 };
3788
3789 static int
3790 dissect_h225_T_member(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3791   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
3792                                       ett_h225_T_member, T_member_sequence_of);
3793
3794   return offset;
3795 }
3796
3797
3798 static const per_sequence_t GroupID_sequence[] = {
3799   { &hf_h225_member         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_member },
3800   { &hf_h225_group_IA5String, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_IA5String_SIZE_1_128 },
3801   { NULL, 0, 0, NULL }
3802 };
3803
3804 static int
3805 dissect_h225_GroupID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3806   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3807                                    ett_h225_GroupID, GroupID_sequence);
3808
3809   return offset;
3810 }
3811
3812
3813 static const per_sequence_t CircuitIdentifier_sequence[] = {
3814   { &hf_h225_cic            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CicInfo },
3815   { &hf_h225_group          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GroupID },
3816   { &hf_h225_carrier        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CarrierInfo },
3817   { NULL, 0, 0, NULL }
3818 };
3819
3820 int
3821 dissect_h225_CircuitIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3822   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
3823                                    ett_h225_CircuitIdentifier, CircuitIdentifier_sequence);
3824
3825   return offset;
3826 }
3827
3828
3829
3830 static int
3831 dissect_h225_T_standard(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3832 #line 699 "../../asn1/h225/h225.cnf"
3833   guint32 value_int = (guint32)-1;
3834   gef_ctx_t *gefx;
3835
3836   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
3837                                                             0U, 16383U, &value_int, TRUE);
3838
3839   gefx = gef_ctx_get(actx->private_data);
3840   if (gefx) gefx->id = wmem_strdup_printf(wmem_packet_scope(), "%u", value_int);
3841
3842
3843   return offset;
3844 }
3845
3846
3847
3848 static int
3849 dissect_h225_T_oid(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3850 #line 708 "../../asn1/h225/h225.cnf"
3851   const gchar *oid_str = NULL;
3852   gef_ctx_t *gefx;
3853
3854   offset = dissect_per_object_identifier_str(tvb, offset, actx, tree, hf_index, &oid_str);
3855
3856   gefx = gef_ctx_get(actx->private_data);
3857   if (gefx) gefx->id = oid_str;
3858
3859
3860   return offset;
3861 }
3862
3863
3864 const value_string h225_GenericIdentifier_vals[] = {
3865   {   0, "standard" },
3866   {   1, "oid" },
3867   {   2, "nonStandard" },
3868   { 0, NULL }
3869 };
3870
3871 static const per_choice_t GenericIdentifier_choice[] = {
3872   {   0, &hf_h225_standard       , ASN1_EXTENSION_ROOT    , dissect_h225_T_standard },
3873   {   1, &hf_h225_oid            , ASN1_EXTENSION_ROOT    , dissect_h225_T_oid },
3874   {   2, &hf_h225_genericIdentifier_nonStandard, ASN1_EXTENSION_ROOT    , dissect_h225_GloballyUniqueID },
3875   { 0, NULL, 0, NULL }
3876 };
3877
3878 int
3879 dissect_h225_GenericIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3880 #line 685 "../../asn1/h225/h225.cnf"
3881   gef_ctx_t *gefx;
3882   proto_item* ti;
3883
3884   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3885                                  ett_h225_GenericIdentifier, GenericIdentifier_choice,
3886                                  NULL);
3887
3888 #line 688 "../../asn1/h225/h225.cnf"
3889   gef_ctx_update_key(gef_ctx_get(actx->private_data));
3890   gefx = gef_ctx_get(actx->private_data);
3891   if (gefx) {
3892     ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3893   PROTO_ITEM_SET_HIDDEN(ti);
3894     dissector_try_string(gef_name_dissector_table, gefx->key, tvb_new_subset(tvb, offset>>3, 0, 0), actx->pinfo, tree, actx);
3895   }
3896   actx->private_data = gefx;  /* subdissector could overwrite it */
3897
3898   return offset;
3899 }
3900
3901
3902
3903 static int
3904 dissect_h225_T_raw(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3905 #line 718 "../../asn1/h225/h225.cnf"
3906   tvbuff_t *value_tvb;
3907   gef_ctx_t *gefx;
3908   proto_item* ti;
3909
3910   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
3911                                        NO_BOUND, NO_BOUND, FALSE, &value_tvb);
3912
3913   gefx = gef_ctx_get(actx->private_data);
3914   if (gefx) {
3915     ti = proto_tree_add_string(tree, hf_h225_debug_dissector_try_string, tvb, offset>>3, 0, gefx->key);
3916   PROTO_ITEM_SET_HIDDEN(ti);
3917     dissector_try_string(gef_content_dissector_table, gefx->key, value_tvb, actx->pinfo, tree, actx);
3918   }
3919
3920
3921   return offset;
3922 }
3923
3924
3925
3926 static int
3927 dissect_h225_IA5String(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3928   offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
3929                                           NO_BOUND, NO_BOUND, FALSE);
3930
3931   return offset;
3932 }
3933
3934
3935
3936 static int
3937 dissect_h225_BMPString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3938   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
3939                                           NO_BOUND, NO_BOUND, FALSE);
3940
3941   return offset;
3942 }
3943
3944
3945 static const per_sequence_t SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of[1] = {
3946   { &hf_h225_parameters_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_EnumeratedParameter },
3947 };
3948
3949 static int
3950 dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3951   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3952                                                   ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter, SEQUENCE_SIZE_1_512_OF_EnumeratedParameter_sequence_of,
3953                                                   1, 512, FALSE);
3954
3955   return offset;
3956 }
3957
3958
3959 static const per_sequence_t SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of[1] = {
3960   { &hf_h225_nested_item    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
3961 };
3962
3963 static int
3964 dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3965   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
3966                                                   ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData, SEQUENCE_SIZE_1_16_OF_GenericData_sequence_of,
3967                                                   1, 16, FALSE);
3968
3969   return offset;
3970 }
3971
3972
3973 static const value_string h225_Content_vals[] = {
3974   {   0, "raw" },
3975   {   1, "text" },
3976   {   2, "unicode" },
3977   {   3, "bool" },
3978   {   4, "number8" },
3979   {   5, "number16" },
3980   {   6, "number32" },
3981   {   7, "id" },
3982   {   8, "alias" },
3983   {   9, "transport" },
3984   {  10, "compound" },
3985   {  11, "nested" },
3986   { 0, NULL }
3987 };
3988
3989 static const per_choice_t Content_choice[] = {
3990   {   0, &hf_h225_raw            , ASN1_EXTENSION_ROOT    , dissect_h225_T_raw },
3991   {   1, &hf_h225_text           , ASN1_EXTENSION_ROOT    , dissect_h225_IA5String },
3992   {   2, &hf_h225_unicode        , ASN1_EXTENSION_ROOT    , dissect_h225_BMPString },
3993   {   3, &hf_h225_bool           , ASN1_EXTENSION_ROOT    , dissect_h225_BOOLEAN },
3994   {   4, &hf_h225_number8        , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_255 },
3995   {   5, &hf_h225_number16       , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_65535 },
3996   {   6, &hf_h225_number32       , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_4294967295 },
3997   {   7, &hf_h225_id             , ASN1_EXTENSION_ROOT    , dissect_h225_GenericIdentifier },
3998   {   8, &hf_h225_alias          , ASN1_EXTENSION_ROOT    , dissect_h225_AliasAddress },
3999   {   9, &hf_h225_transport      , ASN1_EXTENSION_ROOT    , dissect_h225_TransportAddress },
4000   {  10, &hf_h225_compound       , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
4001   {  11, &hf_h225_nested         , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_SIZE_1_16_OF_GenericData },
4002   { 0, NULL, 0, NULL }
4003 };
4004
4005 static int
4006 dissect_h225_Content(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4007   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4008                                  ett_h225_Content, Content_choice,
4009                                  NULL);
4010
4011   return offset;
4012 }
4013
4014
4015 static const per_sequence_t EnumeratedParameter_sequence[] = {
4016   { &hf_h225_id             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
4017   { &hf_h225_content        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_Content },
4018   { NULL, 0, 0, NULL }
4019 };
4020
4021 static int
4022 dissect_h225_EnumeratedParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4023 #line 667 "../../asn1/h225/h225.cnf"
4024   gef_ctx_t *parent_gefx;
4025
4026   parent_gefx = gef_ctx_get(actx->private_data);
4027   actx->private_data = gef_ctx_alloc(parent_gefx, NULL);
4028
4029   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4030                                    ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
4031
4032 #line 672 "../../asn1/h225/h225.cnf"
4033   actx->private_data = parent_gefx;
4034
4035   return offset;
4036 }
4037
4038
4039 static const per_sequence_t GenericData_sequence[] = {
4040   { &hf_h225_id             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
4041   { &hf_h225_parameters     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter },
4042   { NULL, 0, 0, NULL }
4043 };
4044
4045 int
4046 dissect_h225_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4047 #line 653 "../../asn1/h225/h225.cnf"
4048   void *priv_data = actx->private_data;
4049   gef_ctx_t *gefx;
4050
4051   /* check if not inherited from FeatureDescriptor */
4052   gefx = gef_ctx_get(actx->private_data);
4053   if (!gefx) {
4054     gefx = gef_ctx_alloc(NULL, "GenericData");
4055     actx->private_data = gefx;
4056   }
4057
4058   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4059                                    ett_h225_GenericData, GenericData_sequence);
4060
4061 #line 663 "../../asn1/h225/h225.cnf"
4062   actx->private_data = priv_data;
4063
4064   return offset;
4065 }
4066
4067
4068 static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
4069   { &hf_h225_genericData_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
4070 };
4071
4072 static int
4073 dissect_h225_SEQUENCE_OF_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4074   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4075                                       ett_h225_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
4076
4077   return offset;
4078 }
4079
4080
4081 static const per_sequence_t CircuitInfo_sequence[] = {
4082   { &hf_h225_sourceCircuitID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CircuitIdentifier },
4083   { &hf_h225_destinationCircuitID, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CircuitIdentifier },
4084   { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
4085   { NULL, 0, 0, NULL }
4086 };
4087
4088 int
4089 dissect_h225_CircuitInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4090   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4091                                    ett_h225_CircuitInfo, CircuitInfo_sequence);
4092
4093   return offset;
4094 }
4095
4096
4097
4098 static int
4099 dissect_h225_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4100 #line 677 "../../asn1/h225/h225.cnf"
4101   void *priv_data = actx->private_data;
4102   actx->private_data = gef_ctx_alloc(NULL, "FeatureDescriptor");
4103
4104   offset = dissect_h225_GenericData(tvb, offset, actx, tree, hf_index);
4105
4106 #line 680 "../../asn1/h225/h225.cnf"
4107   actx->private_data = priv_data;
4108
4109   return offset;
4110 }
4111
4112
4113 static const per_sequence_t SEQUENCE_OF_FeatureDescriptor_sequence_of[1] = {
4114   { &hf_h225_neededFeatures_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_FeatureDescriptor },
4115 };
4116
4117 static int
4118 dissect_h225_SEQUENCE_OF_FeatureDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4119   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4120                                       ett_h225_SEQUENCE_OF_FeatureDescriptor, SEQUENCE_OF_FeatureDescriptor_sequence_of);
4121
4122   return offset;
4123 }
4124
4125
4126
4127 static int
4128 dissect_h225_ParallelH245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4129 #line 344 "../../asn1/h225/h225.cnf"
4130   tvbuff_t *h245_tvb = NULL;
4131
4132   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4133                                        NO_BOUND, NO_BOUND, FALSE, &h245_tvb);
4134
4135   next_tvb_add_handle(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4136
4137
4138   return offset;
4139 }
4140
4141
4142 static const per_sequence_t ParallelH245Control_sequence_of[1] = {
4143   { &hf_h225_ParallelH245Control_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ParallelH245Control_item },
4144 };
4145
4146 static int
4147 dissect_h225_ParallelH245Control(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4148   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4149                                       ett_h225_ParallelH245Control, ParallelH245Control_sequence_of);
4150
4151   return offset;
4152 }
4153
4154
4155 static const per_sequence_t ExtendedAliasAddress_sequence[] = {
4156   { &hf_h225_extAliasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
4157   { &hf_h225_presentationIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4158   { &hf_h225_screeningIndicator, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4159   { NULL, 0, 0, NULL }
4160 };
4161
4162 static int
4163 dissect_h225_ExtendedAliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4164   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4165                                    ett_h225_ExtendedAliasAddress, ExtendedAliasAddress_sequence);
4166
4167   return offset;
4168 }
4169
4170
4171 static const per_sequence_t SEQUENCE_OF_ExtendedAliasAddress_sequence_of[1] = {
4172   { &hf_h225_additionalSourceAddresses_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ExtendedAliasAddress },
4173 };
4174
4175 static int
4176 dissect_h225_SEQUENCE_OF_ExtendedAliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4177   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4178                                       ett_h225_SEQUENCE_OF_ExtendedAliasAddress, SEQUENCE_OF_ExtendedAliasAddress_sequence_of);
4179
4180   return offset;
4181 }
4182
4183
4184
4185 static int
4186 dissect_h225_INTEGER_1_31(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4187   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
4188                                                             1U, 31U, NULL, FALSE);
4189
4190   return offset;
4191 }
4192
4193
4194
4195 static int
4196 dissect_h225_BMPString_SIZE_1_80(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4197   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
4198                                           1, 80, FALSE);
4199
4200   return offset;
4201 }
4202
4203
4204 static const per_sequence_t DisplayName_sequence[] = {
4205   { &hf_h225_language_01    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h225_IA5String },
4206   { &hf_h225_name           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BMPString_SIZE_1_80 },
4207   { NULL, 0, 0, NULL }
4208 };
4209
4210 static int
4211 dissect_h225_DisplayName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4212   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4213                                    ett_h225_DisplayName, DisplayName_sequence);
4214
4215   return offset;
4216 }
4217
4218
4219 static const per_sequence_t SEQUENCE_OF_DisplayName_sequence_of[1] = {
4220   { &hf_h225_displayName_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DisplayName },
4221 };
4222
4223 static int
4224 dissect_h225_SEQUENCE_OF_DisplayName(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4225   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4226                                       ett_h225_SEQUENCE_OF_DisplayName, SEQUENCE_OF_DisplayName_sequence_of);
4227
4228   return offset;
4229 }
4230
4231
4232 static const per_sequence_t Setup_UUIE_sequence[] = {
4233   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4234   { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4235   { &hf_h225_sourceAddress  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4236   { &hf_h225_setup_UUIE_sourceInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4237   { &hf_h225_destinationAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4238   { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4239   { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4240   { &hf_h225_destExtraCRV   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CallReferenceValue },
4241   { &hf_h225_activeMC       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4242   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4243   { &hf_h225_conferenceGoal , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_conferenceGoal },
4244   { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
4245   { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
4246   { &hf_h225_sourceCallSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4247   { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4248   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4249   { &hf_h225_h245SecurityCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_H245Security },
4250   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4251   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4252   { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4253   { &hf_h225_mediaWaitForConnect, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4254   { &hf_h225_canOverlapSend , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4255   { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
4256   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4257   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4258   { &hf_h225_connectionParameters, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_connectionParameters },
4259   { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
4260   { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4261   { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4262   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4263   { &hf_h225_symmetricOperationRequired, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4264   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4265   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4266   { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
4267   { &hf_h225_neededFeatures , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4268   { &hf_h225_desiredFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4269   { &hf_h225_supportedFeatures, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4270   { &hf_h225_parallelH245Control, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ParallelH245Control },
4271   { &hf_h225_additionalSourceAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ExtendedAliasAddress },
4272   { &hf_h225_hopCount_1_31  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_31 },
4273   { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4274   { NULL, 0, 0, NULL }
4275 };
4276
4277 static int
4278 dissect_h225_Setup_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4279 #line 397 "../../asn1/h225/h225.cnf"
4280   contains_faststart = FALSE;
4281
4282   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4283                                    ett_h225_Setup_UUIE, Setup_UUIE_sequence);
4284
4285 #line 401 "../../asn1/h225/h225.cnf"
4286   /* Add to packet info */
4287   h225_pi->cs_type = H225_SETUP;
4288   if (contains_faststart == TRUE )
4289     g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
4290   else
4291     g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4292
4293   return offset;
4294 }
4295
4296
4297 static const per_sequence_t FeatureSet_sequence[] = {
4298   { &hf_h225_replacementFeatureSet, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4299   { &hf_h225_neededFeatures , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4300   { &hf_h225_desiredFeatures, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4301   { &hf_h225_supportedFeatures, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_FeatureDescriptor },
4302   { NULL, 0, 0, NULL }
4303 };
4304
4305 int
4306 dissect_h225_FeatureSet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4307   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4308                                    ett_h225_FeatureSet, FeatureSet_sequence);
4309
4310   return offset;
4311 }
4312
4313
4314 static const per_sequence_t CallProceeding_UUIE_sequence[] = {
4315   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4316   { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4317   { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4318   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4319   { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4320   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4321   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4322   { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4323   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4324   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4325   { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4326   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4327   { NULL, 0, 0, NULL }
4328 };
4329
4330 static int
4331 dissect_h225_CallProceeding_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4332   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4333                                    ett_h225_CallProceeding_UUIE, CallProceeding_UUIE_sequence);
4334
4335 #line 410 "../../asn1/h225/h225.cnf"
4336   /* Add to packet info */
4337   h225_pi->cs_type = H225_CALL_PROCEDING;
4338   if (contains_faststart == TRUE )
4339     g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
4340   else
4341     g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4342
4343   return offset;
4344 }
4345
4346
4347 static const per_sequence_t Connect_UUIE_sequence[] = {
4348   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4349   { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4350   { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4351   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
4352   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4353   { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4354   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4355   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4356   { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4357   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4358   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4359   { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
4360   { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4361   { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4362   { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4363   { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4364   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4365   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4366   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4367   { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4368   { NULL, 0, 0, NULL }
4369 };
4370
4371 static int
4372 dissect_h225_Connect_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4373   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4374                                    ett_h225_Connect_UUIE, Connect_UUIE_sequence);
4375
4376 #line 434 "../../asn1/h225/h225.cnf"
4377   /* Add to packet info */
4378   h225_pi->cs_type = H225_CONNECT;
4379   if (contains_faststart == TRUE )
4380     g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
4381   else
4382     g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4383
4384   return offset;
4385 }
4386
4387
4388 static const per_sequence_t Alerting_UUIE_sequence[] = {
4389   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4390   { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4391   { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4392   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4393   { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4394   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4395   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4396   { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4397   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4398   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4399   { &hf_h225_alertingAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4400   { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4401   { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4402   { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4403   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4404   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4405   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4406   { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4407   { NULL, 0, 0, NULL }
4408 };
4409
4410 static int
4411 dissect_h225_Alerting_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4412   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4413                                    ett_h225_Alerting_UUIE, Alerting_UUIE_sequence);
4414
4415 #line 419 "../../asn1/h225/h225.cnf"
4416   /* Add to packet info */
4417   h225_pi->cs_type = H225_ALERTING;
4418   if (contains_faststart == TRUE )
4419     g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
4420   else
4421     g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4422
4423   return offset;
4424 }
4425
4426
4427 static const per_sequence_t Information_UUIE_sequence[] = {
4428   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4429   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4430   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4431   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4432   { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4433   { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4434   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4435   { NULL, 0, 0, NULL }
4436 };
4437
4438 static int
4439 dissect_h225_Information_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4440   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4441                                    ett_h225_Information_UUIE, Information_UUIE_sequence);
4442
4443 #line 368 "../../asn1/h225/h225.cnf"
4444   /* Add to packet info */
4445   h225_pi->cs_type = H225_INFORMATION;
4446   g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4447
4448   return offset;
4449 }
4450
4451
4452 static const value_string h225_SecurityErrors_vals[] = {
4453   {   0, "securityWrongSyncTime" },
4454   {   1, "securityReplay" },
4455   {   2, "securityWrongGeneralID" },
4456   {   3, "securityWrongSendersID" },
4457   {   4, "securityIntegrityFailed" },
4458   {   5, "securityWrongOID" },
4459   {   6, "securityDHmismatch" },
4460   {   7, "securityCertificateExpired" },
4461   {   8, "securityCertificateDateInvalid" },
4462   {   9, "securityCertificateRevoked" },
4463   {  10, "securityCertificateNotReadable" },
4464   {  11, "securityCertificateSignatureInvalid" },
4465   {  12, "securityCertificateMissing" },
4466   {  13, "securityCertificateIncomplete" },
4467   {  14, "securityUnsupportedCertificateAlgOID" },
4468   {  15, "securityUnknownCA" },
4469   { 0, NULL }
4470 };
4471
4472 static const per_choice_t SecurityErrors_choice[] = {
4473   {   0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4474   {   1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4475   {   2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4476   {   3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4477   {   4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4478   {   5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4479   {   6, &hf_h225_securityDHmismatch, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4480   {   7, &hf_h225_securityCertificateExpired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4481   {   8, &hf_h225_securityCertificateDateInvalid, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4482   {   9, &hf_h225_securityCertificateRevoked, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4483   {  10, &hf_h225_securityCertificateNotReadable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4484   {  11, &hf_h225_securityCertificateSignatureInvalid, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4485   {  12, &hf_h225_securityCertificateMissing, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4486   {  13, &hf_h225_securityCertificateIncomplete, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4487   {  14, &hf_h225_securityUnsupportedCertificateAlgOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4488   {  15, &hf_h225_securityUnknownCA, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4489   { 0, NULL, 0, NULL }
4490 };
4491
4492 static int
4493 dissect_h225_SecurityErrors(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4494   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4495                                  ett_h225_SecurityErrors, SecurityErrors_choice,
4496                                  NULL);
4497
4498   return offset;
4499 }
4500
4501
4502 const value_string h225_ReleaseCompleteReason_vals[] = {
4503   {   0, "noBandwidth" },
4504   {   1, "gatekeeperResources" },
4505   {   2, "unreachableDestination" },
4506   {   3, "destinationRejection" },
4507   {   4, "invalidRevision" },
4508   {   5, "noPermission" },
4509   {   6, "unreachableGatekeeper" },
4510   {   7, "gatewayResources" },
4511   {   8, "badFormatAddress" },
4512   {   9, "adaptiveBusy" },
4513   {  10, "inConf" },
4514   {  11, "undefinedReason" },
4515   {  12, "facilityCallDeflection" },
4516   {  13, "securityDenied" },
4517   {  14, "calledPartyNotRegistered" },
4518   {  15, "callerNotRegistered" },
4519   {  16, "newConnectionNeeded" },
4520   {  17, "nonStandardReason" },
4521   {  18, "replaceWithConferenceInvite" },
4522   {  19, "genericDataReason" },
4523   {  20, "neededFeatureNotSupported" },
4524   {  21, "tunnelledSignallingRejected" },
4525   {  22, "invalidCID" },
4526   {  23, "securityError" },
4527   {  24, "hopCountExceeded" },
4528   { 0, NULL }
4529 };
4530
4531 static const per_choice_t ReleaseCompleteReason_choice[] = {
4532   {   0, &hf_h225_noBandwidth    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4533   {   1, &hf_h225_gatekeeperResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4534   {   2, &hf_h225_unreachableDestination, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4535   {   3, &hf_h225_destinationRejection, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4536   {   4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4537   {   5, &hf_h225_noPermission   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4538   {   6, &hf_h225_unreachableGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4539   {   7, &hf_h225_gatewayResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4540   {   8, &hf_h225_badFormatAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4541   {   9, &hf_h225_adaptiveBusy   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4542   {  10, &hf_h225_inConf         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4543   {  11, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4544   {  12, &hf_h225_facilityCallDeflection, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4545   {  13, &hf_h225_securityDenied , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4546   {  14, &hf_h225_calledPartyNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4547   {  15, &hf_h225_callerNotRegistered, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4548   {  16, &hf_h225_newConnectionNeeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4549   {  17, &hf_h225_nonStandardReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NonStandardParameter },
4550   {  18, &hf_h225_replaceWithConferenceInvite, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ConferenceIdentifier },
4551   {  19, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4552   {  20, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4553   {  21, &hf_h225_tunnelledSignallingRejected, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4554   {  22, &hf_h225_invalidCID     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4555   {  23, &hf_h225_rLC_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
4556   {  24, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4557   { 0, NULL, 0, NULL }
4558 };
4559
4560 int
4561 dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4562 #line 552 "../../asn1/h225/h225.cnf"
4563   gint32 value;
4564
4565   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4566                                  ett_h225_ReleaseCompleteReason, ReleaseCompleteReason_choice,
4567                                  &value);
4568
4569   h225_pi->reason = value;
4570
4571
4572   return offset;
4573 }
4574
4575
4576 static const per_sequence_t ReleaseComplete_UUIE_sequence[] = {
4577   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4578   { &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ReleaseCompleteReason },
4579   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4580   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4581   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4582   { &hf_h225_busyAddress    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4583   { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4584   { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4585   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
4586   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4587   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4588   { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4589   { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4590   { NULL, 0, 0, NULL }
4591 };
4592
4593 static int
4594 dissect_h225_ReleaseComplete_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4595   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4596                                    ett_h225_ReleaseComplete_UUIE, ReleaseComplete_UUIE_sequence);
4597
4598 #line 428 "../../asn1/h225/h225.cnf"
4599   /* Add to packet info */
4600   h225_pi->cs_type = H225_RELEASE_COMPLET;
4601   g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4602
4603   return offset;
4604 }
4605
4606
4607 const value_string FacilityReason_vals[] = {
4608   {   0, "routeCallToGatekeeper" },
4609   {   1, "callForwarded" },
4610   {   2, "routeCallToMC" },
4611   {   3, "undefinedReason" },
4612   {   4, "conferenceListChoice" },
4613   {   5, "startH245" },
4614   {   6, "noH245" },
4615   {   7, "newTokens" },
4616   {   8, "featureSetUpdate" },
4617   {   9, "forwardedElements" },
4618   {  10, "transportedInformation" },
4619   { 0, NULL }
4620 };
4621
4622 static const per_choice_t FacilityReason_choice[] = {
4623   {   0, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4624   {   1, &hf_h225_callForwarded  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4625   {   2, &hf_h225_routeCallToMC  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4626   {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
4627   {   4, &hf_h225_conferenceListChoice, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4628   {   5, &hf_h225_startH245      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4629   {   6, &hf_h225_noH245         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4630   {   7, &hf_h225_newTokens      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4631   {   8, &hf_h225_featureSetUpdate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4632   {   9, &hf_h225_forwardedElements, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4633   {  10, &hf_h225_transportedInformation, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
4634   { 0, NULL, 0, NULL }
4635 };
4636
4637 static int
4638 dissect_h225_FacilityReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4639 #line 476 "../../asn1/h225/h225.cnf"
4640   gint32 value;
4641
4642   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4643                                  ett_h225_FacilityReason, FacilityReason_choice,
4644                                  &value);
4645
4646   h225_pi->reason = value;
4647
4648
4649   return offset;
4650 }
4651
4652
4653 static const per_sequence_t ConferenceList_sequence[] = {
4654   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ConferenceIdentifier },
4655   { &hf_h225_conferenceAlias, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4656   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
4657   { NULL, 0, 0, NULL }
4658 };
4659
4660 static int
4661 dissect_h225_ConferenceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4662   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4663                                    ett_h225_ConferenceList, ConferenceList_sequence);
4664
4665   return offset;
4666 }
4667
4668
4669 static const per_sequence_t SEQUENCE_OF_ConferenceList_sequence_of[1] = {
4670   { &hf_h225_conferences_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceList },
4671 };
4672
4673 static int
4674 dissect_h225_SEQUENCE_OF_ConferenceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4675   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4676                                       ett_h225_SEQUENCE_OF_ConferenceList, SEQUENCE_OF_ConferenceList_sequence_of);
4677
4678   return offset;
4679 }
4680
4681
4682 static const per_sequence_t Facility_UUIE_sequence[] = {
4683   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4684   { &hf_h225_alternativeAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
4685   { &hf_h225_alternativeAliasAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4686   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ConferenceIdentifier },
4687   { &hf_h225_facilityReason , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_FacilityReason },
4688   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4689   { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4690   { &hf_h225_uUIE_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
4691   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4692   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4693   { &hf_h225_conferences    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ConferenceList },
4694   { &hf_h225_h245Address    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4695   { &hf_h225_fastStart      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FastStart },
4696   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4697   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4698   { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4699   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
4700   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
4701   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
4702   { &hf_h225_uUIE_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4703   { &hf_h225_h245SecurityMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Security },
4704   { NULL, 0, 0, NULL }
4705 };
4706
4707 static int
4708 dissect_h225_Facility_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4709   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4710                                    ett_h225_Facility_UUIE, Facility_UUIE_sequence);
4711
4712 #line 389 "../../asn1/h225/h225.cnf"
4713   /* Add to packet info */
4714   h225_pi->cs_type = H225_FACILITY;
4715   g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4716
4717   return offset;
4718 }
4719
4720
4721 static const per_sequence_t Progress_UUIE_sequence[] = {
4722   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4723   { &hf_h225_uUIE_destinationInfo, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
4724   { &hf_h225_h245Address    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245TransportAddress },
4725   { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4726   { &hf_h225_h245SecurityMode, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_H245Security },
4727   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4728   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4729   { &hf_h225_fastStart      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FastStart },
4730   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4731   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
4732   { &hf_h225_fastConnectRefused, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
4733   { NULL, 0, 0, NULL }
4734 };
4735
4736 static int
4737 dissect_h225_Progress_UUIE(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_h225_Progress_UUIE, Progress_UUIE_sequence);
4740
4741 #line 374 "../../asn1/h225/h225.cnf"
4742   /* Add to packet info */
4743   h225_pi->cs_type = H225_PROGRESS;
4744   if (contains_faststart == TRUE )
4745     g_snprintf(h225_pi->frame_label, 50, "%s OLC (%s)", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"), h225_pi->frame_label);
4746   else
4747     g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4748
4749   return offset;
4750 }
4751
4752
4753
4754 static int
4755 dissect_h225_T_empty_flg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4756   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
4757
4758 #line 358 "../../asn1/h225/h225.cnf"
4759   h225_pi->cs_type = H225_EMPTY;
4760
4761   return offset;
4762 }
4763
4764
4765 static const per_sequence_t Status_UUIE_sequence[] = {
4766   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4767   { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4768   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4769   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4770   { NULL, 0, 0, NULL }
4771 };
4772
4773 static int
4774 dissect_h225_Status_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4775   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4776                                    ett_h225_Status_UUIE, Status_UUIE_sequence);
4777
4778 #line 362 "../../asn1/h225/h225.cnf"
4779   /* Add to packet info */
4780   h225_pi->cs_type = H225_STATUS;
4781   g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4782
4783   return offset;
4784 }
4785
4786
4787 static const per_sequence_t StatusInquiry_UUIE_sequence[] = {
4788   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4789   { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4790   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4791   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4792   { NULL, 0, 0, NULL }
4793 };
4794
4795 static int
4796 dissect_h225_StatusInquiry_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4797   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4798                                    ett_h225_StatusInquiry_UUIE, StatusInquiry_UUIE_sequence);
4799
4800   return offset;
4801 }
4802
4803
4804 static const per_sequence_t SetupAcknowledge_UUIE_sequence[] = {
4805   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4806   { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4807   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4808   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4809   { NULL, 0, 0, NULL }
4810 };
4811
4812 static int
4813 dissect_h225_SetupAcknowledge_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4814   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4815                                    ett_h225_SetupAcknowledge_UUIE, SetupAcknowledge_UUIE_sequence);
4816
4817 #line 383 "../../asn1/h225/h225.cnf"
4818   /* Add to packet info */
4819   h225_pi->cs_type = H225_SETUP_ACK;
4820   g_snprintf(h225_pi->frame_label, 50, "%s", val_to_str(h225_pi->cs_type, T_h323_message_body_vals, "<unknown>"));
4821
4822   return offset;
4823 }
4824
4825
4826 static const per_sequence_t Notify_UUIE_sequence[] = {
4827   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
4828   { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
4829   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
4830   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
4831   { &hf_h225_connectedAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
4832   { &hf_h225_presentationIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_PresentationIndicator },
4833   { &hf_h225_screeningIndicator, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ScreeningIndicator },
4834   { &hf_h225_destinationInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
4835   { &hf_h225_displayName    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_DisplayName },
4836   { NULL, 0, 0, NULL }
4837 };
4838
4839 static int
4840 dissect_h225_Notify_UUIE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4841   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
4842                                    ett_h225_Notify_UUIE, Notify_UUIE_sequence);
4843
4844   return offset;
4845 }
4846
4847
4848 const value_string T_h323_message_body_vals[] = {
4849   {   0, "setup" },
4850   {   1, "callProceeding" },
4851   {   2, "connect" },
4852   {   3, "alerting" },
4853   {   4, "information" },
4854   {   5, "releaseComplete" },
4855   {   6, "facility" },
4856   {   7, "progress" },
4857   {   8, "empty" },
4858   {   9, "status" },
4859   {  10, "statusInquiry" },
4860   {  11, "setupAcknowledge" },
4861   {  12, "notify" },
4862   { 0, NULL }
4863 };
4864
4865 static const per_choice_t T_h323_message_body_choice[] = {
4866   {   0, &hf_h225_setup          , ASN1_EXTENSION_ROOT    , dissect_h225_Setup_UUIE },
4867   {   1, &hf_h225_callProceeding , ASN1_EXTENSION_ROOT    , dissect_h225_CallProceeding_UUIE },
4868   {   2, &hf_h225_connect        , ASN1_EXTENSION_ROOT    , dissect_h225_Connect_UUIE },
4869   {   3, &hf_h225_alerting       , ASN1_EXTENSION_ROOT    , dissect_h225_Alerting_UUIE },
4870   {   4, &hf_h225_information    , ASN1_EXTENSION_ROOT    , dissect_h225_Information_UUIE },
4871   {   5, &hf_h225_releaseComplete, ASN1_EXTENSION_ROOT    , dissect_h225_ReleaseComplete_UUIE },
4872   {   6, &hf_h225_facility       , ASN1_EXTENSION_ROOT    , dissect_h225_Facility_UUIE },
4873   {   7, &hf_h225_progress       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Progress_UUIE },
4874   {   8, &hf_h225_empty_flg      , ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_empty_flg },
4875   {   9, &hf_h225_status         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Status_UUIE },
4876   {  10, &hf_h225_statusInquiry  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_StatusInquiry_UUIE },
4877   {  11, &hf_h225_setupAcknowledge, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SetupAcknowledge_UUIE },
4878   {  12, &hf_h225_notify         , ASN1_NOT_EXTENSION_ROOT, dissect_h225_Notify_UUIE },
4879   { 0, NULL, 0, NULL }
4880 };
4881
4882 static int
4883 dissect_h225_T_h323_message_body(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4884 #line 241 "../../asn1/h225/h225.cnf"
4885   gint32 message_body_val;
4886
4887   contains_faststart = FALSE;
4888   call_id_guid = NULL;
4889   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
4890                                  ett_h225_T_h323_message_body, T_h323_message_body_choice,
4891                                  &message_body_val);
4892
4893   col_append_fstr(actx->pinfo->cinfo, COL_INFO, "CS: %s ",
4894     val_to_str(message_body_val, T_h323_message_body_vals, "<unknown>"));
4895
4896   if (h225_pi->msg_type == H225_CS) {
4897     /* Don't override msg_tag value from IRR */
4898     h225_pi->msg_tag = message_body_val;
4899   }
4900
4901   if (call_id_guid) {
4902     h225_pi->guid = *call_id_guid;
4903   }
4904
4905   if (contains_faststart == TRUE )
4906   {
4907     col_append_str(actx->pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
4908   }
4909
4910   col_set_fence(actx->pinfo->cinfo,COL_INFO);
4911
4912
4913
4914   return offset;
4915 }
4916
4917
4918
4919 static int
4920 dissect_h225_T_h4501SupplementaryService_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4921 #line 573 "../../asn1/h225/h225.cnf"
4922   tvbuff_t *h4501_tvb = NULL;
4923
4924   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4925                                        NO_BOUND, NO_BOUND, FALSE, &h4501_tvb);
4926
4927   if (h4501_tvb && tvb_reported_length(h4501_tvb)) {
4928     call_dissector(h4501_handle, h4501_tvb, actx->pinfo, tree);
4929   }
4930
4931
4932   return offset;
4933 }
4934
4935
4936 static const per_sequence_t T_h4501SupplementaryService_sequence_of[1] = {
4937   { &hf_h225_h4501SupplementaryService_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_h4501SupplementaryService_item },
4938 };
4939
4940 static int
4941 dissect_h225_T_h4501SupplementaryService(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4942   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4943                                       ett_h225_T_h4501SupplementaryService, T_h4501SupplementaryService_sequence_of);
4944
4945   return offset;
4946 }
4947
4948
4949
4950 static int
4951 dissect_h225_T_h245Tunnelling(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4952   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, &(h225_pi->is_h245Tunneling));
4953
4954   return offset;
4955 }
4956
4957
4958
4959 static int
4960 dissect_h225_H245Control_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4961 #line 351 "../../asn1/h225/h225.cnf"
4962   tvbuff_t *h245_tvb = NULL;
4963
4964   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
4965                                        NO_BOUND, NO_BOUND, FALSE, &h245_tvb);
4966
4967   next_tvb_add_handle(&h245_list, h245_tvb, (h225_h245_in_tree)?tree:NULL, h245dg_handle);
4968
4969
4970   return offset;
4971 }
4972
4973
4974 static const per_sequence_t H245Control_sequence_of[1] = {
4975   { &hf_h225_H245Control_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H245Control_item },
4976 };
4977
4978 static int
4979 dissect_h225_H245Control(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4980   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4981                                       ett_h225_H245Control, H245Control_sequence_of);
4982
4983   return offset;
4984 }
4985
4986
4987 static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
4988   { &hf_h225_nonStandardControl_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
4989 };
4990
4991 static int
4992 dissect_h225_SEQUENCE_OF_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4993   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
4994                                       ett_h225_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
4995
4996   return offset;
4997 }
4998
4999
5000 static const per_sequence_t CallLinkage_sequence[] = {
5001   { &hf_h225_globalCallId   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GloballyUniqueID },
5002   { &hf_h225_threadId       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GloballyUniqueID },
5003   { NULL, 0, 0, NULL }
5004 };
5005
5006 static int
5007 dissect_h225_CallLinkage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5008   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5009                                    ett_h225_CallLinkage, CallLinkage_sequence);
5010
5011   return offset;
5012 }
5013
5014
5015
5016 static int
5017 dissect_h225_T_messageContent_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5018 #line 595 "../../asn1/h225/h225.cnf"
5019   tvbuff_t *next_tvb = NULL;
5020
5021   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5022                                        NO_BOUND, NO_BOUND, FALSE, &next_tvb);
5023
5024   next_tvb_add_handle(&tp_list, next_tvb, (h225_tp_in_tree)?tree:NULL, tp_handle);
5025
5026
5027   return offset;
5028 }
5029
5030
5031 static const per_sequence_t T_messageContent_sequence_of[1] = {
5032   { &hf_h225_messageContent_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent_item },
5033 };
5034
5035 static int
5036 dissect_h225_T_messageContent(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5037   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5038                                       ett_h225_T_messageContent, T_messageContent_sequence_of);
5039
5040   return offset;
5041 }
5042
5043
5044 static const per_sequence_t T_tunnelledSignallingMessage_sequence[] = {
5045   { &hf_h225_tunnelledProtocolID, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TunnelledProtocol },
5046   { &hf_h225_messageContent , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_messageContent },
5047   { &hf_h225_tunnellingRequired, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5048   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5049   { NULL, 0, 0, NULL }
5050 };
5051
5052 static int
5053 dissect_h225_T_tunnelledSignallingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5054 #line 593 "../../asn1/h225/h225.cnf"
5055   tp_handle = NULL;
5056
5057   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5058                                    ett_h225_T_tunnelledSignallingMessage, T_tunnelledSignallingMessage_sequence);
5059
5060   return offset;
5061 }
5062
5063
5064
5065 static int
5066 dissect_h225_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5067   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5068                                        NO_BOUND, NO_BOUND, FALSE, NULL);
5069
5070   return offset;
5071 }
5072
5073
5074 static const per_sequence_t StimulusControl_sequence[] = {
5075   { &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5076   { &hf_h225_isText         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5077   { &hf_h225_h248Message    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_OCTET_STRING },
5078   { NULL, 0, 0, NULL }
5079 };
5080
5081 static int
5082 dissect_h225_StimulusControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5083   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5084                                    ett_h225_StimulusControl, StimulusControl_sequence);
5085
5086   return offset;
5087 }
5088
5089
5090 static const per_sequence_t H323_UU_PDU_sequence[] = {
5091   { &hf_h225_h323_message_body, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_h323_message_body },
5092   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5093   { &hf_h225_h4501SupplementaryService, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_h4501SupplementaryService },
5094   { &hf_h225_h245Tunnelling , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_T_h245Tunnelling },
5095   { &hf_h225_h245Control    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_H245Control },
5096   { &hf_h225_nonStandardControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_NonStandardParameter },
5097   { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
5098   { &hf_h225_tunnelledSignallingMessage, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_tunnelledSignallingMessage },
5099   { &hf_h225_provisionalRespToH245Tunnelling, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5100   { &hf_h225_stimulusControl, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_StimulusControl },
5101   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5102   { NULL, 0, 0, NULL }
5103 };
5104
5105 static int
5106 dissect_h225_H323_UU_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5107   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5108                                    ett_h225_H323_UU_PDU, H323_UU_PDU_sequence);
5109
5110   return offset;
5111 }
5112
5113
5114
5115 static int
5116 dissect_h225_OCTET_STRING_SIZE_1_131(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5117   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5118                                        1, 131, FALSE, NULL);
5119
5120   return offset;
5121 }
5122
5123
5124 static const per_sequence_t T_user_data_sequence[] = {
5125   { &hf_h225_protocol_discriminator, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_255 },
5126   { &hf_h225_user_information, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING_SIZE_1_131 },
5127   { NULL, 0, 0, NULL }
5128 };
5129
5130 static int
5131 dissect_h225_T_user_data(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5132   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5133                                    ett_h225_T_user_data, T_user_data_sequence);
5134
5135   return offset;
5136 }
5137
5138
5139 static const per_sequence_t H323_UserInformation_sequence[] = {
5140   { &hf_h225_h323_uu_pdu    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
5141   { &hf_h225_user_data      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_user_data },
5142   { NULL, 0, 0, NULL }
5143 };
5144
5145 static int
5146 dissect_h225_H323_UserInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5147   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5148                                    ett_h225_H323_UserInformation, H323_UserInformation_sequence);
5149
5150   return offset;
5151 }
5152
5153
5154 static const per_sequence_t T_range_sequence[] = {
5155   { &hf_h225_startOfRange   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5156   { &hf_h225_endOfRange     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
5157   { NULL, 0, 0, NULL }
5158 };
5159
5160 static int
5161 dissect_h225_T_range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5162   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5163                                    ett_h225_T_range, T_range_sequence);
5164
5165   return offset;
5166 }
5167
5168
5169 static const value_string h225_AddressPattern_vals[] = {
5170   {   0, "wildcard" },
5171   {   1, "range" },
5172   { 0, NULL }
5173 };
5174
5175 static const per_choice_t AddressPattern_choice[] = {
5176   {   0, &hf_h225_wildcard       , ASN1_EXTENSION_ROOT    , dissect_h225_AliasAddress },
5177   {   1, &hf_h225_range          , ASN1_EXTENSION_ROOT    , dissect_h225_T_range },
5178   { 0, NULL, 0, NULL }
5179 };
5180
5181 static int
5182 dissect_h225_AddressPattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5183   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5184                                  ett_h225_AddressPattern, AddressPattern_choice,
5185                                  NULL);
5186
5187   return offset;
5188 }
5189
5190
5191 static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of[1] = {
5192   { &hf_h225_callSignalAddress_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5193 };
5194
5195 static int
5196 dissect_h225_SEQUENCE_OF_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5197   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5198                                       ett_h225_SEQUENCE_OF_TransportAddress, SEQUENCE_OF_TransportAddress_sequence_of);
5199
5200   return offset;
5201 }
5202
5203
5204
5205 static int
5206 dissect_h225_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5207   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5208                                                             0U, 127U, NULL, FALSE);
5209
5210   return offset;
5211 }
5212
5213
5214 static const per_sequence_t AlternateTransportAddresses_sequence[] = {
5215   { &hf_h225_annexE         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5216   { &hf_h225_sctp           , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5217   { NULL, 0, 0, NULL }
5218 };
5219
5220 int
5221 dissect_h225_AlternateTransportAddresses(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5222   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5223                                    ett_h225_AlternateTransportAddresses, AlternateTransportAddresses_sequence);
5224
5225   return offset;
5226 }
5227
5228
5229 static const per_sequence_t Endpoint_sequence[] = {
5230   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5231   { &hf_h225_aliasAddress   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5232   { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5233   { &hf_h225_rasAddress     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
5234   { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointType },
5235   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5236   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5237   { &hf_h225_priority       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_0_127 },
5238   { &hf_h225_remoteExtensionAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5239   { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5240   { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
5241   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
5242   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5243   { NULL, 0, 0, NULL }
5244 };
5245
5246 static int
5247 dissect_h225_Endpoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5248   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5249                                    ett_h225_Endpoint, Endpoint_sequence);
5250
5251   return offset;
5252 }
5253
5254
5255 static const value_string h225_UseSpecifiedTransport_vals[] = {
5256   {   0, "tcp" },
5257   {   1, "annexE" },
5258   {   2, "sctp" },
5259   { 0, NULL }
5260 };
5261
5262 static const per_choice_t UseSpecifiedTransport_choice[] = {
5263   {   0, &hf_h225_tcp            , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5264   {   1, &hf_h225_annexE_flg     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5265   {   2, &hf_h225_sctp_flg       , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5266   { 0, NULL, 0, NULL }
5267 };
5268
5269 static int
5270 dissect_h225_UseSpecifiedTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5271   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5272                                  ett_h225_UseSpecifiedTransport, UseSpecifiedTransport_choice,
5273                                  NULL);
5274
5275   return offset;
5276 }
5277
5278
5279 static const per_sequence_t AlternateGK_sequence[] = {
5280   { &hf_h225_alternateGK_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5281   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5282   { &hf_h225_needToRegister , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5283   { &hf_h225_priority       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_0_127 },
5284   { NULL, 0, 0, NULL }
5285 };
5286
5287 static int
5288 dissect_h225_AlternateGK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5289   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5290                                    ett_h225_AlternateGK, AlternateGK_sequence);
5291
5292   return offset;
5293 }
5294
5295
5296 static const per_sequence_t SEQUENCE_OF_AlternateGK_sequence_of[1] = {
5297   { &hf_h225_alternateGatekeeper_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AlternateGK },
5298 };
5299
5300 static int
5301 dissect_h225_SEQUENCE_OF_AlternateGK(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5302   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5303                                       ett_h225_SEQUENCE_OF_AlternateGK, SEQUENCE_OF_AlternateGK_sequence_of);
5304
5305   return offset;
5306 }
5307
5308
5309 static const per_sequence_t AltGKInfo_sequence[] = {
5310   { &hf_h225_alternateGatekeeper, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AlternateGK },
5311   { &hf_h225_altGKisPermanent, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5312   { NULL, 0, 0, NULL }
5313 };
5314
5315 static int
5316 dissect_h225_AltGKInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5317   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5318                                    ett_h225_AltGKInfo, AltGKInfo_sequence);
5319
5320   return offset;
5321 }
5322
5323
5324 static const value_string h225_SecurityErrors2_vals[] = {
5325   {   0, "securityWrongSyncTime" },
5326   {   1, "securityReplay" },
5327   {   2, "securityWrongGeneralID" },
5328   {   3, "securityWrongSendersID" },
5329   {   4, "securityIntegrityFailed" },
5330   {   5, "securityWrongOID" },
5331   { 0, NULL }
5332 };
5333
5334 static const per_choice_t SecurityErrors2_choice[] = {
5335   {   0, &hf_h225_securityWrongSyncTime, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5336   {   1, &hf_h225_securityReplay , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5337   {   2, &hf_h225_securityWrongGeneralID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5338   {   3, &hf_h225_securityWrongSendersID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5339   {   4, &hf_h225_securityIntegrityFailed, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5340   {   5, &hf_h225_securityWrongOID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5341   { 0, NULL, 0, NULL }
5342 };
5343
5344 static int
5345 dissect_h225_SecurityErrors2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5346   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5347                                  ett_h225_SecurityErrors2, SecurityErrors2_choice,
5348                                  NULL);
5349
5350   return offset;
5351 }
5352
5353
5354
5355 static int
5356 dissect_h225_RequestSeqNum(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5357   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5358                                                             1U, 65535U, &(h225_pi->requestSeqNum), FALSE);
5359
5360   return offset;
5361 }
5362
5363
5364
5365 int
5366 dissect_h225_TimeToLive(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_integer(tvb, offset, actx, tree, hf_index,
5368                                                             1U, 4294967295U, NULL, FALSE);
5369
5370   return offset;
5371 }
5372
5373
5374
5375 static int
5376 dissect_h225_H248PackagesDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5377   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5378                                        NO_BOUND, NO_BOUND, FALSE, NULL);
5379
5380   return offset;
5381 }
5382
5383
5384 static const value_string h225_EncryptIntAlg_vals[] = {
5385   {   0, "nonStandard" },
5386   {   1, "isoAlgorithm" },
5387   { 0, NULL }
5388 };
5389
5390 static const per_choice_t EncryptIntAlg_choice[] = {
5391   {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
5392   {   1, &hf_h225_isoAlgorithm   , ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5393   { 0, NULL, 0, NULL }
5394 };
5395
5396 static int
5397 dissect_h225_EncryptIntAlg(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5398   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5399                                  ett_h225_EncryptIntAlg, EncryptIntAlg_choice,
5400                                  NULL);
5401
5402   return offset;
5403 }
5404
5405
5406 static const value_string h225_NonIsoIntegrityMechanism_vals[] = {
5407   {   0, "hMAC-MD5" },
5408   {   1, "hMAC-iso10118-2-s" },
5409   {   2, "hMAC-iso10118-2-l" },
5410   {   3, "hMAC-iso10118-3" },
5411   { 0, NULL }
5412 };
5413
5414 static const per_choice_t NonIsoIntegrityMechanism_choice[] = {
5415   {   0, &hf_h225_hMAC_MD5       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5416   {   1, &hf_h225_hMAC_iso10118_2_s, ASN1_EXTENSION_ROOT    , dissect_h225_EncryptIntAlg },
5417   {   2, &hf_h225_hMAC_iso10118_2_l, ASN1_EXTENSION_ROOT    , dissect_h225_EncryptIntAlg },
5418   {   3, &hf_h225_hMAC_iso10118_3, ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5419   { 0, NULL, 0, NULL }
5420 };
5421
5422 static int
5423 dissect_h225_NonIsoIntegrityMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5424   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5425                                  ett_h225_NonIsoIntegrityMechanism, NonIsoIntegrityMechanism_choice,
5426                                  NULL);
5427
5428   return offset;
5429 }
5430
5431
5432 const value_string h225_IntegrityMechanism_vals[] = {
5433   {   0, "nonStandard" },
5434   {   1, "digSig" },
5435   {   2, "iso9797" },
5436   {   3, "nonIsoIM" },
5437   { 0, NULL }
5438 };
5439
5440 static const per_choice_t IntegrityMechanism_choice[] = {
5441   {   0, &hf_h225_nonStandard    , ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardParameter },
5442   {   1, &hf_h225_digSig         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5443   {   2, &hf_h225_iso9797        , ASN1_EXTENSION_ROOT    , dissect_h225_OBJECT_IDENTIFIER },
5444   {   3, &hf_h225_nonIsoIM       , ASN1_EXTENSION_ROOT    , dissect_h225_NonIsoIntegrityMechanism },
5445   { 0, NULL, 0, NULL }
5446 };
5447
5448 int
5449 dissect_h225_IntegrityMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5450   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5451                                  ett_h225_IntegrityMechanism, IntegrityMechanism_choice,
5452                                  NULL);
5453
5454   return offset;
5455 }
5456
5457
5458
5459 static int
5460 dissect_h225_BIT_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5461   offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index,
5462                                      NO_BOUND, NO_BOUND, FALSE, NULL, NULL);
5463
5464   return offset;
5465 }
5466
5467
5468 static const per_sequence_t ICV_sequence[] = {
5469   { &hf_h225_algorithmOID   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5470   { &hf_h225_icv            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BIT_STRING },
5471   { NULL, 0, 0, NULL }
5472 };
5473
5474 int
5475 dissect_h225_ICV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5476   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5477                                    ett_h225_ICV, ICV_sequence);
5478
5479   return offset;
5480 }
5481
5482
5483 static const per_sequence_t CapacityReportingCapability_sequence[] = {
5484   { &hf_h225_canReportCallCapacity, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5485   { NULL, 0, 0, NULL }
5486 };
5487
5488 static int
5489 dissect_h225_CapacityReportingCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5490   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5491                                    ett_h225_CapacityReportingCapability, CapacityReportingCapability_sequence);
5492
5493   return offset;
5494 }
5495
5496
5497 static const per_sequence_t CapacityReportingSpecification_when_sequence[] = {
5498   { &hf_h225_callStart      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5499   { &hf_h225_callEnd        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5500   { NULL, 0, 0, NULL }
5501 };
5502
5503 static int
5504 dissect_h225_CapacityReportingSpecification_when(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5505   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5506                                    ett_h225_CapacityReportingSpecification_when, CapacityReportingSpecification_when_sequence);
5507
5508   return offset;
5509 }
5510
5511
5512 static const per_sequence_t CapacityReportingSpecification_sequence[] = {
5513   { &hf_h225_capacityReportingSpecification_when, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CapacityReportingSpecification_when },
5514   { NULL, 0, 0, NULL }
5515 };
5516
5517 static int
5518 dissect_h225_CapacityReportingSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5519   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5520                                    ett_h225_CapacityReportingSpecification, CapacityReportingSpecification_sequence);
5521
5522   return offset;
5523 }
5524
5525
5526 static const per_sequence_t RasUsageInfoTypes_sequence[] = {
5527   { &hf_h225_nonStandardUsageTypes, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5528   { &hf_h225_startTime      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5529   { &hf_h225_endTime_flg    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5530   { &hf_h225_terminationCause_flg, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5531   { NULL, 0, 0, NULL }
5532 };
5533
5534 static int
5535 dissect_h225_RasUsageInfoTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5536   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5537                                    ett_h225_RasUsageInfoTypes, RasUsageInfoTypes_sequence);
5538
5539   return offset;
5540 }
5541
5542
5543 static const per_sequence_t RasUsageSpecification_when_sequence[] = {
5544   { &hf_h225_start          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5545   { &hf_h225_end            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5546   { &hf_h225_inIrr          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5547   { NULL, 0, 0, NULL }
5548 };
5549
5550 static int
5551 dissect_h225_RasUsageSpecification_when(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5552   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5553                                    ett_h225_RasUsageSpecification_when, RasUsageSpecification_when_sequence);
5554
5555   return offset;
5556 }
5557
5558
5559 static const per_sequence_t RasUsageSpecificationcallStartingPoint_sequence[] = {
5560   { &hf_h225_alerting_flg   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5561   { &hf_h225_connect_flg    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NULL },
5562   { NULL, 0, 0, NULL }
5563 };
5564
5565 static int
5566 dissect_h225_RasUsageSpecificationcallStartingPoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5567   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5568                                    ett_h225_RasUsageSpecificationcallStartingPoint, RasUsageSpecificationcallStartingPoint_sequence);
5569
5570   return offset;
5571 }
5572
5573
5574 static const per_sequence_t RasUsageSpecification_sequence[] = {
5575   { &hf_h225_when           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification_when },
5576   { &hf_h225_ras_callStartingPoint, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_RasUsageSpecificationcallStartingPoint },
5577   { &hf_h225_required       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageInfoTypes },
5578   { NULL, 0, 0, NULL }
5579 };
5580
5581 static int
5582 dissect_h225_RasUsageSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5583   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5584                                    ett_h225_RasUsageSpecification, RasUsageSpecification_sequence);
5585
5586   return offset;
5587 }
5588
5589
5590 static const per_sequence_t RasUsageInformation_sequence[] = {
5591   { &hf_h225_nonStandardUsageFields, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_NonStandardParameter },
5592   { &hf_h225_alertingTime   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5593   { &hf_h225_connectTime    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5594   { &hf_h225_endTime        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h235_TimeStamp },
5595   { NULL, 0, 0, NULL }
5596 };
5597
5598 static int
5599 dissect_h225_RasUsageInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5600   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5601                                    ett_h225_RasUsageInformation, RasUsageInformation_sequence);
5602
5603   return offset;
5604 }
5605
5606
5607
5608 static int
5609 dissect_h225_OCTET_STRING_SIZE_2_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5610   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
5611                                        2, 32, FALSE, NULL);
5612
5613   return offset;
5614 }
5615
5616
5617 static const value_string h225_CallTerminationCause_vals[] = {
5618   {   0, "releaseCompleteReason" },
5619   {   1, "releaseCompleteCauseIE" },
5620   { 0, NULL }
5621 };
5622
5623 static const per_choice_t CallTerminationCause_choice[] = {
5624   {   0, &hf_h225_releaseCompleteReason, ASN1_EXTENSION_ROOT    , dissect_h225_ReleaseCompleteReason },
5625   {   1, &hf_h225_releaseCompleteCauseIE, ASN1_EXTENSION_ROOT    , dissect_h225_OCTET_STRING_SIZE_2_32 },
5626   { 0, NULL, 0, NULL }
5627 };
5628
5629 static int
5630 dissect_h225_CallTerminationCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5631   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5632                                  ett_h225_CallTerminationCause, CallTerminationCause_choice,
5633                                  NULL);
5634
5635   return offset;
5636 }
5637
5638
5639 static const per_sequence_t TransportChannelInfo_sequence[] = {
5640   { &hf_h225_sendAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
5641   { &hf_h225_recvAddress    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
5642   { NULL, 0, 0, NULL }
5643 };
5644
5645 int
5646 dissect_h225_TransportChannelInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5647   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5648                                    ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
5649
5650   return offset;
5651 }
5652
5653
5654 static const per_sequence_t BandwidthDetails_sequence[] = {
5655   { &hf_h225_sender         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5656   { &hf_h225_multicast      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5657   { &hf_h225_bandwidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
5658   { &hf_h225_rtcpAddresses  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5659   { NULL, 0, 0, NULL }
5660 };
5661
5662 static int
5663 dissect_h225_BandwidthDetails(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5664   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5665                                    ett_h225_BandwidthDetails, BandwidthDetails_sequence);
5666
5667   return offset;
5668 }
5669
5670
5671 static const per_sequence_t CallCreditCapability_sequence[] = {
5672   { &hf_h225_canDisplayAmountString, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5673   { &hf_h225_canEnforceDurationLimit, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
5674   { NULL, 0, 0, NULL }
5675 };
5676
5677 static int
5678 dissect_h225_CallCreditCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5679   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5680                                    ett_h225_CallCreditCapability, CallCreditCapability_sequence);
5681
5682   return offset;
5683 }
5684
5685
5686
5687 static int
5688 dissect_h225_PrintableString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5689   offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index,
5690                                           NO_BOUND, NO_BOUND, FALSE);
5691
5692   return offset;
5693 }
5694
5695
5696
5697 static int
5698 dissect_h225_INTEGER_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5699   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
5700                                                             1U, 255U, NULL, FALSE);
5701
5702   return offset;
5703 }
5704
5705
5706 static const per_sequence_t T_associatedSessionIds_sequence_of[1] = {
5707   { &hf_h225_associatedSessionIds_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5708 };
5709
5710 static int
5711 dissect_h225_T_associatedSessionIds(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5712   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5713                                       ett_h225_T_associatedSessionIds, T_associatedSessionIds_sequence_of);
5714
5715   return offset;
5716 }
5717
5718
5719 static const per_sequence_t RTPSession_sequence[] = {
5720   { &hf_h225_rtpAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5721   { &hf_h225_rtcpAddress    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
5722   { &hf_h225_cname          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_PrintableString },
5723   { &hf_h225_ssrc           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_4294967295 },
5724   { &hf_h225_sessionId      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_255 },
5725   { &hf_h225_associatedSessionIds, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_T_associatedSessionIds },
5726   { &hf_h225_multicast_flg  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5727   { &hf_h225_bandwidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
5728   { NULL, 0, 0, NULL }
5729 };
5730
5731 static int
5732 dissect_h225_RTPSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5733   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5734                                    ett_h225_RTPSession, RTPSession_sequence);
5735
5736   return offset;
5737 }
5738
5739
5740 static const value_string h225_RehomingModel_vals[] = {
5741   {   0, "gatekeeperBased" },
5742   {   1, "endpointBased" },
5743   { 0, NULL }
5744 };
5745
5746 static const per_choice_t RehomingModel_choice[] = {
5747   {   0, &hf_h225_gatekeeperBased, ASN1_NO_EXTENSIONS     , dissect_h225_NULL },
5748   {   1, &hf_h225_endpointBased  , ASN1_NO_EXTENSIONS     , dissect_h225_NULL },
5749   { 0, NULL, 0, NULL }
5750 };
5751
5752 static int
5753 dissect_h225_RehomingModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5754   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5755                                  ett_h225_RehomingModel, RehomingModel_choice,
5756                                  NULL);
5757
5758   return offset;
5759 }
5760
5761
5762 static const per_sequence_t SEQUENCE_OF_Endpoint_sequence_of[1] = {
5763   { &hf_h225_alternateEndpoints_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_Endpoint },
5764 };
5765
5766 static int
5767 dissect_h225_SEQUENCE_OF_Endpoint(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5768   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5769                                       ett_h225_SEQUENCE_OF_Endpoint, SEQUENCE_OF_Endpoint_sequence_of);
5770
5771   return offset;
5772 }
5773
5774
5775 static const per_sequence_t SEQUENCE_OF_AuthenticationMechanism_sequence_of[1] = {
5776   { &hf_h225_authenticationCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h235_AuthenticationMechanism },
5777 };
5778
5779 static int
5780 dissect_h225_SEQUENCE_OF_AuthenticationMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5781   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5782                                       ett_h225_SEQUENCE_OF_AuthenticationMechanism, SEQUENCE_OF_AuthenticationMechanism_sequence_of);
5783
5784   return offset;
5785 }
5786
5787
5788 static const per_sequence_t T_algorithmOIDs_sequence_of[1] = {
5789   { &hf_h225_algorithmOIDs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_OBJECT_IDENTIFIER },
5790 };
5791
5792 static int
5793 dissect_h225_T_algorithmOIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5794   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5795                                       ett_h225_T_algorithmOIDs, T_algorithmOIDs_sequence_of);
5796
5797   return offset;
5798 }
5799
5800
5801 static const per_sequence_t SEQUENCE_OF_IntegrityMechanism_sequence_of[1] = {
5802   { &hf_h225_integrity_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_IntegrityMechanism },
5803 };
5804
5805 static int
5806 dissect_h225_SEQUENCE_OF_IntegrityMechanism(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5807   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5808                                       ett_h225_SEQUENCE_OF_IntegrityMechanism, SEQUENCE_OF_IntegrityMechanism_sequence_of);
5809
5810   return offset;
5811 }
5812
5813
5814 static const per_sequence_t GatekeeperRequest_sequence[] = {
5815   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5816   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5817   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5818   { &hf_h225_gatekeeperRequest_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5819   { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
5820   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5821   { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
5822   { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
5823   { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
5824   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5825   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5826   { &hf_h225_authenticationCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AuthenticationMechanism },
5827   { &hf_h225_algorithmOIDs  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_algorithmOIDs },
5828   { &hf_h225_integrity      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5829   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5830   { &hf_h225_supportsAltGK  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
5831   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5832   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5833   { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
5834   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5835   { NULL, 0, 0, NULL }
5836 };
5837
5838 static int
5839 dissect_h225_GatekeeperRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5840   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5841                                    ett_h225_GatekeeperRequest, GatekeeperRequest_sequence);
5842
5843   return offset;
5844 }
5845
5846
5847 static const per_sequence_t GatekeeperConfirm_sequence[] = {
5848   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5849   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5850   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5851   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5852   { &hf_h225_gatekeeperConfirm_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
5853   { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
5854   { &hf_h225_authenticationMode, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h235_AuthenticationMechanism },
5855   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5856   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5857   { &hf_h225_algorithmOID   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_OBJECT_IDENTIFIER },
5858   { &hf_h225_integrity      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_IntegrityMechanism },
5859   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5860   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5861   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5862   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
5863   { &hf_h225_rehomingModel  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RehomingModel },
5864   { NULL, 0, 0, NULL }
5865 };
5866
5867 static int
5868 dissect_h225_GatekeeperConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5869   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5870                                    ett_h225_GatekeeperConfirm, GatekeeperConfirm_sequence);
5871
5872   return offset;
5873 }
5874
5875
5876 const value_string GatekeeperRejectReason_vals[] = {
5877   {   0, "resourceUnavailable" },
5878   {   1, "terminalExcluded" },
5879   {   2, "invalidRevision" },
5880   {   3, "undefinedReason" },
5881   {   4, "securityDenial" },
5882   {   5, "genericDataReason" },
5883   {   6, "neededFeatureNotSupported" },
5884   {   7, "securityError" },
5885   { 0, NULL }
5886 };
5887
5888 static const per_choice_t GatekeeperRejectReason_choice[] = {
5889   {   0, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5890   {   1, &hf_h225_terminalExcluded, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5891   {   2, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5892   {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5893   {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5894   {   5, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5895   {   6, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
5896   {   7, &hf_h225_gkRej_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
5897   { 0, NULL, 0, NULL }
5898 };
5899
5900 static int
5901 dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5902 #line 483 "../../asn1/h225/h225.cnf"
5903   gint32 value;
5904
5905   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5906                                  ett_h225_GatekeeperRejectReason, GatekeeperRejectReason_choice,
5907                                  &value);
5908
5909   h225_pi->reason = value;
5910
5911
5912   return offset;
5913 }
5914
5915
5916 static const per_sequence_t GatekeeperReject_sequence[] = {
5917   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
5918   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
5919   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
5920   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
5921   { &hf_h225_gatekeeperRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_GatekeeperRejectReason },
5922   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
5923   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
5924   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
5925   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
5926   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
5927   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
5928   { NULL, 0, 0, NULL }
5929 };
5930
5931 static int
5932 dissect_h225_GatekeeperReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5933   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
5934                                    ett_h225_GatekeeperReject, GatekeeperReject_sequence);
5935
5936   return offset;
5937 }
5938
5939
5940 static const per_sequence_t SEQUENCE_OF_AddressPattern_sequence_of[1] = {
5941   { &hf_h225_terminalAliasPattern_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AddressPattern },
5942 };
5943
5944 static int
5945 dissect_h225_SEQUENCE_OF_AddressPattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5946   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5947                                       ett_h225_SEQUENCE_OF_AddressPattern, SEQUENCE_OF_AddressPattern_sequence_of);
5948
5949   return offset;
5950 }
5951
5952
5953 static const per_sequence_t SEQUENCE_OF_H248PackagesDescriptor_sequence_of[1] = {
5954   { &hf_h225_supportedH248Packages_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H248PackagesDescriptor },
5955 };
5956
5957 static int
5958 dissect_h225_SEQUENCE_OF_H248PackagesDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5959   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
5960                                       ett_h225_SEQUENCE_OF_H248PackagesDescriptor, SEQUENCE_OF_H248PackagesDescriptor_sequence_of);
5961
5962   return offset;
5963 }
5964
5965
5966 static const per_sequence_t SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of[1] = {
5967   { &hf_h225_qOSCapabilities_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h245_QOSCapability },
5968 };
5969
5970 static int
5971 dissect_h225_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_) {
5972   offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
5973                                                   ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability, SEQUENCE_SIZE_1_256_OF_QOSCapability_sequence_of,
5974                                                   1, 256, FALSE);
5975
5976   return offset;
5977 }
5978
5979
5980 const value_string h225_TransportQOS_vals[] = {
5981   {   0, "endpointControlled" },
5982   {   1, "gatekeeperControlled" },
5983   {   2, "noControl" },
5984   {   3, "qOSCapabilities" },
5985   { 0, NULL }
5986 };
5987
5988 static const per_choice_t TransportQOS_choice[] = {
5989   {   0, &hf_h225_endpointControlled, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5990   {   1, &hf_h225_gatekeeperControlled, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5991   {   2, &hf_h225_noControl      , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
5992   {   3, &hf_h225_qOSCapabilities, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability },
5993   { 0, NULL, 0, NULL }
5994 };
5995
5996 int
5997 dissect_h225_TransportQOS(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5998   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
5999                                  ett_h225_TransportQOS, TransportQOS_choice,
6000                                  NULL);
6001
6002   return offset;
6003 }
6004
6005
6006 static const per_sequence_t RegistrationRequest_sequence[] = {
6007   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6008   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6009   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6010   { &hf_h225_discoveryComplete, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6011   { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6012   { &hf_h225_rasAddress     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6013   { &hf_h225_terminalType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
6014   { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6015   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6016   { &hf_h225_endpointVendor , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_VendorIdentifier },
6017   { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6018   { &hf_h225_timeToLive     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TimeToLive },
6019   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6020   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6021   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6022   { &hf_h225_keepAlive      , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6023   { &hf_h225_endpointIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6024   { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6025   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6026   { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6027   { &hf_h225_additiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6028   { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6029   { &hf_h225_supportsAltGK  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6030   { &hf_h225_usageReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInfoTypes },
6031   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6032   { &hf_h225_supportedH248Packages, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_H248PackagesDescriptor },
6033   { &hf_h225_callCreditCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCreditCapability },
6034   { &hf_h225_capacityReportingCapability, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CapacityReportingCapability },
6035   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6036   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6037   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6038   { &hf_h225_restart        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6039   { &hf_h225_supportsACFSequences, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6040   { &hf_h225_supportsAssignedGK, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6041   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6042   { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6043   { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6044   { NULL, 0, 0, NULL }
6045 };
6046
6047 static int
6048 dissect_h225_RegistrationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6049   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6050                                    ett_h225_RegistrationRequest, RegistrationRequest_sequence);
6051
6052   return offset;
6053 }
6054
6055
6056
6057 static int
6058 dissect_h225_INTEGER_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6059   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
6060                                                             1U, 65535U, NULL, FALSE);
6061
6062   return offset;
6063 }
6064
6065
6066 static const per_sequence_t T_preGrantedARQ_sequence[] = {
6067   { &hf_h225_makeCall       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6068   { &hf_h225_useGKCallSignalAddressToMakeCall, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6069   { &hf_h225_answerCall     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6070   { &hf_h225_useGKCallSignalAddressToAnswer, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6071   { &hf_h225_irrFrequencyInCall, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_65535 },
6072   { &hf_h225_totalBandwidthRestriction, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6073   { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6074   { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UseSpecifiedTransport },
6075   { NULL, 0, 0, NULL }
6076 };
6077
6078 static int
6079 dissect_h225_T_preGrantedARQ(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6080   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6081                                    ett_h225_T_preGrantedARQ, T_preGrantedARQ_sequence);
6082
6083   return offset;
6084 }
6085
6086
6087 static const per_sequence_t SEQUENCE_OF_RasUsageSpecification_sequence_of[1] = {
6088   { &hf_h225_usageSpec_item , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_RasUsageSpecification },
6089 };
6090
6091 static int
6092 dissect_h225_SEQUENCE_OF_RasUsageSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6093   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6094                                       ett_h225_SEQUENCE_OF_RasUsageSpecification, SEQUENCE_OF_RasUsageSpecification_sequence_of);
6095
6096   return offset;
6097 }
6098
6099
6100 static const per_sequence_t RegistrationConfirm_sequence[] = {
6101   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6102   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6103   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6104   { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6105   { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6106   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6107   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6108   { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
6109   { &hf_h225_timeToLive     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TimeToLive },
6110   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6111   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6112   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6113   { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6114   { &hf_h225_preGrantedARQ  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_preGrantedARQ },
6115   { &hf_h225_maintainConnection, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6116   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6117   { &hf_h225_supportsAdditiveRegistration, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
6118   { &hf_h225_terminalAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6119   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6120   { &hf_h225_usageSpec      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6121   { &hf_h225_featureServerAlias, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AliasAddress },
6122   { &hf_h225_capacityReportingSpec, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CapacityReportingSpecification },
6123   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6124   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6125   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6126   { &hf_h225_rehomingModel  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RehomingModel },
6127   { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6128   { NULL, 0, 0, NULL }
6129 };
6130
6131 static int
6132 dissect_h225_RegistrationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6133   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6134                                    ett_h225_RegistrationConfirm, RegistrationConfirm_sequence);
6135
6136   return offset;
6137 }
6138
6139
6140 static const per_sequence_t T_invalidTerminalAliases_sequence[] = {
6141   { &hf_h225_terminalAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6142   { &hf_h225_terminalAliasPattern, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6143   { &hf_h225_supportedPrefixes, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6144   { NULL, 0, 0, NULL }
6145 };
6146
6147 static int
6148 dissect_h225_T_invalidTerminalAliases(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6149   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6150                                    ett_h225_T_invalidTerminalAliases, T_invalidTerminalAliases_sequence);
6151
6152   return offset;
6153 }
6154
6155
6156 const value_string RegistrationRejectReason_vals[] = {
6157   {   0, "discoveryRequired" },
6158   {   1, "invalidRevision" },
6159   {   2, "invalidCallSignalAddress" },
6160   {   3, "invalidRASAddress" },
6161   {   4, "duplicateAlias" },
6162   {   5, "invalidTerminalType" },
6163   {   6, "undefinedReason" },
6164   {   7, "transportNotSupported" },
6165   {   8, "transportQOSNotSupported" },
6166   {   9, "resourceUnavailable" },
6167   {  10, "invalidAlias" },
6168   {  11, "securityDenial" },
6169   {  12, "fullRegistrationRequired" },
6170   {  13, "additiveRegistrationNotSupported" },
6171   {  14, "invalidTerminalAliases" },
6172   {  15, "genericDataReason" },
6173   {  16, "neededFeatureNotSupported" },
6174   {  17, "securityError" },
6175   {  18, "registerWithAssignedGK" },
6176   { 0, NULL }
6177 };
6178
6179 static const per_choice_t RegistrationRejectReason_choice[] = {
6180   {   0, &hf_h225_discoveryRequired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6181   {   1, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6182   {   2, &hf_h225_invalidCallSignalAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6183   {   3, &hf_h225_invalidRASAddress, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6184   {   4, &hf_h225_duplicateAlias , ASN1_EXTENSION_ROOT    , dissect_h225_SEQUENCE_OF_AliasAddress },
6185   {   5, &hf_h225_invalidTerminalType, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6186   {   6, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6187   {   7, &hf_h225_transportNotSupported, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6188   {   8, &hf_h225_transportQOSNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6189   {   9, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6190   {  10, &hf_h225_invalidAlias   , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6191   {  11, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6192   {  12, &hf_h225_fullRegistrationRequired, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6193   {  13, &hf_h225_additiveRegistrationNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6194   {  14, &hf_h225_invalidTerminalAliases, ASN1_NOT_EXTENSION_ROOT, dissect_h225_T_invalidTerminalAliases },
6195   {  15, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6196   {  16, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6197   {  17, &hf_h225_reg_securityError, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors },
6198   {  18, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6199   { 0, NULL, 0, NULL }
6200 };
6201
6202 static int
6203 dissect_h225_RegistrationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6204 #line 538 "../../asn1/h225/h225.cnf"
6205   gint32 value;
6206
6207   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6208                                  ett_h225_RegistrationRejectReason, RegistrationRejectReason_choice,
6209                                  &value);
6210
6211   h225_pi->reason = value;
6212
6213
6214   return offset;
6215 }
6216
6217
6218 static const per_sequence_t RegistrationReject_sequence[] = {
6219   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6220   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
6221   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6222   { &hf_h225_registrationRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RegistrationRejectReason },
6223   { &hf_h225_gatekeeperIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6224   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6225   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6226   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6227   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6228   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6229   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6230   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6231   { NULL, 0, 0, NULL }
6232 };
6233
6234 static int
6235 dissect_h225_RegistrationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6236   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6237                                    ett_h225_RegistrationReject, RegistrationReject_sequence);
6238
6239   return offset;
6240 }
6241
6242
6243 const value_string UnregRequestReason_vals[] = {
6244   {   0, "reregistrationRequired" },
6245   {   1, "ttlExpired" },
6246   {   2, "securityDenial" },
6247   {   3, "undefinedReason" },
6248   {   4, "maintenance" },
6249   {   5, "securityError" },
6250   {   6, "registerWithAssignedGK" },
6251   { 0, NULL }
6252 };
6253
6254 static const per_choice_t UnregRequestReason_choice[] = {
6255   {   0, &hf_h225_reregistrationRequired, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6256   {   1, &hf_h225_ttlExpired     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6257   {   2, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6258   {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6259   {   4, &hf_h225_maintenance    , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6260   {   5, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6261   {   6, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6262   { 0, NULL, 0, NULL }
6263 };
6264
6265 static int
6266 dissect_h225_UnregRequestReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6267 #line 490 "../../asn1/h225/h225.cnf"
6268   gint32 value;
6269
6270   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6271                                  ett_h225_UnregRequestReason, UnregRequestReason_choice,
6272                                  &value);
6273
6274   h225_pi->reason = value;
6275
6276
6277   return offset;
6278 }
6279
6280
6281 static const per_sequence_t UnregistrationRequest_sequence[] = {
6282   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6283   { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
6284   { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6285   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6286   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6287   { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6288   { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6289   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6290   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6291   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6292   { &hf_h225_unregRequestReason, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UnregRequestReason },
6293   { &hf_h225_endpointAliasPattern, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AddressPattern },
6294   { &hf_h225_supportedPrefixes, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedPrefix },
6295   { &hf_h225_alternateGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AlternateGK },
6296   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6297   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6298   { NULL, 0, 0, NULL }
6299 };
6300
6301 static int
6302 dissect_h225_UnregistrationRequest(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_h225_UnregistrationRequest, UnregistrationRequest_sequence);
6305
6306   return offset;
6307 }
6308
6309
6310 static const per_sequence_t UnregistrationConfirm_sequence[] = {
6311   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6312   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6313   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6314   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6315   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6316   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6317   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6318   { NULL, 0, 0, NULL }
6319 };
6320
6321 static int
6322 dissect_h225_UnregistrationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6323   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6324                                    ett_h225_UnregistrationConfirm, UnregistrationConfirm_sequence);
6325
6326   return offset;
6327 }
6328
6329
6330 const value_string UnregRejectReason_vals[] = {
6331   {   0, "notCurrentlyRegistered" },
6332   {   1, "callInProgress" },
6333   {   2, "undefinedReason" },
6334   {   3, "permissionDenied" },
6335   {   4, "securityDenial" },
6336   {   5, "securityError" },
6337   { 0, NULL }
6338 };
6339
6340 static const per_choice_t UnregRejectReason_choice[] = {
6341   {   0, &hf_h225_notCurrentlyRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6342   {   1, &hf_h225_callInProgress , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6343   {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6344   {   3, &hf_h225_permissionDenied, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6345   {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6346   {   5, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6347   { 0, NULL, 0, NULL }
6348 };
6349
6350 static int
6351 dissect_h225_UnregRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6352 #line 497 "../../asn1/h225/h225.cnf"
6353   gint32 value;
6354
6355   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6356                                  ett_h225_UnregRejectReason, UnregRejectReason_choice,
6357                                  &value);
6358
6359   h225_pi->reason = value;
6360
6361
6362   return offset;
6363 }
6364
6365
6366 static const per_sequence_t UnregistrationReject_sequence[] = {
6367   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6368   { &hf_h225_unregRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_UnregRejectReason },
6369   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6370   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6371   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6372   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6373   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6374   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6375   { NULL, 0, 0, NULL }
6376 };
6377
6378 static int
6379 dissect_h225_UnregistrationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6380   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6381                                    ett_h225_UnregistrationReject, UnregistrationReject_sequence);
6382
6383   return offset;
6384 }
6385
6386
6387 static const value_string h225_CallModel_vals[] = {
6388   {   0, "direct" },
6389   {   1, "gatekeeperRouted" },
6390   { 0, NULL }
6391 };
6392
6393 static const per_choice_t CallModel_choice[] = {
6394   {   0, &hf_h225_direct         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6395   {   1, &hf_h225_gatekeeperRouted, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6396   { 0, NULL, 0, NULL }
6397 };
6398
6399 static int
6400 dissect_h225_CallModel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6401   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6402                                  ett_h225_CallModel, CallModel_choice,
6403                                  NULL);
6404
6405   return offset;
6406 }
6407
6408
6409
6410 static int
6411 dissect_h225_DestinationInfo_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6412 #line 299 "../../asn1/h225/h225.cnf"
6413
6414   h225_pi->is_destinationInfo = TRUE;
6415
6416   offset = dissect_h225_AliasAddress(tvb, offset, actx, tree, hf_index);
6417
6418   return offset;
6419 }
6420
6421
6422 static const per_sequence_t DestinationInfo_sequence_of[1] = {
6423   { &hf_h225_DestinationInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo_item },
6424 };
6425
6426 static int
6427 dissect_h225_DestinationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6428   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6429                                       ett_h225_DestinationInfo, DestinationInfo_sequence_of);
6430
6431   return offset;
6432 }
6433
6434
6435 static const per_sequence_t AdmissionRequest_sequence[] = {
6436   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6437   { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
6438   { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallModel },
6439   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6440   { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6441   { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
6442   { &hf_h225_destExtraCallInfo, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6443   { &hf_h225_srcInfo        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_AliasAddress },
6444   { &hf_h225_srcCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
6445   { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6446   { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6447   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6448   { &hf_h225_callServices   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_QseriesOptions },
6449   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6450   { &hf_h225_activeMC       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6451   { &hf_h225_answerCall     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6452   { &hf_h225_canMapAlias    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6453   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6454   { &hf_h225_srcAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6455   { &hf_h225_destAlternatives, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6456   { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6457   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6458   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6459   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6460   { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6461   { &hf_h225_willSupplyUUIEs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6462   { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6463   { &hf_h225_gatewayDataRate, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DataRate },
6464   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6465   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6466   { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6467   { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TunnelledProtocol },
6468   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6469   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6470   { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6471   { NULL, 0, 0, NULL }
6472 };
6473
6474 static int
6475 dissect_h225_AdmissionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6476   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6477                                    ett_h225_AdmissionRequest, AdmissionRequest_sequence);
6478
6479   return offset;
6480 }
6481
6482
6483 static const per_sequence_t UUIEsRequested_sequence[] = {
6484   { &hf_h225_setup_bool     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6485   { &hf_h225_callProceeding_flg, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6486   { &hf_h225_connect_bool   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6487   { &hf_h225_alerting_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6488   { &hf_h225_information_bool, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6489   { &hf_h225_releaseComplete_bool, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6490   { &hf_h225_facility_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6491   { &hf_h225_progress_bool  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6492   { &hf_h225_empty          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6493   { &hf_h225_status_bool    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6494   { &hf_h225_statusInquiry_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6495   { &hf_h225_setupAcknowledge_bool, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6496   { &hf_h225_notify_bool    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6497   { NULL, 0, 0, NULL }
6498 };
6499
6500 static int
6501 dissect_h225_UUIEsRequested(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6502   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6503                                    ett_h225_UUIEsRequested, UUIEsRequested_sequence);
6504
6505   return offset;
6506 }
6507
6508
6509 static const per_sequence_t AdmissionConfirm_sequence[] = {
6510   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6511   { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6512   { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
6513   { &hf_h225_destCallSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6514   { &hf_h225_irrFrequency   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_INTEGER_1_65535 },
6515   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6516   { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6517   { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6518   { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
6519   { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6520   { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6521   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6522   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6523   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6524   { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6525   { &hf_h225_willRespondToIRR, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6526   { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_UUIEsRequested },
6527   { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6528   { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6529   { &hf_h225_useSpecifiedTransport, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UseSpecifiedTransport },
6530   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6531   { &hf_h225_usageSpec      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RasUsageSpecification },
6532   { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6533   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6534   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6535   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6536   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6537   { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6538   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6539   { NULL, 0, 0, NULL }
6540 };
6541
6542 static int
6543 dissect_h225_AdmissionConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6544   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6545                                    ett_h225_AdmissionConfirm, AdmissionConfirm_sequence);
6546
6547   return offset;
6548 }
6549
6550
6551 static const per_sequence_t SEQUENCE_OF_PartyNumber_sequence_of[1] = {
6552   { &hf_h225_routeCallToSCN_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
6553 };
6554
6555 static int
6556 dissect_h225_SEQUENCE_OF_PartyNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6557   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6558                                       ett_h225_SEQUENCE_OF_PartyNumber, SEQUENCE_OF_PartyNumber_sequence_of);
6559
6560   return offset;
6561 }
6562
6563
6564 const value_string AdmissionRejectReason_vals[] = {
6565   {   0, "calledPartyNotRegistered" },
6566   {   1, "invalidPermission" },
6567   {   2, "requestDenied" },
6568   {   3, "undefinedReason" },
6569   {   4, "callerNotRegistered" },
6570   {   5, "routeCallToGatekeeper" },
6571   {   6, "invalidEndpointIdentifier" },
6572   {   7, "resourceUnavailable" },
6573   {   8, "securityDenial" },
6574   {   9, "qosControlNotSupported" },
6575   {  10, "incompleteAddress" },
6576   {  11, "aliasesInconsistent" },
6577   {  12, "routeCallToSCN" },
6578   {  13, "exceedsCallCapacity" },
6579   {  14, "collectDestination" },
6580   {  15, "collectPIN" },
6581   {  16, "genericDataReason" },
6582   {  17, "neededFeatureNotSupported" },
6583   {  18, "securityError" },
6584   {  19, "securityDHmismatch" },
6585   {  20, "noRouteToDestination" },
6586   {  21, "unallocatedNumber" },
6587   {  22, "registerWithAssignedGK" },
6588   { 0, NULL }
6589 };
6590
6591 static const per_choice_t AdmissionRejectReason_choice[] = {
6592   {   0, &hf_h225_calledPartyNotRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6593   {   1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6594   {   2, &hf_h225_requestDenied  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6595   {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6596   {   4, &hf_h225_callerNotRegistered, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6597   {   5, &hf_h225_routeCallToGatekeeper, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6598   {   6, &hf_h225_invalidEndpointIdentifier, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6599   {   7, &hf_h225_resourceUnavailable, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6600   {   8, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6601   {   9, &hf_h225_qosControlNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6602   {  10, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6603   {  11, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6604   {  12, &hf_h225_routeCallToSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
6605   {  13, &hf_h225_exceedsCallCapacity, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6606   {  14, &hf_h225_collectDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6607   {  15, &hf_h225_collectPIN     , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6608   {  16, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6609   {  17, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6610   {  18, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6611   {  19, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6612   {  20, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6613   {  21, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6614   {  22, &hf_h225_registerWithAssignedGK, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6615   { 0, NULL, 0, NULL }
6616 };
6617
6618 static int
6619 dissect_h225_AdmissionRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6620 #line 524 "../../asn1/h225/h225.cnf"
6621   gint32 value;
6622
6623   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6624                                  ett_h225_AdmissionRejectReason, AdmissionRejectReason_choice,
6625                                  &value);
6626
6627   h225_pi->reason = value;
6628
6629
6630   return offset;
6631 }
6632
6633
6634 static const per_sequence_t AdmissionReject_sequence[] = {
6635   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6636   { &hf_h225_rejectReason   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionRejectReason },
6637   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6638   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6639   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6640   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6641   { &hf_h225_callSignalAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportAddress },
6642   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6643   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6644   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6645   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6646   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6647   { NULL, 0, 0, NULL }
6648 };
6649
6650 static int
6651 dissect_h225_AdmissionReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6652   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6653                                    ett_h225_AdmissionReject, AdmissionReject_sequence);
6654
6655   return offset;
6656 }
6657
6658
6659 static const per_sequence_t SEQUENCE_OF_BandwidthDetails_sequence_of[1] = {
6660   { &hf_h225_bandwidthDetails_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BandwidthDetails },
6661 };
6662
6663 static int
6664 dissect_h225_SEQUENCE_OF_BandwidthDetails(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6665   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
6666                                       ett_h225_SEQUENCE_OF_BandwidthDetails, SEQUENCE_OF_BandwidthDetails_sequence_of);
6667
6668   return offset;
6669 }
6670
6671
6672 static const per_sequence_t BandwidthRequest_sequence[] = {
6673   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6674   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6675   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6676   { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6677   { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_CallType },
6678   { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6679   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6680   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6681   { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6682   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6683   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6684   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6685   { &hf_h225_answeredCall   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6686   { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6687   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6688   { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6689   { &hf_h225_bandwidthDetails, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_BandwidthDetails },
6690   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6691   { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6692   { NULL, 0, 0, NULL }
6693 };
6694
6695 static int
6696 dissect_h225_BandwidthRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6697   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6698                                    ett_h225_BandwidthRequest, BandwidthRequest_sequence);
6699
6700   return offset;
6701 }
6702
6703
6704 static const per_sequence_t BandwidthConfirm_sequence[] = {
6705   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6706   { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6707   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6708   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6709   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6710   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6711   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6712   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6713   { &hf_h225_transportQOS   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TransportQOS },
6714   { NULL, 0, 0, NULL }
6715 };
6716
6717 static int
6718 dissect_h225_BandwidthConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6719   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6720                                    ett_h225_BandwidthConfirm, BandwidthConfirm_sequence);
6721
6722   return offset;
6723 }
6724
6725
6726 const value_string BandRejectReason_vals[] = {
6727   {   0, "notBound" },
6728   {   1, "invalidConferenceID" },
6729   {   2, "invalidPermission" },
6730   {   3, "insufficientResources" },
6731   {   4, "invalidRevision" },
6732   {   5, "undefinedReason" },
6733   {   6, "securityDenial" },
6734   {   7, "securityError" },
6735   { 0, NULL }
6736 };
6737
6738 static const per_choice_t BandRejectReason_choice[] = {
6739   {   0, &hf_h225_notBound       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6740   {   1, &hf_h225_invalidConferenceID, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6741   {   2, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6742   {   3, &hf_h225_insufficientResources, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6743   {   4, &hf_h225_invalidRevision, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6744   {   5, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6745   {   6, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6746   {   7, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6747   { 0, NULL, 0, NULL }
6748 };
6749
6750 static int
6751 dissect_h225_BandRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6752 #line 504 "../../asn1/h225/h225.cnf"
6753   gint32 value;
6754
6755   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6756                                  ett_h225_BandRejectReason, BandRejectReason_choice,
6757                                  &value);
6758
6759   h225_pi->reason = value;
6760
6761
6762   return offset;
6763 }
6764
6765
6766 static const per_sequence_t BandwidthReject_sequence[] = {
6767   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6768   { &hf_h225_bandRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandRejectReason },
6769   { &hf_h225_allowedBandWidth, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
6770   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6771   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6772   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6773   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6774   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6775   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6776   { NULL, 0, 0, NULL }
6777 };
6778
6779 static int
6780 dissect_h225_BandwidthReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6781   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6782                                    ett_h225_BandwidthReject, BandwidthReject_sequence);
6783
6784   return offset;
6785 }
6786
6787
6788 const value_string DisengageReason_vals[] = {
6789   {   0, "forcedDrop" },
6790   {   1, "normalDrop" },
6791   {   2, "undefinedReason" },
6792   { 0, NULL }
6793 };
6794
6795 static const per_choice_t DisengageReason_choice[] = {
6796   {   0, &hf_h225_forcedDrop     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6797   {   1, &hf_h225_normalDrop     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6798   {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6799   { 0, NULL, 0, NULL }
6800 };
6801
6802 static int
6803 dissect_h225_DisengageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6804 #line 511 "../../asn1/h225/h225.cnf"
6805   gint32 value;
6806
6807   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6808                                  ett_h225_DisengageReason, DisengageReason_choice,
6809                                  &value);
6810
6811   h225_pi->reason = value;
6812
6813
6814   return offset;
6815 }
6816
6817
6818 static const per_sequence_t DisengageRequest_sequence[] = {
6819   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6820   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
6821   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
6822   { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
6823   { &hf_h225_disengageReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DisengageReason },
6824   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6825   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
6826   { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6827   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6828   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6829   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6830   { &hf_h225_answeredCall   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6831   { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
6832   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6833   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6834   { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6835   { &hf_h225_terminationCause, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallTerminationCause },
6836   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6837   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6838   { NULL, 0, 0, NULL }
6839 };
6840
6841 static int
6842 dissect_h225_DisengageRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6843   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6844                                    ett_h225_DisengageRequest, DisengageRequest_sequence);
6845
6846   return offset;
6847 }
6848
6849
6850 static const per_sequence_t DisengageConfirm_sequence[] = {
6851   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6852   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6853   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6854   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6855   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6856   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
6857   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6858   { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
6859   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6860   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
6861   { NULL, 0, 0, NULL }
6862 };
6863
6864 static int
6865 dissect_h225_DisengageConfirm(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_h225_DisengageConfirm, DisengageConfirm_sequence);
6868
6869   return offset;
6870 }
6871
6872
6873 const value_string DisengageRejectReason_vals[] = {
6874   {   0, "notRegistered" },
6875   {   1, "requestToDropOther" },
6876   {   2, "securityDenial" },
6877   {   3, "securityError" },
6878   { 0, NULL }
6879 };
6880
6881 static const per_choice_t DisengageRejectReason_choice[] = {
6882   {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6883   {   1, &hf_h225_requestToDropOther, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
6884   {   2, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
6885   {   3, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
6886   { 0, NULL, 0, NULL }
6887 };
6888
6889 static int
6890 dissect_h225_DisengageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6891 #line 517 "../../asn1/h225/h225.cnf"
6892   gint32 value;
6893
6894   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
6895                                  ett_h225_DisengageRejectReason, DisengageRejectReason_choice,
6896                                  &value);
6897
6898   h225_pi->reason = value;
6899
6900
6901   return offset;
6902 }
6903
6904
6905 static const per_sequence_t DisengageReject_sequence[] = {
6906   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6907   { &hf_h225_disengageRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DisengageRejectReason },
6908   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6909   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
6910   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6911   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6912   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6913   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6914   { NULL, 0, 0, NULL }
6915 };
6916
6917 static int
6918 dissect_h225_DisengageReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6919   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6920                                    ett_h225_DisengageReject, DisengageReject_sequence);
6921
6922   return offset;
6923 }
6924
6925
6926 static const per_sequence_t LocationRequest_sequence[] = {
6927   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6928   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
6929   { &hf_h225_destinationInfo_01, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_DestinationInfo },
6930   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6931   { &hf_h225_replyAddress   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6932   { &hf_h225_sourceInfo     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6933   { &hf_h225_canMapAlias    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6934   { &hf_h225_gatekeeperIdentifier, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_GatekeeperIdentifier },
6935   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6936   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6937   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6938   { &hf_h225_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6939   { &hf_h225_desiredTunnelledProtocol, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_TunnelledProtocol },
6940   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6941   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6942   { &hf_h225_hopCount       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_1_255 },
6943   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6944   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallIdentifier },
6945   { &hf_h225_bandWidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6946   { &hf_h225_sourceEndpointInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6947   { &hf_h225_canMapSrcAlias , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
6948   { &hf_h225_language       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_Language },
6949   { NULL, 0, 0, NULL }
6950 };
6951
6952 static int
6953 dissect_h225_LocationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6954   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6955                                    ett_h225_LocationRequest, LocationRequest_sequence);
6956
6957   return offset;
6958 }
6959
6960
6961 static const per_sequence_t LocationConfirm_sequence[] = {
6962   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
6963   { &hf_h225_locationConfirm_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6964   { &hf_h225_locationConfirm_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
6965   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
6966   { &hf_h225_destinationInfo_01, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_DestinationInfo },
6967   { &hf_h225_destExtraCallInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6968   { &hf_h225_destinationType, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_EndpointType },
6969   { &hf_h225_remoteExtensionAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6970   { &hf_h225_alternateEndpoints, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_Endpoint },
6971   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
6972   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
6973   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
6974   { &hf_h225_alternateTransportAddresses, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateTransportAddresses },
6975   { &hf_h225_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_SupportedProtocols },
6976   { &hf_h225_multipleCalls  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
6977   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
6978   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
6979   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
6980   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
6981   { &hf_h225_modifiedSrcInfo, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
6982   { &hf_h225_bandWidth      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_BandWidth },
6983   { NULL, 0, 0, NULL }
6984 };
6985
6986 static int
6987 dissect_h225_LocationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6988   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
6989                                    ett_h225_LocationConfirm, LocationConfirm_sequence);
6990
6991   return offset;
6992 }
6993
6994
6995 const value_string LocationRejectReason_vals[] = {
6996   {   0, "notRegistered" },
6997   {   1, "invalidPermission" },
6998   {   2, "requestDenied" },
6999   {   3, "undefinedReason" },
7000   {   4, "securityDenial" },
7001   {   5, "aliasesInconsistent" },
7002   {   6, "routeCalltoSCN" },
7003   {   7, "resourceUnavailable" },
7004   {   8, "genericDataReason" },
7005   {   9, "neededFeatureNotSupported" },
7006   {  10, "hopCountExceeded" },
7007   {  11, "incompleteAddress" },
7008   {  12, "securityError" },
7009   {  13, "securityDHmismatch" },
7010   {  14, "noRouteToDestination" },
7011   {  15, "unallocatedNumber" },
7012   { 0, NULL }
7013 };
7014
7015 static const per_choice_t LocationRejectReason_choice[] = {
7016   {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7017   {   1, &hf_h225_invalidPermission, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7018   {   2, &hf_h225_requestDenied  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7019   {   3, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7020   {   4, &hf_h225_securityDenial , ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7021   {   5, &hf_h225_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7022   {   6, &hf_h225_routeCalltoSCN , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_PartyNumber },
7023   {   7, &hf_h225_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7024   {   8, &hf_h225_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7025   {   9, &hf_h225_neededFeatureNotSupported, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7026   {  10, &hf_h225_hopCountExceeded, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7027   {  11, &hf_h225_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7028   {  12, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
7029   {  13, &hf_h225_securityDHmismatch, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7030   {  14, &hf_h225_noRouteToDestination, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7031   {  15, &hf_h225_unallocatedNumber, ASN1_NOT_EXTENSION_ROOT, dissect_h225_NULL },
7032   { 0, NULL, 0, NULL }
7033 };
7034
7035 static int
7036 dissect_h225_LocationRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7037 #line 531 "../../asn1/h225/h225.cnf"
7038   gint32 value;
7039
7040   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7041                                  ett_h225_LocationRejectReason, LocationRejectReason_choice,
7042                                  &value);
7043
7044   h225_pi->reason = value;
7045
7046
7047   return offset;
7048 }
7049
7050
7051 static const per_sequence_t LocationReject_sequence[] = {
7052   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7053   { &hf_h225_locationRejectReason, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_LocationRejectReason },
7054   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7055   { &hf_h225_altGKInfo      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
7056   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7057   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7058   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7059   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7060   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7061   { &hf_h225_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ServiceControlSession },
7062   { NULL, 0, 0, NULL }
7063 };
7064
7065 static int
7066 dissect_h225_LocationReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7067   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7068                                    ett_h225_LocationReject, LocationReject_sequence);
7069
7070   return offset;
7071 }
7072
7073
7074 static const per_sequence_t InfoRequest_sequence[] = {
7075   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7076   { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7077   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7078   { &hf_h225_replyAddress   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_TransportAddress },
7079   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7080   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7081   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7082   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7083   { &hf_h225_uuiesRequested , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_UUIEsRequested },
7084   { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
7085   { &hf_h225_usageInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInfoTypes },
7086   { &hf_h225_segmentedResponseSupported, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
7087   { &hf_h225_nextSegmentRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_INTEGER_0_65535 },
7088   { &hf_h225_capacityInfoRequested, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_NULL },
7089   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7090   { &hf_h225_assignedGatekeeper, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_AlternateGK },
7091   { NULL, 0, 0, NULL }
7092 };
7093
7094 static int
7095 dissect_h225_InfoRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7096   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7097                                    ett_h225_InfoRequest, InfoRequest_sequence);
7098
7099   return offset;
7100 }
7101
7102
7103 static const per_sequence_t SEQUENCE_OF_RTPSession_sequence_of[1] = {
7104   { &hf_h225_audio_item     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_RTPSession },
7105 };
7106
7107 static int
7108 dissect_h225_SEQUENCE_OF_RTPSession(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_of(tvb, offset, actx, tree, hf_index,
7110                                       ett_h225_SEQUENCE_OF_RTPSession, SEQUENCE_OF_RTPSession_sequence_of);
7111
7112   return offset;
7113 }
7114
7115
7116 static const per_sequence_t SEQUENCE_OF_TransportChannelInfo_sequence_of[1] = {
7117   { &hf_h225_data_item      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7118 };
7119
7120 static int
7121 dissect_h225_SEQUENCE_OF_TransportChannelInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7122   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7123                                       ett_h225_SEQUENCE_OF_TransportChannelInfo, SEQUENCE_OF_TransportChannelInfo_sequence_of);
7124
7125   return offset;
7126 }
7127
7128
7129 static const per_sequence_t SEQUENCE_OF_ConferenceIdentifier_sequence_of[1] = {
7130   { &hf_h225_substituteConfIDs_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7131 };
7132
7133 static int
7134 dissect_h225_SEQUENCE_OF_ConferenceIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7135   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7136                                       ett_h225_SEQUENCE_OF_ConferenceIdentifier, SEQUENCE_OF_ConferenceIdentifier_sequence_of);
7137
7138   return offset;
7139 }
7140
7141
7142 static const per_sequence_t T_pdu_item_sequence[] = {
7143   { &hf_h225_h323pdu        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_H323_UU_PDU },
7144   { &hf_h225_sent           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7145   { NULL, 0, 0, NULL }
7146 };
7147
7148 static int
7149 dissect_h225_T_pdu_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7150   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7151                                    ett_h225_T_pdu_item, T_pdu_item_sequence);
7152
7153   return offset;
7154 }
7155
7156
7157 static const per_sequence_t T_pdu_sequence_of[1] = {
7158   { &hf_h225_pdu_item       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_pdu_item },
7159 };
7160
7161 static int
7162 dissect_h225_T_pdu(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7163   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7164                                       ett_h225_T_pdu, T_pdu_sequence_of);
7165
7166   return offset;
7167 }
7168
7169
7170 static const per_sequence_t T_perCallInfo_item_sequence[] = {
7171   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7172   { &hf_h225_callReferenceValue, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
7173   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7174   { &hf_h225_originator     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_BOOLEAN },
7175   { &hf_h225_audio          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RTPSession },
7176   { &hf_h225_video          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_RTPSession },
7177   { &hf_h225_data           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_TransportChannelInfo },
7178   { &hf_h225_h245           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7179   { &hf_h225_callSignalling , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
7180   { &hf_h225_callType       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallType },
7181   { &hf_h225_bandWidth      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BandWidth },
7182   { &hf_h225_callModel      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallModel },
7183   { &hf_h225_callIdentifier , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7184   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7185   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7186   { &hf_h225_substituteConfIDs, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ConferenceIdentifier },
7187   { &hf_h225_pdu            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_T_pdu },
7188   { &hf_h225_callLinkage    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallLinkage },
7189   { &hf_h225_usageInformation, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_RasUsageInformation },
7190   { &hf_h225_circuitInfo    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CircuitInfo },
7191   { NULL, 0, 0, NULL }
7192 };
7193
7194 static int
7195 dissect_h225_T_perCallInfo_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7196   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7197                                    ett_h225_T_perCallInfo_item, T_perCallInfo_item_sequence);
7198
7199   return offset;
7200 }
7201
7202
7203 static const per_sequence_t T_perCallInfo_sequence_of[1] = {
7204   { &hf_h225_perCallInfo_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_T_perCallInfo_item },
7205 };
7206
7207 static int
7208 dissect_h225_T_perCallInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7209   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7210                                       ett_h225_T_perCallInfo, T_perCallInfo_sequence_of);
7211
7212   return offset;
7213 }
7214
7215
7216 static const value_string h225_InfoRequestResponseStatus_vals[] = {
7217   {   0, "complete" },
7218   {   1, "incomplete" },
7219   {   2, "segment" },
7220   {   3, "invalidCall" },
7221   { 0, NULL }
7222 };
7223
7224 static const per_choice_t InfoRequestResponseStatus_choice[] = {
7225   {   0, &hf_h225_complete       , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7226   {   1, &hf_h225_incomplete     , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7227   {   2, &hf_h225_segment        , ASN1_EXTENSION_ROOT    , dissect_h225_INTEGER_0_65535 },
7228   {   3, &hf_h225_invalidCall    , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7229   { 0, NULL, 0, NULL }
7230 };
7231
7232 static int
7233 dissect_h225_InfoRequestResponseStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7234   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7235                                  ett_h225_InfoRequestResponseStatus, InfoRequestResponseStatus_choice,
7236                                  NULL);
7237
7238   return offset;
7239 }
7240
7241
7242 static const per_sequence_t InfoRequestResponse_sequence[] = {
7243   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7244   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7245   { &hf_h225_endpointType   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointType },
7246   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7247   { &hf_h225_infoRequestResponse_rasAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
7248   { &hf_h225_callSignalAddress, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_TransportAddress },
7249   { &hf_h225_endpointAlias  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_AliasAddress },
7250   { &hf_h225_perCallInfo    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_perCallInfo },
7251   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7252   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7253   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7254   { &hf_h225_needResponse   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7255   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
7256   { &hf_h225_irrStatus      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_InfoRequestResponseStatus },
7257   { &hf_h225_unsolicited    , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7258   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7259   { NULL, 0, 0, NULL }
7260 };
7261
7262 static int
7263 dissect_h225_InfoRequestResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7264   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7265                                    ett_h225_InfoRequestResponse, InfoRequestResponse_sequence);
7266
7267   return offset;
7268 }
7269
7270
7271 static const per_sequence_t NonStandardMessage_sequence[] = {
7272   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7273   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
7274   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7275   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7276   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7277   { &hf_h225_featureSet     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7278   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7279   { NULL, 0, 0, NULL }
7280 };
7281
7282 static int
7283 dissect_h225_NonStandardMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7284   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7285                                    ett_h225_NonStandardMessage, NonStandardMessage_sequence);
7286
7287   return offset;
7288 }
7289
7290
7291 static const per_sequence_t UnknownMessageResponse_sequence[] = {
7292   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7293   { &hf_h225_tokens         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7294   { &hf_h225_cryptoTokens   , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7295   { &hf_h225_integrityCheckValue, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_ICV },
7296   { &hf_h225_messageNotUnderstood, ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h225_OCTET_STRING },
7297   { NULL, 0, 0, NULL }
7298 };
7299
7300 static int
7301 dissect_h225_UnknownMessageResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7302   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7303                                    ett_h225_UnknownMessageResponse, UnknownMessageResponse_sequence);
7304
7305   return offset;
7306 }
7307
7308
7309 static const per_sequence_t RequestInProgress_sequence[] = {
7310   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7311   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7312   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7313   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7314   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7315   { &hf_h225_delay          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_INTEGER_1_65535 },
7316   { NULL, 0, 0, NULL }
7317 };
7318
7319 static int
7320 dissect_h225_RequestInProgress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7321   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7322                                    ett_h225_RequestInProgress, RequestInProgress_sequence);
7323
7324   return offset;
7325 }
7326
7327
7328 static const per_sequence_t ResourcesAvailableIndicate_sequence[] = {
7329   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7330   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7331   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7332   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_EndpointIdentifier },
7333   { &hf_h225_protocols      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_SupportedProtocols },
7334   { &hf_h225_almostOutOfResources, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7335   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7336   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7337   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7338   { &hf_h225_capacity       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_CallCapacity },
7339   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7340   { NULL, 0, 0, NULL }
7341 };
7342
7343 static int
7344 dissect_h225_ResourcesAvailableIndicate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7345   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7346                                    ett_h225_ResourcesAvailableIndicate, ResourcesAvailableIndicate_sequence);
7347
7348   return offset;
7349 }
7350
7351
7352 static const per_sequence_t ResourcesAvailableConfirm_sequence[] = {
7353   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7354   { &hf_h225_protocolIdentifier, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ProtocolIdentifier },
7355   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7356   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7357   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7358   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7359   { &hf_h225_genericData    , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7360   { NULL, 0, 0, NULL }
7361 };
7362
7363 static int
7364 dissect_h225_ResourcesAvailableConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7365   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7366                                    ett_h225_ResourcesAvailableConfirm, ResourcesAvailableConfirm_sequence);
7367
7368   return offset;
7369 }
7370
7371
7372 static const per_sequence_t InfoRequestAck_sequence[] = {
7373   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7374   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7375   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7376   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7377   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7378   { NULL, 0, 0, NULL }
7379 };
7380
7381 static int
7382 dissect_h225_InfoRequestAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7383   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7384                                    ett_h225_InfoRequestAck, InfoRequestAck_sequence);
7385
7386   return offset;
7387 }
7388
7389
7390 const value_string InfoRequestNakReason_vals[] = {
7391   {   0, "notRegistered" },
7392   {   1, "securityDenial" },
7393   {   2, "undefinedReason" },
7394   {   3, "securityError" },
7395   { 0, NULL }
7396 };
7397
7398 static const per_choice_t InfoRequestNakReason_choice[] = {
7399   {   0, &hf_h225_notRegistered  , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7400   {   1, &hf_h225_securityDenial , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7401   {   2, &hf_h225_undefinedReason, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7402   {   3, &hf_h225_securityError  , ASN1_NOT_EXTENSION_ROOT, dissect_h225_SecurityErrors2 },
7403   { 0, NULL, 0, NULL }
7404 };
7405
7406 static int
7407 dissect_h225_InfoRequestNakReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7408 #line 545 "../../asn1/h225/h225.cnf"
7409   gint32 value;
7410
7411   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7412                                  ett_h225_InfoRequestNakReason, InfoRequestNakReason_choice,
7413                                  &value);
7414
7415   h225_pi->reason = value;
7416
7417
7418   return offset;
7419 }
7420
7421
7422 static const per_sequence_t InfoRequestNak_sequence[] = {
7423   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7424   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7425   { &hf_h225_nakReason      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_InfoRequestNakReason },
7426   { &hf_h225_altGKInfo      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_AltGKInfo },
7427   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7428   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7429   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7430   { NULL, 0, 0, NULL }
7431 };
7432
7433 static int
7434 dissect_h225_InfoRequestNak(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7435   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7436                                    ett_h225_InfoRequestNak, InfoRequestNak_sequence);
7437
7438   return offset;
7439 }
7440
7441
7442 static const per_sequence_t T_callSpecific_sequence[] = {
7443   { &hf_h225_callIdentifier , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
7444   { &hf_h225_conferenceID   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
7445   { &hf_h225_answeredCall   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_BOOLEAN },
7446   { NULL, 0, 0, NULL }
7447 };
7448
7449 static int
7450 dissect_h225_T_callSpecific(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7451   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7452                                    ett_h225_T_callSpecific, T_callSpecific_sequence);
7453
7454   return offset;
7455 }
7456
7457
7458 static const per_sequence_t ServiceControlIndication_sequence[] = {
7459   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7460   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7461   { &hf_h225_serviceControl , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_SEQUENCE_OF_ServiceControlSession },
7462   { &hf_h225_endpointIdentifier, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_EndpointIdentifier },
7463   { &hf_h225_callSpecific   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_callSpecific },
7464   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7465   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7466   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7467   { &hf_h225_featureSet     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7468   { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7469   { NULL, 0, 0, NULL }
7470 };
7471
7472 static int
7473 dissect_h225_ServiceControlIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7474   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7475                                    ett_h225_ServiceControlIndication, ServiceControlIndication_sequence);
7476
7477   return offset;
7478 }
7479
7480
7481 static const value_string h225_T_result_vals[] = {
7482   {   0, "started" },
7483   {   1, "failed" },
7484   {   2, "stopped" },
7485   {   3, "notAvailable" },
7486   {   4, "neededFeatureNotSupported" },
7487   { 0, NULL }
7488 };
7489
7490 static const per_choice_t T_result_choice[] = {
7491   {   0, &hf_h225_started        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7492   {   1, &hf_h225_failed         , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7493   {   2, &hf_h225_stopped        , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7494   {   3, &hf_h225_notAvailable   , ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7495   {   4, &hf_h225_neededFeatureNotSupported, ASN1_EXTENSION_ROOT    , dissect_h225_NULL },
7496   { 0, NULL, 0, NULL }
7497 };
7498
7499 static int
7500 dissect_h225_T_result(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7501   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7502                                  ett_h225_T_result, T_result_choice,
7503                                  NULL);
7504
7505   return offset;
7506 }
7507
7508
7509 static const per_sequence_t ServiceControlResponse_sequence[] = {
7510   { &hf_h225_requestSeqNum  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h225_RequestSeqNum },
7511   { &hf_h225_result         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_T_result },
7512   { &hf_h225_nonStandardData, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_NonStandardParameter },
7513   { &hf_h225_tokens         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_ClearToken },
7514   { &hf_h225_cryptoTokens   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_CryptoH323Token },
7515   { &hf_h225_integrityCheckValue, ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_ICV },
7516   { &hf_h225_featureSet     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_FeatureSet },
7517   { &hf_h225_genericData    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h225_SEQUENCE_OF_GenericData },
7518   { NULL, 0, 0, NULL }
7519 };
7520
7521 static int
7522 dissect_h225_ServiceControlResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7523   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
7524                                    ett_h225_ServiceControlResponse, ServiceControlResponse_sequence);
7525
7526   return offset;
7527 }
7528
7529
7530 static const per_sequence_t SEQUENCE_OF_AdmissionConfirm_sequence_of[1] = {
7531   { &hf_h225_admissionConfirmSequence_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h225_AdmissionConfirm },
7532 };
7533
7534 static int
7535 dissect_h225_SEQUENCE_OF_AdmissionConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7536   offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
7537                                       ett_h225_SEQUENCE_OF_AdmissionConfirm, SEQUENCE_OF_AdmissionConfirm_sequence_of);
7538
7539   return offset;
7540 }
7541
7542
7543 const value_string h225_RasMessage_vals[] = {
7544   {   0, "gatekeeperRequest" },
7545   {   1, "gatekeeperConfirm" },
7546   {   2, "gatekeeperReject" },
7547   {   3, "registrationRequest" },
7548   {   4, "registrationConfirm" },
7549   {   5, "registrationReject" },
7550   {   6, "unregistrationRequest" },
7551   {   7, "unregistrationConfirm" },
7552   {   8, "unregistrationReject" },
7553   {   9, "admissionRequest" },
7554   {  10, "admissionConfirm" },
7555   {  11, "admissionReject" },
7556   {  12, "bandwidthRequest" },
7557   {  13, "bandwidthConfirm" },
7558   {  14, "bandwidthReject" },
7559   {  15, "disengageRequest" },
7560   {  16, "disengageConfirm" },
7561   {  17, "disengageReject" },
7562   {  18, "locationRequest" },
7563   {  19, "locationConfirm" },
7564   {  20, "locationReject" },
7565   {  21, "infoRequest" },
7566   {  22, "infoRequestResponse" },
7567   {  23, "nonStandardMessage" },
7568   {  24, "unknownMessageResponse" },
7569   {  25, "requestInProgress" },
7570   {  26, "resourcesAvailableIndicate" },
7571   {  27, "resourcesAvailableConfirm" },
7572   {  28, "infoRequestAck" },
7573   {  29, "infoRequestNak" },
7574   {  30, "serviceControlIndication" },
7575   {  31, "serviceControlResponse" },
7576   {  32, "admissionConfirmSequence" },
7577   { 0, NULL }
7578 };
7579
7580 static const per_choice_t RasMessage_choice[] = {
7581   {   0, &hf_h225_gatekeeperRequest, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperRequest },
7582   {   1, &hf_h225_gatekeeperConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperConfirm },
7583   {   2, &hf_h225_gatekeeperReject, ASN1_EXTENSION_ROOT    , dissect_h225_GatekeeperReject },
7584   {   3, &hf_h225_registrationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationRequest },
7585   {   4, &hf_h225_registrationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationConfirm },
7586   {   5, &hf_h225_registrationReject, ASN1_EXTENSION_ROOT    , dissect_h225_RegistrationReject },
7587   {   6, &hf_h225_unregistrationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationRequest },
7588   {   7, &hf_h225_unregistrationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationConfirm },
7589   {   8, &hf_h225_unregistrationReject, ASN1_EXTENSION_ROOT    , dissect_h225_UnregistrationReject },
7590   {   9, &hf_h225_admissionRequest, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionRequest },
7591   {  10, &hf_h225_admissionConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionConfirm },
7592   {  11, &hf_h225_admissionReject, ASN1_EXTENSION_ROOT    , dissect_h225_AdmissionReject },
7593   {  12, &hf_h225_bandwidthRequest, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthRequest },
7594   {  13, &hf_h225_bandwidthConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthConfirm },
7595   {  14, &hf_h225_bandwidthReject, ASN1_EXTENSION_ROOT    , dissect_h225_BandwidthReject },
7596   {  15, &hf_h225_disengageRequest, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageRequest },
7597   {  16, &hf_h225_disengageConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageConfirm },
7598   {  17, &hf_h225_disengageReject, ASN1_EXTENSION_ROOT    , dissect_h225_DisengageReject },
7599   {  18, &hf_h225_locationRequest, ASN1_EXTENSION_ROOT    , dissect_h225_LocationRequest },
7600   {  19, &hf_h225_locationConfirm, ASN1_EXTENSION_ROOT    , dissect_h225_LocationConfirm },
7601   {  20, &hf_h225_locationReject , ASN1_EXTENSION_ROOT    , dissect_h225_LocationReject },
7602   {  21, &hf_h225_infoRequest    , ASN1_EXTENSION_ROOT    , dissect_h225_InfoRequest },
7603   {  22, &hf_h225_infoRequestResponse, ASN1_EXTENSION_ROOT    , dissect_h225_InfoRequestResponse },
7604   {  23, &hf_h225_nonStandardMessage, ASN1_EXTENSION_ROOT    , dissect_h225_NonStandardMessage },
7605   {  24, &hf_h225_unknownMessageResponse, ASN1_EXTENSION_ROOT    , dissect_h225_UnknownMessageResponse },
7606   {  25, &hf_h225_requestInProgress, ASN1_NOT_EXTENSION_ROOT, dissect_h225_RequestInProgress },
7607   {  26, &hf_h225_resourcesAvailableIndicate, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableIndicate },
7608   {  27, &hf_h225_resourcesAvailableConfirm, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ResourcesAvailableConfirm },
7609   {  28, &hf_h225_infoRequestAck , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestAck },
7610   {  29, &hf_h225_infoRequestNak , ASN1_NOT_EXTENSION_ROOT, dissect_h225_InfoRequestNak },
7611   {  30, &hf_h225_serviceControlIndication, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlIndication },
7612   {  31, &hf_h225_serviceControlResponse, ASN1_NOT_EXTENSION_ROOT, dissect_h225_ServiceControlResponse },
7613   {  32, &hf_h225_admissionConfirmSequence, ASN1_NOT_EXTENSION_ROOT, dissect_h225_SEQUENCE_OF_AdmissionConfirm },
7614   { 0, NULL, 0, NULL }
7615 };
7616
7617 int
7618 dissect_h225_RasMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
7619 #line 285 "../../asn1/h225/h225.cnf"
7620     gint32 rasmessage_value;
7621
7622   call_id_guid = NULL;
7623   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
7624                                  ett_h225_RasMessage, RasMessage_choice,
7625                                  &rasmessage_value);
7626
7627   col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RAS: %s ",
7628     val_to_str(rasmessage_value, h225_RasMessage_vals, "<unknown>"));
7629
7630   h225_pi->msg_tag = rasmessage_value;
7631   if (call_id_guid) {
7632     h225_pi->guid = *call_id_guid;
7633   }
7634
7635
7636   return offset;
7637 }
7638
7639 /*--- PDUs ---*/
7640
7641 static int dissect_H323_UserInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7642   int offset = 0;
7643   asn1_ctx_t asn1_ctx;
7644   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
7645   offset = dissect_h225_H323_UserInformation(tvb, offset, &asn1_ctx, tree, hf_h225_H323_UserInformation_PDU);
7646   offset += 7; offset >>= 3;
7647   return offset;
7648 }
7649 int dissect_h225_ExtendedAliasAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7650   int offset = 0;
7651   asn1_ctx_t asn1_ctx;
7652   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
7653   offset = dissect_h225_ExtendedAliasAddress(tvb, offset, &asn1_ctx, tree, hf_h225_h225_ExtendedAliasAddress_PDU);
7654   offset += 7; offset >>= 3;
7655   return offset;
7656 }
7657 static int dissect_RasMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
7658   int offset = 0;
7659   asn1_ctx_t asn1_ctx;
7660   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
7661   offset = dissect_h225_RasMessage(tvb, offset, &asn1_ctx, tree, hf_h225_RasMessage_PDU);
7662   offset += 7; offset >>= 3;
7663   return offset;
7664 }
7665
7666
7667 /*--- End of included file: packet-h225-fn.c ---*/
7668 #line 251 "../../asn1/h225/packet-h225-template.c"
7669
7670 /* Forward declaration we need below */
7671 void proto_reg_handoff_h225(void);
7672
7673 /*
7674  * Functions needed for Ras-Hash-Table
7675  */
7676
7677 /* compare 2 keys */
7678 static gint h225ras_call_equal(gconstpointer k1, gconstpointer k2)
7679 {
7680   const h225ras_call_info_key* key1 = (const h225ras_call_info_key*) k1;
7681   const h225ras_call_info_key* key2 = (const h225ras_call_info_key*) k2;
7682
7683   return (key1->reqSeqNum == key2->reqSeqNum &&
7684           key1->conversation == key2->conversation);
7685 }
7686
7687 /* calculate a hash key */
7688 static guint h225ras_call_hash(gconstpointer k)
7689 {
7690   const h225ras_call_info_key* key = (const h225ras_call_info_key*) k;
7691
7692   return key->reqSeqNum + GPOINTER_TO_UINT(key->conversation);
7693 }
7694
7695
7696 h225ras_call_t * find_h225ras_call(h225ras_call_info_key *h225ras_call_key ,int category)
7697 {
7698   h225ras_call_t *h225ras_call = NULL;
7699   h225ras_call = (h225ras_call_t *)g_hash_table_lookup(ras_calls[category], h225ras_call_key);
7700
7701   return h225ras_call;
7702 }
7703
7704 h225ras_call_t * new_h225ras_call(h225ras_call_info_key *h225ras_call_key, packet_info *pinfo, e_guid_t *guid, int category)
7705 {
7706   h225ras_call_info_key *new_h225ras_call_key;
7707   h225ras_call_t *h225ras_call = NULL;
7708
7709
7710   /* Prepare the value data.
7711      "req_num" and "rsp_num" are frame numbers;
7712      frame numbers are 1-origin, so we use 0
7713      to mean "we don't yet know in which frame
7714      the reply for this call appears". */
7715   new_h225ras_call_key = wmem_new(wmem_file_scope(), h225ras_call_info_key);
7716   new_h225ras_call_key->reqSeqNum = h225ras_call_key->reqSeqNum;
7717   new_h225ras_call_key->conversation = h225ras_call_key->conversation;
7718   h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7719   h225ras_call->req_num = pinfo->fd->num;
7720   h225ras_call->rsp_num = 0;
7721   h225ras_call->requestSeqNum = h225ras_call_key->reqSeqNum;
7722   h225ras_call->responded = FALSE;
7723   h225ras_call->next_call = NULL;
7724   h225ras_call->req_time=pinfo->fd->abs_ts;
7725   h225ras_call->guid=*guid;
7726   /* store it */
7727   g_hash_table_insert(ras_calls[category], new_h225ras_call_key, h225ras_call);
7728
7729   return h225ras_call;
7730 }
7731
7732 h225ras_call_t * append_h225ras_call(h225ras_call_t *prev_call, packet_info *pinfo, e_guid_t *guid, int category _U_)
7733 {
7734   h225ras_call_t *h225ras_call = NULL;
7735
7736   /* Prepare the value data.
7737      "req_num" and "rsp_num" are frame numbers;
7738      frame numbers are 1-origin, so we use 0
7739      to mean "we don't yet know in which frame
7740      the reply for this call appears". */
7741   h225ras_call = wmem_new(wmem_file_scope(), h225ras_call_t);
7742   h225ras_call->req_num = pinfo->fd->num;
7743   h225ras_call->rsp_num = 0;
7744   h225ras_call->requestSeqNum = prev_call->requestSeqNum;
7745   h225ras_call->responded = FALSE;
7746   h225ras_call->next_call = NULL;
7747   h225ras_call->req_time=pinfo->fd->abs_ts;
7748   h225ras_call->guid=*guid;
7749
7750   prev_call->next_call = h225ras_call;
7751   return h225ras_call;
7752 }
7753
7754 /* Init routine for hash tables and delay calculation
7755    This routine will be called by Wireshark, before it
7756    is (re-)dissecting a trace file from beginning.
7757    We need to discard and init any state we've saved */
7758
7759 static void
7760 h225_init_routine(void)
7761 {
7762   int i;
7763   /* create new hash-tables for RAS SRT */
7764
7765   for(i=0;i<7;i++) {
7766     ras_calls[i] = g_hash_table_new(h225ras_call_hash, h225ras_call_equal);
7767   }
7768
7769 }
7770
7771 static void
7772 h225_cleanup_routine(void)
7773 {
7774   int i;
7775
7776   /* free hash-tables for RAS SRT */
7777   for(i=0;i<7;i++) {
7778     g_hash_table_destroy(ras_calls[i]);
7779   }
7780 }
7781
7782 static int
7783 dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
7784 {
7785   proto_item *it;
7786   proto_tree *tr;
7787   int offset = 0;
7788
7789   pi_current++;
7790   if(pi_current==5){
7791     pi_current=0;
7792   }
7793   h225_pi=&pi_arr[pi_current];
7794
7795   /* Init struct for collecting h225_packet_info */
7796   reset_h225_packet_info(h225_pi);
7797   h225_pi->msg_type = H225_CS;
7798
7799   next_tvb_init(&h245_list);
7800   next_tvb_init(&tp_list);
7801
7802   col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
7803   col_clear(pinfo->cinfo, COL_INFO);
7804
7805   it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, -1, PSNAME" CS");
7806   tr=proto_item_add_subtree(it, ett_h225);
7807
7808   offset = dissect_H323_UserInformation_PDU(tvb, pinfo, tr, NULL);
7809
7810   if (h245_list.count){
7811     col_append_str(pinfo->cinfo, COL_PROTOCOL, "/");
7812     col_set_fence(pinfo->cinfo, COL_PROTOCOL);
7813   }
7814
7815   next_tvb_call(&h245_list, pinfo, tree, h245dg_handle, data_handle);
7816   next_tvb_call(&tp_list, pinfo, tree, NULL, data_handle);
7817
7818   tap_queue_packet(h225_tap, pinfo, h225_pi);
7819
7820   return offset;
7821 }
7822 static int
7823 dissect_h225_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_){
7824   proto_item *it;
7825   proto_tree *tr;
7826   guint32 offset=0;
7827
7828   pi_current++;
7829   if(pi_current==5){
7830     pi_current=0;
7831   }
7832   h225_pi=&pi_arr[pi_current];
7833
7834   /* Init struct for collecting h225_packet_info */
7835   reset_h225_packet_info(h225_pi);
7836   h225_pi->msg_type = H225_RAS;
7837
7838   col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
7839
7840   it=proto_tree_add_protocol_format(tree, proto_h225, tvb, offset, -1, PSNAME" RAS");
7841   tr=proto_item_add_subtree(it, ett_h225);
7842
7843   offset = dissect_RasMessage_PDU(tvb, pinfo, tr, NULL);
7844
7845   ras_call_matching(tvb, pinfo, tr, h225_pi);
7846
7847   tap_queue_packet(h225_tap, pinfo, h225_pi);
7848
7849   return offset;
7850 }
7851
7852
7853 /* The following values represent the size of their valuestring arrays */
7854
7855 #define RAS_MSG_TYPES (sizeof(h225_RasMessage_vals) / sizeof(value_string))
7856 #define CS_MSG_TYPES (sizeof(T_h323_message_body_vals) / sizeof(value_string))
7857
7858 #define GRJ_REASONS (sizeof(GatekeeperRejectReason_vals) / sizeof(value_string))
7859 #define RRJ_REASONS (sizeof(RegistrationRejectReason_vals) / sizeof(value_string))
7860 #define URQ_REASONS (sizeof(UnregRequestReason_vals) / sizeof(value_string))
7861 #define URJ_REASONS (sizeof(UnregRejectReason_vals) / sizeof(value_string))
7862 #define ARJ_REASONS (sizeof(AdmissionRejectReason_vals) / sizeof(value_string))
7863 #define BRJ_REASONS (sizeof(BandRejectReason_vals) / sizeof(value_string))
7864 #define DRQ_REASONS (sizeof(DisengageReason_vals) / sizeof(value_string))
7865 #define DRJ_REASONS (sizeof(DisengageRejectReason_vals) / sizeof(value_string))
7866 #define LRJ_REASONS (sizeof(LocationRejectReason_vals) / sizeof(value_string))
7867 #define IRQNAK_REASONS (sizeof(InfoRequestNakReason_vals) / sizeof(value_string))
7868 #define REL_CMP_REASONS (sizeof(h225_ReleaseCompleteReason_vals) / sizeof(value_string))
7869 #define FACILITY_REASONS (sizeof(FacilityReason_vals) / sizeof(value_string))
7870
7871 /* TAP STAT INFO */
7872 typedef enum
7873 {
7874   MESSAGE_TYPE_COLUMN = 0,
7875   COUNT_COLUMN
7876 } h225_stat_columns;
7877
7878 typedef struct _h225_table_item {
7879   guint count;     /* Message count */
7880   guint table_idx; /* stat_table index */
7881 } h225_table_item_t;
7882
7883 static stat_tap_table_item h225_stat_fields[] = {{TABLE_ITEM_STRING, TAP_ALIGN_LEFT, "Message Type or Reason", "%-25s"}, {TABLE_ITEM_UINT, TAP_ALIGN_RIGHT, "Count", "%d"}};
7884
7885 static guint ras_msg_idx[RAS_MSG_TYPES];
7886 static guint cs_msg_idx[CS_MSG_TYPES];
7887
7888 static guint grj_reason_idx[GRJ_REASONS];
7889 static guint rrj_reason_idx[RRJ_REASONS];
7890 static guint urq_reason_idx[URQ_REASONS];
7891 static guint urj_reason_idx[URJ_REASONS];
7892 static guint arj_reason_idx[ARJ_REASONS];
7893 static guint brj_reason_idx[BRJ_REASONS];
7894 static guint drq_reason_idx[DRQ_REASONS];
7895 static guint drj_reason_idx[DRJ_REASONS];
7896 static guint lrj_reason_idx[LRJ_REASONS];
7897 static guint irqnak_reason_idx[IRQNAK_REASONS];
7898 static guint rel_cmp_reason_idx[REL_CMP_REASONS];
7899 static guint facility_reason_idx[FACILITY_REASONS];
7900
7901 static guint other_idx;
7902
7903 static void h225_stat_init(new_stat_tap_ui* new_stat, new_stat_tap_gui_init_cb gui_callback, void* gui_data)
7904 {
7905   int num_fields = sizeof(h225_stat_fields)/sizeof(stat_tap_table_item);
7906   new_stat_tap_table* table = new_stat_tap_init_table("H.225 Messages and Message Reasons", num_fields, 0, NULL, gui_callback, gui_data);
7907   int row_idx = 0, msg_idx;
7908   stat_tap_table_item_type items[sizeof(h225_stat_fields)/sizeof(stat_tap_table_item)];
7909
7910   new_stat_tap_add_table(new_stat, table);
7911
7912   items[MESSAGE_TYPE_COLUMN].type = TABLE_ITEM_STRING;
7913   items[COUNT_COLUMN].type = TABLE_ITEM_UINT;
7914   items[COUNT_COLUMN].value.uint_value = 0;
7915
7916   /* Add a row for each value type */
7917
7918   msg_idx = 0;
7919   do
7920   {
7921     items[MESSAGE_TYPE_COLUMN].value.string_value =
7922       h225_RasMessage_vals[msg_idx].strptr
7923       ? h225_RasMessage_vals[msg_idx].strptr
7924       : "Unknown RAS message";
7925     ras_msg_idx[msg_idx] = row_idx;
7926
7927     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
7928     row_idx++;
7929     msg_idx++;
7930   } while (h225_RasMessage_vals[msg_idx].strptr);
7931
7932   msg_idx = 0;
7933   do
7934   {
7935     items[MESSAGE_TYPE_COLUMN].value.string_value =
7936       T_h323_message_body_vals[msg_idx].strptr
7937       ? T_h323_message_body_vals[msg_idx].strptr
7938       : "Unknown CS message";
7939     cs_msg_idx[msg_idx] = row_idx;
7940
7941     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
7942     row_idx++;
7943     msg_idx++;
7944   } while (T_h323_message_body_vals[msg_idx].strptr);
7945
7946   msg_idx = 0;
7947   do
7948   {
7949     items[MESSAGE_TYPE_COLUMN].value.string_value =
7950       GatekeeperRejectReason_vals[msg_idx].strptr
7951       ? GatekeeperRejectReason_vals[msg_idx].strptr
7952       : "Unknown gatekeeper reject reason";
7953     grj_reason_idx[msg_idx] = row_idx;
7954
7955     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
7956     row_idx++;
7957     msg_idx++;
7958   } while (GatekeeperRejectReason_vals[msg_idx].strptr);
7959
7960   msg_idx = 0;
7961   do
7962   {
7963     items[MESSAGE_TYPE_COLUMN].value.string_value =
7964       RegistrationRejectReason_vals[msg_idx].strptr
7965       ? RegistrationRejectReason_vals[msg_idx].strptr
7966       : "Unknown registration reject reason";
7967     rrj_reason_idx[msg_idx] = row_idx;
7968
7969     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
7970     row_idx++;
7971     msg_idx++;
7972   } while (RegistrationRejectReason_vals[msg_idx].strptr);
7973
7974   msg_idx = 0;
7975   do
7976   {
7977     items[MESSAGE_TYPE_COLUMN].value.string_value =
7978       UnregRequestReason_vals[msg_idx].strptr
7979       ? UnregRequestReason_vals[msg_idx].strptr
7980       : "Unknown unregistration request reason";
7981     urq_reason_idx[msg_idx] = row_idx;
7982
7983     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
7984     row_idx++;
7985     msg_idx++;
7986   } while (UnregRequestReason_vals[msg_idx].strptr);
7987
7988   msg_idx = 0;
7989   do
7990   {
7991     items[MESSAGE_TYPE_COLUMN].value.string_value =
7992       UnregRejectReason_vals[msg_idx].strptr
7993       ? UnregRejectReason_vals[msg_idx].strptr
7994       : "Unknown unregistration reject reason";
7995     urj_reason_idx[msg_idx] = row_idx;
7996
7997     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
7998     row_idx++;
7999     msg_idx++;
8000   } while (UnregRejectReason_vals[msg_idx].strptr);
8001
8002   msg_idx = 0;
8003   do
8004   {
8005     items[MESSAGE_TYPE_COLUMN].value.string_value =
8006       AdmissionRejectReason_vals[msg_idx].strptr
8007       ? AdmissionRejectReason_vals[msg_idx].strptr
8008       : "Unknown admission reject reason";
8009     arj_reason_idx[msg_idx] = row_idx;
8010
8011     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8012     row_idx++;
8013     msg_idx++;
8014   } while (AdmissionRejectReason_vals[msg_idx].strptr);
8015
8016   msg_idx = 0;
8017   do
8018   {
8019     items[MESSAGE_TYPE_COLUMN].value.string_value =
8020       BandRejectReason_vals[msg_idx].strptr
8021       ? BandRejectReason_vals[msg_idx].strptr
8022       : "Unknown band reject reason";
8023     brj_reason_idx[msg_idx] = row_idx;
8024
8025     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8026     row_idx++;
8027     msg_idx++;
8028   } while (BandRejectReason_vals[msg_idx].strptr);
8029
8030   msg_idx = 0;
8031   do
8032   {
8033     items[MESSAGE_TYPE_COLUMN].value.string_value =
8034       DisengageReason_vals[msg_idx].strptr
8035       ? DisengageReason_vals[msg_idx].strptr
8036       : "Unknown disengage reason";
8037     drq_reason_idx[msg_idx] = row_idx;
8038
8039     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8040     row_idx++;
8041     msg_idx++;
8042   } while (DisengageReason_vals[msg_idx].strptr);
8043
8044   msg_idx = 0;
8045   do
8046   {
8047     items[MESSAGE_TYPE_COLUMN].value.string_value =
8048       DisengageRejectReason_vals[msg_idx].strptr
8049       ? DisengageRejectReason_vals[msg_idx].strptr
8050       : "Unknown disengage reject reason";
8051     drj_reason_idx[msg_idx] = row_idx;
8052
8053     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8054     row_idx++;
8055     msg_idx++;
8056   } while (DisengageRejectReason_vals[msg_idx].strptr);
8057
8058   msg_idx = 0;
8059   do
8060   {
8061     items[MESSAGE_TYPE_COLUMN].value.string_value =
8062       LocationRejectReason_vals[msg_idx].strptr
8063       ? LocationRejectReason_vals[msg_idx].strptr
8064       : "Unknown location reject reason";
8065     lrj_reason_idx[msg_idx] = row_idx;
8066
8067     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8068     row_idx++;
8069     msg_idx++;
8070   } while (LocationRejectReason_vals[msg_idx].strptr);
8071
8072   msg_idx = 0;
8073   do
8074   {
8075     items[MESSAGE_TYPE_COLUMN].value.string_value =
8076       InfoRequestNakReason_vals[msg_idx].strptr
8077       ? InfoRequestNakReason_vals[msg_idx].strptr
8078       : "Unknown info request nak reason";
8079     irqnak_reason_idx[msg_idx] = row_idx;
8080
8081     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8082     row_idx++;
8083     msg_idx++;
8084   } while (InfoRequestNakReason_vals[msg_idx].strptr);
8085
8086   msg_idx = 0;
8087   do
8088   {
8089     items[MESSAGE_TYPE_COLUMN].value.string_value =
8090       h225_ReleaseCompleteReason_vals[msg_idx].strptr
8091       ? h225_ReleaseCompleteReason_vals[msg_idx].strptr
8092       : "Unknown release complete reason";
8093     rel_cmp_reason_idx[msg_idx] = row_idx;
8094
8095     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8096     row_idx++;
8097     msg_idx++;
8098   } while (h225_ReleaseCompleteReason_vals[msg_idx].strptr);
8099
8100   msg_idx = 0;
8101   do
8102   {
8103     items[MESSAGE_TYPE_COLUMN].value.string_value =
8104       FacilityReason_vals[msg_idx].strptr
8105       ? FacilityReason_vals[msg_idx].strptr
8106       : "Unknown facility reason";
8107     facility_reason_idx[msg_idx] = row_idx;
8108
8109     new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8110     row_idx++;
8111     msg_idx++;
8112   } while (FacilityReason_vals[msg_idx].strptr);
8113
8114
8115   items[MESSAGE_TYPE_COLUMN].value.string_value = "Unknown H.225 message";
8116   new_stat_tap_init_table_row(table, row_idx, num_fields, items);
8117   other_idx = row_idx;
8118 }
8119
8120 static gboolean
8121 h225_stat_packet(void *tapdata, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *hpi_ptr)
8122 {
8123   new_stat_data_t* stat_data = (new_stat_data_t*)tapdata;
8124   const h225_packet_info *hpi = (const h225_packet_info *)hpi_ptr;
8125   int tag_idx = -1;
8126   int reason_idx = -1;
8127
8128   if(hpi->msg_tag < 0) { /* uninitialized */
8129     return FALSE;
8130   }
8131
8132   switch (hpi->msg_type) {
8133
8134   case H225_RAS:
8135     tag_idx = ras_msg_idx[MIN(hpi->msg_tag, (int)RAS_MSG_TYPES-1)];
8136
8137     /* Look for reason tag */
8138     if(hpi->reason < 0) { /* uninitialized */
8139       break;
8140     }
8141
8142     switch(hpi->msg_tag) {
8143
8144     case 2: /* GRJ */
8145       reason_idx = grj_reason_idx[MIN(hpi->reason, (int)GRJ_REASONS-1)];
8146       break;
8147     case 5: /* RRJ */
8148       reason_idx = rrj_reason_idx[MIN(hpi->reason, (int)RRJ_REASONS-1)];
8149       break;
8150     case 6: /* URQ */
8151       reason_idx = urq_reason_idx[MIN(hpi->reason, (int)URQ_REASONS-1)];
8152       break;
8153     case 8: /* URJ */
8154       reason_idx = urj_reason_idx[MIN(hpi->reason, (int)URJ_REASONS-1)];
8155       break;
8156     case 11: /* ARJ */
8157       reason_idx = arj_reason_idx[MIN(hpi->reason, (int)ARJ_REASONS-1)];
8158       break;
8159     case 14: /* BRJ */
8160       reason_idx = brj_reason_idx[MIN(hpi->reason, (int)BRJ_REASONS-1)];
8161       break;
8162     case 15: /* DRQ */
8163       reason_idx = drq_reason_idx[MIN(hpi->reason, (int)DRQ_REASONS-1)];
8164       break;
8165     case 17: /* DRJ */
8166       reason_idx = drj_reason_idx[MIN(hpi->reason, (int)DRJ_REASONS-1)];
8167       break;
8168     case 20: /* LRJ */
8169       reason_idx = lrj_reason_idx[MIN(hpi->reason, (int)LRJ_REASONS-1)];
8170       break;
8171     case 29: /* IRQ Nak */
8172       reason_idx = irqnak_reason_idx[MIN(hpi->reason, (int)IRQNAK_REASONS-1)];
8173       break;
8174     default:
8175       /* do nothing */
8176       break;
8177     }
8178
8179     break;
8180
8181   case H225_CS:
8182     tag_idx = cs_msg_idx[MIN(hpi->msg_tag, (int)CS_MSG_TYPES-1)];
8183
8184     /* Look for reason tag */
8185     if(hpi->reason < 0) { /* uninitialized */
8186       break;
8187     }
8188
8189     switch(hpi->msg_tag) {
8190
8191     case 5: /* ReleaseComplete */
8192       reason_idx = rel_cmp_reason_idx[MIN(hpi->reason, (int)REL_CMP_REASONS-1)];
8193       break;
8194     case 6: /* Facility */
8195       reason_idx = facility_reason_idx[MIN(hpi->reason, (int)FACILITY_REASONS-1)];
8196       break;
8197     default:
8198       /* do nothing */
8199       break;
8200     }
8201
8202     break;
8203
8204   case H225_OTHERS:
8205   default:
8206     tag_idx = other_idx;
8207   }
8208
8209   if (tag_idx >= 0) {
8210     new_stat_tap_table*table = g_array_index(stat_data->new_stat_tap_data->tables, new_stat_tap_table*, 0);
8211     stat_tap_table_item_type* msg_data = new_stat_tap_get_field_data(table, tag_idx, COUNT_COLUMN);;
8212     msg_data->value.uint_value++;
8213     new_stat_tap_set_field_data(table, tag_idx, COUNT_COLUMN, msg_data);
8214
8215     if (reason_idx >= 0) {
8216       msg_data = new_stat_tap_get_field_data(table, reason_idx, COUNT_COLUMN);;
8217       msg_data->value.uint_value++;
8218       new_stat_tap_set_field_data(table, reason_idx, COUNT_COLUMN, msg_data);
8219     }
8220
8221     return TRUE;
8222   }
8223   return FALSE;
8224 }
8225
8226 static void
8227 h225_stat_reset(new_stat_tap_table* table)
8228 {
8229   guint element;
8230   stat_tap_table_item_type* item_data;
8231
8232   for (element = 0; element < table->num_elements; element++)
8233   {
8234     item_data = new_stat_tap_get_field_data(table, element, COUNT_COLUMN);
8235     item_data->value.uint_value = 0;
8236     new_stat_tap_set_field_data(table, element, COUNT_COLUMN, item_data);
8237   }
8238 }
8239
8240 /*--- proto_register_h225 -------------------------------------------*/
8241 void proto_register_h225(void) {
8242
8243   /* List of fields */
8244   static hf_register_info hf[] = {
8245   { &hf_h221Manufacturer,
8246     { "H.225 Manufacturer", "h225.Manufacturer", FT_UINT32, BASE_HEX,
8247     VALS(H221ManufacturerCode_vals), 0, "h225.H.221 Manufacturer", HFILL }},
8248
8249   { &hf_h225_ras_req_frame,
8250     { "RAS Request Frame", "h225.ras.reqframe", FT_FRAMENUM, BASE_NONE,
8251     NULL, 0, NULL, HFILL }},
8252
8253   { &hf_h225_ras_rsp_frame,
8254     { "RAS Response Frame", "h225.ras.rspframe", FT_FRAMENUM, BASE_NONE,
8255     NULL, 0, NULL, HFILL }},
8256
8257   { &hf_h225_ras_dup,
8258     { "Duplicate RAS Message", "h225.ras.dup", FT_UINT32, BASE_DEC,
8259     NULL, 0, NULL, HFILL }},
8260
8261   { &hf_h225_ras_deltatime,
8262     { "RAS Service Response Time", "h225.ras.timedelta", FT_RELATIVE_TIME, BASE_NONE,
8263     NULL, 0, "Timedelta between RAS-Request and RAS-Response", HFILL }},
8264
8265   { &hf_h225_debug_dissector_try_string,
8266     { "*** DEBUG dissector_try_string", "h225.debug.dissector_try_string", FT_STRING, BASE_NONE,
8267     NULL, 0, NULL, HFILL }},
8268
8269
8270 /*--- Included file: packet-h225-hfarr.c ---*/
8271 #line 1 "../../asn1/h225/packet-h225-hfarr.c"
8272     { &hf_h225_H323_UserInformation_PDU,
8273       { "H323-UserInformation", "h225.H323_UserInformation_element",
8274         FT_NONE, BASE_NONE, NULL, 0,
8275         NULL, HFILL }},
8276     { &hf_h225_h225_ExtendedAliasAddress_PDU,
8277       { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8278         FT_NONE, BASE_NONE, NULL, 0,
8279         NULL, HFILL }},
8280     { &hf_h225_RasMessage_PDU,
8281       { "RasMessage", "h225.RasMessage",
8282         FT_UINT32, BASE_DEC, VALS(h225_RasMessage_vals), 0,
8283         NULL, HFILL }},
8284     { &hf_h225_h323_uu_pdu,
8285       { "h323-uu-pdu", "h225.h323_uu_pdu_element",
8286         FT_NONE, BASE_NONE, NULL, 0,
8287         NULL, HFILL }},
8288     { &hf_h225_user_data,
8289       { "user-data", "h225.user_data_element",
8290         FT_NONE, BASE_NONE, NULL, 0,
8291         NULL, HFILL }},
8292     { &hf_h225_protocol_discriminator,
8293       { "protocol-discriminator", "h225.protocol_discriminator",
8294         FT_UINT32, BASE_DEC|BASE_EXT_STRING, &q931_protocol_discriminator_vals_ext, 0,
8295         "INTEGER_0_255", HFILL }},
8296     { &hf_h225_user_information,
8297       { "user-information", "h225.user_information",
8298         FT_BYTES, BASE_NONE, NULL, 0,
8299         "OCTET_STRING_SIZE_1_131", HFILL }},
8300     { &hf_h225_h323_message_body,
8301       { "h323-message-body", "h225.h323_message_body",
8302         FT_UINT32, BASE_DEC, VALS(T_h323_message_body_vals), 0,
8303         NULL, HFILL }},
8304     { &hf_h225_setup,
8305       { "setup", "h225.setup_element",
8306         FT_NONE, BASE_NONE, NULL, 0,
8307         "Setup_UUIE", HFILL }},
8308     { &hf_h225_callProceeding,
8309       { "callProceeding", "h225.callProceeding_element",
8310         FT_NONE, BASE_NONE, NULL, 0,
8311         "CallProceeding_UUIE", HFILL }},
8312     { &hf_h225_connect,
8313       { "connect", "h225.connect_element",
8314         FT_NONE, BASE_NONE, NULL, 0,
8315         "Connect_UUIE", HFILL }},
8316     { &hf_h225_alerting,
8317       { "alerting", "h225.alerting_element",
8318         FT_NONE, BASE_NONE, NULL, 0,
8319         "Alerting_UUIE", HFILL }},
8320     { &hf_h225_information,
8321       { "information", "h225.information_element",
8322         FT_NONE, BASE_NONE, NULL, 0,
8323         "Information_UUIE", HFILL }},
8324     { &hf_h225_releaseComplete,
8325       { "releaseComplete", "h225.releaseComplete_element",
8326         FT_NONE, BASE_NONE, NULL, 0,
8327         "ReleaseComplete_UUIE", HFILL }},
8328     { &hf_h225_facility,
8329       { "facility", "h225.facility_element",
8330         FT_NONE, BASE_NONE, NULL, 0,
8331         "Facility_UUIE", HFILL }},
8332     { &hf_h225_progress,
8333       { "progress", "h225.progress_element",
8334         FT_NONE, BASE_NONE, NULL, 0,
8335         "Progress_UUIE", HFILL }},
8336     { &hf_h225_empty_flg,
8337       { "empty", "h225.empty_element",
8338         FT_NONE, BASE_NONE, NULL, 0,
8339         "T_empty_flg", HFILL }},
8340     { &hf_h225_status,
8341       { "status", "h225.status_element",
8342         FT_NONE, BASE_NONE, NULL, 0,
8343         "Status_UUIE", HFILL }},
8344     { &hf_h225_statusInquiry,
8345       { "statusInquiry", "h225.statusInquiry_element",
8346         FT_NONE, BASE_NONE, NULL, 0,
8347         "StatusInquiry_UUIE", HFILL }},
8348     { &hf_h225_setupAcknowledge,
8349       { "setupAcknowledge", "h225.setupAcknowledge_element",
8350         FT_NONE, BASE_NONE, NULL, 0,
8351         "SetupAcknowledge_UUIE", HFILL }},
8352     { &hf_h225_notify,
8353       { "notify", "h225.notify_element",
8354         FT_NONE, BASE_NONE, NULL, 0,
8355         "Notify_UUIE", HFILL }},
8356     { &hf_h225_nonStandardData,
8357       { "nonStandardData", "h225.nonStandardData_element",
8358         FT_NONE, BASE_NONE, NULL, 0,
8359         "NonStandardParameter", HFILL }},
8360     { &hf_h225_h4501SupplementaryService,
8361       { "h4501SupplementaryService", "h225.h4501SupplementaryService",
8362         FT_UINT32, BASE_DEC, NULL, 0,
8363         NULL, HFILL }},
8364     { &hf_h225_h4501SupplementaryService_item,
8365       { "h4501SupplementaryService item", "h225.h4501SupplementaryService_item",
8366         FT_UINT32, BASE_DEC, NULL, 0,
8367         NULL, HFILL }},
8368     { &hf_h225_h245Tunnelling,
8369       { "h245Tunnelling", "h225.h245Tunnelling",
8370         FT_BOOLEAN, BASE_NONE, NULL, 0,
8371         NULL, HFILL }},
8372     { &hf_h225_H245Control_item,
8373       { "H245Control item", "h225.H245Control_item",
8374         FT_UINT32, BASE_DEC, NULL, 0,
8375         NULL, HFILL }},
8376     { &hf_h225_h245Control,
8377       { "h245Control", "h225.h245Control",
8378         FT_UINT32, BASE_DEC, NULL, 0,
8379         NULL, HFILL }},
8380     { &hf_h225_nonStandardControl,
8381       { "nonStandardControl", "h225.nonStandardControl",
8382         FT_UINT32, BASE_DEC, NULL, 0,
8383         "SEQUENCE_OF_NonStandardParameter", HFILL }},
8384     { &hf_h225_nonStandardControl_item,
8385       { "NonStandardParameter", "h225.NonStandardParameter_element",
8386         FT_NONE, BASE_NONE, NULL, 0,
8387         NULL, HFILL }},
8388     { &hf_h225_callLinkage,
8389       { "callLinkage", "h225.callLinkage_element",
8390         FT_NONE, BASE_NONE, NULL, 0,
8391         NULL, HFILL }},
8392     { &hf_h225_tunnelledSignallingMessage,
8393       { "tunnelledSignallingMessage", "h225.tunnelledSignallingMessage_element",
8394         FT_NONE, BASE_NONE, NULL, 0,
8395         NULL, HFILL }},
8396     { &hf_h225_tunnelledProtocolID,
8397       { "tunnelledProtocolID", "h225.tunnelledProtocolID_element",
8398         FT_NONE, BASE_NONE, NULL, 0,
8399         "TunnelledProtocol", HFILL }},
8400     { &hf_h225_messageContent,
8401       { "messageContent", "h225.messageContent",
8402         FT_UINT32, BASE_DEC, NULL, 0,
8403         NULL, HFILL }},
8404     { &hf_h225_messageContent_item,
8405       { "messageContent item", "h225.messageContent_item",
8406         FT_UINT32, BASE_DEC, NULL, 0,
8407         "T_messageContent_item", HFILL }},
8408     { &hf_h225_tunnellingRequired,
8409       { "tunnellingRequired", "h225.tunnellingRequired_element",
8410         FT_NONE, BASE_NONE, NULL, 0,
8411         NULL, HFILL }},
8412     { &hf_h225_provisionalRespToH245Tunnelling,
8413       { "provisionalRespToH245Tunnelling", "h225.provisionalRespToH245Tunnelling_element",
8414         FT_NONE, BASE_NONE, NULL, 0,
8415         NULL, HFILL }},
8416     { &hf_h225_stimulusControl,
8417       { "stimulusControl", "h225.stimulusControl_element",
8418         FT_NONE, BASE_NONE, NULL, 0,
8419         NULL, HFILL }},
8420     { &hf_h225_genericData,
8421       { "genericData", "h225.genericData",
8422         FT_UINT32, BASE_DEC, NULL, 0,
8423         "SEQUENCE_OF_GenericData", HFILL }},
8424     { &hf_h225_genericData_item,
8425       { "GenericData", "h225.GenericData_element",
8426         FT_NONE, BASE_NONE, NULL, 0,
8427         NULL, HFILL }},
8428     { &hf_h225_nonStandard,
8429       { "nonStandard", "h225.nonStandard_element",
8430         FT_NONE, BASE_NONE, NULL, 0,
8431         "NonStandardParameter", HFILL }},
8432     { &hf_h225_isText,
8433       { "isText", "h225.isText_element",
8434         FT_NONE, BASE_NONE, NULL, 0,
8435         NULL, HFILL }},
8436     { &hf_h225_h248Message,
8437       { "h248Message", "h225.h248Message",
8438         FT_BYTES, BASE_NONE, NULL, 0,
8439         "OCTET_STRING", HFILL }},
8440     { &hf_h225_protocolIdentifier,
8441       { "protocolIdentifier", "h225.protocolIdentifier",
8442         FT_OID, BASE_NONE, NULL, 0,
8443         NULL, HFILL }},
8444     { &hf_h225_uUIE_destinationInfo,
8445       { "destinationInfo", "h225.destinationInfo_element",
8446         FT_NONE, BASE_NONE, NULL, 0,
8447         "EndpointType", HFILL }},
8448     { &hf_h225_h245Address,
8449       { "h245Address", "h225.h245Address",
8450         FT_UINT32, BASE_DEC, VALS(h225_H245TransportAddress_vals), 0,
8451         "H245TransportAddress", HFILL }},
8452     { &hf_h225_callIdentifier,
8453       { "callIdentifier", "h225.callIdentifier_element",
8454         FT_NONE, BASE_NONE, NULL, 0,
8455         NULL, HFILL }},
8456     { &hf_h225_h245SecurityMode,
8457       { "h245SecurityMode", "h225.h245SecurityMode",
8458         FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8459         "H245Security", HFILL }},
8460     { &hf_h225_tokens,
8461       { "tokens", "h225.tokens",
8462         FT_UINT32, BASE_DEC, NULL, 0,
8463         "SEQUENCE_OF_ClearToken", HFILL }},
8464     { &hf_h225_tokens_item,
8465       { "ClearToken", "h225.ClearToken_element",
8466         FT_NONE, BASE_NONE, NULL, 0,
8467         NULL, HFILL }},
8468     { &hf_h225_cryptoTokens,
8469       { "cryptoTokens", "h225.cryptoTokens",
8470         FT_UINT32, BASE_DEC, NULL, 0,
8471         "SEQUENCE_OF_CryptoH323Token", HFILL }},
8472     { &hf_h225_cryptoTokens_item,
8473       { "CryptoH323Token", "h225.CryptoH323Token",
8474         FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
8475         NULL, HFILL }},
8476     { &hf_h225_fastStart,
8477       { "fastStart", "h225.fastStart",
8478         FT_UINT32, BASE_DEC, NULL, 0,
8479         NULL, HFILL }},
8480     { &hf_h225_multipleCalls,
8481       { "multipleCalls", "h225.multipleCalls",
8482         FT_BOOLEAN, BASE_NONE, NULL, 0,
8483         "BOOLEAN", HFILL }},
8484     { &hf_h225_maintainConnection,
8485       { "maintainConnection", "h225.maintainConnection",
8486         FT_BOOLEAN, BASE_NONE, NULL, 0,
8487         "BOOLEAN", HFILL }},
8488     { &hf_h225_alertingAddress,
8489       { "alertingAddress", "h225.alertingAddress",
8490         FT_UINT32, BASE_DEC, NULL, 0,
8491         "SEQUENCE_OF_AliasAddress", HFILL }},
8492     { &hf_h225_alertingAddress_item,
8493       { "AliasAddress", "h225.AliasAddress",
8494         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8495         NULL, HFILL }},
8496     { &hf_h225_presentationIndicator,
8497       { "presentationIndicator", "h225.presentationIndicator",
8498         FT_UINT32, BASE_DEC, VALS(h225_PresentationIndicator_vals), 0,
8499         NULL, HFILL }},
8500     { &hf_h225_screeningIndicator,
8501       { "screeningIndicator", "h225.screeningIndicator",
8502         FT_UINT32, BASE_DEC, VALS(h225_ScreeningIndicator_vals), 0,
8503         NULL, HFILL }},
8504     { &hf_h225_fastConnectRefused,
8505       { "fastConnectRefused", "h225.fastConnectRefused_element",
8506         FT_NONE, BASE_NONE, NULL, 0,
8507         NULL, HFILL }},
8508     { &hf_h225_serviceControl,
8509       { "serviceControl", "h225.serviceControl",
8510         FT_UINT32, BASE_DEC, NULL, 0,
8511         "SEQUENCE_OF_ServiceControlSession", HFILL }},
8512     { &hf_h225_serviceControl_item,
8513       { "ServiceControlSession", "h225.ServiceControlSession_element",
8514         FT_NONE, BASE_NONE, NULL, 0,
8515         NULL, HFILL }},
8516     { &hf_h225_capacity,
8517       { "capacity", "h225.capacity_element",
8518         FT_NONE, BASE_NONE, NULL, 0,
8519         "CallCapacity", HFILL }},
8520     { &hf_h225_featureSet,
8521       { "featureSet", "h225.featureSet_element",
8522         FT_NONE, BASE_NONE, NULL, 0,
8523         NULL, HFILL }},
8524     { &hf_h225_displayName,
8525       { "displayName", "h225.displayName",
8526         FT_UINT32, BASE_DEC, NULL, 0,
8527         "SEQUENCE_OF_DisplayName", HFILL }},
8528     { &hf_h225_displayName_item,
8529       { "DisplayName", "h225.DisplayName_element",
8530         FT_NONE, BASE_NONE, NULL, 0,
8531         NULL, HFILL }},
8532     { &hf_h225_conferenceID,
8533       { "conferenceID", "h225.conferenceID",
8534         FT_GUID, BASE_NONE, NULL, 0,
8535         "ConferenceIdentifier", HFILL }},
8536     { &hf_h225_language,
8537       { "language", "h225.language",
8538         FT_UINT32, BASE_DEC, NULL, 0,
8539         NULL, HFILL }},
8540     { &hf_h225_connectedAddress,
8541       { "connectedAddress", "h225.connectedAddress",
8542         FT_UINT32, BASE_DEC, NULL, 0,
8543         "SEQUENCE_OF_AliasAddress", HFILL }},
8544     { &hf_h225_connectedAddress_item,
8545       { "AliasAddress", "h225.AliasAddress",
8546         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8547         NULL, HFILL }},
8548     { &hf_h225_circuitInfo,
8549       { "circuitInfo", "h225.circuitInfo_element",
8550         FT_NONE, BASE_NONE, NULL, 0,
8551         NULL, HFILL }},
8552     { &hf_h225_releaseCompleteReason,
8553       { "reason", "h225.reason",
8554         FT_UINT32, BASE_DEC, VALS(h225_ReleaseCompleteReason_vals), 0,
8555         "ReleaseCompleteReason", HFILL }},
8556     { &hf_h225_busyAddress,
8557       { "busyAddress", "h225.busyAddress",
8558         FT_UINT32, BASE_DEC, NULL, 0,
8559         "SEQUENCE_OF_AliasAddress", HFILL }},
8560     { &hf_h225_busyAddress_item,
8561       { "AliasAddress", "h225.AliasAddress",
8562         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8563         NULL, HFILL }},
8564     { &hf_h225_destinationInfo,
8565       { "destinationInfo", "h225.destinationInfo_element",
8566         FT_NONE, BASE_NONE, NULL, 0,
8567         "EndpointType", HFILL }},
8568     { &hf_h225_noBandwidth,
8569       { "noBandwidth", "h225.noBandwidth_element",
8570         FT_NONE, BASE_NONE, NULL, 0,
8571         NULL, HFILL }},
8572     { &hf_h225_gatekeeperResources,
8573       { "gatekeeperResources", "h225.gatekeeperResources_element",
8574         FT_NONE, BASE_NONE, NULL, 0,
8575         NULL, HFILL }},
8576     { &hf_h225_unreachableDestination,
8577       { "unreachableDestination", "h225.unreachableDestination_element",
8578         FT_NONE, BASE_NONE, NULL, 0,
8579         NULL, HFILL }},
8580     { &hf_h225_destinationRejection,
8581       { "destinationRejection", "h225.destinationRejection_element",
8582         FT_NONE, BASE_NONE, NULL, 0,
8583         NULL, HFILL }},
8584     { &hf_h225_invalidRevision,
8585       { "invalidRevision", "h225.invalidRevision_element",
8586         FT_NONE, BASE_NONE, NULL, 0,
8587         NULL, HFILL }},
8588     { &hf_h225_noPermission,
8589       { "noPermission", "h225.noPermission_element",
8590         FT_NONE, BASE_NONE, NULL, 0,
8591         NULL, HFILL }},
8592     { &hf_h225_unreachableGatekeeper,
8593       { "unreachableGatekeeper", "h225.unreachableGatekeeper_element",
8594         FT_NONE, BASE_NONE, NULL, 0,
8595         NULL, HFILL }},
8596     { &hf_h225_gatewayResources,
8597       { "gatewayResources", "h225.gatewayResources_element",
8598         FT_NONE, BASE_NONE, NULL, 0,
8599         NULL, HFILL }},
8600     { &hf_h225_badFormatAddress,
8601       { "badFormatAddress", "h225.badFormatAddress_element",
8602         FT_NONE, BASE_NONE, NULL, 0,
8603         NULL, HFILL }},
8604     { &hf_h225_adaptiveBusy,
8605       { "adaptiveBusy", "h225.adaptiveBusy_element",
8606         FT_NONE, BASE_NONE, NULL, 0,
8607         NULL, HFILL }},
8608     { &hf_h225_inConf,
8609       { "inConf", "h225.inConf_element",
8610         FT_NONE, BASE_NONE, NULL, 0,
8611         NULL, HFILL }},
8612     { &hf_h225_undefinedReason,
8613       { "undefinedReason", "h225.undefinedReason_element",
8614         FT_NONE, BASE_NONE, NULL, 0,
8615         NULL, HFILL }},
8616     { &hf_h225_facilityCallDeflection,
8617       { "facilityCallDeflection", "h225.facilityCallDeflection_element",
8618         FT_NONE, BASE_NONE, NULL, 0,
8619         NULL, HFILL }},
8620     { &hf_h225_securityDenied,
8621       { "securityDenied", "h225.securityDenied_element",
8622         FT_NONE, BASE_NONE, NULL, 0,
8623         NULL, HFILL }},
8624     { &hf_h225_calledPartyNotRegistered,
8625       { "calledPartyNotRegistered", "h225.calledPartyNotRegistered_element",
8626         FT_NONE, BASE_NONE, NULL, 0,
8627         NULL, HFILL }},
8628     { &hf_h225_callerNotRegistered,
8629       { "callerNotRegistered", "h225.callerNotRegistered_element",
8630         FT_NONE, BASE_NONE, NULL, 0,
8631         NULL, HFILL }},
8632     { &hf_h225_newConnectionNeeded,
8633       { "newConnectionNeeded", "h225.newConnectionNeeded_element",
8634         FT_NONE, BASE_NONE, NULL, 0,
8635         NULL, HFILL }},
8636     { &hf_h225_nonStandardReason,
8637       { "nonStandardReason", "h225.nonStandardReason_element",
8638         FT_NONE, BASE_NONE, NULL, 0,
8639         "NonStandardParameter", HFILL }},
8640     { &hf_h225_replaceWithConferenceInvite,
8641       { "replaceWithConferenceInvite", "h225.replaceWithConferenceInvite",
8642         FT_GUID, BASE_NONE, NULL, 0,
8643         "ConferenceIdentifier", HFILL }},
8644     { &hf_h225_genericDataReason,
8645       { "genericDataReason", "h225.genericDataReason_element",
8646         FT_NONE, BASE_NONE, NULL, 0,
8647         NULL, HFILL }},
8648     { &hf_h225_neededFeatureNotSupported,
8649       { "neededFeatureNotSupported", "h225.neededFeatureNotSupported_element",
8650         FT_NONE, BASE_NONE, NULL, 0,
8651         NULL, HFILL }},
8652     { &hf_h225_tunnelledSignallingRejected,
8653       { "tunnelledSignallingRejected", "h225.tunnelledSignallingRejected_element",
8654         FT_NONE, BASE_NONE, NULL, 0,
8655         NULL, HFILL }},
8656     { &hf_h225_invalidCID,
8657       { "invalidCID", "h225.invalidCID_element",
8658         FT_NONE, BASE_NONE, NULL, 0,
8659         NULL, HFILL }},
8660     { &hf_h225_rLC_securityError,
8661       { "securityError", "h225.securityError",
8662         FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
8663         "SecurityErrors", HFILL }},
8664     { &hf_h225_hopCountExceeded,
8665       { "hopCountExceeded", "h225.hopCountExceeded_element",
8666         FT_NONE, BASE_NONE, NULL, 0,
8667         NULL, HFILL }},
8668     { &hf_h225_sourceAddress,
8669       { "sourceAddress", "h225.sourceAddress",
8670         FT_UINT32, BASE_DEC, NULL, 0,
8671         "SEQUENCE_OF_AliasAddress", HFILL }},
8672     { &hf_h225_sourceAddress_item,
8673       { "AliasAddress", "h225.AliasAddress",
8674         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8675         NULL, HFILL }},
8676     { &hf_h225_setup_UUIE_sourceInfo,
8677       { "sourceInfo", "h225.sourceInfo_element",
8678         FT_NONE, BASE_NONE, NULL, 0,
8679         "EndpointType", HFILL }},
8680     { &hf_h225_destinationAddress,
8681       { "destinationAddress", "h225.destinationAddress",
8682         FT_UINT32, BASE_DEC, NULL, 0,
8683         "SEQUENCE_OF_AliasAddress", HFILL }},
8684     { &hf_h225_destinationAddress_item,
8685       { "AliasAddress", "h225.AliasAddress",
8686         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8687         NULL, HFILL }},
8688     { &hf_h225_destCallSignalAddress,
8689       { "destCallSignalAddress", "h225.destCallSignalAddress",
8690         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8691         "TransportAddress", HFILL }},
8692     { &hf_h225_destExtraCallInfo,
8693       { "destExtraCallInfo", "h225.destExtraCallInfo",
8694         FT_UINT32, BASE_DEC, NULL, 0,
8695         "SEQUENCE_OF_AliasAddress", HFILL }},
8696     { &hf_h225_destExtraCallInfo_item,
8697       { "AliasAddress", "h225.AliasAddress",
8698         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8699         NULL, HFILL }},
8700     { &hf_h225_destExtraCRV,
8701       { "destExtraCRV", "h225.destExtraCRV",
8702         FT_UINT32, BASE_DEC, NULL, 0,
8703         "SEQUENCE_OF_CallReferenceValue", HFILL }},
8704     { &hf_h225_destExtraCRV_item,
8705       { "CallReferenceValue", "h225.CallReferenceValue",
8706         FT_UINT32, BASE_DEC, NULL, 0,
8707         NULL, HFILL }},
8708     { &hf_h225_activeMC,
8709       { "activeMC", "h225.activeMC",
8710         FT_BOOLEAN, BASE_NONE, NULL, 0,
8711         "BOOLEAN", HFILL }},
8712     { &hf_h225_conferenceGoal,
8713       { "conferenceGoal", "h225.conferenceGoal",
8714         FT_UINT32, BASE_DEC, VALS(h225_T_conferenceGoal_vals), 0,
8715         NULL, HFILL }},
8716     { &hf_h225_create,
8717       { "create", "h225.create_element",
8718         FT_NONE, BASE_NONE, NULL, 0,
8719         NULL, HFILL }},
8720     { &hf_h225_join,
8721       { "join", "h225.join_element",
8722         FT_NONE, BASE_NONE, NULL, 0,
8723         NULL, HFILL }},
8724     { &hf_h225_invite,
8725       { "invite", "h225.invite_element",
8726         FT_NONE, BASE_NONE, NULL, 0,
8727         NULL, HFILL }},
8728     { &hf_h225_capability_negotiation,
8729       { "capability-negotiation", "h225.capability_negotiation_element",
8730         FT_NONE, BASE_NONE, NULL, 0,
8731         NULL, HFILL }},
8732     { &hf_h225_callIndependentSupplementaryService,
8733       { "callIndependentSupplementaryService", "h225.callIndependentSupplementaryService_element",
8734         FT_NONE, BASE_NONE, NULL, 0,
8735         NULL, HFILL }},
8736     { &hf_h225_callServices,
8737       { "callServices", "h225.callServices_element",
8738         FT_NONE, BASE_NONE, NULL, 0,
8739         "QseriesOptions", HFILL }},
8740     { &hf_h225_callType,
8741       { "callType", "h225.callType",
8742         FT_UINT32, BASE_DEC, VALS(h225_CallType_vals), 0,
8743         NULL, HFILL }},
8744     { &hf_h225_sourceCallSignalAddress,
8745       { "sourceCallSignalAddress", "h225.sourceCallSignalAddress",
8746         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8747         "TransportAddress", HFILL }},
8748     { &hf_h225_uUIE_remoteExtensionAddress,
8749       { "remoteExtensionAddress", "h225.remoteExtensionAddress",
8750         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8751         "AliasAddress", HFILL }},
8752     { &hf_h225_h245SecurityCapability,
8753       { "h245SecurityCapability", "h225.h245SecurityCapability",
8754         FT_UINT32, BASE_DEC, NULL, 0,
8755         "SEQUENCE_OF_H245Security", HFILL }},
8756     { &hf_h225_h245SecurityCapability_item,
8757       { "H245Security", "h225.H245Security",
8758         FT_UINT32, BASE_DEC, VALS(h225_H245Security_vals), 0,
8759         NULL, HFILL }},
8760     { &hf_h225_FastStart_item,
8761       { "FastStart item", "h225.FastStart_item",
8762         FT_UINT32, BASE_DEC, NULL, 0,
8763         NULL, HFILL }},
8764     { &hf_h225_mediaWaitForConnect,
8765       { "mediaWaitForConnect", "h225.mediaWaitForConnect",
8766         FT_BOOLEAN, BASE_NONE, NULL, 0,
8767         "BOOLEAN", HFILL }},
8768     { &hf_h225_canOverlapSend,
8769       { "canOverlapSend", "h225.canOverlapSend",
8770         FT_BOOLEAN, BASE_NONE, NULL, 0,
8771         "BOOLEAN", HFILL }},
8772     { &hf_h225_endpointIdentifier,
8773       { "endpointIdentifier", "h225.endpointIdentifier",
8774         FT_STRING, BASE_NONE, NULL, 0,
8775         NULL, HFILL }},
8776     { &hf_h225_connectionParameters,
8777       { "connectionParameters", "h225.connectionParameters_element",
8778         FT_NONE, BASE_NONE, NULL, 0,
8779         NULL, HFILL }},
8780     { &hf_h225_connectionType,
8781       { "connectionType", "h225.connectionType",
8782         FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionType_vals), 0,
8783         "ScnConnectionType", HFILL }},
8784     { &hf_h225_numberOfScnConnections,
8785       { "numberOfScnConnections", "h225.numberOfScnConnections",
8786         FT_UINT32, BASE_DEC, NULL, 0,
8787         "INTEGER_0_65535", HFILL }},
8788     { &hf_h225_connectionAggregation,
8789       { "connectionAggregation", "h225.connectionAggregation",
8790         FT_UINT32, BASE_DEC, VALS(h225_ScnConnectionAggregation_vals), 0,
8791         "ScnConnectionAggregation", HFILL }},
8792     { &hf_h225_Language_item,
8793       { "Language item", "h225.Language_item",
8794         FT_STRING, BASE_NONE, NULL, 0,
8795         "IA5String_SIZE_1_32", HFILL }},
8796     { &hf_h225_symmetricOperationRequired,
8797       { "symmetricOperationRequired", "h225.symmetricOperationRequired_element",
8798         FT_NONE, BASE_NONE, NULL, 0,
8799         NULL, HFILL }},
8800     { &hf_h225_desiredProtocols,
8801       { "desiredProtocols", "h225.desiredProtocols",
8802         FT_UINT32, BASE_DEC, NULL, 0,
8803         "SEQUENCE_OF_SupportedProtocols", HFILL }},
8804     { &hf_h225_desiredProtocols_item,
8805       { "SupportedProtocols", "h225.SupportedProtocols",
8806         FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
8807         NULL, HFILL }},
8808     { &hf_h225_neededFeatures,
8809       { "neededFeatures", "h225.neededFeatures",
8810         FT_UINT32, BASE_DEC, NULL, 0,
8811         "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8812     { &hf_h225_neededFeatures_item,
8813       { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8814         FT_NONE, BASE_NONE, NULL, 0,
8815         NULL, HFILL }},
8816     { &hf_h225_desiredFeatures,
8817       { "desiredFeatures", "h225.desiredFeatures",
8818         FT_UINT32, BASE_DEC, NULL, 0,
8819         "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8820     { &hf_h225_desiredFeatures_item,
8821       { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8822         FT_NONE, BASE_NONE, NULL, 0,
8823         NULL, HFILL }},
8824     { &hf_h225_supportedFeatures,
8825       { "supportedFeatures", "h225.supportedFeatures",
8826         FT_UINT32, BASE_DEC, NULL, 0,
8827         "SEQUENCE_OF_FeatureDescriptor", HFILL }},
8828     { &hf_h225_supportedFeatures_item,
8829       { "FeatureDescriptor", "h225.FeatureDescriptor_element",
8830         FT_NONE, BASE_NONE, NULL, 0,
8831         NULL, HFILL }},
8832     { &hf_h225_ParallelH245Control_item,
8833       { "ParallelH245Control item", "h225.ParallelH245Control_item",
8834         FT_UINT32, BASE_DEC, NULL, 0,
8835         NULL, HFILL }},
8836     { &hf_h225_parallelH245Control,
8837       { "parallelH245Control", "h225.parallelH245Control",
8838         FT_UINT32, BASE_DEC, NULL, 0,
8839         NULL, HFILL }},
8840     { &hf_h225_additionalSourceAddresses,
8841       { "additionalSourceAddresses", "h225.additionalSourceAddresses",
8842         FT_UINT32, BASE_DEC, NULL, 0,
8843         "SEQUENCE_OF_ExtendedAliasAddress", HFILL }},
8844     { &hf_h225_additionalSourceAddresses_item,
8845       { "ExtendedAliasAddress", "h225.ExtendedAliasAddress_element",
8846         FT_NONE, BASE_NONE, NULL, 0,
8847         NULL, HFILL }},
8848     { &hf_h225_hopCount_1_31,
8849       { "hopCount", "h225.hopCount",
8850         FT_UINT32, BASE_DEC, NULL, 0,
8851         "INTEGER_1_31", HFILL }},
8852     { &hf_h225_unknown,
8853       { "unknown", "h225.unknown_element",
8854         FT_NONE, BASE_NONE, NULL, 0,
8855         NULL, HFILL }},
8856     { &hf_h225_bChannel,
8857       { "bChannel", "h225.bChannel_element",
8858         FT_NONE, BASE_NONE, NULL, 0,
8859         NULL, HFILL }},
8860     { &hf_h225_hybrid2x64,
8861       { "hybrid2x64", "h225.hybrid2x64_element",
8862         FT_NONE, BASE_NONE, NULL, 0,
8863         NULL, HFILL }},
8864     { &hf_h225_hybrid384,
8865       { "hybrid384", "h225.hybrid384_element",
8866         FT_NONE, BASE_NONE, NULL, 0,
8867         NULL, HFILL }},
8868     { &hf_h225_hybrid1536,
8869       { "hybrid1536", "h225.hybrid1536_element",
8870         FT_NONE, BASE_NONE, NULL, 0,
8871         NULL, HFILL }},
8872     { &hf_h225_hybrid1920,
8873       { "hybrid1920", "h225.hybrid1920_element",
8874         FT_NONE, BASE_NONE, NULL, 0,
8875         NULL, HFILL }},
8876     { &hf_h225_multirate,
8877       { "multirate", "h225.multirate_element",
8878         FT_NONE, BASE_NONE, NULL, 0,
8879         NULL, HFILL }},
8880     { &hf_h225_auto,
8881       { "auto", "h225.auto_element",
8882         FT_NONE, BASE_NONE, NULL, 0,
8883         NULL, HFILL }},
8884     { &hf_h225_none,
8885       { "none", "h225.none_element",
8886         FT_NONE, BASE_NONE, NULL, 0,
8887         NULL, HFILL }},
8888     { &hf_h225_h221,
8889       { "h221", "h225.h221_element",
8890         FT_NONE, BASE_NONE, NULL, 0,
8891         NULL, HFILL }},
8892     { &hf_h225_bonded_mode1,
8893       { "bonded-mode1", "h225.bonded_mode1_element",
8894         FT_NONE, BASE_NONE, NULL, 0,
8895         NULL, HFILL }},
8896     { &hf_h225_bonded_mode2,
8897       { "bonded-mode2", "h225.bonded_mode2_element",
8898         FT_NONE, BASE_NONE, NULL, 0,
8899         NULL, HFILL }},
8900     { &hf_h225_bonded_mode3,
8901       { "bonded-mode3", "h225.bonded_mode3_element",
8902         FT_NONE, BASE_NONE, NULL, 0,
8903         NULL, HFILL }},
8904     { &hf_h225_presentationAllowed,
8905       { "presentationAllowed", "h225.presentationAllowed_element",
8906         FT_NONE, BASE_NONE, NULL, 0,
8907         NULL, HFILL }},
8908     { &hf_h225_presentationRestricted,
8909       { "presentationRestricted", "h225.presentationRestricted_element",
8910         FT_NONE, BASE_NONE, NULL, 0,
8911         NULL, HFILL }},
8912     { &hf_h225_addressNotAvailable,
8913       { "addressNotAvailable", "h225.addressNotAvailable_element",
8914         FT_NONE, BASE_NONE, NULL, 0,
8915         NULL, HFILL }},
8916     { &hf_h225_alternativeAddress,
8917       { "alternativeAddress", "h225.alternativeAddress",
8918         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
8919         "TransportAddress", HFILL }},
8920     { &hf_h225_alternativeAliasAddress,
8921       { "alternativeAliasAddress", "h225.alternativeAliasAddress",
8922         FT_UINT32, BASE_DEC, NULL, 0,
8923         "SEQUENCE_OF_AliasAddress", HFILL }},
8924     { &hf_h225_alternativeAliasAddress_item,
8925       { "AliasAddress", "h225.AliasAddress",
8926         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8927         NULL, HFILL }},
8928     { &hf_h225_facilityReason,
8929       { "reason", "h225.reason",
8930         FT_UINT32, BASE_DEC, VALS(FacilityReason_vals), 0,
8931         "FacilityReason", HFILL }},
8932     { &hf_h225_conferences,
8933       { "conferences", "h225.conferences",
8934         FT_UINT32, BASE_DEC, NULL, 0,
8935         "SEQUENCE_OF_ConferenceList", HFILL }},
8936     { &hf_h225_conferences_item,
8937       { "ConferenceList", "h225.ConferenceList_element",
8938         FT_NONE, BASE_NONE, NULL, 0,
8939         NULL, HFILL }},
8940     { &hf_h225_conferenceAlias,
8941       { "conferenceAlias", "h225.conferenceAlias",
8942         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
8943         "AliasAddress", HFILL }},
8944     { &hf_h225_routeCallToGatekeeper,
8945       { "routeCallToGatekeeper", "h225.routeCallToGatekeeper_element",
8946         FT_NONE, BASE_NONE, NULL, 0,
8947         NULL, HFILL }},
8948     { &hf_h225_callForwarded,
8949       { "callForwarded", "h225.callForwarded_element",
8950         FT_NONE, BASE_NONE, NULL, 0,
8951         NULL, HFILL }},
8952     { &hf_h225_routeCallToMC,
8953       { "routeCallToMC", "h225.routeCallToMC_element",
8954         FT_NONE, BASE_NONE, NULL, 0,
8955         NULL, HFILL }},
8956     { &hf_h225_conferenceListChoice,
8957       { "conferenceListChoice", "h225.conferenceListChoice_element",
8958         FT_NONE, BASE_NONE, NULL, 0,
8959         NULL, HFILL }},
8960     { &hf_h225_startH245,
8961       { "startH245", "h225.startH245_element",
8962         FT_NONE, BASE_NONE, NULL, 0,
8963         NULL, HFILL }},
8964     { &hf_h225_noH245,
8965       { "noH245", "h225.noH245_element",
8966         FT_NONE, BASE_NONE, NULL, 0,
8967         NULL, HFILL }},
8968     { &hf_h225_newTokens,
8969       { "newTokens", "h225.newTokens_element",
8970         FT_NONE, BASE_NONE, NULL, 0,
8971         NULL, HFILL }},
8972     { &hf_h225_featureSetUpdate,
8973       { "featureSetUpdate", "h225.featureSetUpdate_element",
8974         FT_NONE, BASE_NONE, NULL, 0,
8975         NULL, HFILL }},
8976     { &hf_h225_forwardedElements,
8977       { "forwardedElements", "h225.forwardedElements_element",
8978         FT_NONE, BASE_NONE, NULL, 0,
8979         NULL, HFILL }},
8980     { &hf_h225_transportedInformation,
8981       { "transportedInformation", "h225.transportedInformation_element",
8982         FT_NONE, BASE_NONE, NULL, 0,
8983         NULL, HFILL }},
8984     { &hf_h225_h245IpAddress,
8985       { "ipAddress", "h225.ipAddress_element",
8986         FT_NONE, BASE_NONE, NULL, 0,
8987         "T_h245IpAddress", HFILL }},
8988     { &hf_h225_h245Ip,
8989       { "ip", "h225.ip",
8990         FT_IPv4, BASE_NONE, NULL, 0,
8991         "T_h245Ip", HFILL }},
8992     { &hf_h225_h245IpPort,
8993       { "port", "h225.port",
8994         FT_UINT32, BASE_DEC, NULL, 0,
8995         "T_h245IpPort", HFILL }},
8996     { &hf_h225_h245IpSourceRoute,
8997       { "ipSourceRoute", "h225.ipSourceRoute_element",
8998         FT_NONE, BASE_NONE, NULL, 0,
8999         "T_h245IpSourceRoute", HFILL }},
9000     { &hf_h225_ip,
9001       { "ip", "h225.ip",
9002         FT_BYTES, BASE_NONE, NULL, 0,
9003         "OCTET_STRING_SIZE_4", HFILL }},
9004     { &hf_h225_port,
9005       { "port", "h225.port",
9006         FT_UINT32, BASE_DEC, NULL, 0,
9007         "INTEGER_0_65535", HFILL }},
9008     { &hf_h225_h245Route,
9009       { "route", "h225.route",
9010         FT_UINT32, BASE_DEC, NULL, 0,
9011         "T_h245Route", HFILL }},
9012     { &hf_h225_h245Route_item,
9013       { "route item", "h225.route_item",
9014         FT_BYTES, BASE_NONE, NULL, 0,
9015         "OCTET_STRING_SIZE_4", HFILL }},
9016     { &hf_h225_h245Routing,
9017       { "routing", "h225.routing",
9018         FT_UINT32, BASE_DEC, VALS(h225_T_h245Routing_vals), 0,
9019         "T_h245Routing", HFILL }},
9020     { &hf_h225_strict,
9021       { "strict", "h225.strict_element",
9022         FT_NONE, BASE_NONE, NULL, 0,
9023         NULL, HFILL }},
9024     { &hf_h225_loose,
9025       { "loose", "h225.loose_element",
9026         FT_NONE, BASE_NONE, NULL, 0,
9027         NULL, HFILL }},
9028     { &hf_h225_h245IpxAddress,
9029       { "ipxAddress", "h225.ipxAddress_element",
9030         FT_NONE, BASE_NONE, NULL, 0,
9031         "T_h245IpxAddress", HFILL }},
9032     { &hf_h225_node,
9033       { "node", "h225.node",
9034         FT_BYTES, BASE_NONE, NULL, 0,
9035         "OCTET_STRING_SIZE_6", HFILL }},
9036     { &hf_h225_netnum,
9037       { "netnum", "h225.netnum",
9038         FT_BYTES, BASE_NONE, NULL, 0,
9039         "OCTET_STRING_SIZE_4", HFILL }},
9040     { &hf_h225_h245IpxPort,
9041       { "port", "h225.port",
9042         FT_BYTES, BASE_NONE, NULL, 0,
9043         "OCTET_STRING_SIZE_2", HFILL }},
9044     { &hf_h225_h245Ip6Address,
9045       { "ip6Address", "h225.ip6Address_element",
9046         FT_NONE, BASE_NONE, NULL, 0,
9047         "T_h245Ip6Address", HFILL }},
9048     { &hf_h225_h245Ip6,
9049       { "ip", "h225.ip",
9050         FT_IPv6, BASE_NONE, NULL, 0,
9051         "T_h245Ip6", HFILL }},
9052     { &hf_h225_port_01,
9053       { "port", "h225.port",
9054         FT_UINT32, BASE_DEC, NULL, 0,
9055         NULL, HFILL }},
9056     { &hf_h225_netBios,
9057       { "netBios", "h225.netBios",
9058         FT_BYTES, BASE_NONE, NULL, 0,
9059         "OCTET_STRING_SIZE_16", HFILL }},
9060     { &hf_h225_nsap,
9061       { "nsap", "h225.nsap",
9062         FT_BYTES, BASE_NONE, NULL, 0,
9063         "OCTET_STRING_SIZE_1_20", HFILL }},
9064     { &hf_h225_nonStandardAddress,
9065       { "nonStandardAddress", "h225.nonStandardAddress_element",
9066         FT_NONE, BASE_NONE, NULL, 0,
9067         "NonStandardParameter", HFILL }},
9068     { &hf_h225_ipAddress,
9069       { "ipAddress", "h225.ipAddress_element",
9070         FT_NONE, BASE_NONE, NULL, 0,
9071         NULL, HFILL }},
9072     { &hf_h225_ipV4,
9073       { "ip", "h225.ip",
9074         FT_IPv4, BASE_NONE, NULL, 0,
9075         "IpV4", HFILL }},
9076     { &hf_h225_ipV4_port,
9077       { "port", "h225.port",
9078         FT_UINT32, BASE_DEC, NULL, 0,
9079         "INTEGER_0_65535", HFILL }},
9080     { &hf_h225_ipSourceRoute,
9081       { "ipSourceRoute", "h225.ipSourceRoute_element",
9082         FT_NONE, BASE_NONE, NULL, 0,
9083         NULL, HFILL }},
9084     { &hf_h225_src_route_ipV4,
9085       { "ip", "h225.ip",
9086         FT_BYTES, BASE_NONE, NULL, 0,
9087         "OCTET_STRING_SIZE_4", HFILL }},
9088     { &hf_h225_ipV4_src_port,
9089       { "port", "h225.port",
9090         FT_UINT32, BASE_DEC, NULL, 0,
9091         "INTEGER_0_65535", HFILL }},
9092     { &hf_h225_route,
9093       { "route", "h225.route",
9094         FT_UINT32, BASE_DEC, NULL, 0,
9095         NULL, HFILL }},
9096     { &hf_h225_route_item,
9097       { "route item", "h225.route_item",
9098         FT_BYTES, BASE_NONE, NULL, 0,
9099         "OCTET_STRING_SIZE_4", HFILL }},
9100     { &hf_h225_routing,
9101       { "routing", "h225.routing",
9102         FT_UINT32, BASE_DEC, VALS(h225_T_routing_vals), 0,
9103         NULL, HFILL }},
9104     { &hf_h225_ipxAddress,
9105       { "ipxAddress", "h225.ipxAddress_element",
9106         FT_NONE, BASE_NONE, NULL, 0,
9107         NULL, HFILL }},
9108     { &hf_h225_ipx_port,
9109       { "port", "h225.port",
9110         FT_BYTES, BASE_NONE, NULL, 0,
9111         "OCTET_STRING_SIZE_2", HFILL }},
9112     { &hf_h225_ip6Address,
9113       { "ip6Address", "h225.ip6Address_element",
9114         FT_NONE, BASE_NONE, NULL, 0,
9115         NULL, HFILL }},
9116     { &hf_h225_ipV6,
9117       { "ip", "h225.ip",
9118         FT_IPv6, BASE_NONE, NULL, 0,
9119         "OCTET_STRING_SIZE_16", HFILL }},
9120     { &hf_h225_ipV6_port,
9121       { "port", "h225.port",
9122         FT_UINT32, BASE_DEC, NULL, 0,
9123         "INTEGER_0_65535", HFILL }},
9124     { &hf_h225_vendor,
9125       { "vendor", "h225.vendor_element",
9126         FT_NONE, BASE_NONE, NULL, 0,
9127         "VendorIdentifier", HFILL }},
9128     { &hf_h225_gatekeeper,
9129       { "gatekeeper", "h225.gatekeeper_element",
9130         FT_NONE, BASE_NONE, NULL, 0,
9131         "GatekeeperInfo", HFILL }},
9132     { &hf_h225_gateway,
9133       { "gateway", "h225.gateway_element",
9134         FT_NONE, BASE_NONE, NULL, 0,
9135         "GatewayInfo", HFILL }},
9136     { &hf_h225_mcu,
9137       { "mcu", "h225.mcu_element",
9138         FT_NONE, BASE_NONE, NULL, 0,
9139         "McuInfo", HFILL }},
9140     { &hf_h225_terminal,
9141       { "terminal", "h225.terminal_element",
9142         FT_NONE, BASE_NONE, NULL, 0,
9143         "TerminalInfo", HFILL }},
9144     { &hf_h225_mc,
9145       { "mc", "h225.mc",
9146         FT_BOOLEAN, BASE_NONE, NULL, 0,
9147         "BOOLEAN", HFILL }},
9148     { &hf_h225_undefinedNode,
9149       { "undefinedNode", "h225.undefinedNode",
9150         FT_BOOLEAN, BASE_NONE, NULL, 0,
9151         "BOOLEAN", HFILL }},
9152     { &hf_h225_set,
9153       { "set", "h225.set",
9154         FT_BYTES, BASE_NONE, NULL, 0,
9155         "BIT_STRING_SIZE_32", HFILL }},
9156     { &hf_h225_supportedTunnelledProtocols,
9157       { "supportedTunnelledProtocols", "h225.supportedTunnelledProtocols",
9158         FT_UINT32, BASE_DEC, NULL, 0,
9159         "SEQUENCE_OF_TunnelledProtocol", HFILL }},
9160     { &hf_h225_supportedTunnelledProtocols_item,
9161       { "TunnelledProtocol", "h225.TunnelledProtocol_element",
9162         FT_NONE, BASE_NONE, NULL, 0,
9163         NULL, HFILL }},
9164     { &hf_h225_protocol,
9165       { "protocol", "h225.protocol",
9166         FT_UINT32, BASE_DEC, NULL, 0,
9167         "SEQUENCE_OF_SupportedProtocols", HFILL }},
9168     { &hf_h225_protocol_item,
9169       { "SupportedProtocols", "h225.SupportedProtocols",
9170         FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
9171         NULL, HFILL }},
9172     { &hf_h225_h310,
9173       { "h310", "h225.h310_element",
9174         FT_NONE, BASE_NONE, NULL, 0,
9175         "H310Caps", HFILL }},
9176     { &hf_h225_h320,
9177       { "h320", "h225.h320_element",
9178         FT_NONE, BASE_NONE, NULL, 0,
9179         "H320Caps", HFILL }},
9180     { &hf_h225_h321,
9181       { "h321", "h225.h321_element",
9182         FT_NONE, BASE_NONE, NULL, 0,
9183         "H321Caps", HFILL }},
9184     { &hf_h225_h322,
9185       { "h322", "h225.h322_element",
9186         FT_NONE, BASE_NONE, NULL, 0,
9187         "H322Caps", HFILL }},
9188     { &hf_h225_h323,
9189       { "h323", "h225.h323_element",
9190         FT_NONE, BASE_NONE, NULL, 0,
9191         "H323Caps", HFILL }},
9192     { &hf_h225_h324,
9193       { "h324", "h225.h324_element",
9194         FT_NONE, BASE_NONE, NULL, 0,
9195         "H324Caps", HFILL }},
9196     { &hf_h225_voice,
9197       { "voice", "h225.voice_element",
9198         FT_NONE, BASE_NONE, NULL, 0,
9199         "VoiceCaps", HFILL }},
9200     { &hf_h225_t120_only,
9201       { "t120-only", "h225.t120_only_element",
9202         FT_NONE, BASE_NONE, NULL, 0,
9203         "T120OnlyCaps", HFILL }},
9204     { &hf_h225_nonStandardProtocol,
9205       { "nonStandardProtocol", "h225.nonStandardProtocol_element",
9206         FT_NONE, BASE_NONE, NULL, 0,
9207         NULL, HFILL }},
9208     { &hf_h225_t38FaxAnnexbOnly,
9209       { "t38FaxAnnexbOnly", "h225.t38FaxAnnexbOnly_element",
9210         FT_NONE, BASE_NONE, NULL, 0,
9211         "T38FaxAnnexbOnlyCaps", HFILL }},
9212     { &hf_h225_sip,
9213       { "sip", "h225.sip_element",
9214         FT_NONE, BASE_NONE, NULL, 0,
9215         "SIPCaps", HFILL }},
9216     { &hf_h225_dataRatesSupported,
9217       { "dataRatesSupported", "h225.dataRatesSupported",
9218         FT_UINT32, BASE_DEC, NULL, 0,
9219         "SEQUENCE_OF_DataRate", HFILL }},
9220     { &hf_h225_dataRatesSupported_item,
9221       { "DataRate", "h225.DataRate_element",
9222         FT_NONE, BASE_NONE, NULL, 0,
9223         NULL, HFILL }},
9224     { &hf_h225_supportedPrefixes,
9225       { "supportedPrefixes", "h225.supportedPrefixes",
9226         FT_UINT32, BASE_DEC, NULL, 0,
9227         "SEQUENCE_OF_SupportedPrefix", HFILL }},
9228     { &hf_h225_supportedPrefixes_item,
9229       { "SupportedPrefix", "h225.SupportedPrefix_element",
9230         FT_NONE, BASE_NONE, NULL, 0,
9231         NULL, HFILL }},
9232     { &hf_h225_t38FaxProtocol,
9233       { "t38FaxProtocol", "h225.t38FaxProtocol",
9234         FT_UINT32, BASE_DEC, VALS(DataProtocolCapability_vals), 0,
9235         "DataProtocolCapability", HFILL }},
9236     { &hf_h225_t38FaxProfile,
9237       { "t38FaxProfile", "h225.t38FaxProfile_element",
9238         FT_NONE, BASE_NONE, NULL, 0,
9239         NULL, HFILL }},
9240     { &hf_h225_vendorIdentifier_vendor,
9241       { "vendor", "h225.vendor_element",
9242         FT_NONE, BASE_NONE, NULL, 0,
9243         "H221NonStandard", HFILL }},
9244     { &hf_h225_productId,
9245       { "productId", "h225.productId",
9246         FT_STRING, BASE_NONE, NULL, 0,
9247         "OCTET_STRING_SIZE_1_256", HFILL }},
9248     { &hf_h225_versionId,
9249       { "versionId", "h225.versionId",
9250         FT_STRING, BASE_NONE, NULL, 0,
9251         "OCTET_STRING_SIZE_1_256", HFILL }},
9252     { &hf_h225_enterpriseNumber,
9253       { "enterpriseNumber", "h225.enterpriseNumber",
9254         FT_OID, BASE_NONE, NULL, 0,
9255         "OBJECT_IDENTIFIER", HFILL }},
9256     { &hf_h225_t35CountryCode,
9257       { "t35CountryCode", "h225.t35CountryCode",
9258         FT_UINT32, BASE_DEC, VALS(T35CountryCode_vals), 0,
9259         NULL, HFILL }},
9260     { &hf_h225_t35Extension,
9261       { "t35Extension", "h225.t35Extension",
9262         FT_UINT32, BASE_DEC, NULL, 0,
9263         NULL, HFILL }},
9264     { &hf_h225_manufacturerCode,
9265       { "manufacturerCode", "h225.manufacturerCode",
9266         FT_UINT32, BASE_DEC, NULL, 0,
9267         NULL, HFILL }},
9268     { &hf_h225_tunnelledProtocol_id,
9269       { "id", "h225.id",
9270         FT_UINT32, BASE_DEC, VALS(h225_TunnelledProtocol_id_vals), 0,
9271         "TunnelledProtocol_id", HFILL }},
9272     { &hf_h225_tunnelledProtocolObjectID,
9273       { "tunnelledProtocolObjectID", "h225.tunnelledProtocolObjectID",
9274         FT_OID, BASE_NONE, NULL, 0,
9275         NULL, HFILL }},
9276     { &hf_h225_tunnelledProtocolAlternateID,
9277       { "tunnelledProtocolAlternateID", "h225.tunnelledProtocolAlternateID_element",
9278         FT_NONE, BASE_NONE, NULL, 0,
9279         "TunnelledProtocolAlternateIdentifier", HFILL }},
9280     { &hf_h225_subIdentifier,
9281       { "subIdentifier", "h225.subIdentifier",
9282         FT_STRING, BASE_NONE, NULL, 0,
9283         "IA5String_SIZE_1_64", HFILL }},
9284     { &hf_h225_protocolType,
9285       { "protocolType", "h225.protocolType",
9286         FT_STRING, BASE_NONE, NULL, 0,
9287         "IA5String_SIZE_1_64", HFILL }},
9288     { &hf_h225_protocolVariant,
9289       { "protocolVariant", "h225.protocolVariant",
9290         FT_STRING, BASE_NONE, NULL, 0,
9291         "IA5String_SIZE_1_64", HFILL }},
9292     { &hf_h225_nonStandardIdentifier,
9293       { "nonStandardIdentifier", "h225.nonStandardIdentifier",
9294         FT_UINT32, BASE_DEC, VALS(h225_NonStandardIdentifier_vals), 0,
9295         NULL, HFILL }},
9296     { &hf_h225_nsp_data,
9297       { "data", "h225.data",
9298         FT_UINT32, BASE_DEC, NULL, 0,
9299         "T_nsp_data", HFILL }},
9300     { &hf_h225_nsiOID,
9301       { "object", "h225.object",
9302         FT_OID, BASE_NONE, NULL, 0,
9303         "T_nsiOID", HFILL }},
9304     { &hf_h225_h221NonStandard,
9305       { "h221NonStandard", "h225.h221NonStandard_element",
9306         FT_NONE, BASE_NONE, NULL, 0,
9307         NULL, HFILL }},
9308     { &hf_h225_dialledDigits,
9309       { "dialledDigits", "h225.dialledDigits",
9310         FT_STRING, BASE_NONE, NULL, 0,
9311         "DialedDigits", HFILL }},
9312     { &hf_h225_h323_ID,
9313       { "h323-ID", "h225.h323_ID",
9314         FT_STRING, BASE_NONE, NULL, 0,
9315         "BMPString_SIZE_1_256", HFILL }},
9316     { &hf_h225_url_ID,
9317       { "url-ID", "h225.url_ID",
9318         FT_STRING, BASE_NONE, NULL, 0,
9319         "IA5String_SIZE_1_512", HFILL }},
9320     { &hf_h225_transportID,
9321       { "transportID", "h225.transportID",
9322         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9323         "TransportAddress", HFILL }},
9324     { &hf_h225_email_ID,
9325       { "email-ID", "h225.email_ID",
9326         FT_STRING, BASE_NONE, NULL, 0,
9327         "IA5String_SIZE_1_512", HFILL }},
9328     { &hf_h225_partyNumber,
9329       { "partyNumber", "h225.partyNumber",
9330         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9331         NULL, HFILL }},
9332     { &hf_h225_mobileUIM,
9333       { "mobileUIM", "h225.mobileUIM",
9334         FT_UINT32, BASE_DEC, VALS(h225_MobileUIM_vals), 0,
9335         NULL, HFILL }},
9336     { &hf_h225_isupNumber,
9337       { "isupNumber", "h225.isupNumber",
9338         FT_UINT32, BASE_DEC, VALS(h225_IsupNumber_vals), 0,
9339         NULL, HFILL }},
9340     { &hf_h225_wildcard,
9341       { "wildcard", "h225.wildcard",
9342         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9343         "AliasAddress", HFILL }},
9344     { &hf_h225_range,
9345       { "range", "h225.range_element",
9346         FT_NONE, BASE_NONE, NULL, 0,
9347         NULL, HFILL }},
9348     { &hf_h225_startOfRange,
9349       { "startOfRange", "h225.startOfRange",
9350         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9351         "PartyNumber", HFILL }},
9352     { &hf_h225_endOfRange,
9353       { "endOfRange", "h225.endOfRange",
9354         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
9355         "PartyNumber", HFILL }},
9356     { &hf_h225_e164Number,
9357       { "e164Number", "h225.e164Number_element",
9358         FT_NONE, BASE_NONE, NULL, 0,
9359         "PublicPartyNumber", HFILL }},
9360     { &hf_h225_dataPartyNumber,
9361       { "dataPartyNumber", "h225.dataPartyNumber",
9362         FT_STRING, BASE_NONE, NULL, 0,
9363         "NumberDigits", HFILL }},
9364     { &hf_h225_telexPartyNumber,
9365       { "telexPartyNumber", "h225.telexPartyNumber",
9366         FT_STRING, BASE_NONE, NULL, 0,
9367         "NumberDigits", HFILL }},
9368     { &hf_h225_privateNumber,
9369       { "privateNumber", "h225.privateNumber_element",
9370         FT_NONE, BASE_NONE, NULL, 0,
9371         "PrivatePartyNumber", HFILL }},
9372     { &hf_h225_nationalStandardPartyNumber,
9373       { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber",
9374         FT_STRING, BASE_NONE, NULL, 0,
9375         "NumberDigits", HFILL }},
9376     { &hf_h225_publicTypeOfNumber,
9377       { "publicTypeOfNumber", "h225.publicTypeOfNumber",
9378         FT_UINT32, BASE_DEC, VALS(h225_PublicTypeOfNumber_vals), 0,
9379         NULL, HFILL }},
9380     { &hf_h225_publicNumberDigits,
9381       { "publicNumberDigits", "h225.publicNumberDigits",
9382         FT_STRING, BASE_NONE, NULL, 0,
9383         "NumberDigits", HFILL }},
9384     { &hf_h225_privateTypeOfNumber,
9385       { "privateTypeOfNumber", "h225.privateTypeOfNumber",
9386         FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0,
9387         NULL, HFILL }},
9388     { &hf_h225_privateNumberDigits,
9389       { "privateNumberDigits", "h225.privateNumberDigits",
9390         FT_STRING, BASE_NONE, NULL, 0,
9391         "NumberDigits", HFILL }},
9392     { &hf_h225_language_01,
9393       { "language", "h225.language",
9394         FT_STRING, BASE_NONE, NULL, 0,
9395         "IA5String", HFILL }},
9396     { &hf_h225_name,
9397       { "name", "h225.name",
9398         FT_STRING, BASE_NONE, NULL, 0,
9399         "BMPString_SIZE_1_80", HFILL }},
9400     { &hf_h225_internationalNumber,
9401       { "internationalNumber", "h225.internationalNumber_element",
9402         FT_NONE, BASE_NONE, NULL, 0,
9403         NULL, HFILL }},
9404     { &hf_h225_nationalNumber,
9405       { "nationalNumber", "h225.nationalNumber_element",
9406         FT_NONE, BASE_NONE, NULL, 0,
9407         NULL, HFILL }},
9408     { &hf_h225_networkSpecificNumber,
9409       { "networkSpecificNumber", "h225.networkSpecificNumber_element",
9410         FT_NONE, BASE_NONE, NULL, 0,
9411         NULL, HFILL }},
9412     { &hf_h225_subscriberNumber,
9413       { "subscriberNumber", "h225.subscriberNumber_element",
9414         FT_NONE, BASE_NONE, NULL, 0,
9415         NULL, HFILL }},
9416     { &hf_h225_abbreviatedNumber,
9417       { "abbreviatedNumber", "h225.abbreviatedNumber_element",
9418         FT_NONE, BASE_NONE, NULL, 0,
9419         NULL, HFILL }},
9420     { &hf_h225_level2RegionalNumber,
9421       { "level2RegionalNumber", "h225.level2RegionalNumber_element",
9422         FT_NONE, BASE_NONE, NULL, 0,
9423         NULL, HFILL }},
9424     { &hf_h225_level1RegionalNumber,
9425       { "level1RegionalNumber", "h225.level1RegionalNumber_element",
9426         FT_NONE, BASE_NONE, NULL, 0,
9427         NULL, HFILL }},
9428     { &hf_h225_pISNSpecificNumber,
9429       { "pISNSpecificNumber", "h225.pISNSpecificNumber_element",
9430         FT_NONE, BASE_NONE, NULL, 0,
9431         NULL, HFILL }},
9432     { &hf_h225_localNumber,
9433       { "localNumber", "h225.localNumber_element",
9434         FT_NONE, BASE_NONE, NULL, 0,
9435         NULL, HFILL }},
9436     { &hf_h225_ansi_41_uim,
9437       { "ansi-41-uim", "h225.ansi_41_uim_element",
9438         FT_NONE, BASE_NONE, NULL, 0,
9439         NULL, HFILL }},
9440     { &hf_h225_gsm_uim,
9441       { "gsm-uim", "h225.gsm_uim_element",
9442         FT_NONE, BASE_NONE, NULL, 0,
9443         NULL, HFILL }},
9444     { &hf_h225_imsi,
9445       { "imsi", "h225.imsi",
9446         FT_STRING, BASE_NONE, NULL, 0,
9447         "TBCD_STRING_SIZE_3_16", HFILL }},
9448     { &hf_h225_min,
9449       { "min", "h225.min",
9450         FT_STRING, BASE_NONE, NULL, 0,
9451         "TBCD_STRING_SIZE_3_16", HFILL }},
9452     { &hf_h225_mdn,
9453       { "mdn", "h225.mdn",
9454         FT_STRING, BASE_NONE, NULL, 0,
9455         "TBCD_STRING_SIZE_3_16", HFILL }},
9456     { &hf_h225_msisdn,
9457       { "msisdn", "h225.msisdn",
9458         FT_STRING, BASE_NONE, NULL, 0,
9459         "TBCD_STRING_SIZE_3_16", HFILL }},
9460     { &hf_h225_esn,
9461       { "esn", "h225.esn",
9462         FT_STRING, BASE_NONE, NULL, 0,
9463         "TBCD_STRING_SIZE_16", HFILL }},
9464     { &hf_h225_mscid,
9465       { "mscid", "h225.mscid",
9466         FT_STRING, BASE_NONE, NULL, 0,
9467         "TBCD_STRING_SIZE_3_16", HFILL }},
9468     { &hf_h225_system_id,
9469       { "system-id", "h225.system_id",
9470         FT_UINT32, BASE_DEC, VALS(h225_T_system_id_vals), 0,
9471         NULL, HFILL }},
9472     { &hf_h225_sid,
9473       { "sid", "h225.sid",
9474         FT_STRING, BASE_NONE, NULL, 0,
9475         "TBCD_STRING_SIZE_1_4", HFILL }},
9476     { &hf_h225_mid,
9477       { "mid", "h225.mid",
9478         FT_STRING, BASE_NONE, NULL, 0,
9479         "TBCD_STRING_SIZE_1_4", HFILL }},
9480     { &hf_h225_systemMyTypeCode,
9481       { "systemMyTypeCode", "h225.systemMyTypeCode",
9482         FT_BYTES, BASE_NONE, NULL, 0,
9483         "OCTET_STRING_SIZE_1", HFILL }},
9484     { &hf_h225_systemAccessType,
9485       { "systemAccessType", "h225.systemAccessType",
9486         FT_BYTES, BASE_NONE, NULL, 0,
9487         "OCTET_STRING_SIZE_1", HFILL }},
9488     { &hf_h225_qualificationInformationCode,
9489       { "qualificationInformationCode", "h225.qualificationInformationCode",
9490         FT_BYTES, BASE_NONE, NULL, 0,
9491         "OCTET_STRING_SIZE_1", HFILL }},
9492     { &hf_h225_sesn,
9493       { "sesn", "h225.sesn",
9494         FT_STRING, BASE_NONE, NULL, 0,
9495         "TBCD_STRING_SIZE_16", HFILL }},
9496     { &hf_h225_soc,
9497       { "soc", "h225.soc",
9498         FT_STRING, BASE_NONE, NULL, 0,
9499         "TBCD_STRING_SIZE_3_16", HFILL }},
9500     { &hf_h225_tmsi,
9501       { "tmsi", "h225.tmsi",
9502         FT_BYTES, BASE_NONE, NULL, 0,
9503         "OCTET_STRING_SIZE_1_4", HFILL }},
9504     { &hf_h225_imei,
9505       { "imei", "h225.imei",
9506         FT_STRING, BASE_NONE, NULL, 0,
9507         "TBCD_STRING_SIZE_15_16", HFILL }},
9508     { &hf_h225_hplmn,
9509       { "hplmn", "h225.hplmn",
9510         FT_STRING, BASE_NONE, NULL, 0,
9511         "TBCD_STRING_SIZE_1_4", HFILL }},
9512     { &hf_h225_vplmn,
9513       { "vplmn", "h225.vplmn",
9514         FT_STRING, BASE_NONE, NULL, 0,
9515         "TBCD_STRING_SIZE_1_4", HFILL }},
9516     { &hf_h225_isupE164Number,
9517       { "e164Number", "h225.e164Number_element",
9518         FT_NONE, BASE_NONE, NULL, 0,
9519         "IsupPublicPartyNumber", HFILL }},
9520     { &hf_h225_isupDataPartyNumber,
9521       { "dataPartyNumber", "h225.dataPartyNumber",
9522         FT_STRING, BASE_NONE, NULL, 0,
9523         "IsupDigits", HFILL }},
9524     { &hf_h225_isupTelexPartyNumber,
9525       { "telexPartyNumber", "h225.telexPartyNumber",
9526         FT_STRING, BASE_NONE, NULL, 0,
9527         "IsupDigits", HFILL }},
9528     { &hf_h225_isupPrivateNumber,
9529       { "privateNumber", "h225.privateNumber_element",
9530         FT_NONE, BASE_NONE, NULL, 0,
9531         "IsupPrivatePartyNumber", HFILL }},
9532     { &hf_h225_isupNationalStandardPartyNumber,
9533       { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber",
9534         FT_STRING, BASE_NONE, NULL, 0,
9535         "IsupDigits", HFILL }},
9536     { &hf_h225_natureOfAddress,
9537       { "natureOfAddress", "h225.natureOfAddress",
9538         FT_UINT32, BASE_DEC, VALS(h225_NatureOfAddress_vals), 0,
9539         NULL, HFILL }},
9540     { &hf_h225_address,
9541       { "address", "h225.address",
9542         FT_STRING, BASE_NONE, NULL, 0,
9543         "IsupDigits", HFILL }},
9544     { &hf_h225_routingNumberNationalFormat,
9545       { "routingNumberNationalFormat", "h225.routingNumberNationalFormat_element",
9546         FT_NONE, BASE_NONE, NULL, 0,
9547         NULL, HFILL }},
9548     { &hf_h225_routingNumberNetworkSpecificFormat,
9549       { "routingNumberNetworkSpecificFormat", "h225.routingNumberNetworkSpecificFormat_element",
9550         FT_NONE, BASE_NONE, NULL, 0,
9551         NULL, HFILL }},
9552     { &hf_h225_routingNumberWithCalledDirectoryNumber,
9553       { "routingNumberWithCalledDirectoryNumber", "h225.routingNumberWithCalledDirectoryNumber_element",
9554         FT_NONE, BASE_NONE, NULL, 0,
9555         NULL, HFILL }},
9556     { &hf_h225_extAliasAddress,
9557       { "address", "h225.address",
9558         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9559         "AliasAddress", HFILL }},
9560     { &hf_h225_aliasAddress,
9561       { "aliasAddress", "h225.aliasAddress",
9562         FT_UINT32, BASE_DEC, NULL, 0,
9563         "SEQUENCE_OF_AliasAddress", HFILL }},
9564     { &hf_h225_aliasAddress_item,
9565       { "AliasAddress", "h225.AliasAddress",
9566         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9567         NULL, HFILL }},
9568     { &hf_h225_callSignalAddress,
9569       { "callSignalAddress", "h225.callSignalAddress",
9570         FT_UINT32, BASE_DEC, NULL, 0,
9571         "SEQUENCE_OF_TransportAddress", HFILL }},
9572     { &hf_h225_callSignalAddress_item,
9573       { "TransportAddress", "h225.TransportAddress",
9574         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9575         NULL, HFILL }},
9576     { &hf_h225_rasAddress,
9577       { "rasAddress", "h225.rasAddress",
9578         FT_UINT32, BASE_DEC, NULL, 0,
9579         "SEQUENCE_OF_TransportAddress", HFILL }},
9580     { &hf_h225_rasAddress_item,
9581       { "TransportAddress", "h225.TransportAddress",
9582         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9583         NULL, HFILL }},
9584     { &hf_h225_endpointType,
9585       { "endpointType", "h225.endpointType_element",
9586         FT_NONE, BASE_NONE, NULL, 0,
9587         NULL, HFILL }},
9588     { &hf_h225_priority,
9589       { "priority", "h225.priority",
9590         FT_UINT32, BASE_DEC, NULL, 0,
9591         "INTEGER_0_127", HFILL }},
9592     { &hf_h225_remoteExtensionAddress,
9593       { "remoteExtensionAddress", "h225.remoteExtensionAddress",
9594         FT_UINT32, BASE_DEC, NULL, 0,
9595         "SEQUENCE_OF_AliasAddress", HFILL }},
9596     { &hf_h225_remoteExtensionAddress_item,
9597       { "AliasAddress", "h225.AliasAddress",
9598         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9599         NULL, HFILL }},
9600     { &hf_h225_alternateTransportAddresses,
9601       { "alternateTransportAddresses", "h225.alternateTransportAddresses_element",
9602         FT_NONE, BASE_NONE, NULL, 0,
9603         NULL, HFILL }},
9604     { &hf_h225_annexE,
9605       { "annexE", "h225.annexE",
9606         FT_UINT32, BASE_DEC, NULL, 0,
9607         "SEQUENCE_OF_TransportAddress", HFILL }},
9608     { &hf_h225_annexE_item,
9609       { "TransportAddress", "h225.TransportAddress",
9610         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9611         NULL, HFILL }},
9612     { &hf_h225_sctp,
9613       { "sctp", "h225.sctp",
9614         FT_UINT32, BASE_DEC, NULL, 0,
9615         "SEQUENCE_OF_TransportAddress", HFILL }},
9616     { &hf_h225_sctp_item,
9617       { "TransportAddress", "h225.TransportAddress",
9618         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9619         NULL, HFILL }},
9620     { &hf_h225_tcp,
9621       { "tcp", "h225.tcp_element",
9622         FT_NONE, BASE_NONE, NULL, 0,
9623         NULL, HFILL }},
9624     { &hf_h225_annexE_flg,
9625       { "annexE", "h225.annexE_element",
9626         FT_NONE, BASE_NONE, NULL, 0,
9627         NULL, HFILL }},
9628     { &hf_h225_sctp_flg,
9629       { "sctp", "h225.sctp_element",
9630         FT_NONE, BASE_NONE, NULL, 0,
9631         NULL, HFILL }},
9632     { &hf_h225_alternateGK_rasAddress,
9633       { "rasAddress", "h225.rasAddress",
9634         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
9635         "TransportAddress", HFILL }},
9636     { &hf_h225_gatekeeperIdentifier,
9637       { "gatekeeperIdentifier", "h225.gatekeeperIdentifier",
9638         FT_STRING, BASE_NONE, NULL, 0,
9639         NULL, HFILL }},
9640     { &hf_h225_needToRegister,
9641       { "needToRegister", "h225.needToRegister",
9642         FT_BOOLEAN, BASE_NONE, NULL, 0,
9643         "BOOLEAN", HFILL }},
9644     { &hf_h225_alternateGatekeeper,
9645       { "alternateGatekeeper", "h225.alternateGatekeeper",
9646         FT_UINT32, BASE_DEC, NULL, 0,
9647         "SEQUENCE_OF_AlternateGK", HFILL }},
9648     { &hf_h225_alternateGatekeeper_item,
9649       { "AlternateGK", "h225.AlternateGK_element",
9650         FT_NONE, BASE_NONE, NULL, 0,
9651         NULL, HFILL }},
9652     { &hf_h225_altGKisPermanent,
9653       { "altGKisPermanent", "h225.altGKisPermanent",
9654         FT_BOOLEAN, BASE_NONE, NULL, 0,
9655         "BOOLEAN", HFILL }},
9656     { &hf_h225_default,
9657       { "default", "h225.default_element",
9658         FT_NONE, BASE_NONE, NULL, 0,
9659         NULL, HFILL }},
9660     { &hf_h225_encryption,
9661       { "encryption", "h225.encryption",
9662         FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9663         "SecurityServiceMode", HFILL }},
9664     { &hf_h225_authenticaton,
9665       { "authenticaton", "h225.authenticaton",
9666         FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9667         "SecurityServiceMode", HFILL }},
9668     { &hf_h225_securityCapabilities_integrity,
9669       { "integrity", "h225.integrity",
9670         FT_UINT32, BASE_DEC, VALS(h225_SecurityServiceMode_vals), 0,
9671         "SecurityServiceMode", HFILL }},
9672     { &hf_h225_securityWrongSyncTime,
9673       { "securityWrongSyncTime", "h225.securityWrongSyncTime_element",
9674         FT_NONE, BASE_NONE, NULL, 0,
9675         NULL, HFILL }},
9676     { &hf_h225_securityReplay,
9677       { "securityReplay", "h225.securityReplay_element",
9678         FT_NONE, BASE_NONE, NULL, 0,
9679         NULL, HFILL }},
9680     { &hf_h225_securityWrongGeneralID,
9681       { "securityWrongGeneralID", "h225.securityWrongGeneralID_element",
9682         FT_NONE, BASE_NONE, NULL, 0,
9683         NULL, HFILL }},
9684     { &hf_h225_securityWrongSendersID,
9685       { "securityWrongSendersID", "h225.securityWrongSendersID_element",
9686         FT_NONE, BASE_NONE, NULL, 0,
9687         NULL, HFILL }},
9688     { &hf_h225_securityIntegrityFailed,
9689       { "securityIntegrityFailed", "h225.securityIntegrityFailed_element",
9690         FT_NONE, BASE_NONE, NULL, 0,
9691         NULL, HFILL }},
9692     { &hf_h225_securityWrongOID,
9693       { "securityWrongOID", "h225.securityWrongOID_element",
9694         FT_NONE, BASE_NONE, NULL, 0,
9695         NULL, HFILL }},
9696     { &hf_h225_securityDHmismatch,
9697       { "securityDHmismatch", "h225.securityDHmismatch_element",
9698         FT_NONE, BASE_NONE, NULL, 0,
9699         NULL, HFILL }},
9700     { &hf_h225_securityCertificateExpired,
9701       { "securityCertificateExpired", "h225.securityCertificateExpired_element",
9702         FT_NONE, BASE_NONE, NULL, 0,
9703         NULL, HFILL }},
9704     { &hf_h225_securityCertificateDateInvalid,
9705       { "securityCertificateDateInvalid", "h225.securityCertificateDateInvalid_element",
9706         FT_NONE, BASE_NONE, NULL, 0,
9707         NULL, HFILL }},
9708     { &hf_h225_securityCertificateRevoked,
9709       { "securityCertificateRevoked", "h225.securityCertificateRevoked_element",
9710         FT_NONE, BASE_NONE, NULL, 0,
9711         NULL, HFILL }},
9712     { &hf_h225_securityCertificateNotReadable,
9713       { "securityCertificateNotReadable", "h225.securityCertificateNotReadable_element",
9714         FT_NONE, BASE_NONE, NULL, 0,
9715         NULL, HFILL }},
9716     { &hf_h225_securityCertificateSignatureInvalid,
9717       { "securityCertificateSignatureInvalid", "h225.securityCertificateSignatureInvalid_element",
9718         FT_NONE, BASE_NONE, NULL, 0,
9719         NULL, HFILL }},
9720     { &hf_h225_securityCertificateMissing,
9721       { "securityCertificateMissing", "h225.securityCertificateMissing_element",
9722         FT_NONE, BASE_NONE, NULL, 0,
9723         NULL, HFILL }},
9724     { &hf_h225_securityCertificateIncomplete,
9725       { "securityCertificateIncomplete", "h225.securityCertificateIncomplete_element",
9726         FT_NONE, BASE_NONE, NULL, 0,
9727         NULL, HFILL }},
9728     { &hf_h225_securityUnsupportedCertificateAlgOID,
9729       { "securityUnsupportedCertificateAlgOID", "h225.securityUnsupportedCertificateAlgOID_element",
9730         FT_NONE, BASE_NONE, NULL, 0,
9731         NULL, HFILL }},
9732     { &hf_h225_securityUnknownCA,
9733       { "securityUnknownCA", "h225.securityUnknownCA_element",
9734         FT_NONE, BASE_NONE, NULL, 0,
9735         NULL, HFILL }},
9736     { &hf_h225_noSecurity,
9737       { "noSecurity", "h225.noSecurity_element",
9738         FT_NONE, BASE_NONE, NULL, 0,
9739         NULL, HFILL }},
9740     { &hf_h225_tls,
9741       { "tls", "h225.tls_element",
9742         FT_NONE, BASE_NONE, NULL, 0,
9743         "SecurityCapabilities", HFILL }},
9744     { &hf_h225_ipsec,
9745       { "ipsec", "h225.ipsec_element",
9746         FT_NONE, BASE_NONE, NULL, 0,
9747         "SecurityCapabilities", HFILL }},
9748     { &hf_h225_q932Full,
9749       { "q932Full", "h225.q932Full",
9750         FT_BOOLEAN, BASE_NONE, NULL, 0,
9751         "BOOLEAN", HFILL }},
9752     { &hf_h225_q951Full,
9753       { "q951Full", "h225.q951Full",
9754         FT_BOOLEAN, BASE_NONE, NULL, 0,
9755         "BOOLEAN", HFILL }},
9756     { &hf_h225_q952Full,
9757       { "q952Full", "h225.q952Full",
9758         FT_BOOLEAN, BASE_NONE, NULL, 0,
9759         "BOOLEAN", HFILL }},
9760     { &hf_h225_q953Full,
9761       { "q953Full", "h225.q953Full",
9762         FT_BOOLEAN, BASE_NONE, NULL, 0,
9763         "BOOLEAN", HFILL }},
9764     { &hf_h225_q955Full,
9765       { "q955Full", "h225.q955Full",
9766         FT_BOOLEAN, BASE_NONE, NULL, 0,
9767         "BOOLEAN", HFILL }},
9768     { &hf_h225_q956Full,
9769       { "q956Full", "h225.q956Full",
9770         FT_BOOLEAN, BASE_NONE, NULL, 0,
9771         "BOOLEAN", HFILL }},
9772     { &hf_h225_q957Full,
9773       { "q957Full", "h225.q957Full",
9774         FT_BOOLEAN, BASE_NONE, NULL, 0,
9775         "BOOLEAN", HFILL }},
9776     { &hf_h225_q954Info,
9777       { "q954Info", "h225.q954Info_element",
9778         FT_NONE, BASE_NONE, NULL, 0,
9779         "Q954Details", HFILL }},
9780     { &hf_h225_conferenceCalling,
9781       { "conferenceCalling", "h225.conferenceCalling",
9782         FT_BOOLEAN, BASE_NONE, NULL, 0,
9783         "BOOLEAN", HFILL }},
9784     { &hf_h225_threePartyService,
9785       { "threePartyService", "h225.threePartyService",
9786         FT_BOOLEAN, BASE_NONE, NULL, 0,
9787         "BOOLEAN", HFILL }},
9788     { &hf_h225_guid,
9789       { "guid", "h225.guid",
9790         FT_GUID, BASE_NONE, NULL, 0,
9791         NULL, HFILL }},
9792     { &hf_h225_isoAlgorithm,
9793       { "isoAlgorithm", "h225.isoAlgorithm",
9794         FT_OID, BASE_NONE, NULL, 0,
9795         "OBJECT_IDENTIFIER", HFILL }},
9796     { &hf_h225_hMAC_MD5,
9797       { "hMAC-MD5", "h225.hMAC_MD5_element",
9798         FT_NONE, BASE_NONE, NULL, 0,
9799         NULL, HFILL }},
9800     { &hf_h225_hMAC_iso10118_2_s,
9801       { "hMAC-iso10118-2-s", "h225.hMAC_iso10118_2_s",
9802         FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9803         "EncryptIntAlg", HFILL }},
9804     { &hf_h225_hMAC_iso10118_2_l,
9805       { "hMAC-iso10118-2-l", "h225.hMAC_iso10118_2_l",
9806         FT_UINT32, BASE_DEC, VALS(h225_EncryptIntAlg_vals), 0,
9807         "EncryptIntAlg", HFILL }},
9808     { &hf_h225_hMAC_iso10118_3,
9809       { "hMAC-iso10118-3", "h225.hMAC_iso10118_3",
9810         FT_OID, BASE_NONE, NULL, 0,
9811         "OBJECT_IDENTIFIER", HFILL }},
9812     { &hf_h225_digSig,
9813       { "digSig", "h225.digSig_element",
9814         FT_NONE, BASE_NONE, NULL, 0,
9815         NULL, HFILL }},
9816     { &hf_h225_iso9797,
9817       { "iso9797", "h225.iso9797",
9818         FT_OID, BASE_NONE, NULL, 0,
9819         "OBJECT_IDENTIFIER", HFILL }},
9820     { &hf_h225_nonIsoIM,
9821       { "nonIsoIM", "h225.nonIsoIM",
9822         FT_UINT32, BASE_DEC, VALS(h225_NonIsoIntegrityMechanism_vals), 0,
9823         "NonIsoIntegrityMechanism", HFILL }},
9824     { &hf_h225_algorithmOID,
9825       { "algorithmOID", "h225.algorithmOID",
9826         FT_OID, BASE_NONE, NULL, 0,
9827         "OBJECT_IDENTIFIER", HFILL }},
9828     { &hf_h225_icv,
9829       { "icv", "h225.icv",
9830         FT_BYTES, BASE_NONE, NULL, 0,
9831         "BIT_STRING", HFILL }},
9832     { &hf_h225_cryptoEPPwdHash,
9833       { "cryptoEPPwdHash", "h225.cryptoEPPwdHash_element",
9834         FT_NONE, BASE_NONE, NULL, 0,
9835         NULL, HFILL }},
9836     { &hf_h225_alias,
9837       { "alias", "h225.alias",
9838         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9839         "AliasAddress", HFILL }},
9840     { &hf_h225_timeStamp,
9841       { "timeStamp", "h225.timeStamp",
9842         FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
9843         NULL, HFILL }},
9844     { &hf_h225_token,
9845       { "token", "h225.token_element",
9846         FT_NONE, BASE_NONE, NULL, 0,
9847         "HASHED", HFILL }},
9848     { &hf_h225_cryptoGKPwdHash,
9849       { "cryptoGKPwdHash", "h225.cryptoGKPwdHash_element",
9850         FT_NONE, BASE_NONE, NULL, 0,
9851         NULL, HFILL }},
9852     { &hf_h225_gatekeeperId,
9853       { "gatekeeperId", "h225.gatekeeperId",
9854         FT_STRING, BASE_NONE, NULL, 0,
9855         "GatekeeperIdentifier", HFILL }},
9856     { &hf_h225_cryptoEPPwdEncr,
9857       { "cryptoEPPwdEncr", "h225.cryptoEPPwdEncr_element",
9858         FT_NONE, BASE_NONE, NULL, 0,
9859         "ENCRYPTED", HFILL }},
9860     { &hf_h225_cryptoGKPwdEncr,
9861       { "cryptoGKPwdEncr", "h225.cryptoGKPwdEncr_element",
9862         FT_NONE, BASE_NONE, NULL, 0,
9863         "ENCRYPTED", HFILL }},
9864     { &hf_h225_cryptoEPCert,
9865       { "cryptoEPCert", "h225.cryptoEPCert_element",
9866         FT_NONE, BASE_NONE, NULL, 0,
9867         "SIGNED", HFILL }},
9868     { &hf_h225_cryptoGKCert,
9869       { "cryptoGKCert", "h225.cryptoGKCert_element",
9870         FT_NONE, BASE_NONE, NULL, 0,
9871         "SIGNED", HFILL }},
9872     { &hf_h225_cryptoFastStart,
9873       { "cryptoFastStart", "h225.cryptoFastStart_element",
9874         FT_NONE, BASE_NONE, NULL, 0,
9875         "SIGNED", HFILL }},
9876     { &hf_h225_nestedcryptoToken,
9877       { "nestedcryptoToken", "h225.nestedcryptoToken",
9878         FT_UINT32, BASE_DEC, VALS(h235_CryptoToken_vals), 0,
9879         "CryptoToken", HFILL }},
9880     { &hf_h225_channelRate,
9881       { "channelRate", "h225.channelRate",
9882         FT_UINT32, BASE_DEC, NULL, 0,
9883         "BandWidth", HFILL }},
9884     { &hf_h225_channelMultiplier,
9885       { "channelMultiplier", "h225.channelMultiplier",
9886         FT_UINT32, BASE_DEC, NULL, 0,
9887         "INTEGER_1_256", HFILL }},
9888     { &hf_h225_globalCallId,
9889       { "globalCallId", "h225.globalCallId",
9890         FT_GUID, BASE_NONE, NULL, 0,
9891         "GloballyUniqueID", HFILL }},
9892     { &hf_h225_threadId,
9893       { "threadId", "h225.threadId",
9894         FT_GUID, BASE_NONE, NULL, 0,
9895         "GloballyUniqueID", HFILL }},
9896     { &hf_h225_prefix,
9897       { "prefix", "h225.prefix",
9898         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
9899         "AliasAddress", HFILL }},
9900     { &hf_h225_canReportCallCapacity,
9901       { "canReportCallCapacity", "h225.canReportCallCapacity",
9902         FT_BOOLEAN, BASE_NONE, NULL, 0,
9903         "BOOLEAN", HFILL }},
9904     { &hf_h225_capacityReportingSpecification_when,
9905       { "when", "h225.when_element",
9906         FT_NONE, BASE_NONE, NULL, 0,
9907         "CapacityReportingSpecification_when", HFILL }},
9908     { &hf_h225_callStart,
9909       { "callStart", "h225.callStart_element",
9910         FT_NONE, BASE_NONE, NULL, 0,
9911         NULL, HFILL }},
9912     { &hf_h225_callEnd,
9913       { "callEnd", "h225.callEnd_element",
9914         FT_NONE, BASE_NONE, NULL, 0,
9915         NULL, HFILL }},
9916     { &hf_h225_maximumCallCapacity,
9917       { "maximumCallCapacity", "h225.maximumCallCapacity_element",
9918         FT_NONE, BASE_NONE, NULL, 0,
9919         "CallCapacityInfo", HFILL }},
9920     { &hf_h225_currentCallCapacity,
9921       { "currentCallCapacity", "h225.currentCallCapacity_element",
9922         FT_NONE, BASE_NONE, NULL, 0,
9923         "CallCapacityInfo", HFILL }},
9924     { &hf_h225_voiceGwCallsAvailable,
9925       { "voiceGwCallsAvailable", "h225.voiceGwCallsAvailable",
9926         FT_UINT32, BASE_DEC, NULL, 0,
9927         "SEQUENCE_OF_CallsAvailable", HFILL }},
9928     { &hf_h225_voiceGwCallsAvailable_item,
9929       { "CallsAvailable", "h225.CallsAvailable_element",
9930         FT_NONE, BASE_NONE, NULL, 0,
9931         NULL, HFILL }},
9932     { &hf_h225_h310GwCallsAvailable,
9933       { "h310GwCallsAvailable", "h225.h310GwCallsAvailable",
9934         FT_UINT32, BASE_DEC, NULL, 0,
9935         "SEQUENCE_OF_CallsAvailable", HFILL }},
9936     { &hf_h225_h310GwCallsAvailable_item,
9937       { "CallsAvailable", "h225.CallsAvailable_element",
9938         FT_NONE, BASE_NONE, NULL, 0,
9939         NULL, HFILL }},
9940     { &hf_h225_h320GwCallsAvailable,
9941       { "h320GwCallsAvailable", "h225.h320GwCallsAvailable",
9942         FT_UINT32, BASE_DEC, NULL, 0,
9943         "SEQUENCE_OF_CallsAvailable", HFILL }},
9944     { &hf_h225_h320GwCallsAvailable_item,
9945       { "CallsAvailable", "h225.CallsAvailable_element",
9946         FT_NONE, BASE_NONE, NULL, 0,
9947         NULL, HFILL }},
9948     { &hf_h225_h321GwCallsAvailable,
9949       { "h321GwCallsAvailable", "h225.h321GwCallsAvailable",
9950         FT_UINT32, BASE_DEC, NULL, 0,
9951         "SEQUENCE_OF_CallsAvailable", HFILL }},
9952     { &hf_h225_h321GwCallsAvailable_item,
9953       { "CallsAvailable", "h225.CallsAvailable_element",
9954         FT_NONE, BASE_NONE, NULL, 0,
9955         NULL, HFILL }},
9956     { &hf_h225_h322GwCallsAvailable,
9957       { "h322GwCallsAvailable", "h225.h322GwCallsAvailable",
9958         FT_UINT32, BASE_DEC, NULL, 0,
9959         "SEQUENCE_OF_CallsAvailable", HFILL }},
9960     { &hf_h225_h322GwCallsAvailable_item,
9961       { "CallsAvailable", "h225.CallsAvailable_element",
9962         FT_NONE, BASE_NONE, NULL, 0,
9963         NULL, HFILL }},
9964     { &hf_h225_h323GwCallsAvailable,
9965       { "h323GwCallsAvailable", "h225.h323GwCallsAvailable",
9966         FT_UINT32, BASE_DEC, NULL, 0,
9967         "SEQUENCE_OF_CallsAvailable", HFILL }},
9968     { &hf_h225_h323GwCallsAvailable_item,
9969       { "CallsAvailable", "h225.CallsAvailable_element",
9970         FT_NONE, BASE_NONE, NULL, 0,
9971         NULL, HFILL }},
9972     { &hf_h225_h324GwCallsAvailable,
9973       { "h324GwCallsAvailable", "h225.h324GwCallsAvailable",
9974         FT_UINT32, BASE_DEC, NULL, 0,
9975         "SEQUENCE_OF_CallsAvailable", HFILL }},
9976     { &hf_h225_h324GwCallsAvailable_item,
9977       { "CallsAvailable", "h225.CallsAvailable_element",
9978         FT_NONE, BASE_NONE, NULL, 0,
9979         NULL, HFILL }},
9980     { &hf_h225_t120OnlyGwCallsAvailable,
9981       { "t120OnlyGwCallsAvailable", "h225.t120OnlyGwCallsAvailable",
9982         FT_UINT32, BASE_DEC, NULL, 0,
9983         "SEQUENCE_OF_CallsAvailable", HFILL }},
9984     { &hf_h225_t120OnlyGwCallsAvailable_item,
9985       { "CallsAvailable", "h225.CallsAvailable_element",
9986         FT_NONE, BASE_NONE, NULL, 0,
9987         NULL, HFILL }},
9988     { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable,
9989       { "t38FaxAnnexbOnlyGwCallsAvailable", "h225.t38FaxAnnexbOnlyGwCallsAvailable",
9990         FT_UINT32, BASE_DEC, NULL, 0,
9991         "SEQUENCE_OF_CallsAvailable", HFILL }},
9992     { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable_item,
9993       { "CallsAvailable", "h225.CallsAvailable_element",
9994         FT_NONE, BASE_NONE, NULL, 0,
9995         NULL, HFILL }},
9996     { &hf_h225_terminalCallsAvailable,
9997       { "terminalCallsAvailable", "h225.terminalCallsAvailable",
9998         FT_UINT32, BASE_DEC, NULL, 0,
9999         "SEQUENCE_OF_CallsAvailable", HFILL }},
10000     { &hf_h225_terminalCallsAvailable_item,
10001       { "CallsAvailable", "h225.CallsAvailable_element",
10002         FT_NONE, BASE_NONE, NULL, 0,
10003         NULL, HFILL }},
10004     { &hf_h225_mcuCallsAvailable,
10005       { "mcuCallsAvailable", "h225.mcuCallsAvailable",
10006         FT_UINT32, BASE_DEC, NULL, 0,
10007         "SEQUENCE_OF_CallsAvailable", HFILL }},
10008     { &hf_h225_mcuCallsAvailable_item,
10009       { "CallsAvailable", "h225.CallsAvailable_element",
10010         FT_NONE, BASE_NONE, NULL, 0,
10011         NULL, HFILL }},
10012     { &hf_h225_sipGwCallsAvailable,
10013       { "sipGwCallsAvailable", "h225.sipGwCallsAvailable",
10014         FT_UINT32, BASE_DEC, NULL, 0,
10015         "SEQUENCE_OF_CallsAvailable", HFILL }},
10016     { &hf_h225_sipGwCallsAvailable_item,
10017       { "CallsAvailable", "h225.CallsAvailable_element",
10018         FT_NONE, BASE_NONE, NULL, 0,
10019         NULL, HFILL }},
10020     { &hf_h225_calls,
10021       { "calls", "h225.calls",
10022         FT_UINT32, BASE_DEC, NULL, 0,
10023         "INTEGER_0_4294967295", HFILL }},
10024     { &hf_h225_group_IA5String,
10025       { "group", "h225.group",
10026         FT_STRING, BASE_NONE, NULL, 0,
10027         "IA5String_SIZE_1_128", HFILL }},
10028     { &hf_h225_carrier,
10029       { "carrier", "h225.carrier_element",
10030         FT_NONE, BASE_NONE, NULL, 0,
10031         "CarrierInfo", HFILL }},
10032     { &hf_h225_sourceCircuitID,
10033       { "sourceCircuitID", "h225.sourceCircuitID_element",
10034         FT_NONE, BASE_NONE, NULL, 0,
10035         "CircuitIdentifier", HFILL }},
10036     { &hf_h225_destinationCircuitID,
10037       { "destinationCircuitID", "h225.destinationCircuitID_element",
10038         FT_NONE, BASE_NONE, NULL, 0,
10039         "CircuitIdentifier", HFILL }},
10040     { &hf_h225_cic,
10041       { "cic", "h225.cic_element",
10042         FT_NONE, BASE_NONE, NULL, 0,
10043         "CicInfo", HFILL }},
10044     { &hf_h225_group,
10045       { "group", "h225.group_element",
10046         FT_NONE, BASE_NONE, NULL, 0,
10047         "GroupID", HFILL }},
10048     { &hf_h225_cic_2_4,
10049       { "cic", "h225.cic",
10050         FT_UINT32, BASE_DEC, NULL, 0,
10051         "T_cic_2_4", HFILL }},
10052     { &hf_h225_cic_2_4_item,
10053       { "cic item", "h225.cic_item",
10054         FT_BYTES, BASE_NONE, NULL, 0,
10055         "OCTET_STRING_SIZE_2_4", HFILL }},
10056     { &hf_h225_pointCode,
10057       { "pointCode", "h225.pointCode",
10058         FT_BYTES, BASE_NONE, NULL, 0,
10059         "OCTET_STRING_SIZE_2_5", HFILL }},
10060     { &hf_h225_member,
10061       { "member", "h225.member",
10062         FT_UINT32, BASE_DEC, NULL, 0,
10063         NULL, HFILL }},
10064     { &hf_h225_member_item,
10065       { "member item", "h225.member_item",
10066         FT_UINT32, BASE_DEC, NULL, 0,
10067         "INTEGER_0_65535", HFILL }},
10068     { &hf_h225_carrierIdentificationCode,
10069       { "carrierIdentificationCode", "h225.carrierIdentificationCode",
10070         FT_BYTES, BASE_NONE, NULL, 0,
10071         "OCTET_STRING_SIZE_3_4", HFILL }},
10072     { &hf_h225_carrierName,
10073       { "carrierName", "h225.carrierName",
10074         FT_STRING, BASE_NONE, NULL, 0,
10075         "IA5String_SIZE_1_128", HFILL }},
10076     { &hf_h225_url,
10077       { "url", "h225.url",
10078         FT_STRING, BASE_NONE, NULL, 0,
10079         "IA5String_SIZE_0_512", HFILL }},
10080     { &hf_h225_signal,
10081       { "signal", "h225.signal",
10082         FT_BYTES, BASE_NONE, NULL, 0,
10083         "H248SignalsDescriptor", HFILL }},
10084     { &hf_h225_callCreditServiceControl,
10085       { "callCreditServiceControl", "h225.callCreditServiceControl_element",
10086         FT_NONE, BASE_NONE, NULL, 0,
10087         NULL, HFILL }},
10088     { &hf_h225_sessionId_0_255,
10089       { "sessionId", "h225.sessionId",
10090         FT_UINT32, BASE_DEC, NULL, 0,
10091         "INTEGER_0_255", HFILL }},
10092     { &hf_h225_contents,
10093       { "contents", "h225.contents",
10094         FT_UINT32, BASE_DEC, VALS(h225_ServiceControlDescriptor_vals), 0,
10095         "ServiceControlDescriptor", HFILL }},
10096     { &hf_h225_reason,
10097       { "reason", "h225.reason",
10098         FT_UINT32, BASE_DEC, VALS(h225_ServiceControlSession_reason_vals), 0,
10099         "ServiceControlSession_reason", HFILL }},
10100     { &hf_h225_open,
10101       { "open", "h225.open_element",
10102         FT_NONE, BASE_NONE, NULL, 0,
10103         NULL, HFILL }},
10104     { &hf_h225_refresh,
10105       { "refresh", "h225.refresh_element",
10106         FT_NONE, BASE_NONE, NULL, 0,
10107         NULL, HFILL }},
10108     { &hf_h225_close,
10109       { "close", "h225.close_element",
10110         FT_NONE, BASE_NONE, NULL, 0,
10111         NULL, HFILL }},
10112     { &hf_h225_nonStandardUsageTypes,
10113       { "nonStandardUsageTypes", "h225.nonStandardUsageTypes",
10114         FT_UINT32, BASE_DEC, NULL, 0,
10115         "SEQUENCE_OF_NonStandardParameter", HFILL }},
10116     { &hf_h225_nonStandardUsageTypes_item,
10117       { "NonStandardParameter", "h225.NonStandardParameter_element",
10118         FT_NONE, BASE_NONE, NULL, 0,
10119         NULL, HFILL }},
10120     { &hf_h225_startTime,
10121       { "startTime", "h225.startTime_element",
10122         FT_NONE, BASE_NONE, NULL, 0,
10123         NULL, HFILL }},
10124     { &hf_h225_endTime_flg,
10125       { "endTime", "h225.endTime_element",
10126         FT_NONE, BASE_NONE, NULL, 0,
10127         NULL, HFILL }},
10128     { &hf_h225_terminationCause_flg,
10129       { "terminationCause", "h225.terminationCause_element",
10130         FT_NONE, BASE_NONE, NULL, 0,
10131         NULL, HFILL }},
10132     { &hf_h225_when,
10133       { "when", "h225.when_element",
10134         FT_NONE, BASE_NONE, NULL, 0,
10135         "RasUsageSpecification_when", HFILL }},
10136     { &hf_h225_start,
10137       { "start", "h225.start_element",
10138         FT_NONE, BASE_NONE, NULL, 0,
10139         NULL, HFILL }},
10140     { &hf_h225_end,
10141       { "end", "h225.end_element",
10142         FT_NONE, BASE_NONE, NULL, 0,
10143         NULL, HFILL }},
10144     { &hf_h225_inIrr,
10145       { "inIrr", "h225.inIrr_element",
10146         FT_NONE, BASE_NONE, NULL, 0,
10147         NULL, HFILL }},
10148     { &hf_h225_ras_callStartingPoint,
10149       { "callStartingPoint", "h225.callStartingPoint_element",
10150         FT_NONE, BASE_NONE, NULL, 0,
10151         "RasUsageSpecificationcallStartingPoint", HFILL }},
10152     { &hf_h225_alerting_flg,
10153       { "alerting", "h225.alerting_element",
10154         FT_NONE, BASE_NONE, NULL, 0,
10155         NULL, HFILL }},
10156     { &hf_h225_connect_flg,
10157       { "connect", "h225.connect_element",
10158         FT_NONE, BASE_NONE, NULL, 0,
10159         NULL, HFILL }},
10160     { &hf_h225_required,
10161       { "required", "h225.required_element",
10162         FT_NONE, BASE_NONE, NULL, 0,
10163         "RasUsageInfoTypes", HFILL }},
10164     { &hf_h225_nonStandardUsageFields,
10165       { "nonStandardUsageFields", "h225.nonStandardUsageFields",
10166         FT_UINT32, BASE_DEC, NULL, 0,
10167         "SEQUENCE_OF_NonStandardParameter", HFILL }},
10168     { &hf_h225_nonStandardUsageFields_item,
10169       { "NonStandardParameter", "h225.NonStandardParameter_element",
10170         FT_NONE, BASE_NONE, NULL, 0,
10171         NULL, HFILL }},
10172     { &hf_h225_alertingTime,
10173       { "alertingTime", "h225.alertingTime",
10174         FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10175         "TimeStamp", HFILL }},
10176     { &hf_h225_connectTime,
10177       { "connectTime", "h225.connectTime",
10178         FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10179         "TimeStamp", HFILL }},
10180     { &hf_h225_endTime,
10181       { "endTime", "h225.endTime",
10182         FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
10183         "TimeStamp", HFILL }},
10184     { &hf_h225_releaseCompleteCauseIE,
10185       { "releaseCompleteCauseIE", "h225.releaseCompleteCauseIE",
10186         FT_BYTES, BASE_NONE, NULL, 0,
10187         "OCTET_STRING_SIZE_2_32", HFILL }},
10188     { &hf_h225_sender,
10189       { "sender", "h225.sender",
10190         FT_BOOLEAN, BASE_NONE, NULL, 0,
10191         "BOOLEAN", HFILL }},
10192     { &hf_h225_multicast,
10193       { "multicast", "h225.multicast",
10194         FT_BOOLEAN, BASE_NONE, NULL, 0,
10195         "BOOLEAN", HFILL }},
10196     { &hf_h225_bandwidth,
10197       { "bandwidth", "h225.bandwidth",
10198         FT_UINT32, BASE_DEC, NULL, 0,
10199         NULL, HFILL }},
10200     { &hf_h225_rtcpAddresses,
10201       { "rtcpAddresses", "h225.rtcpAddresses_element",
10202         FT_NONE, BASE_NONE, NULL, 0,
10203         "TransportChannelInfo", HFILL }},
10204     { &hf_h225_canDisplayAmountString,
10205       { "canDisplayAmountString", "h225.canDisplayAmountString",
10206         FT_BOOLEAN, BASE_NONE, NULL, 0,
10207         "BOOLEAN", HFILL }},
10208     { &hf_h225_canEnforceDurationLimit,
10209       { "canEnforceDurationLimit", "h225.canEnforceDurationLimit",
10210         FT_BOOLEAN, BASE_NONE, NULL, 0,
10211         "BOOLEAN", HFILL }},
10212     { &hf_h225_amountString,
10213       { "amountString", "h225.amountString",
10214         FT_STRING, BASE_NONE, NULL, 0,
10215         "BMPString_SIZE_1_512", HFILL }},
10216     { &hf_h225_billingMode,
10217       { "billingMode", "h225.billingMode",
10218         FT_UINT32, BASE_DEC, VALS(h225_T_billingMode_vals), 0,
10219         NULL, HFILL }},
10220     { &hf_h225_credit,
10221       { "credit", "h225.credit_element",
10222         FT_NONE, BASE_NONE, NULL, 0,
10223         NULL, HFILL }},
10224     { &hf_h225_debit,
10225       { "debit", "h225.debit_element",
10226         FT_NONE, BASE_NONE, NULL, 0,
10227         NULL, HFILL }},
10228     { &hf_h225_callDurationLimit,
10229       { "callDurationLimit", "h225.callDurationLimit",
10230         FT_UINT32, BASE_DEC, NULL, 0,
10231         "INTEGER_1_4294967295", HFILL }},
10232     { &hf_h225_enforceCallDurationLimit,
10233       { "enforceCallDurationLimit", "h225.enforceCallDurationLimit",
10234         FT_BOOLEAN, BASE_NONE, NULL, 0,
10235         "BOOLEAN", HFILL }},
10236     { &hf_h225_callStartingPoint,
10237       { "callStartingPoint", "h225.callStartingPoint",
10238         FT_UINT32, BASE_DEC, VALS(h225_CallCreditServiceControl_callStartingPoint_vals), 0,
10239         "CallCreditServiceControl_callStartingPoint", HFILL }},
10240     { &hf_h225_id,
10241       { "id", "h225.id",
10242         FT_UINT32, BASE_DEC, VALS(h225_GenericIdentifier_vals), 0,
10243         "GenericIdentifier", HFILL }},
10244     { &hf_h225_parameters,
10245       { "parameters", "h225.parameters",
10246         FT_UINT32, BASE_DEC, NULL, 0,
10247         "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10248     { &hf_h225_parameters_item,
10249       { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10250         FT_NONE, BASE_NONE, NULL, 0,
10251         NULL, HFILL }},
10252     { &hf_h225_standard,
10253       { "standard", "h225.standard",
10254         FT_UINT32, BASE_DEC, NULL, 0,
10255         NULL, HFILL }},
10256     { &hf_h225_oid,
10257       { "oid", "h225.oid",
10258         FT_OID, BASE_NONE, NULL, 0,
10259         NULL, HFILL }},
10260     { &hf_h225_genericIdentifier_nonStandard,
10261       { "nonStandard", "h225.nonStandard",
10262         FT_GUID, BASE_NONE, NULL, 0,
10263         "GloballyUniqueID", HFILL }},
10264     { &hf_h225_content,
10265       { "content", "h225.content",
10266         FT_UINT32, BASE_DEC, VALS(h225_Content_vals), 0,
10267         NULL, HFILL }},
10268     { &hf_h225_raw,
10269       { "raw", "h225.raw",
10270         FT_BYTES, BASE_NONE, NULL, 0,
10271         NULL, HFILL }},
10272     { &hf_h225_text,
10273       { "text", "h225.text",
10274         FT_STRING, BASE_NONE, NULL, 0,
10275         "IA5String", HFILL }},
10276     { &hf_h225_unicode,
10277       { "unicode", "h225.unicode",
10278         FT_STRING, BASE_NONE, NULL, 0,
10279         "BMPString", HFILL }},
10280     { &hf_h225_bool,
10281       { "bool", "h225.bool",
10282         FT_BOOLEAN, BASE_NONE, NULL, 0,
10283         "BOOLEAN", HFILL }},
10284     { &hf_h225_number8,
10285       { "number8", "h225.number8",
10286         FT_UINT32, BASE_DEC, NULL, 0,
10287         "INTEGER_0_255", HFILL }},
10288     { &hf_h225_number16,
10289       { "number16", "h225.number16",
10290         FT_UINT32, BASE_DEC, NULL, 0,
10291         "INTEGER_0_65535", HFILL }},
10292     { &hf_h225_number32,
10293       { "number32", "h225.number32",
10294         FT_UINT32, BASE_DEC, NULL, 0,
10295         "INTEGER_0_4294967295", HFILL }},
10296     { &hf_h225_transport,
10297       { "transport", "h225.transport",
10298         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10299         "TransportAddress", HFILL }},
10300     { &hf_h225_compound,
10301       { "compound", "h225.compound",
10302         FT_UINT32, BASE_DEC, NULL, 0,
10303         "SEQUENCE_SIZE_1_512_OF_EnumeratedParameter", HFILL }},
10304     { &hf_h225_compound_item,
10305       { "EnumeratedParameter", "h225.EnumeratedParameter_element",
10306         FT_NONE, BASE_NONE, NULL, 0,
10307         NULL, HFILL }},
10308     { &hf_h225_nested,
10309       { "nested", "h225.nested",
10310         FT_UINT32, BASE_DEC, NULL, 0,
10311         "SEQUENCE_SIZE_1_16_OF_GenericData", HFILL }},
10312     { &hf_h225_nested_item,
10313       { "GenericData", "h225.GenericData_element",
10314         FT_NONE, BASE_NONE, NULL, 0,
10315         NULL, HFILL }},
10316     { &hf_h225_replacementFeatureSet,
10317       { "replacementFeatureSet", "h225.replacementFeatureSet",
10318         FT_BOOLEAN, BASE_NONE, NULL, 0,
10319         "BOOLEAN", HFILL }},
10320     { &hf_h225_sendAddress,
10321       { "sendAddress", "h225.sendAddress",
10322         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10323         "TransportAddress", HFILL }},
10324     { &hf_h225_recvAddress,
10325       { "recvAddress", "h225.recvAddress",
10326         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10327         "TransportAddress", HFILL }},
10328     { &hf_h225_rtpAddress,
10329       { "rtpAddress", "h225.rtpAddress_element",
10330         FT_NONE, BASE_NONE, NULL, 0,
10331         "TransportChannelInfo", HFILL }},
10332     { &hf_h225_rtcpAddress,
10333       { "rtcpAddress", "h225.rtcpAddress_element",
10334         FT_NONE, BASE_NONE, NULL, 0,
10335         "TransportChannelInfo", HFILL }},
10336     { &hf_h225_cname,
10337       { "cname", "h225.cname",
10338         FT_STRING, BASE_NONE, NULL, 0,
10339         "PrintableString", HFILL }},
10340     { &hf_h225_ssrc,
10341       { "ssrc", "h225.ssrc",
10342         FT_UINT32, BASE_DEC, NULL, 0,
10343         "INTEGER_1_4294967295", HFILL }},
10344     { &hf_h225_sessionId,
10345       { "sessionId", "h225.sessionId",
10346         FT_UINT32, BASE_DEC, NULL, 0,
10347         "INTEGER_1_255", HFILL }},
10348     { &hf_h225_associatedSessionIds,
10349       { "associatedSessionIds", "h225.associatedSessionIds",
10350         FT_UINT32, BASE_DEC, NULL, 0,
10351         NULL, HFILL }},
10352     { &hf_h225_associatedSessionIds_item,
10353       { "associatedSessionIds item", "h225.associatedSessionIds_item",
10354         FT_UINT32, BASE_DEC, NULL, 0,
10355         "INTEGER_1_255", HFILL }},
10356     { &hf_h225_multicast_flg,
10357       { "multicast", "h225.multicast_element",
10358         FT_NONE, BASE_NONE, NULL, 0,
10359         NULL, HFILL }},
10360     { &hf_h225_gatekeeperBased,
10361       { "gatekeeperBased", "h225.gatekeeperBased_element",
10362         FT_NONE, BASE_NONE, NULL, 0,
10363         NULL, HFILL }},
10364     { &hf_h225_endpointBased,
10365       { "endpointBased", "h225.endpointBased_element",
10366         FT_NONE, BASE_NONE, NULL, 0,
10367         NULL, HFILL }},
10368     { &hf_h225_gatekeeperRequest,
10369       { "gatekeeperRequest", "h225.gatekeeperRequest_element",
10370         FT_NONE, BASE_NONE, NULL, 0,
10371         NULL, HFILL }},
10372     { &hf_h225_gatekeeperConfirm,
10373       { "gatekeeperConfirm", "h225.gatekeeperConfirm_element",
10374         FT_NONE, BASE_NONE, NULL, 0,
10375         NULL, HFILL }},
10376     { &hf_h225_gatekeeperReject,
10377       { "gatekeeperReject", "h225.gatekeeperReject_element",
10378         FT_NONE, BASE_NONE, NULL, 0,
10379         NULL, HFILL }},
10380     { &hf_h225_registrationRequest,
10381       { "registrationRequest", "h225.registrationRequest_element",
10382         FT_NONE, BASE_NONE, NULL, 0,
10383         NULL, HFILL }},
10384     { &hf_h225_registrationConfirm,
10385       { "registrationConfirm", "h225.registrationConfirm_element",
10386         FT_NONE, BASE_NONE, NULL, 0,
10387         NULL, HFILL }},
10388     { &hf_h225_registrationReject,
10389       { "registrationReject", "h225.registrationReject_element",
10390         FT_NONE, BASE_NONE, NULL, 0,
10391         NULL, HFILL }},
10392     { &hf_h225_unregistrationRequest,
10393       { "unregistrationRequest", "h225.unregistrationRequest_element",
10394         FT_NONE, BASE_NONE, NULL, 0,
10395         NULL, HFILL }},
10396     { &hf_h225_unregistrationConfirm,
10397       { "unregistrationConfirm", "h225.unregistrationConfirm_element",
10398         FT_NONE, BASE_NONE, NULL, 0,
10399         NULL, HFILL }},
10400     { &hf_h225_unregistrationReject,
10401       { "unregistrationReject", "h225.unregistrationReject_element",
10402         FT_NONE, BASE_NONE, NULL, 0,
10403         NULL, HFILL }},
10404     { &hf_h225_admissionRequest,
10405       { "admissionRequest", "h225.admissionRequest_element",
10406         FT_NONE, BASE_NONE, NULL, 0,
10407         NULL, HFILL }},
10408     { &hf_h225_admissionConfirm,
10409       { "admissionConfirm", "h225.admissionConfirm_element",
10410         FT_NONE, BASE_NONE, NULL, 0,
10411         NULL, HFILL }},
10412     { &hf_h225_admissionReject,
10413       { "admissionReject", "h225.admissionReject_element",
10414         FT_NONE, BASE_NONE, NULL, 0,
10415         NULL, HFILL }},
10416     { &hf_h225_bandwidthRequest,
10417       { "bandwidthRequest", "h225.bandwidthRequest_element",
10418         FT_NONE, BASE_NONE, NULL, 0,
10419         NULL, HFILL }},
10420     { &hf_h225_bandwidthConfirm,
10421       { "bandwidthConfirm", "h225.bandwidthConfirm_element",
10422         FT_NONE, BASE_NONE, NULL, 0,
10423         NULL, HFILL }},
10424     { &hf_h225_bandwidthReject,
10425       { "bandwidthReject", "h225.bandwidthReject_element",
10426         FT_NONE, BASE_NONE, NULL, 0,
10427         NULL, HFILL }},
10428     { &hf_h225_disengageRequest,
10429       { "disengageRequest", "h225.disengageRequest_element",
10430         FT_NONE, BASE_NONE, NULL, 0,
10431         NULL, HFILL }},
10432     { &hf_h225_disengageConfirm,
10433       { "disengageConfirm", "h225.disengageConfirm_element",
10434         FT_NONE, BASE_NONE, NULL, 0,
10435         NULL, HFILL }},
10436     { &hf_h225_disengageReject,
10437       { "disengageReject", "h225.disengageReject_element",
10438         FT_NONE, BASE_NONE, NULL, 0,
10439         NULL, HFILL }},
10440     { &hf_h225_locationRequest,
10441       { "locationRequest", "h225.locationRequest_element",
10442         FT_NONE, BASE_NONE, NULL, 0,
10443         NULL, HFILL }},
10444     { &hf_h225_locationConfirm,
10445       { "locationConfirm", "h225.locationConfirm_element",
10446         FT_NONE, BASE_NONE, NULL, 0,
10447         NULL, HFILL }},
10448     { &hf_h225_locationReject,
10449       { "locationReject", "h225.locationReject_element",
10450         FT_NONE, BASE_NONE, NULL, 0,
10451         NULL, HFILL }},
10452     { &hf_h225_infoRequest,
10453       { "infoRequest", "h225.infoRequest_element",
10454         FT_NONE, BASE_NONE, NULL, 0,
10455         NULL, HFILL }},
10456     { &hf_h225_infoRequestResponse,
10457       { "infoRequestResponse", "h225.infoRequestResponse_element",
10458         FT_NONE, BASE_NONE, NULL, 0,
10459         NULL, HFILL }},
10460     { &hf_h225_nonStandardMessage,
10461       { "nonStandardMessage", "h225.nonStandardMessage_element",
10462         FT_NONE, BASE_NONE, NULL, 0,
10463         NULL, HFILL }},
10464     { &hf_h225_unknownMessageResponse,
10465       { "unknownMessageResponse", "h225.unknownMessageResponse_element",
10466         FT_NONE, BASE_NONE, NULL, 0,
10467         NULL, HFILL }},
10468     { &hf_h225_requestInProgress,
10469       { "requestInProgress", "h225.requestInProgress_element",
10470         FT_NONE, BASE_NONE, NULL, 0,
10471         NULL, HFILL }},
10472     { &hf_h225_resourcesAvailableIndicate,
10473       { "resourcesAvailableIndicate", "h225.resourcesAvailableIndicate_element",
10474         FT_NONE, BASE_NONE, NULL, 0,
10475         NULL, HFILL }},
10476     { &hf_h225_resourcesAvailableConfirm,
10477       { "resourcesAvailableConfirm", "h225.resourcesAvailableConfirm_element",
10478         FT_NONE, BASE_NONE, NULL, 0,
10479         NULL, HFILL }},
10480     { &hf_h225_infoRequestAck,
10481       { "infoRequestAck", "h225.infoRequestAck_element",
10482         FT_NONE, BASE_NONE, NULL, 0,
10483         NULL, HFILL }},
10484     { &hf_h225_infoRequestNak,
10485       { "infoRequestNak", "h225.infoRequestNak_element",
10486         FT_NONE, BASE_NONE, NULL, 0,
10487         NULL, HFILL }},
10488     { &hf_h225_serviceControlIndication,
10489       { "serviceControlIndication", "h225.serviceControlIndication_element",
10490         FT_NONE, BASE_NONE, NULL, 0,
10491         NULL, HFILL }},
10492     { &hf_h225_serviceControlResponse,
10493       { "serviceControlResponse", "h225.serviceControlResponse_element",
10494         FT_NONE, BASE_NONE, NULL, 0,
10495         NULL, HFILL }},
10496     { &hf_h225_admissionConfirmSequence,
10497       { "admissionConfirmSequence", "h225.admissionConfirmSequence",
10498         FT_UINT32, BASE_DEC, NULL, 0,
10499         "SEQUENCE_OF_AdmissionConfirm", HFILL }},
10500     { &hf_h225_admissionConfirmSequence_item,
10501       { "AdmissionConfirm", "h225.AdmissionConfirm_element",
10502         FT_NONE, BASE_NONE, NULL, 0,
10503         NULL, HFILL }},
10504     { &hf_h225_requestSeqNum,
10505       { "requestSeqNum", "h225.requestSeqNum",
10506         FT_UINT32, BASE_DEC, NULL, 0,
10507         NULL, HFILL }},
10508     { &hf_h225_gatekeeperRequest_rasAddress,
10509       { "rasAddress", "h225.rasAddress",
10510         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10511         "TransportAddress", HFILL }},
10512     { &hf_h225_endpointAlias,
10513       { "endpointAlias", "h225.endpointAlias",
10514         FT_UINT32, BASE_DEC, NULL, 0,
10515         "SEQUENCE_OF_AliasAddress", HFILL }},
10516     { &hf_h225_endpointAlias_item,
10517       { "AliasAddress", "h225.AliasAddress",
10518         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10519         NULL, HFILL }},
10520     { &hf_h225_alternateEndpoints,
10521       { "alternateEndpoints", "h225.alternateEndpoints",
10522         FT_UINT32, BASE_DEC, NULL, 0,
10523         "SEQUENCE_OF_Endpoint", HFILL }},
10524     { &hf_h225_alternateEndpoints_item,
10525       { "Endpoint", "h225.Endpoint_element",
10526         FT_NONE, BASE_NONE, NULL, 0,
10527         NULL, HFILL }},
10528     { &hf_h225_authenticationCapability,
10529       { "authenticationCapability", "h225.authenticationCapability",
10530         FT_UINT32, BASE_DEC, NULL, 0,
10531         "SEQUENCE_OF_AuthenticationMechanism", HFILL }},
10532     { &hf_h225_authenticationCapability_item,
10533       { "AuthenticationMechanism", "h225.AuthenticationMechanism",
10534         FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10535         NULL, HFILL }},
10536     { &hf_h225_algorithmOIDs,
10537       { "algorithmOIDs", "h225.algorithmOIDs",
10538         FT_UINT32, BASE_DEC, NULL, 0,
10539         NULL, HFILL }},
10540     { &hf_h225_algorithmOIDs_item,
10541       { "algorithmOIDs item", "h225.algorithmOIDs_item",
10542         FT_OID, BASE_NONE, NULL, 0,
10543         "OBJECT_IDENTIFIER", HFILL }},
10544     { &hf_h225_integrity,
10545       { "integrity", "h225.integrity",
10546         FT_UINT32, BASE_DEC, NULL, 0,
10547         "SEQUENCE_OF_IntegrityMechanism", HFILL }},
10548     { &hf_h225_integrity_item,
10549       { "IntegrityMechanism", "h225.IntegrityMechanism",
10550         FT_UINT32, BASE_DEC, VALS(h225_IntegrityMechanism_vals), 0,
10551         NULL, HFILL }},
10552     { &hf_h225_integrityCheckValue,
10553       { "integrityCheckValue", "h225.integrityCheckValue_element",
10554         FT_NONE, BASE_NONE, NULL, 0,
10555         "ICV", HFILL }},
10556     { &hf_h225_supportsAltGK,
10557       { "supportsAltGK", "h225.supportsAltGK_element",
10558         FT_NONE, BASE_NONE, NULL, 0,
10559         NULL, HFILL }},
10560     { &hf_h225_supportsAssignedGK,
10561       { "supportsAssignedGK", "h225.supportsAssignedGK",
10562         FT_BOOLEAN, BASE_NONE, NULL, 0,
10563         "BOOLEAN", HFILL }},
10564     { &hf_h225_assignedGatekeeper,
10565       { "assignedGatekeeper", "h225.assignedGatekeeper_element",
10566         FT_NONE, BASE_NONE, NULL, 0,
10567         "AlternateGK", HFILL }},
10568     { &hf_h225_gatekeeperConfirm_rasAddress,
10569       { "rasAddress", "h225.rasAddress",
10570         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10571         "TransportAddress", HFILL }},
10572     { &hf_h225_authenticationMode,
10573       { "authenticationMode", "h225.authenticationMode",
10574         FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
10575         "AuthenticationMechanism", HFILL }},
10576     { &hf_h225_rehomingModel,
10577       { "rehomingModel", "h225.rehomingModel",
10578         FT_UINT32, BASE_DEC, VALS(h225_RehomingModel_vals), 0,
10579         NULL, HFILL }},
10580     { &hf_h225_gatekeeperRejectReason,
10581       { "rejectReason", "h225.rejectReason",
10582         FT_UINT32, BASE_DEC, VALS(GatekeeperRejectReason_vals), 0,
10583         "GatekeeperRejectReason", HFILL }},
10584     { &hf_h225_altGKInfo,
10585       { "altGKInfo", "h225.altGKInfo_element",
10586         FT_NONE, BASE_NONE, NULL, 0,
10587         NULL, HFILL }},
10588     { &hf_h225_resourceUnavailable,
10589       { "resourceUnavailable", "h225.resourceUnavailable_element",
10590         FT_NONE, BASE_NONE, NULL, 0,
10591         NULL, HFILL }},
10592     { &hf_h225_terminalExcluded,
10593       { "terminalExcluded", "h225.terminalExcluded_element",
10594         FT_NONE, BASE_NONE, NULL, 0,
10595         NULL, HFILL }},
10596     { &hf_h225_securityDenial,
10597       { "securityDenial", "h225.securityDenial_element",
10598         FT_NONE, BASE_NONE, NULL, 0,
10599         NULL, HFILL }},
10600     { &hf_h225_gkRej_securityError,
10601       { "securityError", "h225.securityError",
10602         FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10603         "SecurityErrors", HFILL }},
10604     { &hf_h225_discoveryComplete,
10605       { "discoveryComplete", "h225.discoveryComplete",
10606         FT_BOOLEAN, BASE_NONE, NULL, 0,
10607         "BOOLEAN", HFILL }},
10608     { &hf_h225_terminalType,
10609       { "terminalType", "h225.terminalType_element",
10610         FT_NONE, BASE_NONE, NULL, 0,
10611         "EndpointType", HFILL }},
10612     { &hf_h225_terminalAlias,
10613       { "terminalAlias", "h225.terminalAlias",
10614         FT_UINT32, BASE_DEC, NULL, 0,
10615         "SEQUENCE_OF_AliasAddress", HFILL }},
10616     { &hf_h225_terminalAlias_item,
10617       { "AliasAddress", "h225.AliasAddress",
10618         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10619         NULL, HFILL }},
10620     { &hf_h225_endpointVendor,
10621       { "endpointVendor", "h225.endpointVendor_element",
10622         FT_NONE, BASE_NONE, NULL, 0,
10623         "VendorIdentifier", HFILL }},
10624     { &hf_h225_timeToLive,
10625       { "timeToLive", "h225.timeToLive",
10626         FT_UINT32, BASE_DEC, NULL, 0,
10627         NULL, HFILL }},
10628     { &hf_h225_keepAlive,
10629       { "keepAlive", "h225.keepAlive",
10630         FT_BOOLEAN, BASE_NONE, NULL, 0,
10631         "BOOLEAN", HFILL }},
10632     { &hf_h225_willSupplyUUIEs,
10633       { "willSupplyUUIEs", "h225.willSupplyUUIEs",
10634         FT_BOOLEAN, BASE_NONE, NULL, 0,
10635         "BOOLEAN", HFILL }},
10636     { &hf_h225_additiveRegistration,
10637       { "additiveRegistration", "h225.additiveRegistration_element",
10638         FT_NONE, BASE_NONE, NULL, 0,
10639         NULL, HFILL }},
10640     { &hf_h225_terminalAliasPattern,
10641       { "terminalAliasPattern", "h225.terminalAliasPattern",
10642         FT_UINT32, BASE_DEC, NULL, 0,
10643         "SEQUENCE_OF_AddressPattern", HFILL }},
10644     { &hf_h225_terminalAliasPattern_item,
10645       { "AddressPattern", "h225.AddressPattern",
10646         FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10647         NULL, HFILL }},
10648     { &hf_h225_usageReportingCapability,
10649       { "usageReportingCapability", "h225.usageReportingCapability_element",
10650         FT_NONE, BASE_NONE, NULL, 0,
10651         "RasUsageInfoTypes", HFILL }},
10652     { &hf_h225_supportedH248Packages,
10653       { "supportedH248Packages", "h225.supportedH248Packages",
10654         FT_UINT32, BASE_DEC, NULL, 0,
10655         "SEQUENCE_OF_H248PackagesDescriptor", HFILL }},
10656     { &hf_h225_supportedH248Packages_item,
10657       { "H248PackagesDescriptor", "h225.H248PackagesDescriptor",
10658         FT_BYTES, BASE_NONE, NULL, 0,
10659         NULL, HFILL }},
10660     { &hf_h225_callCreditCapability,
10661       { "callCreditCapability", "h225.callCreditCapability_element",
10662         FT_NONE, BASE_NONE, NULL, 0,
10663         NULL, HFILL }},
10664     { &hf_h225_capacityReportingCapability,
10665       { "capacityReportingCapability", "h225.capacityReportingCapability_element",
10666         FT_NONE, BASE_NONE, NULL, 0,
10667         NULL, HFILL }},
10668     { &hf_h225_restart,
10669       { "restart", "h225.restart_element",
10670         FT_NONE, BASE_NONE, NULL, 0,
10671         NULL, HFILL }},
10672     { &hf_h225_supportsACFSequences,
10673       { "supportsACFSequences", "h225.supportsACFSequences_element",
10674         FT_NONE, BASE_NONE, NULL, 0,
10675         NULL, HFILL }},
10676     { &hf_h225_transportQOS,
10677       { "transportQOS", "h225.transportQOS",
10678         FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0,
10679         NULL, HFILL }},
10680     { &hf_h225_willRespondToIRR,
10681       { "willRespondToIRR", "h225.willRespondToIRR",
10682         FT_BOOLEAN, BASE_NONE, NULL, 0,
10683         "BOOLEAN", HFILL }},
10684     { &hf_h225_preGrantedARQ,
10685       { "preGrantedARQ", "h225.preGrantedARQ_element",
10686         FT_NONE, BASE_NONE, NULL, 0,
10687         NULL, HFILL }},
10688     { &hf_h225_makeCall,
10689       { "makeCall", "h225.makeCall",
10690         FT_BOOLEAN, BASE_NONE, NULL, 0,
10691         "BOOLEAN", HFILL }},
10692     { &hf_h225_useGKCallSignalAddressToMakeCall,
10693       { "useGKCallSignalAddressToMakeCall", "h225.useGKCallSignalAddressToMakeCall",
10694         FT_BOOLEAN, BASE_NONE, NULL, 0,
10695         "BOOLEAN", HFILL }},
10696     { &hf_h225_answerCall,
10697       { "answerCall", "h225.answerCall",
10698         FT_BOOLEAN, BASE_NONE, NULL, 0,
10699         "BOOLEAN", HFILL }},
10700     { &hf_h225_useGKCallSignalAddressToAnswer,
10701       { "useGKCallSignalAddressToAnswer", "h225.useGKCallSignalAddressToAnswer",
10702         FT_BOOLEAN, BASE_NONE, NULL, 0,
10703         "BOOLEAN", HFILL }},
10704     { &hf_h225_irrFrequencyInCall,
10705       { "irrFrequencyInCall", "h225.irrFrequencyInCall",
10706         FT_UINT32, BASE_DEC, NULL, 0,
10707         "INTEGER_1_65535", HFILL }},
10708     { &hf_h225_totalBandwidthRestriction,
10709       { "totalBandwidthRestriction", "h225.totalBandwidthRestriction",
10710         FT_UINT32, BASE_DEC, NULL, 0,
10711         "BandWidth", HFILL }},
10712     { &hf_h225_useSpecifiedTransport,
10713       { "useSpecifiedTransport", "h225.useSpecifiedTransport",
10714         FT_UINT32, BASE_DEC, VALS(h225_UseSpecifiedTransport_vals), 0,
10715         NULL, HFILL }},
10716     { &hf_h225_supportsAdditiveRegistration,
10717       { "supportsAdditiveRegistration", "h225.supportsAdditiveRegistration_element",
10718         FT_NONE, BASE_NONE, NULL, 0,
10719         NULL, HFILL }},
10720     { &hf_h225_usageSpec,
10721       { "usageSpec", "h225.usageSpec",
10722         FT_UINT32, BASE_DEC, NULL, 0,
10723         "SEQUENCE_OF_RasUsageSpecification", HFILL }},
10724     { &hf_h225_usageSpec_item,
10725       { "RasUsageSpecification", "h225.RasUsageSpecification_element",
10726         FT_NONE, BASE_NONE, NULL, 0,
10727         NULL, HFILL }},
10728     { &hf_h225_featureServerAlias,
10729       { "featureServerAlias", "h225.featureServerAlias",
10730         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10731         "AliasAddress", HFILL }},
10732     { &hf_h225_capacityReportingSpec,
10733       { "capacityReportingSpec", "h225.capacityReportingSpec_element",
10734         FT_NONE, BASE_NONE, NULL, 0,
10735         "CapacityReportingSpecification", HFILL }},
10736     { &hf_h225_registrationRejectReason,
10737       { "rejectReason", "h225.rejectReason",
10738         FT_UINT32, BASE_DEC, VALS(RegistrationRejectReason_vals), 0,
10739         "RegistrationRejectReason", HFILL }},
10740     { &hf_h225_discoveryRequired,
10741       { "discoveryRequired", "h225.discoveryRequired_element",
10742         FT_NONE, BASE_NONE, NULL, 0,
10743         NULL, HFILL }},
10744     { &hf_h225_invalidCallSignalAddress,
10745       { "invalidCallSignalAddress", "h225.invalidCallSignalAddress_element",
10746         FT_NONE, BASE_NONE, NULL, 0,
10747         NULL, HFILL }},
10748     { &hf_h225_invalidRASAddress,
10749       { "invalidRASAddress", "h225.invalidRASAddress_element",
10750         FT_NONE, BASE_NONE, NULL, 0,
10751         NULL, HFILL }},
10752     { &hf_h225_duplicateAlias,
10753       { "duplicateAlias", "h225.duplicateAlias",
10754         FT_UINT32, BASE_DEC, NULL, 0,
10755         "SEQUENCE_OF_AliasAddress", HFILL }},
10756     { &hf_h225_duplicateAlias_item,
10757       { "AliasAddress", "h225.AliasAddress",
10758         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10759         NULL, HFILL }},
10760     { &hf_h225_invalidTerminalType,
10761       { "invalidTerminalType", "h225.invalidTerminalType_element",
10762         FT_NONE, BASE_NONE, NULL, 0,
10763         NULL, HFILL }},
10764     { &hf_h225_transportNotSupported,
10765       { "transportNotSupported", "h225.transportNotSupported_element",
10766         FT_NONE, BASE_NONE, NULL, 0,
10767         NULL, HFILL }},
10768     { &hf_h225_transportQOSNotSupported,
10769       { "transportQOSNotSupported", "h225.transportQOSNotSupported_element",
10770         FT_NONE, BASE_NONE, NULL, 0,
10771         NULL, HFILL }},
10772     { &hf_h225_invalidAlias,
10773       { "invalidAlias", "h225.invalidAlias_element",
10774         FT_NONE, BASE_NONE, NULL, 0,
10775         NULL, HFILL }},
10776     { &hf_h225_fullRegistrationRequired,
10777       { "fullRegistrationRequired", "h225.fullRegistrationRequired_element",
10778         FT_NONE, BASE_NONE, NULL, 0,
10779         NULL, HFILL }},
10780     { &hf_h225_additiveRegistrationNotSupported,
10781       { "additiveRegistrationNotSupported", "h225.additiveRegistrationNotSupported_element",
10782         FT_NONE, BASE_NONE, NULL, 0,
10783         NULL, HFILL }},
10784     { &hf_h225_invalidTerminalAliases,
10785       { "invalidTerminalAliases", "h225.invalidTerminalAliases_element",
10786         FT_NONE, BASE_NONE, NULL, 0,
10787         NULL, HFILL }},
10788     { &hf_h225_reg_securityError,
10789       { "securityError", "h225.securityError",
10790         FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors_vals), 0,
10791         "SecurityErrors", HFILL }},
10792     { &hf_h225_registerWithAssignedGK,
10793       { "registerWithAssignedGK", "h225.registerWithAssignedGK_element",
10794         FT_NONE, BASE_NONE, NULL, 0,
10795         NULL, HFILL }},
10796     { &hf_h225_unregRequestReason,
10797       { "reason", "h225.reason",
10798         FT_UINT32, BASE_DEC, VALS(UnregRequestReason_vals), 0,
10799         "UnregRequestReason", HFILL }},
10800     { &hf_h225_endpointAliasPattern,
10801       { "endpointAliasPattern", "h225.endpointAliasPattern",
10802         FT_UINT32, BASE_DEC, NULL, 0,
10803         "SEQUENCE_OF_AddressPattern", HFILL }},
10804     { &hf_h225_endpointAliasPattern_item,
10805       { "AddressPattern", "h225.AddressPattern",
10806         FT_UINT32, BASE_DEC, VALS(h225_AddressPattern_vals), 0,
10807         NULL, HFILL }},
10808     { &hf_h225_reregistrationRequired,
10809       { "reregistrationRequired", "h225.reregistrationRequired_element",
10810         FT_NONE, BASE_NONE, NULL, 0,
10811         NULL, HFILL }},
10812     { &hf_h225_ttlExpired,
10813       { "ttlExpired", "h225.ttlExpired_element",
10814         FT_NONE, BASE_NONE, NULL, 0,
10815         NULL, HFILL }},
10816     { &hf_h225_maintenance,
10817       { "maintenance", "h225.maintenance_element",
10818         FT_NONE, BASE_NONE, NULL, 0,
10819         NULL, HFILL }},
10820     { &hf_h225_securityError,
10821       { "securityError", "h225.securityError",
10822         FT_UINT32, BASE_DEC, VALS(h225_SecurityErrors2_vals), 0,
10823         "SecurityErrors2", HFILL }},
10824     { &hf_h225_unregRejectReason,
10825       { "rejectReason", "h225.rejectReason",
10826         FT_UINT32, BASE_DEC, VALS(UnregRejectReason_vals), 0,
10827         "UnregRejectReason", HFILL }},
10828     { &hf_h225_notCurrentlyRegistered,
10829       { "notCurrentlyRegistered", "h225.notCurrentlyRegistered_element",
10830         FT_NONE, BASE_NONE, NULL, 0,
10831         NULL, HFILL }},
10832     { &hf_h225_callInProgress,
10833       { "callInProgress", "h225.callInProgress_element",
10834         FT_NONE, BASE_NONE, NULL, 0,
10835         NULL, HFILL }},
10836     { &hf_h225_permissionDenied,
10837       { "permissionDenied", "h225.permissionDenied_element",
10838         FT_NONE, BASE_NONE, NULL, 0,
10839         NULL, HFILL }},
10840     { &hf_h225_callModel,
10841       { "callModel", "h225.callModel",
10842         FT_UINT32, BASE_DEC, VALS(h225_CallModel_vals), 0,
10843         NULL, HFILL }},
10844     { &hf_h225_DestinationInfo_item,
10845       { "DestinationInfo item", "h225.DestinationInfo_item",
10846         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10847         NULL, HFILL }},
10848     { &hf_h225_destinationInfo_01,
10849       { "destinationInfo", "h225.destinationInfo",
10850         FT_UINT32, BASE_DEC, NULL, 0,
10851         NULL, HFILL }},
10852     { &hf_h225_srcInfo,
10853       { "srcInfo", "h225.srcInfo",
10854         FT_UINT32, BASE_DEC, NULL, 0,
10855         "SEQUENCE_OF_AliasAddress", HFILL }},
10856     { &hf_h225_srcInfo_item,
10857       { "AliasAddress", "h225.AliasAddress",
10858         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10859         NULL, HFILL }},
10860     { &hf_h225_srcCallSignalAddress,
10861       { "srcCallSignalAddress", "h225.srcCallSignalAddress",
10862         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
10863         "TransportAddress", HFILL }},
10864     { &hf_h225_bandWidth,
10865       { "bandWidth", "h225.bandWidth",
10866         FT_UINT32, BASE_DEC, NULL, 0,
10867         NULL, HFILL }},
10868     { &hf_h225_callReferenceValue,
10869       { "callReferenceValue", "h225.callReferenceValue",
10870         FT_UINT32, BASE_DEC, NULL, 0,
10871         NULL, HFILL }},
10872     { &hf_h225_canMapAlias,
10873       { "canMapAlias", "h225.canMapAlias",
10874         FT_BOOLEAN, BASE_NONE, NULL, 0,
10875         "BOOLEAN", HFILL }},
10876     { &hf_h225_srcAlternatives,
10877       { "srcAlternatives", "h225.srcAlternatives",
10878         FT_UINT32, BASE_DEC, NULL, 0,
10879         "SEQUENCE_OF_Endpoint", HFILL }},
10880     { &hf_h225_srcAlternatives_item,
10881       { "Endpoint", "h225.Endpoint_element",
10882         FT_NONE, BASE_NONE, NULL, 0,
10883         NULL, HFILL }},
10884     { &hf_h225_destAlternatives,
10885       { "destAlternatives", "h225.destAlternatives",
10886         FT_UINT32, BASE_DEC, NULL, 0,
10887         "SEQUENCE_OF_Endpoint", HFILL }},
10888     { &hf_h225_destAlternatives_item,
10889       { "Endpoint", "h225.Endpoint_element",
10890         FT_NONE, BASE_NONE, NULL, 0,
10891         NULL, HFILL }},
10892     { &hf_h225_gatewayDataRate,
10893       { "gatewayDataRate", "h225.gatewayDataRate_element",
10894         FT_NONE, BASE_NONE, NULL, 0,
10895         "DataRate", HFILL }},
10896     { &hf_h225_desiredTunnelledProtocol,
10897       { "desiredTunnelledProtocol", "h225.desiredTunnelledProtocol_element",
10898         FT_NONE, BASE_NONE, NULL, 0,
10899         "TunnelledProtocol", HFILL }},
10900     { &hf_h225_canMapSrcAlias,
10901       { "canMapSrcAlias", "h225.canMapSrcAlias",
10902         FT_BOOLEAN, BASE_NONE, NULL, 0,
10903         "BOOLEAN", HFILL }},
10904     { &hf_h225_pointToPoint,
10905       { "pointToPoint", "h225.pointToPoint_element",
10906         FT_NONE, BASE_NONE, NULL, 0,
10907         NULL, HFILL }},
10908     { &hf_h225_oneToN,
10909       { "oneToN", "h225.oneToN_element",
10910         FT_NONE, BASE_NONE, NULL, 0,
10911         NULL, HFILL }},
10912     { &hf_h225_nToOne,
10913       { "nToOne", "h225.nToOne_element",
10914         FT_NONE, BASE_NONE, NULL, 0,
10915         NULL, HFILL }},
10916     { &hf_h225_nToN,
10917       { "nToN", "h225.nToN_element",
10918         FT_NONE, BASE_NONE, NULL, 0,
10919         NULL, HFILL }},
10920     { &hf_h225_direct,
10921       { "direct", "h225.direct_element",
10922         FT_NONE, BASE_NONE, NULL, 0,
10923         NULL, HFILL }},
10924     { &hf_h225_gatekeeperRouted,
10925       { "gatekeeperRouted", "h225.gatekeeperRouted_element",
10926         FT_NONE, BASE_NONE, NULL, 0,
10927         NULL, HFILL }},
10928     { &hf_h225_endpointControlled,
10929       { "endpointControlled", "h225.endpointControlled_element",
10930         FT_NONE, BASE_NONE, NULL, 0,
10931         NULL, HFILL }},
10932     { &hf_h225_gatekeeperControlled,
10933       { "gatekeeperControlled", "h225.gatekeeperControlled_element",
10934         FT_NONE, BASE_NONE, NULL, 0,
10935         NULL, HFILL }},
10936     { &hf_h225_noControl,
10937       { "noControl", "h225.noControl_element",
10938         FT_NONE, BASE_NONE, NULL, 0,
10939         NULL, HFILL }},
10940     { &hf_h225_qOSCapabilities,
10941       { "qOSCapabilities", "h225.qOSCapabilities",
10942         FT_UINT32, BASE_DEC, NULL, 0,
10943         "SEQUENCE_SIZE_1_256_OF_QOSCapability", HFILL }},
10944     { &hf_h225_qOSCapabilities_item,
10945       { "QOSCapability", "h225.QOSCapability_element",
10946         FT_NONE, BASE_NONE, NULL, 0,
10947         NULL, HFILL }},
10948     { &hf_h225_irrFrequency,
10949       { "irrFrequency", "h225.irrFrequency",
10950         FT_UINT32, BASE_DEC, NULL, 0,
10951         "INTEGER_1_65535", HFILL }},
10952     { &hf_h225_destinationType,
10953       { "destinationType", "h225.destinationType_element",
10954         FT_NONE, BASE_NONE, NULL, 0,
10955         "EndpointType", HFILL }},
10956     { &hf_h225_uuiesRequested,
10957       { "uuiesRequested", "h225.uuiesRequested_element",
10958         FT_NONE, BASE_NONE, NULL, 0,
10959         NULL, HFILL }},
10960     { &hf_h225_supportedProtocols,
10961       { "supportedProtocols", "h225.supportedProtocols",
10962         FT_UINT32, BASE_DEC, NULL, 0,
10963         "SEQUENCE_OF_SupportedProtocols", HFILL }},
10964     { &hf_h225_supportedProtocols_item,
10965       { "SupportedProtocols", "h225.SupportedProtocols",
10966         FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
10967         NULL, HFILL }},
10968     { &hf_h225_modifiedSrcInfo,
10969       { "modifiedSrcInfo", "h225.modifiedSrcInfo",
10970         FT_UINT32, BASE_DEC, NULL, 0,
10971         "SEQUENCE_OF_AliasAddress", HFILL }},
10972     { &hf_h225_modifiedSrcInfo_item,
10973       { "AliasAddress", "h225.AliasAddress",
10974         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
10975         NULL, HFILL }},
10976     { &hf_h225_setup_bool,
10977       { "setup", "h225.setup",
10978         FT_BOOLEAN, BASE_NONE, NULL, 0,
10979         "BOOLEAN", HFILL }},
10980     { &hf_h225_callProceeding_flg,
10981       { "callProceeding", "h225.callProceeding",
10982         FT_BOOLEAN, BASE_NONE, NULL, 0,
10983         "BOOLEAN", HFILL }},
10984     { &hf_h225_connect_bool,
10985       { "connect", "h225.connect",
10986         FT_BOOLEAN, BASE_NONE, NULL, 0,
10987         "BOOLEAN", HFILL }},
10988     { &hf_h225_alerting_bool,
10989       { "alerting", "h225.alerting",
10990         FT_BOOLEAN, BASE_NONE, NULL, 0,
10991         "BOOLEAN", HFILL }},
10992     { &hf_h225_information_bool,
10993       { "information", "h225.information",
10994         FT_BOOLEAN, BASE_NONE, NULL, 0,
10995         "BOOLEAN", HFILL }},
10996     { &hf_h225_releaseComplete_bool,
10997       { "releaseComplete", "h225.releaseComplete",
10998         FT_BOOLEAN, BASE_NONE, NULL, 0,
10999         "BOOLEAN", HFILL }},
11000     { &hf_h225_facility_bool,
11001       { "facility", "h225.facility",
11002         FT_BOOLEAN, BASE_NONE, NULL, 0,
11003         "BOOLEAN", HFILL }},
11004     { &hf_h225_progress_bool,
11005       { "progress", "h225.progress",
11006         FT_BOOLEAN, BASE_NONE, NULL, 0,
11007         "BOOLEAN", HFILL }},
11008     { &hf_h225_empty,
11009       { "empty", "h225.empty",
11010         FT_BOOLEAN, BASE_NONE, NULL, 0,
11011         "BOOLEAN", HFILL }},
11012     { &hf_h225_status_bool,
11013       { "status", "h225.status",
11014         FT_BOOLEAN, BASE_NONE, NULL, 0,
11015         "BOOLEAN", HFILL }},
11016     { &hf_h225_statusInquiry_bool,
11017       { "statusInquiry", "h225.statusInquiry",
11018         FT_BOOLEAN, BASE_NONE, NULL, 0,
11019         "BOOLEAN", HFILL }},
11020     { &hf_h225_setupAcknowledge_bool,
11021       { "setupAcknowledge", "h225.setupAcknowledge",
11022         FT_BOOLEAN, BASE_NONE, NULL, 0,
11023         "BOOLEAN", HFILL }},
11024     { &hf_h225_notify_bool,
11025       { "notify", "h225.notify",
11026         FT_BOOLEAN, BASE_NONE, NULL, 0,
11027         "BOOLEAN", HFILL }},
11028     { &hf_h225_rejectReason,
11029       { "rejectReason", "h225.rejectReason",
11030         FT_UINT32, BASE_DEC, VALS(AdmissionRejectReason_vals), 0,
11031         "AdmissionRejectReason", HFILL }},
11032     { &hf_h225_invalidPermission,
11033       { "invalidPermission", "h225.invalidPermission_element",
11034         FT_NONE, BASE_NONE, NULL, 0,
11035         NULL, HFILL }},
11036     { &hf_h225_requestDenied,
11037       { "requestDenied", "h225.requestDenied_element",
11038         FT_NONE, BASE_NONE, NULL, 0,
11039         NULL, HFILL }},
11040     { &hf_h225_invalidEndpointIdentifier,
11041       { "invalidEndpointIdentifier", "h225.invalidEndpointIdentifier_element",
11042         FT_NONE, BASE_NONE, NULL, 0,
11043         NULL, HFILL }},
11044     { &hf_h225_qosControlNotSupported,
11045       { "qosControlNotSupported", "h225.qosControlNotSupported_element",
11046         FT_NONE, BASE_NONE, NULL, 0,
11047         NULL, HFILL }},
11048     { &hf_h225_incompleteAddress,
11049       { "incompleteAddress", "h225.incompleteAddress_element",
11050         FT_NONE, BASE_NONE, NULL, 0,
11051         NULL, HFILL }},
11052     { &hf_h225_aliasesInconsistent,
11053       { "aliasesInconsistent", "h225.aliasesInconsistent_element",
11054         FT_NONE, BASE_NONE, NULL, 0,
11055         NULL, HFILL }},
11056     { &hf_h225_routeCallToSCN,
11057       { "routeCallToSCN", "h225.routeCallToSCN",
11058         FT_UINT32, BASE_DEC, NULL, 0,
11059         "SEQUENCE_OF_PartyNumber", HFILL }},
11060     { &hf_h225_routeCallToSCN_item,
11061       { "PartyNumber", "h225.PartyNumber",
11062         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11063         NULL, HFILL }},
11064     { &hf_h225_exceedsCallCapacity,
11065       { "exceedsCallCapacity", "h225.exceedsCallCapacity_element",
11066         FT_NONE, BASE_NONE, NULL, 0,
11067         NULL, HFILL }},
11068     { &hf_h225_collectDestination,
11069       { "collectDestination", "h225.collectDestination_element",
11070         FT_NONE, BASE_NONE, NULL, 0,
11071         NULL, HFILL }},
11072     { &hf_h225_collectPIN,
11073       { "collectPIN", "h225.collectPIN_element",
11074         FT_NONE, BASE_NONE, NULL, 0,
11075         NULL, HFILL }},
11076     { &hf_h225_noRouteToDestination,
11077       { "noRouteToDestination", "h225.noRouteToDestination_element",
11078         FT_NONE, BASE_NONE, NULL, 0,
11079         NULL, HFILL }},
11080     { &hf_h225_unallocatedNumber,
11081       { "unallocatedNumber", "h225.unallocatedNumber_element",
11082         FT_NONE, BASE_NONE, NULL, 0,
11083         NULL, HFILL }},
11084     { &hf_h225_answeredCall,
11085       { "answeredCall", "h225.answeredCall",
11086         FT_BOOLEAN, BASE_NONE, NULL, 0,
11087         "BOOLEAN", HFILL }},
11088     { &hf_h225_usageInformation,
11089       { "usageInformation", "h225.usageInformation_element",
11090         FT_NONE, BASE_NONE, NULL, 0,
11091         "RasUsageInformation", HFILL }},
11092     { &hf_h225_bandwidthDetails,
11093       { "bandwidthDetails", "h225.bandwidthDetails",
11094         FT_UINT32, BASE_DEC, NULL, 0,
11095         "SEQUENCE_OF_BandwidthDetails", HFILL }},
11096     { &hf_h225_bandwidthDetails_item,
11097       { "BandwidthDetails", "h225.BandwidthDetails_element",
11098         FT_NONE, BASE_NONE, NULL, 0,
11099         NULL, HFILL }},
11100     { &hf_h225_bandRejectReason,
11101       { "rejectReason", "h225.rejectReason",
11102         FT_UINT32, BASE_DEC, VALS(BandRejectReason_vals), 0,
11103         "BandRejectReason", HFILL }},
11104     { &hf_h225_allowedBandWidth,
11105       { "allowedBandWidth", "h225.allowedBandWidth",
11106         FT_UINT32, BASE_DEC, NULL, 0,
11107         "BandWidth", HFILL }},
11108     { &hf_h225_notBound,
11109       { "notBound", "h225.notBound_element",
11110         FT_NONE, BASE_NONE, NULL, 0,
11111         NULL, HFILL }},
11112     { &hf_h225_invalidConferenceID,
11113       { "invalidConferenceID", "h225.invalidConferenceID_element",
11114         FT_NONE, BASE_NONE, NULL, 0,
11115         NULL, HFILL }},
11116     { &hf_h225_insufficientResources,
11117       { "insufficientResources", "h225.insufficientResources_element",
11118         FT_NONE, BASE_NONE, NULL, 0,
11119         NULL, HFILL }},
11120     { &hf_h225_replyAddress,
11121       { "replyAddress", "h225.replyAddress",
11122         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11123         "TransportAddress", HFILL }},
11124     { &hf_h225_sourceInfo,
11125       { "sourceInfo", "h225.sourceInfo",
11126         FT_UINT32, BASE_DEC, NULL, 0,
11127         "SEQUENCE_OF_AliasAddress", HFILL }},
11128     { &hf_h225_sourceInfo_item,
11129       { "AliasAddress", "h225.AliasAddress",
11130         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11131         NULL, HFILL }},
11132     { &hf_h225_hopCount,
11133       { "hopCount", "h225.hopCount",
11134         FT_UINT32, BASE_DEC, NULL, 0,
11135         "INTEGER_1_255", HFILL }},
11136     { &hf_h225_sourceEndpointInfo,
11137       { "sourceEndpointInfo", "h225.sourceEndpointInfo",
11138         FT_UINT32, BASE_DEC, NULL, 0,
11139         "SEQUENCE_OF_AliasAddress", HFILL }},
11140     { &hf_h225_sourceEndpointInfo_item,
11141       { "AliasAddress", "h225.AliasAddress",
11142         FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
11143         NULL, HFILL }},
11144     { &hf_h225_locationConfirm_callSignalAddress,
11145       { "callSignalAddress", "h225.callSignalAddress",
11146         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11147         "TransportAddress", HFILL }},
11148     { &hf_h225_locationConfirm_rasAddress,
11149       { "rasAddress", "h225.rasAddress",
11150         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11151         "TransportAddress", HFILL }},
11152     { &hf_h225_locationRejectReason,
11153       { "rejectReason", "h225.rejectReason",
11154         FT_UINT32, BASE_DEC, VALS(LocationRejectReason_vals), 0,
11155         "LocationRejectReason", HFILL }},
11156     { &hf_h225_notRegistered,
11157       { "notRegistered", "h225.notRegistered_element",
11158         FT_NONE, BASE_NONE, NULL, 0,
11159         NULL, HFILL }},
11160     { &hf_h225_routeCalltoSCN,
11161       { "routeCalltoSCN", "h225.routeCalltoSCN",
11162         FT_UINT32, BASE_DEC, NULL, 0,
11163         "SEQUENCE_OF_PartyNumber", HFILL }},
11164     { &hf_h225_routeCalltoSCN_item,
11165       { "PartyNumber", "h225.PartyNumber",
11166         FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
11167         NULL, HFILL }},
11168     { &hf_h225_disengageReason,
11169       { "disengageReason", "h225.disengageReason",
11170         FT_UINT32, BASE_DEC, VALS(DisengageReason_vals), 0,
11171         NULL, HFILL }},
11172     { &hf_h225_terminationCause,
11173       { "terminationCause", "h225.terminationCause",
11174         FT_UINT32, BASE_DEC, VALS(h225_CallTerminationCause_vals), 0,
11175         "CallTerminationCause", HFILL }},
11176     { &hf_h225_forcedDrop,
11177       { "forcedDrop", "h225.forcedDrop_element",
11178         FT_NONE, BASE_NONE, NULL, 0,
11179         NULL, HFILL }},
11180     { &hf_h225_normalDrop,
11181       { "normalDrop", "h225.normalDrop_element",
11182         FT_NONE, BASE_NONE, NULL, 0,
11183         NULL, HFILL }},
11184     { &hf_h225_disengageRejectReason,
11185       { "rejectReason", "h225.rejectReason",
11186         FT_UINT32, BASE_DEC, VALS(DisengageRejectReason_vals), 0,
11187         "DisengageRejectReason", HFILL }},
11188     { &hf_h225_requestToDropOther,
11189       { "requestToDropOther", "h225.requestToDropOther_element",
11190         FT_NONE, BASE_NONE, NULL, 0,
11191         NULL, HFILL }},
11192     { &hf_h225_usageInfoRequested,
11193       { "usageInfoRequested", "h225.usageInfoRequested_element",
11194         FT_NONE, BASE_NONE, NULL, 0,
11195         "RasUsageInfoTypes", HFILL }},
11196     { &hf_h225_segmentedResponseSupported,
11197       { "segmentedResponseSupported", "h225.segmentedResponseSupported_element",
11198         FT_NONE, BASE_NONE, NULL, 0,
11199         NULL, HFILL }},
11200     { &hf_h225_nextSegmentRequested,
11201       { "nextSegmentRequested", "h225.nextSegmentRequested",
11202         FT_UINT32, BASE_DEC, NULL, 0,
11203         "INTEGER_0_65535", HFILL }},
11204     { &hf_h225_capacityInfoRequested,
11205       { "capacityInfoRequested", "h225.capacityInfoRequested_element",
11206         FT_NONE, BASE_NONE, NULL, 0,
11207         NULL, HFILL }},
11208     { &hf_h225_infoRequestResponse_rasAddress,
11209       { "rasAddress", "h225.rasAddress",
11210         FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
11211         "TransportAddress", HFILL }},
11212     { &hf_h225_perCallInfo,
11213       { "perCallInfo", "h225.perCallInfo",
11214         FT_UINT32, BASE_DEC, NULL, 0,
11215         NULL, HFILL }},
11216     { &hf_h225_perCallInfo_item,
11217       { "perCallInfo item", "h225.perCallInfo_item_element",
11218         FT_NONE, BASE_NONE, NULL, 0,
11219         NULL, HFILL }},
11220     { &hf_h225_originator,
11221       { "originator", "h225.originator",
11222         FT_BOOLEAN, BASE_NONE, NULL, 0,
11223         "BOOLEAN", HFILL }},
11224     { &hf_h225_audio,
11225       { "audio", "h225.audio",
11226         FT_UINT32, BASE_DEC, NULL, 0,
11227         "SEQUENCE_OF_RTPSession", HFILL }},
11228     { &hf_h225_audio_item,
11229       { "RTPSession", "h225.RTPSession_element",
11230         FT_NONE, BASE_NONE, NULL, 0,
11231         NULL, HFILL }},
11232     { &hf_h225_video,
11233       { "video", "h225.video",
11234         FT_UINT32, BASE_DEC, NULL, 0,
11235         "SEQUENCE_OF_RTPSession", HFILL }},
11236     { &hf_h225_video_item,
11237       { "RTPSession", "h225.RTPSession_element",
11238         FT_NONE, BASE_NONE, NULL, 0,
11239         NULL, HFILL }},
11240     { &hf_h225_data,
11241       { "data", "h225.data",
11242         FT_UINT32, BASE_DEC, NULL, 0,
11243         "SEQUENCE_OF_TransportChannelInfo", HFILL }},
11244     { &hf_h225_data_item,
11245       { "TransportChannelInfo", "h225.TransportChannelInfo_element",
11246         FT_NONE, BASE_NONE, NULL, 0,
11247         NULL, HFILL }},
11248     { &hf_h225_h245,
11249       { "h245", "h225.h245_element",
11250         FT_NONE, BASE_NONE, NULL, 0,
11251         "TransportChannelInfo", HFILL }},
11252     { &hf_h225_callSignalling,
11253       { "callSignalling", "h225.callSignalling_element",
11254         FT_NONE, BASE_NONE, NULL, 0,
11255         "TransportChannelInfo", HFILL }},
11256     { &hf_h225_substituteConfIDs,
11257       { "substituteConfIDs", "h225.substituteConfIDs",
11258         FT_UINT32, BASE_DEC, NULL, 0,
11259         "SEQUENCE_OF_ConferenceIdentifier", HFILL }},
11260     { &hf_h225_substituteConfIDs_item,
11261       { "ConferenceIdentifier", "h225.ConferenceIdentifier",
11262         FT_GUID, BASE_NONE, NULL, 0,
11263         NULL, HFILL }},
11264     { &hf_h225_pdu,
11265       { "pdu", "h225.pdu",
11266         FT_UINT32, BASE_DEC, NULL, 0,
11267         NULL, HFILL }},
11268     { &hf_h225_pdu_item,
11269       { "pdu item", "h225.pdu_item_element",
11270         FT_NONE, BASE_NONE, NULL, 0,
11271         NULL, HFILL }},
11272     { &hf_h225_h323pdu,
11273       { "h323pdu", "h225.h323pdu_element",
11274         FT_NONE, BASE_NONE, NULL, 0,
11275         "H323_UU_PDU", HFILL }},
11276     { &hf_h225_sent,
11277       { "sent", "h225.sent",
11278         FT_BOOLEAN, BASE_NONE, NULL, 0,
11279         "BOOLEAN", HFILL }},
11280     { &hf_h225_needResponse,
11281       { "needResponse", "h225.needResponse",
11282         FT_BOOLEAN, BASE_NONE, NULL, 0,
11283         "BOOLEAN", HFILL }},
11284     { &hf_h225_irrStatus,
11285       { "irrStatus", "h225.irrStatus",
11286         FT_UINT32, BASE_DEC, VALS(h225_InfoRequestResponseStatus_vals), 0,
11287         "InfoRequestResponseStatus", HFILL }},
11288     { &hf_h225_unsolicited,
11289       { "unsolicited", "h225.unsolicited",
11290         FT_BOOLEAN, BASE_NONE, NULL, 0,
11291         "BOOLEAN", HFILL }},
11292     { &hf_h225_complete,
11293       { "complete", "h225.complete_element",
11294         FT_NONE, BASE_NONE, NULL, 0,
11295         NULL, HFILL }},
11296     { &hf_h225_incomplete,
11297       { "incomplete", "h225.incomplete_element",
11298         FT_NONE, BASE_NONE, NULL, 0,
11299         NULL, HFILL }},
11300     { &hf_h225_segment,
11301       { "segment", "h225.segment",
11302         FT_UINT32, BASE_DEC, NULL, 0,
11303         "INTEGER_0_65535", HFILL }},
11304     { &hf_h225_invalidCall,
11305       { "invalidCall", "h225.invalidCall_element",
11306         FT_NONE, BASE_NONE, NULL, 0,
11307         NULL, HFILL }},
11308     { &hf_h225_nakReason,
11309       { "nakReason", "h225.nakReason",
11310         FT_UINT32, BASE_DEC, VALS(InfoRequestNakReason_vals), 0,
11311         "InfoRequestNakReason", HFILL }},
11312     { &hf_h225_messageNotUnderstood,
11313       { "messageNotUnderstood", "h225.messageNotUnderstood",
11314         FT_BYTES, BASE_NONE, NULL, 0,
11315         "OCTET_STRING", HFILL }},
11316     { &hf_h225_delay,
11317       { "delay", "h225.delay",
11318         FT_UINT32, BASE_DEC, NULL, 0,
11319         "INTEGER_1_65535", HFILL }},
11320     { &hf_h225_protocols,
11321       { "protocols", "h225.protocols",
11322         FT_UINT32, BASE_DEC, NULL, 0,
11323         "SEQUENCE_OF_SupportedProtocols", HFILL }},
11324     { &hf_h225_protocols_item,
11325       { "SupportedProtocols", "h225.SupportedProtocols",
11326         FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
11327         NULL, HFILL }},
11328     { &hf_h225_almostOutOfResources,
11329       { "almostOutOfResources", "h225.almostOutOfResources",
11330         FT_BOOLEAN, BASE_NONE, NULL, 0,
11331         "BOOLEAN", HFILL }},
11332     { &hf_h225_callSpecific,
11333       { "callSpecific", "h225.callSpecific_element",
11334         FT_NONE, BASE_NONE, NULL, 0,
11335         NULL, HFILL }},
11336     { &hf_h225_result,
11337       { "result", "h225.result",
11338         FT_UINT32, BASE_DEC, VALS(h225_T_result_vals), 0,
11339         NULL, HFILL }},
11340     { &hf_h225_started,
11341       { "started", "h225.started_element",
11342         FT_NONE, BASE_NONE, NULL, 0,
11343         NULL, HFILL }},
11344     { &hf_h225_failed,
11345       { "failed", "h225.failed_element",
11346         FT_NONE, BASE_NONE, NULL, 0,
11347         NULL, HFILL }},
11348     { &hf_h225_stopped,
11349       { "stopped", "h225.stopped_element",
11350         FT_NONE, BASE_NONE, NULL, 0,
11351         NULL, HFILL }},
11352     { &hf_h225_notAvailable,
11353       { "notAvailable", "h225.notAvailable_element",
11354         FT_NONE, BASE_NONE, NULL, 0,
11355         NULL, HFILL }},
11356
11357 /*--- End of included file: packet-h225-hfarr.c ---*/
11358 #line 852 "../../asn1/h225/packet-h225-template.c"
11359   };
11360
11361   /* List of subtrees */
11362   static gint *ett[] = {
11363     &ett_h225,
11364
11365 /*--- Included file: packet-h225-ettarr.c ---*/
11366 #line 1 "../../asn1/h225/packet-h225-ettarr.c"
11367     &ett_h225_H323_UserInformation,
11368     &ett_h225_T_user_data,
11369     &ett_h225_H323_UU_PDU,
11370     &ett_h225_T_h323_message_body,
11371     &ett_h225_T_h4501SupplementaryService,
11372     &ett_h225_H245Control,
11373     &ett_h225_SEQUENCE_OF_NonStandardParameter,
11374     &ett_h225_T_tunnelledSignallingMessage,
11375     &ett_h225_T_messageContent,
11376     &ett_h225_SEQUENCE_OF_GenericData,
11377     &ett_h225_StimulusControl,
11378     &ett_h225_Alerting_UUIE,
11379     &ett_h225_SEQUENCE_OF_ClearToken,
11380     &ett_h225_SEQUENCE_OF_CryptoH323Token,
11381     &ett_h225_SEQUENCE_OF_AliasAddress,
11382     &ett_h225_SEQUENCE_OF_ServiceControlSession,
11383     &ett_h225_SEQUENCE_OF_DisplayName,
11384     &ett_h225_CallProceeding_UUIE,
11385     &ett_h225_Connect_UUIE,
11386     &ett_h225_Information_UUIE,
11387     &ett_h225_ReleaseComplete_UUIE,
11388     &ett_h225_ReleaseCompleteReason,
11389     &ett_h225_Setup_UUIE,
11390     &ett_h225_SEQUENCE_OF_CallReferenceValue,
11391     &ett_h225_T_conferenceGoal,
11392     &ett_h225_SEQUENCE_OF_H245Security,
11393     &ett_h225_FastStart,
11394     &ett_h225_T_connectionParameters,
11395     &ett_h225_Language,
11396     &ett_h225_SEQUENCE_OF_SupportedProtocols,
11397     &ett_h225_SEQUENCE_OF_FeatureDescriptor,
11398     &ett_h225_ParallelH245Control,
11399     &ett_h225_SEQUENCE_OF_ExtendedAliasAddress,
11400     &ett_h225_ScnConnectionType,
11401     &ett_h225_ScnConnectionAggregation,
11402     &ett_h225_PresentationIndicator,
11403     &ett_h225_Facility_UUIE,
11404     &ett_h225_SEQUENCE_OF_ConferenceList,
11405     &ett_h225_ConferenceList,
11406     &ett_h225_FacilityReason,
11407     &ett_h225_Progress_UUIE,
11408     &ett_h225_TransportAddress,
11409     &ett_h225_H245TransportAddress,
11410     &ett_h225_T_h245IpAddress,
11411     &ett_h225_T_h245IpSourceRoute,
11412     &ett_h225_T_h245Route,
11413     &ett_h225_T_h245Routing,
11414     &ett_h225_T_h245IpxAddress,
11415     &ett_h225_T_h245Ip6Address,
11416     &ett_h225_T_ipAddress,
11417     &ett_h225_T_ipSourceRoute,
11418     &ett_h225_T_route,
11419     &ett_h225_T_routing,
11420     &ett_h225_T_ipxAddress,
11421     &ett_h225_T_ip6Address,
11422     &ett_h225_Status_UUIE,
11423     &ett_h225_StatusInquiry_UUIE,
11424     &ett_h225_SetupAcknowledge_UUIE,
11425     &ett_h225_Notify_UUIE,
11426     &ett_h225_EndpointType,
11427     &ett_h225_SEQUENCE_OF_TunnelledProtocol,
11428     &ett_h225_GatewayInfo,
11429     &ett_h225_SupportedProtocols,
11430     &ett_h225_H310Caps,
11431     &ett_h225_SEQUENCE_OF_DataRate,
11432     &ett_h225_SEQUENCE_OF_SupportedPrefix,
11433     &ett_h225_H320Caps,
11434     &ett_h225_H321Caps,
11435     &ett_h225_H322Caps,
11436     &ett_h225_H323Caps,
11437     &ett_h225_H324Caps,
11438     &ett_h225_VoiceCaps,
11439     &ett_h225_T120OnlyCaps,
11440     &ett_h225_NonStandardProtocol,
11441     &ett_h225_T38FaxAnnexbOnlyCaps,
11442     &ett_h225_SIPCaps,
11443     &ett_h225_McuInfo,
11444     &ett_h225_TerminalInfo,
11445     &ett_h225_GatekeeperInfo,
11446     &ett_h225_VendorIdentifier,
11447     &ett_h225_H221NonStandard,
11448     &ett_h225_TunnelledProtocol,
11449     &ett_h225_TunnelledProtocol_id,
11450     &ett_h225_TunnelledProtocolAlternateIdentifier,
11451     &ett_h225_NonStandardParameter,
11452     &ett_h225_NonStandardIdentifier,
11453     &ett_h225_AliasAddress,
11454     &ett_h225_AddressPattern,
11455     &ett_h225_T_range,
11456     &ett_h225_PartyNumber,
11457     &ett_h225_PublicPartyNumber,
11458     &ett_h225_PrivatePartyNumber,
11459     &ett_h225_DisplayName,
11460     &ett_h225_PublicTypeOfNumber,
11461     &ett_h225_PrivateTypeOfNumber,
11462     &ett_h225_MobileUIM,
11463     &ett_h225_ANSI_41_UIM,
11464     &ett_h225_T_system_id,
11465     &ett_h225_GSM_UIM,
11466     &ett_h225_IsupNumber,
11467     &ett_h225_IsupPublicPartyNumber,
11468     &ett_h225_IsupPrivatePartyNumber,
11469     &ett_h225_NatureOfAddress,
11470     &ett_h225_ExtendedAliasAddress,
11471     &ett_h225_Endpoint,
11472     &ett_h225_SEQUENCE_OF_TransportAddress,
11473     &ett_h225_AlternateTransportAddresses,
11474     &ett_h225_UseSpecifiedTransport,
11475     &ett_h225_AlternateGK,
11476     &ett_h225_AltGKInfo,
11477     &ett_h225_SEQUENCE_OF_AlternateGK,
11478     &ett_h225_SecurityServiceMode,
11479     &ett_h225_SecurityCapabilities,
11480     &ett_h225_SecurityErrors,
11481     &ett_h225_SecurityErrors2,
11482     &ett_h225_H245Security,
11483     &ett_h225_QseriesOptions,
11484     &ett_h225_Q954Details,
11485     &ett_h225_CallIdentifier,
11486     &ett_h225_EncryptIntAlg,
11487     &ett_h225_NonIsoIntegrityMechanism,
11488     &ett_h225_IntegrityMechanism,
11489     &ett_h225_ICV,
11490     &ett_h225_CryptoH323Token,
11491     &ett_h225_T_cryptoEPPwdHash,
11492     &ett_h225_T_cryptoGKPwdHash,
11493     &ett_h225_DataRate,
11494     &ett_h225_CallLinkage,
11495     &ett_h225_SupportedPrefix,
11496     &ett_h225_CapacityReportingCapability,
11497     &ett_h225_CapacityReportingSpecification,
11498     &ett_h225_CapacityReportingSpecification_when,
11499     &ett_h225_CallCapacity,
11500     &ett_h225_CallCapacityInfo,
11501     &ett_h225_SEQUENCE_OF_CallsAvailable,
11502     &ett_h225_CallsAvailable,
11503     &ett_h225_CircuitInfo,
11504     &ett_h225_CircuitIdentifier,
11505     &ett_h225_CicInfo,
11506     &ett_h225_T_cic_2_4,
11507     &ett_h225_GroupID,
11508     &ett_h225_T_member,
11509     &ett_h225_CarrierInfo,
11510     &ett_h225_ServiceControlDescriptor,
11511     &ett_h225_ServiceControlSession,
11512     &ett_h225_ServiceControlSession_reason,
11513     &ett_h225_RasUsageInfoTypes,
11514     &ett_h225_RasUsageSpecification,
11515     &ett_h225_RasUsageSpecification_when,
11516     &ett_h225_RasUsageSpecificationcallStartingPoint,
11517     &ett_h225_RasUsageInformation,
11518     &ett_h225_CallTerminationCause,
11519     &ett_h225_BandwidthDetails,
11520     &ett_h225_CallCreditCapability,
11521     &ett_h225_CallCreditServiceControl,
11522     &ett_h225_T_billingMode,
11523     &ett_h225_CallCreditServiceControl_callStartingPoint,
11524     &ett_h225_GenericData,
11525     &ett_h225_SEQUENCE_SIZE_1_512_OF_EnumeratedParameter,
11526     &ett_h225_GenericIdentifier,
11527     &ett_h225_EnumeratedParameter,
11528     &ett_h225_Content,
11529     &ett_h225_SEQUENCE_SIZE_1_16_OF_GenericData,
11530     &ett_h225_FeatureSet,
11531     &ett_h225_TransportChannelInfo,
11532     &ett_h225_RTPSession,
11533     &ett_h225_T_associatedSessionIds,
11534     &ett_h225_RehomingModel,
11535     &ett_h225_RasMessage,
11536     &ett_h225_SEQUENCE_OF_AdmissionConfirm,
11537     &ett_h225_GatekeeperRequest,
11538     &ett_h225_SEQUENCE_OF_Endpoint,
11539     &ett_h225_SEQUENCE_OF_AuthenticationMechanism,
11540     &ett_h225_T_algorithmOIDs,
11541     &ett_h225_SEQUENCE_OF_IntegrityMechanism,
11542     &ett_h225_GatekeeperConfirm,
11543     &ett_h225_GatekeeperReject,
11544     &ett_h225_GatekeeperRejectReason,
11545     &ett_h225_RegistrationRequest,
11546     &ett_h225_SEQUENCE_OF_AddressPattern,
11547     &ett_h225_SEQUENCE_OF_H248PackagesDescriptor,
11548     &ett_h225_RegistrationConfirm,
11549     &ett_h225_T_preGrantedARQ,
11550     &ett_h225_SEQUENCE_OF_RasUsageSpecification,
11551     &ett_h225_RegistrationReject,
11552     &ett_h225_RegistrationRejectReason,
11553     &ett_h225_T_invalidTerminalAliases,
11554     &ett_h225_UnregistrationRequest,
11555     &ett_h225_UnregRequestReason,
11556     &ett_h225_UnregistrationConfirm,
11557     &ett_h225_UnregistrationReject,
11558     &ett_h225_UnregRejectReason,
11559     &ett_h225_AdmissionRequest,
11560     &ett_h225_DestinationInfo,
11561     &ett_h225_CallType,
11562     &ett_h225_CallModel,
11563     &ett_h225_TransportQOS,
11564     &ett_h225_SEQUENCE_SIZE_1_256_OF_QOSCapability,
11565     &ett_h225_AdmissionConfirm,
11566     &ett_h225_UUIEsRequested,
11567     &ett_h225_AdmissionReject,
11568     &ett_h225_AdmissionRejectReason,
11569     &ett_h225_SEQUENCE_OF_PartyNumber,
11570     &ett_h225_BandwidthRequest,
11571     &ett_h225_SEQUENCE_OF_BandwidthDetails,
11572     &ett_h225_BandwidthConfirm,
11573     &ett_h225_BandwidthReject,
11574     &ett_h225_BandRejectReason,
11575     &ett_h225_LocationRequest,
11576     &ett_h225_LocationConfirm,
11577     &ett_h225_LocationReject,
11578     &ett_h225_LocationRejectReason,
11579     &ett_h225_DisengageRequest,
11580     &ett_h225_DisengageReason,
11581     &ett_h225_DisengageConfirm,
11582     &ett_h225_DisengageReject,
11583     &ett_h225_DisengageRejectReason,
11584     &ett_h225_InfoRequest,
11585     &ett_h225_InfoRequestResponse,
11586     &ett_h225_T_perCallInfo,
11587     &ett_h225_T_perCallInfo_item,
11588     &ett_h225_SEQUENCE_OF_RTPSession,
11589     &ett_h225_SEQUENCE_OF_TransportChannelInfo,
11590     &ett_h225_SEQUENCE_OF_ConferenceIdentifier,
11591     &ett_h225_T_pdu,
11592     &ett_h225_T_pdu_item,
11593     &ett_h225_InfoRequestResponseStatus,
11594     &ett_h225_InfoRequestAck,
11595     &ett_h225_InfoRequestNak,
11596     &ett_h225_InfoRequestNakReason,
11597     &ett_h225_NonStandardMessage,
11598     &ett_h225_UnknownMessageResponse,
11599     &ett_h225_RequestInProgress,
11600     &ett_h225_ResourcesAvailableIndicate,
11601     &ett_h225_ResourcesAvailableConfirm,
11602     &ett_h225_ServiceControlIndication,
11603     &ett_h225_T_callSpecific,
11604     &ett_h225_ServiceControlResponse,
11605     &ett_h225_T_result,
11606
11607 /*--- End of included file: packet-h225-ettarr.c ---*/
11608 #line 858 "../../asn1/h225/packet-h225-template.c"
11609   };
11610
11611   static tap_param h225_stat_params[] = {
11612     { PARAM_FILTER, "filter", "Filter", NULL, TRUE }
11613   };
11614
11615   static new_stat_tap_ui h225_stat_table = {
11616     REGISTER_STAT_GROUP_TELEPHONY,
11617     "H.225",
11618     PFNAME,
11619     "h225,counter",
11620     h225_stat_init,
11621     h225_stat_packet,
11622     h225_stat_reset,
11623     NULL,
11624     NULL,
11625     sizeof(h225_stat_fields)/sizeof(stat_tap_table_item), h225_stat_fields,
11626     sizeof(h225_stat_params)/sizeof(tap_param), h225_stat_params,
11627     NULL
11628   };
11629
11630   module_t *h225_module;
11631   int proto_h225_ras;
11632
11633   /* Register protocol */
11634   proto_h225 = proto_register_protocol(PNAME, PSNAME, PFNAME);
11635
11636   /* Create a "fake" protocol to get proper display strings for SRT dialogs */
11637   proto_h225_ras = proto_register_protocol("H.225 RAS", "H.225 RAS", "h225_ras");
11638
11639   /* Register fields and subtrees */
11640   proto_register_field_array(proto_h225, hf, array_length(hf));
11641   proto_register_subtree_array(ett, array_length(ett));
11642
11643   h225_module = prefs_register_protocol(proto_h225, proto_reg_handoff_h225);
11644   prefs_register_uint_preference(h225_module, "tls.port",
11645     "H.225 TLS Port",
11646     "H.225 Server TLS Port",
11647     10, &h225_tls_port);
11648   prefs_register_bool_preference(h225_module, "reassembly",
11649     "Reassemble H.225 messages spanning multiple TCP segments",
11650     "Whether the H.225 dissector should reassemble messages spanning multiple TCP segments."
11651     " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
11652     &h225_reassembly);
11653   prefs_register_bool_preference(h225_module, "h245_in_tree",
11654     "Display tunnelled H.245 inside H.225.0 tree",
11655     "ON - display tunnelled H.245 inside H.225.0 tree, OFF - display tunnelled H.245 in root tree after H.225.0",
11656     &h225_h245_in_tree);
11657   prefs_register_bool_preference(h225_module, "tp_in_tree",
11658     "Display tunnelled protocols inside H.225.0 tree",
11659     "ON - display tunnelled protocols inside H.225.0 tree, OFF - display tunnelled protocols in root tree after H.225.0",
11660     &h225_tp_in_tree);
11661
11662   new_register_dissector(PFNAME, dissect_h225_H323UserInformation, proto_h225);
11663   new_register_dissector("h323ui",dissect_h225_H323UserInformation, proto_h225);
11664   new_register_dissector("h225.ras", dissect_h225_h225_RasMessage, proto_h225);
11665
11666   nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.225 NonStandardParameter (object)", FT_STRING, BASE_NONE);
11667   nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.225 NonStandardParameter (h221)", FT_UINT32, BASE_HEX);
11668   tp_dissector_table = register_dissector_table("h225.tp", "H.225 TunnelledProtocol", FT_STRING, BASE_NONE);
11669   gef_name_dissector_table = register_dissector_table("h225.gef.name", "H.225 Generic Extensible Framework (names)", FT_STRING, BASE_NONE);
11670   gef_content_dissector_table = register_dissector_table("h225.gef.content", "H.225 Generic Extensible Framework", FT_STRING, BASE_NONE);
11671
11672   register_init_routine(&h225_init_routine);
11673   register_cleanup_routine(&h225_cleanup_routine);
11674   h225_tap = register_tap(PFNAME);
11675
11676   register_rtd_table(proto_h225_ras, PFNAME, NUM_RAS_STATS, 1, ras_message_category, h225rassrt_packet, NULL);
11677
11678   register_new_stat_tap_ui(&h225_stat_table);
11679
11680   oid_add_from_string("Version 1","0.0.8.2250.0.1");
11681   oid_add_from_string("Version 2","0.0.8.2250.0.2");
11682   oid_add_from_string("Version 3","0.0.8.2250.0.3");
11683   oid_add_from_string("Version 4","0.0.8.2250.0.4");
11684   oid_add_from_string("Version 5","0.0.8.2250.0.5");
11685   oid_add_from_string("Version 6","0.0.8.2250.0.6");
11686 }
11687
11688
11689 /*--- proto_reg_handoff_h225 ---------------------------------------*/
11690 void
11691 proto_reg_handoff_h225(void)
11692 {
11693   static gboolean h225_prefs_initialized = FALSE;
11694   static dissector_handle_t h225ras_handle;
11695   static guint saved_h225_tls_port;
11696
11697   if (!h225_prefs_initialized) {
11698     h225ras_handle=find_dissector("h225.ras");
11699     dissector_add_uint("udp.port", UDP_PORT_RAS1, h225ras_handle);
11700     dissector_add_uint("udp.port", UDP_PORT_RAS2, h225ras_handle);
11701
11702     h245_handle = find_dissector("h245");
11703     h245dg_handle = find_dissector("h245dg");
11704     h4501_handle = find_dissector("h4501");
11705     data_handle = find_dissector("data");
11706     h225_prefs_initialized = TRUE;
11707   } else {
11708     ssl_dissector_delete(saved_h225_tls_port, "q931.tpkt", TRUE);
11709   }
11710
11711   saved_h225_tls_port = h225_tls_port;
11712   ssl_dissector_add(saved_h225_tls_port, "q931.tpkt", TRUE);
11713 }
11714
11715
11716 static void reset_h225_packet_info(h225_packet_info *pi)
11717 {
11718   if(pi == NULL) {
11719     return;
11720   }
11721
11722   pi->msg_type = H225_OTHERS;
11723   pi->cs_type = H225_OTHER;
11724   pi->msg_tag = -1;
11725   pi->reason = -1;
11726   pi->requestSeqNum = 0;
11727   memset(&pi->guid,0,sizeof pi->guid);
11728   pi->is_duplicate = FALSE;
11729   pi->request_available = FALSE;
11730   pi->is_faststart = FALSE;
11731   pi->is_h245 = FALSE;
11732   pi->is_h245Tunneling = FALSE;
11733   pi->h245_address = 0;
11734   pi->h245_port = 0;
11735   pi->frame_label[0] = '\0';
11736   pi->dialedDigits[0] = '\0';
11737   pi->is_destinationInfo = FALSE;
11738 }
11739
11740 /*
11741   The following function contains the routines for RAS request/response matching.
11742   A RAS response matches with a request, if both messages have the same
11743   RequestSequenceNumber, belong to the same IP conversation and belong to the same
11744   RAS "category" (e.g. Admission, Registration).
11745
11746   We use hashtables to access the lists of RAS calls (request/response pairs).
11747   We have one hashtable for each RAS category. The hashkeys consist of the
11748   non-unique 16-bit RequestSequenceNumber and values representing the conversation.
11749
11750   In big capture files, we might get different requests with identical keys.
11751   These requests aren't necessarily duplicates. They might be valid new requests.
11752   At the moment we just use the timedelta between the last valid and the new request
11753   to decide if the new request is a duplicate or not. There might be better ways.
11754   Two thresholds are defined below.
11755
11756   However the decision is made, another problem arises. We can't just add those
11757   requests to our hashtables. Instead we create lists of RAS calls with identical keys.
11758   The hashtables for RAS calls contain now pointers to the first RAS call in a list of
11759   RAS calls with identical keys.
11760   These lists aren't expected to contain more than 3 items and are usually single item
11761   lists. So we don't need an expensive but intelligent way to access these lists
11762   (e.g. hashtables). Just walk through such a list.
11763 */
11764
11765 #define THRESHOLD_REPEATED_RESPONDED_CALL 300
11766 #define THRESHOLD_REPEATED_NOT_RESPONDED_CALL 1800
11767
11768 static void ras_call_matching(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, h225_packet_info *pi)
11769 {
11770   proto_item *hidden_item;
11771   conversation_t* conversation = NULL;
11772   h225ras_call_info_key h225ras_call_key;
11773   h225ras_call_t *h225ras_call = NULL;
11774   nstime_t delta;
11775   guint msg_category;
11776
11777   if(pi->msg_type == H225_RAS && pi->msg_tag < 21) {
11778     /* make RAS request/response matching only for tags from 0 to 20 for now */
11779
11780     msg_category = pi->msg_tag / 3;
11781     if(pi->msg_tag % 3 == 0) {    /* Request Message */
11782       conversation = find_or_create_conversation(pinfo);
11783
11784       /* prepare the key data */
11785       h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11786       h225ras_call_key.conversation = conversation;
11787
11788       /* look up the request */
11789       h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11790
11791       if (h225ras_call != NULL) {
11792         /* We've seen requests with this reqSeqNum, with the same
11793            source and destination, before - do we have
11794            *this* request already? */
11795         /* Walk through list of ras requests with identical keys */
11796         do {
11797           if (pinfo->fd->num == h225ras_call->req_num) {
11798             /* We have seen this request before -> do nothing */
11799             break;
11800           }
11801
11802           /* if end of list is reached, exit loop and decide if request is duplicate or not. */
11803           if (h225ras_call->next_call == NULL) {
11804             if ( (pinfo->fd->num > h225ras_call->rsp_num && h225ras_call->rsp_num != 0
11805                && pinfo->fd->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_RESPONDED_CALL) )
11806                ||(pinfo->fd->num > h225ras_call->req_num && h225ras_call->rsp_num == 0
11807                && pinfo->fd->abs_ts.secs > (h225ras_call->req_time.secs + THRESHOLD_REPEATED_NOT_RESPONDED_CALL) ) )
11808             {
11809               /* if last request has been responded
11810                  and this request appears after last response (has bigger frame number)
11811                  and last request occurred more than 300 seconds ago,
11812                  or if last request hasn't been responded
11813                  and this request appears after last request (has bigger frame number)
11814                  and last request occurred more than 1800 seconds ago,
11815                  we decide that we have a new request */
11816               /* Append new ras call to list */
11817               h225ras_call = append_h225ras_call(h225ras_call, pinfo, &pi->guid, msg_category);
11818             } else {
11819               /* No, so it's a duplicate request.
11820                  Mark it as such. */
11821               pi->is_duplicate = TRUE;
11822               hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11823               PROTO_ITEM_SET_HIDDEN(hidden_item);
11824             }
11825             break;
11826           }
11827           h225ras_call = h225ras_call->next_call;
11828         } while (h225ras_call != NULL );
11829       }
11830       else {
11831         h225ras_call = new_h225ras_call(&h225ras_call_key, pinfo, &pi->guid, msg_category);
11832       }
11833
11834       /* add link to response frame, if available */
11835       if(h225ras_call && h225ras_call->rsp_num != 0){
11836         proto_item *ti =
11837         proto_tree_add_uint_format(tree, hf_h225_ras_rsp_frame, tvb, 0, 0, h225ras_call->rsp_num,
11838                                      "The response to this request is in frame %u",
11839                                      h225ras_call->rsp_num);
11840         PROTO_ITEM_SET_GENERATED(ti);
11841       }
11842
11843     /* end of request message handling*/
11844     }
11845     else {          /* Confirm or Reject Message */
11846       conversation = find_conversation(pinfo->fd->num, &pinfo->src,
11847         &pinfo->dst, pinfo->ptype, pinfo->srcport,
11848         pinfo->destport, 0);
11849       if (conversation != NULL) {
11850         /* look only for matching request, if
11851            matching conversation is available. */
11852         h225ras_call_key.reqSeqNum = pi->requestSeqNum;
11853         h225ras_call_key.conversation = conversation;
11854         h225ras_call = find_h225ras_call(&h225ras_call_key ,msg_category);
11855         if(h225ras_call) {
11856           /* find matching ras_call in list of ras calls with identical keys */
11857           do {
11858             if (pinfo->fd->num == h225ras_call->rsp_num) {
11859               /* We have seen this response before -> stop now with matching ras call */
11860               break;
11861             }
11862
11863             /* Break when list end is reached */
11864             if(h225ras_call->next_call == NULL) {
11865               break;
11866             }
11867             h225ras_call = h225ras_call->next_call;
11868           } while (h225ras_call != NULL) ;
11869
11870           if (!h225ras_call) {
11871             return;
11872           }
11873
11874           /* if this is an ACF, ARJ or DCF, DRJ, give guid to tap and make it filterable */
11875           if (msg_category == 3 || msg_category == 5) {
11876             pi->guid = h225ras_call->guid;
11877             hidden_item = proto_tree_add_guid(tree, hf_h225_guid, tvb, 0, GUID_LEN, &pi->guid);
11878             PROTO_ITEM_SET_HIDDEN(hidden_item);
11879           }
11880
11881           if (h225ras_call->rsp_num == 0) {
11882             /* We have not yet seen a response to that call, so
11883                this must be the first response; remember its
11884                frame number. */
11885             h225ras_call->rsp_num = pinfo->fd->num;
11886           }
11887           else {
11888             /* We have seen a response to this call - but was it
11889                *this* response? */
11890             if (h225ras_call->rsp_num != pinfo->fd->num) {
11891               /* No, so it's a duplicate response.
11892                  Mark it as such. */
11893               pi->is_duplicate = TRUE;
11894               hidden_item = proto_tree_add_uint(tree, hf_h225_ras_dup, tvb, 0,0, pi->requestSeqNum);
11895               PROTO_ITEM_SET_HIDDEN(hidden_item);
11896             }
11897           }
11898
11899           if(h225ras_call->req_num != 0){
11900             proto_item *ti;
11901             h225ras_call->responded = TRUE;
11902             pi->request_available = TRUE;
11903
11904             /* Indicate the frame to which this is a reply. */
11905             ti = proto_tree_add_uint_format(tree, hf_h225_ras_req_frame, tvb, 0, 0, h225ras_call->req_num,
11906               "This is a response to a request in frame %u", h225ras_call->req_num);
11907             PROTO_ITEM_SET_GENERATED(ti);
11908
11909             /* Calculate RAS Service Response Time */
11910             nstime_delta(&delta, &pinfo->fd->abs_ts, &h225ras_call->req_time);
11911             pi->delta_time = delta; /* give it to tap */
11912
11913             /* display Ras Service Response Time and make it filterable */
11914             ti = proto_tree_add_time(tree, hf_h225_ras_deltatime, tvb, 0, 0, &(pi->delta_time));
11915             PROTO_ITEM_SET_GENERATED(ti);
11916           }
11917         }
11918       }
11919     }
11920   }
11921 }
11922
11923 /*
11924  * Editor modelines  -  http://www.wireshark.org/tools/modelines.html
11925  *
11926  * Local Variables:
11927  * c-basic-offset: 2
11928  * tab-width: 8
11929  * indent-tabs-mode: nil
11930  * End:
11931  *
11932  * vi: set shiftwidth=2 tabstop=8 expandtab:
11933  * :indentSize=2:tabSize=8:noTabs=true:
11934  */