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 -D . -O ../../epan/dissectors H501-MESSAGES.asn */
6 /* Input file: packet-h501-template.c */
8 #line 1 "../../asn1/h501/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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
37 #include <epan/packet.h>
38 #include <epan/prefs.h>
39 #include <epan/oids.h>
40 #include <epan/asn1.h>
42 #include "packet-tpkt.h"
43 #include "packet-per.h"
44 #include "packet-h225.h"
45 #include "packet-h235.h"
47 #define PNAME "H.501 Mobility"
48 #define PSNAME "H.501"
51 /* Initialize the protocol and registered fields */
52 static int proto_h501 = -1;
54 /*--- Included file: packet-h501-hf.c ---*/
55 #line 1 "../../asn1/h501/packet-h501-hf.c"
56 static int hf_h501_Message_PDU = -1; /* Message */
57 static int hf_h501_body = -1; /* MessageBody */
58 static int hf_h501_common = -1; /* MessageCommonInfo */
59 static int hf_h501_serviceRequest = -1; /* ServiceRequest */
60 static int hf_h501_serviceConfirmation = -1; /* ServiceConfirmation */
61 static int hf_h501_serviceRejection = -1; /* ServiceRejection */
62 static int hf_h501_serviceRelease = -1; /* ServiceRelease */
63 static int hf_h501_descriptorRequest = -1; /* DescriptorRequest */
64 static int hf_h501_descriptorConfirmation = -1; /* DescriptorConfirmation */
65 static int hf_h501_descriptorRejection = -1; /* DescriptorRejection */
66 static int hf_h501_descriptorIDRequest = -1; /* DescriptorIDRequest */
67 static int hf_h501_descriptorIDConfirmation = -1; /* DescriptorIDConfirmation */
68 static int hf_h501_descriptorIDRejection = -1; /* DescriptorIDRejection */
69 static int hf_h501_descriptorUpdate = -1; /* DescriptorUpdate */
70 static int hf_h501_descriptorUpdateAck = -1; /* DescriptorUpdateAck */
71 static int hf_h501_accessRequest = -1; /* AccessRequest */
72 static int hf_h501_accessConfirmation = -1; /* AccessConfirmation */
73 static int hf_h501_accessRejection = -1; /* AccessRejection */
74 static int hf_h501_requestInProgress = -1; /* RequestInProgress */
75 static int hf_h501_nonStandardRequest = -1; /* NonStandardRequest */
76 static int hf_h501_nonStandardConfirmation = -1; /* NonStandardConfirmation */
77 static int hf_h501_nonStandardRejection = -1; /* NonStandardRejection */
78 static int hf_h501_unknownMessageResponse = -1; /* UnknownMessageResponse */
79 static int hf_h501_usageRequest = -1; /* UsageRequest */
80 static int hf_h501_usageConfirmation = -1; /* UsageConfirmation */
81 static int hf_h501_usageIndication = -1; /* UsageIndication */
82 static int hf_h501_usageIndicationConfirmation = -1; /* UsageIndicationConfirmation */
83 static int hf_h501_usageIndicationRejection = -1; /* UsageIndicationRejection */
84 static int hf_h501_usageRejection = -1; /* UsageRejection */
85 static int hf_h501_validationRequest = -1; /* ValidationRequest */
86 static int hf_h501_validationConfirmation = -1; /* ValidationConfirmation */
87 static int hf_h501_validationRejection = -1; /* ValidationRejection */
88 static int hf_h501_authenticationRequest = -1; /* AuthenticationRequest */
89 static int hf_h501_authenticationConfirmation = -1; /* AuthenticationConfirmation */
90 static int hf_h501_authenticationRejection = -1; /* AuthenticationRejection */
91 static int hf_h501_sequenceNumber = -1; /* INTEGER_0_65535 */
92 static int hf_h501_annexGversion = -1; /* ProtocolVersion */
93 static int hf_h501_hopCount = -1; /* INTEGER_1_255 */
94 static int hf_h501_replyAddress = -1; /* SEQUENCE_OF_TransportAddress */
95 static int hf_h501_replyAddress_item = -1; /* TransportAddress */
96 static int hf_h501_integrityCheckValue = -1; /* ICV */
97 static int hf_h501_tokens = -1; /* SEQUENCE_OF_ClearToken */
98 static int hf_h501_tokens_item = -1; /* ClearToken */
99 static int hf_h501_cryptoTokens = -1; /* SEQUENCE_OF_CryptoH323Token */
100 static int hf_h501_cryptoTokens_item = -1; /* CryptoH323Token */
101 static int hf_h501_nonStandard = -1; /* SEQUENCE_OF_NonStandardParameter */
102 static int hf_h501_nonStandard_item = -1; /* NonStandardParameter */
103 static int hf_h501_serviceID = -1; /* ServiceID */
104 static int hf_h501_genericData = -1; /* SEQUENCE_OF_GenericData */
105 static int hf_h501_genericData_item = -1; /* GenericData */
106 static int hf_h501_featureSet = -1; /* FeatureSet */
107 static int hf_h501_version = -1; /* ProtocolVersion */
108 static int hf_h501_elementIdentifier = -1; /* ElementIdentifier */
109 static int hf_h501_domainIdentifier = -1; /* AliasAddress */
110 static int hf_h501_securityMode = -1; /* SEQUENCE_OF_SecurityMode */
111 static int hf_h501_securityMode_item = -1; /* SecurityMode */
112 static int hf_h501_timeToLive = -1; /* INTEGER_1_4294967295 */
113 static int hf_h501_usageSpec = -1; /* UsageSpecification */
114 static int hf_h501_authentication = -1; /* AuthenticationMechanism */
115 static int hf_h501_integrity = -1; /* IntegrityMechanism */
116 static int hf_h501_algorithmOIDs = -1; /* T_algorithmOIDs */
117 static int hf_h501_algorithmOIDs_item = -1; /* OBJECT_IDENTIFIER */
118 static int hf_h501_alternates = -1; /* AlternatePEInfo */
119 static int hf_h501_securityMode_01 = -1; /* SecurityMode */
120 static int hf_h501_reason = -1; /* ServiceRejectionReason */
121 static int hf_h501_serviceUnavailable = -1; /* NULL */
122 static int hf_h501_serviceRedirected = -1; /* NULL */
123 static int hf_h501_security = -1; /* NULL */
124 static int hf_h501_continue = -1; /* NULL */
125 static int hf_h501_undefined = -1; /* NULL */
126 static int hf_h501_unknownServiceID = -1; /* NULL */
127 static int hf_h501_cannotSupportUsageSpec = -1; /* NULL */
128 static int hf_h501_neededFeature = -1; /* NULL */
129 static int hf_h501_genericDataReason = -1; /* NULL */
130 static int hf_h501_usageUnavailable = -1; /* NULL */
131 static int hf_h501_unknownUsageSendTo = -1; /* NULL */
132 static int hf_h501_reason_01 = -1; /* ServiceReleaseReason */
133 static int hf_h501_outOfService = -1; /* NULL */
134 static int hf_h501_maintenance = -1; /* NULL */
135 static int hf_h501_terminated = -1; /* NULL */
136 static int hf_h501_expired = -1; /* NULL */
137 static int hf_h501_descriptorID = -1; /* SEQUENCE_OF_DescriptorID */
138 static int hf_h501_descriptorID_item = -1; /* DescriptorID */
139 static int hf_h501_descriptor = -1; /* SEQUENCE_OF_Descriptor */
140 static int hf_h501_descriptor_item = -1; /* Descriptor */
141 static int hf_h501_reason_02 = -1; /* DescriptorRejectionReason */
142 static int hf_h501_descriptorID_01 = -1; /* DescriptorID */
143 static int hf_h501_packetSizeExceeded = -1; /* NULL */
144 static int hf_h501_illegalID = -1; /* NULL */
145 static int hf_h501_hopCountExceeded = -1; /* NULL */
146 static int hf_h501_noServiceRelationship = -1; /* NULL */
147 static int hf_h501_descriptorInfo = -1; /* SEQUENCE_OF_DescriptorInfo */
148 static int hf_h501_descriptorInfo_item = -1; /* DescriptorInfo */
149 static int hf_h501_reason_03 = -1; /* DescriptorIDRejectionReason */
150 static int hf_h501_noDescriptors = -1; /* NULL */
151 static int hf_h501_sender = -1; /* AliasAddress */
152 static int hf_h501_updateInfo = -1; /* SEQUENCE_OF_UpdateInformation */
153 static int hf_h501_updateInfo_item = -1; /* UpdateInformation */
154 static int hf_h501_descriptorInfo_01 = -1; /* T_descriptorInfo */
155 static int hf_h501_descriptor_01 = -1; /* Descriptor */
156 static int hf_h501_updateType = -1; /* T_updateType */
157 static int hf_h501_added = -1; /* NULL */
158 static int hf_h501_deleted = -1; /* NULL */
159 static int hf_h501_changed = -1; /* NULL */
160 static int hf_h501_destinationInfo = -1; /* PartyInformation */
161 static int hf_h501_sourceInfo = -1; /* PartyInformation */
162 static int hf_h501_callInfo = -1; /* CallInformation */
163 static int hf_h501_desiredProtocols = -1; /* SEQUENCE_OF_SupportedProtocols */
164 static int hf_h501_desiredProtocols_item = -1; /* SupportedProtocols */
165 static int hf_h501_templates = -1; /* SEQUENCE_OF_AddressTemplate */
166 static int hf_h501_templates_item = -1; /* AddressTemplate */
167 static int hf_h501_partialResponse = -1; /* BOOLEAN */
168 static int hf_h501_supportedProtocols = -1; /* SEQUENCE_OF_SupportedProtocols */
169 static int hf_h501_supportedProtocols_item = -1; /* SupportedProtocols */
170 static int hf_h501_serviceControl = -1; /* SEQUENCE_OF_ServiceControlSession */
171 static int hf_h501_serviceControl_item = -1; /* ServiceControlSession */
172 static int hf_h501_reason_04 = -1; /* AccessRejectionReason */
173 static int hf_h501_noMatch = -1; /* NULL */
174 static int hf_h501_needCallInformation = -1; /* NULL */
175 static int hf_h501_destinationUnavailable = -1; /* NULL */
176 static int hf_h501_aliasesInconsistent = -1; /* NULL */
177 static int hf_h501_resourceUnavailable = -1; /* NULL */
178 static int hf_h501_incompleteAddress = -1; /* NULL */
179 static int hf_h501_reason_05 = -1; /* UsageRejectReason */
180 static int hf_h501_accessTokens = -1; /* SEQUENCE_OF_AccessToken */
181 static int hf_h501_accessTokens_item = -1; /* AccessToken */
182 static int hf_h501_senderRole = -1; /* Role */
183 static int hf_h501_usageCallStatus = -1; /* UsageCallStatus */
184 static int hf_h501_srcInfo = -1; /* PartyInformation */
185 static int hf_h501_destAddress = -1; /* PartyInformation */
186 static int hf_h501_startTime = -1; /* TimeStamp */
187 static int hf_h501_endTime = -1; /* TimeStamp */
188 static int hf_h501_terminationCause = -1; /* TerminationCause */
189 static int hf_h501_usageFields = -1; /* SEQUENCE_OF_UsageField */
190 static int hf_h501_usageFields_item = -1; /* UsageField */
191 static int hf_h501_id = -1; /* OBJECT_IDENTIFIER */
192 static int hf_h501_value = -1; /* OCTET_STRING */
193 static int hf_h501_invalidCall = -1; /* NULL */
194 static int hf_h501_unavailable = -1; /* NULL */
195 static int hf_h501_reason_06 = -1; /* UsageIndicationRejectionReason */
196 static int hf_h501_unknownCall = -1; /* NULL */
197 static int hf_h501_incomplete = -1; /* NULL */
198 static int hf_h501_accessToken = -1; /* SEQUENCE_OF_AccessToken */
199 static int hf_h501_accessToken_item = -1; /* AccessToken */
200 static int hf_h501_reason_07 = -1; /* ValidationRejectionReason */
201 static int hf_h501_tokenNotValid = -1; /* NULL */
202 static int hf_h501_missingSourceInfo = -1; /* NULL */
203 static int hf_h501_missingDestInfo = -1; /* NULL */
204 static int hf_h501_delay = -1; /* INTEGER_1_65535 */
205 static int hf_h501_reason_08 = -1; /* NonStandardRejectionReason */
206 static int hf_h501_notSupported = -1; /* NULL */
207 static int hf_h501_unknownMessage = -1; /* OCTET_STRING */
208 static int hf_h501_reason_09 = -1; /* UnknownMessageReason */
209 static int hf_h501_notUnderstood = -1; /* NULL */
210 static int hf_h501_applicationMessage = -1; /* ApplicationMessage */
211 static int hf_h501_reason_10 = -1; /* AuthenticationRejectionReason */
212 static int hf_h501_securityWrongSyncTime = -1; /* NULL */
213 static int hf_h501_securityReplay = -1; /* NULL */
214 static int hf_h501_securityWrongGeneralID = -1; /* NULL */
215 static int hf_h501_securityWrongSendersID = -1; /* NULL */
216 static int hf_h501_securityIntegrityFailed = -1; /* NULL */
217 static int hf_h501_securityWrongOID = -1; /* NULL */
218 static int hf_h501_pattern = -1; /* SEQUENCE_OF_Pattern */
219 static int hf_h501_pattern_item = -1; /* Pattern */
220 static int hf_h501_routeInfo = -1; /* SEQUENCE_OF_RouteInformation */
221 static int hf_h501_routeInfo_item = -1; /* RouteInformation */
222 static int hf_h501_specific = -1; /* AliasAddress */
223 static int hf_h501_wildcard = -1; /* AliasAddress */
224 static int hf_h501_range = -1; /* T_range */
225 static int hf_h501_startOfRange = -1; /* PartyNumber */
226 static int hf_h501_endOfRange = -1; /* PartyNumber */
227 static int hf_h501_messageType = -1; /* T_messageType */
228 static int hf_h501_sendAccessRequest = -1; /* NULL */
229 static int hf_h501_sendSetup = -1; /* NULL */
230 static int hf_h501_nonExistent = -1; /* NULL */
231 static int hf_h501_callSpecific = -1; /* BOOLEAN */
232 static int hf_h501_priceInfo = -1; /* SEQUENCE_OF_PriceInfoSpec */
233 static int hf_h501_priceInfo_item = -1; /* PriceInfoSpec */
234 static int hf_h501_contacts = -1; /* SEQUENCE_OF_ContactInformation */
235 static int hf_h501_contacts_item = -1; /* ContactInformation */
236 static int hf_h501_type = -1; /* EndpointType */
237 static int hf_h501_circuitID = -1; /* CircuitInfo */
238 static int hf_h501_supportedCircuits = -1; /* SEQUENCE_OF_CircuitIdentifier */
239 static int hf_h501_supportedCircuits_item = -1; /* CircuitIdentifier */
240 static int hf_h501_transportAddress = -1; /* AliasAddress */
241 static int hf_h501_priority = -1; /* INTEGER_0_127 */
242 static int hf_h501_transportQoS = -1; /* TransportQOS */
243 static int hf_h501_security_01 = -1; /* SEQUENCE_OF_SecurityMode */
244 static int hf_h501_security_item = -1; /* SecurityMode */
245 static int hf_h501_multipleCalls = -1; /* BOOLEAN */
246 static int hf_h501_currency = -1; /* IA5String_SIZE_3 */
247 static int hf_h501_currencyScale = -1; /* INTEGER_M127_127 */
248 static int hf_h501_validFrom = -1; /* GlobalTimeStamp */
249 static int hf_h501_validUntil = -1; /* GlobalTimeStamp */
250 static int hf_h501_hoursFrom = -1; /* IA5String_SIZE_6 */
251 static int hf_h501_hoursUntil = -1; /* IA5String_SIZE_6 */
252 static int hf_h501_priceElement = -1; /* SEQUENCE_OF_PriceElement */
253 static int hf_h501_priceElement_item = -1; /* PriceElement */
254 static int hf_h501_priceFormula = -1; /* IA5String_SIZE_1_2048 */
255 static int hf_h501_amount = -1; /* INTEGER_0_4294967295 */
256 static int hf_h501_quantum = -1; /* INTEGER_0_4294967295 */
257 static int hf_h501_units = -1; /* T_units */
258 static int hf_h501_seconds = -1; /* NULL */
259 static int hf_h501_packets = -1; /* NULL */
260 static int hf_h501_bytes = -1; /* NULL */
261 static int hf_h501_initial = -1; /* NULL */
262 static int hf_h501_minimum = -1; /* NULL */
263 static int hf_h501_maximum = -1; /* NULL */
264 static int hf_h501_descriptorInfo_02 = -1; /* DescriptorInfo */
265 static int hf_h501_gatekeeperID = -1; /* GatekeeperIdentifier */
266 static int hf_h501_lastChanged = -1; /* GlobalTimeStamp */
267 static int hf_h501_alternatePE = -1; /* SEQUENCE_OF_AlternatePE */
268 static int hf_h501_alternatePE_item = -1; /* AlternatePE */
269 static int hf_h501_alternateIsPermanent = -1; /* BOOLEAN */
270 static int hf_h501_contactAddress = -1; /* AliasAddress */
271 static int hf_h501_priority_01 = -1; /* INTEGER_1_127 */
272 static int hf_h501_token = -1; /* ClearToken */
273 static int hf_h501_cryptoToken = -1; /* CryptoH323Token */
274 static int hf_h501_genericData_01 = -1; /* GenericData */
275 static int hf_h501_callIdentifier = -1; /* CallIdentifier */
276 static int hf_h501_conferenceID = -1; /* ConferenceIdentifier */
277 static int hf_h501_preConnect = -1; /* NULL */
278 static int hf_h501_callInProgress = -1; /* NULL */
279 static int hf_h501_callEnded = -1; /* NULL */
280 static int hf_h501_registrationLost = -1; /* NULL */
281 static int hf_h501_userIdentifier = -1; /* AliasAddress */
282 static int hf_h501_userAuthenticator = -1; /* SEQUENCE_OF_CryptoH323Token */
283 static int hf_h501_userAuthenticator_item = -1; /* CryptoH323Token */
284 static int hf_h501_sendTo = -1; /* ElementIdentifier */
285 static int hf_h501_when = -1; /* T_when */
286 static int hf_h501_never = -1; /* NULL */
287 static int hf_h501_start = -1; /* NULL */
288 static int hf_h501_end = -1; /* NULL */
289 static int hf_h501_period = -1; /* INTEGER_1_65535 */
290 static int hf_h501_failures = -1; /* NULL */
291 static int hf_h501_required = -1; /* T_required */
292 static int hf_h501_required_item = -1; /* OBJECT_IDENTIFIER */
293 static int hf_h501_preferred = -1; /* T_preferred */
294 static int hf_h501_preferred_item = -1; /* OBJECT_IDENTIFIER */
295 static int hf_h501_sendToPEAddress = -1; /* AliasAddress */
296 static int hf_h501_logicalAddresses = -1; /* SEQUENCE_OF_AliasAddress */
297 static int hf_h501_logicalAddresses_item = -1; /* AliasAddress */
298 static int hf_h501_endpointType = -1; /* EndpointType */
299 static int hf_h501_userInfo = -1; /* UserInformation */
300 static int hf_h501_timeZone = -1; /* TimeZone */
301 static int hf_h501_originator = -1; /* NULL */
302 static int hf_h501_destination = -1; /* NULL */
303 static int hf_h501_nonStandardData = -1; /* NonStandardParameter */
304 static int hf_h501_releaseCompleteReason = -1; /* ReleaseCompleteReason */
305 static int hf_h501_causeIE = -1; /* INTEGER_1_65535 */
307 /*--- End of included file: packet-h501-hf.c ---*/
308 #line 46 "../../asn1/h501/packet-h501-template.c"
310 /* Initialize the subtree pointers */
311 static int ett_h501 = -1;
313 /*--- Included file: packet-h501-ett.c ---*/
314 #line 1 "../../asn1/h501/packet-h501-ett.c"
315 static gint ett_h501_Message = -1;
316 static gint ett_h501_MessageBody = -1;
317 static gint ett_h501_MessageCommonInfo = -1;
318 static gint ett_h501_SEQUENCE_OF_TransportAddress = -1;
319 static gint ett_h501_SEQUENCE_OF_ClearToken = -1;
320 static gint ett_h501_SEQUENCE_OF_CryptoH323Token = -1;
321 static gint ett_h501_SEQUENCE_OF_NonStandardParameter = -1;
322 static gint ett_h501_SEQUENCE_OF_GenericData = -1;
323 static gint ett_h501_ServiceRequest = -1;
324 static gint ett_h501_SEQUENCE_OF_SecurityMode = -1;
325 static gint ett_h501_SecurityMode = -1;
326 static gint ett_h501_T_algorithmOIDs = -1;
327 static gint ett_h501_ServiceConfirmation = -1;
328 static gint ett_h501_ServiceRejection = -1;
329 static gint ett_h501_ServiceRejectionReason = -1;
330 static gint ett_h501_ServiceRelease = -1;
331 static gint ett_h501_ServiceReleaseReason = -1;
332 static gint ett_h501_DescriptorRequest = -1;
333 static gint ett_h501_SEQUENCE_OF_DescriptorID = -1;
334 static gint ett_h501_DescriptorConfirmation = -1;
335 static gint ett_h501_SEQUENCE_OF_Descriptor = -1;
336 static gint ett_h501_DescriptorRejection = -1;
337 static gint ett_h501_DescriptorRejectionReason = -1;
338 static gint ett_h501_DescriptorIDRequest = -1;
339 static gint ett_h501_DescriptorIDConfirmation = -1;
340 static gint ett_h501_SEQUENCE_OF_DescriptorInfo = -1;
341 static gint ett_h501_DescriptorIDRejection = -1;
342 static gint ett_h501_DescriptorIDRejectionReason = -1;
343 static gint ett_h501_DescriptorUpdate = -1;
344 static gint ett_h501_SEQUENCE_OF_UpdateInformation = -1;
345 static gint ett_h501_UpdateInformation = -1;
346 static gint ett_h501_T_descriptorInfo = -1;
347 static gint ett_h501_T_updateType = -1;
348 static gint ett_h501_DescriptorUpdateAck = -1;
349 static gint ett_h501_AccessRequest = -1;
350 static gint ett_h501_SEQUENCE_OF_SupportedProtocols = -1;
351 static gint ett_h501_AccessConfirmation = -1;
352 static gint ett_h501_SEQUENCE_OF_AddressTemplate = -1;
353 static gint ett_h501_SEQUENCE_OF_ServiceControlSession = -1;
354 static gint ett_h501_AccessRejection = -1;
355 static gint ett_h501_AccessRejectionReason = -1;
356 static gint ett_h501_UsageRequest = -1;
357 static gint ett_h501_UsageConfirmation = -1;
358 static gint ett_h501_UsageRejection = -1;
359 static gint ett_h501_UsageIndication = -1;
360 static gint ett_h501_SEQUENCE_OF_AccessToken = -1;
361 static gint ett_h501_SEQUENCE_OF_UsageField = -1;
362 static gint ett_h501_UsageField = -1;
363 static gint ett_h501_UsageRejectReason = -1;
364 static gint ett_h501_UsageIndicationConfirmation = -1;
365 static gint ett_h501_UsageIndicationRejection = -1;
366 static gint ett_h501_UsageIndicationRejectionReason = -1;
367 static gint ett_h501_ValidationRequest = -1;
368 static gint ett_h501_ValidationConfirmation = -1;
369 static gint ett_h501_ValidationRejection = -1;
370 static gint ett_h501_ValidationRejectionReason = -1;
371 static gint ett_h501_RequestInProgress = -1;
372 static gint ett_h501_NonStandardRequest = -1;
373 static gint ett_h501_NonStandardConfirmation = -1;
374 static gint ett_h501_NonStandardRejection = -1;
375 static gint ett_h501_NonStandardRejectionReason = -1;
376 static gint ett_h501_UnknownMessageResponse = -1;
377 static gint ett_h501_UnknownMessageReason = -1;
378 static gint ett_h501_AuthenticationRequest = -1;
379 static gint ett_h501_AuthenticationConfirmation = -1;
380 static gint ett_h501_AuthenticationRejection = -1;
381 static gint ett_h501_AuthenticationRejectionReason = -1;
382 static gint ett_h501_AddressTemplate = -1;
383 static gint ett_h501_SEQUENCE_OF_Pattern = -1;
384 static gint ett_h501_SEQUENCE_OF_RouteInformation = -1;
385 static gint ett_h501_Pattern = -1;
386 static gint ett_h501_T_range = -1;
387 static gint ett_h501_RouteInformation = -1;
388 static gint ett_h501_T_messageType = -1;
389 static gint ett_h501_SEQUENCE_OF_PriceInfoSpec = -1;
390 static gint ett_h501_SEQUENCE_OF_ContactInformation = -1;
391 static gint ett_h501_SEQUENCE_OF_CircuitIdentifier = -1;
392 static gint ett_h501_ContactInformation = -1;
393 static gint ett_h501_PriceInfoSpec = -1;
394 static gint ett_h501_SEQUENCE_OF_PriceElement = -1;
395 static gint ett_h501_PriceElement = -1;
396 static gint ett_h501_T_units = -1;
397 static gint ett_h501_Descriptor = -1;
398 static gint ett_h501_DescriptorInfo = -1;
399 static gint ett_h501_AlternatePEInfo = -1;
400 static gint ett_h501_SEQUENCE_OF_AlternatePE = -1;
401 static gint ett_h501_AlternatePE = -1;
402 static gint ett_h501_AccessToken = -1;
403 static gint ett_h501_CallInformation = -1;
404 static gint ett_h501_UsageCallStatus = -1;
405 static gint ett_h501_UserInformation = -1;
406 static gint ett_h501_UsageSpecification = -1;
407 static gint ett_h501_T_when = -1;
408 static gint ett_h501_T_required = -1;
409 static gint ett_h501_T_preferred = -1;
410 static gint ett_h501_PartyInformation = -1;
411 static gint ett_h501_SEQUENCE_OF_AliasAddress = -1;
412 static gint ett_h501_Role = -1;
413 static gint ett_h501_TerminationCause = -1;
415 /*--- End of included file: packet-h501-ett.c ---*/
416 #line 50 "../../asn1/h501/packet-h501-template.c"
419 static dissector_handle_t h501_pdu_handle;
422 static guint h501_udp_port = 2099;
423 static guint h501_tcp_port = 2099;
424 static gboolean h501_desegment_tcp = TRUE;
426 void proto_reg_handoff_h501(void);
429 /*--- Included file: packet-h501-fn.c ---*/
430 #line 1 "../../asn1/h501/packet-h501-fn.c"
434 dissect_h501_ElementIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
435 offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
444 dissect_h501_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
445 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
451 static const per_sequence_t T_algorithmOIDs_sequence_of[1] = {
452 { &hf_h501_algorithmOIDs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
456 dissect_h501_T_algorithmOIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
457 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
458 ett_h501_T_algorithmOIDs, T_algorithmOIDs_sequence_of);
464 static const per_sequence_t SecurityMode_sequence[] = {
465 { &hf_h501_authentication , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_AuthenticationMechanism },
466 { &hf_h501_integrity , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_IntegrityMechanism },
467 { &hf_h501_algorithmOIDs , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_T_algorithmOIDs },
472 dissect_h501_SecurityMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
473 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
474 ett_h501_SecurityMode, SecurityMode_sequence);
480 static const per_sequence_t SEQUENCE_OF_SecurityMode_sequence_of[1] = {
481 { &hf_h501_securityMode_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_SecurityMode },
485 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_) {
486 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
487 ett_h501_SEQUENCE_OF_SecurityMode, SEQUENCE_OF_SecurityMode_sequence_of);
495 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_) {
496 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
497 1U, 4294967295U, NULL, FALSE);
505 dissect_h501_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
506 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
514 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_) {
515 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
516 1U, 65535U, NULL, FALSE);
522 static const per_sequence_t T_when_sequence[] = {
523 { &hf_h501_never , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
524 { &hf_h501_start , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
525 { &hf_h501_end , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
526 { &hf_h501_period , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_65535 },
527 { &hf_h501_failures , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_NULL },
532 dissect_h501_T_when(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
533 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
534 ett_h501_T_when, T_when_sequence);
540 static const per_sequence_t T_required_sequence_of[1] = {
541 { &hf_h501_required_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
545 dissect_h501_T_required(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
546 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
547 ett_h501_T_required, T_required_sequence_of);
553 static const per_sequence_t T_preferred_sequence_of[1] = {
554 { &hf_h501_preferred_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
558 dissect_h501_T_preferred(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
559 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
560 ett_h501_T_preferred, T_preferred_sequence_of);
566 static const per_sequence_t UsageSpecification_sequence[] = {
567 { &hf_h501_sendTo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ElementIdentifier },
568 { &hf_h501_when , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_when },
569 { &hf_h501_required , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_required },
570 { &hf_h501_preferred , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_preferred },
571 { &hf_h501_sendToPEAddress, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_AliasAddress },
576 dissect_h501_UsageSpecification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
577 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
578 ett_h501_UsageSpecification, UsageSpecification_sequence);
584 static const per_sequence_t ServiceRequest_sequence[] = {
585 { &hf_h501_elementIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_ElementIdentifier },
586 { &hf_h501_domainIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
587 { &hf_h501_securityMode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SecurityMode },
588 { &hf_h501_timeToLive , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_4294967295 },
589 { &hf_h501_usageSpec , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_UsageSpecification },
594 dissect_h501_ServiceRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
595 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
596 ett_h501_ServiceRequest, ServiceRequest_sequence);
604 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_) {
605 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
606 1U, 127U, NULL, FALSE);
612 static const per_sequence_t AlternatePE_sequence[] = {
613 { &hf_h501_contactAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
614 { &hf_h501_priority_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_127 },
615 { &hf_h501_elementIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_ElementIdentifier },
620 dissect_h501_AlternatePE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
621 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
622 ett_h501_AlternatePE, AlternatePE_sequence);
628 static const per_sequence_t SEQUENCE_OF_AlternatePE_sequence_of[1] = {
629 { &hf_h501_alternatePE_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_AlternatePE },
633 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_) {
634 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
635 ett_h501_SEQUENCE_OF_AlternatePE, SEQUENCE_OF_AlternatePE_sequence_of);
643 dissect_h501_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
644 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
650 static const per_sequence_t AlternatePEInfo_sequence[] = {
651 { &hf_h501_alternatePE , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AlternatePE },
652 { &hf_h501_alternateIsPermanent, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_BOOLEAN },
657 dissect_h501_AlternatePEInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
658 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
659 ett_h501_AlternatePEInfo, AlternatePEInfo_sequence);
665 static const per_sequence_t ServiceConfirmation_sequence[] = {
666 { &hf_h501_elementIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ElementIdentifier },
667 { &hf_h501_domainIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
668 { &hf_h501_alternates , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_AlternatePEInfo },
669 { &hf_h501_securityMode_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SecurityMode },
670 { &hf_h501_timeToLive , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_4294967295 },
671 { &hf_h501_usageSpec , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_UsageSpecification },
676 dissect_h501_ServiceConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
677 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
678 ett_h501_ServiceConfirmation, ServiceConfirmation_sequence);
684 static const value_string h501_ServiceRejectionReason_vals[] = {
685 { 0, "serviceUnavailable" },
686 { 1, "serviceRedirected" },
690 { 5, "unknownServiceID" },
691 { 6, "cannotSupportUsageSpec" },
692 { 7, "neededFeature" },
693 { 8, "genericDataReason" },
694 { 9, "usageUnavailable" },
695 { 10, "unknownUsageSendTo" },
699 static const per_choice_t ServiceRejectionReason_choice[] = {
700 { 0, &hf_h501_serviceUnavailable, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
701 { 1, &hf_h501_serviceRedirected, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
702 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
703 { 3, &hf_h501_continue , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
704 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
705 { 5, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
706 { 6, &hf_h501_cannotSupportUsageSpec, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
707 { 7, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
708 { 8, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
709 { 9, &hf_h501_usageUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
710 { 10, &hf_h501_unknownUsageSendTo, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
715 dissect_h501_ServiceRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
716 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
717 ett_h501_ServiceRejectionReason, ServiceRejectionReason_choice,
724 static const per_sequence_t ServiceRejection_sequence[] = {
725 { &hf_h501_reason , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ServiceRejectionReason },
726 { &hf_h501_alternates , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_AlternatePEInfo },
731 dissect_h501_ServiceRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
732 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
733 ett_h501_ServiceRejection, ServiceRejection_sequence);
739 static const value_string h501_ServiceReleaseReason_vals[] = {
740 { 0, "outOfService" },
741 { 1, "maintenance" },
747 static const per_choice_t ServiceReleaseReason_choice[] = {
748 { 0, &hf_h501_outOfService , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
749 { 1, &hf_h501_maintenance , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
750 { 2, &hf_h501_terminated , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
751 { 3, &hf_h501_expired , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
756 dissect_h501_ServiceReleaseReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
757 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
758 ett_h501_ServiceReleaseReason, ServiceReleaseReason_choice,
765 static const per_sequence_t ServiceRelease_sequence[] = {
766 { &hf_h501_reason_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ServiceReleaseReason },
767 { &hf_h501_alternates , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_AlternatePEInfo },
772 dissect_h501_ServiceRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
773 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
774 ett_h501_ServiceRelease, ServiceRelease_sequence);
782 dissect_h501_DescriptorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
783 offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
789 static const per_sequence_t SEQUENCE_OF_DescriptorID_sequence_of[1] = {
790 { &hf_h501_descriptorID_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorID },
794 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_) {
795 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
796 ett_h501_SEQUENCE_OF_DescriptorID, SEQUENCE_OF_DescriptorID_sequence_of);
802 static const per_sequence_t DescriptorRequest_sequence[] = {
803 { &hf_h501_descriptorID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_DescriptorID },
808 dissect_h501_DescriptorRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
809 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
810 ett_h501_DescriptorRequest, DescriptorRequest_sequence);
818 dissect_h501_GlobalTimeStamp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
819 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
826 static const per_sequence_t DescriptorInfo_sequence[] = {
827 { &hf_h501_descriptorID_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorID },
828 { &hf_h501_lastChanged , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_GlobalTimeStamp },
833 dissect_h501_DescriptorInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
834 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
835 ett_h501_DescriptorInfo, DescriptorInfo_sequence);
841 static const per_sequence_t T_range_sequence[] = {
842 { &hf_h501_startOfRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
843 { &hf_h501_endOfRange , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_PartyNumber },
848 dissect_h501_T_range(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
849 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
850 ett_h501_T_range, T_range_sequence);
856 static const value_string h501_Pattern_vals[] = {
863 static const per_choice_t Pattern_choice[] = {
864 { 0, &hf_h501_specific , ASN1_EXTENSION_ROOT , dissect_h225_AliasAddress },
865 { 1, &hf_h501_wildcard , ASN1_EXTENSION_ROOT , dissect_h225_AliasAddress },
866 { 2, &hf_h501_range , ASN1_EXTENSION_ROOT , dissect_h501_T_range },
871 dissect_h501_Pattern(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
872 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
873 ett_h501_Pattern, Pattern_choice,
880 static const per_sequence_t SEQUENCE_OF_Pattern_sequence_of[1] = {
881 { &hf_h501_pattern_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_Pattern },
885 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_) {
886 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
887 ett_h501_SEQUENCE_OF_Pattern, SEQUENCE_OF_Pattern_sequence_of);
893 static const value_string h501_T_messageType_vals[] = {
894 { 0, "sendAccessRequest" },
896 { 2, "nonExistent" },
900 static const per_choice_t T_messageType_choice[] = {
901 { 0, &hf_h501_sendAccessRequest, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
902 { 1, &hf_h501_sendSetup , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
903 { 2, &hf_h501_nonExistent , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
908 dissect_h501_T_messageType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
909 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
910 ett_h501_T_messageType, T_messageType_choice,
919 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_) {
920 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
929 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_) {
930 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
931 -127, 127U, NULL, FALSE);
939 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_) {
940 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
949 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_) {
950 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
951 0U, 4294967295U, NULL, FALSE);
957 static const value_string h501_T_units_vals[] = {
967 static const per_choice_t T_units_choice[] = {
968 { 0, &hf_h501_seconds , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
969 { 1, &hf_h501_packets , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
970 { 2, &hf_h501_bytes , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
971 { 3, &hf_h501_initial , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
972 { 4, &hf_h501_minimum , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
973 { 5, &hf_h501_maximum , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
978 dissect_h501_T_units(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
979 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
980 ett_h501_T_units, T_units_choice,
987 static const per_sequence_t PriceElement_sequence[] = {
988 { &hf_h501_amount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_4294967295 },
989 { &hf_h501_quantum , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_4294967295 },
990 { &hf_h501_units , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_units },
995 dissect_h501_PriceElement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
996 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
997 ett_h501_PriceElement, PriceElement_sequence);
1003 static const per_sequence_t SEQUENCE_OF_PriceElement_sequence_of[1] = {
1004 { &hf_h501_priceElement_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_PriceElement },
1008 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_) {
1009 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1010 ett_h501_SEQUENCE_OF_PriceElement, SEQUENCE_OF_PriceElement_sequence_of);
1018 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_) {
1019 offset = dissect_per_IA5String(tvb, offset, actx, tree, hf_index,
1026 static const per_sequence_t PriceInfoSpec_sequence[] = {
1027 { &hf_h501_currency , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_IA5String_SIZE_3 },
1028 { &hf_h501_currencyScale , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_M127_127 },
1029 { &hf_h501_validFrom , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_GlobalTimeStamp },
1030 { &hf_h501_validUntil , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_GlobalTimeStamp },
1031 { &hf_h501_hoursFrom , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_IA5String_SIZE_6 },
1032 { &hf_h501_hoursUntil , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_IA5String_SIZE_6 },
1033 { &hf_h501_priceElement , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_PriceElement },
1034 { &hf_h501_priceFormula , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_IA5String_SIZE_1_2048 },
1035 { NULL, 0, 0, NULL }
1039 dissect_h501_PriceInfoSpec(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1040 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1041 ett_h501_PriceInfoSpec, PriceInfoSpec_sequence);
1047 static const per_sequence_t SEQUENCE_OF_PriceInfoSpec_sequence_of[1] = {
1048 { &hf_h501_priceInfo_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_PriceInfoSpec },
1052 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_) {
1053 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1054 ett_h501_SEQUENCE_OF_PriceInfoSpec, SEQUENCE_OF_PriceInfoSpec_sequence_of);
1062 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_) {
1063 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1064 0U, 127U, NULL, FALSE);
1070 static const value_string h501_AccessToken_vals[] = {
1072 { 1, "cryptoToken" },
1073 { 2, "genericData" },
1077 static const per_choice_t AccessToken_choice[] = {
1078 { 0, &hf_h501_token , ASN1_EXTENSION_ROOT , dissect_h235_ClearToken },
1079 { 1, &hf_h501_cryptoToken , ASN1_EXTENSION_ROOT , dissect_h225_CryptoH323Token },
1080 { 2, &hf_h501_genericData_01 , ASN1_NOT_EXTENSION_ROOT, dissect_h225_GenericData },
1081 { 0, NULL, 0, NULL }
1085 dissect_h501_AccessToken(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1086 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1087 ett_h501_AccessToken, AccessToken_choice,
1094 static const per_sequence_t SEQUENCE_OF_AccessToken_sequence_of[1] = {
1095 { &hf_h501_accessTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_AccessToken },
1099 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_) {
1100 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1101 ett_h501_SEQUENCE_OF_AccessToken, SEQUENCE_OF_AccessToken_sequence_of);
1107 static const per_sequence_t SEQUENCE_OF_CircuitIdentifier_sequence_of[1] = {
1108 { &hf_h501_supportedCircuits_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CircuitIdentifier },
1112 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_) {
1113 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1114 ett_h501_SEQUENCE_OF_CircuitIdentifier, SEQUENCE_OF_CircuitIdentifier_sequence_of);
1120 static const per_sequence_t ContactInformation_sequence[] = {
1121 { &hf_h501_transportAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1122 { &hf_h501_priority , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_127 },
1123 { &hf_h501_transportQoS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TransportQOS },
1124 { &hf_h501_security_01 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SecurityMode },
1125 { &hf_h501_accessTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_AccessToken },
1126 { &hf_h501_multipleCalls , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_BOOLEAN },
1127 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
1128 { &hf_h501_circuitID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
1129 { &hf_h501_supportedCircuits, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CircuitIdentifier },
1130 { NULL, 0, 0, NULL }
1134 dissect_h501_ContactInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1135 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1136 ett_h501_ContactInformation, ContactInformation_sequence);
1142 static const per_sequence_t SEQUENCE_OF_ContactInformation_sequence_of[1] = {
1143 { &hf_h501_contacts_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_ContactInformation },
1147 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_) {
1148 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1149 ett_h501_SEQUENCE_OF_ContactInformation, SEQUENCE_OF_ContactInformation_sequence_of);
1155 static const per_sequence_t RouteInformation_sequence[] = {
1156 { &hf_h501_messageType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_messageType },
1157 { &hf_h501_callSpecific , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_BOOLEAN },
1158 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
1159 { &hf_h501_priceInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_PriceInfoSpec },
1160 { &hf_h501_contacts , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_ContactInformation },
1161 { &hf_h501_type , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointType },
1162 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
1163 { &hf_h501_circuitID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
1164 { &hf_h501_supportedCircuits, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CircuitIdentifier },
1165 { NULL, 0, 0, NULL }
1169 dissect_h501_RouteInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1170 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1171 ett_h501_RouteInformation, RouteInformation_sequence);
1177 static const per_sequence_t SEQUENCE_OF_RouteInformation_sequence_of[1] = {
1178 { &hf_h501_routeInfo_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_RouteInformation },
1182 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_) {
1183 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1184 ett_h501_SEQUENCE_OF_RouteInformation, SEQUENCE_OF_RouteInformation_sequence_of);
1190 static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of[1] = {
1191 { &hf_h501_desiredProtocols_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_SupportedProtocols },
1195 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_) {
1196 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1197 ett_h501_SEQUENCE_OF_SupportedProtocols, SEQUENCE_OF_SupportedProtocols_sequence_of);
1203 static const per_sequence_t AddressTemplate_sequence[] = {
1204 { &hf_h501_pattern , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_Pattern },
1205 { &hf_h501_routeInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_RouteInformation },
1206 { &hf_h501_timeToLive , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_4294967295 },
1207 { &hf_h501_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SupportedProtocols },
1208 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
1209 { NULL, 0, 0, NULL }
1213 dissect_h501_AddressTemplate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1214 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1215 ett_h501_AddressTemplate, AddressTemplate_sequence);
1221 static const per_sequence_t SEQUENCE_OF_AddressTemplate_sequence_of[1] = {
1222 { &hf_h501_templates_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_AddressTemplate },
1226 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_) {
1227 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1228 ett_h501_SEQUENCE_OF_AddressTemplate, SEQUENCE_OF_AddressTemplate_sequence_of);
1234 static const per_sequence_t Descriptor_sequence[] = {
1235 { &hf_h501_descriptorInfo_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorInfo },
1236 { &hf_h501_templates , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AddressTemplate },
1237 { &hf_h501_gatekeeperID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_GatekeeperIdentifier },
1238 { NULL, 0, 0, NULL }
1242 dissect_h501_Descriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1243 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1244 ett_h501_Descriptor, Descriptor_sequence);
1250 static const per_sequence_t SEQUENCE_OF_Descriptor_sequence_of[1] = {
1251 { &hf_h501_descriptor_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_Descriptor },
1255 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_) {
1256 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1257 ett_h501_SEQUENCE_OF_Descriptor, SEQUENCE_OF_Descriptor_sequence_of);
1263 static const per_sequence_t DescriptorConfirmation_sequence[] = {
1264 { &hf_h501_descriptor , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_Descriptor },
1265 { NULL, 0, 0, NULL }
1269 dissect_h501_DescriptorConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1270 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1271 ett_h501_DescriptorConfirmation, DescriptorConfirmation_sequence);
1277 static const value_string h501_DescriptorRejectionReason_vals[] = {
1278 { 0, "packetSizeExceeded" },
1281 { 3, "hopCountExceeded" },
1282 { 4, "noServiceRelationship" },
1284 { 6, "neededFeature" },
1285 { 7, "genericDataReason" },
1286 { 8, "unknownServiceID" },
1290 static const per_choice_t DescriptorRejectionReason_choice[] = {
1291 { 0, &hf_h501_packetSizeExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1292 { 1, &hf_h501_illegalID , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1293 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1294 { 3, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1295 { 4, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1296 { 5, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1297 { 6, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1298 { 7, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1299 { 8, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1300 { 0, NULL, 0, NULL }
1304 dissect_h501_DescriptorRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1305 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1306 ett_h501_DescriptorRejectionReason, DescriptorRejectionReason_choice,
1313 static const per_sequence_t DescriptorRejection_sequence[] = {
1314 { &hf_h501_reason_02 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorRejectionReason },
1315 { &hf_h501_descriptorID_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_DescriptorID },
1316 { NULL, 0, 0, NULL }
1320 dissect_h501_DescriptorRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1321 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1322 ett_h501_DescriptorRejection, DescriptorRejection_sequence);
1328 static const per_sequence_t DescriptorIDRequest_sequence[] = {
1329 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1333 dissect_h501_DescriptorIDRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1334 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1335 ett_h501_DescriptorIDRequest, DescriptorIDRequest_sequence);
1341 static const per_sequence_t SEQUENCE_OF_DescriptorInfo_sequence_of[1] = {
1342 { &hf_h501_descriptorInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorInfo },
1346 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_) {
1347 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1348 ett_h501_SEQUENCE_OF_DescriptorInfo, SEQUENCE_OF_DescriptorInfo_sequence_of);
1354 static const per_sequence_t DescriptorIDConfirmation_sequence[] = {
1355 { &hf_h501_descriptorInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_DescriptorInfo },
1356 { NULL, 0, 0, NULL }
1360 dissect_h501_DescriptorIDConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1361 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1362 ett_h501_DescriptorIDConfirmation, DescriptorIDConfirmation_sequence);
1368 static const value_string h501_DescriptorIDRejectionReason_vals[] = {
1369 { 0, "noDescriptors" },
1371 { 2, "hopCountExceeded" },
1372 { 3, "noServiceRelationship" },
1374 { 5, "neededFeature" },
1375 { 6, "genericDataReason" },
1376 { 7, "unknownServiceID" },
1380 static const per_choice_t DescriptorIDRejectionReason_choice[] = {
1381 { 0, &hf_h501_noDescriptors , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1382 { 1, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1383 { 2, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1384 { 3, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1385 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1386 { 5, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1387 { 6, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1388 { 7, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1389 { 0, NULL, 0, NULL }
1393 dissect_h501_DescriptorIDRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1394 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1395 ett_h501_DescriptorIDRejectionReason, DescriptorIDRejectionReason_choice,
1402 static const per_sequence_t DescriptorIDRejection_sequence[] = {
1403 { &hf_h501_reason_03 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_DescriptorIDRejectionReason },
1404 { NULL, 0, 0, NULL }
1408 dissect_h501_DescriptorIDRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1409 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1410 ett_h501_DescriptorIDRejection, DescriptorIDRejection_sequence);
1416 static const value_string h501_T_descriptorInfo_vals[] = {
1417 { 0, "descriptorID" },
1418 { 1, "descriptor" },
1422 static const per_choice_t T_descriptorInfo_choice[] = {
1423 { 0, &hf_h501_descriptorID_01, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorID },
1424 { 1, &hf_h501_descriptor_01 , ASN1_EXTENSION_ROOT , dissect_h501_Descriptor },
1425 { 0, NULL, 0, NULL }
1429 dissect_h501_T_descriptorInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1430 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1431 ett_h501_T_descriptorInfo, T_descriptorInfo_choice,
1438 static const value_string h501_T_updateType_vals[] = {
1445 static const per_choice_t T_updateType_choice[] = {
1446 { 0, &hf_h501_added , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1447 { 1, &hf_h501_deleted , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1448 { 2, &hf_h501_changed , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1449 { 0, NULL, 0, NULL }
1453 dissect_h501_T_updateType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1454 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1455 ett_h501_T_updateType, T_updateType_choice,
1462 static const per_sequence_t UpdateInformation_sequence[] = {
1463 { &hf_h501_descriptorInfo_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_descriptorInfo },
1464 { &hf_h501_updateType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_T_updateType },
1465 { NULL, 0, 0, NULL }
1469 dissect_h501_UpdateInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1470 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1471 ett_h501_UpdateInformation, UpdateInformation_sequence);
1477 static const per_sequence_t SEQUENCE_OF_UpdateInformation_sequence_of[1] = {
1478 { &hf_h501_updateInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_UpdateInformation },
1482 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_) {
1483 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1484 ett_h501_SEQUENCE_OF_UpdateInformation, SEQUENCE_OF_UpdateInformation_sequence_of);
1490 static const per_sequence_t DescriptorUpdate_sequence[] = {
1491 { &hf_h501_sender , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1492 { &hf_h501_updateInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_UpdateInformation },
1493 { NULL, 0, 0, NULL }
1497 dissect_h501_DescriptorUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1498 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1499 ett_h501_DescriptorUpdate, DescriptorUpdate_sequence);
1505 static const per_sequence_t DescriptorUpdateAck_sequence[] = {
1506 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1510 dissect_h501_DescriptorUpdateAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1511 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1512 ett_h501_DescriptorUpdateAck, DescriptorUpdateAck_sequence);
1518 static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of[1] = {
1519 { &hf_h501_logicalAddresses_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1523 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_) {
1524 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1525 ett_h501_SEQUENCE_OF_AliasAddress, SEQUENCE_OF_AliasAddress_sequence_of);
1531 static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of[1] = {
1532 { &hf_h501_cryptoTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_CryptoH323Token },
1536 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_) {
1537 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1538 ett_h501_SEQUENCE_OF_CryptoH323Token, SEQUENCE_OF_CryptoH323Token_sequence_of);
1544 static const per_sequence_t UserInformation_sequence[] = {
1545 { &hf_h501_userIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1546 { &hf_h501_userAuthenticator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CryptoH323Token },
1547 { NULL, 0, 0, NULL }
1551 dissect_h501_UserInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1552 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1553 ett_h501_UserInformation, UserInformation_sequence);
1561 dissect_h501_TimeZone(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1562 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1563 -43200, 43200U, NULL, FALSE);
1569 static const per_sequence_t PartyInformation_sequence[] = {
1570 { &hf_h501_logicalAddresses, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AliasAddress },
1571 { &hf_h501_domainIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
1572 { &hf_h501_transportAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_AliasAddress },
1573 { &hf_h501_endpointType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_EndpointType },
1574 { &hf_h501_userInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UserInformation },
1575 { &hf_h501_timeZone , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_TimeZone },
1576 { NULL, 0, 0, NULL }
1580 dissect_h501_PartyInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1581 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1582 ett_h501_PartyInformation, PartyInformation_sequence);
1588 static const per_sequence_t CallInformation_sequence[] = {
1589 { &hf_h501_callIdentifier , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1590 { &hf_h501_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
1591 { &hf_h501_circuitID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_CircuitInfo },
1592 { NULL, 0, 0, NULL }
1596 dissect_h501_CallInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1597 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1598 ett_h501_CallInformation, CallInformation_sequence);
1604 static const per_sequence_t AccessRequest_sequence[] = {
1605 { &hf_h501_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_PartyInformation },
1606 { &hf_h501_sourceInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
1607 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_CallInformation },
1608 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
1609 { &hf_h501_desiredProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SupportedProtocols },
1610 { NULL, 0, 0, NULL }
1614 dissect_h501_AccessRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1615 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1616 ett_h501_AccessRequest, AccessRequest_sequence);
1622 static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of[1] = {
1623 { &hf_h501_serviceControl_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_ServiceControlSession },
1627 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_) {
1628 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1629 ett_h501_SEQUENCE_OF_ServiceControlSession, SEQUENCE_OF_ServiceControlSession_sequence_of);
1635 static const per_sequence_t AccessConfirmation_sequence[] = {
1636 { &hf_h501_templates , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_AddressTemplate },
1637 { &hf_h501_partialResponse, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_BOOLEAN },
1638 { &hf_h501_supportedProtocols, ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_SupportedProtocols },
1639 { &hf_h501_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ServiceControlSession },
1640 { NULL, 0, 0, NULL }
1644 dissect_h501_AccessConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1645 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1646 ett_h501_AccessConfirmation, AccessConfirmation_sequence);
1652 static const value_string h501_AccessRejectionReason_vals[] = {
1654 { 1, "packetSizeExceeded" },
1656 { 3, "hopCountExceeded" },
1657 { 4, "needCallInformation" },
1658 { 5, "noServiceRelationship" },
1660 { 7, "neededFeature" },
1661 { 8, "genericDataReason" },
1662 { 9, "destinationUnavailable" },
1663 { 10, "aliasesInconsistent" },
1664 { 11, "resourceUnavailable" },
1665 { 12, "incompleteAddress" },
1666 { 13, "unknownServiceID" },
1667 { 14, "usageUnavailable" },
1668 { 15, "cannotSupportUsageSpec" },
1669 { 16, "unknownUsageSendTo" },
1673 static const per_choice_t AccessRejectionReason_choice[] = {
1674 { 0, &hf_h501_noMatch , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1675 { 1, &hf_h501_packetSizeExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1676 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1677 { 3, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1678 { 4, &hf_h501_needCallInformation, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1679 { 5, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1680 { 6, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1681 { 7, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1682 { 8, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1683 { 9, &hf_h501_destinationUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1684 { 10, &hf_h501_aliasesInconsistent, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1685 { 11, &hf_h501_resourceUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1686 { 12, &hf_h501_incompleteAddress, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1687 { 13, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1688 { 14, &hf_h501_usageUnavailable, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1689 { 15, &hf_h501_cannotSupportUsageSpec, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1690 { 16, &hf_h501_unknownUsageSendTo, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1691 { 0, NULL, 0, NULL }
1695 dissect_h501_AccessRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1696 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1697 ett_h501_AccessRejectionReason, AccessRejectionReason_choice,
1704 static const per_sequence_t AccessRejection_sequence[] = {
1705 { &hf_h501_reason_04 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_AccessRejectionReason },
1706 { &hf_h501_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ServiceControlSession },
1707 { NULL, 0, 0, NULL }
1711 dissect_h501_AccessRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1712 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1713 ett_h501_AccessRejection, AccessRejection_sequence);
1719 static const per_sequence_t RequestInProgress_sequence[] = {
1720 { &hf_h501_delay , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_65535 },
1721 { &hf_h501_serviceControl , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ServiceControlSession },
1722 { NULL, 0, 0, NULL }
1726 dissect_h501_RequestInProgress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1727 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1728 ett_h501_RequestInProgress, RequestInProgress_sequence);
1734 static const per_sequence_t NonStandardRequest_sequence[] = {
1735 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1739 dissect_h501_NonStandardRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1740 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1741 ett_h501_NonStandardRequest, NonStandardRequest_sequence);
1747 static const per_sequence_t NonStandardConfirmation_sequence[] = {
1748 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1752 dissect_h501_NonStandardConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1753 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1754 ett_h501_NonStandardConfirmation, NonStandardConfirmation_sequence);
1760 static const value_string h501_NonStandardRejectionReason_vals[] = {
1761 { 0, "notSupported" },
1762 { 1, "noServiceRelationship" },
1764 { 3, "neededFeature" },
1765 { 4, "genericDataReason" },
1766 { 5, "unknownServiceID" },
1770 static const per_choice_t NonStandardRejectionReason_choice[] = {
1771 { 0, &hf_h501_notSupported , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1772 { 1, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1773 { 2, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1774 { 3, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1775 { 4, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1776 { 5, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1777 { 0, NULL, 0, NULL }
1781 dissect_h501_NonStandardRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1782 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1783 ett_h501_NonStandardRejectionReason, NonStandardRejectionReason_choice,
1790 static const per_sequence_t NonStandardRejection_sequence[] = {
1791 { &hf_h501_reason_08 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_NonStandardRejectionReason },
1792 { NULL, 0, 0, NULL }
1796 dissect_h501_NonStandardRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1797 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1798 ett_h501_NonStandardRejection, NonStandardRejection_sequence);
1806 dissect_h501_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1807 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1808 NO_BOUND, NO_BOUND, FALSE, NULL);
1814 static const value_string h501_UnknownMessageReason_vals[] = {
1815 { 0, "notUnderstood" },
1820 static const per_choice_t UnknownMessageReason_choice[] = {
1821 { 0, &hf_h501_notUnderstood , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1822 { 1, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1823 { 0, NULL, 0, NULL }
1827 dissect_h501_UnknownMessageReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1828 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1829 ett_h501_UnknownMessageReason, UnknownMessageReason_choice,
1836 static const per_sequence_t UnknownMessageResponse_sequence[] = {
1837 { &hf_h501_unknownMessage , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_OCTET_STRING },
1838 { &hf_h501_reason_09 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UnknownMessageReason },
1839 { NULL, 0, 0, NULL }
1843 dissect_h501_UnknownMessageResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1844 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1845 ett_h501_UnknownMessageResponse, UnknownMessageResponse_sequence);
1851 static const per_sequence_t UsageRequest_sequence[] = {
1852 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_CallInformation },
1853 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageSpecification },
1854 { NULL, 0, 0, NULL }
1858 dissect_h501_UsageRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1859 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1860 ett_h501_UsageRequest, UsageRequest_sequence);
1866 static const per_sequence_t UsageConfirmation_sequence[] = {
1867 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1871 dissect_h501_UsageConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1872 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1873 ett_h501_UsageConfirmation, UsageConfirmation_sequence);
1879 static const value_string h501_Role_vals[] = {
1880 { 0, "originator" },
1881 { 1, "destination" },
1882 { 2, "nonStandardData" },
1886 static const per_choice_t Role_choice[] = {
1887 { 0, &hf_h501_originator , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1888 { 1, &hf_h501_destination , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1889 { 2, &hf_h501_nonStandardData, ASN1_EXTENSION_ROOT , dissect_h225_NonStandardParameter },
1890 { 0, NULL, 0, NULL }
1894 dissect_h501_Role(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1895 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1896 ett_h501_Role, Role_choice,
1903 static const value_string h501_UsageCallStatus_vals[] = {
1904 { 0, "preConnect" },
1905 { 1, "callInProgress" },
1907 { 3, "registrationLost" },
1911 static const per_choice_t UsageCallStatus_choice[] = {
1912 { 0, &hf_h501_preConnect , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1913 { 1, &hf_h501_callInProgress , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1914 { 2, &hf_h501_callEnded , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
1915 { 3, &hf_h501_registrationLost, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
1916 { 0, NULL, 0, NULL }
1920 dissect_h501_UsageCallStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1921 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1922 ett_h501_UsageCallStatus, UsageCallStatus_choice,
1929 static const per_sequence_t TerminationCause_sequence[] = {
1930 { &hf_h501_releaseCompleteReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ReleaseCompleteReason },
1931 { &hf_h501_causeIE , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_INTEGER_1_65535 },
1932 { &hf_h501_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1933 { NULL, 0, 0, NULL }
1937 dissect_h501_TerminationCause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1938 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1939 ett_h501_TerminationCause, TerminationCause_sequence);
1945 static const per_sequence_t UsageField_sequence[] = {
1946 { &hf_h501_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_OBJECT_IDENTIFIER },
1947 { &hf_h501_value , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_OCTET_STRING },
1948 { NULL, 0, 0, NULL }
1952 dissect_h501_UsageField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1953 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1954 ett_h501_UsageField, UsageField_sequence);
1960 static const per_sequence_t SEQUENCE_OF_UsageField_sequence_of[1] = {
1961 { &hf_h501_usageFields_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h501_UsageField },
1965 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_) {
1966 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1967 ett_h501_SEQUENCE_OF_UsageField, SEQUENCE_OF_UsageField_sequence_of);
1973 static const per_sequence_t UsageIndication_sequence[] = {
1974 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_CallInformation },
1975 { &hf_h501_accessTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_AccessToken },
1976 { &hf_h501_senderRole , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_Role },
1977 { &hf_h501_usageCallStatus, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageCallStatus },
1978 { &hf_h501_srcInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
1979 { &hf_h501_destAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_PartyInformation },
1980 { &hf_h501_startTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
1981 { &hf_h501_endTime , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h235_TimeStamp },
1982 { &hf_h501_terminationCause, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_TerminationCause },
1983 { &hf_h501_usageFields , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_SEQUENCE_OF_UsageField },
1984 { NULL, 0, 0, NULL }
1988 dissect_h501_UsageIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1989 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1990 ett_h501_UsageIndication, UsageIndication_sequence);
1996 static const per_sequence_t UsageIndicationConfirmation_sequence[] = {
1997 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
2001 dissect_h501_UsageIndicationConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2002 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2003 ett_h501_UsageIndicationConfirmation, UsageIndicationConfirmation_sequence);
2009 static const value_string h501_UsageIndicationRejectionReason_vals[] = {
2010 { 0, "unknownCall" },
2011 { 1, "incomplete" },
2013 { 3, "noServiceRelationship" },
2015 { 5, "neededFeature" },
2016 { 6, "genericDataReason" },
2017 { 7, "unknownServiceID" },
2021 static const per_choice_t UsageIndicationRejectionReason_choice[] = {
2022 { 0, &hf_h501_unknownCall , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2023 { 1, &hf_h501_incomplete , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2024 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2025 { 3, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2026 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2027 { 5, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2028 { 6, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2029 { 7, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2030 { 0, NULL, 0, NULL }
2034 dissect_h501_UsageIndicationRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2036 ett_h501_UsageIndicationRejectionReason, UsageIndicationRejectionReason_choice,
2043 static const per_sequence_t UsageIndicationRejection_sequence[] = {
2044 { &hf_h501_reason_06 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageIndicationRejectionReason },
2045 { NULL, 0, 0, NULL }
2049 dissect_h501_UsageIndicationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2050 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2051 ett_h501_UsageIndicationRejection, UsageIndicationRejection_sequence);
2057 static const value_string h501_UsageRejectReason_vals[] = {
2058 { 0, "invalidCall" },
2059 { 1, "unavailable" },
2061 { 3, "noServiceRelationship" },
2063 { 5, "neededFeature" },
2064 { 6, "genericDataReason" },
2065 { 7, "unknownServiceID" },
2069 static const per_choice_t UsageRejectReason_choice[] = {
2070 { 0, &hf_h501_invalidCall , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2071 { 1, &hf_h501_unavailable , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2072 { 2, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2073 { 3, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2074 { 4, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2075 { 5, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2076 { 6, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2077 { 7, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2078 { 0, NULL, 0, NULL }
2082 dissect_h501_UsageRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2083 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2084 ett_h501_UsageRejectReason, UsageRejectReason_choice,
2091 static const per_sequence_t UsageRejection_sequence[] = {
2092 { &hf_h501_reason_05 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_UsageRejectReason },
2093 { NULL, 0, 0, NULL }
2097 dissect_h501_UsageRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2098 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2099 ett_h501_UsageRejection, UsageRejection_sequence);
2105 static const per_sequence_t ValidationRequest_sequence[] = {
2106 { &hf_h501_accessToken , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_AccessToken },
2107 { &hf_h501_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
2108 { &hf_h501_sourceInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
2109 { &hf_h501_callInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_CallInformation },
2110 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
2111 { NULL, 0, 0, NULL }
2115 dissect_h501_ValidationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2116 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2117 ett_h501_ValidationRequest, ValidationRequest_sequence);
2123 static const per_sequence_t ValidationConfirmation_sequence[] = {
2124 { &hf_h501_destinationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_PartyInformation },
2125 { &hf_h501_usageSpec , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_UsageSpecification },
2126 { NULL, 0, 0, NULL }
2130 dissect_h501_ValidationConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2131 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2132 ett_h501_ValidationConfirmation, ValidationConfirmation_sequence);
2138 static const value_string h501_ValidationRejectionReason_vals[] = {
2139 { 0, "tokenNotValid" },
2141 { 2, "hopCountExceeded" },
2142 { 3, "missingSourceInfo" },
2143 { 4, "missingDestInfo" },
2144 { 5, "noServiceRelationship" },
2146 { 7, "neededFeature" },
2147 { 8, "genericDataReason" },
2148 { 9, "unknownServiceID" },
2152 static const per_choice_t ValidationRejectionReason_choice[] = {
2153 { 0, &hf_h501_tokenNotValid , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2154 { 1, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2155 { 2, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2156 { 3, &hf_h501_missingSourceInfo, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2157 { 4, &hf_h501_missingDestInfo, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2158 { 5, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2159 { 6, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2160 { 7, &hf_h501_neededFeature , ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2161 { 8, &hf_h501_genericDataReason, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2162 { 9, &hf_h501_unknownServiceID, ASN1_NOT_EXTENSION_ROOT, dissect_h501_NULL },
2163 { 0, NULL, 0, NULL }
2167 dissect_h501_ValidationRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2168 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2169 ett_h501_ValidationRejectionReason, ValidationRejectionReason_choice,
2176 static const per_sequence_t ValidationRejection_sequence[] = {
2177 { &hf_h501_reason_07 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ValidationRejectionReason },
2178 { NULL, 0, 0, NULL }
2182 dissect_h501_ValidationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2183 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2184 ett_h501_ValidationRejection, ValidationRejection_sequence);
2192 dissect_h501_ApplicationMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2193 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
2194 NO_BOUND, NO_BOUND, FALSE, NULL);
2200 static const per_sequence_t AuthenticationRequest_sequence[] = {
2201 { &hf_h501_applicationMessage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ApplicationMessage },
2202 { NULL, 0, 0, NULL }
2206 dissect_h501_AuthenticationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2207 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2208 ett_h501_AuthenticationRequest, AuthenticationRequest_sequence);
2214 static const per_sequence_t AuthenticationConfirmation_sequence[] = {
2215 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
2219 dissect_h501_AuthenticationConfirmation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2220 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2221 ett_h501_AuthenticationConfirmation, AuthenticationConfirmation_sequence);
2227 static const value_string h501_AuthenticationRejectionReason_vals[] = {
2229 { 1, "hopCountExceeded" },
2230 { 2, "noServiceRelationship" },
2232 { 4, "neededFeature" },
2233 { 5, "genericDataReason" },
2234 { 6, "unknownServiceID" },
2235 { 7, "securityWrongSyncTime" },
2236 { 8, "securityReplay" },
2237 { 9, "securityWrongGeneralID" },
2238 { 10, "securityWrongSendersID" },
2239 { 11, "securityIntegrityFailed" },
2240 { 12, "securityWrongOID" },
2244 static const per_choice_t AuthenticationRejectionReason_choice[] = {
2245 { 0, &hf_h501_security , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2246 { 1, &hf_h501_hopCountExceeded, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2247 { 2, &hf_h501_noServiceRelationship, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2248 { 3, &hf_h501_undefined , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2249 { 4, &hf_h501_neededFeature , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2250 { 5, &hf_h501_genericDataReason, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2251 { 6, &hf_h501_unknownServiceID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2252 { 7, &hf_h501_securityWrongSyncTime, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2253 { 8, &hf_h501_securityReplay , ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2254 { 9, &hf_h501_securityWrongGeneralID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2255 { 10, &hf_h501_securityWrongSendersID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2256 { 11, &hf_h501_securityIntegrityFailed, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2257 { 12, &hf_h501_securityWrongOID, ASN1_EXTENSION_ROOT , dissect_h501_NULL },
2258 { 0, NULL, 0, NULL }
2262 dissect_h501_AuthenticationRejectionReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2263 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2264 ett_h501_AuthenticationRejectionReason, AuthenticationRejectionReason_choice,
2271 static const per_sequence_t AuthenticationRejection_sequence[] = {
2272 { &hf_h501_reason_10 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_AuthenticationRejectionReason },
2273 { NULL, 0, 0, NULL }
2277 dissect_h501_AuthenticationRejection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2278 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2279 ett_h501_AuthenticationRejection, AuthenticationRejection_sequence);
2285 static const value_string h501_MessageBody_vals[] = {
2286 { 0, "serviceRequest" },
2287 { 1, "serviceConfirmation" },
2288 { 2, "serviceRejection" },
2289 { 3, "serviceRelease" },
2290 { 4, "descriptorRequest" },
2291 { 5, "descriptorConfirmation" },
2292 { 6, "descriptorRejection" },
2293 { 7, "descriptorIDRequest" },
2294 { 8, "descriptorIDConfirmation" },
2295 { 9, "descriptorIDRejection" },
2296 { 10, "descriptorUpdate" },
2297 { 11, "descriptorUpdateAck" },
2298 { 12, "accessRequest" },
2299 { 13, "accessConfirmation" },
2300 { 14, "accessRejection" },
2301 { 15, "requestInProgress" },
2302 { 16, "nonStandardRequest" },
2303 { 17, "nonStandardConfirmation" },
2304 { 18, "nonStandardRejection" },
2305 { 19, "unknownMessageResponse" },
2306 { 20, "usageRequest" },
2307 { 21, "usageConfirmation" },
2308 { 22, "usageIndication" },
2309 { 23, "usageIndicationConfirmation" },
2310 { 24, "usageIndicationRejection" },
2311 { 25, "usageRejection" },
2312 { 26, "validationRequest" },
2313 { 27, "validationConfirmation" },
2314 { 28, "validationRejection" },
2315 { 29, "authenticationRequest" },
2316 { 30, "authenticationConfirmation" },
2317 { 31, "authenticationRejection" },
2321 static const per_choice_t MessageBody_choice[] = {
2322 { 0, &hf_h501_serviceRequest , ASN1_EXTENSION_ROOT , dissect_h501_ServiceRequest },
2323 { 1, &hf_h501_serviceConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_ServiceConfirmation },
2324 { 2, &hf_h501_serviceRejection, ASN1_EXTENSION_ROOT , dissect_h501_ServiceRejection },
2325 { 3, &hf_h501_serviceRelease , ASN1_EXTENSION_ROOT , dissect_h501_ServiceRelease },
2326 { 4, &hf_h501_descriptorRequest, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorRequest },
2327 { 5, &hf_h501_descriptorConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorConfirmation },
2328 { 6, &hf_h501_descriptorRejection, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorRejection },
2329 { 7, &hf_h501_descriptorIDRequest, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorIDRequest },
2330 { 8, &hf_h501_descriptorIDConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorIDConfirmation },
2331 { 9, &hf_h501_descriptorIDRejection, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorIDRejection },
2332 { 10, &hf_h501_descriptorUpdate, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorUpdate },
2333 { 11, &hf_h501_descriptorUpdateAck, ASN1_EXTENSION_ROOT , dissect_h501_DescriptorUpdateAck },
2334 { 12, &hf_h501_accessRequest , ASN1_EXTENSION_ROOT , dissect_h501_AccessRequest },
2335 { 13, &hf_h501_accessConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_AccessConfirmation },
2336 { 14, &hf_h501_accessRejection, ASN1_EXTENSION_ROOT , dissect_h501_AccessRejection },
2337 { 15, &hf_h501_requestInProgress, ASN1_EXTENSION_ROOT , dissect_h501_RequestInProgress },
2338 { 16, &hf_h501_nonStandardRequest, ASN1_EXTENSION_ROOT , dissect_h501_NonStandardRequest },
2339 { 17, &hf_h501_nonStandardConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_NonStandardConfirmation },
2340 { 18, &hf_h501_nonStandardRejection, ASN1_EXTENSION_ROOT , dissect_h501_NonStandardRejection },
2341 { 19, &hf_h501_unknownMessageResponse, ASN1_EXTENSION_ROOT , dissect_h501_UnknownMessageResponse },
2342 { 20, &hf_h501_usageRequest , ASN1_EXTENSION_ROOT , dissect_h501_UsageRequest },
2343 { 21, &hf_h501_usageConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_UsageConfirmation },
2344 { 22, &hf_h501_usageIndication, ASN1_EXTENSION_ROOT , dissect_h501_UsageIndication },
2345 { 23, &hf_h501_usageIndicationConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_UsageIndicationConfirmation },
2346 { 24, &hf_h501_usageIndicationRejection, ASN1_EXTENSION_ROOT , dissect_h501_UsageIndicationRejection },
2347 { 25, &hf_h501_usageRejection , ASN1_EXTENSION_ROOT , dissect_h501_UsageRejection },
2348 { 26, &hf_h501_validationRequest, ASN1_EXTENSION_ROOT , dissect_h501_ValidationRequest },
2349 { 27, &hf_h501_validationConfirmation, ASN1_EXTENSION_ROOT , dissect_h501_ValidationConfirmation },
2350 { 28, &hf_h501_validationRejection, ASN1_EXTENSION_ROOT , dissect_h501_ValidationRejection },
2351 { 29, &hf_h501_authenticationRequest, ASN1_NOT_EXTENSION_ROOT, dissect_h501_AuthenticationRequest },
2352 { 30, &hf_h501_authenticationConfirmation, ASN1_NOT_EXTENSION_ROOT, dissect_h501_AuthenticationConfirmation },
2353 { 31, &hf_h501_authenticationRejection, ASN1_NOT_EXTENSION_ROOT, dissect_h501_AuthenticationRejection },
2354 { 0, NULL, 0, NULL }
2358 dissect_h501_MessageBody(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2359 #line 22 "../../asn1/h501/h501.cnf"
2360 gint32 msg_type = -1;
2361 const gchar *p = NULL;
2363 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2364 ett_h501_MessageBody, MessageBody_choice,
2367 #line 25 "../../asn1/h501/h501.cnf"
2368 p = match_strval(msg_type, VALS(h501_MessageBody_vals));
2370 col_set_str(actx->pinfo->cinfo, COL_INFO, p);
2378 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_) {
2379 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2380 0U, 65535U, NULL, FALSE);
2388 dissect_h501_ProtocolVersion(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2389 offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
2397 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_) {
2398 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2399 1U, 255U, NULL, FALSE);
2405 static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of[1] = {
2406 { &hf_h501_replyAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
2410 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_) {
2411 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2412 ett_h501_SEQUENCE_OF_TransportAddress, SEQUENCE_OF_TransportAddress_sequence_of);
2418 static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of[1] = {
2419 { &hf_h501_tokens_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
2423 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_) {
2424 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2425 ett_h501_SEQUENCE_OF_ClearToken, SEQUENCE_OF_ClearToken_sequence_of);
2431 static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of[1] = {
2432 { &hf_h501_nonStandard_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_NonStandardParameter },
2436 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_) {
2437 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2438 ett_h501_SEQUENCE_OF_NonStandardParameter, SEQUENCE_OF_NonStandardParameter_sequence_of);
2446 dissect_h501_ServiceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2447 offset = dissect_h225_GloballyUniqueID(tvb, offset, actx, tree, hf_index);
2453 static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of[1] = {
2454 { &hf_h501_genericData_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_GenericData },
2458 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_) {
2459 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
2460 ett_h501_SEQUENCE_OF_GenericData, SEQUENCE_OF_GenericData_sequence_of);
2466 static const per_sequence_t MessageCommonInfo_sequence[] = {
2467 { &hf_h501_sequenceNumber , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_0_65535 },
2468 { &hf_h501_annexGversion , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_ProtocolVersion },
2469 { &hf_h501_hopCount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_INTEGER_1_255 },
2470 { &hf_h501_replyAddress , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_TransportAddress },
2471 { &hf_h501_integrityCheckValue, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_ICV },
2472 { &hf_h501_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_ClearToken },
2473 { &hf_h501_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_CryptoH323Token },
2474 { &hf_h501_nonStandard , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_NonStandardParameter },
2475 { &hf_h501_serviceID , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_ServiceID },
2476 { &hf_h501_genericData , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h501_SEQUENCE_OF_GenericData },
2477 { &hf_h501_featureSet , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL , dissect_h225_FeatureSet },
2478 { &hf_h501_version , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h501_ProtocolVersion },
2479 { NULL, 0, 0, NULL }
2483 dissect_h501_MessageCommonInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2484 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2485 ett_h501_MessageCommonInfo, MessageCommonInfo_sequence);
2491 static const per_sequence_t Message_sequence[] = {
2492 { &hf_h501_body , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_MessageBody },
2493 { &hf_h501_common , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h501_MessageCommonInfo },
2494 { NULL, 0, 0, NULL }
2498 dissect_h501_Message(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2499 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2500 ett_h501_Message, Message_sequence);
2507 static int dissect_Message_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
2509 asn1_ctx_t asn1_ctx;
2510 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
2511 offset = dissect_h501_Message(tvb, offset, &asn1_ctx, tree, hf_h501_Message_PDU);
2512 offset += 7; offset >>= 3;
2517 /*--- End of included file: packet-h501-fn.c ---*/
2518 #line 62 "../../asn1/h501/packet-h501-template.c"
2521 dissect_h501_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2523 proto_item *ti = NULL;
2524 proto_tree *h501_tree = NULL;
2526 col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
2528 ti = proto_tree_add_item(tree, proto_h501, tvb, 0, -1, ENC_NA);
2529 h501_tree = proto_item_add_subtree(ti, ett_h501);
2531 return dissect_Message_PDU(tvb, pinfo, h501_tree, NULL);
2535 dissect_h501_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2537 dissect_tpkt_encap(tvb, pinfo, tree, FALSE, h501_pdu_handle);
2538 return tvb_length(tvb);
2542 dissect_h501_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
2544 dissect_tpkt_encap(tvb, pinfo, tree, h501_desegment_tcp, h501_pdu_handle);
2545 return tvb_length(tvb);
2548 /*--- proto_register_h501 ----------------------------------------------*/
2549 void proto_register_h501(void) {
2550 module_t *h501_module;
2552 /* List of fields */
2553 static hf_register_info hf[] = {
2555 /*--- Included file: packet-h501-hfarr.c ---*/
2556 #line 1 "../../asn1/h501/packet-h501-hfarr.c"
2557 { &hf_h501_Message_PDU,
2558 { "Message", "h501.Message",
2559 FT_NONE, BASE_NONE, NULL, 0,
2562 { "body", "h501.body",
2563 FT_UINT32, BASE_DEC, VALS(h501_MessageBody_vals), 0,
2564 "MessageBody", HFILL }},
2566 { "common", "h501.common",
2567 FT_NONE, BASE_NONE, NULL, 0,
2568 "MessageCommonInfo", HFILL }},
2569 { &hf_h501_serviceRequest,
2570 { "serviceRequest", "h501.serviceRequest",
2571 FT_NONE, BASE_NONE, NULL, 0,
2573 { &hf_h501_serviceConfirmation,
2574 { "serviceConfirmation", "h501.serviceConfirmation",
2575 FT_NONE, BASE_NONE, NULL, 0,
2577 { &hf_h501_serviceRejection,
2578 { "serviceRejection", "h501.serviceRejection",
2579 FT_NONE, BASE_NONE, NULL, 0,
2581 { &hf_h501_serviceRelease,
2582 { "serviceRelease", "h501.serviceRelease",
2583 FT_NONE, BASE_NONE, NULL, 0,
2585 { &hf_h501_descriptorRequest,
2586 { "descriptorRequest", "h501.descriptorRequest",
2587 FT_NONE, BASE_NONE, NULL, 0,
2589 { &hf_h501_descriptorConfirmation,
2590 { "descriptorConfirmation", "h501.descriptorConfirmation",
2591 FT_NONE, BASE_NONE, NULL, 0,
2593 { &hf_h501_descriptorRejection,
2594 { "descriptorRejection", "h501.descriptorRejection",
2595 FT_NONE, BASE_NONE, NULL, 0,
2597 { &hf_h501_descriptorIDRequest,
2598 { "descriptorIDRequest", "h501.descriptorIDRequest",
2599 FT_NONE, BASE_NONE, NULL, 0,
2601 { &hf_h501_descriptorIDConfirmation,
2602 { "descriptorIDConfirmation", "h501.descriptorIDConfirmation",
2603 FT_NONE, BASE_NONE, NULL, 0,
2605 { &hf_h501_descriptorIDRejection,
2606 { "descriptorIDRejection", "h501.descriptorIDRejection",
2607 FT_NONE, BASE_NONE, NULL, 0,
2609 { &hf_h501_descriptorUpdate,
2610 { "descriptorUpdate", "h501.descriptorUpdate",
2611 FT_NONE, BASE_NONE, NULL, 0,
2613 { &hf_h501_descriptorUpdateAck,
2614 { "descriptorUpdateAck", "h501.descriptorUpdateAck",
2615 FT_NONE, BASE_NONE, NULL, 0,
2617 { &hf_h501_accessRequest,
2618 { "accessRequest", "h501.accessRequest",
2619 FT_NONE, BASE_NONE, NULL, 0,
2621 { &hf_h501_accessConfirmation,
2622 { "accessConfirmation", "h501.accessConfirmation",
2623 FT_NONE, BASE_NONE, NULL, 0,
2625 { &hf_h501_accessRejection,
2626 { "accessRejection", "h501.accessRejection",
2627 FT_NONE, BASE_NONE, NULL, 0,
2629 { &hf_h501_requestInProgress,
2630 { "requestInProgress", "h501.requestInProgress",
2631 FT_NONE, BASE_NONE, NULL, 0,
2633 { &hf_h501_nonStandardRequest,
2634 { "nonStandardRequest", "h501.nonStandardRequest",
2635 FT_NONE, BASE_NONE, NULL, 0,
2637 { &hf_h501_nonStandardConfirmation,
2638 { "nonStandardConfirmation", "h501.nonStandardConfirmation",
2639 FT_NONE, BASE_NONE, NULL, 0,
2641 { &hf_h501_nonStandardRejection,
2642 { "nonStandardRejection", "h501.nonStandardRejection",
2643 FT_NONE, BASE_NONE, NULL, 0,
2645 { &hf_h501_unknownMessageResponse,
2646 { "unknownMessageResponse", "h501.unknownMessageResponse",
2647 FT_NONE, BASE_NONE, NULL, 0,
2649 { &hf_h501_usageRequest,
2650 { "usageRequest", "h501.usageRequest",
2651 FT_NONE, BASE_NONE, NULL, 0,
2653 { &hf_h501_usageConfirmation,
2654 { "usageConfirmation", "h501.usageConfirmation",
2655 FT_NONE, BASE_NONE, NULL, 0,
2657 { &hf_h501_usageIndication,
2658 { "usageIndication", "h501.usageIndication",
2659 FT_NONE, BASE_NONE, NULL, 0,
2661 { &hf_h501_usageIndicationConfirmation,
2662 { "usageIndicationConfirmation", "h501.usageIndicationConfirmation",
2663 FT_NONE, BASE_NONE, NULL, 0,
2665 { &hf_h501_usageIndicationRejection,
2666 { "usageIndicationRejection", "h501.usageIndicationRejection",
2667 FT_NONE, BASE_NONE, NULL, 0,
2669 { &hf_h501_usageRejection,
2670 { "usageRejection", "h501.usageRejection",
2671 FT_NONE, BASE_NONE, NULL, 0,
2673 { &hf_h501_validationRequest,
2674 { "validationRequest", "h501.validationRequest",
2675 FT_NONE, BASE_NONE, NULL, 0,
2677 { &hf_h501_validationConfirmation,
2678 { "validationConfirmation", "h501.validationConfirmation",
2679 FT_NONE, BASE_NONE, NULL, 0,
2681 { &hf_h501_validationRejection,
2682 { "validationRejection", "h501.validationRejection",
2683 FT_NONE, BASE_NONE, NULL, 0,
2685 { &hf_h501_authenticationRequest,
2686 { "authenticationRequest", "h501.authenticationRequest",
2687 FT_NONE, BASE_NONE, NULL, 0,
2689 { &hf_h501_authenticationConfirmation,
2690 { "authenticationConfirmation", "h501.authenticationConfirmation",
2691 FT_NONE, BASE_NONE, NULL, 0,
2693 { &hf_h501_authenticationRejection,
2694 { "authenticationRejection", "h501.authenticationRejection",
2695 FT_NONE, BASE_NONE, NULL, 0,
2697 { &hf_h501_sequenceNumber,
2698 { "sequenceNumber", "h501.sequenceNumber",
2699 FT_UINT32, BASE_DEC, NULL, 0,
2700 "INTEGER_0_65535", HFILL }},
2701 { &hf_h501_annexGversion,
2702 { "annexGversion", "h501.annexGversion",
2703 FT_OID, BASE_NONE, NULL, 0,
2704 "ProtocolVersion", HFILL }},
2705 { &hf_h501_hopCount,
2706 { "hopCount", "h501.hopCount",
2707 FT_UINT32, BASE_DEC, NULL, 0,
2708 "INTEGER_1_255", HFILL }},
2709 { &hf_h501_replyAddress,
2710 { "replyAddress", "h501.replyAddress",
2711 FT_UINT32, BASE_DEC, NULL, 0,
2712 "SEQUENCE_OF_TransportAddress", HFILL }},
2713 { &hf_h501_replyAddress_item,
2714 { "TransportAddress", "h501.TransportAddress",
2715 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
2717 { &hf_h501_integrityCheckValue,
2718 { "integrityCheckValue", "h501.integrityCheckValue",
2719 FT_NONE, BASE_NONE, NULL, 0,
2722 { "tokens", "h501.tokens",
2723 FT_UINT32, BASE_DEC, NULL, 0,
2724 "SEQUENCE_OF_ClearToken", HFILL }},
2725 { &hf_h501_tokens_item,
2726 { "ClearToken", "h501.ClearToken",
2727 FT_NONE, BASE_NONE, NULL, 0,
2729 { &hf_h501_cryptoTokens,
2730 { "cryptoTokens", "h501.cryptoTokens",
2731 FT_UINT32, BASE_DEC, NULL, 0,
2732 "SEQUENCE_OF_CryptoH323Token", HFILL }},
2733 { &hf_h501_cryptoTokens_item,
2734 { "CryptoH323Token", "h501.CryptoH323Token",
2735 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
2737 { &hf_h501_nonStandard,
2738 { "nonStandard", "h501.nonStandard",
2739 FT_UINT32, BASE_DEC, NULL, 0,
2740 "SEQUENCE_OF_NonStandardParameter", HFILL }},
2741 { &hf_h501_nonStandard_item,
2742 { "NonStandardParameter", "h501.NonStandardParameter",
2743 FT_NONE, BASE_NONE, NULL, 0,
2745 { &hf_h501_serviceID,
2746 { "serviceID", "h501.serviceID",
2747 FT_GUID, BASE_NONE, NULL, 0,
2749 { &hf_h501_genericData,
2750 { "genericData", "h501.genericData",
2751 FT_UINT32, BASE_DEC, NULL, 0,
2752 "SEQUENCE_OF_GenericData", HFILL }},
2753 { &hf_h501_genericData_item,
2754 { "GenericData", "h501.GenericData",
2755 FT_NONE, BASE_NONE, NULL, 0,
2757 { &hf_h501_featureSet,
2758 { "featureSet", "h501.featureSet",
2759 FT_NONE, BASE_NONE, NULL, 0,
2762 { "version", "h501.version",
2763 FT_OID, BASE_NONE, NULL, 0,
2764 "ProtocolVersion", HFILL }},
2765 { &hf_h501_elementIdentifier,
2766 { "elementIdentifier", "h501.elementIdentifier",
2767 FT_STRING, BASE_NONE, NULL, 0,
2769 { &hf_h501_domainIdentifier,
2770 { "domainIdentifier", "h501.domainIdentifier",
2771 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2772 "AliasAddress", HFILL }},
2773 { &hf_h501_securityMode,
2774 { "securityMode", "h501.securityMode",
2775 FT_UINT32, BASE_DEC, NULL, 0,
2776 "SEQUENCE_OF_SecurityMode", HFILL }},
2777 { &hf_h501_securityMode_item,
2778 { "SecurityMode", "h501.SecurityMode",
2779 FT_NONE, BASE_NONE, NULL, 0,
2781 { &hf_h501_timeToLive,
2782 { "timeToLive", "h501.timeToLive",
2783 FT_UINT32, BASE_DEC, NULL, 0,
2784 "INTEGER_1_4294967295", HFILL }},
2785 { &hf_h501_usageSpec,
2786 { "usageSpec", "h501.usageSpec",
2787 FT_NONE, BASE_NONE, NULL, 0,
2788 "UsageSpecification", HFILL }},
2789 { &hf_h501_authentication,
2790 { "authentication", "h501.authentication",
2791 FT_UINT32, BASE_DEC, VALS(h235_AuthenticationMechanism_vals), 0,
2792 "AuthenticationMechanism", HFILL }},
2793 { &hf_h501_integrity,
2794 { "integrity", "h501.integrity",
2795 FT_UINT32, BASE_DEC, VALS(h225_IntegrityMechanism_vals), 0,
2796 "IntegrityMechanism", HFILL }},
2797 { &hf_h501_algorithmOIDs,
2798 { "algorithmOIDs", "h501.algorithmOIDs",
2799 FT_UINT32, BASE_DEC, NULL, 0,
2801 { &hf_h501_algorithmOIDs_item,
2802 { "algorithmOIDs item", "h501.algorithmOIDs_item",
2803 FT_OID, BASE_NONE, NULL, 0,
2804 "OBJECT_IDENTIFIER", HFILL }},
2805 { &hf_h501_alternates,
2806 { "alternates", "h501.alternates",
2807 FT_NONE, BASE_NONE, NULL, 0,
2808 "AlternatePEInfo", HFILL }},
2809 { &hf_h501_securityMode_01,
2810 { "securityMode", "h501.securityMode",
2811 FT_NONE, BASE_NONE, NULL, 0,
2814 { "reason", "h501.reason",
2815 FT_UINT32, BASE_DEC, VALS(h501_ServiceRejectionReason_vals), 0,
2816 "ServiceRejectionReason", HFILL }},
2817 { &hf_h501_serviceUnavailable,
2818 { "serviceUnavailable", "h501.serviceUnavailable",
2819 FT_NONE, BASE_NONE, NULL, 0,
2821 { &hf_h501_serviceRedirected,
2822 { "serviceRedirected", "h501.serviceRedirected",
2823 FT_NONE, BASE_NONE, NULL, 0,
2825 { &hf_h501_security,
2826 { "security", "h501.security",
2827 FT_NONE, BASE_NONE, NULL, 0,
2829 { &hf_h501_continue,
2830 { "continue", "h501.continue",
2831 FT_NONE, BASE_NONE, NULL, 0,
2833 { &hf_h501_undefined,
2834 { "undefined", "h501.undefined",
2835 FT_NONE, BASE_NONE, NULL, 0,
2837 { &hf_h501_unknownServiceID,
2838 { "unknownServiceID", "h501.unknownServiceID",
2839 FT_NONE, BASE_NONE, NULL, 0,
2841 { &hf_h501_cannotSupportUsageSpec,
2842 { "cannotSupportUsageSpec", "h501.cannotSupportUsageSpec",
2843 FT_NONE, BASE_NONE, NULL, 0,
2845 { &hf_h501_neededFeature,
2846 { "neededFeature", "h501.neededFeature",
2847 FT_NONE, BASE_NONE, NULL, 0,
2849 { &hf_h501_genericDataReason,
2850 { "genericDataReason", "h501.genericDataReason",
2851 FT_NONE, BASE_NONE, NULL, 0,
2853 { &hf_h501_usageUnavailable,
2854 { "usageUnavailable", "h501.usageUnavailable",
2855 FT_NONE, BASE_NONE, NULL, 0,
2857 { &hf_h501_unknownUsageSendTo,
2858 { "unknownUsageSendTo", "h501.unknownUsageSendTo",
2859 FT_NONE, BASE_NONE, NULL, 0,
2861 { &hf_h501_reason_01,
2862 { "reason", "h501.reason",
2863 FT_UINT32, BASE_DEC, VALS(h501_ServiceReleaseReason_vals), 0,
2864 "ServiceReleaseReason", HFILL }},
2865 { &hf_h501_outOfService,
2866 { "outOfService", "h501.outOfService",
2867 FT_NONE, BASE_NONE, NULL, 0,
2869 { &hf_h501_maintenance,
2870 { "maintenance", "h501.maintenance",
2871 FT_NONE, BASE_NONE, NULL, 0,
2873 { &hf_h501_terminated,
2874 { "terminated", "h501.terminated",
2875 FT_NONE, BASE_NONE, NULL, 0,
2878 { "expired", "h501.expired",
2879 FT_NONE, BASE_NONE, NULL, 0,
2881 { &hf_h501_descriptorID,
2882 { "descriptorID", "h501.descriptorID",
2883 FT_UINT32, BASE_DEC, NULL, 0,
2884 "SEQUENCE_OF_DescriptorID", HFILL }},
2885 { &hf_h501_descriptorID_item,
2886 { "DescriptorID", "h501.DescriptorID",
2887 FT_GUID, BASE_NONE, NULL, 0,
2889 { &hf_h501_descriptor,
2890 { "descriptor", "h501.descriptor",
2891 FT_UINT32, BASE_DEC, NULL, 0,
2892 "SEQUENCE_OF_Descriptor", HFILL }},
2893 { &hf_h501_descriptor_item,
2894 { "Descriptor", "h501.Descriptor",
2895 FT_NONE, BASE_NONE, NULL, 0,
2897 { &hf_h501_reason_02,
2898 { "reason", "h501.reason",
2899 FT_UINT32, BASE_DEC, VALS(h501_DescriptorRejectionReason_vals), 0,
2900 "DescriptorRejectionReason", HFILL }},
2901 { &hf_h501_descriptorID_01,
2902 { "descriptorID", "h501.descriptorID",
2903 FT_GUID, BASE_NONE, NULL, 0,
2905 { &hf_h501_packetSizeExceeded,
2906 { "packetSizeExceeded", "h501.packetSizeExceeded",
2907 FT_NONE, BASE_NONE, NULL, 0,
2909 { &hf_h501_illegalID,
2910 { "illegalID", "h501.illegalID",
2911 FT_NONE, BASE_NONE, NULL, 0,
2913 { &hf_h501_hopCountExceeded,
2914 { "hopCountExceeded", "h501.hopCountExceeded",
2915 FT_NONE, BASE_NONE, NULL, 0,
2917 { &hf_h501_noServiceRelationship,
2918 { "noServiceRelationship", "h501.noServiceRelationship",
2919 FT_NONE, BASE_NONE, NULL, 0,
2921 { &hf_h501_descriptorInfo,
2922 { "descriptorInfo", "h501.descriptorInfo",
2923 FT_UINT32, BASE_DEC, NULL, 0,
2924 "SEQUENCE_OF_DescriptorInfo", HFILL }},
2925 { &hf_h501_descriptorInfo_item,
2926 { "DescriptorInfo", "h501.DescriptorInfo",
2927 FT_NONE, BASE_NONE, NULL, 0,
2929 { &hf_h501_reason_03,
2930 { "reason", "h501.reason",
2931 FT_UINT32, BASE_DEC, VALS(h501_DescriptorIDRejectionReason_vals), 0,
2932 "DescriptorIDRejectionReason", HFILL }},
2933 { &hf_h501_noDescriptors,
2934 { "noDescriptors", "h501.noDescriptors",
2935 FT_NONE, BASE_NONE, NULL, 0,
2938 { "sender", "h501.sender",
2939 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2940 "AliasAddress", HFILL }},
2941 { &hf_h501_updateInfo,
2942 { "updateInfo", "h501.updateInfo",
2943 FT_UINT32, BASE_DEC, NULL, 0,
2944 "SEQUENCE_OF_UpdateInformation", HFILL }},
2945 { &hf_h501_updateInfo_item,
2946 { "UpdateInformation", "h501.UpdateInformation",
2947 FT_NONE, BASE_NONE, NULL, 0,
2949 { &hf_h501_descriptorInfo_01,
2950 { "descriptorInfo", "h501.descriptorInfo",
2951 FT_UINT32, BASE_DEC, VALS(h501_T_descriptorInfo_vals), 0,
2953 { &hf_h501_descriptor_01,
2954 { "descriptor", "h501.descriptor",
2955 FT_NONE, BASE_NONE, NULL, 0,
2957 { &hf_h501_updateType,
2958 { "updateType", "h501.updateType",
2959 FT_UINT32, BASE_DEC, VALS(h501_T_updateType_vals), 0,
2962 { "added", "h501.added",
2963 FT_NONE, BASE_NONE, NULL, 0,
2966 { "deleted", "h501.deleted",
2967 FT_NONE, BASE_NONE, NULL, 0,
2970 { "changed", "h501.changed",
2971 FT_NONE, BASE_NONE, NULL, 0,
2973 { &hf_h501_destinationInfo,
2974 { "destinationInfo", "h501.destinationInfo",
2975 FT_NONE, BASE_NONE, NULL, 0,
2976 "PartyInformation", HFILL }},
2977 { &hf_h501_sourceInfo,
2978 { "sourceInfo", "h501.sourceInfo",
2979 FT_NONE, BASE_NONE, NULL, 0,
2980 "PartyInformation", HFILL }},
2981 { &hf_h501_callInfo,
2982 { "callInfo", "h501.callInfo",
2983 FT_NONE, BASE_NONE, NULL, 0,
2984 "CallInformation", HFILL }},
2985 { &hf_h501_desiredProtocols,
2986 { "desiredProtocols", "h501.desiredProtocols",
2987 FT_UINT32, BASE_DEC, NULL, 0,
2988 "SEQUENCE_OF_SupportedProtocols", HFILL }},
2989 { &hf_h501_desiredProtocols_item,
2990 { "SupportedProtocols", "h501.SupportedProtocols",
2991 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
2993 { &hf_h501_templates,
2994 { "templates", "h501.templates",
2995 FT_UINT32, BASE_DEC, NULL, 0,
2996 "SEQUENCE_OF_AddressTemplate", HFILL }},
2997 { &hf_h501_templates_item,
2998 { "AddressTemplate", "h501.AddressTemplate",
2999 FT_NONE, BASE_NONE, NULL, 0,
3001 { &hf_h501_partialResponse,
3002 { "partialResponse", "h501.partialResponse",
3003 FT_BOOLEAN, BASE_NONE, NULL, 0,
3004 "BOOLEAN", HFILL }},
3005 { &hf_h501_supportedProtocols,
3006 { "supportedProtocols", "h501.supportedProtocols",
3007 FT_UINT32, BASE_DEC, NULL, 0,
3008 "SEQUENCE_OF_SupportedProtocols", HFILL }},
3009 { &hf_h501_supportedProtocols_item,
3010 { "SupportedProtocols", "h501.SupportedProtocols",
3011 FT_UINT32, BASE_DEC, VALS(h225_SupportedProtocols_vals), 0,
3013 { &hf_h501_serviceControl,
3014 { "serviceControl", "h501.serviceControl",
3015 FT_UINT32, BASE_DEC, NULL, 0,
3016 "SEQUENCE_OF_ServiceControlSession", HFILL }},
3017 { &hf_h501_serviceControl_item,
3018 { "ServiceControlSession", "h501.ServiceControlSession",
3019 FT_NONE, BASE_NONE, NULL, 0,
3021 { &hf_h501_reason_04,
3022 { "reason", "h501.reason",
3023 FT_UINT32, BASE_DEC, VALS(h501_AccessRejectionReason_vals), 0,
3024 "AccessRejectionReason", HFILL }},
3026 { "noMatch", "h501.noMatch",
3027 FT_NONE, BASE_NONE, NULL, 0,
3029 { &hf_h501_needCallInformation,
3030 { "needCallInformation", "h501.needCallInformation",
3031 FT_NONE, BASE_NONE, NULL, 0,
3033 { &hf_h501_destinationUnavailable,
3034 { "destinationUnavailable", "h501.destinationUnavailable",
3035 FT_NONE, BASE_NONE, NULL, 0,
3037 { &hf_h501_aliasesInconsistent,
3038 { "aliasesInconsistent", "h501.aliasesInconsistent",
3039 FT_NONE, BASE_NONE, NULL, 0,
3041 { &hf_h501_resourceUnavailable,
3042 { "resourceUnavailable", "h501.resourceUnavailable",
3043 FT_NONE, BASE_NONE, NULL, 0,
3045 { &hf_h501_incompleteAddress,
3046 { "incompleteAddress", "h501.incompleteAddress",
3047 FT_NONE, BASE_NONE, NULL, 0,
3049 { &hf_h501_reason_05,
3050 { "reason", "h501.reason",
3051 FT_UINT32, BASE_DEC, VALS(h501_UsageRejectReason_vals), 0,
3052 "UsageRejectReason", HFILL }},
3053 { &hf_h501_accessTokens,
3054 { "accessTokens", "h501.accessTokens",
3055 FT_UINT32, BASE_DEC, NULL, 0,
3056 "SEQUENCE_OF_AccessToken", HFILL }},
3057 { &hf_h501_accessTokens_item,
3058 { "AccessToken", "h501.AccessToken",
3059 FT_UINT32, BASE_DEC, VALS(h501_AccessToken_vals), 0,
3061 { &hf_h501_senderRole,
3062 { "senderRole", "h501.senderRole",
3063 FT_UINT32, BASE_DEC, VALS(h501_Role_vals), 0,
3065 { &hf_h501_usageCallStatus,
3066 { "usageCallStatus", "h501.usageCallStatus",
3067 FT_UINT32, BASE_DEC, VALS(h501_UsageCallStatus_vals), 0,
3070 { "srcInfo", "h501.srcInfo",
3071 FT_NONE, BASE_NONE, NULL, 0,
3072 "PartyInformation", HFILL }},
3073 { &hf_h501_destAddress,
3074 { "destAddress", "h501.destAddress",
3075 FT_NONE, BASE_NONE, NULL, 0,
3076 "PartyInformation", HFILL }},
3077 { &hf_h501_startTime,
3078 { "startTime", "h501.startTime",
3079 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
3080 "TimeStamp", HFILL }},
3082 { "endTime", "h501.endTime",
3083 FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
3084 "TimeStamp", HFILL }},
3085 { &hf_h501_terminationCause,
3086 { "terminationCause", "h501.terminationCause",
3087 FT_NONE, BASE_NONE, NULL, 0,
3089 { &hf_h501_usageFields,
3090 { "usageFields", "h501.usageFields",
3091 FT_UINT32, BASE_DEC, NULL, 0,
3092 "SEQUENCE_OF_UsageField", HFILL }},
3093 { &hf_h501_usageFields_item,
3094 { "UsageField", "h501.UsageField",
3095 FT_NONE, BASE_NONE, NULL, 0,
3099 FT_OID, BASE_NONE, NULL, 0,
3100 "OBJECT_IDENTIFIER", HFILL }},
3102 { "value", "h501.value",
3103 FT_BYTES, BASE_NONE, NULL, 0,
3104 "OCTET_STRING", HFILL }},
3105 { &hf_h501_invalidCall,
3106 { "invalidCall", "h501.invalidCall",
3107 FT_NONE, BASE_NONE, NULL, 0,
3109 { &hf_h501_unavailable,
3110 { "unavailable", "h501.unavailable",
3111 FT_NONE, BASE_NONE, NULL, 0,
3113 { &hf_h501_reason_06,
3114 { "reason", "h501.reason",
3115 FT_UINT32, BASE_DEC, VALS(h501_UsageIndicationRejectionReason_vals), 0,
3116 "UsageIndicationRejectionReason", HFILL }},
3117 { &hf_h501_unknownCall,
3118 { "unknownCall", "h501.unknownCall",
3119 FT_NONE, BASE_NONE, NULL, 0,
3121 { &hf_h501_incomplete,
3122 { "incomplete", "h501.incomplete",
3123 FT_NONE, BASE_NONE, NULL, 0,
3125 { &hf_h501_accessToken,
3126 { "accessToken", "h501.accessToken",
3127 FT_UINT32, BASE_DEC, NULL, 0,
3128 "SEQUENCE_OF_AccessToken", HFILL }},
3129 { &hf_h501_accessToken_item,
3130 { "AccessToken", "h501.AccessToken",
3131 FT_UINT32, BASE_DEC, VALS(h501_AccessToken_vals), 0,
3133 { &hf_h501_reason_07,
3134 { "reason", "h501.reason",
3135 FT_UINT32, BASE_DEC, VALS(h501_ValidationRejectionReason_vals), 0,
3136 "ValidationRejectionReason", HFILL }},
3137 { &hf_h501_tokenNotValid,
3138 { "tokenNotValid", "h501.tokenNotValid",
3139 FT_NONE, BASE_NONE, NULL, 0,
3141 { &hf_h501_missingSourceInfo,
3142 { "missingSourceInfo", "h501.missingSourceInfo",
3143 FT_NONE, BASE_NONE, NULL, 0,
3145 { &hf_h501_missingDestInfo,
3146 { "missingDestInfo", "h501.missingDestInfo",
3147 FT_NONE, BASE_NONE, NULL, 0,
3150 { "delay", "h501.delay",
3151 FT_UINT32, BASE_DEC, NULL, 0,
3152 "INTEGER_1_65535", HFILL }},
3153 { &hf_h501_reason_08,
3154 { "reason", "h501.reason",
3155 FT_UINT32, BASE_DEC, VALS(h501_NonStandardRejectionReason_vals), 0,
3156 "NonStandardRejectionReason", HFILL }},
3157 { &hf_h501_notSupported,
3158 { "notSupported", "h501.notSupported",
3159 FT_NONE, BASE_NONE, NULL, 0,
3161 { &hf_h501_unknownMessage,
3162 { "unknownMessage", "h501.unknownMessage",
3163 FT_BYTES, BASE_NONE, NULL, 0,
3164 "OCTET_STRING", HFILL }},
3165 { &hf_h501_reason_09,
3166 { "reason", "h501.reason",
3167 FT_UINT32, BASE_DEC, VALS(h501_UnknownMessageReason_vals), 0,
3168 "UnknownMessageReason", HFILL }},
3169 { &hf_h501_notUnderstood,
3170 { "notUnderstood", "h501.notUnderstood",
3171 FT_NONE, BASE_NONE, NULL, 0,
3173 { &hf_h501_applicationMessage,
3174 { "applicationMessage", "h501.applicationMessage",
3175 FT_BYTES, BASE_NONE, NULL, 0,
3177 { &hf_h501_reason_10,
3178 { "reason", "h501.reason",
3179 FT_UINT32, BASE_DEC, VALS(h501_AuthenticationRejectionReason_vals), 0,
3180 "AuthenticationRejectionReason", HFILL }},
3181 { &hf_h501_securityWrongSyncTime,
3182 { "securityWrongSyncTime", "h501.securityWrongSyncTime",
3183 FT_NONE, BASE_NONE, NULL, 0,
3185 { &hf_h501_securityReplay,
3186 { "securityReplay", "h501.securityReplay",
3187 FT_NONE, BASE_NONE, NULL, 0,
3189 { &hf_h501_securityWrongGeneralID,
3190 { "securityWrongGeneralID", "h501.securityWrongGeneralID",
3191 FT_NONE, BASE_NONE, NULL, 0,
3193 { &hf_h501_securityWrongSendersID,
3194 { "securityWrongSendersID", "h501.securityWrongSendersID",
3195 FT_NONE, BASE_NONE, NULL, 0,
3197 { &hf_h501_securityIntegrityFailed,
3198 { "securityIntegrityFailed", "h501.securityIntegrityFailed",
3199 FT_NONE, BASE_NONE, NULL, 0,
3201 { &hf_h501_securityWrongOID,
3202 { "securityWrongOID", "h501.securityWrongOID",
3203 FT_NONE, BASE_NONE, NULL, 0,
3206 { "pattern", "h501.pattern",
3207 FT_UINT32, BASE_DEC, NULL, 0,
3208 "SEQUENCE_OF_Pattern", HFILL }},
3209 { &hf_h501_pattern_item,
3210 { "Pattern", "h501.Pattern",
3211 FT_UINT32, BASE_DEC, VALS(h501_Pattern_vals), 0,
3213 { &hf_h501_routeInfo,
3214 { "routeInfo", "h501.routeInfo",
3215 FT_UINT32, BASE_DEC, NULL, 0,
3216 "SEQUENCE_OF_RouteInformation", HFILL }},
3217 { &hf_h501_routeInfo_item,
3218 { "RouteInformation", "h501.RouteInformation",
3219 FT_NONE, BASE_NONE, NULL, 0,
3221 { &hf_h501_specific,
3222 { "specific", "h501.specific",
3223 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3224 "AliasAddress", HFILL }},
3225 { &hf_h501_wildcard,
3226 { "wildcard", "h501.wildcard",
3227 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3228 "AliasAddress", HFILL }},
3230 { "range", "h501.range",
3231 FT_NONE, BASE_NONE, NULL, 0,
3233 { &hf_h501_startOfRange,
3234 { "startOfRange", "h501.startOfRange",
3235 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
3236 "PartyNumber", HFILL }},
3237 { &hf_h501_endOfRange,
3238 { "endOfRange", "h501.endOfRange",
3239 FT_UINT32, BASE_DEC, VALS(h225_PartyNumber_vals), 0,
3240 "PartyNumber", HFILL }},
3241 { &hf_h501_messageType,
3242 { "messageType", "h501.messageType",
3243 FT_UINT32, BASE_DEC, VALS(h501_T_messageType_vals), 0,
3245 { &hf_h501_sendAccessRequest,
3246 { "sendAccessRequest", "h501.sendAccessRequest",
3247 FT_NONE, BASE_NONE, NULL, 0,
3249 { &hf_h501_sendSetup,
3250 { "sendSetup", "h501.sendSetup",
3251 FT_NONE, BASE_NONE, NULL, 0,
3253 { &hf_h501_nonExistent,
3254 { "nonExistent", "h501.nonExistent",
3255 FT_NONE, BASE_NONE, NULL, 0,
3257 { &hf_h501_callSpecific,
3258 { "callSpecific", "h501.callSpecific",
3259 FT_BOOLEAN, BASE_NONE, NULL, 0,
3260 "BOOLEAN", HFILL }},
3261 { &hf_h501_priceInfo,
3262 { "priceInfo", "h501.priceInfo",
3263 FT_UINT32, BASE_DEC, NULL, 0,
3264 "SEQUENCE_OF_PriceInfoSpec", HFILL }},
3265 { &hf_h501_priceInfo_item,
3266 { "PriceInfoSpec", "h501.PriceInfoSpec",
3267 FT_NONE, BASE_NONE, NULL, 0,
3269 { &hf_h501_contacts,
3270 { "contacts", "h501.contacts",
3271 FT_UINT32, BASE_DEC, NULL, 0,
3272 "SEQUENCE_OF_ContactInformation", HFILL }},
3273 { &hf_h501_contacts_item,
3274 { "ContactInformation", "h501.ContactInformation",
3275 FT_NONE, BASE_NONE, NULL, 0,
3278 { "type", "h501.type",
3279 FT_NONE, BASE_NONE, NULL, 0,
3280 "EndpointType", HFILL }},
3281 { &hf_h501_circuitID,
3282 { "circuitID", "h501.circuitID",
3283 FT_NONE, BASE_NONE, NULL, 0,
3284 "CircuitInfo", HFILL }},
3285 { &hf_h501_supportedCircuits,
3286 { "supportedCircuits", "h501.supportedCircuits",
3287 FT_UINT32, BASE_DEC, NULL, 0,
3288 "SEQUENCE_OF_CircuitIdentifier", HFILL }},
3289 { &hf_h501_supportedCircuits_item,
3290 { "CircuitIdentifier", "h501.CircuitIdentifier",
3291 FT_NONE, BASE_NONE, NULL, 0,
3293 { &hf_h501_transportAddress,
3294 { "transportAddress", "h501.transportAddress",
3295 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3296 "AliasAddress", HFILL }},
3297 { &hf_h501_priority,
3298 { "priority", "h501.priority",
3299 FT_UINT32, BASE_DEC, NULL, 0,
3300 "INTEGER_0_127", HFILL }},
3301 { &hf_h501_transportQoS,
3302 { "transportQoS", "h501.transportQoS",
3303 FT_UINT32, BASE_DEC, VALS(h225_TransportQOS_vals), 0,
3305 { &hf_h501_security_01,
3306 { "security", "h501.security",
3307 FT_UINT32, BASE_DEC, NULL, 0,
3308 "SEQUENCE_OF_SecurityMode", HFILL }},
3309 { &hf_h501_security_item,
3310 { "SecurityMode", "h501.SecurityMode",
3311 FT_NONE, BASE_NONE, NULL, 0,
3313 { &hf_h501_multipleCalls,
3314 { "multipleCalls", "h501.multipleCalls",
3315 FT_BOOLEAN, BASE_NONE, NULL, 0,
3316 "BOOLEAN", HFILL }},
3317 { &hf_h501_currency,
3318 { "currency", "h501.currency",
3319 FT_STRING, BASE_NONE, NULL, 0,
3320 "IA5String_SIZE_3", HFILL }},
3321 { &hf_h501_currencyScale,
3322 { "currencyScale", "h501.currencyScale",
3323 FT_INT32, BASE_DEC, NULL, 0,
3324 "INTEGER_M127_127", HFILL }},
3325 { &hf_h501_validFrom,
3326 { "validFrom", "h501.validFrom",
3327 FT_STRING, BASE_NONE, NULL, 0,
3328 "GlobalTimeStamp", HFILL }},
3329 { &hf_h501_validUntil,
3330 { "validUntil", "h501.validUntil",
3331 FT_STRING, BASE_NONE, NULL, 0,
3332 "GlobalTimeStamp", HFILL }},
3333 { &hf_h501_hoursFrom,
3334 { "hoursFrom", "h501.hoursFrom",
3335 FT_STRING, BASE_NONE, NULL, 0,
3336 "IA5String_SIZE_6", HFILL }},
3337 { &hf_h501_hoursUntil,
3338 { "hoursUntil", "h501.hoursUntil",
3339 FT_STRING, BASE_NONE, NULL, 0,
3340 "IA5String_SIZE_6", HFILL }},
3341 { &hf_h501_priceElement,
3342 { "priceElement", "h501.priceElement",
3343 FT_UINT32, BASE_DEC, NULL, 0,
3344 "SEQUENCE_OF_PriceElement", HFILL }},
3345 { &hf_h501_priceElement_item,
3346 { "PriceElement", "h501.PriceElement",
3347 FT_NONE, BASE_NONE, NULL, 0,
3349 { &hf_h501_priceFormula,
3350 { "priceFormula", "h501.priceFormula",
3351 FT_STRING, BASE_NONE, NULL, 0,
3352 "IA5String_SIZE_1_2048", HFILL }},
3354 { "amount", "h501.amount",
3355 FT_UINT32, BASE_DEC, NULL, 0,
3356 "INTEGER_0_4294967295", HFILL }},
3358 { "quantum", "h501.quantum",
3359 FT_UINT32, BASE_DEC, NULL, 0,
3360 "INTEGER_0_4294967295", HFILL }},
3362 { "units", "h501.units",
3363 FT_UINT32, BASE_DEC, VALS(h501_T_units_vals), 0,
3366 { "seconds", "h501.seconds",
3367 FT_NONE, BASE_NONE, NULL, 0,
3370 { "packets", "h501.packets",
3371 FT_NONE, BASE_NONE, NULL, 0,
3374 { "bytes", "h501.bytes",
3375 FT_NONE, BASE_NONE, NULL, 0,
3378 { "initial", "h501.initial",
3379 FT_NONE, BASE_NONE, NULL, 0,
3382 { "minimum", "h501.minimum",
3383 FT_NONE, BASE_NONE, NULL, 0,
3386 { "maximum", "h501.maximum",
3387 FT_NONE, BASE_NONE, NULL, 0,
3389 { &hf_h501_descriptorInfo_02,
3390 { "descriptorInfo", "h501.descriptorInfo",
3391 FT_NONE, BASE_NONE, NULL, 0,
3393 { &hf_h501_gatekeeperID,
3394 { "gatekeeperID", "h501.gatekeeperID",
3395 FT_STRING, BASE_NONE, NULL, 0,
3396 "GatekeeperIdentifier", HFILL }},
3397 { &hf_h501_lastChanged,
3398 { "lastChanged", "h501.lastChanged",
3399 FT_STRING, BASE_NONE, NULL, 0,
3400 "GlobalTimeStamp", HFILL }},
3401 { &hf_h501_alternatePE,
3402 { "alternatePE", "h501.alternatePE",
3403 FT_UINT32, BASE_DEC, NULL, 0,
3404 "SEQUENCE_OF_AlternatePE", HFILL }},
3405 { &hf_h501_alternatePE_item,
3406 { "AlternatePE", "h501.AlternatePE",
3407 FT_NONE, BASE_NONE, NULL, 0,
3409 { &hf_h501_alternateIsPermanent,
3410 { "alternateIsPermanent", "h501.alternateIsPermanent",
3411 FT_BOOLEAN, BASE_NONE, NULL, 0,
3412 "BOOLEAN", HFILL }},
3413 { &hf_h501_contactAddress,
3414 { "contactAddress", "h501.contactAddress",
3415 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3416 "AliasAddress", HFILL }},
3417 { &hf_h501_priority_01,
3418 { "priority", "h501.priority",
3419 FT_UINT32, BASE_DEC, NULL, 0,
3420 "INTEGER_1_127", HFILL }},
3422 { "token", "h501.token",
3423 FT_NONE, BASE_NONE, NULL, 0,
3424 "ClearToken", HFILL }},
3425 { &hf_h501_cryptoToken,
3426 { "cryptoToken", "h501.cryptoToken",
3427 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
3428 "CryptoH323Token", HFILL }},
3429 { &hf_h501_genericData_01,
3430 { "genericData", "h501.genericData",
3431 FT_NONE, BASE_NONE, NULL, 0,
3433 { &hf_h501_callIdentifier,
3434 { "callIdentifier", "h501.callIdentifier",
3435 FT_NONE, BASE_NONE, NULL, 0,
3437 { &hf_h501_conferenceID,
3438 { "conferenceID", "h501.conferenceID",
3439 FT_GUID, BASE_NONE, NULL, 0,
3440 "ConferenceIdentifier", HFILL }},
3441 { &hf_h501_preConnect,
3442 { "preConnect", "h501.preConnect",
3443 FT_NONE, BASE_NONE, NULL, 0,
3445 { &hf_h501_callInProgress,
3446 { "callInProgress", "h501.callInProgress",
3447 FT_NONE, BASE_NONE, NULL, 0,
3449 { &hf_h501_callEnded,
3450 { "callEnded", "h501.callEnded",
3451 FT_NONE, BASE_NONE, NULL, 0,
3453 { &hf_h501_registrationLost,
3454 { "registrationLost", "h501.registrationLost",
3455 FT_NONE, BASE_NONE, NULL, 0,
3457 { &hf_h501_userIdentifier,
3458 { "userIdentifier", "h501.userIdentifier",
3459 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3460 "AliasAddress", HFILL }},
3461 { &hf_h501_userAuthenticator,
3462 { "userAuthenticator", "h501.userAuthenticator",
3463 FT_UINT32, BASE_DEC, NULL, 0,
3464 "SEQUENCE_OF_CryptoH323Token", HFILL }},
3465 { &hf_h501_userAuthenticator_item,
3466 { "CryptoH323Token", "h501.CryptoH323Token",
3467 FT_UINT32, BASE_DEC, VALS(h225_CryptoH323Token_vals), 0,
3470 { "sendTo", "h501.sendTo",
3471 FT_STRING, BASE_NONE, NULL, 0,
3472 "ElementIdentifier", HFILL }},
3474 { "when", "h501.when",
3475 FT_NONE, BASE_NONE, NULL, 0,
3478 { "never", "h501.never",
3479 FT_NONE, BASE_NONE, NULL, 0,
3482 { "start", "h501.start",
3483 FT_NONE, BASE_NONE, NULL, 0,
3486 { "end", "h501.end",
3487 FT_NONE, BASE_NONE, NULL, 0,
3490 { "period", "h501.period",
3491 FT_UINT32, BASE_DEC, NULL, 0,
3492 "INTEGER_1_65535", HFILL }},
3493 { &hf_h501_failures,
3494 { "failures", "h501.failures",
3495 FT_NONE, BASE_NONE, NULL, 0,
3497 { &hf_h501_required,
3498 { "required", "h501.required",
3499 FT_UINT32, BASE_DEC, NULL, 0,
3501 { &hf_h501_required_item,
3502 { "required item", "h501.required_item",
3503 FT_OID, BASE_NONE, NULL, 0,
3504 "OBJECT_IDENTIFIER", HFILL }},
3505 { &hf_h501_preferred,
3506 { "preferred", "h501.preferred",
3507 FT_UINT32, BASE_DEC, NULL, 0,
3509 { &hf_h501_preferred_item,
3510 { "preferred item", "h501.preferred_item",
3511 FT_OID, BASE_NONE, NULL, 0,
3512 "OBJECT_IDENTIFIER", HFILL }},
3513 { &hf_h501_sendToPEAddress,
3514 { "sendToPEAddress", "h501.sendToPEAddress",
3515 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3516 "AliasAddress", HFILL }},
3517 { &hf_h501_logicalAddresses,
3518 { "logicalAddresses", "h501.logicalAddresses",
3519 FT_UINT32, BASE_DEC, NULL, 0,
3520 "SEQUENCE_OF_AliasAddress", HFILL }},
3521 { &hf_h501_logicalAddresses_item,
3522 { "AliasAddress", "h501.AliasAddress",
3523 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
3525 { &hf_h501_endpointType,
3526 { "endpointType", "h501.endpointType",
3527 FT_NONE, BASE_NONE, NULL, 0,
3529 { &hf_h501_userInfo,
3530 { "userInfo", "h501.userInfo",
3531 FT_NONE, BASE_NONE, NULL, 0,
3532 "UserInformation", HFILL }},
3533 { &hf_h501_timeZone,
3534 { "timeZone", "h501.timeZone",
3535 FT_INT32, BASE_DEC, NULL, 0,
3537 { &hf_h501_originator,
3538 { "originator", "h501.originator",
3539 FT_NONE, BASE_NONE, NULL, 0,
3541 { &hf_h501_destination,
3542 { "destination", "h501.destination",
3543 FT_NONE, BASE_NONE, NULL, 0,
3545 { &hf_h501_nonStandardData,
3546 { "nonStandardData", "h501.nonStandardData",
3547 FT_NONE, BASE_NONE, NULL, 0,
3548 "NonStandardParameter", HFILL }},
3549 { &hf_h501_releaseCompleteReason,
3550 { "releaseCompleteReason", "h501.releaseCompleteReason",
3551 FT_UINT32, BASE_DEC, VALS(h225_ReleaseCompleteReason_vals), 0,
3554 { "causeIE", "h501.causeIE",
3555 FT_UINT32, BASE_DEC, NULL, 0,
3556 "INTEGER_1_65535", HFILL }},
3558 /*--- End of included file: packet-h501-hfarr.c ---*/
3559 #line 98 "../../asn1/h501/packet-h501-template.c"
3562 /* List of subtrees */
3563 static gint *ett[] = {
3566 /*--- Included file: packet-h501-ettarr.c ---*/
3567 #line 1 "../../asn1/h501/packet-h501-ettarr.c"
3569 &ett_h501_MessageBody,
3570 &ett_h501_MessageCommonInfo,
3571 &ett_h501_SEQUENCE_OF_TransportAddress,
3572 &ett_h501_SEQUENCE_OF_ClearToken,
3573 &ett_h501_SEQUENCE_OF_CryptoH323Token,
3574 &ett_h501_SEQUENCE_OF_NonStandardParameter,
3575 &ett_h501_SEQUENCE_OF_GenericData,
3576 &ett_h501_ServiceRequest,
3577 &ett_h501_SEQUENCE_OF_SecurityMode,
3578 &ett_h501_SecurityMode,
3579 &ett_h501_T_algorithmOIDs,
3580 &ett_h501_ServiceConfirmation,
3581 &ett_h501_ServiceRejection,
3582 &ett_h501_ServiceRejectionReason,
3583 &ett_h501_ServiceRelease,
3584 &ett_h501_ServiceReleaseReason,
3585 &ett_h501_DescriptorRequest,
3586 &ett_h501_SEQUENCE_OF_DescriptorID,
3587 &ett_h501_DescriptorConfirmation,
3588 &ett_h501_SEQUENCE_OF_Descriptor,
3589 &ett_h501_DescriptorRejection,
3590 &ett_h501_DescriptorRejectionReason,
3591 &ett_h501_DescriptorIDRequest,
3592 &ett_h501_DescriptorIDConfirmation,
3593 &ett_h501_SEQUENCE_OF_DescriptorInfo,
3594 &ett_h501_DescriptorIDRejection,
3595 &ett_h501_DescriptorIDRejectionReason,
3596 &ett_h501_DescriptorUpdate,
3597 &ett_h501_SEQUENCE_OF_UpdateInformation,
3598 &ett_h501_UpdateInformation,
3599 &ett_h501_T_descriptorInfo,
3600 &ett_h501_T_updateType,
3601 &ett_h501_DescriptorUpdateAck,
3602 &ett_h501_AccessRequest,
3603 &ett_h501_SEQUENCE_OF_SupportedProtocols,
3604 &ett_h501_AccessConfirmation,
3605 &ett_h501_SEQUENCE_OF_AddressTemplate,
3606 &ett_h501_SEQUENCE_OF_ServiceControlSession,
3607 &ett_h501_AccessRejection,
3608 &ett_h501_AccessRejectionReason,
3609 &ett_h501_UsageRequest,
3610 &ett_h501_UsageConfirmation,
3611 &ett_h501_UsageRejection,
3612 &ett_h501_UsageIndication,
3613 &ett_h501_SEQUENCE_OF_AccessToken,
3614 &ett_h501_SEQUENCE_OF_UsageField,
3615 &ett_h501_UsageField,
3616 &ett_h501_UsageRejectReason,
3617 &ett_h501_UsageIndicationConfirmation,
3618 &ett_h501_UsageIndicationRejection,
3619 &ett_h501_UsageIndicationRejectionReason,
3620 &ett_h501_ValidationRequest,
3621 &ett_h501_ValidationConfirmation,
3622 &ett_h501_ValidationRejection,
3623 &ett_h501_ValidationRejectionReason,
3624 &ett_h501_RequestInProgress,
3625 &ett_h501_NonStandardRequest,
3626 &ett_h501_NonStandardConfirmation,
3627 &ett_h501_NonStandardRejection,
3628 &ett_h501_NonStandardRejectionReason,
3629 &ett_h501_UnknownMessageResponse,
3630 &ett_h501_UnknownMessageReason,
3631 &ett_h501_AuthenticationRequest,
3632 &ett_h501_AuthenticationConfirmation,
3633 &ett_h501_AuthenticationRejection,
3634 &ett_h501_AuthenticationRejectionReason,
3635 &ett_h501_AddressTemplate,
3636 &ett_h501_SEQUENCE_OF_Pattern,
3637 &ett_h501_SEQUENCE_OF_RouteInformation,
3640 &ett_h501_RouteInformation,
3641 &ett_h501_T_messageType,
3642 &ett_h501_SEQUENCE_OF_PriceInfoSpec,
3643 &ett_h501_SEQUENCE_OF_ContactInformation,
3644 &ett_h501_SEQUENCE_OF_CircuitIdentifier,
3645 &ett_h501_ContactInformation,
3646 &ett_h501_PriceInfoSpec,
3647 &ett_h501_SEQUENCE_OF_PriceElement,
3648 &ett_h501_PriceElement,
3650 &ett_h501_Descriptor,
3651 &ett_h501_DescriptorInfo,
3652 &ett_h501_AlternatePEInfo,
3653 &ett_h501_SEQUENCE_OF_AlternatePE,
3654 &ett_h501_AlternatePE,
3655 &ett_h501_AccessToken,
3656 &ett_h501_CallInformation,
3657 &ett_h501_UsageCallStatus,
3658 &ett_h501_UserInformation,
3659 &ett_h501_UsageSpecification,
3661 &ett_h501_T_required,
3662 &ett_h501_T_preferred,
3663 &ett_h501_PartyInformation,
3664 &ett_h501_SEQUENCE_OF_AliasAddress,
3666 &ett_h501_TerminationCause,
3668 /*--- End of included file: packet-h501-ettarr.c ---*/
3669 #line 104 "../../asn1/h501/packet-h501-template.c"
3672 /* Register protocol */
3673 proto_h501 = proto_register_protocol(PNAME, PSNAME, PFNAME);
3675 /* Register fields and subtrees */
3676 proto_register_field_array(proto_h501, hf, array_length(hf));
3677 proto_register_subtree_array(ett, array_length(ett));
3679 new_register_dissector(PFNAME, dissect_h501_pdu, proto_h501);
3681 h501_module = prefs_register_protocol(proto_h501, proto_reg_handoff_h501);
3682 prefs_register_uint_preference(h501_module, "udp.port",
3684 "Port to be decoded as h501",
3685 10, &h501_udp_port);
3686 prefs_register_uint_preference(h501_module, "tcp.port",
3688 "Port to be decoded as h501",
3689 10, &h501_tcp_port);
3690 prefs_register_bool_preference(h501_module, "desegment",
3691 "Desegment H.501 over TCP",
3692 "Desegment H.501 messages that span more TCP segments",
3693 &h501_desegment_tcp);
3697 /*--- proto_reg_handoff_h501 -------------------------------------------*/
3698 void proto_reg_handoff_h501(void)
3700 static gboolean h501_prefs_initialized = FALSE;
3701 static dissector_handle_t h501_udp_handle;
3702 static dissector_handle_t h501_tcp_handle;
3703 static guint saved_h501_udp_port;
3704 static guint saved_h501_tcp_port;
3706 if (!h501_prefs_initialized) {
3707 h501_pdu_handle = find_dissector(PFNAME);
3708 h501_udp_handle = new_create_dissector_handle(dissect_h501_udp, proto_h501);
3709 h501_tcp_handle = new_create_dissector_handle(dissect_h501_tcp, proto_h501);
3710 h501_prefs_initialized = TRUE;
3712 dissector_delete_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
3713 dissector_delete_uint("tcp.port", saved_h501_tcp_port, h501_tcp_handle);
3716 /* Set our port number for future use */
3717 saved_h501_udp_port = h501_udp_port;
3718 dissector_add_uint("udp.port", saved_h501_udp_port, h501_udp_handle);
3719 saved_h501_tcp_port = h501_tcp_port;
3720 dissector_add_uint("tcp.port", saved_h501_tcp_port, h501_tcp_handle);