1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -c ./h460.cnf -s ./packet-h460-template -D . 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 */
6 /* Input file: packet-h460-template.c */
8 #line 1 "packet-h460-template.c"
10 * Routines for H.460.x packet dissection
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
39 #include <epan/packet.h>
40 #include <epan/oids.h>
41 #include <epan/asn1.h>
45 #include "packet-per.h"
46 #include "packet-h225.h"
47 #include "packet-h235.h"
48 #include "packet-h245.h"
50 #define PNAME "H.460 Supplementary Services"
51 #define PSNAME "H.460"
54 /* Initialize the protocol and registered fields */
55 static int proto_h460 = -1;
57 /*--- Included file: packet-h460-hf.c ---*/
58 #line 1 "packet-h460-hf.c"
60 /* --- Module NUMBER-PORTABILITY --- --- --- */
62 static int hf_h460_2_h460_2_NumberPortabilityInfo_PDU = -1; /* NumberPortabilityInfo */
63 static int hf_h460_2_numberPortabilityRejectReason = -1; /* NumberPortabilityRejectReason */
64 static int hf_h460_2_nUMBERPORTABILITYDATA = -1; /* T_nUMBERPORTABILITYDATA */
65 static int hf_h460_2_addressTranslated = -1; /* NULL */
66 static int hf_h460_2_portedAddress = -1; /* PortabilityAddress */
67 static int hf_h460_2_routingAddress = -1; /* PortabilityAddress */
68 static int hf_h460_2_regionalParams = -1; /* RegionalParameters */
69 static int hf_h460_2_unspecified = -1; /* NULL */
70 static int hf_h460_2_qorPortedNumber = -1; /* NULL */
71 static int hf_h460_2_aliasAddress = -1; /* AliasAddress */
72 static int hf_h460_2_typeOfAddress = -1; /* NumberPortabilityTypeOfNumber */
73 static int hf_h460_2_publicTypeOfNumber = -1; /* PublicTypeOfNumber */
74 static int hf_h460_2_privateTypeOfNumber = -1; /* PrivateTypeOfNumber */
75 static int hf_h460_2_portabilityTypeOfNumber = -1; /* PortabilityTypeOfNumber */
76 static int hf_h460_2_portedNumber = -1; /* NULL */
77 static int hf_h460_2_routingNumber = -1; /* NULL */
78 static int hf_h460_2_concatenatedNumber = -1; /* NULL */
79 static int hf_h460_2_t35CountryCode = -1; /* INTEGER_0_255 */
80 static int hf_h460_2_t35Extension = -1; /* INTEGER_0_255 */
81 static int hf_h460_2_variantIdentifier = -1; /* INTEGER_1_255 */
82 static int hf_h460_2_regionalData = -1; /* OCTET_STRING */
84 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
86 static int hf_h460_3_h460_3_CircuitStatus_PDU = -1; /* CircuitStatus */
87 static int hf_h460_3_circuitStatusMap = -1; /* SEQUENCE_OF_CircuitStatusMap */
88 static int hf_h460_3_circuitStatusMap_item = -1; /* CircuitStatusMap */
89 static int hf_h460_3_statusType = -1; /* CircuitStatusType */
90 static int hf_h460_3_baseCircuitID = -1; /* CircuitIdentifier */
91 static int hf_h460_3_range = -1; /* INTEGER_0_4095 */
92 static int hf_h460_3_status = -1; /* OCTET_STRING */
93 static int hf_h460_3_serviceStatus = -1; /* NULL */
94 static int hf_h460_3_busyStatus = -1; /* NULL */
96 /* --- Module CALL-PRIORITY --- --- --- */
98 static int hf_h460_4_h460_4_CallPriorityInfo_PDU = -1; /* CallPriorityInfo */
99 static int hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU = -1; /* CountryInternationalNetworkCallOriginationIdentification */
100 static int hf_h460_4_priorityValue = -1; /* T_priorityValue */
101 static int hf_h460_4_emergencyAuthorized = -1; /* NULL */
102 static int hf_h460_4_emergencyPublic = -1; /* NULL */
103 static int hf_h460_4_high = -1; /* NULL */
104 static int hf_h460_4_normal = -1; /* NULL */
105 static int hf_h460_4_priorityExtension = -1; /* INTEGER_0_255 */
106 static int hf_h460_4_tokens = -1; /* SEQUENCE_OF_ClearToken */
107 static int hf_h460_4_tokens_item = -1; /* ClearToken */
108 static int hf_h460_4_cryptoTokens = -1; /* SEQUENCE_OF_CryptoToken */
109 static int hf_h460_4_cryptoTokens_item = -1; /* CryptoToken */
110 static int hf_h460_4_rejectReason = -1; /* T_rejectReason */
111 static int hf_h460_4_priorityUnavailable = -1; /* NULL */
112 static int hf_h460_4_priorityUnauthorized = -1; /* NULL */
113 static int hf_h460_4_priorityValueUnknown = -1; /* NULL */
114 static int hf_h460_4_numberingPlan = -1; /* T_numberingPlan */
115 static int hf_h460_4_x121 = -1; /* T_x121 */
116 static int hf_h460_4_x121CountryCode = -1; /* X121CountryCode */
117 static int hf_h460_4_e164 = -1; /* T_e164 */
118 static int hf_h460_4_e164CountryCode = -1; /* E164CountryCode */
119 static int hf_h460_4_identificationCode = -1; /* T_identificationCode */
121 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
123 static int hf_h460_9_h460_9_QosMonitoringReportData_PDU = -1; /* QosMonitoringReportData */
124 static int hf_h460_9_h460_9_ExtendedRTPMetrics_PDU = -1; /* ExtendedRTPMetrics */
125 static int hf_h460_9_extensionId = -1; /* GenericIdentifier */
126 static int hf_h460_9_extensionContent = -1; /* OCTET_STRING */
127 static int hf_h460_9_rtpAddress = -1; /* TransportChannelInfo */
128 static int hf_h460_9_rtcpAddress = -1; /* TransportChannelInfo */
129 static int hf_h460_9_sessionId = -1; /* INTEGER_1_255 */
130 static int hf_h460_9_nonStandardData = -1; /* NonStandardParameter */
131 static int hf_h460_9_mediaSenderMeasures = -1; /* T_mediaSenderMeasures */
132 static int hf_h460_9_worstEstimatedEnd2EndDelay = -1; /* EstimatedEnd2EndDelay */
133 static int hf_h460_9_meanEstimatedEnd2EndDelay = -1; /* EstimatedEnd2EndDelay */
134 static int hf_h460_9_mediaReceiverMeasures = -1; /* T_mediaReceiverMeasures */
135 static int hf_h460_9_cumulativeNumberOfPacketsLost = -1; /* INTEGER_0_4294967295 */
136 static int hf_h460_9_packetLostRate = -1; /* INTEGER_0_65535 */
137 static int hf_h460_9_worstJitter = -1; /* CalculatedJitter */
138 static int hf_h460_9_estimatedThroughput = -1; /* BandWidth */
139 static int hf_h460_9_fractionLostRate = -1; /* INTEGER_0_65535 */
140 static int hf_h460_9_meanJitter = -1; /* CalculatedJitter */
141 static int hf_h460_9_extensions = -1; /* SEQUENCE_OF_Extension */
142 static int hf_h460_9_extensions_item = -1; /* Extension */
143 static int hf_h460_9_callReferenceValue = -1; /* CallReferenceValue */
144 static int hf_h460_9_conferenceID = -1; /* ConferenceIdentifier */
145 static int hf_h460_9_callIdentifier = -1; /* CallIdentifier */
146 static int hf_h460_9_mediaChannelsQoS = -1; /* SEQUENCE_OF_RTCPMeasures */
147 static int hf_h460_9_mediaChannelsQoS_item = -1; /* RTCPMeasures */
148 static int hf_h460_9_periodic = -1; /* PeriodicQoSMonReport */
149 static int hf_h460_9_final = -1; /* FinalQosMonReport */
150 static int hf_h460_9_interGK = -1; /* InterGKQosMonReport */
151 static int hf_h460_9_perCallInfo = -1; /* SEQUENCE_OF_PerCallQoSReport */
152 static int hf_h460_9_perCallInfo_item = -1; /* PerCallQoSReport */
153 static int hf_h460_9_mediaInfo = -1; /* SEQUENCE_OF_RTCPMeasures */
154 static int hf_h460_9_mediaInfo_item = -1; /* RTCPMeasures */
155 static int hf_h460_9_networkPacketLossRate = -1; /* INTEGER_0_255 */
156 static int hf_h460_9_jitterBufferDiscardRate = -1; /* INTEGER_0_255 */
157 static int hf_h460_9_burstMetrics = -1; /* BurstMetrics */
158 static int hf_h460_9_rtcpRoundTripDelay = -1; /* INTEGER_0_65535 */
159 static int hf_h460_9_endSystemDelay = -1; /* INTEGER_0_65535 */
160 static int hf_h460_9_signalLevel = -1; /* INTEGER_M127_10 */
161 static int hf_h460_9_noiseLevel = -1; /* INTEGER_M127_0 */
162 static int hf_h460_9_residualEchoReturnLoss = -1; /* INTEGER_0_127 */
163 static int hf_h460_9_rFactor = -1; /* INTEGER_0_100 */
164 static int hf_h460_9_extRFactor = -1; /* INTEGER_0_100 */
165 static int hf_h460_9_estimatedMOSLQ = -1; /* INTEGER_10_50 */
166 static int hf_h460_9_estimatedMOSCQ = -1; /* INTEGER_10_50 */
167 static int hf_h460_9_plcType = -1; /* PLCtypes */
168 static int hf_h460_9_jitterBufferParms = -1; /* JitterBufferParms */
169 static int hf_h460_9_gmin = -1; /* INTEGER_0_255 */
170 static int hf_h460_9_burstLossDensity = -1; /* INTEGER_0_255 */
171 static int hf_h460_9_gapLossDensity = -1; /* INTEGER_0_255 */
172 static int hf_h460_9_burstDuration = -1; /* INTEGER_0_65535 */
173 static int hf_h460_9_gapDuration = -1; /* INTEGER_0_65535 */
174 static int hf_h460_9_unspecified = -1; /* NULL */
175 static int hf_h460_9_disabled = -1; /* NULL */
176 static int hf_h460_9_enhanced = -1; /* NULL */
177 static int hf_h460_9_standard = -1; /* NULL */
178 static int hf_h460_9_jitterBufferType = -1; /* JitterBufferTypes */
179 static int hf_h460_9_jitterBufferAdaptRate = -1; /* INTEGER_0_15 */
180 static int hf_h460_9_jitterBufferNominalSize = -1; /* INTEGER_0_65535 */
181 static int hf_h460_9_jitterBufferMaxSize = -1; /* INTEGER_0_65535 */
182 static int hf_h460_9_jitterBufferAbsoluteMax = -1; /* INTEGER_0_65535 */
183 static int hf_h460_9_unknown = -1; /* NULL */
184 static int hf_h460_9_reserved = -1; /* NULL */
185 static int hf_h460_9_nonadaptive = -1; /* NULL */
186 static int hf_h460_9_adaptive = -1; /* NULL */
188 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
190 static int hf_h460_10_h460_10_CallPartyCategoryInfo_PDU = -1; /* CallPartyCategoryInfo */
191 static int hf_h460_10_callPartyCategory = -1; /* CallPartyCategory */
192 static int hf_h460_10_originatingLineInfo = -1; /* OriginatingLineInfo */
194 /* --- Module MLPP --- --- --- */
196 static int hf_h460_14_h460_14_MLPPInfo_PDU = -1; /* MLPPInfo */
197 static int hf_h460_14_precedence = -1; /* MlppPrecedence */
198 static int hf_h460_14_mlppReason = -1; /* MlppReason */
199 static int hf_h460_14_mlppNotification = -1; /* MlppNotification */
200 static int hf_h460_14_alternateParty = -1; /* AlternateParty */
201 static int hf_h460_14_releaseCall = -1; /* ReleaseCall */
202 static int hf_h460_14_preemptionPending = -1; /* NULL */
203 static int hf_h460_14_preemptionInProgress = -1; /* NULL */
204 static int hf_h460_14_preemptionEnd = -1; /* NULL */
205 static int hf_h460_14_preemptionComplete = -1; /* NULL */
206 static int hf_h460_14_altID = -1; /* AliasAddress */
207 static int hf_h460_14_altTimer = -1; /* INTEGER_0_255 */
208 static int hf_h460_14_preemptCallID = -1; /* CallIdentifier */
209 static int hf_h460_14_releaseReason = -1; /* MlppReason */
210 static int hf_h460_14_releaseDelay = -1; /* INTEGER_0_255 */
212 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
214 static int hf_h460_15_h460_15_SignallingChannelData_PDU = -1; /* SignallingChannelData */
215 static int hf_h460_15_signallingChannelData = -1; /* T_signallingChannelData */
216 static int hf_h460_15_channelSuspendRequest = -1; /* ChannelSuspendRequest */
217 static int hf_h460_15_channelSuspendResponse = -1; /* ChannelSuspendResponse */
218 static int hf_h460_15_channelSuspendConfirm = -1; /* ChannelSuspendConfirm */
219 static int hf_h460_15_channelSuspendCancel = -1; /* ChannelSuspendCancel */
220 static int hf_h460_15_channelResumeRequest = -1; /* ChannelResumeRequest */
221 static int hf_h460_15_channelResumeResponse = -1; /* ChannelResumeResponse */
222 static int hf_h460_15_channelResumeAddress = -1; /* SEQUENCE_OF_TransportAddress */
223 static int hf_h460_15_channelResumeAddress_item = -1; /* TransportAddress */
224 static int hf_h460_15_immediateResume = -1; /* BOOLEAN */
225 static int hf_h460_15_resetH245 = -1; /* NULL */
226 static int hf_h460_15_okToSuspend = -1; /* BOOLEAN */
227 static int hf_h460_15_randomNumber = -1; /* INTEGER_0_4294967295 */
229 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
231 static int hf_h460_18_h460_18_IncomingCallIndication_PDU = -1; /* IncomingCallIndication */
232 static int hf_h460_18_h460_18_LRQKeepAliveData_PDU = -1; /* LRQKeepAliveData */
233 static int hf_h460_18_callSignallingAddress = -1; /* TransportAddress */
234 static int hf_h460_18_callID = -1; /* CallIdentifier */
235 static int hf_h460_18_lrqKeepAliveInterval = -1; /* TimeToLive */
237 /* --- Module MEDIA-TRAVERSAL --- --- --- */
239 static int hf_h460_19_h460_19_TraversalParameters_PDU = -1; /* TraversalParameters */
240 static int hf_h460_19_multiplexedMediaChannel = -1; /* TransportAddress */
241 static int hf_h460_19_multiplexedMediaControlChannel = -1; /* TransportAddress */
242 static int hf_h460_19_multiplexID = -1; /* INTEGER_0_4294967295 */
243 static int hf_h460_19_keepAliveChannel = -1; /* TransportAddress */
244 static int hf_h460_19_keepAlivePayloadType = -1; /* INTEGER_0_127 */
245 static int hf_h460_19_keepAliveInterval = -1; /* TimeToLive */
247 /* --- Module MESSAGE-BROADCAST --- --- --- */
249 static int hf_h460_21_h460_21_CapabilityAdvertisement_PDU = -1; /* CapabilityAdvertisement */
250 static int hf_h460_21_receiveCapabilities = -1; /* ReceiveCapabilities */
251 static int hf_h460_21_transmitCapabilities = -1; /* SEQUENCE_SIZE_1_256_OF_TransmitCapabilities */
252 static int hf_h460_21_transmitCapabilities_item = -1; /* TransmitCapabilities */
253 static int hf_h460_21_capabilities = -1; /* SEQUENCE_SIZE_1_256_OF_Capability */
254 static int hf_h460_21_capabilities_item = -1; /* Capability */
255 static int hf_h460_21_maxGroups = -1; /* INTEGER_1_65535 */
256 static int hf_h460_21_groupIdentifer = -1; /* GloballyUniqueID */
257 static int hf_h460_21_capability = -1; /* Capability */
258 static int hf_h460_21_sourceAddress = -1; /* UnicastAddress */
260 /*--- End of included file: packet-h460-hf.c ---*/
261 #line 49 "packet-h460-template.c"
263 /* Initialize the subtree pointers */
265 /*--- Included file: packet-h460-ett.c ---*/
266 #line 1 "packet-h460-ett.c"
268 /* --- Module NUMBER-PORTABILITY --- --- --- */
270 static gint ett_h460_2_NumberPortabilityInfo = -1;
271 static gint ett_h460_2_T_nUMBERPORTABILITYDATA = -1;
272 static gint ett_h460_2_NumberPortabilityRejectReason = -1;
273 static gint ett_h460_2_PortabilityAddress = -1;
274 static gint ett_h460_2_NumberPortabilityTypeOfNumber = -1;
275 static gint ett_h460_2_PortabilityTypeOfNumber = -1;
276 static gint ett_h460_2_RegionalParameters = -1;
278 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
280 static gint ett_h460_3_CircuitStatus = -1;
281 static gint ett_h460_3_SEQUENCE_OF_CircuitStatusMap = -1;
282 static gint ett_h460_3_CircuitStatusMap = -1;
283 static gint ett_h460_3_CircuitStatusType = -1;
285 /* --- Module CALL-PRIORITY --- --- --- */
287 static gint ett_h460_4_CallPriorityInfo = -1;
288 static gint ett_h460_4_T_priorityValue = -1;
289 static gint ett_h460_4_SEQUENCE_OF_ClearToken = -1;
290 static gint ett_h460_4_SEQUENCE_OF_CryptoToken = -1;
291 static gint ett_h460_4_T_rejectReason = -1;
292 static gint ett_h460_4_CountryInternationalNetworkCallOriginationIdentification = -1;
293 static gint ett_h460_4_T_numberingPlan = -1;
294 static gint ett_h460_4_T_x121 = -1;
295 static gint ett_h460_4_T_e164 = -1;
297 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
299 static gint ett_h460_9_Extension = -1;
300 static gint ett_h460_9_RTCPMeasures = -1;
301 static gint ett_h460_9_T_mediaSenderMeasures = -1;
302 static gint ett_h460_9_T_mediaReceiverMeasures = -1;
303 static gint ett_h460_9_SEQUENCE_OF_Extension = -1;
304 static gint ett_h460_9_PerCallQoSReport = -1;
305 static gint ett_h460_9_SEQUENCE_OF_RTCPMeasures = -1;
306 static gint ett_h460_9_QosMonitoringReportData = -1;
307 static gint ett_h460_9_PeriodicQoSMonReport = -1;
308 static gint ett_h460_9_SEQUENCE_OF_PerCallQoSReport = -1;
309 static gint ett_h460_9_FinalQosMonReport = -1;
310 static gint ett_h460_9_InterGKQosMonReport = -1;
311 static gint ett_h460_9_ExtendedRTPMetrics = -1;
312 static gint ett_h460_9_BurstMetrics = -1;
313 static gint ett_h460_9_PLCtypes = -1;
314 static gint ett_h460_9_JitterBufferParms = -1;
315 static gint ett_h460_9_JitterBufferTypes = -1;
317 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
319 static gint ett_h460_10_CallPartyCategoryInfo = -1;
321 /* --- Module MLPP --- --- --- */
323 static gint ett_h460_14_MLPPInfo = -1;
324 static gint ett_h460_14_MlppNotification = -1;
325 static gint ett_h460_14_AlternateParty = -1;
326 static gint ett_h460_14_ReleaseCall = -1;
328 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
330 static gint ett_h460_15_SignallingChannelData = -1;
331 static gint ett_h460_15_T_signallingChannelData = -1;
332 static gint ett_h460_15_ChannelSuspendRequest = -1;
333 static gint ett_h460_15_SEQUENCE_OF_TransportAddress = -1;
334 static gint ett_h460_15_ChannelSuspendResponse = -1;
335 static gint ett_h460_15_ChannelSuspendConfirm = -1;
336 static gint ett_h460_15_ChannelSuspendCancel = -1;
337 static gint ett_h460_15_ChannelResumeRequest = -1;
338 static gint ett_h460_15_ChannelResumeResponse = -1;
340 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
342 static gint ett_h460_18_IncomingCallIndication = -1;
343 static gint ett_h460_18_LRQKeepAliveData = -1;
345 /* --- Module MEDIA-TRAVERSAL --- --- --- */
347 static gint ett_h460_19_TraversalParameters = -1;
349 /* --- Module MESSAGE-BROADCAST --- --- --- */
351 static gint ett_h460_21_CapabilityAdvertisement = -1;
352 static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities = -1;
353 static gint ett_h460_21_ReceiveCapabilities = -1;
354 static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability = -1;
355 static gint ett_h460_21_TransmitCapabilities = -1;
357 /*--- End of included file: packet-h460-ett.c ---*/
358 #line 52 "packet-h460-template.c"
361 static dissector_handle_t q931_ie_handle = NULL;
362 static dissector_handle_t h225_ras_handle = NULL;
365 /*--- Included file: packet-h460-fn.c ---*/
366 #line 1 "packet-h460-fn.c"
368 /* --- Module NUMBER-PORTABILITY --- --- --- */
373 dissect_h460_2_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
374 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
380 static const value_string h460_2_NumberPortabilityRejectReason_vals[] = {
381 { 0, "unspecified" },
382 { 1, "qorPortedNumber" },
386 static const per_choice_t h460_2_NumberPortabilityRejectReason_choice[] = {
387 { 0, &hf_h460_2_unspecified , ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
388 { 1, &hf_h460_2_qorPortedNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
393 dissect_h460_2_NumberPortabilityRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
394 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
395 ett_h460_2_NumberPortabilityRejectReason, h460_2_NumberPortabilityRejectReason_choice,
402 static const value_string h460_2_PortabilityTypeOfNumber_vals[] = {
403 { 0, "portedNumber" },
404 { 1, "routingNumber" },
405 { 2, "concatenatedNumber" },
409 static const per_choice_t h460_2_PortabilityTypeOfNumber_choice[] = {
410 { 0, &hf_h460_2_portedNumber , ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
411 { 1, &hf_h460_2_routingNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
412 { 2, &hf_h460_2_concatenatedNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
417 dissect_h460_2_PortabilityTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
418 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
419 ett_h460_2_PortabilityTypeOfNumber, h460_2_PortabilityTypeOfNumber_choice,
426 static const value_string h460_2_NumberPortabilityTypeOfNumber_vals[] = {
427 { 0, "publicTypeOfNumber" },
428 { 1, "privateTypeOfNumber" },
429 { 2, "portabilityTypeOfNumber" },
433 static const per_choice_t h460_2_NumberPortabilityTypeOfNumber_choice[] = {
434 { 0, &hf_h460_2_publicTypeOfNumber, ASN1_EXTENSION_ROOT , dissect_h225_PublicTypeOfNumber },
435 { 1, &hf_h460_2_privateTypeOfNumber, ASN1_EXTENSION_ROOT , dissect_h225_PrivateTypeOfNumber },
436 { 2, &hf_h460_2_portabilityTypeOfNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_PortabilityTypeOfNumber },
441 dissect_h460_2_NumberPortabilityTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
442 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
443 ett_h460_2_NumberPortabilityTypeOfNumber, h460_2_NumberPortabilityTypeOfNumber_choice,
450 static const per_sequence_t h460_2_PortabilityAddress_sequence[] = {
451 { &hf_h460_2_aliasAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
452 { &hf_h460_2_typeOfAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_NumberPortabilityTypeOfNumber },
457 dissect_h460_2_PortabilityAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
458 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
459 ett_h460_2_PortabilityAddress, h460_2_PortabilityAddress_sequence);
467 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_) {
468 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
469 0U, 255U, NULL, FALSE);
477 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_) {
478 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
479 1U, 255U, NULL, FALSE);
487 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_) {
488 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
489 NO_BOUND, NO_BOUND, FALSE, NULL);
495 static const per_sequence_t h460_2_RegionalParameters_sequence[] = {
496 { &hf_h460_2_t35CountryCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_2_INTEGER_0_255 },
497 { &hf_h460_2_t35Extension , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_2_INTEGER_0_255 },
498 { &hf_h460_2_variantIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_INTEGER_1_255 },
499 { &hf_h460_2_regionalData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_2_OCTET_STRING },
504 dissect_h460_2_RegionalParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
505 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
506 ett_h460_2_RegionalParameters, h460_2_RegionalParameters_sequence);
512 static const per_sequence_t h460_2_T_nUMBERPORTABILITYDATA_sequence[] = {
513 { &hf_h460_2_addressTranslated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_NULL },
514 { &hf_h460_2_portedAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_PortabilityAddress },
515 { &hf_h460_2_routingAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_PortabilityAddress },
516 { &hf_h460_2_regionalParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_RegionalParameters },
521 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_) {
522 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
523 ett_h460_2_T_nUMBERPORTABILITYDATA, h460_2_T_nUMBERPORTABILITYDATA_sequence);
529 static const value_string h460_2_NumberPortabilityInfo_vals[] = {
530 { 0, "numberPortabilityRejectReason" },
531 { 1, "nUMBERPORTABILITYDATA" },
535 static const per_choice_t h460_2_NumberPortabilityInfo_choice[] = {
536 { 0, &hf_h460_2_numberPortabilityRejectReason, ASN1_EXTENSION_ROOT , dissect_h460_2_NumberPortabilityRejectReason },
537 { 1, &hf_h460_2_nUMBERPORTABILITYDATA, ASN1_EXTENSION_ROOT , dissect_h460_2_T_nUMBERPORTABILITYDATA },
542 dissect_h460_2_NumberPortabilityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
543 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
544 ett_h460_2_NumberPortabilityInfo, h460_2_NumberPortabilityInfo_choice,
552 static int dissect_h460_2_NumberPortabilityInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
555 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
556 offset = dissect_h460_2_NumberPortabilityInfo(tvb, offset, &asn1_ctx, tree, hf_h460_2_h460_2_NumberPortabilityInfo_PDU);
557 offset += 7; offset >>= 3;
562 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
567 dissect_h460_3_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
568 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
574 static const value_string h460_3_CircuitStatusType_vals[] = {
575 { 0, "serviceStatus" },
580 static const per_choice_t h460_3_CircuitStatusType_choice[] = {
581 { 0, &hf_h460_3_serviceStatus, ASN1_EXTENSION_ROOT , dissect_h460_3_NULL },
582 { 1, &hf_h460_3_busyStatus , ASN1_EXTENSION_ROOT , dissect_h460_3_NULL },
587 dissect_h460_3_CircuitStatusType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
588 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
589 ett_h460_3_CircuitStatusType, h460_3_CircuitStatusType_choice,
598 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_) {
599 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
600 0U, 4095U, NULL, FALSE);
608 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_) {
609 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
610 NO_BOUND, NO_BOUND, FALSE, NULL);
616 static const per_sequence_t h460_3_CircuitStatusMap_sequence[] = {
617 { &hf_h460_3_statusType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_3_CircuitStatusType },
618 { &hf_h460_3_baseCircuitID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CircuitIdentifier },
619 { &hf_h460_3_range , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_3_INTEGER_0_4095 },
620 { &hf_h460_3_status , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_3_OCTET_STRING },
625 dissect_h460_3_CircuitStatusMap(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
626 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
627 ett_h460_3_CircuitStatusMap, h460_3_CircuitStatusMap_sequence);
633 static const per_sequence_t h460_3_SEQUENCE_OF_CircuitStatusMap_sequence_of[1] = {
634 { &hf_h460_3_circuitStatusMap_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_3_CircuitStatusMap },
638 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_) {
639 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
640 ett_h460_3_SEQUENCE_OF_CircuitStatusMap, h460_3_SEQUENCE_OF_CircuitStatusMap_sequence_of);
646 static const per_sequence_t h460_3_CircuitStatus_sequence[] = {
647 { &hf_h460_3_circuitStatusMap, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_3_SEQUENCE_OF_CircuitStatusMap },
652 dissect_h460_3_CircuitStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
653 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
654 ett_h460_3_CircuitStatus, h460_3_CircuitStatus_sequence);
661 static int dissect_h460_3_CircuitStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
664 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
665 offset = dissect_h460_3_CircuitStatus(tvb, offset, &asn1_ctx, tree, hf_h460_3_h460_3_CircuitStatus_PDU);
666 offset += 7; offset >>= 3;
671 /* --- Module CALL-PRIORITY --- --- --- */
676 dissect_h460_4_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
677 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
683 static const value_string h460_4_T_priorityValue_vals[] = {
684 { 0, "emergencyAuthorized" },
685 { 1, "emergencyPublic" },
691 static const per_choice_t h460_4_T_priorityValue_choice[] = {
692 { 0, &hf_h460_4_emergencyAuthorized, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
693 { 1, &hf_h460_4_emergencyPublic, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
694 { 2, &hf_h460_4_high , ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
695 { 3, &hf_h460_4_normal , ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
700 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_) {
701 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
702 ett_h460_4_T_priorityValue, h460_4_T_priorityValue_choice,
711 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_) {
712 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
713 0U, 255U, NULL, FALSE);
719 static const per_sequence_t h460_4_SEQUENCE_OF_ClearToken_sequence_of[1] = {
720 { &hf_h460_4_tokens_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
724 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_) {
725 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
726 ett_h460_4_SEQUENCE_OF_ClearToken, h460_4_SEQUENCE_OF_ClearToken_sequence_of);
732 static const per_sequence_t h460_4_SEQUENCE_OF_CryptoToken_sequence_of[1] = {
733 { &hf_h460_4_cryptoTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_CryptoToken },
737 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_) {
738 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
739 ett_h460_4_SEQUENCE_OF_CryptoToken, h460_4_SEQUENCE_OF_CryptoToken_sequence_of);
745 static const value_string h460_4_T_rejectReason_vals[] = {
746 { 0, "priorityUnavailable" },
747 { 1, "priorityUnauthorized" },
748 { 2, "priorityValueUnknown" },
752 static const per_choice_t h460_4_T_rejectReason_choice[] = {
753 { 0, &hf_h460_4_priorityUnavailable, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
754 { 1, &hf_h460_4_priorityUnauthorized, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
755 { 2, &hf_h460_4_priorityValueUnknown, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
760 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_) {
761 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
762 ett_h460_4_T_rejectReason, h460_4_T_rejectReason_choice,
769 static const per_sequence_t h460_4_CallPriorityInfo_sequence[] = {
770 { &hf_h460_4_priorityValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_T_priorityValue },
771 { &hf_h460_4_priorityExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_INTEGER_0_255 },
772 { &hf_h460_4_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_SEQUENCE_OF_ClearToken },
773 { &hf_h460_4_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_SEQUENCE_OF_CryptoToken },
774 { &hf_h460_4_rejectReason , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_T_rejectReason },
779 dissect_h460_4_CallPriorityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
780 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
781 ett_h460_4_CallPriorityInfo, h460_4_CallPriorityInfo_sequence);
789 dissect_h460_4_X121CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
790 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
791 3, 3, FALSE, "0123456789", 10,
798 static const per_sequence_t h460_4_T_x121_sequence[] = {
799 { &hf_h460_4_x121CountryCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_X121CountryCode },
804 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_) {
805 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
806 ett_h460_4_T_x121, h460_4_T_x121_sequence);
814 dissect_h460_4_E164CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
815 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
816 3, 3, FALSE, "0123456789", 10,
825 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_) {
826 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
827 1, 4, FALSE, "0123456789", 10,
834 static const per_sequence_t h460_4_T_e164_sequence[] = {
835 { &hf_h460_4_e164CountryCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_E164CountryCode },
836 { &hf_h460_4_identificationCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_T_identificationCode },
841 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_) {
842 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
843 ett_h460_4_T_e164, h460_4_T_e164_sequence);
849 static const value_string h460_4_T_numberingPlan_vals[] = {
855 static const per_choice_t h460_4_T_numberingPlan_choice[] = {
856 { 0, &hf_h460_4_x121 , ASN1_EXTENSION_ROOT , dissect_h460_4_T_x121 },
857 { 1, &hf_h460_4_e164 , ASN1_EXTENSION_ROOT , dissect_h460_4_T_e164 },
862 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_) {
863 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
864 ett_h460_4_T_numberingPlan, h460_4_T_numberingPlan_choice,
871 static const per_sequence_t h460_4_CountryInternationalNetworkCallOriginationIdentification_sequence[] = {
872 { &hf_h460_4_numberingPlan, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_T_numberingPlan },
877 dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
878 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
879 ett_h460_4_CountryInternationalNetworkCallOriginationIdentification, h460_4_CountryInternationalNetworkCallOriginationIdentification_sequence);
886 static int dissect_h460_4_CallPriorityInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
889 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
890 offset = dissect_h460_4_CallPriorityInfo(tvb, offset, &asn1_ctx, tree, hf_h460_4_h460_4_CallPriorityInfo_PDU);
891 offset += 7; offset >>= 3;
894 static int dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
897 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
898 offset = dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification(tvb, offset, &asn1_ctx, tree, hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU);
899 offset += 7; offset >>= 3;
904 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
909 dissect_h460_9_EstimatedEnd2EndDelay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
910 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
911 0U, 4294967295U, NULL, FALSE);
919 dissect_h460_9_CalculatedJitter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
920 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
921 0U, 4294967295U, NULL, FALSE);
929 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_) {
930 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
931 NO_BOUND, NO_BOUND, FALSE, NULL);
937 static const per_sequence_t h460_9_Extension_sequence[] = {
938 { &hf_h460_9_extensionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
939 { &hf_h460_9_extensionContent, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_OCTET_STRING },
944 dissect_h460_9_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
945 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
946 ett_h460_9_Extension, h460_9_Extension_sequence);
954 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_) {
955 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
956 1U, 255U, NULL, FALSE);
962 static const per_sequence_t h460_9_T_mediaSenderMeasures_sequence[] = {
963 { &hf_h460_9_worstEstimatedEnd2EndDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_EstimatedEnd2EndDelay },
964 { &hf_h460_9_meanEstimatedEnd2EndDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_EstimatedEnd2EndDelay },
969 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_) {
970 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
971 ett_h460_9_T_mediaSenderMeasures, h460_9_T_mediaSenderMeasures_sequence);
979 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_) {
980 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
981 0U, 4294967295U, NULL, FALSE);
989 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_) {
990 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
991 0U, 65535U, NULL, FALSE);
997 static const per_sequence_t h460_9_T_mediaReceiverMeasures_sequence[] = {
998 { &hf_h460_9_cumulativeNumberOfPacketsLost, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_4294967295 },
999 { &hf_h460_9_packetLostRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1000 { &hf_h460_9_worstJitter , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_CalculatedJitter },
1001 { &hf_h460_9_estimatedThroughput, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BandWidth },
1002 { &hf_h460_9_fractionLostRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1003 { &hf_h460_9_meanJitter , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_CalculatedJitter },
1004 { NULL, 0, 0, NULL }
1008 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_) {
1009 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1010 ett_h460_9_T_mediaReceiverMeasures, h460_9_T_mediaReceiverMeasures_sequence);
1016 static const per_sequence_t h460_9_SEQUENCE_OF_Extension_sequence_of[1] = {
1017 { &hf_h460_9_extensions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_9_Extension },
1021 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_) {
1022 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1023 ett_h460_9_SEQUENCE_OF_Extension, h460_9_SEQUENCE_OF_Extension_sequence_of);
1029 static const per_sequence_t h460_9_RTCPMeasures_sequence[] = {
1030 { &hf_h460_9_rtpAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
1031 { &hf_h460_9_rtcpAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
1032 { &hf_h460_9_sessionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_INTEGER_1_255 },
1033 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1034 { &hf_h460_9_mediaSenderMeasures, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_T_mediaSenderMeasures },
1035 { &hf_h460_9_mediaReceiverMeasures, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_T_mediaReceiverMeasures },
1036 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1037 { NULL, 0, 0, NULL }
1041 dissect_h460_9_RTCPMeasures(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1042 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1043 ett_h460_9_RTCPMeasures, h460_9_RTCPMeasures_sequence);
1049 static const per_sequence_t h460_9_SEQUENCE_OF_RTCPMeasures_sequence_of[1] = {
1050 { &hf_h460_9_mediaChannelsQoS_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_9_RTCPMeasures },
1054 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_) {
1055 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1056 ett_h460_9_SEQUENCE_OF_RTCPMeasures, h460_9_SEQUENCE_OF_RTCPMeasures_sequence_of);
1062 static const per_sequence_t h460_9_PerCallQoSReport_sequence[] = {
1063 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1064 { &hf_h460_9_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
1065 { &hf_h460_9_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
1066 { &hf_h460_9_callIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1067 { &hf_h460_9_mediaChannelsQoS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_RTCPMeasures },
1068 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1069 { NULL, 0, 0, NULL }
1073 dissect_h460_9_PerCallQoSReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1074 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1075 ett_h460_9_PerCallQoSReport, h460_9_PerCallQoSReport_sequence);
1081 static const per_sequence_t h460_9_SEQUENCE_OF_PerCallQoSReport_sequence_of[1] = {
1082 { &hf_h460_9_perCallInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_9_PerCallQoSReport },
1086 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_) {
1087 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1088 ett_h460_9_SEQUENCE_OF_PerCallQoSReport, h460_9_SEQUENCE_OF_PerCallQoSReport_sequence_of);
1094 static const per_sequence_t h460_9_PeriodicQoSMonReport_sequence[] = {
1095 { &hf_h460_9_perCallInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_SEQUENCE_OF_PerCallQoSReport },
1096 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1097 { NULL, 0, 0, NULL }
1101 dissect_h460_9_PeriodicQoSMonReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1102 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1103 ett_h460_9_PeriodicQoSMonReport, h460_9_PeriodicQoSMonReport_sequence);
1109 static const per_sequence_t h460_9_FinalQosMonReport_sequence[] = {
1110 { &hf_h460_9_mediaInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_SEQUENCE_OF_RTCPMeasures },
1111 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1112 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1113 { NULL, 0, 0, NULL }
1117 dissect_h460_9_FinalQosMonReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1118 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1119 ett_h460_9_FinalQosMonReport, h460_9_FinalQosMonReport_sequence);
1125 static const per_sequence_t h460_9_InterGKQosMonReport_sequence[] = {
1126 { &hf_h460_9_mediaInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_SEQUENCE_OF_RTCPMeasures },
1127 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1128 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1129 { NULL, 0, 0, NULL }
1133 dissect_h460_9_InterGKQosMonReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1134 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1135 ett_h460_9_InterGKQosMonReport, h460_9_InterGKQosMonReport_sequence);
1141 static const value_string h460_9_QosMonitoringReportData_vals[] = {
1148 static const per_choice_t h460_9_QosMonitoringReportData_choice[] = {
1149 { 0, &hf_h460_9_periodic , ASN1_EXTENSION_ROOT , dissect_h460_9_PeriodicQoSMonReport },
1150 { 1, &hf_h460_9_final , ASN1_EXTENSION_ROOT , dissect_h460_9_FinalQosMonReport },
1151 { 2, &hf_h460_9_interGK , ASN1_EXTENSION_ROOT , dissect_h460_9_InterGKQosMonReport },
1152 { 0, NULL, 0, NULL }
1156 dissect_h460_9_QosMonitoringReportData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1157 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1158 ett_h460_9_QosMonitoringReportData, h460_9_QosMonitoringReportData_choice,
1167 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_) {
1168 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1169 0U, 255U, NULL, FALSE);
1175 static const per_sequence_t h460_9_BurstMetrics_sequence[] = {
1176 { &hf_h460_9_gmin , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1177 { &hf_h460_9_burstLossDensity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1178 { &hf_h460_9_gapLossDensity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1179 { &hf_h460_9_burstDuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1180 { &hf_h460_9_gapDuration , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1181 { NULL, 0, 0, NULL }
1185 dissect_h460_9_BurstMetrics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1186 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1187 ett_h460_9_BurstMetrics, h460_9_BurstMetrics_sequence);
1195 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_) {
1196 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1197 -127, 10U, NULL, FALSE);
1205 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_) {
1206 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1207 -127, 0U, NULL, FALSE);
1215 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_) {
1216 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1217 0U, 127U, NULL, FALSE);
1225 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_) {
1226 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1227 0U, 100U, NULL, FALSE);
1235 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_) {
1236 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1237 10U, 50U, NULL, FALSE);
1245 dissect_h460_9_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1246 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1252 static const value_string h460_9_PLCtypes_vals[] = {
1253 { 0, "unspecified" },
1260 static const per_choice_t h460_9_PLCtypes_choice[] = {
1261 { 0, &hf_h460_9_unspecified , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1262 { 1, &hf_h460_9_disabled , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1263 { 2, &hf_h460_9_enhanced , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1264 { 3, &hf_h460_9_standard , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1265 { 0, NULL, 0, NULL }
1269 dissect_h460_9_PLCtypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1270 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1271 ett_h460_9_PLCtypes, h460_9_PLCtypes_choice,
1278 static const value_string h460_9_JitterBufferTypes_vals[] = {
1281 { 2, "nonadaptive" },
1286 static const per_choice_t h460_9_JitterBufferTypes_choice[] = {
1287 { 0, &hf_h460_9_unknown , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1288 { 1, &hf_h460_9_reserved , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1289 { 2, &hf_h460_9_nonadaptive , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1290 { 3, &hf_h460_9_adaptive , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1291 { 0, NULL, 0, NULL }
1295 dissect_h460_9_JitterBufferTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1296 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1297 ett_h460_9_JitterBufferTypes, h460_9_JitterBufferTypes_choice,
1306 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_) {
1307 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1308 0U, 15U, NULL, FALSE);
1314 static const per_sequence_t h460_9_JitterBufferParms_sequence[] = {
1315 { &hf_h460_9_jitterBufferType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_JitterBufferTypes },
1316 { &hf_h460_9_jitterBufferAdaptRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_15 },
1317 { &hf_h460_9_jitterBufferNominalSize, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1318 { &hf_h460_9_jitterBufferMaxSize, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1319 { &hf_h460_9_jitterBufferAbsoluteMax, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1320 { NULL, 0, 0, NULL }
1324 dissect_h460_9_JitterBufferParms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1325 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1326 ett_h460_9_JitterBufferParms, h460_9_JitterBufferParms_sequence);
1332 static const per_sequence_t h460_9_ExtendedRTPMetrics_sequence[] = {
1333 { &hf_h460_9_networkPacketLossRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1334 { &hf_h460_9_jitterBufferDiscardRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1335 { &hf_h460_9_burstMetrics , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_BurstMetrics },
1336 { &hf_h460_9_rtcpRoundTripDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1337 { &hf_h460_9_endSystemDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1338 { &hf_h460_9_signalLevel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_M127_10 },
1339 { &hf_h460_9_noiseLevel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_M127_0 },
1340 { &hf_h460_9_residualEchoReturnLoss, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_127 },
1341 { &hf_h460_9_rFactor , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_100 },
1342 { &hf_h460_9_extRFactor , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_100 },
1343 { &hf_h460_9_estimatedMOSLQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_10_50 },
1344 { &hf_h460_9_estimatedMOSCQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_10_50 },
1345 { &hf_h460_9_plcType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_PLCtypes },
1346 { &hf_h460_9_jitterBufferParms, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_JitterBufferParms },
1347 { NULL, 0, 0, NULL }
1351 dissect_h460_9_ExtendedRTPMetrics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1352 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1353 ett_h460_9_ExtendedRTPMetrics, h460_9_ExtendedRTPMetrics_sequence);
1360 static int dissect_h460_9_QosMonitoringReportData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1362 asn1_ctx_t asn1_ctx;
1363 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1364 offset = dissect_h460_9_QosMonitoringReportData(tvb, offset, &asn1_ctx, tree, hf_h460_9_h460_9_QosMonitoringReportData_PDU);
1365 offset += 7; offset >>= 3;
1368 static int dissect_h460_9_ExtendedRTPMetrics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1370 asn1_ctx_t asn1_ctx;
1371 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1372 offset = dissect_h460_9_ExtendedRTPMetrics(tvb, offset, &asn1_ctx, tree, hf_h460_9_h460_9_ExtendedRTPMetrics_PDU);
1373 offset += 7; offset >>= 3;
1378 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
1383 dissect_h460_10_CallPartyCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1384 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1385 0U, 255U, NULL, FALSE);
1393 dissect_h460_10_OriginatingLineInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1394 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1395 0U, 255U, NULL, FALSE);
1401 static const per_sequence_t h460_10_CallPartyCategoryInfo_sequence[] = {
1402 { &hf_h460_10_callPartyCategory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_10_CallPartyCategory },
1403 { &hf_h460_10_originatingLineInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_10_OriginatingLineInfo },
1404 { NULL, 0, 0, NULL }
1408 dissect_h460_10_CallPartyCategoryInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1409 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1410 ett_h460_10_CallPartyCategoryInfo, h460_10_CallPartyCategoryInfo_sequence);
1417 static int dissect_h460_10_CallPartyCategoryInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1419 asn1_ctx_t asn1_ctx;
1420 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1421 offset = dissect_h460_10_CallPartyCategoryInfo(tvb, offset, &asn1_ctx, tree, hf_h460_10_h460_10_CallPartyCategoryInfo_PDU);
1422 offset += 7; offset >>= 3;
1427 /* --- Module MLPP --- --- --- */
1430 static const value_string h460_14_MlppPrecedence_vals[] = {
1431 { 0, "flashOveride" },
1441 dissect_h460_14_MlppPrecedence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1442 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1443 5, NULL, TRUE, 0, NULL);
1449 static const value_string h460_14_MlppReason_vals[] = {
1450 { 8, "preemptionNoReservation" },
1451 { 9, "preemptionReservation" },
1452 { 46, "callBlocked" },
1456 static guint32 h460_14_MlppReason_value_map[3+0] = {8, 9, 46};
1459 dissect_h460_14_MlppReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1460 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1461 3, NULL, TRUE, 0, h460_14_MlppReason_value_map);
1469 dissect_h460_14_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1470 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1476 static const value_string h460_14_MlppNotification_vals[] = {
1477 { 0, "preemptionPending" },
1478 { 1, "preemptionInProgress" },
1479 { 2, "preemptionEnd" },
1480 { 3, "preemptionComplete" },
1484 static const per_choice_t h460_14_MlppNotification_choice[] = {
1485 { 0, &hf_h460_14_preemptionPending, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1486 { 1, &hf_h460_14_preemptionInProgress, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1487 { 2, &hf_h460_14_preemptionEnd, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1488 { 3, &hf_h460_14_preemptionComplete, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1489 { 0, NULL, 0, NULL }
1493 dissect_h460_14_MlppNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1494 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1495 ett_h460_14_MlppNotification, h460_14_MlppNotification_choice,
1504 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_) {
1505 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1506 0U, 255U, NULL, FALSE);
1512 static const per_sequence_t h460_14_AlternateParty_sequence[] = {
1513 { &hf_h460_14_altID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1514 { &hf_h460_14_altTimer , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_INTEGER_0_255 },
1515 { NULL, 0, 0, NULL }
1519 dissect_h460_14_AlternateParty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1520 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1521 ett_h460_14_AlternateParty, h460_14_AlternateParty_sequence);
1527 static const per_sequence_t h460_14_ReleaseCall_sequence[] = {
1528 { &hf_h460_14_preemptCallID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1529 { &hf_h460_14_releaseReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_14_MlppReason },
1530 { &hf_h460_14_releaseDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_INTEGER_0_255 },
1531 { NULL, 0, 0, NULL }
1535 dissect_h460_14_ReleaseCall(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1536 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1537 ett_h460_14_ReleaseCall, h460_14_ReleaseCall_sequence);
1543 static const per_sequence_t h460_14_MLPPInfo_sequence[] = {
1544 { &hf_h460_14_precedence , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_MlppPrecedence },
1545 { &hf_h460_14_mlppReason , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_MlppReason },
1546 { &hf_h460_14_mlppNotification, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_MlppNotification },
1547 { &hf_h460_14_alternateParty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_AlternateParty },
1548 { &hf_h460_14_releaseCall , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_ReleaseCall },
1549 { NULL, 0, 0, NULL }
1553 dissect_h460_14_MLPPInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1554 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1555 ett_h460_14_MLPPInfo, h460_14_MLPPInfo_sequence);
1562 static int dissect_h460_14_MLPPInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1564 asn1_ctx_t asn1_ctx;
1565 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1566 offset = dissect_h460_14_MLPPInfo(tvb, offset, &asn1_ctx, tree, hf_h460_14_h460_14_MLPPInfo_PDU);
1567 offset += 7; offset >>= 3;
1572 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
1575 static const per_sequence_t h460_15_SEQUENCE_OF_TransportAddress_sequence_of[1] = {
1576 { &hf_h460_15_channelResumeAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
1580 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_) {
1581 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1582 ett_h460_15_SEQUENCE_OF_TransportAddress, h460_15_SEQUENCE_OF_TransportAddress_sequence_of);
1590 dissect_h460_15_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1591 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1599 dissect_h460_15_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1600 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1606 static const per_sequence_t h460_15_ChannelSuspendRequest_sequence[] = {
1607 { &hf_h460_15_channelResumeAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_SEQUENCE_OF_TransportAddress },
1608 { &hf_h460_15_immediateResume, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_BOOLEAN },
1609 { &hf_h460_15_resetH245 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_15_NULL },
1610 { NULL, 0, 0, NULL }
1614 dissect_h460_15_ChannelSuspendRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1615 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1616 ett_h460_15_ChannelSuspendRequest, h460_15_ChannelSuspendRequest_sequence);
1622 static const per_sequence_t h460_15_ChannelSuspendResponse_sequence[] = {
1623 { &hf_h460_15_okToSuspend , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_BOOLEAN },
1624 { &hf_h460_15_channelResumeAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_SEQUENCE_OF_TransportAddress },
1625 { NULL, 0, 0, NULL }
1629 dissect_h460_15_ChannelSuspendResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1630 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1631 ett_h460_15_ChannelSuspendResponse, h460_15_ChannelSuspendResponse_sequence);
1637 static const per_sequence_t h460_15_ChannelSuspendConfirm_sequence[] = {
1638 { NULL, 0, 0, NULL }
1642 dissect_h460_15_ChannelSuspendConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1643 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1644 ett_h460_15_ChannelSuspendConfirm, h460_15_ChannelSuspendConfirm_sequence);
1650 static const per_sequence_t h460_15_ChannelSuspendCancel_sequence[] = {
1651 { NULL, 0, 0, NULL }
1655 dissect_h460_15_ChannelSuspendCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1656 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1657 ett_h460_15_ChannelSuspendCancel, h460_15_ChannelSuspendCancel_sequence);
1665 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_) {
1666 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1667 0U, 4294967295U, NULL, FALSE);
1673 static const per_sequence_t h460_15_ChannelResumeRequest_sequence[] = {
1674 { &hf_h460_15_randomNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_INTEGER_0_4294967295 },
1675 { &hf_h460_15_resetH245 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_15_NULL },
1676 { NULL, 0, 0, NULL }
1680 dissect_h460_15_ChannelResumeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1681 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1682 ett_h460_15_ChannelResumeRequest, h460_15_ChannelResumeRequest_sequence);
1688 static const per_sequence_t h460_15_ChannelResumeResponse_sequence[] = {
1689 { NULL, 0, 0, NULL }
1693 dissect_h460_15_ChannelResumeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1694 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1695 ett_h460_15_ChannelResumeResponse, h460_15_ChannelResumeResponse_sequence);
1701 static const value_string h460_15_T_signallingChannelData_vals[] = {
1702 { 0, "channelSuspendRequest" },
1703 { 1, "channelSuspendResponse" },
1704 { 2, "channelSuspendConfirm" },
1705 { 3, "channelSuspendCancel" },
1706 { 4, "channelResumeRequest" },
1707 { 5, "channelResumeResponse" },
1711 static const per_choice_t h460_15_T_signallingChannelData_choice[] = {
1712 { 0, &hf_h460_15_channelSuspendRequest, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendRequest },
1713 { 1, &hf_h460_15_channelSuspendResponse, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendResponse },
1714 { 2, &hf_h460_15_channelSuspendConfirm, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendConfirm },
1715 { 3, &hf_h460_15_channelSuspendCancel, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendCancel },
1716 { 4, &hf_h460_15_channelResumeRequest, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelResumeRequest },
1717 { 5, &hf_h460_15_channelResumeResponse, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelResumeResponse },
1718 { 0, NULL, 0, NULL }
1722 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_) {
1723 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1724 ett_h460_15_T_signallingChannelData, h460_15_T_signallingChannelData_choice,
1731 static const per_sequence_t h460_15_SignallingChannelData_sequence[] = {
1732 { &hf_h460_15_signallingChannelData, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_T_signallingChannelData },
1733 { NULL, 0, 0, NULL }
1737 dissect_h460_15_SignallingChannelData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1738 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1739 ett_h460_15_SignallingChannelData, h460_15_SignallingChannelData_sequence);
1746 static int dissect_h460_15_SignallingChannelData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1748 asn1_ctx_t asn1_ctx;
1749 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1750 offset = dissect_h460_15_SignallingChannelData(tvb, offset, &asn1_ctx, tree, hf_h460_15_h460_15_SignallingChannelData_PDU);
1751 offset += 7; offset >>= 3;
1756 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
1759 static const per_sequence_t h460_18_IncomingCallIndication_sequence[] = {
1760 { &hf_h460_18_callSignallingAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
1761 { &hf_h460_18_callID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1762 { NULL, 0, 0, NULL }
1766 dissect_h460_18_IncomingCallIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1767 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1768 ett_h460_18_IncomingCallIndication, h460_18_IncomingCallIndication_sequence);
1774 static const per_sequence_t h460_18_LRQKeepAliveData_sequence[] = {
1775 { &hf_h460_18_lrqKeepAliveInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TimeToLive },
1776 { NULL, 0, 0, NULL }
1780 dissect_h460_18_LRQKeepAliveData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1781 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1782 ett_h460_18_LRQKeepAliveData, h460_18_LRQKeepAliveData_sequence);
1789 static int dissect_h460_18_IncomingCallIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1791 asn1_ctx_t asn1_ctx;
1792 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1793 offset = dissect_h460_18_IncomingCallIndication(tvb, offset, &asn1_ctx, tree, hf_h460_18_h460_18_IncomingCallIndication_PDU);
1794 offset += 7; offset >>= 3;
1797 static int dissect_h460_18_LRQKeepAliveData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1799 asn1_ctx_t asn1_ctx;
1800 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1801 offset = dissect_h460_18_LRQKeepAliveData(tvb, offset, &asn1_ctx, tree, hf_h460_18_h460_18_LRQKeepAliveData_PDU);
1802 offset += 7; offset >>= 3;
1807 /* --- Module MEDIA-TRAVERSAL --- --- --- */
1812 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_) {
1813 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1814 0U, 4294967295U, NULL, FALSE);
1822 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_) {
1823 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1824 0U, 127U, NULL, FALSE);
1830 static const per_sequence_t h460_19_TraversalParameters_sequence[] = {
1831 { &hf_h460_19_multiplexedMediaChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
1832 { &hf_h460_19_multiplexedMediaControlChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
1833 { &hf_h460_19_multiplexID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_19_INTEGER_0_4294967295 },
1834 { &hf_h460_19_keepAliveChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
1835 { &hf_h460_19_keepAlivePayloadType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_19_INTEGER_0_127 },
1836 { &hf_h460_19_keepAliveInterval, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TimeToLive },
1837 { NULL, 0, 0, NULL }
1841 dissect_h460_19_TraversalParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1842 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1843 ett_h460_19_TraversalParameters, h460_19_TraversalParameters_sequence);
1850 static int dissect_h460_19_TraversalParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1852 asn1_ctx_t asn1_ctx;
1853 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1854 offset = dissect_h460_19_TraversalParameters(tvb, offset, &asn1_ctx, tree, hf_h460_19_h460_19_TraversalParameters_PDU);
1855 offset += 7; offset >>= 3;
1860 /* --- Module MESSAGE-BROADCAST --- --- --- */
1863 static const per_sequence_t h460_21_SEQUENCE_SIZE_1_256_OF_Capability_sequence_of[1] = {
1864 { &hf_h460_21_capabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_Capability },
1868 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_) {
1869 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1870 ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability, h460_21_SEQUENCE_SIZE_1_256_OF_Capability_sequence_of,
1879 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_) {
1880 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1881 1U, 65535U, NULL, FALSE);
1887 static const per_sequence_t h460_21_ReceiveCapabilities_sequence[] = {
1888 { &hf_h460_21_capabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_21_SEQUENCE_SIZE_1_256_OF_Capability },
1889 { &hf_h460_21_maxGroups , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_21_INTEGER_1_65535 },
1890 { NULL, 0, 0, NULL }
1894 dissect_h460_21_ReceiveCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1895 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1896 ett_h460_21_ReceiveCapabilities, h460_21_ReceiveCapabilities_sequence);
1904 dissect_h460_21_GloballyUniqueID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1905 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1906 16, 16, FALSE, NULL);
1912 static const per_sequence_t h460_21_TransmitCapabilities_sequence[] = {
1913 { &hf_h460_21_groupIdentifer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_21_GloballyUniqueID },
1914 { &hf_h460_21_capability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Capability },
1915 { &hf_h460_21_sourceAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_UnicastAddress },
1916 { NULL, 0, 0, NULL }
1920 dissect_h460_21_TransmitCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1921 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1922 ett_h460_21_TransmitCapabilities, h460_21_TransmitCapabilities_sequence);
1928 static const per_sequence_t h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities_sequence_of[1] = {
1929 { &hf_h460_21_transmitCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_21_TransmitCapabilities },
1933 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_) {
1934 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1935 ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities, h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities_sequence_of,
1942 static const per_sequence_t h460_21_CapabilityAdvertisement_sequence[] = {
1943 { &hf_h460_21_receiveCapabilities, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_21_ReceiveCapabilities },
1944 { &hf_h460_21_transmitCapabilities, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities },
1945 { NULL, 0, 0, NULL }
1949 dissect_h460_21_CapabilityAdvertisement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1950 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1951 ett_h460_21_CapabilityAdvertisement, h460_21_CapabilityAdvertisement_sequence);
1958 static int dissect_h460_21_CapabilityAdvertisement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
1960 asn1_ctx_t asn1_ctx;
1961 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1962 offset = dissect_h460_21_CapabilityAdvertisement(tvb, offset, &asn1_ctx, tree, hf_h460_21_h460_21_CapabilityAdvertisement_PDU);
1963 offset += 7; offset >>= 3;
1968 /*--- End of included file: packet-h460-fn.c ---*/
1969 #line 58 "packet-h460-template.c"
1972 dissect_ies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1975 if (q931_ie_handle) {
1976 call_dissector(q931_ie_handle, tvb, pinfo, tree);
1977 offset += tvb_length_remaining(tvb, offset);
1983 dissect_ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
1986 if (h225_ras_handle) {
1987 call_dissector(h225_ras_handle, tvb, pinfo, tree);
1988 offset += tvb_length_remaining(tvb, offset);
1993 typedef struct _h460_feature_t {
1997 new_dissector_t content_pdu;
1999 const gchar *key_gd;
2000 const gchar *key_fd;
2001 const gchar *key_gm;
2002 const gchar *key_gi;
2003 dissector_handle_t content_hnd;
2006 /* Fill in the items after content_pdu */
2007 #define FFILL NULL, NULL, NULL, NULL, NULL
2010 #define GD 0x01 /* present in H.225 GenericData */
2011 #define FD 0x02 /* present in H.225 FeatureDescriptor */
2012 #define GM 0x04 /* present in H.245 GenericMessage */
2013 #define GI 0x08 /* present in H.245 GenericInformation */
2015 static h460_feature_t h460_feature_tab[] = {
2017 { GD|FD, "2", "Number Portability", NULL, FFILL },
2018 { GD|FD, "2/1", "NumberPortabilityData", dissect_h460_2_NumberPortabilityInfo_PDU, FFILL },
2020 { GD|FD, "3", "Circuit Status", NULL, FFILL },
2021 { GD|FD, "3/1", "Circuit Status Map", dissect_h460_3_CircuitStatus_PDU, FFILL },
2023 { GD|FD, "4", "CallPriorityDesignation", NULL, FFILL },
2024 { GD|FD, "4/1", "CallPriorityRequest", dissect_h460_4_CallPriorityInfo_PDU, FFILL },
2025 { GD|FD, "4/2", "CallPriorityConfirm", dissect_h460_4_CallPriorityInfo_PDU, FFILL },
2026 { GD|FD, "4/3", "Country/InternationalNetworkCallOriginationRequest", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL },
2027 { GD|FD, "4/4", "Country/InternationalNetworkCallOriginationConfirm", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL },
2029 { GD|FD, "5", "DuplicateIEs", NULL, FFILL },
2030 { GD|FD, "5/1", "IEsString", dissect_ies, FFILL },
2032 { GD|FD, "6", "Extended Fast Connect", NULL, FFILL },
2033 { GD|FD, "6/1", "EFC Proposal", NULL, FFILL },
2034 { GD|FD, "6/2", "EFC Close All Media Channels", NULL, FFILL },
2035 { GD|FD, "6/3", "EFC Request New Proposals", NULL, FFILL },
2036 { GD|FD, "6/4", "EFC Require Symmetric Operation", NULL, FFILL },
2038 { GD|FD, "7", "Digit Maps", NULL, FFILL },
2039 { FD, "7/1", "Digit Maps Length", NULL, FFILL },
2040 { FD, "7/2", "Digit Map Length for Overlapped Sending", NULL, FFILL },
2041 { FD, "7/3", "HTTP Digit Maps Download Capability", NULL, FFILL },
2042 { GD , "7/1", "Start Timer", NULL, FFILL },
2043 { GD , "7/2", "Short Timer", NULL, FFILL },
2044 { GD , "7/3", "Long Timer", NULL, FFILL },
2045 { GD , "7/4", "Digit Map String", NULL, FFILL },
2046 { GD , "7/5", "ToN Associated Digit Map", NULL, FFILL },
2047 { GD , "7/5/1", "Type of Number", NULL, FFILL },
2048 { GD , "7/5/2", "Digit Map Strings for ToN", NULL, FFILL },
2049 { GD , "7/6", "Digit Map URL", NULL, FFILL },
2051 { GD|FD, "8", "Querying for Alternate Routes", NULL, FFILL },
2052 { GD|FD, "8/1", "Query Count", NULL, FFILL },
2053 { GD|FD, "8/2", "Call Termination Cause", NULL, FFILL },
2055 { GD|FD, "9", "QoS-monitoring Reporting", NULL, FFILL },
2056 { GD|FD, "9/1", "qosMonitoringFinalOnly", NULL, FFILL },
2057 { GD|FD, "9/2", "qosMonitoringReportData", dissect_h460_9_QosMonitoringReportData_PDU, FFILL },
2058 { GD|FD, "9/3", "qosMonitoringExtendedRTPMetrics", dissect_h460_9_ExtendedRTPMetrics_PDU, FFILL },
2060 { GD|FD, "10", "Call Party Category", NULL, FFILL },
2061 { GD|FD, "10/1", "Call party category info", dissect_h460_10_CallPartyCategoryInfo_PDU, FFILL },
2063 { GD|FD, "11", "Delayed Call Establishment", NULL, FFILL },
2064 { GD|FD, "11/1", "Delay Point Indicator", NULL, FFILL },
2065 { GD|FD, "11/2", "Implicit DCE Release", NULL, FFILL },
2066 { GD|FD, "11/3", "Delay Point Reached", NULL, FFILL },
2067 { GD|FD, "11/4", "DCE Release", NULL, FFILL },
2069 { GD|FD, "12", "Glare Control Indicator", NULL, FFILL },
2070 { GD|FD, "12/1", "Glare Control Indicator Parameter", NULL, FFILL },
2072 { GD|FD, "13", "Called User Release Control", NULL, FFILL },
2073 { GD|FD, "13/1", "Called User Release Control", NULL, FFILL },
2075 { GD|FD, "14", "Multi-Level Precedence and Preemption", NULL, FFILL },
2076 { GD|FD, "14/1", "MLPP Information", dissect_h460_14_MLPPInfo_PDU, FFILL },
2078 { GD|FD, "15", "Call signalling transport channel suspension and redirection", NULL, FFILL },
2079 { GD|FD, "15/1", "Signalling channel suspend and redirect", dissect_h460_15_SignallingChannelData_PDU, FFILL },
2081 { GD|FD, "16", "Multiple-message Release Sequence", NULL, FFILL },
2082 { GD|FD, "16/1", "MMRS use required", NULL, FFILL },
2083 { GD|FD, "16/2", "MMRS procedure", NULL, FFILL },
2084 { GD|FD, "16/3", "MMRS additional IEs", dissect_ies, FFILL },
2086 { GD|FD, "17", "RAS over H.225.0", NULL, FFILL },
2087 { GD|FD, "17/1", "RAS message", dissect_ras, FFILL },
2089 { GD|FD|GM, "18", "Signalling Traversal", NULL, FFILL },
2090 { GD|FD , "18/1", "IncomingCallIndication", dissect_h460_18_IncomingCallIndication_PDU, FFILL },
2091 { GD|FD , "18/2", "LRQKeepAliveData", dissect_h460_18_LRQKeepAliveData_PDU, FFILL },
2092 { GM, "18-1", "connectionCorrelation", NULL, FFILL },
2093 { GM, "18-1/1", "callIdentifier", NULL, FFILL },
2094 { GM, "18-1/2", "answerCall", NULL, FFILL },
2096 { GD|FD|GI, "19", "mediaNATFWTraversal", NULL, FFILL },
2097 { GD|FD , "19/1", "supportTransmitMultiplexedMedia", NULL, FFILL },
2098 { GD|FD , "19/2", "mediaTraversalServer", NULL, FFILL },
2099 { GI, "19/1", "Traversal Parameters", dissect_h460_19_TraversalParameters_PDU, FFILL },
2101 { GD|FD, "20", "LocationSourceAddress", NULL, FFILL },
2102 { GD|FD, "20/1", "LocationSourceAddress", dissect_h225_ExtendedAliasAddress_PDU, FFILL },
2104 { GD|FD, "21", "Message Broadcast", NULL, FFILL },
2105 { GD|FD, "21/1", "MessageBroadcastParameter", dissect_h460_21_CapabilityAdvertisement_PDU, FFILL },
2107 { GD|FD, "22", "securityProtocolNegotiation", NULL, FFILL },
2108 { GD|FD, "22/1", "tlsSecurityProtocol", NULL, FFILL },
2109 { GD|FD, "22/1/1", "priority", NULL, FFILL },
2110 { GD|FD, "22/1/2", "connectionAddress", NULL, FFILL },
2111 { GD|FD, "22/2", "ipsecSecurityProtocol", NULL, FFILL },
2112 { GD|FD, "22/2/1", "priority", NULL, FFILL },
2113 { 0, NULL, NULL, NULL, FFILL },
2116 static h460_feature_t *find_ftr(const gchar *key) {
2117 h460_feature_t *ftr = NULL;
2120 for (f=h460_feature_tab; f->id; f++) {
2121 if (f->key_gd && !strcmp(key, f->key_gd)) { ftr = f; break; }
2122 if (f->key_fd && !strcmp(key, f->key_fd)) { ftr = f; break; }
2123 if (f->key_gm && !strcmp(key, f->key_gm)) { ftr = f; break; }
2124 if (f->key_gi && !strcmp(key, f->key_gi)) { ftr = f; break; }
2129 /*--- dissect_h460_name -------------------------------------------*/
2131 dissect_h460_name(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree) {
2134 h460_feature_t *ftr;
2136 actx = get_asn1_ctx(pinfo->private_data);
2137 DISSECTOR_ASSERT(actx);
2139 /* DEBUG */ /*proto_tree_add_text(tree, tvb, 0, 0, "*** DEBUG dissect_h460_name: %s", pinfo->match_string);*/
2140 ftr = find_ftr(pinfo->match_string);
2141 /* DEBUG */ /*proto_tree_add_text(tree, tvb, 0, 0, "*** DEBUG dissect_h460_name: ftr %s", (ftr)?ftr->name:"-none-");*/
2143 proto_item_append_text(actx->created_item, " - %s", ftr->name);
2144 proto_item_append_text(proto_item_get_parent(proto_tree_get_parent(tree)), ": %s", ftr->name);
2146 proto_item_append_text(actx->created_item, " - unknown(%s)", pinfo->match_string);
2153 /*--- proto_register_h460 ----------------------------------------------*/
2154 void proto_register_h460(void) {
2155 h460_feature_t *ftr;
2157 /* List of fields */
2158 static hf_register_info hf[] = {
2160 /*--- Included file: packet-h460-hfarr.c ---*/
2161 #line 1 "packet-h460-hfarr.c"
2163 /* --- Module NUMBER-PORTABILITY --- --- --- */
2165 { &hf_h460_2_h460_2_NumberPortabilityInfo_PDU,
2166 { "NumberPortabilityInfo", "h460.2.NumberPortabilityInfo",
2167 FT_UINT32, BASE_DEC, VALS(h460_2_NumberPortabilityInfo_vals), 0,
2168 "h460_2.NumberPortabilityInfo", HFILL }},
2169 { &hf_h460_2_numberPortabilityRejectReason,
2170 { "numberPortabilityRejectReason", "h460.2.numberPortabilityRejectReason",
2171 FT_UINT32, BASE_DEC, VALS(h460_2_NumberPortabilityRejectReason_vals), 0,
2172 "h460_2.NumberPortabilityRejectReason", HFILL }},
2173 { &hf_h460_2_nUMBERPORTABILITYDATA,
2174 { "nUMBERPORTABILITYDATA", "h460.2.nUMBERPORTABILITYDATA",
2175 FT_NONE, BASE_NONE, NULL, 0,
2176 "h460_2.T_nUMBERPORTABILITYDATA", HFILL }},
2177 { &hf_h460_2_addressTranslated,
2178 { "addressTranslated", "h460.2.addressTranslated",
2179 FT_NONE, BASE_NONE, NULL, 0,
2180 "h460_2.NULL", HFILL }},
2181 { &hf_h460_2_portedAddress,
2182 { "portedAddress", "h460.2.portedAddress",
2183 FT_NONE, BASE_NONE, NULL, 0,
2184 "h460_2.PortabilityAddress", HFILL }},
2185 { &hf_h460_2_routingAddress,
2186 { "routingAddress", "h460.2.routingAddress",
2187 FT_NONE, BASE_NONE, NULL, 0,
2188 "h460_2.PortabilityAddress", HFILL }},
2189 { &hf_h460_2_regionalParams,
2190 { "regionalParams", "h460.2.regionalParams",
2191 FT_NONE, BASE_NONE, NULL, 0,
2192 "h460_2.RegionalParameters", HFILL }},
2193 { &hf_h460_2_unspecified,
2194 { "unspecified", "h460.2.unspecified",
2195 FT_NONE, BASE_NONE, NULL, 0,
2196 "h460_2.NULL", HFILL }},
2197 { &hf_h460_2_qorPortedNumber,
2198 { "qorPortedNumber", "h460.2.qorPortedNumber",
2199 FT_NONE, BASE_NONE, NULL, 0,
2200 "h460_2.NULL", HFILL }},
2201 { &hf_h460_2_aliasAddress,
2202 { "aliasAddress", "h460.2.aliasAddress",
2203 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2204 "h225.AliasAddress", HFILL }},
2205 { &hf_h460_2_typeOfAddress,
2206 { "typeOfAddress", "h460.2.typeOfAddress",
2207 FT_UINT32, BASE_DEC, VALS(h460_2_NumberPortabilityTypeOfNumber_vals), 0,
2208 "h460_2.NumberPortabilityTypeOfNumber", HFILL }},
2209 { &hf_h460_2_publicTypeOfNumber,
2210 { "publicTypeOfNumber", "h460.2.publicTypeOfNumber",
2211 FT_UINT32, BASE_DEC, VALS(h225_PublicTypeOfNumber_vals), 0,
2212 "h225.PublicTypeOfNumber", HFILL }},
2213 { &hf_h460_2_privateTypeOfNumber,
2214 { "privateTypeOfNumber", "h460.2.privateTypeOfNumber",
2215 FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0,
2216 "h225.PrivateTypeOfNumber", HFILL }},
2217 { &hf_h460_2_portabilityTypeOfNumber,
2218 { "portabilityTypeOfNumber", "h460.2.portabilityTypeOfNumber",
2219 FT_UINT32, BASE_DEC, VALS(h460_2_PortabilityTypeOfNumber_vals), 0,
2220 "h460_2.PortabilityTypeOfNumber", HFILL }},
2221 { &hf_h460_2_portedNumber,
2222 { "portedNumber", "h460.2.portedNumber",
2223 FT_NONE, BASE_NONE, NULL, 0,
2224 "h460_2.NULL", HFILL }},
2225 { &hf_h460_2_routingNumber,
2226 { "routingNumber", "h460.2.routingNumber",
2227 FT_NONE, BASE_NONE, NULL, 0,
2228 "h460_2.NULL", HFILL }},
2229 { &hf_h460_2_concatenatedNumber,
2230 { "concatenatedNumber", "h460.2.concatenatedNumber",
2231 FT_NONE, BASE_NONE, NULL, 0,
2232 "h460_2.NULL", HFILL }},
2233 { &hf_h460_2_t35CountryCode,
2234 { "t35CountryCode", "h460.2.t35CountryCode",
2235 FT_UINT32, BASE_DEC, NULL, 0,
2236 "h460_2.INTEGER_0_255", HFILL }},
2237 { &hf_h460_2_t35Extension,
2238 { "t35Extension", "h460.2.t35Extension",
2239 FT_UINT32, BASE_DEC, NULL, 0,
2240 "h460_2.INTEGER_0_255", HFILL }},
2241 { &hf_h460_2_variantIdentifier,
2242 { "variantIdentifier", "h460.2.variantIdentifier",
2243 FT_UINT32, BASE_DEC, NULL, 0,
2244 "h460_2.INTEGER_1_255", HFILL }},
2245 { &hf_h460_2_regionalData,
2246 { "regionalData", "h460.2.regionalData",
2247 FT_BYTES, BASE_NONE, NULL, 0,
2248 "h460_2.OCTET_STRING", HFILL }},
2250 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
2252 { &hf_h460_3_h460_3_CircuitStatus_PDU,
2253 { "CircuitStatus", "h460.3.CircuitStatus",
2254 FT_NONE, BASE_NONE, NULL, 0,
2255 "h460_3.CircuitStatus", HFILL }},
2256 { &hf_h460_3_circuitStatusMap,
2257 { "circuitStatusMap", "h460.3.circuitStatusMap",
2258 FT_UINT32, BASE_DEC, NULL, 0,
2259 "h460_3.SEQUENCE_OF_CircuitStatusMap", HFILL }},
2260 { &hf_h460_3_circuitStatusMap_item,
2261 { "CircuitStatusMap", "h460.3.CircuitStatusMap",
2262 FT_NONE, BASE_NONE, NULL, 0,
2263 "h460_3.CircuitStatusMap", HFILL }},
2264 { &hf_h460_3_statusType,
2265 { "statusType", "h460.3.statusType",
2266 FT_UINT32, BASE_DEC, VALS(h460_3_CircuitStatusType_vals), 0,
2267 "h460_3.CircuitStatusType", HFILL }},
2268 { &hf_h460_3_baseCircuitID,
2269 { "baseCircuitID", "h460.3.baseCircuitID",
2270 FT_NONE, BASE_NONE, NULL, 0,
2271 "h225.CircuitIdentifier", HFILL }},
2273 { "range", "h460.3.range",
2274 FT_UINT32, BASE_DEC, NULL, 0,
2275 "h460_3.INTEGER_0_4095", HFILL }},
2276 { &hf_h460_3_status,
2277 { "status", "h460.3.status",
2278 FT_BYTES, BASE_NONE, NULL, 0,
2279 "h460_3.OCTET_STRING", HFILL }},
2280 { &hf_h460_3_serviceStatus,
2281 { "serviceStatus", "h460.3.serviceStatus",
2282 FT_NONE, BASE_NONE, NULL, 0,
2283 "h460_3.NULL", HFILL }},
2284 { &hf_h460_3_busyStatus,
2285 { "busyStatus", "h460.3.busyStatus",
2286 FT_NONE, BASE_NONE, NULL, 0,
2287 "h460_3.NULL", HFILL }},
2289 /* --- Module CALL-PRIORITY --- --- --- */
2291 { &hf_h460_4_h460_4_CallPriorityInfo_PDU,
2292 { "CallPriorityInfo", "h460.4.CallPriorityInfo",
2293 FT_NONE, BASE_NONE, NULL, 0,
2294 "h460_4.CallPriorityInfo", HFILL }},
2295 { &hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU,
2296 { "CountryInternationalNetworkCallOriginationIdentification", "h460.4.CountryInternationalNetworkCallOriginationIdentification",
2297 FT_NONE, BASE_NONE, NULL, 0,
2298 "h460_4.CountryInternationalNetworkCallOriginationIdentification", HFILL }},
2299 { &hf_h460_4_priorityValue,
2300 { "priorityValue", "h460.4.priorityValue",
2301 FT_UINT32, BASE_DEC, VALS(h460_4_T_priorityValue_vals), 0,
2302 "h460_4.T_priorityValue", HFILL }},
2303 { &hf_h460_4_emergencyAuthorized,
2304 { "emergencyAuthorized", "h460.4.emergencyAuthorized",
2305 FT_NONE, BASE_NONE, NULL, 0,
2306 "h460_4.NULL", HFILL }},
2307 { &hf_h460_4_emergencyPublic,
2308 { "emergencyPublic", "h460.4.emergencyPublic",
2309 FT_NONE, BASE_NONE, NULL, 0,
2310 "h460_4.NULL", HFILL }},
2312 { "high", "h460.4.high",
2313 FT_NONE, BASE_NONE, NULL, 0,
2314 "h460_4.NULL", HFILL }},
2315 { &hf_h460_4_normal,
2316 { "normal", "h460.4.normal",
2317 FT_NONE, BASE_NONE, NULL, 0,
2318 "h460_4.NULL", HFILL }},
2319 { &hf_h460_4_priorityExtension,
2320 { "priorityExtension", "h460.4.priorityExtension",
2321 FT_UINT32, BASE_DEC, NULL, 0,
2322 "h460_4.INTEGER_0_255", HFILL }},
2323 { &hf_h460_4_tokens,
2324 { "tokens", "h460.4.tokens",
2325 FT_UINT32, BASE_DEC, NULL, 0,
2326 "h460_4.SEQUENCE_OF_ClearToken", HFILL }},
2327 { &hf_h460_4_tokens_item,
2328 { "ClearToken", "h460.4.ClearToken",
2329 FT_NONE, BASE_NONE, NULL, 0,
2330 "h235.ClearToken", HFILL }},
2331 { &hf_h460_4_cryptoTokens,
2332 { "cryptoTokens", "h460.4.cryptoTokens",
2333 FT_UINT32, BASE_DEC, NULL, 0,
2334 "h460_4.SEQUENCE_OF_CryptoToken", HFILL }},
2335 { &hf_h460_4_cryptoTokens_item,
2336 { "CryptoToken", "h460.4.CryptoToken",
2337 FT_UINT32, BASE_DEC, VALS(h235_CryptoToken_vals), 0,
2338 "h235.CryptoToken", HFILL }},
2339 { &hf_h460_4_rejectReason,
2340 { "rejectReason", "h460.4.rejectReason",
2341 FT_UINT32, BASE_DEC, VALS(h460_4_T_rejectReason_vals), 0,
2342 "h460_4.T_rejectReason", HFILL }},
2343 { &hf_h460_4_priorityUnavailable,
2344 { "priorityUnavailable", "h460.4.priorityUnavailable",
2345 FT_NONE, BASE_NONE, NULL, 0,
2346 "h460_4.NULL", HFILL }},
2347 { &hf_h460_4_priorityUnauthorized,
2348 { "priorityUnauthorized", "h460.4.priorityUnauthorized",
2349 FT_NONE, BASE_NONE, NULL, 0,
2350 "h460_4.NULL", HFILL }},
2351 { &hf_h460_4_priorityValueUnknown,
2352 { "priorityValueUnknown", "h460.4.priorityValueUnknown",
2353 FT_NONE, BASE_NONE, NULL, 0,
2354 "h460_4.NULL", HFILL }},
2355 { &hf_h460_4_numberingPlan,
2356 { "numberingPlan", "h460.4.numberingPlan",
2357 FT_UINT32, BASE_DEC, VALS(h460_4_T_numberingPlan_vals), 0,
2358 "h460_4.T_numberingPlan", HFILL }},
2360 { "x121", "h460.4.x121",
2361 FT_NONE, BASE_NONE, NULL, 0,
2362 "h460_4.T_x121", HFILL }},
2363 { &hf_h460_4_x121CountryCode,
2364 { "countryCode", "h460.4.countryCode",
2365 FT_STRING, BASE_NONE, NULL, 0,
2366 "h460_4.X121CountryCode", HFILL }},
2368 { "e164", "h460.4.e164",
2369 FT_NONE, BASE_NONE, NULL, 0,
2370 "h460_4.T_e164", HFILL }},
2371 { &hf_h460_4_e164CountryCode,
2372 { "countryCode", "h460.4.countryCode",
2373 FT_STRING, BASE_NONE, NULL, 0,
2374 "h460_4.E164CountryCode", HFILL }},
2375 { &hf_h460_4_identificationCode,
2376 { "identificationCode", "h460.4.identificationCode",
2377 FT_STRING, BASE_NONE, NULL, 0,
2378 "h460_4.T_identificationCode", HFILL }},
2380 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
2382 { &hf_h460_9_h460_9_QosMonitoringReportData_PDU,
2383 { "QosMonitoringReportData", "h460.9.QosMonitoringReportData",
2384 FT_UINT32, BASE_DEC, VALS(h460_9_QosMonitoringReportData_vals), 0,
2385 "h460_9.QosMonitoringReportData", HFILL }},
2386 { &hf_h460_9_h460_9_ExtendedRTPMetrics_PDU,
2387 { "ExtendedRTPMetrics", "h460.9.ExtendedRTPMetrics",
2388 FT_NONE, BASE_NONE, NULL, 0,
2389 "h460_9.ExtendedRTPMetrics", HFILL }},
2390 { &hf_h460_9_extensionId,
2391 { "extensionId", "h460.9.extensionId",
2392 FT_UINT32, BASE_DEC, VALS(h225_GenericIdentifier_vals), 0,
2393 "h225.GenericIdentifier", HFILL }},
2394 { &hf_h460_9_extensionContent,
2395 { "extensionContent", "h460.9.extensionContent",
2396 FT_BYTES, BASE_NONE, NULL, 0,
2397 "h460_9.OCTET_STRING", HFILL }},
2398 { &hf_h460_9_rtpAddress,
2399 { "rtpAddress", "h460.9.rtpAddress",
2400 FT_NONE, BASE_NONE, NULL, 0,
2401 "h225.TransportChannelInfo", HFILL }},
2402 { &hf_h460_9_rtcpAddress,
2403 { "rtcpAddress", "h460.9.rtcpAddress",
2404 FT_NONE, BASE_NONE, NULL, 0,
2405 "h225.TransportChannelInfo", HFILL }},
2406 { &hf_h460_9_sessionId,
2407 { "sessionId", "h460.9.sessionId",
2408 FT_UINT32, BASE_DEC, NULL, 0,
2409 "h460_9.INTEGER_1_255", HFILL }},
2410 { &hf_h460_9_nonStandardData,
2411 { "nonStandardData", "h460.9.nonStandardData",
2412 FT_NONE, BASE_NONE, NULL, 0,
2413 "h225.NonStandardParameter", HFILL }},
2414 { &hf_h460_9_mediaSenderMeasures,
2415 { "mediaSenderMeasures", "h460.9.mediaSenderMeasures",
2416 FT_NONE, BASE_NONE, NULL, 0,
2417 "h460_9.T_mediaSenderMeasures", HFILL }},
2418 { &hf_h460_9_worstEstimatedEnd2EndDelay,
2419 { "worstEstimatedEnd2EndDelay", "h460.9.worstEstimatedEnd2EndDelay",
2420 FT_UINT32, BASE_DEC, NULL, 0,
2421 "h460_9.EstimatedEnd2EndDelay", HFILL }},
2422 { &hf_h460_9_meanEstimatedEnd2EndDelay,
2423 { "meanEstimatedEnd2EndDelay", "h460.9.meanEstimatedEnd2EndDelay",
2424 FT_UINT32, BASE_DEC, NULL, 0,
2425 "h460_9.EstimatedEnd2EndDelay", HFILL }},
2426 { &hf_h460_9_mediaReceiverMeasures,
2427 { "mediaReceiverMeasures", "h460.9.mediaReceiverMeasures",
2428 FT_NONE, BASE_NONE, NULL, 0,
2429 "h460_9.T_mediaReceiverMeasures", HFILL }},
2430 { &hf_h460_9_cumulativeNumberOfPacketsLost,
2431 { "cumulativeNumberOfPacketsLost", "h460.9.cumulativeNumberOfPacketsLost",
2432 FT_UINT32, BASE_DEC, NULL, 0,
2433 "h460_9.INTEGER_0_4294967295", HFILL }},
2434 { &hf_h460_9_packetLostRate,
2435 { "packetLostRate", "h460.9.packetLostRate",
2436 FT_UINT32, BASE_DEC, NULL, 0,
2437 "h460_9.INTEGER_0_65535", HFILL }},
2438 { &hf_h460_9_worstJitter,
2439 { "worstJitter", "h460.9.worstJitter",
2440 FT_UINT32, BASE_DEC, NULL, 0,
2441 "h460_9.CalculatedJitter", HFILL }},
2442 { &hf_h460_9_estimatedThroughput,
2443 { "estimatedThroughput", "h460.9.estimatedThroughput",
2444 FT_UINT32, BASE_DEC, NULL, 0,
2445 "h225.BandWidth", HFILL }},
2446 { &hf_h460_9_fractionLostRate,
2447 { "fractionLostRate", "h460.9.fractionLostRate",
2448 FT_UINT32, BASE_DEC, NULL, 0,
2449 "h460_9.INTEGER_0_65535", HFILL }},
2450 { &hf_h460_9_meanJitter,
2451 { "meanJitter", "h460.9.meanJitter",
2452 FT_UINT32, BASE_DEC, NULL, 0,
2453 "h460_9.CalculatedJitter", HFILL }},
2454 { &hf_h460_9_extensions,
2455 { "extensions", "h460.9.extensions",
2456 FT_UINT32, BASE_DEC, NULL, 0,
2457 "h460_9.SEQUENCE_OF_Extension", HFILL }},
2458 { &hf_h460_9_extensions_item,
2459 { "Extension", "h460.9.Extension",
2460 FT_NONE, BASE_NONE, NULL, 0,
2461 "h460_9.Extension", HFILL }},
2462 { &hf_h460_9_callReferenceValue,
2463 { "callReferenceValue", "h460.9.callReferenceValue",
2464 FT_UINT32, BASE_DEC, NULL, 0,
2465 "h225.CallReferenceValue", HFILL }},
2466 { &hf_h460_9_conferenceID,
2467 { "conferenceID", "h460.9.conferenceID",
2468 FT_GUID, BASE_NONE, NULL, 0,
2469 "h225.ConferenceIdentifier", HFILL }},
2470 { &hf_h460_9_callIdentifier,
2471 { "callIdentifier", "h460.9.callIdentifier",
2472 FT_NONE, BASE_NONE, NULL, 0,
2473 "h225.CallIdentifier", HFILL }},
2474 { &hf_h460_9_mediaChannelsQoS,
2475 { "mediaChannelsQoS", "h460.9.mediaChannelsQoS",
2476 FT_UINT32, BASE_DEC, NULL, 0,
2477 "h460_9.SEQUENCE_OF_RTCPMeasures", HFILL }},
2478 { &hf_h460_9_mediaChannelsQoS_item,
2479 { "RTCPMeasures", "h460.9.RTCPMeasures",
2480 FT_NONE, BASE_NONE, NULL, 0,
2481 "h460_9.RTCPMeasures", HFILL }},
2482 { &hf_h460_9_periodic,
2483 { "periodic", "h460.9.periodic",
2484 FT_NONE, BASE_NONE, NULL, 0,
2485 "h460_9.PeriodicQoSMonReport", HFILL }},
2487 { "final", "h460.9.final",
2488 FT_NONE, BASE_NONE, NULL, 0,
2489 "h460_9.FinalQosMonReport", HFILL }},
2490 { &hf_h460_9_interGK,
2491 { "interGK", "h460.9.interGK",
2492 FT_NONE, BASE_NONE, NULL, 0,
2493 "h460_9.InterGKQosMonReport", HFILL }},
2494 { &hf_h460_9_perCallInfo,
2495 { "perCallInfo", "h460.9.perCallInfo",
2496 FT_UINT32, BASE_DEC, NULL, 0,
2497 "h460_9.SEQUENCE_OF_PerCallQoSReport", HFILL }},
2498 { &hf_h460_9_perCallInfo_item,
2499 { "PerCallQoSReport", "h460.9.PerCallQoSReport",
2500 FT_NONE, BASE_NONE, NULL, 0,
2501 "h460_9.PerCallQoSReport", HFILL }},
2502 { &hf_h460_9_mediaInfo,
2503 { "mediaInfo", "h460.9.mediaInfo",
2504 FT_UINT32, BASE_DEC, NULL, 0,
2505 "h460_9.SEQUENCE_OF_RTCPMeasures", HFILL }},
2506 { &hf_h460_9_mediaInfo_item,
2507 { "RTCPMeasures", "h460.9.RTCPMeasures",
2508 FT_NONE, BASE_NONE, NULL, 0,
2509 "h460_9.RTCPMeasures", HFILL }},
2510 { &hf_h460_9_networkPacketLossRate,
2511 { "networkPacketLossRate", "h460.9.networkPacketLossRate",
2512 FT_UINT32, BASE_DEC, NULL, 0,
2513 "h460_9.INTEGER_0_255", HFILL }},
2514 { &hf_h460_9_jitterBufferDiscardRate,
2515 { "jitterBufferDiscardRate", "h460.9.jitterBufferDiscardRate",
2516 FT_UINT32, BASE_DEC, NULL, 0,
2517 "h460_9.INTEGER_0_255", HFILL }},
2518 { &hf_h460_9_burstMetrics,
2519 { "burstMetrics", "h460.9.burstMetrics",
2520 FT_NONE, BASE_NONE, NULL, 0,
2521 "h460_9.BurstMetrics", HFILL }},
2522 { &hf_h460_9_rtcpRoundTripDelay,
2523 { "rtcpRoundTripDelay", "h460.9.rtcpRoundTripDelay",
2524 FT_UINT32, BASE_DEC, NULL, 0,
2525 "h460_9.INTEGER_0_65535", HFILL }},
2526 { &hf_h460_9_endSystemDelay,
2527 { "endSystemDelay", "h460.9.endSystemDelay",
2528 FT_UINT32, BASE_DEC, NULL, 0,
2529 "h460_9.INTEGER_0_65535", HFILL }},
2530 { &hf_h460_9_signalLevel,
2531 { "signalLevel", "h460.9.signalLevel",
2532 FT_INT32, BASE_DEC, NULL, 0,
2533 "h460_9.INTEGER_M127_10", HFILL }},
2534 { &hf_h460_9_noiseLevel,
2535 { "noiseLevel", "h460.9.noiseLevel",
2536 FT_INT32, BASE_DEC, NULL, 0,
2537 "h460_9.INTEGER_M127_0", HFILL }},
2538 { &hf_h460_9_residualEchoReturnLoss,
2539 { "residualEchoReturnLoss", "h460.9.residualEchoReturnLoss",
2540 FT_UINT32, BASE_DEC, NULL, 0,
2541 "h460_9.INTEGER_0_127", HFILL }},
2542 { &hf_h460_9_rFactor,
2543 { "rFactor", "h460.9.rFactor",
2544 FT_UINT32, BASE_DEC, NULL, 0,
2545 "h460_9.INTEGER_0_100", HFILL }},
2546 { &hf_h460_9_extRFactor,
2547 { "extRFactor", "h460.9.extRFactor",
2548 FT_UINT32, BASE_DEC, NULL, 0,
2549 "h460_9.INTEGER_0_100", HFILL }},
2550 { &hf_h460_9_estimatedMOSLQ,
2551 { "estimatedMOSLQ", "h460.9.estimatedMOSLQ",
2552 FT_UINT32, BASE_DEC, NULL, 0,
2553 "h460_9.INTEGER_10_50", HFILL }},
2554 { &hf_h460_9_estimatedMOSCQ,
2555 { "estimatedMOSCQ", "h460.9.estimatedMOSCQ",
2556 FT_UINT32, BASE_DEC, NULL, 0,
2557 "h460_9.INTEGER_10_50", HFILL }},
2558 { &hf_h460_9_plcType,
2559 { "plcType", "h460.9.plcType",
2560 FT_UINT32, BASE_DEC, VALS(h460_9_PLCtypes_vals), 0,
2561 "h460_9.PLCtypes", HFILL }},
2562 { &hf_h460_9_jitterBufferParms,
2563 { "jitterBufferParms", "h460.9.jitterBufferParms",
2564 FT_NONE, BASE_NONE, NULL, 0,
2565 "h460_9.JitterBufferParms", HFILL }},
2567 { "gmin", "h460.9.gmin",
2568 FT_UINT32, BASE_DEC, NULL, 0,
2569 "h460_9.INTEGER_0_255", HFILL }},
2570 { &hf_h460_9_burstLossDensity,
2571 { "burstLossDensity", "h460.9.burstLossDensity",
2572 FT_UINT32, BASE_DEC, NULL, 0,
2573 "h460_9.INTEGER_0_255", HFILL }},
2574 { &hf_h460_9_gapLossDensity,
2575 { "gapLossDensity", "h460.9.gapLossDensity",
2576 FT_UINT32, BASE_DEC, NULL, 0,
2577 "h460_9.INTEGER_0_255", HFILL }},
2578 { &hf_h460_9_burstDuration,
2579 { "burstDuration", "h460.9.burstDuration",
2580 FT_UINT32, BASE_DEC, NULL, 0,
2581 "h460_9.INTEGER_0_65535", HFILL }},
2582 { &hf_h460_9_gapDuration,
2583 { "gapDuration", "h460.9.gapDuration",
2584 FT_UINT32, BASE_DEC, NULL, 0,
2585 "h460_9.INTEGER_0_65535", HFILL }},
2586 { &hf_h460_9_unspecified,
2587 { "unspecified", "h460.9.unspecified",
2588 FT_NONE, BASE_NONE, NULL, 0,
2589 "h460_9.NULL", HFILL }},
2590 { &hf_h460_9_disabled,
2591 { "disabled", "h460.9.disabled",
2592 FT_NONE, BASE_NONE, NULL, 0,
2593 "h460_9.NULL", HFILL }},
2594 { &hf_h460_9_enhanced,
2595 { "enhanced", "h460.9.enhanced",
2596 FT_NONE, BASE_NONE, NULL, 0,
2597 "h460_9.NULL", HFILL }},
2598 { &hf_h460_9_standard,
2599 { "standard", "h460.9.standard",
2600 FT_NONE, BASE_NONE, NULL, 0,
2601 "h460_9.NULL", HFILL }},
2602 { &hf_h460_9_jitterBufferType,
2603 { "jitterBufferType", "h460.9.jitterBufferType",
2604 FT_UINT32, BASE_DEC, VALS(h460_9_JitterBufferTypes_vals), 0,
2605 "h460_9.JitterBufferTypes", HFILL }},
2606 { &hf_h460_9_jitterBufferAdaptRate,
2607 { "jitterBufferAdaptRate", "h460.9.jitterBufferAdaptRate",
2608 FT_UINT32, BASE_DEC, NULL, 0,
2609 "h460_9.INTEGER_0_15", HFILL }},
2610 { &hf_h460_9_jitterBufferNominalSize,
2611 { "jitterBufferNominalSize", "h460.9.jitterBufferNominalSize",
2612 FT_UINT32, BASE_DEC, NULL, 0,
2613 "h460_9.INTEGER_0_65535", HFILL }},
2614 { &hf_h460_9_jitterBufferMaxSize,
2615 { "jitterBufferMaxSize", "h460.9.jitterBufferMaxSize",
2616 FT_UINT32, BASE_DEC, NULL, 0,
2617 "h460_9.INTEGER_0_65535", HFILL }},
2618 { &hf_h460_9_jitterBufferAbsoluteMax,
2619 { "jitterBufferAbsoluteMax", "h460.9.jitterBufferAbsoluteMax",
2620 FT_UINT32, BASE_DEC, NULL, 0,
2621 "h460_9.INTEGER_0_65535", HFILL }},
2622 { &hf_h460_9_unknown,
2623 { "unknown", "h460.9.unknown",
2624 FT_NONE, BASE_NONE, NULL, 0,
2625 "h460_9.NULL", HFILL }},
2626 { &hf_h460_9_reserved,
2627 { "reserved", "h460.9.reserved",
2628 FT_NONE, BASE_NONE, NULL, 0,
2629 "h460_9.NULL", HFILL }},
2630 { &hf_h460_9_nonadaptive,
2631 { "nonadaptive", "h460.9.nonadaptive",
2632 FT_NONE, BASE_NONE, NULL, 0,
2633 "h460_9.NULL", HFILL }},
2634 { &hf_h460_9_adaptive,
2635 { "adaptive", "h460.9.adaptive",
2636 FT_NONE, BASE_NONE, NULL, 0,
2637 "h460_9.NULL", HFILL }},
2639 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
2641 { &hf_h460_10_h460_10_CallPartyCategoryInfo_PDU,
2642 { "CallPartyCategoryInfo", "h460.10.CallPartyCategoryInfo",
2643 FT_NONE, BASE_NONE, NULL, 0,
2644 "h460_10.CallPartyCategoryInfo", HFILL }},
2645 { &hf_h460_10_callPartyCategory,
2646 { "callPartyCategory", "h460.10.callPartyCategory",
2647 FT_UINT32, BASE_DEC, NULL, 0,
2648 "h460_10.CallPartyCategory", HFILL }},
2649 { &hf_h460_10_originatingLineInfo,
2650 { "originatingLineInfo", "h460.10.originatingLineInfo",
2651 FT_UINT32, BASE_DEC, NULL, 0,
2652 "h460_10.OriginatingLineInfo", HFILL }},
2654 /* --- Module MLPP --- --- --- */
2656 { &hf_h460_14_h460_14_MLPPInfo_PDU,
2657 { "MLPPInfo", "h460.14.MLPPInfo",
2658 FT_NONE, BASE_NONE, NULL, 0,
2659 "h460_14.MLPPInfo", HFILL }},
2660 { &hf_h460_14_precedence,
2661 { "precedence", "h460.14.precedence",
2662 FT_UINT32, BASE_DEC, VALS(h460_14_MlppPrecedence_vals), 0,
2663 "h460_14.MlppPrecedence", HFILL }},
2664 { &hf_h460_14_mlppReason,
2665 { "mlppReason", "h460.14.mlppReason",
2666 FT_UINT32, BASE_DEC, VALS(h460_14_MlppReason_vals), 0,
2667 "h460_14.MlppReason", HFILL }},
2668 { &hf_h460_14_mlppNotification,
2669 { "mlppNotification", "h460.14.mlppNotification",
2670 FT_UINT32, BASE_DEC, VALS(h460_14_MlppNotification_vals), 0,
2671 "h460_14.MlppNotification", HFILL }},
2672 { &hf_h460_14_alternateParty,
2673 { "alternateParty", "h460.14.alternateParty",
2674 FT_NONE, BASE_NONE, NULL, 0,
2675 "h460_14.AlternateParty", HFILL }},
2676 { &hf_h460_14_releaseCall,
2677 { "releaseCall", "h460.14.releaseCall",
2678 FT_NONE, BASE_NONE, NULL, 0,
2679 "h460_14.ReleaseCall", HFILL }},
2680 { &hf_h460_14_preemptionPending,
2681 { "preemptionPending", "h460.14.preemptionPending",
2682 FT_NONE, BASE_NONE, NULL, 0,
2683 "h460_14.NULL", HFILL }},
2684 { &hf_h460_14_preemptionInProgress,
2685 { "preemptionInProgress", "h460.14.preemptionInProgress",
2686 FT_NONE, BASE_NONE, NULL, 0,
2687 "h460_14.NULL", HFILL }},
2688 { &hf_h460_14_preemptionEnd,
2689 { "preemptionEnd", "h460.14.preemptionEnd",
2690 FT_NONE, BASE_NONE, NULL, 0,
2691 "h460_14.NULL", HFILL }},
2692 { &hf_h460_14_preemptionComplete,
2693 { "preemptionComplete", "h460.14.preemptionComplete",
2694 FT_NONE, BASE_NONE, NULL, 0,
2695 "h460_14.NULL", HFILL }},
2696 { &hf_h460_14_altID,
2697 { "altID", "h460.14.altID",
2698 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2699 "h225.AliasAddress", HFILL }},
2700 { &hf_h460_14_altTimer,
2701 { "altTimer", "h460.14.altTimer",
2702 FT_UINT32, BASE_DEC, NULL, 0,
2703 "h460_14.INTEGER_0_255", HFILL }},
2704 { &hf_h460_14_preemptCallID,
2705 { "preemptCallID", "h460.14.preemptCallID",
2706 FT_NONE, BASE_NONE, NULL, 0,
2707 "h225.CallIdentifier", HFILL }},
2708 { &hf_h460_14_releaseReason,
2709 { "releaseReason", "h460.14.releaseReason",
2710 FT_UINT32, BASE_DEC, VALS(h460_14_MlppReason_vals), 0,
2711 "h460_14.MlppReason", HFILL }},
2712 { &hf_h460_14_releaseDelay,
2713 { "releaseDelay", "h460.14.releaseDelay",
2714 FT_UINT32, BASE_DEC, NULL, 0,
2715 "h460_14.INTEGER_0_255", HFILL }},
2717 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
2719 { &hf_h460_15_h460_15_SignallingChannelData_PDU,
2720 { "SignallingChannelData", "h460.15.SignallingChannelData",
2721 FT_NONE, BASE_NONE, NULL, 0,
2722 "h460_15.SignallingChannelData", HFILL }},
2723 { &hf_h460_15_signallingChannelData,
2724 { "signallingChannelData", "h460.15.signallingChannelData",
2725 FT_UINT32, BASE_DEC, VALS(h460_15_T_signallingChannelData_vals), 0,
2726 "h460_15.T_signallingChannelData", HFILL }},
2727 { &hf_h460_15_channelSuspendRequest,
2728 { "channelSuspendRequest", "h460.15.channelSuspendRequest",
2729 FT_NONE, BASE_NONE, NULL, 0,
2730 "h460_15.ChannelSuspendRequest", HFILL }},
2731 { &hf_h460_15_channelSuspendResponse,
2732 { "channelSuspendResponse", "h460.15.channelSuspendResponse",
2733 FT_NONE, BASE_NONE, NULL, 0,
2734 "h460_15.ChannelSuspendResponse", HFILL }},
2735 { &hf_h460_15_channelSuspendConfirm,
2736 { "channelSuspendConfirm", "h460.15.channelSuspendConfirm",
2737 FT_NONE, BASE_NONE, NULL, 0,
2738 "h460_15.ChannelSuspendConfirm", HFILL }},
2739 { &hf_h460_15_channelSuspendCancel,
2740 { "channelSuspendCancel", "h460.15.channelSuspendCancel",
2741 FT_NONE, BASE_NONE, NULL, 0,
2742 "h460_15.ChannelSuspendCancel", HFILL }},
2743 { &hf_h460_15_channelResumeRequest,
2744 { "channelResumeRequest", "h460.15.channelResumeRequest",
2745 FT_NONE, BASE_NONE, NULL, 0,
2746 "h460_15.ChannelResumeRequest", HFILL }},
2747 { &hf_h460_15_channelResumeResponse,
2748 { "channelResumeResponse", "h460.15.channelResumeResponse",
2749 FT_NONE, BASE_NONE, NULL, 0,
2750 "h460_15.ChannelResumeResponse", HFILL }},
2751 { &hf_h460_15_channelResumeAddress,
2752 { "channelResumeAddress", "h460.15.channelResumeAddress",
2753 FT_UINT32, BASE_DEC, NULL, 0,
2754 "h460_15.SEQUENCE_OF_TransportAddress", HFILL }},
2755 { &hf_h460_15_channelResumeAddress_item,
2756 { "TransportAddress", "h460.15.TransportAddress",
2757 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
2758 "h225.TransportAddress", HFILL }},
2759 { &hf_h460_15_immediateResume,
2760 { "immediateResume", "h460.15.immediateResume",
2761 FT_BOOLEAN, BASE_NONE, NULL, 0,
2762 "h460_15.BOOLEAN", HFILL }},
2763 { &hf_h460_15_resetH245,
2764 { "resetH245", "h460.15.resetH245",
2765 FT_NONE, BASE_NONE, NULL, 0,
2766 "h460_15.NULL", HFILL }},
2767 { &hf_h460_15_okToSuspend,
2768 { "okToSuspend", "h460.15.okToSuspend",
2769 FT_BOOLEAN, BASE_NONE, NULL, 0,
2770 "h460_15.BOOLEAN", HFILL }},
2771 { &hf_h460_15_randomNumber,
2772 { "randomNumber", "h460.15.randomNumber",
2773 FT_UINT32, BASE_DEC, NULL, 0,
2774 "h460_15.INTEGER_0_4294967295", HFILL }},
2776 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
2778 { &hf_h460_18_h460_18_IncomingCallIndication_PDU,
2779 { "IncomingCallIndication", "h460.18.IncomingCallIndication",
2780 FT_NONE, BASE_NONE, NULL, 0,
2781 "h460_18.IncomingCallIndication", HFILL }},
2782 { &hf_h460_18_h460_18_LRQKeepAliveData_PDU,
2783 { "LRQKeepAliveData", "h460.18.LRQKeepAliveData",
2784 FT_NONE, BASE_NONE, NULL, 0,
2785 "h460_18.LRQKeepAliveData", HFILL }},
2786 { &hf_h460_18_callSignallingAddress,
2787 { "callSignallingAddress", "h460.18.callSignallingAddress",
2788 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
2789 "h225.TransportAddress", HFILL }},
2790 { &hf_h460_18_callID,
2791 { "callID", "h460.18.callID",
2792 FT_NONE, BASE_NONE, NULL, 0,
2793 "h225.CallIdentifier", HFILL }},
2794 { &hf_h460_18_lrqKeepAliveInterval,
2795 { "lrqKeepAliveInterval", "h460.18.lrqKeepAliveInterval",
2796 FT_UINT32, BASE_DEC, NULL, 0,
2797 "h225.TimeToLive", HFILL }},
2799 /* --- Module MEDIA-TRAVERSAL --- --- --- */
2801 { &hf_h460_19_h460_19_TraversalParameters_PDU,
2802 { "TraversalParameters", "h460.19.TraversalParameters",
2803 FT_NONE, BASE_NONE, NULL, 0,
2804 "h460_19.TraversalParameters", HFILL }},
2805 { &hf_h460_19_multiplexedMediaChannel,
2806 { "multiplexedMediaChannel", "h460.19.multiplexedMediaChannel",
2807 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
2808 "h245.TransportAddress", HFILL }},
2809 { &hf_h460_19_multiplexedMediaControlChannel,
2810 { "multiplexedMediaControlChannel", "h460.19.multiplexedMediaControlChannel",
2811 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
2812 "h245.TransportAddress", HFILL }},
2813 { &hf_h460_19_multiplexID,
2814 { "multiplexID", "h460.19.multiplexID",
2815 FT_UINT32, BASE_DEC, NULL, 0,
2816 "h460_19.INTEGER_0_4294967295", HFILL }},
2817 { &hf_h460_19_keepAliveChannel,
2818 { "keepAliveChannel", "h460.19.keepAliveChannel",
2819 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
2820 "h245.TransportAddress", HFILL }},
2821 { &hf_h460_19_keepAlivePayloadType,
2822 { "keepAlivePayloadType", "h460.19.keepAlivePayloadType",
2823 FT_UINT32, BASE_DEC, NULL, 0,
2824 "h460_19.INTEGER_0_127", HFILL }},
2825 { &hf_h460_19_keepAliveInterval,
2826 { "keepAliveInterval", "h460.19.keepAliveInterval",
2827 FT_UINT32, BASE_DEC, NULL, 0,
2828 "h225.TimeToLive", HFILL }},
2830 /* --- Module MESSAGE-BROADCAST --- --- --- */
2832 { &hf_h460_21_h460_21_CapabilityAdvertisement_PDU,
2833 { "CapabilityAdvertisement", "h460.21.CapabilityAdvertisement",
2834 FT_NONE, BASE_NONE, NULL, 0,
2835 "h460_21.CapabilityAdvertisement", HFILL }},
2836 { &hf_h460_21_receiveCapabilities,
2837 { "receiveCapabilities", "h460.21.receiveCapabilities",
2838 FT_NONE, BASE_NONE, NULL, 0,
2839 "h460_21.ReceiveCapabilities", HFILL }},
2840 { &hf_h460_21_transmitCapabilities,
2841 { "transmitCapabilities", "h460.21.transmitCapabilities",
2842 FT_UINT32, BASE_DEC, NULL, 0,
2843 "h460_21.SEQUENCE_SIZE_1_256_OF_TransmitCapabilities", HFILL }},
2844 { &hf_h460_21_transmitCapabilities_item,
2845 { "TransmitCapabilities", "h460.21.TransmitCapabilities",
2846 FT_NONE, BASE_NONE, NULL, 0,
2847 "h460_21.TransmitCapabilities", HFILL }},
2848 { &hf_h460_21_capabilities,
2849 { "capabilities", "h460.21.capabilities",
2850 FT_UINT32, BASE_DEC, NULL, 0,
2851 "h460_21.SEQUENCE_SIZE_1_256_OF_Capability", HFILL }},
2852 { &hf_h460_21_capabilities_item,
2853 { "Capability", "h460.21.Capability",
2854 FT_UINT32, BASE_DEC, VALS(h245_Capability_vals), 0,
2855 "h245.Capability", HFILL }},
2856 { &hf_h460_21_maxGroups,
2857 { "maxGroups", "h460.21.maxGroups",
2858 FT_UINT32, BASE_DEC, NULL, 0,
2859 "h460_21.INTEGER_1_65535", HFILL }},
2860 { &hf_h460_21_groupIdentifer,
2861 { "groupIdentifer", "h460.21.groupIdentifer",
2862 FT_BYTES, BASE_NONE, NULL, 0,
2863 "h460_21.GloballyUniqueID", HFILL }},
2864 { &hf_h460_21_capability,
2865 { "capability", "h460.21.capability",
2866 FT_UINT32, BASE_DEC, VALS(h245_Capability_vals), 0,
2867 "h245.Capability", HFILL }},
2868 { &hf_h460_21_sourceAddress,
2869 { "sourceAddress", "h460.21.sourceAddress",
2870 FT_UINT32, BASE_DEC, VALS(h245_UnicastAddress_vals), 0,
2871 "h245.UnicastAddress", HFILL }},
2873 /*--- End of included file: packet-h460-hfarr.c ---*/
2874 #line 248 "packet-h460-template.c"
2877 /* List of subtrees */
2878 static gint *ett[] = {
2880 /*--- Included file: packet-h460-ettarr.c ---*/
2881 #line 1 "packet-h460-ettarr.c"
2883 /* --- Module NUMBER-PORTABILITY --- --- --- */
2885 &ett_h460_2_NumberPortabilityInfo,
2886 &ett_h460_2_T_nUMBERPORTABILITYDATA,
2887 &ett_h460_2_NumberPortabilityRejectReason,
2888 &ett_h460_2_PortabilityAddress,
2889 &ett_h460_2_NumberPortabilityTypeOfNumber,
2890 &ett_h460_2_PortabilityTypeOfNumber,
2891 &ett_h460_2_RegionalParameters,
2893 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
2895 &ett_h460_3_CircuitStatus,
2896 &ett_h460_3_SEQUENCE_OF_CircuitStatusMap,
2897 &ett_h460_3_CircuitStatusMap,
2898 &ett_h460_3_CircuitStatusType,
2900 /* --- Module CALL-PRIORITY --- --- --- */
2902 &ett_h460_4_CallPriorityInfo,
2903 &ett_h460_4_T_priorityValue,
2904 &ett_h460_4_SEQUENCE_OF_ClearToken,
2905 &ett_h460_4_SEQUENCE_OF_CryptoToken,
2906 &ett_h460_4_T_rejectReason,
2907 &ett_h460_4_CountryInternationalNetworkCallOriginationIdentification,
2908 &ett_h460_4_T_numberingPlan,
2912 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
2914 &ett_h460_9_Extension,
2915 &ett_h460_9_RTCPMeasures,
2916 &ett_h460_9_T_mediaSenderMeasures,
2917 &ett_h460_9_T_mediaReceiverMeasures,
2918 &ett_h460_9_SEQUENCE_OF_Extension,
2919 &ett_h460_9_PerCallQoSReport,
2920 &ett_h460_9_SEQUENCE_OF_RTCPMeasures,
2921 &ett_h460_9_QosMonitoringReportData,
2922 &ett_h460_9_PeriodicQoSMonReport,
2923 &ett_h460_9_SEQUENCE_OF_PerCallQoSReport,
2924 &ett_h460_9_FinalQosMonReport,
2925 &ett_h460_9_InterGKQosMonReport,
2926 &ett_h460_9_ExtendedRTPMetrics,
2927 &ett_h460_9_BurstMetrics,
2928 &ett_h460_9_PLCtypes,
2929 &ett_h460_9_JitterBufferParms,
2930 &ett_h460_9_JitterBufferTypes,
2932 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
2934 &ett_h460_10_CallPartyCategoryInfo,
2936 /* --- Module MLPP --- --- --- */
2938 &ett_h460_14_MLPPInfo,
2939 &ett_h460_14_MlppNotification,
2940 &ett_h460_14_AlternateParty,
2941 &ett_h460_14_ReleaseCall,
2943 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
2945 &ett_h460_15_SignallingChannelData,
2946 &ett_h460_15_T_signallingChannelData,
2947 &ett_h460_15_ChannelSuspendRequest,
2948 &ett_h460_15_SEQUENCE_OF_TransportAddress,
2949 &ett_h460_15_ChannelSuspendResponse,
2950 &ett_h460_15_ChannelSuspendConfirm,
2951 &ett_h460_15_ChannelSuspendCancel,
2952 &ett_h460_15_ChannelResumeRequest,
2953 &ett_h460_15_ChannelResumeResponse,
2955 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
2957 &ett_h460_18_IncomingCallIndication,
2958 &ett_h460_18_LRQKeepAliveData,
2960 /* --- Module MEDIA-TRAVERSAL --- --- --- */
2962 &ett_h460_19_TraversalParameters,
2964 /* --- Module MESSAGE-BROADCAST --- --- --- */
2966 &ett_h460_21_CapabilityAdvertisement,
2967 &ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities,
2968 &ett_h460_21_ReceiveCapabilities,
2969 &ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability,
2970 &ett_h460_21_TransmitCapabilities,
2972 /*--- End of included file: packet-h460-ettarr.c ---*/
2973 #line 253 "packet-h460-template.c"
2976 /* Register protocol */
2977 proto_h460 = proto_register_protocol(PNAME, PSNAME, PFNAME);
2979 /* Register fields and subtrees */
2980 proto_register_field_array(proto_h460, hf, array_length(hf));
2981 proto_register_subtree_array(ett, array_length(ett));
2983 for (ftr=h460_feature_tab; ftr->id; ftr++) {
2984 if (ftr->opt & GD) ftr->key_gd = g_strdup_printf("GenericData/%s", ftr->id);
2985 if (ftr->opt & FD) ftr->key_fd = g_strdup_printf("FeatureDescriptor/%s", ftr->id);
2986 if (ftr->opt & GM) ftr->key_gm = g_strdup_printf("GenericMessage/%s", ftr->id);
2987 if (ftr->opt & GI) ftr->key_gi = g_strdup_printf("GenericInformation/%s", ftr->id);
2988 if (ftr->content_pdu) ftr->content_hnd = new_create_dissector_handle(ftr->content_pdu, proto_h460);
2992 /*--- proto_reg_handoff_h460 -------------------------------------------*/
2993 void proto_reg_handoff_h460(void)
2995 h460_feature_t *ftr;
2996 dissector_handle_t h460_name_handle;
2998 q931_ie_handle = find_dissector("q931.ie");
2999 h225_ras_handle = find_dissector("h225.ras");
3001 h460_name_handle = new_create_dissector_handle(dissect_h460_name, proto_h460);
3002 for (ftr=h460_feature_tab; ftr->id; ftr++) {
3003 if (ftr->key_gd) dissector_add_string("h225.gef.name", ftr->key_gd, h460_name_handle);
3004 if (ftr->key_fd) dissector_add_string("h225.gef.name", ftr->key_fd, h460_name_handle);
3005 if (ftr->key_gm) dissector_add_string("h245.gef.name", ftr->key_gm, h460_name_handle);
3006 if (ftr->key_gi) dissector_add_string("h245.gef.name", ftr->key_gi, h460_name_handle);
3007 if (ftr->content_hnd) {
3008 if (ftr->key_gd) dissector_add_string("h225.gef.content", ftr->key_gd, ftr->content_hnd);
3009 if (ftr->key_fd) dissector_add_string("h225.gef.content", ftr->key_fd, ftr->content_hnd);
3010 if (ftr->key_gm) dissector_add_string("h245.gef.content", ftr->key_gm, ftr->content_hnd);
3011 if (ftr->key_gi) dissector_add_string("h245.gef.content", ftr->key_gi, ftr->content_hnd);