HACK: pinfo->private_data points to smb_info again
[wireshark-wip.git] / epan / dissectors / packet-h460.c
blob2f88793e73a007f9452d1cc969df61dbcd05dfdd
1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
3 /* packet-h460.c */
4 /* ../../tools/asn2wrs.py -c ./h460.cnf -s ./packet-h460-template -D . -O ../../epan/dissectors 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 "../../asn1/h460/packet-h460-template.c"
9 /* packet-h460.c
10 * Routines for H.460.x packet dissection
11 * 2007 Tomas Kukosa
13 * $Id$
15 * Wireshark - Network traffic analyzer
16 * By Gerald Combs <gerald@wireshark.org>
17 * Copyright 1998 Gerald Combs
19 * This program is free software; you can redistribute it and/or
20 * modify it under the terms of the GNU General Public License
21 * as published by the Free Software Foundation; either version 2
22 * of the License, or (at your option) any later version.
24 * This program is distributed in the hope that it will be useful,
25 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 * GNU General Public License for more details.
29 * You should have received a copy of the GNU General Public License
30 * along with this program; if not, write to the Free Software
31 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
34 #include "config.h"
36 #include <glib.h>
37 #include <epan/packet.h>
38 #include <epan/oids.h>
39 #include <epan/asn1.h>
41 #include <string.h>
43 #include "packet-per.h"
44 #include "packet-h225.h"
45 #include "packet-h235.h"
46 #include "packet-h245.h"
48 #define PNAME "H.460 Supplementary Services"
49 #define PSNAME "H.460"
50 #define PFNAME "h460"
52 /* Initialize the protocol and registered fields */
53 static int proto_h460 = -1;
55 /*--- Included file: packet-h460-hf.c ---*/
56 #line 1 "../../asn1/h460/packet-h460-hf.c"
58 /* --- Module NUMBER-PORTABILITY --- --- --- */
60 static int hf_h460_2_h460_2_NumberPortabilityInfo_PDU = -1; /* NumberPortabilityInfo */
61 static int hf_h460_2_numberPortabilityRejectReason = -1; /* NumberPortabilityRejectReason */
62 static int hf_h460_2_nUMBERPORTABILITYDATA = -1; /* T_nUMBERPORTABILITYDATA */
63 static int hf_h460_2_addressTranslated = -1; /* NULL */
64 static int hf_h460_2_portedAddress = -1; /* PortabilityAddress */
65 static int hf_h460_2_routingAddress = -1; /* PortabilityAddress */
66 static int hf_h460_2_regionalParams = -1; /* RegionalParameters */
67 static int hf_h460_2_unspecified = -1; /* NULL */
68 static int hf_h460_2_qorPortedNumber = -1; /* NULL */
69 static int hf_h460_2_aliasAddress = -1; /* AliasAddress */
70 static int hf_h460_2_typeOfAddress = -1; /* NumberPortabilityTypeOfNumber */
71 static int hf_h460_2_publicTypeOfNumber = -1; /* PublicTypeOfNumber */
72 static int hf_h460_2_privateTypeOfNumber = -1; /* PrivateTypeOfNumber */
73 static int hf_h460_2_portabilityTypeOfNumber = -1; /* PortabilityTypeOfNumber */
74 static int hf_h460_2_portedNumber = -1; /* NULL */
75 static int hf_h460_2_routingNumber = -1; /* NULL */
76 static int hf_h460_2_concatenatedNumber = -1; /* NULL */
77 static int hf_h460_2_t35CountryCode = -1; /* INTEGER_0_255 */
78 static int hf_h460_2_t35Extension = -1; /* INTEGER_0_255 */
79 static int hf_h460_2_variantIdentifier = -1; /* INTEGER_1_255 */
80 static int hf_h460_2_regionalData = -1; /* OCTET_STRING */
82 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
84 static int hf_h460_3_h460_3_CircuitStatus_PDU = -1; /* CircuitStatus */
85 static int hf_h460_3_circuitStatusMap = -1; /* SEQUENCE_OF_CircuitStatusMap */
86 static int hf_h460_3_circuitStatusMap_item = -1; /* CircuitStatusMap */
87 static int hf_h460_3_statusType = -1; /* CircuitStatusType */
88 static int hf_h460_3_baseCircuitID = -1; /* CircuitIdentifier */
89 static int hf_h460_3_range = -1; /* INTEGER_0_4095 */
90 static int hf_h460_3_status = -1; /* OCTET_STRING */
91 static int hf_h460_3_serviceStatus = -1; /* NULL */
92 static int hf_h460_3_busyStatus = -1; /* NULL */
94 /* --- Module CALL-PRIORITY --- --- --- */
96 static int hf_h460_4_h460_4_CallPriorityInfo_PDU = -1; /* CallPriorityInfo */
97 static int hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU = -1; /* CountryInternationalNetworkCallOriginationIdentification */
98 static int hf_h460_4_priorityValue = -1; /* T_priorityValue */
99 static int hf_h460_4_emergencyAuthorized = -1; /* NULL */
100 static int hf_h460_4_emergencyPublic = -1; /* NULL */
101 static int hf_h460_4_high = -1; /* NULL */
102 static int hf_h460_4_normal = -1; /* NULL */
103 static int hf_h460_4_priorityExtension = -1; /* INTEGER_0_255 */
104 static int hf_h460_4_tokens = -1; /* SEQUENCE_OF_ClearToken */
105 static int hf_h460_4_tokens_item = -1; /* ClearToken */
106 static int hf_h460_4_cryptoTokens = -1; /* SEQUENCE_OF_CryptoToken */
107 static int hf_h460_4_cryptoTokens_item = -1; /* CryptoToken */
108 static int hf_h460_4_rejectReason = -1; /* T_rejectReason */
109 static int hf_h460_4_priorityUnavailable = -1; /* NULL */
110 static int hf_h460_4_priorityUnauthorized = -1; /* NULL */
111 static int hf_h460_4_priorityValueUnknown = -1; /* NULL */
112 static int hf_h460_4_numberingPlan = -1; /* T_numberingPlan */
113 static int hf_h460_4_x121 = -1; /* T_x121 */
114 static int hf_h460_4_x121CountryCode = -1; /* X121CountryCode */
115 static int hf_h460_4_e164 = -1; /* T_e164 */
116 static int hf_h460_4_e164CountryCode = -1; /* E164CountryCode */
117 static int hf_h460_4_identificationCode = -1; /* T_identificationCode */
119 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
121 static int hf_h460_9_h460_9_QosMonitoringReportData_PDU = -1; /* QosMonitoringReportData */
122 static int hf_h460_9_h460_9_ExtendedRTPMetrics_PDU = -1; /* ExtendedRTPMetrics */
123 static int hf_h460_9_extensionId = -1; /* GenericIdentifier */
124 static int hf_h460_9_extensionContent = -1; /* OCTET_STRING */
125 static int hf_h460_9_rtpAddress = -1; /* TransportChannelInfo */
126 static int hf_h460_9_rtcpAddress = -1; /* TransportChannelInfo */
127 static int hf_h460_9_sessionId = -1; /* INTEGER_1_255 */
128 static int hf_h460_9_nonStandardData = -1; /* NonStandardParameter */
129 static int hf_h460_9_mediaSenderMeasures = -1; /* T_mediaSenderMeasures */
130 static int hf_h460_9_worstEstimatedEnd2EndDelay = -1; /* EstimatedEnd2EndDelay */
131 static int hf_h460_9_meanEstimatedEnd2EndDelay = -1; /* EstimatedEnd2EndDelay */
132 static int hf_h460_9_mediaReceiverMeasures = -1; /* T_mediaReceiverMeasures */
133 static int hf_h460_9_cumulativeNumberOfPacketsLost = -1; /* INTEGER_0_4294967295 */
134 static int hf_h460_9_packetLostRate = -1; /* INTEGER_0_65535 */
135 static int hf_h460_9_worstJitter = -1; /* CalculatedJitter */
136 static int hf_h460_9_estimatedThroughput = -1; /* BandWidth */
137 static int hf_h460_9_fractionLostRate = -1; /* INTEGER_0_65535 */
138 static int hf_h460_9_meanJitter = -1; /* CalculatedJitter */
139 static int hf_h460_9_extensions = -1; /* SEQUENCE_OF_Extension */
140 static int hf_h460_9_extensions_item = -1; /* Extension */
141 static int hf_h460_9_callReferenceValue = -1; /* CallReferenceValue */
142 static int hf_h460_9_conferenceID = -1; /* ConferenceIdentifier */
143 static int hf_h460_9_callIdentifier = -1; /* CallIdentifier */
144 static int hf_h460_9_mediaChannelsQoS = -1; /* SEQUENCE_OF_RTCPMeasures */
145 static int hf_h460_9_mediaChannelsQoS_item = -1; /* RTCPMeasures */
146 static int hf_h460_9_periodic = -1; /* PeriodicQoSMonReport */
147 static int hf_h460_9_final = -1; /* FinalQosMonReport */
148 static int hf_h460_9_interGK = -1; /* InterGKQosMonReport */
149 static int hf_h460_9_perCallInfo = -1; /* SEQUENCE_OF_PerCallQoSReport */
150 static int hf_h460_9_perCallInfo_item = -1; /* PerCallQoSReport */
151 static int hf_h460_9_mediaInfo = -1; /* SEQUENCE_OF_RTCPMeasures */
152 static int hf_h460_9_mediaInfo_item = -1; /* RTCPMeasures */
153 static int hf_h460_9_networkPacketLossRate = -1; /* INTEGER_0_255 */
154 static int hf_h460_9_jitterBufferDiscardRate = -1; /* INTEGER_0_255 */
155 static int hf_h460_9_burstMetrics = -1; /* BurstMetrics */
156 static int hf_h460_9_rtcpRoundTripDelay = -1; /* INTEGER_0_65535 */
157 static int hf_h460_9_endSystemDelay = -1; /* INTEGER_0_65535 */
158 static int hf_h460_9_signalLevel = -1; /* INTEGER_M127_10 */
159 static int hf_h460_9_noiseLevel = -1; /* INTEGER_M127_0 */
160 static int hf_h460_9_residualEchoReturnLoss = -1; /* INTEGER_0_127 */
161 static int hf_h460_9_rFactor = -1; /* INTEGER_0_100 */
162 static int hf_h460_9_extRFactor = -1; /* INTEGER_0_100 */
163 static int hf_h460_9_estimatedMOSLQ = -1; /* INTEGER_10_50 */
164 static int hf_h460_9_estimatedMOSCQ = -1; /* INTEGER_10_50 */
165 static int hf_h460_9_plcType = -1; /* PLCtypes */
166 static int hf_h460_9_jitterBufferParms = -1; /* JitterBufferParms */
167 static int hf_h460_9_gmin = -1; /* INTEGER_0_255 */
168 static int hf_h460_9_burstLossDensity = -1; /* INTEGER_0_255 */
169 static int hf_h460_9_gapLossDensity = -1; /* INTEGER_0_255 */
170 static int hf_h460_9_burstDuration = -1; /* INTEGER_0_65535 */
171 static int hf_h460_9_gapDuration = -1; /* INTEGER_0_65535 */
172 static int hf_h460_9_unspecified = -1; /* NULL */
173 static int hf_h460_9_disabled = -1; /* NULL */
174 static int hf_h460_9_enhanced = -1; /* NULL */
175 static int hf_h460_9_standard = -1; /* NULL */
176 static int hf_h460_9_jitterBufferType = -1; /* JitterBufferTypes */
177 static int hf_h460_9_jitterBufferAdaptRate = -1; /* INTEGER_0_15 */
178 static int hf_h460_9_jitterBufferNominalSize = -1; /* INTEGER_0_65535 */
179 static int hf_h460_9_jitterBufferMaxSize = -1; /* INTEGER_0_65535 */
180 static int hf_h460_9_jitterBufferAbsoluteMax = -1; /* INTEGER_0_65535 */
181 static int hf_h460_9_unknown = -1; /* NULL */
182 static int hf_h460_9_reserved = -1; /* NULL */
183 static int hf_h460_9_nonadaptive = -1; /* NULL */
184 static int hf_h460_9_adaptive = -1; /* NULL */
186 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
188 static int hf_h460_10_h460_10_CallPartyCategoryInfo_PDU = -1; /* CallPartyCategoryInfo */
189 static int hf_h460_10_callPartyCategory = -1; /* CallPartyCategory */
190 static int hf_h460_10_originatingLineInfo = -1; /* OriginatingLineInfo */
192 /* --- Module MLPP --- --- --- */
194 static int hf_h460_14_h460_14_MLPPInfo_PDU = -1; /* MLPPInfo */
195 static int hf_h460_14_precedence = -1; /* MlppPrecedence */
196 static int hf_h460_14_mlppReason = -1; /* MlppReason */
197 static int hf_h460_14_mlppNotification = -1; /* MlppNotification */
198 static int hf_h460_14_alternateParty = -1; /* AlternateParty */
199 static int hf_h460_14_releaseCall = -1; /* ReleaseCall */
200 static int hf_h460_14_preemptionPending = -1; /* NULL */
201 static int hf_h460_14_preemptionInProgress = -1; /* NULL */
202 static int hf_h460_14_preemptionEnd = -1; /* NULL */
203 static int hf_h460_14_preemptionComplete = -1; /* NULL */
204 static int hf_h460_14_altID = -1; /* AliasAddress */
205 static int hf_h460_14_altTimer = -1; /* INTEGER_0_255 */
206 static int hf_h460_14_preemptCallID = -1; /* CallIdentifier */
207 static int hf_h460_14_releaseReason = -1; /* MlppReason */
208 static int hf_h460_14_releaseDelay = -1; /* INTEGER_0_255 */
210 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
212 static int hf_h460_15_h460_15_SignallingChannelData_PDU = -1; /* SignallingChannelData */
213 static int hf_h460_15_signallingChannelData = -1; /* T_signallingChannelData */
214 static int hf_h460_15_channelSuspendRequest = -1; /* ChannelSuspendRequest */
215 static int hf_h460_15_channelSuspendResponse = -1; /* ChannelSuspendResponse */
216 static int hf_h460_15_channelSuspendConfirm = -1; /* ChannelSuspendConfirm */
217 static int hf_h460_15_channelSuspendCancel = -1; /* ChannelSuspendCancel */
218 static int hf_h460_15_channelResumeRequest = -1; /* ChannelResumeRequest */
219 static int hf_h460_15_channelResumeResponse = -1; /* ChannelResumeResponse */
220 static int hf_h460_15_channelResumeAddress = -1; /* SEQUENCE_OF_TransportAddress */
221 static int hf_h460_15_channelResumeAddress_item = -1; /* TransportAddress */
222 static int hf_h460_15_immediateResume = -1; /* BOOLEAN */
223 static int hf_h460_15_resetH245 = -1; /* NULL */
224 static int hf_h460_15_okToSuspend = -1; /* BOOLEAN */
225 static int hf_h460_15_randomNumber = -1; /* INTEGER_0_4294967295 */
227 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
229 static int hf_h460_18_h460_18_IncomingCallIndication_PDU = -1; /* IncomingCallIndication */
230 static int hf_h460_18_h460_18_LRQKeepAliveData_PDU = -1; /* LRQKeepAliveData */
231 static int hf_h460_18_callSignallingAddress = -1; /* TransportAddress */
232 static int hf_h460_18_callID = -1; /* CallIdentifier */
233 static int hf_h460_18_lrqKeepAliveInterval = -1; /* TimeToLive */
235 /* --- Module MEDIA-TRAVERSAL --- --- --- */
237 static int hf_h460_19_h460_19_TraversalParameters_PDU = -1; /* TraversalParameters */
238 static int hf_h460_19_multiplexedMediaChannel = -1; /* TransportAddress */
239 static int hf_h460_19_multiplexedMediaControlChannel = -1; /* TransportAddress */
240 static int hf_h460_19_multiplexID = -1; /* INTEGER_0_4294967295 */
241 static int hf_h460_19_keepAliveChannel = -1; /* TransportAddress */
242 static int hf_h460_19_keepAlivePayloadType = -1; /* INTEGER_0_127 */
243 static int hf_h460_19_keepAliveInterval = -1; /* TimeToLive */
245 /* --- Module MESSAGE-BROADCAST --- --- --- */
247 static int hf_h460_21_h460_21_CapabilityAdvertisement_PDU = -1; /* CapabilityAdvertisement */
248 static int hf_h460_21_receiveCapabilities = -1; /* ReceiveCapabilities */
249 static int hf_h460_21_transmitCapabilities = -1; /* SEQUENCE_SIZE_1_256_OF_TransmitCapabilities */
250 static int hf_h460_21_transmitCapabilities_item = -1; /* TransmitCapabilities */
251 static int hf_h460_21_capabilities = -1; /* SEQUENCE_SIZE_1_256_OF_Capability */
252 static int hf_h460_21_capabilities_item = -1; /* Capability */
253 static int hf_h460_21_maxGroups = -1; /* INTEGER_1_65535 */
254 static int hf_h460_21_groupIdentifer = -1; /* GloballyUniqueID */
255 static int hf_h460_21_capability = -1; /* Capability */
256 static int hf_h460_21_sourceAddress = -1; /* UnicastAddress */
258 /*--- End of included file: packet-h460-hf.c ---*/
259 #line 47 "../../asn1/h460/packet-h460-template.c"
261 /* Initialize the subtree pointers */
263 /*--- Included file: packet-h460-ett.c ---*/
264 #line 1 "../../asn1/h460/packet-h460-ett.c"
266 /* --- Module NUMBER-PORTABILITY --- --- --- */
268 static gint ett_h460_2_NumberPortabilityInfo = -1;
269 static gint ett_h460_2_T_nUMBERPORTABILITYDATA = -1;
270 static gint ett_h460_2_NumberPortabilityRejectReason = -1;
271 static gint ett_h460_2_PortabilityAddress = -1;
272 static gint ett_h460_2_NumberPortabilityTypeOfNumber = -1;
273 static gint ett_h460_2_PortabilityTypeOfNumber = -1;
274 static gint ett_h460_2_RegionalParameters = -1;
276 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
278 static gint ett_h460_3_CircuitStatus = -1;
279 static gint ett_h460_3_SEQUENCE_OF_CircuitStatusMap = -1;
280 static gint ett_h460_3_CircuitStatusMap = -1;
281 static gint ett_h460_3_CircuitStatusType = -1;
283 /* --- Module CALL-PRIORITY --- --- --- */
285 static gint ett_h460_4_CallPriorityInfo = -1;
286 static gint ett_h460_4_T_priorityValue = -1;
287 static gint ett_h460_4_SEQUENCE_OF_ClearToken = -1;
288 static gint ett_h460_4_SEQUENCE_OF_CryptoToken = -1;
289 static gint ett_h460_4_T_rejectReason = -1;
290 static gint ett_h460_4_CountryInternationalNetworkCallOriginationIdentification = -1;
291 static gint ett_h460_4_T_numberingPlan = -1;
292 static gint ett_h460_4_T_x121 = -1;
293 static gint ett_h460_4_T_e164 = -1;
295 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
297 static gint ett_h460_9_Extension = -1;
298 static gint ett_h460_9_RTCPMeasures = -1;
299 static gint ett_h460_9_T_mediaSenderMeasures = -1;
300 static gint ett_h460_9_T_mediaReceiverMeasures = -1;
301 static gint ett_h460_9_SEQUENCE_OF_Extension = -1;
302 static gint ett_h460_9_PerCallQoSReport = -1;
303 static gint ett_h460_9_SEQUENCE_OF_RTCPMeasures = -1;
304 static gint ett_h460_9_QosMonitoringReportData = -1;
305 static gint ett_h460_9_PeriodicQoSMonReport = -1;
306 static gint ett_h460_9_SEQUENCE_OF_PerCallQoSReport = -1;
307 static gint ett_h460_9_FinalQosMonReport = -1;
308 static gint ett_h460_9_InterGKQosMonReport = -1;
309 static gint ett_h460_9_ExtendedRTPMetrics = -1;
310 static gint ett_h460_9_BurstMetrics = -1;
311 static gint ett_h460_9_PLCtypes = -1;
312 static gint ett_h460_9_JitterBufferParms = -1;
313 static gint ett_h460_9_JitterBufferTypes = -1;
315 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
317 static gint ett_h460_10_CallPartyCategoryInfo = -1;
319 /* --- Module MLPP --- --- --- */
321 static gint ett_h460_14_MLPPInfo = -1;
322 static gint ett_h460_14_MlppNotification = -1;
323 static gint ett_h460_14_AlternateParty = -1;
324 static gint ett_h460_14_ReleaseCall = -1;
326 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
328 static gint ett_h460_15_SignallingChannelData = -1;
329 static gint ett_h460_15_T_signallingChannelData = -1;
330 static gint ett_h460_15_ChannelSuspendRequest = -1;
331 static gint ett_h460_15_SEQUENCE_OF_TransportAddress = -1;
332 static gint ett_h460_15_ChannelSuspendResponse = -1;
333 static gint ett_h460_15_ChannelSuspendConfirm = -1;
334 static gint ett_h460_15_ChannelSuspendCancel = -1;
335 static gint ett_h460_15_ChannelResumeRequest = -1;
336 static gint ett_h460_15_ChannelResumeResponse = -1;
338 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
340 static gint ett_h460_18_IncomingCallIndication = -1;
341 static gint ett_h460_18_LRQKeepAliveData = -1;
343 /* --- Module MEDIA-TRAVERSAL --- --- --- */
345 static gint ett_h460_19_TraversalParameters = -1;
347 /* --- Module MESSAGE-BROADCAST --- --- --- */
349 static gint ett_h460_21_CapabilityAdvertisement = -1;
350 static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities = -1;
351 static gint ett_h460_21_ReceiveCapabilities = -1;
352 static gint ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability = -1;
353 static gint ett_h460_21_TransmitCapabilities = -1;
355 /*--- End of included file: packet-h460-ett.c ---*/
356 #line 50 "../../asn1/h460/packet-h460-template.c"
358 /* Subdissectors */
359 static dissector_handle_t q931_ie_handle = NULL;
360 static dissector_handle_t h225_ras_handle = NULL;
363 /*--- Included file: packet-h460-fn.c ---*/
364 #line 1 "../../asn1/h460/packet-h460-fn.c"
366 /* --- Module NUMBER-PORTABILITY --- --- --- */
370 static int
371 dissect_h460_2_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
372 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
374 return offset;
378 static const value_string h460_2_NumberPortabilityRejectReason_vals[] = {
379 { 0, "unspecified" },
380 { 1, "qorPortedNumber" },
381 { 0, NULL }
384 static const per_choice_t h460_2_NumberPortabilityRejectReason_choice[] = {
385 { 0, &hf_h460_2_unspecified , ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
386 { 1, &hf_h460_2_qorPortedNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
387 { 0, NULL, 0, NULL }
390 static int
391 dissect_h460_2_NumberPortabilityRejectReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
392 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
393 ett_h460_2_NumberPortabilityRejectReason, h460_2_NumberPortabilityRejectReason_choice,
394 NULL);
396 return offset;
400 static const value_string h460_2_PortabilityTypeOfNumber_vals[] = {
401 { 0, "portedNumber" },
402 { 1, "routingNumber" },
403 { 2, "concatenatedNumber" },
404 { 0, NULL }
407 static const per_choice_t h460_2_PortabilityTypeOfNumber_choice[] = {
408 { 0, &hf_h460_2_portedNumber , ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
409 { 1, &hf_h460_2_routingNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
410 { 2, &hf_h460_2_concatenatedNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_NULL },
411 { 0, NULL, 0, NULL }
414 static int
415 dissect_h460_2_PortabilityTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
416 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
417 ett_h460_2_PortabilityTypeOfNumber, h460_2_PortabilityTypeOfNumber_choice,
418 NULL);
420 return offset;
424 static const value_string h460_2_NumberPortabilityTypeOfNumber_vals[] = {
425 { 0, "publicTypeOfNumber" },
426 { 1, "privateTypeOfNumber" },
427 { 2, "portabilityTypeOfNumber" },
428 { 0, NULL }
431 static const per_choice_t h460_2_NumberPortabilityTypeOfNumber_choice[] = {
432 { 0, &hf_h460_2_publicTypeOfNumber, ASN1_EXTENSION_ROOT , dissect_h225_PublicTypeOfNumber },
433 { 1, &hf_h460_2_privateTypeOfNumber, ASN1_EXTENSION_ROOT , dissect_h225_PrivateTypeOfNumber },
434 { 2, &hf_h460_2_portabilityTypeOfNumber, ASN1_EXTENSION_ROOT , dissect_h460_2_PortabilityTypeOfNumber },
435 { 0, NULL, 0, NULL }
438 static int
439 dissect_h460_2_NumberPortabilityTypeOfNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
440 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
441 ett_h460_2_NumberPortabilityTypeOfNumber, h460_2_NumberPortabilityTypeOfNumber_choice,
442 NULL);
444 return offset;
448 static const per_sequence_t h460_2_PortabilityAddress_sequence[] = {
449 { &hf_h460_2_aliasAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
450 { &hf_h460_2_typeOfAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_NumberPortabilityTypeOfNumber },
451 { NULL, 0, 0, NULL }
454 static int
455 dissect_h460_2_PortabilityAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
456 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
457 ett_h460_2_PortabilityAddress, h460_2_PortabilityAddress_sequence);
459 return offset;
464 static int
465 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_) {
466 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
467 0U, 255U, NULL, FALSE);
469 return offset;
474 static int
475 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_) {
476 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
477 1U, 255U, NULL, FALSE);
479 return offset;
484 static int
485 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_) {
486 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
487 NO_BOUND, NO_BOUND, FALSE, NULL);
489 return offset;
493 static const per_sequence_t h460_2_RegionalParameters_sequence[] = {
494 { &hf_h460_2_t35CountryCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_2_INTEGER_0_255 },
495 { &hf_h460_2_t35Extension , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_2_INTEGER_0_255 },
496 { &hf_h460_2_variantIdentifier, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_INTEGER_1_255 },
497 { &hf_h460_2_regionalData , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_2_OCTET_STRING },
498 { NULL, 0, 0, NULL }
501 static int
502 dissect_h460_2_RegionalParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
503 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
504 ett_h460_2_RegionalParameters, h460_2_RegionalParameters_sequence);
506 return offset;
510 static const per_sequence_t h460_2_T_nUMBERPORTABILITYDATA_sequence[] = {
511 { &hf_h460_2_addressTranslated, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_NULL },
512 { &hf_h460_2_portedAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_PortabilityAddress },
513 { &hf_h460_2_routingAddress, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_PortabilityAddress },
514 { &hf_h460_2_regionalParams, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_2_RegionalParameters },
515 { NULL, 0, 0, NULL }
518 static int
519 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_) {
520 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
521 ett_h460_2_T_nUMBERPORTABILITYDATA, h460_2_T_nUMBERPORTABILITYDATA_sequence);
523 return offset;
527 static const value_string h460_2_NumberPortabilityInfo_vals[] = {
528 { 0, "numberPortabilityRejectReason" },
529 { 1, "nUMBERPORTABILITYDATA" },
530 { 0, NULL }
533 static const per_choice_t h460_2_NumberPortabilityInfo_choice[] = {
534 { 0, &hf_h460_2_numberPortabilityRejectReason, ASN1_EXTENSION_ROOT , dissect_h460_2_NumberPortabilityRejectReason },
535 { 1, &hf_h460_2_nUMBERPORTABILITYDATA, ASN1_EXTENSION_ROOT , dissect_h460_2_T_nUMBERPORTABILITYDATA },
536 { 0, NULL, 0, NULL }
539 static int
540 dissect_h460_2_NumberPortabilityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
541 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
542 ett_h460_2_NumberPortabilityInfo, h460_2_NumberPortabilityInfo_choice,
543 NULL);
545 return offset;
548 /*--- PDUs ---*/
550 static int dissect_h460_2_NumberPortabilityInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
551 int offset = 0;
552 asn1_ctx_t asn1_ctx;
553 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
554 offset = dissect_h460_2_NumberPortabilityInfo(tvb, offset, &asn1_ctx, tree, hf_h460_2_h460_2_NumberPortabilityInfo_PDU);
555 offset += 7; offset >>= 3;
556 return offset;
560 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
564 static int
565 dissect_h460_3_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
566 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
568 return offset;
572 static const value_string h460_3_CircuitStatusType_vals[] = {
573 { 0, "serviceStatus" },
574 { 1, "busyStatus" },
575 { 0, NULL }
578 static const per_choice_t h460_3_CircuitStatusType_choice[] = {
579 { 0, &hf_h460_3_serviceStatus, ASN1_EXTENSION_ROOT , dissect_h460_3_NULL },
580 { 1, &hf_h460_3_busyStatus , ASN1_EXTENSION_ROOT , dissect_h460_3_NULL },
581 { 0, NULL, 0, NULL }
584 static int
585 dissect_h460_3_CircuitStatusType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
586 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
587 ett_h460_3_CircuitStatusType, h460_3_CircuitStatusType_choice,
588 NULL);
590 return offset;
595 static int
596 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_) {
597 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
598 0U, 4095U, NULL, FALSE);
600 return offset;
605 static int
606 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_) {
607 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
608 NO_BOUND, NO_BOUND, FALSE, NULL);
610 return offset;
614 static const per_sequence_t h460_3_CircuitStatusMap_sequence[] = {
615 { &hf_h460_3_statusType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_3_CircuitStatusType },
616 { &hf_h460_3_baseCircuitID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CircuitIdentifier },
617 { &hf_h460_3_range , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_3_INTEGER_0_4095 },
618 { &hf_h460_3_status , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_3_OCTET_STRING },
619 { NULL, 0, 0, NULL }
622 static int
623 dissect_h460_3_CircuitStatusMap(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
624 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
625 ett_h460_3_CircuitStatusMap, h460_3_CircuitStatusMap_sequence);
627 return offset;
631 static const per_sequence_t h460_3_SEQUENCE_OF_CircuitStatusMap_sequence_of[1] = {
632 { &hf_h460_3_circuitStatusMap_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_3_CircuitStatusMap },
635 static int
636 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_) {
637 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
638 ett_h460_3_SEQUENCE_OF_CircuitStatusMap, h460_3_SEQUENCE_OF_CircuitStatusMap_sequence_of);
640 return offset;
644 static const per_sequence_t h460_3_CircuitStatus_sequence[] = {
645 { &hf_h460_3_circuitStatusMap, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_3_SEQUENCE_OF_CircuitStatusMap },
646 { NULL, 0, 0, NULL }
649 static int
650 dissect_h460_3_CircuitStatus(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
651 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
652 ett_h460_3_CircuitStatus, h460_3_CircuitStatus_sequence);
654 return offset;
657 /*--- PDUs ---*/
659 static int dissect_h460_3_CircuitStatus_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
660 int offset = 0;
661 asn1_ctx_t asn1_ctx;
662 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
663 offset = dissect_h460_3_CircuitStatus(tvb, offset, &asn1_ctx, tree, hf_h460_3_h460_3_CircuitStatus_PDU);
664 offset += 7; offset >>= 3;
665 return offset;
669 /* --- Module CALL-PRIORITY --- --- --- */
673 static int
674 dissect_h460_4_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
675 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
677 return offset;
681 static const value_string h460_4_T_priorityValue_vals[] = {
682 { 0, "emergencyAuthorized" },
683 { 1, "emergencyPublic" },
684 { 2, "high" },
685 { 3, "normal" },
686 { 0, NULL }
689 static const per_choice_t h460_4_T_priorityValue_choice[] = {
690 { 0, &hf_h460_4_emergencyAuthorized, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
691 { 1, &hf_h460_4_emergencyPublic, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
692 { 2, &hf_h460_4_high , ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
693 { 3, &hf_h460_4_normal , ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
694 { 0, NULL, 0, NULL }
697 static int
698 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_) {
699 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
700 ett_h460_4_T_priorityValue, h460_4_T_priorityValue_choice,
701 NULL);
703 return offset;
708 static int
709 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_) {
710 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
711 0U, 255U, NULL, FALSE);
713 return offset;
717 static const per_sequence_t h460_4_SEQUENCE_OF_ClearToken_sequence_of[1] = {
718 { &hf_h460_4_tokens_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_ClearToken },
721 static int
722 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_) {
723 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
724 ett_h460_4_SEQUENCE_OF_ClearToken, h460_4_SEQUENCE_OF_ClearToken_sequence_of);
726 return offset;
730 static const per_sequence_t h460_4_SEQUENCE_OF_CryptoToken_sequence_of[1] = {
731 { &hf_h460_4_cryptoTokens_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h235_CryptoToken },
734 static int
735 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_) {
736 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
737 ett_h460_4_SEQUENCE_OF_CryptoToken, h460_4_SEQUENCE_OF_CryptoToken_sequence_of);
739 return offset;
743 static const value_string h460_4_T_rejectReason_vals[] = {
744 { 0, "priorityUnavailable" },
745 { 1, "priorityUnauthorized" },
746 { 2, "priorityValueUnknown" },
747 { 0, NULL }
750 static const per_choice_t h460_4_T_rejectReason_choice[] = {
751 { 0, &hf_h460_4_priorityUnavailable, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
752 { 1, &hf_h460_4_priorityUnauthorized, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
753 { 2, &hf_h460_4_priorityValueUnknown, ASN1_EXTENSION_ROOT , dissect_h460_4_NULL },
754 { 0, NULL, 0, NULL }
757 static int
758 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_) {
759 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
760 ett_h460_4_T_rejectReason, h460_4_T_rejectReason_choice,
761 NULL);
763 return offset;
767 static const per_sequence_t h460_4_CallPriorityInfo_sequence[] = {
768 { &hf_h460_4_priorityValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_T_priorityValue },
769 { &hf_h460_4_priorityExtension, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_INTEGER_0_255 },
770 { &hf_h460_4_tokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_SEQUENCE_OF_ClearToken },
771 { &hf_h460_4_cryptoTokens , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_SEQUENCE_OF_CryptoToken },
772 { &hf_h460_4_rejectReason , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_4_T_rejectReason },
773 { NULL, 0, 0, NULL }
776 static int
777 dissect_h460_4_CallPriorityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
778 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
779 ett_h460_4_CallPriorityInfo, h460_4_CallPriorityInfo_sequence);
781 return offset;
786 static int
787 dissect_h460_4_X121CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
788 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
789 3, 3, FALSE, "0123456789", 10,
790 NULL);
792 return offset;
796 static const per_sequence_t h460_4_T_x121_sequence[] = {
797 { &hf_h460_4_x121CountryCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_X121CountryCode },
798 { NULL, 0, 0, NULL }
801 static int
802 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_) {
803 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
804 ett_h460_4_T_x121, h460_4_T_x121_sequence);
806 return offset;
811 static int
812 dissect_h460_4_E164CountryCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
813 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
814 3, 3, FALSE, "0123456789", 10,
815 NULL);
817 return offset;
822 static int
823 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_) {
824 offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,
825 1, 4, FALSE, "0123456789", 10,
826 NULL);
828 return offset;
832 static const per_sequence_t h460_4_T_e164_sequence[] = {
833 { &hf_h460_4_e164CountryCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_E164CountryCode },
834 { &hf_h460_4_identificationCode, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_T_identificationCode },
835 { NULL, 0, 0, NULL }
838 static int
839 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_) {
840 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
841 ett_h460_4_T_e164, h460_4_T_e164_sequence);
843 return offset;
847 static const value_string h460_4_T_numberingPlan_vals[] = {
848 { 0, "x121" },
849 { 1, "e164" },
850 { 0, NULL }
853 static const per_choice_t h460_4_T_numberingPlan_choice[] = {
854 { 0, &hf_h460_4_x121 , ASN1_EXTENSION_ROOT , dissect_h460_4_T_x121 },
855 { 1, &hf_h460_4_e164 , ASN1_EXTENSION_ROOT , dissect_h460_4_T_e164 },
856 { 0, NULL, 0, NULL }
859 static int
860 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_) {
861 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
862 ett_h460_4_T_numberingPlan, h460_4_T_numberingPlan_choice,
863 NULL);
865 return offset;
869 static const per_sequence_t h460_4_CountryInternationalNetworkCallOriginationIdentification_sequence[] = {
870 { &hf_h460_4_numberingPlan, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_4_T_numberingPlan },
871 { NULL, 0, 0, NULL }
874 static int
875 dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
876 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
877 ett_h460_4_CountryInternationalNetworkCallOriginationIdentification, h460_4_CountryInternationalNetworkCallOriginationIdentification_sequence);
879 return offset;
882 /*--- PDUs ---*/
884 static int dissect_h460_4_CallPriorityInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
885 int offset = 0;
886 asn1_ctx_t asn1_ctx;
887 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
888 offset = dissect_h460_4_CallPriorityInfo(tvb, offset, &asn1_ctx, tree, hf_h460_4_h460_4_CallPriorityInfo_PDU);
889 offset += 7; offset >>= 3;
890 return offset;
892 static int dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
893 int offset = 0;
894 asn1_ctx_t asn1_ctx;
895 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
896 offset = dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification(tvb, offset, &asn1_ctx, tree, hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU);
897 offset += 7; offset >>= 3;
898 return offset;
902 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
906 static int
907 dissect_h460_9_EstimatedEnd2EndDelay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
908 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
909 0U, 4294967295U, NULL, FALSE);
911 return offset;
916 static int
917 dissect_h460_9_CalculatedJitter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
918 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
919 0U, 4294967295U, NULL, FALSE);
921 return offset;
926 static int
927 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_) {
928 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
929 NO_BOUND, NO_BOUND, FALSE, NULL);
931 return offset;
935 static const per_sequence_t h460_9_Extension_sequence[] = {
936 { &hf_h460_9_extensionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_GenericIdentifier },
937 { &hf_h460_9_extensionContent, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_OCTET_STRING },
938 { NULL, 0, 0, NULL }
941 static int
942 dissect_h460_9_Extension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
943 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
944 ett_h460_9_Extension, h460_9_Extension_sequence);
946 return offset;
951 static int
952 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_) {
953 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
954 1U, 255U, NULL, FALSE);
956 return offset;
960 static const per_sequence_t h460_9_T_mediaSenderMeasures_sequence[] = {
961 { &hf_h460_9_worstEstimatedEnd2EndDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_EstimatedEnd2EndDelay },
962 { &hf_h460_9_meanEstimatedEnd2EndDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_EstimatedEnd2EndDelay },
963 { NULL, 0, 0, NULL }
966 static int
967 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_) {
968 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
969 ett_h460_9_T_mediaSenderMeasures, h460_9_T_mediaSenderMeasures_sequence);
971 return offset;
976 static int
977 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_) {
978 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
979 0U, 4294967295U, NULL, FALSE);
981 return offset;
986 static int
987 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_) {
988 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
989 0U, 65535U, NULL, FALSE);
991 return offset;
995 static const per_sequence_t h460_9_T_mediaReceiverMeasures_sequence[] = {
996 { &hf_h460_9_cumulativeNumberOfPacketsLost, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_4294967295 },
997 { &hf_h460_9_packetLostRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
998 { &hf_h460_9_worstJitter , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_CalculatedJitter },
999 { &hf_h460_9_estimatedThroughput, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_BandWidth },
1000 { &hf_h460_9_fractionLostRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1001 { &hf_h460_9_meanJitter , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_CalculatedJitter },
1002 { NULL, 0, 0, NULL }
1005 static int
1006 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_) {
1007 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1008 ett_h460_9_T_mediaReceiverMeasures, h460_9_T_mediaReceiverMeasures_sequence);
1010 return offset;
1014 static const per_sequence_t h460_9_SEQUENCE_OF_Extension_sequence_of[1] = {
1015 { &hf_h460_9_extensions_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_9_Extension },
1018 static int
1019 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_) {
1020 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1021 ett_h460_9_SEQUENCE_OF_Extension, h460_9_SEQUENCE_OF_Extension_sequence_of);
1023 return offset;
1027 static const per_sequence_t h460_9_RTCPMeasures_sequence[] = {
1028 { &hf_h460_9_rtpAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
1029 { &hf_h460_9_rtcpAddress , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportChannelInfo },
1030 { &hf_h460_9_sessionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_INTEGER_1_255 },
1031 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1032 { &hf_h460_9_mediaSenderMeasures, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_T_mediaSenderMeasures },
1033 { &hf_h460_9_mediaReceiverMeasures, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_T_mediaReceiverMeasures },
1034 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1035 { NULL, 0, 0, NULL }
1038 static int
1039 dissect_h460_9_RTCPMeasures(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1040 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1041 ett_h460_9_RTCPMeasures, h460_9_RTCPMeasures_sequence);
1043 return offset;
1047 static const per_sequence_t h460_9_SEQUENCE_OF_RTCPMeasures_sequence_of[1] = {
1048 { &hf_h460_9_mediaChannelsQoS_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_9_RTCPMeasures },
1051 static int
1052 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_) {
1053 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1054 ett_h460_9_SEQUENCE_OF_RTCPMeasures, h460_9_SEQUENCE_OF_RTCPMeasures_sequence_of);
1056 return offset;
1060 static const per_sequence_t h460_9_PerCallQoSReport_sequence[] = {
1061 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1062 { &hf_h460_9_callReferenceValue, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallReferenceValue },
1063 { &hf_h460_9_conferenceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_ConferenceIdentifier },
1064 { &hf_h460_9_callIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1065 { &hf_h460_9_mediaChannelsQoS, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_RTCPMeasures },
1066 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1067 { NULL, 0, 0, NULL }
1070 static int
1071 dissect_h460_9_PerCallQoSReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1072 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1073 ett_h460_9_PerCallQoSReport, h460_9_PerCallQoSReport_sequence);
1075 return offset;
1079 static const per_sequence_t h460_9_SEQUENCE_OF_PerCallQoSReport_sequence_of[1] = {
1080 { &hf_h460_9_perCallInfo_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_9_PerCallQoSReport },
1083 static int
1084 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_) {
1085 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1086 ett_h460_9_SEQUENCE_OF_PerCallQoSReport, h460_9_SEQUENCE_OF_PerCallQoSReport_sequence_of);
1088 return offset;
1092 static const per_sequence_t h460_9_PeriodicQoSMonReport_sequence[] = {
1093 { &hf_h460_9_perCallInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_SEQUENCE_OF_PerCallQoSReport },
1094 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1095 { NULL, 0, 0, NULL }
1098 static int
1099 dissect_h460_9_PeriodicQoSMonReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1100 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1101 ett_h460_9_PeriodicQoSMonReport, h460_9_PeriodicQoSMonReport_sequence);
1103 return offset;
1107 static const per_sequence_t h460_9_FinalQosMonReport_sequence[] = {
1108 { &hf_h460_9_mediaInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_SEQUENCE_OF_RTCPMeasures },
1109 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1110 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1111 { NULL, 0, 0, NULL }
1114 static int
1115 dissect_h460_9_FinalQosMonReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1116 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1117 ett_h460_9_FinalQosMonReport, h460_9_FinalQosMonReport_sequence);
1119 return offset;
1123 static const per_sequence_t h460_9_InterGKQosMonReport_sequence[] = {
1124 { &hf_h460_9_mediaInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_9_SEQUENCE_OF_RTCPMeasures },
1125 { &hf_h460_9_nonStandardData, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_NonStandardParameter },
1126 { &hf_h460_9_extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_SEQUENCE_OF_Extension },
1127 { NULL, 0, 0, NULL }
1130 static int
1131 dissect_h460_9_InterGKQosMonReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1132 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1133 ett_h460_9_InterGKQosMonReport, h460_9_InterGKQosMonReport_sequence);
1135 return offset;
1139 static const value_string h460_9_QosMonitoringReportData_vals[] = {
1140 { 0, "periodic" },
1141 { 1, "final" },
1142 { 2, "interGK" },
1143 { 0, NULL }
1146 static const per_choice_t h460_9_QosMonitoringReportData_choice[] = {
1147 { 0, &hf_h460_9_periodic , ASN1_EXTENSION_ROOT , dissect_h460_9_PeriodicQoSMonReport },
1148 { 1, &hf_h460_9_final , ASN1_EXTENSION_ROOT , dissect_h460_9_FinalQosMonReport },
1149 { 2, &hf_h460_9_interGK , ASN1_EXTENSION_ROOT , dissect_h460_9_InterGKQosMonReport },
1150 { 0, NULL, 0, NULL }
1153 static int
1154 dissect_h460_9_QosMonitoringReportData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1155 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1156 ett_h460_9_QosMonitoringReportData, h460_9_QosMonitoringReportData_choice,
1157 NULL);
1159 return offset;
1164 static int
1165 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_) {
1166 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1167 0U, 255U, NULL, FALSE);
1169 return offset;
1173 static const per_sequence_t h460_9_BurstMetrics_sequence[] = {
1174 { &hf_h460_9_gmin , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1175 { &hf_h460_9_burstLossDensity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1176 { &hf_h460_9_gapLossDensity, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1177 { &hf_h460_9_burstDuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1178 { &hf_h460_9_gapDuration , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1179 { NULL, 0, 0, NULL }
1182 static int
1183 dissect_h460_9_BurstMetrics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1184 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1185 ett_h460_9_BurstMetrics, h460_9_BurstMetrics_sequence);
1187 return offset;
1192 static int
1193 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_) {
1194 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1195 -127, 10U, NULL, FALSE);
1197 return offset;
1202 static int
1203 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_) {
1204 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1205 -127, 0U, NULL, FALSE);
1207 return offset;
1212 static int
1213 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_) {
1214 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1215 0U, 127U, NULL, FALSE);
1217 return offset;
1222 static int
1223 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_) {
1224 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1225 0U, 100U, NULL, FALSE);
1227 return offset;
1232 static int
1233 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_) {
1234 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1235 10U, 50U, NULL, FALSE);
1237 return offset;
1242 static int
1243 dissect_h460_9_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1244 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1246 return offset;
1250 static const value_string h460_9_PLCtypes_vals[] = {
1251 { 0, "unspecified" },
1252 { 1, "disabled" },
1253 { 2, "enhanced" },
1254 { 3, "standard" },
1255 { 0, NULL }
1258 static const per_choice_t h460_9_PLCtypes_choice[] = {
1259 { 0, &hf_h460_9_unspecified , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1260 { 1, &hf_h460_9_disabled , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1261 { 2, &hf_h460_9_enhanced , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1262 { 3, &hf_h460_9_standard , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1263 { 0, NULL, 0, NULL }
1266 static int
1267 dissect_h460_9_PLCtypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1268 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1269 ett_h460_9_PLCtypes, h460_9_PLCtypes_choice,
1270 NULL);
1272 return offset;
1276 static const value_string h460_9_JitterBufferTypes_vals[] = {
1277 { 0, "unknown" },
1278 { 1, "reserved" },
1279 { 2, "nonadaptive" },
1280 { 3, "adaptive" },
1281 { 0, NULL }
1284 static const per_choice_t h460_9_JitterBufferTypes_choice[] = {
1285 { 0, &hf_h460_9_unknown , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1286 { 1, &hf_h460_9_reserved , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1287 { 2, &hf_h460_9_nonadaptive , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1288 { 3, &hf_h460_9_adaptive , ASN1_EXTENSION_ROOT , dissect_h460_9_NULL },
1289 { 0, NULL, 0, NULL }
1292 static int
1293 dissect_h460_9_JitterBufferTypes(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1294 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1295 ett_h460_9_JitterBufferTypes, h460_9_JitterBufferTypes_choice,
1296 NULL);
1298 return offset;
1303 static int
1304 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_) {
1305 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1306 0U, 15U, NULL, FALSE);
1308 return offset;
1312 static const per_sequence_t h460_9_JitterBufferParms_sequence[] = {
1313 { &hf_h460_9_jitterBufferType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_JitterBufferTypes },
1314 { &hf_h460_9_jitterBufferAdaptRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_15 },
1315 { &hf_h460_9_jitterBufferNominalSize, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1316 { &hf_h460_9_jitterBufferMaxSize, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1317 { &hf_h460_9_jitterBufferAbsoluteMax, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1318 { NULL, 0, 0, NULL }
1321 static int
1322 dissect_h460_9_JitterBufferParms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1323 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1324 ett_h460_9_JitterBufferParms, h460_9_JitterBufferParms_sequence);
1326 return offset;
1330 static const per_sequence_t h460_9_ExtendedRTPMetrics_sequence[] = {
1331 { &hf_h460_9_networkPacketLossRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1332 { &hf_h460_9_jitterBufferDiscardRate, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_255 },
1333 { &hf_h460_9_burstMetrics , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_BurstMetrics },
1334 { &hf_h460_9_rtcpRoundTripDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1335 { &hf_h460_9_endSystemDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_65535 },
1336 { &hf_h460_9_signalLevel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_M127_10 },
1337 { &hf_h460_9_noiseLevel , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_M127_0 },
1338 { &hf_h460_9_residualEchoReturnLoss, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_127 },
1339 { &hf_h460_9_rFactor , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_100 },
1340 { &hf_h460_9_extRFactor , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_0_100 },
1341 { &hf_h460_9_estimatedMOSLQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_10_50 },
1342 { &hf_h460_9_estimatedMOSCQ, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_INTEGER_10_50 },
1343 { &hf_h460_9_plcType , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_PLCtypes },
1344 { &hf_h460_9_jitterBufferParms, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_9_JitterBufferParms },
1345 { NULL, 0, 0, NULL }
1348 static int
1349 dissect_h460_9_ExtendedRTPMetrics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1350 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1351 ett_h460_9_ExtendedRTPMetrics, h460_9_ExtendedRTPMetrics_sequence);
1353 return offset;
1356 /*--- PDUs ---*/
1358 static int dissect_h460_9_QosMonitoringReportData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1359 int offset = 0;
1360 asn1_ctx_t asn1_ctx;
1361 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1362 offset = dissect_h460_9_QosMonitoringReportData(tvb, offset, &asn1_ctx, tree, hf_h460_9_h460_9_QosMonitoringReportData_PDU);
1363 offset += 7; offset >>= 3;
1364 return offset;
1366 static int dissect_h460_9_ExtendedRTPMetrics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1367 int offset = 0;
1368 asn1_ctx_t asn1_ctx;
1369 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1370 offset = dissect_h460_9_ExtendedRTPMetrics(tvb, offset, &asn1_ctx, tree, hf_h460_9_h460_9_ExtendedRTPMetrics_PDU);
1371 offset += 7; offset >>= 3;
1372 return offset;
1376 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
1380 static int
1381 dissect_h460_10_CallPartyCategory(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1382 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1383 0U, 255U, NULL, FALSE);
1385 return offset;
1390 static int
1391 dissect_h460_10_OriginatingLineInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1392 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1393 0U, 255U, NULL, FALSE);
1395 return offset;
1399 static const per_sequence_t h460_10_CallPartyCategoryInfo_sequence[] = {
1400 { &hf_h460_10_callPartyCategory, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_10_CallPartyCategory },
1401 { &hf_h460_10_originatingLineInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_10_OriginatingLineInfo },
1402 { NULL, 0, 0, NULL }
1405 static int
1406 dissect_h460_10_CallPartyCategoryInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1407 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1408 ett_h460_10_CallPartyCategoryInfo, h460_10_CallPartyCategoryInfo_sequence);
1410 return offset;
1413 /*--- PDUs ---*/
1415 static int dissect_h460_10_CallPartyCategoryInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1416 int offset = 0;
1417 asn1_ctx_t asn1_ctx;
1418 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1419 offset = dissect_h460_10_CallPartyCategoryInfo(tvb, offset, &asn1_ctx, tree, hf_h460_10_h460_10_CallPartyCategoryInfo_PDU);
1420 offset += 7; offset >>= 3;
1421 return offset;
1425 /* --- Module MLPP --- --- --- */
1428 static const value_string h460_14_MlppPrecedence_vals[] = {
1429 { 0, "flashOveride" },
1430 { 1, "flash" },
1431 { 2, "immediate" },
1432 { 3, "priority" },
1433 { 4, "routine" },
1434 { 0, NULL }
1438 static int
1439 dissect_h460_14_MlppPrecedence(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1440 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1441 5, NULL, TRUE, 0, NULL);
1443 return offset;
1447 static const value_string h460_14_MlppReason_vals[] = {
1448 { 8, "preemptionNoReservation" },
1449 { 9, "preemptionReservation" },
1450 { 46, "callBlocked" },
1451 { 0, NULL }
1454 static guint32 h460_14_MlppReason_value_map[3+0] = {8, 9, 46};
1456 static int
1457 dissect_h460_14_MlppReason(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1458 offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index,
1459 3, NULL, TRUE, 0, h460_14_MlppReason_value_map);
1461 return offset;
1466 static int
1467 dissect_h460_14_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1468 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1470 return offset;
1474 static const value_string h460_14_MlppNotification_vals[] = {
1475 { 0, "preemptionPending" },
1476 { 1, "preemptionInProgress" },
1477 { 2, "preemptionEnd" },
1478 { 3, "preemptionComplete" },
1479 { 0, NULL }
1482 static const per_choice_t h460_14_MlppNotification_choice[] = {
1483 { 0, &hf_h460_14_preemptionPending, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1484 { 1, &hf_h460_14_preemptionInProgress, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1485 { 2, &hf_h460_14_preemptionEnd, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1486 { 3, &hf_h460_14_preemptionComplete, ASN1_EXTENSION_ROOT , dissect_h460_14_NULL },
1487 { 0, NULL, 0, NULL }
1490 static int
1491 dissect_h460_14_MlppNotification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1492 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1493 ett_h460_14_MlppNotification, h460_14_MlppNotification_choice,
1494 NULL);
1496 return offset;
1501 static int
1502 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_) {
1503 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1504 0U, 255U, NULL, FALSE);
1506 return offset;
1510 static const per_sequence_t h460_14_AlternateParty_sequence[] = {
1511 { &hf_h460_14_altID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_AliasAddress },
1512 { &hf_h460_14_altTimer , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_INTEGER_0_255 },
1513 { NULL, 0, 0, NULL }
1516 static int
1517 dissect_h460_14_AlternateParty(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1518 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1519 ett_h460_14_AlternateParty, h460_14_AlternateParty_sequence);
1521 return offset;
1525 static const per_sequence_t h460_14_ReleaseCall_sequence[] = {
1526 { &hf_h460_14_preemptCallID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1527 { &hf_h460_14_releaseReason, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_14_MlppReason },
1528 { &hf_h460_14_releaseDelay, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_INTEGER_0_255 },
1529 { NULL, 0, 0, NULL }
1532 static int
1533 dissect_h460_14_ReleaseCall(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1534 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1535 ett_h460_14_ReleaseCall, h460_14_ReleaseCall_sequence);
1537 return offset;
1541 static const per_sequence_t h460_14_MLPPInfo_sequence[] = {
1542 { &hf_h460_14_precedence , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_MlppPrecedence },
1543 { &hf_h460_14_mlppReason , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_MlppReason },
1544 { &hf_h460_14_mlppNotification, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_MlppNotification },
1545 { &hf_h460_14_alternateParty, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_AlternateParty },
1546 { &hf_h460_14_releaseCall , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_14_ReleaseCall },
1547 { NULL, 0, 0, NULL }
1550 static int
1551 dissect_h460_14_MLPPInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1552 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1553 ett_h460_14_MLPPInfo, h460_14_MLPPInfo_sequence);
1555 return offset;
1558 /*--- PDUs ---*/
1560 static int dissect_h460_14_MLPPInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1561 int offset = 0;
1562 asn1_ctx_t asn1_ctx;
1563 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1564 offset = dissect_h460_14_MLPPInfo(tvb, offset, &asn1_ctx, tree, hf_h460_14_h460_14_MLPPInfo_PDU);
1565 offset += 7; offset >>= 3;
1566 return offset;
1570 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
1573 static const per_sequence_t h460_15_SEQUENCE_OF_TransportAddress_sequence_of[1] = {
1574 { &hf_h460_15_channelResumeAddress_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
1577 static int
1578 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_) {
1579 offset = dissect_per_sequence_of(tvb, offset, actx, tree, hf_index,
1580 ett_h460_15_SEQUENCE_OF_TransportAddress, h460_15_SEQUENCE_OF_TransportAddress_sequence_of);
1582 return offset;
1587 static int
1588 dissect_h460_15_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1589 offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
1591 return offset;
1596 static int
1597 dissect_h460_15_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1598 offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
1600 return offset;
1604 static const per_sequence_t h460_15_ChannelSuspendRequest_sequence[] = {
1605 { &hf_h460_15_channelResumeAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_SEQUENCE_OF_TransportAddress },
1606 { &hf_h460_15_immediateResume, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_BOOLEAN },
1607 { &hf_h460_15_resetH245 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_15_NULL },
1608 { NULL, 0, 0, NULL }
1611 static int
1612 dissect_h460_15_ChannelSuspendRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1613 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1614 ett_h460_15_ChannelSuspendRequest, h460_15_ChannelSuspendRequest_sequence);
1616 return offset;
1620 static const per_sequence_t h460_15_ChannelSuspendResponse_sequence[] = {
1621 { &hf_h460_15_okToSuspend , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_BOOLEAN },
1622 { &hf_h460_15_channelResumeAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_SEQUENCE_OF_TransportAddress },
1623 { NULL, 0, 0, NULL }
1626 static int
1627 dissect_h460_15_ChannelSuspendResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1628 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1629 ett_h460_15_ChannelSuspendResponse, h460_15_ChannelSuspendResponse_sequence);
1631 return offset;
1635 static const per_sequence_t h460_15_ChannelSuspendConfirm_sequence[] = {
1636 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1639 static int
1640 dissect_h460_15_ChannelSuspendConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1641 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1642 ett_h460_15_ChannelSuspendConfirm, h460_15_ChannelSuspendConfirm_sequence);
1644 return offset;
1648 static const per_sequence_t h460_15_ChannelSuspendCancel_sequence[] = {
1649 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1652 static int
1653 dissect_h460_15_ChannelSuspendCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1654 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1655 ett_h460_15_ChannelSuspendCancel, h460_15_ChannelSuspendCancel_sequence);
1657 return offset;
1662 static int
1663 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_) {
1664 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1665 0U, 4294967295U, NULL, FALSE);
1667 return offset;
1671 static const per_sequence_t h460_15_ChannelResumeRequest_sequence[] = {
1672 { &hf_h460_15_randomNumber, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_INTEGER_0_4294967295 },
1673 { &hf_h460_15_resetH245 , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_15_NULL },
1674 { NULL, 0, 0, NULL }
1677 static int
1678 dissect_h460_15_ChannelResumeRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1679 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1680 ett_h460_15_ChannelResumeRequest, h460_15_ChannelResumeRequest_sequence);
1682 return offset;
1686 static const per_sequence_t h460_15_ChannelResumeResponse_sequence[] = {
1687 { NULL, ASN1_EXTENSION_ROOT, 0, NULL }
1690 static int
1691 dissect_h460_15_ChannelResumeResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1692 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1693 ett_h460_15_ChannelResumeResponse, h460_15_ChannelResumeResponse_sequence);
1695 return offset;
1699 static const value_string h460_15_T_signallingChannelData_vals[] = {
1700 { 0, "channelSuspendRequest" },
1701 { 1, "channelSuspendResponse" },
1702 { 2, "channelSuspendConfirm" },
1703 { 3, "channelSuspendCancel" },
1704 { 4, "channelResumeRequest" },
1705 { 5, "channelResumeResponse" },
1706 { 0, NULL }
1709 static const per_choice_t h460_15_T_signallingChannelData_choice[] = {
1710 { 0, &hf_h460_15_channelSuspendRequest, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendRequest },
1711 { 1, &hf_h460_15_channelSuspendResponse, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendResponse },
1712 { 2, &hf_h460_15_channelSuspendConfirm, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendConfirm },
1713 { 3, &hf_h460_15_channelSuspendCancel, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelSuspendCancel },
1714 { 4, &hf_h460_15_channelResumeRequest, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelResumeRequest },
1715 { 5, &hf_h460_15_channelResumeResponse, ASN1_EXTENSION_ROOT , dissect_h460_15_ChannelResumeResponse },
1716 { 0, NULL, 0, NULL }
1719 static int
1720 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_) {
1721 offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1722 ett_h460_15_T_signallingChannelData, h460_15_T_signallingChannelData_choice,
1723 NULL);
1725 return offset;
1729 static const per_sequence_t h460_15_SignallingChannelData_sequence[] = {
1730 { &hf_h460_15_signallingChannelData, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_15_T_signallingChannelData },
1731 { NULL, 0, 0, NULL }
1734 static int
1735 dissect_h460_15_SignallingChannelData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1736 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1737 ett_h460_15_SignallingChannelData, h460_15_SignallingChannelData_sequence);
1739 return offset;
1742 /*--- PDUs ---*/
1744 static int dissect_h460_15_SignallingChannelData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1745 int offset = 0;
1746 asn1_ctx_t asn1_ctx;
1747 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1748 offset = dissect_h460_15_SignallingChannelData(tvb, offset, &asn1_ctx, tree, hf_h460_15_h460_15_SignallingChannelData_PDU);
1749 offset += 7; offset >>= 3;
1750 return offset;
1754 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
1757 static const per_sequence_t h460_18_IncomingCallIndication_sequence[] = {
1758 { &hf_h460_18_callSignallingAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TransportAddress },
1759 { &hf_h460_18_callID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_CallIdentifier },
1760 { NULL, 0, 0, NULL }
1763 static int
1764 dissect_h460_18_IncomingCallIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1765 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1766 ett_h460_18_IncomingCallIndication, h460_18_IncomingCallIndication_sequence);
1768 return offset;
1772 static const per_sequence_t h460_18_LRQKeepAliveData_sequence[] = {
1773 { &hf_h460_18_lrqKeepAliveInterval, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h225_TimeToLive },
1774 { NULL, 0, 0, NULL }
1777 static int
1778 dissect_h460_18_LRQKeepAliveData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1779 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1780 ett_h460_18_LRQKeepAliveData, h460_18_LRQKeepAliveData_sequence);
1782 return offset;
1785 /*--- PDUs ---*/
1787 static int dissect_h460_18_IncomingCallIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1788 int offset = 0;
1789 asn1_ctx_t asn1_ctx;
1790 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1791 offset = dissect_h460_18_IncomingCallIndication(tvb, offset, &asn1_ctx, tree, hf_h460_18_h460_18_IncomingCallIndication_PDU);
1792 offset += 7; offset >>= 3;
1793 return offset;
1795 static int dissect_h460_18_LRQKeepAliveData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1796 int offset = 0;
1797 asn1_ctx_t asn1_ctx;
1798 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1799 offset = dissect_h460_18_LRQKeepAliveData(tvb, offset, &asn1_ctx, tree, hf_h460_18_h460_18_LRQKeepAliveData_PDU);
1800 offset += 7; offset >>= 3;
1801 return offset;
1805 /* --- Module MEDIA-TRAVERSAL --- --- --- */
1809 static int
1810 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_) {
1811 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1812 0U, 4294967295U, NULL, FALSE);
1814 return offset;
1819 static int
1820 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_) {
1821 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1822 0U, 127U, NULL, FALSE);
1824 return offset;
1828 static const per_sequence_t h460_19_TraversalParameters_sequence[] = {
1829 { &hf_h460_19_multiplexedMediaChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
1830 { &hf_h460_19_multiplexedMediaControlChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
1831 { &hf_h460_19_multiplexID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_19_INTEGER_0_4294967295 },
1832 { &hf_h460_19_keepAliveChannel, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h245_TransportAddress },
1833 { &hf_h460_19_keepAlivePayloadType, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_19_INTEGER_0_127 },
1834 { &hf_h460_19_keepAliveInterval, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h225_TimeToLive },
1835 { NULL, 0, 0, NULL }
1838 static int
1839 dissect_h460_19_TraversalParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1840 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1841 ett_h460_19_TraversalParameters, h460_19_TraversalParameters_sequence);
1843 return offset;
1846 /*--- PDUs ---*/
1848 static int dissect_h460_19_TraversalParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1849 int offset = 0;
1850 asn1_ctx_t asn1_ctx;
1851 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1852 offset = dissect_h460_19_TraversalParameters(tvb, offset, &asn1_ctx, tree, hf_h460_19_h460_19_TraversalParameters_PDU);
1853 offset += 7; offset >>= 3;
1854 return offset;
1858 /* --- Module MESSAGE-BROADCAST --- --- --- */
1861 static const per_sequence_t h460_21_SEQUENCE_SIZE_1_256_OF_Capability_sequence_of[1] = {
1862 { &hf_h460_21_capabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h245_Capability },
1865 static int
1866 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_) {
1867 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1868 ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability, h460_21_SEQUENCE_SIZE_1_256_OF_Capability_sequence_of,
1869 1, 256, FALSE);
1871 return offset;
1876 static int
1877 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_) {
1878 offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1879 1U, 65535U, NULL, FALSE);
1881 return offset;
1885 static const per_sequence_t h460_21_ReceiveCapabilities_sequence[] = {
1886 { &hf_h460_21_capabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_21_SEQUENCE_SIZE_1_256_OF_Capability },
1887 { &hf_h460_21_maxGroups , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_21_INTEGER_1_65535 },
1888 { NULL, 0, 0, NULL }
1891 static int
1892 dissect_h460_21_ReceiveCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1893 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1894 ett_h460_21_ReceiveCapabilities, h460_21_ReceiveCapabilities_sequence);
1896 return offset;
1901 static int
1902 dissect_h460_21_GloballyUniqueID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1903 offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1904 16, 16, FALSE, NULL);
1906 return offset;
1910 static const per_sequence_t h460_21_TransmitCapabilities_sequence[] = {
1911 { &hf_h460_21_groupIdentifer, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h460_21_GloballyUniqueID },
1912 { &hf_h460_21_capability , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_Capability },
1913 { &hf_h460_21_sourceAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_h245_UnicastAddress },
1914 { NULL, 0, 0, NULL }
1917 static int
1918 dissect_h460_21_TransmitCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1919 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1920 ett_h460_21_TransmitCapabilities, h460_21_TransmitCapabilities_sequence);
1922 return offset;
1926 static const per_sequence_t h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities_sequence_of[1] = {
1927 { &hf_h460_21_transmitCapabilities_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_h460_21_TransmitCapabilities },
1930 static int
1931 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_) {
1932 offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index,
1933 ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities, h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities_sequence_of,
1934 1, 256, FALSE);
1936 return offset;
1940 static const per_sequence_t h460_21_CapabilityAdvertisement_sequence[] = {
1941 { &hf_h460_21_receiveCapabilities, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_21_ReceiveCapabilities },
1942 { &hf_h460_21_transmitCapabilities, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities },
1943 { NULL, 0, 0, NULL }
1946 static int
1947 dissect_h460_21_CapabilityAdvertisement(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1948 offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1949 ett_h460_21_CapabilityAdvertisement, h460_21_CapabilityAdvertisement_sequence);
1951 return offset;
1954 /*--- PDUs ---*/
1956 static int dissect_h460_21_CapabilityAdvertisement_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
1957 int offset = 0;
1958 asn1_ctx_t asn1_ctx;
1959 asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
1960 offset = dissect_h460_21_CapabilityAdvertisement(tvb, offset, &asn1_ctx, tree, hf_h460_21_h460_21_CapabilityAdvertisement_PDU);
1961 offset += 7; offset >>= 3;
1962 return offset;
1966 /*--- End of included file: packet-h460-fn.c ---*/
1967 #line 56 "../../asn1/h460/packet-h460-template.c"
1969 static int
1970 dissect_ies(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
1971 int offset = 0;
1973 if (q931_ie_handle) {
1974 call_dissector(q931_ie_handle, tvb, pinfo, tree);
1975 offset += tvb_length_remaining(tvb, offset);
1977 return offset;
1980 static int
1981 dissect_ras(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) {
1982 int offset = 0;
1984 if (h225_ras_handle) {
1985 call_dissector(h225_ras_handle, tvb, pinfo, tree);
1986 offset += tvb_length_remaining(tvb, offset);
1988 return offset;
1991 typedef struct _h460_feature_t {
1992 guint32 opt;
1993 const gchar *id;
1994 const gchar *name;
1995 new_dissector_t content_pdu;
1996 /*---*/
1997 const gchar *key_gd;
1998 const gchar *key_fd;
1999 const gchar *key_gm;
2000 const gchar *key_gi;
2001 dissector_handle_t content_hnd;
2002 } h460_feature_t;
2004 /* Fill in the items after content_pdu */
2005 #define FFILL NULL, NULL, NULL, NULL, NULL
2007 /* options */
2008 #define GD 0x01 /* present in H.225 GenericData */
2009 #define FD 0x02 /* present in H.225 FeatureDescriptor */
2010 #define GM 0x04 /* present in H.245 GenericMessage */
2011 #define GI 0x08 /* present in H.245 GenericInformation */
2013 static h460_feature_t h460_feature_tab[] = {
2014 /* H.460.3 */
2015 { GD|FD, "2", "Number Portability", NULL, FFILL },
2016 { GD|FD, "2/1", "NumberPortabilityData", dissect_h460_2_NumberPortabilityInfo_PDU, FFILL },
2017 /* H.460.3 */
2018 { GD|FD, "3", "Circuit Status", NULL, FFILL },
2019 { GD|FD, "3/1", "Circuit Status Map", dissect_h460_3_CircuitStatus_PDU, FFILL },
2020 /* H.460.4 */
2021 { GD|FD, "4", "CallPriorityDesignation", NULL, FFILL },
2022 { GD|FD, "4/1", "CallPriorityRequest", dissect_h460_4_CallPriorityInfo_PDU, FFILL },
2023 { GD|FD, "4/2", "CallPriorityConfirm", dissect_h460_4_CallPriorityInfo_PDU, FFILL },
2024 { GD|FD, "4/3", "Country/InternationalNetworkCallOriginationRequest", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL },
2025 { GD|FD, "4/4", "Country/InternationalNetworkCallOriginationConfirm", dissect_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU, FFILL },
2026 /* H.460.5 */
2027 { GD|FD, "5", "DuplicateIEs", NULL, FFILL },
2028 { GD|FD, "5/1", "IEsString", dissect_ies, FFILL },
2029 /* H.460.6 */
2030 { GD|FD, "6", "Extended Fast Connect", NULL, FFILL },
2031 { GD|FD, "6/1", "EFC Proposal", NULL, FFILL },
2032 { GD|FD, "6/2", "EFC Close All Media Channels", NULL, FFILL },
2033 { GD|FD, "6/3", "EFC Request New Proposals", NULL, FFILL },
2034 { GD|FD, "6/4", "EFC Require Symmetric Operation", NULL, FFILL },
2035 /* H.460.7 */
2036 { GD|FD, "7", "Digit Maps", NULL, FFILL },
2037 { FD, "7/1", "Digit Maps Length", NULL, FFILL },
2038 { FD, "7/2", "Digit Map Length for Overlapped Sending", NULL, FFILL },
2039 { FD, "7/3", "HTTP Digit Maps Download Capability", NULL, FFILL },
2040 { GD , "7/1", "Start Timer", NULL, FFILL },
2041 { GD , "7/2", "Short Timer", NULL, FFILL },
2042 { GD , "7/3", "Long Timer", NULL, FFILL },
2043 { GD , "7/4", "Digit Map String", NULL, FFILL },
2044 { GD , "7/5", "ToN Associated Digit Map", NULL, FFILL },
2045 { GD , "7/5/1", "Type of Number", NULL, FFILL },
2046 { GD , "7/5/2", "Digit Map Strings for ToN", NULL, FFILL },
2047 { GD , "7/6", "Digit Map URL", NULL, FFILL },
2048 /* H.460.8 */
2049 { GD|FD, "8", "Querying for Alternate Routes", NULL, FFILL },
2050 { GD|FD, "8/1", "Query Count", NULL, FFILL },
2051 { GD|FD, "8/2", "Call Termination Cause", NULL, FFILL },
2052 /* H.460.9 */
2053 { GD|FD, "9", "QoS-monitoring Reporting", NULL, FFILL },
2054 { GD|FD, "9/0", "qosMonitoringFinalOnly", NULL, FFILL },
2055 { GD|FD, "9/1", "qosMonitoringReportData", dissect_h460_9_QosMonitoringReportData_PDU, FFILL },
2056 { GD|FD, "9/2", "qosMonitoringExtendedRTPMetrics", dissect_h460_9_ExtendedRTPMetrics_PDU, FFILL },
2057 /* H.460.10 */
2058 { GD|FD, "10", "Call Party Category", NULL, FFILL },
2059 { GD|FD, "10/1", "Call party category info", dissect_h460_10_CallPartyCategoryInfo_PDU, FFILL },
2060 /* H.460.11 */
2061 { GD|FD, "11", "Delayed Call Establishment", NULL, FFILL },
2062 { GD|FD, "11/1", "Delay Point Indicator", NULL, FFILL },
2063 { GD|FD, "11/2", "Implicit DCE Release", NULL, FFILL },
2064 { GD|FD, "11/3", "Delay Point Reached", NULL, FFILL },
2065 { GD|FD, "11/4", "DCE Release", NULL, FFILL },
2066 /* H.460.12 */
2067 { GD|FD, "12", "Glare Control Indicator", NULL, FFILL },
2068 { GD|FD, "12/1", "Glare Control Indicator Parameter", NULL, FFILL },
2069 /* H.460.13 */
2070 { GD|FD, "13", "Called User Release Control", NULL, FFILL },
2071 { GD|FD, "13/1", "Called User Release Control", NULL, FFILL },
2072 /* H.460.14 */
2073 { GD|FD, "14", "Multi-Level Precedence and Preemption", NULL, FFILL },
2074 { GD|FD, "14/1", "MLPP Information", dissect_h460_14_MLPPInfo_PDU, FFILL },
2075 /* H.460.15 */
2076 { GD|FD, "15", "Call signalling transport channel suspension and redirection", NULL, FFILL },
2077 { GD|FD, "15/1", "Signalling channel suspend and redirect", dissect_h460_15_SignallingChannelData_PDU, FFILL },
2078 /* H.460.16 */
2079 { GD|FD, "16", "Multiple-message Release Sequence", NULL, FFILL },
2080 { GD|FD, "16/1", "MMRS use required", NULL, FFILL },
2081 { GD|FD, "16/2", "MMRS procedure", NULL, FFILL },
2082 { GD|FD, "16/3", "MMRS additional IEs", dissect_ies, FFILL },
2083 /* H.460.17 */
2084 { GD|FD, "17", "RAS over H.225.0", NULL, FFILL },
2085 { GD|FD, "17/1", "RAS message", dissect_ras, FFILL },
2086 /* H.460.18 */
2087 { GD|FD , "18", "Signalling Traversal", NULL, FFILL },
2088 { GD|FD , "18/1", "IncomingCallIndication", dissect_h460_18_IncomingCallIndication_PDU, FFILL },
2089 { GD|FD , "18/2", "LRQKeepAliveData", dissect_h460_18_LRQKeepAliveData_PDU, FFILL },
2090 { GM, "0.0.8.460.18.0.1", "Signalling Traversal", NULL, FFILL },
2091 { GM, "0.0.8.460.18.0.1-1", "connectionCorrelation", NULL, FFILL },
2092 { GM, "0.0.8.460.18.0.1-1/1", "callIdentifier", NULL, FFILL },
2093 { GM, "0.0.8.460.18.0.1-1/2", "answerCall", NULL, FFILL },
2094 /* H.460.19 */
2095 { GD|FD , "19", "mediaNATFWTraversal", NULL, FFILL },
2096 { GD|FD , "19/1", "supportTransmitMultiplexedMedia", NULL, FFILL },
2097 { GD|FD , "19/2", "mediaTraversalServer", NULL, FFILL },
2098 { GI, "0.0.8.460.19.0.1", "mediaNATFWTraversal", NULL, FFILL },
2099 { GI, "0.0.8.460.19.0.1/1", "Traversal Parameters", dissect_h460_19_TraversalParameters_PDU, FFILL },
2100 /* H.460.20 */
2101 { GD|FD, "20", "LocationSourceAddress", NULL, FFILL },
2102 { GD|FD, "20/1", "LocationSourceAddress", dissect_h225_ExtendedAliasAddress_PDU, FFILL },
2103 /* H.460.21 */
2104 { GD|FD, "21", "Message Broadcast", NULL, FFILL },
2105 { GD|FD, "21/1", "MessageBroadcastParameter", dissect_h460_21_CapabilityAdvertisement_PDU, FFILL },
2106 /* H.460.22 */
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;
2118 h460_feature_t *f;
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; }
2126 return ftr;
2129 /*--- dissect_h460_name -------------------------------------------*/
2130 static int
2131 dissect_h460_name(tvbuff_t *tvb _U_, packet_info *pinfo, proto_tree *tree, void *data) {
2132 int offset = 0;
2133 asn1_ctx_t *actx = get_asn1_ctx(data);
2134 h460_feature_t *ftr;
2136 DISSECTOR_ASSERT(actx);
2137 if (tree) {
2138 /* DEBUG */ /*proto_tree_add_text(tree, tvb, 0, 0, "*** DEBUG dissect_h460_name: %s", pinfo->match_string);*/
2139 ftr = find_ftr(pinfo->match_string);
2140 /* DEBUG */ /*proto_tree_add_text(tree, tvb, 0, 0, "*** DEBUG dissect_h460_name: ftr %s", (ftr)?ftr->name:"-none-");*/
2141 if (ftr) {
2142 proto_item_append_text(actx->created_item, " - %s", ftr->name);
2143 proto_item_append_text(proto_item_get_parent(proto_tree_get_parent(tree)), ": %s", ftr->name);
2144 } else {
2145 proto_item_append_text(actx->created_item, " - unknown(%s)", pinfo->match_string);
2149 return offset;
2152 /*--- proto_register_h460 ----------------------------------------------*/
2153 void proto_register_h460(void) {
2154 h460_feature_t *ftr;
2156 /* List of fields */
2157 static hf_register_info hf[] = {
2159 /*--- Included file: packet-h460-hfarr.c ---*/
2160 #line 1 "../../asn1/h460/packet-h460-hfarr.c"
2162 /* --- Module NUMBER-PORTABILITY --- --- --- */
2164 { &hf_h460_2_h460_2_NumberPortabilityInfo_PDU,
2165 { "NumberPortabilityInfo", "h460.2.NumberPortabilityInfo",
2166 FT_UINT32, BASE_DEC, VALS(h460_2_NumberPortabilityInfo_vals), 0,
2167 NULL, HFILL }},
2168 { &hf_h460_2_numberPortabilityRejectReason,
2169 { "numberPortabilityRejectReason", "h460.2.numberPortabilityRejectReason",
2170 FT_UINT32, BASE_DEC, VALS(h460_2_NumberPortabilityRejectReason_vals), 0,
2171 NULL, HFILL }},
2172 { &hf_h460_2_nUMBERPORTABILITYDATA,
2173 { "nUMBERPORTABILITYDATA", "h460.2.nUMBERPORTABILITYDATA_element",
2174 FT_NONE, BASE_NONE, NULL, 0,
2175 NULL, HFILL }},
2176 { &hf_h460_2_addressTranslated,
2177 { "addressTranslated", "h460.2.addressTranslated_element",
2178 FT_NONE, BASE_NONE, NULL, 0,
2179 NULL, HFILL }},
2180 { &hf_h460_2_portedAddress,
2181 { "portedAddress", "h460.2.portedAddress_element",
2182 FT_NONE, BASE_NONE, NULL, 0,
2183 "PortabilityAddress", HFILL }},
2184 { &hf_h460_2_routingAddress,
2185 { "routingAddress", "h460.2.routingAddress_element",
2186 FT_NONE, BASE_NONE, NULL, 0,
2187 "PortabilityAddress", HFILL }},
2188 { &hf_h460_2_regionalParams,
2189 { "regionalParams", "h460.2.regionalParams_element",
2190 FT_NONE, BASE_NONE, NULL, 0,
2191 "RegionalParameters", HFILL }},
2192 { &hf_h460_2_unspecified,
2193 { "unspecified", "h460.2.unspecified_element",
2194 FT_NONE, BASE_NONE, NULL, 0,
2195 NULL, HFILL }},
2196 { &hf_h460_2_qorPortedNumber,
2197 { "qorPortedNumber", "h460.2.qorPortedNumber_element",
2198 FT_NONE, BASE_NONE, NULL, 0,
2199 NULL, HFILL }},
2200 { &hf_h460_2_aliasAddress,
2201 { "aliasAddress", "h460.2.aliasAddress",
2202 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2203 NULL, HFILL }},
2204 { &hf_h460_2_typeOfAddress,
2205 { "typeOfAddress", "h460.2.typeOfAddress",
2206 FT_UINT32, BASE_DEC, VALS(h460_2_NumberPortabilityTypeOfNumber_vals), 0,
2207 "NumberPortabilityTypeOfNumber", HFILL }},
2208 { &hf_h460_2_publicTypeOfNumber,
2209 { "publicTypeOfNumber", "h460.2.publicTypeOfNumber",
2210 FT_UINT32, BASE_DEC, VALS(h225_PublicTypeOfNumber_vals), 0,
2211 NULL, HFILL }},
2212 { &hf_h460_2_privateTypeOfNumber,
2213 { "privateTypeOfNumber", "h460.2.privateTypeOfNumber",
2214 FT_UINT32, BASE_DEC, VALS(h225_PrivateTypeOfNumber_vals), 0,
2215 NULL, HFILL }},
2216 { &hf_h460_2_portabilityTypeOfNumber,
2217 { "portabilityTypeOfNumber", "h460.2.portabilityTypeOfNumber",
2218 FT_UINT32, BASE_DEC, VALS(h460_2_PortabilityTypeOfNumber_vals), 0,
2219 NULL, HFILL }},
2220 { &hf_h460_2_portedNumber,
2221 { "portedNumber", "h460.2.portedNumber_element",
2222 FT_NONE, BASE_NONE, NULL, 0,
2223 NULL, HFILL }},
2224 { &hf_h460_2_routingNumber,
2225 { "routingNumber", "h460.2.routingNumber_element",
2226 FT_NONE, BASE_NONE, NULL, 0,
2227 NULL, HFILL }},
2228 { &hf_h460_2_concatenatedNumber,
2229 { "concatenatedNumber", "h460.2.concatenatedNumber_element",
2230 FT_NONE, BASE_NONE, NULL, 0,
2231 NULL, HFILL }},
2232 { &hf_h460_2_t35CountryCode,
2233 { "t35CountryCode", "h460.2.t35CountryCode",
2234 FT_UINT32, BASE_DEC, NULL, 0,
2235 "INTEGER_0_255", HFILL }},
2236 { &hf_h460_2_t35Extension,
2237 { "t35Extension", "h460.2.t35Extension",
2238 FT_UINT32, BASE_DEC, NULL, 0,
2239 "INTEGER_0_255", HFILL }},
2240 { &hf_h460_2_variantIdentifier,
2241 { "variantIdentifier", "h460.2.variantIdentifier",
2242 FT_UINT32, BASE_DEC, NULL, 0,
2243 "INTEGER_1_255", HFILL }},
2244 { &hf_h460_2_regionalData,
2245 { "regionalData", "h460.2.regionalData",
2246 FT_BYTES, BASE_NONE, NULL, 0,
2247 "OCTET_STRING", HFILL }},
2249 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
2251 { &hf_h460_3_h460_3_CircuitStatus_PDU,
2252 { "CircuitStatus", "h460.3.CircuitStatus_element",
2253 FT_NONE, BASE_NONE, NULL, 0,
2254 NULL, HFILL }},
2255 { &hf_h460_3_circuitStatusMap,
2256 { "circuitStatusMap", "h460.3.circuitStatusMap",
2257 FT_UINT32, BASE_DEC, NULL, 0,
2258 "SEQUENCE_OF_CircuitStatusMap", HFILL }},
2259 { &hf_h460_3_circuitStatusMap_item,
2260 { "CircuitStatusMap", "h460.3.CircuitStatusMap_element",
2261 FT_NONE, BASE_NONE, NULL, 0,
2262 NULL, HFILL }},
2263 { &hf_h460_3_statusType,
2264 { "statusType", "h460.3.statusType",
2265 FT_UINT32, BASE_DEC, VALS(h460_3_CircuitStatusType_vals), 0,
2266 "CircuitStatusType", HFILL }},
2267 { &hf_h460_3_baseCircuitID,
2268 { "baseCircuitID", "h460.3.baseCircuitID_element",
2269 FT_NONE, BASE_NONE, NULL, 0,
2270 "CircuitIdentifier", HFILL }},
2271 { &hf_h460_3_range,
2272 { "range", "h460.3.range",
2273 FT_UINT32, BASE_DEC, NULL, 0,
2274 "INTEGER_0_4095", HFILL }},
2275 { &hf_h460_3_status,
2276 { "status", "h460.3.status",
2277 FT_BYTES, BASE_NONE, NULL, 0,
2278 "OCTET_STRING", HFILL }},
2279 { &hf_h460_3_serviceStatus,
2280 { "serviceStatus", "h460.3.serviceStatus_element",
2281 FT_NONE, BASE_NONE, NULL, 0,
2282 NULL, HFILL }},
2283 { &hf_h460_3_busyStatus,
2284 { "busyStatus", "h460.3.busyStatus_element",
2285 FT_NONE, BASE_NONE, NULL, 0,
2286 NULL, HFILL }},
2288 /* --- Module CALL-PRIORITY --- --- --- */
2290 { &hf_h460_4_h460_4_CallPriorityInfo_PDU,
2291 { "CallPriorityInfo", "h460.4.CallPriorityInfo_element",
2292 FT_NONE, BASE_NONE, NULL, 0,
2293 NULL, HFILL }},
2294 { &hf_h460_4_h460_4_CountryInternationalNetworkCallOriginationIdentification_PDU,
2295 { "CountryInternationalNetworkCallOriginationIdentification", "h460.4.CountryInternationalNetworkCallOriginationIdentification_element",
2296 FT_NONE, BASE_NONE, NULL, 0,
2297 NULL, HFILL }},
2298 { &hf_h460_4_priorityValue,
2299 { "priorityValue", "h460.4.priorityValue",
2300 FT_UINT32, BASE_DEC, VALS(h460_4_T_priorityValue_vals), 0,
2301 NULL, HFILL }},
2302 { &hf_h460_4_emergencyAuthorized,
2303 { "emergencyAuthorized", "h460.4.emergencyAuthorized_element",
2304 FT_NONE, BASE_NONE, NULL, 0,
2305 NULL, HFILL }},
2306 { &hf_h460_4_emergencyPublic,
2307 { "emergencyPublic", "h460.4.emergencyPublic_element",
2308 FT_NONE, BASE_NONE, NULL, 0,
2309 NULL, HFILL }},
2310 { &hf_h460_4_high,
2311 { "high", "h460.4.high_element",
2312 FT_NONE, BASE_NONE, NULL, 0,
2313 NULL, HFILL }},
2314 { &hf_h460_4_normal,
2315 { "normal", "h460.4.normal_element",
2316 FT_NONE, BASE_NONE, NULL, 0,
2317 NULL, HFILL }},
2318 { &hf_h460_4_priorityExtension,
2319 { "priorityExtension", "h460.4.priorityExtension",
2320 FT_UINT32, BASE_DEC, NULL, 0,
2321 "INTEGER_0_255", HFILL }},
2322 { &hf_h460_4_tokens,
2323 { "tokens", "h460.4.tokens",
2324 FT_UINT32, BASE_DEC, NULL, 0,
2325 "SEQUENCE_OF_ClearToken", HFILL }},
2326 { &hf_h460_4_tokens_item,
2327 { "ClearToken", "h460.4.ClearToken_element",
2328 FT_NONE, BASE_NONE, NULL, 0,
2329 NULL, HFILL }},
2330 { &hf_h460_4_cryptoTokens,
2331 { "cryptoTokens", "h460.4.cryptoTokens",
2332 FT_UINT32, BASE_DEC, NULL, 0,
2333 "SEQUENCE_OF_CryptoToken", HFILL }},
2334 { &hf_h460_4_cryptoTokens_item,
2335 { "CryptoToken", "h460.4.CryptoToken",
2336 FT_UINT32, BASE_DEC, VALS(h235_CryptoToken_vals), 0,
2337 NULL, HFILL }},
2338 { &hf_h460_4_rejectReason,
2339 { "rejectReason", "h460.4.rejectReason",
2340 FT_UINT32, BASE_DEC, VALS(h460_4_T_rejectReason_vals), 0,
2341 NULL, HFILL }},
2342 { &hf_h460_4_priorityUnavailable,
2343 { "priorityUnavailable", "h460.4.priorityUnavailable_element",
2344 FT_NONE, BASE_NONE, NULL, 0,
2345 NULL, HFILL }},
2346 { &hf_h460_4_priorityUnauthorized,
2347 { "priorityUnauthorized", "h460.4.priorityUnauthorized_element",
2348 FT_NONE, BASE_NONE, NULL, 0,
2349 NULL, HFILL }},
2350 { &hf_h460_4_priorityValueUnknown,
2351 { "priorityValueUnknown", "h460.4.priorityValueUnknown_element",
2352 FT_NONE, BASE_NONE, NULL, 0,
2353 NULL, HFILL }},
2354 { &hf_h460_4_numberingPlan,
2355 { "numberingPlan", "h460.4.numberingPlan",
2356 FT_UINT32, BASE_DEC, VALS(h460_4_T_numberingPlan_vals), 0,
2357 NULL, HFILL }},
2358 { &hf_h460_4_x121,
2359 { "x121", "h460.4.x121_element",
2360 FT_NONE, BASE_NONE, NULL, 0,
2361 NULL, HFILL }},
2362 { &hf_h460_4_x121CountryCode,
2363 { "countryCode", "h460.4.countryCode",
2364 FT_STRING, BASE_NONE, NULL, 0,
2365 "X121CountryCode", HFILL }},
2366 { &hf_h460_4_e164,
2367 { "e164", "h460.4.e164_element",
2368 FT_NONE, BASE_NONE, NULL, 0,
2369 NULL, HFILL }},
2370 { &hf_h460_4_e164CountryCode,
2371 { "countryCode", "h460.4.countryCode",
2372 FT_STRING, BASE_NONE, NULL, 0,
2373 "E164CountryCode", HFILL }},
2374 { &hf_h460_4_identificationCode,
2375 { "identificationCode", "h460.4.identificationCode",
2376 FT_STRING, BASE_NONE, NULL, 0,
2377 NULL, HFILL }},
2379 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
2381 { &hf_h460_9_h460_9_QosMonitoringReportData_PDU,
2382 { "QosMonitoringReportData", "h460.9.QosMonitoringReportData",
2383 FT_UINT32, BASE_DEC, VALS(h460_9_QosMonitoringReportData_vals), 0,
2384 NULL, HFILL }},
2385 { &hf_h460_9_h460_9_ExtendedRTPMetrics_PDU,
2386 { "ExtendedRTPMetrics", "h460.9.ExtendedRTPMetrics_element",
2387 FT_NONE, BASE_NONE, NULL, 0,
2388 NULL, HFILL }},
2389 { &hf_h460_9_extensionId,
2390 { "extensionId", "h460.9.extensionId",
2391 FT_UINT32, BASE_DEC, VALS(h225_GenericIdentifier_vals), 0,
2392 "GenericIdentifier", HFILL }},
2393 { &hf_h460_9_extensionContent,
2394 { "extensionContent", "h460.9.extensionContent",
2395 FT_BYTES, BASE_NONE, NULL, 0,
2396 "OCTET_STRING", HFILL }},
2397 { &hf_h460_9_rtpAddress,
2398 { "rtpAddress", "h460.9.rtpAddress_element",
2399 FT_NONE, BASE_NONE, NULL, 0,
2400 "TransportChannelInfo", HFILL }},
2401 { &hf_h460_9_rtcpAddress,
2402 { "rtcpAddress", "h460.9.rtcpAddress_element",
2403 FT_NONE, BASE_NONE, NULL, 0,
2404 "TransportChannelInfo", HFILL }},
2405 { &hf_h460_9_sessionId,
2406 { "sessionId", "h460.9.sessionId",
2407 FT_UINT32, BASE_DEC, NULL, 0,
2408 "INTEGER_1_255", HFILL }},
2409 { &hf_h460_9_nonStandardData,
2410 { "nonStandardData", "h460.9.nonStandardData_element",
2411 FT_NONE, BASE_NONE, NULL, 0,
2412 "NonStandardParameter", HFILL }},
2413 { &hf_h460_9_mediaSenderMeasures,
2414 { "mediaSenderMeasures", "h460.9.mediaSenderMeasures_element",
2415 FT_NONE, BASE_NONE, NULL, 0,
2416 NULL, HFILL }},
2417 { &hf_h460_9_worstEstimatedEnd2EndDelay,
2418 { "worstEstimatedEnd2EndDelay", "h460.9.worstEstimatedEnd2EndDelay",
2419 FT_UINT32, BASE_DEC, NULL, 0,
2420 "EstimatedEnd2EndDelay", HFILL }},
2421 { &hf_h460_9_meanEstimatedEnd2EndDelay,
2422 { "meanEstimatedEnd2EndDelay", "h460.9.meanEstimatedEnd2EndDelay",
2423 FT_UINT32, BASE_DEC, NULL, 0,
2424 "EstimatedEnd2EndDelay", HFILL }},
2425 { &hf_h460_9_mediaReceiverMeasures,
2426 { "mediaReceiverMeasures", "h460.9.mediaReceiverMeasures_element",
2427 FT_NONE, BASE_NONE, NULL, 0,
2428 NULL, HFILL }},
2429 { &hf_h460_9_cumulativeNumberOfPacketsLost,
2430 { "cumulativeNumberOfPacketsLost", "h460.9.cumulativeNumberOfPacketsLost",
2431 FT_UINT32, BASE_DEC, NULL, 0,
2432 "INTEGER_0_4294967295", HFILL }},
2433 { &hf_h460_9_packetLostRate,
2434 { "packetLostRate", "h460.9.packetLostRate",
2435 FT_UINT32, BASE_DEC, NULL, 0,
2436 "INTEGER_0_65535", HFILL }},
2437 { &hf_h460_9_worstJitter,
2438 { "worstJitter", "h460.9.worstJitter",
2439 FT_UINT32, BASE_DEC, NULL, 0,
2440 "CalculatedJitter", HFILL }},
2441 { &hf_h460_9_estimatedThroughput,
2442 { "estimatedThroughput", "h460.9.estimatedThroughput",
2443 FT_UINT32, BASE_DEC, NULL, 0,
2444 "BandWidth", HFILL }},
2445 { &hf_h460_9_fractionLostRate,
2446 { "fractionLostRate", "h460.9.fractionLostRate",
2447 FT_UINT32, BASE_DEC, NULL, 0,
2448 "INTEGER_0_65535", HFILL }},
2449 { &hf_h460_9_meanJitter,
2450 { "meanJitter", "h460.9.meanJitter",
2451 FT_UINT32, BASE_DEC, NULL, 0,
2452 "CalculatedJitter", HFILL }},
2453 { &hf_h460_9_extensions,
2454 { "extensions", "h460.9.extensions",
2455 FT_UINT32, BASE_DEC, NULL, 0,
2456 "SEQUENCE_OF_Extension", HFILL }},
2457 { &hf_h460_9_extensions_item,
2458 { "Extension", "h460.9.Extension_element",
2459 FT_NONE, BASE_NONE, NULL, 0,
2460 NULL, HFILL }},
2461 { &hf_h460_9_callReferenceValue,
2462 { "callReferenceValue", "h460.9.callReferenceValue",
2463 FT_UINT32, BASE_DEC, NULL, 0,
2464 NULL, HFILL }},
2465 { &hf_h460_9_conferenceID,
2466 { "conferenceID", "h460.9.conferenceID",
2467 FT_GUID, BASE_NONE, NULL, 0,
2468 "ConferenceIdentifier", HFILL }},
2469 { &hf_h460_9_callIdentifier,
2470 { "callIdentifier", "h460.9.callIdentifier_element",
2471 FT_NONE, BASE_NONE, NULL, 0,
2472 NULL, HFILL }},
2473 { &hf_h460_9_mediaChannelsQoS,
2474 { "mediaChannelsQoS", "h460.9.mediaChannelsQoS",
2475 FT_UINT32, BASE_DEC, NULL, 0,
2476 "SEQUENCE_OF_RTCPMeasures", HFILL }},
2477 { &hf_h460_9_mediaChannelsQoS_item,
2478 { "RTCPMeasures", "h460.9.RTCPMeasures_element",
2479 FT_NONE, BASE_NONE, NULL, 0,
2480 NULL, HFILL }},
2481 { &hf_h460_9_periodic,
2482 { "periodic", "h460.9.periodic_element",
2483 FT_NONE, BASE_NONE, NULL, 0,
2484 "PeriodicQoSMonReport", HFILL }},
2485 { &hf_h460_9_final,
2486 { "final", "h460.9.final_element",
2487 FT_NONE, BASE_NONE, NULL, 0,
2488 "FinalQosMonReport", HFILL }},
2489 { &hf_h460_9_interGK,
2490 { "interGK", "h460.9.interGK_element",
2491 FT_NONE, BASE_NONE, NULL, 0,
2492 "InterGKQosMonReport", HFILL }},
2493 { &hf_h460_9_perCallInfo,
2494 { "perCallInfo", "h460.9.perCallInfo",
2495 FT_UINT32, BASE_DEC, NULL, 0,
2496 "SEQUENCE_OF_PerCallQoSReport", HFILL }},
2497 { &hf_h460_9_perCallInfo_item,
2498 { "PerCallQoSReport", "h460.9.PerCallQoSReport_element",
2499 FT_NONE, BASE_NONE, NULL, 0,
2500 NULL, HFILL }},
2501 { &hf_h460_9_mediaInfo,
2502 { "mediaInfo", "h460.9.mediaInfo",
2503 FT_UINT32, BASE_DEC, NULL, 0,
2504 "SEQUENCE_OF_RTCPMeasures", HFILL }},
2505 { &hf_h460_9_mediaInfo_item,
2506 { "RTCPMeasures", "h460.9.RTCPMeasures_element",
2507 FT_NONE, BASE_NONE, NULL, 0,
2508 NULL, HFILL }},
2509 { &hf_h460_9_networkPacketLossRate,
2510 { "networkPacketLossRate", "h460.9.networkPacketLossRate",
2511 FT_UINT32, BASE_DEC, NULL, 0,
2512 "INTEGER_0_255", HFILL }},
2513 { &hf_h460_9_jitterBufferDiscardRate,
2514 { "jitterBufferDiscardRate", "h460.9.jitterBufferDiscardRate",
2515 FT_UINT32, BASE_DEC, NULL, 0,
2516 "INTEGER_0_255", HFILL }},
2517 { &hf_h460_9_burstMetrics,
2518 { "burstMetrics", "h460.9.burstMetrics_element",
2519 FT_NONE, BASE_NONE, NULL, 0,
2520 NULL, HFILL }},
2521 { &hf_h460_9_rtcpRoundTripDelay,
2522 { "rtcpRoundTripDelay", "h460.9.rtcpRoundTripDelay",
2523 FT_UINT32, BASE_DEC, NULL, 0,
2524 "INTEGER_0_65535", HFILL }},
2525 { &hf_h460_9_endSystemDelay,
2526 { "endSystemDelay", "h460.9.endSystemDelay",
2527 FT_UINT32, BASE_DEC, NULL, 0,
2528 "INTEGER_0_65535", HFILL }},
2529 { &hf_h460_9_signalLevel,
2530 { "signalLevel", "h460.9.signalLevel",
2531 FT_INT32, BASE_DEC, NULL, 0,
2532 "INTEGER_M127_10", HFILL }},
2533 { &hf_h460_9_noiseLevel,
2534 { "noiseLevel", "h460.9.noiseLevel",
2535 FT_INT32, BASE_DEC, NULL, 0,
2536 "INTEGER_M127_0", HFILL }},
2537 { &hf_h460_9_residualEchoReturnLoss,
2538 { "residualEchoReturnLoss", "h460.9.residualEchoReturnLoss",
2539 FT_UINT32, BASE_DEC, NULL, 0,
2540 "INTEGER_0_127", HFILL }},
2541 { &hf_h460_9_rFactor,
2542 { "rFactor", "h460.9.rFactor",
2543 FT_UINT32, BASE_DEC, NULL, 0,
2544 "INTEGER_0_100", HFILL }},
2545 { &hf_h460_9_extRFactor,
2546 { "extRFactor", "h460.9.extRFactor",
2547 FT_UINT32, BASE_DEC, NULL, 0,
2548 "INTEGER_0_100", HFILL }},
2549 { &hf_h460_9_estimatedMOSLQ,
2550 { "estimatedMOSLQ", "h460.9.estimatedMOSLQ",
2551 FT_UINT32, BASE_DEC, NULL, 0,
2552 "INTEGER_10_50", HFILL }},
2553 { &hf_h460_9_estimatedMOSCQ,
2554 { "estimatedMOSCQ", "h460.9.estimatedMOSCQ",
2555 FT_UINT32, BASE_DEC, NULL, 0,
2556 "INTEGER_10_50", HFILL }},
2557 { &hf_h460_9_plcType,
2558 { "plcType", "h460.9.plcType",
2559 FT_UINT32, BASE_DEC, VALS(h460_9_PLCtypes_vals), 0,
2560 "PLCtypes", HFILL }},
2561 { &hf_h460_9_jitterBufferParms,
2562 { "jitterBufferParms", "h460.9.jitterBufferParms_element",
2563 FT_NONE, BASE_NONE, NULL, 0,
2564 NULL, HFILL }},
2565 { &hf_h460_9_gmin,
2566 { "gmin", "h460.9.gmin",
2567 FT_UINT32, BASE_DEC, NULL, 0,
2568 "INTEGER_0_255", HFILL }},
2569 { &hf_h460_9_burstLossDensity,
2570 { "burstLossDensity", "h460.9.burstLossDensity",
2571 FT_UINT32, BASE_DEC, NULL, 0,
2572 "INTEGER_0_255", HFILL }},
2573 { &hf_h460_9_gapLossDensity,
2574 { "gapLossDensity", "h460.9.gapLossDensity",
2575 FT_UINT32, BASE_DEC, NULL, 0,
2576 "INTEGER_0_255", HFILL }},
2577 { &hf_h460_9_burstDuration,
2578 { "burstDuration", "h460.9.burstDuration",
2579 FT_UINT32, BASE_DEC, NULL, 0,
2580 "INTEGER_0_65535", HFILL }},
2581 { &hf_h460_9_gapDuration,
2582 { "gapDuration", "h460.9.gapDuration",
2583 FT_UINT32, BASE_DEC, NULL, 0,
2584 "INTEGER_0_65535", HFILL }},
2585 { &hf_h460_9_unspecified,
2586 { "unspecified", "h460.9.unspecified_element",
2587 FT_NONE, BASE_NONE, NULL, 0,
2588 NULL, HFILL }},
2589 { &hf_h460_9_disabled,
2590 { "disabled", "h460.9.disabled_element",
2591 FT_NONE, BASE_NONE, NULL, 0,
2592 NULL, HFILL }},
2593 { &hf_h460_9_enhanced,
2594 { "enhanced", "h460.9.enhanced_element",
2595 FT_NONE, BASE_NONE, NULL, 0,
2596 NULL, HFILL }},
2597 { &hf_h460_9_standard,
2598 { "standard", "h460.9.standard_element",
2599 FT_NONE, BASE_NONE, NULL, 0,
2600 NULL, HFILL }},
2601 { &hf_h460_9_jitterBufferType,
2602 { "jitterBufferType", "h460.9.jitterBufferType",
2603 FT_UINT32, BASE_DEC, VALS(h460_9_JitterBufferTypes_vals), 0,
2604 "JitterBufferTypes", HFILL }},
2605 { &hf_h460_9_jitterBufferAdaptRate,
2606 { "jitterBufferAdaptRate", "h460.9.jitterBufferAdaptRate",
2607 FT_UINT32, BASE_DEC, NULL, 0,
2608 "INTEGER_0_15", HFILL }},
2609 { &hf_h460_9_jitterBufferNominalSize,
2610 { "jitterBufferNominalSize", "h460.9.jitterBufferNominalSize",
2611 FT_UINT32, BASE_DEC, NULL, 0,
2612 "INTEGER_0_65535", HFILL }},
2613 { &hf_h460_9_jitterBufferMaxSize,
2614 { "jitterBufferMaxSize", "h460.9.jitterBufferMaxSize",
2615 FT_UINT32, BASE_DEC, NULL, 0,
2616 "INTEGER_0_65535", HFILL }},
2617 { &hf_h460_9_jitterBufferAbsoluteMax,
2618 { "jitterBufferAbsoluteMax", "h460.9.jitterBufferAbsoluteMax",
2619 FT_UINT32, BASE_DEC, NULL, 0,
2620 "INTEGER_0_65535", HFILL }},
2621 { &hf_h460_9_unknown,
2622 { "unknown", "h460.9.unknown_element",
2623 FT_NONE, BASE_NONE, NULL, 0,
2624 NULL, HFILL }},
2625 { &hf_h460_9_reserved,
2626 { "reserved", "h460.9.reserved_element",
2627 FT_NONE, BASE_NONE, NULL, 0,
2628 NULL, HFILL }},
2629 { &hf_h460_9_nonadaptive,
2630 { "nonadaptive", "h460.9.nonadaptive_element",
2631 FT_NONE, BASE_NONE, NULL, 0,
2632 NULL, HFILL }},
2633 { &hf_h460_9_adaptive,
2634 { "adaptive", "h460.9.adaptive_element",
2635 FT_NONE, BASE_NONE, NULL, 0,
2636 NULL, HFILL }},
2638 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
2640 { &hf_h460_10_h460_10_CallPartyCategoryInfo_PDU,
2641 { "CallPartyCategoryInfo", "h460.10.CallPartyCategoryInfo_element",
2642 FT_NONE, BASE_NONE, NULL, 0,
2643 NULL, HFILL }},
2644 { &hf_h460_10_callPartyCategory,
2645 { "callPartyCategory", "h460.10.callPartyCategory",
2646 FT_UINT32, BASE_DEC, NULL, 0,
2647 NULL, HFILL }},
2648 { &hf_h460_10_originatingLineInfo,
2649 { "originatingLineInfo", "h460.10.originatingLineInfo",
2650 FT_UINT32, BASE_DEC, NULL, 0,
2651 NULL, HFILL }},
2653 /* --- Module MLPP --- --- --- */
2655 { &hf_h460_14_h460_14_MLPPInfo_PDU,
2656 { "MLPPInfo", "h460.14.MLPPInfo_element",
2657 FT_NONE, BASE_NONE, NULL, 0,
2658 NULL, HFILL }},
2659 { &hf_h460_14_precedence,
2660 { "precedence", "h460.14.precedence",
2661 FT_UINT32, BASE_DEC, VALS(h460_14_MlppPrecedence_vals), 0,
2662 "MlppPrecedence", HFILL }},
2663 { &hf_h460_14_mlppReason,
2664 { "mlppReason", "h460.14.mlppReason",
2665 FT_UINT32, BASE_DEC, VALS(h460_14_MlppReason_vals), 0,
2666 NULL, HFILL }},
2667 { &hf_h460_14_mlppNotification,
2668 { "mlppNotification", "h460.14.mlppNotification",
2669 FT_UINT32, BASE_DEC, VALS(h460_14_MlppNotification_vals), 0,
2670 NULL, HFILL }},
2671 { &hf_h460_14_alternateParty,
2672 { "alternateParty", "h460.14.alternateParty_element",
2673 FT_NONE, BASE_NONE, NULL, 0,
2674 NULL, HFILL }},
2675 { &hf_h460_14_releaseCall,
2676 { "releaseCall", "h460.14.releaseCall_element",
2677 FT_NONE, BASE_NONE, NULL, 0,
2678 NULL, HFILL }},
2679 { &hf_h460_14_preemptionPending,
2680 { "preemptionPending", "h460.14.preemptionPending_element",
2681 FT_NONE, BASE_NONE, NULL, 0,
2682 NULL, HFILL }},
2683 { &hf_h460_14_preemptionInProgress,
2684 { "preemptionInProgress", "h460.14.preemptionInProgress_element",
2685 FT_NONE, BASE_NONE, NULL, 0,
2686 NULL, HFILL }},
2687 { &hf_h460_14_preemptionEnd,
2688 { "preemptionEnd", "h460.14.preemptionEnd_element",
2689 FT_NONE, BASE_NONE, NULL, 0,
2690 NULL, HFILL }},
2691 { &hf_h460_14_preemptionComplete,
2692 { "preemptionComplete", "h460.14.preemptionComplete_element",
2693 FT_NONE, BASE_NONE, NULL, 0,
2694 NULL, HFILL }},
2695 { &hf_h460_14_altID,
2696 { "altID", "h460.14.altID",
2697 FT_UINT32, BASE_DEC, VALS(AliasAddress_vals), 0,
2698 "AliasAddress", HFILL }},
2699 { &hf_h460_14_altTimer,
2700 { "altTimer", "h460.14.altTimer",
2701 FT_UINT32, BASE_DEC, NULL, 0,
2702 "INTEGER_0_255", HFILL }},
2703 { &hf_h460_14_preemptCallID,
2704 { "preemptCallID", "h460.14.preemptCallID_element",
2705 FT_NONE, BASE_NONE, NULL, 0,
2706 "CallIdentifier", HFILL }},
2707 { &hf_h460_14_releaseReason,
2708 { "releaseReason", "h460.14.releaseReason",
2709 FT_UINT32, BASE_DEC, VALS(h460_14_MlppReason_vals), 0,
2710 "MlppReason", HFILL }},
2711 { &hf_h460_14_releaseDelay,
2712 { "releaseDelay", "h460.14.releaseDelay",
2713 FT_UINT32, BASE_DEC, NULL, 0,
2714 "INTEGER_0_255", HFILL }},
2716 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
2718 { &hf_h460_15_h460_15_SignallingChannelData_PDU,
2719 { "SignallingChannelData", "h460.15.SignallingChannelData_element",
2720 FT_NONE, BASE_NONE, NULL, 0,
2721 NULL, HFILL }},
2722 { &hf_h460_15_signallingChannelData,
2723 { "signallingChannelData", "h460.15.signallingChannelData",
2724 FT_UINT32, BASE_DEC, VALS(h460_15_T_signallingChannelData_vals), 0,
2725 NULL, HFILL }},
2726 { &hf_h460_15_channelSuspendRequest,
2727 { "channelSuspendRequest", "h460.15.channelSuspendRequest_element",
2728 FT_NONE, BASE_NONE, NULL, 0,
2729 NULL, HFILL }},
2730 { &hf_h460_15_channelSuspendResponse,
2731 { "channelSuspendResponse", "h460.15.channelSuspendResponse_element",
2732 FT_NONE, BASE_NONE, NULL, 0,
2733 NULL, HFILL }},
2734 { &hf_h460_15_channelSuspendConfirm,
2735 { "channelSuspendConfirm", "h460.15.channelSuspendConfirm_element",
2736 FT_NONE, BASE_NONE, NULL, 0,
2737 NULL, HFILL }},
2738 { &hf_h460_15_channelSuspendCancel,
2739 { "channelSuspendCancel", "h460.15.channelSuspendCancel_element",
2740 FT_NONE, BASE_NONE, NULL, 0,
2741 NULL, HFILL }},
2742 { &hf_h460_15_channelResumeRequest,
2743 { "channelResumeRequest", "h460.15.channelResumeRequest_element",
2744 FT_NONE, BASE_NONE, NULL, 0,
2745 NULL, HFILL }},
2746 { &hf_h460_15_channelResumeResponse,
2747 { "channelResumeResponse", "h460.15.channelResumeResponse_element",
2748 FT_NONE, BASE_NONE, NULL, 0,
2749 NULL, HFILL }},
2750 { &hf_h460_15_channelResumeAddress,
2751 { "channelResumeAddress", "h460.15.channelResumeAddress",
2752 FT_UINT32, BASE_DEC, NULL, 0,
2753 "SEQUENCE_OF_TransportAddress", HFILL }},
2754 { &hf_h460_15_channelResumeAddress_item,
2755 { "TransportAddress", "h460.15.TransportAddress",
2756 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
2757 NULL, HFILL }},
2758 { &hf_h460_15_immediateResume,
2759 { "immediateResume", "h460.15.immediateResume",
2760 FT_BOOLEAN, BASE_NONE, NULL, 0,
2761 "BOOLEAN", HFILL }},
2762 { &hf_h460_15_resetH245,
2763 { "resetH245", "h460.15.resetH245_element",
2764 FT_NONE, BASE_NONE, NULL, 0,
2765 NULL, HFILL }},
2766 { &hf_h460_15_okToSuspend,
2767 { "okToSuspend", "h460.15.okToSuspend",
2768 FT_BOOLEAN, BASE_NONE, NULL, 0,
2769 "BOOLEAN", HFILL }},
2770 { &hf_h460_15_randomNumber,
2771 { "randomNumber", "h460.15.randomNumber",
2772 FT_UINT32, BASE_DEC, NULL, 0,
2773 "INTEGER_0_4294967295", HFILL }},
2775 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
2777 { &hf_h460_18_h460_18_IncomingCallIndication_PDU,
2778 { "IncomingCallIndication", "h460.18.IncomingCallIndication_element",
2779 FT_NONE, BASE_NONE, NULL, 0,
2780 NULL, HFILL }},
2781 { &hf_h460_18_h460_18_LRQKeepAliveData_PDU,
2782 { "LRQKeepAliveData", "h460.18.LRQKeepAliveData_element",
2783 FT_NONE, BASE_NONE, NULL, 0,
2784 NULL, HFILL }},
2785 { &hf_h460_18_callSignallingAddress,
2786 { "callSignallingAddress", "h460.18.callSignallingAddress",
2787 FT_UINT32, BASE_DEC, VALS(h225_TransportAddress_vals), 0,
2788 "TransportAddress", HFILL }},
2789 { &hf_h460_18_callID,
2790 { "callID", "h460.18.callID_element",
2791 FT_NONE, BASE_NONE, NULL, 0,
2792 "CallIdentifier", HFILL }},
2793 { &hf_h460_18_lrqKeepAliveInterval,
2794 { "lrqKeepAliveInterval", "h460.18.lrqKeepAliveInterval",
2795 FT_UINT32, BASE_DEC, NULL, 0,
2796 "TimeToLive", HFILL }},
2798 /* --- Module MEDIA-TRAVERSAL --- --- --- */
2800 { &hf_h460_19_h460_19_TraversalParameters_PDU,
2801 { "TraversalParameters", "h460.19.TraversalParameters_element",
2802 FT_NONE, BASE_NONE, NULL, 0,
2803 NULL, HFILL }},
2804 { &hf_h460_19_multiplexedMediaChannel,
2805 { "multiplexedMediaChannel", "h460.19.multiplexedMediaChannel",
2806 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
2807 "TransportAddress", HFILL }},
2808 { &hf_h460_19_multiplexedMediaControlChannel,
2809 { "multiplexedMediaControlChannel", "h460.19.multiplexedMediaControlChannel",
2810 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
2811 "TransportAddress", HFILL }},
2812 { &hf_h460_19_multiplexID,
2813 { "multiplexID", "h460.19.multiplexID",
2814 FT_UINT32, BASE_DEC, NULL, 0,
2815 "INTEGER_0_4294967295", HFILL }},
2816 { &hf_h460_19_keepAliveChannel,
2817 { "keepAliveChannel", "h460.19.keepAliveChannel",
2818 FT_UINT32, BASE_DEC, VALS(h245_TransportAddress_vals), 0,
2819 "TransportAddress", HFILL }},
2820 { &hf_h460_19_keepAlivePayloadType,
2821 { "keepAlivePayloadType", "h460.19.keepAlivePayloadType",
2822 FT_UINT32, BASE_DEC, NULL, 0,
2823 "INTEGER_0_127", HFILL }},
2824 { &hf_h460_19_keepAliveInterval,
2825 { "keepAliveInterval", "h460.19.keepAliveInterval",
2826 FT_UINT32, BASE_DEC, NULL, 0,
2827 "TimeToLive", HFILL }},
2829 /* --- Module MESSAGE-BROADCAST --- --- --- */
2831 { &hf_h460_21_h460_21_CapabilityAdvertisement_PDU,
2832 { "CapabilityAdvertisement", "h460.21.CapabilityAdvertisement_element",
2833 FT_NONE, BASE_NONE, NULL, 0,
2834 NULL, HFILL }},
2835 { &hf_h460_21_receiveCapabilities,
2836 { "receiveCapabilities", "h460.21.receiveCapabilities_element",
2837 FT_NONE, BASE_NONE, NULL, 0,
2838 NULL, HFILL }},
2839 { &hf_h460_21_transmitCapabilities,
2840 { "transmitCapabilities", "h460.21.transmitCapabilities",
2841 FT_UINT32, BASE_DEC, NULL, 0,
2842 "SEQUENCE_SIZE_1_256_OF_TransmitCapabilities", HFILL }},
2843 { &hf_h460_21_transmitCapabilities_item,
2844 { "TransmitCapabilities", "h460.21.TransmitCapabilities_element",
2845 FT_NONE, BASE_NONE, NULL, 0,
2846 NULL, HFILL }},
2847 { &hf_h460_21_capabilities,
2848 { "capabilities", "h460.21.capabilities",
2849 FT_UINT32, BASE_DEC, NULL, 0,
2850 "SEQUENCE_SIZE_1_256_OF_Capability", HFILL }},
2851 { &hf_h460_21_capabilities_item,
2852 { "Capability", "h460.21.Capability",
2853 FT_UINT32, BASE_DEC, VALS(h245_Capability_vals), 0,
2854 NULL, HFILL }},
2855 { &hf_h460_21_maxGroups,
2856 { "maxGroups", "h460.21.maxGroups",
2857 FT_UINT32, BASE_DEC, NULL, 0,
2858 "INTEGER_1_65535", HFILL }},
2859 { &hf_h460_21_groupIdentifer,
2860 { "groupIdentifer", "h460.21.groupIdentifer",
2861 FT_BYTES, BASE_NONE, NULL, 0,
2862 "GloballyUniqueID", HFILL }},
2863 { &hf_h460_21_capability,
2864 { "capability", "h460.21.capability",
2865 FT_UINT32, BASE_DEC, VALS(h245_Capability_vals), 0,
2866 NULL, HFILL }},
2867 { &hf_h460_21_sourceAddress,
2868 { "sourceAddress", "h460.21.sourceAddress",
2869 FT_UINT32, BASE_DEC, VALS(h245_UnicastAddress_vals), 0,
2870 "UnicastAddress", HFILL }},
2872 /*--- End of included file: packet-h460-hfarr.c ---*/
2873 #line 247 "../../asn1/h460/packet-h460-template.c"
2876 /* List of subtrees */
2877 static gint *ett[] = {
2879 /*--- Included file: packet-h460-ettarr.c ---*/
2880 #line 1 "../../asn1/h460/packet-h460-ettarr.c"
2882 /* --- Module NUMBER-PORTABILITY --- --- --- */
2884 &ett_h460_2_NumberPortabilityInfo,
2885 &ett_h460_2_T_nUMBERPORTABILITYDATA,
2886 &ett_h460_2_NumberPortabilityRejectReason,
2887 &ett_h460_2_PortabilityAddress,
2888 &ett_h460_2_NumberPortabilityTypeOfNumber,
2889 &ett_h460_2_PortabilityTypeOfNumber,
2890 &ett_h460_2_RegionalParameters,
2892 /* --- Module CIRCUIT-STATUS-MAP --- --- --- */
2894 &ett_h460_3_CircuitStatus,
2895 &ett_h460_3_SEQUENCE_OF_CircuitStatusMap,
2896 &ett_h460_3_CircuitStatusMap,
2897 &ett_h460_3_CircuitStatusType,
2899 /* --- Module CALL-PRIORITY --- --- --- */
2901 &ett_h460_4_CallPriorityInfo,
2902 &ett_h460_4_T_priorityValue,
2903 &ett_h460_4_SEQUENCE_OF_ClearToken,
2904 &ett_h460_4_SEQUENCE_OF_CryptoToken,
2905 &ett_h460_4_T_rejectReason,
2906 &ett_h460_4_CountryInternationalNetworkCallOriginationIdentification,
2907 &ett_h460_4_T_numberingPlan,
2908 &ett_h460_4_T_x121,
2909 &ett_h460_4_T_e164,
2911 /* --- Modules QOS-MONITORING-REPORT QOS-MONITORING-EXTENDED-VOIP-REPORT --- --- --- */
2913 &ett_h460_9_Extension,
2914 &ett_h460_9_RTCPMeasures,
2915 &ett_h460_9_T_mediaSenderMeasures,
2916 &ett_h460_9_T_mediaReceiverMeasures,
2917 &ett_h460_9_SEQUENCE_OF_Extension,
2918 &ett_h460_9_PerCallQoSReport,
2919 &ett_h460_9_SEQUENCE_OF_RTCPMeasures,
2920 &ett_h460_9_QosMonitoringReportData,
2921 &ett_h460_9_PeriodicQoSMonReport,
2922 &ett_h460_9_SEQUENCE_OF_PerCallQoSReport,
2923 &ett_h460_9_FinalQosMonReport,
2924 &ett_h460_9_InterGKQosMonReport,
2925 &ett_h460_9_ExtendedRTPMetrics,
2926 &ett_h460_9_BurstMetrics,
2927 &ett_h460_9_PLCtypes,
2928 &ett_h460_9_JitterBufferParms,
2929 &ett_h460_9_JitterBufferTypes,
2931 /* --- Module CALL-PARTY-CATEGORY --- --- --- */
2933 &ett_h460_10_CallPartyCategoryInfo,
2935 /* --- Module MLPP --- --- --- */
2937 &ett_h460_14_MLPPInfo,
2938 &ett_h460_14_MlppNotification,
2939 &ett_h460_14_AlternateParty,
2940 &ett_h460_14_ReleaseCall,
2942 /* --- Module SIGNALLING-CHANNEL-SUSPEND-REDIRECT --- --- --- */
2944 &ett_h460_15_SignallingChannelData,
2945 &ett_h460_15_T_signallingChannelData,
2946 &ett_h460_15_ChannelSuspendRequest,
2947 &ett_h460_15_SEQUENCE_OF_TransportAddress,
2948 &ett_h460_15_ChannelSuspendResponse,
2949 &ett_h460_15_ChannelSuspendConfirm,
2950 &ett_h460_15_ChannelSuspendCancel,
2951 &ett_h460_15_ChannelResumeRequest,
2952 &ett_h460_15_ChannelResumeResponse,
2954 /* --- Module SIGNALLING-TRAVERSAL --- --- --- */
2956 &ett_h460_18_IncomingCallIndication,
2957 &ett_h460_18_LRQKeepAliveData,
2959 /* --- Module MEDIA-TRAVERSAL --- --- --- */
2961 &ett_h460_19_TraversalParameters,
2963 /* --- Module MESSAGE-BROADCAST --- --- --- */
2965 &ett_h460_21_CapabilityAdvertisement,
2966 &ett_h460_21_SEQUENCE_SIZE_1_256_OF_TransmitCapabilities,
2967 &ett_h460_21_ReceiveCapabilities,
2968 &ett_h460_21_SEQUENCE_SIZE_1_256_OF_Capability,
2969 &ett_h460_21_TransmitCapabilities,
2971 /*--- End of included file: packet-h460-ettarr.c ---*/
2972 #line 252 "../../asn1/h460/packet-h460-template.c"
2975 /* Register protocol */
2976 proto_h460 = proto_register_protocol(PNAME, PSNAME, PFNAME);
2978 /* Register fields and subtrees */
2979 proto_register_field_array(proto_h460, hf, array_length(hf));
2980 proto_register_subtree_array(ett, array_length(ett));
2982 for (ftr=h460_feature_tab; ftr->id; ftr++) {
2983 if (ftr->opt & GD) ftr->key_gd = g_strdup_printf("GenericData/%s", ftr->id);
2984 if (ftr->opt & FD) ftr->key_fd = g_strdup_printf("FeatureDescriptor/%s", ftr->id);
2985 if (ftr->opt & GM) ftr->key_gm = g_strdup_printf("GenericMessage/%s", ftr->id);
2986 if (ftr->opt & GI) ftr->key_gi = g_strdup_printf("GenericInformation/%s", ftr->id);
2987 if (ftr->content_pdu) ftr->content_hnd = new_create_dissector_handle(ftr->content_pdu, proto_h460);
2991 /*--- proto_reg_handoff_h460 -------------------------------------------*/
2992 void proto_reg_handoff_h460(void)
2994 h460_feature_t *ftr;
2995 dissector_handle_t h460_name_handle;
2997 q931_ie_handle = find_dissector("q931.ie");
2998 h225_ras_handle = find_dissector("h225.ras");
3000 h460_name_handle = new_create_dissector_handle(dissect_h460_name, proto_h460);
3001 for (ftr=h460_feature_tab; ftr->id; ftr++) {
3002 if (ftr->key_gd) dissector_add_string("h225.gef.name", ftr->key_gd, h460_name_handle);
3003 if (ftr->key_fd) dissector_add_string("h225.gef.name", ftr->key_fd, h460_name_handle);
3004 if (ftr->key_gm) dissector_add_string("h245.gef.name", ftr->key_gm, h460_name_handle);
3005 if (ftr->key_gi) dissector_add_string("h245.gef.name", ftr->key_gi, h460_name_handle);
3006 if (ftr->content_hnd) {
3007 if (ftr->key_gd) dissector_add_string("h225.gef.content", ftr->key_gd, ftr->content_hnd);
3008 if (ftr->key_fd) dissector_add_string("h225.gef.content", ftr->key_fd, ftr->content_hnd);
3009 if (ftr->key_gm) dissector_add_string("h245.gef.content", ftr->key_gm, ftr->content_hnd);
3010 if (ftr->key_gi) dissector_add_string("h245.gef.content", ftr->key_gi, ftr->content_hnd);