#if 0 out the stuff to set the reported length, as it'd throw an
[obnox/wireshark/wip.git] / packet-h225.c
1 /* packet-h225.c
2  * Routines for H.225 packet dissection
3  * 2003  Ronnie Sahlberg
4  *
5  * Maintained by Andreas Sikkema (andreas.sikkema@philips.com)
6  *
7  * $Id: packet-h225.c,v 1.22 2003/10/28 00:31:15 guy Exp $
8  *
9  * Ethereal - Network traffic analyzer
10  * By Gerald Combs <gerald@ethereal.com>
11  * Copyright 1998 Gerald Combs
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software
25  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
26  */
27
28 #ifdef HAVE_CONFIG_H
29 # include "config.h"
30 #endif
31
32 #include <glib.h>
33 #include <epan/packet.h>
34 #include <epan/conversation.h>
35
36 #include <stdio.h>
37 #include <string.h>
38
39 #include "prefs.h"
40 #include "tap.h"
41 #include "packet-tpkt.h"
42 #include "packet-per.h"
43 #include "packet-h225.h"
44 #include "packet-h245.h"
45 #include "t35.h"
46
47 #define UDP_PORT_RAS1 1718
48 #define UDP_PORT_RAS2 1719
49 #define TCP_PORT_CS   1720
50
51 static void reset_h225_packet_info(h225_packet_info *pi);
52
53 static h225_packet_info h225_pi;
54
55 static dissector_handle_t h225ras_handle;
56 static dissector_handle_t H323UserInformation_handle;
57 static dissector_handle_t data_handle;
58
59 static int h225_tap = -1;
60 static int proto_h225 = -1;
61 static int hf_h225_cname = -1;
62 static int hf_h225_route = -1;
63 static int hf_h225_nonStandardUsageTypes = -1;
64 static int hf_h225_nonStandardUsageTypes_item = -1;
65 static int hf_h225_PresentationIndicator = -1;
66 static int hf_h225_conferenceGoal = -1;
67 static int hf_h225_ScnConnectionType = -1;
68 static int hf_h225_ScnConnectionAggregation = -1;
69 static int hf_h225_FacilityReason = -1;
70 static int hf_h225_PublicTypeOfNumber = -1;
71 static int hf_h225_PrivateTypeOfNumber = -1;
72 static int hf_h225_UseSpecifiedTransport = -1;
73 static int hf_h225_SecurityErrors = -1;
74 static int hf_h225_SecurityErrors2 = -1;
75 static int hf_h225_ServiceControlSession_reason = -1;
76 static int hf_h225_billingMode = -1;
77 static int hf_h225_CCSCcallStartingPoint = -1;
78 static int hf_h225_GatekeeperRejectReason = -1;
79 static int hf_h225_UnregRequestReason = -1;
80 static int hf_h225_UnregRejectReason = -1;
81 static int hf_h225_CallType = -1;
82 static int hf_h225_CallModel = -1;
83 static int hf_h225_TransportQOS = -1;
84 static int hf_h225_BandRejectReason = -1;
85 static int hf_h225_DisengageReason = -1;
86 static int hf_h225_DisengageRejectReason = -1;
87 static int hf_h225_InfoRequestNakReason = -1;
88 static int hf_h225_SCRresult = -1;
89 static int hf_h225_GatekeeperInfo = -1;
90 static int hf_h225_SecurityServiceMode_encryption = -1;
91 static int hf_h225_SecurityServiceMode_authentication = -1;
92 static int hf_h225_SecurityServiceMode_integrity = -1;
93 static int hf_h225_SecurityCapabilities_tls = -1;
94 static int hf_h225_SecurityCapabilities_ipsec = -1;
95 static int hf_h225_H245Security = -1;
96 static int hf_h225_RasUsageInfoTypes = -1;
97 static int hf_h225_usageReportingCapability = -1;
98 static int hf_h225_BandWidth = -1;
99 static int hf_h225_channelRate = -1;
100 static int hf_h225_totalBandwidthRestriction = -1;
101 static int hf_h225_allowedBandWidth = -1;
102 static int hf_h225_channelMultiplier = -1;
103 static int hf_h225_DataRate = -1;
104 static int hf_h225_gatewayDataRate = -1;
105 static int hf_h225_dataRatesSupported = -1;
106 static int hf_h225_TerminalInfo = -1;
107 static int hf_h225_h248Message = -1;
108 static int hf_h225_StimulusControl = -1;
109 static int hf_h225_conferenceID = -1;
110 static int hf_h225_Generic_nonStandard = -1;
111 static int hf_h225_guid = -1;
112 static int hf_h225_replaceWithConferenceInvite = -1;
113 static int hf_h225_ReleaseCompleteReason = -1;
114 static int hf_h225_numberOfScnConnections = -1;
115 static int hf_h225_connectionParameters = -1;
116 static int hf_h225_RequestSeqNum = -1;
117 static int hf_h225_RasUsageSpecification_when = -1;
118 static int hf_h225_RasUsageSpecification_callStartingPoint = -1;
119 static int hf_h225_RasUsageSpecification = -1;
120 static int hf_h225_ipAddress_ip = -1;
121 static int hf_h225_ipAddress_port = -1;
122 static int hf_h225_ipAddress = -1;
123 static int hf_h225_routing = -1;
124 static int hf_h225_ipSourceRoute = -1;
125 static int hf_h225_ipxNode = -1;
126 static int hf_h225_ipxNetnum = -1;
127 static int hf_h225_ipxPort = -1;
128 static int hf_h225_ipxAddress = -1;
129 static int hf_h225_ipv6Address_ip = -1;
130 static int hf_h225_ipv6Address_port = -1;
131 static int hf_h225_ip6Address = -1;
132 static int hf_h225_netBios = -1;
133 static int hf_h225_nsap = -1;
134 static int hf_h225_TransportAddress = -1;
135 static int hf_h225_replyAddress = -1;
136 static int hf_h225_rasAddress = -1;
137 static int hf_h225_h245Address = -1;
138 static int hf_h225_destCallSignalAddress = -1;
139 static int hf_h225_sourceCallSignalAddress = -1;
140 static int hf_h225_CallSignalAddress2 = -1;
141 static int hf_h225_alternativeAddress = -1;
142 static int hf_h225_transportID = -1;
143 static int hf_h225_sendAddress = -1;
144 static int hf_h225_recvAddress = -1;
145 static int hf_h225_rtpAddress = -1;
146 static int hf_h225_rtcpAddress = -1;
147 static int hf_h225_h245 = -1;
148 static int hf_h225_callSignaling = -1;
149 static int hf_h225_carrierName = -1;
150 static int hf_h225_carrierIdentificationCode = -1;
151 static int hf_h225_CarrierInfo = -1;
152 static int hf_h225_segment = -1;
153 static int hf_h225_InfoRequestResponseStatus = -1;
154 static int hf_h225_CallIdentifier = -1;
155 static int hf_h225_globalCallId = -1;
156 static int hf_h225_threadId = -1;
157 static int hf_h225_CallLinkage = -1;
158 static int hf_h225_tokens = -1;
159 static int hf_h225_needToRegister = -1;
160 static int hf_h225_priority = -1;
161 static int hf_h225_AlternateGK = -1;
162 static int hf_h225_alternateGatekeeper = -1;
163 static int hf_h225_altGKisPermanent = -1;
164 static int hf_h225_AltGKInfo = -1;
165 static int hf_h225_annexE = -1;
166 static int hf_h225_sctp = -1;
167 static int hf_h225_AlternateTransportAddress = -1;
168 static int hf_h225_setup_bool = -1;
169 static int hf_h225_callProceeding_bool = -1;
170 static int hf_h225_connect_bool = -1;
171 static int hf_h225_alerting_bool = -1;
172 static int hf_h225_information_bool = -1;
173 static int hf_h225_releaseComplete_bool = -1;
174 static int hf_h225_facility_bool = -1;
175 static int hf_h225_progress_bool = -1;
176 static int hf_h225_empty_bool = -1;
177 static int hf_h225_status_bool = -1;
178 static int hf_h225_statusInquiry_bool = -1;
179 static int hf_h225_setupAcknowledge_bool = -1;
180 static int hf_h225_notify_bool = -1;
181 static int hf_h225_UUIEsRequested = -1;
182 static int hf_h225_conferenceCalling = -1;
183 static int hf_h225_threePartyService = -1;
184 static int hf_h225_Q954Details = -1;
185 static int hf_h225_q932Full = -1;
186 static int hf_h225_q951Full = -1;
187 static int hf_h225_q952Full = -1;
188 static int hf_h225_q953Full = -1;
189 static int hf_h225_q955Full = -1;
190 static int hf_h225_q956Full = -1;
191 static int hf_h225_q957Full = -1;
192 static int hf_h225_QseriesOptions = -1;
193 static int hf_h225_ssrc = -1;
194 static int hf_h225_RTPsessionId = -1;
195 static int hf_h225_associatedSessionIds = -1;
196 static int hf_h225_RTPSession = -1;
197 static int hf_h225_cryptoTokens = -1;
198 static int hf_h225_ProtocolIdentifier = -1;
199 static int hf_h225_isoAlgorithm = -1;
200 static int hf_h225_iso9797 = -1;
201 static int hf_h225_algorithmOID = -1;
202 static int hf_h225_hMAC_iso10118_3 = -1;
203 static int hf_h225_enterpriseNumber = -1;
204 static int hf_h225_Generic_oid = -1;
205 static int hf_h225_tunnelledProtocolObjectID = -1;
206 static int hf_h225_StatusUUIE = -1;
207 static int hf_h225_StatusInquiryUUIE = -1;
208 static int hf_h225_SetupAcknowledgeUUIE = -1;
209 static int hf_h225_NotifyUUIE = -1;
210 static int hf_h225_imsi = -1;
211 static int hf_h225_tmsi = -1;
212 static int hf_h225_msisdn = -1;
213 static int hf_h225_imei = -1;
214 static int hf_h225_hplmn = -1;
215 static int hf_h225_vplmn = -1;
216 static int hf_h225_GSMUIM = -1;
217 static int hf_h225_sid = -1;
218 static int hf_h225_mid = -1;
219 static int hf_h225_systemid = -1;
220 static int hf_h225_min = -1;
221 static int hf_h225_mdn = -1;
222 static int hf_h225_esn = -1;
223 static int hf_h225_mscid = -1;
224 static int hf_h225_systemMyTypeCode = -1;
225 static int hf_h225_systemAccessType = -1;
226 static int hf_h225_qualificationInformationCode = -1;
227 static int hf_h225_sesn = -1;
228 static int hf_h225_soc = -1;
229 static int hf_h225_ANSI41UIM = -1;
230 static int hf_h225_MobileUIM = -1;
231 static int hf_h225_dataPartyNumber = -1;
232 static int hf_h225_telexPartyNumber = -1;
233 static int hf_h225_nationalStandardPartyNumber = -1;
234 static int hf_h225_publicNumberDigits = -1;
235 static int hf_h225_privateNumberDigits = -1;
236 static int hf_h225_e164Number = -1;
237 static int hf_h225_privateNumber = -1;
238 static int hf_h225_PartyNumber = -1;
239 static int hf_h225_startOfRange = -1;
240 static int hf_h225_endOfRange = -1;
241 static int hf_h225_protocolType = -1;
242 static int hf_h225_protocolVariant = -1;
243 static int hf_h225_TunnelledProtocolAlternateIdentifier = -1;
244 static int hf_h225_dialedDigits = -1;
245 static int hf_h225_urlId = -1;
246 static int hf_h225_h323ID = -1;
247 static int hf_h225_unicode = -1;
248 static int hf_h225_GatekeeperIdentifier = -1;
249 static int hf_h225_EndpointIdentifier = -1;
250 static int hf_h225_emailId = -1;
251 static int hf_h225_AliasAddress = -1;
252 static int hf_h225_featureServerAlias = -1;
253 static int hf_h225_RemoteExtensionAddress = -1;
254 static int hf_h225_conferenceAlias = -1;
255 static int hf_h225_wildcard = -1;
256 static int hf_h225_prefix = -1;
257 static int hf_h225_SupportedPrefix = -1;
258 static int hf_h225_SupportedPrefixes = -1;
259 static int hf_h225_H310Caps = -1;
260 static int hf_h225_H320Caps = -1;
261 static int hf_h225_H321Caps = -1;
262 static int hf_h225_H322Caps = -1;
263 static int hf_h225_H323Caps = -1;
264 static int hf_h225_H324Caps = -1;
265 static int hf_h225_VoiceCaps = -1;
266 static int hf_h225_T120OnlyCaps = -1;
267 static int hf_h225_NonStandardProtocol = -1;
268 static int hf_h225_SIPCaps = -1;
269 static int hf_h225_AddressPattern_range = -1;
270 static int hf_h225_AddressPattern = -1;
271 static int hf_h225_ConferenceList = -1;
272 static int hf_h225_conferences = -1;
273 static int hf_h225_T38FaxAnnexbOnlyCaps = -1;
274 static int hf_h225_SupportedProtocols = -1;
275 static int hf_h225_protocol = -1;
276 static int hf_h225_GatewayInfo = -1;
277 static int hf_h225_McuInfo = -1;
278 static int hf_h225_TunnelledProtocol_id = -1;
279 static int hf_h225_TunnelledProtocol_subIdentifier = -1;
280 static int hf_h225_TunnelledProtocol = -1;
281 static int hf_h225_desiredTunnelledProtocol = -1;
282 static int hf_h225_CicInfo_cic_item = -1;
283 static int hf_h225_CicInfo_pointCode = -1;
284 static int hf_h225_CicInfo_cic = -1;
285 static int hf_h225_CicInfo = -1;
286 static int hf_h225_GroupID_member_item = -1;
287 static int hf_h225_GroupID_member = -1;
288 static int hf_h225_GroupID_group = -1;
289 static int hf_h225_GroupID = -1;
290 static int hf_h225_sourceCircuitID = -1;
291 static int hf_h225_destinationCircuitID = -1;
292 static int hf_h225_Generic_standard = -1;
293 static int hf_h225_GenericIdentifier = -1;
294 static int hf_h225_EnumeratedParameter = -1;
295 static int hf_h225_parameters = -1;
296 static int hf_h225_GenericData = -1;
297 static int hf_h225_FeatureDescriptor = -1;
298 static int hf_h225_Content_raw = -1;
299 static int hf_h225_Content_text = -1;
300 static int hf_h225_Content = -1;
301 static int hf_h225_Content_bool = -1;
302 static int hf_h225_Content_number8 = -1;
303 static int hf_h225_number16 = -1;
304 static int hf_h225_Content_number32 = -1;
305 static int hf_h225_Content_compound = -1;
306 static int hf_h225_Content_nested = -1;
307 static int hf_h225_replacementFeatureSet = -1;
308 static int hf_h225_neededFeatures = -1;
309 static int hf_h225_desiredFeatures = -1;
310 static int hf_h225_supportedFeatures = -1;
311 static int hf_h225_FeatureSet = -1;
312 static int hf_h225_CallsAvailable_calls = -1;
313 static int hf_h225_CallsAvailable_group = -1;
314 static int hf_h225_CallsAvailable = -1;
315 static int hf_h225_voiceGwCallsAvailable = -1;
316 static int hf_h225_h310GwCallsAvailable = -1;
317 static int hf_h225_h320GwCallsAvailable = -1;
318 static int hf_h225_h321GwCallsAvailable = -1;
319 static int hf_h225_h322GwCallsAvailable = -1;
320 static int hf_h225_h323GwCallsAvailable = -1;
321 static int hf_h225_h324GwCallsAvailable = -1;
322 static int hf_h225_t120OnlyGwCallsAvailable = -1;
323 static int hf_h225_t38FaxAnnexbOnlyGwCallsAvailable = -1;
324 static int hf_h225_terminalCallsAvailable = -1;
325 static int hf_h225_mcuCallsAvailable = -1;
326 static int hf_h225_sipGwCallsAvailable = -1;
327 static int hf_h225_maximumCallCapacity = -1;
328 static int hf_h225_currentCallCapacity = -1;
329 static int hf_h225_CallCapacity = -1;
330 static int hf_h225_productID = -1;
331 static int hf_h225_versionID = -1;
332 static int hf_h225_VendorIdentifier = -1;
333 static int hf_h225_canReportCallCapacity = -1;
334 static int hf_h225_CapacityReportingCapability = -1;
335 static int hf_h225_canDisplayAmountString = -1;
336 static int hf_h225_canEnforceDurationLimit = -1;
337 static int hf_h225_CallCreditCapability = -1;
338 static int hf_h225_BandwidthDetails_sender = -1;
339 static int hf_h225_BandwidthDetails_multicast = -1;
340 static int hf_h225_BandwidthDetails = -1;
341 static int hf_h225_releaseCompleteCauseIE = -1;
342 static int hf_h225_CallTerminationCause = -1;
343 static int hf_h225_CircuitInfo = -1;
344 static int hf_h225_genericData = -1;
345 static int hf_h225_fastStart_item_length = -1;
346 static int hf_h225_fastStart = -1;
347 static int hf_h225_fastConnectRefused = -1;
348 static int hf_h225_InformationUUIE = -1;
349 static int hf_h225_routeCallToSCN = -1;
350 static int hf_h225_AdmissionRejectReason = -1;
351 static int hf_h225_hMAC_iso10118_2_s = -1;
352 static int hf_h225_hMAC_iso10118_2_l = -1;
353 static int hf_h225_NonIsoIntegrityMechanism = -1;
354 static int hf_h225_IntegrityMechanism = -1;
355 static int hf_h225_LocationRejectReason = -1;
356 static int hf_h225_mc = -1;
357 static int hf_h225_undefinedNode = -1;
358 static int hf_h225_EndPointType = -1;
359 static int hf_h225_terminalType = -1;
360 static int hf_h225_sourceInfo = -1;
361 static int hf_h225_destinationInfo = -1;
362 static int hf_h225_multipleCalls = -1;
363 static int hf_h225_maintainConnection = -1;
364 static int hf_h225_CallProceedingUUIE = -1;
365 static int hf_h225_CapacityReportingSpecification_when = -1;
366 static int hf_h225_CapacityReportingSpecification = -1;
367 static int hf_h225_ProgressUUIE = -1;
368 static int hf_h225_EndPoint = -1;
369 static int hf_h225_destinationType = -1;
370 static int hf_h225_destExtraCallInfo = -1;
371 static int hf_h225_remoteExtensionAddress = -1;
372 static int hf_h225_rasAddress_sequence = -1;
373 static int hf_h225_callSignalAddress = -1;
374 static int hf_h225_ICV = -1;
375 static int hf_h225_BandwidthConfirm = -1;
376 static int hf_h225_UnregistrationConfirm = -1;
377 static int hf_h225_NonStandardMessage = -1;
378 static int hf_h225_InfoRequestAck = -1;
379 static int hf_h225_InfoRequestNak = -1;
380 static int hf_h225_ResourcesAvailableConfirm = -1;
381 static int hf_h225_GatekeeperRequest = -1;
382 static int hf_h225_integrity = -1;
383 static int hf_h225_algorithmOIDs = -1;
384 static int hf_h225_alternateEndpoints = -1;
385 static int hf_h225_endpointAlias = -1;
386 static int hf_h225_ServiceControlResponse = -1;
387 static int hf_h225_DisengageReject = -1;
388 static int hf_h225_BandwidthReject = -1;
389 static int hf_h225_UnregistrationReject = -1;
390 static int hf_h225_UnregistrationRequest = -1;
391 static int hf_h225_endpointAliasPattern = -1;
392 static int hf_h225_RegistrationReject = -1;
393 static int hf_h225_invalidTerminalAliases = -1;
394 static int hf_h225_terminalAlias = -1;
395 static int hf_h225_terminalAliasPattern = -1;
396 static int hf_h225_RegistrationRejectReason = -1;
397 static int hf_h225_duplicateAlias = -1;
398 static int hf_h225_GatekeeperReject = -1;
399 static int hf_h225_almostOutOfResources = -1;
400 static int hf_h225_ResourcesAvailableIndicate = -1;
401 static int hf_h225_protocols = -1;
402 static int hf_h225_callDurationLimit = -1;
403 static int hf_h225_enforceCallDurationLimit = -1;
404 static int hf_h225_CallCreditServiceControl = -1;
405 static int hf_h225_ScreeningIndicator = -1;
406 static int hf_h225_ExtendedAliasAddress = -1;
407 static int hf_h225_messageNotUnderstood = -1;
408 static int hf_h225_UnknownMessageResponse = -1;
409 static int hf_h225_CallReferenceValue = -1;
410 static int hf_h225_AdmissionRequest = -1;
411 static int hf_h225_canMapSrcAlias = -1;
412 static int hf_h225_desiredProtocols = -1;
413 static int hf_h225_willSupplyUUIEs = -1;
414 static int hf_h225_destAlternatives = -1;
415 static int hf_h225_srcAlternatives = -1;
416 static int hf_h225_canMapAlias = -1;
417 static int hf_h225_activeMC = -1;
418 static int hf_h225_srcInfo = -1;
419 static int hf_h225_DestinationInfo = -1;
420 static int hf_h225_InfoRequest = -1;
421 static int hf_h225_nextSegmentRequested = -1;
422 static int hf_h225_delay = -1;
423 static int hf_h225_RequestInProgress = -1;
424 static int hf_h225_H248SignalsDescriptor = -1;
425 static int hf_h225_url = -1;
426 static int hf_h225_ServiceControlDescriptor = -1;
427 static int hf_h225_ServiceControlSession = -1;
428 static int hf_h225_sessionId = -1;
429 static int hf_h225_AlertingUUIE = -1;
430 static int hf_h225_serviceControl = -1;
431 static int hf_h225_alertingAddress = -1;
432 static int hf_h225_ReleaseCompleteUUIE = -1;
433 static int hf_h225_busyAddress = -1;
434 static int hf_h225_FacilityUUIE = -1;
435 static int hf_h225_alternativeAliasAddress = -1;
436 static int hf_h225_AdmissionReject = -1;
437 static int hf_h225_hopCount = -1;
438 static int hf_h225_parallelH245Control = -1;
439 static int hf_h225_language = -1;
440 static int hf_h225_languages = -1;
441 static int hf_h225_mediaWaitForConnect = -1;
442 static int hf_h225_canOverlapSend = -1;
443 static int hf_h225_SetupUUIE = -1;
444 static int hf_h225_sourceAddress = -1;
445 static int hf_h225_destinationAddress = -1;
446 static int hf_h225_destExtraCRV = -1;
447 static int hf_h225_h245SecurityCapability = -1;
448 static int hf_h225_additionalSourceAddresses = -1;
449 static int hf_h225_ConnectUUIE = -1;
450 static int hf_h225_connectedAddress = -1;
451 static int hf_h225_h323_message_body = -1;
452 static int hf_h225_LocationConfirm = -1;
453 static int hf_h225_supportedProtocols = -1;
454 static int hf_h225_modifiedSrcInfo = -1;
455 static int hf_h225_LocationReject = -1;
456 static int hf_h225_callSpecific = -1;
457 static int hf_h225_answeredCall = -1;
458 static int hf_h225_ServiceControlIndication = -1;
459 static int hf_h225_RasUsageInformation = -1;
460 static int hf_h225_nonStandardUsageFields = -1;
461 static int hf_h225_nonStandardUsageFields_item = -1;
462 static int hf_h225_TimeToLive = -1;
463 static int hf_h225_GatekeeperConfirm = -1;
464 static int hf_h225_RegistrationRequest = -1;
465 static int hf_h225_discoveryComplete = -1;
466 static int hf_h225_keepAlive = -1;
467 static int hf_h225_H248PackagesDescriptor = -1;
468 static int hf_h225_supportedH248Packages = -1;
469 static int hf_h225_DisengageConfirm = -1;
470 static int hf_h225_AdmissionConfirm = -1;
471 static int hf_h225_irrFrequency = -1;
472 static int hf_h225_willRespondToIRR = -1;
473 static int hf_h225_usageSpec = -1;
474 static int hf_h225_DisengageRequest = -1;
475 static int hf_h225_LocationRequest = -1;
476 static int hf_h225_SourceInfo = -1;
477 static int hf_h225_hopCount255 = -1;
478 static int hf_h225_sourceEndpointInfo = -1;
479 static int hf_h225_BandwidthRequest = -1;
480 static int hf_h225_bandwidthDetails = -1;
481 static int hf_h225_admissionConfirmSequence = -1;
482 static int hf_h225_tunnelledSignallingMessage = -1;
483 static int hf_h225_messageContent_item = -1;
484 static int hf_h225_messageContent = -1;
485 static int hf_h225_H323_UU_PDU = -1;
486 static int hf_h225_h4501SupplementaryService = -1;
487 static int hf_h225_h245Tunneling = -1;
488 static int hf_h225_h245Control = -1;
489 static int hf_h225_nonStandardControl = -1;
490 static int hf_h225_nonStandardControl_item = -1;
491 static int hf_h225_preGrantedARQ = -1;
492 static int hf_h225_makeCall = -1;
493 static int hf_h225_useGKCallSignalAddressToMakeCall = -1;
494 static int hf_h225_answerCall = -1;
495 static int hf_h225_useGKCallSignalAddressToAnswer = -1;
496 static int hf_h225_RegistrationConfirm = -1;
497 static int hf_h225_pdu_item = -1;
498 static int hf_h225_sent = -1;
499 static int hf_h225_pdu = -1;
500 static int hf_h225_perCallInfo_item = -1;
501 static int hf_h225_originator = -1;
502 static int hf_h225_audio = -1;
503 static int hf_h225_video = -1;
504 static int hf_h225_data = -1;
505 static int hf_h225_substituteConfIDs = -1;
506 static int hf_h225_perCallInfo = -1;
507 static int hf_h225_InfoRequestResponse = -1;
508 static int hf_h225_needResponse = -1;
509 static int hf_h225_unsolicited = -1;
510 static int hf_h225_RasMessage = -1;
511 static int hf_h225_H323_UserInformation = -1;
512 static int hf_h225_user_data = -1;
513 static int hf_h225_protocol_discriminator = -1;
514 static int hf_h225_user_information = -1;
515 static int hf_h225_object = -1;
516 static int hf_h225_t35CountryCode = -1;
517 static int hf_h225_t35Extension = -1;
518 static int hf_h225_manufacturerCode = -1;
519 static int hf_h225_h221NonStandard = -1;
520 static int hf_h225_nonStandardIdentifier = -1;
521 static int hf_h225_nsp_data = -1;
522 static int hf_h225_nonStandardData = -1;
523 static int hf_h225_nonStandard = -1;
524 static int hf_h225_nonStandardReason = -1;
525 static int hf_h225_nonStandardAddress = -1;
526 /*aaa*/
527
528 static gint ett_h225 = -1;
529 static gint ett_h225_T_nonStandardUsageTypes = -1;
530 static gint ett_h225_PresentationIndicator = -1;
531 static gint ett_h225_conferenceGoal = -1;
532 static gint ett_h225_ScnConnectionType = -1;
533 static gint ett_h225_ScnConnectionAggregation = -1;
534 static gint ett_h225_FacilityReason = -1;
535 static gint ett_h225_PublicTypeOfNumber = -1;
536 static gint ett_h225_PrivateTypeOfNumber = -1;
537 static gint ett_h225_UseSpecifiedTransport = -1;
538 static gint ett_h225_SecurityErrors = -1;
539 static gint ett_h225_SecurityErrors2 = -1;
540 static gint ett_h225_ServiceControlSession_reason = -1;
541 static gint ett_h225_billingMode = -1;
542 static gint ett_h225_CCSCcallStartingPoint = -1;
543 static gint ett_h225_GatekeeperRejectReason = -1;
544 static gint ett_h225_UnregRequestReason = -1;
545 static gint ett_h225_UnregRejectReason = -1;
546 static gint ett_h225_CallType = -1;
547 static gint ett_h225_CallModel = -1;
548 static gint ett_h225_TransportQOS = -1;
549 static gint ett_h225_BandRejectReason = -1;
550 static gint ett_h225_DisengageReason = -1;
551 static gint ett_h225_DisengageRejectReason = -1;
552 static gint ett_h225_InfoRequestNakReason = -1;
553 static gint ett_h225_SCRresult = -1;
554 static gint ett_h225_GatekeeperInfo = -1;
555 static gint ett_h225_SecurityServiceMode_encryption = -1;
556 static gint ett_h225_SecurityServiceMode_authentication = -1;
557 static gint ett_h225_SecurityServiceMode_integrity = -1;
558 static gint ett_h225_SecurityCapabilities_tls = -1;
559 static gint ett_h225_SecurityCapabilities_ipsec = -1;
560 static gint ett_h225_H245Security = -1;
561 static gint ett_h225_RasUsageInfoTypes = -1;
562 static gint ett_h225_DataRate = -1;
563 static gint ett_h225_dataRatesSupported = -1;
564 static gint ett_h225_TerminalInfo = -1;
565 static gint ett_h225_StimulusControl = -1;
566 static gint ett_h225_ReleaseCompleteReason = -1;
567 static gint ett_h225_connectionParameters = -1;
568 static gint ett_h225_RasUsageSpecification_when = -1;
569 static gint ett_h225_RasUsageSpecification_callStartingPoint = -1;
570 static gint ett_h225_RasUsageSpecification = -1;
571 static gint ett_h225_ipAddress = -1;
572 static gint ett_h225_routing = -1;
573 static gint ett_h225_route = -1;
574 static gint ett_h225_ipSourceRoute = -1;
575 static gint ett_h225_ipxAddress = -1;
576 static gint ett_h225_ip6Address = -1;
577 static gint ett_h225_TransportAddress = -1;
578 static gint ett_h225_TransportChannelInfo = -1;
579 static gint ett_h225_CarrierInfo = -1;
580 static gint ett_h225_InfoRequestResponseStatus = -1;
581 static gint ett_h225_CallIdentifier = -1;
582 static gint ett_h225_CallLinkage = -1;
583 static gint ett_h225_tokens = -1;
584 static gint ett_h225_AlternateGK = -1;
585 static gint ett_h225_alternateGatekeeper = -1;
586 static gint ett_h225_AltGKInfo = -1;
587 static gint ett_h225_annexE = -1;
588 static gint ett_h225_sctp = -1;
589 static gint ett_h225_AlternateTransportAddress = -1;
590 static gint ett_h225_UUIEsRequested = -1;
591 static gint ett_h225_Q954Details = -1;
592 static gint ett_h225_QseriesOptions = -1;
593 static gint ett_h225_associatedSessionIds = -1;
594 static gint ett_h225_RTPSession = -1;
595 static gint ett_h225_cryptoTokens = -1;
596 static gint ett_h225_StatusUUIE = -1;
597 static gint ett_h225_StatusInquiryUUIE = -1;
598 static gint ett_h225_SetupAcknowledgeUUIE = -1;
599 static gint ett_h225_NotifyUUIE = -1;
600 static gint ett_h225_GSMUIM = -1;
601 static gint ett_h225_systemid = -1;
602 static gint ett_h225_ANSI41UIM = -1;
603 static gint ett_h225_MobileUIM = -1;
604 static gint ett_h225_e164Number = -1;
605 static gint ett_h225_privateNumber = -1;
606 static gint ett_h225_PartyNumber = -1;
607 static gint ett_h225_TunnelledProtocolAlternateIdentifier = -1;
608 static gint ett_h225_AliasAddress = -1;
609 static gint ett_h225_SupportedPrefix = -1;
610 static gint ett_h225_SupportedPrefixes = -1;
611 static gint ett_h225_H310Caps = -1;
612 static gint ett_h225_H320Caps = -1;
613 static gint ett_h225_H321Caps = -1;
614 static gint ett_h225_H322Caps = -1;
615 static gint ett_h225_H323Caps = -1;
616 static gint ett_h225_H324Caps = -1;
617 static gint ett_h225_VoiceCaps = -1;
618 static gint ett_h225_T120OnlyCaps = -1;
619 static gint ett_h225_NonStandardProtocol = -1;
620 static gint ett_h225_SIPCaps = -1;
621 static gint ett_h225_AddressPattern_range = -1;
622 static gint ett_h225_AddressPattern = -1;
623 static gint ett_h225_ConferenceList = -1;
624 static gint ett_h225_conferences = -1;
625 static gint ett_h225_T38FaxAnnexbOnlyCaps = -1;
626 static gint ett_h225_SupportedProtocols = -1;
627 static gint ett_h225_protocol = -1;
628 static gint ett_h225_GatewayInfo = -1;
629 static gint ett_h225_McuInfo = -1;
630 static gint ett_h225_TunnelledProtocol_id = -1;
631 static gint ett_h225_TunnelledProtocol = -1;
632 static gint ett_h225_CicInfo_cic = -1;
633 static gint ett_h225_CicInfo = -1;
634 static gint ett_h225_GroupID_member = -1;
635 static gint ett_h225_GroupID = -1;
636 static gint ett_h225_CircuitIdentifier = -1;
637 static gint ett_h225_GenericIdentifier = -1;
638 static gint ett_h225_EnumeratedParameter = -1;
639 static gint ett_h225_parameters = -1;
640 static gint ett_h225_GenericData = -1;
641 static gint ett_h225_Content = -1;
642 static gint ett_h225_Content_compound = -1;
643 static gint ett_h225_Content_nested = -1;
644 static gint ett_h225_neededFeatures = -1;
645 static gint ett_h225_desiredFeatures = -1;
646 static gint ett_h225_supportedFeatures = -1;
647 static gint ett_h225_FeatureSet = -1;
648 static gint ett_h225_CallsAvailable = -1;
649 static gint ett_h225_voiceGwCallsAvailable = -1;
650 static gint ett_h225_h310GwCallsAvailable = -1;
651 static gint ett_h225_h320GwCallsAvailable = -1;
652 static gint ett_h225_h321GwCallsAvailable = -1;
653 static gint ett_h225_h322GwCallsAvailable = -1;
654 static gint ett_h225_h323GwCallsAvailable = -1;
655 static gint ett_h225_h324GwCallsAvailable = -1;
656 static gint ett_h225_t120OnlyGwCallsAvailable = -1;
657 static gint ett_h225_t38FaxAnnexbOnlyGwCallsAvailable = -1;
658 static gint ett_h225_terminalCallsAvailable = -1;
659 static gint ett_h225_mcuCallsAvailable = -1;
660 static gint ett_h225_sipGwCallsAvailable = -1;
661 static gint ett_h225_CallCapacityInfo = -1;
662 static gint ett_h225_CallCapacity = -1;
663 static gint ett_h225_VendorIdentifier = -1;
664 static gint ett_h225_CapacityReportingCapability = -1;
665 static gint ett_h225_CallCreditCapability = -1;
666 static gint ett_h225_BandwidthDetails = -1;
667 static gint ett_h225_CallTerminationCause = -1;
668 static gint ett_h225_CircuitInfo = -1;
669 static gint ett_h225_genericData = -1;
670 static gint ett_h225_fastStart = -1;
671 static gint ett_h225_InformationUUIE = -1;
672 static gint ett_h225_routeCallToSCN = -1;
673 static gint ett_h225_AdmissionRejectReason = -1;
674 static gint ett_h225_EncryptIntAlg = -1;
675 static gint ett_h225_NonIsoIntegrityMechanism = -1;
676 static gint ett_h225_IntegrityMechanism = -1;
677 static gint ett_h225_LocationRejectReason = -1;
678 static gint ett_h225_EndPointType = -1;
679 static gint ett_h225_CallProceedingUUIE = -1;
680 static gint ett_h225_CapacityReportingSpecification_when = -1;
681 static gint ett_h225_CapacityReportingSpecification = -1;
682 static gint ett_h225_ProgressUUIE = -1;
683 static gint ett_h225_EndPoint = -1;
684 static gint ett_h225_destExtraCallInfo = -1;
685 static gint ett_h225_remoteExtensionAddress = -1;
686 static gint ett_h225_rasAddress_sequence = -1;
687 static gint ett_h225_callSignalAddress = -1;
688 static gint ett_h225_ICV = -1;
689 static gint ett_h225_BandwidthConfirm = -1;
690 static gint ett_h225_UnregistrationConfirm = -1;
691 static gint ett_h225_NonStandardMessage = -1;
692 static gint ett_h225_InfoRequestAck = -1;
693 static gint ett_h225_InfoRequestNak = -1;
694 static gint ett_h225_ResourcesAvailableConfirm = -1;
695 static gint ett_h225_GatekeeperRequest = -1;
696 static gint ett_h225_integrity = -1;
697 static gint ett_h225_algorithmOIDs = -1;
698 static gint ett_h225_alternateEndpoints = -1;
699 static gint ett_h225_endpointAlias = -1;
700 static gint ett_h225_ServiceControlResponse = -1;
701 static gint ett_h225_DisengageReject = -1;
702 static gint ett_h225_BandwidthReject = -1;
703 static gint ett_h225_UnregistrationReject = -1;
704 static gint ett_h225_UnregistrationRequest = -1;
705 static gint ett_h225_endpointAliasPattern = -1;
706 static gint ett_h225_RegistrationReject = -1;
707 static gint ett_h225_invalidTerminalAliases = -1;
708 static gint ett_h225_terminalAlias = -1;
709 static gint ett_h225_terminalAliasPattern = -1;
710 static gint ett_h225_RegistrationRejectReason = -1;
711 static gint ett_h225_duplicateAlias = -1;
712 static gint ett_h225_GatekeeperReject = -1;
713 static gint ett_h225_ResourcesAvailableIndicate = -1;
714 static gint ett_h225_protocols = -1;
715 static gint ett_h225_CallCreditServiceControl = -1;
716 static gint ett_h225_ExtendedAliasAddress = -1;
717 static gint ett_h225_UnknownMessageResponse = -1;
718 static gint ett_h225_AdmissionRequest = -1;
719 static gint ett_h225_desiredProtocols = -1;
720 static gint ett_h225_destAlternatives = -1;
721 static gint ett_h225_srcAlternatives = -1;
722 static gint ett_h225_srcInfo = -1;
723 static gint ett_h225_DestinationInfo = -1;
724 static gint ett_h225_InfoRequest = -1;
725 static gint ett_h225_RequestInProgress = -1;
726 static gint ett_h225_ServiceControlDescriptor = -1;
727 static gint ett_h225_ServiceControlSession = -1;
728 static gint ett_h225_AlertingUUIE = -1;
729 static gint ett_h225_serviceControl = -1;
730 static gint ett_h225_alertingAddress = -1;
731 static gint ett_h225_ReleaseCompleteUUIE = -1;
732 static gint ett_h225_busyAddress = -1;
733 static gint ett_h225_FacilityUUIE = -1;
734 static gint ett_h225_alternativeAliasAddress = -1;
735 static gint ett_h225_AdmissionReject = -1;
736 static gint ett_h225_parallelH245Control = -1;
737 static gint ett_h225_languages = -1;
738 static gint ett_h225_SetupUUIE = -1;
739 static gint ett_h225_sourceAddress = -1;
740 static gint ett_h225_destinationAddress = -1;
741 static gint ett_h225_destExtraCRV = -1;
742 static gint ett_h225_h245SecurityCapability = -1;
743 static gint ett_h225_additionalSourceAddresses = -1;
744 static gint ett_h225_ConnectUUIE = -1;
745 static gint ett_h225_connectedAddress = -1;
746 static gint ett_h225_h323_message_body = -1;
747 static gint ett_h225_LocationConfirm = -1;
748 static gint ett_h225_supportedProtocols = -1;
749 static gint ett_h225_modifiedSrcInfo = -1;
750 static gint ett_h225_LocationReject = -1;
751 static gint ett_h225_callSpecific = -1;
752 static gint ett_h225_ServiceControlIndication = -1;
753 static gint ett_h225_RasUsageInformation = -1;
754 static gint ett_h225_T_nonStandardUsageFields = -1;
755 static gint ett_h225_GatekeeperConfirm = -1;
756 static gint ett_h225_RegistrationRequest = -1;
757 static gint ett_h225_supportedH248Packages = -1;
758 static gint ett_h225_DisengageConfirm = -1;
759 static gint ett_h225_AdmissionConfirm = -1;
760 static gint ett_h225_usageSpec = -1;
761 static gint ett_h225_DisengageRequest = -1;
762 static gint ett_h225_LocationRequest = -1;
763 static gint ett_h225_SourceInfo = -1;
764 static gint ett_h225_sourceEndpointInfo = -1;
765 static gint ett_h225_BandwidthRequest = -1;
766 static gint ett_h225_bandwidthDetails = -1;
767 static gint ett_h225_admissionConfirmSequence = -1;
768 static gint ett_h225_tunnelledSignallingMessage = -1;
769 static gint ett_h225_messageContent = -1;
770 static gint ett_h225_H323_UU_PDU = -1;
771 static gint ett_h225_h4501SupplementaryService = -1;
772 static gint ett_h225_h245Control = -1;
773 static gint ett_h225_T_nonStandardControl = -1;
774 static gint ett_h225_preGrantedARQ = -1;
775 static gint ett_h225_RegistrationConfirm = -1;
776 static gint ett_h225_pdu_item = -1;
777 static gint ett_h225_pdu = -1;
778 static gint ett_h225_perCallInfo_item = -1;
779 static gint ett_h225_audio = -1;
780 static gint ett_h225_video = -1;
781 static gint ett_h225_data = -1;
782 static gint ett_h225_substituteConfIDs = -1;
783 static gint ett_h225_perCallInfo = -1;
784 static gint ett_h225_InfoRequestResponse = -1;
785 static gint ett_h225_RasMessage = -1;
786 static gint ett_h225_H323_UserInformation = -1;
787 static gint ett_h225_user_data = -1;
788 static gint ett_h225_H221NonStandard = -1;
789 static gint ett_h225_NonStandardIdentifier = -1;
790 static gint ett_h225_NonStandardParameter = -1;
791 /*bbb*/
792
793 /* Subdissector tables */
794 static dissector_table_t nsp_object_dissector_table;
795 static dissector_table_t nsp_h221_dissector_table;
796
797
798 static dissector_handle_t h245_handle=NULL;
799 static dissector_handle_t h245dg_handle=NULL;
800 static dissector_handle_t h4501_handle=NULL;
801
802
803 static dissector_handle_t nsp_handle;
804
805 static guint32  ipv4_address;
806 static guint32  ipv4_port;
807 static char object[256];
808 static guint32 t35CountryCode;
809 static guint32 t35Extension;
810 static guint32 manufacturerCode;
811 static guint32 h221NonStandard;
812
813 static gboolean contains_faststart = FALSE;
814
815 static const true_false_string tfs_unsolicited_bit = {
816         "unsolicited bit is SET",
817         "unsolicited bit is NOT set"
818 };
819
820 static const true_false_string tfs_needResponse_bit = {
821         "needResponse bit is SET",
822         "needResponse bit is NOT set"
823 };
824
825 static const true_false_string tfs_originator_bit = {
826         "originator bit is SET",
827         "originator bit is NOT set"
828 };
829
830 static const true_false_string tfs_sent_bit = {
831         "sent bit is SET",
832         "sent bit is NOT set"
833 };
834
835 static const true_false_string tfs_useGKCallSignalAddressToAnswer_bit = {
836         "useGKCallSignalAddressToAnswer bit is SET",
837         "useGKCallSignalAddressToAnswer bit is NOT set"
838 };
839
840 static const true_false_string tfs_answerCall_bit = {
841         "answerCall bit is SET",
842         "answerCall bit is NOT set"
843 };
844
845 static const true_false_string tfs_useGKCallSignalAddressToMakeCall_bit = {
846         "useGKCallSignalAddressToMakeCall bit is SET",
847         "useGKCallSignalAddressToMakeCall bit is NOT set"
848 };
849
850 static const true_false_string tfs_makeCall_bit = {
851         "makeCall bit is SET",
852         "makeCall bit is NOT set"
853 };
854
855 static const true_false_string tfs_h245Tunneling_bit = {
856         "h245Tunneling bit is SET",
857         "h245Tunneling bit is NOT set"
858 };
859
860 static const true_false_string tfs_willRespondToIRR_bit = {
861         "willRespondToIRR bit is SET",
862         "willRespondToIRR bit is NOT set"
863 };
864
865 static const true_false_string tfs_keepAlive_bit = {
866         "keepAlive bit is SET",
867         "keepAlive bit is NOT set"
868 };
869
870 static const true_false_string tfs_discoveryComplete_bit = {
871         "discoveryComplete bit is SET",
872         "discoveryComplete bit is NOT set"
873 };
874
875 static const true_false_string tfs_answeredCall_bit = {
876         "answeredCall bit is SET",
877         "answeredCall bit is NOT set"
878 };
879
880 static const true_false_string tfs_canOverlapSend_bit = {
881         "canOverlapSend bit is SET",
882         "canOverlapSend bit is NOT set"
883 };
884
885 static const true_false_string tfs_mediaWaitForConnect_bit = {
886         "mediaWaitForConnect bit is SET",
887         "mediaWaitForConnect bit is NOT set"
888 };
889
890 static const true_false_string tfs_activeMC_bit = {
891         "activeMC bit is SET",
892         "activeMC bit is NOT set"
893 };
894
895 static const true_false_string tfs_canMapAlias_bit = {
896         "canMapAlias bit is SET",
897         "canMapAlias bit is NOT set"
898 };
899
900 static const true_false_string tfs_willSupplyUUIEs_bit = {
901         "willSupplyUUIEs bit is SET",
902         "willSupplyUUIEs bit is NOT set"
903 };
904
905 static const true_false_string tfs_canMapSrcAlias_bit = {
906         "canMapSrcAlias bit is SET",
907         "canMapSrcAlias bit is NOT set"
908 };
909
910 static const true_false_string tfs_enforceCallDurationLimit_bit = {
911         "enforceCallDurationLimit bit is SET",
912         "enforceCallDurationLimit bit is NOT set"
913 };
914
915 static const true_false_string tfs_almostOutOfResources_bit = {
916         "almostOutOfResources bit is SET",
917         "almostOutOfResources bit is NOT set"
918 };
919
920 static const true_false_string tfs_maintainConnection_bit = {
921         "maintainConnection bit is SET",
922         "maintainConnection bit is NOT set"
923 };
924
925 static const true_false_string tfs_multipleCalls_bit = {
926         "multipleCalls bit is SET",
927         "multipleCalls bit is NOT set"
928 };
929
930 static const true_false_string tfs_undefinedNode_bit = {
931         "undefinedNode bit is SET",
932         "undefinedNode bit is NOT set"
933 };
934
935 static const true_false_string tfs_mc_bit = {
936         "mc bit is SET",
937         "mc bit is NOT set"
938 };
939
940
941 static const true_false_string tfs_fastConnectRefused_bit = {
942         "fastConnectRefused bit is SET",
943         "fastConnectRefused bit is NOT set"
944 };
945
946 static const true_false_string tfs_BandwidthDetails_multicast_bit = {
947         "BandwidthDetails_multicast bit is SET",
948         "BandwidthDetails_multicast bit is NOT set"
949 };
950
951 static const true_false_string tfs_BandwidthDetails_sender_bit = {
952         "BandwidthDetails_sender bit is SET",
953         "BandwidthDetails_sender bit is NOT set"
954 };
955
956 static const true_false_string tfs_canEnforceDurationLimit_bit = {
957         "canEnforceDurationLimit bit is SET",
958         "canEnforceDurationLimit bit is NOT set"
959 };
960
961 static const true_false_string tfs_canDisplayAmountString_bit = {
962         "canDisplayAmountString bit is SET",
963         "canDisplayAmountString bit is NOT set"
964 };
965
966 static const true_false_string tfs_canReportCallCapacity_bit = {
967         "canReportCallCapacity bit is SET",
968         "canReportCallCapacity bit is NOT set"
969 };
970
971 static const true_false_string tfs_replacementFeatureSet_bit = {
972         "replacementFeatureSet bit is SET",
973         "replacementFeatureSet bit is NOT set"
974 };
975
976 static const true_false_string tfs_Content_bool_bit = {
977         "Content_bool bit is SET",
978         "Content_bool bit is NOT set"
979 };
980
981 static const true_false_string tfs_q957Full_bit = {
982         "q957Full bit is SET",
983         "q957Full bit is NOT set"
984 };
985
986 static const true_false_string tfs_q956Full_bit = {
987         "q956Full bit is SET",
988         "q956Full bit is NOT set"
989 };
990
991 static const true_false_string tfs_q955Full_bit = {
992         "q955Full bit is SET",
993         "q955Full bit is NOT set"
994 };
995
996 static const true_false_string tfs_q953Full_bit = {
997         "q953Full bit is SET",
998         "q953Full bit is NOT set"
999 };
1000
1001 static const true_false_string tfs_q952Full_bit = {
1002         "q952Full bit is SET",
1003         "q952Full bit is NOT set"
1004 };
1005
1006 static const true_false_string tfs_q951Full_bit = {
1007         "q951Full bit is SET",
1008         "q951Full bit is NOT set"
1009 };
1010
1011 static const true_false_string tfs_q932Full_bit = {
1012         "q932Full bit is SET",
1013         "q932Full bit is NOT set"
1014 };
1015
1016 static const true_false_string tfs_threePartyService_bit = {
1017         "threePartyService bit is SET",
1018         "threePartyService bit is NOT set"
1019 };
1020
1021 static const true_false_string tfs_conferenceCalling_bit = {
1022         "conferenceCalling bit is SET",
1023         "conferenceCalling bit is NOT set"
1024 };
1025
1026 static const true_false_string tfs_notify_bool_bit = {
1027         "notify_bool bit is SET",
1028         "notify_bool bit is NOT set"
1029 };
1030
1031 static const true_false_string tfs_setupAcknowledge_bool_bit = {
1032         "setupAcknowledge_bool bit is SET",
1033         "setupAcknowledge_bool bit is NOT set"
1034 };
1035
1036 static const true_false_string tfs_statusInquiry_bool_bit = {
1037         "statusInquiry_bool bit is SET",
1038         "statusInquiry_bool bit is NOT set"
1039 };
1040
1041 static const true_false_string tfs_status_bool_bit = {
1042         "status_bool bit is SET",
1043         "status_bool bit is NOT set"
1044 };
1045
1046 static const true_false_string tfs_empty_bool_bit = {
1047         "empty_bool bit is SET",
1048         "empty_bool bit is NOT set"
1049 };
1050
1051 static const true_false_string tfs_progress_bool_bit = {
1052         "progress_bool bit is SET",
1053         "progress_bool bit is NOT set"
1054 };
1055
1056 static const true_false_string tfs_facility_bool_bit = {
1057         "facility_bool bit is SET",
1058         "facility_bool bit is NOT set"
1059 };
1060
1061 static const true_false_string tfs_releaseComplete_bool_bit = {
1062         "releaseComplete_bool bit is SET",
1063         "releaseComplete_bool bit is NOT set"
1064 };
1065
1066 static const true_false_string tfs_information_bool_bit = {
1067         "information_bool bit is SET",
1068         "information_bool bit is NOT set"
1069 };
1070
1071 static const true_false_string tfs_alerting_bool_bit = {
1072         "alerting_bool bit is SET",
1073         "alerting_bool bit is NOT set"
1074 };
1075
1076 static const true_false_string tfs_connect_bool_bit = {
1077         "connect_bool bit is SET",
1078         "connect_bool bit is NOT set"
1079 };
1080
1081 static const true_false_string tfs_callProceeding_bool_bit = {
1082         "callProceeding_bool bit is SET",
1083         "callProceeding_bool bit is NOT set"
1084 };
1085
1086 static const true_false_string tfs_setup_bool_bit = {
1087         "setup_bool bit is SET",
1088         "setup_bool bit is NOT set"
1089 };
1090
1091 static const true_false_string tfs_altGKisPermanent_bit = {
1092         "altGKisPermanent bit is SET",
1093         "altGKisPermanent bit is NOT set"
1094 };
1095
1096 static const true_false_string tfs_needToRegister_bit = {
1097         "needToRegister bit is SET",
1098         "needToRegister bit is NOT set"
1099 };
1100
1101
1102
1103 static gboolean h225_reassembly = TRUE;
1104
1105
1106
1107 static int
1108 dissect_h225_NULL(tvbuff_t *tvb _U_, int offset, packet_info *pinfo _U_, proto_tree *tree _U_)
1109 {
1110         return offset;
1111 }
1112
1113 static const value_string PresentationIndicator_vals[] = {
1114         { 0, "presentationAllowed" },
1115         { 1, "presentationRestricted" },
1116         { 2, "addressNotAvailable" },
1117         { 0, NULL}
1118 };
1119 static per_choice_t PresentationIndicator_choice[] = {
1120         { 0, "presentationAllowed", ASN1_EXTENSION_ROOT,
1121                 dissect_h225_NULL},
1122         { 1, "presentationRestricted", ASN1_EXTENSION_ROOT,
1123                 dissect_h225_NULL},
1124         { 2, "addressNotAvailable", ASN1_EXTENSION_ROOT,
1125                 dissect_h225_NULL},
1126         { 0, NULL, 0, NULL }
1127 };
1128 static int
1129 dissect_h225_PresentationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1130 {
1131         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_PresentationIndicator, ett_h225_PresentationIndicator, PresentationIndicator_choice, "PresentationIndicator", NULL);
1132         return offset;
1133 }
1134
1135
1136 static const value_string conferenceGoal_vals[] = {
1137         { 0, "create" },
1138         { 1, "join" },
1139         { 2, "invite" },
1140         { 3, "capability-negotiation" },
1141         { 4, "callIndependentSupplementaryService" },
1142         { 0, NULL}
1143 };
1144 static per_choice_t conferenceGoal_choice[] = {
1145         { 0, "create", ASN1_EXTENSION_ROOT,
1146                 dissect_h225_NULL },
1147         { 1, "join", ASN1_EXTENSION_ROOT,
1148                 dissect_h225_NULL },
1149         { 2, "invite", ASN1_EXTENSION_ROOT,
1150                 dissect_h225_NULL },
1151         { 3, "capability-negotiation", ASN1_NOT_EXTENSION_ROOT,
1152                 dissect_h225_NULL },
1153         { 4, "callIndependentSupplementaryService", ASN1_NOT_EXTENSION_ROOT,
1154                 dissect_h225_NULL },
1155         { 0, NULL, 0, NULL }
1156 };
1157 static int
1158 dissect_h225_conferenceGoal(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1159 {
1160         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_conferenceGoal, ett_h225_conferenceGoal, conferenceGoal_choice, "conferenceGoal", NULL);
1161         return offset;
1162 }
1163
1164
1165 static const value_string ScnConnectionType_vals[] = {
1166         { 0, "unknown" },
1167         { 1, "bChannel" },
1168         { 2, "hybrid2x64" },
1169         { 3, "hybrid384" },
1170         { 4, "hybrid1536" },
1171         { 5, "hybrid1920" },
1172         { 6, "multirate" },
1173         { 0, NULL}
1174 };
1175 static per_choice_t ScnConnectionType_choice[] = {
1176         { 0, "unknown", ASN1_EXTENSION_ROOT,
1177                 dissect_h225_NULL },
1178         { 1, "bChannel", ASN1_EXTENSION_ROOT,
1179                 dissect_h225_NULL },
1180         { 2, "hybrid2x64", ASN1_EXTENSION_ROOT,
1181                 dissect_h225_NULL },
1182         { 3, "hybrid384", ASN1_EXTENSION_ROOT,
1183                 dissect_h225_NULL },
1184         { 4, "hybrid1536", ASN1_EXTENSION_ROOT,
1185                 dissect_h225_NULL },
1186         { 5, "hybrid1920", ASN1_EXTENSION_ROOT,
1187                 dissect_h225_NULL },
1188         { 6, "multirate", ASN1_EXTENSION_ROOT,
1189                 dissect_h225_NULL },
1190         { 0, NULL, 0, NULL }
1191 };
1192 static int
1193 dissect_h225_ScnConnectionType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1194 {
1195         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_ScnConnectionType, ett_h225_ScnConnectionType, ScnConnectionType_choice, "ScnConnectionType", NULL);
1196         return offset;
1197 }
1198
1199
1200 static const value_string ScnConnectionAggregation_vals[] = {
1201         { 0, "auto" },
1202         { 1, "none" },
1203         { 2, "h221" },
1204         { 3, "bonded-mode1" },
1205         { 4, "bonded-mode2" },
1206         { 5, "bonded-mode3" },
1207         { 0, NULL}
1208 };
1209 static per_choice_t ScnConnectionAggregation_choice[] = {
1210         { 0, "auto", ASN1_EXTENSION_ROOT,
1211                 dissect_h225_NULL },
1212         { 1, "none", ASN1_EXTENSION_ROOT,
1213                 dissect_h225_NULL },
1214         { 2, "h221", ASN1_EXTENSION_ROOT,
1215                 dissect_h225_NULL },
1216         { 3, "bonded-mode1", ASN1_EXTENSION_ROOT,
1217                 dissect_h225_NULL },
1218         { 4, "bonded-mode2", ASN1_EXTENSION_ROOT,
1219                 dissect_h225_NULL },
1220         { 5, "bonded-mode3", ASN1_EXTENSION_ROOT,
1221                 dissect_h225_NULL },
1222         { 0, NULL, 0, NULL }
1223 };
1224 static int
1225 dissect_h225_ScnConnectionAggregation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1226 {
1227         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_ScnConnectionAggregation, ett_h225_ScnConnectionAggregation, ScnConnectionAggregation_choice, "ScnConnectionAggregation", NULL);
1228         return offset;
1229 }
1230
1231
1232 static const value_string FacilityReason_vals[] = {
1233         { 0, "routeCallToGatekeeper" },
1234         { 1, "callForwarded" },
1235         { 2, "routeCallToMC" },
1236         { 3, "undefinedReason" },
1237         { 4, "conferenceListChoice" },
1238         { 5, "startH245" },
1239         { 6, "noH245" },
1240         { 7, "newTokens" },
1241         { 8, "featureSetUpdate" },
1242         { 9, "forwardedElements" },
1243         { 10, "transportedInformation" },
1244         { 0, NULL}
1245 };
1246 static per_choice_t FacilityReason_choice[] = {
1247         { 0, "routeCallToGatekeeper", ASN1_EXTENSION_ROOT,
1248                 dissect_h225_NULL },
1249         { 1, "callForwarded", ASN1_EXTENSION_ROOT,
1250                 dissect_h225_NULL },
1251         { 2, "routeCallToMC", ASN1_EXTENSION_ROOT,
1252                 dissect_h225_NULL },
1253         { 3, "undefinedReason", ASN1_EXTENSION_ROOT,
1254                 dissect_h225_NULL },
1255         { 4, "conferenceListChoice", ASN1_NOT_EXTENSION_ROOT,
1256                 dissect_h225_NULL },
1257         { 5, "startH245", ASN1_NOT_EXTENSION_ROOT,
1258                 dissect_h225_NULL },
1259         { 6, "noH245", ASN1_NOT_EXTENSION_ROOT,
1260                 dissect_h225_NULL },
1261         { 7, "newTokens", ASN1_NOT_EXTENSION_ROOT,
1262                 dissect_h225_NULL },
1263         { 8, "featureSetUpdate", ASN1_NOT_EXTENSION_ROOT,
1264                 dissect_h225_NULL },
1265         { 9, "forwardedElements", ASN1_NOT_EXTENSION_ROOT,
1266                 dissect_h225_NULL },
1267         { 10, "transportedInformation", ASN1_NOT_EXTENSION_ROOT,
1268                 dissect_h225_NULL },
1269         { 0, NULL, 0, NULL }
1270 };
1271 static int
1272 dissect_h225_FacilityReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1273 {
1274         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_FacilityReason, ett_h225_FacilityReason, FacilityReason_choice, "FacilityReason", &(h225_pi.reason));
1275         return offset;
1276 }
1277
1278
1279
1280 static const value_string PublicTypeOfNumber_vals[] = {
1281         { 0, "unknown" },
1282         { 1, "internationalNumber" },
1283         { 2, "nationalNumber" },
1284         { 3, "networkSpecificNumber" },
1285         { 4, "subscriberNumber" },
1286         { 5, "abbreviatedNumber" },
1287         { 0, NULL}
1288 };
1289 static per_choice_t PublicTypeOfNumber_choice[] = {
1290         { 0, "unknown", ASN1_EXTENSION_ROOT,
1291                 dissect_h225_NULL },
1292         { 1, "internationalNumber", ASN1_EXTENSION_ROOT,
1293                 dissect_h225_NULL },
1294         { 2, "nationalNumber", ASN1_EXTENSION_ROOT,
1295                 dissect_h225_NULL },
1296         { 3, "networkSpecificNumber", ASN1_EXTENSION_ROOT,
1297                 dissect_h225_NULL },
1298         { 4, "subscriberNumber", ASN1_EXTENSION_ROOT,
1299                 dissect_h225_NULL },
1300         { 5, "abbreviatedNumber", ASN1_EXTENSION_ROOT,
1301                 dissect_h225_NULL },
1302         { 0, NULL, 0, NULL }
1303 };
1304 static int
1305 dissect_h225_PublicTypeOfNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1306 {
1307         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_PublicTypeOfNumber, ett_h225_PublicTypeOfNumber, PublicTypeOfNumber_choice, "PublicTypeOfNumber", NULL);
1308         return offset;
1309 }
1310
1311
1312
1313 static const value_string PrivateTypeOfNumber_vals[] = {
1314         { 0, "unknown" },
1315         { 1, "level2RegionalNumber" },
1316         { 2, "level1RegionalNumber" },
1317         { 3, "pISNSpecificNumber" },
1318         { 4, "localNumber" },
1319         { 5, "abbreviatedNumber" },
1320         { 0, NULL}
1321 };
1322 static per_choice_t PrivateTypeOfNumber_choice[] = {
1323         { 0, "unknown", ASN1_EXTENSION_ROOT,
1324                 dissect_h225_NULL },
1325         { 1, "level2RegionalNumber", ASN1_EXTENSION_ROOT,
1326                 dissect_h225_NULL },
1327         { 2, "level1RegionalNumber", ASN1_EXTENSION_ROOT,
1328                 dissect_h225_NULL },
1329         { 3, "pISNSpecificNumber", ASN1_EXTENSION_ROOT,
1330                 dissect_h225_NULL },
1331         { 4, "localNumber", ASN1_EXTENSION_ROOT,
1332                 dissect_h225_NULL },
1333         { 5, "abbreviatedNumber", ASN1_EXTENSION_ROOT,
1334                 dissect_h225_NULL },
1335         { 0, NULL, 0, NULL }
1336 };
1337 static int
1338 dissect_h225_PrivateTypeOfNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1339 {
1340         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_PrivateTypeOfNumber, ett_h225_PrivateTypeOfNumber, PrivateTypeOfNumber_choice, "PrivateTypeOfNumber", NULL);
1341         return offset;
1342 }
1343
1344
1345 static const value_string UseSpecifiedTransport_vals[] = {
1346         { 0, "tcp" },
1347         { 1, "annexE" },
1348         { 2, "sctp" },
1349         { 0, NULL}
1350 };
1351 static per_choice_t UseSpecifiedTransport_choice[] = {
1352         { 0, "tcp", ASN1_EXTENSION_ROOT,
1353                 dissect_h225_NULL },
1354         { 1, "annexE", ASN1_EXTENSION_ROOT,
1355                 dissect_h225_NULL },
1356         { 2, "sctp", ASN1_NOT_EXTENSION_ROOT,
1357                 dissect_h225_NULL },
1358         { 0, NULL, 0, NULL }
1359 };
1360 static int
1361 dissect_h225_UseSpecifiedTransport(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1362 {
1363         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_UseSpecifiedTransport, ett_h225_UseSpecifiedTransport, UseSpecifiedTransport_choice, "UseSpecifiedTransport", NULL);
1364         return offset;
1365 }
1366
1367
1368
1369 static const value_string SecurityErrors_vals[] = {
1370         { 0, "securityWrongSyncTime" },
1371         { 1, "securityReplay" },
1372         { 2, "securityWrongGeneralID" },
1373         { 3, "securityWrongSendersID" },
1374         { 4, "securityIntegrityFailed" },
1375         { 5, "securityWrongOID" },
1376         { 6, "securityDHmismatch" },
1377         { 7, "securityCertificateExpired" },
1378         { 8, "securityCertificateDateInvalid" },
1379         { 9, "securityCertificateRevoked" },
1380         { 10, "securityCertificateNotReadable" },
1381         { 11, "securityCertificateSignatureInvalid" },
1382         { 12, "securityCertificateMissing" },
1383         { 13, "securityCertificateIncomplete" },
1384         { 14, "securityUnsupportedCertificateAlgOID" },
1385         { 15, "securityUnknownCA" },
1386         { 0, NULL}
1387 };
1388 static per_choice_t SecurityErrors_choice[] = {
1389         { 0, "securityWrongSyncTime", ASN1_EXTENSION_ROOT,
1390                 dissect_h225_NULL },
1391         { 1, "securityReplay", ASN1_EXTENSION_ROOT,
1392                 dissect_h225_NULL },
1393         { 2, "securityWrongGeneralID", ASN1_EXTENSION_ROOT,
1394                 dissect_h225_NULL },
1395         { 3, "securityWrongSendersID", ASN1_EXTENSION_ROOT,
1396                 dissect_h225_NULL },
1397         { 4, "securityIntegrityFailed", ASN1_EXTENSION_ROOT,
1398                 dissect_h225_NULL },
1399         { 5, "securityWrongOID", ASN1_EXTENSION_ROOT,
1400                 dissect_h225_NULL },
1401         { 6, "securityDHmismatch", ASN1_EXTENSION_ROOT,
1402                 dissect_h225_NULL },
1403         { 7, "securityCertificateExpired", ASN1_EXTENSION_ROOT,
1404                 dissect_h225_NULL },
1405         { 8, "securityCertificateDateInvalid", ASN1_EXTENSION_ROOT,
1406                 dissect_h225_NULL },
1407         { 9, "securityCertificateRevoked", ASN1_EXTENSION_ROOT,
1408                 dissect_h225_NULL },
1409         { 10, "securityCertificateNotReadable", ASN1_EXTENSION_ROOT,
1410                 dissect_h225_NULL },
1411         { 11, "securityCertificateSignatureInvalid", ASN1_EXTENSION_ROOT,
1412                 dissect_h225_NULL },
1413         { 12, "securityCertificateMissing", ASN1_EXTENSION_ROOT,
1414                 dissect_h225_NULL },
1415         { 13, "securityCertificateIncomplete", ASN1_EXTENSION_ROOT,
1416                 dissect_h225_NULL },
1417         { 14, "securityUnsupportedCertificateAlgOID", ASN1_EXTENSION_ROOT,
1418                 dissect_h225_NULL },
1419         { 15, "securityUnknownCA", ASN1_EXTENSION_ROOT,
1420                 dissect_h225_NULL },
1421         { 0, NULL, 0, NULL }
1422 };
1423 static int
1424 dissect_h225_SecurityErrors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1425 {
1426         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SecurityErrors, ett_h225_SecurityErrors, SecurityErrors_choice, "SecurityErrors", NULL);
1427         return offset;
1428 }
1429
1430
1431
1432 static const value_string SecurityErrors2_vals[] = {
1433         { 0, "securityWrongSyncTime" },
1434         { 1, "securityReplay" },
1435         { 2, "securityWrongGeneralID" },
1436         { 3, "securityWrongSendersID" },
1437         { 4, "securityIntegrityFailed" },
1438         { 5, "securityWrongOID" },
1439         { 0, NULL}
1440 };
1441 static per_choice_t SecurityErrors2_choice[] = {
1442         { 0, "securityWrongSyncTime", ASN1_EXTENSION_ROOT,
1443                 dissect_h225_NULL },
1444         { 1, "securityReplay", ASN1_EXTENSION_ROOT,
1445                 dissect_h225_NULL },
1446         { 2, "securityWrongGeneralID", ASN1_EXTENSION_ROOT,
1447                 dissect_h225_NULL },
1448         { 3, "securityWrongSendersID", ASN1_EXTENSION_ROOT,
1449                 dissect_h225_NULL },
1450         { 4, "securityIntegrityFailed", ASN1_EXTENSION_ROOT,
1451                 dissect_h225_NULL },
1452         { 5, "securityWrongOID", ASN1_EXTENSION_ROOT,
1453                 dissect_h225_NULL },
1454         { 0, NULL, 0, NULL }
1455 };
1456 static int
1457 dissect_h225_SecurityErrors2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1458 {
1459         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SecurityErrors2, ett_h225_SecurityErrors2, SecurityErrors2_choice, "SecurityErrors2", NULL);
1460         return offset;
1461 }
1462
1463
1464 static const value_string ServiceControlSession_reason_vals[] = {
1465         { 0, "open" },
1466         { 1, "refresh" },
1467         { 2, "close" },
1468         { 0, NULL}
1469 };
1470 static per_choice_t ServiceControlSession_reason_choice[] = {
1471         { 0, "open", ASN1_EXTENSION_ROOT,
1472                 dissect_h225_NULL },
1473         { 1, "refresh", ASN1_EXTENSION_ROOT,
1474                 dissect_h225_NULL },
1475         { 2, "close", ASN1_EXTENSION_ROOT,
1476                 dissect_h225_NULL },
1477         { 0, NULL, 0, NULL }
1478 };
1479 static int
1480 dissect_h225_ServiceControlSession_reason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1481 {
1482         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_ServiceControlSession_reason, ett_h225_ServiceControlSession_reason, ServiceControlSession_reason_choice, "ServiceControlSession_reason", NULL);
1483         return offset;
1484 }
1485
1486
1487
1488 static const value_string billingMode_vals[] = {
1489         { 0, "credit" },
1490         { 1, "debit" },
1491         { 0, NULL}
1492 };
1493 static per_choice_t billingMode_choice[] = {
1494         { 0, "credit", ASN1_EXTENSION_ROOT,
1495                 dissect_h225_NULL },
1496         { 1, "debit", ASN1_EXTENSION_ROOT,
1497                 dissect_h225_NULL },
1498         { 0, NULL, 0, NULL }
1499 };
1500 static int
1501 dissect_h225_billingMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1502 {
1503         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_billingMode, ett_h225_billingMode, billingMode_choice, "billingMode", NULL);
1504         return offset;
1505 }
1506
1507
1508
1509 static const value_string CCSCcallStartingPoint_vals[] = {
1510         { 0, "alerting" },
1511         { 1, "connect" },
1512         { 0, NULL}
1513 };
1514 static per_choice_t CCSCcallStartingPoint_choice[] = {
1515         { 0, "alerting", ASN1_EXTENSION_ROOT,
1516                 dissect_h225_NULL },
1517         { 1, "connect", ASN1_EXTENSION_ROOT,
1518                 dissect_h225_NULL },
1519         { 0, NULL, 0, NULL }
1520 };
1521 static int
1522 dissect_h225_CCSCcallStartingPoint(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1523 {
1524         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_CCSCcallStartingPoint, ett_h225_CCSCcallStartingPoint, CCSCcallStartingPoint_choice, "CCSCcallStartingPoint", NULL);
1525         return offset;
1526 }
1527
1528
1529
1530 static const value_string GatekeeperRejectReason_vals[] = {
1531         { 0, "resourceUnavailable" },
1532         { 1, "terminalExcluded" },
1533         { 2, "invalidRevision" },
1534         { 3, "undefinedReason" },
1535         { 4, "securityDenial" },
1536         { 5, "genericDataReason" },
1537         { 6, "neededFeatureNotSupported" },
1538         { 7, "securityError" },
1539         { 0, NULL}
1540 };
1541 static per_choice_t GatekeeperRejectReason_choice[] = {
1542         { 0, "resourceUnavailable", ASN1_EXTENSION_ROOT,
1543                 dissect_h225_NULL },
1544         { 1, "terminalExcluded", ASN1_EXTENSION_ROOT,
1545                 dissect_h225_NULL },
1546         { 2, "invalidRevision", ASN1_EXTENSION_ROOT,
1547                 dissect_h225_NULL },
1548         { 3, "undefinedReason", ASN1_EXTENSION_ROOT,
1549                 dissect_h225_NULL },
1550         { 4, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
1551                 dissect_h225_NULL },
1552         { 5, "genericDataReason", ASN1_NOT_EXTENSION_ROOT,
1553                 dissect_h225_NULL },
1554         { 6, "neededFeatureNotSupported", ASN1_NOT_EXTENSION_ROOT,
1555                 dissect_h225_NULL },
1556         { 7, "securityError", ASN1_NOT_EXTENSION_ROOT,
1557                 dissect_h225_SecurityErrors },
1558         { 0, NULL, 0, NULL }
1559 };
1560 static int
1561 dissect_h225_GatekeeperRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1562 {
1563         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_GatekeeperRejectReason, ett_h225_GatekeeperRejectReason, GatekeeperRejectReason_choice, "GatekeeperRejectReason", &(h225_pi.reason));
1564         return offset;
1565 }
1566
1567
1568
1569 static const value_string UnregRequestReason_vals[] = {
1570         { 0, "reregistrationRequired" },
1571         { 1, "ttlExpired" },
1572         { 2, "securityDenial" },
1573         { 3, "undefinedReason" },
1574         { 4, "maintenance" },
1575         { 5, "securityError" },
1576         { 0, NULL}
1577 };
1578 static per_choice_t UnregRequestReason_choice[] = {
1579         { 0, "reregistrationRequired", ASN1_EXTENSION_ROOT,
1580                 dissect_h225_NULL },
1581         { 1, "ttlExpired", ASN1_EXTENSION_ROOT,
1582                 dissect_h225_NULL },
1583         { 2, "securityDenial", ASN1_EXTENSION_ROOT,
1584                 dissect_h225_NULL },
1585         { 3, "undefinedReason", ASN1_EXTENSION_ROOT,
1586                 dissect_h225_NULL },
1587         { 4, "maintenance", ASN1_NOT_EXTENSION_ROOT,
1588                 dissect_h225_NULL },
1589         { 5, "securityError", ASN1_NOT_EXTENSION_ROOT,
1590                 dissect_h225_SecurityErrors2 },
1591         { 0, NULL, 0, NULL }
1592 };
1593 static int
1594 dissect_h225_UnregRequestReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1595 {
1596         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_UnregRequestReason, ett_h225_UnregRequestReason, UnregRequestReason_choice, "UnregRequestReason", &(h225_pi.reason));
1597         return offset;
1598 }
1599
1600
1601
1602 static const value_string UnregRejectReason_vals[] = {
1603         { 0, "notCurrentlyRegistered" },
1604         { 1, "callInProgress" },
1605         { 2, "undefinedReason" },
1606         { 3, "permissionDenied" },
1607         { 4, "securityDenial" },
1608         { 5, "securityError" },
1609         { 0, NULL}
1610 };
1611 static per_choice_t UnregRejectReason_choice[] = {
1612         { 0, "notCurrentlyRegistered", ASN1_EXTENSION_ROOT,
1613                 dissect_h225_NULL },
1614         { 1, "callInProgress", ASN1_EXTENSION_ROOT,
1615                 dissect_h225_NULL },
1616         { 2, "undefinedReason", ASN1_EXTENSION_ROOT,
1617                 dissect_h225_NULL },
1618         { 3, "permissionDenied", ASN1_NOT_EXTENSION_ROOT,
1619                 dissect_h225_NULL },
1620         { 4, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
1621                 dissect_h225_NULL },
1622         { 5, "securityError", ASN1_NOT_EXTENSION_ROOT,
1623                 dissect_h225_SecurityErrors2 },
1624         { 0, NULL, 0, NULL }
1625 };
1626 static int
1627 dissect_h225_UnregRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1628 {
1629         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_UnregRejectReason, ett_h225_UnregRejectReason, UnregRejectReason_choice, "UnregRejectReason", &(h225_pi.reason));
1630         return offset;
1631 }
1632
1633
1634
1635 static const value_string CallType_vals[] = {
1636         { 0, "pointToPoint" },
1637         { 1, "oneToN" },
1638         { 2, "nToOne" },
1639         { 3, "nToN" },
1640         { 0, NULL}
1641 };
1642 static per_choice_t CallType_choice[] = {
1643         { 0, "pointToPoint", ASN1_EXTENSION_ROOT,
1644                 dissect_h225_NULL },
1645         { 1, "oneToN", ASN1_EXTENSION_ROOT,
1646                 dissect_h225_NULL },
1647         { 2, "nToOne", ASN1_EXTENSION_ROOT,
1648                 dissect_h225_NULL },
1649         { 3, "nToN", ASN1_EXTENSION_ROOT,
1650                 dissect_h225_NULL },
1651         { 0, NULL, 0, NULL }
1652 };
1653 static int
1654 dissect_h225_CallType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1655 {
1656         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_CallType, ett_h225_CallType, CallType_choice, "CallType", NULL);
1657         return offset;
1658 }
1659
1660
1661 static const value_string CallModel_vals[] = {
1662         { 0, "direct" },
1663         { 1, "gatekeeperRouted" },
1664         { 0, NULL}
1665 };
1666 static per_choice_t CallModel_choice[] = {
1667         { 0, "direct", ASN1_EXTENSION_ROOT,
1668                 dissect_h225_NULL },
1669         { 1, "gatekeeperRouted", ASN1_EXTENSION_ROOT,
1670                 dissect_h225_NULL },
1671         { 0, NULL, 0, NULL }
1672 };
1673 static int
1674 dissect_h225_CallModel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1675 {
1676         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_CallModel, ett_h225_CallModel, CallModel_choice, "CallModel", NULL);
1677         return offset;
1678 }
1679
1680
1681
1682 static const value_string TransportQOS_vals[] = {
1683         { 0, "endpointControlled" },
1684         { 1, "gatekeeperControlled" },
1685         { 2, "noControl" },
1686         { 0, NULL}
1687 };
1688 static per_choice_t TransportQOS_choice[] = {
1689         { 0, "endpointControlled", ASN1_EXTENSION_ROOT,
1690                 dissect_h225_NULL },
1691         { 1, "gatekeeperControlled", ASN1_EXTENSION_ROOT,
1692                 dissect_h225_NULL },
1693         { 2, "noControl", ASN1_EXTENSION_ROOT,
1694                 dissect_h225_NULL },
1695         { 0, NULL, 0, NULL }
1696 };
1697 static int
1698 dissect_h225_TransportQOS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1699 {
1700         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_TransportQOS, ett_h225_TransportQOS, TransportQOS_choice, "TransportQOS", NULL);
1701         return offset;
1702 }
1703
1704
1705 static const value_string BandRejectReason_vals[] = {
1706         { 0, "notBound" },
1707         { 1, "invalidConferenceID" },
1708         { 2, "invalidPermission" },
1709         { 3, "insufficientResources" },
1710         { 4, "invalidRevision" },
1711         { 5, "undefinedReason" },
1712         { 6, "securityDenial" },
1713         { 7, "securityError" },
1714         { 0, NULL}
1715 };
1716 static per_choice_t BandRejectReason_choice[] = {
1717         { 0, "notBound", ASN1_EXTENSION_ROOT,
1718                 dissect_h225_NULL },
1719         { 1, "invalidConferenceID", ASN1_EXTENSION_ROOT,
1720                 dissect_h225_NULL },
1721         { 2, "invalidPermission", ASN1_EXTENSION_ROOT,
1722                 dissect_h225_NULL },
1723         { 3, "insufficientResources", ASN1_EXTENSION_ROOT,
1724                 dissect_h225_NULL },
1725         { 4, "invalidRevision", ASN1_EXTENSION_ROOT,
1726                 dissect_h225_NULL },
1727         { 5, "undefinedReason", ASN1_EXTENSION_ROOT,
1728                 dissect_h225_NULL },
1729         { 6, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
1730                 dissect_h225_NULL },
1731         { 7, "securityError", ASN1_NOT_EXTENSION_ROOT,
1732                 dissect_h225_SecurityErrors2 },
1733         { 0, NULL, 0, NULL }
1734 };
1735 static int
1736 dissect_h225_BandRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1737 {
1738         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_BandRejectReason, ett_h225_BandRejectReason, BandRejectReason_choice, "BandRejectReason", &(h225_pi.reason));
1739         return offset;
1740 }
1741
1742
1743
1744 static const value_string DisengageReason_vals[] = {
1745         { 0, "forcedDrop" },
1746         { 1, "normalDrop" },
1747         { 2, "undefinedReason" },
1748         { 0, NULL}
1749 };
1750 static per_choice_t DisengageReason_choice[] = {
1751         { 0, "forcedDrop", ASN1_EXTENSION_ROOT,
1752                 dissect_h225_NULL },
1753         { 1, "normalDrop", ASN1_EXTENSION_ROOT,
1754                 dissect_h225_NULL },
1755         { 2, "undefinedReason", ASN1_EXTENSION_ROOT,
1756                 dissect_h225_NULL },
1757         { 0, NULL, 0, NULL }
1758 };
1759 static int
1760 dissect_h225_DisengageReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1761 {
1762         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_DisengageReason, ett_h225_DisengageReason, DisengageReason_choice, "DisengageReason", &(h225_pi.reason));
1763         return offset;
1764 }
1765
1766
1767
1768 static const value_string DisengageRejectReason_vals[] = {
1769         { 0, "notRegistered" },
1770         { 1, "requestToDropOther" },
1771         { 2, "securityDenial" },
1772         { 3, "securityError" },
1773         { 0, NULL}
1774 };
1775 static per_choice_t DisengageRejectReason_choice[] = {
1776         { 0, "notRegistered", ASN1_EXTENSION_ROOT,
1777                 dissect_h225_NULL },
1778         { 1, "requestToDropOther", ASN1_EXTENSION_ROOT,
1779                 dissect_h225_NULL },
1780         { 2, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
1781                 dissect_h225_NULL },
1782         { 3, "securityError", ASN1_NOT_EXTENSION_ROOT,
1783                 dissect_h225_SecurityErrors2 },
1784         { 0, NULL, 0, NULL }
1785 };
1786 static int
1787 dissect_h225_DisengageRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1788 {
1789         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_DisengageRejectReason, ett_h225_DisengageRejectReason, DisengageRejectReason_choice, "DisengageRejectReason", &(h225_pi.reason));
1790         return offset;
1791 }
1792
1793
1794
1795
1796 static const value_string InfoRequestNakReason_vals[] = {
1797         { 0, "notRegistered" },
1798         { 1, "securityDenial" },
1799         { 2, "undefinedReason" },
1800         { 3, "securityError" },
1801         { 0, NULL}
1802 };
1803 static per_choice_t InfoRequestNakReason_choice[] = {
1804         { 0, "notRegistered", ASN1_EXTENSION_ROOT,
1805                 dissect_h225_NULL },
1806         { 1, "securityDenial", ASN1_EXTENSION_ROOT,
1807                 dissect_h225_NULL },
1808         { 2, "undefinedReason", ASN1_EXTENSION_ROOT,
1809                 dissect_h225_NULL },
1810         { 3, "securityError", ASN1_NOT_EXTENSION_ROOT,
1811                 dissect_h225_SecurityErrors2 },
1812         { 0, NULL, 0, NULL }
1813 };
1814 static int
1815 dissect_h225_InfoRequestNakReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1816 {
1817         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_InfoRequestNakReason, ett_h225_InfoRequestNakReason, InfoRequestNakReason_choice, "InfoRequestNakReason", &(h225_pi.reason));
1818         return offset;
1819 }
1820
1821
1822
1823 static const value_string SCRresult_vals[] = {
1824         { 0, "started" },
1825         { 1, "failed" },
1826         { 2, "stopped" },
1827         { 3, "notAvailable" },
1828         { 4, "neededFeatureNotSupported" },
1829         { 0, NULL}
1830 };
1831 static per_choice_t SCRresult_choice[] = {
1832         { 0, "started", ASN1_EXTENSION_ROOT,
1833                 dissect_h225_NULL },
1834         { 1, "failed", ASN1_EXTENSION_ROOT,
1835                 dissect_h225_NULL },
1836         { 2, "stopped", ASN1_EXTENSION_ROOT,
1837                 dissect_h225_NULL },
1838         { 3, "notAvailable", ASN1_EXTENSION_ROOT,
1839                 dissect_h225_NULL },
1840         { 4, "neededFeatureNotSupported", ASN1_EXTENSION_ROOT,
1841                 dissect_h225_NULL },
1842         { 0, NULL, 0, NULL }
1843 };
1844 static int
1845 dissect_h225_SCRresult(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1846 {
1847         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SCRresult, ett_h225_SCRresult, SCRresult_choice, "SCRresult", NULL);
1848         return offset;
1849 }
1850
1851 static int
1852 dissect_h225_object(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1853 {
1854         offset = dissect_per_object_identifier(tvb, offset, pinfo, tree,
1855                                 hf_h225_object,
1856                                 object);
1857         return offset;
1858 }
1859
1860 static int
1861 dissect_h225_t35CountryCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1862 {
1863         offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree,
1864                                 hf_h225_t35CountryCode, 0, 255,
1865                                 &t35CountryCode, NULL, FALSE);
1866         return offset;
1867 }
1868
1869
1870 static int
1871 dissect_h225_t35Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1872 {
1873         offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree,
1874                                 hf_h225_t35Extension, 0, 255,
1875                                 &t35Extension, NULL, FALSE);
1876         return offset;
1877 }
1878
1879 static int
1880 dissect_h225_manufacturerCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1881 {
1882         offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree,
1883                                 hf_h225_manufacturerCode, 0, 65535,
1884                                 &manufacturerCode, NULL, FALSE);
1885         return offset;
1886 }
1887
1888 static per_sequence_t H221NonStandard_sequence[] = {
1889         { "t35CountryCode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
1890                 dissect_h225_t35CountryCode },
1891         { "t35Extension", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
1892                 dissect_h225_t35Extension },
1893         { "manufacturerCode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
1894                 dissect_h225_manufacturerCode },
1895         { NULL, 0, 0, NULL }
1896 };
1897 static int
1898 dissect_h225_h221NonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1899 {
1900         t35CountryCode = 0;
1901         t35Extension = 0;
1902         manufacturerCode = 0;
1903
1904         offset = dissect_per_sequence(tvb, offset, pinfo, tree,
1905                                 hf_h225_h221NonStandard,
1906                                 ett_h225_H221NonStandard, H221NonStandard_sequence);
1907
1908         h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
1909
1910         return offset;
1911 }
1912
1913 static const value_string NonStandardIdentifier_vals[] = {
1914         { 0,    "object" },
1915         { 1,    "h221NonStandard" },
1916         { 0, NULL }
1917 };
1918 static per_choice_t NonStandardIdentifier_choice[] = {
1919         { 0,    "object", ASN1_EXTENSION_ROOT,
1920                 dissect_h225_object },
1921         { 1,    "h221NonStandard", ASN1_EXTENSION_ROOT,
1922                 dissect_h225_h221NonStandard },
1923         { 0, NULL, 0, NULL }
1924 };
1925 static int
1926 dissect_h225_nonStandardIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1927 {
1928         guint32 value;
1929
1930         *object = '\0';
1931         h221NonStandard = 0;
1932
1933         offset = dissect_per_choice(tvb, offset, pinfo, tree,
1934                                 hf_h225_nonStandardIdentifier,
1935                                 ett_h225_NonStandardIdentifier, NonStandardIdentifier_choice, "NonStandardIdentifier",
1936                                 &value);
1937
1938         switch (value) {
1939                 case 0 :  /* object */
1940                         nsp_handle = dissector_get_string_handle(nsp_object_dissector_table, object);
1941                         break;
1942                 case 1 :  /* h221NonStandard */
1943                         nsp_handle = dissector_get_port_handle(nsp_h221_dissector_table, h221NonStandard);
1944                         break;
1945                 default :
1946                         nsp_handle = NULL;
1947     }
1948
1949         return offset;
1950 }
1951
1952 static int
1953 dissect_h225_nsp_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1954 {
1955         guint32 value_offset, value_len;
1956         tvbuff_t *next_tvb;
1957
1958         offset = dissect_per_octet_string(tvb, offset, pinfo, tree,
1959                                 hf_h225_nsp_data, -1, -1,
1960                                 &value_offset, &value_len);
1961
1962         if (value_len > 0) {
1963                 next_tvb = tvb_new_subset(tvb, value_offset, value_len, value_len);
1964                 call_dissector((nsp_handle)?nsp_handle:data_handle, next_tvb, pinfo, tree);
1965         }
1966
1967         return offset;
1968 }
1969
1970 static per_sequence_t NonStandardParameter_sequence[] = {
1971         { "nonStandardIdentifier", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
1972                 dissect_h225_nonStandardIdentifier },
1973         { "data", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
1974                 dissect_h225_nsp_data },
1975         { NULL, 0, 0, NULL }
1976 };
1977
1978 int
1979 dissect_h225_NonStandardParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index)
1980 {
1981         nsp_handle = NULL;
1982
1983         offset = dissect_per_sequence(tvb, offset, pinfo, tree,
1984                                 hf_index,
1985                                 ett_h225_NonStandardParameter, NonStandardParameter_sequence);
1986
1987         return offset;
1988 }
1989
1990
1991 static int
1992 dissect_h225_nonStandardData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
1993 {
1994         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
1995                                 hf_h225_nonStandardData);
1996         return offset;
1997 }
1998
1999 static per_sequence_t GatekeeperInfo_sequence[] = {
2000         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2001                 dissect_h225_nonStandardData },
2002         { NULL, 0, 0, NULL }
2003 };
2004 static int
2005 dissect_h225_GatekeeperInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2006 {
2007         offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GatekeeperInfo, ett_h225_GatekeeperInfo, GatekeeperInfo_sequence);
2008         return offset;
2009 }
2010
2011 static int
2012 dissect_h225_nonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2013 {
2014         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
2015                                 hf_h225_nonStandard);
2016         return offset;
2017 }
2018
2019 static const value_string SecurityServiceMode_vals[] = {
2020         { 0, "nonStandard" },
2021         { 1, "none" },
2022         { 2, "default" },
2023         { 0, NULL}
2024 };
2025 static per_choice_t SecurityServiceMode_choice[] = {
2026         { 0, "nonStandard", ASN1_EXTENSION_ROOT,
2027                 dissect_h225_nonStandard },
2028         { 1, "none", ASN1_EXTENSION_ROOT,
2029                 dissect_h225_NULL },
2030         { 2, "default", ASN1_EXTENSION_ROOT,
2031                 dissect_h225_NULL },
2032         { 0, NULL, 0, NULL }
2033 };
2034 static int
2035 dissect_h225_SecurityServiceMode_encryption(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2036 {
2037         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SecurityServiceMode_encryption, ett_h225_SecurityServiceMode_encryption, SecurityServiceMode_choice, "Encryption", NULL);
2038         return offset;
2039 }
2040 static int
2041 dissect_h225_SecurityServiceMode_authentication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2042 {
2043         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SecurityServiceMode_authentication, ett_h225_SecurityServiceMode_authentication, SecurityServiceMode_choice, "Authentication", NULL);
2044         return offset;
2045 }
2046 static int
2047 dissect_h225_SecurityServiceMode_integrity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2048 {
2049         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SecurityServiceMode_integrity, ett_h225_SecurityServiceMode_integrity, SecurityServiceMode_choice, "Integrity", NULL);
2050         return offset;
2051 }
2052
2053
2054
2055 static per_sequence_t SecurityCapabilities_sequence[] = {
2056         { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2057                 dissect_h225_nonStandard },
2058         { "encryption", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2059                 dissect_h225_SecurityServiceMode_encryption },
2060         { "authenticaton", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2061                 dissect_h225_SecurityServiceMode_authentication },
2062         { "integrity", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2063                 dissect_h225_SecurityServiceMode_integrity },
2064         { NULL, 0, 0, NULL }
2065 };
2066 static int
2067 dissect_h225_SecurityCapabilities_tls(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2068 {
2069         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_SecurityCapabilities_tls, ett_h225_SecurityCapabilities_tls, SecurityCapabilities_sequence);
2070         return offset;
2071 }
2072 static int
2073 dissect_h225_SecurityCapabilities_ipsec(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2074 {
2075         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_SecurityCapabilities_ipsec, ett_h225_SecurityCapabilities_ipsec, SecurityCapabilities_sequence);
2076         return offset;
2077 }
2078
2079
2080
2081
2082 static const value_string H245Security_vals[] = {
2083         { 0, "nonStandard" },
2084         { 1, "noSecurity" },
2085         { 2, "tls" },
2086         { 3, "ipsec" },
2087         { 0, NULL}
2088 };
2089 static per_choice_t H245Security_choice[] = {
2090         { 0, "nonStandard", ASN1_EXTENSION_ROOT,
2091                 dissect_h225_nonStandard },
2092         { 1, "noSecurity", ASN1_EXTENSION_ROOT,
2093                 dissect_h225_NULL },
2094         { 2, "tls", ASN1_EXTENSION_ROOT,
2095                 dissect_h225_SecurityCapabilities_tls },
2096         { 3, "ipsec", ASN1_EXTENSION_ROOT,
2097                 dissect_h225_SecurityCapabilities_ipsec },
2098         { 0, NULL, 0, NULL }
2099 };
2100 static int
2101 dissect_h225_H245Security(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2102 {
2103         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_H245Security, ett_h225_H245Security, H245Security_choice, "H245Security", NULL);
2104         return offset;
2105 }
2106
2107 static int
2108 dissect_h225_nonStandardUsageTypes_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2109 {
2110         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
2111                                 hf_h225_nonStandardUsageTypes_item);
2112         return offset;
2113 }
2114
2115 static int
2116 dissect_h225_nonStandardUsageTypes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2117 {
2118         offset = dissect_per_sequence_of(tvb, offset, pinfo, tree,
2119                                 hf_h225_nonStandardUsageTypes,
2120                                 ett_h225_T_nonStandardUsageTypes, dissect_h225_nonStandardUsageTypes_item);
2121         return offset;
2122 }
2123
2124
2125 static per_sequence_t RasUsageInfoTypes_sequence[] = {
2126         { "nonStandardUsageTypes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2127                 dissect_h225_nonStandardUsageTypes },
2128         { "startTime", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2129                 dissect_h225_NULL },
2130         { "endTime", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2131                 dissect_h225_NULL },
2132         { "terminationCause", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2133                 dissect_h225_NULL },
2134         { NULL, 0, 0, NULL }
2135 };
2136 static int
2137 dissect_h225_RasUsageInfoTypes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2138 {
2139         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RasUsageInfoTypes, ett_h225_RasUsageInfoTypes, RasUsageInfoTypes_sequence);
2140         return offset;
2141 }
2142 static int
2143 dissect_h225_usageReportingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2144 {
2145         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_usageReportingCapability, ett_h225_RasUsageInfoTypes, RasUsageInfoTypes_sequence);
2146         return offset;
2147 }
2148
2149
2150
2151 static int
2152 dissect_h225_BandWidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2153 {
2154         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2155                 tree, hf_h225_BandWidth, 0, 4294967295UL,
2156                 NULL, NULL, FALSE);
2157         return offset;
2158 }
2159
2160
2161
2162 static int
2163 dissect_h225_channelRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2164 {
2165         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2166                 tree, hf_h225_channelRate, 0, 4294967295UL,
2167                 NULL, NULL, FALSE);
2168         return offset;
2169 }
2170
2171
2172
2173 static int
2174 dissect_h225_totalBandwidthRestriction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2175 {
2176         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2177                 tree, hf_h225_totalBandwidthRestriction, 0, 4294967295UL,
2178                 NULL, NULL, FALSE);
2179         return offset;
2180 }
2181
2182
2183 static int
2184 dissect_h225_allowedBandWidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2185 {
2186         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2187                 tree, hf_h225_allowedBandWidth, 0, 4294967295UL,
2188                 NULL, NULL, FALSE);
2189         return offset;
2190 }
2191
2192
2193
2194 static int
2195 dissect_h225_channelMultiplier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2196 {
2197         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2198                 tree, hf_h225_channelMultiplier, 1, 256,
2199                 NULL, NULL, FALSE);
2200         return offset;
2201 }
2202
2203
2204 static per_sequence_t DataRate_sequence[] = {
2205         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2206                 dissect_h225_nonStandardData },
2207         { "channelRate", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2208                 dissect_h225_channelRate },
2209         { "channelMultiplier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2210                 dissect_h225_channelMultiplier },
2211         { NULL, 0, 0, NULL }
2212 };
2213 static int
2214 dissect_h225_DataRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2215 {
2216         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_DataRate, ett_h225_DataRate, DataRate_sequence);
2217         return offset;
2218 }
2219 static int
2220 dissect_h225_gatewayDataRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2221 {
2222         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_gatewayDataRate, ett_h225_DataRate, DataRate_sequence);
2223         return offset;
2224 }
2225
2226
2227 static int
2228 dissect_h225_dataRatesSupported(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2229 {
2230         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_dataRatesSupported, ett_h225_dataRatesSupported, dissect_h225_DataRate );
2231         return offset;
2232 }
2233
2234
2235 static per_sequence_t TerminalInfo_sequence[] = {
2236         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2237                 dissect_h225_nonStandardData },
2238         { NULL, 0, 0, NULL }
2239 };
2240 static int
2241 dissect_h225_TerminalInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2242 {
2243         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_TerminalInfo, ett_h225_TerminalInfo, TerminalInfo_sequence);
2244         return offset;
2245 }
2246
2247
2248 static int
2249 dissect_h225_h248Message(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2250 {
2251         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_h248Message, -1, -1, NULL, NULL);
2252         return offset;
2253 }
2254
2255
2256 static per_sequence_t StimulusControl_sequence[] = {
2257         { "nonStandard", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2258                 dissect_h225_nonStandard },
2259         { "isText", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2260                 dissect_h225_NULL },
2261         { "h248Message", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2262                 dissect_h225_h248Message},
2263         { NULL, 0, 0, NULL }
2264 };
2265 static int
2266 dissect_h225_StimulusControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2267 {
2268         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_StimulusControl, ett_h225_StimulusControl, StimulusControl_sequence);
2269         return offset;
2270 }
2271
2272
2273
2274
2275 static int
2276 dissect_h225_conferenceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2277 {
2278         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_conferenceID, 16, 16, NULL, NULL);
2279         return offset;
2280 }
2281
2282
2283
2284 static int
2285 dissect_h225_replaceWithConferenceInvite(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2286 {
2287         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_replaceWithConferenceInvite, 16, 16, NULL, NULL);
2288         return offset;
2289 }
2290
2291
2292 static int
2293 dissect_h225_nonStandardReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2294 {
2295         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
2296                                 hf_h225_nonStandardReason);
2297         return offset;
2298 }
2299
2300 static const value_string ReleaseCompleteReason_vals[] = {
2301         { 0, "noBandwidth" },
2302         { 1, "gatekeeperResources" },
2303         { 2, "unreachableDestination" },
2304         { 3, "destinationRejection" },
2305         { 4, "invalidRevision" },
2306         { 5, "noPermission" },
2307         { 6, "unreachableGatekeeper" },
2308         { 7, "gatewayResources" },
2309         { 8, "badFormatAddress" },
2310         { 9, "adaptiveBusy" },
2311         { 10, "inConf" },
2312         { 11, "undefinedReason" },
2313         { 12, "facilityCallDeflection" },
2314         { 13, "securityDenied" },
2315         { 14, "calledPartyNotRegistered" },
2316         { 15, "callerNotRegistered" },
2317         { 16, "newConnectionNeeded" },
2318         { 17, "nonStandardReason" },
2319         { 18, "replaceWithConferenceInvite" },
2320         { 19, "genericDataReason" },
2321         { 20, "neededFeatureNotSupported" },
2322         { 21, "tunnelledSignallingRejected" },
2323         { 22, "invalidCID" },
2324         { 23, "invalidCID" },
2325         { 24, "securityError" },
2326         { 25, "hopCountExceeded" },
2327         { 0, NULL}
2328 };
2329 static per_choice_t ReleaseCompleteReason_choice[] = {
2330         { 0, "noBandwidth", ASN1_EXTENSION_ROOT,
2331                 dissect_h225_NULL },
2332         { 1, "gatekeeperResources", ASN1_EXTENSION_ROOT,
2333                 dissect_h225_NULL },
2334         { 2, "unreachableDestination", ASN1_EXTENSION_ROOT,
2335                 dissect_h225_NULL },
2336         { 3, "destinationRejection", ASN1_EXTENSION_ROOT,
2337                 dissect_h225_NULL },
2338         { 4, "invalidRevision", ASN1_EXTENSION_ROOT,
2339                 dissect_h225_NULL },
2340         { 5, "noPermission", ASN1_EXTENSION_ROOT,
2341                 dissect_h225_NULL },
2342         { 6, "unreachableGatekeeper", ASN1_EXTENSION_ROOT,
2343                 dissect_h225_NULL },
2344         { 7, "gatewayResources", ASN1_EXTENSION_ROOT,
2345                 dissect_h225_NULL },
2346         { 8, "badFormatAddress", ASN1_EXTENSION_ROOT,
2347                 dissect_h225_NULL },
2348         { 9, "adaptiveBusy", ASN1_EXTENSION_ROOT,
2349                 dissect_h225_NULL },
2350         { 10, "inConf", ASN1_EXTENSION_ROOT,
2351                 dissect_h225_NULL },
2352         { 11, "undefinedReason", ASN1_EXTENSION_ROOT,
2353                 dissect_h225_NULL },
2354         { 12, "facilityCallDeflection", ASN1_NOT_EXTENSION_ROOT,
2355                 dissect_h225_NULL },
2356         { 13, "securityDenied", ASN1_NOT_EXTENSION_ROOT,
2357                 dissect_h225_NULL },
2358         { 14, "calledPartyNotRegistered", ASN1_NOT_EXTENSION_ROOT,
2359                 dissect_h225_NULL },
2360         { 15, "callerNotRegistered", ASN1_NOT_EXTENSION_ROOT,
2361                 dissect_h225_NULL },
2362         { 16, "newConnectionNeeded", ASN1_NOT_EXTENSION_ROOT,
2363                 dissect_h225_NULL },
2364         { 17, "nonStandardReason", ASN1_NOT_EXTENSION_ROOT,
2365                 dissect_h225_nonStandardReason },
2366         { 18, "replaceWithConferenceInvite", ASN1_NOT_EXTENSION_ROOT,
2367                 dissect_h225_replaceWithConferenceInvite },
2368         { 19, "genericDataReason", ASN1_NOT_EXTENSION_ROOT,
2369                 dissect_h225_NULL },
2370         { 20, "neededFeatureNotSupported", ASN1_NOT_EXTENSION_ROOT,
2371                 dissect_h225_NULL },
2372         { 21, "tunnelledSignallingRejected", ASN1_NOT_EXTENSION_ROOT,
2373                 dissect_h225_NULL },
2374         { 22, "invalidCID", ASN1_NOT_EXTENSION_ROOT,
2375                 dissect_h225_NULL },
2376         { 23, "invalidCID", ASN1_NOT_EXTENSION_ROOT,
2377                 dissect_h225_NULL },
2378         { 24, "securityError", ASN1_NOT_EXTENSION_ROOT,
2379                 dissect_h225_SecurityErrors },
2380         { 25, "hopCountExceeded", ASN1_NOT_EXTENSION_ROOT,
2381                 dissect_h225_NULL },
2382         { 0, NULL, 0, NULL }
2383 };
2384 static int
2385 dissect_h225_ReleaseCompleteReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2386 {
2387         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_ReleaseCompleteReason, ett_h225_ReleaseCompleteReason, ReleaseCompleteReason_choice, "ReleaseCompleteReason", &(h225_pi.reason));
2388         return offset;
2389 }
2390
2391
2392
2393 static int
2394 dissect_h225_numberOfScnConnections(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2395 {
2396         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2397                 tree, hf_h225_numberOfScnConnections, 0, 65535,
2398                 NULL, NULL, FALSE);
2399         return offset;
2400 }
2401
2402 static per_sequence_t connectionParameters_sequence[] = {
2403         { "connectionType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2404                 dissect_h225_ScnConnectionType },
2405         { "numberOfScnConnections", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2406                 dissect_h225_numberOfScnConnections },
2407         { "connectionAggregation", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2408                 dissect_h225_ScnConnectionAggregation },
2409         { NULL, 0, 0, NULL }
2410 };
2411 static int
2412 dissect_h225_connectionParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2413 {
2414         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_connectionParameters, ett_h225_connectionParameters, connectionParameters_sequence);
2415         return offset;
2416 }
2417
2418
2419
2420
2421 static int
2422 dissect_h225_RequestSeqNum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2423 {
2424         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2425                 tree, hf_h225_RequestSeqNum, 1, 65535,
2426                 &(h225_pi.requestSeqNum), NULL, FALSE);
2427         return offset;
2428 }
2429
2430 static per_sequence_t RasUsageSpecification_when_sequence[] = {
2431         { "start", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2432                 dissect_h225_NULL },
2433         { "end", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2434                 dissect_h225_NULL },
2435         { "inIrr", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2436                 dissect_h225_NULL },
2437         { NULL, 0, 0, NULL }
2438 };
2439 static int
2440 dissect_h225_RasUsageSpecification_when(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2441 {
2442         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RasUsageSpecification_when, ett_h225_RasUsageSpecification_when, RasUsageSpecification_when_sequence);
2443         return offset;
2444 }
2445
2446
2447
2448 static per_sequence_t RasUsageSpecification_callStartingPoint_sequence[] = {
2449         { "alerting", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2450                 dissect_h225_NULL },
2451         { "connect", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2452                 dissect_h225_NULL },
2453         { NULL, 0, 0, NULL }
2454 };
2455 static int
2456 dissect_h225_RasUsageSpecification_callStartingPoint(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2457 {
2458         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RasUsageSpecification_callStartingPoint, ett_h225_RasUsageSpecification_callStartingPoint, RasUsageSpecification_callStartingPoint_sequence);
2459         return offset;
2460 }
2461
2462
2463
2464
2465 static per_sequence_t RasUsageSpecification_sequence[] = {
2466         { "when", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2467                 dissect_h225_RasUsageSpecification_when },
2468         { "callStartingPoint", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2469                 dissect_h225_RasUsageSpecification_callStartingPoint },
2470         { "required", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2471                 dissect_h225_RasUsageInfoTypes },
2472         { NULL, 0, 0, NULL }
2473 };
2474 static int
2475 dissect_h225_RasUsageSpecification(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2476 {
2477         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RasUsageSpecification, ett_h225_RasUsageSpecification, RasUsageSpecification_sequence);
2478         return offset;
2479 }
2480
2481
2482
2483
2484 static int
2485 dissect_h225_ipAddress_ip(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
2486 {
2487         /* byte aligned */
2488         if(offset&0x07){
2489                 offset=(offset&0xfffffff8)+8;
2490         }
2491         tvb_memcpy(tvb, (guint8 *)&ipv4_address, offset>>3, 4);
2492         proto_tree_add_ipv4(tree, hf_h225_ipAddress_ip, tvb, offset>>3, 4, ipv4_address);
2493         offset+=32;
2494         return offset;
2495 }
2496
2497
2498
2499 static int
2500 dissect_h225_ipAddress_port(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2501 {
2502         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2503                 tree, hf_h225_ipAddress_port, 0, 65535,
2504                 &ipv4_port, NULL, FALSE);
2505         return offset;
2506 }
2507
2508
2509
2510 static per_sequence_t ipAddress_sequence[] = {
2511         { "ip", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
2512                 dissect_h225_ipAddress_ip },
2513         { "port", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
2514                 dissect_h225_ipAddress_port },
2515         { NULL, 0, 0, NULL }
2516 };
2517 static int
2518 dissect_h225_ipAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2519 {
2520         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ipAddress, ett_h225_ipAddress, ipAddress_sequence);
2521         return offset;
2522 }
2523
2524
2525
2526 static const value_string routing_vals[] = {
2527         { 0, "strict" },
2528         { 1, "loose" },
2529         { 0, NULL}
2530 };
2531 static per_choice_t routing_choice[] = {
2532         { 0, "strict", ASN1_EXTENSION_ROOT,
2533                 dissect_h225_NULL },
2534         { 1, "loose", ASN1_EXTENSION_ROOT,
2535                 dissect_h225_NULL },
2536         { 0, NULL, 0, NULL }
2537 };
2538 static int
2539 dissect_h225_routing(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2540 {
2541         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_routing, ett_h225_routing, routing_choice, "routing", NULL);
2542         return offset;
2543 }
2544
2545
2546
2547
2548 static int
2549 dissect_h225_route(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2550 {
2551         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_route, ett_h225_route, dissect_h225_ipAddress_ip );
2552         return offset;
2553 }
2554
2555 static per_sequence_t ipSourceRoute_sequence[] = {
2556         { "ip", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2557                 dissect_h225_ipAddress_ip },
2558         { "port", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2559                 dissect_h225_ipAddress_port },
2560         { "route", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2561                 dissect_h225_route },
2562         { "routing", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2563                 dissect_h225_routing },
2564         { NULL, 0, 0, NULL }
2565 };
2566 static int
2567 dissect_h225_ipSourceRoute(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2568 {
2569         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ipSourceRoute, ett_h225_ipSourceRoute, ipSourceRoute_sequence);
2570         return offset;
2571 }
2572
2573
2574
2575
2576 static int
2577 dissect_h225_ipxNode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2578 {
2579         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_ipxNode, 6, 6, NULL, NULL);
2580         return offset;
2581 }
2582
2583
2584
2585 static int
2586 dissect_h225_ipxNetnum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2587 {
2588         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_ipxNetnum, 4, 4, NULL, NULL);
2589         return offset;
2590 }
2591
2592
2593 static int
2594 dissect_h225_ipxPort(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2595 {
2596         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_ipxPort, 2, 2, NULL, NULL);
2597         return offset;
2598 }
2599
2600 static per_sequence_t ipxAddress_sequence[] = {
2601         { "node", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
2602                 dissect_h225_ipxNode },
2603         { "netnum", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
2604                 dissect_h225_ipxNetnum },
2605         { "port", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
2606                 dissect_h225_ipxPort },
2607         { NULL, 0, 0, NULL }
2608 };
2609 static int
2610 dissect_h225_ipxAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2611 {
2612         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ipxAddress, ett_h225_ipxAddress, ipxAddress_sequence);
2613         return offset;
2614 }
2615
2616
2617 static int
2618 dissect_h225_ipv6Address_ip(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2619 {
2620         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_ipv6Address_ip, 16, 16, NULL, NULL);
2621         return offset;
2622 }
2623
2624 static int
2625 dissect_h225_ipv6Address_port(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2626 {
2627         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2628                 tree, hf_h225_ipv6Address_port, 0, 65535,
2629                 NULL, NULL, FALSE);
2630         return offset;
2631 }
2632
2633
2634
2635 static per_sequence_t ip6Address_sequence[] = {
2636         { "ip", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2637                 dissect_h225_ipv6Address_ip },
2638         { "port", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2639                 dissect_h225_ipv6Address_port },
2640         { NULL, 0, 0, NULL }
2641 };
2642 static int
2643 dissect_h225_ip6Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2644 {
2645         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ip6Address, ett_h225_ip6Address, ip6Address_sequence);
2646         return offset;
2647 }
2648
2649
2650
2651
2652 static int
2653 dissect_h225_netBios(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2654 {
2655         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_netBios, 16, 16, NULL, NULL);
2656         return offset;
2657 }
2658
2659
2660
2661
2662 static int
2663 dissect_h225_nsap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2664 {
2665         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_nsap, 1, 20, NULL, NULL);
2666         return offset;
2667 }
2668
2669 static int
2670 dissect_h225_nonStandardAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2671 {
2672         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
2673                                 hf_h225_nonStandardAddress);
2674         return offset;
2675 }
2676
2677 static const value_string TransportAddress_vals[] = {
2678         { 0, "ipAddress" },
2679         { 1, "ipSourceRoute" },
2680         { 2, "ipxAddress" },
2681         { 3, "ip6Address" },
2682         { 4, "netBios" },
2683         { 5, "nsap" },
2684         { 6, "nonStandardAddress" },
2685         { 0, NULL}
2686 };
2687 static per_choice_t TransportAddress_choice[] = {
2688         { 0, "ipAddress", ASN1_EXTENSION_ROOT,
2689                 dissect_h225_ipAddress },
2690         { 1, "ipSourceRoute", ASN1_EXTENSION_ROOT,
2691                 dissect_h225_ipSourceRoute },
2692         { 2, "ipxAddress", ASN1_EXTENSION_ROOT,
2693                 dissect_h225_ipxAddress },
2694         { 3, "ip6Address", ASN1_EXTENSION_ROOT,
2695                 dissect_h225_ip6Address },
2696         { 4, "netBios", ASN1_EXTENSION_ROOT,
2697                 dissect_h225_netBios },
2698         { 5, "nsap", ASN1_EXTENSION_ROOT,
2699                 dissect_h225_nsap },
2700         { 6, "nonStandardAddress", ASN1_EXTENSION_ROOT,
2701                 dissect_h225_nonStandardAddress },
2702         { 0, NULL, 0, NULL }
2703 };
2704 static int
2705 dissect_h225_transportID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2706 {
2707         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_transportID, ett_h225_TransportAddress, TransportAddress_choice, "transportID", NULL);
2708         return offset;
2709 }
2710 static int
2711 dissect_h225_alternativeAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2712 {
2713         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_alternativeAddress, ett_h225_TransportAddress, TransportAddress_choice, "alternativeAddress", NULL);
2714         return offset;
2715 }
2716 static int
2717 dissect_h225_sourceCallSignalAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2718 {
2719         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_sourceCallSignalAddress, ett_h225_TransportAddress, TransportAddress_choice, "sourceCallSignalAddress", NULL);
2720         return offset;
2721 }
2722 static int
2723 dissect_h225_CallSignalAddress2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2724 {
2725         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_CallSignalAddress2, ett_h225_TransportAddress, TransportAddress_choice, "CallSignalAddress2", NULL);
2726         return offset;
2727 }
2728 static int
2729 dissect_h225_destCallSignalAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2730 {
2731         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_destCallSignalAddress, ett_h225_TransportAddress, TransportAddress_choice, "destCallSignalAddress", NULL);
2732         return offset;
2733 }
2734
2735 /* this is an indication of where h245 is spoken,  try to pick it up if
2736    it was ipv4 and register h245 there */
2737 static int
2738 dissect_h225_h245Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2739 {
2740         ipv4_address=0;
2741         ipv4_port=0;
2742
2743         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_h245Address, ett_h225_TransportAddress, TransportAddress_choice, "h245Address", NULL);
2744
2745         if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && h245_handle){
2746                 address src_addr;
2747                 conversation_t *conv=NULL;
2748
2749                 src_addr.type=AT_IPv4;
2750                 src_addr.len=4;
2751                 src_addr.data=(const guint8 *)&ipv4_address;
2752
2753                 conv=find_conversation(&src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
2754                 if(!conv){
2755                         conv=conversation_new(&src_addr, &src_addr, PT_TCP, ipv4_port, ipv4_port, NO_ADDR_B|NO_PORT_B);
2756                         conversation_set_dissector(conv, h245_handle);
2757                 }
2758         }
2759         return offset;
2760 }
2761 static int
2762 dissect_h225_sendAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2763 {
2764         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_sendAddress, ett_h225_TransportAddress, TransportAddress_choice, "sendAddress", NULL);
2765         return offset;
2766 }
2767 static int
2768 dissect_h225_recvAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2769 {
2770         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_recvAddress, ett_h225_TransportAddress, TransportAddress_choice, "recvAddress", NULL);
2771         return offset;
2772 }
2773 static int
2774 dissect_h225_rasAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2775 {
2776         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_rasAddress, ett_h225_TransportAddress, TransportAddress_choice, "rasAddress", NULL);
2777         return offset;
2778 }
2779 static int
2780 dissect_h225_replyAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2781 {
2782         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_replyAddress, ett_h225_TransportAddress, TransportAddress_choice, "replyAddress", NULL);
2783         return offset;
2784 }
2785 int
2786 dissect_h225_TransportAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2787 {
2788         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_TransportAddress, ett_h225_TransportAddress, TransportAddress_choice, "TransportAddress", NULL);
2789         return offset;
2790 }
2791
2792
2793 static per_sequence_t TransportChannelInfo_sequence[] = {
2794         { "sendAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2795                 dissect_h225_sendAddress },
2796         { "recvAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2797                 dissect_h225_recvAddress },
2798         { NULL, 0, 0, NULL }
2799 };
2800 static int
2801 dissect_h225_rtpAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2802 {
2803         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_rtpAddress, ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
2804         return offset;
2805 }
2806 static int
2807 dissect_h225_rtcpAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2808 {
2809         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_rtcpAddress, ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
2810         return offset;
2811 }
2812 static int
2813 dissect_h225_h245(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2814 {
2815         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_h245, ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
2816         return offset;
2817 }
2818 static int
2819 dissect_h225_callSignaling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2820 {
2821         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_callSignaling, ett_h225_TransportChannelInfo, TransportChannelInfo_sequence);
2822         return offset;
2823 }
2824
2825 static int
2826 dissect_h225_carrierName(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2827 {
2828         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_carrierName, 1, 128);
2829         return offset;
2830 }
2831
2832
2833
2834 static int
2835 dissect_h225_carrierIdentificationCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2836 {
2837         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_carrierIdentificationCode, 3, 4, NULL, NULL);
2838         return offset;
2839 }
2840
2841 static per_sequence_t CarrierInfo_sequence[] = {
2842         { "carrierIdentificationCode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2843                 dissect_h225_carrierIdentificationCode },
2844         { "carrierName", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2845                 dissect_h225_carrierName },
2846         { NULL, 0, 0, NULL }
2847 };
2848 static int
2849 dissect_h225_CarrierInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2850 {
2851         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CarrierInfo, ett_h225_CarrierInfo, CarrierInfo_sequence);
2852         return offset;
2853 }
2854
2855 static int
2856 dissect_h225_segment(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2857 {
2858         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2859                 tree, hf_h225_segment, 0, 65535,
2860                 NULL, NULL, FALSE);
2861         return offset;
2862 }
2863
2864
2865 static const value_string InfoRequestResponseStatus_vals[] = {
2866         { 0, "complete" },
2867         { 1, "incomplete" },
2868         { 2, "segment" },
2869         { 3, "invalidCall" },
2870         { 0, NULL}
2871 };
2872 static per_choice_t InfoRequestResponseStatus_choice[] = {
2873         { 0, "complete", ASN1_EXTENSION_ROOT,
2874                 dissect_h225_NULL },
2875         { 1, "incomplete", ASN1_EXTENSION_ROOT,
2876                 dissect_h225_NULL },
2877         { 2, "segment", ASN1_EXTENSION_ROOT,
2878                 dissect_h225_segment },
2879         { 3, "invalidCall", ASN1_EXTENSION_ROOT,
2880                 dissect_h225_NULL },
2881         { 0, NULL, 0, NULL }
2882 };
2883 static int
2884 dissect_h225_InfoRequestResponseStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2885 {
2886         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_InfoRequestResponseStatus, ett_h225_InfoRequestResponseStatus, InfoRequestResponseStatus_choice, "InfoRequestResponseStatus", NULL);
2887         return offset;
2888 }
2889
2890
2891
2892
2893 static int
2894 dissect_h225_guid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2895 {
2896         guint32 value_length;
2897         guint32 value_offset;
2898
2899         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_guid, 16, 16, &(value_offset), &(value_length));
2900
2901         /* save call guid */
2902         tvb_memcpy(tvb, h225_pi.guid, value_offset, value_length);
2903
2904         return offset;
2905 }
2906
2907 static per_sequence_t CallIdentifier_sequence[] = {
2908         { "guid", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2909                 dissect_h225_guid },
2910         { NULL, 0, 0, NULL }
2911 };
2912 static int
2913 dissect_h225_CallIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2914 {
2915         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallIdentifier, ett_h225_CallIdentifier, CallIdentifier_sequence);
2916         return offset;
2917 }
2918
2919
2920 static int
2921 dissect_h225_globalCallId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2922 {
2923         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_globalCallId, 16, 16, NULL, NULL);
2924         return offset;
2925 }
2926
2927
2928 static int
2929 dissect_h225_threadId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2930 {
2931         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_threadId, 16, 16, NULL, NULL);
2932         return offset;
2933 }
2934
2935
2936 static per_sequence_t CallLinkage_sequence[] = {
2937         { "globalCallId", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2938                 dissect_h225_globalCallId },
2939         { "threadId", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2940                 dissect_h225_threadId },
2941         { NULL, 0, 0, NULL }
2942 };
2943 static int
2944 dissect_h225_CallLinkage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2945 {
2946         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallLinkage, ett_h225_CallLinkage, CallLinkage_sequence);
2947         return offset;
2948 }
2949
2950
2951
2952 static int
2953 dissect_h225_ClearToken(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2954 {
2955 NOT_DECODED_YET("ClearToken");
2956         return offset;
2957 }
2958
2959 static int
2960 dissect_h225_tokens(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2961 {
2962         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_tokens, ett_h225_tokens, dissect_h225_ClearToken);
2963         return offset;
2964 }
2965
2966
2967 static int
2968 dissect_h225_needToRegister(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2969 {
2970         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_needToRegister, NULL, NULL);
2971         return offset;
2972 }
2973
2974 static int
2975 dissect_h225_priority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
2976 {
2977         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
2978                 tree, hf_h225_priority, 0, 127,
2979                 NULL, NULL, FALSE);
2980         return offset;
2981 }
2982
2983
2984
2985 static int
2986 dissect_h225_GatekeeperIdentifier(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2987 {
2988         offset=dissect_per_BMPString(tvb, offset, pinfo, tree, hf_h225_GatekeeperIdentifier, 1, 128);
2989         return offset;
2990 }
2991
2992 static per_sequence_t AlternateGK_sequence[] = {
2993         { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2994                 dissect_h225_rasAddress },
2995         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
2996                 dissect_h225_GatekeeperIdentifier },
2997         { "needToRegister", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
2998                 dissect_h225_needToRegister },
2999         { "priority", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3000                 dissect_h225_priority },
3001         { NULL, 0, 0, NULL }
3002 };
3003 static int
3004 dissect_h225_AlternateGK(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3005 {
3006         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AlternateGK, ett_h225_AlternateGK, AlternateGK_sequence);
3007         return offset;
3008 }
3009
3010 static int
3011 dissect_h225_alternateGatekeeper(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3012 {
3013         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_alternateGatekeeper, ett_h225_alternateGatekeeper, dissect_h225_AlternateGK);
3014         return offset;
3015 }
3016
3017 static int
3018 dissect_h225_altGKisPermanent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3019 {
3020         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_altGKisPermanent, NULL, NULL);
3021         return offset;
3022 }
3023
3024 static per_sequence_t AltGKInfo_sequence[] = {
3025         { "alternateGatekeeper", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3026                 dissect_h225_alternateGatekeeper },
3027         { "altGKisPermanent", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3028                 dissect_h225_altGKisPermanent },
3029         { NULL, 0, 0, NULL }
3030 };
3031 static int
3032 dissect_h225_AltGKInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3033 {
3034         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AltGKInfo, ett_h225_AltGKInfo, AltGKInfo_sequence);
3035         return offset;
3036 }
3037
3038 static int
3039 dissect_h225_annexE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3040 {
3041         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_annexE, ett_h225_annexE, dissect_h225_TransportAddress);
3042         return offset;
3043 }
3044
3045 static int
3046 dissect_h225_sctp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3047 {
3048         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_sctp, ett_h225_sctp, dissect_h225_TransportAddress);
3049         return offset;
3050 }
3051 static per_sequence_t AlternateTransportAddress_sequence[] = {
3052         { "annexE", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3053                 dissect_h225_annexE },
3054         { "sctp", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3055                 dissect_h225_sctp },
3056         { NULL, 0, 0, NULL }
3057 };
3058 static int
3059 dissect_h225_AlternateTransportAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3060 {
3061         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AlternateTransportAddress, ett_h225_AlternateTransportAddress, AlternateTransportAddress_sequence);
3062         return offset;
3063 }
3064
3065 static int
3066 dissect_h225_callProceeding_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3067 {
3068         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_callProceeding_bool, NULL, NULL);
3069         return offset;
3070 }
3071 static int
3072 dissect_h225_setup_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3073 {
3074         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_setup_bool, NULL, NULL);
3075         return offset;
3076 }
3077 static int
3078 dissect_h225_connect_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3079 {
3080         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_connect_bool, NULL, NULL);
3081         return offset;
3082 }
3083 static int
3084 dissect_h225_alerting_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3085 {
3086         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_alerting_bool, NULL, NULL);
3087         return offset;
3088 }
3089 static int
3090 dissect_h225_information_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3091 {
3092         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_information_bool, NULL, NULL);
3093         return offset;
3094 }
3095 static int
3096 dissect_h225_releaseComplete_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3097 {
3098         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_releaseComplete_bool, NULL, NULL);
3099         return offset;
3100 }
3101 static int
3102 dissect_h225_facility_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3103 {
3104         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_facility_bool, NULL, NULL);
3105         return offset;
3106 }
3107 static int
3108 dissect_h225_progress_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3109 {
3110         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_progress_bool, NULL, NULL);
3111         return offset;
3112 }
3113 static int
3114 dissect_h225_empty_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3115 {
3116         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_empty_bool, NULL, NULL);
3117         return offset;
3118 }
3119 static int
3120 dissect_h225_status_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3121 {
3122         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_status_bool, NULL, NULL);
3123         return offset;
3124 }
3125 static int
3126 dissect_h225_statusInquiry_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3127 {
3128         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_statusInquiry_bool, NULL, NULL);
3129         return offset;
3130 }
3131 static int
3132 dissect_h225_setupAcknowledge_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3133 {
3134         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_setupAcknowledge_bool, NULL, NULL);
3135         return offset;
3136 }
3137 static int
3138 dissect_h225_notify_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3139 {
3140         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_notify_bool, NULL, NULL);
3141         return offset;
3142 }
3143
3144
3145 static per_sequence_t UUIEsRequested_sequence[] = {
3146         { "setup", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3147                 dissect_h225_setup_bool },
3148         { "callProceeding", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3149                 dissect_h225_callProceeding_bool },
3150         { "connect", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3151                 dissect_h225_connect_bool },
3152         { "alerting", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3153                 dissect_h225_alerting_bool },
3154         { "information", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3155                 dissect_h225_information_bool },
3156         { "releaseComplete", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3157                 dissect_h225_releaseComplete_bool },
3158         { "facility", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3159                 dissect_h225_facility_bool },
3160         { "progress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3161                 dissect_h225_progress_bool },
3162         { "empty", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3163                 dissect_h225_empty_bool },
3164         { "status", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3165                 dissect_h225_status_bool },
3166         { "statusInquiry", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3167                 dissect_h225_statusInquiry_bool },
3168         { "setupAcknowledge", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3169                 dissect_h225_setupAcknowledge_bool },
3170         { "notify", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3171                 dissect_h225_notify_bool },
3172         { NULL, 0, 0, NULL }
3173 };
3174 static int
3175 dissect_h225_UUIEsRequested(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3176 {
3177         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_UUIEsRequested, ett_h225_UUIEsRequested, UUIEsRequested_sequence);
3178         return offset;
3179 }
3180
3181 static int
3182 dissect_h225_conferenceCalling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3183 {
3184         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_conferenceCalling, NULL, NULL);
3185         return offset;
3186 }
3187
3188
3189
3190 static int
3191 dissect_h225_threePartyService(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3192 {
3193         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_threePartyService, NULL, NULL);
3194         return offset;
3195 }
3196
3197
3198 static per_sequence_t Q954Details_sequence[] = {
3199         { "conferenceCalling", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3200                 dissect_h225_conferenceCalling },
3201         { "threePartyService", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3202                 dissect_h225_threePartyService },
3203         { NULL, 0, 0, NULL }
3204 };
3205 static int
3206 dissect_h225_Q954Info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3207 {
3208         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_Q954Details, ett_h225_Q954Details, Q954Details_sequence);
3209         return offset;
3210 }
3211
3212 static int
3213 dissect_h225_q932Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3214 {
3215         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q932Full, NULL, NULL);
3216         return offset;
3217 }
3218
3219
3220 static int
3221 dissect_h225_q951Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3222 {
3223         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q951Full, NULL, NULL);
3224         return offset;
3225 }
3226
3227 static int
3228 dissect_h225_q952Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3229 {
3230         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q952Full, NULL, NULL);
3231         return offset;
3232 }
3233
3234 static int
3235 dissect_h225_q953Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3236 {
3237         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q953Full, NULL, NULL);
3238         return offset;
3239 }
3240
3241 static int
3242 dissect_h225_q955Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3243 {
3244         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q955Full, NULL, NULL);
3245         return offset;
3246 }
3247
3248 static int
3249 dissect_h225_q956Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3250 {
3251         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q956Full, NULL, NULL);
3252         return offset;
3253 }
3254
3255
3256 static int
3257 dissect_h225_q957Full(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3258 {
3259         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_q957Full, NULL, NULL);
3260         return offset;
3261 }
3262
3263 static per_sequence_t QseriesOptions_sequence[] = {
3264         { "q932Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3265                 dissect_h225_q932Full },
3266         { "q951Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3267                 dissect_h225_q951Full },
3268         { "q952Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3269                 dissect_h225_q952Full },
3270         { "q953Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3271                 dissect_h225_q953Full },
3272         { "q955Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3273                 dissect_h225_q955Full },
3274         { "q956Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3275                 dissect_h225_q956Full },
3276         { "q957Full", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3277                 dissect_h225_q957Full },
3278         { "q954Info", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3279                 dissect_h225_Q954Info },
3280         { NULL, 0, 0, NULL }
3281 };
3282 static int
3283 dissect_h225_callServices(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3284 {
3285         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_QseriesOptions, ett_h225_QseriesOptions, QseriesOptions_sequence);
3286         return offset;
3287 }
3288
3289 static int
3290 dissect_h225_cname(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3291 {
3292         offset=dissect_per_PrintableString(tvb, offset, pinfo, tree, hf_h225_cname, -1, -1);
3293         return offset;
3294 }
3295
3296
3297 static int
3298 dissect_h225_ssrc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3299 {
3300         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
3301                 tree, hf_h225_ssrc, 1, 4294967295UL,
3302                 NULL, NULL, FALSE);
3303         return offset;
3304 }
3305
3306
3307 static int
3308 dissect_h225_RTPsessionId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3309 {
3310         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
3311                 tree, hf_h225_RTPsessionId, 1, 255,
3312                 NULL, NULL, FALSE);
3313         return offset;
3314 }
3315
3316 static int
3317 dissect_h225_associatedSessionIds(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3318 {
3319         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_associatedSessionIds, ett_h225_associatedSessionIds, dissect_h225_RTPsessionId);
3320         return offset;
3321 }
3322 static per_sequence_t RTPSession_sequence[] = {
3323         { "rtpAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3324                 dissect_h225_rtpAddress },
3325         { "rtcpAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3326                 dissect_h225_rtcpAddress },
3327         { "cname", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3328                 dissect_h225_cname },
3329         { "ssrc", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3330                 dissect_h225_ssrc },
3331         { "sessionId", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3332                 dissect_h225_RTPsessionId },
3333         { "associatedSessionIds", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3334                 dissect_h225_associatedSessionIds },
3335         { "multicast", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3336                 dissect_h225_NULL },
3337         { "bandwidth", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3338                 dissect_h225_BandWidth },
3339         { NULL, 0, 0, NULL }
3340 };
3341 static int
3342 dissect_h225_RTPSession(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3343 {
3344         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RTPSession, ett_h225_RTPSession, RTPSession_sequence);
3345         return offset;
3346 }
3347
3348 static int
3349 dissect_h225_CryptoH323Token(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3350 {
3351 NOT_DECODED_YET("CryptoH323Token");
3352         return offset;
3353 }
3354
3355
3356 static int
3357 dissect_h225_cryptoTokens(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3358 {
3359         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_cryptoTokens, ett_h225_cryptoTokens, dissect_h225_CryptoH323Token);
3360         return offset;
3361 }
3362
3363
3364 static int
3365 dissect_h225_ProtocolIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3366 {
3367         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_ProtocolIdentifier, NULL);
3368         return offset;
3369 }
3370
3371 static per_sequence_t StatusUUIE_sequence[] = {
3372         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3373                 dissect_h225_ProtocolIdentifier },
3374         { "callIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3375                 dissect_h225_CallIdentifier },
3376         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3377                 dissect_h225_tokens },
3378         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3379                 dissect_h225_cryptoTokens },
3380         { NULL, 0, 0, NULL }
3381 };
3382 static int
3383 dissect_h225_StatusUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3384 {
3385         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_StatusUUIE, ett_h225_StatusUUIE, StatusUUIE_sequence);
3386         return offset;
3387 }
3388 static per_sequence_t StatusInquiryUUIE_sequence[] = {
3389         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3390                 dissect_h225_ProtocolIdentifier },
3391         { "callIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3392                 dissect_h225_CallIdentifier },
3393         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3394                 dissect_h225_tokens },
3395         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3396                 dissect_h225_cryptoTokens },
3397         { NULL, 0, 0, NULL }
3398 };
3399 static int
3400 dissect_h225_StatusInquiryUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3401 {
3402         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_StatusInquiryUUIE, ett_h225_StatusInquiryUUIE, StatusInquiryUUIE_sequence);
3403         return offset;
3404 }
3405 static per_sequence_t SetupAcknowledgeUUIE_sequence[] = {
3406         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3407                 dissect_h225_ProtocolIdentifier },
3408         { "callIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3409                 dissect_h225_CallIdentifier },
3410         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3411                 dissect_h225_tokens },
3412         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3413                 dissect_h225_cryptoTokens },
3414         { NULL, 0, 0, NULL }
3415 };
3416 static int
3417 dissect_h225_SetupAcknowledgeUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3418 {
3419         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_SetupAcknowledgeUUIE, ett_h225_SetupAcknowledgeUUIE, SetupAcknowledgeUUIE_sequence);
3420         return offset;
3421 }
3422 static per_sequence_t NotifyUUIE_sequence[] = {
3423         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3424                 dissect_h225_ProtocolIdentifier },
3425         { "callIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3426                 dissect_h225_CallIdentifier },
3427         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3428                 dissect_h225_tokens },
3429         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3430                 dissect_h225_cryptoTokens },
3431         { NULL, 0, 0, NULL }
3432 };
3433 static int
3434 dissect_h225_NotifyUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3435 {
3436         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_NotifyUUIE, ett_h225_NotifyUUIE, NotifyUUIE_sequence);
3437         return offset;
3438 }
3439
3440 static int
3441 dissect_h225_imsi(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3442 {
3443         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_imsi, 3, 16, "#*0123456789ABC", 15);
3444
3445         return offset;
3446 }
3447
3448
3449 static int
3450 dissect_h225_tmsi(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3451 {
3452         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_tmsi, 1, 4, NULL, NULL);
3453         return offset;
3454 }
3455
3456
3457 static int
3458 dissect_h225_msisdn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3459 {
3460         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_msisdn, 3, 16, "#*0123456789ABC", 15);
3461
3462         return offset;
3463 }
3464
3465
3466 static int
3467 dissect_h225_imei(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3468 {
3469         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_imei, 15, 16, "#*0123456789ABC", 15);
3470
3471         return offset;
3472 }
3473
3474 static int
3475 dissect_h225_hplmn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3476 {
3477         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_hplmn, 1, 4, "#*0123456789ABC", 15);
3478
3479         return offset;
3480 }
3481
3482 static int
3483 dissect_h225_vplmn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3484 {
3485         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_vplmn, 1, 4, "#*0123456789ABC", 15);
3486         return offset;
3487 }
3488
3489
3490 static per_sequence_t GSMUIM_sequence[] = {
3491         { "imsi", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3492                 dissect_h225_imsi },
3493         { "tmsi", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3494                 dissect_h225_tmsi },
3495         { "msisdn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3496                 dissect_h225_msisdn },
3497         { "imei", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3498                 dissect_h225_imei },
3499         { "hplmn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3500                 dissect_h225_hplmn },
3501         { "vplmn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3502                 dissect_h225_vplmn },
3503         { NULL, 0, 0, NULL }
3504 };
3505 static int
3506 dissect_h225_GSMUIM(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3507 {
3508         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GSMUIM, ett_h225_GSMUIM, GSMUIM_sequence);
3509         return offset;
3510 }
3511
3512 static int
3513 dissect_h225_sid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3514 {
3515         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_sid, 1, 4, "#*0123456789ABC", 15);
3516         return offset;
3517 }
3518
3519
3520 static int
3521 dissect_h225_mid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3522 {
3523         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_mid, 1, 4, "#*0123456789ABC", 15);
3524         return offset;
3525 }
3526
3527 static const value_string systemid_vals[] = {
3528         { 0, "sid" },
3529         { 1, "mid" },
3530         { 0, NULL}
3531 };
3532 static per_choice_t systemid_choice[] = {
3533         { 0, "sid", ASN1_EXTENSION_ROOT,
3534                 dissect_h225_sid },
3535         { 1, "mid", ASN1_EXTENSION_ROOT,
3536                 dissect_h225_mid },
3537         { 0, NULL, 0, NULL }
3538 };
3539 static int
3540 dissect_h225_systemid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3541 {
3542         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_systemid, ett_h225_systemid, systemid_choice, "systemid", NULL);
3543         return offset;
3544 }
3545
3546
3547
3548 static int
3549 dissect_h225_min(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3550 {
3551         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_mid, 3, 16, "#*0123456789ABC", 15);
3552         return offset;
3553 }
3554
3555
3556 static int
3557 dissect_h225_mdn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3558 {
3559         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_mdn, 3, 16, "#*0123456789ABC", 15);
3560         return offset;
3561 }
3562
3563 static int
3564 dissect_h225_esn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3565 {
3566         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_esn, 16, 16, "#*0123456789ABC", 15);
3567
3568         return offset;
3569 }
3570
3571 static int
3572 dissect_h225_mscid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3573 {
3574         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_mscid, 3, 16, "#*0123456789ABC", 15);
3575
3576         return offset;
3577 }
3578
3579
3580 static int
3581 dissect_h225_systemMyTypeCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3582 {
3583         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_systemMyTypeCode, 1, 1, NULL, NULL);
3584         return offset;
3585 }
3586
3587 static int
3588 dissect_h225_systemAccessType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3589 {
3590         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_systemAccessType, 1, 1, NULL, NULL);
3591         return offset;
3592 }
3593
3594 static int
3595 dissect_h225_qualificationInformationCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3596 {
3597         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_qualificationInformationCode, 1, 1, NULL, NULL);
3598         return offset;
3599 }
3600
3601 static int
3602 dissect_h225_sesn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3603 {
3604         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_sesn, 16, 16, "#*0123456789ABC", 15);
3605         return offset;
3606 }
3607
3608
3609 static int
3610 dissect_h225_soc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3611 {
3612         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_soc, 3, 16, "#*0123456789ABC", 15);
3613
3614         return offset;
3615 }
3616
3617 static per_sequence_t ANSI41UIM_sequence[] = {
3618         { "imsi", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3619                 dissect_h225_imsi },
3620         { "min", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3621                 dissect_h225_min },
3622         { "mdn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3623                 dissect_h225_mdn },
3624         { "msisdn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3625                 dissect_h225_msisdn },
3626         { "esn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3627                 dissect_h225_esn },
3628         { "mscid", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3629                 dissect_h225_mscid },
3630         { "systemid", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3631                 dissect_h225_systemid },
3632         { "systemMyTypeCode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3633                 dissect_h225_systemMyTypeCode },
3634         { "systemAccessType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3635                 dissect_h225_systemAccessType },
3636         { "qualificationInformationCode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3637                 dissect_h225_qualificationInformationCode },
3638         { "sesn", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3639                 dissect_h225_sesn },
3640         { "soc", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3641                 dissect_h225_soc },
3642         { NULL, 0, 0, NULL }
3643 };
3644 static int
3645 dissect_h225_ANSI41UIM(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3646 {
3647         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ANSI41UIM, ett_h225_ANSI41UIM, ANSI41UIM_sequence);
3648         return offset;
3649 }
3650
3651
3652 static const value_string MobileUIM_vals[] = {
3653         { 0, "ansi41uim" },
3654         { 1, "gsmuim" },
3655         { 0, NULL}
3656 };
3657 static per_choice_t MobileUIM_choice[] = {
3658         { 0, "ansi41uim", ASN1_EXTENSION_ROOT,
3659                 dissect_h225_ANSI41UIM },
3660         { 1, "gsmuim", ASN1_EXTENSION_ROOT,
3661                 dissect_h225_GSMUIM },
3662         { 0, NULL, 0, NULL }
3663 };
3664 static int
3665 dissect_h225_MobileUIM(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3666 {
3667         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_MobileUIM, ett_h225_MobileUIM, MobileUIM_choice, "MobileUIM", NULL);
3668         return offset;
3669 }
3670
3671
3672 static int
3673 dissect_h225_dataPartyNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3674 {
3675         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_dataPartyNumber, 1, 128, "#*,0123456789", 13);
3676
3677         return offset;
3678 }
3679
3680 static int
3681 dissect_h225_telexPartyNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3682 {
3683         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_telexPartyNumber, 1, 128, "#*,0123456789", 13);
3684         return offset;
3685 }
3686
3687
3688
3689 static int
3690 dissect_h225_nationalStandardPartyNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3691 {
3692         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_nationalStandardPartyNumber, 1, 128, "#*,0123456789", 13);
3693         return offset;
3694 }
3695
3696 static int
3697 dissect_h225_publicNumberDigits(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3698 {
3699         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_publicNumberDigits, 1, 128, "#*,0123456789", 13);
3700         return offset;
3701 }
3702
3703
3704 static int
3705 dissect_h225_privateNumberDigits(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3706 {
3707         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_privateNumberDigits, 1, 128, "#*,0123456789", 13);
3708         return offset;
3709 }
3710
3711
3712 static per_sequence_t e164Number_sequence[] = {
3713         { "publicTypeOfNumber", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3714                 dissect_h225_PublicTypeOfNumber },
3715         { "publicNumberDigits", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3716                 dissect_h225_publicNumberDigits },
3717         { NULL, 0, 0, NULL }
3718 };
3719 static int
3720 dissect_h225_e164Number(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3721 {
3722         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_e164Number, ett_h225_e164Number, e164Number_sequence);
3723         return offset;
3724 }
3725 static per_sequence_t privateNumber_sequence[] = {
3726         { "privateTypeOfNumber", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3727                 dissect_h225_PrivateTypeOfNumber },
3728         { "privateNumberDigits", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
3729                 dissect_h225_privateNumberDigits },
3730         { NULL, 0, 0, NULL }
3731 };
3732 static int
3733 dissect_h225_privateNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3734 {
3735         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_privateNumber, ett_h225_privateNumber, privateNumber_sequence);
3736         return offset;
3737 }
3738
3739 static const value_string PartyNumber_vals[] = {
3740         { 0, "e164Number" },
3741         { 1, "dataPartyNumber" },
3742         { 2, "telexPartyNumber" },
3743         { 3, "privateNumber" },
3744         { 4, "nationalStandardPartyNumber" },
3745         { 0, NULL}
3746 };
3747 static per_choice_t PartyNumber_choice[] = {
3748         { 0, "e164Number", ASN1_EXTENSION_ROOT,
3749                 dissect_h225_e164Number },
3750         { 1, "dataPartyNumber", ASN1_EXTENSION_ROOT,
3751                 dissect_h225_dataPartyNumber },
3752         { 2, "telexPartyNumber", ASN1_EXTENSION_ROOT,
3753                 dissect_h225_telexPartyNumber },
3754         { 3, "privateNumber", ASN1_EXTENSION_ROOT,
3755                 dissect_h225_privateNumber },
3756         { 4, "nationalStandardPartyNumber", ASN1_EXTENSION_ROOT,
3757                 dissect_h225_nationalStandardPartyNumber },
3758         { 0, NULL, 0, NULL }
3759 };
3760 static int
3761 dissect_h225_PartyNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3762 {
3763         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_PartyNumber, ett_h225_PartyNumber, PartyNumber_choice, "PartyNumber", NULL);
3764         return offset;
3765 }
3766 static int
3767 dissect_h225_startOfRange(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3768 {
3769         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_startOfRange, ett_h225_PartyNumber, PartyNumber_choice, "startOfRange", NULL);
3770         return offset;
3771 }
3772 static int
3773 dissect_h225_endOfRange(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3774 {
3775         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_endOfRange, ett_h225_PartyNumber, PartyNumber_choice, "endOfRange", NULL);
3776         return offset;
3777 }
3778
3779 static int
3780 dissect_h225_protocolType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3781 {
3782         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_protocolType, 1, 64);
3783         return offset;
3784 }
3785
3786 static int
3787 dissect_h225_protocolVariant(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3788 {
3789         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_protocolVariant, 1, 64);
3790         return offset;
3791 }
3792 static per_sequence_t TunnelledProtocolAlternateIdentifier_sequence[] = {
3793         { "protocolType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3794                 dissect_h225_protocolType },
3795         { "protocolVariant", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3796                 dissect_h225_protocolVariant },
3797         { NULL, 0, 0, NULL }
3798 };
3799 static int
3800 dissect_h225_TunnelledProtocolAlternateIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3801 {
3802         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_TunnelledProtocolAlternateIdentifier, ett_h225_TunnelledProtocolAlternateIdentifier, TunnelledProtocolAlternateIdentifier_sequence);
3803         return offset;
3804 }
3805
3806 static int
3807 dissect_h225_dialedDigits(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3808 {
3809         offset=dissect_per_restricted_character_string(tvb, offset, pinfo, tree, hf_h225_privateNumberDigits, 1, 128, "#,*0123456789", 13);
3810
3811         return offset;
3812 }
3813
3814 static int
3815 dissect_h225_h323Id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3816 {
3817         offset=dissect_per_BMPString(tvb, offset, pinfo, tree, hf_h225_h323ID, 1, 256);
3818         return offset;
3819 }
3820
3821 static int
3822 dissect_h225_urlId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3823 {
3824         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_urlId, 1, 512);
3825         return offset;
3826 }
3827
3828
3829 static int
3830 dissect_h225_emailId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3831 {
3832         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_emailId, 1, 512);
3833         return offset;
3834 }
3835
3836
3837 static const value_string AliasAddress_vals[] = {
3838         { 0, "dialedDigits" },
3839         { 1, "h323ID" },
3840         { 2, "urlID" },
3841         { 3, "transportID" },
3842         { 4, "emailID" },
3843         { 5, "partyNumber" },
3844         { 6, "mobileUIM" },
3845         { 0, NULL}
3846 };
3847 static per_choice_t AliasAddress_choice[] = {
3848         { 0, "dialedDigits", ASN1_EXTENSION_ROOT,
3849                 dissect_h225_dialedDigits },
3850         { 1, "h323ID", ASN1_EXTENSION_ROOT,
3851                 dissect_h225_h323Id },
3852         { 2, "urlID", ASN1_NOT_EXTENSION_ROOT,
3853                 dissect_h225_urlId },
3854         { 3, "transportID", ASN1_NOT_EXTENSION_ROOT,
3855                 dissect_h225_transportID },
3856         { 4, "emailID", ASN1_NOT_EXTENSION_ROOT,
3857                 dissect_h225_emailId },
3858         { 5, "partyNumber", ASN1_NOT_EXTENSION_ROOT,
3859                 dissect_h225_PartyNumber },
3860         { 6, "mobileUIM", ASN1_NOT_EXTENSION_ROOT,
3861                 dissect_h225_MobileUIM },
3862         { 0, NULL, 0, NULL }
3863 };
3864 int
3865 dissect_h225_AliasAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3866 {
3867         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_AliasAddress, ett_h225_AliasAddress, AliasAddress_choice, "AliasAddress", NULL);
3868         return offset;
3869 }
3870 static int
3871 dissect_h225_featureServerAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3872 {
3873         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_featureServerAlias, ett_h225_AliasAddress, AliasAddress_choice, "featureServerAlias", NULL);
3874         return offset;
3875 }
3876 static int
3877 dissect_h225_RemoteExtensionAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3878 {
3879         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_RemoteExtensionAddress, ett_h225_AliasAddress, AliasAddress_choice, "RemoteExtensionAddress", NULL);
3880         return offset;
3881 }
3882 static int
3883 dissect_h225_conferenceAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3884 {
3885         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_conferenceAlias, ett_h225_AliasAddress, AliasAddress_choice, "conferenceAlias", NULL);
3886         return offset;
3887 }
3888 static int
3889 dissect_h225_wildcard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3890 {
3891         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_wildcard, ett_h225_AliasAddress, AliasAddress_choice, "wildcard", NULL);
3892         return offset;
3893 }
3894 static int
3895 dissect_h225_prefix(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3896 {
3897         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_prefix, ett_h225_AliasAddress, AliasAddress_choice, "prefix", NULL);
3898         return offset;
3899 }
3900
3901 static per_sequence_t SupportedPrefix_sequence[] = {
3902         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3903                 dissect_h225_nonStandardData },
3904         { "prefix", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3905                 dissect_h225_prefix },
3906         { NULL, 0, 0, NULL }
3907 };
3908 static int
3909 dissect_h225_SupportedPrefix(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3910 {
3911         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_SupportedPrefix, ett_h225_SupportedPrefix, SupportedPrefix_sequence);
3912         return offset;
3913 }
3914
3915 static int
3916 dissect_h225_SupportedPrefixes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3917 {
3918         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_SupportedPrefixes, ett_h225_SupportedPrefixes, dissect_h225_SupportedPrefix);
3919         return offset;
3920 }
3921
3922
3923 static per_sequence_t H310Caps_sequence[] = {
3924         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3925                 dissect_h225_nonStandardData },
3926         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3927                 dissect_h225_dataRatesSupported },
3928         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3929                 dissect_h225_SupportedPrefixes },
3930         { NULL, 0, 0, NULL }
3931 };
3932 static int
3933 dissect_h225_H310Caps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3934 {
3935         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H310Caps, ett_h225_H310Caps, H310Caps_sequence);
3936         return offset;
3937 }
3938
3939
3940 static per_sequence_t H320Caps_sequence[] = {
3941         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3942                 dissect_h225_nonStandardData },
3943         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3944                 dissect_h225_dataRatesSupported },
3945         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3946                 dissect_h225_SupportedPrefixes },
3947         { NULL, 0, 0, NULL }
3948 };
3949 static int
3950 dissect_h225_H320Caps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3951 {
3952         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H320Caps, ett_h225_H320Caps, H320Caps_sequence);
3953         return offset;
3954 }
3955
3956
3957 static per_sequence_t H321Caps_sequence[] = {
3958         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3959                 dissect_h225_nonStandardData },
3960         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3961                 dissect_h225_dataRatesSupported },
3962         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3963                 dissect_h225_SupportedPrefixes },
3964         { NULL, 0, 0, NULL }
3965 };
3966 static int
3967 dissect_h225_H321Caps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3968 {
3969         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H321Caps, ett_h225_H321Caps, H321Caps_sequence);
3970         return offset;
3971 }
3972
3973
3974 static per_sequence_t H322Caps_sequence[] = {
3975         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3976                 dissect_h225_nonStandardData },
3977         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3978                 dissect_h225_dataRatesSupported },
3979         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3980                 dissect_h225_SupportedPrefixes },
3981         { NULL, 0, 0, NULL }
3982 };
3983 static int
3984 dissect_h225_H322Caps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
3985 {
3986         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H322Caps, ett_h225_H322Caps, H322Caps_sequence);
3987         return offset;
3988 }
3989
3990
3991 static per_sequence_t H323Caps_sequence[] = {
3992         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
3993                 dissect_h225_nonStandardData },
3994         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
3995                 dissect_h225_dataRatesSupported },
3996         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
3997                 dissect_h225_SupportedPrefixes },
3998         { NULL, 0, 0, NULL }
3999 };
4000 static int
4001 dissect_h225_H323Caps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4002 {
4003         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H323Caps, ett_h225_H323Caps, H323Caps_sequence);
4004         return offset;
4005 }
4006
4007
4008 static per_sequence_t H324Caps_sequence[] = {
4009         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4010                 dissect_h225_nonStandardData },
4011         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4012                 dissect_h225_dataRatesSupported },
4013         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4014                 dissect_h225_SupportedPrefixes },
4015         { NULL, 0, 0, NULL }
4016 };
4017 static int
4018 dissect_h225_H324Caps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4019 {
4020         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H324Caps, ett_h225_H324Caps, H324Caps_sequence);
4021         return offset;
4022 }
4023
4024
4025 static per_sequence_t VoiceCaps_sequence[] = {
4026         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4027                 dissect_h225_nonStandardData },
4028         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4029                 dissect_h225_dataRatesSupported },
4030         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4031                 dissect_h225_SupportedPrefixes },
4032         { NULL, 0, 0, NULL }
4033 };
4034 static int
4035 dissect_h225_VoiceCaps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4036 {
4037         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_VoiceCaps, ett_h225_VoiceCaps, VoiceCaps_sequence);
4038         return offset;
4039 }
4040
4041
4042 static per_sequence_t T120OnlyCaps_sequence[] = {
4043         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4044                 dissect_h225_nonStandardData },
4045         { "dataRatesSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4046                 dissect_h225_dataRatesSupported },
4047         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4048                 dissect_h225_SupportedPrefixes },
4049         { NULL, 0, 0, NULL }
4050 };
4051 static int
4052 dissect_h225_T120OnlyCaps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4053 {
4054         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_T120OnlyCaps, ett_h225_T120OnlyCaps, T120OnlyCaps_sequence);
4055         return offset;
4056 }
4057
4058 static per_sequence_t NonStandardProtocol_sequence[] = {
4059         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4060                 dissect_h225_nonStandardData },
4061         { "dataRatesSupported", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4062                 dissect_h225_dataRatesSupported },
4063         { "supportedPrefixes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4064                 dissect_h225_SupportedPrefixes },
4065         { NULL, 0, 0, NULL }
4066 };
4067 static int
4068 dissect_h225_NonStandardProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4069 {
4070         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_NonStandardProtocol, ett_h225_NonStandardProtocol, NonStandardProtocol_sequence);
4071         return offset;
4072 }
4073
4074
4075 static per_sequence_t SIPCaps_sequence[] = {
4076         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4077                 dissect_h225_nonStandardData },
4078         { "dataRatesSupported", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4079                 dissect_h225_dataRatesSupported },
4080         { "supportedPrefixes", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4081                 dissect_h225_SupportedPrefixes },
4082         { NULL, 0, 0, NULL }
4083 };
4084 static int
4085 dissect_h225_SIPCaps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4086 {
4087         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_SIPCaps, ett_h225_SIPCaps, SIPCaps_sequence);
4088         return offset;
4089 }
4090
4091 static per_sequence_t AddressPattern_range_sequence[] = {
4092         { "startOfRange", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
4093                 dissect_h225_startOfRange },
4094         { "endOfRange", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
4095                 dissect_h225_endOfRange },
4096         { NULL, 0, 0, NULL }
4097 };
4098 static int
4099 dissect_h225_AddressPattern_range(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4100 {
4101         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AddressPattern_range, ett_h225_AddressPattern_range, AddressPattern_range_sequence);
4102         return offset;
4103 }
4104
4105
4106 static const value_string AddressPattern_vals[] = {
4107         { 0, "wildcard" },
4108         { 1, "range" },
4109         { 0, NULL}
4110 };
4111 static per_choice_t AddressPattern_choice[] = {
4112         { 0, "wildcard", ASN1_EXTENSION_ROOT,
4113                 dissect_h225_wildcard },
4114         { 0, "range", ASN1_EXTENSION_ROOT,
4115                 dissect_h225_AddressPattern_range },
4116         { 0, NULL, 0, NULL }
4117 };
4118 static int
4119 dissect_h225_AddressPattern(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4120 {
4121         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_AddressPattern, ett_h225_AddressPattern, AddressPattern_choice, "AddressPattern", NULL);
4122         return offset;
4123 }
4124 static per_sequence_t ConferenceList_sequence[] = {
4125         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4126                 dissect_h225_conferenceID },
4127         { "conferenceAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4128                 dissect_h225_conferenceAlias },
4129         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4130                 dissect_h225_nonStandardData },
4131         { NULL, 0, 0, NULL }
4132 };
4133 static int
4134 dissect_h225_ConferenceList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4135 {
4136         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ConferenceList, ett_h225_ConferenceList, ConferenceList_sequence);
4137         return offset;
4138 }
4139
4140 static int
4141 dissect_h225_conferences(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4142 {
4143         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_conferences, ett_h225_conferences, dissect_h225_ConferenceList);
4144         return offset;
4145 }
4146 static per_sequence_t T38FaxAnnexbOnlyCaps_sequence[] = {
4147         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4148                 dissect_h225_nonStandardData },
4149         { "dataRatesSupported", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4150                 dissect_h225_dataRatesSupported },
4151         { "supportedPrefixes", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4152                 dissect_h225_SupportedPrefixes },
4153         { "t38FaxProtocol", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4154                 dissect_h245_DataProtocolCapability },
4155         { "t38FaxProfile", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4156                 dissect_h245_T38FaxProfile },
4157         { NULL, 0, 0, NULL }
4158 };
4159 static int
4160 dissect_h225_T38FaxAnnexbOnlyCaps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4161 {
4162         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_T38FaxAnnexbOnlyCaps, ett_h225_T38FaxAnnexbOnlyCaps, T38FaxAnnexbOnlyCaps_sequence);
4163         return offset;
4164 }
4165
4166
4167 static const value_string SupportedProtocols_vals[] = {
4168         { 0, "nonStandardData" },
4169         { 1, "h310" },
4170         { 2, "h320" },
4171         { 3, "h321" },
4172         { 4, "h322" },
4173         { 5, "h323" },
4174         { 6, "h324" },
4175         { 7, "voice" },
4176         { 8, "t120-only" },
4177         { 9, "nonStandardProtocol" },
4178         { 10, "t38FaxAnnexbOnly" },
4179         { 11, "sip" },
4180         { 0, NULL}
4181 };
4182 static per_choice_t SupportedProtocols_choice[] = {
4183         { 0, "nonStandardData", ASN1_EXTENSION_ROOT,
4184                 dissect_h225_nonStandardData },
4185         { 1, "h310", ASN1_EXTENSION_ROOT,
4186                 dissect_h225_H310Caps },
4187         { 2, "h320", ASN1_EXTENSION_ROOT,
4188                 dissect_h225_H320Caps },
4189         { 3, "h321", ASN1_EXTENSION_ROOT,
4190                 dissect_h225_H321Caps },
4191         { 4, "h322", ASN1_EXTENSION_ROOT,
4192                 dissect_h225_H322Caps },
4193         { 5, "h323", ASN1_EXTENSION_ROOT,
4194                 dissect_h225_H323Caps },
4195         { 6, "h324", ASN1_EXTENSION_ROOT,
4196                 dissect_h225_H324Caps },
4197         { 7, "voice", ASN1_EXTENSION_ROOT,
4198                 dissect_h225_VoiceCaps },
4199         { 8, "t120-only", ASN1_EXTENSION_ROOT,
4200                 dissect_h225_T120OnlyCaps },
4201         { 9, "nonStandardProtocol", ASN1_NOT_EXTENSION_ROOT,
4202                 dissect_h225_NonStandardProtocol },
4203         { 10, "t38FaxAnnexbOnly", ASN1_NOT_EXTENSION_ROOT,
4204                 dissect_h225_T38FaxAnnexbOnlyCaps },
4205         { 11, "sip", ASN1_NOT_EXTENSION_ROOT,
4206                 dissect_h225_SIPCaps },
4207         { 0, NULL, 0, NULL }
4208 };
4209 static int
4210 dissect_h225_SupportedProtocols(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4211 {
4212         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_SupportedProtocols, ett_h225_SupportedProtocols, SupportedProtocols_choice, "SupportedProtocols", NULL);
4213         return offset;
4214 }
4215
4216 static int
4217 dissect_h225_protocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4218 {
4219         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_protocol, ett_h225_protocol, dissect_h225_SupportedProtocols);
4220         return offset;
4221 }
4222
4223
4224
4225 static per_sequence_t GatewayInfo_sequence[] = {
4226         { "protocol", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4227                 dissect_h225_protocol },
4228         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4229                 dissect_h225_nonStandardData },
4230         { NULL, 0, 0, NULL }
4231 };
4232 static int
4233 dissect_h225_gateway(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4234 {
4235         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GatewayInfo, ett_h225_GatewayInfo, GatewayInfo_sequence);
4236         return offset;
4237 }
4238 static per_sequence_t McuInfo_sequence[] = {
4239         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4240                 dissect_h225_nonStandardData },
4241         { "protocol", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4242                 dissect_h225_protocol },
4243         { NULL, 0, 0, NULL }
4244 };
4245 static int
4246 dissect_h225_mcu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4247 {
4248         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_McuInfo, ett_h225_McuInfo, McuInfo_sequence);
4249         return offset;
4250 }
4251
4252
4253 static int
4254 dissect_h225_tunnelledProtocolObjectID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4255 {
4256         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_tunnelledProtocolObjectID, NULL);
4257         return offset;
4258 }
4259
4260
4261 static const value_string TunnelledProtocol_id_vals[] = {
4262         { 0, "tunnelledProtocolObjectID" },
4263         { 1, "tunnelledProtocolAlternateID" },
4264         { 0, NULL }
4265 };
4266 static per_choice_t TunnelledProtocol_id_choice[] = {
4267         { 0, "tunnelledProtocolObjectID", ASN1_EXTENSION_ROOT,
4268                 dissect_h225_tunnelledProtocolObjectID },
4269         { 1, "tunnelledProtocolAlternateID", ASN1_EXTENSION_ROOT,
4270                 dissect_h225_TunnelledProtocolAlternateIdentifier },
4271         { 0, NULL, 0, NULL }
4272 };
4273 static int
4274 dissect_h225_TunnelledProtocol_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4275 {
4276         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_TunnelledProtocol_id, ett_h225_TunnelledProtocol_id, TunnelledProtocol_id_choice, "id", NULL);
4277         return offset;
4278 }
4279
4280 static int
4281 dissect_h225_TunnelledProtocol_subIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4282 {
4283         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_TunnelledProtocol_subIdentifier, 1, 64);
4284         return offset;
4285 }
4286 static per_sequence_t TunnelledProtocol_sequence[] = {
4287         { "id", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4288                 dissect_h225_TunnelledProtocol_id },
4289         { "subIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4290                 dissect_h225_TunnelledProtocol_subIdentifier },
4291         { NULL, 0, 0, NULL }
4292 };
4293 static int
4294 dissect_h225_TunnelledProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4295 {
4296         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_TunnelledProtocol, ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
4297         return offset;
4298 }
4299 static int
4300 dissect_h225_desiredTunnelledProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4301 {
4302         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_desiredTunnelledProtocol, ett_h225_TunnelledProtocol, TunnelledProtocol_sequence);
4303         return offset;
4304 }
4305
4306
4307 static int
4308 dissect_h225_CicInfo_cic_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4309 {
4310         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_CicInfo_cic_item, 2, 4, NULL, NULL);
4311         return offset;
4312 }
4313
4314 static int
4315 dissect_h225_CicInfo_pointCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4316 {
4317         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_CicInfo_pointCode, 2, 5, NULL, NULL);
4318         return offset;
4319 }
4320
4321 static int
4322 dissect_h225_CicInfo_cic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4323 {
4324         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_CicInfo_cic, ett_h225_CicInfo_cic, dissect_h225_CicInfo_cic_item);
4325         return offset;
4326 }
4327
4328 static per_sequence_t CicInfo_sequence[] = {
4329         { "cic", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4330                 dissect_h225_CicInfo_cic },
4331         { "pointCode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4332                 dissect_h225_CicInfo_pointCode },
4333         { NULL, 0, 0, NULL }
4334 };
4335 static int
4336 dissect_h225_CicInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4337 {
4338         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CicInfo, ett_h225_CicInfo, CicInfo_sequence);
4339         return offset;
4340 }
4341
4342 static int
4343 dissect_h225_GroupID_member_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4344 {
4345         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
4346                 tree, hf_h225_GroupID_member_item, 0, 65535,
4347                 NULL, NULL, FALSE);
4348         return offset;
4349 }
4350
4351 static int
4352 dissect_h225_GroupID_member(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4353 {
4354         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_GroupID_member, ett_h225_GroupID_member, dissect_h225_GroupID_member_item);
4355         return offset;
4356 }
4357
4358 static int
4359 dissect_h225_GroupID_group(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4360 {
4361         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_GroupID_group, 1, 128);
4362         return offset;
4363 }
4364
4365 static per_sequence_t GroupID_sequence[] = {
4366         { "member", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4367                 dissect_h225_GroupID_member },
4368         { "group", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4369                 dissect_h225_GroupID_group },
4370         { NULL, 0, 0, NULL }
4371 };
4372 static int
4373 dissect_h225_GroupID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4374 {
4375         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GroupID, ett_h225_GroupID, GroupID_sequence);
4376         return offset;
4377 }
4378
4379 static per_sequence_t CircuitIdentifier_sequence[] = {
4380         { "cic", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4381                 dissect_h225_CicInfo },
4382         { "group", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4383                 dissect_h225_GroupID },
4384         { "carrier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4385                 dissect_h225_CarrierInfo },
4386         { NULL, 0, 0, NULL }
4387 };
4388 static int
4389 dissect_h225_sourceCircuitID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4390 {
4391         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_sourceCircuitID, ett_h225_CircuitIdentifier, CircuitIdentifier_sequence);
4392         return offset;
4393 }
4394 static int
4395 dissect_h225_destinationCircuitID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4396 {
4397         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_destinationCircuitID, ett_h225_CircuitIdentifier, CircuitIdentifier_sequence);
4398         return offset;
4399 }
4400
4401 static int
4402 dissect_h225_Generic_standard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4403 {
4404         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
4405                 tree, hf_h225_Generic_standard, 0, 16383,
4406                 NULL, NULL, TRUE);
4407         return offset;
4408 }
4409
4410
4411 static int
4412 dissect_h225_Generic_oid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4413 {
4414         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_Generic_oid, NULL);
4415         return offset;
4416 }
4417
4418
4419 static int
4420 dissect_h225_Generic_nonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4421 {
4422         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_Generic_nonStandard, 16, 16, NULL, NULL);
4423         return offset;
4424 }
4425
4426
4427 static const value_string GenericIdentifier_vals[] = {
4428         { 0, "standard" },
4429         { 1, "oid" },
4430         { 2, "nonStandard" },
4431         { 0, NULL}
4432 };
4433 static per_choice_t GenericIdentifier_choice[] = {
4434         { 0, "standard", ASN1_EXTENSION_ROOT,
4435                 dissect_h225_Generic_standard },
4436         { 1, "oid", ASN1_EXTENSION_ROOT,
4437                 dissect_h225_Generic_oid },
4438         { 2, "nonStandard", ASN1_EXTENSION_ROOT,
4439                 dissect_h225_Generic_nonStandard },
4440         { 0, NULL, 0, NULL }
4441 };
4442 static int
4443 dissect_h225_GenericIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4444 {
4445         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_GenericIdentifier, ett_h225_GenericIdentifier, GenericIdentifier_choice, "GenericIdentifier", NULL);
4446         return offset;
4447 }
4448
4449 static int dissect_h225_Content(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
4450
4451 static per_sequence_t EnumeratedParameter_sequence[] = {
4452         { "id", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4453                 dissect_h225_GenericIdentifier },
4454         { "content", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4455                 dissect_h225_Content },
4456         { NULL, 0, 0, NULL }
4457 };
4458 static int
4459 dissect_h225_EnumeratedParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4460 {
4461         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_EnumeratedParameter, ett_h225_EnumeratedParameter, EnumeratedParameter_sequence);
4462         return offset;
4463 }
4464
4465
4466 static int
4467 dissect_h225_parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4468 {
4469         offset=dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_h225_parameters, ett_h225_parameters, dissect_h225_EnumeratedParameter, 1, 512);
4470         return offset;
4471 }
4472
4473 static per_sequence_t GenericData_sequence[] = {
4474         { "id", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4475                 dissect_h225_GenericIdentifier },
4476         { "parameters", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4477                 dissect_h225_parameters },
4478         { NULL, 0, 0, NULL }
4479 };
4480 static int
4481 dissect_h225_GenericData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4482 {
4483         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GenericData, ett_h225_GenericData, GenericData_sequence);
4484         return offset;
4485 }
4486 static int
4487 dissect_h225_genericData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4488 {
4489         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_genericData, ett_h225_genericData, dissect_h225_GenericData);
4490         return offset;
4491 }
4492 static int
4493 dissect_h225_FeatureDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4494 {
4495         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_FeatureDescriptor, ett_h225_GenericData, GenericData_sequence);
4496         return offset;
4497 }
4498
4499 static int
4500 dissect_h225_Content_raw(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4501 {
4502         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_Content_raw, -1, -1, NULL, NULL);
4503         return offset;
4504 }
4505
4506
4507 static int
4508 dissect_h225_Content_text(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4509 {
4510         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_Content_text, -1, -1);
4511         return offset;
4512 }
4513
4514
4515
4516
4517 static int
4518 dissect_h225_Content_unicode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4519 {
4520         offset=dissect_per_BMPString(tvb, offset, pinfo, tree, hf_h225_unicode, -1, -1);
4521         return offset;
4522 }
4523
4524
4525
4526 static int
4527 dissect_h225_Content_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4528 {
4529         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_Content_bool, NULL, NULL);
4530         return offset;
4531 }
4532
4533
4534
4535 static int
4536 dissect_h225_Content_number8(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4537 {
4538         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
4539                 tree, hf_h225_Content_number8, 0, 255,
4540                 NULL, NULL, FALSE);
4541         return offset;
4542 }
4543
4544 static int
4545 dissect_h225_number16(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4546 {
4547         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
4548                 tree, hf_h225_number16, 0, 65535,
4549                 NULL, NULL, FALSE);
4550         return offset;
4551 }
4552
4553 static int
4554 dissect_h225_Content_number32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4555 {
4556         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
4557                 tree, hf_h225_Content_number32, 0, 4294967295UL,
4558                 NULL, NULL, FALSE);
4559         return offset;
4560 }
4561
4562 static int
4563 dissect_h225_Content_compound(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4564 {
4565         offset=dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_h225_Content_compound, ett_h225_Content_compound, dissect_h225_EnumeratedParameter, 1, 512);
4566         return offset;
4567 }
4568
4569 static int
4570 dissect_h225_Content_nested(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4571 {
4572         offset=dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_h225_Content_nested, ett_h225_Content_nested, dissect_h225_GenericData, 1, 16);
4573         return offset;
4574 }
4575
4576
4577
4578
4579
4580 static const value_string Content_vals[] = {
4581         { 0, "raw" },
4582         { 1, "text" },
4583         { 2, "unicode" },
4584         { 3, "bool" },
4585         { 4, "number8" },
4586         { 5, "number16" },
4587         { 6, "number32" },
4588         { 7, "id" },
4589         { 8, "alias" },
4590         { 9, "transport" },
4591         { 10, "compound" },
4592         { 11, "nested" },
4593         { 0, NULL}
4594 };
4595 static per_choice_t Content_choice[] = {
4596         { 0, "raw", ASN1_EXTENSION_ROOT,
4597                 dissect_h225_Content_raw },
4598         { 1, "text", ASN1_EXTENSION_ROOT,
4599                 dissect_h225_Content_text },
4600         { 2, "unicode", ASN1_EXTENSION_ROOT,
4601                 dissect_h225_Content_unicode },
4602         { 3, "bool", ASN1_EXTENSION_ROOT,
4603                 dissect_h225_Content_bool },
4604         { 4, "number8", ASN1_EXTENSION_ROOT,
4605                 dissect_h225_Content_number8 },
4606         { 5, "number16", ASN1_EXTENSION_ROOT,
4607                 dissect_h225_number16 },
4608         { 6, "number32", ASN1_EXTENSION_ROOT,
4609                 dissect_h225_Content_number32 },
4610         { 7, "id", ASN1_EXTENSION_ROOT,
4611                 dissect_h225_GenericIdentifier },
4612         { 8, "alias", ASN1_EXTENSION_ROOT,
4613                 dissect_h225_AliasAddress },
4614         { 9, "transport", ASN1_EXTENSION_ROOT,
4615                 dissect_h225_TransportAddress },
4616         { 10, "compound", ASN1_EXTENSION_ROOT,
4617                 dissect_h225_Content_compound },
4618         { 11, "nested", ASN1_EXTENSION_ROOT,
4619                 dissect_h225_Content_nested },
4620         { 0, NULL, 0, NULL }
4621 };
4622 static int
4623 dissect_h225_Content(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4624 {
4625         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_Content, ett_h225_Content, Content_choice, "Content", NULL);
4626         return offset;
4627 }
4628
4629
4630 static int
4631 dissect_h225_replacementFeatureSet(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4632 {
4633         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_replacementFeatureSet, NULL, NULL);
4634         return offset;
4635 }
4636
4637 static int
4638 dissect_h225_neededFeatures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4639 {
4640         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_neededFeatures, ett_h225_neededFeatures, dissect_h225_FeatureDescriptor);
4641         return offset;
4642 }
4643
4644 static int
4645 dissect_h225_desiredFeatures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4646 {
4647         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_desiredFeatures, ett_h225_desiredFeatures, dissect_h225_FeatureDescriptor);
4648         return offset;
4649 }
4650
4651 static int
4652 dissect_h225_supportedFeatures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4653 {
4654         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_supportedFeatures, ett_h225_supportedFeatures, dissect_h225_FeatureDescriptor);
4655         return offset;
4656 }
4657
4658 static per_sequence_t FeatureSet_sequence[] = {
4659         { "replacementFeatureSet", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4660                 dissect_h225_replacementFeatureSet },
4661         { "neededFeatures", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4662                 dissect_h225_neededFeatures },
4663         { "desiredFeatures", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4664                 dissect_h225_desiredFeatures },
4665         { "supportedFeatures", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4666                 dissect_h225_supportedFeatures },
4667         { NULL, 0, 0, NULL }
4668 };
4669 static int
4670 dissect_h225_FeatureSet(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4671 {
4672         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_FeatureSet, ett_h225_FeatureSet, FeatureSet_sequence);
4673         return offset;
4674 }
4675
4676 static int
4677 dissect_h225_CallsAvailable_calls(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4678 {
4679         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
4680                 tree, hf_h225_CallsAvailable_calls, 0, 4294967295UL,
4681                 NULL, NULL, FALSE);
4682         return offset;
4683 }
4684
4685
4686 static int
4687 dissect_h225_CallsAvailable_group(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4688 {
4689         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_CallsAvailable_group, 1, 128);
4690         return offset;
4691 }
4692
4693 static per_sequence_t CallsAvailable_sequence[] = {
4694         { "calls", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4695                 dissect_h225_CallsAvailable_calls },
4696         { "group", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4697                 dissect_h225_CallsAvailable_group },
4698         { "carrier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4699                 dissect_h225_CarrierInfo },
4700         { NULL, 0, 0, NULL }
4701 };
4702 static int
4703 dissect_h225_CallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4704 {
4705         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallsAvailable, ett_h225_CallsAvailable, CallsAvailable_sequence);
4706         return offset;
4707 }
4708
4709 static int
4710 dissect_h225_voiceGwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4711 {
4712         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_voiceGwCallsAvailable, ett_h225_voiceGwCallsAvailable, dissect_h225_CallsAvailable);
4713         return offset;
4714 }
4715
4716 static int
4717 dissect_h225_h310GwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4718 {
4719         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h310GwCallsAvailable, ett_h225_h310GwCallsAvailable, dissect_h225_CallsAvailable);
4720         return offset;
4721 }
4722
4723 static int
4724 dissect_h225_h320GwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4725 {
4726         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h320GwCallsAvailable, ett_h225_h320GwCallsAvailable, dissect_h225_CallsAvailable);
4727         return offset;
4728 }
4729
4730 static int
4731 dissect_h225_h321GwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4732 {
4733         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h321GwCallsAvailable, ett_h225_h321GwCallsAvailable, dissect_h225_CallsAvailable);
4734         return offset;
4735 }
4736
4737 static int
4738 dissect_h225_h322GwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4739 {
4740         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h322GwCallsAvailable, ett_h225_h322GwCallsAvailable, dissect_h225_CallsAvailable);
4741         return offset;
4742 }
4743
4744 static int
4745 dissect_h225_h323GwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4746 {
4747         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h323GwCallsAvailable, ett_h225_h323GwCallsAvailable, dissect_h225_CallsAvailable);
4748         return offset;
4749 }
4750
4751 static int
4752 dissect_h225_h324GwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4753 {
4754         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h324GwCallsAvailable, ett_h225_h324GwCallsAvailable, dissect_h225_CallsAvailable);
4755         return offset;
4756 }
4757
4758 static int
4759 dissect_h225_t120OnlyGwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4760 {
4761         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_t120OnlyGwCallsAvailable, ett_h225_t120OnlyGwCallsAvailable, dissect_h225_CallsAvailable);
4762         return offset;
4763 }
4764
4765 static int
4766 dissect_h225_t38FaxAnnexbOnlyGwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4767 {
4768         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_t38FaxAnnexbOnlyGwCallsAvailable, ett_h225_t38FaxAnnexbOnlyGwCallsAvailable, dissect_h225_CallsAvailable);
4769         return offset;
4770 }
4771
4772 static int
4773 dissect_h225_terminalCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4774 {
4775         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_terminalCallsAvailable, ett_h225_terminalCallsAvailable, dissect_h225_CallsAvailable);
4776         return offset;
4777 }
4778
4779 static int
4780 dissect_h225_mcuCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4781 {
4782         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_mcuCallsAvailable, ett_h225_mcuCallsAvailable, dissect_h225_CallsAvailable);
4783         return offset;
4784 }
4785
4786 static int
4787 dissect_h225_sipGwCallsAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4788 {
4789         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_sipGwCallsAvailable, ett_h225_sipGwCallsAvailable, dissect_h225_CallsAvailable);
4790         return offset;
4791 }
4792 static per_sequence_t CallCapacityInfo_sequence[] = {
4793         { "voiceGwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4794                 dissect_h225_voiceGwCallsAvailable },
4795         { "h310GwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4796                 dissect_h225_h310GwCallsAvailable },
4797         { "h320GwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4798                 dissect_h225_h320GwCallsAvailable },
4799         { "h321GwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4800                 dissect_h225_h321GwCallsAvailable },
4801         { "h322GwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4802                 dissect_h225_h322GwCallsAvailable },
4803         { "h323GwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4804                 dissect_h225_h323GwCallsAvailable },
4805         { "h324GwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4806                 dissect_h225_h324GwCallsAvailable },
4807         { "t120OnlyGwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4808                 dissect_h225_t120OnlyGwCallsAvailable },
4809         { "t38FaxAnnexbOnlyGwCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4810                 dissect_h225_t38FaxAnnexbOnlyGwCallsAvailable },
4811         { "terminalCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4812                 dissect_h225_terminalCallsAvailable },
4813         { "mcuCallsAvailable", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4814                 dissect_h225_mcuCallsAvailable },
4815         { "sipGwCallsAvailable", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4816                 dissect_h225_sipGwCallsAvailable },
4817         { NULL, 0, 0, NULL }
4818 };
4819 static int
4820 dissect_h225_maximumCallCapacity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4821 {
4822         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_maximumCallCapacity, ett_h225_CallCapacityInfo, CallCapacityInfo_sequence);
4823         return offset;
4824 }
4825 static int
4826 dissect_h225_currentCallCapacity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4827 {
4828         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_currentCallCapacity, ett_h225_CallCapacityInfo, CallCapacityInfo_sequence);
4829         return offset;
4830 }
4831
4832 static per_sequence_t CallCapacity_sequence[] = {
4833         { "maximumCallCapacity", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4834                 dissect_h225_maximumCallCapacity },
4835         { "currentCallCapacity", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4836                 dissect_h225_currentCallCapacity },
4837         { NULL, 0, 0, NULL }
4838 };
4839 static int
4840 dissect_h225_CallCapacity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4841 {
4842         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallCapacity, ett_h225_CallCapacity, CallCapacity_sequence);
4843         return offset;
4844 }
4845
4846 static int
4847 dissect_h225_productID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4848 {
4849         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_productID, 1, 256, NULL, NULL);
4850         return offset;
4851 }
4852
4853 static int
4854 dissect_h225_versionID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4855 {
4856         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_versionID, 1, 256, NULL, NULL);
4857         return offset;
4858 }
4859
4860 static int
4861 dissect_h225_enterpriseNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4862 {
4863         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_enterpriseNumber, NULL);
4864         return offset;
4865 }
4866
4867 static per_sequence_t VendorIdentifier_sequence[] = {
4868         { "vendor", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4869                 dissect_h245_h221NonStandard },
4870         { "productId", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4871                 dissect_h225_productID },
4872         { "versionId", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4873                 dissect_h225_versionID },
4874         { "enterpriseNumber", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
4875                 dissect_h225_enterpriseNumber },
4876         { NULL, 0, 0, NULL }
4877 };
4878 static int
4879 dissect_h225_VendorIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4880 {
4881         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_VendorIdentifier, ett_h225_VendorIdentifier, VendorIdentifier_sequence);
4882         return offset;
4883 }
4884
4885
4886 static int
4887 dissect_h225_canReportCallCapacity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4888 {
4889         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_canReportCallCapacity, NULL, NULL);
4890         return offset;
4891 }
4892
4893 static per_sequence_t CapacityReportingCapability_sequence[] = {
4894         { "canReportCallCapacity", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4895                 dissect_h225_canReportCallCapacity },
4896         { NULL, 0, 0, NULL }
4897 };
4898 static int
4899 dissect_h225_CapacityReportingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4900 {
4901         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CapacityReportingCapability, ett_h225_CapacityReportingCapability, CapacityReportingCapability_sequence);
4902         return offset;
4903 }
4904
4905 static int
4906 dissect_h225_canDisplayAmountString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4907 {
4908         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_canDisplayAmountString, NULL, NULL);
4909         return offset;
4910 }
4911
4912 static int
4913 dissect_h225_canEnforceDurationLimit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4914 {
4915         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_canEnforceDurationLimit, NULL, NULL);
4916         return offset;
4917 }
4918
4919 static per_sequence_t CallCreditCapability_sequence[] = {
4920         { "canDisplayAmountString", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4921                 dissect_h225_canDisplayAmountString },
4922         { "canEnforceDurationLimit", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4923                 dissect_h225_canEnforceDurationLimit },
4924         { NULL, 0, 0, NULL }
4925 };
4926 static int
4927 dissect_h225_CallCreditCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4928 {
4929         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallCreditCapability, ett_h225_CallCreditCapability, CallCreditCapability_sequence);
4930         return offset;
4931 }
4932
4933 static int
4934 dissect_h225_BandwidthDetails_sender(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4935 {
4936         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_BandwidthDetails_sender, NULL, NULL);
4937         return offset;
4938 }
4939
4940 static int
4941 dissect_h225_BandwidthDetails_multicast(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4942 {
4943         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_BandwidthDetails_multicast, NULL, NULL);
4944         return offset;
4945 }
4946
4947 static per_sequence_t BandwidthDetails_sequence[] = {
4948         { "sender", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4949                 dissect_h225_BandwidthDetails_sender },
4950         { "multicast", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4951                 dissect_h225_BandwidthDetails_multicast },
4952         { "bandwidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4953                 dissect_h225_BandWidth },
4954         { "rtcpAddresses", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
4955                 dissect_h225_rtcpAddress },
4956         { NULL, 0, 0, NULL }
4957 };
4958 static int
4959 dissect_h225_BandwidthDetails(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4960 {
4961         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_BandwidthDetails, ett_h225_BandwidthDetails, BandwidthDetails_sequence);
4962         return offset;
4963 }
4964
4965 static int
4966 dissect_h225_releaseCompleteCauseIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4967 {
4968         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_releaseCompleteCauseIE, 2, 32, NULL, NULL);
4969         return offset;
4970 }
4971
4972 static const value_string CallTerminationCause_vals[] = {
4973         { 0, "releaseCompleteReason" },
4974         { 1, "releaseCompleteCauseIE" },
4975         { 0, NULL}
4976 };
4977 static per_choice_t CallTerminationCause_choice[] = {
4978         { 0, "releaseCompleteReason", ASN1_EXTENSION_ROOT,
4979                 dissect_h225_ReleaseCompleteReason },
4980         { 1, "releaseCompleteCauseIE", ASN1_EXTENSION_ROOT,
4981                 dissect_h225_releaseCompleteCauseIE },
4982         { 0, NULL, 0, NULL }
4983 };
4984 static int
4985 dissect_h225_CallTerminationCause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
4986 {
4987         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_CallTerminationCause, ett_h225_CallTerminationCause, CallTerminationCause_choice, "CallTerminationCause", NULL);
4988         return offset;
4989 }
4990
4991 static per_sequence_t CircuitInfo_sequence[] = {
4992         { "sourceCircuitID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4993                 dissect_h225_sourceCircuitID },
4994         { "destinationCircuitID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4995                 dissect_h225_destinationCircuitID },
4996         { "genericData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
4997                 dissect_h225_genericData },
4998         { NULL, 0, 0, NULL }
4999 };
5000 static int
5001 dissect_h225_CircuitInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5002 {
5003         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CircuitInfo, ett_h225_CircuitInfo, CircuitInfo_sequence);
5004         return offset;
5005 }
5006
5007 static int
5008 dissect_h225_fastStart_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5009 {
5010         guint32 length;
5011
5012         offset=dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_h225_fastStart_item_length, &length);
5013         offset=dissect_h245_OpenLogicalChannel(tvb, offset, pinfo, tree);
5014
5015         contains_faststart = TRUE;
5016
5017         return offset;
5018 }
5019
5020 static int
5021 dissect_h225_fastStart(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5022 {
5023         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_fastStart, ett_h225_fastStart, dissect_h225_fastStart_item);
5024         return offset;
5025 }
5026
5027 static int
5028 dissect_h225_fastConnectRefused(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5029 {
5030         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_fastConnectRefused, NULL, NULL);
5031         return offset;
5032 }
5033
5034 static per_sequence_t InformationUUIE_sequence[] = {
5035         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5036                 dissect_h225_ProtocolIdentifier },
5037         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5038                 dissect_h225_CallIdentifier },
5039         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5040                 dissect_h225_tokens },
5041         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5042                 dissect_h225_cryptoTokens },
5043         { "fastStart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5044                 dissect_h225_fastStart },
5045         { "fastConnectRefused", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5046                 dissect_h225_fastConnectRefused },
5047         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5048                 dissect_h225_CircuitInfo },
5049         { NULL, 0, 0, NULL }
5050 };
5051 static int
5052 dissect_h225_InformationUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5053 {
5054         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_InformationUUIE, ett_h225_InformationUUIE, InformationUUIE_sequence);
5055         return offset;
5056 }
5057
5058 static int
5059 dissect_h225_routeCallToSCN(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5060 {
5061         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_routeCallToSCN, ett_h225_routeCallToSCN, dissect_h225_PartyNumber);
5062         return offset;
5063 }
5064
5065 static const value_string AdmissionRejectReason_vals[] = {
5066         { 0, "calledPartyNotRegistered" },
5067         { 1, "invalidPermission" },
5068         { 2, "requestDenied" },
5069         { 3, "undefinedReason" },
5070         { 4, "callerNotRegistered" },
5071         { 5, "routeCallToGatekeeper" },
5072         { 6, "invalidEndpointIdentifier" },
5073         { 7, "resourceUnavailable" },
5074         { 8, "securityDenial" },
5075         { 9, "qosControlNotSupported" },
5076         { 10, "incompleteAddress" },
5077         { 11, "aliasesInconsistent" },
5078         { 12, "routeCallToSCN" },
5079         { 13, "exceedsCallCapacity" },
5080         { 14, "collectDestination" },
5081         { 15, "collectPIN" },
5082         { 16, "genericDataReason" },
5083         { 17, "neededFeatureNotSupported" },
5084         { 18, "securityErrors" },
5085         { 19, "securityDHmismatch" },
5086         { 20, "noRouteToDestination" },
5087         { 21, "unallocatedNumber" },
5088         { 0, NULL}
5089 };
5090 static per_choice_t AdmissionRejectReason_choice[] = {
5091         { 0, "calledPartyNotRegistered", ASN1_EXTENSION_ROOT,
5092                 dissect_h225_NULL },
5093         { 1, "invalidPermission", ASN1_EXTENSION_ROOT,
5094                 dissect_h225_NULL },
5095         { 2, "requestDenied", ASN1_EXTENSION_ROOT,
5096                 dissect_h225_NULL },
5097         { 3, "undefinedReason", ASN1_EXTENSION_ROOT,
5098                 dissect_h225_NULL },
5099         { 4, "callerNotRegistered", ASN1_EXTENSION_ROOT,
5100                 dissect_h225_NULL },
5101         { 5, "routeCallToGatekeeper", ASN1_EXTENSION_ROOT,
5102                 dissect_h225_NULL },
5103         { 6, "invalidEndpointIdentifier", ASN1_EXTENSION_ROOT,
5104                 dissect_h225_NULL },
5105         { 7, "resourceUnavailable", ASN1_EXTENSION_ROOT,
5106                 dissect_h225_NULL },
5107         { 8, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
5108                 dissect_h225_NULL },
5109         { 9, "qosControlNotSupported", ASN1_NOT_EXTENSION_ROOT,
5110                 dissect_h225_NULL },
5111         { 10, "incompleteAddress", ASN1_NOT_EXTENSION_ROOT,
5112                 dissect_h225_NULL },
5113         { 11, "aliasesInconsistent", ASN1_NOT_EXTENSION_ROOT,
5114                 dissect_h225_NULL },
5115         { 12, "routeCallToSCN", ASN1_NOT_EXTENSION_ROOT,
5116                 dissect_h225_routeCallToSCN },
5117         { 13, "exceedsCallCapacity", ASN1_NOT_EXTENSION_ROOT,
5118                 dissect_h225_NULL },
5119         { 14, "collectDestination", ASN1_NOT_EXTENSION_ROOT,
5120                 dissect_h225_NULL },
5121         { 15, "collectPIN", ASN1_NOT_EXTENSION_ROOT,
5122                 dissect_h225_NULL },
5123         { 16, "genericDataReason", ASN1_NOT_EXTENSION_ROOT,
5124                 dissect_h225_NULL },
5125         { 17, "neededFeatureNotSupported", ASN1_NOT_EXTENSION_ROOT,
5126                 dissect_h225_NULL },
5127         { 18, "securityErrors", ASN1_NOT_EXTENSION_ROOT,
5128                 dissect_h225_SecurityErrors2 },
5129         { 19, "securityDHmismatch", ASN1_NOT_EXTENSION_ROOT,
5130                 dissect_h225_NULL },
5131         { 20, "noRouteToDestination", ASN1_NOT_EXTENSION_ROOT,
5132                 dissect_h225_NULL },
5133         { 21, "unallocatedNumber", ASN1_NOT_EXTENSION_ROOT,
5134                 dissect_h225_NULL },
5135         { 0, NULL, 0, NULL }
5136 };
5137 static int
5138 dissect_h225_AdmissionRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5139 {
5140         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_AdmissionRejectReason, ett_h225_AdmissionRejectReason, AdmissionRejectReason_choice, "AdmissionRejectReason", &(h225_pi.reason));
5141         return offset;
5142 }
5143
5144 static int
5145 dissect_h225_isoAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5146 {
5147         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_isoAlgorithm, NULL);
5148         return offset;
5149 }
5150
5151 static const value_string EncryptIntAlg_vals[] = {
5152         { 0, "nonStandard" },
5153         { 1, "isoAlgorithm" },
5154         { 0, NULL}
5155 };
5156 static per_choice_t EncryptIntAlg_choice[] = {
5157         { 0, "nonStandard", ASN1_EXTENSION_ROOT,
5158                 dissect_h225_nonStandard },
5159         { 1, "isoAlgorithm", ASN1_EXTENSION_ROOT,
5160                 dissect_h225_isoAlgorithm },
5161         { 0, NULL, 0, NULL }
5162 };
5163 static int
5164 dissect_h225_hMAC_iso10118_2_s(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5165 {
5166         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_hMAC_iso10118_2_s, ett_h225_EncryptIntAlg, EncryptIntAlg_choice, "hMAC_iso10118_2_s", NULL);
5167         return offset;
5168 }
5169 static int
5170 dissect_h225_hMAC_iso10118_2_l(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5171 {
5172         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_hMAC_iso10118_2_l, ett_h225_EncryptIntAlg, EncryptIntAlg_choice, "hMAC_iso10118_2_l", NULL);
5173         return offset;
5174 }
5175
5176 static int
5177 dissect_h225_hMAC_iso10118_3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5178 {
5179         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_hMAC_iso10118_3, NULL);
5180         return offset;
5181 }
5182
5183
5184 static const value_string NonIsoIntegrityMechanism_vals[] = {
5185         { 0, "hMAC-MD5" },
5186         { 1, "hMAC_iso10118_2_s" },
5187         { 2, "hMAC_iso10118_2_l" },
5188         { 3, "hMAC_iso10118_3" },
5189         { 0, NULL}
5190 };
5191 static per_choice_t NonIsoIntegrityMechanism_choice[] = {
5192         { 0, "hMAC-MD5", ASN1_EXTENSION_ROOT,
5193                 dissect_h225_NULL },
5194         { 1, "hMAC_iso10118_2_s", ASN1_EXTENSION_ROOT,
5195                 dissect_h225_hMAC_iso10118_2_s },
5196         { 2, "hMAC_iso10118_2_l", ASN1_EXTENSION_ROOT,
5197                 dissect_h225_hMAC_iso10118_2_l },
5198         { 3, "hMAC_iso10118_3", ASN1_EXTENSION_ROOT,
5199                 dissect_h225_hMAC_iso10118_3 },
5200         { 0, NULL, 0, NULL }
5201 };
5202 static int
5203 dissect_h225_NonIsoIntegrityMechanism(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5204 {
5205         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_NonIsoIntegrityMechanism, ett_h225_NonIsoIntegrityMechanism, NonIsoIntegrityMechanism_choice, "NonIsoIntegrityMechanism", NULL);
5206         return offset;
5207 }
5208
5209 static int
5210 dissect_h225_iso9797(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5211 {
5212         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_iso9797, NULL);
5213         return offset;
5214 }
5215
5216 static const value_string IntegrityMechanism_vals[] = {
5217         { 0, "nonStandard" },
5218         { 1, "digSig" },
5219         { 2, "iso9797" },
5220         { 3, "nonIsoIM" },
5221         { 0, NULL}
5222 };
5223 static per_choice_t IntegrityMechanism_choice[] = {
5224         { 0, "nonStandard", ASN1_EXTENSION_ROOT,
5225                 dissect_h225_nonStandard },
5226         { 1, "digSig", ASN1_EXTENSION_ROOT,
5227                 dissect_h225_NULL },
5228         { 2, "iso9797", ASN1_EXTENSION_ROOT,
5229                 dissect_h225_iso9797 },
5230         { 3, "nonIsoIM", ASN1_EXTENSION_ROOT,
5231                 dissect_h225_NonIsoIntegrityMechanism },
5232         { 0, NULL, 0, NULL }
5233 };
5234 static int
5235 dissect_h225_IntegrityMechanism(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5236 {
5237         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_IntegrityMechanism, ett_h225_IntegrityMechanism, IntegrityMechanism_choice, "IntegrityMechanism", NULL);
5238         return offset;
5239 }
5240
5241 static const value_string LocationRejectReason_vals[] = {
5242         { 0, "notRegistered" },
5243         { 1, "invalidPermission" },
5244         { 2, "requestDenied" },
5245         { 3, "undefinedReason" },
5246         { 4, "securityDenial" },
5247         { 5, "aliasesInconsistent" },
5248         { 6, "routeCalltoSCN" },
5249         { 7, "resourceUnavailable" },
5250         { 8, "genericDataReason" },
5251         { 9, "neededFeatureNotSupported" },
5252         {10, "hopCountExceeded" },
5253         {11, "incompleteAddress" },
5254         {12, "securityError" },
5255         {13, "securityDHmismatch" },
5256         {14, "noRouteToDestination" },
5257         {15, "unallocatedNumber" },
5258         { 0, NULL}
5259 };
5260 static per_choice_t LocationRejectReason_choice[] = {
5261         { 0, "notRegistered", ASN1_EXTENSION_ROOT,
5262                 dissect_h225_NULL },
5263         { 1, "invalidPermission", ASN1_EXTENSION_ROOT,
5264                 dissect_h225_NULL },
5265         { 2, "requestDenied", ASN1_EXTENSION_ROOT,
5266                 dissect_h225_NULL },
5267         { 3, "undefinedReason", ASN1_EXTENSION_ROOT,
5268                 dissect_h225_NULL },
5269         { 4, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
5270                 dissect_h225_NULL },
5271         { 5, "aliasesInconsistent", ASN1_NOT_EXTENSION_ROOT,
5272                 dissect_h225_NULL },
5273         { 6, "routeCalltoSCN", ASN1_NOT_EXTENSION_ROOT,
5274                 dissect_h225_routeCallToSCN },
5275         { 7, "resourceUnavailable", ASN1_NOT_EXTENSION_ROOT,
5276                 dissect_h225_NULL },
5277         { 8, "genericDataReason", ASN1_NOT_EXTENSION_ROOT,
5278                 dissect_h225_NULL },
5279         { 9, "neededFeatureNotSupported", ASN1_NOT_EXTENSION_ROOT,
5280                 dissect_h225_NULL },
5281         {10, "hopCountExceeded", ASN1_NOT_EXTENSION_ROOT,
5282                 dissect_h225_NULL },
5283         {11, "incompleteAddress", ASN1_NOT_EXTENSION_ROOT,
5284                 dissect_h225_NULL },
5285         {12, "securityError", ASN1_NOT_EXTENSION_ROOT,
5286                 dissect_h225_SecurityErrors2 },
5287         {13, "securityDHmismatch", ASN1_NOT_EXTENSION_ROOT,
5288                 dissect_h225_NULL },
5289         {14, "noRouteToDestination", ASN1_NOT_EXTENSION_ROOT,
5290                 dissect_h225_NULL },
5291         {15, "unallocatedNumber", ASN1_NOT_EXTENSION_ROOT,
5292                 dissect_h225_NULL },
5293         { 0, NULL, 0, NULL }
5294 };
5295 static int
5296 dissect_h225_LocationRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5297 {
5298         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_LocationRejectReason, ett_h225_LocationRejectReason, LocationRejectReason_choice, "LocationRejectReason", &(h225_pi.reason));
5299         return offset;
5300 }
5301
5302
5303 static int
5304 dissect_h225_EndpointType_set(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5305 {
5306 NOT_DECODED_YET("EndpointType_set");
5307         return offset;
5308 }
5309
5310 static int
5311 dissect_h225_mc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5312 {
5313         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_mc, NULL, NULL);
5314         return offset;
5315 }
5316
5317 static int
5318 dissect_h225_undefinedNode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5319 {
5320         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_undefinedNode, NULL, NULL);
5321         return offset;
5322 }
5323
5324
5325 static per_sequence_t EndPointType_sequence[] = {
5326         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5327                 dissect_h225_nonStandardData },
5328         { "vendor", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5329                 dissect_h225_VendorIdentifier },
5330         { "gatekeeper", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5331                 dissect_h225_GatekeeperInfo },
5332         { "gateway", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5333                 dissect_h225_gateway },
5334         { "mcu", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5335                 dissect_h225_mcu },
5336         { "terminal", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5337                 dissect_h225_TerminalInfo },
5338         { "mc", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5339                 dissect_h225_mc },
5340         { "undefinedNode", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5341                 dissect_h225_undefinedNode },
5342         { "set", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5343                 dissect_h225_EndpointType_set },
5344         { "supportedTunnelledProtocols", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5345                 dissect_h225_TunnelledProtocol },
5346         { NULL, 0, 0, NULL }
5347 };
5348 static int
5349 dissect_h225_EndPointType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5350 {
5351         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_EndPointType, ett_h225_EndPointType, EndPointType_sequence);
5352         return offset;
5353 }
5354 static int
5355 dissect_h225_destinationType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5356 {
5357         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_destinationType, ett_h225_EndPointType, EndPointType_sequence);
5358         return offset;
5359 }
5360 static int
5361 dissect_h225_terminalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5362 {
5363         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_terminalType, ett_h225_EndPointType, EndPointType_sequence);
5364         return offset;
5365 }
5366 static int
5367 dissect_h225_sourceInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5368 {
5369         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_sourceInfo, ett_h225_EndPointType, EndPointType_sequence);
5370         return offset;
5371 }
5372 static int
5373 dissect_h225_destinationInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5374 {
5375         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_destinationInfo, ett_h225_EndPointType, EndPointType_sequence);
5376         return offset;
5377 }
5378
5379 static int
5380 dissect_h225_multipleCalls(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5381 {
5382         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_multipleCalls, NULL, NULL);
5383         return offset;
5384 }
5385
5386 static int
5387 dissect_h225_maintainConnection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5388 {
5389         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_maintainConnection, NULL, NULL);
5390         return offset;
5391 }
5392 static per_sequence_t CallProceedingUUIE_sequence[] = {
5393         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5394                 dissect_h225_ProtocolIdentifier },
5395         { "destinationInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5396                 dissect_h225_destinationInfo },
5397         { "h245Address", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5398                 dissect_h225_h245Address },
5399         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5400                 dissect_h225_CallIdentifier },
5401         { "h245SecurityMode", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5402                 dissect_h225_H245Security },
5403         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5404                 dissect_h225_tokens },
5405         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5406                 dissect_h225_cryptoTokens },
5407         { "fastStart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5408                 dissect_h225_fastStart },
5409         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5410                 dissect_h225_multipleCalls },
5411         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5412                 dissect_h225_maintainConnection },
5413         { "fastConnectRefused", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5414                 dissect_h225_NULL },
5415         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5416                 dissect_h225_FeatureSet },
5417         { NULL, 0, 0, NULL }
5418 };
5419 static int
5420 dissect_h225_CallProceedingUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5421 {
5422         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallProceedingUUIE, ett_h225_CallProceedingUUIE, CallProceedingUUIE_sequence);
5423         return offset;
5424 }
5425
5426 static per_sequence_t CapacityReportingSpecification_when_sequence[] = {
5427         { "callStart", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5428                 dissect_h225_NULL },
5429         { "callEnd", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5430                 dissect_h225_NULL },
5431         { NULL, 0, 0, NULL }
5432 };
5433 static int
5434 dissect_h225_CapacityReportingSpecification_when(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5435 {
5436         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CapacityReportingSpecification_when, ett_h225_CapacityReportingSpecification_when, CapacityReportingSpecification_when_sequence);
5437         return offset;
5438 }
5439
5440 static per_sequence_t CapacityReportingSpecification_sequence[] = {
5441         { "when", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5442                 dissect_h225_CapacityReportingSpecification_when },
5443         { NULL, 0, 0, NULL }
5444 };
5445 static int
5446 dissect_h225_CapacityReportingSpecification(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5447 {
5448         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CapacityReportingSpecification, ett_h225_CapacityReportingSpecification, CapacityReportingSpecification_sequence);
5449         return offset;
5450 }
5451 static per_sequence_t ProgressUUIE_sequence[] = {
5452         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5453                 dissect_h225_ProtocolIdentifier },
5454         { "destinationInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5455                 dissect_h225_destinationInfo },
5456         { "h245Address", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5457                 dissect_h225_h245Address },
5458         { "callIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5459                 dissect_h225_CallIdentifier },
5460         { "h245SecurityMode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5461                 dissect_h225_H245Security },
5462         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5463                 dissect_h225_tokens },
5464         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5465                 dissect_h225_cryptoTokens },
5466         { "fastStart", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5467                 dissect_h225_fastStart },
5468         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5469                 dissect_h225_multipleCalls },
5470         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5471                 dissect_h225_maintainConnection },
5472         { "fastConnectRefused", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5473                 dissect_h225_NULL },
5474         { NULL, 0, 0, NULL }
5475 };
5476 static int
5477 dissect_h225_ProgressUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5478 {
5479         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ProgressUUIE, ett_h225_ProgressUUIE, ProgressUUIE_sequence);
5480         return offset;
5481 }
5482
5483
5484 static int
5485 dissect_h225_destExtraCallInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5486 {
5487         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_destExtraCallInfo, ett_h225_destExtraCallInfo, dissect_h225_AliasAddress);
5488         return offset;
5489 }
5490
5491 static int
5492 dissect_h225_remoteExtensionAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5493 {
5494         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_remoteExtensionAddress, ett_h225_remoteExtensionAddress, dissect_h225_AliasAddress);
5495         return offset;
5496 }
5497
5498 static int
5499 dissect_h225_rasAddress_sequence(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5500 {
5501         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_rasAddress_sequence, ett_h225_rasAddress_sequence, dissect_h225_TransportAddress);
5502         return offset;
5503 }
5504
5505 static int
5506 dissect_h225_callSignalAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5507 {
5508         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_callSignalAddress, ett_h225_callSignalAddress, dissect_h225_TransportAddress);
5509         return offset;
5510 }
5511
5512
5513 static per_sequence_t EndPoint_sequence[] = {
5514         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5515                 dissect_h225_nonStandardData },
5516         { "aliasAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5517                 dissect_h225_AliasAddress },
5518         { "callSignalAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5519                 dissect_h225_callSignalAddress },
5520         { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5521                 dissect_h225_rasAddress_sequence },
5522         { "endpointType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5523                 dissect_h225_EndPointType },
5524         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5525                 dissect_h225_tokens },
5526         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5527                 dissect_h225_cryptoTokens },
5528         { "priority", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5529                 dissect_h225_priority },
5530         { "remoteExtensionAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5531                 dissect_h225_remoteExtensionAddress },
5532         { "destExtraCallInfo", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5533                 dissect_h225_destExtraCallInfo },
5534         { "alternateTransportAddresses", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5535                 dissect_h225_AlternateTransportAddress },
5536         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5537                 dissect_h225_CircuitInfo },
5538         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5539                 dissect_h225_FeatureSet },
5540         { NULL, 0, 0, NULL }
5541 };
5542 static int
5543 dissect_h225_EndPoint(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5544 {
5545         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_EndPoint, ett_h225_EndPoint, EndPoint_sequence);
5546         return offset;
5547 }
5548
5549
5550 static int
5551 dissect_h225_icv(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5552 {
5553 NOT_DECODED_YET("icv");
5554         return offset;
5555 }
5556
5557 static int
5558 dissect_h225_algorithmOID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5559 {
5560         offset=dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_h225_algorithmOID, NULL);
5561         return offset;
5562 }
5563
5564 static per_sequence_t ICV_sequence[] = {
5565         { "algorithmOID", ASN1_NO_EXTENSIONS, ASN1_OPTIONAL,
5566                 dissect_h225_algorithmOID },
5567         { "icv", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
5568                 dissect_h225_icv },
5569         { NULL, 0, 0, NULL }
5570 };
5571 static int
5572 dissect_h225_ICV(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5573 {
5574         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ICV, ett_h225_ICV, ICV_sequence);
5575         return offset;
5576 }
5577
5578 static per_sequence_t BandwidthConfirm_sequence[] = {
5579         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5580                 dissect_h225_RequestSeqNum },
5581         { "bandWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5582                 dissect_h225_BandWidth },
5583         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5584                 dissect_h225_nonStandardData },
5585         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5586                 dissect_h225_tokens },
5587         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5588                 dissect_h225_cryptoTokens },
5589         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5590                 dissect_h225_ICV },
5591         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5592                 dissect_h225_CallCapacity },
5593         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5594                 dissect_h225_genericData },
5595         { NULL, 0, 0, NULL }
5596 };
5597 static int
5598 dissect_h225_BandwidthConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5599 {
5600         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_BandwidthConfirm, ett_h225_BandwidthConfirm, BandwidthConfirm_sequence);
5601         return offset;
5602 }
5603
5604
5605 static per_sequence_t UnregistrationConfirm_sequence[] = {
5606         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5607                 dissect_h225_RequestSeqNum },
5608         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5609                 dissect_h225_nonStandardData },
5610         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5611                 dissect_h225_tokens },
5612         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5613                 dissect_h225_cryptoTokens },
5614         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5615                 dissect_h225_ICV },
5616         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5617                 dissect_h225_genericData },
5618         { NULL, 0, 0, NULL }
5619 };
5620 static int
5621 dissect_h225_UnregistrationConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5622 {
5623         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_UnregistrationConfirm, ett_h225_UnregistrationConfirm, UnregistrationConfirm_sequence);
5624         return offset;
5625 }
5626 static per_sequence_t NonStandardMessage_sequence[] = {
5627         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5628                 dissect_h225_RequestSeqNum },
5629         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5630                 dissect_h225_nonStandardData },
5631         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5632                 dissect_h225_tokens },
5633         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5634                 dissect_h225_cryptoTokens },
5635         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5636                 dissect_h225_ICV },
5637         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5638                 dissect_h225_FeatureSet },
5639         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5640                 dissect_h225_genericData },
5641         { NULL, 0, 0, NULL }
5642 };
5643 static int
5644 dissect_h225_NonStandardMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5645 {
5646         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_NonStandardMessage, ett_h225_NonStandardMessage, NonStandardMessage_sequence);
5647         return offset;
5648 }
5649
5650
5651 static per_sequence_t InfoRequestAck_sequence[] = {
5652         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5653                 dissect_h225_RequestSeqNum },
5654         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5655                 dissect_h225_nonStandardData },
5656         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5657                 dissect_h225_tokens },
5658         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5659                 dissect_h225_cryptoTokens },
5660         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5661                 dissect_h225_ICV },
5662         { NULL, 0, 0, NULL }
5663 };
5664 static int
5665 dissect_h225_InfoRequestAck(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5666 {
5667         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_InfoRequestAck, ett_h225_InfoRequestAck, InfoRequestAck_sequence);
5668         return offset;
5669 }
5670 static per_sequence_t InfoRequestNak_sequence[] = {
5671         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5672                 dissect_h225_RequestSeqNum },
5673         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5674                 dissect_h225_nonStandardData },
5675         { "nakReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5676                 dissect_h225_InfoRequestNakReason },
5677         { "altGKInfo", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5678                 dissect_h225_AltGKInfo },
5679         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5680                 dissect_h225_tokens },
5681         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5682                 dissect_h225_cryptoTokens },
5683         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5684                 dissect_h225_ICV },
5685         { NULL, 0, 0, NULL }
5686 };
5687 static int
5688 dissect_h225_InfoRequestNak(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5689 {
5690         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_InfoRequestNak, ett_h225_InfoRequestNak, InfoRequestNak_sequence);
5691         return offset;
5692 }
5693
5694 static per_sequence_t ResourcesAvailableConfirm_sequence[] = {
5695         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5696                 dissect_h225_RequestSeqNum },
5697         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5698                 dissect_h225_ProtocolIdentifier },
5699         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5700                 dissect_h225_nonStandardData },
5701         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5702                 dissect_h225_tokens },
5703         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5704                 dissect_h225_cryptoTokens },
5705         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5706                 dissect_h225_ICV },
5707         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5708                 dissect_h225_genericData },
5709         { NULL, 0, 0, NULL }
5710 };
5711 static int
5712 dissect_h225_ResourcesAvailableConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5713 {
5714         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ResourcesAvailableConfirm, ett_h225_ResourcesAvailableConfirm, ResourcesAvailableConfirm_sequence);
5715         return offset;
5716 }
5717
5718
5719
5720 static int
5721 dissect_h225_integrity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5722 {
5723         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_integrity, ett_h225_integrity, dissect_h225_IntegrityMechanism);
5724         return offset;
5725 }
5726
5727
5728 static int
5729 dissect_h225_algorithmOIDs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5730 {
5731         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_algorithmOIDs, ett_h225_algorithmOIDs, dissect_h225_algorithmOID);
5732         return offset;
5733 }
5734
5735
5736 static int
5737 dissect_h225_alternateEndpoints(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5738 {
5739         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_alternateEndpoints, ett_h225_alternateEndpoints, dissect_h225_EndPoint);
5740         return offset;
5741 }
5742
5743
5744
5745 static int
5746 dissect_h225_endpointAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5747 {
5748         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_endpointAlias, ett_h225_endpointAlias, dissect_h225_AliasAddress);
5749         return offset;
5750 }
5751
5752
5753 static per_sequence_t GatekeeperRequest_sequence[] = {
5754         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5755                 dissect_h225_RequestSeqNum },
5756         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5757                 dissect_h225_ProtocolIdentifier },
5758         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5759                 dissect_h225_nonStandardData },
5760         { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5761                 dissect_h225_rasAddress },
5762         { "endpointType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5763                 dissect_h225_EndPointType },
5764         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5765                 dissect_h225_GatekeeperIdentifier },
5766         { "callServices", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5767                 dissect_h225_callServices },
5768         { "endpointAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5769                 dissect_h225_endpointAlias },
5770         { "alternateEndpoints", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5771                 dissect_h225_alternateEndpoints },
5772         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5773                 dissect_h225_tokens },
5774         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5775                 dissect_h225_cryptoTokens },
5776 /*XXX from h235 AuthenticationMechanism */
5777         { "authenticationCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL, NULL },
5778         { "algorithmOIDs", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5779                 dissect_h225_algorithmOIDs },
5780         { "integrity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5781                 dissect_h225_integrity },
5782         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5783                 dissect_h225_ICV },
5784         { "supportsAltGK", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5785                 dissect_h225_NULL },
5786         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5787                 dissect_h225_FeatureSet },
5788         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5789                 dissect_h225_genericData },
5790         { NULL, 0, 0, NULL }
5791 };
5792 static int
5793 dissect_h225_GatekeeperRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5794 {
5795         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GatekeeperRequest, ett_h225_GatekeeperRequest, GatekeeperRequest_sequence);
5796         return offset;
5797 }
5798
5799 static per_sequence_t ServiceControlResponse_sequence[] = {
5800         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5801                 dissect_h225_RequestSeqNum },
5802         { "result", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5803                 dissect_h225_SCRresult },
5804         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5805                 dissect_h225_nonStandardData },
5806         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5807                 dissect_h225_tokens },
5808         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5809                 dissect_h225_cryptoTokens },
5810         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5811                 dissect_h225_ICV },
5812         { "featureSet", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5813                 dissect_h225_FeatureSet },
5814         { "genericData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5815                 dissect_h225_genericData },
5816         { NULL, 0, 0, NULL }
5817 };
5818 static int
5819 dissect_h225_ServiceControlResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5820 {
5821         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ServiceControlResponse, ett_h225_ServiceControlResponse, ServiceControlResponse_sequence);
5822         return offset;
5823 }
5824
5825
5826
5827 static per_sequence_t DisengageReject_sequence[] = {
5828         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5829                 dissect_h225_RequestSeqNum },
5830         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5831                 dissect_h225_DisengageRejectReason },
5832         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5833                 dissect_h225_nonStandardData },
5834         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5835                 dissect_h225_AltGKInfo },
5836         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5837                 dissect_h225_tokens },
5838         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5839                 dissect_h225_cryptoTokens },
5840         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5841                 dissect_h225_ICV },
5842         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5843                 dissect_h225_genericData },
5844         { NULL, 0, 0, NULL }
5845 };
5846 static int
5847 dissect_h225_DisengageReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5848 {
5849         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_DisengageReject, ett_h225_DisengageReject, DisengageReject_sequence);
5850         return offset;
5851 }
5852
5853
5854
5855 static per_sequence_t BandwidthReject_sequence[] = {
5856         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5857                 dissect_h225_RequestSeqNum },
5858         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5859                 dissect_h225_BandRejectReason },
5860         { "allowedBandWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5861                 dissect_h225_allowedBandWidth },
5862         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5863                 dissect_h225_nonStandardData },
5864         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5865                 dissect_h225_AltGKInfo },
5866         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5867                 dissect_h225_tokens },
5868         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5869                 dissect_h225_cryptoTokens },
5870         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5871                 dissect_h225_ICV },
5872         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5873                 dissect_h225_genericData },
5874         { NULL, 0, 0, NULL }
5875 };
5876 static int
5877 dissect_h225_BandwidthReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5878 {
5879         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_BandwidthReject, ett_h225_BandwidthReject, BandwidthReject_sequence);
5880         return offset;
5881 }
5882
5883
5884
5885 static per_sequence_t UnregistrationReject_sequence[] = {
5886         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5887                 dissect_h225_RequestSeqNum },
5888         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5889                 dissect_h225_UnregRejectReason },
5890         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5891                 dissect_h225_nonStandardData },
5892         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5893                 dissect_h225_AltGKInfo },
5894         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5895                 dissect_h225_tokens },
5896         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5897                 dissect_h225_cryptoTokens },
5898         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5899                 dissect_h225_ICV },
5900         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5901                 dissect_h225_genericData },
5902         { NULL, 0, 0, NULL }
5903 };
5904 static int
5905 dissect_h225_UnregistrationReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5906 {
5907         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_UnregistrationReject, ett_h225_UnregistrationReject, UnregistrationReject_sequence);
5908         return offset;
5909 }
5910
5911
5912 static int
5913 dissect_h225_endpointAliasPattern(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5914 {
5915         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_endpointAliasPattern, ett_h225_endpointAliasPattern, dissect_h225_AddressPattern);
5916         return offset;
5917 }
5918
5919 static int
5920 dissect_h225_EndpointIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5921 {
5922         offset=dissect_per_BMPString(tvb, offset, pinfo, tree, hf_h225_EndpointIdentifier, 1, 128);
5923         return offset;
5924 }
5925
5926 static per_sequence_t UnregistrationRequest_sequence[] = {
5927         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5928                 dissect_h225_RequestSeqNum },
5929         { "callSignalAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
5930                 dissect_h225_callSignalAddress },
5931         { "endpointAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5932                 dissect_h225_endpointAlias },
5933         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5934                 dissect_h225_nonStandardData },
5935         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5936                 dissect_h225_EndpointIdentifier },
5937         { "alternateEndpoints", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5938                 dissect_h225_alternateEndpoints },
5939         { "gatekeeperIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5940                 dissect_h225_GatekeeperIdentifier },
5941         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5942                 dissect_h225_tokens },
5943         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5944                 dissect_h225_cryptoTokens },
5945         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5946                 dissect_h225_ICV },
5947         { "reason", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5948                 dissect_h225_UnregRequestReason },
5949         { "endpointAliasPattern", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5950                 dissect_h225_endpointAliasPattern },
5951         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5952                 dissect_h225_SupportedPrefixes },
5953         { "alternateGatekeeper", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5954                 dissect_h225_alternateGatekeeper },
5955         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
5956                 dissect_h225_genericData },
5957         { NULL, 0, 0, NULL }
5958 };
5959 static int
5960 dissect_h225_UnregistrationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5961 {
5962         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_UnregistrationRequest, ett_h225_UnregistrationRequest, UnregistrationRequest_sequence);
5963         return offset;
5964 }
5965
5966
5967 static int
5968 dissect_h225_terminalAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5969 {
5970         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_terminalAlias, ett_h225_terminalAlias, dissect_h225_AliasAddress);
5971         return offset;
5972 }
5973
5974
5975
5976 static int
5977 dissect_h225_terminalAliasPattern(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5978 {
5979         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_terminalAliasPattern, ett_h225_terminalAliasPattern, dissect_h225_AddressPattern);
5980         return offset;
5981 }
5982
5983
5984 static per_sequence_t invalidTerminalAliases_sequence[] = {
5985         { "terminalAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5986                 dissect_h225_terminalAlias },
5987         { "terminalAliasPattern", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5988                 dissect_h225_terminalAliasPattern },
5989         { "supportedPrefixes", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
5990                 dissect_h225_SupportedPrefixes },
5991         { NULL, 0, 0, NULL }
5992 };
5993 static int
5994 dissect_h225_invalidTerminalAliases(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
5995 {
5996         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_invalidTerminalAliases, ett_h225_invalidTerminalAliases, invalidTerminalAliases_sequence);
5997         return offset;
5998 }
5999
6000
6001
6002
6003
6004
6005 static int
6006 dissect_h225_duplicateAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6007 {
6008         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_duplicateAlias, ett_h225_duplicateAlias, dissect_h225_AliasAddress);
6009         return offset;
6010 }
6011
6012
6013
6014
6015
6016 static const value_string RegistrationRejectReason_vals[] = {
6017         { 0, "discoveryRequired" },
6018         { 1, "invalidRevision" },
6019         { 2, "invalidCallSignalAddress" },
6020         { 3, "invalidRASAddress" },
6021         { 4, "duplicateAlias" },
6022         { 5, "invalidTerminalType" },
6023         { 6, "undefinedReason" },
6024         { 7, "transportNotSupported" },
6025         { 8, "transportQOSNotSupported" },
6026         { 9, "resourceUnavailable" },
6027         { 10, "invalidAlias" },
6028         { 11, "securityDenial" },
6029         { 12, "fullRegistrationRequired" },
6030         { 13, "additiveRegistrationNotSupported" },
6031         { 14, "invalidTerminalAliases" },
6032         { 15, "genericDataReason" },
6033         { 16, "neededFeatureNotSupported" },
6034         { 17, "securityError" },
6035         { 0, NULL}
6036 };
6037 static per_choice_t RegistrationRejectReason_choice[] = {
6038         { 0, "discoveryRequired", ASN1_EXTENSION_ROOT,
6039                 dissect_h225_NULL },
6040         { 1, "invalidRevision", ASN1_EXTENSION_ROOT,
6041                 dissect_h225_NULL },
6042         { 2, "invalidCallSignalAddress", ASN1_EXTENSION_ROOT,
6043                 dissect_h225_NULL },
6044         { 3, "invalidRASAddress", ASN1_EXTENSION_ROOT,
6045                 dissect_h225_NULL },
6046         { 4, "duplicateAlias", ASN1_EXTENSION_ROOT,
6047                 dissect_h225_duplicateAlias },
6048         { 5, "invalidTerminalType", ASN1_EXTENSION_ROOT,
6049                 dissect_h225_NULL },
6050         { 6, "undefinedReason", ASN1_EXTENSION_ROOT,
6051                 dissect_h225_NULL },
6052         { 7, "transportNotSupported", ASN1_EXTENSION_ROOT,
6053                 dissect_h225_NULL },
6054         { 8, "transportQOSNotSupported", ASN1_NOT_EXTENSION_ROOT,
6055                 dissect_h225_NULL },
6056         { 9, "resourceUnavailable", ASN1_NOT_EXTENSION_ROOT,
6057                 dissect_h225_NULL },
6058         { 10, "invalidAlias", ASN1_NOT_EXTENSION_ROOT,
6059                 dissect_h225_NULL },
6060         { 11, "securityDenial", ASN1_NOT_EXTENSION_ROOT,
6061                 dissect_h225_NULL },
6062         { 12, "fullRegistrationRequired", ASN1_NOT_EXTENSION_ROOT,
6063                 dissect_h225_NULL },
6064         { 13, "additiveRegistrationNotSupported", ASN1_NOT_EXTENSION_ROOT,
6065                 dissect_h225_NULL },
6066         { 14, "invalidTerminalAliases", ASN1_NOT_EXTENSION_ROOT,
6067                 dissect_h225_invalidTerminalAliases },
6068         { 15, "genericDataReason", ASN1_NOT_EXTENSION_ROOT,
6069                 dissect_h225_NULL },
6070         { 16, "neededFeatureNotSupported", ASN1_NOT_EXTENSION_ROOT,
6071                 dissect_h225_NULL },
6072         { 17, "securityError", ASN1_NOT_EXTENSION_ROOT,
6073                 dissect_h225_SecurityErrors },
6074         { 0, NULL, 0, NULL }
6075 };
6076 static int
6077 dissect_h225_RegistrationRejectReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6078 {
6079         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_RegistrationRejectReason, ett_h225_RegistrationRejectReason, RegistrationRejectReason_choice, "RegistrationRejectReason", &(h225_pi.reason));
6080         return offset;
6081 }
6082
6083
6084
6085
6086
6087
6088 static per_sequence_t RegistrationReject_sequence[] = {
6089         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6090                 dissect_h225_RequestSeqNum },
6091         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6092                 dissect_h225_ProtocolIdentifier },
6093         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6094                 dissect_h225_nonStandardData },
6095         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6096                 dissect_h225_RegistrationRejectReason },
6097         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6098                 dissect_h225_GatekeeperIdentifier },
6099         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6100                 dissect_h225_AltGKInfo },
6101         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6102                 dissect_h225_tokens },
6103         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6104                 dissect_h225_cryptoTokens },
6105         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6106                 dissect_h225_ICV },
6107         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6108                 dissect_h225_FeatureSet },
6109         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6110                 dissect_h225_genericData },
6111         { NULL, 0, 0, NULL }
6112 };
6113 static int
6114 dissect_h225_RegistrationReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6115 {
6116         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RegistrationReject, ett_h225_RegistrationReject, RegistrationReject_sequence);
6117         return offset;
6118 }
6119
6120
6121 static per_sequence_t GatekeeperReject_sequence[] = {
6122         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6123                 dissect_h225_RequestSeqNum },
6124         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6125                 dissect_h225_ProtocolIdentifier },
6126         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6127                 dissect_h225_nonStandardData },
6128         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6129                 dissect_h225_GatekeeperIdentifier },
6130         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6131                 dissect_h225_GatekeeperRejectReason },
6132         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6133                 dissect_h225_AltGKInfo },
6134         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6135                 dissect_h225_tokens },
6136         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6137                 dissect_h225_cryptoTokens },
6138         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6139                 dissect_h225_ICV },
6140         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6141                 dissect_h225_FeatureSet },
6142         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6143                 dissect_h225_genericData },
6144         { NULL, 0, 0, NULL }
6145 };
6146 static int
6147 dissect_h225_GatekeeperReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6148 {
6149         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GatekeeperReject, ett_h225_GatekeeperReject, GatekeeperReject_sequence);
6150         return offset;
6151 }
6152
6153
6154
6155 static int
6156 dissect_h225_almostOutOfResources(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6157 {
6158         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_almostOutOfResources, NULL, NULL);
6159         return offset;
6160 }
6161
6162
6163 static int
6164 dissect_h225_protocols(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6165 {
6166         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_protocols, ett_h225_protocols, dissect_h225_SupportedProtocols);
6167         return offset;
6168 }
6169
6170 static per_sequence_t ResourcesAvailableIndicate_sequence[] = {
6171         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6172                 dissect_h225_RequestSeqNum },
6173         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6174                 dissect_h225_ProtocolIdentifier },
6175         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6176                 dissect_h225_nonStandardData },
6177         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6178                 dissect_h225_EndpointIdentifier },
6179         { "protocols", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6180                 dissect_h225_protocols },
6181         { "almostOutOfResources", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6182                 dissect_h225_almostOutOfResources },
6183         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6184                 dissect_h225_tokens },
6185         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6186                 dissect_h225_cryptoTokens },
6187         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6188                 dissect_h225_ICV },
6189         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6190                 dissect_h225_CallCapacity },
6191         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6192                 dissect_h225_genericData },
6193         { NULL, 0, 0, NULL }
6194 };
6195 static int
6196 dissect_h225_ResourcesAvailableIndicate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6197 {
6198         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ResourcesAvailableIndicate, ett_h225_ResourcesAvailableIndicate, ResourcesAvailableIndicate_sequence);
6199         return offset;
6200 }
6201
6202
6203 static int
6204 dissect_h225_amountString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6205 {
6206 NOT_DECODED_YET("amountString");
6207         return offset;
6208 }
6209
6210
6211
6212 static int
6213 dissect_h225_callDurationLimit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6214 {
6215         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6216                 tree, hf_h225_callDurationLimit, 1, 4294967295UL,
6217                 NULL, NULL, FALSE);
6218         return offset;
6219 }
6220
6221
6222 static int
6223 dissect_h225_enforceCallDurationLimit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6224 {
6225         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_enforceCallDurationLimit, NULL, NULL);
6226         return offset;
6227 }
6228
6229
6230 static per_sequence_t CallCreditServiceControl_sequence[] = {
6231         { "amountString", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6232                 dissect_h225_amountString },
6233         { "billingMode", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6234                 dissect_h225_billingMode },
6235         { "callDurationLimit", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6236                 dissect_h225_callDurationLimit },
6237         { "enforceCallDurationLimit", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6238                 dissect_h225_enforceCallDurationLimit },
6239         { "callStartingPoint", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6240                 dissect_h225_CCSCcallStartingPoint },
6241         { NULL, 0, 0, NULL }
6242 };
6243 static int
6244 dissect_h225_CallCreditServiceControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6245 {
6246         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_CallCreditServiceControl, ett_h225_CallCreditServiceControl, CallCreditServiceControl_sequence);
6247         return offset;
6248 }
6249
6250
6251
6252 static const value_string ScreeningIndicator_vals[] = {
6253         { 0, "userProvidedNotScreened" },
6254         { 1, "userProvidedVerifiedAndPassed" },
6255         { 2, "userProvidedVerifiedAndFailed" },
6256         { 3, "networkProvided" },
6257         { 0, NULL },
6258 };
6259
6260 static int
6261 dissect_h225_ScreeningIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6262 {
6263         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6264                 tree, hf_h225_ScreeningIndicator, 0, 3,
6265                 NULL, NULL, TRUE);
6266         return offset;
6267 }
6268
6269 static per_sequence_t ExtendedAliasAddress_sequence[] = {
6270         { "address", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6271                 dissect_h225_AliasAddress },
6272         { "presentationIndicator", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6273                 dissect_h225_PresentationIndicator },
6274         { "screeningIndicator", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6275                 dissect_h225_ScreeningIndicator },
6276         { NULL, 0, 0, NULL }
6277 };
6278 static int
6279 dissect_h225_ExtendedAliasAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6280 {
6281         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ExtendedAliasAddress, ett_h225_ExtendedAliasAddress, ExtendedAliasAddress_sequence);
6282         return offset;
6283 }
6284
6285
6286
6287
6288 static int
6289 dissect_h225_messageNotUnderstood(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6290 {
6291         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_messageNotUnderstood, -1, -1, NULL, NULL);
6292         return offset;
6293 }
6294
6295 static per_sequence_t UnknownMessageResponse_sequence[] = {
6296         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6297                 dissect_h225_RequestSeqNum },
6298         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6299                 dissect_h225_tokens },
6300         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6301                 dissect_h225_cryptoTokens },
6302         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6303                 dissect_h225_ICV },
6304         { "messageNotUnderstood", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6305                 dissect_h225_messageNotUnderstood },
6306         { NULL, 0, 0, NULL }
6307 };
6308 static int
6309 dissect_h225_UnknownMessageResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6310 {
6311         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_UnknownMessageResponse, ett_h225_UnknownMessageResponse, UnknownMessageResponse_sequence);
6312         return offset;
6313 }
6314
6315 static int
6316 dissect_h225_CallReferenceValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6317 {
6318         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6319                 tree, hf_h225_CallReferenceValue, 0, 65535,
6320                 NULL, NULL, FALSE);
6321         return offset;
6322 }
6323
6324
6325
6326
6327 static int
6328 dissect_h225_canMapSrcAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6329 {
6330         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_canMapSrcAlias, NULL, NULL);
6331         return offset;
6332 }
6333
6334 static int
6335 dissect_h225_desiredProtocols(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6336 {
6337         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_desiredProtocols, ett_h225_desiredProtocols, dissect_h225_SupportedProtocols);
6338         return offset;
6339 }
6340
6341 static int
6342 dissect_h225_willSupplyUUIEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6343 {
6344         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_willSupplyUUIEs, NULL, NULL);
6345         return offset;
6346 }
6347
6348
6349 static int
6350 dissect_h225_destAlternatives(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6351 {
6352         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_destAlternatives, ett_h225_destAlternatives, dissect_h225_EndPoint);
6353         return offset;
6354 }
6355
6356 static int
6357 dissect_h225_srcAlternatives(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6358 {
6359         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_srcAlternatives, ett_h225_srcAlternatives, dissect_h225_EndPoint);
6360         return offset;
6361 }
6362
6363 static int
6364 dissect_h225_canMapAlias(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6365 {
6366         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_canMapAlias, NULL, NULL);
6367         return offset;
6368 }
6369
6370
6371 static int
6372 dissect_h225_answerCall(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6373 {
6374         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_answerCall, NULL, NULL);
6375         return offset;
6376 }
6377
6378
6379 static int
6380 dissect_h225_activeMC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6381 {
6382         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_activeMC, NULL, NULL);
6383         return offset;
6384 }
6385
6386
6387 static int
6388 dissect_h225_srcInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6389 {
6390         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_srcInfo, ett_h225_srcInfo, dissect_h225_AliasAddress);
6391         return offset;
6392 }
6393
6394 static int
6395 dissect_h225_DestinationInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6396 {
6397         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_DestinationInfo, ett_h225_DestinationInfo, dissect_h225_AliasAddress);
6398         return offset;
6399 }
6400
6401
6402
6403
6404
6405
6406 static per_sequence_t AdmissionRequest_sequence[] = {
6407         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6408                 dissect_h225_RequestSeqNum },
6409         { "callType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6410                 dissect_h225_CallType },
6411         { "callModel", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6412                 dissect_h225_CallModel },
6413         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6414                 dissect_h225_EndpointIdentifier },
6415         { "DestinationInfo", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6416                 dissect_h225_DestinationInfo },
6417         { "destCallSignalAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6418                 dissect_h225_destCallSignalAddress },
6419         { "destExtraCallInfo", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6420                 dissect_h225_destExtraCallInfo },
6421         { "srcInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6422                 dissect_h225_srcInfo },
6423         { "sourceCallSignalAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6424                 dissect_h225_sourceCallSignalAddress },
6425         { "bandWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6426                 dissect_h225_BandWidth },
6427         { "callReferenceValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6428                 dissect_h225_CallReferenceValue },
6429         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6430                 dissect_h225_nonStandardData },
6431         { "callServices", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6432                 dissect_h225_callServices },
6433         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6434                 dissect_h225_conferenceID },
6435         { "activeMC", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6436                 dissect_h225_activeMC },
6437         { "answerCall", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6438                 dissect_h225_answerCall },
6439         { "canMapAlias", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6440                 dissect_h225_canMapAlias },
6441         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6442                 dissect_h225_CallIdentifier },
6443         { "srcAlternatives", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6444                 dissect_h225_srcAlternatives },
6445         { "destAlternatives", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6446                 dissect_h225_destAlternatives },
6447         { "gatekeeperIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6448                 dissect_h225_GatekeeperIdentifier },
6449         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6450                 dissect_h225_tokens },
6451         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6452                 dissect_h225_cryptoTokens },
6453         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6454                 dissect_h225_ICV },
6455         { "transportQOS", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6456                 dissect_h225_TransportQOS },
6457         { "willSupplyUUIEs", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6458                 dissect_h225_willSupplyUUIEs },
6459         { "callLinkage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6460                 dissect_h225_CallLinkage },
6461         { "gatewayDataRate", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6462                 dissect_h225_gatewayDataRate },
6463         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6464                 dissect_h225_CallCapacity },
6465         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6466                 dissect_h225_CircuitInfo },
6467         { "desiredProtocols", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6468                 dissect_h225_desiredProtocols },
6469         { "desiredTunnelledProtocol", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6470                 dissect_h225_desiredTunnelledProtocol },
6471         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6472                 dissect_h225_FeatureSet },
6473         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6474                 dissect_h225_genericData },
6475         { "canMapSrcAlias", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6476                 dissect_h225_canMapSrcAlias },
6477         { NULL, 0, 0, NULL }
6478 };
6479 static int
6480 dissect_h225_AdmissionRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6481 {
6482         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AdmissionRequest, ett_h225_AdmissionRequest, AdmissionRequest_sequence);
6483         return offset;
6484 }
6485
6486
6487
6488 static int
6489 dissect_h225_nextSegmentRequested(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6490 {
6491         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6492                 tree, hf_h225_nextSegmentRequested, 0, 65535,
6493                 NULL, NULL, FALSE);
6494         return offset;
6495 }
6496
6497 static per_sequence_t InfoRequest_sequence[] = {
6498         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6499                 dissect_h225_RequestSeqNum },
6500         { "callReferenceValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6501                 dissect_h225_CallReferenceValue },
6502         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6503                 dissect_h225_nonStandardData },
6504         { "replyAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6505                 dissect_h225_replyAddress },
6506         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6507                 dissect_h225_CallIdentifier },
6508         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6509                 dissect_h225_tokens },
6510         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6511                 dissect_h225_cryptoTokens },
6512         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6513                 dissect_h225_ICV },
6514         { "uuiesRequested", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6515                 dissect_h225_UUIEsRequested },
6516         { "callLinkage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6517                 dissect_h225_CallLinkage },
6518         { "usageInfoRequested", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6519                 dissect_h225_RasUsageInfoTypes },
6520         { "segmentedResponseSupported", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6521                 dissect_h225_NULL },
6522         { "nextSegmentRequested", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6523                 dissect_h225_nextSegmentRequested },
6524         { "capacityInfoRequested", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6525                 dissect_h225_NULL },
6526         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6527                 dissect_h225_genericData },
6528         { NULL, 0, 0, NULL }
6529 };
6530 static int
6531 dissect_h225_InfoRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6532 {
6533         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_InfoRequest, ett_h225_InfoRequest, InfoRequest_sequence);
6534         return offset;
6535 }
6536
6537
6538 static int
6539 dissect_h225_delay(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6540 {
6541         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6542                 tree, hf_h225_delay, 1, 65535,
6543                 NULL, NULL, FALSE);
6544         return offset;
6545 }
6546
6547 static per_sequence_t RequestInProgress_sequence[] = {
6548         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6549                 dissect_h225_RequestSeqNum },
6550         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6551                 dissect_h225_nonStandardData },
6552         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6553                 dissect_h225_tokens },
6554         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6555                 dissect_h225_cryptoTokens },
6556         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6557                 dissect_h225_ICV },
6558         { "delay", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6559                 dissect_h225_delay },
6560         { NULL, 0, 0, NULL }
6561 };
6562 static int
6563 dissect_h225_RequestInProgress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6564 {
6565         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RequestInProgress, ett_h225_RequestInProgress, RequestInProgress_sequence);
6566         return offset;
6567 }
6568
6569 static int
6570 dissect_h225_H248SignalsDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6571 {
6572         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_H248SignalsDescriptor, -1, -1, NULL, NULL);
6573         return offset;
6574 }
6575
6576
6577 static int
6578 dissect_h225_url(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6579 {
6580         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_url, 0, 512);
6581         return offset;
6582 }
6583
6584
6585 static const value_string ServiceControlDescriptor_vals[] = {
6586         { 0, "url" },
6587         { 1, "signal" },
6588         { 2, "nonStandard" },
6589         { 3, "callCreditServiceControl" },
6590         { 0, NULL}
6591 };
6592 static per_choice_t ServiceControlDescriptor_choice[] = {
6593         { 0, "url", ASN1_EXTENSION_ROOT,
6594                 dissect_h225_url },
6595         { 1, "signal", ASN1_EXTENSION_ROOT,
6596                 dissect_h225_H248SignalsDescriptor },
6597         { 2, "nonStandard", ASN1_EXTENSION_ROOT,
6598                 dissect_h225_nonStandard },
6599         { 3, "callCreditServiceControl", ASN1_EXTENSION_ROOT,
6600                 dissect_h225_CallCreditServiceControl },
6601         { 0, NULL, 0, NULL }
6602 };
6603 static int
6604 dissect_h225_ServiceControlDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6605 {
6606         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_ServiceControlDescriptor, ett_h225_ServiceControlDescriptor, ServiceControlDescriptor_choice, "ServiceControlDescriptor", NULL);
6607         return offset;
6608 }
6609
6610
6611
6612 static int
6613 dissect_h225_sessionId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6614 {
6615         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6616                 tree, hf_h225_sessionId, 0, 255,
6617                 NULL, NULL, FALSE);
6618         return offset;
6619 }
6620
6621 static per_sequence_t ServiceControlSession_sequence[] = {
6622         { "sessionId", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6623                 dissect_h225_sessionId },
6624         { "contents", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6625                 dissect_h225_ServiceControlDescriptor },
6626         { "reason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6627                 dissect_h225_ServiceControlSession_reason },
6628         { NULL, 0, 0, NULL }
6629 };
6630 static int
6631 dissect_h225_ServiceControlSession(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6632 {
6633         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ServiceControlSession, ett_h225_ServiceControlSession, ServiceControlSession_sequence);
6634         return offset;
6635 }
6636
6637
6638
6639 static int
6640 dissect_h225_serviceControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6641 {
6642         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_serviceControl, ett_h225_serviceControl, dissect_h225_ServiceControlSession);
6643         return offset;
6644 }
6645
6646
6647 static int
6648 dissect_h225_alertingAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6649 {
6650         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_alertingAddress, ett_h225_alertingAddress, dissect_h225_AliasAddress);
6651         return offset;
6652 }
6653
6654
6655 static per_sequence_t AlertingUUIE_sequence[] = {
6656         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6657                 dissect_h225_ProtocolIdentifier },
6658         { "destinationInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6659                 dissect_h225_destinationInfo },
6660         { "h245Address", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6661                 dissect_h225_h245Address },
6662         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6663                 dissect_h225_CallIdentifier },
6664         { "h245SecurityMode", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6665                 dissect_h225_H245Security },
6666         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6667                 dissect_h225_tokens },
6668         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6669                 dissect_h225_cryptoTokens },
6670         { "fastStart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6671                 dissect_h225_fastStart },
6672         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6673                 dissect_h225_multipleCalls },
6674         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6675                 dissect_h225_maintainConnection },
6676         { "alertingAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6677                 dissect_h225_alertingAddress },
6678         { "presentationIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6679                 dissect_h225_PresentationIndicator },
6680         { "screeningIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6681                 dissect_h225_ScreeningIndicator },
6682         { "fastConnectRefused", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6683                 dissect_h225_NULL },
6684         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6685                 dissect_h225_serviceControl },
6686         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6687                 dissect_h225_CallCapacity },
6688         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6689                 dissect_h225_FeatureSet },
6690         { NULL, 0, 0, NULL }
6691 };
6692 static int
6693 dissect_h225_AlertingUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6694 {
6695         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AlertingUUIE, ett_h225_AlertingUUIE, AlertingUUIE_sequence);
6696         return offset;
6697 }
6698
6699 static int
6700 dissect_h225_busyAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6701 {
6702         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_busyAddress, ett_h225_busyAddress, dissect_h225_AliasAddress);
6703         return offset;
6704 }
6705
6706
6707 static per_sequence_t ReleaseCompleteUUIE_sequence[] = {
6708         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6709                 dissect_h225_ProtocolIdentifier },
6710         { "reason", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6711                 dissect_h225_ReleaseCompleteReason },
6712         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6713                 dissect_h225_CallIdentifier },
6714         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6715                 dissect_h225_tokens },
6716         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6717                 dissect_h225_cryptoTokens },
6718         { "busyAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6719                 dissect_h225_busyAddress },
6720         { "presentationIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6721                 dissect_h225_PresentationIndicator },
6722         { "screeningIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6723                 dissect_h225_ScreeningIndicator },
6724         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6725                 dissect_h225_CallCapacity },
6726         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6727                 dissect_h225_serviceControl },
6728         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6729                 dissect_h225_FeatureSet },
6730         { NULL, 0, 0, NULL }
6731 };
6732 static int
6733 dissect_h225_ReleaseCompleteUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6734 {
6735         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ReleaseCompleteUUIE, ett_h225_ReleaseCompleteUUIE, ReleaseCompleteUUIE_sequence);
6736         return offset;
6737 }
6738
6739 static int
6740 dissect_h225_alternativeAliasAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6741 {
6742         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_alternativeAliasAddress, ett_h225_alternativeAliasAddress, dissect_h225_AliasAddress);
6743         return offset;
6744 }
6745
6746 static per_sequence_t FacilityUUIE_sequence[] = {
6747         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6748                 dissect_h225_ProtocolIdentifier },
6749         { "alternativeAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6750                 dissect_h225_alternativeAddress },
6751         { "alternativeAliasAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6752                 dissect_h225_alternativeAliasAddress },
6753         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6754                 dissect_h225_conferenceID },
6755         { "reason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6756                 dissect_h225_FacilityReason },
6757         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6758                 dissect_h225_CallIdentifier },
6759         { "destExtraCallInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6760                 dissect_h225_destExtraCallInfo },
6761         { "remoteExtensionAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6762                 dissect_h225_RemoteExtensionAddress },
6763         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6764                 dissect_h225_tokens },
6765         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6766                 dissect_h225_cryptoTokens },
6767         { "conferences", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6768                 dissect_h225_conferences },
6769         { "h245Address", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6770                 dissect_h225_h245Address },
6771         { "fastStart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6772                 dissect_h225_fastStart },
6773         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6774                 dissect_h225_multipleCalls },
6775         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6776                 dissect_h225_maintainConnection },
6777         { "fastConnectRefused", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6778                 dissect_h225_NULL },
6779         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6780                 dissect_h225_serviceControl },
6781         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6782                 dissect_h225_CircuitInfo },
6783         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6784                 dissect_h225_FeatureSet },
6785         { "destinationInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6786                 dissect_h225_destinationInfo },
6787         { "h245SecurityMode", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6788                 dissect_h225_H245Security },
6789         { NULL, 0, 0, NULL }
6790 };
6791 static int
6792 dissect_h225_FacilityUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6793 {
6794         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_FacilityUUIE, ett_h225_FacilityUUIE, FacilityUUIE_sequence);
6795         return offset;
6796 }
6797
6798 static per_sequence_t AdmissionReject_sequence[] = {
6799         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6800                 dissect_h225_RequestSeqNum },
6801         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6802                 dissect_h225_AdmissionRejectReason },
6803         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6804                 dissect_h225_nonStandardData },
6805         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6806                 dissect_h225_AltGKInfo },
6807         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6808                 dissect_h225_tokens },
6809         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6810                 dissect_h225_cryptoTokens },
6811         { "callSignalAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6812                 dissect_h225_callSignalAddress },
6813         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6814                 dissect_h225_ICV },
6815         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6816                 dissect_h225_serviceControl },
6817         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6818                 dissect_h225_FeatureSet },
6819         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6820                 dissect_h225_genericData },
6821         { NULL, 0, 0, NULL }
6822 };
6823 static int
6824 dissect_h225_AdmissionReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6825 {
6826         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AdmissionReject, ett_h225_AdmissionReject, AdmissionReject_sequence);
6827         return offset;
6828 }
6829
6830 static int
6831 dissect_h225_hopCount(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6832 {
6833         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
6834                 tree, hf_h225_hopCount, 1, 31,
6835                 NULL, NULL, FALSE);
6836         return offset;
6837 }
6838
6839
6840 static int
6841 dissect_h225_parallelH245Control_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6842 {
6843         tvbuff_t *h245_tvb;
6844         guint32 h245_offset=0;
6845         guint32 h245_len=0;
6846
6847         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &h245_offset, &h245_len);
6848
6849         if(h245_len){
6850                 gboolean save_info;
6851
6852                 /* dont update the INFO or PROTOCOL fields of the summary */
6853                 save_info=col_get_writable(pinfo->cinfo);
6854                 col_set_writable(pinfo->cinfo, FALSE);
6855                 h245_tvb = tvb_new_subset(tvb, h245_offset, h245_len, h245_len);
6856                 call_dissector(h245dg_handle, h245_tvb, pinfo, tree);
6857                 col_set_writable(pinfo->cinfo, save_info);
6858         }
6859
6860         return offset;
6861 }
6862
6863 static int
6864 dissect_h225_parallelH245Control(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6865 {
6866         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_parallelH245Control, ett_h225_parallelH245Control, dissect_h225_parallelH245Control_item);
6867         return offset;
6868 }
6869
6870 static int
6871 dissect_h225_language(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6872 {
6873         offset=dissect_per_IA5String(tvb, offset, pinfo, tree, hf_h225_language, 1, 32);
6874         return offset;
6875 }
6876
6877 static int
6878 dissect_h225_languages(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6879 {
6880         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_languages, ett_h225_languages, dissect_h225_language);
6881         return offset;
6882 }
6883
6884 static int
6885 dissect_h225_mediaWaitForConnect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6886 {
6887         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_mediaWaitForConnect, NULL, NULL);
6888         return offset;
6889 }
6890
6891 static int
6892 dissect_h225_canOverlapSend(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6893 {
6894         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_canOverlapSend, NULL, NULL);
6895         return offset;
6896 }
6897
6898 static int
6899 dissect_h225_sourceAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6900 {
6901         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_sourceAddress, ett_h225_sourceAddress, dissect_h225_AliasAddress);
6902         return offset;
6903 }
6904
6905 static int
6906 dissect_h225_destinationAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6907 {
6908         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_destinationAddress, ett_h225_destinationAddress, dissect_h225_AliasAddress);
6909         return offset;
6910 }
6911
6912
6913 static int
6914 dissect_h225_destExtraCRV(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6915 {
6916         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_destExtraCRV, ett_h225_destExtraCRV, dissect_h225_CallReferenceValue);
6917         return offset;
6918 }
6919
6920 static int
6921 dissect_h225_h245SecurityCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6922 {
6923         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h245SecurityCapability, ett_h225_h245SecurityCapability, dissect_h225_H245Security);
6924         return offset;
6925 }
6926
6927 static int
6928 dissect_h225_additionalSourceAddresses(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
6929 {
6930         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_additionalSourceAddresses, ett_h225_additionalSourceAddresses, dissect_h225_ExtendedAliasAddress);
6931         return offset;
6932 }
6933
6934
6935
6936 static per_sequence_t SetupUUIE_sequence[] = {
6937         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6938                 dissect_h225_ProtocolIdentifier },
6939         { "h245Address", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6940                 dissect_h225_h245Address },
6941         { "sourceAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6942                 dissect_h225_sourceAddress },
6943         { "sourceInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6944                 dissect_h225_sourceInfo },
6945         { "destinationAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6946                 dissect_h225_destinationAddress },
6947         { "destCallSignalAddress", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6948                 dissect_h225_destCallSignalAddress },
6949         { "destExtraCallInfo", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6950                 dissect_h225_destExtraCallInfo },
6951         { "destExtraCRV", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6952                 dissect_h225_destExtraCRV },
6953         { "activeMC", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6954                 dissect_h225_activeMC },
6955         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6956                 dissect_h225_conferenceID },
6957         { "conferenceGoal", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6958                 dissect_h225_conferenceGoal },
6959         { "callServices", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
6960                 dissect_h225_callServices },
6961         { "callType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6962                 dissect_h225_CallType },
6963         { "sourceCallSignalAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6964                 dissect_h225_sourceCallSignalAddress },
6965         { "RemoteExtensionAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6966                 dissect_h225_RemoteExtensionAddress },
6967         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6968                 dissect_h225_CallIdentifier },
6969         { "h245SecurityCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6970                 dissect_h225_h245SecurityCapability },
6971         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6972                 dissect_h225_tokens },
6973         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6974                 dissect_h225_cryptoTokens },
6975         { "fastStart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6976                 dissect_h225_fastStart },
6977         { "mediaWaitForConnect", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6978                 dissect_h225_mediaWaitForConnect },
6979         { "canOverlapSend", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6980                 dissect_h225_canOverlapSend },
6981         { "endpointIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6982                 dissect_h225_EndpointIdentifier },
6983         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6984                 dissect_h225_multipleCalls },
6985         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
6986                 dissect_h225_maintainConnection },
6987         { "connectionParameters", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6988                 dissect_h225_connectionParameters },
6989         { "languages", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6990                 dissect_h225_languages },
6991         { "presentationIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6992                 dissect_h225_PresentationIndicator },
6993         { "screeningIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6994                 dissect_h225_ScreeningIndicator },
6995         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6996                 dissect_h225_serviceControl },
6997         { "symmetricOperationRequired", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
6998                 dissect_h225_NULL },
6999         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7000                 dissect_h225_CallCapacity },
7001         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7002                 dissect_h225_CircuitInfo },
7003         { "desiredProtocols", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7004                 dissect_h225_desiredProtocols },
7005         { "neededFeatures", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7006                 dissect_h225_neededFeatures },
7007         { "desiredFeatures", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7008                 dissect_h225_desiredFeatures },
7009         { "supportedFeatures", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7010                 dissect_h225_supportedFeatures },
7011         { "parallelH245Control", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7012                 dissect_h225_parallelH245Control },
7013         { "additionalSourceAddresses", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7014                 dissect_h225_additionalSourceAddresses },
7015         { "hopCount", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7016                 dissect_h225_hopCount },
7017         { NULL, 0, 0, NULL }
7018 };
7019 static int
7020 dissect_h225_SetupUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7021 {
7022         contains_faststart = FALSE;
7023         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_SetupUUIE, ett_h225_SetupUUIE, SetupUUIE_sequence);
7024         return offset;
7025 }
7026
7027
7028 static int
7029 dissect_h225_connectedAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7030 {
7031         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_connectedAddress, ett_h225_connectedAddress, dissect_h225_AliasAddress);
7032         return offset;
7033 }
7034
7035 static per_sequence_t ConnectUUIE_sequence[] = {
7036         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7037                 dissect_h225_ProtocolIdentifier },
7038         { "h245Address", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7039                 dissect_h225_h245Address },
7040         { "destinationInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7041                 dissect_h225_destinationInfo },
7042         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7043                 dissect_h225_conferenceID },
7044         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7045                 dissect_h225_CallIdentifier },
7046         { "h245SecurityMode", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7047                 dissect_h225_H245Security },
7048         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7049                 dissect_h225_tokens },
7050         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7051                 dissect_h225_cryptoTokens },
7052         { "fastStart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7053                 dissect_h225_fastStart },
7054         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7055                 dissect_h225_multipleCalls },
7056         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7057                 dissect_h225_maintainConnection },
7058         { "languages", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7059                 dissect_h225_languages },
7060         { "connectedAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7061                 dissect_h225_connectedAddress },
7062         { "presentationIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7063                 dissect_h225_PresentationIndicator },
7064         { "screeningIndicator", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7065                 dissect_h225_ScreeningIndicator },
7066         { "fastConnectRefused", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7067                 dissect_h225_NULL },
7068         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7069                 dissect_h225_serviceControl },
7070         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7071                 dissect_h225_CallCapacity },
7072         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7073                 dissect_h225_FeatureSet },
7074         { NULL, 0, 0, NULL }
7075 };
7076 static int
7077 dissect_h225_ConnectUUIE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7078 {
7079         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ConnectUUIE, ett_h225_ConnectUUIE, ConnectUUIE_sequence);
7080         return offset;
7081 }
7082
7083
7084 static const value_string h323_message_body_vals[] = {
7085         { 0, "setup" },
7086         { 1, "callProceeding" },
7087         { 2, "connect" },
7088         { 3, "alerting" },
7089         { 4, "information" },
7090         { 5, "releaseComplete" },
7091         { 6, "facility" },
7092         { 7, "progress" },
7093         { 8, "empty" },
7094         { 9, "status" },
7095         { 10, "statusInquiry" },
7096         { 11, "setupAcknowledge" },
7097         { 12, "notify" },
7098         { 0, NULL}
7099 };
7100 static per_choice_t h323_message_body_choice[] = {
7101         { 0, "setup", ASN1_EXTENSION_ROOT,
7102                 dissect_h225_SetupUUIE },
7103         { 1, "callProceeding", ASN1_EXTENSION_ROOT,
7104                 dissect_h225_CallProceedingUUIE },
7105         { 2, "connect", ASN1_EXTENSION_ROOT,
7106                 dissect_h225_ConnectUUIE },
7107         { 3, "alerting", ASN1_EXTENSION_ROOT,
7108                 dissect_h225_AlertingUUIE },
7109         { 4, "information", ASN1_EXTENSION_ROOT,
7110                 dissect_h225_InformationUUIE },
7111         { 5, "releaseComplete", ASN1_EXTENSION_ROOT,
7112                 dissect_h225_ReleaseCompleteUUIE },
7113         { 6, "facility", ASN1_EXTENSION_ROOT,
7114                 dissect_h225_FacilityUUIE },
7115         { 7, "progress", ASN1_NOT_EXTENSION_ROOT,
7116                 dissect_h225_ProgressUUIE },
7117         { 8, "empty", ASN1_NOT_EXTENSION_ROOT,
7118                 dissect_h225_NULL },
7119         { 9, "status", ASN1_NOT_EXTENSION_ROOT,
7120                 dissect_h225_StatusUUIE },
7121         { 10, "statusInquiry", ASN1_NOT_EXTENSION_ROOT,
7122                 dissect_h225_StatusInquiryUUIE },
7123         { 11, "setupAcknowledge", ASN1_NOT_EXTENSION_ROOT,
7124                 dissect_h225_SetupAcknowledgeUUIE },
7125         { 12, "notify", ASN1_NOT_EXTENSION_ROOT,
7126                 dissect_h225_NotifyUUIE },
7127         { 0, NULL, 0, NULL }
7128 };
7129 static int
7130 dissect_h225_h323_message_body(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7131 {
7132         guint32 value;
7133
7134         contains_faststart = FALSE;
7135
7136         offset=dissect_per_choice(tvb, offset, pinfo, tree, hf_h225_h323_message_body, ett_h225_h323_message_body, h323_message_body_choice, "h323_message_body", &(value));
7137
7138         if (check_col(pinfo->cinfo, COL_INFO)){
7139                 col_append_fstr(pinfo->cinfo, COL_INFO, "CS: %s ",
7140                         val_to_str(value, h323_message_body_vals, "<unknown>"));
7141         }
7142
7143         h225_pi.msg_tag = value;
7144
7145         if (contains_faststart == TRUE )
7146         {
7147                 if (check_col(pinfo->cinfo, COL_INFO))
7148                 {
7149                         col_append_str(pinfo->cinfo, COL_INFO, "OpenLogicalChannel " );
7150                 }
7151         }
7152
7153         col_set_fence(pinfo->cinfo,COL_INFO);
7154
7155         return offset;
7156 }
7157
7158 static int
7159 dissect_h225_supportedProtocols(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7160 {
7161         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_supportedProtocols, ett_h225_supportedProtocols, dissect_h225_SupportedProtocols);
7162         return offset;
7163 }
7164
7165 static int
7166 dissect_h225_modifiedSrcInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7167 {
7168         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_modifiedSrcInfo, ett_h225_modifiedSrcInfo, dissect_h225_AliasAddress);
7169         return offset;
7170 }
7171
7172
7173 static per_sequence_t LocationConfirm_sequence[] = {
7174         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7175                 dissect_h225_RequestSeqNum },
7176         { "callSignalAddress2", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7177                 dissect_h225_CallSignalAddress2 },
7178         { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7179                 dissect_h225_rasAddress },
7180         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7181                 dissect_h225_nonStandardData },
7182         { "DestinationInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7183                 dissect_h225_DestinationInfo },
7184         { "destExtraCallInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7185                 dissect_h225_destExtraCallInfo },
7186         { "destinationType", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7187                 dissect_h225_destinationType },
7188         { "remoteExtensionAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7189                 dissect_h225_remoteExtensionAddress },
7190         { "alternateEndpoints", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7191                 dissect_h225_alternateEndpoints },
7192         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7193                 dissect_h225_tokens },
7194         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7195                 dissect_h225_cryptoTokens },
7196         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7197                 dissect_h225_ICV },
7198         { "alternateTransportAddresses", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7199                 dissect_h225_AlternateTransportAddress },
7200         { "supportedProtocols", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7201                 dissect_h225_supportedProtocols },
7202         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7203                 dissect_h225_multipleCalls },
7204         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7205                 dissect_h225_FeatureSet },
7206         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7207                 dissect_h225_genericData },
7208         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7209                 dissect_h225_CircuitInfo },
7210         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7211                 dissect_h225_serviceControl },
7212         { "modifiedSrcInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7213                 dissect_h225_modifiedSrcInfo },
7214         { "bandWidth", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7215                 dissect_h225_BandWidth },
7216         { NULL, 0, 0, NULL }
7217 };
7218 static int
7219 dissect_h225_LocationConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7220 {
7221         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_LocationConfirm, ett_h225_LocationConfirm, LocationConfirm_sequence);
7222         return offset;
7223 }
7224
7225 static per_sequence_t LocationReject_sequence[] = {
7226         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7227                 dissect_h225_RequestSeqNum },
7228         { "rejectReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7229                 dissect_h225_LocationRejectReason },
7230         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7231                 dissect_h225_nonStandardData },
7232         { "altGKInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7233                 dissect_h225_AltGKInfo },
7234         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7235                 dissect_h225_tokens },
7236         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7237                 dissect_h225_cryptoTokens },
7238         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7239                 dissect_h225_ICV },
7240         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7241                 dissect_h225_FeatureSet },
7242         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7243                 dissect_h225_genericData },
7244         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7245                 dissect_h225_serviceControl },
7246         { NULL, 0, 0, NULL }
7247 };
7248 static int
7249 dissect_h225_LocationReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7250 {
7251         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_LocationReject, ett_h225_LocationReject, LocationReject_sequence);
7252         return offset;
7253 }
7254
7255
7256 static int
7257 dissect_h225_answeredCall(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7258 {
7259         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_answeredCall, NULL, NULL);
7260         return offset;
7261 }
7262
7263 static per_sequence_t callSpecific_sequence[] = {
7264         { "callIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7265                 dissect_h225_CallIdentifier },
7266         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7267                 dissect_h225_conferenceID },
7268         { "answeredCall", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7269                 dissect_h225_answeredCall },
7270         { NULL, 0, 0, NULL }
7271 };
7272 static int
7273 dissect_h225_callSpecific(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7274 {
7275         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_callSpecific, ett_h225_callSpecific, callSpecific_sequence);
7276         return offset;
7277 }
7278
7279 static per_sequence_t ServiceControlIndication_sequence[] = {
7280         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7281                  dissect_h225_RequestSeqNum },
7282         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7283                 dissect_h225_nonStandardData },
7284         { "serviceControl", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7285                 dissect_h225_serviceControl },
7286         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7287                 dissect_h225_EndpointIdentifier },
7288         { "callSpecific", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7289                 dissect_h225_callSpecific },
7290         { "tokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7291                 dissect_h225_tokens },
7292         { "cryptoTokens", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7293                 dissect_h225_cryptoTokens },
7294         { "integrityCheckValue", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7295                 dissect_h225_ICV },
7296         { "featureSet", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7297                 dissect_h225_FeatureSet },
7298         { "genericData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7299                 dissect_h225_genericData },
7300         { NULL, 0, 0, NULL }
7301 };
7302 static int
7303 dissect_h225_ServiceControlIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7304 {
7305         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_ServiceControlIndication, ett_h225_ServiceControlIndication, ServiceControlIndication_sequence);
7306         return offset;
7307 }
7308
7309 static int
7310 dissect_h225_alertingTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7311 {
7312 NOT_DECODED_YET("alertingTime");
7313         return offset;
7314 }
7315 static int
7316 dissect_h225_connectTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7317 {
7318 NOT_DECODED_YET("connectTime");
7319         return offset;
7320 }
7321 static int
7322 dissect_h225_endTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7323 {
7324 NOT_DECODED_YET("endTime");
7325         return offset;
7326 }
7327
7328 static int
7329 dissect_h225_nonStandardUsageFields_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7330 {
7331         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
7332                                 hf_h225_nonStandardUsageFields_item);
7333         return offset;
7334 }
7335
7336 static int
7337 dissect_h225_nonStandardUsageFields(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7338 {
7339         offset = dissect_per_sequence_of(tvb, offset, pinfo, tree,
7340                                 hf_h225_nonStandardUsageFields,
7341                                 ett_h225_T_nonStandardUsageFields, dissect_h225_nonStandardUsageFields_item);
7342         return offset;
7343 }
7344
7345
7346 static per_sequence_t RasUsageInformation_sequence[] = {
7347         { "nonStandardUsageFields", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7348                 dissect_h225_nonStandardUsageFields },
7349         { "alertingTime", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7350                 dissect_h225_alertingTime },
7351         { "connectTime", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7352                 dissect_h225_connectTime },
7353         { "endTime", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7354                 dissect_h225_endTime },
7355         { NULL, 0, 0, NULL }
7356 };
7357 static int
7358 dissect_h225_RasUsageInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7359 {
7360         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RasUsageInformation, ett_h225_RasUsageInformation, RasUsageInformation_sequence);
7361         return offset;
7362 }
7363
7364
7365
7366 static int
7367 dissect_h225_TimeToLive(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7368 {
7369         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
7370                 tree, hf_h225_TimeToLive, 1, 4294967295UL,
7371                 NULL, NULL, FALSE);
7372         return offset;
7373 }
7374
7375 static per_sequence_t GatekeeperConfirm_sequence[] = {
7376         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7377                 dissect_h225_RequestSeqNum },
7378         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7379                 dissect_h225_ProtocolIdentifier },
7380         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7381                 dissect_h225_nonStandardData },
7382         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7383                 dissect_h225_GatekeeperIdentifier },
7384         { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7385                 dissect_h225_rasAddress },
7386         { "alternateGatekeeper", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7387                 dissect_h225_alternateGatekeeper },
7388 /*XXX from h235 AuthenticationMechanism */
7389         { "authenticationMode", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL, NULL },
7390         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7391                 dissect_h225_tokens },
7392         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7393                 dissect_h225_cryptoTokens },
7394         { "algorithmOID", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7395                 dissect_h225_algorithmOID },
7396         { "integrity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7397                 dissect_h225_integrity },
7398         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7399                 dissect_h225_ICV },
7400         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7401                 dissect_h225_FeatureSet },
7402         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7403                 dissect_h225_genericData },
7404         { NULL, 0, 0, NULL }
7405 };
7406 static int
7407 dissect_h225_GatekeeperConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7408 {
7409         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_GatekeeperConfirm, ett_h225_GatekeeperConfirm, GatekeeperConfirm_sequence);
7410         return offset;
7411 }
7412
7413
7414
7415 static int
7416 dissect_h225_discoveryComplete(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7417 {
7418         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_discoveryComplete, NULL, NULL);
7419         return offset;
7420 }
7421
7422
7423 static int
7424 dissect_h225_keepAlive(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7425 {
7426         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_keepAlive, NULL, NULL);
7427         return offset;
7428 }
7429
7430
7431 static int
7432 dissect_h225_H248PackagesDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7433 {
7434         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_H248PackagesDescriptor, -1, -1, NULL, NULL);
7435         return offset;
7436 }
7437
7438 static int
7439 dissect_h225_supportedH248Packages(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7440 {
7441         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_supportedH248Packages, ett_h225_supportedH248Packages, dissect_h225_H248PackagesDescriptor);
7442         return offset;
7443 }
7444
7445
7446 static per_sequence_t RegistrationRequest_sequence[] = {
7447         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7448                 dissect_h225_RequestSeqNum },
7449         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7450                 dissect_h225_ProtocolIdentifier },
7451         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7452                 dissect_h225_nonStandardData },
7453         { "discoveryComplete", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7454                 dissect_h225_discoveryComplete },
7455         { "callSignalAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7456                 dissect_h225_callSignalAddress },
7457         { "rasAddress_sequence", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7458                 dissect_h225_rasAddress_sequence },
7459         { "terminalType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7460                 dissect_h225_terminalType },
7461         { "terminalAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7462                 dissect_h225_terminalAlias },
7463         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7464                 dissect_h225_GatekeeperIdentifier },
7465         { "endpointVendor", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7466                 dissect_h225_VendorIdentifier },
7467         { "alternateEndpoints", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7468                 dissect_h225_alternateEndpoints },
7469         { "timeToLive", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7470                 dissect_h225_TimeToLive },
7471         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7472                 dissect_h225_tokens },
7473         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7474                 dissect_h225_cryptoTokens },
7475         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7476                 dissect_h225_ICV },
7477         { "keepAlive", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7478                 dissect_h225_keepAlive },
7479         { "endpointIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7480                 dissect_h225_EndpointIdentifier },
7481         { "willSupplyUUIEs", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7482                 dissect_h225_willSupplyUUIEs },
7483         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7484                 dissect_h225_maintainConnection },
7485         { "alternateTransportAddresses", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7486                 dissect_h225_AlternateTransportAddress },
7487         { "additiveRegistration", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7488                 dissect_h225_NULL },
7489         { "terminalAliasPattern", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7490                 dissect_h225_terminalAliasPattern },
7491         { "supportsAltGK", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7492                 dissect_h225_NULL },
7493         { "usageReportingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7494                 dissect_h225_usageReportingCapability },
7495         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7496                 dissect_h225_multipleCalls },
7497         { "supportedH248Packages", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7498                 dissect_h225_supportedH248Packages },
7499         { "callCreditCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7500                 dissect_h225_CallCreditCapability },
7501         { "capacityReportingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7502                 dissect_h225_CapacityReportingCapability },
7503         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7504                 dissect_h225_CallCapacity },
7505         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7506                 dissect_h225_FeatureSet },
7507         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7508                 dissect_h225_genericData },
7509         { "restart", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7510                 dissect_h225_NULL },
7511         { "supportsACFSequences", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7512                 dissect_h225_NULL },
7513         { NULL, 0, 0, NULL }
7514 };
7515 static int
7516 dissect_h225_RegistrationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7517 {
7518         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RegistrationRequest, ett_h225_RegistrationRequest, RegistrationRequest_sequence);
7519         return offset;
7520 }
7521
7522
7523 static per_sequence_t DisengageConfirm_sequence[] = {
7524         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7525                 dissect_h225_RequestSeqNum },
7526         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7527                 dissect_h225_nonStandardData },
7528         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7529                 dissect_h225_tokens },
7530         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7531                 dissect_h225_cryptoTokens },
7532         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7533                 dissect_h225_ICV },
7534         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7535                 dissect_h225_CallCapacity },
7536         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7537                 dissect_h225_CircuitInfo },
7538         { "usageInformation", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7539                 dissect_h225_RasUsageInformation },
7540         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7541                 dissect_h225_genericData },
7542         { NULL, 0, 0, NULL }
7543 };
7544 static int
7545 dissect_h225_DisengageConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7546 {
7547         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_DisengageConfirm, ett_h225_DisengageConfirm, DisengageConfirm_sequence);
7548         return offset;
7549 }
7550
7551
7552 static int
7553 dissect_h225_irrFrequency(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7554 {
7555         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
7556                 tree, hf_h225_irrFrequency, 1, 65535,
7557                 NULL, NULL, FALSE);
7558         return offset;
7559 }
7560
7561 static int
7562 dissect_h225_willRespondToIRR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7563 {
7564         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_willRespondToIRR, NULL, NULL);
7565         return offset;
7566 }
7567
7568
7569 static int
7570 dissect_h225_usageSpec(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7571 {
7572         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_usageSpec, ett_h225_usageSpec, dissect_h225_RasUsageSpecification);
7573         return offset;
7574 }
7575
7576 static per_sequence_t AdmissionConfirm_sequence[] = {
7577         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7578                 dissect_h225_RequestSeqNum },
7579         { "bandWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7580                 dissect_h225_BandWidth },
7581         { "callModel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7582                 dissect_h225_CallModel },
7583         { "destCallSignalAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7584                 dissect_h225_destCallSignalAddress },
7585         { "irrFrequency", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7586                 dissect_h225_irrFrequency },
7587         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7588                 dissect_h225_nonStandardData },
7589         { "DestinationInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7590                 dissect_h225_DestinationInfo },
7591         { "destExtraCallInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7592                 dissect_h225_destExtraCallInfo },
7593         { "destinationType", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7594                 dissect_h225_destinationType },
7595         { "remoteExtensionAddress", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7596                 dissect_h225_remoteExtensionAddress },
7597         { "alternateEndpoints", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7598                 dissect_h225_alternateEndpoints },
7599         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7600                 dissect_h225_tokens },
7601         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7602                 dissect_h225_cryptoTokens },
7603         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7604                 dissect_h225_ICV },
7605         { "transportQOS", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7606                 dissect_h225_TransportQOS },
7607         { "willRespondToIRR", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7608                 dissect_h225_willRespondToIRR },
7609         { "uuiesRequested", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7610                 dissect_h225_UUIEsRequested },
7611         { "languages", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7612                 dissect_h225_languages },
7613         { "alternateTransportAddresses", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7614                 dissect_h225_AlternateTransportAddress },
7615         { "useSpecifiedTransport", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7616                 dissect_h225_UseSpecifiedTransport },
7617         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7618                 dissect_h225_CircuitInfo },
7619         { "usageSpec", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7620                 dissect_h225_usageSpec },
7621         { "supportedProtocols", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7622                 dissect_h225_supportedProtocols },
7623         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7624                 dissect_h225_serviceControl },
7625         { "multipleCalls", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7626                 dissect_h225_multipleCalls },
7627         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7628                 dissect_h225_FeatureSet },
7629         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7630                 dissect_h225_genericData },
7631         { "modifiedSrcInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7632                 dissect_h225_modifiedSrcInfo },
7633         { NULL, 0, 0, NULL }
7634 };
7635 static int
7636 dissect_h225_AdmissionConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7637 {
7638         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_AdmissionConfirm, ett_h225_AdmissionConfirm, AdmissionConfirm_sequence);
7639         return offset;
7640 }
7641
7642
7643 static per_sequence_t DisengageRequest_sequence[] = {
7644         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7645                 dissect_h225_RequestSeqNum },
7646         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7647                 dissect_h225_EndpointIdentifier },
7648         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7649                 dissect_h225_conferenceID },
7650         { "callReferenceValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7651                 dissect_h225_CallReferenceValue },
7652         { "disengageReason", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7653                 dissect_h225_DisengageReason },
7654         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7655                 dissect_h225_nonStandardData },
7656         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7657                 dissect_h225_CallIdentifier },
7658         { "gatekeeperIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7659                 dissect_h225_GatekeeperIdentifier },
7660         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7661                 dissect_h225_tokens },
7662         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7663                 dissect_h225_cryptoTokens },
7664         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7665                 dissect_h225_ICV },
7666         { "answeredCall", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7667                 dissect_h225_answeredCall },
7668         { "callLinkage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7669                 dissect_h225_CallLinkage },
7670         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7671                 dissect_h225_CallCapacity },
7672         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7673                 dissect_h225_CircuitInfo },
7674         { "usageInformation", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7675                 dissect_h225_RasUsageInformation },
7676         { "terminationCause", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7677                 dissect_h225_CallTerminationCause },
7678         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7679                 dissect_h225_serviceControl },
7680         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7681                 dissect_h225_genericData },
7682         { NULL, 0, 0, NULL }
7683 };
7684 static int
7685 dissect_h225_DisengageRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7686 {
7687         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_DisengageRequest, ett_h225_DisengageRequest, DisengageRequest_sequence);
7688         return offset;
7689 }
7690
7691
7692 static int
7693 dissect_h225_SourceInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7694 {
7695         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_SourceInfo, ett_h225_SourceInfo, dissect_h225_AliasAddress);
7696         return offset;
7697 }
7698
7699 static int
7700 dissect_h225_hopCount255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7701 {
7702         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
7703                 tree, hf_h225_hopCount255, 1, 255,
7704                 NULL, NULL, FALSE);
7705         return offset;
7706 }
7707
7708 static int
7709 dissect_h225_sourceEndpointInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7710 {
7711         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_sourceEndpointInfo, ett_h225_sourceEndpointInfo, dissect_h225_AliasAddress);
7712         return offset;
7713 }
7714
7715 static per_sequence_t LocationRequest_sequence[] = {
7716         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7717                 dissect_h225_RequestSeqNum },
7718         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7719                 dissect_h225_EndpointIdentifier },
7720         { "DestinationInfo", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7721                 dissect_h225_DestinationInfo },
7722         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7723                 dissect_h225_nonStandardData },
7724         { "replyAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7725                 dissect_h225_replyAddress },
7726         { "SourceInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7727                 dissect_h225_SourceInfo },
7728         { "canMapAlias", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7729                 dissect_h225_canMapAlias },
7730         { "gatekeeperIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7731                 dissect_h225_GatekeeperIdentifier },
7732         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7733                 dissect_h225_tokens },
7734         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7735                 dissect_h225_cryptoTokens },
7736         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7737                 dissect_h225_ICV },
7738         { "desiredProtocols", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7739                 dissect_h225_desiredProtocols },
7740         { "desiredTunnelledProtocol", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7741                 dissect_h225_desiredTunnelledProtocol },
7742         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7743                 dissect_h225_FeatureSet },
7744         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7745                 dissect_h225_genericData },
7746         { "hopCount255", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7747                 dissect_h225_hopCount255 },
7748         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7749                 dissect_h225_CircuitInfo },
7750         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7751                 dissect_h225_CallIdentifier },
7752         { "bandWidth", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7753                 dissect_h225_BandWidth },
7754         { "sourceEndpointInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7755                 dissect_h225_sourceEndpointInfo },
7756         { "canMapSrcAlias", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7757                 dissect_h225_canMapSrcAlias },
7758         { NULL, 0, 0, NULL }
7759 };
7760 static int
7761 dissect_h225_LocationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7762 {
7763         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_LocationRequest, ett_h225_LocationRequest, LocationRequest_sequence);
7764         return offset;
7765 }
7766
7767 static int
7768 dissect_h225_bandwidthDetails(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7769 {
7770         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_bandwidthDetails, ett_h225_bandwidthDetails, dissect_h225_BandwidthDetails);
7771         return offset;
7772 }
7773
7774 static per_sequence_t BandwidthRequest_sequence[] = {
7775         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7776                 dissect_h225_RequestSeqNum },
7777         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7778                 dissect_h225_EndpointIdentifier },
7779         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7780                 dissect_h225_conferenceID },
7781         { "callReferenceValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7782                 dissect_h225_CallReferenceValue },
7783         { "callType", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7784                 dissect_h225_CallType },
7785         { "bandWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7786                 dissect_h225_BandWidth },
7787         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7788                 dissect_h225_nonStandardData },
7789         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7790                 dissect_h225_CallIdentifier },
7791         { "gatekeeperIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7792                 dissect_h225_GatekeeperIdentifier },
7793         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7794                 dissect_h225_tokens },
7795         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7796                 dissect_h225_cryptoTokens },
7797         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7798                 dissect_h225_ICV },
7799         { "answeredCall", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7800                 dissect_h225_answeredCall },
7801         { "callLinkage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7802                 dissect_h225_CallLinkage },
7803         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7804                 dissect_h225_CallCapacity },
7805         { "usageInformation", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7806                 dissect_h225_RasUsageInformation },
7807         { "bandwidthDetails", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7808                 dissect_h225_bandwidthDetails },
7809         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7810                 dissect_h225_genericData },
7811         { NULL, 0, 0, NULL }
7812 };
7813 static int
7814 dissect_h225_BandwidthRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7815 {
7816         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_BandwidthRequest, ett_h225_BandwidthRequest, BandwidthRequest_sequence);
7817         return offset;
7818 }
7819
7820
7821 static int
7822 dissect_h225_admissionConfirmSequence(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7823 {
7824         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_admissionConfirmSequence, ett_h225_admissionConfirmSequence, dissect_h225_AdmissionConfirm);
7825         return offset;
7826 }
7827
7828
7829 static int
7830 dissect_h225_messageContent_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7831 {
7832         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_messageContent_item, -1, -1, NULL, NULL);
7833         return offset;
7834 }
7835
7836
7837 static int
7838 dissect_h225_messageContent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7839 {
7840         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_messageContent, ett_h225_messageContent, dissect_h225_messageContent_item);
7841         return offset;
7842 }
7843
7844
7845 static int
7846 dissect_h225_h4501SupplementaryService_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7847 {
7848         tvbuff_t *h4501_tvb;
7849         guint32 h4501_offset=0;
7850         guint32 h4501_len=0;
7851
7852         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &h4501_offset, &h4501_len);
7853
7854         if(h4501_len){
7855                 h4501_tvb = tvb_new_subset(tvb, h4501_offset, h4501_len, h4501_len);
7856                 call_dissector(h4501_handle, h4501_tvb, pinfo, tree);
7857         }
7858         return offset;
7859 }
7860
7861 static int
7862 dissect_h225_h4501SupplementaryService(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7863 {
7864         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h4501SupplementaryService, ett_h225_h4501SupplementaryService, dissect_h225_h4501SupplementaryService_item);
7865         return offset;
7866 }
7867
7868
7869 static per_sequence_t tunnelledSignallingMessage_sequence[] = {
7870         { "tunnelledProtocolID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7871                 dissect_h225_TunnelledProtocol },
7872         { "messageContent", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7873                 dissect_h225_messageContent },
7874         { "tunnellingRequired", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7875                 dissect_h225_NULL },
7876         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7877                 dissect_h225_nonStandardData },
7878         { NULL, 0, 0, NULL }
7879 };
7880 static int
7881 dissect_h225_tunnelledSignallingMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7882 {
7883         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_tunnelledSignallingMessage, ett_h225_tunnelledSignallingMessage, tunnelledSignallingMessage_sequence);
7884         return offset;
7885 }
7886
7887
7888 static int
7889 dissect_h225_h245Tunneling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7890 {
7891         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_h245Tunneling, NULL, NULL);
7892         return offset;
7893 }
7894
7895
7896 static int
7897 dissect_h225_h245Control_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7898 {
7899         tvbuff_t *h245_tvb;
7900         guint32 h245_offset=0;
7901         guint32 h245_len=0;
7902
7903         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, -1, -1, -1, &h245_offset, &h245_len);
7904
7905         if(h245_len){
7906                 h245_tvb = tvb_new_subset(tvb, h245_offset, h245_len, h245_len);
7907                 call_dissector(h245dg_handle, h245_tvb, pinfo, tree);
7908         }
7909
7910         return offset;
7911 }
7912
7913
7914 static int
7915 dissect_h225_h245Control(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7916 {
7917         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_h245Control, ett_h225_h245Control, dissect_h225_h245Control_item);
7918         return offset;
7919 }
7920
7921
7922 static int
7923 dissect_h225_nonStandardControl_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7924 {
7925         offset = dissect_h225_NonStandardParameter(tvb, offset, pinfo, tree,
7926                                 hf_h225_nonStandardControl_item);
7927         return offset;
7928 }
7929
7930 static int
7931 dissect_h225_nonStandardControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7932 {
7933         offset = dissect_per_sequence_of(tvb, offset, pinfo, tree,
7934                                 hf_h225_nonStandardControl,
7935                                 ett_h225_T_nonStandardControl, dissect_h225_nonStandardControl_item);
7936         return offset;
7937 }
7938
7939
7940 static per_sequence_t H323_UU_PDU_sequence[] = {
7941         { "h323_message_body", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7942                 dissect_h225_h323_message_body },
7943         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
7944                 dissect_h225_nonStandardData },
7945         { "h4501SupplementaryService", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7946                 dissect_h225_h4501SupplementaryService },
7947         { "h245Tunneling", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7948                 dissect_h225_h245Tunneling },
7949         { "h245Control", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7950                 dissect_h225_h245Control },
7951         { "nonStandardControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7952                 dissect_h225_nonStandardControl },
7953         { "callLinkage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7954                 dissect_h225_CallLinkage },
7955         { "tunnelledSignallingMessage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7956                 dissect_h225_tunnelledSignallingMessage },
7957         { "provisionalRespToH245Tunneling", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7958                 dissect_h225_NULL },
7959         { "stimulusControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7960                 dissect_h225_StimulusControl },
7961         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
7962                 dissect_h225_genericData },
7963         { NULL, 0, 0, NULL }
7964 };
7965 static int
7966 dissect_h225_H323_UU_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7967 {
7968         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_H323_UU_PDU, ett_h225_H323_UU_PDU, H323_UU_PDU_sequence);
7969         return offset;
7970 }
7971
7972
7973 static int
7974 dissect_h225_makeCall(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7975 {
7976         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_makeCall, NULL, NULL);
7977         return offset;
7978 }
7979
7980 static int
7981 dissect_h225_useGKCallSignalAddressToMakeCall(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7982 {
7983         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_useGKCallSignalAddressToMakeCall, NULL, NULL);
7984         return offset;
7985 }
7986
7987
7988 static int
7989 dissect_h225_useGKCallSignalAddressToAnswer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
7990 {
7991         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_useGKCallSignalAddressToAnswer, NULL, NULL);
7992         return offset;
7993 }
7994
7995 static per_sequence_t preGrantedARQ_sequence[] = {
7996         { "makeCall", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7997                 dissect_h225_makeCall },
7998         { "useGKCallSignalAddressToMakeCall", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
7999                 dissect_h225_useGKCallSignalAddressToMakeCall },
8000         { "answerCall", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8001                 dissect_h225_answerCall },
8002         { "useGKCallSignalAddressToAnswer", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8003                 dissect_h225_useGKCallSignalAddressToAnswer },
8004         { "irrFrequencyInCall", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8005                 dissect_h225_irrFrequency },
8006         { "totalBandwidthRestriction", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8007                 dissect_h225_totalBandwidthRestriction },
8008         { "alternateTransportAddresses", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8009                 dissect_h225_AlternateTransportAddress },
8010         { "useSpecifiedTransport", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8011                 dissect_h225_UseSpecifiedTransport },
8012         { NULL, 0, 0, NULL }
8013 };
8014 static int
8015 dissect_h225_preGrantedARQ(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8016 {
8017         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_preGrantedARQ, ett_h225_preGrantedARQ, preGrantedARQ_sequence);
8018         return offset;
8019 }
8020
8021
8022
8023 static per_sequence_t RegistrationConfirm_sequence[] = {
8024         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8025                 dissect_h225_RequestSeqNum },
8026         { "protocolIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8027                 dissect_h225_ProtocolIdentifier },
8028         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8029                 dissect_h225_nonStandardData },
8030         { "callSignalAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8031                 dissect_h225_callSignalAddress },
8032         { "terminalAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8033                 dissect_h225_terminalAlias },
8034         { "gatekeeperIdentifier", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8035                 dissect_h225_GatekeeperIdentifier },
8036         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8037                 dissect_h225_EndpointIdentifier },
8038         { "alternateGatekeeper", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8039                 dissect_h225_alternateGatekeeper },
8040         { "timeToLive", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8041                 dissect_h225_TimeToLive },
8042         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8043                 dissect_h225_tokens },
8044         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8045                 dissect_h225_cryptoTokens },
8046         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8047                 dissect_h225_ICV },
8048         { "willRespondToIRR", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8049                 dissect_h225_willRespondToIRR },
8050         { "preGrantedARQ", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8051                 dissect_h225_preGrantedARQ },
8052         { "maintainConnection", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8053                 dissect_h225_maintainConnection },
8054         { "serviceControl", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8055                 dissect_h225_serviceControl },
8056         { "supportsAdditiveRegistration", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8057                 dissect_h225_NULL },
8058         { "terminalAliasPattern", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8059                 dissect_h225_terminalAliasPattern },
8060         { "supportedPrefixes", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8061                 dissect_h225_SupportedPrefixes },
8062         { "usageSpec", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8063                 dissect_h225_usageSpec },
8064         { "featureServerAlias", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8065                 dissect_h225_featureServerAlias },
8066         { "capacityReportingSpec", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8067                 dissect_h225_CapacityReportingSpecification },
8068         { "featureSet", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8069                 dissect_h225_FeatureSet },
8070         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8071                 dissect_h225_genericData },
8072         { NULL, 0, 0, NULL }
8073 };
8074 static int
8075 dissect_h225_RegistrationConfirm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8076 {
8077         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_RegistrationConfirm, ett_h225_RegistrationConfirm, RegistrationConfirm_sequence);
8078         return offset;
8079 }
8080
8081
8082 static int
8083 dissect_h225_sent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8084 {
8085         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_sent, NULL, NULL);
8086         return offset;
8087 }
8088
8089 static per_sequence_t pdu_item_sequence[] = {
8090         { "h323pdu", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
8091                 dissect_h225_H323_UU_PDU },
8092         { "sent", ASN1_NO_EXTENSIONS, ASN1_NOT_OPTIONAL,
8093                 dissect_h225_sent },
8094         { NULL, 0, 0, NULL }
8095 };
8096 static int
8097 dissect_h225_pdu_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8098 {
8099         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_pdu_item, ett_h225_pdu_item, pdu_item_sequence);
8100         return offset;
8101 }
8102
8103
8104 static int
8105 dissect_h225_pdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8106 {
8107         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_pdu, ett_h225_pdu, dissect_h225_pdu_item);
8108         return offset;
8109 }
8110
8111
8112
8113 static int
8114 dissect_h225_originator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8115 {
8116         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_originator, NULL, NULL);
8117         return offset;
8118 }
8119
8120 static int
8121 dissect_h225_audio(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8122 {
8123         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_audio, ett_h225_audio, dissect_h225_RTPSession);
8124         return offset;
8125 }
8126
8127 static int
8128 dissect_h225_video(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8129 {
8130         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_video, ett_h225_video, dissect_h225_RTPSession);
8131         return offset;
8132 }
8133
8134 static int
8135 dissect_h225_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8136 {
8137         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_data, ett_h225_data, dissect_h225_RTPSession);
8138         return offset;
8139 }
8140
8141
8142 static int
8143 dissect_h225_substituteConfIDs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8144 {
8145         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_substituteConfIDs, ett_h225_substituteConfIDs, dissect_h225_conferenceID);
8146         return offset;
8147 }
8148
8149
8150 static per_sequence_t perCallInfo_item_sequence[] = {
8151         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8152                 dissect_h225_nonStandardData },
8153         { "callReferenceValue", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8154                 dissect_h225_CallReferenceValue },
8155         { "conferenceID", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8156                 dissect_h225_conferenceID },
8157         { "originator", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8158                 dissect_h225_originator },
8159         { "audio", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8160                 dissect_h225_audio },
8161         { "video", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8162                 dissect_h225_video },
8163         { "data", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8164                 dissect_h225_data },
8165         { "h245", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8166                 dissect_h225_h245 },
8167         { "callSignaling", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8168                 dissect_h225_callSignaling },
8169         { "callType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8170                 dissect_h225_CallType },
8171         { "bandWidth", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8172                 dissect_h225_BandWidth },
8173         { "callModel", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8174                 dissect_h225_CallModel },
8175         { "callIdentifier", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8176                 dissect_h225_CallIdentifier },
8177         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8178                 dissect_h225_tokens },
8179         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8180                 dissect_h225_cryptoTokens },
8181         { "substituteConfIDs", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8182                 dissect_h225_substituteConfIDs },
8183         { "pdu", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8184                 dissect_h225_pdu },
8185         { "callLinkage", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8186                 dissect_h225_CallLinkage },
8187         { "usageInformation", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8188                 dissect_h225_RasUsageInformation },
8189         { "circuitInfo", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8190                 dissect_h225_CircuitInfo },
8191         { NULL, 0, 0, NULL }
8192 };
8193 static int
8194 dissect_h225_perCallInfo_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8195 {
8196         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_perCallInfo_item, ett_h225_perCallInfo_item, perCallInfo_item_sequence);
8197         return offset;
8198 }
8199
8200
8201
8202
8203 static int
8204 dissect_h225_perCallInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8205 {
8206         offset=dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_h225_perCallInfo, ett_h225_perCallInfo, dissect_h225_perCallInfo_item);
8207         return offset;
8208 }
8209
8210
8211
8212 static int
8213 dissect_h225_needResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8214 {
8215         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_needResponse, NULL, NULL);
8216         return offset;
8217 }
8218
8219
8220 static int
8221 dissect_h225_unsolicited(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8222 {
8223         offset=dissect_per_boolean(tvb, offset, pinfo, tree, hf_h225_unsolicited, NULL, NULL);
8224         return offset;
8225 }
8226
8227 static per_sequence_t InfoRequestResponse_sequence[] = {
8228         { "nonStandardData", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8229                 dissect_h225_nonStandardData },
8230         { "requestSeqNum", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8231                 dissect_h225_RequestSeqNum },
8232         { "endpointType", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8233                 dissect_h225_EndPointType },
8234         { "endpointIdentifier", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8235                 dissect_h225_EndpointIdentifier },
8236         { "rasAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8237                 dissect_h225_rasAddress },
8238         { "callSignalAddress", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8239                 dissect_h225_callSignalAddress },
8240         { "endpointAlias", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8241                 dissect_h225_endpointAlias },
8242         { "perCallInfo", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8243                 dissect_h225_perCallInfo },
8244         { "tokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8245                 dissect_h225_tokens },
8246         { "cryptoTokens", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8247                 dissect_h225_cryptoTokens },
8248         { "integrityCheckValue", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8249                 dissect_h225_ICV },
8250         { "needResponse", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8251                 dissect_h225_needResponse },
8252         { "capacity", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8253                 dissect_h225_CallCapacity },
8254         { "irrStatus", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8255                 dissect_h225_InfoRequestResponseStatus },
8256         { "unsolicited", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8257                 dissect_h225_unsolicited },
8258         { "genericData", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL,
8259                 dissect_h225_genericData },
8260         { NULL, 0, 0, NULL }
8261 };
8262 static int
8263 dissect_h225_InfoRequestResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8264 {
8265         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_InfoRequestResponse, ett_h225_InfoRequestResponse, InfoRequestResponse_sequence);
8266         return offset;
8267 }
8268
8269
8270
8271 static int
8272 dissect_h225_protocol_discriminator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8273 {
8274         offset=dissect_per_constrained_integer(tvb, offset, pinfo,
8275                 tree, hf_h225_protocol_discriminator, 0, 255,
8276                 NULL, NULL, FALSE);
8277         return offset;
8278 }
8279
8280 static int
8281 dissect_h225_user_information(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8282 {
8283         offset=dissect_per_octet_string(tvb, offset, pinfo, tree, hf_h225_user_information, 1, 131, NULL, NULL);
8284         return offset;
8285 }
8286
8287 static per_sequence_t user_data_sequence[] = {
8288         { "protocol-discriminator", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8289                 dissect_h225_protocol_discriminator },
8290         { "user-information", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8291                 dissect_h225_user_information },
8292         { NULL, 0, 0, NULL }
8293 };
8294 static int
8295 dissect_h225_user_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
8296 {
8297         offset=dissect_per_sequence(tvb, offset, pinfo, tree, hf_h225_user_data, ett_h225_user_data, user_data_sequence);
8298         return offset;
8299 }
8300
8301
8302
8303
8304 static const value_string RasMessage_vals[] = {
8305         { 0, "gatekeeperRequest" },
8306         { 1, "gatekeeperConfirm" },
8307         { 2, "gatekeeperReject" },
8308         { 3, "registrationRequest" },
8309         { 4, "registrationConfirm" },
8310         { 5, "registrationReject" },
8311         { 6, "unregistrationRequest" },
8312         { 7, "unregistrationConfirm" },
8313         { 8, "unregistrationReject" },
8314         { 9, "admissionRequest" },
8315         {10, "admissionConfirm" },
8316         {11, "admissionReject" },
8317         {12, "bandwidthRequest" },
8318         {13, "bandwidthConfirm" },
8319         {14, "bandwidthReject" },
8320         {15, "disengageRequest" },
8321         {16, "disengageConfirm" },
8322         {17, "disengageReject" },
8323         {18, "locationRequest" },
8324         {19, "locationConfirm" },
8325         {20, "locationReject" },
8326         {21, "infoRequest" },
8327         {22, "infoRequestResponse" },
8328         {23, "nonStandardMessage" },
8329         {24, "unknownMessageResponse" },
8330         {25, "requestInProgress" },
8331         {26, "resourcesAvailableIndicate" },
8332         {27, "resourcesAvailableConfirm" },
8333         {28, "infoRequestAck" },
8334         {29, "infoRequestNak" },
8335         {30, "serviceControlIndication" },
8336         {31, "serviceControlResponse" },
8337         {32, "admissionConfirmSequence" },
8338         { 0, NULL}
8339 };
8340 static per_choice_t RasMessage_choice[] = {
8341         { 0, "gatekeeperRequest", ASN1_EXTENSION_ROOT,
8342                 dissect_h225_GatekeeperRequest },
8343         { 1, "gatekeeperConfirm", ASN1_EXTENSION_ROOT,
8344                 dissect_h225_GatekeeperConfirm },
8345         { 2, "gatekeeperReject", ASN1_EXTENSION_ROOT,
8346                 dissect_h225_GatekeeperReject },
8347         { 3, "registrationRequest", ASN1_EXTENSION_ROOT,
8348                 dissect_h225_RegistrationRequest },
8349         { 4, "registrationConfirm", ASN1_EXTENSION_ROOT,
8350                 dissect_h225_RegistrationConfirm },
8351         { 5, "registrationReject", ASN1_EXTENSION_ROOT,
8352                 dissect_h225_RegistrationReject },
8353         { 6, "unregistrationRequest", ASN1_EXTENSION_ROOT,
8354                 dissect_h225_UnregistrationRequest },
8355         { 7, "unregistrationConfirm", ASN1_EXTENSION_ROOT,
8356                 dissect_h225_UnregistrationConfirm },
8357         { 8, "unregistrationReject", ASN1_EXTENSION_ROOT,
8358                 dissect_h225_UnregistrationReject },
8359         { 9, "admissionRequest", ASN1_EXTENSION_ROOT,
8360                 dissect_h225_AdmissionRequest },
8361         {10, "admissionConfirm", ASN1_EXTENSION_ROOT,
8362                 dissect_h225_AdmissionConfirm },
8363         {11, "admissionReject", ASN1_EXTENSION_ROOT,
8364                 dissect_h225_AdmissionReject },
8365         {12, "bandwidthRequest", ASN1_EXTENSION_ROOT,
8366                 dissect_h225_BandwidthRequest },
8367         {13, "bandwidthConfirm", ASN1_EXTENSION_ROOT,
8368                 dissect_h225_BandwidthConfirm },
8369         {14, "bandwidthReject", ASN1_EXTENSION_ROOT,
8370                 dissect_h225_BandwidthReject },
8371         {15, "disengageRequest", ASN1_EXTENSION_ROOT,
8372                 dissect_h225_DisengageRequest },
8373         {16, "disengageConfirm", ASN1_EXTENSION_ROOT,
8374                 dissect_h225_DisengageConfirm },
8375         {17, "disengageReject", ASN1_EXTENSION_ROOT,
8376                 dissect_h225_DisengageReject },
8377         {18, "locationRequest", ASN1_EXTENSION_ROOT,
8378                 dissect_h225_LocationRequest },
8379         {19, "locationConfirm", ASN1_EXTENSION_ROOT,
8380                 dissect_h225_LocationConfirm },
8381         {20, "locationReject", ASN1_EXTENSION_ROOT,
8382                 dissect_h225_LocationReject },
8383         {21, "infoRequest", ASN1_EXTENSION_ROOT,
8384                 dissect_h225_InfoRequest },
8385         {22, "infoRequestResponse", ASN1_EXTENSION_ROOT,
8386                 dissect_h225_InfoRequestResponse },
8387         {23, "nonStandardMessage", ASN1_EXTENSION_ROOT,
8388                 dissect_h225_NonStandardMessage },
8389         {24, "unknownMessageResponse", ASN1_EXTENSION_ROOT,
8390                 dissect_h225_UnknownMessageResponse },
8391         {25, "requestInProgress", ASN1_NOT_EXTENSION_ROOT,
8392                 dissect_h225_RequestInProgress },
8393         {26, "resourcesAvailableIndicate", ASN1_NOT_EXTENSION_ROOT,
8394                 dissect_h225_ResourcesAvailableIndicate },
8395         {27, "resourcesAvailableConfirm", ASN1_NOT_EXTENSION_ROOT,
8396                 dissect_h225_ResourcesAvailableConfirm },
8397         {28, "infoRequestAck", ASN1_NOT_EXTENSION_ROOT,
8398                 dissect_h225_InfoRequestAck },
8399         {29, "infoRequestNak", ASN1_NOT_EXTENSION_ROOT,
8400                 dissect_h225_InfoRequestNak },
8401         {30, "serviceControlIndication", ASN1_NOT_EXTENSION_ROOT,
8402                 dissect_h225_ServiceControlIndication },
8403         {31, "serviceControlResponse", ASN1_NOT_EXTENSION_ROOT,
8404                 dissect_h225_ServiceControlResponse },
8405         {32, "admissionConfirmSequence", ASN1_NOT_EXTENSION_ROOT,
8406                 dissect_h225_admissionConfirmSequence },
8407         { 0, NULL, 0, NULL }
8408 };
8409 static void
8410 dissect_h225_RasMessage(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
8411 {
8412         proto_item *it;
8413         proto_tree *tr;
8414         guint32 offset=0;
8415         guint32 value;
8416
8417         /* Init struct for collecting h225_packet_info */
8418         reset_h225_packet_info(&(h225_pi));
8419         h225_pi.msg_type = H225_RAS;
8420
8421         if (check_col(pinfo->cinfo, COL_PROTOCOL)){
8422                 col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0");
8423         }
8424
8425         it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, tvb_length(tvb), "H.225.0 RAS");
8426         tr=proto_item_add_subtree(it, ett_h225);
8427
8428         offset=dissect_per_choice(tvb, offset, pinfo, tr, hf_h225_RasMessage, ett_h225_RasMessage, RasMessage_choice, "RasMessage", &value);
8429
8430         if (check_col(pinfo->cinfo, COL_INFO)){
8431                 col_add_fstr(pinfo->cinfo, COL_INFO, "RAS: %s ",
8432                         val_to_str(value, RasMessage_vals, "<unknown>"));
8433         }
8434         h225_pi.msg_tag = value;
8435
8436         tap_queue_packet(h225_tap, pinfo, &h225_pi);
8437 }
8438
8439
8440
8441
8442
8443
8444 static per_sequence_t H323_UserInformation_sequence[] = {
8445         { "h323_uu_pdu", ASN1_EXTENSION_ROOT, ASN1_NOT_OPTIONAL,
8446                 dissect_h225_H323_UU_PDU },
8447         { "user_data", ASN1_EXTENSION_ROOT, ASN1_OPTIONAL,
8448                 dissect_h225_user_data },
8449         { NULL, 0, 0, NULL }
8450 };
8451 static void
8452 dissect_h225_H323UserInformation(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
8453 {
8454         proto_item *it;
8455         proto_tree *tr;
8456         guint32 offset=0;
8457
8458         /* Init struct for collecting h225_packet_info */
8459         reset_h225_packet_info(&(h225_pi));
8460         h225_pi.msg_type = H225_CS;
8461
8462         if (check_col(pinfo->cinfo, COL_PROTOCOL)){
8463                 col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.225.0");
8464         }
8465         if (check_col(pinfo->cinfo, COL_INFO)){
8466                 col_clear(pinfo->cinfo, COL_INFO);
8467         }
8468
8469         it=proto_tree_add_protocol_format(tree, proto_h225, tvb, 0, tvb_length(tvb), "H.225.0 CS");
8470         tr=proto_item_add_subtree(it, ett_h225);
8471
8472         offset=dissect_per_sequence(tvb, offset, pinfo, tr, hf_h225_H323_UserInformation, ett_h225_H323_UserInformation, H323_UserInformation_sequence);
8473
8474         tap_queue_packet(h225_tap, pinfo, &h225_pi);
8475 }
8476
8477
8478
8479 void
8480 dissect_h225ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
8481 {
8482         dissect_tpkt_encap(tvb, pinfo, tree, h225_reassembly, h225ras_handle);
8483 }
8484
8485
8486
8487 void
8488 proto_register_h225(void)
8489 {
8490         static hf_register_info hf[] =
8491         {
8492         { &hf_h225_PresentationIndicator,
8493                 { "PresentationIndicator", "h225.PresentationIndicator", FT_UINT32, BASE_DEC,
8494                 VALS(PresentationIndicator_vals), 0, "PresentationIndicator choice", HFILL }},
8495         { &hf_h225_conferenceGoal,
8496                 { "conferenceGoal", "h225.conferenceGoal", FT_UINT32, BASE_DEC,
8497                 VALS(conferenceGoal_vals), 0, "conferenceGoal choice", HFILL }},
8498         { &hf_h225_ScnConnectionType,
8499                 { "ScnConnectionType", "h225.ScnConnectionType", FT_UINT32, BASE_DEC,
8500                 VALS(ScnConnectionType_vals), 0, "ScnConnectionType choice", HFILL }},
8501         { &hf_h225_ScnConnectionAggregation,
8502                 { "ScnConnectionAggregation", "h225.ScnConnectionAggregation", FT_UINT32, BASE_DEC,
8503                 VALS(ScnConnectionAggregation_vals), 0, "ScnConnectionAggregation choice", HFILL }},
8504         { &hf_h225_FacilityReason,
8505                 { "FacilityReason", "h225.FacilityReason", FT_UINT32, BASE_DEC,
8506                 VALS(FacilityReason_vals), 0, "FacilityReason choice", HFILL }},
8507         { &hf_h225_PublicTypeOfNumber,
8508                 { "PublicTypeOfNumber", "h225.PublicTypeOfNumber", FT_UINT32, BASE_DEC,
8509                 VALS(PublicTypeOfNumber_vals), 0, "PublicTypeOfNumber choice", HFILL }},
8510         { &hf_h225_PrivateTypeOfNumber,
8511                 { "PrivateTypeOfNumber", "h225.PrivateTypeOfNumber", FT_UINT32, BASE_DEC,
8512                 VALS(PrivateTypeOfNumber_vals), 0, "PrivateTypeOfNumber choice", HFILL }},
8513         { &hf_h225_UseSpecifiedTransport,
8514                 { "UseSpecifiedTransport", "h225.UseSpecifiedTransport", FT_UINT32, BASE_DEC,
8515                 VALS(UseSpecifiedTransport_vals), 0, "UseSpecifiedTransport choice", HFILL }},
8516         { &hf_h225_SecurityErrors,
8517                 { "SecurityErrors", "h225.SecurityErrors", FT_UINT32, BASE_DEC,
8518                 VALS(SecurityErrors_vals), 0, "SecurityErrors choice", HFILL }},
8519         { &hf_h225_SecurityErrors2,
8520                 { "SecurityErrors2", "h225.SecurityErrors2", FT_UINT32, BASE_DEC,
8521                 VALS(SecurityErrors2_vals), 0, "SecurityErrors2 choice", HFILL }},
8522         { &hf_h225_ServiceControlSession_reason,
8523                 { "ServiceControlSession_reason", "h225.ServiceControlSession_reason", FT_UINT32, BASE_DEC,
8524                 VALS(ServiceControlSession_reason_vals), 0, "ServiceControlSession_reason choice", HFILL }},
8525         { &hf_h225_billingMode,
8526                 { "billingMode", "h225.billingMode", FT_UINT32, BASE_DEC,
8527                 VALS(billingMode_vals), 0, "billingMode choice", HFILL }},
8528         { &hf_h225_CCSCcallStartingPoint,
8529                 { "CCSCcallStartingPoint", "h225.CCSCcallStartingPoint", FT_UINT32, BASE_DEC,
8530                 VALS(CCSCcallStartingPoint_vals), 0, "CCSCcallStartingPoint choice", HFILL }},
8531         { &hf_h225_GatekeeperRejectReason,
8532                 { "GatekeeperRejectReason", "h225.GatekeeperRejectReason", FT_UINT32, BASE_DEC,
8533                 VALS(GatekeeperRejectReason_vals), 0, "GatekeeperRejectReason choice", HFILL }},
8534         { &hf_h225_UnregRequestReason,
8535                 { "UnregRequestReason", "h225.UnregRequestReason", FT_UINT32, BASE_DEC,
8536                 VALS(UnregRequestReason_vals), 0, "UnregRequestReason choice", HFILL }},
8537         { &hf_h225_UnregRejectReason,
8538                 { "UnregRejectReason", "h225.UnregRejectReason", FT_UINT32, BASE_DEC,
8539                 VALS(UnregRejectReason_vals), 0, "UnregRejectReason choice", HFILL }},
8540         { &hf_h225_CallType,
8541                 { "CallType", "h225.CallType", FT_UINT32, BASE_DEC,
8542                 VALS(CallType_vals), 0, "CallType choice", HFILL }},
8543         { &hf_h225_CallModel,
8544                 { "CallModel", "h225.CallModel", FT_UINT32, BASE_DEC,
8545                 VALS(CallModel_vals), 0, "CallModel choice", HFILL }},
8546         { &hf_h225_TransportQOS,
8547                 { "TransportQOS", "h225.TransportQOS", FT_UINT32, BASE_DEC,
8548                 VALS(TransportQOS_vals), 0, "TransportQOS choice", HFILL }},
8549         { &hf_h225_BandRejectReason,
8550                 { "BandRejectReason", "h225.BandRejectReason", FT_UINT32, BASE_DEC,
8551                 VALS(BandRejectReason_vals), 0, "BandRejectReason choice", HFILL }},
8552         { &hf_h225_DisengageReason,
8553                 { "DisengageReason", "h225.DisengageReason", FT_UINT32, BASE_DEC,
8554                 VALS(DisengageReason_vals), 0, "DisengageReason choice", HFILL }},
8555         { &hf_h225_DisengageRejectReason,
8556                 { "DisengageRejectReason", "h225.DisengageRejectReason", FT_UINT32, BASE_DEC,
8557                 VALS(DisengageRejectReason_vals), 0, "DisengageRejectReason choice", HFILL }},
8558         { &hf_h225_InfoRequestNakReason,
8559                 { "InfoRequestNakReason", "h225.InfoRequestNakReason", FT_UINT32, BASE_DEC,
8560                 VALS(InfoRequestNakReason_vals), 0, "InfoRequestNakReason choice", HFILL }},
8561         { &hf_h225_SCRresult,
8562                 { "SCRresult", "h225.SCRresult", FT_UINT32, BASE_DEC,
8563                 VALS(SCRresult_vals), 0, "SCRresult choice", HFILL }},
8564         { &hf_h225_GatekeeperInfo,
8565                 { "GatekeeperInfo", "h225.GatekeeperInfo", FT_NONE, BASE_NONE,
8566                 NULL, 0, "GatekeeperInfo sequence", HFILL }},
8567         { &hf_h225_SecurityServiceMode_encryption,
8568                 { "Encryption", "h225.SecurityServiceMode_encryption", FT_UINT32, BASE_DEC,
8569                 VALS(SecurityServiceMode_vals), 0, "Encryption SecurityServiceMode choice", HFILL }},
8570         { &hf_h225_SecurityServiceMode_authentication,
8571                 { "Authentication", "h225.SecurityServiceMode_authentication", FT_UINT32, BASE_DEC,
8572                 VALS(SecurityServiceMode_vals), 0, "Authentication SecurityServiceMode choice", HFILL }},
8573         { &hf_h225_SecurityServiceMode_integrity,
8574                 { "Integrity", "h225.SecurityServiceMode_integrity", FT_UINT32, BASE_DEC,
8575                 VALS(SecurityServiceMode_vals), 0, "Integrity SecurityServiceMode choice", HFILL }},
8576         { &hf_h225_SecurityCapabilities_tls,
8577                 { "TLS", "h225.SecurityCapabilities.tls", FT_NONE, BASE_NONE,
8578                 NULL, 0, "TLS SecurityCapabilities sequence", HFILL }},
8579         { &hf_h225_SecurityCapabilities_ipsec,
8580                 { "IPSec", "h225.SecurityCapabilities.ipsec", FT_NONE, BASE_NONE,
8581                 NULL, 0, "IPSec SecurityCapabilities sequence", HFILL }},
8582         { &hf_h225_H245Security,
8583                 { "H245Security", "h225.H245Security", FT_UINT32, BASE_DEC,
8584                 VALS(H245Security_vals), 0, "H245Security choice", HFILL }},
8585         { &hf_h225_nonStandardUsageTypes,
8586                 { "nonStandardUsageTypes", "h225.nonStandardUsageTypes", FT_NONE, BASE_NONE,
8587                 NULL, 0, "SEQUENCE OF NonStandardParameter", HFILL }},
8588         { &hf_h225_nonStandardUsageTypes_item,
8589                 { "nonStandardUsageTypes", "h225.nonStandardUsageTypes_item", FT_NONE, BASE_NONE,
8590                 NULL, 0, "NonStandardParameter", HFILL }},
8591         { &hf_h225_route,
8592                 { "route", "h225.route", FT_NONE, BASE_NONE,
8593                 NULL, 0, "Source Routing route", HFILL }},
8594         { &hf_h225_RasUsageInfoTypes,
8595                 { "RasUsageInfoTypes", "h225.RasUsageInfoTypes", FT_NONE, BASE_NONE,
8596                 NULL, 0, "RasUsageInfoTypes sequence", HFILL }},
8597         { &hf_h225_usageReportingCapability,
8598                 { "usageReportingCapability", "h225.usageReportingCapability", FT_NONE, BASE_NONE,
8599                 NULL, 0, "usageReportingCapability sequence", HFILL }},
8600         { &hf_h225_BandWidth,
8601                 { "BandWidth", "h225.BandWidth", FT_UINT32, BASE_DEC,
8602                 NULL, 0, "BandWidth in units of 100bits", HFILL }},
8603         { &hf_h225_channelRate,
8604                 { "channelRate", "h225.channelRate", FT_UINT32, BASE_DEC,
8605                 NULL, 0, "channelRate in units of 100bits", HFILL }},
8606         { &hf_h225_totalBandwidthRestriction,
8607                 { "totalBandwidthRestriction", "h225.totalBandwidthRestriction", FT_UINT32, BASE_DEC,
8608                 NULL, 0, "totalBandwidthRestriction in units of 100bits", HFILL }},
8609         { &hf_h225_allowedBandWidth,
8610                 { "allowedBandWidth", "h225.allowedBandWidth", FT_UINT32, BASE_DEC,
8611                 NULL, 0, "allowedBandWidth in units of 100bits", HFILL }},
8612         { &hf_h225_channelMultiplier,
8613                 { "channelMultiplier", "h225.channelMultiplier", FT_UINT32, BASE_DEC,
8614                 NULL, 0, "channelMultiplier", HFILL }},
8615         { &hf_h225_DataRate,
8616                 { "DataRate", "h225.DataRate", FT_NONE, BASE_NONE,
8617                 NULL, 0, "DataRate sequence", HFILL }},
8618         { &hf_h225_gatewayDataRate,
8619                 { "gatewayDataRate", "h225.gatewayDataRate", FT_NONE, BASE_NONE,
8620                 NULL, 0, "gatewayDataRate sequence", HFILL }},
8621         { &hf_h225_dataRatesSupported,
8622                 { "dataRatesSupported", "h225.dataRatesSupported", FT_NONE, BASE_NONE,
8623                 NULL, 0, "dataRatesSupported sequence of", HFILL }},
8624         { &hf_h225_TerminalInfo,
8625                 { "TerminalInfo", "h225.TerminalInfo", FT_NONE, BASE_NONE,
8626                 NULL, 0, "TerminalInfo sequence", HFILL }},
8627         { &hf_h225_cname,
8628                 { "cname", "h225.cname", FT_STRING, BASE_NONE,
8629                 NULL, 0, "cname", HFILL }},
8630         { &hf_h225_h248Message,
8631                 { "h248Message", "h225.h248Message", FT_STRING, BASE_NONE,
8632                 NULL, 0, "h248Message", HFILL }},
8633         { &hf_h225_conferenceID,
8634                 { "conferenceID", "h225.conferenceID", FT_BYTES, BASE_HEX,
8635                 NULL, 0, "conferenceID", HFILL }},
8636         { &hf_h225_Generic_nonStandard,
8637                 { "nonStandard", "h225.Generic_nonStandard", FT_BYTES, BASE_HEX,
8638                 NULL, 0, "Generic_nonStandard", HFILL }},
8639         { &hf_h225_guid,
8640                 { "guid", "h225.guid", FT_BYTES, BASE_HEX,
8641                 NULL, 0, "guid", HFILL }},
8642         { &hf_h225_replaceWithConferenceInvite,
8643                 { "replaceWithConferenceInvite", "h225.replaceWithConferenceInvite", FT_BYTES, BASE_HEX,
8644                 NULL, 0, "replaceWithConferenceInvite", HFILL }},
8645         { &hf_h225_StimulusControl,
8646                 { "StimulusControl", "h225.StimulusControl", FT_NONE, BASE_NONE,
8647                 NULL, 0, "StimulusControl sequence", HFILL }},
8648         { &hf_h225_ReleaseCompleteReason,
8649                 { "ReleaseCompleteReason", "h225.ReleaseCompleteReason", FT_UINT32, BASE_DEC,
8650                 VALS(ReleaseCompleteReason_vals), 0, "ReleaseCompleteReason choice", HFILL }},
8651         { &hf_h225_numberOfScnConnections,
8652                 { "numberOfScnConnections", "h225.numberOfScnConnections", FT_UINT32, BASE_DEC,
8653                 NULL, 0, "numberOfScnConnections", HFILL }},
8654         { &hf_h225_connectionParameters,
8655                 { "connectionParameters", "h225.connectionParameters", FT_NONE, BASE_NONE,
8656                 NULL, 0, "connectionParameters sequence", HFILL }},
8657         { &hf_h225_RequestSeqNum,
8658                 { "RequestSeqNum", "h225.RequestSeqNum", FT_UINT32, BASE_DEC,
8659                 NULL, 0, "RequestSeqNum", HFILL }},
8660         { &hf_h225_RasUsageSpecification_when,
8661                 { "RasUsageSpecification_when", "h225.RasUsageSpecification_when", FT_NONE, BASE_NONE,
8662                 NULL, 0, "RasUsageSpecification_when sequence", HFILL }},
8663         { &hf_h225_RasUsageSpecification_callStartingPoint,
8664                 { "RasUsageSpecification_callStartingPoint", "h225.RasUsageSpecification_callStartingPoint", FT_NONE, BASE_NONE,
8665                 NULL, 0, "RasUsageSpecification_callStartingPoint sequence", HFILL }},
8666         { &hf_h225_RasUsageSpecification,
8667                 { "RasUsageSpecification", "h225.RasUsageSpecification", FT_NONE, BASE_NONE,
8668                 NULL, 0, "RasUsageSpecification sequence", HFILL }},
8669         { &hf_h225_ipAddress_ip,
8670                 { "IP", "h245.ipAddress.ip", FT_IPv4, BASE_NONE,
8671                 NULL, 0, "IPv4 Address", HFILL }},
8672         { &hf_h225_ipAddress_port,
8673                 { "Port", "h225.ipAddress.port", FT_UINT16, BASE_DEC,
8674                 NULL, 0, "Port number", HFILL }},
8675         { &hf_h225_ipAddress,
8676                 { "ipAddress", "h225.ipAddress", FT_NONE, BASE_NONE,
8677                 NULL, 0, "ipAddress sequence", HFILL }},
8678         { &hf_h225_routing,
8679                 { "routing", "h225.routing", FT_UINT32, BASE_DEC,
8680                 VALS(routing_vals), 0, "routing choice", HFILL }},
8681         { &hf_h225_ipSourceRoute,
8682                 { "ipSourceRoute", "h225.ipSourceRoute", FT_NONE, BASE_NONE,
8683                 NULL, 0, "ipSourceRoute sequence", HFILL }},
8684         { &hf_h225_ipxNode,
8685                 { "Node", "h225.ipx.node", FT_BYTES, BASE_HEX,
8686                 NULL, 0, "ipx node", HFILL }},
8687         { &hf_h225_ipxNetnum,
8688                 { "Netnum", "h225.ipx.netnum", FT_BYTES, BASE_HEX,
8689                 NULL, 0, "ipx netnum", HFILL }},
8690         { &hf_h225_ipxPort,
8691                 { "Port", "h225.ipx.port", FT_BYTES, BASE_HEX,
8692                 NULL, 0, "ipx port number", HFILL }},
8693         { &hf_h225_ipxAddress,
8694                 { "ipxAddress", "h225.ipxAddress", FT_NONE, BASE_NONE,
8695                 NULL, 0, "ipxAddress sequence", HFILL }},
8696         { &hf_h225_ipv6Address_ip,
8697                 { "IP", "h225.ipv6Address.ip", FT_BYTES, BASE_HEX,
8698                 NULL, 0, "ipv6 address", HFILL }},
8699         { &hf_h225_ipv6Address_port,
8700                 { "Port", "h225.ipv6Address.port", FT_UINT16, BASE_DEC,
8701                 NULL, 0, "Port number", HFILL }},
8702         { &hf_h225_ip6Address,
8703                 { "ip6Address", "h225.ip6Address", FT_NONE, BASE_NONE,
8704                 NULL, 0, "ip6Address sequence", HFILL }},
8705         { &hf_h225_netBios,
8706                 { "netBios", "h225.netBios", FT_BYTES, BASE_HEX,
8707                 NULL, 0, "netBios octet string", HFILL }},
8708         { &hf_h225_nsap,
8709                 { "nsap", "h225.nsap", FT_BYTES, BASE_HEX,
8710                 NULL, 0, "nsap octet string", HFILL }},
8711         { &hf_h225_rasAddress,
8712                 { "rasAddress", "h225.rasAddress", FT_UINT32, BASE_DEC,
8713                 VALS(TransportAddress_vals), 0, "rasAddress choice", HFILL }},
8714         { &hf_h225_TransportAddress,
8715                 { "TransportAddress", "h225.TransportAddress", FT_UINT32, BASE_DEC,
8716                 VALS(TransportAddress_vals), 0, "TransportAddress choice", HFILL }},
8717         { &hf_h225_replyAddress,
8718                 { "replyAddress", "h225.replyAddress", FT_UINT32, BASE_DEC,
8719                 VALS(TransportAddress_vals), 0, "replyAddress choice", HFILL }},
8720         { &hf_h225_h245Address,
8721                 { "h245Address", "h225.h245Address", FT_UINT32, BASE_DEC,
8722                 VALS(TransportAddress_vals), 0, "h245Address choice", HFILL }},
8723         { &hf_h225_destCallSignalAddress,
8724                 { "destCallSignalAddress", "h225.destCallSignalAddress", FT_UINT32, BASE_DEC,
8725                 VALS(TransportAddress_vals), 0, "destCallSignalAddress choice", HFILL }},
8726         { &hf_h225_sourceCallSignalAddress,
8727                 { "sourceCallSignalAddress", "h225.sourceCallSignalAddress", FT_UINT32, BASE_DEC,
8728                 VALS(TransportAddress_vals), 0, "sourceCallSignalAddress choice", HFILL }},
8729         { &hf_h225_CallSignalAddress2,
8730                 { "CallSignalAddress2", "h225.CallSignalAddress2", FT_UINT32, BASE_DEC,
8731                 VALS(TransportAddress_vals), 0, "CallSignalAddress2 choice", HFILL }},
8732         { &hf_h225_alternativeAddress,
8733                 { "alternativeAddress", "h225.alternativeAddress", FT_UINT32, BASE_DEC,
8734                 VALS(TransportAddress_vals), 0, "alternativeAddress choice", HFILL }},
8735         { &hf_h225_transportID,
8736                 { "transportID", "h225.transportID", FT_UINT32, BASE_DEC,
8737                 VALS(TransportAddress_vals), 0, "transportID choice", HFILL }},
8738         { &hf_h225_sendAddress,
8739                 { "sendAddress", "h225.sendAddress", FT_UINT32, BASE_DEC,
8740                 VALS(TransportAddress_vals), 0, "sendAddress choice", HFILL }},
8741         { &hf_h225_recvAddress,
8742                 { "recvAddress", "h225.recvAddress", FT_UINT32, BASE_DEC,
8743                 VALS(TransportAddress_vals), 0, "recvAddress choice", HFILL }},
8744         { &hf_h225_rtpAddress,
8745                 { "rtpAddress", "h225.rtpAddress", FT_NONE, BASE_NONE,
8746                 NULL, 0, "rtpAddress sequence", HFILL }},
8747         { &hf_h225_rtcpAddress,
8748                 { "rtcpAddress", "h225.rtcpAddress", FT_NONE, BASE_NONE,
8749                 NULL, 0, "rtcpAddress sequence", HFILL }},
8750         { &hf_h225_h245,
8751                 { "h245", "h225.h245", FT_NONE, BASE_NONE,
8752                 NULL, 0, "h245 sequence", HFILL }},
8753         { &hf_h225_callSignaling,
8754                 { "callSignaling", "h225.callSignaling", FT_NONE, BASE_NONE,
8755                 NULL, 0, "callSignaling sequence", HFILL }},
8756         { &hf_h225_carrierName,
8757                 { "carrierName", "h225.carrierName", FT_BYTES, BASE_HEX,
8758                 NULL, 0, "carrierName IA5String", HFILL }},
8759         { &hf_h225_carrierIdentificationCode,
8760                 { "carrierIdentificationCode", "h225.carrierIdentificationCode", FT_BYTES, BASE_HEX,
8761                 NULL, 0, "carrierIdentificationCode octet string", HFILL }},
8762         { &hf_h225_CarrierInfo,
8763                 { "CarrierInfo", "h225.CarrierInfo", FT_NONE, BASE_NONE,
8764                 NULL, 0, "CarrierInfo sequence", HFILL }},
8765         { &hf_h225_segment,
8766                 { "segment", "h225.segment", FT_UINT32, BASE_DEC,
8767                 NULL, 0, "segment", HFILL }},
8768         { &hf_h225_InfoRequestResponseStatus,
8769                 { "InfoRequestResponseStatus", "h225.InfoRequestResponseStatus", FT_UINT32, BASE_DEC,
8770                 VALS(InfoRequestResponseStatus_vals), 0, "InfoRequestResponseStatus choice", HFILL }},
8771         { &hf_h225_CallIdentifier,
8772                 { "CallIdentifier", "h225.CallIdentifier", FT_NONE, BASE_NONE,
8773                 NULL, 0, "CallIdentifier sequence", HFILL }},
8774         { &hf_h225_globalCallId,
8775                 { "globalCallId", "h225.globalCallId", FT_BYTES, BASE_HEX,
8776                 NULL, 0, "globalCallId octet string", HFILL }},
8777         { &hf_h225_threadId,
8778                 { "threadId", "h225.threadId", FT_BYTES, BASE_HEX,
8779                 NULL, 0, "threadId octet string", HFILL }},
8780         { &hf_h225_CallLinkage,
8781                 { "CallLinkage", "h225.CallLinkage", FT_NONE, BASE_NONE,
8782                 NULL, 0, "CallLinkage sequence", HFILL }},
8783         { &hf_h225_tokens,
8784                 { "tokens", "h225.tokens", FT_NONE, BASE_NONE,
8785                 NULL, 0, "tokens sequence of", HFILL }},
8786         { &hf_h225_needToRegister,
8787                 { "needToRegister", "h225.needToRegister", FT_BOOLEAN, 8,
8788                 TFS(&tfs_needToRegister_bit), 0x01, "needToRegister boolean", HFILL }},
8789         { &hf_h225_priority,
8790                 { "priority", "h225.priority", FT_UINT32, BASE_DEC,
8791                 NULL, 0, "priority", HFILL }},
8792         { &hf_h225_AlternateGK,
8793                 { "AlternateGK", "h225.AlternateGK", FT_NONE, BASE_NONE,
8794                 NULL, 0, "AlternateGK sequence", HFILL }},
8795         { &hf_h225_alternateGatekeeper,
8796                 { "alternateGatekeeper", "h225.alternateGatekeeper", FT_NONE, BASE_NONE,
8797                 NULL, 0, "alternateGatekeeper sequence of", HFILL }},
8798         { &hf_h225_altGKisPermanent,
8799                 { "altGKisPermanent", "h225.altGKisPermanent", FT_BOOLEAN, 8,
8800                 TFS(&tfs_altGKisPermanent_bit), 0x01, "altGKisPermanent boolean", HFILL }},
8801         { &hf_h225_AltGKInfo,
8802                 { "AltGKInfo", "h225.AltGKInfo", FT_NONE, BASE_NONE,
8803                 NULL, 0, "AltGKInfo sequence", HFILL }},
8804         { &hf_h225_annexE,
8805                 { "annexE", "h225.annexE", FT_NONE, BASE_NONE,
8806                 NULL, 0, "annexE sequence of", HFILL }},
8807         { &hf_h225_sctp,
8808                 { "sctp", "h225.sctp", FT_NONE, BASE_NONE,
8809                 NULL, 0, "sctp sequence of", HFILL }},
8810         { &hf_h225_AlternateTransportAddress,
8811                 { "AlternateTransportAddress", "h225.AlternateTransportAddress", FT_NONE, BASE_NONE,
8812                 NULL, 0, "AlternateTransportAddress sequence", HFILL }},
8813         { &hf_h225_setup_bool,
8814                 { "setup_bool", "h225.setup_bool", FT_BOOLEAN, 8,
8815                 TFS(&tfs_setup_bool_bit), 0x01, "setup_bool boolean", HFILL }},
8816         { &hf_h225_callProceeding_bool,
8817                 { "callProceeding_bool", "h225.callProceeding_bool", FT_BOOLEAN, 8,
8818                 TFS(&tfs_callProceeding_bool_bit), 0x01, "callProceeding_bool boolean", HFILL }},
8819         { &hf_h225_connect_bool,
8820                 { "connect_bool", "h225.connect_bool", FT_BOOLEAN, 8,
8821                 TFS(&tfs_connect_bool_bit), 0x01, "connect_bool boolean", HFILL }},
8822         { &hf_h225_alerting_bool,
8823                 { "alerting_bool", "h225.alerting_bool", FT_BOOLEAN, 8,
8824                 TFS(&tfs_alerting_bool_bit), 0x01, "alerting_bool boolean", HFILL }},
8825         { &hf_h225_information_bool,
8826                 { "information_bool", "h225.information_bool", FT_BOOLEAN, 8,
8827                 TFS(&tfs_information_bool_bit), 0x01, "information_bool boolean", HFILL }},
8828         { &hf_h225_releaseComplete_bool,
8829                 { "releaseComplete_bool", "h225.releaseComplete_bool", FT_BOOLEAN, 8,
8830                 TFS(&tfs_releaseComplete_bool_bit), 0x01, "releaseComplete_bool boolean", HFILL }},
8831         { &hf_h225_facility_bool,
8832                 { "facility_bool", "h225.facility_bool", FT_BOOLEAN, 8,
8833                 TFS(&tfs_facility_bool_bit), 0x01, "facility_bool boolean", HFILL }},
8834         { &hf_h225_progress_bool,
8835                 { "progress_bool", "h225.progress_bool", FT_BOOLEAN, 8,
8836                 TFS(&tfs_progress_bool_bit), 0x01, "progress_bool boolean", HFILL }},
8837         { &hf_h225_empty_bool,
8838                 { "empty_bool", "h225.empty_bool", FT_BOOLEAN, 8,
8839                 TFS(&tfs_empty_bool_bit), 0x01, "empty_bool boolean", HFILL }},
8840         { &hf_h225_status_bool,
8841                 { "status_bool", "h225.status_bool", FT_BOOLEAN, 8,
8842                 TFS(&tfs_status_bool_bit), 0x01, "status_bool boolean", HFILL }},
8843         { &hf_h225_statusInquiry_bool,
8844                 { "statusInquiry_bool", "h225.statusInquiry_bool", FT_BOOLEAN, 8,
8845                 TFS(&tfs_statusInquiry_bool_bit), 0x01, "statusInquiry_bool boolean", HFILL }},
8846         { &hf_h225_setupAcknowledge_bool,
8847                 { "setupAcknowledge_bool", "h225.setupAcknowledge_bool", FT_BOOLEAN, 8,
8848                 TFS(&tfs_setupAcknowledge_bool_bit), 0x01, "setupAcknowledge_bool boolean", HFILL }},
8849         { &hf_h225_notify_bool,
8850                 { "notify_bool", "h225.notify_bool", FT_BOOLEAN, 8,
8851                 TFS(&tfs_notify_bool_bit), 0x01, "notify_bool boolean", HFILL }},
8852         { &hf_h225_UUIEsRequested,
8853                 { "UUIEsRequested", "h225.UUIEsRequested", FT_NONE, BASE_NONE,
8854                 NULL, 0, "UUIEsRequested sequence", HFILL }},
8855         { &hf_h225_conferenceCalling,
8856                 { "conferenceCalling", "h225.conferenceCalling", FT_BOOLEAN, 8,
8857                 TFS(&tfs_conferenceCalling_bit), 0x01, "conferenceCalling boolean", HFILL }},
8858         { &hf_h225_threePartyService,
8859                 { "threePartyService", "h225.threePartyService", FT_BOOLEAN, 8,
8860                 TFS(&tfs_threePartyService_bit), 0x01, "threePartyService boolean", HFILL }},
8861         { &hf_h225_Q954Details,
8862                 { "Q954Details", "h225.Q954Details", FT_NONE, BASE_NONE,
8863                 NULL, 0, "Q954Details sequence", HFILL }},
8864         { &hf_h225_q932Full,
8865                 { "q932Full", "h225.q932Full", FT_BOOLEAN, 8,
8866                 TFS(&tfs_q932Full_bit), 0x01, "q932Full boolean", HFILL }},
8867         { &hf_h225_q951Full,
8868                 { "q951Full", "h225.q951Full", FT_BOOLEAN, 8,
8869                 TFS(&tfs_q951Full_bit), 0x01, "q951Full boolean", HFILL }},
8870         { &hf_h225_q952Full,
8871                 { "q952Full", "h225.q952Full", FT_BOOLEAN, 8,
8872                 TFS(&tfs_q952Full_bit), 0x01, "q952Full boolean", HFILL }},
8873         { &hf_h225_q953Full,
8874                 { "q953Full", "h225.q953Full", FT_BOOLEAN, 8,
8875                 TFS(&tfs_q953Full_bit), 0x01, "q953Full boolean", HFILL }},
8876         { &hf_h225_q955Full,
8877                 { "q955Full", "h225.q955Full", FT_BOOLEAN, 8,
8878                 TFS(&tfs_q955Full_bit), 0x01, "q955Full boolean", HFILL }},
8879         { &hf_h225_q956Full,
8880                 { "q956Full", "h225.q956Full", FT_BOOLEAN, 8,
8881                 TFS(&tfs_q956Full_bit), 0x01, "q956Full boolean", HFILL }},
8882         { &hf_h225_q957Full,
8883                 { "q957Full", "h225.q957Full", FT_BOOLEAN, 8,
8884                 TFS(&tfs_q957Full_bit), 0x01, "q957Full boolean", HFILL }},
8885         { &hf_h225_QseriesOptions,
8886                 { "callServices", "h225.callServices", FT_NONE, BASE_NONE,
8887                 NULL, 0, "QseriesOptions sequence", HFILL }},
8888         { &hf_h225_ssrc,
8889                 { "ssrc", "h225.ssrc", FT_UINT32, BASE_DEC,
8890                 NULL, 0, "ssrc", HFILL }},
8891         { &hf_h225_RTPsessionId,
8892                 { "RTPsessionId", "h225.RTPsessionId", FT_UINT32, BASE_DEC,
8893                 NULL, 0, "RTPsessionId", HFILL }},
8894         { &hf_h225_associatedSessionIds,
8895                 { "associatedSessionIds", "h225.associatedSessionIds", FT_NONE, BASE_NONE,
8896                 NULL, 0, "associatedSessionIds sequence of", HFILL }},
8897         { &hf_h225_RTPSession,
8898                 { "RTPSession", "h225.RTPSession", FT_NONE, BASE_NONE,
8899                 NULL, 0, "RTPSession sequence", HFILL }},
8900         { &hf_h225_cryptoTokens,
8901                 { "cryptoTokens", "h225.cryptoTokens", FT_NONE, BASE_NONE,
8902                 NULL, 0, "cryptoTokens sequence of", HFILL }},
8903         { &hf_h225_tunnelledProtocolObjectID,
8904                 { "tunnelledProtocolObjectID", "h225.tunnelledProtocolObjectID", FT_STRING, BASE_NONE,
8905                 NULL, 0, "tunnelledProtocolObjectID object", HFILL }},
8906         { &hf_h225_ProtocolIdentifier,
8907                 { "ProtocolIdentifier", "h225.ProtocolIdentifier", FT_STRING, BASE_NONE,
8908                 NULL, 0, "ProtocolIdentifier object", HFILL }},
8909         { &hf_h225_isoAlgorithm,
8910                 { "isoAlgorithm", "h225.isoAlgorithm", FT_STRING, BASE_NONE,
8911                 NULL, 0, "isoAlgorithm object", HFILL }},
8912         { &hf_h225_algorithmOID,
8913                 { "algorithmOID", "h225.algorithmOID", FT_STRING, BASE_NONE,
8914                 NULL, 0, "algorithmOID object", HFILL }},
8915         { &hf_h225_iso9797,
8916                 { "iso9797", "h225.iso9797", FT_STRING, BASE_NONE,
8917                 NULL, 0, "iso9797 object", HFILL }},
8918         { &hf_h225_hMAC_iso10118_3,
8919                 { "hMAC_iso10118_3", "h225.hMAC_iso10118_3", FT_STRING, BASE_NONE,
8920                 NULL, 0, "hMAC_iso10118_3 object", HFILL }},
8921         { &hf_h225_enterpriseNumber,
8922                 { "enterpriseNumber", "h225.enterpriseNumber", FT_STRING, BASE_NONE,
8923                 NULL, 0, "enterpriseNumber object", HFILL }},
8924         { &hf_h225_Generic_oid,
8925                 { "OID", "h225.Generic_oid", FT_STRING, BASE_NONE,
8926                 NULL, 0, "Generic OID object", HFILL }},
8927         { &hf_h225_StatusUUIE,
8928                 { "StatusUUIE", "h225.StatusUUIE", FT_NONE, BASE_NONE,
8929                 NULL, 0, "StatusUUIE sequence", HFILL }},
8930         { &hf_h225_StatusInquiryUUIE,
8931                 { "StatusInquiryUUIE", "h225.StatusInquiryUUIE", FT_NONE, BASE_NONE,
8932                 NULL, 0, "StatusInquiryUUIE sequence", HFILL }},
8933         { &hf_h225_SetupAcknowledgeUUIE,
8934                 { "SetupAcknowledgeUUIE", "h225.SetupAcknowledgeUUIE", FT_NONE, BASE_NONE,
8935                 NULL, 0, "SetupAcknowledgeUUIE sequence", HFILL }},
8936         { &hf_h225_NotifyUUIE,
8937                 { "NotifyUUIE", "h225.NotifyUUIE", FT_NONE, BASE_NONE,
8938                 NULL, 0, "NotifyUUIE sequence", HFILL }},
8939         { &hf_h225_imsi,
8940                 { "imsi", "h225.imsi", FT_STRING, BASE_HEX,
8941                 NULL, 0, "imsi string", HFILL }},
8942         { &hf_h225_tmsi,
8943                 { "tmsi", "h225.tmsi", FT_BYTES, BASE_HEX,
8944                 NULL, 0, "tmsi octet string", HFILL }},
8945         { &hf_h225_msisdn,
8946                 { "msisdn", "h225.msisdn", FT_STRING, BASE_HEX,
8947                 NULL, 0, "msisdn string", HFILL }},
8948         { &hf_h225_imei,
8949                 { "imei", "h225.imei", FT_STRING, BASE_HEX,
8950                 NULL, 0, "imei string", HFILL }},
8951         { &hf_h225_hplmn,
8952                 { "hplmn", "h225.hplmn", FT_STRING, BASE_HEX,
8953                 NULL, 0, "hplmn string", HFILL }},
8954         { &hf_h225_vplmn,
8955                 { "vplmn", "h225.vplmn", FT_STRING, BASE_HEX,
8956                 NULL, 0, "vplmn string", HFILL }},
8957         { &hf_h225_GSMUIM,
8958                 { "GSMUIM", "h225.GSMUIM", FT_NONE, BASE_NONE,
8959                 NULL, 0, "GSMUIM sequence", HFILL }},
8960         { &hf_h225_sid,
8961                 { "sid", "h225.sid", FT_STRING, BASE_HEX,
8962                 NULL, 0, "sid string", HFILL }},
8963         { &hf_h225_mid,
8964                 { "mid", "h225.mid", FT_STRING, BASE_HEX,
8965                 NULL, 0, "mid string", HFILL }},
8966         { &hf_h225_systemid,
8967                 { "systemid", "h225.sustemid", FT_UINT32, BASE_DEC,
8968                 VALS(systemid_vals), 0, "systemid choice", HFILL }},
8969         { &hf_h225_min,
8970                 { "min", "h225.min", FT_STRING, BASE_HEX,
8971                 NULL, 0, "min string", HFILL }},
8972         { &hf_h225_mdn,
8973                 { "mdn", "h225.mdn", FT_STRING, BASE_HEX,
8974                 NULL, 0, "mdn string", HFILL }},
8975         { &hf_h225_esn,
8976                 { "esn", "h225.esn", FT_STRING, BASE_HEX,
8977                 NULL, 0, "esn string", HFILL }},
8978         { &hf_h225_mscid,
8979                 { "mscid", "h225.mscid", FT_STRING, BASE_HEX,
8980                 NULL, 0, "mscid string", HFILL }},
8981         { &hf_h225_systemMyTypeCode,
8982                 { "systemMyTypeCode", "h225.systemMyTypeCode", FT_BYTES, BASE_HEX,
8983                 NULL, 0, "systemMyTypeCode octet string", HFILL }},
8984         { &hf_h225_systemAccessType,
8985                 { "systemAccessType", "h225.systemAccessType", FT_BYTES, BASE_HEX,
8986                 NULL, 0, "systemAccessType octet string", HFILL }},
8987         { &hf_h225_qualificationInformationCode,
8988                 { "qualificationInformationCode", "h225.qualificationInformationCode", FT_BYTES, BASE_HEX,
8989                 NULL, 0, "qualificationInformationCode octet string", HFILL }},
8990         { &hf_h225_sesn,
8991                 { "sesn", "h225.sesn", FT_STRING, BASE_HEX,
8992                 NULL, 0, "sesn string", HFILL }},
8993         { &hf_h225_soc,
8994                 { "soc", "h225.soc", FT_STRING, BASE_HEX,
8995                 NULL, 0, "soc string", HFILL }},
8996         { &hf_h225_ANSI41UIM,
8997                 { "ANSI41UIM", "h225.ANSI41UIM", FT_NONE, BASE_NONE,
8998                 NULL, 0, "ANSI41UIM sequence", HFILL }},
8999         { &hf_h225_MobileUIM,
9000                 { "MobileUIM", "h225.MobileUIM", FT_UINT32, BASE_DEC,
9001                 VALS(MobileUIM_vals), 0, "MobileUIM choice", HFILL }},
9002         { &hf_h225_dataPartyNumber,
9003                 { "dataPartyNumber", "h225.dataPartyNumber", FT_STRING, BASE_HEX,
9004                 NULL, 0, "dataPartyNumber string", HFILL }},
9005         { &hf_h225_telexPartyNumber,
9006                 { "telexPartyNumber", "h225.telexPartyNumber", FT_STRING, BASE_HEX,
9007                 NULL, 0, "telexPartyNumber string", HFILL }},
9008         { &hf_h225_nationalStandardPartyNumber,
9009                 { "nationalStandardPartyNumber", "h225.nationalStandardPartyNumber", FT_STRING, BASE_HEX,
9010                 NULL, 0, "nationalStandardPartyNumber string", HFILL }},
9011         { &hf_h225_publicNumberDigits,
9012                 { "publicNumberDigits", "h225.publicNumberDigits", FT_STRING, BASE_HEX,
9013                 NULL, 0, "publicNumberDigits string", HFILL }},
9014         { &hf_h225_privateNumberDigits,
9015                 { "privateNumberDigits", "h225.privateNumberDigits", FT_STRING, BASE_HEX,
9016                 NULL, 0, "privateNumberDigits string", HFILL }},
9017         { &hf_h225_e164Number,
9018                 { "e164Number", "h225.e164Number", FT_NONE, BASE_NONE,
9019                 NULL, 0, "e164Number sequence", HFILL }},
9020         { &hf_h225_privateNumber,
9021                 { "privateNumber", "h225.privateNumber", FT_NONE, BASE_NONE,
9022                 NULL, 0, "privateNumber sequence", HFILL }},
9023         { &hf_h225_startOfRange,
9024                 { "startOfRange", "h225.startOfRange", FT_UINT32, BASE_DEC,
9025                 VALS(PartyNumber_vals), 0, "startOfRange choice", HFILL }},
9026         { &hf_h225_endOfRange,
9027                 { "endOfRange", "h225.endOfRange", FT_UINT32, BASE_DEC,
9028                 VALS(PartyNumber_vals), 0, "endOfRange choice", HFILL }},
9029         { &hf_h225_PartyNumber,
9030                 { "PartyNumber", "h225.PartyNumber", FT_UINT32, BASE_DEC,
9031                 VALS(PartyNumber_vals), 0, "PartyNumber choice", HFILL }},
9032         { &hf_h225_protocolType,
9033                 { "protocolType", "h225.protocolType", FT_STRING, BASE_HEX,
9034                 NULL, 0, "protocolType IA5String", HFILL }},
9035         { &hf_h225_protocolVariant,
9036                 { "protocolVariant", "h225.protocolVariant", FT_STRING, BASE_HEX,
9037                 NULL, 0, "protocolVariant IA5String", HFILL }},
9038         { &hf_h225_TunnelledProtocolAlternateIdentifier,
9039                 { "TunnelledProtocolAlternateIdentifier", "h225.TunnelledProtocolAlternateIdentifier", FT_NONE, BASE_NONE,
9040                 NULL, 0, "TunnelledProtocolAlternateIdentifier sequence", HFILL }},
9041         { &hf_h225_dialedDigits,
9042                 { "dialedDigits", "h225.dialedDigits", FT_BYTES, BASE_HEX,
9043                 NULL, 0, "dialedDigits IA5String", HFILL }},
9044         { &hf_h225_urlId,
9045                 { "urlId", "h225.urlId", FT_BYTES, BASE_HEX,
9046                 NULL, 0, "urlId IA5String", HFILL }},
9047         { &hf_h225_h323ID,
9048                 { "h323ID", "h225.h323ID", FT_STRING, BASE_HEX,
9049                 NULL, 0, "h323ID BMPString", HFILL }},
9050         { &hf_h225_GatekeeperIdentifier,
9051                 { "GatekeeperIdentifier", "h225.GatekeeperIdentifier", FT_STRING, BASE_HEX,
9052                 NULL, 0, "GatekeeperIdentifier BMPString", HFILL }},
9053         { &hf_h225_unicode,
9054                 { "unicode", "h225.unicode", FT_STRING, BASE_HEX,
9055                 NULL, 0, "unicode BMPString", HFILL }},
9056         { &hf_h225_EndpointIdentifier,
9057                 { "EndpointIdentifier", "h225.EndpointIdentifier", FT_STRING, BASE_HEX,
9058                 NULL, 0, "EndpointIdentifier BMPString", HFILL }},
9059         { &hf_h225_emailId,
9060                 { "emailId", "h225.emailId", FT_STRING, BASE_NONE,
9061                 NULL, 0, "emailId IA5String", HFILL }},
9062         { &hf_h225_conferenceAlias,
9063                 { "conferenceAlias", "h225.conferenceAlias", FT_UINT32, BASE_DEC,
9064                 VALS(AliasAddress_vals), 0, "conferenceAlias choice", HFILL }},
9065         { &hf_h225_AliasAddress,
9066                 { "AliasAddress", "h225.AliasAddress", FT_UINT32, BASE_DEC,
9067                 VALS(AliasAddress_vals), 0, "AliasAddress choice", HFILL }},
9068         { &hf_h225_RemoteExtensionAddress,
9069                 { "RemoteExtensionAddress", "h225.RemoteExtensionAddress", FT_UINT32, BASE_DEC,
9070                 VALS(AliasAddress_vals), 0, "RemoteExtensionAddress choice", HFILL }},
9071         { &hf_h225_wildcard,
9072                 { "wildcard", "h225.wildcard", FT_UINT32, BASE_DEC,
9073                 VALS(AliasAddress_vals), 0, "wildcard choice", HFILL }},
9074         { &hf_h225_prefix,
9075                 { "prefix", "h225.prefix", FT_UINT32, BASE_DEC,
9076                 VALS(AliasAddress_vals), 0, "prefix choice", HFILL }},
9077         { &hf_h225_SupportedPrefix,
9078                 { "SupportedPrefix", "h225.SupportedPrefix", FT_NONE, BASE_NONE,
9079                 NULL, 0, "SupportedPrefix sequence", HFILL }},
9080         { &hf_h225_SupportedPrefixes,
9081                 { "SupportedPrefixes", "h225.SupportedPrefixes", FT_NONE, BASE_NONE,
9082                 NULL, 0, "SupportedPrefixes sequence of", HFILL }},
9083         { &hf_h225_H310Caps,
9084                 { "H310Caps", "h225.H310Caps", FT_NONE, BASE_NONE,
9085                 NULL, 0, "H310Caps sequence", HFILL }},
9086         { &hf_h225_H320Caps,
9087                 { "H320Caps", "h225.H320Caps", FT_NONE, BASE_NONE,
9088                 NULL, 0, "H320Caps sequence", HFILL }},
9089         { &hf_h225_H321Caps,
9090                 { "H321Caps", "h225.H321Caps", FT_NONE, BASE_NONE,
9091                 NULL, 0, "H321Caps sequence", HFILL }},
9092         { &hf_h225_H322Caps,
9093                 { "H322Caps", "h225.H322Caps", FT_NONE, BASE_NONE,
9094                 NULL, 0, "H322Caps sequence", HFILL }},
9095         { &hf_h225_H323Caps,
9096                 { "H323Caps", "h225.H323Caps", FT_NONE, BASE_NONE,
9097                 NULL, 0, "H323Caps sequence", HFILL }},
9098         { &hf_h225_H324Caps,
9099                 { "H324Caps", "h225.H324Caps", FT_NONE, BASE_NONE,
9100                 NULL, 0, "H324Caps sequence", HFILL }},
9101         { &hf_h225_VoiceCaps,
9102                 { "VoiceCaps", "h225.VoiceCaps", FT_NONE, BASE_NONE,
9103                 NULL, 0, "VoiceCaps sequence", HFILL }},
9104         { &hf_h225_T120OnlyCaps,
9105                 { "T120OnlyCaps", "h225.T120OnlyCaps", FT_NONE, BASE_NONE,
9106                 NULL, 0, "T120OnlyCaps sequence", HFILL }},
9107         { &hf_h225_NonStandardProtocol,
9108                 { "NonStandardProtocol", "h225.NonStandardProtocol", FT_NONE, BASE_NONE,
9109                 NULL, 0, "NonStandardProtocol sequence", HFILL }},
9110         { &hf_h225_SIPCaps,
9111                 { "SIPCaps", "h225.SIPCaps", FT_NONE, BASE_NONE,
9112                 NULL, 0, "SIPCaps sequence", HFILL }},
9113         { &hf_h225_AddressPattern_range,
9114                 { "AddressPattern_range", "h225.AddressPattern_range", FT_NONE, BASE_NONE,
9115                 NULL, 0, "AddressPattern_range sequence", HFILL }},
9116         { &hf_h225_AddressPattern,
9117                 { "AddressPattern", "h225.AddressPattern", FT_UINT32, BASE_DEC,
9118                 VALS(AddressPattern_vals), 0, "AddressPattern choice", HFILL }},
9119         { &hf_h225_ConferenceList,
9120                 { "ConferenceList", "h225.ConferenceList", FT_NONE, BASE_NONE,
9121                 NULL, 0, "ConferenceList sequence", HFILL }},
9122         { &hf_h225_conferences,
9123                 { "conferences", "h225.conferences", FT_NONE, BASE_NONE,
9124                 NULL, 0, "conferences sequence of", HFILL }},
9125         { &hf_h225_T38FaxAnnexbOnlyCaps,
9126                 { "T38FaxAnnexbOnlyCaps", "h225.T38FaxAnnexbOnlyCaps", FT_NONE, BASE_NONE,
9127                 NULL, 0, "T38FaxAnnexbOnlyCaps sequence", HFILL }},
9128         { &hf_h225_SupportedProtocols,
9129                 { "SupportedProtocols", "h225.SupportedProtocols", FT_UINT32, BASE_DEC,
9130                 VALS(SupportedProtocols_vals), 0, "SupportedProtocols choice", HFILL }},
9131         { &hf_h225_protocol,
9132                 { "protocol", "h225.protocol", FT_NONE, BASE_NONE,
9133                 NULL, 0, "protocol sequence of", HFILL }},
9134         { &hf_h225_GatewayInfo,
9135                 { "GatewayInfo", "h225.GatewayInfo", FT_NONE, BASE_NONE,
9136                 NULL, 0, "GatewayInfo sequence", HFILL }},
9137         { &hf_h225_McuInfo,
9138                 { "McuInfo", "h225.McuInfo", FT_NONE, BASE_NONE,
9139                 NULL, 0, "McuInfo sequence", HFILL }},
9140         { &hf_h225_TunnelledProtocol_id,
9141                 { "id", "h225.TunnelledProtocol_id", FT_UINT32, BASE_DEC,
9142                 VALS(TunnelledProtocol_id_vals), 0, "TunnelledProtocol_id choice", HFILL }},
9143         { &hf_h225_TunnelledProtocol_subIdentifier,
9144                 { "subIdentifier", "h225.TunnelledProtocol_subIdentifier", FT_BYTES, BASE_HEX,
9145                 NULL, 0, "TunnelledProtocol_subIdentifier IA5String", HFILL }},
9146         { &hf_h225_TunnelledProtocol,
9147                 { "TunnelledProtocol", "h225.TunnelledProtocol", FT_NONE, BASE_NONE,
9148                 NULL, 0, "TunnelledProtocol sequence", HFILL }},
9149         { &hf_h225_desiredTunnelledProtocol,
9150                 { "desiredTunnelledProtocol", "h225.desiredTunnelledProtocol", FT_NONE, BASE_NONE,
9151                 NULL, 0, "desiredTunnelledProtocol sequence", HFILL }},
9152         { &hf_h225_CicInfo_cic_item,
9153                 { "item", "h225.CicInfo_cic_item", FT_BYTES, BASE_HEX,
9154                 NULL, 0, "CicInfo_cic_item octet string", HFILL }},
9155         { &hf_h225_CicInfo_pointCode,
9156                 { "pointCode", "h225.CicInfo_pointCode", FT_BYTES, BASE_HEX,
9157                 NULL, 0, "CicInfo_pointCode octet string", HFILL }},
9158         { &hf_h225_CicInfo_cic,
9159                 { "cic", "h225.CicInfo_cic", FT_NONE, BASE_NONE,
9160                 NULL, 0, "CicInfo_cic sequence of", HFILL }},
9161         { &hf_h225_CicInfo,
9162                 { "CicInfo", "h225.CicInfo", FT_NONE, BASE_NONE,
9163                 NULL, 0, "CicInfo sequence", HFILL }},
9164         { &hf_h225_GroupID_member_item,
9165                 { "item", "h225.GroupID_member_item", FT_UINT32, BASE_DEC,
9166                 NULL, 0, "GroupID_member_item", HFILL }},
9167         { &hf_h225_GroupID_member,
9168                 { "member", "h225.GroupID_member", FT_NONE, BASE_NONE,
9169                 NULL, 0, "GroupID_member sequence of", HFILL }},
9170         { &hf_h225_GroupID_group,
9171                 { "group", "h225.GroupID_group", FT_STRING, BASE_NONE,
9172                 NULL, 0, "GroupID_group IA5String", HFILL }},
9173         { &hf_h225_GroupID,
9174                 { "GroupID", "h225.GroupID", FT_NONE, BASE_NONE,
9175                 NULL, 0, "GroupID sequence", HFILL }},
9176         { &hf_h225_sourceCircuitID,
9177                 { "sourceCircuitID", "h225.sourceCircuitID", FT_NONE, BASE_NONE,
9178                 NULL, 0, "sourceCircuitID sequence", HFILL }},
9179         { &hf_h225_destinationCircuitID,
9180                 { "destinationCircuitID", "h225.destinationCircuitID", FT_NONE, BASE_NONE,
9181                 NULL, 0, "destinationCircuitID sequence", HFILL }},
9182         { &hf_h225_Generic_standard,
9183                 { "standard", "h225.Generic_standard", FT_UINT32, BASE_DEC,
9184                 NULL, 0, "Generic_standard", HFILL }},
9185         { &hf_h225_GenericIdentifier,
9186                 { "GenericIdentifier", "h225.GenericIdentifier", FT_UINT32, BASE_DEC,
9187                 VALS(GenericIdentifier_vals), 0, "GenericIdentifier choice", HFILL }},
9188         { &hf_h225_EnumeratedParameter,
9189                 { "EnumeratedParameter", "h225.EnumeratedParameter", FT_NONE, BASE_NONE,
9190                 NULL, 0, "EnumeratedParameter sequence", HFILL }},
9191         { &hf_h225_parameters,
9192                 { "parameters", "h225.parameters", FT_NONE, BASE_NONE,
9193                 NULL, 0, "parameters sequence of", HFILL }},
9194         { &hf_h225_GenericData,
9195                 { "GenericData", "h225.GenericData", FT_NONE, BASE_NONE,
9196                 NULL, 0, "GenericData sequence", HFILL }},
9197         { &hf_h225_FeatureDescriptor,
9198                 { "FeatureDescriptor", "h225.FeatureDescriptor", FT_NONE, BASE_NONE,
9199                 NULL, 0, "FeatureDescriptor sequence", HFILL }},
9200         { &hf_h225_Content_raw,
9201                 { "Content_raw", "h225.Content_raw", FT_BYTES, BASE_HEX,
9202                 NULL, 0, "Content_raw octet string", HFILL }},
9203         { &hf_h225_Content_text,
9204                 { "Content_text", "h225.Content_text", FT_BYTES, BASE_HEX,
9205                 NULL, 0, "Content_text IA5String", HFILL }},
9206         { &hf_h225_Content,
9207                 { "Content", "h225.Content", FT_UINT32, BASE_DEC,
9208                 VALS(Content_vals), 0, "Content choice", HFILL }},
9209         { &hf_h225_Content_bool,
9210                 { "Content_bool", "h225.Content_bool", FT_BOOLEAN, 8,
9211                 TFS(&tfs_Content_bool_bit), 0x01, "Content_bool boolean", HFILL }},
9212         { &hf_h225_Content_number8,
9213                 { "Content_number8", "h225.Content_number8", FT_UINT32, BASE_DEC,
9214                 NULL, 0, "Content_number8", HFILL }},
9215         { &hf_h225_number16,
9216                 { "number16", "h225.number16", FT_UINT32, BASE_DEC,
9217                 NULL, 0, "number16", HFILL }},
9218         { &hf_h225_Content_number32,
9219                 { "Content_number32", "h225.Content_number32", FT_UINT32, BASE_DEC,
9220                 NULL, 0, "Content_number32", HFILL }},
9221         { &hf_h225_Content_compound,
9222                 { "Content_compound", "h225.Content_compound", FT_NONE, BASE_NONE,
9223                 NULL, 0, "Content_compound sequence of", HFILL }},
9224         { &hf_h225_Content_nested,
9225                 { "Content_nested", "h225.Content_nested", FT_NONE, BASE_NONE,
9226                 NULL, 0, "Content_nested sequence of", HFILL }},
9227         { &hf_h225_replacementFeatureSet,
9228                 { "replacementFeatureSet", "h225.replacementFeatureSet", FT_BOOLEAN, 8,
9229                 TFS(&tfs_replacementFeatureSet_bit), 0x01, "replacementFeatureSet boolean", HFILL }},
9230         { &hf_h225_neededFeatures,
9231                 { "neededFeatures", "h225.neededFeatures", FT_NONE, BASE_NONE,
9232                 NULL, 0, "neededFeatures sequence of", HFILL }},
9233         { &hf_h225_desiredFeatures,
9234                 { "desiredFeatures", "h225.desiredFeatures", FT_NONE, BASE_NONE,
9235                 NULL, 0, "desiredFeatures sequence of", HFILL }},
9236         { &hf_h225_supportedFeatures,
9237                 { "supportedFeatures", "h225.supportedFeatures", FT_NONE, BASE_NONE,
9238                 NULL, 0, "supportedFeatures sequence of", HFILL }},
9239         { &hf_h225_FeatureSet,
9240                 { "FeatureSet", "h225.FeatureSet", FT_NONE, BASE_NONE,
9241                 NULL, 0, "FeatureSet sequence", HFILL }},
9242         { &hf_h225_CallsAvailable_calls,
9243                 { "CallsAvailable_calls", "h225.CallsAvailable_calls", FT_UINT32, BASE_DEC,
9244                 NULL, 0, "CallsAvailable_calls", HFILL }},
9245         { &hf_h225_CallsAvailable_group,
9246                 { "CallsAvailable_group", "h225.CallsAvailable_group", FT_STRING, BASE_HEX,
9247                 NULL, 0, "CallsAvailable_group IA5String", HFILL }},
9248         { &hf_h225_CallsAvailable,
9249                 { "CallsAvailable", "h225.CallsAvailable", FT_NONE, BASE_NONE,
9250                 NULL, 0, "CallsAvailable sequence", HFILL }},
9251         { &hf_h225_voiceGwCallsAvailable,
9252                 { "voiceGwCallsAvailable", "h225.voiceGwCallsAvailable", FT_NONE, BASE_NONE,
9253                 NULL, 0, "voiceGwCallsAvailable sequence of", HFILL }},
9254         { &hf_h225_h310GwCallsAvailable,
9255                 { "h310GwCallsAvailable", "h225.h310GwCallsAvailable", FT_NONE, BASE_NONE,
9256                 NULL, 0, "h310GwCallsAvailable sequence of", HFILL }},
9257         { &hf_h225_h320GwCallsAvailable,
9258                 { "h320GwCallsAvailable", "h225.h320GwCallsAvailable", FT_NONE, BASE_NONE,
9259                 NULL, 0, "h320GwCallsAvailable sequence of", HFILL }},
9260         { &hf_h225_h321GwCallsAvailable,
9261                 { "h321GwCallsAvailable", "h225.h321GwCallsAvailable", FT_NONE, BASE_NONE,
9262                 NULL, 0, "h321GwCallsAvailable sequence of", HFILL }},
9263         { &hf_h225_h322GwCallsAvailable,
9264                 { "h322GwCallsAvailable", "h225.h322GwCallsAvailable", FT_NONE, BASE_NONE,
9265                 NULL, 0, "h322GwCallsAvailable sequence of", HFILL }},
9266         { &hf_h225_h323GwCallsAvailable,
9267                 { "h323GwCallsAvailable", "h225.h323GwCallsAvailable", FT_NONE, BASE_NONE,
9268                 NULL, 0, "h323GwCallsAvailable sequence of", HFILL }},
9269         { &hf_h225_h324GwCallsAvailable,
9270                 { "h324GwCallsAvailable", "h225.h324GwCallsAvailable", FT_NONE, BASE_NONE,
9271                 NULL, 0, "h324GwCallsAvailable sequence of", HFILL }},
9272         { &hf_h225_t120OnlyGwCallsAvailable,
9273                 { "t120OnlyGwCallsAvailable", "h225.t120OnlyGwCallsAvailable", FT_NONE, BASE_NONE,
9274                 NULL, 0, "t120OnlyGwCallsAvailable sequence of", HFILL }},
9275         { &hf_h225_t38FaxAnnexbOnlyGwCallsAvailable,
9276                 { "t38FaxAnnexbOnlyGwCallsAvailable", "h225.t38FaxAnnexbOnlyGwCallsAvailable", FT_NONE, BASE_NONE,
9277                 NULL, 0, "t38FaxAnnexbOnlyGwCallsAvailable sequence of", HFILL }},
9278         { &hf_h225_terminalCallsAvailable,
9279                 { "terminalCallsAvailable", "h225.terminalCallsAvailable", FT_NONE, BASE_NONE,
9280                 NULL, 0, "terminalCallsAvailable sequence of", HFILL }},
9281         { &hf_h225_mcuCallsAvailable,
9282                 { "mcuCallsAvailable", "h225.mcuCallsAvailable", FT_NONE, BASE_NONE,
9283                 NULL, 0, "mcuCallsAvailable sequence of", HFILL }},
9284         { &hf_h225_sipGwCallsAvailable,
9285                 { "sipGwCallsAvailable", "h225.sipGwCallsAvailable", FT_NONE, BASE_NONE,
9286                 NULL, 0, "sipGwCallsAvailable sequence of", HFILL }},
9287         { &hf_h225_maximumCallCapacity,
9288                 { "maximumCallCapacity", "h225.maximumCallCapacity", FT_NONE, BASE_NONE,
9289                 NULL, 0, "maximumCallCapacity sequence", HFILL }},
9290         { &hf_h225_currentCallCapacity,
9291                 { "currentCallCapacity", "h225.currentCallCapacity", FT_NONE, BASE_NONE,
9292                 NULL, 0, "currentCallCapacity sequence", HFILL }},
9293         { &hf_h225_CallCapacity,
9294                 { "CallCapacity", "h225.CallCapacity", FT_NONE, BASE_NONE,
9295                 NULL, 0, "CallCapacity sequence", HFILL }},
9296         { &hf_h225_productID,
9297                 { "productID", "h225.productID", FT_STRING, BASE_HEX,
9298                 NULL, 0, "productID octet string", HFILL }},
9299         { &hf_h225_versionID,
9300                 { "versionID", "h225.versionID", FT_STRING, BASE_HEX,
9301                 NULL, 0, "versionID octet string", HFILL }},
9302         { &hf_h225_VendorIdentifier,
9303                 { "VendorIdentifier", "h225.VendorIdentifier", FT_NONE, BASE_NONE,
9304                 NULL, 0, "VendorIdentifier sequence", HFILL }},
9305         { &hf_h225_canReportCallCapacity,
9306                 { "canReportCallCapacity", "h225.canReportCallCapacity", FT_BOOLEAN, 8,
9307                 TFS(&tfs_canReportCallCapacity_bit), 0x01, "canReportCallCapacity boolean", HFILL }},
9308         { &hf_h225_CapacityReportingCapability,
9309                 { "CapacityReportingCapability", "h225.CapacityReportingCapability", FT_NONE, BASE_NONE,
9310                 NULL, 0, "CapacityReportingCapability sequence", HFILL }},
9311         { &hf_h225_canDisplayAmountString,
9312                 { "canDisplayAmountString", "h225.canDisplayAmountString", FT_BOOLEAN, 8,
9313                 TFS(&tfs_canDisplayAmountString_bit), 0x01, "canDisplayAmountString boolean", HFILL }},
9314         { &hf_h225_canEnforceDurationLimit,
9315                 { "canEnforceDurationLimit", "h225.canEnforceDurationLimit", FT_BOOLEAN, 8,
9316                 TFS(&tfs_canEnforceDurationLimit_bit), 0x01, "canEnforceDurationLimit boolean", HFILL }},
9317         { &hf_h225_CallCreditCapability,
9318                 { "CallCreditCapability", "h225.CallCreditCapability", FT_NONE, BASE_NONE,
9319                 NULL, 0, "CallCreditCapability sequence", HFILL }},
9320         { &hf_h225_BandwidthDetails_sender,
9321                 { "BandwidthDetails_sender", "h225.BandwidthDetails_sender", FT_BOOLEAN, 8,
9322                 TFS(&tfs_BandwidthDetails_sender_bit), 0x01, "BandwidthDetails_sender boolean", HFILL }},
9323         { &hf_h225_BandwidthDetails_multicast,
9324                 { "BandwidthDetails_multicast", "h225.BandwidthDetails_multicast", FT_BOOLEAN, 8,
9325                 TFS(&tfs_BandwidthDetails_multicast_bit), 0x01, "BandwidthDetails_multicast boolean", HFILL }},
9326         { &hf_h225_BandwidthDetails,
9327                 { "BandwidthDetails", "h225.BandwidthDetails", FT_NONE, BASE_NONE,
9328                 NULL, 0, "BandwidthDetails sequence", HFILL }},
9329         { &hf_h225_releaseCompleteCauseIE,
9330                 { "releaseCompleteCauseIE", "h225.releaseCompleteCauseIE", FT_BYTES, BASE_HEX,
9331                 NULL, 0, "releaseCompleteCauseIE octet string", HFILL }},
9332         { &hf_h225_CallTerminationCause,
9333                 { "CallTerminationCause", "h225.CallTerminationCause", FT_UINT32, BASE_DEC,
9334                 VALS(CallTerminationCause_vals), 0, "CallTerminationCause choice", HFILL }},
9335         { &hf_h225_CircuitInfo,
9336                 { "CircuitInfo", "h225.CircuitInfo", FT_NONE, BASE_NONE,
9337                 NULL, 0, "CircuitInfo sequence", HFILL }},
9338         { &hf_h225_genericData,
9339                 { "genericData", "h225.genericData", FT_NONE, BASE_NONE,
9340                 NULL, 0, "genericData sequence of", HFILL }},
9341         { &hf_h225_fastStart_item_length,
9342                 { "fastStart item length", "h225.fastStart_item_length", FT_UINT32, BASE_DEC,
9343                 NULL, 0, "fastStart item length", HFILL }},
9344         { &hf_h225_fastStart,
9345                 { "fastStart", "h225.fastStart", FT_NONE, BASE_NONE,
9346                 NULL, 0, "fastStart sequence of", HFILL }},
9347         { &hf_h225_fastConnectRefused,
9348                 { "fastConnectRefused", "h225.fastConnectRefused", FT_BOOLEAN, 8,
9349                 TFS(&tfs_fastConnectRefused_bit), 0x01, "fastConnectRefused boolean", HFILL }},
9350         { &hf_h225_InformationUUIE,
9351                 { "InformationUUIE", "h225.InformationUUIE", FT_NONE, BASE_NONE,
9352                 NULL, 0, "InformationUUIE sequence", HFILL }},
9353         { &hf_h225_routeCallToSCN,
9354                 { "routeCallToSCN", "h225.routeCallToSCN", FT_NONE, BASE_NONE,
9355                 NULL, 0, "routeCallToSCN sequence of", HFILL }},
9356         { &hf_h225_AdmissionRejectReason,
9357                 { "AdmissionRejectReason", "h225.AdmissionRejectReason", FT_UINT32, BASE_DEC,
9358                 VALS(AdmissionRejectReason_vals), 0, "AdmissionRejectReason choice", HFILL }},
9359         { &hf_h225_hMAC_iso10118_2_s,
9360                 { "hMAC_iso10118_2_s", "h225.hMAC_iso10118_2_s", FT_UINT32, BASE_DEC,
9361                 VALS(EncryptIntAlg_vals), 0, "hMAC_iso10118_2_s choice", HFILL }},
9362         { &hf_h225_hMAC_iso10118_2_l,
9363                 { "hMAC_iso10118_2_l", "h225.hMAC_iso10118_2_l", FT_UINT32, BASE_DEC,
9364                 VALS(EncryptIntAlg_vals), 0, "hMAC_iso10118_2_l choice", HFILL }},
9365         { &hf_h225_NonIsoIntegrityMechanism,
9366                 { "NonIsoIntegrityMechanism", "h225.NonIsoIntegrityMechanism", FT_UINT32, BASE_DEC,
9367                 VALS(NonIsoIntegrityMechanism_vals), 0, "NonIsoIntegrityMechanism choice", HFILL }},
9368         { &hf_h225_IntegrityMechanism,
9369                 { "IntegrityMechanism", "h225.IntegrityMechanism", FT_UINT32, BASE_DEC,
9370                 VALS(IntegrityMechanism_vals), 0, "IntegrityMechanism choice", HFILL }},
9371         { &hf_h225_LocationRejectReason,
9372                 { "LocationRejectReason", "h225.LocationRejectReason", FT_UINT32, BASE_DEC,
9373                 VALS(LocationRejectReason_vals), 0, "LocationRejectReason choice", HFILL }},
9374         { &hf_h225_mc,
9375                 { "mc", "h225.mc", FT_BOOLEAN, 8,
9376                 TFS(&tfs_mc_bit), 0x01, "mc boolean", HFILL }},
9377         { &hf_h225_undefinedNode,
9378                 { "undefinedNode", "h225.undefinedNode", FT_BOOLEAN, 8,
9379                 TFS(&tfs_undefinedNode_bit), 0x01, "undefinedNode boolean", HFILL }},
9380         { &hf_h225_destinationInfo,
9381                 { "destinationInfo", "h225.destinationInfo", FT_NONE, BASE_NONE,
9382                 NULL, 0, "destinationInfo sequence", HFILL }},
9383         { &hf_h225_EndPointType,
9384                 { "EndPointType", "h225.EndPointType", FT_NONE, BASE_NONE,
9385                 NULL, 0, "EndPointType sequence", HFILL }},
9386         { &hf_h225_terminalType,
9387                 { "terminalType", "h225.terminalType", FT_NONE, BASE_NONE,
9388                 NULL, 0, "terminalType sequence", HFILL }},
9389         { &hf_h225_sourceInfo,
9390                 { "sourceInfo", "h225.sourceInfo", FT_NONE, BASE_NONE,
9391                 NULL, 0, "sourceInfo sequence", HFILL }},
9392         { &hf_h225_multipleCalls,
9393                 { "multipleCalls", "h225.multipleCalls", FT_BOOLEAN, 8,
9394                 TFS(&tfs_multipleCalls_bit), 0x01, "multipleCalls boolean", HFILL }},
9395         { &hf_h225_maintainConnection,
9396                 { "maintainConnection", "h225.maintainConnection", FT_BOOLEAN, 8,
9397                 TFS(&tfs_maintainConnection_bit), 0x01, "maintainConnection boolean", HFILL }},
9398         { &hf_h225_CallProceedingUUIE,
9399                 { "CallProceedingUUIE", "h225.CallProceedingUUIE", FT_NONE, BASE_NONE,
9400                 NULL, 0, "CallProceedingUUIE sequence", HFILL }},
9401         { &hf_h225_CapacityReportingSpecification_when,
9402                 { "CapacityReportingSpecification_when", "h225.CapacityReportingSpecification_when", FT_NONE, BASE_NONE,
9403                 NULL, 0, "CapacityReportingSpecification_when sequence", HFILL }},
9404         { &hf_h225_CapacityReportingSpecification,
9405                 { "CapacityReportingSpecification", "h225.CapacityReportingSpecification", FT_NONE, BASE_NONE,
9406                 NULL, 0, "CapacityReportingSpecification sequence", HFILL }},
9407         { &hf_h225_ProgressUUIE,
9408                 { "ProgressUUIE", "h225.ProgressUUIE", FT_NONE, BASE_NONE,
9409                 NULL, 0, "ProgressUUIE sequence", HFILL }},
9410         { &hf_h225_EndPoint,
9411                 { "EndPoint", "h225.EndPoint", FT_NONE, BASE_NONE,
9412                 NULL, 0, "EndPoint sequence", HFILL }},
9413         { &hf_h225_destinationType,
9414                 { "destinationType", "h225.destinationType", FT_NONE, BASE_NONE,
9415                 NULL, 0, "destinationType sequence", HFILL }},
9416         { &hf_h225_destExtraCallInfo,
9417                 { "destExtraCallInfo", "h225.destExtraCallInfo", FT_NONE, BASE_NONE,
9418                 NULL, 0, "destExtraCallInfo sequence of", HFILL }},
9419         { &hf_h225_remoteExtensionAddress,
9420                 { "remoteExtensionAddress", "h225.remoteExtensionAddress", FT_NONE, BASE_NONE,
9421                 NULL, 0, "remoteExtensionAddress sequence of", HFILL }},
9422         { &hf_h225_rasAddress_sequence,
9423                 { "rasAddress_sequence", "h225.rasAddress_sequence", FT_NONE, BASE_NONE,
9424                 NULL, 0, "rasAddress_sequence sequence of", HFILL }},
9425         { &hf_h225_callSignalAddress,
9426                 { "callSignalAddress", "h225.callSignalAddress", FT_NONE, BASE_NONE,
9427                 NULL, 0, "callSignalAddress sequence of", HFILL }},
9428         { &hf_h225_ICV,
9429                 { "ICV", "h225.ICV", FT_NONE, BASE_NONE,
9430                 NULL, 0, "ICV sequence", HFILL }},
9431         { &hf_h225_BandwidthConfirm,
9432                 { "BandwidthConfirm", "h225.BandwidthConfirm", FT_NONE, BASE_NONE,
9433                 NULL, 0, "BandwidthConfirm sequence", HFILL }},
9434         { &hf_h225_UnregistrationConfirm,
9435                 { "UnregistrationConfirm", "h225.UnregistrationConfirm", FT_NONE, BASE_NONE,
9436                 NULL, 0, "UnregistrationConfirm sequence", HFILL }},
9437         { &hf_h225_NonStandardMessage,
9438                 { "NonStandardMessage", "h225.NonStandardMessage", FT_NONE, BASE_NONE,
9439                 NULL, 0, "NonStandardMessage sequence", HFILL }},
9440         { &hf_h225_InfoRequestAck,
9441                 { "InfoRequestAck", "h225.InfoRequestAck", FT_NONE, BASE_NONE,
9442                 NULL, 0, "InfoRequestAck sequence", HFILL }},
9443         { &hf_h225_InfoRequestNak,
9444                 { "InfoRequestNak", "h225.InfoRequestNak", FT_NONE, BASE_NONE,
9445                 NULL, 0, "InfoRequestNak sequence", HFILL }},
9446         { &hf_h225_ResourcesAvailableConfirm,
9447                 { "ResourcesAvailableConfirm", "h225.ResourcesAvailableConfirm", FT_NONE, BASE_NONE,
9448                 NULL, 0, "ResourcesAvailableConfirm sequence", HFILL }},
9449         { &hf_h225_GatekeeperRequest,
9450                 { "GatekeeperRequest", "h225.GatekeeperRequest", FT_NONE, BASE_NONE,
9451                 NULL, 0, "GatekeeperRequest sequence", HFILL }},
9452         { &hf_h225_integrity,
9453                 { "integrity", "h225.integrity", FT_NONE, BASE_NONE,
9454                 NULL, 0, "integrity sequence of", HFILL }},
9455         { &hf_h225_algorithmOIDs,
9456                 { "algorithmOIDs", "h225.algorithmOIDs", FT_NONE, BASE_NONE,
9457                 NULL, 0, "algorithmOIDs sequence of", HFILL }},
9458         { &hf_h225_alternateEndpoints,
9459                 { "alternateEndpoints", "h225.alternateEndpoints", FT_NONE, BASE_NONE,
9460                 NULL, 0, "alternateEndpoints sequence of", HFILL }},
9461         { &hf_h225_endpointAlias,
9462                 { "endpointAlias", "h225.endpointAlias", FT_NONE, BASE_NONE,
9463                 NULL, 0, "endpointAlias sequence of", HFILL }},
9464         { &hf_h225_ServiceControlResponse,
9465                 { "ServiceControlResponse", "h225.ServiceControlResponse", FT_NONE, BASE_NONE,
9466                 NULL, 0, "ServiceControlResponse sequence", HFILL }},
9467         { &hf_h225_DisengageReject,
9468                 { "DisengageReject", "h225.DisengageReject", FT_NONE, BASE_NONE,
9469                 NULL, 0, "DisengageReject sequence", HFILL }},
9470         { &hf_h225_BandwidthReject,
9471                 { "BandwidthReject", "h225.BandwidthReject", FT_NONE, BASE_NONE,
9472                 NULL, 0, "BandwidthReject sequence", HFILL }},
9473         { &hf_h225_UnregistrationReject,
9474                 { "UnregistrationReject", "h225.UnregistrationReject", FT_NONE, BASE_NONE,
9475                 NULL, 0, "UnregistrationReject sequence", HFILL }},
9476         { &hf_h225_UnregistrationRequest,
9477                 { "UnregistrationRequest", "h225.UnregistrationRequest", FT_NONE, BASE_NONE,
9478                 NULL, 0, "UnregistrationRequest sequence", HFILL }},
9479         { &hf_h225_endpointAliasPattern,
9480                 { "endpointAliasPattern", "h225.endpointAliasPattern", FT_NONE, BASE_NONE,
9481                 NULL, 0, "endpointAliasPattern sequence of", HFILL }},
9482         { &hf_h225_RegistrationReject,
9483                 { "RegistrationReject", "h225.RegistrationReject", FT_NONE, BASE_NONE,
9484                 NULL, 0, "RegistrationReject sequence", HFILL }},
9485         { &hf_h225_invalidTerminalAliases,
9486                 { "invalidTerminalAliases", "h225.invalidTerminalAliases", FT_NONE, BASE_NONE,
9487                 NULL, 0, "invalidTerminalAliases sequence", HFILL }},
9488         { &hf_h225_terminalAlias,
9489                 { "terminalAlias", "h225.terminalAlias", FT_NONE, BASE_NONE,
9490                 NULL, 0, "terminalAlias sequence of", HFILL }},
9491         { &hf_h225_terminalAliasPattern,
9492                 { "terminalAliasPattern", "h225.terminalAliasPattern", FT_NONE, BASE_NONE,
9493                 NULL, 0, "terminalAliasPattern sequence of", HFILL }},
9494         { &hf_h225_RegistrationRejectReason,
9495                 { "RegistrationRejectReason", "h225.RegistrationRejectReason", FT_UINT32, BASE_DEC,
9496                 VALS(RegistrationRejectReason_vals), 0, "RegistrationRejectReason choice", HFILL }},
9497         { &hf_h225_duplicateAlias,
9498                 { "duplicateAlias", "h225.duplicateAlias", FT_NONE, BASE_NONE,
9499                 NULL, 0, "duplicateAlias sequence of", HFILL }},
9500         { &hf_h225_GatekeeperReject,
9501                 { "GatekeeperReject", "h225.GatekeeperReject", FT_NONE, BASE_NONE,
9502                 NULL, 0, "GatekeeperReject sequence", HFILL }},
9503         { &hf_h225_almostOutOfResources,
9504                 { "almostOutOfResources", "h225.almostOutOfResources", FT_BOOLEAN, 8,
9505                 TFS(&tfs_almostOutOfResources_bit), 0x01, "almostOutOfResources boolean", HFILL }},
9506         { &hf_h225_ResourcesAvailableIndicate,
9507                 { "ResourcesAvailableIndicate", "h225.ResourcesAvailableIndicate", FT_NONE, BASE_NONE,
9508                 NULL, 0, "ResourcesAvailableIndicate sequence", HFILL }},
9509         { &hf_h225_protocols,
9510                 { "protocols", "h225.protocols", FT_NONE, BASE_NONE,
9511                 NULL, 0, "protocols sequence of", HFILL }},
9512         { &hf_h225_callDurationLimit,
9513                 { "callDurationLimit", "h225.callDurationLimit", FT_UINT32, BASE_DEC,
9514                 NULL, 0, "callDurationLimit", HFILL }},
9515         { &hf_h225_enforceCallDurationLimit,
9516                 { "enforceCallDurationLimit", "h225.enforceCallDurationLimit", FT_BOOLEAN, 8,
9517                 TFS(&tfs_enforceCallDurationLimit_bit), 0x01, "enforceCallDurationLimit boolean", HFILL }},
9518         { &hf_h225_CallCreditServiceControl,
9519                 { "CallCreditServiceControl", "h225.CallCreditServiceControl", FT_NONE, BASE_NONE,
9520                 NULL, 0, "CallCreditServiceControl sequence", HFILL }},
9521         { &hf_h225_ScreeningIndicator,
9522                 { "ScreeningIndicator", "h225.ScreeningIndicator", FT_UINT32, BASE_DEC,
9523                 VALS(ScreeningIndicator_vals), 0, "ScreeningIndicator", HFILL }},
9524         { &hf_h225_ExtendedAliasAddress,
9525                 { "ExtendedAliasAddress", "h225.ExtendedAliasAddress", FT_NONE, BASE_NONE,
9526                 NULL, 0, "ExtendedAliasAddress sequence", HFILL }},
9527         { &hf_h225_messageNotUnderstood,
9528                 { "messageNotUnderstood", "h225.messageNotUnderstood", FT_BYTES, BASE_HEX,
9529                 NULL, 0, "messageNotUnderstood octet string", HFILL }},
9530         { &hf_h225_UnknownMessageResponse,
9531                 { "UnknownMessageResponse", "h225.UnknownMessageResponse", FT_NONE, BASE_NONE,
9532                 NULL, 0, "UnknownMessageResponse sequence", HFILL }},
9533         { &hf_h225_CallReferenceValue,
9534                 { "CallReferenceValue", "h225.CallReferenceValue", FT_UINT32, BASE_DEC,
9535                 NULL, 0, "CallReferenceValue", HFILL }},
9536         { &hf_h225_AdmissionRequest,
9537                 { "AdmissionRequest", "h225.AdmissionRequest", FT_NONE, BASE_NONE,
9538                 NULL, 0, "AdmissionRequest sequence", HFILL }},
9539         { &hf_h225_canMapSrcAlias,
9540                 { "canMapSrcAlias", "h225.canMapSrcAlias", FT_BOOLEAN, 8,
9541                 TFS(&tfs_canMapSrcAlias_bit), 0x01, "canMapSrcAlias boolean", HFILL }},
9542         { &hf_h225_desiredProtocols,
9543                 { "desiredProtocols", "h225.desiredProtocols", FT_NONE, BASE_NONE,
9544                 NULL, 0, "desiredProtocols sequence of", HFILL }},
9545         { &hf_h225_willSupplyUUIEs,
9546                 { "willSupplyUUIEs", "h225.willSupplyUUIEs", FT_BOOLEAN, 8,
9547                 TFS(&tfs_willSupplyUUIEs_bit), 0x01, "willSupplyUUIEs boolean", HFILL }},
9548         { &hf_h225_destAlternatives,
9549                 { "destAlternatives", "h225.destAlternatives", FT_NONE, BASE_NONE,
9550                 NULL, 0, "destAlternatives sequence of", HFILL }},
9551         { &hf_h225_srcAlternatives,
9552                 { "srcAlternatives", "h225.srcAlternatives", FT_NONE, BASE_NONE,
9553                 NULL, 0, "srcAlternatives sequence of", HFILL }},
9554         { &hf_h225_canMapAlias,
9555                 { "canMapAlias", "h225.canMapAlias", FT_BOOLEAN, 8,
9556                 TFS(&tfs_canMapAlias_bit), 0x01, "canMapAlias boolean", HFILL }},
9557         { &hf_h225_activeMC,
9558                 { "activeMC", "h225.activeMC", FT_BOOLEAN, 8,
9559                 TFS(&tfs_activeMC_bit), 0x01, "activeMC boolean", HFILL }},
9560         { &hf_h225_srcInfo,
9561                 { "srcInfo", "h225.srcInfo", FT_NONE, BASE_NONE,
9562                 NULL, 0, "srcInfo sequence of", HFILL }},
9563         { &hf_h225_DestinationInfo,
9564                 { "DestinationInfo", "h225.DestinationInfo", FT_NONE, BASE_NONE,
9565                 NULL, 0, "DestinationInfo sequence of", HFILL }},
9566         { &hf_h225_InfoRequest,
9567                 { "InfoRequest", "h225.InfoRequest", FT_NONE, BASE_NONE,
9568                 NULL, 0, "InfoRequest sequence", HFILL }},
9569         { &hf_h225_nextSegmentRequested,
9570                 { "nextSegmentRequested", "h225.nextSegmentRequested", FT_UINT32, BASE_DEC,
9571                 NULL, 0, "nextSegmentRequested", HFILL }},
9572         { &hf_h225_delay,
9573                 { "delay", "h225.delay", FT_UINT32, BASE_DEC,
9574                 NULL, 0, "delay", HFILL }},
9575         { &hf_h225_RequestInProgress,
9576                 { "RequestInProgress", "h225.RequestInProgress", FT_NONE, BASE_NONE,
9577                 NULL, 0, "RequestInProgress sequence", HFILL }},
9578         { &hf_h225_H248SignalsDescriptor,
9579                 { "H248SignalsDescriptor", "h225.H248SignalsDescriptor", FT_BYTES, BASE_HEX,
9580                 NULL, 0, "H248SignalsDescriptor octet string", HFILL }},
9581         { &hf_h225_url,
9582                 { "url", "h225.url", FT_BYTES, BASE_HEX,
9583                 NULL, 0, "url IA5String", HFILL }},
9584         { &hf_h225_ServiceControlDescriptor,
9585                 { "ServiceControlDescriptor", "h225.ServiceControlDescriptor", FT_UINT32, BASE_DEC,
9586                 VALS(ServiceControlDescriptor_vals), 0, "ServiceControlDescriptor choice", HFILL }},
9587         { &hf_h225_ServiceControlSession,
9588                 { "ServiceControlSession", "h225.ServiceControlSession", FT_NONE, BASE_NONE,
9589                 NULL, 0, "ServiceControlSession sequence", HFILL }},
9590         { &hf_h225_sessionId,
9591                 { "sessionId", "h225.sessionId", FT_UINT32, BASE_DEC,
9592                 NULL, 0, "sessionId", HFILL }},
9593         { &hf_h225_AlertingUUIE,
9594                 { "AlertingUUIE", "h225.AlertingUUIE", FT_NONE, BASE_NONE,
9595                 NULL, 0, "AlertingUUIE sequence", HFILL }},
9596         { &hf_h225_serviceControl,
9597                 { "serviceControl", "h225.serviceControl", FT_NONE, BASE_NONE,
9598                 NULL, 0, "serviceControl sequence of", HFILL }},
9599         { &hf_h225_alertingAddress,
9600                 { "alertingAddress", "h225.alertingAddress", FT_NONE, BASE_NONE,
9601                 NULL, 0, "alertingAddress sequence of", HFILL }},
9602         { &hf_h225_ReleaseCompleteUUIE,
9603                 { "ReleaseCompleteUUIE", "h225.ReleaseCompleteUUIE", FT_NONE, BASE_NONE,
9604                 NULL, 0, "ReleaseCompleteUUIE sequence", HFILL }},
9605         { &hf_h225_busyAddress,
9606                 { "busyAddress", "h225.busyAddress", FT_NONE, BASE_NONE,
9607                 NULL, 0, "busyAddress sequence of", HFILL }},
9608         { &hf_h225_FacilityUUIE,
9609                 { "FacilityUUIE", "h225.FacilityUUIE", FT_NONE, BASE_NONE,
9610                 NULL, 0, "FacilityUUIE sequence", HFILL }},
9611         { &hf_h225_alternativeAliasAddress,
9612                 { "alternativeAliasAddress", "h225.alternativeAliasAddress", FT_NONE, BASE_NONE,
9613                 NULL, 0, "alternativeAliasAddress sequence of", HFILL }},
9614         { &hf_h225_AdmissionReject,
9615                 { "AdmissionReject", "h225.AdmissionReject", FT_NONE, BASE_NONE,
9616                 NULL, 0, "AdmissionReject sequence", HFILL }},
9617         { &hf_h225_hopCount,
9618                 { "hopCount", "h225.hopCount", FT_UINT32, BASE_DEC,
9619                 NULL, 0, "hopCount", HFILL }},
9620         { &hf_h225_parallelH245Control,
9621                 { "parallelH245Control", "h225.parallelH245Control", FT_NONE, BASE_NONE,
9622                 NULL, 0, "parallelH245Control sequence of", HFILL }},
9623         { &hf_h225_language,
9624                 { "language", "h225.language", FT_BYTES, BASE_HEX,
9625                 NULL, 0, "language IA5String", HFILL }},
9626         { &hf_h225_languages,
9627                 { "languages", "h225.languages", FT_NONE, BASE_NONE,
9628                 NULL, 0, "languages sequence of", HFILL }},
9629         { &hf_h225_mediaWaitForConnect,
9630                 { "mediaWaitForConnect", "h225.mediaWaitForConnect", FT_BOOLEAN, 8,
9631                 TFS(&tfs_mediaWaitForConnect_bit), 0x01, "mediaWaitForConnect boolean", HFILL }},
9632         { &hf_h225_canOverlapSend,
9633                 { "canOverlapSend", "h225.canOverlapSend", FT_BOOLEAN, 8,
9634                 TFS(&tfs_canOverlapSend_bit), 0x01, "canOverlapSend boolean", HFILL }},
9635         { &hf_h225_SetupUUIE,
9636                 { "SetupUUIE", "h225.SetupUUIE", FT_NONE, BASE_NONE,
9637                 NULL, 0, "SetupUUIE sequence", HFILL }},
9638         { &hf_h225_sourceAddress,
9639                 { "sourceAddress", "h225.sourceAddress", FT_NONE, BASE_NONE,
9640                 NULL, 0, "sourceAddress sequence of", HFILL }},
9641         { &hf_h225_destinationAddress,
9642                 { "destinationAddress", "h225.destinationAddress", FT_NONE, BASE_NONE,
9643                 NULL, 0, "destinationAddress sequence of", HFILL }},
9644         { &hf_h225_destExtraCRV,
9645                 { "destExtraCRV", "h225.destExtraCRV", FT_NONE, BASE_NONE,
9646                 NULL, 0, "destExtraCRV sequence of", HFILL }},
9647         { &hf_h225_h245SecurityCapability,
9648                 { "h245SecurityCapability", "h225.h245SecurityCapability", FT_NONE, BASE_NONE,
9649                 NULL, 0, "h245SecurityCapability sequence of", HFILL }},
9650         { &hf_h225_additionalSourceAddresses,
9651                 { "additionalSourceAddresses", "h225.additionalSourceAddresses", FT_NONE, BASE_NONE,
9652                 NULL, 0, "additionalSourceAddresses sequence of", HFILL }},
9653         { &hf_h225_ConnectUUIE,
9654                 { "ConnectUUIE", "h225.ConnectUUIE", FT_NONE, BASE_NONE,
9655                 NULL, 0, "ConnectUUIE sequence", HFILL }},
9656         { &hf_h225_connectedAddress,
9657                 { "connectedAddress", "h225.connectedAddress", FT_NONE, BASE_NONE,
9658                 NULL, 0, "connectedAddress sequence of", HFILL }},
9659         { &hf_h225_h323_message_body,
9660                 { "h323_message_body", "h225.h323_message_body", FT_UINT32, BASE_DEC,
9661                 VALS(h323_message_body_vals), 0, "h323_message_body choice", HFILL }},
9662         { &hf_h225_LocationConfirm,
9663                 { "LocationConfirm", "h225.LocationConfirm", FT_NONE, BASE_NONE,
9664                 NULL, 0, "LocationConfirm sequence", HFILL }},
9665         { &hf_h225_supportedProtocols,
9666                 { "supportedProtocols", "h225.supportedProtocols", FT_NONE, BASE_NONE,
9667                 NULL, 0, "supportedProtocols sequence of", HFILL }},
9668         { &hf_h225_modifiedSrcInfo,
9669                 { "modifiedSrcInfo", "h225.modifiedSrcInfo", FT_NONE, BASE_NONE,
9670                 NULL, 0, "modifiedSrcInfo sequence of", HFILL }},
9671         { &hf_h225_LocationReject,
9672                 { "LocationReject", "h225.LocationReject", FT_NONE, BASE_NONE,
9673                 NULL, 0, "LocationReject sequence", HFILL }},
9674         { &hf_h225_callSpecific,
9675                 { "callSpecific", "h225.callSpecific", FT_NONE, BASE_NONE,
9676                 NULL, 0, "callSpecific sequence", HFILL }},
9677         { &hf_h225_answeredCall,
9678                 { "answeredCall", "h225.answeredCall", FT_BOOLEAN, 8,
9679                 TFS(&tfs_answeredCall_bit), 0x01, "answeredCall boolean", HFILL }},
9680         { &hf_h225_ServiceControlIndication,
9681                 { "ServiceControlIndication", "h225.ServiceControlIndication", FT_NONE, BASE_NONE,
9682                 NULL, 0, "ServiceControlIndication sequence", HFILL }},
9683         { &hf_h225_RasUsageInformation,
9684                 { "RasUsageInformation", "h225.RasUsageInformation", FT_NONE, BASE_NONE,
9685                 NULL, 0, "RasUsageInformation sequence", HFILL }},
9686         { &hf_h225_nonStandardUsageFields,
9687                 { "nonStandardUsageFields", "h225.nonStandardUsageFields", FT_NONE, BASE_NONE,
9688                 NULL, 0, "SEQUENCE OF NonStandardParameter", HFILL }},
9689         { &hf_h225_nonStandardUsageFields_item,
9690                 { "nonStandardUsageFields", "h225.nonStandardUsageFields_item", FT_NONE, BASE_NONE,
9691                 NULL, 0, "NonStandardParameter", HFILL }},
9692         { &hf_h225_TimeToLive,
9693                 { "TimeToLive", "h225.TimeToLive", FT_UINT32, BASE_DEC,
9694                 NULL, 0, "TimeToLive in seconds", HFILL }},
9695         { &hf_h225_GatekeeperConfirm,
9696                 { "GatekeeperConfirm", "h225.GatekeeperConfirm", FT_NONE, BASE_NONE,
9697                 NULL, 0, "GatekeeperConfirm sequence", HFILL }},
9698         { &hf_h225_RegistrationRequest,
9699                 { "RegistrationRequest", "h225.RegistrationRequest", FT_NONE, BASE_NONE,
9700                 NULL, 0, "RegistrationRequest sequence", HFILL }},
9701         { &hf_h225_discoveryComplete,
9702                 { "discoveryComplete", "h225.discoveryComplete", FT_BOOLEAN, 8,
9703                 TFS(&tfs_discoveryComplete_bit), 0x01, "discoveryComplete boolean", HFILL }},
9704         { &hf_h225_keepAlive,
9705                 { "keepAlive", "h225.keepAlive", FT_BOOLEAN, 8,
9706                 TFS(&tfs_keepAlive_bit), 0x01, "keepAlive boolean", HFILL }},
9707         { &hf_h225_H248PackagesDescriptor,
9708                 { "H248PackagesDescriptor", "h225.H248PackagesDescriptor", FT_BYTES, BASE_HEX,
9709                 NULL, 0, "H248PackagesDescriptor octet string", HFILL }},
9710         { &hf_h225_supportedH248Packages,
9711                 { "supportedH248Packages", "h225.supportedH248Packages", FT_NONE, BASE_NONE,
9712                 NULL, 0, "supportedH248Packages sequence of", HFILL }},
9713         { &hf_h225_DisengageConfirm,
9714                 { "DisengageConfirm", "h225.DisengageConfirm", FT_NONE, BASE_NONE,
9715                 NULL, 0, "DisengageConfirm sequence", HFILL }},
9716         { &hf_h225_AdmissionConfirm,
9717                 { "AdmissionConfirm", "h225.AdmissionConfirm", FT_NONE, BASE_NONE,
9718                 NULL, 0, "AdmissionConfirm sequence", HFILL }},
9719         { &hf_h225_irrFrequency,
9720                 { "irrFrequency", "h225.irrFrequency", FT_UINT32, BASE_DEC,
9721                 NULL, 0, "irrFrequency", HFILL }},
9722         { &hf_h225_willRespondToIRR,
9723                 { "willRespondToIRR", "h225.willRespondToIRR", FT_BOOLEAN, 8,
9724                 TFS(&tfs_willRespondToIRR_bit), 0x01, "willRespondToIRR boolean", HFILL }},
9725         { &hf_h225_usageSpec,
9726                 { "usageSpec", "h225.usageSpec", FT_NONE, BASE_NONE,
9727                 NULL, 0, "usageSpec sequence of", HFILL }},
9728         { &hf_h225_DisengageRequest,
9729                 { "DisengageRequest", "h225.DisengageRequest", FT_NONE, BASE_NONE,
9730                 NULL, 0, "DisengageRequest sequence", HFILL }},
9731         { &hf_h225_LocationRequest,
9732                 { "LocationRequest", "h225.LocationRequest", FT_NONE, BASE_NONE,
9733                 NULL, 0, "LocationRequest sequence", HFILL }},
9734         { &hf_h225_SourceInfo,
9735                 { "SourceInfo", "h225.SourceInfo", FT_NONE, BASE_NONE,
9736                 NULL, 0, "SourceInfo sequence of", HFILL }},
9737         { &hf_h225_hopCount255,
9738                 { "hopCount255", "h225.hopCount255", FT_UINT32, BASE_DEC,
9739                 NULL, 0, "hopCount255", HFILL }},
9740         { &hf_h225_sourceEndpointInfo,
9741                 { "sourceEndpointInfo", "h225.sourceEndpointInfo", FT_NONE, BASE_NONE,
9742                 NULL, 0, "sourceEndpointInfo sequence of", HFILL }},
9743         { &hf_h225_BandwidthRequest,
9744                 { "BandwidthRequest", "h225.BandwidthRequest", FT_NONE, BASE_NONE,
9745                 NULL, 0, "BandwidthRequest sequence", HFILL }},
9746         { &hf_h225_bandwidthDetails,
9747                 { "bandwidthDetails", "h225.bandwidthDetails", FT_NONE, BASE_NONE,
9748                 NULL, 0, "bandwidthDetails sequence of", HFILL }},
9749         { &hf_h225_admissionConfirmSequence,
9750                 { "admissionConfirmSequence", "h225.admissionConfirmSequence", FT_NONE, BASE_NONE,
9751                 NULL, 0, "admissionConfirmSequence sequence of", HFILL }},
9752         { &hf_h225_tunnelledSignallingMessage,
9753                 { "tunnelledSignallingMessage", "h225.tunnelledSignallingMessage", FT_NONE, BASE_NONE,
9754                 NULL, 0, "tunnelledSignallingMessage sequence", HFILL }},
9755         { &hf_h225_messageContent_item,
9756                 { "messageContent_item", "h225.messageContent_item", FT_BYTES, BASE_HEX,
9757                 NULL, 0, "messageContent_item octet string", HFILL }},
9758         { &hf_h225_messageContent,
9759                 { "messageContent", "h225.messageContent", FT_NONE, BASE_NONE,
9760                 NULL, 0, "messageContent sequence of", HFILL }},
9761         { &hf_h225_H323_UU_PDU,
9762                 { "H323_UU_PDU", "h225.H323_UU_PDU", FT_NONE, BASE_NONE,
9763                 NULL, 0, "H323_UU_PDU sequence", HFILL }},
9764         { &hf_h225_h4501SupplementaryService,
9765                 { "h4501SupplementaryService", "h225.h4501SupplementaryService", FT_NONE, BASE_NONE,
9766                 NULL, 0, "h4501SupplementaryService sequence of", HFILL }},
9767         { &hf_h225_h245Tunneling,
9768                 { "h245Tunneling", "h225.h245Tunneling", FT_BOOLEAN, 8,
9769                 TFS(&tfs_h245Tunneling_bit), 0x01, "h245Tunneling boolean", HFILL }},
9770         { &hf_h225_h245Control,
9771                 { "h245Control", "h225.h245Control", FT_NONE, BASE_NONE,
9772                 NULL, 0, "h245Control sequence of", HFILL }},
9773         { &hf_h225_nonStandardControl,
9774                 { "nonStandardControl", "h225.nonStandardControl", FT_NONE, BASE_NONE,
9775                 NULL, 0, "SEQUENCE OF NonStandardParameter", HFILL }},
9776         { &hf_h225_nonStandardControl_item,
9777                 { "nonStandardControl", "h225.nonStandardControl_item", FT_NONE, BASE_NONE,
9778                 NULL, 0, "NonStandardParameter", HFILL }},
9779         { &hf_h225_preGrantedARQ,
9780                 { "preGrantedARQ", "h225.preGrantedARQ", FT_NONE, BASE_NONE,
9781                 NULL, 0, "preGrantedARQ sequence", HFILL }},
9782         { &hf_h225_makeCall,
9783                 { "makeCall", "h225.makeCall", FT_BOOLEAN, 8,
9784                 TFS(&tfs_makeCall_bit), 0x01, "makeCall boolean", HFILL }},
9785         { &hf_h225_useGKCallSignalAddressToMakeCall,
9786                 { "useGKCallSignalAddressToMakeCall", "h225.useGKCallSignalAddressToMakeCall", FT_BOOLEAN, 8,
9787                 TFS(&tfs_useGKCallSignalAddressToMakeCall_bit), 0x01, "useGKCallSignalAddressToMakeCall boolean", HFILL }},
9788         { &hf_h225_answerCall,
9789                 { "answerCall", "h225.answerCall", FT_BOOLEAN, 8,
9790                 TFS(&tfs_answerCall_bit), 0x01, "answerCall boolean", HFILL }},
9791         { &hf_h225_useGKCallSignalAddressToAnswer,
9792                 { "useGKCallSignalAddressToAnswer", "h225.useGKCallSignalAddressToAnswer", FT_BOOLEAN, 8,
9793                 TFS(&tfs_useGKCallSignalAddressToAnswer_bit), 0x01, "useGKCallSignalAddressToAnswer boolean", HFILL }},
9794         { &hf_h225_RegistrationConfirm,
9795                 { "RegistrationConfirm", "h225.RegistrationConfirm", FT_NONE, BASE_NONE,
9796                 NULL, 0, "RegistrationConfirm sequence", HFILL }},
9797         { &hf_h225_pdu_item,
9798                 { "pdu_item", "h225.pdu_item", FT_NONE, BASE_NONE,
9799                 NULL, 0, "pdu_item sequence", HFILL }},
9800         { &hf_h225_sent,
9801                 { "sent", "h225.sent", FT_BOOLEAN, 8,
9802                 TFS(&tfs_sent_bit), 0x01, "sent boolean", HFILL }},
9803         { &hf_h225_pdu,
9804                 { "pdu", "h225.pdu", FT_NONE, BASE_NONE,
9805                 NULL, 0, "pdu sequence of", HFILL }},
9806         { &hf_h225_perCallInfo_item,
9807                 { "perCallInfo_item", "h225.perCallInfo_item", FT_NONE, BASE_NONE,
9808                 NULL, 0, "perCallInfo_item sequence", HFILL }},
9809         { &hf_h225_originator,
9810                 { "originator", "h225.originator", FT_BOOLEAN, 8,
9811                 TFS(&tfs_originator_bit), 0x01, "originator boolean", HFILL }},
9812         { &hf_h225_audio,
9813                 { "audio", "h225.audio", FT_NONE, BASE_NONE,
9814                 NULL, 0, "audio sequence of", HFILL }},
9815         { &hf_h225_video,
9816                 { "video", "h225.video", FT_NONE, BASE_NONE,
9817                 NULL, 0, "video sequence of", HFILL }},
9818         { &hf_h225_data,
9819                 { "data", "h225.data", FT_NONE, BASE_NONE,
9820                 NULL, 0, "data sequence of", HFILL }},
9821         { &hf_h225_substituteConfIDs,
9822                 { "substituteConfIDs", "h225.substituteConfIDs", FT_NONE, BASE_NONE,
9823                 NULL, 0, "substituteConfIDs sequence of", HFILL }},
9824         { &hf_h225_perCallInfo,
9825                 { "perCallInfo", "h225.perCallInfo", FT_NONE, BASE_NONE,
9826                 NULL, 0, "perCallInfo sequence of", HFILL }},
9827         { &hf_h225_InfoRequestResponse,
9828                 { "InfoRequestResponse", "h225.InfoRequestResponse", FT_NONE, BASE_NONE,
9829                 NULL, 0, "InfoRequestResponse sequence", HFILL }},
9830         { &hf_h225_needResponse,
9831                 { "needResponse", "h225.needResponse", FT_BOOLEAN, 8,
9832                 TFS(&tfs_needResponse_bit), 0x01, "needResponse boolean", HFILL }},
9833         { &hf_h225_unsolicited,
9834                 { "unsolicited", "h225.unsolicited", FT_BOOLEAN, 8,
9835                 TFS(&tfs_unsolicited_bit), 0x01, "unsolicited boolean", HFILL }},
9836         { &hf_h225_RasMessage,
9837                 { "RasMessage", "h225.RasMessage", FT_UINT32, BASE_DEC,
9838                 VALS(RasMessage_vals), 0, "RasMessage choice", HFILL }},
9839         { &hf_h225_H323_UserInformation,
9840                 { "H323_UserInformation", "h225.H323_UserInformation", FT_NONE, BASE_NONE,
9841                 NULL, 0, "H323_UserInformation sequence", HFILL }},
9842         { &hf_h225_user_data,
9843                 { "user_data", "h225.user_data", FT_NONE, BASE_NONE,
9844                 NULL, 0, "user_data sequence", HFILL }},
9845         { &hf_h225_protocol_discriminator,
9846                 { "protocol_discriminator", "h225.protocol_discriminator", FT_UINT32, BASE_DEC,
9847                 NULL, 0, "protocol_discriminator", HFILL }},
9848         { &hf_h225_user_information,
9849                 { "user_information", "h225.user_information", FT_BYTES, BASE_HEX,
9850                 NULL, 0, "user_information octet string", HFILL }},
9851         { &hf_h225_object,
9852                 { "object", "h225.object", FT_STRING, BASE_NONE,
9853                 NULL, 0, "OBJECT IDENTIFIER", HFILL }},
9854         { &hf_h225_t35CountryCode,
9855                 { "t35CountryCode", "h225.t35CountryCode", FT_UINT32, BASE_DEC,
9856                 VALS(T35CountryCode_vals), 0, "t35CountryCode value", HFILL }},
9857         { &hf_h225_t35Extension,
9858                 { "t35Extension", "h225.t35Extension", FT_UINT32, BASE_DEC,
9859                 NULL, 0, "t35Extension value", HFILL }},
9860         { &hf_h225_manufacturerCode,
9861                 { "manufacturerCode", "h225.manufacturerCode", FT_UINT32, BASE_DEC,
9862                 NULL, 0, "manufacturerCode value", HFILL }},
9863         { &hf_h225_h221NonStandard,
9864                 { "h221NonStandard", "h225.h221NonStandard", FT_NONE, BASE_NONE,
9865                 NULL, 0, "H221NonStandard SEQUENCE", HFILL }},
9866         { &hf_h225_nonStandardIdentifier,
9867                 { "nonStandardIdentifier", "h245.NonStandardIdentifier_type", FT_UINT32, BASE_DEC,
9868                 VALS(NonStandardIdentifier_vals), 0, "NonStandardIdentifier CHOICE", HFILL }},
9869         { &hf_h225_nsp_data,
9870                 { "data", "h225.nsp_data", FT_BYTES, BASE_HEX,
9871                 NULL, 0, "OCTET STRING", HFILL }},
9872         { &hf_h225_nonStandardData,
9873                 { "nonStandardData", "h225.nonStandardData", FT_NONE, BASE_NONE,
9874                 NULL, 0, "NonStandardParameter SEQUENCE", HFILL }},
9875         { &hf_h225_nonStandard,
9876                 { "nonStandard", "h225.nonStandard", FT_NONE, BASE_NONE,
9877                 NULL, 0, "NonStandardParameter SEQUENCE", HFILL }},
9878         { &hf_h225_nonStandardReason,
9879                 { "nonStandardReason", "h225.nonStandardReason", FT_NONE, BASE_NONE,
9880                 NULL, 0, "NonStandardParameter SEQUENCE", HFILL }},
9881         { &hf_h225_nonStandardAddress,
9882                 { "nonStandardAddress", "h225.nonStandardAddress", FT_NONE, BASE_NONE,
9883                 NULL, 0, "NonStandardParameter SEQUENCE", HFILL }},
9884
9885 /*ddd*/
9886         };
9887
9888         static gint *ett[] =
9889         {
9890                 &ett_h225,
9891                 &ett_h225_SecurityServiceMode_encryption,
9892                 &ett_h225_SecurityServiceMode_authentication,
9893                 &ett_h225_SecurityServiceMode_integrity,
9894                 &ett_h225_H245Security,
9895                 &ett_h225_ReleaseCompleteReason,
9896                 &ett_h225_routing,
9897                 &ett_h225_TransportAddress,
9898                 &ett_h225_InfoRequestResponseStatus,
9899                 &ett_h225_systemid,
9900                 &ett_h225_MobileUIM,
9901                 &ett_h225_PartyNumber,
9902                 &ett_h225_AliasAddress,
9903                 &ett_h225_AddressPattern,
9904                 &ett_h225_SupportedProtocols,
9905                 &ett_h225_GenericIdentifier,
9906                 &ett_h225_Content,
9907                 &ett_h225_CallTerminationCause,
9908                 &ett_h225_AdmissionRejectReason,
9909                 &ett_h225_EncryptIntAlg,
9910                 &ett_h225_NonIsoIntegrityMechanism,
9911                 &ett_h225_IntegrityMechanism,
9912                 &ett_h225_LocationRejectReason,
9913                 &ett_h225_RegistrationRejectReason,
9914                 &ett_h225_ServiceControlDescriptor,
9915                 &ett_h225_h323_message_body,
9916                 &ett_h225_RasMessage,
9917                 &ett_h225_GatekeeperRejectReason,
9918                 &ett_h225_PresentationIndicator,
9919                 &ett_h225_conferenceGoal,
9920                 &ett_h225_ScnConnectionType,
9921                 &ett_h225_ScnConnectionAggregation,
9922                 &ett_h225_FacilityReason,
9923                 &ett_h225_PublicTypeOfNumber,
9924                 &ett_h225_PrivateTypeOfNumber,
9925                 &ett_h225_UseSpecifiedTransport,
9926                 &ett_h225_SecurityErrors,
9927                 &ett_h225_SecurityErrors2,
9928                 &ett_h225_ServiceControlSession_reason,
9929                 &ett_h225_billingMode,
9930                 &ett_h225_CCSCcallStartingPoint,
9931                 &ett_h225_UnregRequestReason,
9932                 &ett_h225_UnregRejectReason,
9933                 &ett_h225_CallType,
9934                 &ett_h225_CallModel,
9935                 &ett_h225_TransportQOS,
9936                 &ett_h225_BandRejectReason,
9937                 &ett_h225_DisengageReason,
9938                 &ett_h225_DisengageRejectReason,
9939                 &ett_h225_InfoRequestNakReason,
9940                 &ett_h225_SCRresult,
9941                 &ett_h225_GatekeeperInfo,
9942                 &ett_h225_SecurityCapabilities_tls,
9943                 &ett_h225_SecurityCapabilities_ipsec,
9944                 &ett_h225_RasUsageInfoTypes,
9945                 &ett_h225_T_nonStandardUsageTypes,
9946                 &ett_h225_DataRate,
9947                 &ett_h225_dataRatesSupported,
9948                 &ett_h225_TerminalInfo,
9949                 &ett_h225_StimulusControl,
9950                 &ett_h225_connectionParameters,
9951                 &ett_h225_RasUsageSpecification_when,
9952                 &ett_h225_RasUsageSpecification_callStartingPoint,
9953                 &ett_h225_RasUsageSpecification,
9954                 &ett_h225_ipAddress,
9955                 &ett_h225_route,
9956                 &ett_h225_ipSourceRoute,
9957                 &ett_h225_ipxAddress,
9958                 &ett_h225_ip6Address,
9959                 &ett_h225_TransportChannelInfo,
9960                 &ett_h225_CarrierInfo,
9961                 &ett_h225_CallIdentifier,
9962                 &ett_h225_CallLinkage,
9963                 &ett_h225_tokens,
9964                 &ett_h225_AlternateGK,
9965                 &ett_h225_alternateGatekeeper,
9966                 &ett_h225_AltGKInfo,
9967                 &ett_h225_annexE,
9968                 &ett_h225_sctp,
9969                 &ett_h225_AlternateTransportAddress,
9970                 &ett_h225_UUIEsRequested,
9971                 &ett_h225_Q954Details,
9972                 &ett_h225_QseriesOptions,
9973                 &ett_h225_associatedSessionIds,
9974                 &ett_h225_RTPSession,
9975                 &ett_h225_cryptoTokens,
9976                 &ett_h225_StatusUUIE,
9977                 &ett_h225_StatusInquiryUUIE,
9978                 &ett_h225_SetupAcknowledgeUUIE,
9979                 &ett_h225_NotifyUUIE,
9980                 &ett_h225_GSMUIM,
9981                 &ett_h225_ANSI41UIM,
9982                 &ett_h225_e164Number,
9983                 &ett_h225_privateNumber,
9984                 &ett_h225_TunnelledProtocolAlternateIdentifier,
9985                 &ett_h225_SupportedPrefix,
9986                 &ett_h225_SupportedPrefixes,
9987                 &ett_h225_H310Caps,
9988                 &ett_h225_H320Caps,
9989                 &ett_h225_H321Caps,
9990                 &ett_h225_H322Caps,
9991                 &ett_h225_H323Caps,
9992                 &ett_h225_H324Caps,
9993                 &ett_h225_VoiceCaps,
9994                 &ett_h225_T120OnlyCaps,
9995                 &ett_h225_NonStandardProtocol,
9996                 &ett_h225_SIPCaps,
9997                 &ett_h225_AddressPattern_range,
9998                 &ett_h225_ConferenceList,
9999                 &ett_h225_conferences,
10000                 &ett_h225_T38FaxAnnexbOnlyCaps,
10001                 &ett_h225_protocol,
10002                 &ett_h225_GatewayInfo,
10003                 &ett_h225_McuInfo,
10004                 &ett_h225_TunnelledProtocol_id,
10005                 &ett_h225_TunnelledProtocol,
10006                 &ett_h225_CicInfo_cic,
10007                 &ett_h225_CicInfo,
10008                 &ett_h225_GroupID_member,
10009                 &ett_h225_GroupID,
10010                 &ett_h225_CircuitIdentifier,
10011                 &ett_h225_EnumeratedParameter,
10012                 &ett_h225_parameters,
10013                 &ett_h225_GenericData,
10014                 &ett_h225_Content_compound,
10015                 &ett_h225_Content_nested,
10016                 &ett_h225_neededFeatures,
10017                 &ett_h225_desiredFeatures,
10018                 &ett_h225_supportedFeatures,
10019                 &ett_h225_FeatureSet,
10020                 &ett_h225_CallsAvailable,
10021                 &ett_h225_voiceGwCallsAvailable,
10022                 &ett_h225_h310GwCallsAvailable,
10023                 &ett_h225_h320GwCallsAvailable,
10024                 &ett_h225_h321GwCallsAvailable,
10025                 &ett_h225_h322GwCallsAvailable,
10026                 &ett_h225_h323GwCallsAvailable,
10027                 &ett_h225_h324GwCallsAvailable,
10028                 &ett_h225_t120OnlyGwCallsAvailable,
10029                 &ett_h225_t38FaxAnnexbOnlyGwCallsAvailable,
10030                 &ett_h225_terminalCallsAvailable,
10031                 &ett_h225_mcuCallsAvailable,
10032                 &ett_h225_sipGwCallsAvailable,
10033                 &ett_h225_CallCapacityInfo,
10034                 &ett_h225_CallCapacity,
10035                 &ett_h225_VendorIdentifier,
10036                 &ett_h225_CapacityReportingCapability,
10037                 &ett_h225_CallCreditCapability,
10038                 &ett_h225_BandwidthDetails,
10039                 &ett_h225_CircuitInfo,
10040                 &ett_h225_genericData,
10041                 &ett_h225_fastStart,
10042                 &ett_h225_InformationUUIE,
10043                 &ett_h225_routeCallToSCN,
10044                 &ett_h225_EndPointType,
10045                 &ett_h225_CallProceedingUUIE,
10046                 &ett_h225_CapacityReportingSpecification_when,
10047                 &ett_h225_CapacityReportingSpecification,
10048                 &ett_h225_ProgressUUIE,
10049                 &ett_h225_EndPoint,
10050                 &ett_h225_destExtraCallInfo,
10051                 &ett_h225_remoteExtensionAddress,
10052                 &ett_h225_rasAddress_sequence,
10053                 &ett_h225_callSignalAddress,
10054                 &ett_h225_ICV,
10055                 &ett_h225_BandwidthConfirm,
10056                 &ett_h225_UnregistrationConfirm,
10057                 &ett_h225_NonStandardMessage,
10058                 &ett_h225_InfoRequestAck,
10059                 &ett_h225_InfoRequestNak,
10060                 &ett_h225_ResourcesAvailableConfirm,
10061                 &ett_h225_GatekeeperRequest,
10062                 &ett_h225_integrity,
10063                 &ett_h225_algorithmOIDs,
10064                 &ett_h225_alternateEndpoints,
10065                 &ett_h225_endpointAlias,
10066                 &ett_h225_ServiceControlResponse,
10067                 &ett_h225_DisengageReject,
10068                 &ett_h225_BandwidthReject,
10069                 &ett_h225_UnregistrationReject,
10070                 &ett_h225_UnregistrationRequest,
10071                 &ett_h225_endpointAliasPattern,
10072                 &ett_h225_RegistrationReject,
10073                 &ett_h225_invalidTerminalAliases,
10074                 &ett_h225_terminalAlias,
10075                 &ett_h225_terminalAliasPattern,
10076                 &ett_h225_duplicateAlias,
10077                 &ett_h225_GatekeeperReject,
10078                 &ett_h225_ResourcesAvailableIndicate,
10079                 &ett_h225_protocols,
10080                 &ett_h225_CallCreditServiceControl,
10081                 &ett_h225_ExtendedAliasAddress,
10082                 &ett_h225_UnknownMessageResponse,
10083                 &ett_h225_AdmissionRequest,
10084                 &ett_h225_desiredProtocols,
10085                 &ett_h225_destAlternatives,
10086                 &ett_h225_srcAlternatives,
10087                 &ett_h225_srcInfo,
10088                 &ett_h225_DestinationInfo,
10089                 &ett_h225_InfoRequest,
10090                 &ett_h225_RequestInProgress,
10091                 &ett_h225_ServiceControlSession,
10092                 &ett_h225_AlertingUUIE,
10093                 &ett_h225_serviceControl,
10094                 &ett_h225_alertingAddress,
10095                 &ett_h225_ReleaseCompleteUUIE,
10096                 &ett_h225_busyAddress,
10097                 &ett_h225_FacilityUUIE,
10098                 &ett_h225_alternativeAliasAddress,
10099                 &ett_h225_AdmissionReject,
10100                 &ett_h225_parallelH245Control,
10101                 &ett_h225_languages,
10102                 &ett_h225_SetupUUIE,
10103                 &ett_h225_sourceAddress,
10104                 &ett_h225_destinationAddress,
10105                 &ett_h225_destExtraCRV,
10106                 &ett_h225_h245SecurityCapability,
10107                 &ett_h225_additionalSourceAddresses,
10108                 &ett_h225_ConnectUUIE,
10109                 &ett_h225_connectedAddress,
10110                 &ett_h225_LocationConfirm,
10111                 &ett_h225_supportedProtocols,
10112                 &ett_h225_modifiedSrcInfo,
10113                 &ett_h225_LocationReject,
10114                 &ett_h225_callSpecific,
10115                 &ett_h225_ServiceControlIndication,
10116                 &ett_h225_RasUsageInformation,
10117                 &ett_h225_T_nonStandardUsageFields,
10118                 &ett_h225_GatekeeperConfirm,
10119                 &ett_h225_RegistrationRequest,
10120                 &ett_h225_supportedH248Packages,
10121                 &ett_h225_DisengageConfirm,
10122                 &ett_h225_AdmissionConfirm,
10123                 &ett_h225_usageSpec,
10124                 &ett_h225_DisengageRequest,
10125                 &ett_h225_LocationRequest,
10126                 &ett_h225_SourceInfo,
10127                 &ett_h225_sourceEndpointInfo,
10128                 &ett_h225_BandwidthRequest,
10129                 &ett_h225_bandwidthDetails,
10130                 &ett_h225_admissionConfirmSequence,
10131                 &ett_h225_tunnelledSignallingMessage,
10132                 &ett_h225_messageContent,
10133                 &ett_h225_H323_UU_PDU,
10134                 &ett_h225_h4501SupplementaryService,
10135                 &ett_h225_h245Control,
10136                 &ett_h225_T_nonStandardControl,
10137                 &ett_h225_preGrantedARQ,
10138                 &ett_h225_RegistrationConfirm,
10139                 &ett_h225_pdu_item,
10140                 &ett_h225_pdu,
10141                 &ett_h225_perCallInfo_item,
10142                 &ett_h225_audio,
10143                 &ett_h225_video,
10144                 &ett_h225_data,
10145                 &ett_h225_substituteConfIDs,
10146                 &ett_h225_perCallInfo,
10147                 &ett_h225_InfoRequestResponse,
10148                 &ett_h225_H323_UserInformation,
10149                 &ett_h225_user_data,
10150                 &ett_h225_H221NonStandard,
10151                 &ett_h225_NonStandardIdentifier,
10152                 &ett_h225_NonStandardParameter,
10153 /*eee*/
10154         };
10155         module_t *h225_module;
10156
10157         proto_h225 = proto_register_protocol("H225", "H225", "h225");
10158         proto_register_field_array(proto_h225, hf, array_length(hf));
10159         proto_register_subtree_array(ett, array_length(ett));
10160         h225_module = prefs_register_protocol(proto_h225, NULL);
10161         prefs_register_bool_preference(h225_module, "reassembly",
10162                 "Reassemble H.225 over TCP",
10163                 "Whether the dissector should reassemble H.225 PDUs spanning multiple TCP segments",
10164                 &h225_reassembly);
10165         register_dissector("h225", dissect_h225_H323UserInformation, proto_h225);
10166
10167         nsp_object_dissector_table = register_dissector_table("h225.nsp.object", "H.245 NonStandardParameter (object)", FT_STRING, BASE_NONE);
10168         nsp_h221_dissector_table = register_dissector_table("h225.nsp.h221", "H.245 NonStandardParameter (h221)", FT_UINT32, BASE_HEX);
10169
10170         h225_tap = register_tap("h225");
10171 }
10172
10173 void
10174 proto_reg_handoff_h225(void)
10175 {
10176         h225ras_handle=create_dissector_handle(dissect_h225_RasMessage, proto_h225);
10177         H323UserInformation_handle=create_dissector_handle(dissect_h225_H323UserInformation, proto_h225);
10178
10179         h245_handle = find_dissector("h245");
10180         h245dg_handle = find_dissector("h245dg");
10181         h4501_handle = find_dissector("h4501");
10182         data_handle = find_dissector("data");
10183
10184         dissector_add("udp.port", UDP_PORT_RAS1, h225ras_handle);
10185         dissector_add("udp.port", UDP_PORT_RAS2, h225ras_handle);
10186 }
10187
10188 static void reset_h225_packet_info(h225_packet_info *pi)
10189 {
10190         if(pi == NULL) {
10191                 return;
10192         }
10193
10194         pi->msg_type = H225_OTHERS;
10195         pi->msg_tag = -1;
10196         pi->reason = -1;
10197         pi->requestSeqNum = 0;
10198         memset(pi->guid,0,16);
10199 }