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 -c ./h460.cnf -s ./packet-h460-template -D . -O ../.. NUMBER-PORTABILITY.asn CIRCUIT-STATUS-MAP.asn CALL-PRIORITY.asn QOS-MONITORING-REPORT.asn QOS-MONITORING-EXTENDED-VOIP-REPORT.asn CALL-PARTY-CATEGORY.asn MLPP.asn SIGNALLING-CHANNEL-SUSPEND-REDIRECT.asn SIGNALLING-TRAVERSAL.asn MEDIA-TRAVERSAL.asn MESSAGE-BROADCAST.asn */
7 * Routines for H.460.x 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/oids.h>
21 #include <epan/asn1.h>
22 #include <wsutil/array.h>
24 #include "packet-per.h"
25 #include "packet-h225.h"
26 #include "packet-h235.h"
27 #include "packet-h245.h"
29 #define PNAME "H.460 Supplementary Services"
30 #define PSNAME "H.460"
33 void proto_register_h460(void);
34 void proto_reg_handoff_h460(void);
36 /* Initialize the protocol and registered fields */
37 static int proto_h460
;
39 /* --- Module NUMBER-PORTABILITY --- --- --- */
41 static int hf_h460_2_h460_2_NumberPortabilityInfo_PDU
; /* NumberPortabilityInfo */
42 static int hf_h460_2_numberPortabilityRejectReason
; /* NumberPortabilityRejectReason */
43 static int hf_h460_2_nUMBERPORTABILITYDATA
; /* T_nUMBERPORTABILITYDATA */
44 static int hf_h460_2_addressTranslated
; /* NULL */
45 static int hf_h460_2_portedAddress
; /* PortabilityAddress */
46 static int hf_h460_2_routingAddress
; /* PortabilityAddress */
47 static int hf_h460_2_regionalParams
; /* RegionalParameters */
48 static int hf_h460_2_unspecified
; /* NULL */
49 static int hf_h460_2_qorPortedNumber
; /* NULL */
50 static int hf_h460_2_aliasAddress
; /* AliasAddress */
51 static int hf_h460_2_typeOfAddress
; /* NumberPortabilityTypeOfNumber */
52 static int hf_h460_2_publicTypeOfNumber
; /* PublicTypeOfNumber */
53 static int hf_h460_2_privateTypeOfNumber
; /* PrivateTypeOfNumber */
54 static int hf_h460_2_portabilityTypeOfNumber
; /* PortabilityTypeOfNumber */
55 static int hf_h460_2_portedNumber
; /* NULL */
56 static int hf_h460_2_routingNumber
; /* NULL */
57 static int hf_h460_2_concatenatedNumber
; /* NULL */
58 static int hf_h460_2_t35CountryCode
; /* INTEGER_0_255 */
59 static int hf_h460_2_t35Extension
; /* INTEGER_0_255 */
60 static int hf_h460_2_variantIdentifier
; /* INTEGER_1_255 */
61 static int hf_h460_2_regionalData
; /* OCTET_STRING */
63 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
65 static int hf_h460_3_h460_3_CircuitStatus_PDU
; /* CircuitStatus */
66 static int hf_h460_3_circuitStatusMap
; /* SEQUENCE_OF_CircuitStatusMap */
67 static int hf_h460_3_circuitStatusMap_item
; /* CircuitStatusMap */
68 static int hf_h460_3_statusType
; /* CircuitStatusType */
69 static int hf_h460_3_baseCircuitID
; /* CircuitIdentifier */
70 static int hf_h460_3_range
; /* INTEGER_0_4095 */
71 static int hf_h460_3_status
; /* OCTET_STRING */
72 static int hf_h460_3_serviceStatus
; /* NULL */
73 static int hf_h460_3_busyStatus
; /* NULL */
75 /* --- Module CALL-PRIORITY --- --- --- */
77 static int hf_h460_4_h460_4_CallPriorityInfo_PDU
; /* CallPriorityInfo */
78 static int hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU
; /* CountryInternationalNetworkCallOriginationIdentification */
79 static int hf_h460_4_priorityValue
; /* T_priorityValue */
80 static int hf_h460_4_emergencyAuthorized
; /* NULL */
81 static int hf_h460_4_emergencyPublic
; /* NULL */
82 static int hf_h460_4_high
; /* NULL */
83 static int hf_h460_4_normal
; /* NULL */
84 static int hf_h460_4_priorityExtension
; /* INTEGER_0_255 */
85 static int hf_h460_4_tokens
; /* SEQUENCE_OF_ClearToken */
86 static int hf_h460_4_tokens_item
; /* ClearToken */
87 static int hf_h460_4_cryptoTokens
; /* SEQUENCE_OF_CryptoToken */
88 static int hf_h460_4_cryptoTokens_item
; /* CryptoToken */
89 static int hf_h460_4_rejectReason
; /* T_rejectReason */
90 static int hf_h460_4_priorityUnavailable
; /* NULL */
91 static int hf_h460_4_priorityUnauthorized
; /* NULL */
92 static int hf_h460_4_priorityValueUnknown
; /* NULL */
93 static int hf_h460_4_numberingPlan
; /* T_numberingPlan */
94 static int hf_h460_4_x121
; /* T_x121 */
95 static int hf_h460_4_x121CountryCode
; /* X121CountryCode */
96 static int hf_h460_4_e164
; /* T_e164 */
97 static int hf_h460_4_e164CountryCode
; /* E164CountryCode */
98 static int hf_h460_4_identificationCode
; /* T_identificationCode */
100 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
102 static int hf_h460_9_h460_9_QosMonitoringReportData_PDU
; /* QosMonitoringReportData */
103 static int hf_h460_9_h460_9_ExtendedRTPMetrics_PDU
; /* ExtendedRTPMetrics */
104 static int hf_h460_9_extensionId
; /* GenericIdentifier */
105 static int hf_h460_9_extensionContent
; /* OCTET_STRING */
106 static int hf_h460_9_rtpAddress
; /* TransportChannelInfo */
107 static int hf_h460_9_rtcpAddress
; /* TransportChannelInfo */
108 static int hf_h460_9_sessionId
; /* INTEGER_1_255 */
109 static int hf_h460_9_nonStandardData
; /* NonStandardParameter */
110 static int hf_h460_9_mediaSenderMeasures
; /* T_mediaSenderMeasures */
111 static int hf_h460_9_worstEstimatedEnd2EndDelay
; /* EstimatedEnd2EndDelay */
112 static int hf_h460_9_meanEstimatedEnd2EndDelay
; /* EstimatedEnd2EndDelay */
113 static int hf_h460_9_mediaReceiverMeasures
; /* T_mediaReceiverMeasures */
114 static int hf_h460_9_cumulativeNumberOfPacketsLost
; /* INTEGER_0_4294967295 */
115 static int hf_h460_9_packetLostRate
; /* INTEGER_0_65535 */
116 static int hf_h460_9_worstJitter
; /* CalculatedJitter */
117 static int hf_h460_9_estimatedThroughput
; /* BandWidth */
118 static int hf_h460_9_fractionLostRate
; /* INTEGER_0_65535 */
119 static int hf_h460_9_meanJitter
; /* CalculatedJitter */
120 static int hf_h460_9_extensions
; /* SEQUENCE_OF_Extension */
121 static int hf_h460_9_extensions_item
; /* Extension */
122 static int hf_h460_9_callReferenceValue
; /* CallReferenceValue */
123 static int hf_h460_9_conferenceID
; /* ConferenceIdentifier */
124 static int hf_h460_9_callIdentifier
; /* CallIdentifier */
125 static int hf_h460_9_mediaChannelsQoS
; /* SEQUENCE_OF_RTCPMeasures */
126 static int hf_h460_9_mediaChannelsQoS_item
; /* RTCPMeasures */
127 static int hf_h460_9_periodic
; /* PeriodicQoSMonReport */
128 static int hf_h460_9_final
; /* FinalQosMonReport */
129 static int hf_h460_9_interGK
; /* InterGKQosMonReport */
130 static int hf_h460_9_perCallInfo
; /* SEQUENCE_OF_PerCallQoSReport */
131 static int hf_h460_9_perCallInfo_item
; /* PerCallQoSReport */
132 static int hf_h460_9_mediaInfo
; /* SEQUENCE_OF_RTCPMeasures */
133 static int hf_h460_9_mediaInfo_item
; /* RTCPMeasures */
134 static int hf_h460_9_networkPacketLossRate
; /* INTEGER_0_255 */
135 static int hf_h460_9_jitterBufferDiscardRate
; /* INTEGER_0_255 */
136 static int hf_h460_9_burstMetrics
; /* BurstMetrics */
137 static int hf_h460_9_rtcpRoundTripDelay
; /* INTEGER_0_65535 */
138 static int hf_h460_9_endSystemDelay
; /* INTEGER_0_65535 */
139 static int hf_h460_9_signalLevel
; /* INTEGER_M127_10 */
140 static int hf_h460_9_noiseLevel
; /* INTEGER_M127_0 */
141 static int hf_h460_9_residualEchoReturnLoss
; /* INTEGER_0_127 */
142 static int hf_h460_9_rFactor
; /* INTEGER_0_100 */
143 static int hf_h460_9_extRFactor
; /* INTEGER_0_100 */
144 static int hf_h460_9_estimatedMOSLQ
; /* INTEGER_10_50 */
145 static int hf_h460_9_estimatedMOSCQ
; /* INTEGER_10_50 */
146 static int hf_h460_9_plcType
; /* PLCtypes */
147 static int hf_h460_9_jitterBufferParms
; /* JitterBufferParms */
148 static int hf_h460_9_gmin
; /* INTEGER_0_255 */
149 static int hf_h460_9_burstLossDensity
; /* INTEGER_0_255 */
150 static int hf_h460_9_gapLossDensity
; /* INTEGER_0_255 */
151 static int hf_h460_9_burstDuration
; /* INTEGER_0_65535 */
152 static int hf_h460_9_gapDuration
; /* INTEGER_0_65535 */
153 static int hf_h460_9_unspecified
; /* NULL */
154 static int hf_h460_9_disabled
; /* NULL */
155 static int hf_h460_9_enhanced
; /* NULL */
156 static int hf_h460_9_standard
; /* NULL */
157 static int hf_h460_9_jitterBufferType
; /* JitterBufferTypes */
158 static int hf_h460_9_jitterBufferAdaptRate
; /* INTEGER_0_15 */
159 static int hf_h460_9_jitterBufferNominalSize
; /* INTEGER_0_65535 */
160 static int hf_h460_9_jitterBufferMaxSize
; /* INTEGER_0_65535 */
161 static int hf_h460_9_jitterBufferAbsoluteMax
; /* INTEGER_0_65535 */
162 static int hf_h460_9_unknown
; /* NULL */
163 static int hf_h460_9_reserved
; /* NULL */
164 static int hf_h460_9_nonadaptive
; /* NULL */
165 static int hf_h460_9_adaptive
; /* NULL */
167 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
169 static int hf_h460_10_h460_10_CallPartyCategoryInfo_PDU
; /* CallPartyCategoryInfo */
170 static int hf_h460_10_callPartyCategory
; /* CallPartyCategory */
171 static int hf_h460_10_originatingLineInfo
; /* OriginatingLineInfo */
173 /* --- Module MLPP --- --- --- */
175 static int hf_h460_14_h460_14_MLPPInfo_PDU
; /* MLPPInfo */
176 static int hf_h460_14_precedence
; /* MlppPrecedence */
177 static int hf_h460_14_mlppReason
; /* MlppReason */
178 static int hf_h460_14_mlppNotification
; /* MlppNotification */
179 static int hf_h460_14_alternateParty
; /* AlternateParty */
180 static int hf_h460_14_releaseCall
; /* ReleaseCall */
181 static int hf_h460_14_preemptionPending
; /* NULL */
182 static int hf_h460_14_preemptionInProgress
; /* NULL */
183 static int hf_h460_14_preemptionEnd
; /* NULL */
184 static int hf_h460_14_preemptionComplete
; /* NULL */
185 static int hf_h460_14_altID
; /* AliasAddress */
186 static int hf_h460_14_altTimer
; /* INTEGER_0_255 */
187 static int hf_h460_14_preemptCallID
; /* CallIdentifier */
188 static int hf_h460_14_releaseReason
; /* MlppReason */
189 static int hf_h460_14_releaseDelay
; /* INTEGER_0_255 */
191 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
193 static int hf_h460_15_h460_15_SignallingChannelData_PDU
; /* SignallingChannelData */
194 static int hf_h460_15_signallingChannelData
; /* T_signallingChannelData */
195 static int hf_h460_15_channelSuspendRequest
; /* ChannelSuspendRequest */
196 static int hf_h460_15_channelSuspendResponse
; /* ChannelSuspendResponse */
197 static int hf_h460_15_channelSuspendConfirm
; /* ChannelSuspendConfirm */
198 static int hf_h460_15_channelSuspendCancel
; /* ChannelSuspendCancel */
199 static int hf_h460_15_channelResumeRequest
; /* ChannelResumeRequest */
200 static int hf_h460_15_channelResumeResponse
; /* ChannelResumeResponse */
201 static int hf_h460_15_channelResumeAddress
; /* SEQUENCE_OF_TransportAddress */
202 static int hf_h460_15_channelResumeAddress_item
; /* TransportAddress */
203 static int hf_h460_15_immediateResume
; /* BOOLEAN */
204 static int hf_h460_15_resetH245
; /* NULL */
205 static int hf_h460_15_okToSuspend
; /* BOOLEAN */
206 static int hf_h460_15_randomNumber
; /* INTEGER_0_4294967295 */
208 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
210 static int hf_h460_18_h460_18_IncomingCallIndication_PDU
; /* IncomingCallIndication */
211 static int hf_h460_18_h460_18_LRQKeepAliveData_PDU
; /* LRQKeepAliveData */
212 static int hf_h460_18_callSignallingAddress
; /* TransportAddress */
213 static int hf_h460_18_callID
; /* CallIdentifier */
214 static int hf_h460_18_lrqKeepAliveInterval
; /* TimeToLive */
216 /* --- Module MEDIA-TRAVERSAL --- --- --- */
218 static int hf_h460_19_h460_19_TraversalParameters_PDU
; /* TraversalParameters */
219 static int hf_h460_19_multiplexedMediaChannel
; /* TransportAddress */
220 static int hf_h460_19_multiplexedMediaControlChannel
; /* TransportAddress */
221 static int hf_h460_19_multiplexID
; /* INTEGER_0_4294967295 */
222 static int hf_h460_19_keepAliveChannel
; /* TransportAddress */
223 static int hf_h460_19_keepAlivePayloadType
; /* INTEGER_0_127 */
224 static int hf_h460_19_keepAliveInterval
; /* TimeToLive */
226 /* --- Module MESSAGE-BROADCAST --- --- --- */
228 static int hf_h460_21_h460_21_CapabilityAdvertisement_PDU
; /* CapabilityAdvertisement */
229 static int hf_h460_21_receiveCapabilities
; /* ReceiveCapabilities */
230 static int hf_h460_21_transmitCapabilities
; /* SEQUENCE_SIZE_1_256_OF_TransmitCapabilities */
231 static int hf_h460_21_transmitCapabilities_item
; /* TransmitCapabilities */
232 static int hf_h460_21_capabilities
; /* SEQUENCE_SIZE_1_256_OF_Capability */
233 static int hf_h460_21_capabilities_item
; /* Capability */
234 static int hf_h460_21_maxGroups
; /* INTEGER_1_65535 */
235 static int hf_h460_21_groupIdentifer
; /* GloballyUniqueID */
236 static int hf_h460_21_capability
; /* Capability */
237 static int hf_h460_21_sourceAddress
; /* UnicastAddress */
239 /* Initialize the subtree pointers */
241 /* --- Module NUMBER-PORTABILITY --- --- --- */
243 static int ett_h460_2_NumberPortabilityInfo
;
244 static int ett_h460_2_T_nUMBERPORTABILITYDATA
;
245 static int ett_h460_2_NumberPortabilityRejectReason
;
246 static int ett_h460_2_PortabilityAddress
;
247 static int ett_h460_2_NumberPortabilityTypeOfNumber
;
248 static int ett_h460_2_PortabilityTypeOfNumber
;
249 static int ett_h460_2_RegionalParameters
;
251 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
253 static int ett_h460_3_CircuitStatus
;
254 static int ett_h460_3_SEQUENCE_OF_CircuitStatusMap
;
255 static int ett_h460_3_CircuitStatusMap
;
256 static int ett_h460_3_CircuitStatusType
;
258 /* --- Module CALL-PRIORITY --- --- --- */
260 static int ett_h460_4_CallPriorityInfo
;
261 static int ett_h460_4_T_priorityValue
;
262 static int ett_h460_4_SEQUENCE_OF_ClearToken
;
263 static int ett_h460_4_SEQUENCE_OF_CryptoToken
;
264 static int ett_h460_4_T_rejectReason
;
265 static int ett_h460_4_CountryInternationalNetworkCallOriginationIdentification
;
266 static int ett_h460_4_T_numberingPlan
;
267 static int ett_h460_4_T_x121
;
268 static int ett_h460_4_T_e164
;
270 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
272 static int ett_h460_9_Extension
;
273 static int ett_h460_9_RTCPMeasures
;
274 static int ett_h460_9_T_mediaSenderMeasures
;
275 static int ett_h460_9_T_mediaReceiverMeasures
;
276 static int ett_h460_9_SEQUENCE_OF_Extension
;
277 static int ett_h460_9_PerCallQoSReport
;
278 static int ett_h460_9_SEQUENCE_OF_RTCPMeasures
;
279 static int ett_h460_9_QosMonitoringReportData
;
280 static int ett_h460_9_PeriodicQoSMonReport
;
281 static int ett_h460_9_SEQUENCE_OF_PerCallQoSReport
;
282 static int ett_h460_9_FinalQosMonReport
;
283 static int ett_h460_9_InterGKQosMonReport
;
284 static int ett_h460_9_ExtendedRTPMetrics
;
285 static int ett_h460_9_BurstMetrics
;
286 static int ett_h460_9_PLCtypes
;
287 static int ett_h460_9_JitterBufferParms
;
288 static int ett_h460_9_JitterBufferTypes
;
290 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
292 static int ett_h460_10_CallPartyCategoryInfo
;
294 /* --- Module MLPP --- --- --- */
296 static int ett_h460_14_MLPPInfo
;
297 static int ett_h460_14_MlppNotification
;
298 static int ett_h460_14_AlternateParty
;
299 static int ett_h460_14_ReleaseCall
;
301 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
303 static int ett_h460_15_SignallingChannelData
;
304 static int ett_h460_15_T_signallingChannelData
;
305 static int ett_h460_15_ChannelSuspendRequest
;
306 static int ett_h460_15_SEQUENCE_OF_TransportAddress
;
307 static int ett_h460_15_ChannelSuspendResponse
;
308 static int ett_h460_15_ChannelSuspendConfirm
;
309 static int ett_h460_15_ChannelSuspendCancel
;
310 static int ett_h460_15_ChannelResumeRequest
;
311 static int ett_h460_15_ChannelResumeResponse
;
313 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
315 static int ett_h460_18_IncomingCallIndication
;
316 static int ett_h460_18_LRQKeepAliveData
;
318 /* --- Module MEDIA-TRAVERSAL --- --- --- */
320 static int ett_h460_19_TraversalParameters
;
322 /* --- Module MESSAGE-BROADCAST --- --- --- */
324 static int ett_h460_21_CapabilityAdvertisement
;
325 static int ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities
;
326 static int ett_h460_21_ReceiveCapabilities
;
327 static int ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability
;
328 static int ett_h460_21_TransmitCapabilities
;
330 /* Main dissector handle */
331 static dissector_handle_t h460_name_handle
;
334 static dissector_handle_t q931_ie_handle
;
335 static dissector_handle_t h225_ras_handle
;
338 /* --- Module NUMBER-PORTABILITY --- --- --- */
343 dissect_h460_2_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
344 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
350 static const value_string h460_2_NumberPortabilityRejectReason_vals
[] = {
351 { 0, "unspecified" },
352 { 1, "qorPortedNumber" },
356 static const per_choice_t h460_2_NumberPortabilityRejectReason_choice
[] = {
357 { 0, &hf_h460_2_unspecified
, ASN1_EXTENSION_ROOT
, dissect_h460_2_NULL
},
358 { 1, &hf_h460_2_qorPortedNumber
, ASN1_EXTENSION_ROOT
, dissect_h460_2_NULL
},
363 dissect_h460_2_NumberPortabilityRejectReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
364 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
365 ett_h460_2_NumberPortabilityRejectReason
, h460_2_NumberPortabilityRejectReason_choice
,
372 static const value_string h460_2_PortabilityTypeOfNumber_vals
[] = {
373 { 0, "portedNumber" },
374 { 1, "routingNumber" },
375 { 2, "concatenatedNumber" },
379 static const per_choice_t h460_2_PortabilityTypeOfNumber_choice
[] = {
380 { 0, &hf_h460_2_portedNumber
, ASN1_EXTENSION_ROOT
, dissect_h460_2_NULL
},
381 { 1, &hf_h460_2_routingNumber
, ASN1_EXTENSION_ROOT
, dissect_h460_2_NULL
},
382 { 2, &hf_h460_2_concatenatedNumber
, ASN1_EXTENSION_ROOT
, dissect_h460_2_NULL
},
387 dissect_h460_2_PortabilityTypeOfNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
388 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
389 ett_h460_2_PortabilityTypeOfNumber
, h460_2_PortabilityTypeOfNumber_choice
,
396 static const value_string h460_2_NumberPortabilityTypeOfNumber_vals
[] = {
397 { 0, "publicTypeOfNumber" },
398 { 1, "privateTypeOfNumber" },
399 { 2, "portabilityTypeOfNumber" },
403 static const per_choice_t h460_2_NumberPortabilityTypeOfNumber_choice
[] = {
404 { 0, &hf_h460_2_publicTypeOfNumber
, ASN1_EXTENSION_ROOT
, dissect_h225_PublicTypeOfNumber
},
405 { 1, &hf_h460_2_privateTypeOfNumber
, ASN1_EXTENSION_ROOT
, dissect_h225_PrivateTypeOfNumber
},
406 { 2, &hf_h460_2_portabilityTypeOfNumber
, ASN1_EXTENSION_ROOT
, dissect_h460_2_PortabilityTypeOfNumber
},
411 dissect_h460_2_NumberPortabilityTypeOfNumber(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
412 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
413 ett_h460_2_NumberPortabilityTypeOfNumber
, h460_2_NumberPortabilityTypeOfNumber_choice
,
420 static const per_sequence_t h460_2_PortabilityAddress_sequence
[] = {
421 { &hf_h460_2_aliasAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
422 { &hf_h460_2_typeOfAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_2_NumberPortabilityTypeOfNumber
},
427 dissect_h460_2_PortabilityAddress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
428 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
429 ett_h460_2_PortabilityAddress
, h460_2_PortabilityAddress_sequence
);
437 dissect_h460_2_INTEGER_0_255(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
438 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
439 0U, 255U, NULL
, false);
447 dissect_h460_2_INTEGER_1_255(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
448 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
449 1U, 255U, NULL
, false);
457 dissect_h460_2_OCTET_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
458 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
459 NO_BOUND
, NO_BOUND
, false, NULL
);
465 static const per_sequence_t h460_2_RegionalParameters_sequence
[] = {
466 { &hf_h460_2_t35CountryCode
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_2_INTEGER_0_255
},
467 { &hf_h460_2_t35Extension
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_2_INTEGER_0_255
},
468 { &hf_h460_2_variantIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_2_INTEGER_1_255
},
469 { &hf_h460_2_regionalData
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_2_OCTET_STRING
},
474 dissect_h460_2_RegionalParameters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
475 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
476 ett_h460_2_RegionalParameters
, h460_2_RegionalParameters_sequence
);
482 static const per_sequence_t h460_2_T_nUMBERPORTABILITYDATA_sequence
[] = {
483 { &hf_h460_2_addressTranslated
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_2_NULL
},
484 { &hf_h460_2_portedAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_2_PortabilityAddress
},
485 { &hf_h460_2_routingAddress
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_2_PortabilityAddress
},
486 { &hf_h460_2_regionalParams
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_2_RegionalParameters
},
491 dissect_h460_2_T_nUMBERPORTABILITYDATA(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
492 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
493 ett_h460_2_T_nUMBERPORTABILITYDATA
, h460_2_T_nUMBERPORTABILITYDATA_sequence
);
499 static const value_string h460_2_NumberPortabilityInfo_vals
[] = {
500 { 0, "numberPortabilityRejectReason" },
501 { 1, "nUMBERPORTABILITYDATA" },
505 static const per_choice_t h460_2_NumberPortabilityInfo_choice
[] = {
506 { 0, &hf_h460_2_numberPortabilityRejectReason
, ASN1_EXTENSION_ROOT
, dissect_h460_2_NumberPortabilityRejectReason
},
507 { 1, &hf_h460_2_nUMBERPORTABILITYDATA
, ASN1_EXTENSION_ROOT
, dissect_h460_2_T_nUMBERPORTABILITYDATA
},
512 dissect_h460_2_NumberPortabilityInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
513 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
514 ett_h460_2_NumberPortabilityInfo
, h460_2_NumberPortabilityInfo_choice
,
522 static int dissect_h460_2_NumberPortabilityInfo_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
525 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
526 offset
= dissect_h460_2_NumberPortabilityInfo(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_2_h460_2_NumberPortabilityInfo_PDU
);
527 offset
+= 7; offset
>>= 3;
532 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
537 dissect_h460_3_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
538 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
544 static const value_string h460_3_CircuitStatusType_vals
[] = {
545 { 0, "serviceStatus" },
550 static const per_choice_t h460_3_CircuitStatusType_choice
[] = {
551 { 0, &hf_h460_3_serviceStatus
, ASN1_EXTENSION_ROOT
, dissect_h460_3_NULL
},
552 { 1, &hf_h460_3_busyStatus
, ASN1_EXTENSION_ROOT
, dissect_h460_3_NULL
},
557 dissect_h460_3_CircuitStatusType(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
558 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
559 ett_h460_3_CircuitStatusType
, h460_3_CircuitStatusType_choice
,
568 dissect_h460_3_INTEGER_0_4095(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
569 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
570 0U, 4095U, NULL
, false);
578 dissect_h460_3_OCTET_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
579 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
580 NO_BOUND
, NO_BOUND
, false, NULL
);
586 static const per_sequence_t h460_3_CircuitStatusMap_sequence
[] = {
587 { &hf_h460_3_statusType
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_3_CircuitStatusType
},
588 { &hf_h460_3_baseCircuitID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_CircuitIdentifier
},
589 { &hf_h460_3_range
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_3_INTEGER_0_4095
},
590 { &hf_h460_3_status
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_3_OCTET_STRING
},
595 dissect_h460_3_CircuitStatusMap(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
596 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
597 ett_h460_3_CircuitStatusMap
, h460_3_CircuitStatusMap_sequence
);
603 static const per_sequence_t h460_3_SEQUENCE_OF_CircuitStatusMap_sequence_of
[1] = {
604 { &hf_h460_3_circuitStatusMap_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h460_3_CircuitStatusMap
},
608 dissect_h460_3_SEQUENCE_OF_CircuitStatusMap(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
609 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
610 ett_h460_3_SEQUENCE_OF_CircuitStatusMap
, h460_3_SEQUENCE_OF_CircuitStatusMap_sequence_of
);
616 static const per_sequence_t h460_3_CircuitStatus_sequence
[] = {
617 { &hf_h460_3_circuitStatusMap
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_3_SEQUENCE_OF_CircuitStatusMap
},
622 dissect_h460_3_CircuitStatus(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
623 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
624 ett_h460_3_CircuitStatus
, h460_3_CircuitStatus_sequence
);
631 static int dissect_h460_3_CircuitStatus_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
634 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
635 offset
= dissect_h460_3_CircuitStatus(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_3_h460_3_CircuitStatus_PDU
);
636 offset
+= 7; offset
>>= 3;
641 /* --- Module CALL-PRIORITY --- --- --- */
646 dissect_h460_4_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
647 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
653 static const value_string h460_4_T_priorityValue_vals
[] = {
654 { 0, "emergencyAuthorized" },
655 { 1, "emergencyPublic" },
661 static const per_choice_t h460_4_T_priorityValue_choice
[] = {
662 { 0, &hf_h460_4_emergencyAuthorized
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
663 { 1, &hf_h460_4_emergencyPublic
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
664 { 2, &hf_h460_4_high
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
665 { 3, &hf_h460_4_normal
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
670 dissect_h460_4_T_priorityValue(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
671 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
672 ett_h460_4_T_priorityValue
, h460_4_T_priorityValue_choice
,
681 dissect_h460_4_INTEGER_0_255(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
682 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
683 0U, 255U, NULL
, false);
689 static const per_sequence_t h460_4_SEQUENCE_OF_ClearToken_sequence_of
[1] = {
690 { &hf_h460_4_tokens_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h235_ClearToken
},
694 dissect_h460_4_SEQUENCE_OF_ClearToken(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
695 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
696 ett_h460_4_SEQUENCE_OF_ClearToken
, h460_4_SEQUENCE_OF_ClearToken_sequence_of
);
702 static const per_sequence_t h460_4_SEQUENCE_OF_CryptoToken_sequence_of
[1] = {
703 { &hf_h460_4_cryptoTokens_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h235_CryptoToken
},
707 dissect_h460_4_SEQUENCE_OF_CryptoToken(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
708 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
709 ett_h460_4_SEQUENCE_OF_CryptoToken
, h460_4_SEQUENCE_OF_CryptoToken_sequence_of
);
715 static const value_string h460_4_T_rejectReason_vals
[] = {
716 { 0, "priorityUnavailable" },
717 { 1, "priorityUnauthorized" },
718 { 2, "priorityValueUnknown" },
722 static const per_choice_t h460_4_T_rejectReason_choice
[] = {
723 { 0, &hf_h460_4_priorityUnavailable
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
724 { 1, &hf_h460_4_priorityUnauthorized
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
725 { 2, &hf_h460_4_priorityValueUnknown
, ASN1_EXTENSION_ROOT
, dissect_h460_4_NULL
},
730 dissect_h460_4_T_rejectReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
731 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
732 ett_h460_4_T_rejectReason
, h460_4_T_rejectReason_choice
,
739 static const per_sequence_t h460_4_CallPriorityInfo_sequence
[] = {
740 { &hf_h460_4_priorityValue
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_4_T_priorityValue
},
741 { &hf_h460_4_priorityExtension
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_4_INTEGER_0_255
},
742 { &hf_h460_4_tokens
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_4_SEQUENCE_OF_ClearToken
},
743 { &hf_h460_4_cryptoTokens
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_4_SEQUENCE_OF_CryptoToken
},
744 { &hf_h460_4_rejectReason
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_4_T_rejectReason
},
749 dissect_h460_4_CallPriorityInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
750 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
751 ett_h460_4_CallPriorityInfo
, h460_4_CallPriorityInfo_sequence
);
759 dissect_h460_4_X121CountryCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
760 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,
761 3, 3, false, "0123456789", 10,
768 static const per_sequence_t h460_4_T_x121_sequence
[] = {
769 { &hf_h460_4_x121CountryCode
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_4_X121CountryCode
},
774 dissect_h460_4_T_x121(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
775 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
776 ett_h460_4_T_x121
, h460_4_T_x121_sequence
);
784 dissect_h460_4_E164CountryCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
785 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,
786 3, 3, false, "0123456789", 10,
795 dissect_h460_4_T_identificationCode(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
796 offset
= dissect_per_restricted_character_string(tvb
, offset
, actx
, tree
, hf_index
,
797 1, 4, false, "0123456789", 10,
804 static const per_sequence_t h460_4_T_e164_sequence
[] = {
805 { &hf_h460_4_e164CountryCode
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_4_E164CountryCode
},
806 { &hf_h460_4_identificationCode
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_4_T_identificationCode
},
811 dissect_h460_4_T_e164(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
812 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
813 ett_h460_4_T_e164
, h460_4_T_e164_sequence
);
819 static const value_string h460_4_T_numberingPlan_vals
[] = {
825 static const per_choice_t h460_4_T_numberingPlan_choice
[] = {
826 { 0, &hf_h460_4_x121
, ASN1_EXTENSION_ROOT
, dissect_h460_4_T_x121
},
827 { 1, &hf_h460_4_e164
, ASN1_EXTENSION_ROOT
, dissect_h460_4_T_e164
},
832 dissect_h460_4_T_numberingPlan(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
833 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
834 ett_h460_4_T_numberingPlan
, h460_4_T_numberingPlan_choice
,
841 static const per_sequence_t h460_4_CountryInternationalNetworkCallOriginationIdentification_sequence
[] = {
842 { &hf_h460_4_numberingPlan
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_4_T_numberingPlan
},
847 dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
848 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
849 ett_h460_4_CountryInternationalNetworkCallOriginationIdentification
, h460_4_CountryInternationalNetworkCallOriginationIdentification_sequence
);
856 static int dissect_h460_4_CallPriorityInfo_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
859 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
860 offset
= dissect_h460_4_CallPriorityInfo(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_4_h460_4_CallPriorityInfo_PDU
);
861 offset
+= 7; offset
>>= 3;
864 static int dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
867 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
868 offset
= dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU
);
869 offset
+= 7; offset
>>= 3;
874 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
879 dissect_h460_9_EstimatedEnd2EndDelay(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
880 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
881 0U, 4294967295U, NULL
, false);
889 dissect_h460_9_CalculatedJitter(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
890 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
891 0U, 4294967295U, NULL
, false);
899 dissect_h460_9_OCTET_STRING(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
900 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
901 NO_BOUND
, NO_BOUND
, false, NULL
);
907 static const per_sequence_t h460_9_Extension_sequence
[] = {
908 { &hf_h460_9_extensionId
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_GenericIdentifier
},
909 { &hf_h460_9_extensionContent
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_OCTET_STRING
},
914 dissect_h460_9_Extension(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
915 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
916 ett_h460_9_Extension
, h460_9_Extension_sequence
);
924 dissect_h460_9_INTEGER_1_255(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
925 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
926 1U, 255U, NULL
, false);
932 static const per_sequence_t h460_9_T_mediaSenderMeasures_sequence
[] = {
933 { &hf_h460_9_worstEstimatedEnd2EndDelay
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_EstimatedEnd2EndDelay
},
934 { &hf_h460_9_meanEstimatedEnd2EndDelay
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_EstimatedEnd2EndDelay
},
939 dissect_h460_9_T_mediaSenderMeasures(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
940 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
941 ett_h460_9_T_mediaSenderMeasures
, h460_9_T_mediaSenderMeasures_sequence
);
949 dissect_h460_9_INTEGER_0_4294967295(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
950 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
951 0U, 4294967295U, NULL
, false);
959 dissect_h460_9_INTEGER_0_65535(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
960 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
961 0U, 65535U, NULL
, false);
967 static const per_sequence_t h460_9_T_mediaReceiverMeasures_sequence
[] = {
968 { &hf_h460_9_cumulativeNumberOfPacketsLost
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_4294967295
},
969 { &hf_h460_9_packetLostRate
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
970 { &hf_h460_9_worstJitter
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_CalculatedJitter
},
971 { &hf_h460_9_estimatedThroughput
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_BandWidth
},
972 { &hf_h460_9_fractionLostRate
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
973 { &hf_h460_9_meanJitter
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_CalculatedJitter
},
978 dissect_h460_9_T_mediaReceiverMeasures(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
979 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
980 ett_h460_9_T_mediaReceiverMeasures
, h460_9_T_mediaReceiverMeasures_sequence
);
986 static const per_sequence_t h460_9_SEQUENCE_OF_Extension_sequence_of
[1] = {
987 { &hf_h460_9_extensions_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h460_9_Extension
},
991 dissect_h460_9_SEQUENCE_OF_Extension(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
992 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
993 ett_h460_9_SEQUENCE_OF_Extension
, h460_9_SEQUENCE_OF_Extension_sequence_of
);
999 static const per_sequence_t h460_9_RTCPMeasures_sequence
[] = {
1000 { &hf_h460_9_rtpAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_TransportChannelInfo
},
1001 { &hf_h460_9_rtcpAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_TransportChannelInfo
},
1002 { &hf_h460_9_sessionId
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_9_INTEGER_1_255
},
1003 { &hf_h460_9_nonStandardData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_NonStandardParameter
},
1004 { &hf_h460_9_mediaSenderMeasures
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_T_mediaSenderMeasures
},
1005 { &hf_h460_9_mediaReceiverMeasures
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_T_mediaReceiverMeasures
},
1006 { &hf_h460_9_extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_Extension
},
1007 { NULL
, 0, 0, NULL
}
1011 dissect_h460_9_RTCPMeasures(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1012 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1013 ett_h460_9_RTCPMeasures
, h460_9_RTCPMeasures_sequence
);
1019 static const per_sequence_t h460_9_SEQUENCE_OF_RTCPMeasures_sequence_of
[1] = {
1020 { &hf_h460_9_mediaChannelsQoS_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h460_9_RTCPMeasures
},
1024 dissect_h460_9_SEQUENCE_OF_RTCPMeasures(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1025 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1026 ett_h460_9_SEQUENCE_OF_RTCPMeasures
, h460_9_SEQUENCE_OF_RTCPMeasures_sequence_of
);
1032 static const per_sequence_t h460_9_PerCallQoSReport_sequence
[] = {
1033 { &hf_h460_9_nonStandardData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_NonStandardParameter
},
1034 { &hf_h460_9_callReferenceValue
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_CallReferenceValue
},
1035 { &hf_h460_9_conferenceID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_ConferenceIdentifier
},
1036 { &hf_h460_9_callIdentifier
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_CallIdentifier
},
1037 { &hf_h460_9_mediaChannelsQoS
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_RTCPMeasures
},
1038 { &hf_h460_9_extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_Extension
},
1039 { NULL
, 0, 0, NULL
}
1043 dissect_h460_9_PerCallQoSReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1044 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1045 ett_h460_9_PerCallQoSReport
, h460_9_PerCallQoSReport_sequence
);
1051 static const per_sequence_t h460_9_SEQUENCE_OF_PerCallQoSReport_sequence_of
[1] = {
1052 { &hf_h460_9_perCallInfo_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h460_9_PerCallQoSReport
},
1056 dissect_h460_9_SEQUENCE_OF_PerCallQoSReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1057 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1058 ett_h460_9_SEQUENCE_OF_PerCallQoSReport
, h460_9_SEQUENCE_OF_PerCallQoSReport_sequence_of
);
1064 static const per_sequence_t h460_9_PeriodicQoSMonReport_sequence
[] = {
1065 { &hf_h460_9_perCallInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_PerCallQoSReport
},
1066 { &hf_h460_9_extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_Extension
},
1067 { NULL
, 0, 0, NULL
}
1071 dissect_h460_9_PeriodicQoSMonReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1072 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1073 ett_h460_9_PeriodicQoSMonReport
, h460_9_PeriodicQoSMonReport_sequence
);
1079 static const per_sequence_t h460_9_FinalQosMonReport_sequence
[] = {
1080 { &hf_h460_9_mediaInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_RTCPMeasures
},
1081 { &hf_h460_9_nonStandardData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_NonStandardParameter
},
1082 { &hf_h460_9_extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_Extension
},
1083 { NULL
, 0, 0, NULL
}
1087 dissect_h460_9_FinalQosMonReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1088 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1089 ett_h460_9_FinalQosMonReport
, h460_9_FinalQosMonReport_sequence
);
1095 static const per_sequence_t h460_9_InterGKQosMonReport_sequence
[] = {
1096 { &hf_h460_9_mediaInfo
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_RTCPMeasures
},
1097 { &hf_h460_9_nonStandardData
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_NonStandardParameter
},
1098 { &hf_h460_9_extensions
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_SEQUENCE_OF_Extension
},
1099 { NULL
, 0, 0, NULL
}
1103 dissect_h460_9_InterGKQosMonReport(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1104 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1105 ett_h460_9_InterGKQosMonReport
, h460_9_InterGKQosMonReport_sequence
);
1111 static const value_string h460_9_QosMonitoringReportData_vals
[] = {
1118 static const per_choice_t h460_9_QosMonitoringReportData_choice
[] = {
1119 { 0, &hf_h460_9_periodic
, ASN1_EXTENSION_ROOT
, dissect_h460_9_PeriodicQoSMonReport
},
1120 { 1, &hf_h460_9_final
, ASN1_EXTENSION_ROOT
, dissect_h460_9_FinalQosMonReport
},
1121 { 2, &hf_h460_9_interGK
, ASN1_EXTENSION_ROOT
, dissect_h460_9_InterGKQosMonReport
},
1122 { 0, NULL
, 0, NULL
}
1126 dissect_h460_9_QosMonitoringReportData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1127 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1128 ett_h460_9_QosMonitoringReportData
, h460_9_QosMonitoringReportData_choice
,
1137 dissect_h460_9_INTEGER_0_255(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1138 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1139 0U, 255U, NULL
, false);
1145 static const per_sequence_t h460_9_BurstMetrics_sequence
[] = {
1146 { &hf_h460_9_gmin
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_255
},
1147 { &hf_h460_9_burstLossDensity
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_255
},
1148 { &hf_h460_9_gapLossDensity
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_255
},
1149 { &hf_h460_9_burstDuration
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1150 { &hf_h460_9_gapDuration
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1151 { NULL
, 0, 0, NULL
}
1155 dissect_h460_9_BurstMetrics(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1156 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1157 ett_h460_9_BurstMetrics
, h460_9_BurstMetrics_sequence
);
1165 dissect_h460_9_INTEGER_M127_10(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1166 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1167 -127, 10U, NULL
, false);
1175 dissect_h460_9_INTEGER_M127_0(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1176 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1177 -127, 0U, NULL
, false);
1185 dissect_h460_9_INTEGER_0_127(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1186 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1187 0U, 127U, NULL
, false);
1195 dissect_h460_9_INTEGER_0_100(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1196 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1197 0U, 100U, NULL
, false);
1205 dissect_h460_9_INTEGER_10_50(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1206 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1207 10U, 50U, NULL
, false);
1215 dissect_h460_9_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1216 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
1222 static const value_string h460_9_PLCtypes_vals
[] = {
1223 { 0, "unspecified" },
1230 static const per_choice_t h460_9_PLCtypes_choice
[] = {
1231 { 0, &hf_h460_9_unspecified
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1232 { 1, &hf_h460_9_disabled
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1233 { 2, &hf_h460_9_enhanced
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1234 { 3, &hf_h460_9_standard
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1235 { 0, NULL
, 0, NULL
}
1239 dissect_h460_9_PLCtypes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1240 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1241 ett_h460_9_PLCtypes
, h460_9_PLCtypes_choice
,
1248 static const value_string h460_9_JitterBufferTypes_vals
[] = {
1251 { 2, "nonadaptive" },
1256 static const per_choice_t h460_9_JitterBufferTypes_choice
[] = {
1257 { 0, &hf_h460_9_unknown
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1258 { 1, &hf_h460_9_reserved
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1259 { 2, &hf_h460_9_nonadaptive
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1260 { 3, &hf_h460_9_adaptive
, ASN1_EXTENSION_ROOT
, dissect_h460_9_NULL
},
1261 { 0, NULL
, 0, NULL
}
1265 dissect_h460_9_JitterBufferTypes(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1266 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1267 ett_h460_9_JitterBufferTypes
, h460_9_JitterBufferTypes_choice
,
1276 dissect_h460_9_INTEGER_0_15(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1277 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1278 0U, 15U, NULL
, false);
1284 static const per_sequence_t h460_9_JitterBufferParms_sequence
[] = {
1285 { &hf_h460_9_jitterBufferType
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_JitterBufferTypes
},
1286 { &hf_h460_9_jitterBufferAdaptRate
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_15
},
1287 { &hf_h460_9_jitterBufferNominalSize
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1288 { &hf_h460_9_jitterBufferMaxSize
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1289 { &hf_h460_9_jitterBufferAbsoluteMax
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1290 { NULL
, 0, 0, NULL
}
1294 dissect_h460_9_JitterBufferParms(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1295 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1296 ett_h460_9_JitterBufferParms
, h460_9_JitterBufferParms_sequence
);
1302 static const per_sequence_t h460_9_ExtendedRTPMetrics_sequence
[] = {
1303 { &hf_h460_9_networkPacketLossRate
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_255
},
1304 { &hf_h460_9_jitterBufferDiscardRate
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_255
},
1305 { &hf_h460_9_burstMetrics
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_BurstMetrics
},
1306 { &hf_h460_9_rtcpRoundTripDelay
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1307 { &hf_h460_9_endSystemDelay
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_65535
},
1308 { &hf_h460_9_signalLevel
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_M127_10
},
1309 { &hf_h460_9_noiseLevel
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_M127_0
},
1310 { &hf_h460_9_residualEchoReturnLoss
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_127
},
1311 { &hf_h460_9_rFactor
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_100
},
1312 { &hf_h460_9_extRFactor
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_0_100
},
1313 { &hf_h460_9_estimatedMOSLQ
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_10_50
},
1314 { &hf_h460_9_estimatedMOSCQ
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_INTEGER_10_50
},
1315 { &hf_h460_9_plcType
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_PLCtypes
},
1316 { &hf_h460_9_jitterBufferParms
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_9_JitterBufferParms
},
1317 { NULL
, 0, 0, NULL
}
1321 dissect_h460_9_ExtendedRTPMetrics(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1322 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1323 ett_h460_9_ExtendedRTPMetrics
, h460_9_ExtendedRTPMetrics_sequence
);
1330 static int dissect_h460_9_QosMonitoringReportData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1332 asn1_ctx_t asn1_ctx
;
1333 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1334 offset
= dissect_h460_9_QosMonitoringReportData(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_9_h460_9_QosMonitoringReportData_PDU
);
1335 offset
+= 7; offset
>>= 3;
1338 static int dissect_h460_9_ExtendedRTPMetrics_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1340 asn1_ctx_t asn1_ctx
;
1341 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1342 offset
= dissect_h460_9_ExtendedRTPMetrics(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_9_h460_9_ExtendedRTPMetrics_PDU
);
1343 offset
+= 7; offset
>>= 3;
1348 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
1353 dissect_h460_10_CallPartyCategory(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1354 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1355 0U, 255U, NULL
, false);
1363 dissect_h460_10_OriginatingLineInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1364 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1365 0U, 255U, NULL
, false);
1371 static const per_sequence_t h460_10_CallPartyCategoryInfo_sequence
[] = {
1372 { &hf_h460_10_callPartyCategory
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_10_CallPartyCategory
},
1373 { &hf_h460_10_originatingLineInfo
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_10_OriginatingLineInfo
},
1374 { NULL
, 0, 0, NULL
}
1378 dissect_h460_10_CallPartyCategoryInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1379 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1380 ett_h460_10_CallPartyCategoryInfo
, h460_10_CallPartyCategoryInfo_sequence
);
1387 static int dissect_h460_10_CallPartyCategoryInfo_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1389 asn1_ctx_t asn1_ctx
;
1390 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1391 offset
= dissect_h460_10_CallPartyCategoryInfo(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_10_h460_10_CallPartyCategoryInfo_PDU
);
1392 offset
+= 7; offset
>>= 3;
1397 /* --- Module MLPP --- --- --- */
1400 static const value_string h460_14_MlppPrecedence_vals
[] = {
1401 { 0, "flashOveride" },
1411 dissect_h460_14_MlppPrecedence(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1412 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1413 5, NULL
, true, 0, NULL
);
1419 static const value_string h460_14_MlppReason_vals
[] = {
1420 { 8, "preemptionNoReservation" },
1421 { 9, "preemptionReservation" },
1422 { 46, "callBlocked" },
1426 static uint32_t h460_14_MlppReason_value_map
[3+0] = {8, 9, 46};
1429 dissect_h460_14_MlppReason(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1430 offset
= dissect_per_enumerated(tvb
, offset
, actx
, tree
, hf_index
,
1431 3, NULL
, true, 0, h460_14_MlppReason_value_map
);
1439 dissect_h460_14_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1440 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
1446 static const value_string h460_14_MlppNotification_vals
[] = {
1447 { 0, "preemptionPending" },
1448 { 1, "preemptionInProgress" },
1449 { 2, "preemptionEnd" },
1450 { 3, "preemptionComplete" },
1454 static const per_choice_t h460_14_MlppNotification_choice
[] = {
1455 { 0, &hf_h460_14_preemptionPending
, ASN1_EXTENSION_ROOT
, dissect_h460_14_NULL
},
1456 { 1, &hf_h460_14_preemptionInProgress
, ASN1_EXTENSION_ROOT
, dissect_h460_14_NULL
},
1457 { 2, &hf_h460_14_preemptionEnd
, ASN1_EXTENSION_ROOT
, dissect_h460_14_NULL
},
1458 { 3, &hf_h460_14_preemptionComplete
, ASN1_EXTENSION_ROOT
, dissect_h460_14_NULL
},
1459 { 0, NULL
, 0, NULL
}
1463 dissect_h460_14_MlppNotification(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1464 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1465 ett_h460_14_MlppNotification
, h460_14_MlppNotification_choice
,
1474 dissect_h460_14_INTEGER_0_255(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1475 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1476 0U, 255U, NULL
, false);
1482 static const per_sequence_t h460_14_AlternateParty_sequence
[] = {
1483 { &hf_h460_14_altID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_AliasAddress
},
1484 { &hf_h460_14_altTimer
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_INTEGER_0_255
},
1485 { NULL
, 0, 0, NULL
}
1489 dissect_h460_14_AlternateParty(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1490 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1491 ett_h460_14_AlternateParty
, h460_14_AlternateParty_sequence
);
1497 static const per_sequence_t h460_14_ReleaseCall_sequence
[] = {
1498 { &hf_h460_14_preemptCallID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_CallIdentifier
},
1499 { &hf_h460_14_releaseReason
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_14_MlppReason
},
1500 { &hf_h460_14_releaseDelay
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_INTEGER_0_255
},
1501 { NULL
, 0, 0, NULL
}
1505 dissect_h460_14_ReleaseCall(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1506 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1507 ett_h460_14_ReleaseCall
, h460_14_ReleaseCall_sequence
);
1513 static const per_sequence_t h460_14_MLPPInfo_sequence
[] = {
1514 { &hf_h460_14_precedence
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_MlppPrecedence
},
1515 { &hf_h460_14_mlppReason
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_MlppReason
},
1516 { &hf_h460_14_mlppNotification
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_MlppNotification
},
1517 { &hf_h460_14_alternateParty
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_AlternateParty
},
1518 { &hf_h460_14_releaseCall
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_14_ReleaseCall
},
1519 { NULL
, 0, 0, NULL
}
1523 dissect_h460_14_MLPPInfo(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1524 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1525 ett_h460_14_MLPPInfo
, h460_14_MLPPInfo_sequence
);
1532 static int dissect_h460_14_MLPPInfo_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1534 asn1_ctx_t asn1_ctx
;
1535 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1536 offset
= dissect_h460_14_MLPPInfo(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_14_h460_14_MLPPInfo_PDU
);
1537 offset
+= 7; offset
>>= 3;
1542 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
1545 static const per_sequence_t h460_15_SEQUENCE_OF_TransportAddress_sequence_of
[1] = {
1546 { &hf_h460_15_channelResumeAddress_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h225_TransportAddress
},
1550 dissect_h460_15_SEQUENCE_OF_TransportAddress(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1551 offset
= dissect_per_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1552 ett_h460_15_SEQUENCE_OF_TransportAddress
, h460_15_SEQUENCE_OF_TransportAddress_sequence_of
);
1560 dissect_h460_15_BOOLEAN(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1561 offset
= dissect_per_boolean(tvb
, offset
, actx
, tree
, hf_index
, NULL
);
1569 dissect_h460_15_NULL(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1570 offset
= dissect_per_null(tvb
, offset
, actx
, tree
, hf_index
);
1576 static const per_sequence_t h460_15_ChannelSuspendRequest_sequence
[] = {
1577 { &hf_h460_15_channelResumeAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_15_SEQUENCE_OF_TransportAddress
},
1578 { &hf_h460_15_immediateResume
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_15_BOOLEAN
},
1579 { &hf_h460_15_resetH245
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_15_NULL
},
1580 { NULL
, 0, 0, NULL
}
1584 dissect_h460_15_ChannelSuspendRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1585 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1586 ett_h460_15_ChannelSuspendRequest
, h460_15_ChannelSuspendRequest_sequence
);
1592 static const per_sequence_t h460_15_ChannelSuspendResponse_sequence
[] = {
1593 { &hf_h460_15_okToSuspend
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_15_BOOLEAN
},
1594 { &hf_h460_15_channelResumeAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_15_SEQUENCE_OF_TransportAddress
},
1595 { NULL
, 0, 0, NULL
}
1599 dissect_h460_15_ChannelSuspendResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1600 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1601 ett_h460_15_ChannelSuspendResponse
, h460_15_ChannelSuspendResponse_sequence
);
1607 static const per_sequence_t h460_15_ChannelSuspendConfirm_sequence
[] = {
1608 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1612 dissect_h460_15_ChannelSuspendConfirm(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1613 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1614 ett_h460_15_ChannelSuspendConfirm
, h460_15_ChannelSuspendConfirm_sequence
);
1620 static const per_sequence_t h460_15_ChannelSuspendCancel_sequence
[] = {
1621 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1625 dissect_h460_15_ChannelSuspendCancel(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1626 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1627 ett_h460_15_ChannelSuspendCancel
, h460_15_ChannelSuspendCancel_sequence
);
1635 dissect_h460_15_INTEGER_0_4294967295(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1636 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1637 0U, 4294967295U, NULL
, false);
1643 static const per_sequence_t h460_15_ChannelResumeRequest_sequence
[] = {
1644 { &hf_h460_15_randomNumber
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_15_INTEGER_0_4294967295
},
1645 { &hf_h460_15_resetH245
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_15_NULL
},
1646 { NULL
, 0, 0, NULL
}
1650 dissect_h460_15_ChannelResumeRequest(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1651 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1652 ett_h460_15_ChannelResumeRequest
, h460_15_ChannelResumeRequest_sequence
);
1658 static const per_sequence_t h460_15_ChannelResumeResponse_sequence
[] = {
1659 { NULL
, ASN1_EXTENSION_ROOT
, 0, NULL
}
1663 dissect_h460_15_ChannelResumeResponse(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1664 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1665 ett_h460_15_ChannelResumeResponse
, h460_15_ChannelResumeResponse_sequence
);
1671 static const value_string h460_15_T_signallingChannelData_vals
[] = {
1672 { 0, "channelSuspendRequest" },
1673 { 1, "channelSuspendResponse" },
1674 { 2, "channelSuspendConfirm" },
1675 { 3, "channelSuspendCancel" },
1676 { 4, "channelResumeRequest" },
1677 { 5, "channelResumeResponse" },
1681 static const per_choice_t h460_15_T_signallingChannelData_choice
[] = {
1682 { 0, &hf_h460_15_channelSuspendRequest
, ASN1_EXTENSION_ROOT
, dissect_h460_15_ChannelSuspendRequest
},
1683 { 1, &hf_h460_15_channelSuspendResponse
, ASN1_EXTENSION_ROOT
, dissect_h460_15_ChannelSuspendResponse
},
1684 { 2, &hf_h460_15_channelSuspendConfirm
, ASN1_EXTENSION_ROOT
, dissect_h460_15_ChannelSuspendConfirm
},
1685 { 3, &hf_h460_15_channelSuspendCancel
, ASN1_EXTENSION_ROOT
, dissect_h460_15_ChannelSuspendCancel
},
1686 { 4, &hf_h460_15_channelResumeRequest
, ASN1_EXTENSION_ROOT
, dissect_h460_15_ChannelResumeRequest
},
1687 { 5, &hf_h460_15_channelResumeResponse
, ASN1_EXTENSION_ROOT
, dissect_h460_15_ChannelResumeResponse
},
1688 { 0, NULL
, 0, NULL
}
1692 dissect_h460_15_T_signallingChannelData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1693 offset
= dissect_per_choice(tvb
, offset
, actx
, tree
, hf_index
,
1694 ett_h460_15_T_signallingChannelData
, h460_15_T_signallingChannelData_choice
,
1701 static const per_sequence_t h460_15_SignallingChannelData_sequence
[] = {
1702 { &hf_h460_15_signallingChannelData
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_15_T_signallingChannelData
},
1703 { NULL
, 0, 0, NULL
}
1707 dissect_h460_15_SignallingChannelData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1708 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1709 ett_h460_15_SignallingChannelData
, h460_15_SignallingChannelData_sequence
);
1716 static int dissect_h460_15_SignallingChannelData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1718 asn1_ctx_t asn1_ctx
;
1719 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1720 offset
= dissect_h460_15_SignallingChannelData(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_15_h460_15_SignallingChannelData_PDU
);
1721 offset
+= 7; offset
>>= 3;
1726 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
1729 static const per_sequence_t h460_18_IncomingCallIndication_sequence
[] = {
1730 { &hf_h460_18_callSignallingAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_TransportAddress
},
1731 { &hf_h460_18_callID
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_CallIdentifier
},
1732 { NULL
, 0, 0, NULL
}
1736 dissect_h460_18_IncomingCallIndication(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1737 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1738 ett_h460_18_IncomingCallIndication
, h460_18_IncomingCallIndication_sequence
);
1744 static const per_sequence_t h460_18_LRQKeepAliveData_sequence
[] = {
1745 { &hf_h460_18_lrqKeepAliveInterval
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h225_TimeToLive
},
1746 { NULL
, 0, 0, NULL
}
1750 dissect_h460_18_LRQKeepAliveData(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1751 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1752 ett_h460_18_LRQKeepAliveData
, h460_18_LRQKeepAliveData_sequence
);
1759 static int dissect_h460_18_IncomingCallIndication_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1761 asn1_ctx_t asn1_ctx
;
1762 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1763 offset
= dissect_h460_18_IncomingCallIndication(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_18_h460_18_IncomingCallIndication_PDU
);
1764 offset
+= 7; offset
>>= 3;
1767 static int dissect_h460_18_LRQKeepAliveData_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1769 asn1_ctx_t asn1_ctx
;
1770 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1771 offset
= dissect_h460_18_LRQKeepAliveData(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_18_h460_18_LRQKeepAliveData_PDU
);
1772 offset
+= 7; offset
>>= 3;
1777 /* --- Module MEDIA-TRAVERSAL --- --- --- */
1782 dissect_h460_19_INTEGER_0_4294967295(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1783 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1784 0U, 4294967295U, NULL
, false);
1792 dissect_h460_19_INTEGER_0_127(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1793 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1794 0U, 127U, NULL
, false);
1800 static const per_sequence_t h460_19_TraversalParameters_sequence
[] = {
1801 { &hf_h460_19_multiplexedMediaChannel
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h245_TransportAddress
},
1802 { &hf_h460_19_multiplexedMediaControlChannel
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h245_TransportAddress
},
1803 { &hf_h460_19_multiplexID
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_19_INTEGER_0_4294967295
},
1804 { &hf_h460_19_keepAliveChannel
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h245_TransportAddress
},
1805 { &hf_h460_19_keepAlivePayloadType
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_19_INTEGER_0_127
},
1806 { &hf_h460_19_keepAliveInterval
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h225_TimeToLive
},
1807 { NULL
, 0, 0, NULL
}
1811 dissect_h460_19_TraversalParameters(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1812 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1813 ett_h460_19_TraversalParameters
, h460_19_TraversalParameters_sequence
);
1820 static int dissect_h460_19_TraversalParameters_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1822 asn1_ctx_t asn1_ctx
;
1823 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1824 offset
= dissect_h460_19_TraversalParameters(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_19_h460_19_TraversalParameters_PDU
);
1825 offset
+= 7; offset
>>= 3;
1830 /* --- Module MESSAGE-BROADCAST --- --- --- */
1833 static const per_sequence_t h460_21_SEQUENCE_SIZE_1_256_OF_Capability_sequence_of
[1] = {
1834 { &hf_h460_21_capabilities_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h245_Capability
},
1838 dissect_h460_21_SEQUENCE_SIZE_1_256_OF_Capability(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1839 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1840 ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability
, h460_21_SEQUENCE_SIZE_1_256_OF_Capability_sequence_of
,
1849 dissect_h460_21_INTEGER_1_65535(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1850 offset
= dissect_per_constrained_integer(tvb
, offset
, actx
, tree
, hf_index
,
1851 1U, 65535U, NULL
, false);
1857 static const per_sequence_t h460_21_ReceiveCapabilities_sequence
[] = {
1858 { &hf_h460_21_capabilities
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_21_SEQUENCE_SIZE_1_256_OF_Capability
},
1859 { &hf_h460_21_maxGroups
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_21_INTEGER_1_65535
},
1860 { NULL
, 0, 0, NULL
}
1864 dissect_h460_21_ReceiveCapabilities(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1865 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1866 ett_h460_21_ReceiveCapabilities
, h460_21_ReceiveCapabilities_sequence
);
1874 dissect_h460_21_GloballyUniqueID(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1875 offset
= dissect_per_octet_string(tvb
, offset
, actx
, tree
, hf_index
,
1876 16, 16, false, NULL
);
1882 static const per_sequence_t h460_21_TransmitCapabilities_sequence
[] = {
1883 { &hf_h460_21_groupIdentifer
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h460_21_GloballyUniqueID
},
1884 { &hf_h460_21_capability
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h245_Capability
},
1885 { &hf_h460_21_sourceAddress
, ASN1_EXTENSION_ROOT
, ASN1_NOT_OPTIONAL
, dissect_h245_UnicastAddress
},
1886 { NULL
, 0, 0, NULL
}
1890 dissect_h460_21_TransmitCapabilities(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1891 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1892 ett_h460_21_TransmitCapabilities
, h460_21_TransmitCapabilities_sequence
);
1898 static const per_sequence_t h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities_sequence_of
[1] = {
1899 { &hf_h460_21_transmitCapabilities_item
, ASN1_NO_EXTENSIONS
, ASN1_NOT_OPTIONAL
, dissect_h460_21_TransmitCapabilities
},
1903 dissect_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1904 offset
= dissect_per_constrained_sequence_of(tvb
, offset
, actx
, tree
, hf_index
,
1905 ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities
, h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities_sequence_of
,
1912 static const per_sequence_t h460_21_CapabilityAdvertisement_sequence
[] = {
1913 { &hf_h460_21_receiveCapabilities
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_21_ReceiveCapabilities
},
1914 { &hf_h460_21_transmitCapabilities
, ASN1_EXTENSION_ROOT
, ASN1_OPTIONAL
, dissect_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities
},
1915 { NULL
, 0, 0, NULL
}
1919 dissect_h460_21_CapabilityAdvertisement(tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1920 offset
= dissect_per_sequence(tvb
, offset
, actx
, tree
, hf_index
,
1921 ett_h460_21_CapabilityAdvertisement
, h460_21_CapabilityAdvertisement_sequence
);
1928 static int dissect_h460_21_CapabilityAdvertisement_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1930 asn1_ctx_t asn1_ctx
;
1931 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_PER
, true, pinfo
);
1932 offset
= dissect_h460_21_CapabilityAdvertisement(tvb
, offset
, &asn1_ctx
, tree
, hf_h460_21_h460_21_CapabilityAdvertisement_PDU
);
1933 offset
+= 7; offset
>>= 3;
1939 dissect_ies(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1942 if (q931_ie_handle
) {
1943 call_dissector(q931_ie_handle
, tvb
, pinfo
, tree
);
1944 offset
+= tvb_reported_length_remaining(tvb
, offset
);
1950 dissect_ras(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1953 if (h225_ras_handle
) {
1954 call_dissector(h225_ras_handle
, tvb
, pinfo
, tree
);
1955 offset
+= tvb_reported_length_remaining(tvb
, offset
);
1960 typedef struct _h460_feature_t
{
1964 dissector_t content_pdu
;
1970 dissector_handle_t content_hnd
;
1973 /* Fill in the items after content_pdu */
1974 #define FFILL NULL, NULL, NULL, NULL, NULL
1977 #define GD 0x01 /* present in H.225 GenericData */
1978 #define FD 0x02 /* present in H.225 FeatureDescriptor */
1979 #define GM 0x04 /* present in H.245 GenericMessage */
1980 #define GI 0x08 /* present in H.245 GenericInformation */
1982 static h460_feature_t h460_feature_tab
[] = {
1984 { GD
|FD
, "2", "Number Portability", NULL
, FFILL
},
1985 { GD
|FD
, "2/1", "NumberPortabilityData", dissect_h460_2_NumberPortabilityInfo_PDU
, FFILL
},
1987 { GD
|FD
, "3", "Circuit Status", NULL
, FFILL
},
1988 { GD
|FD
, "3/1", "Circuit Status Map", dissect_h460_3_CircuitStatus_PDU
, FFILL
},
1990 { GD
|FD
, "4", "CallPriorityDesignation", NULL
, FFILL
},
1991 { GD
|FD
, "4/1", "CallPriorityRequest", dissect_h460_4_CallPriorityInfo_PDU
, FFILL
},
1992 { GD
|FD
, "4/2", "CallPriorityConfirm", dissect_h460_4_CallPriorityInfo_PDU
, FFILL
},
1993 { GD
|FD
, "4/3", "Country/InternationalNetworkCallOriginationRequest", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU
, FFILL
},
1994 { GD
|FD
, "4/4", "Country/InternationalNetworkCallOriginationConfirm", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU
, FFILL
},
1996 { GD
|FD
, "5", "DuplicateIEs", NULL
, FFILL
},
1997 { GD
|FD
, "5/1", "IEsString", dissect_ies
, FFILL
},
1999 { GD
|FD
, "6", "Extended Fast Connect", NULL
, FFILL
},
2000 { GD
|FD
, "6/1", "EFC Proposal", NULL
, FFILL
},
2001 { GD
|FD
, "6/2", "EFC Close All Media Channels", NULL
, FFILL
},
2002 { GD
|FD
, "6/3", "EFC Request New Proposals", NULL
, FFILL
},
2003 { GD
|FD
, "6/4", "EFC Require Symmetric Operation", NULL
, FFILL
},
2005 { GD
|FD
, "7", "Digit Maps", NULL
, FFILL
},
2006 { FD
, "7/1", "Digit Maps Length", NULL
, FFILL
},
2007 { FD
, "7/2", "Digit Map Length for Overlapped Sending", NULL
, FFILL
},
2008 { FD
, "7/3", "HTTP Digit Maps Download Capability", NULL
, FFILL
},
2009 { GD
, "7/1", "Start Timer", NULL
, FFILL
},
2010 { GD
, "7/2", "Short Timer", NULL
, FFILL
},
2011 { GD
, "7/3", "Long Timer", NULL
, FFILL
},
2012 { GD
, "7/4", "Digit Map String", NULL
, FFILL
},
2013 { GD
, "7/5", "ToN Associated Digit Map", NULL
, FFILL
},
2014 { GD
, "7/5/1", "Type of Number", NULL
, FFILL
},
2015 { GD
, "7/5/2", "Digit Map Strings for ToN", NULL
, FFILL
},
2016 { GD
, "7/6", "Digit Map URL", NULL
, FFILL
},
2018 { GD
|FD
, "8", "Querying for Alternate Routes", NULL
, FFILL
},
2019 { GD
|FD
, "8/1", "Query Count", NULL
, FFILL
},
2020 { GD
|FD
, "8/2", "Call Termination Cause", NULL
, FFILL
},
2022 { GD
|FD
, "9", "QoS-monitoring Reporting", NULL
, FFILL
},
2023 { GD
|FD
, "9/0", "qosMonitoringFinalOnly", NULL
, FFILL
},
2024 { GD
|FD
, "9/1", "qosMonitoringReportData", dissect_h460_9_QosMonitoringReportData_PDU
, FFILL
},
2025 { GD
|FD
, "9/2", "qosMonitoringExtendedRTPMetrics", dissect_h460_9_ExtendedRTPMetrics_PDU
, FFILL
},
2027 { GD
|FD
, "10", "Call Party Category", NULL
, FFILL
},
2028 { GD
|FD
, "10/1", "Call party category info", dissect_h460_10_CallPartyCategoryInfo_PDU
, FFILL
},
2030 { GD
|FD
, "11", "Delayed Call Establishment", NULL
, FFILL
},
2031 { GD
|FD
, "11/1", "Delay Point Indicator", NULL
, FFILL
},
2032 { GD
|FD
, "11/2", "Implicit DCE Release", NULL
, FFILL
},
2033 { GD
|FD
, "11/3", "Delay Point Reached", NULL
, FFILL
},
2034 { GD
|FD
, "11/4", "DCE Release", NULL
, FFILL
},
2036 { GD
|FD
, "12", "Glare Control Indicator", NULL
, FFILL
},
2037 { GD
|FD
, "12/1", "Glare Control Indicator Parameter", NULL
, FFILL
},
2039 { GD
|FD
, "13", "Called User Release Control", NULL
, FFILL
},
2040 { GD
|FD
, "13/1", "Called User Release Control", NULL
, FFILL
},
2042 { GD
|FD
, "14", "Multi-Level Precedence and Preemption", NULL
, FFILL
},
2043 { GD
|FD
, "14/1", "MLPP Information", dissect_h460_14_MLPPInfo_PDU
, FFILL
},
2045 { GD
|FD
, "15", "Call signalling transport channel suspension and redirection", NULL
, FFILL
},
2046 { GD
|FD
, "15/1", "Signalling channel suspend and redirect", dissect_h460_15_SignallingChannelData_PDU
, FFILL
},
2048 { GD
|FD
, "16", "Multiple-message Release Sequence", NULL
, FFILL
},
2049 { GD
|FD
, "16/1", "MMRS use required", NULL
, FFILL
},
2050 { GD
|FD
, "16/2", "MMRS procedure", NULL
, FFILL
},
2051 { GD
|FD
, "16/3", "MMRS additional IEs", dissect_ies
, FFILL
},
2053 { GD
|FD
, "17", "RAS over H.225.0", NULL
, FFILL
},
2054 { GD
|FD
, "17/1", "RAS message", dissect_ras
, FFILL
},
2056 { GD
|FD
, "18", "Signalling Traversal", NULL
, FFILL
},
2057 { GD
|FD
, "18/1", "IncomingCallIndication", dissect_h460_18_IncomingCallIndication_PDU
, FFILL
},
2058 { GD
|FD
, "18/2", "LRQKeepAliveData", dissect_h460_18_LRQKeepAliveData_PDU
, FFILL
},
2059 { GM
, "0.0.8.460.18.0.1", "Signalling Traversal", NULL
, FFILL
},
2060 { GM
, "0.0.8.460.18.0.1-1", "connectionCorrelation", NULL
, FFILL
},
2061 { GM
, "0.0.8.460.18.0.1-1/1", "callIdentifier", NULL
, FFILL
},
2062 { GM
, "0.0.8.460.18.0.1-1/2", "answerCall", NULL
, FFILL
},
2064 { GD
|FD
, "19", "mediaNATFWTraversal", NULL
, FFILL
},
2065 { GD
|FD
, "19/1", "supportTransmitMultiplexedMedia", NULL
, FFILL
},
2066 { GD
|FD
, "19/2", "mediaTraversalServer", NULL
, FFILL
},
2067 { GI
, "0.0.8.460.19.0.1", "mediaNATFWTraversal", NULL
, FFILL
},
2068 { GI
, "0.0.8.460.19.0.1/1", "Traversal Parameters", dissect_h460_19_TraversalParameters_PDU
, FFILL
},
2070 { GD
|FD
, "20", "LocationSourceAddress", NULL
, FFILL
},
2071 { GD
|FD
, "20/1", "LocationSourceAddress", dissect_h225_ExtendedAliasAddress_PDU
, FFILL
},
2073 { GD
|FD
, "21", "Message Broadcast", NULL
, FFILL
},
2074 { GD
|FD
, "21/1", "MessageBroadcastParameter", dissect_h460_21_CapabilityAdvertisement_PDU
, FFILL
},
2076 { GD
|FD
, "22", "securityProtocolNegotiation", NULL
, FFILL
},
2077 { GD
|FD
, "22/1", "tlsSecurityProtocol", NULL
, FFILL
},
2078 { GD
|FD
, "22/1/1", "priority", NULL
, FFILL
},
2079 { GD
|FD
, "22/1/2", "connectionAddress", NULL
, FFILL
},
2080 { GD
|FD
, "22/2", "ipsecSecurityProtocol", NULL
, FFILL
},
2081 { GD
|FD
, "22/2/1", "priority", NULL
, FFILL
},
2082 { 0, NULL
, NULL
, NULL
, FFILL
},
2085 static h460_feature_t
*find_ftr(const char *key
) {
2086 h460_feature_t
*ftr
= NULL
;
2089 for (f
=h460_feature_tab
; f
->id
; f
++) {
2090 if (f
->key_gd
&& !strcmp(key
, f
->key_gd
)) { ftr
= f
; break; }
2091 if (f
->key_fd
&& !strcmp(key
, f
->key_fd
)) { ftr
= f
; break; }
2092 if (f
->key_gm
&& !strcmp(key
, f
->key_gm
)) { ftr
= f
; break; }
2093 if (f
->key_gi
&& !strcmp(key
, f
->key_gi
)) { ftr
= f
; break; }
2098 /*--- dissect_h460_name -------------------------------------------*/
2100 dissect_h460_name(tvbuff_t
*tvb _U_
, packet_info
*pinfo
, proto_tree
*tree
, void *data
) {
2103 h460_feature_t
*ftr
;
2105 /* Reject the packet if data is NULL */
2108 actx
= get_asn1_ctx(data
);
2109 DISSECTOR_ASSERT(actx
);
2112 ftr
= find_ftr(pinfo
->match_string
);
2114 proto_item_append_text(actx
->created_item
, " - %s", ftr
->name
);
2115 proto_item_append_text(proto_item_get_parent(proto_tree_get_parent(tree
)), ": %s", ftr
->name
);
2117 proto_item_append_text(actx
->created_item
, " - unknown(%s)", pinfo
->match_string
);
2124 /*--- proto_register_h460 ----------------------------------------------*/
2125 void proto_register_h460(void) {
2126 h460_feature_t
*ftr
;
2128 /* List of fields */
2129 static hf_register_info hf
[] = {
2131 /* --- Module NUMBER-PORTABILITY --- --- --- */
2133 { &hf_h460_2_h460_2_NumberPortabilityInfo_PDU
,
2134 { "NumberPortabilityInfo", "h460.2.NumberPortabilityInfo",
2135 FT_UINT32
, BASE_DEC
, VALS(h460_2_NumberPortabilityInfo_vals
), 0,
2137 { &hf_h460_2_numberPortabilityRejectReason
,
2138 { "numberPortabilityRejectReason", "h460.2.numberPortabilityRejectReason",
2139 FT_UINT32
, BASE_DEC
, VALS(h460_2_NumberPortabilityRejectReason_vals
), 0,
2141 { &hf_h460_2_nUMBERPORTABILITYDATA
,
2142 { "nUMBERPORTABILITYDATA", "h460.2.nUMBERPORTABILITYDATA_element",
2143 FT_NONE
, BASE_NONE
, NULL
, 0,
2145 { &hf_h460_2_addressTranslated
,
2146 { "addressTranslated", "h460.2.addressTranslated_element",
2147 FT_NONE
, BASE_NONE
, NULL
, 0,
2149 { &hf_h460_2_portedAddress
,
2150 { "portedAddress", "h460.2.portedAddress_element",
2151 FT_NONE
, BASE_NONE
, NULL
, 0,
2152 "PortabilityAddress", HFILL
}},
2153 { &hf_h460_2_routingAddress
,
2154 { "routingAddress", "h460.2.routingAddress_element",
2155 FT_NONE
, BASE_NONE
, NULL
, 0,
2156 "PortabilityAddress", HFILL
}},
2157 { &hf_h460_2_regionalParams
,
2158 { "regionalParams", "h460.2.regionalParams_element",
2159 FT_NONE
, BASE_NONE
, NULL
, 0,
2160 "RegionalParameters", HFILL
}},
2161 { &hf_h460_2_unspecified
,
2162 { "unspecified", "h460.2.unspecified_element",
2163 FT_NONE
, BASE_NONE
, NULL
, 0,
2165 { &hf_h460_2_qorPortedNumber
,
2166 { "qorPortedNumber", "h460.2.qorPortedNumber_element",
2167 FT_NONE
, BASE_NONE
, NULL
, 0,
2169 { &hf_h460_2_aliasAddress
,
2170 { "aliasAddress", "h460.2.aliasAddress",
2171 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
2173 { &hf_h460_2_typeOfAddress
,
2174 { "typeOfAddress", "h460.2.typeOfAddress",
2175 FT_UINT32
, BASE_DEC
, VALS(h460_2_NumberPortabilityTypeOfNumber_vals
), 0,
2176 "NumberPortabilityTypeOfNumber", HFILL
}},
2177 { &hf_h460_2_publicTypeOfNumber
,
2178 { "publicTypeOfNumber", "h460.2.publicTypeOfNumber",
2179 FT_UINT32
, BASE_DEC
, VALS(h225_PublicTypeOfNumber_vals
), 0,
2181 { &hf_h460_2_privateTypeOfNumber
,
2182 { "privateTypeOfNumber", "h460.2.privateTypeOfNumber",
2183 FT_UINT32
, BASE_DEC
, VALS(h225_PrivateTypeOfNumber_vals
), 0,
2185 { &hf_h460_2_portabilityTypeOfNumber
,
2186 { "portabilityTypeOfNumber", "h460.2.portabilityTypeOfNumber",
2187 FT_UINT32
, BASE_DEC
, VALS(h460_2_PortabilityTypeOfNumber_vals
), 0,
2189 { &hf_h460_2_portedNumber
,
2190 { "portedNumber", "h460.2.portedNumber_element",
2191 FT_NONE
, BASE_NONE
, NULL
, 0,
2193 { &hf_h460_2_routingNumber
,
2194 { "routingNumber", "h460.2.routingNumber_element",
2195 FT_NONE
, BASE_NONE
, NULL
, 0,
2197 { &hf_h460_2_concatenatedNumber
,
2198 { "concatenatedNumber", "h460.2.concatenatedNumber_element",
2199 FT_NONE
, BASE_NONE
, NULL
, 0,
2201 { &hf_h460_2_t35CountryCode
,
2202 { "t35CountryCode", "h460.2.t35CountryCode",
2203 FT_UINT32
, BASE_DEC
, NULL
, 0,
2204 "INTEGER_0_255", HFILL
}},
2205 { &hf_h460_2_t35Extension
,
2206 { "t35Extension", "h460.2.t35Extension",
2207 FT_UINT32
, BASE_DEC
, NULL
, 0,
2208 "INTEGER_0_255", HFILL
}},
2209 { &hf_h460_2_variantIdentifier
,
2210 { "variantIdentifier", "h460.2.variantIdentifier",
2211 FT_UINT32
, BASE_DEC
, NULL
, 0,
2212 "INTEGER_1_255", HFILL
}},
2213 { &hf_h460_2_regionalData
,
2214 { "regionalData", "h460.2.regionalData",
2215 FT_BYTES
, BASE_NONE
, NULL
, 0,
2216 "OCTET_STRING", HFILL
}},
2218 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
2220 { &hf_h460_3_h460_3_CircuitStatus_PDU
,
2221 { "CircuitStatus", "h460.3.CircuitStatus_element",
2222 FT_NONE
, BASE_NONE
, NULL
, 0,
2224 { &hf_h460_3_circuitStatusMap
,
2225 { "circuitStatusMap", "h460.3.circuitStatusMap",
2226 FT_UINT32
, BASE_DEC
, NULL
, 0,
2227 "SEQUENCE_OF_CircuitStatusMap", HFILL
}},
2228 { &hf_h460_3_circuitStatusMap_item
,
2229 { "CircuitStatusMap", "h460.3.CircuitStatusMap_element",
2230 FT_NONE
, BASE_NONE
, NULL
, 0,
2232 { &hf_h460_3_statusType
,
2233 { "statusType", "h460.3.statusType",
2234 FT_UINT32
, BASE_DEC
, VALS(h460_3_CircuitStatusType_vals
), 0,
2235 "CircuitStatusType", HFILL
}},
2236 { &hf_h460_3_baseCircuitID
,
2237 { "baseCircuitID", "h460.3.baseCircuitID_element",
2238 FT_NONE
, BASE_NONE
, NULL
, 0,
2239 "CircuitIdentifier", HFILL
}},
2241 { "range", "h460.3.range",
2242 FT_UINT32
, BASE_DEC
, NULL
, 0,
2243 "INTEGER_0_4095", HFILL
}},
2244 { &hf_h460_3_status
,
2245 { "status", "h460.3.status",
2246 FT_BYTES
, BASE_NONE
, NULL
, 0,
2247 "OCTET_STRING", HFILL
}},
2248 { &hf_h460_3_serviceStatus
,
2249 { "serviceStatus", "h460.3.serviceStatus_element",
2250 FT_NONE
, BASE_NONE
, NULL
, 0,
2252 { &hf_h460_3_busyStatus
,
2253 { "busyStatus", "h460.3.busyStatus_element",
2254 FT_NONE
, BASE_NONE
, NULL
, 0,
2257 /* --- Module CALL-PRIORITY --- --- --- */
2259 { &hf_h460_4_h460_4_CallPriorityInfo_PDU
,
2260 { "CallPriorityInfo", "h460.4.CallPriorityInfo_element",
2261 FT_NONE
, BASE_NONE
, NULL
, 0,
2263 { &hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU
,
2264 { "CountryInternationalNetworkCallOriginationIdentification", "h460.4.CountryInternationalNetworkCallOriginationIdentification_element",
2265 FT_NONE
, BASE_NONE
, NULL
, 0,
2267 { &hf_h460_4_priorityValue
,
2268 { "priorityValue", "h460.4.priorityValue",
2269 FT_UINT32
, BASE_DEC
, VALS(h460_4_T_priorityValue_vals
), 0,
2271 { &hf_h460_4_emergencyAuthorized
,
2272 { "emergencyAuthorized", "h460.4.emergencyAuthorized_element",
2273 FT_NONE
, BASE_NONE
, NULL
, 0,
2275 { &hf_h460_4_emergencyPublic
,
2276 { "emergencyPublic", "h460.4.emergencyPublic_element",
2277 FT_NONE
, BASE_NONE
, NULL
, 0,
2280 { "high", "h460.4.high_element",
2281 FT_NONE
, BASE_NONE
, NULL
, 0,
2283 { &hf_h460_4_normal
,
2284 { "normal", "h460.4.normal_element",
2285 FT_NONE
, BASE_NONE
, NULL
, 0,
2287 { &hf_h460_4_priorityExtension
,
2288 { "priorityExtension", "h460.4.priorityExtension",
2289 FT_UINT32
, BASE_DEC
, NULL
, 0,
2290 "INTEGER_0_255", HFILL
}},
2291 { &hf_h460_4_tokens
,
2292 { "tokens", "h460.4.tokens",
2293 FT_UINT32
, BASE_DEC
, NULL
, 0,
2294 "SEQUENCE_OF_ClearToken", HFILL
}},
2295 { &hf_h460_4_tokens_item
,
2296 { "ClearToken", "h460.4.ClearToken_element",
2297 FT_NONE
, BASE_NONE
, NULL
, 0,
2299 { &hf_h460_4_cryptoTokens
,
2300 { "cryptoTokens", "h460.4.cryptoTokens",
2301 FT_UINT32
, BASE_DEC
, NULL
, 0,
2302 "SEQUENCE_OF_CryptoToken", HFILL
}},
2303 { &hf_h460_4_cryptoTokens_item
,
2304 { "CryptoToken", "h460.4.CryptoToken",
2305 FT_UINT32
, BASE_DEC
, VALS(h235_CryptoToken_vals
), 0,
2307 { &hf_h460_4_rejectReason
,
2308 { "rejectReason", "h460.4.rejectReason",
2309 FT_UINT32
, BASE_DEC
, VALS(h460_4_T_rejectReason_vals
), 0,
2311 { &hf_h460_4_priorityUnavailable
,
2312 { "priorityUnavailable", "h460.4.priorityUnavailable_element",
2313 FT_NONE
, BASE_NONE
, NULL
, 0,
2315 { &hf_h460_4_priorityUnauthorized
,
2316 { "priorityUnauthorized", "h460.4.priorityUnauthorized_element",
2317 FT_NONE
, BASE_NONE
, NULL
, 0,
2319 { &hf_h460_4_priorityValueUnknown
,
2320 { "priorityValueUnknown", "h460.4.priorityValueUnknown_element",
2321 FT_NONE
, BASE_NONE
, NULL
, 0,
2323 { &hf_h460_4_numberingPlan
,
2324 { "numberingPlan", "h460.4.numberingPlan",
2325 FT_UINT32
, BASE_DEC
, VALS(h460_4_T_numberingPlan_vals
), 0,
2328 { "x121", "h460.4.x121_element",
2329 FT_NONE
, BASE_NONE
, NULL
, 0,
2331 { &hf_h460_4_x121CountryCode
,
2332 { "countryCode", "h460.4.countryCode",
2333 FT_STRING
, BASE_NONE
, NULL
, 0,
2334 "X121CountryCode", HFILL
}},
2336 { "e164", "h460.4.e164_element",
2337 FT_NONE
, BASE_NONE
, NULL
, 0,
2339 { &hf_h460_4_e164CountryCode
,
2340 { "countryCode", "h460.4.countryCode",
2341 FT_STRING
, BASE_NONE
, NULL
, 0,
2342 "E164CountryCode", HFILL
}},
2343 { &hf_h460_4_identificationCode
,
2344 { "identificationCode", "h460.4.identificationCode",
2345 FT_STRING
, BASE_NONE
, NULL
, 0,
2348 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
2350 { &hf_h460_9_h460_9_QosMonitoringReportData_PDU
,
2351 { "QosMonitoringReportData", "h460.9.QosMonitoringReportData",
2352 FT_UINT32
, BASE_DEC
, VALS(h460_9_QosMonitoringReportData_vals
), 0,
2354 { &hf_h460_9_h460_9_ExtendedRTPMetrics_PDU
,
2355 { "ExtendedRTPMetrics", "h460.9.ExtendedRTPMetrics_element",
2356 FT_NONE
, BASE_NONE
, NULL
, 0,
2358 { &hf_h460_9_extensionId
,
2359 { "extensionId", "h460.9.extensionId",
2360 FT_UINT32
, BASE_DEC
, VALS(h225_GenericIdentifier_vals
), 0,
2361 "GenericIdentifier", HFILL
}},
2362 { &hf_h460_9_extensionContent
,
2363 { "extensionContent", "h460.9.extensionContent",
2364 FT_BYTES
, BASE_NONE
, NULL
, 0,
2365 "OCTET_STRING", HFILL
}},
2366 { &hf_h460_9_rtpAddress
,
2367 { "rtpAddress", "h460.9.rtpAddress_element",
2368 FT_NONE
, BASE_NONE
, NULL
, 0,
2369 "TransportChannelInfo", HFILL
}},
2370 { &hf_h460_9_rtcpAddress
,
2371 { "rtcpAddress", "h460.9.rtcpAddress_element",
2372 FT_NONE
, BASE_NONE
, NULL
, 0,
2373 "TransportChannelInfo", HFILL
}},
2374 { &hf_h460_9_sessionId
,
2375 { "sessionId", "h460.9.sessionId",
2376 FT_UINT32
, BASE_DEC
, NULL
, 0,
2377 "INTEGER_1_255", HFILL
}},
2378 { &hf_h460_9_nonStandardData
,
2379 { "nonStandardData", "h460.9.nonStandardData_element",
2380 FT_NONE
, BASE_NONE
, NULL
, 0,
2381 "NonStandardParameter", HFILL
}},
2382 { &hf_h460_9_mediaSenderMeasures
,
2383 { "mediaSenderMeasures", "h460.9.mediaSenderMeasures_element",
2384 FT_NONE
, BASE_NONE
, NULL
, 0,
2386 { &hf_h460_9_worstEstimatedEnd2EndDelay
,
2387 { "worstEstimatedEnd2EndDelay", "h460.9.worstEstimatedEnd2EndDelay",
2388 FT_UINT32
, BASE_DEC
, NULL
, 0,
2389 "EstimatedEnd2EndDelay", HFILL
}},
2390 { &hf_h460_9_meanEstimatedEnd2EndDelay
,
2391 { "meanEstimatedEnd2EndDelay", "h460.9.meanEstimatedEnd2EndDelay",
2392 FT_UINT32
, BASE_DEC
, NULL
, 0,
2393 "EstimatedEnd2EndDelay", HFILL
}},
2394 { &hf_h460_9_mediaReceiverMeasures
,
2395 { "mediaReceiverMeasures", "h460.9.mediaReceiverMeasures_element",
2396 FT_NONE
, BASE_NONE
, NULL
, 0,
2398 { &hf_h460_9_cumulativeNumberOfPacketsLost
,
2399 { "cumulativeNumberOfPacketsLost", "h460.9.cumulativeNumberOfPacketsLost",
2400 FT_UINT32
, BASE_DEC
, NULL
, 0,
2401 "INTEGER_0_4294967295", HFILL
}},
2402 { &hf_h460_9_packetLostRate
,
2403 { "packetLostRate", "h460.9.packetLostRate",
2404 FT_UINT32
, BASE_DEC
, NULL
, 0,
2405 "INTEGER_0_65535", HFILL
}},
2406 { &hf_h460_9_worstJitter
,
2407 { "worstJitter", "h460.9.worstJitter",
2408 FT_UINT32
, BASE_DEC
, NULL
, 0,
2409 "CalculatedJitter", HFILL
}},
2410 { &hf_h460_9_estimatedThroughput
,
2411 { "estimatedThroughput", "h460.9.estimatedThroughput",
2412 FT_UINT32
, BASE_DEC
, NULL
, 0,
2413 "BandWidth", HFILL
}},
2414 { &hf_h460_9_fractionLostRate
,
2415 { "fractionLostRate", "h460.9.fractionLostRate",
2416 FT_UINT32
, BASE_DEC
, NULL
, 0,
2417 "INTEGER_0_65535", HFILL
}},
2418 { &hf_h460_9_meanJitter
,
2419 { "meanJitter", "h460.9.meanJitter",
2420 FT_UINT32
, BASE_DEC
, NULL
, 0,
2421 "CalculatedJitter", HFILL
}},
2422 { &hf_h460_9_extensions
,
2423 { "extensions", "h460.9.extensions",
2424 FT_UINT32
, BASE_DEC
, NULL
, 0,
2425 "SEQUENCE_OF_Extension", HFILL
}},
2426 { &hf_h460_9_extensions_item
,
2427 { "Extension", "h460.9.Extension_element",
2428 FT_NONE
, BASE_NONE
, NULL
, 0,
2430 { &hf_h460_9_callReferenceValue
,
2431 { "callReferenceValue", "h460.9.callReferenceValue",
2432 FT_UINT32
, BASE_DEC
, NULL
, 0,
2434 { &hf_h460_9_conferenceID
,
2435 { "conferenceID", "h460.9.conferenceID",
2436 FT_GUID
, BASE_NONE
, NULL
, 0,
2437 "ConferenceIdentifier", HFILL
}},
2438 { &hf_h460_9_callIdentifier
,
2439 { "callIdentifier", "h460.9.callIdentifier_element",
2440 FT_NONE
, BASE_NONE
, NULL
, 0,
2442 { &hf_h460_9_mediaChannelsQoS
,
2443 { "mediaChannelsQoS", "h460.9.mediaChannelsQoS",
2444 FT_UINT32
, BASE_DEC
, NULL
, 0,
2445 "SEQUENCE_OF_RTCPMeasures", HFILL
}},
2446 { &hf_h460_9_mediaChannelsQoS_item
,
2447 { "RTCPMeasures", "h460.9.RTCPMeasures_element",
2448 FT_NONE
, BASE_NONE
, NULL
, 0,
2450 { &hf_h460_9_periodic
,
2451 { "periodic", "h460.9.periodic_element",
2452 FT_NONE
, BASE_NONE
, NULL
, 0,
2453 "PeriodicQoSMonReport", HFILL
}},
2455 { "final", "h460.9.final_element",
2456 FT_NONE
, BASE_NONE
, NULL
, 0,
2457 "FinalQosMonReport", HFILL
}},
2458 { &hf_h460_9_interGK
,
2459 { "interGK", "h460.9.interGK_element",
2460 FT_NONE
, BASE_NONE
, NULL
, 0,
2461 "InterGKQosMonReport", HFILL
}},
2462 { &hf_h460_9_perCallInfo
,
2463 { "perCallInfo", "h460.9.perCallInfo",
2464 FT_UINT32
, BASE_DEC
, NULL
, 0,
2465 "SEQUENCE_OF_PerCallQoSReport", HFILL
}},
2466 { &hf_h460_9_perCallInfo_item
,
2467 { "PerCallQoSReport", "h460.9.PerCallQoSReport_element",
2468 FT_NONE
, BASE_NONE
, NULL
, 0,
2470 { &hf_h460_9_mediaInfo
,
2471 { "mediaInfo", "h460.9.mediaInfo",
2472 FT_UINT32
, BASE_DEC
, NULL
, 0,
2473 "SEQUENCE_OF_RTCPMeasures", HFILL
}},
2474 { &hf_h460_9_mediaInfo_item
,
2475 { "RTCPMeasures", "h460.9.RTCPMeasures_element",
2476 FT_NONE
, BASE_NONE
, NULL
, 0,
2478 { &hf_h460_9_networkPacketLossRate
,
2479 { "networkPacketLossRate", "h460.9.networkPacketLossRate",
2480 FT_UINT32
, BASE_DEC
, NULL
, 0,
2481 "INTEGER_0_255", HFILL
}},
2482 { &hf_h460_9_jitterBufferDiscardRate
,
2483 { "jitterBufferDiscardRate", "h460.9.jitterBufferDiscardRate",
2484 FT_UINT32
, BASE_DEC
, NULL
, 0,
2485 "INTEGER_0_255", HFILL
}},
2486 { &hf_h460_9_burstMetrics
,
2487 { "burstMetrics", "h460.9.burstMetrics_element",
2488 FT_NONE
, BASE_NONE
, NULL
, 0,
2490 { &hf_h460_9_rtcpRoundTripDelay
,
2491 { "rtcpRoundTripDelay", "h460.9.rtcpRoundTripDelay",
2492 FT_UINT32
, BASE_DEC
, NULL
, 0,
2493 "INTEGER_0_65535", HFILL
}},
2494 { &hf_h460_9_endSystemDelay
,
2495 { "endSystemDelay", "h460.9.endSystemDelay",
2496 FT_UINT32
, BASE_DEC
, NULL
, 0,
2497 "INTEGER_0_65535", HFILL
}},
2498 { &hf_h460_9_signalLevel
,
2499 { "signalLevel", "h460.9.signalLevel",
2500 FT_INT32
, BASE_DEC
, NULL
, 0,
2501 "INTEGER_M127_10", HFILL
}},
2502 { &hf_h460_9_noiseLevel
,
2503 { "noiseLevel", "h460.9.noiseLevel",
2504 FT_INT32
, BASE_DEC
, NULL
, 0,
2505 "INTEGER_M127_0", HFILL
}},
2506 { &hf_h460_9_residualEchoReturnLoss
,
2507 { "residualEchoReturnLoss", "h460.9.residualEchoReturnLoss",
2508 FT_UINT32
, BASE_DEC
, NULL
, 0,
2509 "INTEGER_0_127", HFILL
}},
2510 { &hf_h460_9_rFactor
,
2511 { "rFactor", "h460.9.rFactor",
2512 FT_UINT32
, BASE_DEC
, NULL
, 0,
2513 "INTEGER_0_100", HFILL
}},
2514 { &hf_h460_9_extRFactor
,
2515 { "extRFactor", "h460.9.extRFactor",
2516 FT_UINT32
, BASE_DEC
, NULL
, 0,
2517 "INTEGER_0_100", HFILL
}},
2518 { &hf_h460_9_estimatedMOSLQ
,
2519 { "estimatedMOSLQ", "h460.9.estimatedMOSLQ",
2520 FT_UINT32
, BASE_DEC
, NULL
, 0,
2521 "INTEGER_10_50", HFILL
}},
2522 { &hf_h460_9_estimatedMOSCQ
,
2523 { "estimatedMOSCQ", "h460.9.estimatedMOSCQ",
2524 FT_UINT32
, BASE_DEC
, NULL
, 0,
2525 "INTEGER_10_50", HFILL
}},
2526 { &hf_h460_9_plcType
,
2527 { "plcType", "h460.9.plcType",
2528 FT_UINT32
, BASE_DEC
, VALS(h460_9_PLCtypes_vals
), 0,
2529 "PLCtypes", HFILL
}},
2530 { &hf_h460_9_jitterBufferParms
,
2531 { "jitterBufferParms", "h460.9.jitterBufferParms_element",
2532 FT_NONE
, BASE_NONE
, NULL
, 0,
2535 { "gmin", "h460.9.gmin",
2536 FT_UINT32
, BASE_DEC
, NULL
, 0,
2537 "INTEGER_0_255", HFILL
}},
2538 { &hf_h460_9_burstLossDensity
,
2539 { "burstLossDensity", "h460.9.burstLossDensity",
2540 FT_UINT32
, BASE_DEC
, NULL
, 0,
2541 "INTEGER_0_255", HFILL
}},
2542 { &hf_h460_9_gapLossDensity
,
2543 { "gapLossDensity", "h460.9.gapLossDensity",
2544 FT_UINT32
, BASE_DEC
, NULL
, 0,
2545 "INTEGER_0_255", HFILL
}},
2546 { &hf_h460_9_burstDuration
,
2547 { "burstDuration", "h460.9.burstDuration",
2548 FT_UINT32
, BASE_DEC
, NULL
, 0,
2549 "INTEGER_0_65535", HFILL
}},
2550 { &hf_h460_9_gapDuration
,
2551 { "gapDuration", "h460.9.gapDuration",
2552 FT_UINT32
, BASE_DEC
, NULL
, 0,
2553 "INTEGER_0_65535", HFILL
}},
2554 { &hf_h460_9_unspecified
,
2555 { "unspecified", "h460.9.unspecified_element",
2556 FT_NONE
, BASE_NONE
, NULL
, 0,
2558 { &hf_h460_9_disabled
,
2559 { "disabled", "h460.9.disabled_element",
2560 FT_NONE
, BASE_NONE
, NULL
, 0,
2562 { &hf_h460_9_enhanced
,
2563 { "enhanced", "h460.9.enhanced_element",
2564 FT_NONE
, BASE_NONE
, NULL
, 0,
2566 { &hf_h460_9_standard
,
2567 { "standard", "h460.9.standard_element",
2568 FT_NONE
, BASE_NONE
, NULL
, 0,
2570 { &hf_h460_9_jitterBufferType
,
2571 { "jitterBufferType", "h460.9.jitterBufferType",
2572 FT_UINT32
, BASE_DEC
, VALS(h460_9_JitterBufferTypes_vals
), 0,
2573 "JitterBufferTypes", HFILL
}},
2574 { &hf_h460_9_jitterBufferAdaptRate
,
2575 { "jitterBufferAdaptRate", "h460.9.jitterBufferAdaptRate",
2576 FT_UINT32
, BASE_DEC
, NULL
, 0,
2577 "INTEGER_0_15", HFILL
}},
2578 { &hf_h460_9_jitterBufferNominalSize
,
2579 { "jitterBufferNominalSize", "h460.9.jitterBufferNominalSize",
2580 FT_UINT32
, BASE_DEC
, NULL
, 0,
2581 "INTEGER_0_65535", HFILL
}},
2582 { &hf_h460_9_jitterBufferMaxSize
,
2583 { "jitterBufferMaxSize", "h460.9.jitterBufferMaxSize",
2584 FT_UINT32
, BASE_DEC
, NULL
, 0,
2585 "INTEGER_0_65535", HFILL
}},
2586 { &hf_h460_9_jitterBufferAbsoluteMax
,
2587 { "jitterBufferAbsoluteMax", "h460.9.jitterBufferAbsoluteMax",
2588 FT_UINT32
, BASE_DEC
, NULL
, 0,
2589 "INTEGER_0_65535", HFILL
}},
2590 { &hf_h460_9_unknown
,
2591 { "unknown", "h460.9.unknown_element",
2592 FT_NONE
, BASE_NONE
, NULL
, 0,
2594 { &hf_h460_9_reserved
,
2595 { "reserved", "h460.9.reserved_element",
2596 FT_NONE
, BASE_NONE
, NULL
, 0,
2598 { &hf_h460_9_nonadaptive
,
2599 { "nonadaptive", "h460.9.nonadaptive_element",
2600 FT_NONE
, BASE_NONE
, NULL
, 0,
2602 { &hf_h460_9_adaptive
,
2603 { "adaptive", "h460.9.adaptive_element",
2604 FT_NONE
, BASE_NONE
, NULL
, 0,
2607 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
2609 { &hf_h460_10_h460_10_CallPartyCategoryInfo_PDU
,
2610 { "CallPartyCategoryInfo", "h460.10.CallPartyCategoryInfo_element",
2611 FT_NONE
, BASE_NONE
, NULL
, 0,
2613 { &hf_h460_10_callPartyCategory
,
2614 { "callPartyCategory", "h460.10.callPartyCategory",
2615 FT_UINT32
, BASE_DEC
, NULL
, 0,
2617 { &hf_h460_10_originatingLineInfo
,
2618 { "originatingLineInfo", "h460.10.originatingLineInfo",
2619 FT_UINT32
, BASE_DEC
, NULL
, 0,
2622 /* --- Module MLPP --- --- --- */
2624 { &hf_h460_14_h460_14_MLPPInfo_PDU
,
2625 { "MLPPInfo", "h460.14.MLPPInfo_element",
2626 FT_NONE
, BASE_NONE
, NULL
, 0,
2628 { &hf_h460_14_precedence
,
2629 { "precedence", "h460.14.precedence",
2630 FT_UINT32
, BASE_DEC
, VALS(h460_14_MlppPrecedence_vals
), 0,
2631 "MlppPrecedence", HFILL
}},
2632 { &hf_h460_14_mlppReason
,
2633 { "mlppReason", "h460.14.mlppReason",
2634 FT_UINT32
, BASE_DEC
, VALS(h460_14_MlppReason_vals
), 0,
2636 { &hf_h460_14_mlppNotification
,
2637 { "mlppNotification", "h460.14.mlppNotification",
2638 FT_UINT32
, BASE_DEC
, VALS(h460_14_MlppNotification_vals
), 0,
2640 { &hf_h460_14_alternateParty
,
2641 { "alternateParty", "h460.14.alternateParty_element",
2642 FT_NONE
, BASE_NONE
, NULL
, 0,
2644 { &hf_h460_14_releaseCall
,
2645 { "releaseCall", "h460.14.releaseCall_element",
2646 FT_NONE
, BASE_NONE
, NULL
, 0,
2648 { &hf_h460_14_preemptionPending
,
2649 { "preemptionPending", "h460.14.preemptionPending_element",
2650 FT_NONE
, BASE_NONE
, NULL
, 0,
2652 { &hf_h460_14_preemptionInProgress
,
2653 { "preemptionInProgress", "h460.14.preemptionInProgress_element",
2654 FT_NONE
, BASE_NONE
, NULL
, 0,
2656 { &hf_h460_14_preemptionEnd
,
2657 { "preemptionEnd", "h460.14.preemptionEnd_element",
2658 FT_NONE
, BASE_NONE
, NULL
, 0,
2660 { &hf_h460_14_preemptionComplete
,
2661 { "preemptionComplete", "h460.14.preemptionComplete_element",
2662 FT_NONE
, BASE_NONE
, NULL
, 0,
2664 { &hf_h460_14_altID
,
2665 { "altID", "h460.14.altID",
2666 FT_UINT32
, BASE_DEC
, VALS(AliasAddress_vals
), 0,
2667 "AliasAddress", HFILL
}},
2668 { &hf_h460_14_altTimer
,
2669 { "altTimer", "h460.14.altTimer",
2670 FT_UINT32
, BASE_DEC
, NULL
, 0,
2671 "INTEGER_0_255", HFILL
}},
2672 { &hf_h460_14_preemptCallID
,
2673 { "preemptCallID", "h460.14.preemptCallID_element",
2674 FT_NONE
, BASE_NONE
, NULL
, 0,
2675 "CallIdentifier", HFILL
}},
2676 { &hf_h460_14_releaseReason
,
2677 { "releaseReason", "h460.14.releaseReason",
2678 FT_UINT32
, BASE_DEC
, VALS(h460_14_MlppReason_vals
), 0,
2679 "MlppReason", HFILL
}},
2680 { &hf_h460_14_releaseDelay
,
2681 { "releaseDelay", "h460.14.releaseDelay",
2682 FT_UINT32
, BASE_DEC
, NULL
, 0,
2683 "INTEGER_0_255", HFILL
}},
2685 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
2687 { &hf_h460_15_h460_15_SignallingChannelData_PDU
,
2688 { "SignallingChannelData", "h460.15.SignallingChannelData_element",
2689 FT_NONE
, BASE_NONE
, NULL
, 0,
2691 { &hf_h460_15_signallingChannelData
,
2692 { "signallingChannelData", "h460.15.signallingChannelData",
2693 FT_UINT32
, BASE_DEC
, VALS(h460_15_T_signallingChannelData_vals
), 0,
2695 { &hf_h460_15_channelSuspendRequest
,
2696 { "channelSuspendRequest", "h460.15.channelSuspendRequest_element",
2697 FT_NONE
, BASE_NONE
, NULL
, 0,
2699 { &hf_h460_15_channelSuspendResponse
,
2700 { "channelSuspendResponse", "h460.15.channelSuspendResponse_element",
2701 FT_NONE
, BASE_NONE
, NULL
, 0,
2703 { &hf_h460_15_channelSuspendConfirm
,
2704 { "channelSuspendConfirm", "h460.15.channelSuspendConfirm_element",
2705 FT_NONE
, BASE_NONE
, NULL
, 0,
2707 { &hf_h460_15_channelSuspendCancel
,
2708 { "channelSuspendCancel", "h460.15.channelSuspendCancel_element",
2709 FT_NONE
, BASE_NONE
, NULL
, 0,
2711 { &hf_h460_15_channelResumeRequest
,
2712 { "channelResumeRequest", "h460.15.channelResumeRequest_element",
2713 FT_NONE
, BASE_NONE
, NULL
, 0,
2715 { &hf_h460_15_channelResumeResponse
,
2716 { "channelResumeResponse", "h460.15.channelResumeResponse_element",
2717 FT_NONE
, BASE_NONE
, NULL
, 0,
2719 { &hf_h460_15_channelResumeAddress
,
2720 { "channelResumeAddress", "h460.15.channelResumeAddress",
2721 FT_UINT32
, BASE_DEC
, NULL
, 0,
2722 "SEQUENCE_OF_TransportAddress", HFILL
}},
2723 { &hf_h460_15_channelResumeAddress_item
,
2724 { "TransportAddress", "h460.15.TransportAddress",
2725 FT_UINT32
, BASE_DEC
, VALS(h225_TransportAddress_vals
), 0,
2727 { &hf_h460_15_immediateResume
,
2728 { "immediateResume", "h460.15.immediateResume",
2729 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2730 "BOOLEAN", HFILL
}},
2731 { &hf_h460_15_resetH245
,
2732 { "resetH245", "h460.15.resetH245_element",
2733 FT_NONE
, BASE_NONE
, NULL
, 0,
2735 { &hf_h460_15_okToSuspend
,
2736 { "okToSuspend", "h460.15.okToSuspend",
2737 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
2738 "BOOLEAN", HFILL
}},
2739 { &hf_h460_15_randomNumber
,
2740 { "randomNumber", "h460.15.randomNumber",
2741 FT_UINT32
, BASE_DEC
, NULL
, 0,
2742 "INTEGER_0_4294967295", HFILL
}},
2744 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
2746 { &hf_h460_18_h460_18_IncomingCallIndication_PDU
,
2747 { "IncomingCallIndication", "h460.18.IncomingCallIndication_element",
2748 FT_NONE
, BASE_NONE
, NULL
, 0,
2750 { &hf_h460_18_h460_18_LRQKeepAliveData_PDU
,
2751 { "LRQKeepAliveData", "h460.18.LRQKeepAliveData_element",
2752 FT_NONE
, BASE_NONE
, NULL
, 0,
2754 { &hf_h460_18_callSignallingAddress
,
2755 { "callSignallingAddress", "h460.18.callSignallingAddress",
2756 FT_UINT32
, BASE_DEC
, VALS(h225_TransportAddress_vals
), 0,
2757 "TransportAddress", HFILL
}},
2758 { &hf_h460_18_callID
,
2759 { "callID", "h460.18.callID_element",
2760 FT_NONE
, BASE_NONE
, NULL
, 0,
2761 "CallIdentifier", HFILL
}},
2762 { &hf_h460_18_lrqKeepAliveInterval
,
2763 { "lrqKeepAliveInterval", "h460.18.lrqKeepAliveInterval",
2764 FT_UINT32
, BASE_DEC
, NULL
, 0,
2765 "TimeToLive", HFILL
}},
2767 /* --- Module MEDIA-TRAVERSAL --- --- --- */
2769 { &hf_h460_19_h460_19_TraversalParameters_PDU
,
2770 { "TraversalParameters", "h460.19.TraversalParameters_element",
2771 FT_NONE
, BASE_NONE
, NULL
, 0,
2773 { &hf_h460_19_multiplexedMediaChannel
,
2774 { "multiplexedMediaChannel", "h460.19.multiplexedMediaChannel",
2775 FT_UINT32
, BASE_DEC
, VALS(h245_TransportAddress_vals
), 0,
2776 "TransportAddress", HFILL
}},
2777 { &hf_h460_19_multiplexedMediaControlChannel
,
2778 { "multiplexedMediaControlChannel", "h460.19.multiplexedMediaControlChannel",
2779 FT_UINT32
, BASE_DEC
, VALS(h245_TransportAddress_vals
), 0,
2780 "TransportAddress", HFILL
}},
2781 { &hf_h460_19_multiplexID
,
2782 { "multiplexID", "h460.19.multiplexID",
2783 FT_UINT32
, BASE_DEC
, NULL
, 0,
2784 "INTEGER_0_4294967295", HFILL
}},
2785 { &hf_h460_19_keepAliveChannel
,
2786 { "keepAliveChannel", "h460.19.keepAliveChannel",
2787 FT_UINT32
, BASE_DEC
, VALS(h245_TransportAddress_vals
), 0,
2788 "TransportAddress", HFILL
}},
2789 { &hf_h460_19_keepAlivePayloadType
,
2790 { "keepAlivePayloadType", "h460.19.keepAlivePayloadType",
2791 FT_UINT32
, BASE_DEC
, NULL
, 0,
2792 "INTEGER_0_127", HFILL
}},
2793 { &hf_h460_19_keepAliveInterval
,
2794 { "keepAliveInterval", "h460.19.keepAliveInterval",
2795 FT_UINT32
, BASE_DEC
, NULL
, 0,
2796 "TimeToLive", HFILL
}},
2798 /* --- Module MESSAGE-BROADCAST --- --- --- */
2800 { &hf_h460_21_h460_21_CapabilityAdvertisement_PDU
,
2801 { "CapabilityAdvertisement", "h460.21.CapabilityAdvertisement_element",
2802 FT_NONE
, BASE_NONE
, NULL
, 0,
2804 { &hf_h460_21_receiveCapabilities
,
2805 { "receiveCapabilities", "h460.21.receiveCapabilities_element",
2806 FT_NONE
, BASE_NONE
, NULL
, 0,
2808 { &hf_h460_21_transmitCapabilities
,
2809 { "transmitCapabilities", "h460.21.transmitCapabilities",
2810 FT_UINT32
, BASE_DEC
, NULL
, 0,
2811 "SEQUENCE_SIZE_1_256_OF_TransmitCapabilities", HFILL
}},
2812 { &hf_h460_21_transmitCapabilities_item
,
2813 { "TransmitCapabilities", "h460.21.TransmitCapabilities_element",
2814 FT_NONE
, BASE_NONE
, NULL
, 0,
2816 { &hf_h460_21_capabilities
,
2817 { "capabilities", "h460.21.capabilities",
2818 FT_UINT32
, BASE_DEC
, NULL
, 0,
2819 "SEQUENCE_SIZE_1_256_OF_Capability", HFILL
}},
2820 { &hf_h460_21_capabilities_item
,
2821 { "Capability", "h460.21.Capability",
2822 FT_UINT32
, BASE_DEC
, VALS(h245_Capability_vals
), 0,
2824 { &hf_h460_21_maxGroups
,
2825 { "maxGroups", "h460.21.maxGroups",
2826 FT_UINT32
, BASE_DEC
, NULL
, 0,
2827 "INTEGER_1_65535", HFILL
}},
2828 { &hf_h460_21_groupIdentifer
,
2829 { "groupIdentifer", "h460.21.groupIdentifer",
2830 FT_BYTES
, BASE_NONE
, NULL
, 0,
2831 "GloballyUniqueID", HFILL
}},
2832 { &hf_h460_21_capability
,
2833 { "capability", "h460.21.capability",
2834 FT_UINT32
, BASE_DEC
, VALS(h245_Capability_vals
), 0,
2836 { &hf_h460_21_sourceAddress
,
2837 { "sourceAddress", "h460.21.sourceAddress",
2838 FT_UINT32
, BASE_DEC
, VALS(h245_UnicastAddress_vals
), 0,
2839 "UnicastAddress", HFILL
}},
2842 /* List of subtrees */
2843 static int *ett
[] = {
2845 /* --- Module NUMBER-PORTABILITY --- --- --- */
2847 &ett_h460_2_NumberPortabilityInfo
,
2848 &ett_h460_2_T_nUMBERPORTABILITYDATA
,
2849 &ett_h460_2_NumberPortabilityRejectReason
,
2850 &ett_h460_2_PortabilityAddress
,
2851 &ett_h460_2_NumberPortabilityTypeOfNumber
,
2852 &ett_h460_2_PortabilityTypeOfNumber
,
2853 &ett_h460_2_RegionalParameters
,
2855 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
2857 &ett_h460_3_CircuitStatus
,
2858 &ett_h460_3_SEQUENCE_OF_CircuitStatusMap
,
2859 &ett_h460_3_CircuitStatusMap
,
2860 &ett_h460_3_CircuitStatusType
,
2862 /* --- Module CALL-PRIORITY --- --- --- */
2864 &ett_h460_4_CallPriorityInfo
,
2865 &ett_h460_4_T_priorityValue
,
2866 &ett_h460_4_SEQUENCE_OF_ClearToken
,
2867 &ett_h460_4_SEQUENCE_OF_CryptoToken
,
2868 &ett_h460_4_T_rejectReason
,
2869 &ett_h460_4_CountryInternationalNetworkCallOriginationIdentification
,
2870 &ett_h460_4_T_numberingPlan
,
2874 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
2876 &ett_h460_9_Extension
,
2877 &ett_h460_9_RTCPMeasures
,
2878 &ett_h460_9_T_mediaSenderMeasures
,
2879 &ett_h460_9_T_mediaReceiverMeasures
,
2880 &ett_h460_9_SEQUENCE_OF_Extension
,
2881 &ett_h460_9_PerCallQoSReport
,
2882 &ett_h460_9_SEQUENCE_OF_RTCPMeasures
,
2883 &ett_h460_9_QosMonitoringReportData
,
2884 &ett_h460_9_PeriodicQoSMonReport
,
2885 &ett_h460_9_SEQUENCE_OF_PerCallQoSReport
,
2886 &ett_h460_9_FinalQosMonReport
,
2887 &ett_h460_9_InterGKQosMonReport
,
2888 &ett_h460_9_ExtendedRTPMetrics
,
2889 &ett_h460_9_BurstMetrics
,
2890 &ett_h460_9_PLCtypes
,
2891 &ett_h460_9_JitterBufferParms
,
2892 &ett_h460_9_JitterBufferTypes
,
2894 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
2896 &ett_h460_10_CallPartyCategoryInfo
,
2898 /* --- Module MLPP --- --- --- */
2900 &ett_h460_14_MLPPInfo
,
2901 &ett_h460_14_MlppNotification
,
2902 &ett_h460_14_AlternateParty
,
2903 &ett_h460_14_ReleaseCall
,
2905 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
2907 &ett_h460_15_SignallingChannelData
,
2908 &ett_h460_15_T_signallingChannelData
,
2909 &ett_h460_15_ChannelSuspendRequest
,
2910 &ett_h460_15_SEQUENCE_OF_TransportAddress
,
2911 &ett_h460_15_ChannelSuspendResponse
,
2912 &ett_h460_15_ChannelSuspendConfirm
,
2913 &ett_h460_15_ChannelSuspendCancel
,
2914 &ett_h460_15_ChannelResumeRequest
,
2915 &ett_h460_15_ChannelResumeResponse
,
2917 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
2919 &ett_h460_18_IncomingCallIndication
,
2920 &ett_h460_18_LRQKeepAliveData
,
2922 /* --- Module MEDIA-TRAVERSAL --- --- --- */
2924 &ett_h460_19_TraversalParameters
,
2926 /* --- Module MESSAGE-BROADCAST --- --- --- */
2928 &ett_h460_21_CapabilityAdvertisement
,
2929 &ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities
,
2930 &ett_h460_21_ReceiveCapabilities
,
2931 &ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability
,
2932 &ett_h460_21_TransmitCapabilities
,
2935 /* Register protocol */
2936 proto_h460
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
2938 /* Register fields and subtrees */
2939 proto_register_field_array(proto_h460
, hf
, array_length(hf
));
2940 proto_register_subtree_array(ett
, array_length(ett
));
2942 h460_name_handle
= register_dissector(PFNAME
, dissect_h460_name
, proto_h460
);
2943 for (ftr
=h460_feature_tab
; ftr
->id
; ftr
++) {
2944 if (ftr
->opt
& GD
) ftr
->key_gd
= wmem_strdup_printf(wmem_epan_scope(), "GenericData/%s", ftr
->id
);
2945 if (ftr
->opt
& FD
) ftr
->key_fd
= wmem_strdup_printf(wmem_epan_scope(), "FeatureDescriptor/%s", ftr
->id
);
2946 if (ftr
->opt
& GM
) ftr
->key_gm
= wmem_strdup_printf(wmem_epan_scope(), "GenericMessage/%s", ftr
->id
);
2947 if (ftr
->opt
& GI
) ftr
->key_gi
= wmem_strdup_printf(wmem_epan_scope(), "GenericInformation/%s", ftr
->id
);
2948 if (ftr
->content_pdu
) ftr
->content_hnd
= create_dissector_handle(ftr
->content_pdu
, proto_h460
);
2952 /*--- proto_reg_handoff_h460 -------------------------------------------*/
2953 void proto_reg_handoff_h460(void)
2955 h460_feature_t
*ftr
;
2957 q931_ie_handle
= find_dissector_add_dependency("q931.ie", proto_h460
);
2958 h225_ras_handle
= find_dissector_add_dependency("h225.ras", proto_h460
);
2960 for (ftr
=h460_feature_tab
; ftr
->id
; ftr
++) {
2961 if (ftr
->key_gd
) dissector_add_string("h225.gef.name", ftr
->key_gd
, h460_name_handle
);
2962 if (ftr
->key_fd
) dissector_add_string("h225.gef.name", ftr
->key_fd
, h460_name_handle
);
2963 if (ftr
->key_gm
) dissector_add_string("h245.gef.name", ftr
->key_gm
, h460_name_handle
);
2964 if (ftr
->key_gi
) dissector_add_string("h245.gef.name", ftr
->key_gi
, h460_name_handle
);
2965 if (ftr
->content_hnd
) {
2966 if (ftr
->key_gd
) dissector_add_string("h225.gef.content", ftr
->key_gd
, ftr
->content_hnd
);
2967 if (ftr
->key_fd
) dissector_add_string("h225.gef.content", ftr
->key_fd
, ftr
->content_hnd
);
2968 if (ftr
->key_gm
) dissector_add_string("h245.gef.content", ftr
->key_gm
, ftr
->content_hnd
);
2969 if (ftr
->key_gi
) dissector_add_string("h245.gef.content", ftr
->key_gi
, ftr
->content_hnd
);