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