1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* asn2wrs.py -q -L -p h501 -c ./h501.cnf -s ./packet-h501-template -D . -O ../.. H501-MESSAGES.asn */
7 * Routines for H.501 packet dissection
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * SPDX-License-Identifier: GPL-2.0-or-later
19 #include <epan/packet.h>
20 #include <epan/prefs.h>
21 #include <epan/oids.h>
22 #include <epan/asn1.h>
23 #include <wsutil/array.h>
25 #include "packet-tpkt.h"
26 #include "packet-per.h"
27 #include "packet-h225.h"
28 #include "packet-h235.h"
30 #define PNAME "H.501 Mobility"
31 #define PSNAME "H.501"
34 void proto_register_h501(void);
36 /* Initialize the protocol and registered fields */
37 static int proto_h501
;
38 static int hf_h501_Message_PDU
; /* Message */
39 static int hf_h501_body
; /* MessageBody */
40 static int hf_h501_common
; /* MessageCommonInfo */
41 static int hf_h501_serviceRequest
; /* ServiceRequest */
42 static int hf_h501_serviceConfirmation
; /* ServiceConfirmation */
43 static int hf_h501_serviceRejection
; /* ServiceRejection */
44 static int hf_h501_serviceRelease
; /* ServiceRelease */
45 static int hf_h501_descriptorRequest
; /* DescriptorRequest */
46 static int hf_h501_descriptorConfirmation
; /* DescriptorConfirmation */
47 static int hf_h501_descriptorRejection
; /* DescriptorRejection */
48 static int hf_h501_descriptorIDRequest
; /* DescriptorIDRequest */
49 static int hf_h501_descriptorIDConfirmation
; /* DescriptorIDConfirmation */
50 static int hf_h501_descriptorIDRejection
; /* DescriptorIDRejection */
51 static int hf_h501_descriptorUpdate
; /* DescriptorUpdate */
52 static int hf_h501_descriptorUpdateAck
; /* DescriptorUpdateAck */
53 static int hf_h501_accessRequest
; /* AccessRequest */
54 static int hf_h501_accessConfirmation
; /* AccessConfirmation */
55 static int hf_h501_accessRejection
; /* AccessRejection */
56 static int hf_h501_requestInProgress
; /* RequestInProgress */
57 static int hf_h501_nonStandardRequest
; /* NonStandardRequest */
58 static int hf_h501_nonStandardConfirmation
; /* NonStandardConfirmation */
59 static int hf_h501_nonStandardRejection
; /* NonStandardRejection */
60 static int hf_h501_unknownMessageResponse
; /* UnknownMessageResponse */
61 static int hf_h501_usageRequest
; /* UsageRequest */
62 static int hf_h501_usageConfirmation
; /* UsageConfirmation */
63 static int hf_h501_usageIndication
; /* UsageIndication */
64 static int hf_h501_usageIndicationConfirmation
; /* UsageIndicationConfirmation */
65 static int hf_h501_usageIndicationRejection
; /* UsageIndicationRejection */
66 static int hf_h501_usageRejection
; /* UsageRejection */
67 static int hf_h501_validationRequest
; /* ValidationRequest */
68 static int hf_h501_validationConfirmation
; /* ValidationConfirmation */
69 static int hf_h501_validationRejection
; /* ValidationRejection */
70 static int hf_h501_authenticationRequest
; /* AuthenticationRequest */
71 static int hf_h501_authenticationConfirmation
; /* AuthenticationConfirmation */
72 static int hf_h501_authenticationRejection
; /* AuthenticationRejection */
73 static int hf_h501_sequenceNumber
; /* INTEGER_0_65535 */
74 static int hf_h501_annexGversion
; /* ProtocolVersion */
75 static int hf_h501_hopCount
; /* INTEGER_1_255 */
76 static int hf_h501_replyAddress
; /* SEQUENCE_OF_TransportAddress */
77 static int hf_h501_replyAddress_item
; /* TransportAddress */
78 static int hf_h501_integrityCheckValue
; /* ICV */
79 static int hf_h501_tokens
; /* SEQUENCE_OF_ClearToken */
80 static int hf_h501_tokens_item
; /* ClearToken */
81 static int hf_h501_cryptoTokens
; /* SEQUENCE_OF_CryptoH323Token */
82 static int hf_h501_cryptoTokens_item
; /* CryptoH323Token */
83 static int hf_h501_nonStandard
; /* SEQUENCE_OF_NonStandardParameter */
84 static int hf_h501_nonStandard_item
; /* NonStandardParameter */
85 static int hf_h501_serviceID
; /* ServiceID */
86 static int hf_h501_genericData
; /* SEQUENCE_OF_GenericData */
87 static int hf_h501_genericData_item
; /* GenericData */
88 static int hf_h501_featureSet
; /* FeatureSet */
89 static int hf_h501_version
; /* ProtocolVersion */
90 static int hf_h501_elementIdentifier
; /* ElementIdentifier */
91 static int hf_h501_domainIdentifier
; /* AliasAddress */
92 static int hf_h501_securityMode
; /* SEQUENCE_OF_SecurityMode */
93 static int hf_h501_securityMode_item
; /* SecurityMode */
94 static int hf_h501_timeToLive
; /* INTEGER_1_4294967295 */
95 static int hf_h501_usageSpec
; /* UsageSpecification */
96 static int hf_h501_authentication
; /* AuthenticationMechanism */
97 static int hf_h501_integrity
; /* IntegrityMechanism */
98 static int hf_h501_algorithmOIDs
; /* T_algorithmOIDs */
99 static int hf_h501_algorithmOIDs_item
; /* OBJECT_IDENTIFIER */
100 static int hf_h501_alternates
; /* AlternatePEInfo */
101 static int hf_h501_securityMode_01
; /* SecurityMode */
102 static int hf_h501_reason
; /* ServiceRejectionReason */
103 static int hf_h501_serviceUnavailable
; /* NULL */
104 static int hf_h501_serviceRedirected
; /* NULL */
105 static int hf_h501_security
; /* NULL */
106 static int hf_h501_continue
; /* NULL */
107 static int hf_h501_undefined
; /* NULL */
108 static int hf_h501_unknownServiceID
; /* NULL */
109 static int hf_h501_cannotSupportUsageSpec
; /* NULL */
110 static int hf_h501_neededFeature
; /* NULL */
111 static int hf_h501_genericDataReason
; /* NULL */
112 static int hf_h501_usageUnavailable
; /* NULL */
113 static int hf_h501_unknownUsageSendTo
; /* NULL */
114 static int hf_h501_reason_01
; /* ServiceReleaseReason */
115 static int hf_h501_outOfService
; /* NULL */
116 static int hf_h501_maintenance
; /* NULL */
117 static int hf_h501_terminated
; /* NULL */
118 static int hf_h501_expired
; /* NULL */
119 static int hf_h501_descriptorID
; /* SEQUENCE_OF_DescriptorID */
120 static int hf_h501_descriptorID_item
; /* DescriptorID */
121 static int hf_h501_descriptor
; /* SEQUENCE_OF_Descriptor */
122 static int hf_h501_descriptor_item
; /* Descriptor */
123 static int hf_h501_reason_02
; /* DescriptorRejectionReason */
124 static int hf_h501_descriptorRejection_descriptorID
; /* DescriptorID */
125 static int hf_h501_packetSizeExceeded
; /* NULL */
126 static int hf_h501_illegalID
; /* NULL */
127 static int hf_h501_hopCountExceeded
; /* NULL */
128 static int hf_h501_noServiceRelationship
; /* NULL */
129 static int hf_h501_descriptorInfo
; /* SEQUENCE_OF_DescriptorInfo */
130 static int hf_h501_descriptorInfo_item
; /* DescriptorInfo */
131 static int hf_h501_reason_03
; /* DescriptorIDRejectionReason */
132 static int hf_h501_noDescriptors
; /* NULL */
133 static int hf_h501_sender
; /* AliasAddress */
134 static int hf_h501_updateInfo
; /* SEQUENCE_OF_UpdateInformation */
135 static int hf_h501_updateInfo_item
; /* UpdateInformation */
136 static int hf_h501_descriptorInfo_01
; /* T_descriptorInfo */
137 static int hf_h501_updateInformation_descriptorID
; /* DescriptorID */
138 static int hf_h501_descriptor_01
; /* Descriptor */
139 static int hf_h501_updateType
; /* T_updateType */
140 static int hf_h501_added
; /* NULL */
141 static int hf_h501_deleted
; /* NULL */
142 static int hf_h501_changed
; /* NULL */
143 static int hf_h501_destinationInfo
; /* PartyInformation */
144 static int hf_h501_sourceInfo
; /* PartyInformation */
145 static int hf_h501_callInfo
; /* CallInformation */
146 static int hf_h501_desiredProtocols
; /* SEQUENCE_OF_SupportedProtocols */
147 static int hf_h501_desiredProtocols_item
; /* SupportedProtocols */
148 static int hf_h501_templates
; /* SEQUENCE_OF_AddressTemplate */
149 static int hf_h501_templates_item
; /* AddressTemplate */
150 static int hf_h501_partialResponse
; /* BOOLEAN */
151 static int hf_h501_supportedProtocols
; /* SEQUENCE_OF_SupportedProtocols */
152 static int hf_h501_supportedProtocols_item
; /* SupportedProtocols */
153 static int hf_h501_serviceControl
; /* SEQUENCE_OF_ServiceControlSession */
154 static int hf_h501_serviceControl_item
; /* ServiceControlSession */
155 static int hf_h501_reason_04
; /* AccessRejectionReason */
156 static int hf_h501_noMatch
; /* NULL */
157 static int hf_h501_needCallInformation
; /* NULL */
158 static int hf_h501_destinationUnavailable
; /* NULL */
159 static int hf_h501_aliasesInconsistent
; /* NULL */
160 static int hf_h501_resourceUnavailable
; /* NULL */
161 static int hf_h501_incompleteAddress
; /* NULL */
162 static int hf_h501_reason_05
; /* UsageRejectReason */
163 static int hf_h501_accessTokens
; /* SEQUENCE_OF_AccessToken */
164 static int hf_h501_accessTokens_item
; /* AccessToken */
165 static int hf_h501_senderRole
; /* Role */
166 static int hf_h501_usageCallStatus
; /* UsageCallStatus */
167 static int hf_h501_srcInfo
; /* PartyInformation */
168 static int hf_h501_destAddress
; /* PartyInformation */
169 static int hf_h501_startTime
; /* TimeStamp */
170 static int hf_h501_endTime
; /* TimeStamp */
171 static int hf_h501_terminationCause
; /* TerminationCause */
172 static int hf_h501_usageFields
; /* SEQUENCE_OF_UsageField */
173 static int hf_h501_usageFields_item
; /* UsageField */
174 static int hf_h501_id
; /* OBJECT_IDENTIFIER */
175 static int hf_h501_value
; /* OCTET_STRING */
176 static int hf_h501_invalidCall
; /* NULL */
177 static int hf_h501_unavailable
; /* NULL */
178 static int hf_h501_reason_06
; /* UsageIndicationRejectionReason */
179 static int hf_h501_unknownCall
; /* NULL */
180 static int hf_h501_incomplete
; /* NULL */
181 static int hf_h501_accessToken
; /* SEQUENCE_OF_AccessToken */
182 static int hf_h501_accessToken_item
; /* AccessToken */
183 static int hf_h501_reason_07
; /* ValidationRejectionReason */
184 static int hf_h501_tokenNotValid
; /* NULL */
185 static int hf_h501_missingSourceInfo
; /* NULL */
186 static int hf_h501_missingDestInfo
; /* NULL */
187 static int hf_h501_delay
; /* INTEGER_1_65535 */
188 static int hf_h501_reason_08
; /* NonStandardRejectionReason */
189 static int hf_h501_notSupported
; /* NULL */
190 static int hf_h501_unknownMessage
; /* OCTET_STRING */
191 static int hf_h501_reason_09
; /* UnknownMessageReason */
192 static int hf_h501_notUnderstood
; /* NULL */
193 static int hf_h501_applicationMessage
; /* ApplicationMessage */
194 static int hf_h501_reason_10
; /* AuthenticationRejectionReason */
195 static int hf_h501_securityWrongSyncTime
; /* NULL */
196 static int hf_h501_securityReplay
; /* NULL */
197 static int hf_h501_securityWrongGeneralID
; /* NULL */
198 static int hf_h501_securityWrongSendersID
; /* NULL */
199 static int hf_h501_securityIntegrityFailed
; /* NULL */
200 static int hf_h501_securityWrongOID
; /* NULL */
201 static int hf_h501_pattern
; /* SEQUENCE_OF_Pattern */
202 static int hf_h501_pattern_item
; /* Pattern */
203 static int hf_h501_routeInfo
; /* SEQUENCE_OF_RouteInformation */
204 static int hf_h501_routeInfo_item
; /* RouteInformation */
205 static int hf_h501_specific
; /* AliasAddress */
206 static int hf_h501_wildcard
; /* AliasAddress */
207 static int hf_h501_range
; /* T_range */
208 static int hf_h501_startOfRange
; /* PartyNumber */
209 static int hf_h501_endOfRange
; /* PartyNumber */
210 static int hf_h501_messageType
; /* T_messageType */
211 static int hf_h501_sendAccessRequest
; /* NULL */
212 static int hf_h501_sendSetup
; /* NULL */
213 static int hf_h501_nonExistent
; /* NULL */
214 static int hf_h501_callSpecific
; /* BOOLEAN */
215 static int hf_h501_priceInfo
; /* SEQUENCE_OF_PriceInfoSpec */
216 static int hf_h501_priceInfo_item
; /* PriceInfoSpec */
217 static int hf_h501_contacts
; /* SEQUENCE_OF_ContactInformation */
218 static int hf_h501_contacts_item
; /* ContactInformation */
219 static int hf_h501_type
; /* EndpointType */
220 static int hf_h501_circuitID
; /* CircuitInfo */
221 static int hf_h501_supportedCircuits
; /* SEQUENCE_OF_CircuitIdentifier */
222 static int hf_h501_supportedCircuits_item
; /* CircuitIdentifier */
223 static int hf_h501_transportAddress
; /* AliasAddress */
224 static int hf_h501_priority
; /* INTEGER_0_127 */
225 static int hf_h501_transportQoS
; /* TransportQOS */
226 static int hf_h501_security_01
; /* SEQUENCE_OF_SecurityMode */
227 static int hf_h501_security_item
; /* SecurityMode */
228 static int hf_h501_multipleCalls
; /* BOOLEAN */
229 static int hf_h501_currency
; /* IA5String_SIZE_3 */
230 static int hf_h501_currencyScale
; /* INTEGER_M127_127 */
231 static int hf_h501_validFrom
; /* GlobalTimeStamp */
232 static int hf_h501_validUntil
; /* GlobalTimeStamp */
233 static int hf_h501_hoursFrom
; /* IA5String_SIZE_6 */
234 static int hf_h501_hoursUntil
; /* IA5String_SIZE_6 */
235 static int hf_h501_priceElement
; /* SEQUENCE_OF_PriceElement */
236 static int hf_h501_priceElement_item
; /* PriceElement */
237 static int hf_h501_priceFormula
; /* IA5String_SIZE_1_2048 */
238 static int hf_h501_amount
; /* INTEGER_0_4294967295 */
239 static int hf_h501_quantum
; /* INTEGER_0_4294967295 */
240 static int hf_h501_units
; /* T_units */
241 static int hf_h501_seconds
; /* NULL */
242 static int hf_h501_packets
; /* NULL */
243 static int hf_h501_bytes
; /* NULL */
244 static int hf_h501_initial
; /* NULL */
245 static int hf_h501_minimum
; /* NULL */
246 static int hf_h501_maximum
; /* NULL */
247 static int hf_h501_descriptorInfo_02
; /* DescriptorInfo */
248 static int hf_h501_gatekeeperID
; /* GatekeeperIdentifier */
249 static int hf_h501_descriptorInfo_descriptorID
; /* DescriptorID */
250 static int hf_h501_lastChanged
; /* GlobalTimeStamp */
251 static int hf_h501_alternatePE
; /* SEQUENCE_OF_AlternatePE */
252 static int hf_h501_alternatePE_item
; /* AlternatePE */
253 static int hf_h501_alternateIsPermanent
; /* BOOLEAN */
254 static int hf_h501_contactAddress
; /* AliasAddress */
255 static int hf_h501_priority_01
; /* INTEGER_1_127 */
256 static int hf_h501_token
; /* ClearToken */
257 static int hf_h501_cryptoToken
; /* CryptoH323Token */
258 static int hf_h501_genericData_01
; /* GenericData */
259 static int hf_h501_callIdentifier
; /* CallIdentifier */
260 static int hf_h501_conferenceID
; /* ConferenceIdentifier */
261 static int hf_h501_preConnect
; /* NULL */
262 static int hf_h501_callInProgress
; /* NULL */
263 static int hf_h501_callEnded
; /* NULL */
264 static int hf_h501_registrationLost
; /* NULL */
265 static int hf_h501_userIdentifier
; /* AliasAddress */
266 static int hf_h501_userAuthenticator
; /* SEQUENCE_OF_CryptoH323Token */
267 static int hf_h501_userAuthenticator_item
; /* CryptoH323Token */
268 static int hf_h501_sendTo
; /* ElementIdentifier */
269 static int hf_h501_when
; /* T_when */
270 static int hf_h501_never
; /* NULL */
271 static int hf_h501_start
; /* NULL */
272 static int hf_h501_end
; /* NULL */
273 static int hf_h501_period
; /* INTEGER_1_65535 */
274 static int hf_h501_failures
; /* NULL */
275 static int hf_h501_required
; /* T_required */
276 static int hf_h501_required_item
; /* OBJECT_IDENTIFIER */
277 static int hf_h501_preferred
; /* T_preferred */
278 static int hf_h501_preferred_item
; /* OBJECT_IDENTIFIER */
279 static int hf_h501_sendToPEAddress
; /* AliasAddress */
280 static int hf_h501_logicalAddresses
; /* SEQUENCE_OF_AliasAddress */
281 static int hf_h501_logicalAddresses_item
; /* AliasAddress */
282 static int hf_h501_endpointType
; /* EndpointType */
283 static int hf_h501_userInfo
; /* UserInformation */
284 static int hf_h501_timeZone
; /* TimeZone */
285 static int hf_h501_originator
; /* NULL */
286 static int hf_h501_destination
; /* NULL */
287 static int hf_h501_nonStandardData
; /* NonStandardParameter */
288 static int hf_h501_releaseCompleteReason
; /* ReleaseCompleteReason */
289 static int hf_h501_causeIE
; /* INTEGER_1_65535 */
291 /* Initialize the subtree pointers */
293 static int ett_h501_Message
;
294 static int ett_h501_MessageBody
;
295 static int ett_h501_MessageCommonInfo
;
296 static int ett_h501_SEQUENCE_OF_TransportAddress
;
297 static int ett_h501_SEQUENCE_OF_ClearToken
;
298 static int ett_h501_SEQUENCE_OF_CryptoH323Token
;
299 static int ett_h501_SEQUENCE_OF_NonStandardParameter
;
300 static int ett_h501_SEQUENCE_OF_GenericData
;
301 static int ett_h501_ServiceRequest
;
302 static int ett_h501_SEQUENCE_OF_SecurityMode
;
303 static int ett_h501_SecurityMode
;
304 static int ett_h501_T_algorithmOIDs
;
305 static int ett_h501_ServiceConfirmation
;
306 static int ett_h501_ServiceRejection
;
307 static int ett_h501_ServiceRejectionReason
;
308 static int ett_h501_ServiceRelease
;
309 static int ett_h501_ServiceReleaseReason
;
310 static int ett_h501_DescriptorRequest
;
311 static int ett_h501_SEQUENCE_OF_DescriptorID
;
312 static int ett_h501_DescriptorConfirmation
;
313 static int ett_h501_SEQUENCE_OF_Descriptor
;
314 static int ett_h501_DescriptorRejection
;
315 static int ett_h501_DescriptorRejectionReason
;
316 static int ett_h501_DescriptorIDRequest
;
317 static int ett_h501_DescriptorIDConfirmation
;
318 static int ett_h501_SEQUENCE_OF_DescriptorInfo
;
319 static int ett_h501_DescriptorIDRejection
;
320 static int ett_h501_DescriptorIDRejectionReason
;
321 static int ett_h501_DescriptorUpdate
;
322 static int ett_h501_SEQUENCE_OF_UpdateInformation
;
323 static int ett_h501_UpdateInformation
;
324 static int ett_h501_T_descriptorInfo
;
325 static int ett_h501_T_updateType
;
326 static int ett_h501_DescriptorUpdateAck
;
327 static int ett_h501_AccessRequest
;
328 static int ett_h501_SEQUENCE_OF_SupportedProtocols
;
329 static int ett_h501_AccessConfirmation
;
330 static int ett_h501_SEQUENCE_OF_AddressTemplate
;
331 static int ett_h501_SEQUENCE_OF_ServiceControlSession
;
332 static int ett_h501_AccessRejection
;
333 static int ett_h501_AccessRejectionReason
;
334 static int ett_h501_UsageRequest
;
335 static int ett_h501_UsageConfirmation
;
336 static int ett_h501_UsageRejection
;
337 static int ett_h501_UsageIndication
;
338 static int ett_h501_SEQUENCE_OF_AccessToken
;
339 static int ett_h501_SEQUENCE_OF_UsageField
;
340 static int ett_h501_UsageField
;
341 static int ett_h501_UsageRejectReason
;
342 static int ett_h501_UsageIndicationConfirmation
;
343 static int ett_h501_UsageIndicationRejection
;
344 static int ett_h501_UsageIndicationRejectionReason
;
345 static int ett_h501_ValidationRequest
;
346 static int ett_h501_ValidationConfirmation
;
347 static int ett_h501_ValidationRejection
;
348 static int ett_h501_ValidationRejectionReason
;
349 static int ett_h501_RequestInProgress
;
350 static int ett_h501_NonStandardRequest
;
351 static int ett_h501_NonStandardConfirmation
;
352 static int ett_h501_NonStandardRejection
;
353 static int ett_h501_NonStandardRejectionReason
;
354 static int ett_h501_UnknownMessageResponse
;
355 static int ett_h501_UnknownMessageReason
;
356 static int ett_h501_AuthenticationRequest
;
357 static int ett_h501_AuthenticationConfirmation
;
358 static int ett_h501_AuthenticationRejection
;
359 static int ett_h501_AuthenticationRejectionReason
;
360 static int ett_h501_AddressTemplate
;
361 static int ett_h501_SEQUENCE_OF_Pattern
;
362 static int ett_h501_SEQUENCE_OF_RouteInformation
;
363 static int ett_h501_Pattern
;
364 static int ett_h501_T_range
;
365 static int ett_h501_RouteInformation
;
366 static int ett_h501_T_messageType
;
367 static int ett_h501_SEQUENCE_OF_PriceInfoSpec
;
368 static int ett_h501_SEQUENCE_OF_ContactInformation
;
369 static int ett_h501_SEQUENCE_OF_CircuitIdentifier
;
370 static int ett_h501_ContactInformation
;
371 static int ett_h501_PriceInfoSpec
;
372 static int ett_h501_SEQUENCE_OF_PriceElement
;
373 static int ett_h501_PriceElement
;
374 static int ett_h501_T_units
;
375 static int ett_h501_Descriptor
;
376 static int ett_h501_DescriptorInfo
;
377 static int ett_h501_AlternatePEInfo
;
378 static int ett_h501_SEQUENCE_OF_AlternatePE
;
379 static int ett_h501_AlternatePE
;
380 static int ett_h501_AccessToken
;
381 static int ett_h501_CallInformation
;
382 static int ett_h501_UsageCallStatus
;
383 static int ett_h501_UserInformation
;
384 static int ett_h501_UsageSpecification
;
385 static int ett_h501_T_when
;
386 static int ett_h501_T_required
;
387 static int ett_h501_T_preferred
;
388 static int ett_h501_PartyInformation
;
389 static int ett_h501_SEQUENCE_OF_AliasAddress
;
390 static int ett_h501_Role
;
391 static int ett_h501_TerminationCause
;
394 static dissector_handle_t h501_pdu_handle
;
395 static dissector_handle_t h501_udp_handle
;
396 static dissector_handle_t h501_tcp_handle
;
399 #define H501_PORT 2099
400 static bool h501_desegment_tcp
= true;
402 void proto_reg_handoff_h501(void);
407 dissect_h501_ElementIdentifier(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
408 offset
= dissect_per_BMPString(tvb
, offset
, actx
, tree
, hf_index
,
417 dissect_h501_OBJECT_IDENTIFIER(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
418 offset
= dissect_per_object_identifier(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
424 static const per_sequence_t T_algorithmOIDs_sequence_of
[1] = {
425 { &hf_h501_algorithmOIDs_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_OBJECT_IDENTIFIER
},
429 dissect_h501_T_algorithmOIDs(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
430 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
431 ett_h501_T_algorithmOIDs
, T_algorithmOIDs_sequence_of
);
437 static const per_sequence_t SecurityMode_sequence
[] = {
438 { &hf_h501_authentication
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h235_AuthenticationMechanism
},
439 { &hf_h501_integrity
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_IntegrityMechanism
},
440 { &hf_h501_algorithmOIDs
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_T_algorithmOIDs
},
445 dissect_h501_SecurityMode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
446 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
447 ett_h501_SecurityMode
, SecurityMode_sequence
);
453 static const per_sequence_t SEQUENCE_OF_SecurityMode_sequence_of
[1] = {
454 { &hf_h501_securityMode_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_SecurityMode
},
458 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_
) {
459 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
460 ett_h501_SEQUENCE_OF_SecurityMode
, SEQUENCE_OF_SecurityMode_sequence_of
);
468 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_
) {
469 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
470 1U, 4294967295U, NULL
, false);
478 dissect_h501_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
479 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
487 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_
) {
488 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
489 1U, 65535U, NULL
, false);
495 static const per_sequence_t T_when_sequence
[] = {
496 { &hf_h501_never
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_NULL
},
497 { &hf_h501_start
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_NULL
},
498 { &hf_h501_end
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_NULL
},
499 { &hf_h501_period
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_INTEGER_1_65535
},
500 { &hf_h501_failures
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_NULL
},
505 dissect_h501_T_when(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
506 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
507 ett_h501_T_when
, T_when_sequence
);
513 static const per_sequence_t T_required_sequence_of
[1] = {
514 { &hf_h501_required_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_OBJECT_IDENTIFIER
},
518 dissect_h501_T_required(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
519 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
520 ett_h501_T_required
, T_required_sequence_of
);
526 static const per_sequence_t T_preferred_sequence_of
[1] = {
527 { &hf_h501_preferred_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_OBJECT_IDENTIFIER
},
531 dissect_h501_T_preferred(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
532 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
533 ett_h501_T_preferred
, T_preferred_sequence_of
);
539 static const per_sequence_t UsageSpecification_sequence
[] = {
540 { &hf_h501_sendTo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ElementIdentifier
},
541 { &hf_h501_when
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_when
},
542 { &hf_h501_required
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_required
},
543 { &hf_h501_preferred
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_preferred
},
544 { &hf_h501_sendToPEAddress
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_AliasAddress
},
549 dissect_h501_UsageSpecification(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
550 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
551 ett_h501_UsageSpecification
, UsageSpecification_sequence
);
557 static const per_sequence_t ServiceRequest_sequence
[] = {
558 { &hf_h501_elementIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_ElementIdentifier
},
559 { &hf_h501_domainIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_AliasAddress
},
560 { &hf_h501_securityMode
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_SecurityMode
},
561 { &hf_h501_timeToLive
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_INTEGER_1_4294967295
},
562 { &hf_h501_usageSpec
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UsageSpecification
},
567 dissect_h501_ServiceRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
568 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
569 ett_h501_ServiceRequest
, ServiceRequest_sequence
);
577 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_
) {
578 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
579 1U, 127U, NULL
, false);
585 static const per_sequence_t AlternatePE_sequence
[] = {
586 { &hf_h501_contactAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
587 { &hf_h501_priority_01
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_1_127
},
588 { &hf_h501_elementIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_ElementIdentifier
},
593 dissect_h501_AlternatePE(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
594 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
595 ett_h501_AlternatePE
, AlternatePE_sequence
);
601 static const per_sequence_t SEQUENCE_OF_AlternatePE_sequence_of
[1] = {
602 { &hf_h501_alternatePE_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_AlternatePE
},
606 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_
) {
607 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
608 ett_h501_SEQUENCE_OF_AlternatePE
, SEQUENCE_OF_AlternatePE_sequence_of
);
616 dissect_h501_BOOLEAN(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
617 offset
= dissect_per_boolean(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
623 static const per_sequence_t AlternatePEInfo_sequence
[] = {
624 { &hf_h501_alternatePE
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_AlternatePE
},
625 { &hf_h501_alternateIsPermanent
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_BOOLEAN
},
630 dissect_h501_AlternatePEInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
631 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
632 ett_h501_AlternatePEInfo
, AlternatePEInfo_sequence
);
638 static const per_sequence_t ServiceConfirmation_sequence
[] = {
639 { &hf_h501_elementIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ElementIdentifier
},
640 { &hf_h501_domainIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
641 { &hf_h501_alternates
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_AlternatePEInfo
},
642 { &hf_h501_securityMode_01
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SecurityMode
},
643 { &hf_h501_timeToLive
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_INTEGER_1_4294967295
},
644 { &hf_h501_usageSpec
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UsageSpecification
},
649 dissect_h501_ServiceConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
650 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
651 ett_h501_ServiceConfirmation
, ServiceConfirmation_sequence
);
657 static const value_string h501_ServiceRejectionReason_vals
[] = {
658 { 0, "serviceUnavailable" },
659 { 1, "serviceRedirected" },
663 { 5, "unknownServiceID" },
664 { 6, "cannotSupportUsageSpec" },
665 { 7, "neededFeature" },
666 { 8, "genericDataReason" },
667 { 9, "usageUnavailable" },
668 { 10, "unknownUsageSendTo" },
672 static const per_choice_t ServiceRejectionReason_choice
[] = {
673 { 0, &hf_h501_serviceUnavailable
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
674 { 1, &hf_h501_serviceRedirected
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
675 { 2, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
676 { 3, &hf_h501_continue
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
677 { 4, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
678 { 5, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
679 { 6, &hf_h501_cannotSupportUsageSpec
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
680 { 7, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
681 { 8, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
682 { 9, &hf_h501_usageUnavailable
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
683 { 10, &hf_h501_unknownUsageSendTo
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
688 dissect_h501_ServiceRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
689 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
690 ett_h501_ServiceRejectionReason
, ServiceRejectionReason_choice
,
697 static const per_sequence_t ServiceRejection_sequence
[] = {
698 { &hf_h501_reason
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ServiceRejectionReason
},
699 { &hf_h501_alternates
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_AlternatePEInfo
},
704 dissect_h501_ServiceRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
705 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
706 ett_h501_ServiceRejection
, ServiceRejection_sequence
);
712 static const value_string h501_ServiceReleaseReason_vals
[] = {
713 { 0, "outOfService" },
714 { 1, "maintenance" },
720 static const per_choice_t ServiceReleaseReason_choice
[] = {
721 { 0, &hf_h501_outOfService
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
722 { 1, &hf_h501_maintenance
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
723 { 2, &hf_h501_terminated
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
724 { 3, &hf_h501_expired
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
729 dissect_h501_ServiceReleaseReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
730 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
731 ett_h501_ServiceReleaseReason
, ServiceReleaseReason_choice
,
738 static const per_sequence_t ServiceRelease_sequence
[] = {
739 { &hf_h501_reason_01
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ServiceReleaseReason
},
740 { &hf_h501_alternates
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_AlternatePEInfo
},
745 dissect_h501_ServiceRelease(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
746 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
747 ett_h501_ServiceRelease
, ServiceRelease_sequence
);
755 dissect_h501_DescriptorID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
756 offset
= dissect_h225_GloballyUniqueID(tvb
, offset
, actx
, tree
, hf_index
);
762 static const per_sequence_t SEQUENCE_OF_DescriptorID_sequence_of
[1] = {
763 { &hf_h501_descriptorID_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_DescriptorID
},
767 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_
) {
768 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
769 ett_h501_SEQUENCE_OF_DescriptorID
, SEQUENCE_OF_DescriptorID_sequence_of
);
775 static const per_sequence_t DescriptorRequest_sequence
[] = {
776 { &hf_h501_descriptorID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_DescriptorID
},
781 dissect_h501_DescriptorRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
782 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
783 ett_h501_DescriptorRequest
, DescriptorRequest_sequence
);
791 dissect_h501_GlobalTimeStamp(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
792 offset
= dissect_per_IA5String(tvb
, offset
, actx
, tree
, hf_index
,
800 static const per_sequence_t DescriptorInfo_sequence
[] = {
801 { &hf_h501_descriptorInfo_descriptorID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_DescriptorID
},
802 { &hf_h501_lastChanged
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_GlobalTimeStamp
},
807 dissect_h501_DescriptorInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
808 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
809 ett_h501_DescriptorInfo
, DescriptorInfo_sequence
);
815 static const per_sequence_t T_range_sequence
[] = {
816 { &hf_h501_startOfRange
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_PartyNumber
},
817 { &hf_h501_endOfRange
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_PartyNumber
},
822 dissect_h501_T_range(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
823 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
824 ett_h501_T_range
, T_range_sequence
);
830 static const value_string h501_Pattern_vals
[] = {
837 static const per_choice_t Pattern_choice
[] = {
838 { 0, &hf_h501_specific
, ASN1_EXTENSION_ROOT
, dissect_h225_AliasAddress
},
839 { 1, &hf_h501_wildcard
, ASN1_EXTENSION_ROOT
, dissect_h225_AliasAddress
},
840 { 2, &hf_h501_range
, ASN1_EXTENSION_ROOT
, dissect_h501_T_range
},
845 dissect_h501_Pattern(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
846 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
847 ett_h501_Pattern
, Pattern_choice
,
854 static const per_sequence_t SEQUENCE_OF_Pattern_sequence_of
[1] = {
855 { &hf_h501_pattern_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_Pattern
},
859 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_
) {
860 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
861 ett_h501_SEQUENCE_OF_Pattern
, SEQUENCE_OF_Pattern_sequence_of
);
867 static const value_string h501_T_messageType_vals
[] = {
868 { 0, "sendAccessRequest" },
870 { 2, "nonExistent" },
874 static const per_choice_t T_messageType_choice
[] = {
875 { 0, &hf_h501_sendAccessRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
876 { 1, &hf_h501_sendSetup
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
877 { 2, &hf_h501_nonExistent
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
882 dissect_h501_T_messageType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
883 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
884 ett_h501_T_messageType
, T_messageType_choice
,
893 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_
) {
894 offset
= dissect_per_IA5String(tvb
, offset
, actx
, tree
, hf_index
,
904 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_
) {
905 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
906 -127, 127U, NULL
, false);
914 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_
) {
915 offset
= dissect_per_IA5String(tvb
, offset
, actx
, tree
, hf_index
,
925 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_
) {
926 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
927 0U, 4294967295U, NULL
, false);
933 static const value_string h501_T_units_vals
[] = {
943 static const per_choice_t T_units_choice
[] = {
944 { 0, &hf_h501_seconds
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
945 { 1, &hf_h501_packets
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
946 { 2, &hf_h501_bytes
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
947 { 3, &hf_h501_initial
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
948 { 4, &hf_h501_minimum
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
949 { 5, &hf_h501_maximum
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
954 dissect_h501_T_units(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
955 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
956 ett_h501_T_units
, T_units_choice
,
963 static const per_sequence_t PriceElement_sequence
[] = {
964 { &hf_h501_amount
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_0_4294967295
},
965 { &hf_h501_quantum
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_0_4294967295
},
966 { &hf_h501_units
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_units
},
971 dissect_h501_PriceElement(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
972 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
973 ett_h501_PriceElement
, PriceElement_sequence
);
979 static const per_sequence_t SEQUENCE_OF_PriceElement_sequence_of
[1] = {
980 { &hf_h501_priceElement_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_PriceElement
},
984 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_
) {
985 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
986 ett_h501_SEQUENCE_OF_PriceElement
, SEQUENCE_OF_PriceElement_sequence_of
);
994 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_
) {
995 offset
= dissect_per_IA5String(tvb
, offset
, actx
, tree
, hf_index
,
1003 static const per_sequence_t PriceInfoSpec_sequence
[] = {
1004 { &hf_h501_currency
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_IA5String_SIZE_3
},
1005 { &hf_h501_currencyScale
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_M127_127
},
1006 { &hf_h501_validFrom
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_GlobalTimeStamp
},
1007 { &hf_h501_validUntil
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_GlobalTimeStamp
},
1008 { &hf_h501_hoursFrom
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_IA5String_SIZE_6
},
1009 { &hf_h501_hoursUntil
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_IA5String_SIZE_6
},
1010 { &hf_h501_priceElement
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_PriceElement
},
1011 { &hf_h501_priceFormula
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_IA5String_SIZE_1_2048
},
1012 { NULL
, 0, 0, NULL
}
1016 dissect_h501_PriceInfoSpec(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1017 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1018 ett_h501_PriceInfoSpec
, PriceInfoSpec_sequence
);
1024 static const per_sequence_t SEQUENCE_OF_PriceInfoSpec_sequence_of
[1] = {
1025 { &hf_h501_priceInfo_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_PriceInfoSpec
},
1029 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_
) {
1030 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1031 ett_h501_SEQUENCE_OF_PriceInfoSpec
, SEQUENCE_OF_PriceInfoSpec_sequence_of
);
1039 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_
) {
1040 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1041 0U, 127U, NULL
, false);
1047 static const value_string h501_AccessToken_vals
[] = {
1049 { 1, "cryptoToken" },
1050 { 2, "genericData" },
1054 static const per_choice_t AccessToken_choice
[] = {
1055 { 0, &hf_h501_token
, ASN1_EXTENSION_ROOT
, dissect_h235_ClearToken
},
1056 { 1, &hf_h501_cryptoToken
, ASN1_EXTENSION_ROOT
, dissect_h225_CryptoH323Token
},
1057 { 2, &hf_h501_genericData_01
, ASN1_NOT_EXTENSION_ROOT
, dissect_h225_GenericData
},
1058 { 0, NULL
, 0, NULL
}
1062 dissect_h501_AccessToken(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1063 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1064 ett_h501_AccessToken
, AccessToken_choice
,
1071 static const per_sequence_t SEQUENCE_OF_AccessToken_sequence_of
[1] = {
1072 { &hf_h501_accessTokens_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_AccessToken
},
1076 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_
) {
1077 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1078 ett_h501_SEQUENCE_OF_AccessToken
, SEQUENCE_OF_AccessToken_sequence_of
);
1084 static const per_sequence_t SEQUENCE_OF_CircuitIdentifier_sequence_of
[1] = {
1085 { &hf_h501_supportedCircuits_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_CircuitIdentifier
},
1089 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_
) {
1090 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1091 ett_h501_SEQUENCE_OF_CircuitIdentifier
, SEQUENCE_OF_CircuitIdentifier_sequence_of
);
1097 static const per_sequence_t ContactInformation_sequence
[] = {
1098 { &hf_h501_transportAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
1099 { &hf_h501_priority
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_0_127
},
1100 { &hf_h501_transportQoS
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_TransportQOS
},
1101 { &hf_h501_security_01
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_SecurityMode
},
1102 { &hf_h501_accessTokens
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_AccessToken
},
1103 { &hf_h501_multipleCalls
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_BOOLEAN
},
1104 { &hf_h501_featureSet
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_FeatureSet
},
1105 { &hf_h501_circuitID
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_CircuitInfo
},
1106 { &hf_h501_supportedCircuits
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_CircuitIdentifier
},
1107 { NULL
, 0, 0, NULL
}
1111 dissect_h501_ContactInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1112 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1113 ett_h501_ContactInformation
, ContactInformation_sequence
);
1119 static const per_sequence_t SEQUENCE_OF_ContactInformation_sequence_of
[1] = {
1120 { &hf_h501_contacts_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_ContactInformation
},
1124 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_
) {
1125 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1126 ett_h501_SEQUENCE_OF_ContactInformation
, SEQUENCE_OF_ContactInformation_sequence_of
);
1132 static const per_sequence_t RouteInformation_sequence
[] = {
1133 { &hf_h501_messageType
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_messageType
},
1134 { &hf_h501_callSpecific
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_BOOLEAN
},
1135 { &hf_h501_usageSpec
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UsageSpecification
},
1136 { &hf_h501_priceInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_PriceInfoSpec
},
1137 { &hf_h501_contacts
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_ContactInformation
},
1138 { &hf_h501_type
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_EndpointType
},
1139 { &hf_h501_featureSet
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_FeatureSet
},
1140 { &hf_h501_circuitID
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_CircuitInfo
},
1141 { &hf_h501_supportedCircuits
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_CircuitIdentifier
},
1142 { NULL
, 0, 0, NULL
}
1146 dissect_h501_RouteInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1147 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1148 ett_h501_RouteInformation
, RouteInformation_sequence
);
1154 static const per_sequence_t SEQUENCE_OF_RouteInformation_sequence_of
[1] = {
1155 { &hf_h501_routeInfo_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_RouteInformation
},
1159 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_
) {
1160 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1161 ett_h501_SEQUENCE_OF_RouteInformation
, SEQUENCE_OF_RouteInformation_sequence_of
);
1167 static const per_sequence_t SEQUENCE_OF_SupportedProtocols_sequence_of
[1] = {
1168 { &hf_h501_desiredProtocols_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_SupportedProtocols
},
1172 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_
) {
1173 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1174 ett_h501_SEQUENCE_OF_SupportedProtocols
, SEQUENCE_OF_SupportedProtocols_sequence_of
);
1180 static const per_sequence_t AddressTemplate_sequence
[] = {
1181 { &hf_h501_pattern
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_Pattern
},
1182 { &hf_h501_routeInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_RouteInformation
},
1183 { &hf_h501_timeToLive
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_1_4294967295
},
1184 { &hf_h501_supportedProtocols
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_SupportedProtocols
},
1185 { &hf_h501_featureSet
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_FeatureSet
},
1186 { NULL
, 0, 0, NULL
}
1190 dissect_h501_AddressTemplate(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1191 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1192 ett_h501_AddressTemplate
, AddressTemplate_sequence
);
1198 static const per_sequence_t SEQUENCE_OF_AddressTemplate_sequence_of
[1] = {
1199 { &hf_h501_templates_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_AddressTemplate
},
1203 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_
) {
1204 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1205 ett_h501_SEQUENCE_OF_AddressTemplate
, SEQUENCE_OF_AddressTemplate_sequence_of
);
1211 static const per_sequence_t Descriptor_sequence
[] = {
1212 { &hf_h501_descriptorInfo_02
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_DescriptorInfo
},
1213 { &hf_h501_templates
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_AddressTemplate
},
1214 { &hf_h501_gatekeeperID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_GatekeeperIdentifier
},
1215 { NULL
, 0, 0, NULL
}
1219 dissect_h501_Descriptor(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1220 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1221 ett_h501_Descriptor
, Descriptor_sequence
);
1227 static const per_sequence_t SEQUENCE_OF_Descriptor_sequence_of
[1] = {
1228 { &hf_h501_descriptor_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_Descriptor
},
1232 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_
) {
1233 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1234 ett_h501_SEQUENCE_OF_Descriptor
, SEQUENCE_OF_Descriptor_sequence_of
);
1240 static const per_sequence_t DescriptorConfirmation_sequence
[] = {
1241 { &hf_h501_descriptor
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_Descriptor
},
1242 { NULL
, 0, 0, NULL
}
1246 dissect_h501_DescriptorConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1247 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1248 ett_h501_DescriptorConfirmation
, DescriptorConfirmation_sequence
);
1254 static const value_string h501_DescriptorRejectionReason_vals
[] = {
1255 { 0, "packetSizeExceeded" },
1258 { 3, "hopCountExceeded" },
1259 { 4, "noServiceRelationship" },
1261 { 6, "neededFeature" },
1262 { 7, "genericDataReason" },
1263 { 8, "unknownServiceID" },
1267 static const per_choice_t DescriptorRejectionReason_choice
[] = {
1268 { 0, &hf_h501_packetSizeExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1269 { 1, &hf_h501_illegalID
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1270 { 2, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1271 { 3, &hf_h501_hopCountExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1272 { 4, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1273 { 5, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1274 { 6, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1275 { 7, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1276 { 8, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1277 { 0, NULL
, 0, NULL
}
1281 dissect_h501_DescriptorRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1282 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1283 ett_h501_DescriptorRejectionReason
, DescriptorRejectionReason_choice
,
1290 static const per_sequence_t DescriptorRejection_sequence
[] = {
1291 { &hf_h501_reason_02
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_DescriptorRejectionReason
},
1292 { &hf_h501_descriptorRejection_descriptorID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_DescriptorID
},
1293 { NULL
, 0, 0, NULL
}
1297 dissect_h501_DescriptorRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1298 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1299 ett_h501_DescriptorRejection
, DescriptorRejection_sequence
);
1305 static const per_sequence_t DescriptorIDRequest_sequence
[] = {
1306 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1310 dissect_h501_DescriptorIDRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1311 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1312 ett_h501_DescriptorIDRequest
, DescriptorIDRequest_sequence
);
1318 static const per_sequence_t SEQUENCE_OF_DescriptorInfo_sequence_of
[1] = {
1319 { &hf_h501_descriptorInfo_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_DescriptorInfo
},
1323 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_
) {
1324 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1325 ett_h501_SEQUENCE_OF_DescriptorInfo
, SEQUENCE_OF_DescriptorInfo_sequence_of
);
1331 static const per_sequence_t DescriptorIDConfirmation_sequence
[] = {
1332 { &hf_h501_descriptorInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_DescriptorInfo
},
1333 { NULL
, 0, 0, NULL
}
1337 dissect_h501_DescriptorIDConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1338 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1339 ett_h501_DescriptorIDConfirmation
, DescriptorIDConfirmation_sequence
);
1345 static const value_string h501_DescriptorIDRejectionReason_vals
[] = {
1346 { 0, "noDescriptors" },
1348 { 2, "hopCountExceeded" },
1349 { 3, "noServiceRelationship" },
1351 { 5, "neededFeature" },
1352 { 6, "genericDataReason" },
1353 { 7, "unknownServiceID" },
1357 static const per_choice_t DescriptorIDRejectionReason_choice
[] = {
1358 { 0, &hf_h501_noDescriptors
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1359 { 1, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1360 { 2, &hf_h501_hopCountExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1361 { 3, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1362 { 4, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1363 { 5, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1364 { 6, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1365 { 7, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1366 { 0, NULL
, 0, NULL
}
1370 dissect_h501_DescriptorIDRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1371 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1372 ett_h501_DescriptorIDRejectionReason
, DescriptorIDRejectionReason_choice
,
1379 static const per_sequence_t DescriptorIDRejection_sequence
[] = {
1380 { &hf_h501_reason_03
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_DescriptorIDRejectionReason
},
1381 { NULL
, 0, 0, NULL
}
1385 dissect_h501_DescriptorIDRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1386 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1387 ett_h501_DescriptorIDRejection
, DescriptorIDRejection_sequence
);
1393 static const value_string h501_T_descriptorInfo_vals
[] = {
1394 { 0, "descriptorID" },
1395 { 1, "descriptor" },
1399 static const per_choice_t T_descriptorInfo_choice
[] = {
1400 { 0, &hf_h501_updateInformation_descriptorID
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorID
},
1401 { 1, &hf_h501_descriptor_01
, ASN1_EXTENSION_ROOT
, dissect_h501_Descriptor
},
1402 { 0, NULL
, 0, NULL
}
1406 dissect_h501_T_descriptorInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1407 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1408 ett_h501_T_descriptorInfo
, T_descriptorInfo_choice
,
1415 static const value_string h501_T_updateType_vals
[] = {
1422 static const per_choice_t T_updateType_choice
[] = {
1423 { 0, &hf_h501_added
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1424 { 1, &hf_h501_deleted
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1425 { 2, &hf_h501_changed
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1426 { 0, NULL
, 0, NULL
}
1430 dissect_h501_T_updateType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1431 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1432 ett_h501_T_updateType
, T_updateType_choice
,
1439 static const per_sequence_t UpdateInformation_sequence
[] = {
1440 { &hf_h501_descriptorInfo_01
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_descriptorInfo
},
1441 { &hf_h501_updateType
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_T_updateType
},
1442 { NULL
, 0, 0, NULL
}
1446 dissect_h501_UpdateInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1447 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1448 ett_h501_UpdateInformation
, UpdateInformation_sequence
);
1454 static const per_sequence_t SEQUENCE_OF_UpdateInformation_sequence_of
[1] = {
1455 { &hf_h501_updateInfo_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_UpdateInformation
},
1459 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_
) {
1460 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1461 ett_h501_SEQUENCE_OF_UpdateInformation
, SEQUENCE_OF_UpdateInformation_sequence_of
);
1467 static const per_sequence_t DescriptorUpdate_sequence
[] = {
1468 { &hf_h501_sender
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
1469 { &hf_h501_updateInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_UpdateInformation
},
1470 { NULL
, 0, 0, NULL
}
1474 dissect_h501_DescriptorUpdate(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1475 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1476 ett_h501_DescriptorUpdate
, DescriptorUpdate_sequence
);
1482 static const per_sequence_t DescriptorUpdateAck_sequence
[] = {
1483 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1487 dissect_h501_DescriptorUpdateAck(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1488 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1489 ett_h501_DescriptorUpdateAck
, DescriptorUpdateAck_sequence
);
1495 static const per_sequence_t SEQUENCE_OF_AliasAddress_sequence_of
[1] = {
1496 { &hf_h501_logicalAddresses_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
1500 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_
) {
1501 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1502 ett_h501_SEQUENCE_OF_AliasAddress
, SEQUENCE_OF_AliasAddress_sequence_of
);
1508 static const per_sequence_t SEQUENCE_OF_CryptoH323Token_sequence_of
[1] = {
1509 { &hf_h501_cryptoTokens_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_CryptoH323Token
},
1513 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_
) {
1514 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1515 ett_h501_SEQUENCE_OF_CryptoH323Token
, SEQUENCE_OF_CryptoH323Token_sequence_of
);
1521 static const per_sequence_t UserInformation_sequence
[] = {
1522 { &hf_h501_userIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
1523 { &hf_h501_userAuthenticator
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_CryptoH323Token
},
1524 { NULL
, 0, 0, NULL
}
1528 dissect_h501_UserInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1529 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1530 ett_h501_UserInformation
, UserInformation_sequence
);
1538 dissect_h501_TimeZone(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1539 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1540 -43200, 43200U, NULL
, false);
1546 static const per_sequence_t PartyInformation_sequence
[] = {
1547 { &hf_h501_logicalAddresses
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_AliasAddress
},
1548 { &hf_h501_domainIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_AliasAddress
},
1549 { &hf_h501_transportAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_AliasAddress
},
1550 { &hf_h501_endpointType
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_EndpointType
},
1551 { &hf_h501_userInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UserInformation
},
1552 { &hf_h501_timeZone
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_TimeZone
},
1553 { NULL
, 0, 0, NULL
}
1557 dissect_h501_PartyInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1558 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1559 ett_h501_PartyInformation
, PartyInformation_sequence
);
1565 static const per_sequence_t CallInformation_sequence
[] = {
1566 { &hf_h501_callIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_CallIdentifier
},
1567 { &hf_h501_conferenceID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_ConferenceIdentifier
},
1568 { &hf_h501_circuitID
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_CircuitInfo
},
1569 { NULL
, 0, 0, NULL
}
1573 dissect_h501_CallInformation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1574 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1575 ett_h501_CallInformation
, CallInformation_sequence
);
1581 static const per_sequence_t AccessRequest_sequence
[] = {
1582 { &hf_h501_destinationInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_PartyInformation
},
1583 { &hf_h501_sourceInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_PartyInformation
},
1584 { &hf_h501_callInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_CallInformation
},
1585 { &hf_h501_usageSpec
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UsageSpecification
},
1586 { &hf_h501_desiredProtocols
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_SupportedProtocols
},
1587 { NULL
, 0, 0, NULL
}
1591 dissect_h501_AccessRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1592 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1593 ett_h501_AccessRequest
, AccessRequest_sequence
);
1599 static const per_sequence_t SEQUENCE_OF_ServiceControlSession_sequence_of
[1] = {
1600 { &hf_h501_serviceControl_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_ServiceControlSession
},
1604 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_
) {
1605 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1606 ett_h501_SEQUENCE_OF_ServiceControlSession
, SEQUENCE_OF_ServiceControlSession_sequence_of
);
1612 static const per_sequence_t AccessConfirmation_sequence
[] = {
1613 { &hf_h501_templates
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_AddressTemplate
},
1614 { &hf_h501_partialResponse
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_BOOLEAN
},
1615 { &hf_h501_supportedProtocols
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_SupportedProtocols
},
1616 { &hf_h501_serviceControl
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_ServiceControlSession
},
1617 { NULL
, 0, 0, NULL
}
1621 dissect_h501_AccessConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1622 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1623 ett_h501_AccessConfirmation
, AccessConfirmation_sequence
);
1629 static const value_string h501_AccessRejectionReason_vals
[] = {
1631 { 1, "packetSizeExceeded" },
1633 { 3, "hopCountExceeded" },
1634 { 4, "needCallInformation" },
1635 { 5, "noServiceRelationship" },
1637 { 7, "neededFeature" },
1638 { 8, "genericDataReason" },
1639 { 9, "destinationUnavailable" },
1640 { 10, "aliasesInconsistent" },
1641 { 11, "resourceUnavailable" },
1642 { 12, "incompleteAddress" },
1643 { 13, "unknownServiceID" },
1644 { 14, "usageUnavailable" },
1645 { 15, "cannotSupportUsageSpec" },
1646 { 16, "unknownUsageSendTo" },
1650 static const per_choice_t AccessRejectionReason_choice
[] = {
1651 { 0, &hf_h501_noMatch
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1652 { 1, &hf_h501_packetSizeExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1653 { 2, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1654 { 3, &hf_h501_hopCountExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1655 { 4, &hf_h501_needCallInformation
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1656 { 5, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1657 { 6, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1658 { 7, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1659 { 8, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1660 { 9, &hf_h501_destinationUnavailable
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1661 { 10, &hf_h501_aliasesInconsistent
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1662 { 11, &hf_h501_resourceUnavailable
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1663 { 12, &hf_h501_incompleteAddress
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1664 { 13, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1665 { 14, &hf_h501_usageUnavailable
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1666 { 15, &hf_h501_cannotSupportUsageSpec
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1667 { 16, &hf_h501_unknownUsageSendTo
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1668 { 0, NULL
, 0, NULL
}
1672 dissect_h501_AccessRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1673 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1674 ett_h501_AccessRejectionReason
, AccessRejectionReason_choice
,
1681 static const per_sequence_t AccessRejection_sequence
[] = {
1682 { &hf_h501_reason_04
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_AccessRejectionReason
},
1683 { &hf_h501_serviceControl
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_ServiceControlSession
},
1684 { NULL
, 0, 0, NULL
}
1688 dissect_h501_AccessRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1689 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1690 ett_h501_AccessRejection
, AccessRejection_sequence
);
1696 static const per_sequence_t RequestInProgress_sequence
[] = {
1697 { &hf_h501_delay
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_1_65535
},
1698 { &hf_h501_serviceControl
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_ServiceControlSession
},
1699 { NULL
, 0, 0, NULL
}
1703 dissect_h501_RequestInProgress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1704 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1705 ett_h501_RequestInProgress
, RequestInProgress_sequence
);
1711 static const per_sequence_t NonStandardRequest_sequence
[] = {
1712 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1716 dissect_h501_NonStandardRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1717 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1718 ett_h501_NonStandardRequest
, NonStandardRequest_sequence
);
1724 static const per_sequence_t NonStandardConfirmation_sequence
[] = {
1725 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1729 dissect_h501_NonStandardConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1730 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1731 ett_h501_NonStandardConfirmation
, NonStandardConfirmation_sequence
);
1737 static const value_string h501_NonStandardRejectionReason_vals
[] = {
1738 { 0, "notSupported" },
1739 { 1, "noServiceRelationship" },
1741 { 3, "neededFeature" },
1742 { 4, "genericDataReason" },
1743 { 5, "unknownServiceID" },
1747 static const per_choice_t NonStandardRejectionReason_choice
[] = {
1748 { 0, &hf_h501_notSupported
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1749 { 1, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1750 { 2, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1751 { 3, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1752 { 4, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1753 { 5, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1754 { 0, NULL
, 0, NULL
}
1758 dissect_h501_NonStandardRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1759 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1760 ett_h501_NonStandardRejectionReason
, NonStandardRejectionReason_choice
,
1767 static const per_sequence_t NonStandardRejection_sequence
[] = {
1768 { &hf_h501_reason_08
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_NonStandardRejectionReason
},
1769 { NULL
, 0, 0, NULL
}
1773 dissect_h501_NonStandardRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1774 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1775 ett_h501_NonStandardRejection
, NonStandardRejection_sequence
);
1783 dissect_h501_OCTET_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1784 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1785 NO_BOUND
, NO_BOUND
, false, NULL
);
1791 static const value_string h501_UnknownMessageReason_vals
[] = {
1792 { 0, "notUnderstood" },
1797 static const per_choice_t UnknownMessageReason_choice
[] = {
1798 { 0, &hf_h501_notUnderstood
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1799 { 1, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1800 { 0, NULL
, 0, NULL
}
1804 dissect_h501_UnknownMessageReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1805 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1806 ett_h501_UnknownMessageReason
, UnknownMessageReason_choice
,
1813 static const per_sequence_t UnknownMessageResponse_sequence
[] = {
1814 { &hf_h501_unknownMessage
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_OCTET_STRING
},
1815 { &hf_h501_reason_09
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_UnknownMessageReason
},
1816 { NULL
, 0, 0, NULL
}
1820 dissect_h501_UnknownMessageResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1821 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1822 ett_h501_UnknownMessageResponse
, UnknownMessageResponse_sequence
);
1828 static const per_sequence_t UsageRequest_sequence
[] = {
1829 { &hf_h501_callInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_CallInformation
},
1830 { &hf_h501_usageSpec
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_UsageSpecification
},
1831 { NULL
, 0, 0, NULL
}
1835 dissect_h501_UsageRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1836 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1837 ett_h501_UsageRequest
, UsageRequest_sequence
);
1843 static const per_sequence_t UsageConfirmation_sequence
[] = {
1844 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1848 dissect_h501_UsageConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1849 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1850 ett_h501_UsageConfirmation
, UsageConfirmation_sequence
);
1856 static const value_string h501_Role_vals
[] = {
1857 { 0, "originator" },
1858 { 1, "destination" },
1859 { 2, "nonStandardData" },
1863 static const per_choice_t Role_choice
[] = {
1864 { 0, &hf_h501_originator
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1865 { 1, &hf_h501_destination
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1866 { 2, &hf_h501_nonStandardData
, ASN1_EXTENSION_ROOT
, dissect_h225_NonStandardParameter
},
1867 { 0, NULL
, 0, NULL
}
1871 dissect_h501_Role(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1872 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1873 ett_h501_Role
, Role_choice
,
1880 static const value_string h501_UsageCallStatus_vals
[] = {
1881 { 0, "preConnect" },
1882 { 1, "callInProgress" },
1884 { 3, "registrationLost" },
1888 static const per_choice_t UsageCallStatus_choice
[] = {
1889 { 0, &hf_h501_preConnect
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1890 { 1, &hf_h501_callInProgress
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1891 { 2, &hf_h501_callEnded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
1892 { 3, &hf_h501_registrationLost
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
1893 { 0, NULL
, 0, NULL
}
1897 dissect_h501_UsageCallStatus(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1898 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1899 ett_h501_UsageCallStatus
, UsageCallStatus_choice
,
1906 static const per_sequence_t TerminationCause_sequence
[] = {
1907 { &hf_h501_releaseCompleteReason
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_ReleaseCompleteReason
},
1908 { &hf_h501_causeIE
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_INTEGER_1_65535
},
1909 { &hf_h501_nonStandardData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_NonStandardParameter
},
1910 { NULL
, 0, 0, NULL
}
1914 dissect_h501_TerminationCause(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1915 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1916 ett_h501_TerminationCause
, TerminationCause_sequence
);
1922 static const per_sequence_t UsageField_sequence
[] = {
1923 { &hf_h501_id
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_OBJECT_IDENTIFIER
},
1924 { &hf_h501_value
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_OCTET_STRING
},
1925 { NULL
, 0, 0, NULL
}
1929 dissect_h501_UsageField(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1930 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1931 ett_h501_UsageField
, UsageField_sequence
);
1937 static const per_sequence_t SEQUENCE_OF_UsageField_sequence_of
[1] = {
1938 { &hf_h501_usageFields_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h501_UsageField
},
1942 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_
) {
1943 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1944 ett_h501_SEQUENCE_OF_UsageField
, SEQUENCE_OF_UsageField_sequence_of
);
1950 static const per_sequence_t UsageIndication_sequence
[] = {
1951 { &hf_h501_callInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_CallInformation
},
1952 { &hf_h501_accessTokens
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_AccessToken
},
1953 { &hf_h501_senderRole
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_Role
},
1954 { &hf_h501_usageCallStatus
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_UsageCallStatus
},
1955 { &hf_h501_srcInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_PartyInformation
},
1956 { &hf_h501_destAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_PartyInformation
},
1957 { &hf_h501_startTime
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h235_TimeStamp
},
1958 { &hf_h501_endTime
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h235_TimeStamp
},
1959 { &hf_h501_terminationCause
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_TerminationCause
},
1960 { &hf_h501_usageFields
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_SEQUENCE_OF_UsageField
},
1961 { NULL
, 0, 0, NULL
}
1965 dissect_h501_UsageIndication(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(tvb
, offset
, actx
, tree
, hf_index
,
1967 ett_h501_UsageIndication
, UsageIndication_sequence
);
1973 static const per_sequence_t UsageIndicationConfirmation_sequence
[] = {
1974 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1978 dissect_h501_UsageIndicationConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1979 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1980 ett_h501_UsageIndicationConfirmation
, UsageIndicationConfirmation_sequence
);
1986 static const value_string h501_UsageIndicationRejectionReason_vals
[] = {
1987 { 0, "unknownCall" },
1988 { 1, "incomplete" },
1990 { 3, "noServiceRelationship" },
1992 { 5, "neededFeature" },
1993 { 6, "genericDataReason" },
1994 { 7, "unknownServiceID" },
1998 static const per_choice_t UsageIndicationRejectionReason_choice
[] = {
1999 { 0, &hf_h501_unknownCall
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2000 { 1, &hf_h501_incomplete
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2001 { 2, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2002 { 3, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2003 { 4, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2004 { 5, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2005 { 6, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2006 { 7, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2007 { 0, NULL
, 0, NULL
}
2011 dissect_h501_UsageIndicationRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2012 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2013 ett_h501_UsageIndicationRejectionReason
, UsageIndicationRejectionReason_choice
,
2020 static const per_sequence_t UsageIndicationRejection_sequence
[] = {
2021 { &hf_h501_reason_06
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_UsageIndicationRejectionReason
},
2022 { NULL
, 0, 0, NULL
}
2026 dissect_h501_UsageIndicationRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2027 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2028 ett_h501_UsageIndicationRejection
, UsageIndicationRejection_sequence
);
2034 static const value_string h501_UsageRejectReason_vals
[] = {
2035 { 0, "invalidCall" },
2036 { 1, "unavailable" },
2038 { 3, "noServiceRelationship" },
2040 { 5, "neededFeature" },
2041 { 6, "genericDataReason" },
2042 { 7, "unknownServiceID" },
2046 static const per_choice_t UsageRejectReason_choice
[] = {
2047 { 0, &hf_h501_invalidCall
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2048 { 1, &hf_h501_unavailable
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2049 { 2, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2050 { 3, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2051 { 4, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2052 { 5, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2053 { 6, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2054 { 7, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2055 { 0, NULL
, 0, NULL
}
2059 dissect_h501_UsageRejectReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2060 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2061 ett_h501_UsageRejectReason
, UsageRejectReason_choice
,
2068 static const per_sequence_t UsageRejection_sequence
[] = {
2069 { &hf_h501_reason_05
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_UsageRejectReason
},
2070 { NULL
, 0, 0, NULL
}
2074 dissect_h501_UsageRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2075 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2076 ett_h501_UsageRejection
, UsageRejection_sequence
);
2082 static const per_sequence_t ValidationRequest_sequence
[] = {
2083 { &hf_h501_accessToken
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_AccessToken
},
2084 { &hf_h501_destinationInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_PartyInformation
},
2085 { &hf_h501_sourceInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_PartyInformation
},
2086 { &hf_h501_callInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_CallInformation
},
2087 { &hf_h501_usageSpec
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UsageSpecification
},
2088 { NULL
, 0, 0, NULL
}
2092 dissect_h501_ValidationRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2093 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2094 ett_h501_ValidationRequest
, ValidationRequest_sequence
);
2100 static const per_sequence_t ValidationConfirmation_sequence
[] = {
2101 { &hf_h501_destinationInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_PartyInformation
},
2102 { &hf_h501_usageSpec
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_UsageSpecification
},
2103 { NULL
, 0, 0, NULL
}
2107 dissect_h501_ValidationConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2108 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2109 ett_h501_ValidationConfirmation
, ValidationConfirmation_sequence
);
2115 static const value_string h501_ValidationRejectionReason_vals
[] = {
2116 { 0, "tokenNotValid" },
2118 { 2, "hopCountExceeded" },
2119 { 3, "missingSourceInfo" },
2120 { 4, "missingDestInfo" },
2121 { 5, "noServiceRelationship" },
2123 { 7, "neededFeature" },
2124 { 8, "genericDataReason" },
2125 { 9, "unknownServiceID" },
2129 static const per_choice_t ValidationRejectionReason_choice
[] = {
2130 { 0, &hf_h501_tokenNotValid
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2131 { 1, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2132 { 2, &hf_h501_hopCountExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2133 { 3, &hf_h501_missingSourceInfo
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2134 { 4, &hf_h501_missingDestInfo
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2135 { 5, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2136 { 6, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2137 { 7, &hf_h501_neededFeature
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2138 { 8, &hf_h501_genericDataReason
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2139 { 9, &hf_h501_unknownServiceID
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_NULL
},
2140 { 0, NULL
, 0, NULL
}
2144 dissect_h501_ValidationRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2145 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2146 ett_h501_ValidationRejectionReason
, ValidationRejectionReason_choice
,
2153 static const per_sequence_t ValidationRejection_sequence
[] = {
2154 { &hf_h501_reason_07
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ValidationRejectionReason
},
2155 { NULL
, 0, 0, NULL
}
2159 dissect_h501_ValidationRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2160 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2161 ett_h501_ValidationRejection
, ValidationRejection_sequence
);
2169 dissect_h501_ApplicationMessage(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2170 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
2171 NO_BOUND
, NO_BOUND
, false, NULL
);
2177 static const per_sequence_t AuthenticationRequest_sequence
[] = {
2178 { &hf_h501_applicationMessage
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ApplicationMessage
},
2179 { NULL
, 0, 0, NULL
}
2183 dissect_h501_AuthenticationRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2184 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2185 ett_h501_AuthenticationRequest
, AuthenticationRequest_sequence
);
2191 static const per_sequence_t AuthenticationConfirmation_sequence
[] = {
2192 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
2196 dissect_h501_AuthenticationConfirmation(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2197 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2198 ett_h501_AuthenticationConfirmation
, AuthenticationConfirmation_sequence
);
2204 static const value_string h501_AuthenticationRejectionReason_vals
[] = {
2206 { 1, "hopCountExceeded" },
2207 { 2, "noServiceRelationship" },
2209 { 4, "neededFeature" },
2210 { 5, "genericDataReason" },
2211 { 6, "unknownServiceID" },
2212 { 7, "securityWrongSyncTime" },
2213 { 8, "securityReplay" },
2214 { 9, "securityWrongGeneralID" },
2215 { 10, "securityWrongSendersID" },
2216 { 11, "securityIntegrityFailed" },
2217 { 12, "securityWrongOID" },
2221 static const per_choice_t AuthenticationRejectionReason_choice
[] = {
2222 { 0, &hf_h501_security
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2223 { 1, &hf_h501_hopCountExceeded
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2224 { 2, &hf_h501_noServiceRelationship
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2225 { 3, &hf_h501_undefined
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2226 { 4, &hf_h501_neededFeature
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2227 { 5, &hf_h501_genericDataReason
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2228 { 6, &hf_h501_unknownServiceID
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2229 { 7, &hf_h501_securityWrongSyncTime
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2230 { 8, &hf_h501_securityReplay
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2231 { 9, &hf_h501_securityWrongGeneralID
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2232 { 10, &hf_h501_securityWrongSendersID
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2233 { 11, &hf_h501_securityIntegrityFailed
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2234 { 12, &hf_h501_securityWrongOID
, ASN1_EXTENSION_ROOT
, dissect_h501_NULL
},
2235 { 0, NULL
, 0, NULL
}
2239 dissect_h501_AuthenticationRejectionReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2240 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2241 ett_h501_AuthenticationRejectionReason
, AuthenticationRejectionReason_choice
,
2248 static const per_sequence_t AuthenticationRejection_sequence
[] = {
2249 { &hf_h501_reason_10
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_AuthenticationRejectionReason
},
2250 { NULL
, 0, 0, NULL
}
2254 dissect_h501_AuthenticationRejection(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2255 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2256 ett_h501_AuthenticationRejection
, AuthenticationRejection_sequence
);
2262 static const value_string h501_MessageBody_vals
[] = {
2263 { 0, "serviceRequest" },
2264 { 1, "serviceConfirmation" },
2265 { 2, "serviceRejection" },
2266 { 3, "serviceRelease" },
2267 { 4, "descriptorRequest" },
2268 { 5, "descriptorConfirmation" },
2269 { 6, "descriptorRejection" },
2270 { 7, "descriptorIDRequest" },
2271 { 8, "descriptorIDConfirmation" },
2272 { 9, "descriptorIDRejection" },
2273 { 10, "descriptorUpdate" },
2274 { 11, "descriptorUpdateAck" },
2275 { 12, "accessRequest" },
2276 { 13, "accessConfirmation" },
2277 { 14, "accessRejection" },
2278 { 15, "requestInProgress" },
2279 { 16, "nonStandardRequest" },
2280 { 17, "nonStandardConfirmation" },
2281 { 18, "nonStandardRejection" },
2282 { 19, "unknownMessageResponse" },
2283 { 20, "usageRequest" },
2284 { 21, "usageConfirmation" },
2285 { 22, "usageIndication" },
2286 { 23, "usageIndicationConfirmation" },
2287 { 24, "usageIndicationRejection" },
2288 { 25, "usageRejection" },
2289 { 26, "validationRequest" },
2290 { 27, "validationConfirmation" },
2291 { 28, "validationRejection" },
2292 { 29, "authenticationRequest" },
2293 { 30, "authenticationConfirmation" },
2294 { 31, "authenticationRejection" },
2298 static const per_choice_t MessageBody_choice
[] = {
2299 { 0, &hf_h501_serviceRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_ServiceRequest
},
2300 { 1, &hf_h501_serviceConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_ServiceConfirmation
},
2301 { 2, &hf_h501_serviceRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_ServiceRejection
},
2302 { 3, &hf_h501_serviceRelease
, ASN1_EXTENSION_ROOT
, dissect_h501_ServiceRelease
},
2303 { 4, &hf_h501_descriptorRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorRequest
},
2304 { 5, &hf_h501_descriptorConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorConfirmation
},
2305 { 6, &hf_h501_descriptorRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorRejection
},
2306 { 7, &hf_h501_descriptorIDRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorIDRequest
},
2307 { 8, &hf_h501_descriptorIDConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorIDConfirmation
},
2308 { 9, &hf_h501_descriptorIDRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorIDRejection
},
2309 { 10, &hf_h501_descriptorUpdate
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorUpdate
},
2310 { 11, &hf_h501_descriptorUpdateAck
, ASN1_EXTENSION_ROOT
, dissect_h501_DescriptorUpdateAck
},
2311 { 12, &hf_h501_accessRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_AccessRequest
},
2312 { 13, &hf_h501_accessConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_AccessConfirmation
},
2313 { 14, &hf_h501_accessRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_AccessRejection
},
2314 { 15, &hf_h501_requestInProgress
, ASN1_EXTENSION_ROOT
, dissect_h501_RequestInProgress
},
2315 { 16, &hf_h501_nonStandardRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_NonStandardRequest
},
2316 { 17, &hf_h501_nonStandardConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_NonStandardConfirmation
},
2317 { 18, &hf_h501_nonStandardRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_NonStandardRejection
},
2318 { 19, &hf_h501_unknownMessageResponse
, ASN1_EXTENSION_ROOT
, dissect_h501_UnknownMessageResponse
},
2319 { 20, &hf_h501_usageRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_UsageRequest
},
2320 { 21, &hf_h501_usageConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_UsageConfirmation
},
2321 { 22, &hf_h501_usageIndication
, ASN1_EXTENSION_ROOT
, dissect_h501_UsageIndication
},
2322 { 23, &hf_h501_usageIndicationConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_UsageIndicationConfirmation
},
2323 { 24, &hf_h501_usageIndicationRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_UsageIndicationRejection
},
2324 { 25, &hf_h501_usageRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_UsageRejection
},
2325 { 26, &hf_h501_validationRequest
, ASN1_EXTENSION_ROOT
, dissect_h501_ValidationRequest
},
2326 { 27, &hf_h501_validationConfirmation
, ASN1_EXTENSION_ROOT
, dissect_h501_ValidationConfirmation
},
2327 { 28, &hf_h501_validationRejection
, ASN1_EXTENSION_ROOT
, dissect_h501_ValidationRejection
},
2328 { 29, &hf_h501_authenticationRequest
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_AuthenticationRequest
},
2329 { 30, &hf_h501_authenticationConfirmation
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_AuthenticationConfirmation
},
2330 { 31, &hf_h501_authenticationRejection
, ASN1_NOT_EXTENSION_ROOT
, dissect_h501_AuthenticationRejection
},
2331 { 0, NULL
, 0, NULL
}
2335 dissect_h501_MessageBody(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2336 int32_t msg_type
= -1;
2337 const char *p
= NULL
;
2338 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
2339 ett_h501_MessageBody
, MessageBody_choice
,
2342 p
= try_val_to_str(msg_type
, VALS(h501_MessageBody_vals
));
2344 col_set_str(actx
->pinfo
->cinfo
, COL_INFO
, p
);
2351 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_
) {
2352 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2353 0U, 65535U, NULL
, false);
2361 dissect_h501_ProtocolVersion(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2362 offset
= dissect_per_object_identifier(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
2370 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_
) {
2371 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
2372 1U, 255U, NULL
, false);
2378 static const per_sequence_t SEQUENCE_OF_TransportAddress_sequence_of
[1] = {
2379 { &hf_h501_replyAddress_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_TransportAddress
},
2383 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_
) {
2384 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2385 ett_h501_SEQUENCE_OF_TransportAddress
, SEQUENCE_OF_TransportAddress_sequence_of
);
2391 static const per_sequence_t SEQUENCE_OF_ClearToken_sequence_of
[1] = {
2392 { &hf_h501_tokens_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h235_ClearToken
},
2396 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_
) {
2397 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2398 ett_h501_SEQUENCE_OF_ClearToken
, SEQUENCE_OF_ClearToken_sequence_of
);
2404 static const per_sequence_t SEQUENCE_OF_NonStandardParameter_sequence_of
[1] = {
2405 { &hf_h501_nonStandard_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_NonStandardParameter
},
2409 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_
) {
2410 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2411 ett_h501_SEQUENCE_OF_NonStandardParameter
, SEQUENCE_OF_NonStandardParameter_sequence_of
);
2419 dissect_h501_ServiceID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2420 offset
= dissect_h225_GloballyUniqueID(tvb
, offset
, actx
, tree
, hf_index
);
2426 static const per_sequence_t SEQUENCE_OF_GenericData_sequence_of
[1] = {
2427 { &hf_h501_genericData_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_GenericData
},
2431 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_
) {
2432 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
2433 ett_h501_SEQUENCE_OF_GenericData
, SEQUENCE_OF_GenericData_sequence_of
);
2439 static const per_sequence_t MessageCommonInfo_sequence
[] = {
2440 { &hf_h501_sequenceNumber
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_0_65535
},
2441 { &hf_h501_annexGversion
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ProtocolVersion
},
2442 { &hf_h501_hopCount
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_INTEGER_1_255
},
2443 { &hf_h501_replyAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_TransportAddress
},
2444 { &hf_h501_integrityCheckValue
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_ICV
},
2445 { &hf_h501_tokens
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_ClearToken
},
2446 { &hf_h501_cryptoTokens
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_CryptoH323Token
},
2447 { &hf_h501_nonStandard
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_NonStandardParameter
},
2448 { &hf_h501_serviceID
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_ServiceID
},
2449 { &hf_h501_genericData
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h501_SEQUENCE_OF_GenericData
},
2450 { &hf_h501_featureSet
, ASN1_NOT_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_FeatureSet
},
2451 { &hf_h501_version
, ASN1_NOT_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_ProtocolVersion
},
2452 { NULL
, 0, 0, NULL
}
2456 dissect_h501_MessageCommonInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2457 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2458 ett_h501_MessageCommonInfo
, MessageCommonInfo_sequence
);
2464 static const per_sequence_t Message_sequence
[] = {
2465 { &hf_h501_body
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_MessageBody
},
2466 { &hf_h501_common
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h501_MessageCommonInfo
},
2467 { NULL
, 0, 0, NULL
}
2471 dissect_h501_Message(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2472 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
2473 ett_h501_Message
, Message_sequence
);
2480 static int dissect_Message_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
2482 asn1_ctx_t asn1_ctx
;
2483 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
2484 offset
= dissect_h501_Message(tvb
, offset
, &asn1_ctx
, tree
, hf_h501_Message_PDU
);
2485 offset
+= 7; offset
>>= 3;
2491 dissect_h501_pdu(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2493 proto_item
*ti
= NULL
;
2494 proto_tree
*h501_tree
= NULL
;
2496 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, PSNAME
);
2498 ti
= proto_tree_add_item(tree
, proto_h501
, tvb
, 0, -1, ENC_NA
);
2499 h501_tree
= proto_item_add_subtree(ti
, ett_h501
);
2501 return dissect_Message_PDU(tvb
, pinfo
, h501_tree
, NULL
);
2505 dissect_h501_udp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2507 dissect_tpkt_encap(tvb
, pinfo
, tree
, false, h501_pdu_handle
);
2508 return tvb_captured_length(tvb
);
2512 dissect_h501_tcp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2514 dissect_tpkt_encap(tvb
, pinfo
, tree
, h501_desegment_tcp
, h501_pdu_handle
);
2515 return tvb_captured_length(tvb
);
2518 /*--- proto_register_h501 ----------------------------------------------*/
2519 void proto_register_h501(void) {
2520 module_t
*h501_module
;
2522 /* List of fields */
2523 static hf_register_info hf
[] = {
2524 { &hf_h501_Message_PDU
,
2525 { "Message", "h501.Message_element",
2526 FT_NONE
, BASE_NONE
, NULL
, 0,
2529 { "body", "h501.body",
2530 FT_UINT32
, BASE_DEC
, VALS(h501_MessageBody_vals
), 0,
2531 "MessageBody", HFILL
}},
2533 { "common", "h501.common_element",
2534 FT_NONE
, BASE_NONE
, NULL
, 0,
2535 "MessageCommonInfo", HFILL
}},
2536 { &hf_h501_serviceRequest
,
2537 { "serviceRequest", "h501.serviceRequest_element",
2538 FT_NONE
, BASE_NONE
, NULL
, 0,
2540 { &hf_h501_serviceConfirmation
,
2541 { "serviceConfirmation", "h501.serviceConfirmation_element",
2542 FT_NONE
, BASE_NONE
, NULL
, 0,
2544 { &hf_h501_serviceRejection
,
2545 { "serviceRejection", "h501.serviceRejection_element",
2546 FT_NONE
, BASE_NONE
, NULL
, 0,
2548 { &hf_h501_serviceRelease
,
2549 { "serviceRelease", "h501.serviceRelease_element",
2550 FT_NONE
, BASE_NONE
, NULL
, 0,
2552 { &hf_h501_descriptorRequest
,
2553 { "descriptorRequest", "h501.descriptorRequest_element",
2554 FT_NONE
, BASE_NONE
, NULL
, 0,
2556 { &hf_h501_descriptorConfirmation
,
2557 { "descriptorConfirmation", "h501.descriptorConfirmation_element",
2558 FT_NONE
, BASE_NONE
, NULL
, 0,
2560 { &hf_h501_descriptorRejection
,
2561 { "descriptorRejection", "h501.descriptorRejection_element",
2562 FT_NONE
, BASE_NONE
, NULL
, 0,
2564 { &hf_h501_descriptorIDRequest
,
2565 { "descriptorIDRequest", "h501.descriptorIDRequest_element",
2566 FT_NONE
, BASE_NONE
, NULL
, 0,
2568 { &hf_h501_descriptorIDConfirmation
,
2569 { "descriptorIDConfirmation", "h501.descriptorIDConfirmation_element",
2570 FT_NONE
, BASE_NONE
, NULL
, 0,
2572 { &hf_h501_descriptorIDRejection
,
2573 { "descriptorIDRejection", "h501.descriptorIDRejection_element",
2574 FT_NONE
, BASE_NONE
, NULL
, 0,
2576 { &hf_h501_descriptorUpdate
,
2577 { "descriptorUpdate", "h501.descriptorUpdate_element",
2578 FT_NONE
, BASE_NONE
, NULL
, 0,
2580 { &hf_h501_descriptorUpdateAck
,
2581 { "descriptorUpdateAck", "h501.descriptorUpdateAck_element",
2582 FT_NONE
, BASE_NONE
, NULL
, 0,
2584 { &hf_h501_accessRequest
,
2585 { "accessRequest", "h501.accessRequest_element",
2586 FT_NONE
, BASE_NONE
, NULL
, 0,
2588 { &hf_h501_accessConfirmation
,
2589 { "accessConfirmation", "h501.accessConfirmation_element",
2590 FT_NONE
, BASE_NONE
, NULL
, 0,
2592 { &hf_h501_accessRejection
,
2593 { "accessRejection", "h501.accessRejection_element",
2594 FT_NONE
, BASE_NONE
, NULL
, 0,
2596 { &hf_h501_requestInProgress
,
2597 { "requestInProgress", "h501.requestInProgress_element",
2598 FT_NONE
, BASE_NONE
, NULL
, 0,
2600 { &hf_h501_nonStandardRequest
,
2601 { "nonStandardRequest", "h501.nonStandardRequest_element",
2602 FT_NONE
, BASE_NONE
, NULL
, 0,
2604 { &hf_h501_nonStandardConfirmation
,
2605 { "nonStandardConfirmation", "h501.nonStandardConfirmation_element",
2606 FT_NONE
, BASE_NONE
, NULL
, 0,
2608 { &hf_h501_nonStandardRejection
,
2609 { "nonStandardRejection", "h501.nonStandardRejection_element",
2610 FT_NONE
, BASE_NONE
, NULL
, 0,
2612 { &hf_h501_unknownMessageResponse
,
2613 { "unknownMessageResponse", "h501.unknownMessageResponse_element",
2614 FT_NONE
, BASE_NONE
, NULL
, 0,
2616 { &hf_h501_usageRequest
,
2617 { "usageRequest", "h501.usageRequest_element",
2618 FT_NONE
, BASE_NONE
, NULL
, 0,
2620 { &hf_h501_usageConfirmation
,
2621 { "usageConfirmation", "h501.usageConfirmation_element",
2622 FT_NONE
, BASE_NONE
, NULL
, 0,
2624 { &hf_h501_usageIndication
,
2625 { "usageIndication", "h501.usageIndication_element",
2626 FT_NONE
, BASE_NONE
, NULL
, 0,
2628 { &hf_h501_usageIndicationConfirmation
,
2629 { "usageIndicationConfirmation", "h501.usageIndicationConfirmation_element",
2630 FT_NONE
, BASE_NONE
, NULL
, 0,
2632 { &hf_h501_usageIndicationRejection
,
2633 { "usageIndicationRejection", "h501.usageIndicationRejection_element",
2634 FT_NONE
, BASE_NONE
, NULL
, 0,
2636 { &hf_h501_usageRejection
,
2637 { "usageRejection", "h501.usageRejection_element",
2638 FT_NONE
, BASE_NONE
, NULL
, 0,
2640 { &hf_h501_validationRequest
,
2641 { "validationRequest", "h501.validationRequest_element",
2642 FT_NONE
, BASE_NONE
, NULL
, 0,
2644 { &hf_h501_validationConfirmation
,
2645 { "validationConfirmation", "h501.validationConfirmation_element",
2646 FT_NONE
, BASE_NONE
, NULL
, 0,
2648 { &hf_h501_validationRejection
,
2649 { "validationRejection", "h501.validationRejection_element",
2650 FT_NONE
, BASE_NONE
, NULL
, 0,
2652 { &hf_h501_authenticationRequest
,
2653 { "authenticationRequest", "h501.authenticationRequest_element",
2654 FT_NONE
, BASE_NONE
, NULL
, 0,
2656 { &hf_h501_authenticationConfirmation
,
2657 { "authenticationConfirmation", "h501.authenticationConfirmation_element",
2658 FT_NONE
, BASE_NONE
, NULL
, 0,
2660 { &hf_h501_authenticationRejection
,
2661 { "authenticationRejection", "h501.authenticationRejection_element",
2662 FT_NONE
, BASE_NONE
, NULL
, 0,
2664 { &hf_h501_sequenceNumber
,
2665 { "sequenceNumber", "h501.sequenceNumber",
2666 FT_UINT32
, BASE_DEC
, NULL
, 0,
2667 "INTEGER_0_65535", HFILL
}},
2668 { &hf_h501_annexGversion
,
2669 { "annexGversion", "h501.annexGversion",
2670 FT_OID
, BASE_NONE
, NULL
, 0,
2671 "ProtocolVersion", HFILL
}},
2672 { &hf_h501_hopCount
,
2673 { "hopCount", "h501.hopCount",
2674 FT_UINT32
, BASE_DEC
, NULL
, 0,
2675 "INTEGER_1_255", HFILL
}},
2676 { &hf_h501_replyAddress
,
2677 { "replyAddress", "h501.replyAddress",
2678 FT_UINT32
, BASE_DEC
, NULL
, 0,
2679 "SEQUENCE_OF_TransportAddress", HFILL
}},
2680 { &hf_h501_replyAddress_item
,
2681 { "TransportAddress", "h501.TransportAddress",
2682 FT_UINT32
, BASE_DEC
, VALS(h225_TransportAddress_vals
), 0,
2684 { &hf_h501_integrityCheckValue
,
2685 { "integrityCheckValue", "h501.integrityCheckValue_element",
2686 FT_NONE
, BASE_NONE
, NULL
, 0,
2689 { "tokens", "h501.tokens",
2690 FT_UINT32
, BASE_DEC
, NULL
, 0,
2691 "SEQUENCE_OF_ClearToken", HFILL
}},
2692 { &hf_h501_tokens_item
,
2693 { "ClearToken", "h501.ClearToken_element",
2694 FT_NONE
, BASE_NONE
, NULL
, 0,
2696 { &hf_h501_cryptoTokens
,
2697 { "cryptoTokens", "h501.cryptoTokens",
2698 FT_UINT32
, BASE_DEC
, NULL
, 0,
2699 "SEQUENCE_OF_CryptoH323Token", HFILL
}},
2700 { &hf_h501_cryptoTokens_item
,
2701 { "CryptoH323Token", "h501.CryptoH323Token",
2702 FT_UINT32
, BASE_DEC
, VALS(h225_CryptoH323Token_vals
), 0,
2704 { &hf_h501_nonStandard
,
2705 { "nonStandard", "h501.nonStandard",
2706 FT_UINT32
, BASE_DEC
, NULL
, 0,
2707 "SEQUENCE_OF_NonStandardParameter", HFILL
}},
2708 { &hf_h501_nonStandard_item
,
2709 { "NonStandardParameter", "h501.NonStandardParameter_element",
2710 FT_NONE
, BASE_NONE
, NULL
, 0,
2712 { &hf_h501_serviceID
,
2713 { "serviceID", "h501.serviceID",
2714 FT_GUID
, BASE_NONE
, NULL
, 0,
2716 { &hf_h501_genericData
,
2717 { "genericData", "h501.genericData",
2718 FT_UINT32
, BASE_DEC
, NULL
, 0,
2719 "SEQUENCE_OF_GenericData", HFILL
}},
2720 { &hf_h501_genericData_item
,
2721 { "GenericData", "h501.GenericData_element",
2722 FT_NONE
, BASE_NONE
, NULL
, 0,
2724 { &hf_h501_featureSet
,
2725 { "featureSet", "h501.featureSet_element",
2726 FT_NONE
, BASE_NONE
, NULL
, 0,
2729 { "version", "h501.version",
2730 FT_OID
, BASE_NONE
, NULL
, 0,
2731 "ProtocolVersion", HFILL
}},
2732 { &hf_h501_elementIdentifier
,
2733 { "elementIdentifier", "h501.elementIdentifier",
2734 FT_STRING
, BASE_NONE
, NULL
, 0,
2736 { &hf_h501_domainIdentifier
,
2737 { "domainIdentifier", "h501.domainIdentifier",
2738 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
2739 "AliasAddress", HFILL
}},
2740 { &hf_h501_securityMode
,
2741 { "securityMode", "h501.securityMode",
2742 FT_UINT32
, BASE_DEC
, NULL
, 0,
2743 "SEQUENCE_OF_SecurityMode", HFILL
}},
2744 { &hf_h501_securityMode_item
,
2745 { "SecurityMode", "h501.SecurityMode_element",
2746 FT_NONE
, BASE_NONE
, NULL
, 0,
2748 { &hf_h501_timeToLive
,
2749 { "timeToLive", "h501.timeToLive",
2750 FT_UINT32
, BASE_DEC
, NULL
, 0,
2751 "INTEGER_1_4294967295", HFILL
}},
2752 { &hf_h501_usageSpec
,
2753 { "usageSpec", "h501.usageSpec_element",
2754 FT_NONE
, BASE_NONE
, NULL
, 0,
2755 "UsageSpecification", HFILL
}},
2756 { &hf_h501_authentication
,
2757 { "authentication", "h501.authentication",
2758 FT_UINT32
, BASE_DEC
, VALS(h235_AuthenticationMechanism_vals
), 0,
2759 "AuthenticationMechanism", HFILL
}},
2760 { &hf_h501_integrity
,
2761 { "integrity", "h501.integrity",
2762 FT_UINT32
, BASE_DEC
, VALS(h225_IntegrityMechanism_vals
), 0,
2763 "IntegrityMechanism", HFILL
}},
2764 { &hf_h501_algorithmOIDs
,
2765 { "algorithmOIDs", "h501.algorithmOIDs",
2766 FT_UINT32
, BASE_DEC
, NULL
, 0,
2768 { &hf_h501_algorithmOIDs_item
,
2769 { "algorithmOIDs item", "h501.algorithmOIDs_item",
2770 FT_OID
, BASE_NONE
, NULL
, 0,
2771 "OBJECT_IDENTIFIER", HFILL
}},
2772 { &hf_h501_alternates
,
2773 { "alternates", "h501.alternates_element",
2774 FT_NONE
, BASE_NONE
, NULL
, 0,
2775 "AlternatePEInfo", HFILL
}},
2776 { &hf_h501_securityMode_01
,
2777 { "securityMode", "h501.securityMode_element",
2778 FT_NONE
, BASE_NONE
, NULL
, 0,
2781 { "reason", "h501.reason",
2782 FT_UINT32
, BASE_DEC
, VALS(h501_ServiceRejectionReason_vals
), 0,
2783 "ServiceRejectionReason", HFILL
}},
2784 { &hf_h501_serviceUnavailable
,
2785 { "serviceUnavailable", "h501.serviceUnavailable_element",
2786 FT_NONE
, BASE_NONE
, NULL
, 0,
2788 { &hf_h501_serviceRedirected
,
2789 { "serviceRedirected", "h501.serviceRedirected_element",
2790 FT_NONE
, BASE_NONE
, NULL
, 0,
2792 { &hf_h501_security
,
2793 { "security", "h501.security_element",
2794 FT_NONE
, BASE_NONE
, NULL
, 0,
2796 { &hf_h501_continue
,
2797 { "continue", "h501.continue_element",
2798 FT_NONE
, BASE_NONE
, NULL
, 0,
2800 { &hf_h501_undefined
,
2801 { "undefined", "h501.undefined_element",
2802 FT_NONE
, BASE_NONE
, NULL
, 0,
2804 { &hf_h501_unknownServiceID
,
2805 { "unknownServiceID", "h501.unknownServiceID_element",
2806 FT_NONE
, BASE_NONE
, NULL
, 0,
2808 { &hf_h501_cannotSupportUsageSpec
,
2809 { "cannotSupportUsageSpec", "h501.cannotSupportUsageSpec_element",
2810 FT_NONE
, BASE_NONE
, NULL
, 0,
2812 { &hf_h501_neededFeature
,
2813 { "neededFeature", "h501.neededFeature_element",
2814 FT_NONE
, BASE_NONE
, NULL
, 0,
2816 { &hf_h501_genericDataReason
,
2817 { "genericDataReason", "h501.genericDataReason_element",
2818 FT_NONE
, BASE_NONE
, NULL
, 0,
2820 { &hf_h501_usageUnavailable
,
2821 { "usageUnavailable", "h501.usageUnavailable_element",
2822 FT_NONE
, BASE_NONE
, NULL
, 0,
2824 { &hf_h501_unknownUsageSendTo
,
2825 { "unknownUsageSendTo", "h501.unknownUsageSendTo_element",
2826 FT_NONE
, BASE_NONE
, NULL
, 0,
2828 { &hf_h501_reason_01
,
2829 { "reason", "h501.reason",
2830 FT_UINT32
, BASE_DEC
, VALS(h501_ServiceReleaseReason_vals
), 0,
2831 "ServiceReleaseReason", HFILL
}},
2832 { &hf_h501_outOfService
,
2833 { "outOfService", "h501.outOfService_element",
2834 FT_NONE
, BASE_NONE
, NULL
, 0,
2836 { &hf_h501_maintenance
,
2837 { "maintenance", "h501.maintenance_element",
2838 FT_NONE
, BASE_NONE
, NULL
, 0,
2840 { &hf_h501_terminated
,
2841 { "terminated", "h501.terminated_element",
2842 FT_NONE
, BASE_NONE
, NULL
, 0,
2845 { "expired", "h501.expired_element",
2846 FT_NONE
, BASE_NONE
, NULL
, 0,
2848 { &hf_h501_descriptorID
,
2849 { "descriptorID", "h501.descriptorID",
2850 FT_UINT32
, BASE_DEC
, NULL
, 0,
2851 "SEQUENCE_OF_DescriptorID", HFILL
}},
2852 { &hf_h501_descriptorID_item
,
2853 { "DescriptorID", "h501.DescriptorID",
2854 FT_GUID
, BASE_NONE
, NULL
, 0,
2856 { &hf_h501_descriptor
,
2857 { "descriptor", "h501.descriptor",
2858 FT_UINT32
, BASE_DEC
, NULL
, 0,
2859 "SEQUENCE_OF_Descriptor", HFILL
}},
2860 { &hf_h501_descriptor_item
,
2861 { "Descriptor", "h501.Descriptor_element",
2862 FT_NONE
, BASE_NONE
, NULL
, 0,
2864 { &hf_h501_reason_02
,
2865 { "reason", "h501.reason",
2866 FT_UINT32
, BASE_DEC
, VALS(h501_DescriptorRejectionReason_vals
), 0,
2867 "DescriptorRejectionReason", HFILL
}},
2868 { &hf_h501_descriptorRejection_descriptorID
,
2869 { "descriptorID", "h501.descriptorRejection_descriptorID",
2870 FT_GUID
, BASE_NONE
, NULL
, 0,
2872 { &hf_h501_packetSizeExceeded
,
2873 { "packetSizeExceeded", "h501.packetSizeExceeded_element",
2874 FT_NONE
, BASE_NONE
, NULL
, 0,
2876 { &hf_h501_illegalID
,
2877 { "illegalID", "h501.illegalID_element",
2878 FT_NONE
, BASE_NONE
, NULL
, 0,
2880 { &hf_h501_hopCountExceeded
,
2881 { "hopCountExceeded", "h501.hopCountExceeded_element",
2882 FT_NONE
, BASE_NONE
, NULL
, 0,
2884 { &hf_h501_noServiceRelationship
,
2885 { "noServiceRelationship", "h501.noServiceRelationship_element",
2886 FT_NONE
, BASE_NONE
, NULL
, 0,
2888 { &hf_h501_descriptorInfo
,
2889 { "descriptorInfo", "h501.descriptorInfo",
2890 FT_UINT32
, BASE_DEC
, NULL
, 0,
2891 "SEQUENCE_OF_DescriptorInfo", HFILL
}},
2892 { &hf_h501_descriptorInfo_item
,
2893 { "DescriptorInfo", "h501.DescriptorInfo_element",
2894 FT_NONE
, BASE_NONE
, NULL
, 0,
2896 { &hf_h501_reason_03
,
2897 { "reason", "h501.reason",
2898 FT_UINT32
, BASE_DEC
, VALS(h501_DescriptorIDRejectionReason_vals
), 0,
2899 "DescriptorIDRejectionReason", HFILL
}},
2900 { &hf_h501_noDescriptors
,
2901 { "noDescriptors", "h501.noDescriptors_element",
2902 FT_NONE
, BASE_NONE
, NULL
, 0,
2905 { "sender", "h501.sender",
2906 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
2907 "AliasAddress", HFILL
}},
2908 { &hf_h501_updateInfo
,
2909 { "updateInfo", "h501.updateInfo",
2910 FT_UINT32
, BASE_DEC
, NULL
, 0,
2911 "SEQUENCE_OF_UpdateInformation", HFILL
}},
2912 { &hf_h501_updateInfo_item
,
2913 { "UpdateInformation", "h501.UpdateInformation_element",
2914 FT_NONE
, BASE_NONE
, NULL
, 0,
2916 { &hf_h501_descriptorInfo_01
,
2917 { "descriptorInfo", "h501.descriptorInfo",
2918 FT_UINT32
, BASE_DEC
, VALS(h501_T_descriptorInfo_vals
), 0,
2920 { &hf_h501_updateInformation_descriptorID
,
2921 { "descriptorID", "h501.updateInformation_descriptorID",
2922 FT_GUID
, BASE_NONE
, NULL
, 0,
2924 { &hf_h501_descriptor_01
,
2925 { "descriptor", "h501.descriptor_element",
2926 FT_NONE
, BASE_NONE
, NULL
, 0,
2928 { &hf_h501_updateType
,
2929 { "updateType", "h501.updateType",
2930 FT_UINT32
, BASE_DEC
, VALS(h501_T_updateType_vals
), 0,
2933 { "added", "h501.added_element",
2934 FT_NONE
, BASE_NONE
, NULL
, 0,
2937 { "deleted", "h501.deleted_element",
2938 FT_NONE
, BASE_NONE
, NULL
, 0,
2941 { "changed", "h501.changed_element",
2942 FT_NONE
, BASE_NONE
, NULL
, 0,
2944 { &hf_h501_destinationInfo
,
2945 { "destinationInfo", "h501.destinationInfo_element",
2946 FT_NONE
, BASE_NONE
, NULL
, 0,
2947 "PartyInformation", HFILL
}},
2948 { &hf_h501_sourceInfo
,
2949 { "sourceInfo", "h501.sourceInfo_element",
2950 FT_NONE
, BASE_NONE
, NULL
, 0,
2951 "PartyInformation", HFILL
}},
2952 { &hf_h501_callInfo
,
2953 { "callInfo", "h501.callInfo_element",
2954 FT_NONE
, BASE_NONE
, NULL
, 0,
2955 "CallInformation", HFILL
}},
2956 { &hf_h501_desiredProtocols
,
2957 { "desiredProtocols", "h501.desiredProtocols",
2958 FT_UINT32
, BASE_DEC
, NULL
, 0,
2959 "SEQUENCE_OF_SupportedProtocols", HFILL
}},
2960 { &hf_h501_desiredProtocols_item
,
2961 { "SupportedProtocols", "h501.SupportedProtocols",
2962 FT_UINT32
, BASE_DEC
, VALS(h225_SupportedProtocols_vals
), 0,
2964 { &hf_h501_templates
,
2965 { "templates", "h501.templates",
2966 FT_UINT32
, BASE_DEC
, NULL
, 0,
2967 "SEQUENCE_OF_AddressTemplate", HFILL
}},
2968 { &hf_h501_templates_item
,
2969 { "AddressTemplate", "h501.AddressTemplate_element",
2970 FT_NONE
, BASE_NONE
, NULL
, 0,
2972 { &hf_h501_partialResponse
,
2973 { "partialResponse", "h501.partialResponse",
2974 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2975 "BOOLEAN", HFILL
}},
2976 { &hf_h501_supportedProtocols
,
2977 { "supportedProtocols", "h501.supportedProtocols",
2978 FT_UINT32
, BASE_DEC
, NULL
, 0,
2979 "SEQUENCE_OF_SupportedProtocols", HFILL
}},
2980 { &hf_h501_supportedProtocols_item
,
2981 { "SupportedProtocols", "h501.SupportedProtocols",
2982 FT_UINT32
, BASE_DEC
, VALS(h225_SupportedProtocols_vals
), 0,
2984 { &hf_h501_serviceControl
,
2985 { "serviceControl", "h501.serviceControl",
2986 FT_UINT32
, BASE_DEC
, NULL
, 0,
2987 "SEQUENCE_OF_ServiceControlSession", HFILL
}},
2988 { &hf_h501_serviceControl_item
,
2989 { "ServiceControlSession", "h501.ServiceControlSession_element",
2990 FT_NONE
, BASE_NONE
, NULL
, 0,
2992 { &hf_h501_reason_04
,
2993 { "reason", "h501.reason",
2994 FT_UINT32
, BASE_DEC
, VALS(h501_AccessRejectionReason_vals
), 0,
2995 "AccessRejectionReason", HFILL
}},
2997 { "noMatch", "h501.noMatch_element",
2998 FT_NONE
, BASE_NONE
, NULL
, 0,
3000 { &hf_h501_needCallInformation
,
3001 { "needCallInformation", "h501.needCallInformation_element",
3002 FT_NONE
, BASE_NONE
, NULL
, 0,
3004 { &hf_h501_destinationUnavailable
,
3005 { "destinationUnavailable", "h501.destinationUnavailable_element",
3006 FT_NONE
, BASE_NONE
, NULL
, 0,
3008 { &hf_h501_aliasesInconsistent
,
3009 { "aliasesInconsistent", "h501.aliasesInconsistent_element",
3010 FT_NONE
, BASE_NONE
, NULL
, 0,
3012 { &hf_h501_resourceUnavailable
,
3013 { "resourceUnavailable", "h501.resourceUnavailable_element",
3014 FT_NONE
, BASE_NONE
, NULL
, 0,
3016 { &hf_h501_incompleteAddress
,
3017 { "incompleteAddress", "h501.incompleteAddress_element",
3018 FT_NONE
, BASE_NONE
, NULL
, 0,
3020 { &hf_h501_reason_05
,
3021 { "reason", "h501.reason",
3022 FT_UINT32
, BASE_DEC
, VALS(h501_UsageRejectReason_vals
), 0,
3023 "UsageRejectReason", HFILL
}},
3024 { &hf_h501_accessTokens
,
3025 { "accessTokens", "h501.accessTokens",
3026 FT_UINT32
, BASE_DEC
, NULL
, 0,
3027 "SEQUENCE_OF_AccessToken", HFILL
}},
3028 { &hf_h501_accessTokens_item
,
3029 { "AccessToken", "h501.AccessToken",
3030 FT_UINT32
, BASE_DEC
, VALS(h501_AccessToken_vals
), 0,
3032 { &hf_h501_senderRole
,
3033 { "senderRole", "h501.senderRole",
3034 FT_UINT32
, BASE_DEC
, VALS(h501_Role_vals
), 0,
3036 { &hf_h501_usageCallStatus
,
3037 { "usageCallStatus", "h501.usageCallStatus",
3038 FT_UINT32
, BASE_DEC
, VALS(h501_UsageCallStatus_vals
), 0,
3041 { "srcInfo", "h501.srcInfo_element",
3042 FT_NONE
, BASE_NONE
, NULL
, 0,
3043 "PartyInformation", HFILL
}},
3044 { &hf_h501_destAddress
,
3045 { "destAddress", "h501.destAddress_element",
3046 FT_NONE
, BASE_NONE
, NULL
, 0,
3047 "PartyInformation", HFILL
}},
3048 { &hf_h501_startTime
,
3049 { "startTime", "h501.startTime",
3050 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0,
3051 "TimeStamp", HFILL
}},
3053 { "endTime", "h501.endTime",
3054 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0,
3055 "TimeStamp", HFILL
}},
3056 { &hf_h501_terminationCause
,
3057 { "terminationCause", "h501.terminationCause_element",
3058 FT_NONE
, BASE_NONE
, NULL
, 0,
3060 { &hf_h501_usageFields
,
3061 { "usageFields", "h501.usageFields",
3062 FT_UINT32
, BASE_DEC
, NULL
, 0,
3063 "SEQUENCE_OF_UsageField", HFILL
}},
3064 { &hf_h501_usageFields_item
,
3065 { "UsageField", "h501.UsageField_element",
3066 FT_NONE
, BASE_NONE
, NULL
, 0,
3070 FT_OID
, BASE_NONE
, NULL
, 0,
3071 "OBJECT_IDENTIFIER", HFILL
}},
3073 { "value", "h501.value",
3074 FT_BYTES
, BASE_NONE
, NULL
, 0,
3075 "OCTET_STRING", HFILL
}},
3076 { &hf_h501_invalidCall
,
3077 { "invalidCall", "h501.invalidCall_element",
3078 FT_NONE
, BASE_NONE
, NULL
, 0,
3080 { &hf_h501_unavailable
,
3081 { "unavailable", "h501.unavailable_element",
3082 FT_NONE
, BASE_NONE
, NULL
, 0,
3084 { &hf_h501_reason_06
,
3085 { "reason", "h501.reason",
3086 FT_UINT32
, BASE_DEC
, VALS(h501_UsageIndicationRejectionReason_vals
), 0,
3087 "UsageIndicationRejectionReason", HFILL
}},
3088 { &hf_h501_unknownCall
,
3089 { "unknownCall", "h501.unknownCall_element",
3090 FT_NONE
, BASE_NONE
, NULL
, 0,
3092 { &hf_h501_incomplete
,
3093 { "incomplete", "h501.incomplete_element",
3094 FT_NONE
, BASE_NONE
, NULL
, 0,
3096 { &hf_h501_accessToken
,
3097 { "accessToken", "h501.accessToken",
3098 FT_UINT32
, BASE_DEC
, NULL
, 0,
3099 "SEQUENCE_OF_AccessToken", HFILL
}},
3100 { &hf_h501_accessToken_item
,
3101 { "AccessToken", "h501.AccessToken",
3102 FT_UINT32
, BASE_DEC
, VALS(h501_AccessToken_vals
), 0,
3104 { &hf_h501_reason_07
,
3105 { "reason", "h501.reason",
3106 FT_UINT32
, BASE_DEC
, VALS(h501_ValidationRejectionReason_vals
), 0,
3107 "ValidationRejectionReason", HFILL
}},
3108 { &hf_h501_tokenNotValid
,
3109 { "tokenNotValid", "h501.tokenNotValid_element",
3110 FT_NONE
, BASE_NONE
, NULL
, 0,
3112 { &hf_h501_missingSourceInfo
,
3113 { "missingSourceInfo", "h501.missingSourceInfo_element",
3114 FT_NONE
, BASE_NONE
, NULL
, 0,
3116 { &hf_h501_missingDestInfo
,
3117 { "missingDestInfo", "h501.missingDestInfo_element",
3118 FT_NONE
, BASE_NONE
, NULL
, 0,
3121 { "delay", "h501.delay",
3122 FT_UINT32
, BASE_DEC
, NULL
, 0,
3123 "INTEGER_1_65535", HFILL
}},
3124 { &hf_h501_reason_08
,
3125 { "reason", "h501.reason",
3126 FT_UINT32
, BASE_DEC
, VALS(h501_NonStandardRejectionReason_vals
), 0,
3127 "NonStandardRejectionReason", HFILL
}},
3128 { &hf_h501_notSupported
,
3129 { "notSupported", "h501.notSupported_element",
3130 FT_NONE
, BASE_NONE
, NULL
, 0,
3132 { &hf_h501_unknownMessage
,
3133 { "unknownMessage", "h501.unknownMessage",
3134 FT_BYTES
, BASE_NONE
, NULL
, 0,
3135 "OCTET_STRING", HFILL
}},
3136 { &hf_h501_reason_09
,
3137 { "reason", "h501.reason",
3138 FT_UINT32
, BASE_DEC
, VALS(h501_UnknownMessageReason_vals
), 0,
3139 "UnknownMessageReason", HFILL
}},
3140 { &hf_h501_notUnderstood
,
3141 { "notUnderstood", "h501.notUnderstood_element",
3142 FT_NONE
, BASE_NONE
, NULL
, 0,
3144 { &hf_h501_applicationMessage
,
3145 { "applicationMessage", "h501.applicationMessage",
3146 FT_BYTES
, BASE_NONE
, NULL
, 0,
3148 { &hf_h501_reason_10
,
3149 { "reason", "h501.reason",
3150 FT_UINT32
, BASE_DEC
, VALS(h501_AuthenticationRejectionReason_vals
), 0,
3151 "AuthenticationRejectionReason", HFILL
}},
3152 { &hf_h501_securityWrongSyncTime
,
3153 { "securityWrongSyncTime", "h501.securityWrongSyncTime_element",
3154 FT_NONE
, BASE_NONE
, NULL
, 0,
3156 { &hf_h501_securityReplay
,
3157 { "securityReplay", "h501.securityReplay_element",
3158 FT_NONE
, BASE_NONE
, NULL
, 0,
3160 { &hf_h501_securityWrongGeneralID
,
3161 { "securityWrongGeneralID", "h501.securityWrongGeneralID_element",
3162 FT_NONE
, BASE_NONE
, NULL
, 0,
3164 { &hf_h501_securityWrongSendersID
,
3165 { "securityWrongSendersID", "h501.securityWrongSendersID_element",
3166 FT_NONE
, BASE_NONE
, NULL
, 0,
3168 { &hf_h501_securityIntegrityFailed
,
3169 { "securityIntegrityFailed", "h501.securityIntegrityFailed_element",
3170 FT_NONE
, BASE_NONE
, NULL
, 0,
3172 { &hf_h501_securityWrongOID
,
3173 { "securityWrongOID", "h501.securityWrongOID_element",
3174 FT_NONE
, BASE_NONE
, NULL
, 0,
3177 { "pattern", "h501.pattern",
3178 FT_UINT32
, BASE_DEC
, NULL
, 0,
3179 "SEQUENCE_OF_Pattern", HFILL
}},
3180 { &hf_h501_pattern_item
,
3181 { "Pattern", "h501.Pattern",
3182 FT_UINT32
, BASE_DEC
, VALS(h501_Pattern_vals
), 0,
3184 { &hf_h501_routeInfo
,
3185 { "routeInfo", "h501.routeInfo",
3186 FT_UINT32
, BASE_DEC
, NULL
, 0,
3187 "SEQUENCE_OF_RouteInformation", HFILL
}},
3188 { &hf_h501_routeInfo_item
,
3189 { "RouteInformation", "h501.RouteInformation_element",
3190 FT_NONE
, BASE_NONE
, NULL
, 0,
3192 { &hf_h501_specific
,
3193 { "specific", "h501.specific",
3194 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3195 "AliasAddress", HFILL
}},
3196 { &hf_h501_wildcard
,
3197 { "wildcard", "h501.wildcard",
3198 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3199 "AliasAddress", HFILL
}},
3201 { "range", "h501.range_element",
3202 FT_NONE
, BASE_NONE
, NULL
, 0,
3204 { &hf_h501_startOfRange
,
3205 { "startOfRange", "h501.startOfRange",
3206 FT_UINT32
, BASE_DEC
, VALS(h225_PartyNumber_vals
), 0,
3207 "PartyNumber", HFILL
}},
3208 { &hf_h501_endOfRange
,
3209 { "endOfRange", "h501.endOfRange",
3210 FT_UINT32
, BASE_DEC
, VALS(h225_PartyNumber_vals
), 0,
3211 "PartyNumber", HFILL
}},
3212 { &hf_h501_messageType
,
3213 { "messageType", "h501.messageType",
3214 FT_UINT32
, BASE_DEC
, VALS(h501_T_messageType_vals
), 0,
3216 { &hf_h501_sendAccessRequest
,
3217 { "sendAccessRequest", "h501.sendAccessRequest_element",
3218 FT_NONE
, BASE_NONE
, NULL
, 0,
3220 { &hf_h501_sendSetup
,
3221 { "sendSetup", "h501.sendSetup_element",
3222 FT_NONE
, BASE_NONE
, NULL
, 0,
3224 { &hf_h501_nonExistent
,
3225 { "nonExistent", "h501.nonExistent_element",
3226 FT_NONE
, BASE_NONE
, NULL
, 0,
3228 { &hf_h501_callSpecific
,
3229 { "callSpecific", "h501.callSpecific",
3230 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3231 "BOOLEAN", HFILL
}},
3232 { &hf_h501_priceInfo
,
3233 { "priceInfo", "h501.priceInfo",
3234 FT_UINT32
, BASE_DEC
, NULL
, 0,
3235 "SEQUENCE_OF_PriceInfoSpec", HFILL
}},
3236 { &hf_h501_priceInfo_item
,
3237 { "PriceInfoSpec", "h501.PriceInfoSpec_element",
3238 FT_NONE
, BASE_NONE
, NULL
, 0,
3240 { &hf_h501_contacts
,
3241 { "contacts", "h501.contacts",
3242 FT_UINT32
, BASE_DEC
, NULL
, 0,
3243 "SEQUENCE_OF_ContactInformation", HFILL
}},
3244 { &hf_h501_contacts_item
,
3245 { "ContactInformation", "h501.ContactInformation_element",
3246 FT_NONE
, BASE_NONE
, NULL
, 0,
3249 { "type", "h501.type_element",
3250 FT_NONE
, BASE_NONE
, NULL
, 0,
3251 "EndpointType", HFILL
}},
3252 { &hf_h501_circuitID
,
3253 { "circuitID", "h501.circuitID_element",
3254 FT_NONE
, BASE_NONE
, NULL
, 0,
3255 "CircuitInfo", HFILL
}},
3256 { &hf_h501_supportedCircuits
,
3257 { "supportedCircuits", "h501.supportedCircuits",
3258 FT_UINT32
, BASE_DEC
, NULL
, 0,
3259 "SEQUENCE_OF_CircuitIdentifier", HFILL
}},
3260 { &hf_h501_supportedCircuits_item
,
3261 { "CircuitIdentifier", "h501.CircuitIdentifier_element",
3262 FT_NONE
, BASE_NONE
, NULL
, 0,
3264 { &hf_h501_transportAddress
,
3265 { "transportAddress", "h501.transportAddress",
3266 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3267 "AliasAddress", HFILL
}},
3268 { &hf_h501_priority
,
3269 { "priority", "h501.priority",
3270 FT_UINT32
, BASE_DEC
, NULL
, 0,
3271 "INTEGER_0_127", HFILL
}},
3272 { &hf_h501_transportQoS
,
3273 { "transportQoS", "h501.transportQoS",
3274 FT_UINT32
, BASE_DEC
, VALS(h225_TransportQOS_vals
), 0,
3276 { &hf_h501_security_01
,
3277 { "security", "h501.security",
3278 FT_UINT32
, BASE_DEC
, NULL
, 0,
3279 "SEQUENCE_OF_SecurityMode", HFILL
}},
3280 { &hf_h501_security_item
,
3281 { "SecurityMode", "h501.SecurityMode_element",
3282 FT_NONE
, BASE_NONE
, NULL
, 0,
3284 { &hf_h501_multipleCalls
,
3285 { "multipleCalls", "h501.multipleCalls",
3286 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3287 "BOOLEAN", HFILL
}},
3288 { &hf_h501_currency
,
3289 { "currency", "h501.currency",
3290 FT_STRING
, BASE_NONE
, NULL
, 0,
3291 "IA5String_SIZE_3", HFILL
}},
3292 { &hf_h501_currencyScale
,
3293 { "currencyScale", "h501.currencyScale",
3294 FT_INT32
, BASE_DEC
, NULL
, 0,
3295 "INTEGER_M127_127", HFILL
}},
3296 { &hf_h501_validFrom
,
3297 { "validFrom", "h501.validFrom",
3298 FT_STRING
, BASE_NONE
, NULL
, 0,
3299 "GlobalTimeStamp", HFILL
}},
3300 { &hf_h501_validUntil
,
3301 { "validUntil", "h501.validUntil",
3302 FT_STRING
, BASE_NONE
, NULL
, 0,
3303 "GlobalTimeStamp", HFILL
}},
3304 { &hf_h501_hoursFrom
,
3305 { "hoursFrom", "h501.hoursFrom",
3306 FT_STRING
, BASE_NONE
, NULL
, 0,
3307 "IA5String_SIZE_6", HFILL
}},
3308 { &hf_h501_hoursUntil
,
3309 { "hoursUntil", "h501.hoursUntil",
3310 FT_STRING
, BASE_NONE
, NULL
, 0,
3311 "IA5String_SIZE_6", HFILL
}},
3312 { &hf_h501_priceElement
,
3313 { "priceElement", "h501.priceElement",
3314 FT_UINT32
, BASE_DEC
, NULL
, 0,
3315 "SEQUENCE_OF_PriceElement", HFILL
}},
3316 { &hf_h501_priceElement_item
,
3317 { "PriceElement", "h501.PriceElement_element",
3318 FT_NONE
, BASE_NONE
, NULL
, 0,
3320 { &hf_h501_priceFormula
,
3321 { "priceFormula", "h501.priceFormula",
3322 FT_STRING
, BASE_NONE
, NULL
, 0,
3323 "IA5String_SIZE_1_2048", HFILL
}},
3325 { "amount", "h501.amount",
3326 FT_UINT32
, BASE_DEC
, NULL
, 0,
3327 "INTEGER_0_4294967295", HFILL
}},
3329 { "quantum", "h501.quantum",
3330 FT_UINT32
, BASE_DEC
, NULL
, 0,
3331 "INTEGER_0_4294967295", HFILL
}},
3333 { "units", "h501.units",
3334 FT_UINT32
, BASE_DEC
, VALS(h501_T_units_vals
), 0,
3337 { "seconds", "h501.seconds_element",
3338 FT_NONE
, BASE_NONE
, NULL
, 0,
3341 { "packets", "h501.packets_element",
3342 FT_NONE
, BASE_NONE
, NULL
, 0,
3345 { "bytes", "h501.bytes_element",
3346 FT_NONE
, BASE_NONE
, NULL
, 0,
3349 { "initial", "h501.initial_element",
3350 FT_NONE
, BASE_NONE
, NULL
, 0,
3353 { "minimum", "h501.minimum_element",
3354 FT_NONE
, BASE_NONE
, NULL
, 0,
3357 { "maximum", "h501.maximum_element",
3358 FT_NONE
, BASE_NONE
, NULL
, 0,
3360 { &hf_h501_descriptorInfo_02
,
3361 { "descriptorInfo", "h501.descriptorInfo_element",
3362 FT_NONE
, BASE_NONE
, NULL
, 0,
3364 { &hf_h501_gatekeeperID
,
3365 { "gatekeeperID", "h501.gatekeeperID",
3366 FT_STRING
, BASE_NONE
, NULL
, 0,
3367 "GatekeeperIdentifier", HFILL
}},
3368 { &hf_h501_descriptorInfo_descriptorID
,
3369 { "descriptorID", "h501.descriptorInfo_descriptorID",
3370 FT_GUID
, BASE_NONE
, NULL
, 0,
3372 { &hf_h501_lastChanged
,
3373 { "lastChanged", "h501.lastChanged",
3374 FT_STRING
, BASE_NONE
, NULL
, 0,
3375 "GlobalTimeStamp", HFILL
}},
3376 { &hf_h501_alternatePE
,
3377 { "alternatePE", "h501.alternatePE",
3378 FT_UINT32
, BASE_DEC
, NULL
, 0,
3379 "SEQUENCE_OF_AlternatePE", HFILL
}},
3380 { &hf_h501_alternatePE_item
,
3381 { "AlternatePE", "h501.AlternatePE_element",
3382 FT_NONE
, BASE_NONE
, NULL
, 0,
3384 { &hf_h501_alternateIsPermanent
,
3385 { "alternateIsPermanent", "h501.alternateIsPermanent",
3386 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
3387 "BOOLEAN", HFILL
}},
3388 { &hf_h501_contactAddress
,
3389 { "contactAddress", "h501.contactAddress",
3390 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3391 "AliasAddress", HFILL
}},
3392 { &hf_h501_priority_01
,
3393 { "priority", "h501.priority",
3394 FT_UINT32
, BASE_DEC
, NULL
, 0,
3395 "INTEGER_1_127", HFILL
}},
3397 { "token", "h501.token_element",
3398 FT_NONE
, BASE_NONE
, NULL
, 0,
3399 "ClearToken", HFILL
}},
3400 { &hf_h501_cryptoToken
,
3401 { "cryptoToken", "h501.cryptoToken",
3402 FT_UINT32
, BASE_DEC
, VALS(h225_CryptoH323Token_vals
), 0,
3403 "CryptoH323Token", HFILL
}},
3404 { &hf_h501_genericData_01
,
3405 { "genericData", "h501.genericData_element",
3406 FT_NONE
, BASE_NONE
, NULL
, 0,
3408 { &hf_h501_callIdentifier
,
3409 { "callIdentifier", "h501.callIdentifier_element",
3410 FT_NONE
, BASE_NONE
, NULL
, 0,
3412 { &hf_h501_conferenceID
,
3413 { "conferenceID", "h501.conferenceID",
3414 FT_GUID
, BASE_NONE
, NULL
, 0,
3415 "ConferenceIdentifier", HFILL
}},
3416 { &hf_h501_preConnect
,
3417 { "preConnect", "h501.preConnect_element",
3418 FT_NONE
, BASE_NONE
, NULL
, 0,
3420 { &hf_h501_callInProgress
,
3421 { "callInProgress", "h501.callInProgress_element",
3422 FT_NONE
, BASE_NONE
, NULL
, 0,
3424 { &hf_h501_callEnded
,
3425 { "callEnded", "h501.callEnded_element",
3426 FT_NONE
, BASE_NONE
, NULL
, 0,
3428 { &hf_h501_registrationLost
,
3429 { "registrationLost", "h501.registrationLost_element",
3430 FT_NONE
, BASE_NONE
, NULL
, 0,
3432 { &hf_h501_userIdentifier
,
3433 { "userIdentifier", "h501.userIdentifier",
3434 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3435 "AliasAddress", HFILL
}},
3436 { &hf_h501_userAuthenticator
,
3437 { "userAuthenticator", "h501.userAuthenticator",
3438 FT_UINT32
, BASE_DEC
, NULL
, 0,
3439 "SEQUENCE_OF_CryptoH323Token", HFILL
}},
3440 { &hf_h501_userAuthenticator_item
,
3441 { "CryptoH323Token", "h501.CryptoH323Token",
3442 FT_UINT32
, BASE_DEC
, VALS(h225_CryptoH323Token_vals
), 0,
3445 { "sendTo", "h501.sendTo",
3446 FT_STRING
, BASE_NONE
, NULL
, 0,
3447 "ElementIdentifier", HFILL
}},
3449 { "when", "h501.when_element",
3450 FT_NONE
, BASE_NONE
, NULL
, 0,
3453 { "never", "h501.never_element",
3454 FT_NONE
, BASE_NONE
, NULL
, 0,
3457 { "start", "h501.start_element",
3458 FT_NONE
, BASE_NONE
, NULL
, 0,
3461 { "end", "h501.end_element",
3462 FT_NONE
, BASE_NONE
, NULL
, 0,
3465 { "period", "h501.period",
3466 FT_UINT32
, BASE_DEC
, NULL
, 0,
3467 "INTEGER_1_65535", HFILL
}},
3468 { &hf_h501_failures
,
3469 { "failures", "h501.failures_element",
3470 FT_NONE
, BASE_NONE
, NULL
, 0,
3472 { &hf_h501_required
,
3473 { "required", "h501.required",
3474 FT_UINT32
, BASE_DEC
, NULL
, 0,
3476 { &hf_h501_required_item
,
3477 { "required item", "h501.required_item",
3478 FT_OID
, BASE_NONE
, NULL
, 0,
3479 "OBJECT_IDENTIFIER", HFILL
}},
3480 { &hf_h501_preferred
,
3481 { "preferred", "h501.preferred",
3482 FT_UINT32
, BASE_DEC
, NULL
, 0,
3484 { &hf_h501_preferred_item
,
3485 { "preferred item", "h501.preferred_item",
3486 FT_OID
, BASE_NONE
, NULL
, 0,
3487 "OBJECT_IDENTIFIER", HFILL
}},
3488 { &hf_h501_sendToPEAddress
,
3489 { "sendToPEAddress", "h501.sendToPEAddress",
3490 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3491 "AliasAddress", HFILL
}},
3492 { &hf_h501_logicalAddresses
,
3493 { "logicalAddresses", "h501.logicalAddresses",
3494 FT_UINT32
, BASE_DEC
, NULL
, 0,
3495 "SEQUENCE_OF_AliasAddress", HFILL
}},
3496 { &hf_h501_logicalAddresses_item
,
3497 { "AliasAddress", "h501.AliasAddress",
3498 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
3500 { &hf_h501_endpointType
,
3501 { "endpointType", "h501.endpointType_element",
3502 FT_NONE
, BASE_NONE
, NULL
, 0,
3504 { &hf_h501_userInfo
,
3505 { "userInfo", "h501.userInfo_element",
3506 FT_NONE
, BASE_NONE
, NULL
, 0,
3507 "UserInformation", HFILL
}},
3508 { &hf_h501_timeZone
,
3509 { "timeZone", "h501.timeZone",
3510 FT_INT32
, BASE_DEC
, NULL
, 0,
3512 { &hf_h501_originator
,
3513 { "originator", "h501.originator_element",
3514 FT_NONE
, BASE_NONE
, NULL
, 0,
3516 { &hf_h501_destination
,
3517 { "destination", "h501.destination_element",
3518 FT_NONE
, BASE_NONE
, NULL
, 0,
3520 { &hf_h501_nonStandardData
,
3521 { "nonStandardData", "h501.nonStandardData_element",
3522 FT_NONE
, BASE_NONE
, NULL
, 0,
3523 "NonStandardParameter", HFILL
}},
3524 { &hf_h501_releaseCompleteReason
,
3525 { "releaseCompleteReason", "h501.releaseCompleteReason",
3526 FT_UINT32
, BASE_DEC
, VALS(h225_ReleaseCompleteReason_vals
), 0,
3529 { "causeIE", "h501.causeIE",
3530 FT_UINT32
, BASE_DEC
, NULL
, 0,
3531 "INTEGER_1_65535", HFILL
}},
3534 /* List of subtrees */
3535 static int *ett
[] = {
3538 &ett_h501_MessageBody
,
3539 &ett_h501_MessageCommonInfo
,
3540 &ett_h501_SEQUENCE_OF_TransportAddress
,
3541 &ett_h501_SEQUENCE_OF_ClearToken
,
3542 &ett_h501_SEQUENCE_OF_CryptoH323Token
,
3543 &ett_h501_SEQUENCE_OF_NonStandardParameter
,
3544 &ett_h501_SEQUENCE_OF_GenericData
,
3545 &ett_h501_ServiceRequest
,
3546 &ett_h501_SEQUENCE_OF_SecurityMode
,
3547 &ett_h501_SecurityMode
,
3548 &ett_h501_T_algorithmOIDs
,
3549 &ett_h501_ServiceConfirmation
,
3550 &ett_h501_ServiceRejection
,
3551 &ett_h501_ServiceRejectionReason
,
3552 &ett_h501_ServiceRelease
,
3553 &ett_h501_ServiceReleaseReason
,
3554 &ett_h501_DescriptorRequest
,
3555 &ett_h501_SEQUENCE_OF_DescriptorID
,
3556 &ett_h501_DescriptorConfirmation
,
3557 &ett_h501_SEQUENCE_OF_Descriptor
,
3558 &ett_h501_DescriptorRejection
,
3559 &ett_h501_DescriptorRejectionReason
,
3560 &ett_h501_DescriptorIDRequest
,
3561 &ett_h501_DescriptorIDConfirmation
,
3562 &ett_h501_SEQUENCE_OF_DescriptorInfo
,
3563 &ett_h501_DescriptorIDRejection
,
3564 &ett_h501_DescriptorIDRejectionReason
,
3565 &ett_h501_DescriptorUpdate
,
3566 &ett_h501_SEQUENCE_OF_UpdateInformation
,
3567 &ett_h501_UpdateInformation
,
3568 &ett_h501_T_descriptorInfo
,
3569 &ett_h501_T_updateType
,
3570 &ett_h501_DescriptorUpdateAck
,
3571 &ett_h501_AccessRequest
,
3572 &ett_h501_SEQUENCE_OF_SupportedProtocols
,
3573 &ett_h501_AccessConfirmation
,
3574 &ett_h501_SEQUENCE_OF_AddressTemplate
,
3575 &ett_h501_SEQUENCE_OF_ServiceControlSession
,
3576 &ett_h501_AccessRejection
,
3577 &ett_h501_AccessRejectionReason
,
3578 &ett_h501_UsageRequest
,
3579 &ett_h501_UsageConfirmation
,
3580 &ett_h501_UsageRejection
,
3581 &ett_h501_UsageIndication
,
3582 &ett_h501_SEQUENCE_OF_AccessToken
,
3583 &ett_h501_SEQUENCE_OF_UsageField
,
3584 &ett_h501_UsageField
,
3585 &ett_h501_UsageRejectReason
,
3586 &ett_h501_UsageIndicationConfirmation
,
3587 &ett_h501_UsageIndicationRejection
,
3588 &ett_h501_UsageIndicationRejectionReason
,
3589 &ett_h501_ValidationRequest
,
3590 &ett_h501_ValidationConfirmation
,
3591 &ett_h501_ValidationRejection
,
3592 &ett_h501_ValidationRejectionReason
,
3593 &ett_h501_RequestInProgress
,
3594 &ett_h501_NonStandardRequest
,
3595 &ett_h501_NonStandardConfirmation
,
3596 &ett_h501_NonStandardRejection
,
3597 &ett_h501_NonStandardRejectionReason
,
3598 &ett_h501_UnknownMessageResponse
,
3599 &ett_h501_UnknownMessageReason
,
3600 &ett_h501_AuthenticationRequest
,
3601 &ett_h501_AuthenticationConfirmation
,
3602 &ett_h501_AuthenticationRejection
,
3603 &ett_h501_AuthenticationRejectionReason
,
3604 &ett_h501_AddressTemplate
,
3605 &ett_h501_SEQUENCE_OF_Pattern
,
3606 &ett_h501_SEQUENCE_OF_RouteInformation
,
3609 &ett_h501_RouteInformation
,
3610 &ett_h501_T_messageType
,
3611 &ett_h501_SEQUENCE_OF_PriceInfoSpec
,
3612 &ett_h501_SEQUENCE_OF_ContactInformation
,
3613 &ett_h501_SEQUENCE_OF_CircuitIdentifier
,
3614 &ett_h501_ContactInformation
,
3615 &ett_h501_PriceInfoSpec
,
3616 &ett_h501_SEQUENCE_OF_PriceElement
,
3617 &ett_h501_PriceElement
,
3619 &ett_h501_Descriptor
,
3620 &ett_h501_DescriptorInfo
,
3621 &ett_h501_AlternatePEInfo
,
3622 &ett_h501_SEQUENCE_OF_AlternatePE
,
3623 &ett_h501_AlternatePE
,
3624 &ett_h501_AccessToken
,
3625 &ett_h501_CallInformation
,
3626 &ett_h501_UsageCallStatus
,
3627 &ett_h501_UserInformation
,
3628 &ett_h501_UsageSpecification
,
3630 &ett_h501_T_required
,
3631 &ett_h501_T_preferred
,
3632 &ett_h501_PartyInformation
,
3633 &ett_h501_SEQUENCE_OF_AliasAddress
,
3635 &ett_h501_TerminationCause
,
3638 /* Register protocol */
3639 proto_h501
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
3641 /* Register fields and subtrees */
3642 proto_register_field_array(proto_h501
, hf
, array_length(hf
));
3643 proto_register_subtree_array(ett
, array_length(ett
));
3645 /* Register dissectors */
3646 h501_pdu_handle
= register_dissector(PFNAME
, dissect_h501_pdu
, proto_h501
);
3647 h501_udp_handle
= register_dissector(PFNAME
".udp", dissect_h501_udp
, proto_h501
);
3648 h501_tcp_handle
= register_dissector(PFNAME
".tcp", dissect_h501_tcp
, proto_h501
);
3650 /* Register dissection preferences */
3651 h501_module
= prefs_register_protocol(proto_h501
, NULL
);
3652 prefs_register_bool_preference(h501_module
, "desegment",
3653 "Desegment H.501 over TCP",
3654 "Desegment H.501 messages that span more TCP segments",
3655 &h501_desegment_tcp
);
3659 /*--- proto_reg_handoff_h501 -------------------------------------------*/
3660 void proto_reg_handoff_h501(void)
3662 dissector_add_uint_with_preference("tcp.port", H501_PORT
, h501_tcp_handle
);
3663 dissector_add_uint_with_preference("udp.port", H501_PORT
, h501_udp_handle
);