1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -p h501 -c h501.cnf -s packet-h501-template H501-MESSAGES.asn */
6 /* Input file: packet-h501-template.c */
8 #line 1 "packet-h501-template.c"
10 * Routines for H.501 packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
39 #include <epan/packet.h>
40 #include <epan/prefs.h>
41 #include <epan/oids.h>
42 #include <epan/asn1.h>
47 #include "packet-tpkt.h"
48 #include "packet-per.h"
49 #include "packet-h225.h"
50 #include "packet-h235.h"
52 #define PNAME "H.501 Mobility"
53 #define PSNAME "H.501"
56 /* Initialize the protocol and registered fields */
59 /*--- Included file: packet-h501-hf.c ---*/
60 #line 1 "packet-h501-hf.c"
61 static int hf_h501_Message_PDU = -1; /* Message */
62 static int hf_h501_body = -1; /* MessageBody */
63 static int hf_h501_common = -1; /* MessageCommonInfo */
64 static int hf_h501_serviceRequest = -1; /* ServiceRequest */
65 static int hf_h501_serviceConfirmation = -1; /* ServiceConfirmation */
66 static int hf_h501_serviceRejection = -1; /* ServiceRejection */
67 static int hf_h501_serviceRelease = -1; /* ServiceRelease */
68 static int hf_h501_descriptorRequest = -1; /* DescriptorRequest */
69 static int hf_h501_descriptorConfirmation = -1; /* DescriptorConfirmation */
70 static int hf_h501_descriptorRejection = -1; /* DescriptorRejection */
71 static int hf_h501_descriptorIDRequest = -1; /* DescriptorIDRequest */
72 static int hf_h501_descriptorIDConfirmation = -1; /* DescriptorIDConfirmation */
73 static int hf_h501_descriptorIDRejection = -1; /* DescriptorIDRejection */
74 static int hf_h501_descriptorUpdate = -1; /* DescriptorUpdate */
75 static int hf_h501_descriptorUpdateAck = -1; /* DescriptorUpdateAck */
76 static int hf_h501_accessRequest = -1; /* AccessRequest */
77 static int hf_h501_accessConfirmation = -1; /* AccessConfirmation */
78 static int hf_h501_accessRejection = -1; /* AccessRejection */
79 static int hf_h501_requestInProgress = -1; /* RequestInProgress */
80 static int hf_h501_nonStandardRequest = -1; /* NonStandardRequest */
81 static int hf_h501_nonStandardConfirmation = -1; /* NonStandardConfirmation */
82 static int hf_h501_nonStandardRejection = -1; /* NonStandardRejection */
83 static int hf_h501_unknownMessageResponse = -1; /* UnknownMessageResponse */
84 static int hf_h501_usageRequest = -1; /* UsageRequest */
85 static int hf_h501_usageConfirmation = -1; /* UsageConfirmation */
86 static int hf_h501_usageIndication = -1; /* UsageIndication */
87 static int hf_h501_usageIndicationConfirmation = -1; /* UsageIndicationConfirmation */
88 static int hf_h501_usageIndicationRejection = -1; /* UsageIndicationRejection */
89 static int hf_h501_usageRejection = -1; /* UsageRejection */
90 static int hf_h501_validationRequest = -1; /* ValidationRequest */
91 static int hf_h501_validationConfirmation = -1; /* ValidationConfirmation */
92 static int hf_h501_validationRejection = -1; /* ValidationRejection */
93 static int hf_h501_authenticationRequest = -1; /* AuthenticationRequest */
94 static int hf_h501_authenticationConfirmation = -1; /* AuthenticationConfirmation */
95 static int hf_h501_authenticationRejection = -1; /* AuthenticationRejection */
96 static int hf_h501_sequenceNumber = -1; /* INTEGER_0_65535 */
97 static int hf_h501_annexGversion = -1; /* ProtocolVersion */
98 static int hf_h501_hopCount = -1; /* INTEGER_1_255 */
99 static int hf_h501_replyAddress = -1; /* SEQUENCE_OF_TransportAddress */
100 static int hf_h501_replyAddress_item = -1; /* TransportAddress */
101 static int hf_h501_integrityCheckValue = -1; /* ICV */
102 static int hf_h501_tokens = -1; /* SEQUENCE_OF_ClearToken */
103 static int hf_h501_tokens_item = -1; /* ClearToken */
104 static int hf_h501_cryptoTokens = -1; /* SEQUENCE_OF_CryptoH323Token */
105 static int hf_h501_cryptoTokens_item = -1; /* CryptoH323Token */
106 static int hf_h501_nonStandard = -1; /* SEQUENCE_OF_NonStandardParameter */
107 static int hf_h501_nonStandard_item = -1; /* NonStandardParameter */
108 static int hf_h501_serviceID = -1; /* ServiceID */
109 static int hf_h501_genericData = -1; /* SEQUENCE_OF_GenericData */
110 static int hf_h501_genericData_item = -1; /* GenericData */
111 static int hf_h501_featureSet = -1; /* FeatureSet */
112 static int hf_h501_version = -1; /* ProtocolVersion */
113 static int hf_h501_elementIdentifier = -1; /* ElementIdentifier */
114 static int hf_h501_domainIdentifier = -1; /* AliasAddress */
115 static int hf_h501_securityMode = -1; /* SEQUENCE_OF_SecurityMode */
116 static int hf_h501_securityMode_item = -1; /* SecurityMode */
117 static int hf_h501_timeToLive = -1; /* INTEGER_1_4294967295 */
118 static int hf_h501_usageSpec = -1; /* UsageSpecification */
119 static int hf_h501_authentication = -1; /* AuthenticationMechanism */
120 static int hf_h501_integrity = -1; /* IntegrityMechanism */
121 static int hf_h501_algorithmOIDs = -1; /* T_algorithmOIDs */
122 static int hf_h501_algorithmOIDs_item = -1; /* OBJECT_IDENTIFIER */
123 static int hf_h501_alternates = -1; /* AlternatePEInfo */
124 static int hf_h501_securityMode_01 = -1; /* SecurityMode */
125 static int hf_h501_reason = -1; /* ServiceRejectionReason */
126 static int hf_h501_serviceUnavailable = -1; /* NULL */
127 static int hf_h501_serviceRedirected = -1; /* NULL */
128 static int hf_h501_security = -1; /* NULL */
129 static int hf_h501_continue = -1; /* NULL */
130 static int hf_h501_undefined = -1; /* NULL */
131 static int hf_h501_unknownServiceID = -1; /* NULL */
132 static int hf_h501_cannotSupportUsageSpec = -1; /* NULL */
133 static int hf_h501_neededFeature = -1; /* NULL */
134 static int hf_h501_genericDataReason = -1; /* NULL */
135 static int hf_h501_usageUnavailable = -1; /* NULL */
136 static int hf_h501_unknownUsageSendTo = -1; /* NULL */
137 static int hf_h501_reason_01 = -1; /* ServiceReleaseReason */
138 static int hf_h501_outOfService = -1; /* NULL */
139 static int hf_h501_maintenance = -1; /* NULL */
140 static int hf_h501_terminated = -1; /* NULL */
141 static int hf_h501_expired = -1; /* NULL */
142 static int hf_h501_descriptorID = -1; /* SEQUENCE_OF_DescriptorID */
143 static int hf_h501_descriptorID_item = -1; /* DescriptorID */
144 static int hf_h501_descriptor = -1; /* SEQUENCE_OF_Descriptor */
145 static int hf_h501_descriptor_item = -1; /* Descriptor */
146 static int hf_h501_reason_02 = -1; /* DescriptorRejectionReason */
147 static int hf_h501_descriptorID_01 = -1; /* DescriptorID */
148 static int hf_h501_packetSizeExceeded = -1; /* NULL */
149 static int hf_h501_illegalID = -1; /* NULL */
150 static int hf_h501_hopCountExceeded = -1; /* NULL */
151 static int hf_h501_noServiceRelationship = -1; /* NULL */
152 static int hf_h501_descriptorInfo = -1; /* SEQUENCE_OF_DescriptorInfo */
153 static int hf_h501_descriptorInfo_item = -1; /* DescriptorInfo */
154 static int hf_h501_reason_03 = -1; /* DescriptorIDRejectionReason */
155 static int hf_h501_noDescriptors = -1; /* NULL */
156 static int hf_h501_sender = -1; /* AliasAddress */
157 static int hf_h501_updateInfo = -1; /* SEQUENCE_OF_UpdateInformation */
158 static int hf_h501_updateInfo_item = -1; /* UpdateInformation */
159 static int hf_h501_descriptorInfo_01 = -1; /* T_descriptorInfo */
160 static int hf_h501_descriptor_01 = -1; /* Descriptor */
161 static int hf_h501_updateType = -1; /* T_updateType */
162 static int hf_h501_added = -1; /* NULL */
163 static int hf_h501_deleted = -1; /* NULL */
164 static int hf_h501_changed = -1; /* NULL */
165 static int hf_h501_destinationInfo = -1; /* PartyInformation */
166 static int hf_h501_sourceInfo = -1; /* PartyInformation */
167 static int hf_h501_callInfo = -1; /* CallInformation */
168 static int hf_h501_desiredProtocols = -1; /* SEQUENCE_OF_SupportedProtocols */
169 static int hf_h501_desiredProtocols_item = -1; /* SupportedProtocols */
170 static int hf_h501_templates = -1; /* SEQUENCE_OF_AddressTemplate */
171 static int hf_h501_templates_item = -1; /* AddressTemplate */
172 static int hf_h501_partialResponse = -1; /* BOOLEAN */
173 static int hf_h501_supportedProtocols = -1; /* SEQUENCE_OF_SupportedProtocols */
174 static int hf_h501_supportedProtocols_item = -1; /* SupportedProtocols */
175 static int hf_h501_serviceControl = -1; /* SEQUENCE_OF_ServiceControlSession */
176 static int hf_h501_serviceControl_item = -1; /* ServiceControlSession */
177 static int hf_h501_reason_04 = -1; /* AccessRejectionReason */
178 static int hf_h501_noMatch = -1; /* NULL */
179 static int hf_h501_needCallInformation = -1; /* NULL */
180 static int hf_h501_destinationUnavailable = -1; /* NULL */
181 static int hf_h501_aliasesInconsistent = -1; /* NULL */
182 static int hf_h501_resourceUnavailable = -1; /* NULL */
183 static int hf_h501_incompleteAddress = -1; /* NULL */
184 static int hf_h501_reason_05 = -1; /* UsageRejectReason */
185 static int hf_h501_accessTokens = -1; /* SEQUENCE_OF_AccessToken */
186 static int hf_h501_accessTokens_item = -1; /* AccessToken */
187 static int hf_h501_senderRole = -1; /* Role */
188 static int hf_h501_usageCallStatus = -1; /* UsageCallStatus */
189 static int hf_h501_srcInfo = -1; /* PartyInformation */
190 static int hf_h501_destAddress = -1; /* PartyInformation */
191 static int hf_h501_startTime = -1; /* TimeStamp */
192 static int hf_h501_endTime = -1; /* TimeStamp */
193 static int hf_h501_terminationCause = -1; /* TerminationCause */
194 static int hf_h501_usageFields = -1; /* SEQUENCE_OF_UsageField */
195 static int hf_h501_usageFields_item = -1; /* UsageField */
196 static int hf_h501_id = -1; /* OBJECT_IDENTIFIER */
197 static int hf_h501_value = -1; /* OCTET_STRING */
198 static int hf_h501_invalidCall = -1; /* NULL */
199 static int hf_h501_unavailable = -1; /* NULL */
200 static int hf_h501_reason_06 = -1; /* UsageIndicationRejectionReason */
201 static int hf_h501_unknownCall = -1; /* NULL */
202 static int hf_h501_incomplete = -1; /* NULL */
203 static int hf_h501_accessToken = -1; /* SEQUENCE_OF_AccessToken */
204 static int hf_h501_accessToken_item = -1; /* AccessToken */
205 static int hf_h501_reason_07 = -1; /* ValidationRejectionReason */
206 static int hf_h501_tokenNotValid = -1; /* NULL */
207 static int hf_h501_missingSourceInfo = -1; /* NULL */
208 static int hf_h501_missingDestInfo = -1; /* NULL */
209 static int hf_h501_delay = -1; /* INTEGER_1_65535 */
210 static int hf_h501_reason_08 = -1; /* NonStandardRejectionReason */
211 static int hf_h501_notSupported = -1; /* NULL */
212 static int hf_h501_unknownMessage = -1; /* OCTET_STRING */
213 static int hf_h501_reason_09 = -1; /* UnknownMessageReason */
214 static int hf_h501_notUnderstood = -1; /* NULL */
215 static int hf_h501_applicationMessage = -1; /* ApplicationMessage */
216 static int hf_h501_reason_10 = -1; /* AuthenticationRejectionReason */
217 static int hf_h501_securityWrongSyncTime = -1; /* NULL */
218 static int hf_h501_securityReplay = -1; /* NULL */
219 static int hf_h501_securityWrongGeneralID = -1; /* NULL */
220 static int hf_h501_securityWrongSendersID = -1; /* NULL */
221 static int hf_h501_securityIntegrityFailed = -1; /* NULL */
222 static int hf_h501_securityWrongOID = -1; /* NULL */
223 static int hf_h501_pattern = -1; /* SEQUENCE_OF_Pattern */
224 static int hf_h501_pattern_item = -1; /* Pattern */
225 static int hf_h501_routeInfo = -1; /* SEQUENCE_OF_RouteInformation */
226 static int hf_h501_routeInfo_item = -1; /* RouteInformation */
227 static int hf_h501_specific = -1; /* AliasAddress */
228 static int hf_h501_wildcard = -1; /* AliasAddress */
229 static int hf_h501_range = -1; /* T_range */
230 static int hf_h501_startOfRange = -1; /* PartyNumber */
231 static int hf_h501_endOfRange = -1; /* PartyNumber */
232 static int hf_h501_messageType = -1; /* T_messageType */
233 static int hf_h501_sendAccessRequest = -1; /* NULL */
234 static int hf_h501_sendSetup = -1; /* NULL */
235 static int hf_h501_nonExistent = -1; /* NULL */
236 static int hf_h501_callSpecific = -1; /* BOOLEAN */
237 static int hf_h501_priceInfo = -1; /* SEQUENCE_OF_PriceInfoSpec */
238 static int hf_h501_priceInfo_item = -1; /* PriceInfoSpec */
239 static int hf_h501_contacts = -1; /* SEQUENCE_OF_ContactInformation */
240 static int hf_h501_contacts_item = -1; /* ContactInformation */
241 static int hf_h501_type = -1; /* EndpointType */
242 static int hf_h501_circuitID = -1; /* CircuitInfo */
243 static int hf_h501_supportedCircuits = -1; /* SEQUENCE_OF_CircuitIdentifier */
244 static int hf_h501_supportedCircuits_item = -1; /* CircuitIdentifier */
245 static int hf_h501_transportAddress = -1; /* AliasAddress */
246 static int hf_h501_priority = -1; /* INTEGER_0_127 */
247 static int hf_h501_transportQoS = -1; /* TransportQOS */
248 static int hf_h501_security_01 = -1; /* SEQUENCE_OF_SecurityMode */
249 static int hf_h501_security_item = -1; /* SecurityMode */
250 static int hf_h501_multipleCalls = -1; /* BOOLEAN */
251 static int hf_h501_currency = -1; /* IA5String_SIZE_3 */
252 static int hf_h501_currencyScale = -1; /* INTEGER_M127_127 */
253 static int hf_h501_validFrom = -1; /* GlobalTimeStamp */
254 static int hf_h501_validUntil = -1; /* GlobalTimeStamp */
255 static int hf_h501_hoursFrom = -1; /* IA5String_SIZE_6 */
256 static int hf_h501_hoursUntil = -1; /* IA5String_SIZE_6 */
257 static int hf_h501_priceElement = -1; /* SEQUENCE_OF_PriceElement */
258 static int hf_h501_priceElement_item = -1; /* PriceElement */
259 static int hf_h501_priceFormula = -1; /* IA5String_SIZE_1_2048 */
260 static int hf_h501_amount = -1; /* INTEGER_0_4294967295 */
261 static int hf_h501_quantum = -1; /* INTEGER_0_4294967295 */
262 static int hf_h501_units = -1; /* T_units */
263 static int hf_h501_seconds = -1; /* NULL */
264 static int hf_h501_packets = -1; /* NULL */
265 static int hf_h501_bytes = -1; /* NULL */
266 static int hf_h501_initial = -1; /* NULL */
267 static int hf_h501_minimum = -1; /* NULL */
268 static int hf_h501_maximum = -1; /* NULL */
269 static int hf_h501_descriptorInfo_02 = -1; /* DescriptorInfo */
270 static int hf_h501_gatekeeperID = -1; /* GatekeeperIdentifier */
271 static int hf_h501_lastChanged = -1; /* GlobalTimeStamp */
272 static int hf_h501_alternatePE = -1; /* SEQUENCE_OF_AlternatePE */
273 static int hf_h501_alternatePE_item = -1; /* AlternatePE */
274 static int hf_h501_alternateIsPermanent = -1; /* BOOLEAN */
275 static int hf_h501_contactAddress = -1; /* AliasAddress */
276 static int hf_h501_priority_01 = -1; /* INTEGER_1_127 */
277 static int hf_h501_token = -1; /* ClearToken */
278 static int hf_h501_cryptoToken = -1; /* CryptoH323Token */
279 static int hf_h501_genericData_01 = -1; /* GenericData */
280 static int hf_h501_callIdentifier = -1; /* CallIdentifier */
281 static int hf_h501_conferenceID = -1; /* ConferenceIdentifier */
282 static int hf_h501_preConnect = -1; /* NULL */
283 static int hf_h501_callInProgress = -1; /* NULL */
284 static int hf_h501_callEnded = -1; /* NULL */
285 static int hf_h501_registrationLost = -1; /* NULL */
286 static int hf_h501_userIdentifier = -1; /* AliasAddress */
287 static int hf_h501_userAuthenticator = -1; /* SEQUENCE_OF_CryptoH323Token */
288 static int hf_h501_userAuthenticator_item = -1; /* CryptoH323Token */
289 static int hf_h501_sendTo = -1; /* ElementIdentifier */
290 static int hf_h501_when = -1; /* T_when */
291 static int hf_h501_never = -1; /* NULL */
292 static int hf_h501_start = -1; /* NULL */
293 static int hf_h501_end = -1; /* NULL */
294 static int hf_h501_period = -1; /* INTEGER_1_65535 */
295 static int hf_h501_failures = -1; /* NULL */
296 static int hf_h501_required = -1; /* T_required */
297 static int hf_h501_required_item = -1; /* OBJECT_IDENTIFIER */
298 static int hf_h501_preferred = -1; /* T_preferred */
299 static int hf_h501_preferred_item = -1; /* OBJECT_IDENTIFIER */
300 static int hf_h501_sendToPEAddress = -1; /* AliasAddress */
301 static int hf_h501_logicalAddresses = -1; /* SEQUENCE_OF_AliasAddress */
302 static int hf_h501_logicalAddresses_item = -1; /* AliasAddress */
303 static int hf_h501_endpointType = -1; /* EndpointType */
304 static int hf_h501_userInfo = -1; /* UserInformation */
305 static int hf_h501_timeZone = -1; /* TimeZone */
306 static int hf_h501_originator = -1; /* NULL */
307 static int hf_h501_destination = -1; /* NULL */
308 static int hf_h501_nonStandardData = -1; /* NonStandardParameter */
309 static int hf_h501_releaseCompleteReason = -1; /* ReleaseCompleteReason */
310 static int hf_h501_causeIE = -1; /* INTEGER_1_65535 */
312 /*--- End of included file: packet-h501-hf.c ---*/
313 #line 51 "packet-h501-template.c"
315 /* Initialize the subtree pointers */
316 static int ett_h501 = -1;
318 /*--- Included file: packet-h501-ett.c ---*/
319 #line 1 "packet-h501-ett.c"
320 static gint ett_h501_Message = -1;
321 static gint ett_h501_MessageBody = -1;
322 static gint ett_h501_MessageCommonInfo = -1;
323 static gint ett_h501_SEQUENCE_OF_TransportAddress = -1;
324 static gint ett_h501_SEQUENCE_OF_ClearToken = -1;
325 static gint ett_h501_SEQUENCE_OF_CryptoH323Token = -1;
326 static gint ett_h501_SEQUENCE_OF_NonStandardParameter = -1;
327 static gint ett_h501_SEQUENCE_OF_GenericData = -1;
328 static gint ett_h501_ServiceRequest = -1;
329 static gint ett_h501_SEQUENCE_OF_SecurityMode = -1;
330 static gint ett_h501_SecurityMode = -1;
331 static gint ett_h501_T_algorithmOIDs = -1;
332 static gint ett_h501_ServiceConfirmation = -1;
333 static gint ett_h501_ServiceRejection = -1;
334 static gint ett_h501_ServiceRejectionReason = -1;
335 static gint ett_h501_ServiceRelease = -1;
336 static gint ett_h501_ServiceReleaseReason = -1;
337 static gint ett_h501_DescriptorRequest = -1;
338 static gint ett_h501_SEQUENCE_OF_DescriptorID = -1;
339 static gint ett_h501_DescriptorConfirmation = -1;
340 static gint ett_h501_SEQUENCE_OF_Descriptor = -1;
341 static gint ett_h501_DescriptorRejection = -1;
342 static gint ett_h501_DescriptorRejectionReason = -1;
343 static gint ett_h501_DescriptorIDRequest = -1;
344 static gint ett_h501_DescriptorIDConfirmation = -1;
345 static gint ett_h501_SEQUENCE_OF_DescriptorInfo = -1;
346 static gint ett_h501_DescriptorIDRejection = -1;
347 static gint ett_h501_DescriptorIDRejectionReason = -1;
348 static gint ett_h501_DescriptorUpdate = -1;
349 static gint ett_h501_SEQUENCE_OF_UpdateInformation = -1;
350 static gint ett_h501_UpdateInformation = -1;
351 static gint ett_h501_T_descriptorInfo = -1;
352 static gint ett_h501_T_updateType = -1;
353 static gint ett_h501_DescriptorUpdateAck = -1;
354 static gint ett_h501_AccessRequest = -1;
355 static gint ett_h501_SEQUENCE_OF_SupportedProtocols = -1;
356 static gint ett_h501_AccessConfirmation = -1;
357 static gint ett_h501_SEQUENCE_OF_AddressTemplate = -1;
358 static gint ett_h501_SEQUENCE_OF_ServiceControlSession = -1;
359 static gint ett_h501_AccessRejection = -1;
360 static gint ett_h501_AccessRejectionReason = -1;
361 static gint ett_h501_UsageRequest = -1;
362 static gint ett_h501_UsageConfirmation = -1;
363 static gint ett_h501_UsageRejection = -1;
364 static gint ett_h501_UsageIndication = -1;
365 static gint ett_h501_SEQUENCE_OF_AccessToken = -1;
366 static gint ett_h501_SEQUENCE_OF_UsageField = -1;
367 static gint ett_h501_UsageField = -1;
368 static gint ett_h501_UsageRejectReason = -1;
369 static gint ett_h501_UsageIndicationConfirmation = -1;
370 static gint ett_h501_UsageIndicationRejection = -1;
371 static gint ett_h501_UsageIndicationRejectionReason = -1;
372 static gint ett_h501_ValidationRequest = -1;
373 static gint ett_h501_ValidationConfirmation = -1;
374 static gint ett_h501_ValidationRejection = -1;
375 static gint ett_h501_ValidationRejectionReason = -1;
376 static gint ett_h501_RequestInProgress = -1;
377 static gint ett_h501_NonStandardRequest = -1;
378 static gint ett_h501_NonStandardConfirmation = -1;
379 static gint ett_h501_NonStandardRejection = -1;
380 static gint ett_h501_NonStandardRejectionReason = -1;
381 static gint ett_h501_UnknownMessageResponse = -1;
382 static gint ett_h501_UnknownMessageReason = -1;
383 static gint ett_h501_AuthenticationRequest = -1;
384 static gint ett_h501_AuthenticationConfirmation = -1;
385 static gint ett_h501_AuthenticationRejection = -1;
386 static gint ett_h501_AuthenticationRejectionReason = -1;
387 static gint ett_h501_AddressTemplate = -1;
388 static gint ett_h501_SEQUENCE_OF_Pattern = -1;
389 static gint ett_h501_SEQUENCE_OF_RouteInformation = -1;
390 static gint ett_h501_Pattern = -1;
391 static gint ett_h501_T_range = -1;
392 static gint ett_h501_RouteInformation = -1;
393 static gint ett_h501_T_messageType = -1;
394 static gint ett_h501_SEQUENCE_OF_PriceInfoSpec = -1;
395 static gint ett_h501_SEQUENCE_OF_ContactInformation = -1;
396 static gint ett_h501_SEQUENCE_OF_CircuitIdentifier = -1;
397 static gint ett_h501_ContactInformation = -1;
398 static gint ett_h501_PriceInfoSpec = -1;
399 static gint ett_h501_SEQUENCE_OF_PriceElement = -1;
400 static gint ett_h501_PriceElement = -1;
401 static gint ett_h501_T_units = -1;
402 static gint ett_h501_Descriptor = -1;
403 static gint ett_h501_DescriptorInfo = -1;
404 static gint ett_h501_AlternatePEInfo = -1;
405 static gint ett_h501_SEQUENCE_OF_AlternatePE = -1;
406 static gint ett_h501_AlternatePE = -1;
407 static gint ett_h501_AccessToken = -1;
408 static gint ett_h501_CallInformation = -1;
409 static gint ett_h501_UsageCallStatus = -1;
410 static gint ett_h501_UserInformation = -1;
411 static gint ett_h501_UsageSpecification = -1;
412 static gint ett_h501_T_when = -1;
413 static gint ett_h501_T_required = -1;
414 static gint ett_h501_T_preferred = -1;
415 static gint ett_h501_PartyInformation = -1;
416 static gint ett_h501_SEQUENCE_OF_AliasAddress = -1;
417 static gint ett_h501_Role = -1;
418 static gint ett_h501_TerminationCause = -1;
420 /*--- End of included file: packet-h501-ett.c ---*/
421 #line 55 "packet-h501-template.c"
424 static dissector_handle_t h501_pdu_handle;
427 static guint h501_udp_port = 2099;
428 static guint h501_tcp_port = 2099;
429 static gboolean h501_desegment_tcp = TRUE;
431 void proto_reg_handoff_h501(void);
434 /*--- Included file: packet-h501-fn.c ---*/
435 #line 1 "packet-h501-fn.c"
439 dissect_h501_ElementIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
440 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
449 dissect_h501_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
450 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
456 static const per_sequence_t T_algorithmOIDs_sequence_of[1] = {
457 { &hf_h501_algorithmOIDs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
461 dissect_h501_T_algorithmOIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
462 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
463 ett_h501_T_algorithmOIDs, T_algorithmOIDs_sequence_of);
469 static const per_sequence_t SecurityMode_sequence[] = {
470 { &hf_h501_authentication , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_AuthenticationMechanism },
471 { &hf_h501_integrity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_IntegrityMechanism },
472 { &hf_h501_algorithmOIDs , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_T_algorithmOIDs },
477 dissect_h501_SecurityMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
478 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
479 ett_h501_SecurityMode, SecurityMode_sequence);
485 static const per_sequence_t SEQUENCE_OF_SecurityMode_sequence_of[1] = {
486 { &hf_h501_securityMode_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_SecurityMode },
490 dissect_h501_SEQUENCE_OF_SecurityMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
491 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
492 ett_h501_SEQUENCE_OF_SecurityMode, SEQUENCE_OF_SecurityMode_sequence_of);
500 dissect_h501_INTEGER_1_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
501 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
502 1U, 4294967295U, NULL, FALSE);
510 dissect_h501_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
511 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
519 dissect_h501_INTEGER_1_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
520 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
521 1U, 65535U, NULL, FALSE);
527 static const per_sequence_t T_when_sequence[] = {
528 { &hf_h501_never , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
529 { &hf_h501_start , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
530 { &hf_h501_end , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
531 { &hf_h501_period , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_65535 },
532 { &hf_h501_failures , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
537 dissect_h501_T_when(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
538 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
539 ett_h501_T_when, T_when_sequence);
545 static const per_sequence_t T_required_sequence_of[1] = {
546 { &hf_h501_required_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
550 dissect_h501_T_required(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
551 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
552 ett_h501_T_required, T_required_sequence_of);
558 static const per_sequence_t T_preferred_sequence_of[1] = {
559 { &hf_h501_preferred_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
563 dissect_h501_T_preferred(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
564 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
565 ett_h501_T_preferred, T_preferred_sequence_of);
571 static const per_sequence_t UsageSpecification_sequence[] = {
572 { &hf_h501_sendTo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ElementIdentifier },
573 { &hf_h501_when , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_when },
574 { &hf_h501_required , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_required },
575 { &hf_h501_preferred , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_preferred },
576 { &hf_h501_sendToPEAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AliasAddress },
581 dissect_h501_UsageSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
582 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
583 ett_h501_UsageSpecification, UsageSpecification_sequence);
589 static const per_sequence_t ServiceRequest_sequence[] = {
590 { &hf_h501_elementIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_ElementIdentifier },
591 { &hf_h501_domainIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
592 { &hf_h501_securityMode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SecurityMode },
593 { &hf_h501_timeToLive , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_4294967295 },
594 { &hf_h501_usageSpec , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_UsageSpecification },
599 dissect_h501_ServiceRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
600 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
601 ett_h501_ServiceRequest, ServiceRequest_sequence);
609 dissect_h501_INTEGER_1_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
610 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
611 1U, 127U, NULL, FALSE);
617 static const per_sequence_t AlternatePE_sequence[] = {
618 { &hf_h501_contactAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
619 { &hf_h501_priority_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_127 },
620 { &hf_h501_elementIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_ElementIdentifier },
625 dissect_h501_AlternatePE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
626 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
627 ett_h501_AlternatePE, AlternatePE_sequence);
633 static const per_sequence_t SEQUENCE_OF_AlternatePE_sequence_of[1] = {
634 { &hf_h501_alternatePE_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_AlternatePE },
638 dissect_h501_SEQUENCE_OF_AlternatePE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
639 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
640 ett_h501_SEQUENCE_OF_AlternatePE, SEQUENCE_OF_AlternatePE_sequence_of);
648 dissect_h501_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
649 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
655 static const per_sequence_t AlternatePEInfo_sequence[] = {
656 { &hf_h501_alternatePE , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AlternatePE },
657 { &hf_h501_alternateIsPermanent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_BOOLEAN },
662 dissect_h501_AlternatePEInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
663 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
664 ett_h501_AlternatePEInfo, AlternatePEInfo_sequence);
670 static const per_sequence_t ServiceConfirmation_sequence[] = {
671 { &hf_h501_elementIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ElementIdentifier },
672 { &hf_h501_domainIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
673 { &hf_h501_alternates , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_AlternatePEInfo },
674 { &hf_h501_securityMode_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SecurityMode },
675 { &hf_h501_timeToLive , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_4294967295 },
676 { &hf_h501_usageSpec , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_UsageSpecification },
681 dissect_h501_ServiceConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
682 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
683 ett_h501_ServiceConfirmation, ServiceConfirmation_sequence);
689 static const value_string h501_ServiceRejectionReason_vals[] = {
690 { 0, "serviceUnavailable" },
691 { 1, "serviceRedirected" },
695 { 5, "unknownServiceID" },
696 { 6, "cannotSupportUsageSpec" },
697 { 7, "neededFeature" },
698 { 8, "genericDataReason" },
699 { 9, "usageUnavailable" },
700 { 10, "unknownUsageSendTo" },
704 static const per_choice_t ServiceRejectionReason_choice[] = {
705 { 0, &hf_h501_serviceUnavailable, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
706 { 1, &hf_h501_serviceRedirected, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
707 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
708 { 3, &hf_h501_continue , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
709 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
710 { 5, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
711 { 6, &hf_h501_cannotSupportUsageSpec, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
712 { 7, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
713 { 8, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
714 { 9, &hf_h501_usageUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
715 { 10, &hf_h501_unknownUsageSendTo, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
720 dissect_h501_ServiceRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
721 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
722 ett_h501_ServiceRejectionReason, ServiceRejectionReason_choice,
729 static const per_sequence_t ServiceRejection_sequence[] = {
730 { &hf_h501_reason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ServiceRejectionReason },
731 { &hf_h501_alternates , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_AlternatePEInfo },
736 dissect_h501_ServiceRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
737 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
738 ett_h501_ServiceRejection, ServiceRejection_sequence);
744 static const value_string h501_ServiceReleaseReason_vals[] = {
745 { 0, "outOfService" },
746 { 1, "maintenance" },
752 static const per_choice_t ServiceReleaseReason_choice[] = {
753 { 0, &hf_h501_outOfService , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
754 { 1, &hf_h501_maintenance , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
755 { 2, &hf_h501_terminated , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
756 { 3, &hf_h501_expired , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
761 dissect_h501_ServiceReleaseReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
762 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
763 ett_h501_ServiceReleaseReason, ServiceReleaseReason_choice,
770 static const per_sequence_t ServiceRelease_sequence[] = {
771 { &hf_h501_reason_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ServiceReleaseReason },
772 { &hf_h501_alternates , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_AlternatePEInfo },
777 dissect_h501_ServiceRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
778 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
779 ett_h501_ServiceRelease, ServiceRelease_sequence);
787 dissect_h501_DescriptorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
788 offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
794 static const per_sequence_t SEQUENCE_OF_DescriptorID_sequence_of[1] = {
795 { &hf_h501_descriptorID_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorID },
799 dissect_h501_SEQUENCE_OF_DescriptorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
800 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
801 ett_h501_SEQUENCE_OF_DescriptorID, SEQUENCE_OF_DescriptorID_sequence_of);
807 static const per_sequence_t DescriptorRequest_sequence[] = {
808 { &hf_h501_descriptorID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_DescriptorID },
813 dissect_h501_DescriptorRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
814 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
815 ett_h501_DescriptorRequest, DescriptorRequest_sequence);
823 dissect_h501_GlobalTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
824 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
831 static const per_sequence_t DescriptorInfo_sequence[] = {
832 { &hf_h501_descriptorID_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorID },
833 { &hf_h501_lastChanged , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_GlobalTimeStamp },
838 dissect_h501_DescriptorInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
839 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
840 ett_h501_DescriptorInfo, DescriptorInfo_sequence);
846 static const per_sequence_t T_range_sequence[] = {
847 { &hf_h501_startOfRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
848 { &hf_h501_endOfRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
853 dissect_h501_T_range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
854 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
855 ett_h501_T_range, T_range_sequence);
861 static const value_string h501_Pattern_vals[] = {
868 static const per_choice_t Pattern_choice[] = {
869 { 0, &hf_h501_specific , ASN1_EXTENSION_ROOT , dissect_h225_AliasAddress },
870 { 1, &hf_h501_wildcard , ASN1_EXTENSION_ROOT , dissect_h225_AliasAddress },
871 { 2, &hf_h501_range , ASN1_EXTENSION_ROOT , dissect_h501_T_range },
876 dissect_h501_Pattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
877 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
878 ett_h501_Pattern, Pattern_choice,
885 static const per_sequence_t SEQUENCE_OF_Pattern_sequence_of[1] = {
886 { &hf_h501_pattern_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_Pattern },
890 dissect_h501_SEQUENCE_OF_Pattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
891 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
892 ett_h501_SEQUENCE_OF_Pattern, SEQUENCE_OF_Pattern_sequence_of);
898 static const value_string h501_T_messageType_vals[] = {
899 { 0, "sendAccessRequest" },
901 { 2, "nonExistent" },
905 static const per_choice_t T_messageType_choice[] = {
906 { 0, &hf_h501_sendAccessRequest, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
907 { 1, &hf_h501_sendSetup , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
908 { 2, &hf_h501_nonExistent , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
913 dissect_h501_T_messageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
914 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
915 ett_h501_T_messageType, T_messageType_choice,
924 dissect_h501_IA5String_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
925 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
934 dissect_h501_INTEGER_M127_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
935 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
936 -127, 127U, NULL, FALSE);
944 dissect_h501_IA5String_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
945 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
954 dissect_h501_INTEGER_0_4294967295(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
955 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
956 0U, 4294967295U, NULL, FALSE);
962 static const value_string h501_T_units_vals[] = {
972 static const per_choice_t T_units_choice[] = {
973 { 0, &hf_h501_seconds , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
974 { 1, &hf_h501_packets , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
975 { 2, &hf_h501_bytes , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
976 { 3, &hf_h501_initial , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
977 { 4, &hf_h501_minimum , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
978 { 5, &hf_h501_maximum , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
983 dissect_h501_T_units(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
984 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
985 ett_h501_T_units, T_units_choice,
992 static const per_sequence_t PriceElement_sequence[] = {
993 { &hf_h501_amount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_4294967295 },
994 { &hf_h501_quantum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_4294967295 },
995 { &hf_h501_units , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_units },
1000 dissect_h501_PriceElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1001 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1002 ett_h501_PriceElement, PriceElement_sequence);
1008 static const per_sequence_t SEQUENCE_OF_PriceElement_sequence_of[1] = {
1009 { &hf_h501_priceElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_PriceElement },
1013 dissect_h501_SEQUENCE_OF_PriceElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1014 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1015 ett_h501_SEQUENCE_OF_PriceElement, SEQUENCE_OF_PriceElement_sequence_of);
1023 dissect_h501_IA5String_SIZE_1_2048(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1024 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1031 static const per_sequence_t PriceInfoSpec_sequence[] = {
1032 { &hf_h501_currency , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_IA5String_SIZE_3 },
1033 { &hf_h501_currencyScale , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_M127_127 },
1034 { &hf_h501_validFrom , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_GlobalTimeStamp },
1035 { &hf_h501_validUntil , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_GlobalTimeStamp },
1036 { &hf_h501_hoursFrom , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_IA5String_SIZE_6 },
1037 { &hf_h501_hoursUntil , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_IA5String_SIZE_6 },
1038 { &hf_h501_priceElement , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_PriceElement },
1039 { &hf_h501_priceFormula , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_IA5String_SIZE_1_2048 },
1040 { NULL, 0, 0, NULL }
1044 dissect_h501_PriceInfoSpec(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1045 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1046 ett_h501_PriceInfoSpec, PriceInfoSpec_sequence);
1052 static const per_sequence_t SEQUENCE_OF_PriceInfoSpec_sequence_of[1] = {
1053 { &hf_h501_priceInfo_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_PriceInfoSpec },
1057 dissect_h501_SEQUENCE_OF_PriceInfoSpec(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1058 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1059 ett_h501_SEQUENCE_OF_PriceInfoSpec, SEQUENCE_OF_PriceInfoSpec_sequence_of);
1067 dissect_h501_INTEGER_0_127(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1068 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1069 0U, 127U, NULL, FALSE);
1075 static const value_string h501_AccessToken_vals[] = {
1077 { 1, "cryptoToken" },
1078 { 2, "genericData" },
1082 static const per_choice_t AccessToken_choice[] = {
1083 { 0, &hf_h501_token , ASN1_EXTENSION_ROOT , dissect_h235_ClearToken },
1084 { 1, &hf_h501_cryptoToken , ASN1_EXTENSION_ROOT , dissect_h225_CryptoH323Token },
1085 { 2, &hf_h501_genericData_01 , ASN1_NOT_EXTENSION_ROOT, dissect_h225_GenericData },
1086 { 0, NULL, 0, NULL }
1090 dissect_h501_AccessToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1091 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1092 ett_h501_AccessToken, AccessToken_choice,
1099 static const per_sequence_t SEQUENCE_OF_AccessToken_sequence_of[1] = {
1100 { &hf_h501_accessTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_AccessToken },
1104 dissect_h501_SEQUENCE_OF_AccessToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1105 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1106 ett_h501_SEQUENCE_OF_AccessToken, SEQUENCE_OF_AccessToken_sequence_of);
1112 static const per_sequence_t SEQUENCE_OF_CircuitIdentifier_sequence_of[1] = {
1113 { &hf_h501_supportedCircuits_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CircuitIdentifier },
1117 dissect_h501_SEQUENCE_OF_CircuitIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1118 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1119 ett_h501_SEQUENCE_OF_CircuitIdentifier, SEQUENCE_OF_CircuitIdentifier_sequence_of);
1125 static const per_sequence_t ContactInformation_sequence[] = {
1126 { &hf_h501_transportAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1127 { &hf_h501_priority , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_127 },
1128 { &hf_h501_transportQoS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportQOS },
1129 { &hf_h501_security_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SecurityMode },
1130 { &hf_h501_accessTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_AccessToken },
1131 { &hf_h501_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_BOOLEAN },
1132 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
1133 { &hf_h501_circuitID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
1134 { &hf_h501_supportedCircuits, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CircuitIdentifier },
1135 { NULL, 0, 0, NULL }
1139 dissect_h501_ContactInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1140 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1141 ett_h501_ContactInformation, ContactInformation_sequence);
1147 static const per_sequence_t SEQUENCE_OF_ContactInformation_sequence_of[1] = {
1148 { &hf_h501_contacts_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_ContactInformation },
1152 dissect_h501_SEQUENCE_OF_ContactInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1153 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1154 ett_h501_SEQUENCE_OF_ContactInformation, SEQUENCE_OF_ContactInformation_sequence_of);
1160 static const per_sequence_t RouteInformation_sequence[] = {
1161 { &hf_h501_messageType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_messageType },
1162 { &hf_h501_callSpecific , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_BOOLEAN },
1163 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
1164 { &hf_h501_priceInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_PriceInfoSpec },
1165 { &hf_h501_contacts , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_ContactInformation },
1166 { &hf_h501_type , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointType },
1167 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
1168 { &hf_h501_circuitID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
1169 { &hf_h501_supportedCircuits, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CircuitIdentifier },
1170 { NULL, 0, 0, NULL }
1174 dissect_h501_RouteInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1175 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1176 ett_h501_RouteInformation, RouteInformation_sequence);
1182 static const per_sequence_t SEQUENCE_OF_RouteInformation_sequence_of[1] = {
1183 { &hf_h501_routeInfo_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_RouteInformation },
1187 dissect_h501_SEQUENCE_OF_RouteInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1188 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1189 ett_h501_SEQUENCE_OF_RouteInformation, SEQUENCE_OF_RouteInformation_sequence_of);
1195 static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of[1] = {
1196 { &hf_h501_desiredProtocols_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_SupportedProtocols },
1200 dissect_h501_SEQUENCE_OF_SupportedProtocols(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1201 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1202 ett_h501_SEQUENCE_OF_SupportedProtocols, SEQUENCE_OF_SupportedProtocols_sequence_of);
1208 static const per_sequence_t AddressTemplate_sequence[] = {
1209 { &hf_h501_pattern , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_Pattern },
1210 { &hf_h501_routeInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_RouteInformation },
1211 { &hf_h501_timeToLive , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_4294967295 },
1212 { &hf_h501_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SupportedProtocols },
1213 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
1214 { NULL, 0, 0, NULL }
1218 dissect_h501_AddressTemplate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1219 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1220 ett_h501_AddressTemplate, AddressTemplate_sequence);
1226 static const per_sequence_t SEQUENCE_OF_AddressTemplate_sequence_of[1] = {
1227 { &hf_h501_templates_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_AddressTemplate },
1231 dissect_h501_SEQUENCE_OF_AddressTemplate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1232 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1233 ett_h501_SEQUENCE_OF_AddressTemplate, SEQUENCE_OF_AddressTemplate_sequence_of);
1239 static const per_sequence_t Descriptor_sequence[] = {
1240 { &hf_h501_descriptorInfo_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorInfo },
1241 { &hf_h501_templates , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AddressTemplate },
1242 { &hf_h501_gatekeeperID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
1243 { NULL, 0, 0, NULL }
1247 dissect_h501_Descriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1248 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1249 ett_h501_Descriptor, Descriptor_sequence);
1255 static const per_sequence_t SEQUENCE_OF_Descriptor_sequence_of[1] = {
1256 { &hf_h501_descriptor_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_Descriptor },
1260 dissect_h501_SEQUENCE_OF_Descriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1261 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1262 ett_h501_SEQUENCE_OF_Descriptor, SEQUENCE_OF_Descriptor_sequence_of);
1268 static const per_sequence_t DescriptorConfirmation_sequence[] = {
1269 { &hf_h501_descriptor , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_Descriptor },
1270 { NULL, 0, 0, NULL }
1274 dissect_h501_DescriptorConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1275 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1276 ett_h501_DescriptorConfirmation, DescriptorConfirmation_sequence);
1282 static const value_string h501_DescriptorRejectionReason_vals[] = {
1283 { 0, "packetSizeExceeded" },
1286 { 3, "hopCountExceeded" },
1287 { 4, "noServiceRelationship" },
1289 { 6, "neededFeature" },
1290 { 7, "genericDataReason" },
1291 { 8, "unknownServiceID" },
1295 static const per_choice_t DescriptorRejectionReason_choice[] = {
1296 { 0, &hf_h501_packetSizeExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1297 { 1, &hf_h501_illegalID , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1298 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1299 { 3, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1300 { 4, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1301 { 5, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1302 { 6, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1303 { 7, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1304 { 8, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1305 { 0, NULL, 0, NULL }
1309 dissect_h501_DescriptorRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1310 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1311 ett_h501_DescriptorRejectionReason, DescriptorRejectionReason_choice,
1318 static const per_sequence_t DescriptorRejection_sequence[] = {
1319 { &hf_h501_reason_02 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorRejectionReason },
1320 { &hf_h501_descriptorID_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_DescriptorID },
1321 { NULL, 0, 0, NULL }
1325 dissect_h501_DescriptorRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1326 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1327 ett_h501_DescriptorRejection, DescriptorRejection_sequence);
1333 static const per_sequence_t DescriptorIDRequest_sequence[] = {
1334 { NULL, 0, 0, NULL }
1338 dissect_h501_DescriptorIDRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1339 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1340 ett_h501_DescriptorIDRequest, DescriptorIDRequest_sequence);
1346 static const per_sequence_t SEQUENCE_OF_DescriptorInfo_sequence_of[1] = {
1347 { &hf_h501_descriptorInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorInfo },
1351 dissect_h501_SEQUENCE_OF_DescriptorInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1352 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1353 ett_h501_SEQUENCE_OF_DescriptorInfo, SEQUENCE_OF_DescriptorInfo_sequence_of);
1359 static const per_sequence_t DescriptorIDConfirmation_sequence[] = {
1360 { &hf_h501_descriptorInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_DescriptorInfo },
1361 { NULL, 0, 0, NULL }
1365 dissect_h501_DescriptorIDConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1366 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1367 ett_h501_DescriptorIDConfirmation, DescriptorIDConfirmation_sequence);
1373 static const value_string h501_DescriptorIDRejectionReason_vals[] = {
1374 { 0, "noDescriptors" },
1376 { 2, "hopCountExceeded" },
1377 { 3, "noServiceRelationship" },
1379 { 5, "neededFeature" },
1380 { 6, "genericDataReason" },
1381 { 7, "unknownServiceID" },
1385 static const per_choice_t DescriptorIDRejectionReason_choice[] = {
1386 { 0, &hf_h501_noDescriptors , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1387 { 1, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1388 { 2, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1389 { 3, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1390 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1391 { 5, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1392 { 6, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1393 { 7, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1394 { 0, NULL, 0, NULL }
1398 dissect_h501_DescriptorIDRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1399 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1400 ett_h501_DescriptorIDRejectionReason, DescriptorIDRejectionReason_choice,
1407 static const per_sequence_t DescriptorIDRejection_sequence[] = {
1408 { &hf_h501_reason_03 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorIDRejectionReason },
1409 { NULL, 0, 0, NULL }
1413 dissect_h501_DescriptorIDRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1414 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1415 ett_h501_DescriptorIDRejection, DescriptorIDRejection_sequence);
1421 static const value_string h501_T_descriptorInfo_vals[] = {
1422 { 0, "descriptorID" },
1423 { 1, "descriptor" },
1427 static const per_choice_t T_descriptorInfo_choice[] = {
1428 { 0, &hf_h501_descriptorID_01, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorID },
1429 { 1, &hf_h501_descriptor_01 , ASN1_EXTENSION_ROOT , dissect_h501_Descriptor },
1430 { 0, NULL, 0, NULL }
1434 dissect_h501_T_descriptorInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1435 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1436 ett_h501_T_descriptorInfo, T_descriptorInfo_choice,
1443 static const value_string h501_T_updateType_vals[] = {
1450 static const per_choice_t T_updateType_choice[] = {
1451 { 0, &hf_h501_added , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1452 { 1, &hf_h501_deleted , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1453 { 2, &hf_h501_changed , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1454 { 0, NULL, 0, NULL }
1458 dissect_h501_T_updateType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1459 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1460 ett_h501_T_updateType, T_updateType_choice,
1467 static const per_sequence_t UpdateInformation_sequence[] = {
1468 { &hf_h501_descriptorInfo_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_descriptorInfo },
1469 { &hf_h501_updateType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_updateType },
1470 { NULL, 0, 0, NULL }
1474 dissect_h501_UpdateInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1475 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1476 ett_h501_UpdateInformation, UpdateInformation_sequence);
1482 static const per_sequence_t SEQUENCE_OF_UpdateInformation_sequence_of[1] = {
1483 { &hf_h501_updateInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_UpdateInformation },
1487 dissect_h501_SEQUENCE_OF_UpdateInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1488 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1489 ett_h501_SEQUENCE_OF_UpdateInformation, SEQUENCE_OF_UpdateInformation_sequence_of);
1495 static const per_sequence_t DescriptorUpdate_sequence[] = {
1496 { &hf_h501_sender , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1497 { &hf_h501_updateInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_UpdateInformation },
1498 { NULL, 0, 0, NULL }
1502 dissect_h501_DescriptorUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1503 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1504 ett_h501_DescriptorUpdate, DescriptorUpdate_sequence);
1510 static const per_sequence_t DescriptorUpdateAck_sequence[] = {
1511 { NULL, 0, 0, NULL }
1515 dissect_h501_DescriptorUpdateAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1516 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1517 ett_h501_DescriptorUpdateAck, DescriptorUpdateAck_sequence);
1523 static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
1524 { &hf_h501_logicalAddresses_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1528 dissect_h501_SEQUENCE_OF_AliasAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1529 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1530 ett_h501_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
1536 static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of[1] = {
1537 { &hf_h501_cryptoTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CryptoH323Token },
1541 dissect_h501_SEQUENCE_OF_CryptoH323Token(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1542 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1543 ett_h501_SEQUENCE_OF_CryptoH323Token, SEQUENCE_OF_CryptoH323Token_sequence_of);
1549 static const per_sequence_t UserInformation_sequence[] = {
1550 { &hf_h501_userIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1551 { &hf_h501_userAuthenticator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CryptoH323Token },
1552 { NULL, 0, 0, NULL }
1556 dissect_h501_UserInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1557 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1558 ett_h501_UserInformation, UserInformation_sequence);
1566 dissect_h501_TimeZone(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1567 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1568 -43200, 43200U, NULL, FALSE);
1574 static const per_sequence_t PartyInformation_sequence[] = {
1575 { &hf_h501_logicalAddresses, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AliasAddress },
1576 { &hf_h501_domainIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
1577 { &hf_h501_transportAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
1578 { &hf_h501_endpointType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointType },
1579 { &hf_h501_userInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UserInformation },
1580 { &hf_h501_timeZone , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_TimeZone },
1581 { NULL, 0, 0, NULL }
1585 dissect_h501_PartyInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1586 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1587 ett_h501_PartyInformation, PartyInformation_sequence);
1593 static const per_sequence_t CallInformation_sequence[] = {
1594 { &hf_h501_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1595 { &hf_h501_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
1596 { &hf_h501_circuitID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
1597 { NULL, 0, 0, NULL }
1601 dissect_h501_CallInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1602 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1603 ett_h501_CallInformation, CallInformation_sequence);
1609 static const per_sequence_t AccessRequest_sequence[] = {
1610 { &hf_h501_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_PartyInformation },
1611 { &hf_h501_sourceInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
1612 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_CallInformation },
1613 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
1614 { &hf_h501_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SupportedProtocols },
1615 { NULL, 0, 0, NULL }
1619 dissect_h501_AccessRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1620 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1621 ett_h501_AccessRequest, AccessRequest_sequence);
1627 static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of[1] = {
1628 { &hf_h501_serviceControl_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession },
1632 dissect_h501_SEQUENCE_OF_ServiceControlSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1633 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1634 ett_h501_SEQUENCE_OF_ServiceControlSession, SEQUENCE_OF_ServiceControlSession_sequence_of);
1640 static const per_sequence_t AccessConfirmation_sequence[] = {
1641 { &hf_h501_templates , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AddressTemplate },
1642 { &hf_h501_partialResponse, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_BOOLEAN },
1643 { &hf_h501_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SupportedProtocols },
1644 { &hf_h501_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ServiceControlSession },
1645 { NULL, 0, 0, NULL }
1649 dissect_h501_AccessConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1650 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1651 ett_h501_AccessConfirmation, AccessConfirmation_sequence);
1657 static const value_string h501_AccessRejectionReason_vals[] = {
1659 { 1, "packetSizeExceeded" },
1661 { 3, "hopCountExceeded" },
1662 { 4, "needCallInformation" },
1663 { 5, "noServiceRelationship" },
1665 { 7, "neededFeature" },
1666 { 8, "genericDataReason" },
1667 { 9, "destinationUnavailable" },
1668 { 10, "aliasesInconsistent" },
1669 { 11, "resourceUnavailable" },
1670 { 12, "incompleteAddress" },
1671 { 13, "unknownServiceID" },
1672 { 14, "usageUnavailable" },
1673 { 15, "cannotSupportUsageSpec" },
1674 { 16, "unknownUsageSendTo" },
1678 static const per_choice_t AccessRejectionReason_choice[] = {
1679 { 0, &hf_h501_noMatch , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1680 { 1, &hf_h501_packetSizeExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1681 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1682 { 3, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1683 { 4, &hf_h501_needCallInformation, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1684 { 5, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1685 { 6, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1686 { 7, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1687 { 8, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1688 { 9, &hf_h501_destinationUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1689 { 10, &hf_h501_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1690 { 11, &hf_h501_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1691 { 12, &hf_h501_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1692 { 13, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1693 { 14, &hf_h501_usageUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1694 { 15, &hf_h501_cannotSupportUsageSpec, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1695 { 16, &hf_h501_unknownUsageSendTo, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1696 { 0, NULL, 0, NULL }
1700 dissect_h501_AccessRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1701 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1702 ett_h501_AccessRejectionReason, AccessRejectionReason_choice,
1709 static const per_sequence_t AccessRejection_sequence[] = {
1710 { &hf_h501_reason_04 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_AccessRejectionReason },
1711 { &hf_h501_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ServiceControlSession },
1712 { NULL, 0, 0, NULL }
1716 dissect_h501_AccessRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1717 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1718 ett_h501_AccessRejection, AccessRejection_sequence);
1724 static const per_sequence_t RequestInProgress_sequence[] = {
1725 { &hf_h501_delay , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_65535 },
1726 { &hf_h501_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ServiceControlSession },
1727 { NULL, 0, 0, NULL }
1731 dissect_h501_RequestInProgress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1732 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1733 ett_h501_RequestInProgress, RequestInProgress_sequence);
1739 static const per_sequence_t NonStandardRequest_sequence[] = {
1740 { NULL, 0, 0, NULL }
1744 dissect_h501_NonStandardRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1745 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1746 ett_h501_NonStandardRequest, NonStandardRequest_sequence);
1752 static const per_sequence_t NonStandardConfirmation_sequence[] = {
1753 { NULL, 0, 0, NULL }
1757 dissect_h501_NonStandardConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1758 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1759 ett_h501_NonStandardConfirmation, NonStandardConfirmation_sequence);
1765 static const value_string h501_NonStandardRejectionReason_vals[] = {
1766 { 0, "notSupported" },
1767 { 1, "noServiceRelationship" },
1769 { 3, "neededFeature" },
1770 { 4, "genericDataReason" },
1771 { 5, "unknownServiceID" },
1775 static const per_choice_t NonStandardRejectionReason_choice[] = {
1776 { 0, &hf_h501_notSupported , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1777 { 1, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1778 { 2, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1779 { 3, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1780 { 4, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1781 { 5, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1782 { 0, NULL, 0, NULL }
1786 dissect_h501_NonStandardRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1787 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1788 ett_h501_NonStandardRejectionReason, NonStandardRejectionReason_choice,
1795 static const per_sequence_t NonStandardRejection_sequence[] = {
1796 { &hf_h501_reason_08 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_NonStandardRejectionReason },
1797 { NULL, 0, 0, NULL }
1801 dissect_h501_NonStandardRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1802 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1803 ett_h501_NonStandardRejection, NonStandardRejection_sequence);
1811 dissect_h501_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1812 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1813 NO_BOUND, NO_BOUND, FALSE, NULL);
1819 static const value_string h501_UnknownMessageReason_vals[] = {
1820 { 0, "notUnderstood" },
1825 static const per_choice_t UnknownMessageReason_choice[] = {
1826 { 0, &hf_h501_notUnderstood , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1827 { 1, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1828 { 0, NULL, 0, NULL }
1832 dissect_h501_UnknownMessageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1833 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1834 ett_h501_UnknownMessageReason, UnknownMessageReason_choice,
1841 static const per_sequence_t UnknownMessageResponse_sequence[] = {
1842 { &hf_h501_unknownMessage , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_OCTET_STRING },
1843 { &hf_h501_reason_09 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UnknownMessageReason },
1844 { NULL, 0, 0, NULL }
1848 dissect_h501_UnknownMessageResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1849 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1850 ett_h501_UnknownMessageResponse, UnknownMessageResponse_sequence);
1856 static const per_sequence_t UsageRequest_sequence[] = {
1857 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_CallInformation },
1858 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageSpecification },
1859 { NULL, 0, 0, NULL }
1863 dissect_h501_UsageRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1864 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1865 ett_h501_UsageRequest, UsageRequest_sequence);
1871 static const per_sequence_t UsageConfirmation_sequence[] = {
1872 { NULL, 0, 0, NULL }
1876 dissect_h501_UsageConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1877 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1878 ett_h501_UsageConfirmation, UsageConfirmation_sequence);
1884 static const value_string h501_Role_vals[] = {
1885 { 0, "originator" },
1886 { 1, "destination" },
1887 { 2, "nonStandardData" },
1891 static const per_choice_t Role_choice[] = {
1892 { 0, &hf_h501_originator , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1893 { 1, &hf_h501_destination , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1894 { 2, &hf_h501_nonStandardData, ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
1895 { 0, NULL, 0, NULL }
1899 dissect_h501_Role(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1900 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1901 ett_h501_Role, Role_choice,
1908 static const value_string h501_UsageCallStatus_vals[] = {
1909 { 0, "preConnect" },
1910 { 1, "callInProgress" },
1912 { 3, "registrationLost" },
1916 static const per_choice_t UsageCallStatus_choice[] = {
1917 { 0, &hf_h501_preConnect , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1918 { 1, &hf_h501_callInProgress , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1919 { 2, &hf_h501_callEnded , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1920 { 3, &hf_h501_registrationLost, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1921 { 0, NULL, 0, NULL }
1925 dissect_h501_UsageCallStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1926 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1927 ett_h501_UsageCallStatus, UsageCallStatus_choice,
1934 static const per_sequence_t TerminationCause_sequence[] = {
1935 { &hf_h501_releaseCompleteReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ReleaseCompleteReason },
1936 { &hf_h501_causeIE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_65535 },
1937 { &hf_h501_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1938 { NULL, 0, 0, NULL }
1942 dissect_h501_TerminationCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1943 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1944 ett_h501_TerminationCause, TerminationCause_sequence);
1950 static const per_sequence_t UsageField_sequence[] = {
1951 { &hf_h501_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
1952 { &hf_h501_value , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_OCTET_STRING },
1953 { NULL, 0, 0, NULL }
1957 dissect_h501_UsageField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1958 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1959 ett_h501_UsageField, UsageField_sequence);
1965 static const per_sequence_t SEQUENCE_OF_UsageField_sequence_of[1] = {
1966 { &hf_h501_usageFields_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_UsageField },
1970 dissect_h501_SEQUENCE_OF_UsageField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1971 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1972 ett_h501_SEQUENCE_OF_UsageField, SEQUENCE_OF_UsageField_sequence_of);
1978 static const per_sequence_t UsageIndication_sequence[] = {
1979 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_CallInformation },
1980 { &hf_h501_accessTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_AccessToken },
1981 { &hf_h501_senderRole , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_Role },
1982 { &hf_h501_usageCallStatus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageCallStatus },
1983 { &hf_h501_srcInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
1984 { &hf_h501_destAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_PartyInformation },
1985 { &hf_h501_startTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
1986 { &hf_h501_endTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
1987 { &hf_h501_terminationCause, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_TerminationCause },
1988 { &hf_h501_usageFields , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_UsageField },
1989 { NULL, 0, 0, NULL }
1993 dissect_h501_UsageIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1994 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1995 ett_h501_UsageIndication, UsageIndication_sequence);
2001 static const per_sequence_t UsageIndicationConfirmation_sequence[] = {
2002 { NULL, 0, 0, NULL }
2006 dissect_h501_UsageIndicationConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2008 ett_h501_UsageIndicationConfirmation, UsageIndicationConfirmation_sequence);
2014 static const value_string h501_UsageIndicationRejectionReason_vals[] = {
2015 { 0, "unknownCall" },
2016 { 1, "incomplete" },
2018 { 3, "noServiceRelationship" },
2020 { 5, "neededFeature" },
2021 { 6, "genericDataReason" },
2022 { 7, "unknownServiceID" },
2026 static const per_choice_t UsageIndicationRejectionReason_choice[] = {
2027 { 0, &hf_h501_unknownCall , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2028 { 1, &hf_h501_incomplete , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2029 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2030 { 3, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2031 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2032 { 5, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2033 { 6, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2034 { 7, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2035 { 0, NULL, 0, NULL }
2039 dissect_h501_UsageIndicationRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2040 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2041 ett_h501_UsageIndicationRejectionReason, UsageIndicationRejectionReason_choice,
2048 static const per_sequence_t UsageIndicationRejection_sequence[] = {
2049 { &hf_h501_reason_06 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageIndicationRejectionReason },
2050 { NULL, 0, 0, NULL }
2054 dissect_h501_UsageIndicationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2055 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2056 ett_h501_UsageIndicationRejection, UsageIndicationRejection_sequence);
2062 static const value_string h501_UsageRejectReason_vals[] = {
2063 { 0, "invalidCall" },
2064 { 1, "unavailable" },
2066 { 3, "noServiceRelationship" },
2068 { 5, "neededFeature" },
2069 { 6, "genericDataReason" },
2070 { 7, "unknownServiceID" },
2074 static const per_choice_t UsageRejectReason_choice[] = {
2075 { 0, &hf_h501_invalidCall , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2076 { 1, &hf_h501_unavailable , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2077 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2078 { 3, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2079 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2080 { 5, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2081 { 6, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2082 { 7, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2083 { 0, NULL, 0, NULL }
2087 dissect_h501_UsageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2088 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2089 ett_h501_UsageRejectReason, UsageRejectReason_choice,
2096 static const per_sequence_t UsageRejection_sequence[] = {
2097 { &hf_h501_reason_05 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageRejectReason },
2098 { NULL, 0, 0, NULL }
2102 dissect_h501_UsageRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2103 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2104 ett_h501_UsageRejection, UsageRejection_sequence);
2110 static const per_sequence_t ValidationRequest_sequence[] = {
2111 { &hf_h501_accessToken , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_AccessToken },
2112 { &hf_h501_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
2113 { &hf_h501_sourceInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
2114 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_CallInformation },
2115 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
2116 { NULL, 0, 0, NULL }
2120 dissect_h501_ValidationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2121 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2122 ett_h501_ValidationRequest, ValidationRequest_sequence);
2128 static const per_sequence_t ValidationConfirmation_sequence[] = {
2129 { &hf_h501_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
2130 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
2131 { NULL, 0, 0, NULL }
2135 dissect_h501_ValidationConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2136 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2137 ett_h501_ValidationConfirmation, ValidationConfirmation_sequence);
2143 static const value_string h501_ValidationRejectionReason_vals[] = {
2144 { 0, "tokenNotValid" },
2146 { 2, "hopCountExceeded" },
2147 { 3, "missingSourceInfo" },
2148 { 4, "missingDestInfo" },
2149 { 5, "noServiceRelationship" },
2151 { 7, "neededFeature" },
2152 { 8, "genericDataReason" },
2153 { 9, "unknownServiceID" },
2157 static const per_choice_t ValidationRejectionReason_choice[] = {
2158 { 0, &hf_h501_tokenNotValid , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2159 { 1, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2160 { 2, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2161 { 3, &hf_h501_missingSourceInfo, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2162 { 4, &hf_h501_missingDestInfo, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2163 { 5, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2164 { 6, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2165 { 7, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2166 { 8, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2167 { 9, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2168 { 0, NULL, 0, NULL }
2172 dissect_h501_ValidationRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2173 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2174 ett_h501_ValidationRejectionReason, ValidationRejectionReason_choice,
2181 static const per_sequence_t ValidationRejection_sequence[] = {
2182 { &hf_h501_reason_07 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ValidationRejectionReason },
2183 { NULL, 0, 0, NULL }
2187 dissect_h501_ValidationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2188 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2189 ett_h501_ValidationRejection, ValidationRejection_sequence);
2197 dissect_h501_ApplicationMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2198 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2199 NO_BOUND, NO_BOUND, FALSE, NULL);
2205 static const per_sequence_t AuthenticationRequest_sequence[] = {
2206 { &hf_h501_applicationMessage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ApplicationMessage },
2207 { NULL, 0, 0, NULL }
2211 dissect_h501_AuthenticationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2212 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2213 ett_h501_AuthenticationRequest, AuthenticationRequest_sequence);
2219 static const per_sequence_t AuthenticationConfirmation_sequence[] = {
2220 { NULL, 0, 0, NULL }
2224 dissect_h501_AuthenticationConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2225 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2226 ett_h501_AuthenticationConfirmation, AuthenticationConfirmation_sequence);
2232 static const value_string h501_AuthenticationRejectionReason_vals[] = {
2234 { 1, "hopCountExceeded" },
2235 { 2, "noServiceRelationship" },
2237 { 4, "neededFeature" },
2238 { 5, "genericDataReason" },
2239 { 6, "unknownServiceID" },
2240 { 7, "securityWrongSyncTime" },
2241 { 8, "securityReplay" },
2242 { 9, "securityWrongGeneralID" },
2243 { 10, "securityWrongSendersID" },
2244 { 11, "securityIntegrityFailed" },
2245 { 12, "securityWrongOID" },
2249 static const per_choice_t AuthenticationRejectionReason_choice[] = {
2250 { 0, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2251 { 1, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2252 { 2, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2253 { 3, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2254 { 4, &hf_h501_neededFeature , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2255 { 5, &hf_h501_genericDataReason, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2256 { 6, &hf_h501_unknownServiceID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2257 { 7, &hf_h501_securityWrongSyncTime, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2258 { 8, &hf_h501_securityReplay , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2259 { 9, &hf_h501_securityWrongGeneralID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2260 { 10, &hf_h501_securityWrongSendersID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2261 { 11, &hf_h501_securityIntegrityFailed, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2262 { 12, &hf_h501_securityWrongOID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2263 { 0, NULL, 0, NULL }
2267 dissect_h501_AuthenticationRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2268 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2269 ett_h501_AuthenticationRejectionReason, AuthenticationRejectionReason_choice,
2276 static const per_sequence_t AuthenticationRejection_sequence[] = {
2277 { &hf_h501_reason_10 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_AuthenticationRejectionReason },
2278 { NULL, 0, 0, NULL }
2282 dissect_h501_AuthenticationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2283 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2284 ett_h501_AuthenticationRejection, AuthenticationRejection_sequence);
2290 static const value_string h501_MessageBody_vals[] = {
2291 { 0, "serviceRequest" },
2292 { 1, "serviceConfirmation" },
2293 { 2, "serviceRejection" },
2294 { 3, "serviceRelease" },
2295 { 4, "descriptorRequest" },
2296 { 5, "descriptorConfirmation" },
2297 { 6, "descriptorRejection" },
2298 { 7, "descriptorIDRequest" },
2299 { 8, "descriptorIDConfirmation" },
2300 { 9, "descriptorIDRejection" },
2301 { 10, "descriptorUpdate" },
2302 { 11, "descriptorUpdateAck" },
2303 { 12, "accessRequest" },
2304 { 13, "accessConfirmation" },
2305 { 14, "accessRejection" },
2306 { 15, "requestInProgress" },
2307 { 16, "nonStandardRequest" },
2308 { 17, "nonStandardConfirmation" },
2309 { 18, "nonStandardRejection" },
2310 { 19, "unknownMessageResponse" },
2311 { 20, "usageRequest" },
2312 { 21, "usageConfirmation" },
2313 { 22, "usageIndication" },
2314 { 23, "usageIndicationConfirmation" },
2315 { 24, "usageIndicationRejection" },
2316 { 25, "usageRejection" },
2317 { 26, "validationRequest" },
2318 { 27, "validationConfirmation" },
2319 { 28, "validationRejection" },
2320 { 29, "authenticationRequest" },
2321 { 30, "authenticationConfirmation" },
2322 { 31, "authenticationRejection" },
2326 static const per_choice_t MessageBody_choice[] = {
2327 { 0, &hf_h501_serviceRequest , ASN1_EXTENSION_ROOT , dissect_h501_ServiceRequest },
2328 { 1, &hf_h501_serviceConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_ServiceConfirmation },
2329 { 2, &hf_h501_serviceRejection, ASN1_EXTENSION_ROOT , dissect_h501_ServiceRejection },
2330 { 3, &hf_h501_serviceRelease , ASN1_EXTENSION_ROOT , dissect_h501_ServiceRelease },
2331 { 4, &hf_h501_descriptorRequest, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorRequest },
2332 { 5, &hf_h501_descriptorConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorConfirmation },
2333 { 6, &hf_h501_descriptorRejection, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorRejection },
2334 { 7, &hf_h501_descriptorIDRequest, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorIDRequest },
2335 { 8, &hf_h501_descriptorIDConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorIDConfirmation },
2336 { 9, &hf_h501_descriptorIDRejection, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorIDRejection },
2337 { 10, &hf_h501_descriptorUpdate, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorUpdate },
2338 { 11, &hf_h501_descriptorUpdateAck, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorUpdateAck },
2339 { 12, &hf_h501_accessRequest , ASN1_EXTENSION_ROOT , dissect_h501_AccessRequest },
2340 { 13, &hf_h501_accessConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_AccessConfirmation },
2341 { 14, &hf_h501_accessRejection, ASN1_EXTENSION_ROOT , dissect_h501_AccessRejection },
2342 { 15, &hf_h501_requestInProgress, ASN1_EXTENSION_ROOT , dissect_h501_RequestInProgress },
2343 { 16, &hf_h501_nonStandardRequest, ASN1_EXTENSION_ROOT , dissect_h501_NonStandardRequest },
2344 { 17, &hf_h501_nonStandardConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_NonStandardConfirmation },
2345 { 18, &hf_h501_nonStandardRejection, ASN1_EXTENSION_ROOT , dissect_h501_NonStandardRejection },
2346 { 19, &hf_h501_unknownMessageResponse, ASN1_EXTENSION_ROOT , dissect_h501_UnknownMessageResponse },
2347 { 20, &hf_h501_usageRequest , ASN1_EXTENSION_ROOT , dissect_h501_UsageRequest },
2348 { 21, &hf_h501_usageConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_UsageConfirmation },
2349 { 22, &hf_h501_usageIndication, ASN1_EXTENSION_ROOT , dissect_h501_UsageIndication },
2350 { 23, &hf_h501_usageIndicationConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_UsageIndicationConfirmation },
2351 { 24, &hf_h501_usageIndicationRejection, ASN1_EXTENSION_ROOT , dissect_h501_UsageIndicationRejection },
2352 { 25, &hf_h501_usageRejection , ASN1_EXTENSION_ROOT , dissect_h501_UsageRejection },
2353 { 26, &hf_h501_validationRequest, ASN1_EXTENSION_ROOT , dissect_h501_ValidationRequest },
2354 { 27, &hf_h501_validationConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_ValidationConfirmation },
2355 { 28, &hf_h501_validationRejection, ASN1_EXTENSION_ROOT , dissect_h501_ValidationRejection },
2356 { 29, &hf_h501_authenticationRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h501_AuthenticationRequest },
2357 { 30, &hf_h501_authenticationConfirmation, ASN1_NOT_EXTENSION_ROOT, dissect_h501_AuthenticationConfirmation },
2358 { 31, &hf_h501_authenticationRejection, ASN1_NOT_EXTENSION_ROOT, dissect_h501_AuthenticationRejection },
2359 { 0, NULL, 0, NULL }
2363 dissect_h501_MessageBody(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2365 gint32 msg_type = -1;
2366 const gchar *p = NULL;
2368 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2369 ett_h501_MessageBody, MessageBody_choice,
2373 p = match_strval(msg_type, VALS(h501_MessageBody_vals));
2374 if (p && check_col(actx->pinfo->cinfo, COL_INFO))
2375 col_set_str(actx->pinfo->cinfo, COL_INFO, p);
2383 dissect_h501_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2384 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2385 0U, 65535U, NULL, FALSE);
2393 dissect_h501_ProtocolVersion(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2394 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2402 dissect_h501_INTEGER_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2403 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2404 1U, 255U, NULL, FALSE);
2410 static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of[1] = {
2411 { &hf_h501_replyAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
2415 dissect_h501_SEQUENCE_OF_TransportAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2416 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2417 ett_h501_SEQUENCE_OF_TransportAddress, SEQUENCE_OF_TransportAddress_sequence_of);
2423 static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of[1] = {
2424 { &hf_h501_tokens_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
2428 dissect_h501_SEQUENCE_OF_ClearToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2429 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2430 ett_h501_SEQUENCE_OF_ClearToken, SEQUENCE_OF_ClearToken_sequence_of);
2436 static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
2437 { &hf_h501_nonStandard_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
2441 dissect_h501_SEQUENCE_OF_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2442 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2443 ett_h501_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
2451 dissect_h501_ServiceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2452 offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
2458 static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
2459 { &hf_h501_genericData_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
2463 dissect_h501_SEQUENCE_OF_GenericData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2464 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2465 ett_h501_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
2471 static const per_sequence_t MessageCommonInfo_sequence[] = {
2472 { &hf_h501_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_65535 },
2473 { &hf_h501_annexGversion , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ProtocolVersion },
2474 { &hf_h501_hopCount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_255 },
2475 { &hf_h501_replyAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_TransportAddress },
2476 { &hf_h501_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
2477 { &hf_h501_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ClearToken },
2478 { &hf_h501_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CryptoH323Token },
2479 { &hf_h501_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_NonStandardParameter },
2480 { &hf_h501_serviceID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_ServiceID },
2481 { &hf_h501_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_GenericData },
2482 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
2483 { &hf_h501_version , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h501_ProtocolVersion },
2484 { NULL, 0, 0, NULL }
2488 dissect_h501_MessageCommonInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2489 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2490 ett_h501_MessageCommonInfo, MessageCommonInfo_sequence);
2496 static const per_sequence_t Message_sequence[] = {
2497 { &hf_h501_body , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_MessageBody },
2498 { &hf_h501_common , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_MessageCommonInfo },
2499 { NULL, 0, 0, NULL }
2503 dissect_h501_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2504 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2505 ett_h501_Message, Message_sequence);
2512 static int dissect_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
2514 asn1_ctx_t asn1_ctx;
2515 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2516 offset = dissect_h501_Message(tvb, offset, &asn1_ctx, tree, hf_h501_Message_PDU);
2517 offset += 7; offset >>= 3;
2522 /*--- End of included file: packet-h501-fn.c ---*/
2523 #line 67 "packet-h501-template.c"
2526 dissect_h501_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2528 proto_item *ti = NULL;
2529 proto_tree *h501_tree = NULL;
2531 if (check_col(pinfo->cinfo, COL_PROTOCOL))
2532 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
2534 ti = proto_tree_add_item(tree, proto_h501, tvb, 0, -1, FALSE);
2535 h501_tree = proto_item_add_subtree(ti, ett_h501);
2537 return dissect_Message_PDU(tvb, pinfo, h501_tree);
2541 dissect_h501_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2543 dissect_tpkt_encap(tvb, pinfo, tree, FALSE, h501_pdu_handle);
2544 return tvb_length(tvb);
2548 dissect_h501_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
2550 dissect_tpkt_encap(tvb, pinfo, tree, h501_desegment_tcp, h501_pdu_handle);
2551 return tvb_length(tvb);
2554 /*--- proto_register_h501 ----------------------------------------------*/
2555 void proto_register_h501(void) {
2556 module_t *h501_module;
2558 /* List of fields */
2559 static hf_register_info hf[] = {
2561 /*--- Included file: packet-h501-hfarr.c ---*/
2562 #line 1 "packet-h501-hfarr.c"
2563 { &hf_h501_Message_PDU,
2564 { "Message", "h501.Message",
2565 FT_NONE, BASE_NONE, NULL, 0,
2566 "h501.Message", HFILL }},
2568 { "body", "h501.body",
2569 FT_UINT32, BASE_DEC, VALS(h501_MessageBody_vals), 0,
2570 "h501.MessageBody", HFILL }},
2572 { "common", "h501.common",
2573 FT_NONE, BASE_NONE, NULL, 0,
2574 "h501.MessageCommonInfo", HFILL }},
2575 { &hf_h501_serviceRequest,
2576 { "serviceRequest", "h501.serviceRequest",
2577 FT_NONE, BASE_NONE, NULL, 0,
2578 "h501.ServiceRequest", HFILL }},
2579 { &hf_h501_serviceConfirmation,
2580 { "serviceConfirmation", "h501.serviceConfirmation",
2581 FT_NONE, BASE_NONE, NULL, 0,
2582 "h501.ServiceConfirmation", HFILL }},
2583 { &hf_h501_serviceRejection,
2584 { "serviceRejection", "h501.serviceRejection",
2585 FT_NONE, BASE_NONE, NULL, 0,
2586 "h501.ServiceRejection", HFILL }},
2587 { &hf_h501_serviceRelease,
2588 { "serviceRelease", "h501.serviceRelease",
2589 FT_NONE, BASE_NONE, NULL, 0,
2590 "h501.ServiceRelease", HFILL }},
2591 { &hf_h501_descriptorRequest,
2592 { "descriptorRequest", "h501.descriptorRequest",
2593 FT_NONE, BASE_NONE, NULL, 0,
2594 "h501.DescriptorRequest", HFILL }},
2595 { &hf_h501_descriptorConfirmation,
2596 { "descriptorConfirmation", "h501.descriptorConfirmation",
2597 FT_NONE, BASE_NONE, NULL, 0,
2598 "h501.DescriptorConfirmation", HFILL }},
2599 { &hf_h501_descriptorRejection,
2600 { "descriptorRejection", "h501.descriptorRejection",
2601 FT_NONE, BASE_NONE, NULL, 0,
2602 "h501.DescriptorRejection", HFILL }},
2603 { &hf_h501_descriptorIDRequest,
2604 { "descriptorIDRequest", "h501.descriptorIDRequest",
2605 FT_NONE, BASE_NONE, NULL, 0,
2606 "h501.DescriptorIDRequest", HFILL }},
2607 { &hf_h501_descriptorIDConfirmation,
2608 { "descriptorIDConfirmation", "h501.descriptorIDConfirmation",
2609 FT_NONE, BASE_NONE, NULL, 0,
2610 "h501.DescriptorIDConfirmation", HFILL }},
2611 { &hf_h501_descriptorIDRejection,
2612 { "descriptorIDRejection", "h501.descriptorIDRejection",
2613 FT_NONE, BASE_NONE, NULL, 0,
2614 "h501.DescriptorIDRejection", HFILL }},
2615 { &hf_h501_descriptorUpdate,
2616 { "descriptorUpdate", "h501.descriptorUpdate",
2617 FT_NONE, BASE_NONE, NULL, 0,
2618 "h501.DescriptorUpdate", HFILL }},
2619 { &hf_h501_descriptorUpdateAck,
2620 { "descriptorUpdateAck", "h501.descriptorUpdateAck",
2621 FT_NONE, BASE_NONE, NULL, 0,
2622 "h501.DescriptorUpdateAck", HFILL }},
2623 { &hf_h501_accessRequest,
2624 { "accessRequest", "h501.accessRequest",
2625 FT_NONE, BASE_NONE, NULL, 0,
2626 "h501.AccessRequest", HFILL }},
2627 { &hf_h501_accessConfirmation,
2628 { "accessConfirmation", "h501.accessConfirmation",
2629 FT_NONE, BASE_NONE, NULL, 0,
2630 "h501.AccessConfirmation", HFILL }},
2631 { &hf_h501_accessRejection,
2632 { "accessRejection", "h501.accessRejection",
2633 FT_NONE, BASE_NONE, NULL, 0,
2634 "h501.AccessRejection", HFILL }},
2635 { &hf_h501_requestInProgress,
2636 { "requestInProgress", "h501.requestInProgress",
2637 FT_NONE, BASE_NONE, NULL, 0,
2638 "h501.RequestInProgress", HFILL }},
2639 { &hf_h501_nonStandardRequest,
2640 { "nonStandardRequest", "h501.nonStandardRequest",
2641 FT_NONE, BASE_NONE, NULL, 0,
2642 "h501.NonStandardRequest", HFILL }},
2643 { &hf_h501_nonStandardConfirmation,
2644 { "nonStandardConfirmation", "h501.nonStandardConfirmation",
2645 FT_NONE, BASE_NONE, NULL, 0,
2646 "h501.NonStandardConfirmation", HFILL }},
2647 { &hf_h501_nonStandardRejection,
2648 { "nonStandardRejection", "h501.nonStandardRejection",
2649 FT_NONE, BASE_NONE, NULL, 0,
2650 "h501.NonStandardRejection", HFILL }},
2651 { &hf_h501_unknownMessageResponse,
2652 { "unknownMessageResponse", "h501.unknownMessageResponse",
2653 FT_NONE, BASE_NONE, NULL, 0,
2654 "h501.UnknownMessageResponse", HFILL }},
2655 { &hf_h501_usageRequest,
2656 { "usageRequest", "h501.usageRequest",
2657 FT_NONE, BASE_NONE, NULL, 0,
2658 "h501.UsageRequest", HFILL }},
2659 { &hf_h501_usageConfirmation,
2660 { "usageConfirmation", "h501.usageConfirmation",
2661 FT_NONE, BASE_NONE, NULL, 0,
2662 "h501.UsageConfirmation", HFILL }},
2663 { &hf_h501_usageIndication,
2664 { "usageIndication", "h501.usageIndication",
2665 FT_NONE, BASE_NONE, NULL, 0,
2666 "h501.UsageIndication", HFILL }},
2667 { &hf_h501_usageIndicationConfirmation,
2668 { "usageIndicationConfirmation", "h501.usageIndicationConfirmation",
2669 FT_NONE, BASE_NONE, NULL, 0,
2670 "h501.UsageIndicationConfirmation", HFILL }},
2671 { &hf_h501_usageIndicationRejection,
2672 { "usageIndicationRejection", "h501.usageIndicationRejection",
2673 FT_NONE, BASE_NONE, NULL, 0,
2674 "h501.UsageIndicationRejection", HFILL }},
2675 { &hf_h501_usageRejection,
2676 { "usageRejection", "h501.usageRejection",
2677 FT_NONE, BASE_NONE, NULL, 0,
2678 "h501.UsageRejection", HFILL }},
2679 { &hf_h501_validationRequest,
2680 { "validationRequest", "h501.validationRequest",
2681 FT_NONE, BASE_NONE, NULL, 0,
2682 "h501.ValidationRequest", HFILL }},
2683 { &hf_h501_validationConfirmation,
2684 { "validationConfirmation", "h501.validationConfirmation",
2685 FT_NONE, BASE_NONE, NULL, 0,
2686 "h501.ValidationConfirmation", HFILL }},
2687 { &hf_h501_validationRejection,
2688 { "validationRejection", "h501.validationRejection",
2689 FT_NONE, BASE_NONE, NULL, 0,
2690 "h501.ValidationRejection", HFILL }},
2691 { &hf_h501_authenticationRequest,
2692 { "authenticationRequest", "h501.authenticationRequest",
2693 FT_NONE, BASE_NONE, NULL, 0,
2694 "h501.AuthenticationRequest", HFILL }},
2695 { &hf_h501_authenticationConfirmation,
2696 { "authenticationConfirmation", "h501.authenticationConfirmation",
2697 FT_NONE, BASE_NONE, NULL, 0,
2698 "h501.AuthenticationConfirmation", HFILL }},
2699 { &hf_h501_authenticationRejection,
2700 { "authenticationRejection", "h501.authenticationRejection",
2701 FT_NONE, BASE_NONE, NULL, 0,
2702 "h501.AuthenticationRejection", HFILL }},
2703 { &hf_h501_sequenceNumber,
2704 { "sequenceNumber", "h501.sequenceNumber",
2705 FT_UINT32, BASE_DEC, NULL, 0,
2706 "h501.INTEGER_0_65535", HFILL }},
2707 { &hf_h501_annexGversion,
2708 { "annexGversion", "h501.annexGversion",
2709 FT_OID, BASE_NONE, NULL, 0,
2710 "h501.ProtocolVersion", HFILL }},
2711 { &hf_h501_hopCount,
2712 { "hopCount", "h501.hopCount",
2713 FT_UINT32, BASE_DEC, NULL, 0,
2714 "h501.INTEGER_1_255", HFILL }},
2715 { &hf_h501_replyAddress,
2716 { "replyAddress", "h501.replyAddress",
2717 FT_UINT32, BASE_DEC, NULL, 0,
2718 "h501.SEQUENCE_OF_TransportAddress", HFILL }},
2719 { &hf_h501_replyAddress_item,
2720 { "replyAddress", "h501.replyAddress_item",
2721 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
2722 "h225.TransportAddress", HFILL }},
2723 { &hf_h501_integrityCheckValue,
2724 { "integrityCheckValue", "h501.integrityCheckValue",
2725 FT_NONE, BASE_NONE, NULL, 0,
2726 "h225.ICV", HFILL }},
2728 { "tokens", "h501.tokens",
2729 FT_UINT32, BASE_DEC, NULL, 0,
2730 "h501.SEQUENCE_OF_ClearToken", HFILL }},
2731 { &hf_h501_tokens_item,
2732 { "tokens", "h501.tokens_item",
2733 FT_NONE, BASE_NONE, NULL, 0,
2734 "h235.ClearToken", HFILL }},
2735 { &hf_h501_cryptoTokens,
2736 { "cryptoTokens", "h501.cryptoTokens",
2737 FT_UINT32, BASE_DEC, NULL, 0,
2738 "h501.SEQUENCE_OF_CryptoH323Token", HFILL }},
2739 { &hf_h501_cryptoTokens_item,
2740 { "cryptoTokens", "h501.cryptoTokens_item",
2741 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
2742 "h225.CryptoH323Token", HFILL }},
2743 { &hf_h501_nonStandard,
2744 { "nonStandard", "h501.nonStandard",
2745 FT_UINT32, BASE_DEC, NULL, 0,
2746 "h501.SEQUENCE_OF_NonStandardParameter", HFILL }},
2747 { &hf_h501_nonStandard_item,
2748 { "nonStandard", "h501.nonStandard_item",
2749 FT_NONE, BASE_NONE, NULL, 0,
2750 "h225.NonStandardParameter", HFILL }},
2751 { &hf_h501_serviceID,
2752 { "serviceID", "h501.serviceID",
2753 FT_GUID, BASE_NONE, NULL, 0,
2754 "h501.ServiceID", HFILL }},
2755 { &hf_h501_genericData,
2756 { "genericData", "h501.genericData",
2757 FT_UINT32, BASE_DEC, NULL, 0,
2758 "h501.SEQUENCE_OF_GenericData", HFILL }},
2759 { &hf_h501_genericData_item,
2760 { "genericData", "h501.genericData_item",
2761 FT_NONE, BASE_NONE, NULL, 0,
2762 "h225.GenericData", HFILL }},
2763 { &hf_h501_featureSet,
2764 { "featureSet", "h501.featureSet",
2765 FT_NONE, BASE_NONE, NULL, 0,
2766 "h225.FeatureSet", HFILL }},
2768 { "version", "h501.version",
2769 FT_OID, BASE_NONE, NULL, 0,
2770 "h501.ProtocolVersion", HFILL }},
2771 { &hf_h501_elementIdentifier,
2772 { "elementIdentifier", "h501.elementIdentifier",
2773 FT_STRING, BASE_NONE, NULL, 0,
2774 "h501.ElementIdentifier", HFILL }},
2775 { &hf_h501_domainIdentifier,
2776 { "domainIdentifier", "h501.domainIdentifier",
2777 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2778 "h225.AliasAddress", HFILL }},
2779 { &hf_h501_securityMode,
2780 { "securityMode", "h501.securityMode",
2781 FT_UINT32, BASE_DEC, NULL, 0,
2782 "h501.SEQUENCE_OF_SecurityMode", HFILL }},
2783 { &hf_h501_securityMode_item,
2784 { "securityMode", "h501.securityMode_item",
2785 FT_NONE, BASE_NONE, NULL, 0,
2786 "h501.SecurityMode", HFILL }},
2787 { &hf_h501_timeToLive,
2788 { "timeToLive", "h501.timeToLive",
2789 FT_UINT32, BASE_DEC, NULL, 0,
2790 "h501.INTEGER_1_4294967295", HFILL }},
2791 { &hf_h501_usageSpec,
2792 { "usageSpec", "h501.usageSpec",
2793 FT_NONE, BASE_NONE, NULL, 0,
2794 "h501.UsageSpecification", HFILL }},
2795 { &hf_h501_authentication,
2796 { "authentication", "h501.authentication",
2797 FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
2798 "h235.AuthenticationMechanism", HFILL }},
2799 { &hf_h501_integrity,
2800 { "integrity", "h501.integrity",
2801 FT_UINT32, BASE_DEC, VALS(h225_IntegrityMechanism_vals), 0,
2802 "h225.IntegrityMechanism", HFILL }},
2803 { &hf_h501_algorithmOIDs,
2804 { "algorithmOIDs", "h501.algorithmOIDs",
2805 FT_UINT32, BASE_DEC, NULL, 0,
2806 "h501.T_algorithmOIDs", HFILL }},
2807 { &hf_h501_algorithmOIDs_item,
2808 { "algorithmOIDs", "h501.algorithmOIDs_item",
2809 FT_OID, BASE_NONE, NULL, 0,
2810 "h501.OBJECT_IDENTIFIER", HFILL }},
2811 { &hf_h501_alternates,
2812 { "alternates", "h501.alternates",
2813 FT_NONE, BASE_NONE, NULL, 0,
2814 "h501.AlternatePEInfo", HFILL }},
2815 { &hf_h501_securityMode_01,
2816 { "securityMode", "h501.securityMode",
2817 FT_NONE, BASE_NONE, NULL, 0,
2818 "h501.SecurityMode", HFILL }},
2820 { "reason", "h501.reason",
2821 FT_UINT32, BASE_DEC, VALS(h501_ServiceRejectionReason_vals), 0,
2822 "h501.ServiceRejectionReason", HFILL }},
2823 { &hf_h501_serviceUnavailable,
2824 { "serviceUnavailable", "h501.serviceUnavailable",
2825 FT_NONE, BASE_NONE, NULL, 0,
2826 "h501.NULL", HFILL }},
2827 { &hf_h501_serviceRedirected,
2828 { "serviceRedirected", "h501.serviceRedirected",
2829 FT_NONE, BASE_NONE, NULL, 0,
2830 "h501.NULL", HFILL }},
2831 { &hf_h501_security,
2832 { "security", "h501.security",
2833 FT_NONE, BASE_NONE, NULL, 0,
2834 "h501.NULL", HFILL }},
2835 { &hf_h501_continue,
2836 { "continue", "h501.continue",
2837 FT_NONE, BASE_NONE, NULL, 0,
2838 "h501.NULL", HFILL }},
2839 { &hf_h501_undefined,
2840 { "undefined", "h501.undefined",
2841 FT_NONE, BASE_NONE, NULL, 0,
2842 "h501.NULL", HFILL }},
2843 { &hf_h501_unknownServiceID,
2844 { "unknownServiceID", "h501.unknownServiceID",
2845 FT_NONE, BASE_NONE, NULL, 0,
2846 "h501.NULL", HFILL }},
2847 { &hf_h501_cannotSupportUsageSpec,
2848 { "cannotSupportUsageSpec", "h501.cannotSupportUsageSpec",
2849 FT_NONE, BASE_NONE, NULL, 0,
2850 "h501.NULL", HFILL }},
2851 { &hf_h501_neededFeature,
2852 { "neededFeature", "h501.neededFeature",
2853 FT_NONE, BASE_NONE, NULL, 0,
2854 "h501.NULL", HFILL }},
2855 { &hf_h501_genericDataReason,
2856 { "genericDataReason", "h501.genericDataReason",
2857 FT_NONE, BASE_NONE, NULL, 0,
2858 "h501.NULL", HFILL }},
2859 { &hf_h501_usageUnavailable,
2860 { "usageUnavailable", "h501.usageUnavailable",
2861 FT_NONE, BASE_NONE, NULL, 0,
2862 "h501.NULL", HFILL }},
2863 { &hf_h501_unknownUsageSendTo,
2864 { "unknownUsageSendTo", "h501.unknownUsageSendTo",
2865 FT_NONE, BASE_NONE, NULL, 0,
2866 "h501.NULL", HFILL }},
2867 { &hf_h501_reason_01,
2868 { "reason", "h501.reason",
2869 FT_UINT32, BASE_DEC, VALS(h501_ServiceReleaseReason_vals), 0,
2870 "h501.ServiceReleaseReason", HFILL }},
2871 { &hf_h501_outOfService,
2872 { "outOfService", "h501.outOfService",
2873 FT_NONE, BASE_NONE, NULL, 0,
2874 "h501.NULL", HFILL }},
2875 { &hf_h501_maintenance,
2876 { "maintenance", "h501.maintenance",
2877 FT_NONE, BASE_NONE, NULL, 0,
2878 "h501.NULL", HFILL }},
2879 { &hf_h501_terminated,
2880 { "terminated", "h501.terminated",
2881 FT_NONE, BASE_NONE, NULL, 0,
2882 "h501.NULL", HFILL }},
2884 { "expired", "h501.expired",
2885 FT_NONE, BASE_NONE, NULL, 0,
2886 "h501.NULL", HFILL }},
2887 { &hf_h501_descriptorID,
2888 { "descriptorID", "h501.descriptorID",
2889 FT_UINT32, BASE_DEC, NULL, 0,
2890 "h501.SEQUENCE_OF_DescriptorID", HFILL }},
2891 { &hf_h501_descriptorID_item,
2892 { "descriptorID", "h501.descriptorID_item",
2893 FT_GUID, BASE_NONE, NULL, 0,
2894 "h501.DescriptorID", HFILL }},
2895 { &hf_h501_descriptor,
2896 { "descriptor", "h501.descriptor",
2897 FT_UINT32, BASE_DEC, NULL, 0,
2898 "h501.SEQUENCE_OF_Descriptor", HFILL }},
2899 { &hf_h501_descriptor_item,
2900 { "descriptor", "h501.descriptor_item",
2901 FT_NONE, BASE_NONE, NULL, 0,
2902 "h501.Descriptor", HFILL }},
2903 { &hf_h501_reason_02,
2904 { "reason", "h501.reason",
2905 FT_UINT32, BASE_DEC, VALS(h501_DescriptorRejectionReason_vals), 0,
2906 "h501.DescriptorRejectionReason", HFILL }},
2907 { &hf_h501_descriptorID_01,
2908 { "descriptorID", "h501.descriptorID",
2909 FT_GUID, BASE_NONE, NULL, 0,
2910 "h501.DescriptorID", HFILL }},
2911 { &hf_h501_packetSizeExceeded,
2912 { "packetSizeExceeded", "h501.packetSizeExceeded",
2913 FT_NONE, BASE_NONE, NULL, 0,
2914 "h501.NULL", HFILL }},
2915 { &hf_h501_illegalID,
2916 { "illegalID", "h501.illegalID",
2917 FT_NONE, BASE_NONE, NULL, 0,
2918 "h501.NULL", HFILL }},
2919 { &hf_h501_hopCountExceeded,
2920 { "hopCountExceeded", "h501.hopCountExceeded",
2921 FT_NONE, BASE_NONE, NULL, 0,
2922 "h501.NULL", HFILL }},
2923 { &hf_h501_noServiceRelationship,
2924 { "noServiceRelationship", "h501.noServiceRelationship",
2925 FT_NONE, BASE_NONE, NULL, 0,
2926 "h501.NULL", HFILL }},
2927 { &hf_h501_descriptorInfo,
2928 { "descriptorInfo", "h501.descriptorInfo",
2929 FT_UINT32, BASE_DEC, NULL, 0,
2930 "h501.SEQUENCE_OF_DescriptorInfo", HFILL }},
2931 { &hf_h501_descriptorInfo_item,
2932 { "descriptorInfo", "h501.descriptorInfo_item",
2933 FT_NONE, BASE_NONE, NULL, 0,
2934 "h501.DescriptorInfo", HFILL }},
2935 { &hf_h501_reason_03,
2936 { "reason", "h501.reason",
2937 FT_UINT32, BASE_DEC, VALS(h501_DescriptorIDRejectionReason_vals), 0,
2938 "h501.DescriptorIDRejectionReason", HFILL }},
2939 { &hf_h501_noDescriptors,
2940 { "noDescriptors", "h501.noDescriptors",
2941 FT_NONE, BASE_NONE, NULL, 0,
2942 "h501.NULL", HFILL }},
2944 { "sender", "h501.sender",
2945 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2946 "h225.AliasAddress", HFILL }},
2947 { &hf_h501_updateInfo,
2948 { "updateInfo", "h501.updateInfo",
2949 FT_UINT32, BASE_DEC, NULL, 0,
2950 "h501.SEQUENCE_OF_UpdateInformation", HFILL }},
2951 { &hf_h501_updateInfo_item,
2952 { "updateInfo", "h501.updateInfo_item",
2953 FT_NONE, BASE_NONE, NULL, 0,
2954 "h501.UpdateInformation", HFILL }},
2955 { &hf_h501_descriptorInfo_01,
2956 { "descriptorInfo", "h501.descriptorInfo",
2957 FT_UINT32, BASE_DEC, VALS(h501_T_descriptorInfo_vals), 0,
2958 "h501.T_descriptorInfo", HFILL }},
2959 { &hf_h501_descriptor_01,
2960 { "descriptor", "h501.descriptor",
2961 FT_NONE, BASE_NONE, NULL, 0,
2962 "h501.Descriptor", HFILL }},
2963 { &hf_h501_updateType,
2964 { "updateType", "h501.updateType",
2965 FT_UINT32, BASE_DEC, VALS(h501_T_updateType_vals), 0,
2966 "h501.T_updateType", HFILL }},
2968 { "added", "h501.added",
2969 FT_NONE, BASE_NONE, NULL, 0,
2970 "h501.NULL", HFILL }},
2972 { "deleted", "h501.deleted",
2973 FT_NONE, BASE_NONE, NULL, 0,
2974 "h501.NULL", HFILL }},
2976 { "changed", "h501.changed",
2977 FT_NONE, BASE_NONE, NULL, 0,
2978 "h501.NULL", HFILL }},
2979 { &hf_h501_destinationInfo,
2980 { "destinationInfo", "h501.destinationInfo",
2981 FT_NONE, BASE_NONE, NULL, 0,
2982 "h501.PartyInformation", HFILL }},
2983 { &hf_h501_sourceInfo,
2984 { "sourceInfo", "h501.sourceInfo",
2985 FT_NONE, BASE_NONE, NULL, 0,
2986 "h501.PartyInformation", HFILL }},
2987 { &hf_h501_callInfo,
2988 { "callInfo", "h501.callInfo",
2989 FT_NONE, BASE_NONE, NULL, 0,
2990 "h501.CallInformation", HFILL }},
2991 { &hf_h501_desiredProtocols,
2992 { "desiredProtocols", "h501.desiredProtocols",
2993 FT_UINT32, BASE_DEC, NULL, 0,
2994 "h501.SEQUENCE_OF_SupportedProtocols", HFILL }},
2995 { &hf_h501_desiredProtocols_item,
2996 { "desiredProtocols", "h501.desiredProtocols_item",
2997 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
2998 "h225.SupportedProtocols", HFILL }},
2999 { &hf_h501_templates,
3000 { "templates", "h501.templates",
3001 FT_UINT32, BASE_DEC, NULL, 0,
3002 "h501.SEQUENCE_OF_AddressTemplate", HFILL }},
3003 { &hf_h501_templates_item,
3004 { "templates", "h501.templates_item",
3005 FT_NONE, BASE_NONE, NULL, 0,
3006 "h501.AddressTemplate", HFILL }},
3007 { &hf_h501_partialResponse,
3008 { "partialResponse", "h501.partialResponse",
3009 FT_BOOLEAN, 8, NULL, 0,
3010 "h501.BOOLEAN", HFILL }},
3011 { &hf_h501_supportedProtocols,
3012 { "supportedProtocols", "h501.supportedProtocols",
3013 FT_UINT32, BASE_DEC, NULL, 0,
3014 "h501.SEQUENCE_OF_SupportedProtocols", HFILL }},
3015 { &hf_h501_supportedProtocols_item,
3016 { "supportedProtocols", "h501.supportedProtocols_item",
3017 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
3018 "h225.SupportedProtocols", HFILL }},
3019 { &hf_h501_serviceControl,
3020 { "serviceControl", "h501.serviceControl",
3021 FT_UINT32, BASE_DEC, NULL, 0,
3022 "h501.SEQUENCE_OF_ServiceControlSession", HFILL }},
3023 { &hf_h501_serviceControl_item,
3024 { "serviceControl", "h501.serviceControl_item",
3025 FT_NONE, BASE_NONE, NULL, 0,
3026 "h225.ServiceControlSession", HFILL }},
3027 { &hf_h501_reason_04,
3028 { "reason", "h501.reason",
3029 FT_UINT32, BASE_DEC, VALS(h501_AccessRejectionReason_vals), 0,
3030 "h501.AccessRejectionReason", HFILL }},
3032 { "noMatch", "h501.noMatch",
3033 FT_NONE, BASE_NONE, NULL, 0,
3034 "h501.NULL", HFILL }},
3035 { &hf_h501_needCallInformation,
3036 { "needCallInformation", "h501.needCallInformation",
3037 FT_NONE, BASE_NONE, NULL, 0,
3038 "h501.NULL", HFILL }},
3039 { &hf_h501_destinationUnavailable,
3040 { "destinationUnavailable", "h501.destinationUnavailable",
3041 FT_NONE, BASE_NONE, NULL, 0,
3042 "h501.NULL", HFILL }},
3043 { &hf_h501_aliasesInconsistent,
3044 { "aliasesInconsistent", "h501.aliasesInconsistent",
3045 FT_NONE, BASE_NONE, NULL, 0,
3046 "h501.NULL", HFILL }},
3047 { &hf_h501_resourceUnavailable,
3048 { "resourceUnavailable", "h501.resourceUnavailable",
3049 FT_NONE, BASE_NONE, NULL, 0,
3050 "h501.NULL", HFILL }},
3051 { &hf_h501_incompleteAddress,
3052 { "incompleteAddress", "h501.incompleteAddress",
3053 FT_NONE, BASE_NONE, NULL, 0,
3054 "h501.NULL", HFILL }},
3055 { &hf_h501_reason_05,
3056 { "reason", "h501.reason",
3057 FT_UINT32, BASE_DEC, VALS(h501_UsageRejectReason_vals), 0,
3058 "h501.UsageRejectReason", HFILL }},
3059 { &hf_h501_accessTokens,
3060 { "accessTokens", "h501.accessTokens",
3061 FT_UINT32, BASE_DEC, NULL, 0,
3062 "h501.SEQUENCE_OF_AccessToken", HFILL }},
3063 { &hf_h501_accessTokens_item,
3064 { "accessTokens", "h501.accessTokens_item",
3065 FT_UINT32, BASE_DEC, VALS(h501_AccessToken_vals), 0,
3066 "h501.AccessToken", HFILL }},
3067 { &hf_h501_senderRole,
3068 { "senderRole", "h501.senderRole",
3069 FT_UINT32, BASE_DEC, VALS(h501_Role_vals), 0,
3070 "h501.Role", HFILL }},
3071 { &hf_h501_usageCallStatus,
3072 { "usageCallStatus", "h501.usageCallStatus",
3073 FT_UINT32, BASE_DEC, VALS(h501_UsageCallStatus_vals), 0,
3074 "h501.UsageCallStatus", HFILL }},
3076 { "srcInfo", "h501.srcInfo",
3077 FT_NONE, BASE_NONE, NULL, 0,
3078 "h501.PartyInformation", HFILL }},
3079 { &hf_h501_destAddress,
3080 { "destAddress", "h501.destAddress",
3081 FT_NONE, BASE_NONE, NULL, 0,
3082 "h501.PartyInformation", HFILL }},
3083 { &hf_h501_startTime,
3084 { "startTime", "h501.startTime",
3085 FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0,
3086 "h235.TimeStamp", HFILL }},
3088 { "endTime", "h501.endTime",
3089 FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0,
3090 "h235.TimeStamp", HFILL }},
3091 { &hf_h501_terminationCause,
3092 { "terminationCause", "h501.terminationCause",
3093 FT_NONE, BASE_NONE, NULL, 0,
3094 "h501.TerminationCause", HFILL }},
3095 { &hf_h501_usageFields,
3096 { "usageFields", "h501.usageFields",
3097 FT_UINT32, BASE_DEC, NULL, 0,
3098 "h501.SEQUENCE_OF_UsageField", HFILL }},
3099 { &hf_h501_usageFields_item,
3100 { "usageFields", "h501.usageFields_item",
3101 FT_NONE, BASE_NONE, NULL, 0,
3102 "h501.UsageField", HFILL }},
3105 FT_OID, BASE_NONE, NULL, 0,
3106 "h501.OBJECT_IDENTIFIER", HFILL }},
3108 { "value", "h501.value",
3109 FT_BYTES, BASE_HEX, NULL, 0,
3110 "h501.OCTET_STRING", HFILL }},
3111 { &hf_h501_invalidCall,
3112 { "invalidCall", "h501.invalidCall",
3113 FT_NONE, BASE_NONE, NULL, 0,
3114 "h501.NULL", HFILL }},
3115 { &hf_h501_unavailable,
3116 { "unavailable", "h501.unavailable",
3117 FT_NONE, BASE_NONE, NULL, 0,
3118 "h501.NULL", HFILL }},
3119 { &hf_h501_reason_06,
3120 { "reason", "h501.reason",
3121 FT_UINT32, BASE_DEC, VALS(h501_UsageIndicationRejectionReason_vals), 0,
3122 "h501.UsageIndicationRejectionReason", HFILL }},
3123 { &hf_h501_unknownCall,
3124 { "unknownCall", "h501.unknownCall",
3125 FT_NONE, BASE_NONE, NULL, 0,
3126 "h501.NULL", HFILL }},
3127 { &hf_h501_incomplete,
3128 { "incomplete", "h501.incomplete",
3129 FT_NONE, BASE_NONE, NULL, 0,
3130 "h501.NULL", HFILL }},
3131 { &hf_h501_accessToken,
3132 { "accessToken", "h501.accessToken",
3133 FT_UINT32, BASE_DEC, NULL, 0,
3134 "h501.SEQUENCE_OF_AccessToken", HFILL }},
3135 { &hf_h501_accessToken_item,
3136 { "accessToken", "h501.accessToken_item",
3137 FT_UINT32, BASE_DEC, VALS(h501_AccessToken_vals), 0,
3138 "h501.AccessToken", HFILL }},
3139 { &hf_h501_reason_07,
3140 { "reason", "h501.reason",
3141 FT_UINT32, BASE_DEC, VALS(h501_ValidationRejectionReason_vals), 0,
3142 "h501.ValidationRejectionReason", HFILL }},
3143 { &hf_h501_tokenNotValid,
3144 { "tokenNotValid", "h501.tokenNotValid",
3145 FT_NONE, BASE_NONE, NULL, 0,
3146 "h501.NULL", HFILL }},
3147 { &hf_h501_missingSourceInfo,
3148 { "missingSourceInfo", "h501.missingSourceInfo",
3149 FT_NONE, BASE_NONE, NULL, 0,
3150 "h501.NULL", HFILL }},
3151 { &hf_h501_missingDestInfo,
3152 { "missingDestInfo", "h501.missingDestInfo",
3153 FT_NONE, BASE_NONE, NULL, 0,
3154 "h501.NULL", HFILL }},
3156 { "delay", "h501.delay",
3157 FT_UINT32, BASE_DEC, NULL, 0,
3158 "h501.INTEGER_1_65535", HFILL }},
3159 { &hf_h501_reason_08,
3160 { "reason", "h501.reason",
3161 FT_UINT32, BASE_DEC, VALS(h501_NonStandardRejectionReason_vals), 0,
3162 "h501.NonStandardRejectionReason", HFILL }},
3163 { &hf_h501_notSupported,
3164 { "notSupported", "h501.notSupported",
3165 FT_NONE, BASE_NONE, NULL, 0,
3166 "h501.NULL", HFILL }},
3167 { &hf_h501_unknownMessage,
3168 { "unknownMessage", "h501.unknownMessage",
3169 FT_BYTES, BASE_HEX, NULL, 0,
3170 "h501.OCTET_STRING", HFILL }},
3171 { &hf_h501_reason_09,
3172 { "reason", "h501.reason",
3173 FT_UINT32, BASE_DEC, VALS(h501_UnknownMessageReason_vals), 0,
3174 "h501.UnknownMessageReason", HFILL }},
3175 { &hf_h501_notUnderstood,
3176 { "notUnderstood", "h501.notUnderstood",
3177 FT_NONE, BASE_NONE, NULL, 0,
3178 "h501.NULL", HFILL }},
3179 { &hf_h501_applicationMessage,
3180 { "applicationMessage", "h501.applicationMessage",
3181 FT_BYTES, BASE_HEX, NULL, 0,
3182 "h501.ApplicationMessage", HFILL }},
3183 { &hf_h501_reason_10,
3184 { "reason", "h501.reason",
3185 FT_UINT32, BASE_DEC, VALS(h501_AuthenticationRejectionReason_vals), 0,
3186 "h501.AuthenticationRejectionReason", HFILL }},
3187 { &hf_h501_securityWrongSyncTime,
3188 { "securityWrongSyncTime", "h501.securityWrongSyncTime",
3189 FT_NONE, BASE_NONE, NULL, 0,
3190 "h501.NULL", HFILL }},
3191 { &hf_h501_securityReplay,
3192 { "securityReplay", "h501.securityReplay",
3193 FT_NONE, BASE_NONE, NULL, 0,
3194 "h501.NULL", HFILL }},
3195 { &hf_h501_securityWrongGeneralID,
3196 { "securityWrongGeneralID", "h501.securityWrongGeneralID",
3197 FT_NONE, BASE_NONE, NULL, 0,
3198 "h501.NULL", HFILL }},
3199 { &hf_h501_securityWrongSendersID,
3200 { "securityWrongSendersID", "h501.securityWrongSendersID",
3201 FT_NONE, BASE_NONE, NULL, 0,
3202 "h501.NULL", HFILL }},
3203 { &hf_h501_securityIntegrityFailed,
3204 { "securityIntegrityFailed", "h501.securityIntegrityFailed",
3205 FT_NONE, BASE_NONE, NULL, 0,
3206 "h501.NULL", HFILL }},
3207 { &hf_h501_securityWrongOID,
3208 { "securityWrongOID", "h501.securityWrongOID",
3209 FT_NONE, BASE_NONE, NULL, 0,
3210 "h501.NULL", HFILL }},
3212 { "pattern", "h501.pattern",
3213 FT_UINT32, BASE_DEC, NULL, 0,
3214 "h501.SEQUENCE_OF_Pattern", HFILL }},
3215 { &hf_h501_pattern_item,
3216 { "pattern", "h501.pattern_item",
3217 FT_UINT32, BASE_DEC, VALS(h501_Pattern_vals), 0,
3218 "h501.Pattern", HFILL }},
3219 { &hf_h501_routeInfo,
3220 { "routeInfo", "h501.routeInfo",
3221 FT_UINT32, BASE_DEC, NULL, 0,
3222 "h501.SEQUENCE_OF_RouteInformation", HFILL }},
3223 { &hf_h501_routeInfo_item,
3224 { "routeInfo", "h501.routeInfo_item",
3225 FT_NONE, BASE_NONE, NULL, 0,
3226 "h501.RouteInformation", HFILL }},
3227 { &hf_h501_specific,
3228 { "specific", "h501.specific",
3229 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3230 "h225.AliasAddress", HFILL }},
3231 { &hf_h501_wildcard,
3232 { "wildcard", "h501.wildcard",
3233 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3234 "h225.AliasAddress", HFILL }},
3236 { "range", "h501.range",
3237 FT_NONE, BASE_NONE, NULL, 0,
3238 "h501.T_range", HFILL }},
3239 { &hf_h501_startOfRange,
3240 { "startOfRange", "h501.startOfRange",
3241 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
3242 "h225.PartyNumber", HFILL }},
3243 { &hf_h501_endOfRange,
3244 { "endOfRange", "h501.endOfRange",
3245 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
3246 "h225.PartyNumber", HFILL }},
3247 { &hf_h501_messageType,
3248 { "messageType", "h501.messageType",
3249 FT_UINT32, BASE_DEC, VALS(h501_T_messageType_vals), 0,
3250 "h501.T_messageType", HFILL }},
3251 { &hf_h501_sendAccessRequest,
3252 { "sendAccessRequest", "h501.sendAccessRequest",
3253 FT_NONE, BASE_NONE, NULL, 0,
3254 "h501.NULL", HFILL }},
3255 { &hf_h501_sendSetup,
3256 { "sendSetup", "h501.sendSetup",
3257 FT_NONE, BASE_NONE, NULL, 0,
3258 "h501.NULL", HFILL }},
3259 { &hf_h501_nonExistent,
3260 { "nonExistent", "h501.nonExistent",
3261 FT_NONE, BASE_NONE, NULL, 0,
3262 "h501.NULL", HFILL }},
3263 { &hf_h501_callSpecific,
3264 { "callSpecific", "h501.callSpecific",
3265 FT_BOOLEAN, 8, NULL, 0,
3266 "h501.BOOLEAN", HFILL }},
3267 { &hf_h501_priceInfo,
3268 { "priceInfo", "h501.priceInfo",
3269 FT_UINT32, BASE_DEC, NULL, 0,
3270 "h501.SEQUENCE_OF_PriceInfoSpec", HFILL }},
3271 { &hf_h501_priceInfo_item,
3272 { "priceInfo", "h501.priceInfo_item",
3273 FT_NONE, BASE_NONE, NULL, 0,
3274 "h501.PriceInfoSpec", HFILL }},
3275 { &hf_h501_contacts,
3276 { "contacts", "h501.contacts",
3277 FT_UINT32, BASE_DEC, NULL, 0,
3278 "h501.SEQUENCE_OF_ContactInformation", HFILL }},
3279 { &hf_h501_contacts_item,
3280 { "contacts", "h501.contacts_item",
3281 FT_NONE, BASE_NONE, NULL, 0,
3282 "h501.ContactInformation", HFILL }},
3284 { "type", "h501.type",
3285 FT_NONE, BASE_NONE, NULL, 0,
3286 "h225.EndpointType", HFILL }},
3287 { &hf_h501_circuitID,
3288 { "circuitID", "h501.circuitID",
3289 FT_NONE, BASE_NONE, NULL, 0,
3290 "h225.CircuitInfo", HFILL }},
3291 { &hf_h501_supportedCircuits,
3292 { "supportedCircuits", "h501.supportedCircuits",
3293 FT_UINT32, BASE_DEC, NULL, 0,
3294 "h501.SEQUENCE_OF_CircuitIdentifier", HFILL }},
3295 { &hf_h501_supportedCircuits_item,
3296 { "supportedCircuits", "h501.supportedCircuits_item",
3297 FT_NONE, BASE_NONE, NULL, 0,
3298 "h225.CircuitIdentifier", HFILL }},
3299 { &hf_h501_transportAddress,
3300 { "transportAddress", "h501.transportAddress",
3301 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3302 "h225.AliasAddress", HFILL }},
3303 { &hf_h501_priority,
3304 { "priority", "h501.priority",
3305 FT_UINT32, BASE_DEC, NULL, 0,
3306 "h501.INTEGER_0_127", HFILL }},
3307 { &hf_h501_transportQoS,
3308 { "transportQoS", "h501.transportQoS",
3309 FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0,
3310 "h225.TransportQOS", HFILL }},
3311 { &hf_h501_security_01,
3312 { "security", "h501.security",
3313 FT_UINT32, BASE_DEC, NULL, 0,
3314 "h501.SEQUENCE_OF_SecurityMode", HFILL }},
3315 { &hf_h501_security_item,
3316 { "security", "h501.security_item",
3317 FT_NONE, BASE_NONE, NULL, 0,
3318 "h501.SecurityMode", HFILL }},
3319 { &hf_h501_multipleCalls,
3320 { "multipleCalls", "h501.multipleCalls",
3321 FT_BOOLEAN, 8, NULL, 0,
3322 "h501.BOOLEAN", HFILL }},
3323 { &hf_h501_currency,
3324 { "currency", "h501.currency",
3325 FT_STRING, BASE_NONE, NULL, 0,
3326 "h501.IA5String_SIZE_3", HFILL }},
3327 { &hf_h501_currencyScale,
3328 { "currencyScale", "h501.currencyScale",
3329 FT_INT32, BASE_DEC, NULL, 0,
3330 "h501.INTEGER_M127_127", HFILL }},
3331 { &hf_h501_validFrom,
3332 { "validFrom", "h501.validFrom",
3333 FT_STRING, BASE_NONE, NULL, 0,
3334 "h501.GlobalTimeStamp", HFILL }},
3335 { &hf_h501_validUntil,
3336 { "validUntil", "h501.validUntil",
3337 FT_STRING, BASE_NONE, NULL, 0,
3338 "h501.GlobalTimeStamp", HFILL }},
3339 { &hf_h501_hoursFrom,
3340 { "hoursFrom", "h501.hoursFrom",
3341 FT_STRING, BASE_NONE, NULL, 0,
3342 "h501.IA5String_SIZE_6", HFILL }},
3343 { &hf_h501_hoursUntil,
3344 { "hoursUntil", "h501.hoursUntil",
3345 FT_STRING, BASE_NONE, NULL, 0,
3346 "h501.IA5String_SIZE_6", HFILL }},
3347 { &hf_h501_priceElement,
3348 { "priceElement", "h501.priceElement",
3349 FT_UINT32, BASE_DEC, NULL, 0,
3350 "h501.SEQUENCE_OF_PriceElement", HFILL }},
3351 { &hf_h501_priceElement_item,
3352 { "priceElement", "h501.priceElement_item",
3353 FT_NONE, BASE_NONE, NULL, 0,
3354 "h501.PriceElement", HFILL }},
3355 { &hf_h501_priceFormula,
3356 { "priceFormula", "h501.priceFormula",
3357 FT_STRING, BASE_NONE, NULL, 0,
3358 "h501.IA5String_SIZE_1_2048", HFILL }},
3360 { "amount", "h501.amount",
3361 FT_UINT32, BASE_DEC, NULL, 0,
3362 "h501.INTEGER_0_4294967295", HFILL }},
3364 { "quantum", "h501.quantum",
3365 FT_UINT32, BASE_DEC, NULL, 0,
3366 "h501.INTEGER_0_4294967295", HFILL }},
3368 { "units", "h501.units",
3369 FT_UINT32, BASE_DEC, VALS(h501_T_units_vals), 0,
3370 "h501.T_units", HFILL }},
3372 { "seconds", "h501.seconds",
3373 FT_NONE, BASE_NONE, NULL, 0,
3374 "h501.NULL", HFILL }},
3376 { "packets", "h501.packets",
3377 FT_NONE, BASE_NONE, NULL, 0,
3378 "h501.NULL", HFILL }},
3380 { "bytes", "h501.bytes",
3381 FT_NONE, BASE_NONE, NULL, 0,
3382 "h501.NULL", HFILL }},
3384 { "initial", "h501.initial",
3385 FT_NONE, BASE_NONE, NULL, 0,
3386 "h501.NULL", HFILL }},
3388 { "minimum", "h501.minimum",
3389 FT_NONE, BASE_NONE, NULL, 0,
3390 "h501.NULL", HFILL }},
3392 { "maximum", "h501.maximum",
3393 FT_NONE, BASE_NONE, NULL, 0,
3394 "h501.NULL", HFILL }},
3395 { &hf_h501_descriptorInfo_02,
3396 { "descriptorInfo", "h501.descriptorInfo",
3397 FT_NONE, BASE_NONE, NULL, 0,
3398 "h501.DescriptorInfo", HFILL }},
3399 { &hf_h501_gatekeeperID,
3400 { "gatekeeperID", "h501.gatekeeperID",
3401 FT_STRING, BASE_NONE, NULL, 0,
3402 "h225.GatekeeperIdentifier", HFILL }},
3403 { &hf_h501_lastChanged,
3404 { "lastChanged", "h501.lastChanged",
3405 FT_STRING, BASE_NONE, NULL, 0,
3406 "h501.GlobalTimeStamp", HFILL }},
3407 { &hf_h501_alternatePE,
3408 { "alternatePE", "h501.alternatePE",
3409 FT_UINT32, BASE_DEC, NULL, 0,
3410 "h501.SEQUENCE_OF_AlternatePE", HFILL }},
3411 { &hf_h501_alternatePE_item,
3412 { "alternatePE", "h501.alternatePE_item",
3413 FT_NONE, BASE_NONE, NULL, 0,
3414 "h501.AlternatePE", HFILL }},
3415 { &hf_h501_alternateIsPermanent,
3416 { "alternateIsPermanent", "h501.alternateIsPermanent",
3417 FT_BOOLEAN, 8, NULL, 0,
3418 "h501.BOOLEAN", HFILL }},
3419 { &hf_h501_contactAddress,
3420 { "contactAddress", "h501.contactAddress",
3421 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3422 "h225.AliasAddress", HFILL }},
3423 { &hf_h501_priority_01,
3424 { "priority", "h501.priority",
3425 FT_UINT32, BASE_DEC, NULL, 0,
3426 "h501.INTEGER_1_127", HFILL }},
3428 { "token", "h501.token",
3429 FT_NONE, BASE_NONE, NULL, 0,
3430 "h235.ClearToken", HFILL }},
3431 { &hf_h501_cryptoToken,
3432 { "cryptoToken", "h501.cryptoToken",
3433 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
3434 "h225.CryptoH323Token", HFILL }},
3435 { &hf_h501_genericData_01,
3436 { "genericData", "h501.genericData",
3437 FT_NONE, BASE_NONE, NULL, 0,
3438 "h225.GenericData", HFILL }},
3439 { &hf_h501_callIdentifier,
3440 { "callIdentifier", "h501.callIdentifier",
3441 FT_NONE, BASE_NONE, NULL, 0,
3442 "h225.CallIdentifier", HFILL }},
3443 { &hf_h501_conferenceID,
3444 { "conferenceID", "h501.conferenceID",
3445 FT_GUID, BASE_NONE, NULL, 0,
3446 "h225.ConferenceIdentifier", HFILL }},
3447 { &hf_h501_preConnect,
3448 { "preConnect", "h501.preConnect",
3449 FT_NONE, BASE_NONE, NULL, 0,
3450 "h501.NULL", HFILL }},
3451 { &hf_h501_callInProgress,
3452 { "callInProgress", "h501.callInProgress",
3453 FT_NONE, BASE_NONE, NULL, 0,
3454 "h501.NULL", HFILL }},
3455 { &hf_h501_callEnded,
3456 { "callEnded", "h501.callEnded",
3457 FT_NONE, BASE_NONE, NULL, 0,
3458 "h501.NULL", HFILL }},
3459 { &hf_h501_registrationLost,
3460 { "registrationLost", "h501.registrationLost",
3461 FT_NONE, BASE_NONE, NULL, 0,
3462 "h501.NULL", HFILL }},
3463 { &hf_h501_userIdentifier,
3464 { "userIdentifier", "h501.userIdentifier",
3465 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3466 "h225.AliasAddress", HFILL }},
3467 { &hf_h501_userAuthenticator,
3468 { "userAuthenticator", "h501.userAuthenticator",
3469 FT_UINT32, BASE_DEC, NULL, 0,
3470 "h501.SEQUENCE_OF_CryptoH323Token", HFILL }},
3471 { &hf_h501_userAuthenticator_item,
3472 { "userAuthenticator", "h501.userAuthenticator_item",
3473 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
3474 "h225.CryptoH323Token", HFILL }},
3476 { "sendTo", "h501.sendTo",
3477 FT_STRING, BASE_NONE, NULL, 0,
3478 "h501.ElementIdentifier", HFILL }},
3480 { "when", "h501.when",
3481 FT_NONE, BASE_NONE, NULL, 0,
3482 "h501.T_when", HFILL }},
3484 { "never", "h501.never",
3485 FT_NONE, BASE_NONE, NULL, 0,
3486 "h501.NULL", HFILL }},
3488 { "start", "h501.start",
3489 FT_NONE, BASE_NONE, NULL, 0,
3490 "h501.NULL", HFILL }},
3492 { "end", "h501.end",
3493 FT_NONE, BASE_NONE, NULL, 0,
3494 "h501.NULL", HFILL }},
3496 { "period", "h501.period",
3497 FT_UINT32, BASE_DEC, NULL, 0,
3498 "h501.INTEGER_1_65535", HFILL }},
3499 { &hf_h501_failures,
3500 { "failures", "h501.failures",
3501 FT_NONE, BASE_NONE, NULL, 0,
3502 "h501.NULL", HFILL }},
3503 { &hf_h501_required,
3504 { "required", "h501.required",
3505 FT_UINT32, BASE_DEC, NULL, 0,
3506 "h501.T_required", HFILL }},
3507 { &hf_h501_required_item,
3508 { "required", "h501.required_item",
3509 FT_OID, BASE_NONE, NULL, 0,
3510 "h501.OBJECT_IDENTIFIER", HFILL }},
3511 { &hf_h501_preferred,
3512 { "preferred", "h501.preferred",
3513 FT_UINT32, BASE_DEC, NULL, 0,
3514 "h501.T_preferred", HFILL }},
3515 { &hf_h501_preferred_item,
3516 { "preferred", "h501.preferred_item",
3517 FT_OID, BASE_NONE, NULL, 0,
3518 "h501.OBJECT_IDENTIFIER", HFILL }},
3519 { &hf_h501_sendToPEAddress,
3520 { "sendToPEAddress", "h501.sendToPEAddress",
3521 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3522 "h225.AliasAddress", HFILL }},
3523 { &hf_h501_logicalAddresses,
3524 { "logicalAddresses", "h501.logicalAddresses",
3525 FT_UINT32, BASE_DEC, NULL, 0,
3526 "h501.SEQUENCE_OF_AliasAddress", HFILL }},
3527 { &hf_h501_logicalAddresses_item,
3528 { "logicalAddresses", "h501.logicalAddresses_item",
3529 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3530 "h225.AliasAddress", HFILL }},
3531 { &hf_h501_endpointType,
3532 { "endpointType", "h501.endpointType",
3533 FT_NONE, BASE_NONE, NULL, 0,
3534 "h225.EndpointType", HFILL }},
3535 { &hf_h501_userInfo,
3536 { "userInfo", "h501.userInfo",
3537 FT_NONE, BASE_NONE, NULL, 0,
3538 "h501.UserInformation", HFILL }},
3539 { &hf_h501_timeZone,
3540 { "timeZone", "h501.timeZone",
3541 FT_INT32, BASE_DEC, NULL, 0,
3542 "h501.TimeZone", HFILL }},
3543 { &hf_h501_originator,
3544 { "originator", "h501.originator",
3545 FT_NONE, BASE_NONE, NULL, 0,
3546 "h501.NULL", HFILL }},
3547 { &hf_h501_destination,
3548 { "destination", "h501.destination",
3549 FT_NONE, BASE_NONE, NULL, 0,
3550 "h501.NULL", HFILL }},
3551 { &hf_h501_nonStandardData,
3552 { "nonStandardData", "h501.nonStandardData",
3553 FT_NONE, BASE_NONE, NULL, 0,
3554 "h225.NonStandardParameter", HFILL }},
3555 { &hf_h501_releaseCompleteReason,
3556 { "releaseCompleteReason", "h501.releaseCompleteReason",
3557 FT_UINT32, BASE_DEC, VALS(h225_ReleaseCompleteReason_vals), 0,
3558 "h225.ReleaseCompleteReason", HFILL }},
3560 { "causeIE", "h501.causeIE",
3561 FT_UINT32, BASE_DEC, NULL, 0,
3562 "h501.INTEGER_1_65535", HFILL }},
3564 /*--- End of included file: packet-h501-hfarr.c ---*/
3565 #line 104 "packet-h501-template.c"
3568 /* List of subtrees */
3569 static gint *ett[] = {
3572 /*--- Included file: packet-h501-ettarr.c ---*/
3573 #line 1 "packet-h501-ettarr.c"
3575 &ett_h501_MessageBody,
3576 &ett_h501_MessageCommonInfo,
3577 &ett_h501_SEQUENCE_OF_TransportAddress,
3578 &ett_h501_SEQUENCE_OF_ClearToken,
3579 &ett_h501_SEQUENCE_OF_CryptoH323Token,
3580 &ett_h501_SEQUENCE_OF_NonStandardParameter,
3581 &ett_h501_SEQUENCE_OF_GenericData,
3582 &ett_h501_ServiceRequest,
3583 &ett_h501_SEQUENCE_OF_SecurityMode,
3584 &ett_h501_SecurityMode,
3585 &ett_h501_T_algorithmOIDs,
3586 &ett_h501_ServiceConfirmation,
3587 &ett_h501_ServiceRejection,
3588 &ett_h501_ServiceRejectionReason,
3589 &ett_h501_ServiceRelease,
3590 &ett_h501_ServiceReleaseReason,
3591 &ett_h501_DescriptorRequest,
3592 &ett_h501_SEQUENCE_OF_DescriptorID,
3593 &ett_h501_DescriptorConfirmation,
3594 &ett_h501_SEQUENCE_OF_Descriptor,
3595 &ett_h501_DescriptorRejection,
3596 &ett_h501_DescriptorRejectionReason,
3597 &ett_h501_DescriptorIDRequest,
3598 &ett_h501_DescriptorIDConfirmation,
3599 &ett_h501_SEQUENCE_OF_DescriptorInfo,
3600 &ett_h501_DescriptorIDRejection,
3601 &ett_h501_DescriptorIDRejectionReason,
3602 &ett_h501_DescriptorUpdate,
3603 &ett_h501_SEQUENCE_OF_UpdateInformation,
3604 &ett_h501_UpdateInformation,
3605 &ett_h501_T_descriptorInfo,
3606 &ett_h501_T_updateType,
3607 &ett_h501_DescriptorUpdateAck,
3608 &ett_h501_AccessRequest,
3609 &ett_h501_SEQUENCE_OF_SupportedProtocols,
3610 &ett_h501_AccessConfirmation,
3611 &ett_h501_SEQUENCE_OF_AddressTemplate,
3612 &ett_h501_SEQUENCE_OF_ServiceControlSession,
3613 &ett_h501_AccessRejection,
3614 &ett_h501_AccessRejectionReason,
3615 &ett_h501_UsageRequest,
3616 &ett_h501_UsageConfirmation,
3617 &ett_h501_UsageRejection,
3618 &ett_h501_UsageIndication,
3619 &ett_h501_SEQUENCE_OF_AccessToken,
3620 &ett_h501_SEQUENCE_OF_UsageField,
3621 &ett_h501_UsageField,
3622 &ett_h501_UsageRejectReason,
3623 &ett_h501_UsageIndicationConfirmation,
3624 &ett_h501_UsageIndicationRejection,
3625 &ett_h501_UsageIndicationRejectionReason,
3626 &ett_h501_ValidationRequest,
3627 &ett_h501_ValidationConfirmation,
3628 &ett_h501_ValidationRejection,
3629 &ett_h501_ValidationRejectionReason,
3630 &ett_h501_RequestInProgress,
3631 &ett_h501_NonStandardRequest,
3632 &ett_h501_NonStandardConfirmation,
3633 &ett_h501_NonStandardRejection,
3634 &ett_h501_NonStandardRejectionReason,
3635 &ett_h501_UnknownMessageResponse,
3636 &ett_h501_UnknownMessageReason,
3637 &ett_h501_AuthenticationRequest,
3638 &ett_h501_AuthenticationConfirmation,
3639 &ett_h501_AuthenticationRejection,
3640 &ett_h501_AuthenticationRejectionReason,
3641 &ett_h501_AddressTemplate,
3642 &ett_h501_SEQUENCE_OF_Pattern,
3643 &ett_h501_SEQUENCE_OF_RouteInformation,
3646 &ett_h501_RouteInformation,
3647 &ett_h501_T_messageType,
3648 &ett_h501_SEQUENCE_OF_PriceInfoSpec,
3649 &ett_h501_SEQUENCE_OF_ContactInformation,
3650 &ett_h501_SEQUENCE_OF_CircuitIdentifier,
3651 &ett_h501_ContactInformation,
3652 &ett_h501_PriceInfoSpec,
3653 &ett_h501_SEQUENCE_OF_PriceElement,
3654 &ett_h501_PriceElement,
3656 &ett_h501_Descriptor,
3657 &ett_h501_DescriptorInfo,
3658 &ett_h501_AlternatePEInfo,
3659 &ett_h501_SEQUENCE_OF_AlternatePE,
3660 &ett_h501_AlternatePE,
3661 &ett_h501_AccessToken,
3662 &ett_h501_CallInformation,
3663 &ett_h501_UsageCallStatus,
3664 &ett_h501_UserInformation,
3665 &ett_h501_UsageSpecification,
3667 &ett_h501_T_required,
3668 &ett_h501_T_preferred,
3669 &ett_h501_PartyInformation,
3670 &ett_h501_SEQUENCE_OF_AliasAddress,
3672 &ett_h501_TerminationCause,
3674 /*--- End of included file: packet-h501-ettarr.c ---*/
3675 #line 110 "packet-h501-template.c"
3678 /* Register protocol */
3679 proto_h501 = proto_register_protocol(PNAME, PSNAME, PFNAME);
3681 /* Register fields and subtrees */
3682 proto_register_field_array(proto_h501, hf, array_length(hf));
3683 proto_register_subtree_array(ett, array_length(ett));
3685 new_register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
3687 h501_module = prefs_register_protocol(proto_h501, proto_reg_handoff_h501);
3688 prefs_register_uint_preference(h501_module, "udp.port",
3690 "Port to be decoded as h501",
3691 10, &h501_udp_port);
3692 prefs_register_uint_preference(h501_module, "tcp.port",
3694 "Port to be decoded as h501",
3695 10, &h501_tcp_port);
3696 prefs_register_bool_preference(h501_module, "desegment",
3697 "Desegment H.501 over TCP",
3698 "Desegment H.501 messages that span more TCP segments",
3699 &h501_desegment_tcp);
3703 /*--- proto_reg_handoff_h501 -------------------------------------------*/
3704 void proto_reg_handoff_h501(void)
3706 static gboolean h501_prefs_initialized = FALSE;
3707 static dissector_handle_t h501_udp_handle;
3708 static dissector_handle_t h501_tcp_handle;
3709 static guint saved_h501_udp_port;
3710 static guint saved_h501_tcp_port;
3712 if (!h501_prefs_initialized) {
3713 h501_pdu_handle = find_dissector(PFNAME);
3714 h501_udp_handle = new_create_dissector_handle(dissect_h501_udp, proto_h501);
3715 h501_tcp_handle = new_create_dissector_handle(dissect_h501_tcp, proto_h501);
3716 h501_prefs_initialized = TRUE;
3718 dissector_delete("udp.port", saved_h501_udp_port, h501_udp_handle);
3719 dissector_delete("tcp.port", saved_h501_tcp_port, h501_tcp_handle);
3722 /* Set our port number for future use */
3723 saved_h501_udp_port = h501_udp_port;
3724 dissector_add("udp.port", saved_h501_udp_port, h501_udp_handle);
3725 saved_h501_tcp_port = h501_tcp_port;
3726 dissector_add("tcp.port", saved_h501_tcp_port, h501_tcp_handle);