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