1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Ethereal dissector compiler */
4 /* ../../tools/asn2eth.py -X -b -e -p h248 -c h248.cnf -s packet-h248-template MEGACO.asn */
6 /* Input file: packet-h248-template.c */
9 * Routines for H.248/MEGACO packet dissection
10 * Ronnie Sahlberg 2004
14 * Ethereal - Network traffic analyzer
15 * By Gerald Combs <gerald@ethereal.com>
16 * Copyright 1998 Gerald Combs
18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License
20 * as published by the Free Software Foundation; either version 2
21 * of the License, or (at your option) any later version.
23 * This program is distributed in the hope that it will be useful,
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 * GNU General Public License for more details.
28 * You should have received a copy of the GNU General Public License
29 * along with this program; if not, write to the Free Software
30 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
38 #include <epan/packet.h>
39 #include <epan/conversation.h>
44 #include "packet-ber.h"
45 #include "packet-h248.h"
46 #include "packet-isup.h"
47 #include "packet-q931.h"
49 #define PNAME "H.248 MEGACO"
53 /*XXX this define should be moved to packet-m3ua.h ? */
54 #define GATEWAY_CONTROL_PROTOCOL_USER_ID 14
56 /* Initialize the protocol and registered fields */
57 static int proto_h248 = -1;
58 static int proto_h248_annex_C = -1;
59 static int hf_h248_mtpaddress_ni = -1;
60 static int hf_h248_mtpaddress_pc = -1;
61 static int hf_h248_package_name = -1;
62 static int hf_h248_package_bcp_BNCChar_PDU = -1;
63 static int hf_h248_package_annex_C_TMR = -1;
64 static int hf_h248_package_annex_C_USI = -1;
65 static int hf_h248_package_annex_C_NSAP = -1;
66 static int hf_h248_package_annex_C_BIR = -1;
68 /*--- Included file: packet-h248-hf.c ---*/
70 static int hf_h248_authHeader = -1; /* AuthenticationHeader */
71 static int hf_h248_mess = -1; /* Message */
72 static int hf_h248_secParmIndex = -1; /* SecurityParmIndex */
73 static int hf_h248_seqNum = -1; /* SequenceNum */
74 static int hf_h248_ad = -1; /* AuthData */
75 static int hf_h248_version = -1; /* INTEGER_0_99 */
76 static int hf_h248_mId = -1; /* MId */
77 static int hf_h248_messageBody = -1; /* T_messageBody */
78 static int hf_h248_messageError = -1; /* ErrorDescriptor */
79 static int hf_h248_transactions = -1; /* SEQUNCE_OF_Transaction */
80 static int hf_h248_transactions_item = -1; /* Transaction */
81 static int hf_h248_ip4Address = -1; /* IP4Address */
82 static int hf_h248_ip6Address = -1; /* IP6Address */
83 static int hf_h248_domainName = -1; /* DomainName */
84 static int hf_h248_deviceName = -1; /* PathName */
85 static int hf_h248_mtpAddress = -1; /* MtpAddress */
86 static int hf_h248_name = -1; /* IA5String */
87 static int hf_h248_portNumber = -1; /* INTEGER_0_65535 */
88 static int hf_h248_address = -1; /* OCTET_STRING_SIZE_4 */
89 static int hf_h248_address1 = -1; /* OCTET_STRING_SIZE_16 */
90 static int hf_h248_transactionRequest = -1; /* TransactionRequest */
91 static int hf_h248_transactionPending = -1; /* TransactionPending */
92 static int hf_h248_transactionReply = -1; /* TransactionReply */
93 static int hf_h248_transactionResponseAck = -1; /* TransactionResponseAck */
94 static int hf_h248_transactionId = -1; /* TransactionId */
95 static int hf_h248_actions = -1; /* SEQUNCE_OF_ActionRequest */
96 static int hf_h248_actions_item = -1; /* ActionRequest */
97 static int hf_h248_immAckRequired = -1; /* NULL */
98 static int hf_h248_transactionResult = -1; /* T_transactionResult */
99 static int hf_h248_transactionError = -1; /* ErrorDescriptor */
100 static int hf_h248_actionReplies = -1; /* SEQUNCE_OF_ActionReply */
101 static int hf_h248_actionReplies_item = -1; /* ActionReply */
102 static int hf_h248_TransactionResponseAck_item = -1; /* TransactionAck */
103 static int hf_h248_firstAck = -1; /* TransactionId */
104 static int hf_h248_lastAck = -1; /* TransactionId */
105 static int hf_h248_errorCode = -1; /* ErrorCode */
106 static int hf_h248_errorText = -1; /* ErrorText */
107 static int hf_h248_contextId = -1; /* ContextID */
108 static int hf_h248_contextRequest = -1; /* ContextRequest */
109 static int hf_h248_contextAttrAuditReq = -1; /* ContextAttrAuditRequest */
110 static int hf_h248_commandRequests = -1; /* SEQUNCE_OF_CommandRequest */
111 static int hf_h248_commandRequests_item = -1; /* CommandRequest */
112 static int hf_h248_errorDescriptor = -1; /* ErrorDescriptor */
113 static int hf_h248_contextReply = -1; /* ContextRequest */
114 static int hf_h248_commandReply = -1; /* SEQUNCE_OF_CommandReply */
115 static int hf_h248_commandReply_item = -1; /* CommandReply */
116 static int hf_h248_priority = -1; /* INTEGER_0_15 */
117 static int hf_h248_emergency = -1; /* BOOLEAN */
118 static int hf_h248_topologyReq = -1; /* SEQUNCE_OF_TopologyRequest */
119 static int hf_h248_topologyReq_item = -1; /* TopologyRequest */
120 static int hf_h248_topology = -1; /* NULL */
121 static int hf_h248_emergency1 = -1; /* NULL */
122 static int hf_h248_priority1 = -1; /* NULL */
123 static int hf_h248_command = -1; /* Command */
124 static int hf_h248_optional = -1; /* NULL */
125 static int hf_h248_wildcardReturn = -1; /* NULL */
126 static int hf_h248_addReq = -1; /* AmmRequest */
127 static int hf_h248_moveReq = -1; /* AmmRequest */
128 static int hf_h248_modReq = -1; /* AmmRequest */
129 static int hf_h248_subtractReq = -1; /* SubtractRequest */
130 static int hf_h248_auditCapRequest = -1; /* AuditRequest */
131 static int hf_h248_auditValueRequest = -1; /* AuditRequest */
132 static int hf_h248_notifyReq = -1; /* NotifyRequest */
133 static int hf_h248_serviceChangeReq = -1; /* ServiceChangeRequest */
134 static int hf_h248_addReply = -1; /* AmmsReply */
135 static int hf_h248_moveReply = -1; /* AmmsReply */
136 static int hf_h248_modReply = -1; /* AmmsReply */
137 static int hf_h248_subtractReply = -1; /* AmmsReply */
138 static int hf_h248_auditCapReply = -1; /* AuditReply */
139 static int hf_h248_auditValueReply = -1; /* AuditReply */
140 static int hf_h248_notifyReply = -1; /* NotifyReply */
141 static int hf_h248_serviceChangeReply = -1; /* ServiceChangeReply */
142 static int hf_h248_terminationFrom = -1; /* TerminationID */
143 static int hf_h248_terminationTo = -1; /* TerminationID */
144 static int hf_h248_topologyDirection = -1; /* T_topologyDirection */
145 static int hf_h248_streamID = -1; /* StreamID */
146 static int hf_h248_terminationID = -1; /* TerminationIDList */
147 static int hf_h248_descriptors = -1; /* SEQUNCE_OF_AmmDescriptor */
148 static int hf_h248_descriptors_item = -1; /* AmmDescriptor */
149 static int hf_h248_mediaDescriptor = -1; /* MediaDescriptor */
150 static int hf_h248_modemDescriptor = -1; /* ModemDescriptor */
151 static int hf_h248_muxDescriptor = -1; /* MuxDescriptor */
152 static int hf_h248_eventsDescriptor = -1; /* EventsDescriptor */
153 static int hf_h248_eventBufferDescriptor = -1; /* EventBufferDescriptor */
154 static int hf_h248_signalsDescriptor = -1; /* SignalsDescriptor */
155 static int hf_h248_digitMapDescriptor = -1; /* DigitMapDescriptor */
156 static int hf_h248_auditDescriptor = -1; /* AuditDescriptor */
157 static int hf_h248_terminationAudit = -1; /* TerminationAudit */
158 static int hf_h248_terminationID1 = -1; /* TerminationID */
159 static int hf_h248_contextAuditResult = -1; /* TerminationIDList */
160 static int hf_h248_error = -1; /* ErrorDescriptor */
161 static int hf_h248_auditResult = -1; /* AuditResult */
162 static int hf_h248_terminationAuditResult = -1; /* TerminationAudit */
163 static int hf_h248_TerminationAudit_item = -1; /* AuditReturnParameter */
164 static int hf_h248_observedEventsDescriptor = -1; /* ObservedEventsDescriptor */
165 static int hf_h248_statisticsDescriptor = -1; /* StatisticsDescriptor */
166 static int hf_h248_packagesDescriptor = -1; /* PackagesDescriptor */
167 static int hf_h248_emptyDescriptors = -1; /* AuditDescriptor */
168 static int hf_h248_auditToken = -1; /* T_auditToken */
169 static int hf_h248_auditPropertyToken = -1; /* SEQUNCE_OF_IndAuditParameter */
170 static int hf_h248_auditPropertyToken_item = -1; /* IndAuditParameter */
171 static int hf_h248_indaudmediaDescriptor = -1; /* IndAudMediaDescriptor */
172 static int hf_h248_indaudeventsDescriptor = -1; /* IndAudEventsDescriptor */
173 static int hf_h248_indaudeventBufferDescriptor = -1; /* IndAudEventBufferDescriptor */
174 static int hf_h248_indaudsignalsDescriptor = -1; /* IndAudSignalsDescriptor */
175 static int hf_h248_indauddigitMapDescriptor = -1; /* IndAudDigitMapDescriptor */
176 static int hf_h248_indaudstatisticsDescriptor = -1; /* IndAudStatisticsDescriptor */
177 static int hf_h248_indaudpackagesDescriptor = -1; /* IndAudPackagesDescriptor */
178 static int hf_h248_termStateDescr = -1; /* IndAudTerminationStateDescriptor */
179 static int hf_h248_streams = -1; /* T_streams */
180 static int hf_h248_oneStream = -1; /* IndAudStreamParms */
181 static int hf_h248_multiStream = -1; /* SEQUNCE_OF_IndAudStreamDescriptor */
182 static int hf_h248_multiStream_item = -1; /* IndAudStreamDescriptor */
183 static int hf_h248_streamParms = -1; /* IndAudStreamParms */
184 static int hf_h248_localControlDescriptor = -1; /* IndAudLocalControlDescriptor */
185 static int hf_h248_localDescriptor = -1; /* IndAudLocalRemoteDescriptor */
186 static int hf_h248_remoteDescriptor = -1; /* IndAudLocalRemoteDescriptor */
187 static int hf_h248_streamMode = -1; /* NULL */
188 static int hf_h248_reserveValue = -1; /* NULL */
189 static int hf_h248_reserveGroup = -1; /* NULL */
190 static int hf_h248_propertyParms = -1; /* SEQUNCE_OF_IndAudPropertyParm */
191 static int hf_h248_propertyParms_item = -1; /* IndAudPropertyParm */
192 static int hf_h248_name1 = -1; /* PkgdName */
193 static int hf_h248_propGroupID = -1; /* INTEGER_0_65535 */
194 static int hf_h248_propGrps = -1; /* IndAudPropertyGroup */
195 static int hf_h248_IndAudPropertyGroup_item = -1; /* IndAudPropertyParm */
196 static int hf_h248_eventBufferControl = -1; /* NULL */
197 static int hf_h248_serviceState = -1; /* NULL */
198 static int hf_h248_requestID = -1; /* RequestID */
199 static int hf_h248_pkgdName = -1; /* PkgdName */
200 static int hf_h248_eventName = -1; /* PkgdName */
201 static int hf_h248_signal = -1; /* IndAudSignal */
202 static int hf_h248_seqSigList = -1; /* IndAudSeqSigList */
203 static int hf_h248_id = -1; /* INTEGER_0_65535 */
204 static int hf_h248_signalList = -1; /* IndAudSignal */
205 static int hf_h248_signalName = -1; /* PkgdName */
206 static int hf_h248_digitMapName = -1; /* DigitMapName */
207 static int hf_h248_statName = -1; /* PkgdName */
208 static int hf_h248_packageName = -1; /* Name */
209 static int hf_h248_packageVersion = -1; /* INTEGER_0_99 */
210 static int hf_h248_requestId = -1; /* RequestID */
211 static int hf_h248_observedEventLst = -1; /* SEQUNCE_OF_ObservedEvent */
212 static int hf_h248_observedEventLst_item = -1; /* ObservedEvent */
213 static int hf_h248_eventName1 = -1; /* EventName */
214 static int hf_h248_eventParList = -1; /* SEQUNCE_OF_EventParameter */
215 static int hf_h248_eventParList_item = -1; /* EventParameter */
216 static int hf_h248_timeNotation = -1; /* TimeNotation */
217 static int hf_h248_eventParameterName = -1; /* Name */
218 static int hf_h248_value = -1; /* Value */
219 static int hf_h248_extraInfo = -1; /* T_extraInfo */
220 static int hf_h248_relation = -1; /* Relation */
221 static int hf_h248_range = -1; /* BOOLEAN */
222 static int hf_h248_sublist = -1; /* BOOLEAN */
223 static int hf_h248_serviceChangeParms = -1; /* ServiceChangeParm */
224 static int hf_h248_serviceChangeResult = -1; /* ServiceChangeResult */
225 static int hf_h248_serviceChangeResParms = -1; /* ServiceChangeResParm */
226 static int hf_h248_wildcard = -1; /* SEQUNCE_OF_WildcardField */
227 static int hf_h248_wildcard_item = -1; /* WildcardField */
228 static int hf_h248_id1 = -1; /* OCTET_STRING_SIZE_1_8 */
229 static int hf_h248_TerminationIDList_item = -1; /* TerminationID */
230 static int hf_h248_termStateDescr1 = -1; /* TerminationStateDescriptor */
231 static int hf_h248_streams1 = -1; /* T_streams1 */
232 static int hf_h248_oneStream1 = -1; /* StreamParms */
233 static int hf_h248_multiStream1 = -1; /* SEQUNCE_OF_StreamDescriptor */
234 static int hf_h248_multiStream_item1 = -1; /* StreamDescriptor */
235 static int hf_h248_streamParms1 = -1; /* StreamParms */
236 static int hf_h248_localControlDescriptor1 = -1; /* LocalControlDescriptor */
237 static int hf_h248_localDescriptor1 = -1; /* LocalRemoteDescriptor */
238 static int hf_h248_remoteDescriptor1 = -1; /* LocalRemoteDescriptor */
239 static int hf_h248_streamMode1 = -1; /* StreamMode */
240 static int hf_h248_reserveValue1 = -1; /* BOOLEAN */
241 static int hf_h248_reserveGroup1 = -1; /* BOOLEAN */
242 static int hf_h248_propertyParms1 = -1; /* SEQUNCE_OF_PropertyParm */
243 static int hf_h248_propertyParms_item1 = -1; /* PropertyParm */
244 static int hf_h248_propertyName = -1; /* PkgdName */
245 static int hf_h248_value1 = -1; /* SEQUNCE_OF_PropertyID */
246 static int hf_h248_value_item = -1; /* PropertyID */
247 static int hf_h248_extraInfo1 = -1; /* T_extraInfo1 */
248 static int hf_h248_propGrps1 = -1; /* SEQUNCE_OF_PropertyGroup */
249 static int hf_h248_propGrps_item = -1; /* PropertyGroup */
250 static int hf_h248_PropertyGroup_item = -1; /* PropertyParm */
251 static int hf_h248_eventBufferControl1 = -1; /* EventBufferControl */
252 static int hf_h248_serviceState1 = -1; /* ServiceState */
253 static int hf_h248_muxType = -1; /* MuxType */
254 static int hf_h248_termList = -1; /* SEQUNCE_OF_TerminationID */
255 static int hf_h248_termList_item = -1; /* TerminationID */
256 static int hf_h248_nonStandardData = -1; /* NonStandardData */
257 static int hf_h248_eventList = -1; /* SEQUNCE_OF_RequestedEvent */
258 static int hf_h248_eventList_item = -1; /* RequestedEvent */
259 static int hf_h248_eventAction = -1; /* RequestedActions */
260 static int hf_h248_evParList = -1; /* SEQUNCE_OF_EventParameter */
261 static int hf_h248_evParList_item = -1; /* EventParameter */
262 static int hf_h248_keepActive = -1; /* BOOLEAN */
263 static int hf_h248_eventDM = -1; /* EventDM */
264 static int hf_h248_secondEvent = -1; /* SecondEventsDescriptor */
265 static int hf_h248_digitMapValue = -1; /* DigitMapValue */
266 static int hf_h248_eventList1 = -1; /* SEQUNCE_OF_SecondRequestedEvent */
267 static int hf_h248_eventList_item1 = -1; /* SecondRequestedEvent */
268 static int hf_h248_eventAction1 = -1; /* SecondRequestedActions */
269 static int hf_h248_EventBufferDescriptor_item = -1; /* EventSpec */
270 static int hf_h248_SignalsDescriptor_item = -1; /* SignalRequest */
271 static int hf_h248_signal1 = -1; /* Signal */
272 static int hf_h248_seqSigList1 = -1; /* SeqSigList */
273 static int hf_h248_signalList1 = -1; /* SEQUNCE_OF_Signal */
274 static int hf_h248_signalList_item = -1; /* Signal */
275 static int hf_h248_signalName1 = -1; /* SignalName */
276 static int hf_h248_sigType = -1; /* SignalType */
277 static int hf_h248_duration = -1; /* INTEGER_0_65535 */
278 static int hf_h248_notifyCompletion = -1; /* NotifyCompletion */
279 static int hf_h248_sigParList = -1; /* SEQUNCE_OF_SigParameter */
280 static int hf_h248_sigParList_item = -1; /* SigParameter */
281 static int hf_h248_sigParameterName = -1; /* Name */
282 static int hf_h248_extraInfo2 = -1; /* T_extraInfo2 */
283 static int hf_h248_mtl = -1; /* SEQUNCE_OF_ModemType */
284 static int hf_h248_mtl_item = -1; /* ModemType */
285 static int hf_h248_mpl = -1; /* SEQUNCE_OF_PropertyParm */
286 static int hf_h248_mpl_item = -1; /* PropertyParm */
287 static int hf_h248_startTimer = -1; /* INTEGER_0_99 */
288 static int hf_h248_shortTimer = -1; /* INTEGER_0_99 */
289 static int hf_h248_longTimer = -1; /* INTEGER_0_99 */
290 static int hf_h248_digitMapBody = -1; /* IA5String */
291 static int hf_h248_durationTimer = -1; /* INTEGER_0_99 */
292 static int hf_h248_serviceChangeMethod = -1; /* ServiceChangeMethod */
293 static int hf_h248_serviceChangeAddress = -1; /* ServiceChangeAddress */
294 static int hf_h248_serviceChangeVersion = -1; /* INTEGER_0_99 */
295 static int hf_h248_serviceChangeProfile = -1; /* ServiceChangeProfile */
296 static int hf_h248_serviceChangeReason = -1; /* Value */
297 static int hf_h248_serviceChangeDelay = -1; /* INTEGER_0_4294967295 */
298 static int hf_h248_serviceChangeMgcId = -1; /* MId */
299 static int hf_h248_timeStamp = -1; /* TimeNotation */
300 static int hf_h248_serviceChangeInfo = -1; /* AuditDescriptor */
301 static int hf_h248_mtpAddress1 = -1; /* OCTET_STRING_SIZE_2_4 */
302 static int hf_h248_timestamp = -1; /* TimeNotation */
303 static int hf_h248_profileName = -1; /* IA5String_SIZE_1_67 */
304 static int hf_h248_PackagesDescriptor_item = -1; /* PackagesItem */
305 static int hf_h248_StatisticsDescriptor_item = -1; /* StatisticsParameter */
306 static int hf_h248_statValue = -1; /* Value */
307 static int hf_h248_nonStandardIdentifier = -1; /* NonStandardIdentifier */
308 static int hf_h248_data = -1; /* OCTET_STRING */
309 static int hf_h248_object = -1; /* OBJECT_IDENTIFIER */
310 static int hf_h248_h221NonStandard = -1; /* H221NonStandard */
311 static int hf_h248_experimental = -1; /* IA5String_SIZE_8 */
312 static int hf_h248_t35CountryCode1 = -1; /* INTEGER_0_255 */
313 static int hf_h248_t35CountryCode2 = -1; /* INTEGER_0_255 */
314 static int hf_h248_t35Extension = -1; /* INTEGER_0_255 */
315 static int hf_h248_manufacturerCode = -1; /* INTEGER_0_65535 */
316 static int hf_h248_date = -1; /* IA5String_SIZE_8 */
317 static int hf_h248_time = -1; /* IA5String_SIZE_8 */
318 static int hf_h248_Value_item = -1; /* OCTET_STRING */
320 static int hf_h248_T_auditToken_muxToken = -1;
321 static int hf_h248_T_auditToken_modemToken = -1;
322 static int hf_h248_T_auditToken_mediaToken = -1;
323 static int hf_h248_T_auditToken_eventsToken = -1;
324 static int hf_h248_T_auditToken_signalsToken = -1;
325 static int hf_h248_T_auditToken_digitMapToken = -1;
326 static int hf_h248_T_auditToken_statsToken = -1;
327 static int hf_h248_T_auditToken_observedEventsToken = -1;
328 static int hf_h248_T_auditToken_packagesToken = -1;
329 static int hf_h248_T_auditToken_eventBufferToken = -1;
330 static int hf_h248_NotifyCompletion_onTimeOut = -1;
331 static int hf_h248_NotifyCompletion_onInterruptByEvent = -1;
332 static int hf_h248_NotifyCompletion_onInterruptByNewSignalDescr = -1;
333 static int hf_h248_NotifyCompletion_otherReason = -1;
335 /*--- End of included file: packet-h248-hf.c ---*/
338 /* Initialize the subtree pointers */
339 static gint ett_h248 = -1;
340 static gint ett_mtpaddress = -1;
341 static gint ett_packagename = -1;
343 /*--- Included file: packet-h248-ett.c ---*/
345 static gint ett_h248_MegacoMessage = -1;
346 static gint ett_h248_AuthenticationHeader = -1;
347 static gint ett_h248_Message = -1;
348 static gint ett_h248_T_messageBody = -1;
349 static gint ett_h248_SEQUNCE_OF_Transaction = -1;
350 static gint ett_h248_MId = -1;
351 static gint ett_h248_DomainName = -1;
352 static gint ett_h248_IP4Address = -1;
353 static gint ett_h248_IP6Address = -1;
354 static gint ett_h248_Transaction = -1;
355 static gint ett_h248_TransactionRequest = -1;
356 static gint ett_h248_SEQUNCE_OF_ActionRequest = -1;
357 static gint ett_h248_TransactionPending = -1;
358 static gint ett_h248_TransactionReply = -1;
359 static gint ett_h248_T_transactionResult = -1;
360 static gint ett_h248_SEQUNCE_OF_ActionReply = -1;
361 static gint ett_h248_TransactionResponseAck = -1;
362 static gint ett_h248_TransactionAck = -1;
363 static gint ett_h248_ErrorDescriptor = -1;
364 static gint ett_h248_ActionRequest = -1;
365 static gint ett_h248_SEQUNCE_OF_CommandRequest = -1;
366 static gint ett_h248_ActionReply = -1;
367 static gint ett_h248_SEQUNCE_OF_CommandReply = -1;
368 static gint ett_h248_ContextRequest = -1;
369 static gint ett_h248_SEQUNCE_OF_TopologyRequest = -1;
370 static gint ett_h248_ContextAttrAuditRequest = -1;
371 static gint ett_h248_CommandRequest = -1;
372 static gint ett_h248_Command = -1;
373 static gint ett_h248_CommandReply = -1;
374 static gint ett_h248_TopologyRequest = -1;
375 static gint ett_h248_AmmRequest = -1;
376 static gint ett_h248_SEQUNCE_OF_AmmDescriptor = -1;
377 static gint ett_h248_AmmDescriptor = -1;
378 static gint ett_h248_AmmsReply = -1;
379 static gint ett_h248_SubtractRequest = -1;
380 static gint ett_h248_AuditRequest = -1;
381 static gint ett_h248_AuditReply = -1;
382 static gint ett_h248_AuditResult = -1;
383 static gint ett_h248_TerminationAudit = -1;
384 static gint ett_h248_AuditReturnParameter = -1;
385 static gint ett_h248_AuditDescriptor = -1;
386 static gint ett_h248_T_auditToken = -1;
387 static gint ett_h248_SEQUNCE_OF_IndAuditParameter = -1;
388 static gint ett_h248_IndAuditParameter = -1;
389 static gint ett_h248_IndAudMediaDescriptor = -1;
390 static gint ett_h248_T_streams = -1;
391 static gint ett_h248_SEQUNCE_OF_IndAudStreamDescriptor = -1;
392 static gint ett_h248_IndAudStreamDescriptor = -1;
393 static gint ett_h248_IndAudStreamParms = -1;
394 static gint ett_h248_IndAudLocalControlDescriptor = -1;
395 static gint ett_h248_SEQUNCE_OF_IndAudPropertyParm = -1;
396 static gint ett_h248_IndAudPropertyParm = -1;
397 static gint ett_h248_IndAudLocalRemoteDescriptor = -1;
398 static gint ett_h248_IndAudPropertyGroup = -1;
399 static gint ett_h248_IndAudTerminationStateDescriptor = -1;
400 static gint ett_h248_IndAudEventsDescriptor = -1;
401 static gint ett_h248_IndAudEventBufferDescriptor = -1;
402 static gint ett_h248_IndAudSignalsDescriptor = -1;
403 static gint ett_h248_IndAudSeqSigList = -1;
404 static gint ett_h248_IndAudSignal = -1;
405 static gint ett_h248_IndAudDigitMapDescriptor = -1;
406 static gint ett_h248_IndAudStatisticsDescriptor = -1;
407 static gint ett_h248_IndAudPackagesDescriptor = -1;
408 static gint ett_h248_NotifyRequest = -1;
409 static gint ett_h248_NotifyReply = -1;
410 static gint ett_h248_ObservedEventsDescriptor = -1;
411 static gint ett_h248_SEQUNCE_OF_ObservedEvent = -1;
412 static gint ett_h248_ObservedEvent = -1;
413 static gint ett_h248_SEQUNCE_OF_EventParameter = -1;
414 static gint ett_h248_EventParameter = -1;
415 static gint ett_h248_T_extraInfo = -1;
416 static gint ett_h248_ServiceChangeRequest = -1;
417 static gint ett_h248_ServiceChangeReply = -1;
418 static gint ett_h248_ServiceChangeResult = -1;
419 static gint ett_h248_TerminationID = -1;
420 static gint ett_h248_SEQUNCE_OF_WildcardField = -1;
421 static gint ett_h248_TerminationIDList = -1;
422 static gint ett_h248_MediaDescriptor = -1;
423 static gint ett_h248_T_streams1 = -1;
424 static gint ett_h248_SEQUNCE_OF_StreamDescriptor = -1;
425 static gint ett_h248_StreamDescriptor = -1;
426 static gint ett_h248_StreamParms = -1;
427 static gint ett_h248_LocalControlDescriptor = -1;
428 static gint ett_h248_SEQUNCE_OF_PropertyParm = -1;
429 static gint ett_h248_PropertyParm = -1;
430 static gint ett_h248_SEQUNCE_OF_PropertyID = -1;
431 static gint ett_h248_T_extraInfo1 = -1;
432 static gint ett_h248_LocalRemoteDescriptor = -1;
433 static gint ett_h248_SEQUNCE_OF_PropertyGroup = -1;
434 static gint ett_h248_PropertyGroup = -1;
435 static gint ett_h248_TerminationStateDescriptor = -1;
436 static gint ett_h248_MuxDescriptor = -1;
437 static gint ett_h248_SEQUNCE_OF_TerminationID = -1;
438 static gint ett_h248_EventsDescriptor = -1;
439 static gint ett_h248_SEQUNCE_OF_RequestedEvent = -1;
440 static gint ett_h248_RequestedEvent = -1;
441 static gint ett_h248_RequestedActions = -1;
442 static gint ett_h248_EventDM = -1;
443 static gint ett_h248_SecondEventsDescriptor = -1;
444 static gint ett_h248_SEQUNCE_OF_SecondRequestedEvent = -1;
445 static gint ett_h248_SecondRequestedEvent = -1;
446 static gint ett_h248_SecondRequestedActions = -1;
447 static gint ett_h248_EventBufferDescriptor = -1;
448 static gint ett_h248_EventSpec = -1;
449 static gint ett_h248_SignalsDescriptor = -1;
450 static gint ett_h248_SignalRequest = -1;
451 static gint ett_h248_SeqSigList = -1;
452 static gint ett_h248_SEQUNCE_OF_Signal = -1;
453 static gint ett_h248_Signal = -1;
454 static gint ett_h248_SEQUNCE_OF_SigParameter = -1;
455 static gint ett_h248_NotifyCompletion = -1;
456 static gint ett_h248_SigParameter = -1;
457 static gint ett_h248_T_extraInfo2 = -1;
458 static gint ett_h248_ModemDescriptor = -1;
459 static gint ett_h248_SEQUNCE_OF_ModemType = -1;
460 static gint ett_h248_DigitMapDescriptor = -1;
461 static gint ett_h248_DigitMapValue = -1;
462 static gint ett_h248_ServiceChangeParm = -1;
463 static gint ett_h248_ServiceChangeAddress = -1;
464 static gint ett_h248_ServiceChangeResParm = -1;
465 static gint ett_h248_ServiceChangeProfile = -1;
466 static gint ett_h248_PackagesDescriptor = -1;
467 static gint ett_h248_PackagesItem = -1;
468 static gint ett_h248_StatisticsDescriptor = -1;
469 static gint ett_h248_StatisticsParameter = -1;
470 static gint ett_h248_NonStandardData = -1;
471 static gint ett_h248_NonStandardIdentifier = -1;
472 static gint ett_h248_H221NonStandard = -1;
473 static gint ett_h248_TimeNotation = -1;
474 static gint ett_h248_Value = -1;
476 /*--- End of included file: packet-h248-ett.c ---*/
480 static dissector_table_t h248_package_bin_dissector_table=NULL;
483 static const value_string package_name_vals[] = {
484 { 0x0000, "Media stream properties H.248.1 Annex C" },
485 { 0x0001, "g H.248.1 Annex E" },
486 { 0x0002, "root H.248.1 Annex E" },
487 { 0x0003, "tonegen H.248.1 Annex E" },
488 { 0x0004, "tonedet H.248.1 Annex E" },
489 { 0x0005, "dg H.248.1 Annex E" },
490 { 0x0006, "dd H.248.1 Annex E" },
491 { 0x0007, "cg H.248.1 Annex E" },
492 { 0x0008, "cd H.248.1 Annex E" },
493 { 0x0009, "al H.248.1 Annex E" },
494 { 0x000a, "ct H.248.1 Annex E" },
495 { 0x000b, "nt H.248.1 Annex E" },
496 { 0x000c, "rtp H.248.1 Annex E" },
497 { 0x000d, "tdmc H.248.1 Annex E" },
498 { 0x000e, "ftmd H.248.1 Annex E" },
499 { 0x000f, "txc H.248.2" }, /* H.248.2 */
500 { 0x0010, "txp H.248.2" },
501 { 0x0011, "ctyp H.248.2" },
502 { 0x0012, "fax H.248.2" },
503 { 0x0013, "ipfax H.248.2" },
504 { 0x0014, "dis H.248.3" }, /* H.248.3 */
505 { 0x0015, "key H.248.3" },
506 { 0x0016, "kp H.248.3" },
507 { 0x0017, "labelkey H.248.3" },
508 { 0x0018, "kf H.248.3" },
509 { 0x0019, "ind H.248.3" },
510 { 0x001a, "ks H.248.3" },
511 { 0x001b, "anci H.248.3" },
512 { 0x001c, "dtd H.248.6" }, /* H.248.6 */
513 { 0x001d, "an H.248.7" }, /* H.248.7 */
514 { 0x001e, "Bearer Characteristics Q.1950 Annex A" }, /* Q.1950 Annex A */
515 { 0x001f, "Bearer Network Connection Cut Q.1950 Annex A" },
516 { 0x0020, "Reuse Idle Q.1950 Annex A" },
517 { 0x0021, "Generic Bearer Connection Q.1950 Annex A" },
518 { 0x0022, "Bearer Control Tunnelling Q.1950 Annex A" },
519 { 0x0023, "Basic Call Progress Tones Q.1950 Annex A" },
520 { 0x0024, "Expanded Call Progress Tones Q.1950 Annex A" },
521 { 0x0025, "Basic Services Tones Q.1950 Annex A" },
522 { 0x0026, "Expanded Services Tones Q.1950 Annex A" },
523 { 0x0027, "Intrusion Tones Q.1950 Annex A" },
524 { 0x0028, "Business Tones Q.1950 Annex A" },
525 { 0x0029, "Media Gateway Resource Congestion Handling H.248.10" }, /* H.248.10 */
526 { 0x002a, "H245 package H248.12" }, /* H.248.12 */
527 { 0x002b, "H323 bearer control package H.248.12" }, /* H.248.12 */
528 { 0x002c, "H324 package H.248.12" }, /* H.248.12 */
529 { 0x002d, "H245 command package H.248.12" }, /* H.248.12 */
530 { 0x002e, "H245 indication package H.248.12" }, /* H.248.12 */
531 { 0x002f, "3G User Plane" }, /* 3GPP TS 29.232 v4.1.0 */
532 { 0x0030, "3G Circuit Switched Data" },
533 { 0x0031, "3G TFO Control" },
534 { 0x0032, "3G Expanded Call Progress Tones" },
535 { 0x0033, "Advanced Audio Server (AAS) Base)" }, /* H.248.9 */
536 { 0x0034, "AAS Digit Collection" }, /* H.248.9 */
537 { 0x0035, "AAS Recording" }, /* H.248.9 */
538 { 0x0036, "AAS Segment Management" }, /* H.248.9 */
539 { 0x0037, "Quality Alert Ceasing" }, /* H.248.13 */
540 { 0x0038, "Conferencing Tones Generation" }, /* H.248.27 */
541 { 0x0039, "Diagnostic Tones Generation" }, /* H.248.27 */
542 { 0x003a, "Carrier Tones Generation Package H.248.23" }, /* H.248.27 */
543 { 0x003b, "Enhanced Alerting Package H.248.23" }, /* H.248.23 */
544 { 0x003c, "Analog Display Signalling Package H.248.23" }, /* H.248.23 */
545 { 0x003d, "Multi-Frequency Tone Generation Package H.248.24" }, /* H.248.24 */
546 { 0x003e, "H.248.23Multi-Frequency Tone Detection Package H.248.24" }, /* H.248.24 */
547 { 0x003f, "Basic CAS Package H.248.25" }, /* H.248.25 */
548 { 0x0040, "Robbed Bit Signalling Package H.248.25" }, /* H.248.25 */
549 { 0x0041, "Operator Services and Emgergency Services Package H.248.25" },
550 { 0x0042, "Operator Services Extension Package H.248.25" },
551 { 0x0043, "Extended Analog Line Supervision Package H.248.26" },
552 { 0x0044, "Automatic Metering Package H.248.26" },
553 { 0x0045, "Inactivity Timer Package H.248.14" },
554 { 0x0046, "3G Modification of Link Characteristics Bearer Capability" }, /* 3GPP TS 29.232 v4.4.0 */
555 { 0x0047, "Base Announcement Syntax H.248.9" },
556 { 0x0048, "Voice Variable Syntax H.248.9" },
557 { 0x0049, "Announcement Set Syntax H.248.9" },
558 { 0x004a, "Phrase Variable Syntax H.248.9" },
559 { 0x004b, "Basic NAS package" },
560 { 0x004c, "NAS incoming package" },
561 { 0x004d, "NAS outgoing package" },
562 { 0x004e, "NAS control package" },
563 { 0x004f, "NAS root package" },
564 { 0x0050, "Profile Handling Package H.248.18" },
565 { 0x0051, "Media Gateway Overload Control Package H.248.11" },
566 { 0x0052, "Extended DTMF Detection Package H.248.16" },
567 { 0x0053, "Quiet Termination Line Test" },
568 { 0x0054, "Loopback Line Test Response" }, /* H.248.17 */
569 { 0x0055, "ITU 404Hz Line Test" }, /* H.248.17 */
570 { 0x0056, "ITU 816Hz Line Test" }, /* H.248.17 */
571 { 0x0057, "ITU 1020Hz Line Test" }, /* H.248.17 */
572 { 0x0058, "ITU 2100Hz Disable Tone Line Test" }, /* H.248.17 */
573 { 0x0059, "ITU 2100Hz Disable Echo Canceller Tone Line Test" }, /* H.248.17 */
574 { 0x005a, "ITU 2804Hz Tone Line Test" }, /* H.248.17 */
575 { 0x005b, "ITU Noise Test Tone Line Test" }, /* H.248.17 */
576 { 0x005c, "ITU Digital Pseudo Random Test Line Test" }, /* H.248.17 */
577 { 0x005d, "ITU ATME No.2 Test Line Response" }, /* H.248.17 */
578 { 0x005e, "ANSI 1004Hz Test Tone Line Test" }, /* H.248.17 */
579 { 0x005f, "ANSI Test Responder Line Test" }, /* H.248.17 */
580 { 0x0060, "ANSI 2225Hz Test Progress Tone Line Test" }, /* H.248.17 */
581 { 0x0061, "ANSI Digital Test Signal Line Test" }, /* H.248.17 */
582 { 0x0062, "ANSI Inverting Loopback Line Test Repsonse" }, /* H.248.17 */
583 { 0x0063, "Extended H.324 Packages H.248.12 Annex A" },
584 { 0x0064, "Extended H.245 Command Package H.248.12 Annex A" },
585 { 0x0065, "Extended H.245 Indication Package H.248.12 Annex A" },
586 { 0x0066, "Enhanced DTMF Detection Package H.248.16" },
587 { 0x0067, "Connection Group Identity Package Q.1950 Annex E" },
588 { 0x0068, "CTM Text Transport 3GPP TS 29.232 v5.2.0" },
589 { 0x0069, "SPNE Control Package Q.115.0" },
590 { 0x006a, "Semi-permanent Connection Package H.248.21" },
591 { 0x006b, "Shared Risk Group Package H.248.22" },
592 { 0x006c, "isuptn Annex B of ITU-T Rec. J.171" },
593 { 0x006d, "Basic CAS Addressing Package H.248.25" },
594 { 0x006e, "Floor Control Package H.248.19" },
595 { 0x006f, "Indication of Being Viewed Package H.248.19" },
596 { 0x0070, "Volume Control Package H.248.19" },
597 { 0x0071, "UNASSIGNED" },
598 { 0x0072, "Volume Detection Package H.248.19" },
599 { 0x0073, "Volume Level Mixing Package H.248.19" },
600 { 0x0074, "Mixing Volume Level Control Package H.248.19" },
601 { 0x0075, "Voice Activated Video Switch Package H.248.19" },
602 { 0x0076, "Lecture Video Mode Package H.248.19" },
603 { 0x0077, "Contributing Video Source Package H.248.19" },
604 { 0x0078, "Video Window Package H.248.19" },
605 { 0x0079, "Tiled Window Package H.248.19" },
606 { 0x007a, "Adaptive Jitter Buffer Package H.248.31" },
607 { 0x007b, "International CAS Package H.248.28" },
608 { 0x007c, "CAS Blocking Package H.248.28" },
609 { 0x007d, "International CAS Compelled Package H.248.29" },
610 { 0x007e, "International CAS Compelled with Overlap Package H.248.29" },
611 { 0x007f, "International CAS Compelled with End-to-end Package H.248.29" },
612 { 0x0080, "RTCP XR Package H.248.30" },
613 { 0x0081, "RTCP XR Burst Metrics Package H.248.30" },
614 { 0x0082, "threegcsden 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
615 { 0x0083, "threegiptra 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
616 { 0x0084, "threegflex 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
617 { 0x0085, "H.248 PCMSB" },
618 { 0x008a, "TIPHON Extended H.248/MEGACO Package" }, /* ETSI specification TS 101 3 */
619 { 0x008b, "Differentiated Services Package" }, /* Annex A of ETSI TS 102 333 */
620 { 0x008c, "Gate Management Package" }, /* Annex B of ETSI TS 102 333 */
621 { 0x008d, "Traffic Management Package" }, /* Annex C of ETSI TS 102 333 */
622 { 0x008e, "Gate Recovery Information Package" }, /* Annex D of ETSI TS 102 333 */
623 { 0x008f, "NAT Traversal Package" }, /* Annex E of ETSI TS 102 333 */
624 { 0x0090, "MPLS Package" }, /* Annex F of ETSI TS 102 333 */
625 { 0x0091, "VLAN Package" }, /* Annex G of ETSI TS 102 333 */
626 { 0x8000, "Ericsson IU" },
627 { 0x8001, "Ericsson UMTS and GSM Circuit" },
628 { 0x8002, "Ericsson Tone Generator Package" },
629 { 0x8003, "Ericsson Line Test Package" },
630 { 0x8004, "Nokia Advanced TFO Package" },
631 { 0x8005, "Nokia IWF Package" },
632 { 0x8006, "Nokia Root Package" },
633 { 0x8007, "Nokia Trace Package" },
634 { 0x8008, "Ericsson V5.2 Layer" },
635 { 0x8009, "Ericsson Detailed Termination Information Package" },
636 { 0x800a, "Nokia Bearer Characteristics Package" },
641 dissect_h248_annex_C_PDU(gboolean implicit_tag, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint16 name_minor) {
645 switch ( name_minor ){
646 case 0x1001: /* Media */
647 proto_tree_add_text(tree, tvb, offset, -1,"Media");
649 case 0x3002: /* BIR */
650 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_h248_package_annex_C_BIR, &new_tvb);
652 case 0x3003: /* NSAP */
653 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_h248_package_annex_C_NSAP, &new_tvb);
654 dissect_nsap(new_tvb, 0,tvb_length_remaining(new_tvb, 0), tree);
656 case 0x9001: /* TMR */
657 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_h248_package_annex_C_TMR, NULL);
659 case 0x9023: /* User Service Information */
660 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_h248_package_annex_C_USI, &new_tvb);
661 dissect_q931_bearer_capability_ie(new_tvb, 0, 3, tree);
664 proto_tree_add_text(tree, tvb, offset, -1,"PropertyID not decoded(yet) 0x%x",name_minor);
668 static const value_string BNCChar_vals[] = {
677 dissect_h248_package_data(gboolean implicit_tag, tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,guint16 name_major, guint16 name_minor){
681 switch ( name_major ){
682 case 0x0000: /* Media stream properties H.248.1 Annex C */
683 dissect_h248_annex_C_PDU(implicit_tag, tvb, pinfo, tree, name_minor);
685 case 0x0001: /* g H.248.1 Annex E */
686 proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), "H.248: Dissector for Package/ID:0x%04x not implemented (yet).", name_major);
688 case 0x001e: /* g H.248.1 Annex E */
689 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_h248_package_bcp_BNCChar_PDU, NULL);
692 proto_tree_add_text(tree, tvb, 0, tvb_length_remaining(tvb, offset), "H.248: Dissector for Package/ID:0x%04x not implemented (yet).", name_major);
697 static guint32 packageandid;
700 dissect_h248_PkgdName(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index) {
702 proto_tree *package_tree=NULL;
703 guint32 name_major, name_minor;
707 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, &new_tvb);
710 /* this field is always 4 bytes so just read it into two integers */
711 name_major=tvb_get_ntohs(new_tvb, 0);
712 name_minor=tvb_get_ntohs(new_tvb, 2);
713 packageandid=(name_major<<16)|name_minor;
715 /* do the prettification */
716 proto_item_append_text(ber_last_created_item, " %s (%04x)", val_to_str(name_major, package_name_vals, "Unknown Package"), name_major);
718 package_tree = proto_item_add_subtree(ber_last_created_item, ett_packagename);
720 proto_tree_add_uint(package_tree, hf_h248_package_name, tvb, offset-4, 2, name_major);
727 dissect_h248_PropertyID(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index) {
735 int old_offset, end_offset;
739 offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &class, &pc, &tag);
740 offset=dissect_ber_length(pinfo, tree, tvb, offset, &len, &ind);
741 end_offset=offset+len;
743 if( (class!=BER_CLASS_UNI)
744 ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
745 proto_tree_add_text(tree, tvb, offset-2, 2, "H.248 BER Error: OctetString expected but Class:%d PC:%d Tag:%d was unexpected", class, pc, tag);
750 next_tvb = tvb_new_subset(tvb, offset , len , len );
751 name_major = packageandid >> 16;
752 name_minor = packageandid & 0xffff;
754 if(!dissector_try_port(h248_package_bin_dissector_table, name_major, next_tvb, pinfo, tree)){
755 proto_tree_add_text(tree, next_tvb, 0, tvb_length_remaining(tvb, offset), "H.248: Dissector for Package/ID:0x%08x not implemented (yet).", packageandid);
757 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, old_offset, hf_index, NULL);
760 dissect_h248_package_data(implicit_tag, next_tvb, pinfo, tree, name_major, name_minor);
767 dissect_h248_MtpAddress(gboolean implicit_tag, tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index) {
769 proto_tree *mtp_tree=NULL;
771 int i, len, old_offset;
774 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index, &new_tvb);
777 /* this field is either 2 or 4 bytes so just read it into an integer */
779 len=tvb_length(new_tvb);
781 val= (val<<8)|tvb_get_guint8(new_tvb, i);
784 /* do the prettification */
785 proto_item_append_text(ber_last_created_item, " NI = %d, PC = %d ( %d-%d )", val&0x03,val>>2,val&0x03,val>>2);
787 mtp_tree = proto_item_add_subtree(ber_last_created_item, ett_mtpaddress);
789 proto_tree_add_uint(mtp_tree, hf_h248_mtpaddress_ni, tvb, old_offset, offset-old_offset, val&0x03);
790 proto_tree_add_uint(mtp_tree, hf_h248_mtpaddress_pc, tvb, old_offset, offset-old_offset, val>>2);
798 /*--- Included file: packet-h248-fn.c ---*/
800 /*--- Fields for imported types ---*/
805 dissect_h248_SecurityParmIndex(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
806 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
811 static int dissect_secParmIndex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
812 return dissect_h248_SecurityParmIndex(TRUE, tvb, offset, pinfo, tree, hf_h248_secParmIndex);
817 dissect_h248_SequenceNum(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
818 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
823 static int dissect_seqNum_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
824 return dissect_h248_SequenceNum(TRUE, tvb, offset, pinfo, tree, hf_h248_seqNum);
829 dissect_h248_AuthData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
830 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
835 static int dissect_ad_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
836 return dissect_h248_AuthData(TRUE, tvb, offset, pinfo, tree, hf_h248_ad);
839 static ber_sequence AuthenticationHeader_sequence[] = {
840 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_secParmIndex_impl },
841 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_seqNum_impl },
842 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ad_impl },
847 dissect_h248_AuthenticationHeader(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
848 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
849 AuthenticationHeader_sequence, hf_index, ett_h248_AuthenticationHeader);
853 static int dissect_authHeader_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
854 return dissect_h248_AuthenticationHeader(TRUE, tvb, offset, pinfo, tree, hf_h248_authHeader);
860 dissect_h248_INTEGER_0_99(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
861 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
865 static int dissect_version_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
866 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_version);
868 static int dissect_packageVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
869 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_packageVersion);
871 static int dissect_startTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
872 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_startTimer);
874 static int dissect_shortTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
875 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_shortTimer);
877 static int dissect_longTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
878 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_longTimer);
880 static int dissect_durationTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
881 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_durationTimer);
883 static int dissect_serviceChangeVersion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
884 return dissect_h248_INTEGER_0_99(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeVersion);
889 dissect_h248_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
890 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
895 static int dissect_address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
896 return dissect_h248_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_h248_address);
902 dissect_h248_INTEGER_0_65535(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
903 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
907 static int dissect_portNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
908 return dissect_h248_INTEGER_0_65535(TRUE, tvb, offset, pinfo, tree, hf_h248_portNumber);
910 static int dissect_propGroupID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
911 return dissect_h248_INTEGER_0_65535(TRUE, tvb, offset, pinfo, tree, hf_h248_propGroupID);
913 static int dissect_id_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
914 return dissect_h248_INTEGER_0_65535(TRUE, tvb, offset, pinfo, tree, hf_h248_id);
916 static int dissect_duration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
917 return dissect_h248_INTEGER_0_65535(TRUE, tvb, offset, pinfo, tree, hf_h248_duration);
919 static int dissect_manufacturerCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
920 return dissect_h248_INTEGER_0_65535(TRUE, tvb, offset, pinfo, tree, hf_h248_manufacturerCode);
923 static ber_sequence IP4Address_sequence[] = {
924 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_address_impl },
925 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_portNumber_impl },
930 dissect_h248_IP4Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
931 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
932 IP4Address_sequence, hf_index, ett_h248_IP4Address);
936 static int dissect_ip4Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
937 return dissect_h248_IP4Address(TRUE, tvb, offset, pinfo, tree, hf_h248_ip4Address);
942 dissect_h248_OCTET_STRING_SIZE_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
943 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
948 static int dissect_address1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
949 return dissect_h248_OCTET_STRING_SIZE_16(TRUE, tvb, offset, pinfo, tree, hf_h248_address1);
952 static ber_sequence IP6Address_sequence[] = {
953 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_address1_impl },
954 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_portNumber_impl },
959 dissect_h248_IP6Address(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
960 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
961 IP6Address_sequence, hf_index, ett_h248_IP6Address);
965 static int dissect_ip6Address_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
966 return dissect_h248_IP6Address(TRUE, tvb, offset, pinfo, tree, hf_h248_ip6Address);
971 dissect_h248_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
972 offset = dissect_ber_restricted_string(implicit_tag, 0,
973 pinfo, tree, tvb, offset, hf_index,
978 static int dissect_name_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
979 return dissect_h248_IA5String(TRUE, tvb, offset, pinfo, tree, hf_h248_name);
981 static int dissect_digitMapBody_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
982 return dissect_h248_IA5String(TRUE, tvb, offset, pinfo, tree, hf_h248_digitMapBody);
985 static ber_sequence DomainName_sequence[] = {
986 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_name_impl },
987 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_portNumber_impl },
992 dissect_h248_DomainName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
993 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
994 DomainName_sequence, hf_index, ett_h248_DomainName);
998 static int dissect_domainName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
999 return dissect_h248_DomainName(TRUE, tvb, offset, pinfo, tree, hf_h248_domainName);
1004 dissect_h248_PathName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1005 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1006 pinfo, tree, tvb, offset, hf_index,
1011 static int dissect_deviceName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1012 return dissect_h248_PathName(TRUE, tvb, offset, pinfo, tree, hf_h248_deviceName);
1015 static int dissect_mtpAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1016 return dissect_h248_MtpAddress(TRUE, tvb, offset, pinfo, tree, hf_h248_mtpAddress);
1020 static const value_string MId_vals[] = {
1021 { 0, "ip4Address" },
1022 { 1, "ip6Address" },
1023 { 2, "domainName" },
1024 { 3, "deviceName" },
1025 { 4, "mtpAddress" },
1029 static ber_choice MId_choice[] = {
1030 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ip4Address_impl },
1031 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ip6Address_impl },
1032 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_domainName_impl },
1033 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_deviceName_impl },
1034 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_mtpAddress_impl },
1035 { 0, 0, 0, 0, NULL }
1039 dissect_h248_MId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1040 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1041 MId_choice, hf_index, ett_h248_MId);
1045 static int dissect_mId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1046 return dissect_h248_MId(FALSE, tvb, offset, pinfo, tree, hf_h248_mId);
1048 static int dissect_serviceChangeMgcId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1049 return dissect_h248_MId(FALSE, tvb, offset, pinfo, tree, hf_h248_serviceChangeMgcId);
1055 dissect_h248_ErrorCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1056 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1060 static int dissect_errorCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1061 return dissect_h248_ErrorCode(TRUE, tvb, offset, pinfo, tree, hf_h248_errorCode);
1066 dissect_h248_ErrorText(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1067 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1068 pinfo, tree, tvb, offset, hf_index,
1073 static int dissect_errorText_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1074 return dissect_h248_ErrorText(TRUE, tvb, offset, pinfo, tree, hf_h248_errorText);
1077 static ber_sequence ErrorDescriptor_sequence[] = {
1078 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_errorCode_impl },
1079 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorText_impl },
1084 dissect_h248_ErrorDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1085 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1086 ErrorDescriptor_sequence, hf_index, ett_h248_ErrorDescriptor);
1090 static int dissect_messageError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1091 return dissect_h248_ErrorDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_messageError);
1093 static int dissect_transactionError_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1094 return dissect_h248_ErrorDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_transactionError);
1096 static int dissect_errorDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1097 return dissect_h248_ErrorDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_errorDescriptor);
1099 static int dissect_error_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1100 return dissect_h248_ErrorDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_error);
1106 dissect_h248_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1107 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1111 static int dissect_transactionId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1112 return dissect_h248_TransactionId(TRUE, tvb, offset, pinfo, tree, hf_h248_transactionId);
1114 static int dissect_firstAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1115 return dissect_h248_TransactionId(TRUE, tvb, offset, pinfo, tree, hf_h248_firstAck);
1117 static int dissect_lastAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1118 return dissect_h248_TransactionId(TRUE, tvb, offset, pinfo, tree, hf_h248_lastAck);
1124 dissect_h248_ContextID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1125 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1129 static int dissect_contextId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1130 return dissect_h248_ContextID(TRUE, tvb, offset, pinfo, tree, hf_h248_contextId);
1136 dissect_h248_INTEGER_0_15(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1137 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1141 static int dissect_priority_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1142 return dissect_h248_INTEGER_0_15(TRUE, tvb, offset, pinfo, tree, hf_h248_priority);
1147 dissect_h248_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1148 offset = dissect_ber_boolean(pinfo, tree, tvb, offset, hf_index);
1152 static int dissect_emergency_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1153 return dissect_h248_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_h248_emergency);
1155 static int dissect_range_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1156 return dissect_h248_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_h248_range);
1158 static int dissect_sublist_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1159 return dissect_h248_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_h248_sublist);
1161 static int dissect_reserveValue1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1162 return dissect_h248_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_h248_reserveValue1);
1164 static int dissect_reserveGroup1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1165 return dissect_h248_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_h248_reserveGroup1);
1167 static int dissect_keepActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1168 return dissect_h248_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_h248_keepActive);
1173 dissect_h248_WildcardField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1174 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1179 static int dissect_wildcard_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1180 return dissect_h248_WildcardField(FALSE, tvb, offset, pinfo, tree, hf_h248_wildcard_item);
1183 static ber_sequence SEQUNCE_OF_WildcardField_sequence_of[1] = {
1184 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_wildcard_item },
1188 dissect_h248_SEQUNCE_OF_WildcardField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1189 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1190 SEQUNCE_OF_WildcardField_sequence_of, hf_index, ett_h248_SEQUNCE_OF_WildcardField);
1194 static int dissect_wildcard_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1195 return dissect_h248_SEQUNCE_OF_WildcardField(TRUE, tvb, offset, pinfo, tree, hf_h248_wildcard);
1200 dissect_h248_OCTET_STRING_SIZE_1_8(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1201 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1206 static int dissect_id1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1207 return dissect_h248_OCTET_STRING_SIZE_1_8(TRUE, tvb, offset, pinfo, tree, hf_h248_id1);
1210 static ber_sequence TerminationID_sequence[] = {
1211 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_wildcard_impl },
1212 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_id1_impl },
1217 dissect_h248_TerminationID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1218 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1219 TerminationID_sequence, hf_index, ett_h248_TerminationID);
1223 static int dissect_terminationFrom_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1224 return dissect_h248_TerminationID(TRUE, tvb, offset, pinfo, tree, hf_h248_terminationFrom);
1226 static int dissect_terminationTo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1227 return dissect_h248_TerminationID(TRUE, tvb, offset, pinfo, tree, hf_h248_terminationTo);
1229 static int dissect_terminationID1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1230 return dissect_h248_TerminationID(TRUE, tvb, offset, pinfo, tree, hf_h248_terminationID1);
1232 static int dissect_TerminationIDList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1233 return dissect_h248_TerminationID(FALSE, tvb, offset, pinfo, tree, hf_h248_TerminationIDList_item);
1235 static int dissect_termList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1236 return dissect_h248_TerminationID(FALSE, tvb, offset, pinfo, tree, hf_h248_termList_item);
1240 static const value_string T_topologyDirection_vals[] = {
1249 dissect_h248_T_topologyDirection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1250 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1254 static int dissect_topologyDirection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1255 return dissect_h248_T_topologyDirection(TRUE, tvb, offset, pinfo, tree, hf_h248_topologyDirection);
1261 dissect_h248_StreamID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1262 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1266 static int dissect_streamID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1267 return dissect_h248_StreamID(TRUE, tvb, offset, pinfo, tree, hf_h248_streamID);
1270 static ber_sequence TopologyRequest_sequence[] = {
1271 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationFrom_impl },
1272 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_terminationTo_impl },
1273 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_topologyDirection_impl },
1274 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
1279 dissect_h248_TopologyRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1280 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1281 TopologyRequest_sequence, hf_index, ett_h248_TopologyRequest);
1285 static int dissect_topologyReq_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1286 return dissect_h248_TopologyRequest(FALSE, tvb, offset, pinfo, tree, hf_h248_topologyReq_item);
1289 static ber_sequence SEQUNCE_OF_TopologyRequest_sequence_of[1] = {
1290 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_topologyReq_item },
1294 dissect_h248_SEQUNCE_OF_TopologyRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1295 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1296 SEQUNCE_OF_TopologyRequest_sequence_of, hf_index, ett_h248_SEQUNCE_OF_TopologyRequest);
1300 static int dissect_topologyReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1301 return dissect_h248_SEQUNCE_OF_TopologyRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_topologyReq);
1304 static ber_sequence ContextRequest_sequence[] = {
1305 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority_impl },
1306 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_emergency_impl },
1307 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_topologyReq_impl },
1312 dissect_h248_ContextRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1313 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1314 ContextRequest_sequence, hf_index, ett_h248_ContextRequest);
1318 static int dissect_contextRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1319 return dissect_h248_ContextRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_contextRequest);
1321 static int dissect_contextReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1322 return dissect_h248_ContextRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_contextReply);
1327 dissect_h248_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1328 { proto_item *ti_tmp;
1329 ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
1330 proto_item_append_text(ti_tmp, ": NULL");
1335 static int dissect_immAckRequired_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1336 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_immAckRequired);
1338 static int dissect_topology_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1339 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_topology);
1341 static int dissect_emergency1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1342 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_emergency1);
1344 static int dissect_priority1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1345 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_priority1);
1347 static int dissect_optional_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1348 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_optional);
1350 static int dissect_wildcardReturn_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1351 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_wildcardReturn);
1353 static int dissect_streamMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1354 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_streamMode);
1356 static int dissect_reserveValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1357 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_reserveValue);
1359 static int dissect_reserveGroup_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1360 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_reserveGroup);
1362 static int dissect_eventBufferControl_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1363 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_eventBufferControl);
1365 static int dissect_serviceState_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1366 return dissect_h248_NULL(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceState);
1369 static ber_sequence ContextAttrAuditRequest_sequence[] = {
1370 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_topology_impl },
1371 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_emergency1_impl },
1372 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_priority1_impl },
1377 dissect_h248_ContextAttrAuditRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1378 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1379 ContextAttrAuditRequest_sequence, hf_index, ett_h248_ContextAttrAuditRequest);
1383 static int dissect_contextAttrAuditReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1384 return dissect_h248_ContextAttrAuditRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_contextAttrAuditReq);
1387 static ber_sequence TerminationIDList_sequence_of[1] = {
1388 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_TerminationIDList_item },
1392 dissect_h248_TerminationIDList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1393 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1394 TerminationIDList_sequence_of, hf_index, ett_h248_TerminationIDList);
1398 static int dissect_terminationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1399 return dissect_h248_TerminationIDList(TRUE, tvb, offset, pinfo, tree, hf_h248_terminationID);
1401 static int dissect_contextAuditResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1402 return dissect_h248_TerminationIDList(TRUE, tvb, offset, pinfo, tree, hf_h248_contextAuditResult);
1405 static int dissect_name1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1406 return dissect_h248_PkgdName(TRUE, tvb, offset, pinfo, tree, hf_h248_name1);
1408 static int dissect_pkgdName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1409 return dissect_h248_PkgdName(TRUE, tvb, offset, pinfo, tree, hf_h248_pkgdName);
1411 static int dissect_eventName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1412 return dissect_h248_PkgdName(TRUE, tvb, offset, pinfo, tree, hf_h248_eventName);
1414 static int dissect_signalName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1415 return dissect_h248_PkgdName(TRUE, tvb, offset, pinfo, tree, hf_h248_signalName);
1417 static int dissect_statName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1418 return dissect_h248_PkgdName(TRUE, tvb, offset, pinfo, tree, hf_h248_statName);
1420 static int dissect_propertyName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1421 return dissect_h248_PkgdName(TRUE, tvb, offset, pinfo, tree, hf_h248_propertyName);
1424 static int dissect_value_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1425 return dissect_h248_PropertyID(FALSE, tvb, offset, pinfo, tree, hf_h248_value_item);
1428 static ber_sequence SEQUNCE_OF_PropertyID_sequence_of[1] = {
1429 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_value_item },
1433 dissect_h248_SEQUNCE_OF_PropertyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1434 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1435 SEQUNCE_OF_PropertyID_sequence_of, hf_index, ett_h248_SEQUNCE_OF_PropertyID);
1439 static int dissect_value1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1440 return dissect_h248_SEQUNCE_OF_PropertyID(TRUE, tvb, offset, pinfo, tree, hf_h248_value1);
1444 static const value_string Relation_vals[] = {
1445 { 0, "greaterThan" },
1446 { 1, "smallerThan" },
1453 dissect_h248_Relation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1454 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1458 static int dissect_relation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1459 return dissect_h248_Relation(TRUE, tvb, offset, pinfo, tree, hf_h248_relation);
1463 static const value_string T_extraInfo1_vals[] = {
1470 static ber_choice T_extraInfo1_choice[] = {
1471 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_relation_impl },
1472 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_range_impl },
1473 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_sublist_impl },
1474 { 0, 0, 0, 0, NULL }
1478 dissect_h248_T_extraInfo1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1479 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1480 T_extraInfo1_choice, hf_index, ett_h248_T_extraInfo1);
1484 static int dissect_extraInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1485 return dissect_h248_T_extraInfo1(FALSE, tvb, offset, pinfo, tree, hf_h248_extraInfo1);
1488 static ber_sequence PropertyParm_sequence[] = {
1489 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_propertyName_impl },
1490 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value1_impl },
1491 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_extraInfo1 },
1496 dissect_h248_PropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1497 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1498 PropertyParm_sequence, hf_index, ett_h248_PropertyParm);
1502 static int dissect_propertyParms_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1503 return dissect_h248_PropertyParm(FALSE, tvb, offset, pinfo, tree, hf_h248_propertyParms_item1);
1505 static int dissect_PropertyGroup_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1506 return dissect_h248_PropertyParm(FALSE, tvb, offset, pinfo, tree, hf_h248_PropertyGroup_item);
1508 static int dissect_mpl_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1509 return dissect_h248_PropertyParm(FALSE, tvb, offset, pinfo, tree, hf_h248_mpl_item);
1512 static ber_sequence SEQUNCE_OF_PropertyParm_sequence_of[1] = {
1513 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_propertyParms_item1 },
1517 dissect_h248_SEQUNCE_OF_PropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1518 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1519 SEQUNCE_OF_PropertyParm_sequence_of, hf_index, ett_h248_SEQUNCE_OF_PropertyParm);
1523 static int dissect_propertyParms1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1524 return dissect_h248_SEQUNCE_OF_PropertyParm(TRUE, tvb, offset, pinfo, tree, hf_h248_propertyParms1);
1526 static int dissect_mpl_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1527 return dissect_h248_SEQUNCE_OF_PropertyParm(TRUE, tvb, offset, pinfo, tree, hf_h248_mpl);
1531 static const value_string EventBufferControl_vals[] = {
1539 dissect_h248_EventBufferControl(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1540 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1544 static int dissect_eventBufferControl1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1545 return dissect_h248_EventBufferControl(TRUE, tvb, offset, pinfo, tree, hf_h248_eventBufferControl1);
1549 static const value_string ServiceState_vals[] = {
1558 dissect_h248_ServiceState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1559 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1563 static int dissect_serviceState1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1564 return dissect_h248_ServiceState(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceState1);
1567 static ber_sequence TerminationStateDescriptor_sequence[] = {
1568 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_propertyParms1_impl },
1569 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventBufferControl1_impl },
1570 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceState1_impl },
1575 dissect_h248_TerminationStateDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1576 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1577 TerminationStateDescriptor_sequence, hf_index, ett_h248_TerminationStateDescriptor);
1581 static int dissect_termStateDescr1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1582 return dissect_h248_TerminationStateDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_termStateDescr1);
1586 static const value_string StreamMode_vals[] = {
1597 dissect_h248_StreamMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1598 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1602 static int dissect_streamMode1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1603 return dissect_h248_StreamMode(TRUE, tvb, offset, pinfo, tree, hf_h248_streamMode1);
1606 static ber_sequence LocalControlDescriptor_sequence[] = {
1607 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamMode1_impl },
1608 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reserveValue1_impl },
1609 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reserveGroup1_impl },
1610 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_propertyParms1_impl },
1615 dissect_h248_LocalControlDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1616 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1617 LocalControlDescriptor_sequence, hf_index, ett_h248_LocalControlDescriptor);
1621 static int dissect_localControlDescriptor1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1622 return dissect_h248_LocalControlDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_localControlDescriptor1);
1625 static ber_sequence PropertyGroup_sequence_of[1] = {
1626 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PropertyGroup_item },
1630 dissect_h248_PropertyGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1631 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1632 PropertyGroup_sequence_of, hf_index, ett_h248_PropertyGroup);
1636 static int dissect_propGrps_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1637 return dissect_h248_PropertyGroup(FALSE, tvb, offset, pinfo, tree, hf_h248_propGrps_item);
1640 static ber_sequence SEQUNCE_OF_PropertyGroup_sequence_of[1] = {
1641 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_propGrps_item },
1645 dissect_h248_SEQUNCE_OF_PropertyGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1646 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1647 SEQUNCE_OF_PropertyGroup_sequence_of, hf_index, ett_h248_SEQUNCE_OF_PropertyGroup);
1651 static int dissect_propGrps1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1652 return dissect_h248_SEQUNCE_OF_PropertyGroup(TRUE, tvb, offset, pinfo, tree, hf_h248_propGrps1);
1655 static ber_sequence LocalRemoteDescriptor_sequence[] = {
1656 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_propGrps1_impl },
1661 dissect_h248_LocalRemoteDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1662 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1663 LocalRemoteDescriptor_sequence, hf_index, ett_h248_LocalRemoteDescriptor);
1667 static int dissect_localDescriptor1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1668 return dissect_h248_LocalRemoteDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_localDescriptor1);
1670 static int dissect_remoteDescriptor1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1671 return dissect_h248_LocalRemoteDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_remoteDescriptor1);
1674 static ber_sequence StreamParms_sequence[] = {
1675 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_localControlDescriptor1_impl },
1676 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_localDescriptor1_impl },
1677 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_remoteDescriptor1_impl },
1682 dissect_h248_StreamParms(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1683 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1684 StreamParms_sequence, hf_index, ett_h248_StreamParms);
1688 static int dissect_oneStream1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1689 return dissect_h248_StreamParms(TRUE, tvb, offset, pinfo, tree, hf_h248_oneStream1);
1691 static int dissect_streamParms1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1692 return dissect_h248_StreamParms(TRUE, tvb, offset, pinfo, tree, hf_h248_streamParms1);
1695 static ber_sequence StreamDescriptor_sequence[] = {
1696 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_streamID_impl },
1697 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_streamParms1_impl },
1702 dissect_h248_StreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1703 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1704 StreamDescriptor_sequence, hf_index, ett_h248_StreamDescriptor);
1708 static int dissect_multiStream_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1709 return dissect_h248_StreamDescriptor(FALSE, tvb, offset, pinfo, tree, hf_h248_multiStream_item1);
1712 static ber_sequence SEQUNCE_OF_StreamDescriptor_sequence_of[1] = {
1713 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_multiStream_item1 },
1717 dissect_h248_SEQUNCE_OF_StreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1718 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1719 SEQUNCE_OF_StreamDescriptor_sequence_of, hf_index, ett_h248_SEQUNCE_OF_StreamDescriptor);
1723 static int dissect_multiStream1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1724 return dissect_h248_SEQUNCE_OF_StreamDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_multiStream1);
1728 static const value_string T_streams1_vals[] = {
1730 { 1, "multiStream" },
1734 static ber_choice T_streams1_choice[] = {
1735 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_oneStream1_impl },
1736 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_multiStream1_impl },
1737 { 0, 0, 0, 0, NULL }
1741 dissect_h248_T_streams1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1742 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1743 T_streams1_choice, hf_index, ett_h248_T_streams1);
1747 static int dissect_streams1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1748 return dissect_h248_T_streams1(FALSE, tvb, offset, pinfo, tree, hf_h248_streams1);
1751 static ber_sequence MediaDescriptor_sequence[] = {
1752 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_termStateDescr1_impl },
1753 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_streams1 },
1758 dissect_h248_MediaDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1759 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1760 MediaDescriptor_sequence, hf_index, ett_h248_MediaDescriptor);
1764 static int dissect_mediaDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1765 return dissect_h248_MediaDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_mediaDescriptor);
1769 static const value_string ModemType_vals[] = {
1784 dissect_h248_ModemType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1785 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1789 static int dissect_mtl_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1790 return dissect_h248_ModemType(FALSE, tvb, offset, pinfo, tree, hf_h248_mtl_item);
1793 static ber_sequence SEQUNCE_OF_ModemType_sequence_of[1] = {
1794 { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_mtl_item },
1798 dissect_h248_SEQUNCE_OF_ModemType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1799 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1800 SEQUNCE_OF_ModemType_sequence_of, hf_index, ett_h248_SEQUNCE_OF_ModemType);
1804 static int dissect_mtl_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1805 return dissect_h248_SEQUNCE_OF_ModemType(TRUE, tvb, offset, pinfo, tree, hf_h248_mtl);
1810 dissect_h248_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1811 offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset,
1816 static int dissect_object_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1817 return dissect_h248_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_h248_object);
1823 dissect_h248_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1824 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1828 static int dissect_t35CountryCode1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1829 return dissect_h248_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_h248_t35CountryCode1);
1831 static int dissect_t35CountryCode2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1832 return dissect_h248_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_h248_t35CountryCode2);
1834 static int dissect_t35Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1835 return dissect_h248_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_h248_t35Extension);
1838 static ber_sequence H221NonStandard_sequence[] = {
1839 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_t35CountryCode1_impl },
1840 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_t35CountryCode2_impl },
1841 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_t35Extension_impl },
1842 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_manufacturerCode_impl },
1847 dissect_h248_H221NonStandard(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1848 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1849 H221NonStandard_sequence, hf_index, ett_h248_H221NonStandard);
1853 static int dissect_h221NonStandard_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1854 return dissect_h248_H221NonStandard(TRUE, tvb, offset, pinfo, tree, hf_h248_h221NonStandard);
1859 dissect_h248_IA5String_SIZE_8(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1860 offset = dissect_ber_restricted_string(implicit_tag, 2,
1861 pinfo, tree, tvb, offset, hf_index,
1866 static int dissect_experimental_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1867 return dissect_h248_IA5String_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_h248_experimental);
1869 static int dissect_date_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1870 return dissect_h248_IA5String_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_h248_date);
1872 static int dissect_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1873 return dissect_h248_IA5String_SIZE_8(TRUE, tvb, offset, pinfo, tree, hf_h248_time);
1877 static const value_string NonStandardIdentifier_vals[] = {
1879 { 1, "h221NonStandard" },
1880 { 2, "experimental" },
1884 static ber_choice NonStandardIdentifier_choice[] = {
1885 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_object_impl },
1886 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h221NonStandard_impl },
1887 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_experimental_impl },
1888 { 0, 0, 0, 0, NULL }
1892 dissect_h248_NonStandardIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1893 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1894 NonStandardIdentifier_choice, hf_index, ett_h248_NonStandardIdentifier);
1898 static int dissect_nonStandardIdentifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1899 return dissect_h248_NonStandardIdentifier(FALSE, tvb, offset, pinfo, tree, hf_h248_nonStandardIdentifier);
1904 dissect_h248_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1905 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1910 static int dissect_data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1911 return dissect_h248_OCTET_STRING(TRUE, tvb, offset, pinfo, tree, hf_h248_data);
1913 static int dissect_Value_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1914 return dissect_h248_OCTET_STRING(FALSE, tvb, offset, pinfo, tree, hf_h248_Value_item);
1917 static ber_sequence NonStandardData_sequence[] = {
1918 { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_nonStandardIdentifier },
1919 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_data_impl },
1924 dissect_h248_NonStandardData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1925 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1926 NonStandardData_sequence, hf_index, ett_h248_NonStandardData);
1930 static int dissect_nonStandardData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1931 return dissect_h248_NonStandardData(TRUE, tvb, offset, pinfo, tree, hf_h248_nonStandardData);
1934 static ber_sequence ModemDescriptor_sequence[] = {
1935 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mtl_impl },
1936 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mpl_impl },
1937 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nonStandardData_impl },
1942 dissect_h248_ModemDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1943 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1944 ModemDescriptor_sequence, hf_index, ett_h248_ModemDescriptor);
1948 static int dissect_modemDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1949 return dissect_h248_ModemDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_modemDescriptor);
1953 static const value_string MuxType_vals[] = {
1964 dissect_h248_MuxType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1965 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
1969 static int dissect_muxType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1970 return dissect_h248_MuxType(TRUE, tvb, offset, pinfo, tree, hf_h248_muxType);
1973 static ber_sequence SEQUNCE_OF_TerminationID_sequence_of[1] = {
1974 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_termList_item },
1978 dissect_h248_SEQUNCE_OF_TerminationID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1979 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1980 SEQUNCE_OF_TerminationID_sequence_of, hf_index, ett_h248_SEQUNCE_OF_TerminationID);
1984 static int dissect_termList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1985 return dissect_h248_SEQUNCE_OF_TerminationID(TRUE, tvb, offset, pinfo, tree, hf_h248_termList);
1988 static ber_sequence MuxDescriptor_sequence[] = {
1989 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_muxType_impl },
1990 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_termList_impl },
1991 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nonStandardData_impl },
1996 dissect_h248_MuxDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
1997 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1998 MuxDescriptor_sequence, hf_index, ett_h248_MuxDescriptor);
2002 static int dissect_muxDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2003 return dissect_h248_MuxDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_muxDescriptor);
2009 dissect_h248_RequestID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2010 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
2014 static int dissect_requestID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2015 return dissect_h248_RequestID(TRUE, tvb, offset, pinfo, tree, hf_h248_requestID);
2017 static int dissect_requestId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2018 return dissect_h248_RequestID(TRUE, tvb, offset, pinfo, tree, hf_h248_requestId);
2023 dissect_h248_Name(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2024 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2029 static int dissect_packageName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2030 return dissect_h248_Name(TRUE, tvb, offset, pinfo, tree, hf_h248_packageName);
2032 static int dissect_eventParameterName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2033 return dissect_h248_Name(TRUE, tvb, offset, pinfo, tree, hf_h248_eventParameterName);
2035 static int dissect_sigParameterName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2036 return dissect_h248_Name(TRUE, tvb, offset, pinfo, tree, hf_h248_sigParameterName);
2041 dissect_h248_DigitMapName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2042 offset = dissect_h248_Name(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2046 static int dissect_digitMapName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2047 return dissect_h248_DigitMapName(TRUE, tvb, offset, pinfo, tree, hf_h248_digitMapName);
2050 static ber_sequence DigitMapValue_sequence[] = {
2051 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startTimer_impl },
2052 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_shortTimer_impl },
2053 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_longTimer_impl },
2054 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_digitMapBody_impl },
2055 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_durationTimer_impl },
2060 dissect_h248_DigitMapValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2061 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2062 DigitMapValue_sequence, hf_index, ett_h248_DigitMapValue);
2066 static int dissect_digitMapValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2067 return dissect_h248_DigitMapValue(TRUE, tvb, offset, pinfo, tree, hf_h248_digitMapValue);
2071 static const value_string EventDM_vals[] = {
2072 { 0, "digitMapName" },
2073 { 1, "digitMapValue" },
2077 static ber_choice EventDM_choice[] = {
2078 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_digitMapName_impl },
2079 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_digitMapValue_impl },
2080 { 0, 0, 0, 0, NULL }
2084 dissect_h248_EventDM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2085 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2086 EventDM_choice, hf_index, ett_h248_EventDM);
2090 static int dissect_eventDM(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2091 return dissect_h248_EventDM(FALSE, tvb, offset, pinfo, tree, hf_h248_eventDM);
2096 dissect_h248_SignalName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2097 offset = dissect_h248_PkgdName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2101 static int dissect_signalName1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2102 return dissect_h248_SignalName(TRUE, tvb, offset, pinfo, tree, hf_h248_signalName1);
2106 static const value_string SignalType_vals[] = {
2115 dissect_h248_SignalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2116 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
2120 static int dissect_sigType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2121 return dissect_h248_SignalType(TRUE, tvb, offset, pinfo, tree, hf_h248_sigType);
2124 static asn_namedbit NotifyCompletion_bits[] = {
2125 { 0, &hf_h248_NotifyCompletion_onTimeOut, -1, -1, NULL, NULL },
2126 { 1, &hf_h248_NotifyCompletion_onInterruptByEvent, -1, -1, NULL, NULL },
2127 { 2, &hf_h248_NotifyCompletion_onInterruptByNewSignalDescr, -1, -1, NULL, NULL },
2128 { 3, &hf_h248_NotifyCompletion_otherReason, -1, -1, NULL, NULL },
2129 { 0, NULL, 0, 0, NULL, NULL }
2133 dissect_h248_NotifyCompletion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2134 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2135 NotifyCompletion_bits, hf_index, ett_h248_NotifyCompletion,
2140 static int dissect_notifyCompletion_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2141 return dissect_h248_NotifyCompletion(TRUE, tvb, offset, pinfo, tree, hf_h248_notifyCompletion);
2144 static ber_sequence Value_sequence_of[1] = {
2145 { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_Value_item },
2149 dissect_h248_Value(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2150 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2151 Value_sequence_of, hf_index, ett_h248_Value);
2155 static int dissect_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2156 return dissect_h248_Value(TRUE, tvb, offset, pinfo, tree, hf_h248_value);
2158 static int dissect_serviceChangeReason_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2159 return dissect_h248_Value(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeReason);
2161 static int dissect_statValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2162 return dissect_h248_Value(TRUE, tvb, offset, pinfo, tree, hf_h248_statValue);
2166 static const value_string T_extraInfo2_vals[] = {
2173 static ber_choice T_extraInfo2_choice[] = {
2174 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_relation_impl },
2175 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_range_impl },
2176 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_sublist_impl },
2177 { 0, 0, 0, 0, NULL }
2181 dissect_h248_T_extraInfo2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2182 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2183 T_extraInfo2_choice, hf_index, ett_h248_T_extraInfo2);
2187 static int dissect_extraInfo2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2188 return dissect_h248_T_extraInfo2(FALSE, tvb, offset, pinfo, tree, hf_h248_extraInfo2);
2191 static ber_sequence SigParameter_sequence[] = {
2192 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sigParameterName_impl },
2193 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value_impl },
2194 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_extraInfo2 },
2199 dissect_h248_SigParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2200 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2201 SigParameter_sequence, hf_index, ett_h248_SigParameter);
2205 static int dissect_sigParList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2206 return dissect_h248_SigParameter(FALSE, tvb, offset, pinfo, tree, hf_h248_sigParList_item);
2209 static ber_sequence SEQUNCE_OF_SigParameter_sequence_of[1] = {
2210 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_sigParList_item },
2214 dissect_h248_SEQUNCE_OF_SigParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2215 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2216 SEQUNCE_OF_SigParameter_sequence_of, hf_index, ett_h248_SEQUNCE_OF_SigParameter);
2220 static int dissect_sigParList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2221 return dissect_h248_SEQUNCE_OF_SigParameter(TRUE, tvb, offset, pinfo, tree, hf_h248_sigParList);
2224 static ber_sequence Signal_sequence[] = {
2225 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_signalName1_impl },
2226 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2227 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sigType_impl },
2228 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_duration_impl },
2229 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_notifyCompletion_impl },
2230 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepActive_impl },
2231 { BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_sigParList_impl },
2236 dissect_h248_Signal(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2237 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2238 Signal_sequence, hf_index, ett_h248_Signal);
2242 static int dissect_signal1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2243 return dissect_h248_Signal(TRUE, tvb, offset, pinfo, tree, hf_h248_signal1);
2245 static int dissect_signalList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2246 return dissect_h248_Signal(FALSE, tvb, offset, pinfo, tree, hf_h248_signalList_item);
2249 static ber_sequence SEQUNCE_OF_Signal_sequence_of[1] = {
2250 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_signalList_item },
2254 dissect_h248_SEQUNCE_OF_Signal(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2255 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2256 SEQUNCE_OF_Signal_sequence_of, hf_index, ett_h248_SEQUNCE_OF_Signal);
2260 static int dissect_signalList1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2261 return dissect_h248_SEQUNCE_OF_Signal(TRUE, tvb, offset, pinfo, tree, hf_h248_signalList1);
2264 static ber_sequence SeqSigList_sequence[] = {
2265 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_id_impl },
2266 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_signalList1_impl },
2271 dissect_h248_SeqSigList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2272 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2273 SeqSigList_sequence, hf_index, ett_h248_SeqSigList);
2277 static int dissect_seqSigList1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2278 return dissect_h248_SeqSigList(TRUE, tvb, offset, pinfo, tree, hf_h248_seqSigList1);
2282 static const value_string SignalRequest_vals[] = {
2284 { 1, "seqSigList" },
2288 static ber_choice SignalRequest_choice[] = {
2289 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_signal1_impl },
2290 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_seqSigList1_impl },
2291 { 0, 0, 0, 0, NULL }
2295 dissect_h248_SignalRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2296 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2297 SignalRequest_choice, hf_index, ett_h248_SignalRequest);
2301 static int dissect_SignalsDescriptor_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2302 return dissect_h248_SignalRequest(FALSE, tvb, offset, pinfo, tree, hf_h248_SignalsDescriptor_item);
2305 static ber_sequence SignalsDescriptor_sequence_of[1] = {
2306 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_SignalsDescriptor_item },
2310 dissect_h248_SignalsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2311 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2312 SignalsDescriptor_sequence_of, hf_index, ett_h248_SignalsDescriptor);
2316 static int dissect_signalsDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2317 return dissect_h248_SignalsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_signalsDescriptor);
2320 static ber_sequence SecondRequestedActions_sequence[] = {
2321 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepActive_impl },
2322 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_eventDM },
2323 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_signalsDescriptor_impl },
2328 dissect_h248_SecondRequestedActions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2329 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2330 SecondRequestedActions_sequence, hf_index, ett_h248_SecondRequestedActions);
2334 static int dissect_eventAction1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2335 return dissect_h248_SecondRequestedActions(TRUE, tvb, offset, pinfo, tree, hf_h248_eventAction1);
2339 static const value_string T_extraInfo_vals[] = {
2346 static ber_choice T_extraInfo_choice[] = {
2347 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_relation_impl },
2348 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_range_impl },
2349 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_sublist_impl },
2350 { 0, 0, 0, 0, NULL }
2354 dissect_h248_T_extraInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2355 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2356 T_extraInfo_choice, hf_index, ett_h248_T_extraInfo);
2360 static int dissect_extraInfo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2361 return dissect_h248_T_extraInfo(FALSE, tvb, offset, pinfo, tree, hf_h248_extraInfo);
2364 static ber_sequence EventParameter_sequence[] = {
2365 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventParameterName_impl },
2366 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_value_impl },
2367 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_extraInfo },
2372 dissect_h248_EventParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2373 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2374 EventParameter_sequence, hf_index, ett_h248_EventParameter);
2378 static int dissect_eventParList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2379 return dissect_h248_EventParameter(FALSE, tvb, offset, pinfo, tree, hf_h248_eventParList_item);
2381 static int dissect_evParList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2382 return dissect_h248_EventParameter(FALSE, tvb, offset, pinfo, tree, hf_h248_evParList_item);
2385 static ber_sequence SEQUNCE_OF_EventParameter_sequence_of[1] = {
2386 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_eventParList_item },
2390 dissect_h248_SEQUNCE_OF_EventParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2391 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2392 SEQUNCE_OF_EventParameter_sequence_of, hf_index, ett_h248_SEQUNCE_OF_EventParameter);
2396 static int dissect_eventParList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2397 return dissect_h248_SEQUNCE_OF_EventParameter(TRUE, tvb, offset, pinfo, tree, hf_h248_eventParList);
2399 static int dissect_evParList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2400 return dissect_h248_SEQUNCE_OF_EventParameter(TRUE, tvb, offset, pinfo, tree, hf_h248_evParList);
2403 static ber_sequence SecondRequestedEvent_sequence[] = {
2404 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pkgdName_impl },
2405 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2406 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventAction1_impl },
2407 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_evParList_impl },
2412 dissect_h248_SecondRequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2413 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2414 SecondRequestedEvent_sequence, hf_index, ett_h248_SecondRequestedEvent);
2418 static int dissect_eventList_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2419 return dissect_h248_SecondRequestedEvent(FALSE, tvb, offset, pinfo, tree, hf_h248_eventList_item1);
2422 static ber_sequence SEQUNCE_OF_SecondRequestedEvent_sequence_of[1] = {
2423 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_eventList_item1 },
2427 dissect_h248_SEQUNCE_OF_SecondRequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2428 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2429 SEQUNCE_OF_SecondRequestedEvent_sequence_of, hf_index, ett_h248_SEQUNCE_OF_SecondRequestedEvent);
2433 static int dissect_eventList1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2434 return dissect_h248_SEQUNCE_OF_SecondRequestedEvent(TRUE, tvb, offset, pinfo, tree, hf_h248_eventList1);
2437 static ber_sequence SecondEventsDescriptor_sequence[] = {
2438 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestID_impl },
2439 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventList1_impl },
2444 dissect_h248_SecondEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2445 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2446 SecondEventsDescriptor_sequence, hf_index, ett_h248_SecondEventsDescriptor);
2450 static int dissect_secondEvent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2451 return dissect_h248_SecondEventsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_secondEvent);
2454 static ber_sequence RequestedActions_sequence[] = {
2455 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_keepActive_impl },
2456 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_eventDM },
2457 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_secondEvent_impl },
2458 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_signalsDescriptor_impl },
2463 dissect_h248_RequestedActions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2464 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2465 RequestedActions_sequence, hf_index, ett_h248_RequestedActions);
2469 static int dissect_eventAction_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2470 return dissect_h248_RequestedActions(TRUE, tvb, offset, pinfo, tree, hf_h248_eventAction);
2473 static ber_sequence RequestedEvent_sequence[] = {
2474 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pkgdName_impl },
2475 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2476 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventAction_impl },
2477 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_evParList_impl },
2482 dissect_h248_RequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2483 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2484 RequestedEvent_sequence, hf_index, ett_h248_RequestedEvent);
2488 static int dissect_eventList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2489 return dissect_h248_RequestedEvent(FALSE, tvb, offset, pinfo, tree, hf_h248_eventList_item);
2492 static ber_sequence SEQUNCE_OF_RequestedEvent_sequence_of[1] = {
2493 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_eventList_item },
2497 dissect_h248_SEQUNCE_OF_RequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2498 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2499 SEQUNCE_OF_RequestedEvent_sequence_of, hf_index, ett_h248_SEQUNCE_OF_RequestedEvent);
2503 static int dissect_eventList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2504 return dissect_h248_SEQUNCE_OF_RequestedEvent(TRUE, tvb, offset, pinfo, tree, hf_h248_eventList);
2507 static ber_sequence EventsDescriptor_sequence[] = {
2508 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestID_impl },
2509 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_eventList_impl },
2514 dissect_h248_EventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2515 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2516 EventsDescriptor_sequence, hf_index, ett_h248_EventsDescriptor);
2520 static int dissect_eventsDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2521 return dissect_h248_EventsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_eventsDescriptor);
2526 dissect_h248_EventName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2527 offset = dissect_h248_PkgdName(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2531 static int dissect_eventName1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2532 return dissect_h248_EventName(TRUE, tvb, offset, pinfo, tree, hf_h248_eventName1);
2535 static ber_sequence EventSpec_sequence[] = {
2536 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventName1_impl },
2537 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2538 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_eventParList_impl },
2543 dissect_h248_EventSpec(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2544 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2545 EventSpec_sequence, hf_index, ett_h248_EventSpec);
2549 static int dissect_EventBufferDescriptor_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2550 return dissect_h248_EventSpec(FALSE, tvb, offset, pinfo, tree, hf_h248_EventBufferDescriptor_item);
2553 static ber_sequence EventBufferDescriptor_sequence_of[1] = {
2554 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_EventBufferDescriptor_item },
2558 dissect_h248_EventBufferDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2559 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2560 EventBufferDescriptor_sequence_of, hf_index, ett_h248_EventBufferDescriptor);
2564 static int dissect_eventBufferDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2565 return dissect_h248_EventBufferDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_eventBufferDescriptor);
2568 static ber_sequence DigitMapDescriptor_sequence[] = {
2569 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_digitMapName_impl },
2570 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_digitMapValue_impl },
2575 dissect_h248_DigitMapDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2576 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2577 DigitMapDescriptor_sequence, hf_index, ett_h248_DigitMapDescriptor);
2581 static int dissect_digitMapDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2582 return dissect_h248_DigitMapDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_digitMapDescriptor);
2585 static asn_namedbit T_auditToken_bits[] = {
2586 { 0, &hf_h248_T_auditToken_muxToken, -1, -1, NULL, NULL },
2587 { 1, &hf_h248_T_auditToken_modemToken, -1, -1, NULL, NULL },
2588 { 2, &hf_h248_T_auditToken_mediaToken, -1, -1, NULL, NULL },
2589 { 3, &hf_h248_T_auditToken_eventsToken, -1, -1, NULL, NULL },
2590 { 4, &hf_h248_T_auditToken_signalsToken, -1, -1, NULL, NULL },
2591 { 5, &hf_h248_T_auditToken_digitMapToken, -1, -1, NULL, NULL },
2592 { 6, &hf_h248_T_auditToken_statsToken, -1, -1, NULL, NULL },
2593 { 7, &hf_h248_T_auditToken_observedEventsToken, -1, -1, NULL, NULL },
2594 { 8, &hf_h248_T_auditToken_packagesToken, -1, -1, NULL, NULL },
2595 { 9, &hf_h248_T_auditToken_eventBufferToken, -1, -1, NULL, NULL },
2596 { 0, NULL, 0, 0, NULL, NULL }
2600 dissect_h248_T_auditToken(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2601 offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
2602 T_auditToken_bits, hf_index, ett_h248_T_auditToken,
2607 static int dissect_auditToken_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2608 return dissect_h248_T_auditToken(TRUE, tvb, offset, pinfo, tree, hf_h248_auditToken);
2611 static ber_sequence IndAudPropertyParm_sequence[] = {
2612 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_name1_impl },
2617 dissect_h248_IndAudPropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2618 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2619 IndAudPropertyParm_sequence, hf_index, ett_h248_IndAudPropertyParm);
2623 static int dissect_propertyParms_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2624 return dissect_h248_IndAudPropertyParm(FALSE, tvb, offset, pinfo, tree, hf_h248_propertyParms_item);
2626 static int dissect_IndAudPropertyGroup_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2627 return dissect_h248_IndAudPropertyParm(FALSE, tvb, offset, pinfo, tree, hf_h248_IndAudPropertyGroup_item);
2630 static ber_sequence SEQUNCE_OF_IndAudPropertyParm_sequence_of[1] = {
2631 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_propertyParms_item },
2635 dissect_h248_SEQUNCE_OF_IndAudPropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2636 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2637 SEQUNCE_OF_IndAudPropertyParm_sequence_of, hf_index, ett_h248_SEQUNCE_OF_IndAudPropertyParm);
2641 static int dissect_propertyParms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2642 return dissect_h248_SEQUNCE_OF_IndAudPropertyParm(TRUE, tvb, offset, pinfo, tree, hf_h248_propertyParms);
2645 static ber_sequence IndAudTerminationStateDescriptor_sequence[] = {
2646 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_propertyParms_impl },
2647 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventBufferControl_impl },
2648 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceState_impl },
2653 dissect_h248_IndAudTerminationStateDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2654 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2655 IndAudTerminationStateDescriptor_sequence, hf_index, ett_h248_IndAudTerminationStateDescriptor);
2659 static int dissect_termStateDescr_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2660 return dissect_h248_IndAudTerminationStateDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_termStateDescr);
2663 static ber_sequence IndAudLocalControlDescriptor_sequence[] = {
2664 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamMode_impl },
2665 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reserveValue_impl },
2666 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_reserveGroup_impl },
2667 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_propertyParms_impl },
2672 dissect_h248_IndAudLocalControlDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2673 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2674 IndAudLocalControlDescriptor_sequence, hf_index, ett_h248_IndAudLocalControlDescriptor);
2678 static int dissect_localControlDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2679 return dissect_h248_IndAudLocalControlDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_localControlDescriptor);
2682 static ber_sequence IndAudPropertyGroup_sequence_of[1] = {
2683 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_IndAudPropertyGroup_item },
2687 dissect_h248_IndAudPropertyGroup(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2688 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2689 IndAudPropertyGroup_sequence_of, hf_index, ett_h248_IndAudPropertyGroup);
2693 static int dissect_propGrps_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2694 return dissect_h248_IndAudPropertyGroup(TRUE, tvb, offset, pinfo, tree, hf_h248_propGrps);
2697 static ber_sequence IndAudLocalRemoteDescriptor_sequence[] = {
2698 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_propGroupID_impl },
2699 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_propGrps_impl },
2704 dissect_h248_IndAudLocalRemoteDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2705 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2706 IndAudLocalRemoteDescriptor_sequence, hf_index, ett_h248_IndAudLocalRemoteDescriptor);
2710 static int dissect_localDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2711 return dissect_h248_IndAudLocalRemoteDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_localDescriptor);
2713 static int dissect_remoteDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2714 return dissect_h248_IndAudLocalRemoteDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_remoteDescriptor);
2717 static ber_sequence IndAudStreamParms_sequence[] = {
2718 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_localControlDescriptor_impl },
2719 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_localDescriptor_impl },
2720 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_remoteDescriptor_impl },
2725 dissect_h248_IndAudStreamParms(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2726 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2727 IndAudStreamParms_sequence, hf_index, ett_h248_IndAudStreamParms);
2731 static int dissect_oneStream_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2732 return dissect_h248_IndAudStreamParms(TRUE, tvb, offset, pinfo, tree, hf_h248_oneStream);
2734 static int dissect_streamParms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2735 return dissect_h248_IndAudStreamParms(TRUE, tvb, offset, pinfo, tree, hf_h248_streamParms);
2738 static ber_sequence IndAudStreamDescriptor_sequence[] = {
2739 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2740 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_streamParms_impl },
2745 dissect_h248_IndAudStreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2746 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2747 IndAudStreamDescriptor_sequence, hf_index, ett_h248_IndAudStreamDescriptor);
2751 static int dissect_multiStream_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2752 return dissect_h248_IndAudStreamDescriptor(FALSE, tvb, offset, pinfo, tree, hf_h248_multiStream_item);
2755 static ber_sequence SEQUNCE_OF_IndAudStreamDescriptor_sequence_of[1] = {
2756 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_multiStream_item },
2760 dissect_h248_SEQUNCE_OF_IndAudStreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2761 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2762 SEQUNCE_OF_IndAudStreamDescriptor_sequence_of, hf_index, ett_h248_SEQUNCE_OF_IndAudStreamDescriptor);
2766 static int dissect_multiStream_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2767 return dissect_h248_SEQUNCE_OF_IndAudStreamDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_multiStream);
2771 static const value_string T_streams_vals[] = {
2773 { 1, "multiStream" },
2777 static ber_choice T_streams_choice[] = {
2778 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_oneStream_impl },
2779 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_multiStream_impl },
2780 { 0, 0, 0, 0, NULL }
2784 dissect_h248_T_streams(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2785 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2786 T_streams_choice, hf_index, ett_h248_T_streams);
2790 static int dissect_streams(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2791 return dissect_h248_T_streams(FALSE, tvb, offset, pinfo, tree, hf_h248_streams);
2794 static ber_sequence IndAudMediaDescriptor_sequence[] = {
2795 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_termStateDescr_impl },
2796 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_streams },
2801 dissect_h248_IndAudMediaDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2802 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2803 IndAudMediaDescriptor_sequence, hf_index, ett_h248_IndAudMediaDescriptor);
2807 static int dissect_indaudmediaDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2808 return dissect_h248_IndAudMediaDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_indaudmediaDescriptor);
2811 static ber_sequence IndAudEventsDescriptor_sequence[] = {
2812 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestID_impl },
2813 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_pkgdName_impl },
2814 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2819 dissect_h248_IndAudEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2820 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2821 IndAudEventsDescriptor_sequence, hf_index, ett_h248_IndAudEventsDescriptor);
2825 static int dissect_indaudeventsDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2826 return dissect_h248_IndAudEventsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_indaudeventsDescriptor);
2829 static ber_sequence IndAudEventBufferDescriptor_sequence[] = {
2830 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventName_impl },
2831 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2836 dissect_h248_IndAudEventBufferDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2837 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2838 IndAudEventBufferDescriptor_sequence, hf_index, ett_h248_IndAudEventBufferDescriptor);
2842 static int dissect_indaudeventBufferDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2843 return dissect_h248_IndAudEventBufferDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_indaudeventBufferDescriptor);
2846 static ber_sequence IndAudSignal_sequence[] = {
2847 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_signalName_impl },
2848 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
2853 dissect_h248_IndAudSignal(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2854 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2855 IndAudSignal_sequence, hf_index, ett_h248_IndAudSignal);
2859 static int dissect_signal_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2860 return dissect_h248_IndAudSignal(TRUE, tvb, offset, pinfo, tree, hf_h248_signal);
2862 static int dissect_signalList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2863 return dissect_h248_IndAudSignal(TRUE, tvb, offset, pinfo, tree, hf_h248_signalList);
2866 static ber_sequence IndAudSeqSigList_sequence[] = {
2867 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_id_impl },
2868 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_signalList_impl },
2873 dissect_h248_IndAudSeqSigList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2874 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2875 IndAudSeqSigList_sequence, hf_index, ett_h248_IndAudSeqSigList);
2879 static int dissect_seqSigList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2880 return dissect_h248_IndAudSeqSigList(TRUE, tvb, offset, pinfo, tree, hf_h248_seqSigList);
2884 static const value_string IndAudSignalsDescriptor_vals[] = {
2886 { 1, "seqSigList" },
2890 static ber_choice IndAudSignalsDescriptor_choice[] = {
2891 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_signal_impl },
2892 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_seqSigList_impl },
2893 { 0, 0, 0, 0, NULL }
2897 dissect_h248_IndAudSignalsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2898 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2899 IndAudSignalsDescriptor_choice, hf_index, ett_h248_IndAudSignalsDescriptor);
2903 static int dissect_indaudsignalsDescriptor(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2904 return dissect_h248_IndAudSignalsDescriptor(FALSE, tvb, offset, pinfo, tree, hf_h248_indaudsignalsDescriptor);
2907 static ber_sequence IndAudDigitMapDescriptor_sequence[] = {
2908 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_digitMapName_impl },
2913 dissect_h248_IndAudDigitMapDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2914 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2915 IndAudDigitMapDescriptor_sequence, hf_index, ett_h248_IndAudDigitMapDescriptor);
2919 static int dissect_indauddigitMapDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2920 return dissect_h248_IndAudDigitMapDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_indauddigitMapDescriptor);
2923 static ber_sequence IndAudStatisticsDescriptor_sequence[] = {
2924 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_statName_impl },
2929 dissect_h248_IndAudStatisticsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2930 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2931 IndAudStatisticsDescriptor_sequence, hf_index, ett_h248_IndAudStatisticsDescriptor);
2935 static int dissect_indaudstatisticsDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2936 return dissect_h248_IndAudStatisticsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_indaudstatisticsDescriptor);
2939 static ber_sequence IndAudPackagesDescriptor_sequence[] = {
2940 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_packageName_impl },
2941 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_packageVersion_impl },
2946 dissect_h248_IndAudPackagesDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2947 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2948 IndAudPackagesDescriptor_sequence, hf_index, ett_h248_IndAudPackagesDescriptor);
2952 static int dissect_indaudpackagesDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2953 return dissect_h248_IndAudPackagesDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_indaudpackagesDescriptor);
2957 static const value_string IndAuditParameter_vals[] = {
2958 { 0, "indaudmediaDescriptor" },
2959 { 1, "indaudeventsDescriptor" },
2960 { 2, "indaudeventBufferDescriptor" },
2961 { 3, "indaudsignalsDescriptor" },
2962 { 4, "indauddigitMapDescriptor" },
2963 { 5, "indaudstatisticsDescriptor" },
2964 { 6, "indaudpackagesDescriptor" },
2968 static ber_choice IndAuditParameter_choice[] = {
2969 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_indaudmediaDescriptor_impl },
2970 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_indaudeventsDescriptor_impl },
2971 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_indaudeventBufferDescriptor_impl },
2972 { 3, BER_CLASS_CON, 3, 0, dissect_indaudsignalsDescriptor },
2973 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_indauddigitMapDescriptor_impl },
2974 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_indaudstatisticsDescriptor_impl },
2975 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_indaudpackagesDescriptor_impl },
2976 { 0, 0, 0, 0, NULL }
2980 dissect_h248_IndAuditParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2981 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2982 IndAuditParameter_choice, hf_index, ett_h248_IndAuditParameter);
2986 static int dissect_auditPropertyToken_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2987 return dissect_h248_IndAuditParameter(FALSE, tvb, offset, pinfo, tree, hf_h248_auditPropertyToken_item);
2990 static ber_sequence SEQUNCE_OF_IndAuditParameter_sequence_of[1] = {
2991 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_auditPropertyToken_item },
2995 dissect_h248_SEQUNCE_OF_IndAuditParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
2996 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2997 SEQUNCE_OF_IndAuditParameter_sequence_of, hf_index, ett_h248_SEQUNCE_OF_IndAuditParameter);
3001 static int dissect_auditPropertyToken_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3002 return dissect_h248_SEQUNCE_OF_IndAuditParameter(TRUE, tvb, offset, pinfo, tree, hf_h248_auditPropertyToken);
3005 static ber_sequence AuditDescriptor_sequence[] = {
3006 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_auditToken_impl },
3007 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_auditPropertyToken_impl },
3012 dissect_h248_AuditDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3013 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3014 AuditDescriptor_sequence, hf_index, ett_h248_AuditDescriptor);
3018 static int dissect_auditDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3019 return dissect_h248_AuditDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_auditDescriptor);
3021 static int dissect_emptyDescriptors_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3022 return dissect_h248_AuditDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_emptyDescriptors);
3024 static int dissect_serviceChangeInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3025 return dissect_h248_AuditDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeInfo);
3029 static const value_string AmmDescriptor_vals[] = {
3030 { 0, "mediaDescriptor" },
3031 { 1, "modemDescriptor" },
3032 { 2, "muxDescriptor" },
3033 { 3, "eventsDescriptor" },
3034 { 4, "eventBufferDescriptor" },
3035 { 5, "signalsDescriptor" },
3036 { 6, "digitMapDescriptor" },
3037 { 7, "auditDescriptor" },
3041 static ber_choice AmmDescriptor_choice[] = {
3042 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mediaDescriptor_impl },
3043 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_modemDescriptor_impl },
3044 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_muxDescriptor_impl },
3045 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_eventsDescriptor_impl },
3046 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_eventBufferDescriptor_impl },
3047 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_signalsDescriptor_impl },
3048 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_digitMapDescriptor_impl },
3049 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_auditDescriptor_impl },
3050 { 0, 0, 0, 0, NULL }
3054 dissect_h248_AmmDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3055 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3056 AmmDescriptor_choice, hf_index, ett_h248_AmmDescriptor);
3060 static int dissect_descriptors_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3061 return dissect_h248_AmmDescriptor(FALSE, tvb, offset, pinfo, tree, hf_h248_descriptors_item);
3064 static ber_sequence SEQUNCE_OF_AmmDescriptor_sequence_of[1] = {
3065 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_descriptors_item },
3069 dissect_h248_SEQUNCE_OF_AmmDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3070 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3071 SEQUNCE_OF_AmmDescriptor_sequence_of, hf_index, ett_h248_SEQUNCE_OF_AmmDescriptor);
3075 static int dissect_descriptors_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3076 return dissect_h248_SEQUNCE_OF_AmmDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_descriptors);
3079 static ber_sequence AmmRequest_sequence[] = {
3080 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3081 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_descriptors_impl },
3086 dissect_h248_AmmRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3087 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3088 AmmRequest_sequence, hf_index, ett_h248_AmmRequest);
3092 static int dissect_addReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3093 return dissect_h248_AmmRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_addReq);
3095 static int dissect_moveReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3096 return dissect_h248_AmmRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_moveReq);
3098 static int dissect_modReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3099 return dissect_h248_AmmRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_modReq);
3102 static ber_sequence SubtractRequest_sequence[] = {
3103 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3104 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_auditDescriptor_impl },
3109 dissect_h248_SubtractRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3110 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3111 SubtractRequest_sequence, hf_index, ett_h248_SubtractRequest);
3115 static int dissect_subtractReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3116 return dissect_h248_SubtractRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_subtractReq);
3119 static ber_sequence AuditRequest_sequence[] = {
3120 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID1_impl },
3121 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_auditDescriptor_impl },
3126 dissect_h248_AuditRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3127 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3128 AuditRequest_sequence, hf_index, ett_h248_AuditRequest);
3132 static int dissect_auditCapRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3133 return dissect_h248_AuditRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_auditCapRequest);
3135 static int dissect_auditValueRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3136 return dissect_h248_AuditRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_auditValueRequest);
3139 static ber_sequence TimeNotation_sequence[] = {
3140 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_date_impl },
3141 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_time_impl },
3146 dissect_h248_TimeNotation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3147 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3148 TimeNotation_sequence, hf_index, ett_h248_TimeNotation);
3152 static int dissect_timeNotation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3153 return dissect_h248_TimeNotation(TRUE, tvb, offset, pinfo, tree, hf_h248_timeNotation);
3155 static int dissect_timeStamp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3156 return dissect_h248_TimeNotation(TRUE, tvb, offset, pinfo, tree, hf_h248_timeStamp);
3158 static int dissect_timestamp_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3159 return dissect_h248_TimeNotation(TRUE, tvb, offset, pinfo, tree, hf_h248_timestamp);
3162 static ber_sequence ObservedEvent_sequence[] = {
3163 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventName1_impl },
3164 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_streamID_impl },
3165 { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_eventParList_impl },
3166 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeNotation_impl },
3171 dissect_h248_ObservedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3172 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3173 ObservedEvent_sequence, hf_index, ett_h248_ObservedEvent);
3177 static int dissect_observedEventLst_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3178 return dissect_h248_ObservedEvent(FALSE, tvb, offset, pinfo, tree, hf_h248_observedEventLst_item);
3181 static ber_sequence SEQUNCE_OF_ObservedEvent_sequence_of[1] = {
3182 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_observedEventLst_item },
3186 dissect_h248_SEQUNCE_OF_ObservedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3187 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3188 SEQUNCE_OF_ObservedEvent_sequence_of, hf_index, ett_h248_SEQUNCE_OF_ObservedEvent);
3192 static int dissect_observedEventLst_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3193 return dissect_h248_SEQUNCE_OF_ObservedEvent(TRUE, tvb, offset, pinfo, tree, hf_h248_observedEventLst);
3196 static ber_sequence ObservedEventsDescriptor_sequence[] = {
3197 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestId_impl },
3198 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_observedEventLst_impl },
3203 dissect_h248_ObservedEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3204 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3205 ObservedEventsDescriptor_sequence, hf_index, ett_h248_ObservedEventsDescriptor);
3209 static int dissect_observedEventsDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3210 return dissect_h248_ObservedEventsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_observedEventsDescriptor);
3213 static ber_sequence NotifyRequest_sequence[] = {
3214 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3215 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_observedEventsDescriptor_impl },
3216 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorDescriptor_impl },
3221 dissect_h248_NotifyRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3222 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3223 NotifyRequest_sequence, hf_index, ett_h248_NotifyRequest);
3227 static int dissect_notifyReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3228 return dissect_h248_NotifyRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_notifyReq);
3232 static const value_string ServiceChangeMethod_vals[] = {
3237 { 4, "disconnected" },
3244 dissect_h248_ServiceChangeMethod(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3245 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
3249 static int dissect_serviceChangeMethod_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3250 return dissect_h248_ServiceChangeMethod(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeMethod);
3255 dissect_h248_OCTET_STRING_SIZE_2_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3256 offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3261 static int dissect_mtpAddress1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3262 return dissect_h248_OCTET_STRING_SIZE_2_4(TRUE, tvb, offset, pinfo, tree, hf_h248_mtpAddress1);
3266 static const value_string ServiceChangeAddress_vals[] = {
3267 { 0, "portNumber" },
3268 { 1, "ip4Address" },
3269 { 2, "ip6Address" },
3270 { 3, "domainName" },
3271 { 4, "deviceName" },
3272 { 5, "mtpAddress" },
3276 static ber_choice ServiceChangeAddress_choice[] = {
3277 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_portNumber_impl },
3278 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_ip4Address_impl },
3279 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_ip6Address_impl },
3280 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_domainName_impl },
3281 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_deviceName_impl },
3282 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_mtpAddress1_impl },
3283 { 0, 0, 0, 0, NULL }
3287 dissect_h248_ServiceChangeAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3288 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3289 ServiceChangeAddress_choice, hf_index, ett_h248_ServiceChangeAddress);
3293 static int dissect_serviceChangeAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3294 return dissect_h248_ServiceChangeAddress(FALSE, tvb, offset, pinfo, tree, hf_h248_serviceChangeAddress);
3299 dissect_h248_IA5String_SIZE_1_67(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3300 offset = dissect_ber_restricted_string(implicit_tag, 0,
3301 pinfo, tree, tvb, offset, hf_index,
3306 static int dissect_profileName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3307 return dissect_h248_IA5String_SIZE_1_67(TRUE, tvb, offset, pinfo, tree, hf_h248_profileName);
3310 static ber_sequence ServiceChangeProfile_sequence[] = {
3311 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_profileName_impl },
3316 dissect_h248_ServiceChangeProfile(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3317 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3318 ServiceChangeProfile_sequence, hf_index, ett_h248_ServiceChangeProfile);
3322 static int dissect_serviceChangeProfile_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3323 return dissect_h248_ServiceChangeProfile(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeProfile);
3329 dissect_h248_INTEGER_0_4294967295(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3330 offset = dissect_ber_integer(pinfo, tree, tvb, offset, hf_index, NULL);
3334 static int dissect_serviceChangeDelay_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3335 return dissect_h248_INTEGER_0_4294967295(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeDelay);
3338 static ber_sequence ServiceChangeParm_sequence[] = {
3339 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceChangeMethod_impl },
3340 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_serviceChangeAddress },
3341 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceChangeVersion_impl },
3342 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceChangeProfile_impl },
3343 { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_serviceChangeReason_impl },
3344 { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceChangeDelay_impl },
3345 { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_serviceChangeMgcId },
3346 { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeStamp_impl },
3347 { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nonStandardData_impl },
3348 { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceChangeInfo_impl },
3353 dissect_h248_ServiceChangeParm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3354 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3355 ServiceChangeParm_sequence, hf_index, ett_h248_ServiceChangeParm);
3359 static int dissect_serviceChangeParms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3360 return dissect_h248_ServiceChangeParm(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeParms);
3363 static ber_sequence ServiceChangeRequest_sequence[] = {
3364 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3365 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceChangeParms_impl },
3370 dissect_h248_ServiceChangeRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3371 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3372 ServiceChangeRequest_sequence, hf_index, ett_h248_ServiceChangeRequest);
3376 static int dissect_serviceChangeReq_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3377 return dissect_h248_ServiceChangeRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeReq);
3381 static const value_string Command_vals[] = {
3385 { 3, "subtractReq" },
3386 { 4, "auditCapRequest" },
3387 { 5, "auditValueRequest" },
3389 { 7, "serviceChangeReq" },
3393 static ber_choice Command_choice[] = {
3394 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_addReq_impl },
3395 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_moveReq_impl },
3396 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_modReq_impl },
3397 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_subtractReq_impl },
3398 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_auditCapRequest_impl },
3399 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_auditValueRequest_impl },
3400 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_notifyReq_impl },
3401 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_serviceChangeReq_impl },
3402 { 0, 0, 0, 0, NULL }
3406 dissect_h248_Command(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3407 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3408 Command_choice, hf_index, ett_h248_Command);
3412 static int dissect_command(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3413 return dissect_h248_Command(FALSE, tvb, offset, pinfo, tree, hf_h248_command);
3416 static ber_sequence CommandRequest_sequence[] = {
3417 { BER_CLASS_CON, 0, BER_FLAGS_NOTCHKTAG, dissect_command },
3418 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_optional_impl },
3419 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_wildcardReturn_impl },
3424 dissect_h248_CommandRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3425 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3426 CommandRequest_sequence, hf_index, ett_h248_CommandRequest);
3430 static int dissect_commandRequests_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3431 return dissect_h248_CommandRequest(FALSE, tvb, offset, pinfo, tree, hf_h248_commandRequests_item);
3434 static ber_sequence SEQUNCE_OF_CommandRequest_sequence_of[1] = {
3435 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_commandRequests_item },
3439 dissect_h248_SEQUNCE_OF_CommandRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3440 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3441 SEQUNCE_OF_CommandRequest_sequence_of, hf_index, ett_h248_SEQUNCE_OF_CommandRequest);
3445 static int dissect_commandRequests_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3446 return dissect_h248_SEQUNCE_OF_CommandRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_commandRequests);
3449 static ber_sequence ActionRequest_sequence[] = {
3450 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_contextId_impl },
3451 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_contextRequest_impl },
3452 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_contextAttrAuditReq_impl },
3453 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_commandRequests_impl },
3458 dissect_h248_ActionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3459 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3460 ActionRequest_sequence, hf_index, ett_h248_ActionRequest);
3464 static int dissect_actions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3465 return dissect_h248_ActionRequest(FALSE, tvb, offset, pinfo, tree, hf_h248_actions_item);
3468 static ber_sequence SEQUNCE_OF_ActionRequest_sequence_of[1] = {
3469 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_actions_item },
3473 dissect_h248_SEQUNCE_OF_ActionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3474 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3475 SEQUNCE_OF_ActionRequest_sequence_of, hf_index, ett_h248_SEQUNCE_OF_ActionRequest);
3479 static int dissect_actions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3480 return dissect_h248_SEQUNCE_OF_ActionRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_actions);
3483 static ber_sequence TransactionRequest_sequence[] = {
3484 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
3485 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_actions_impl },
3490 dissect_h248_TransactionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3491 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3492 TransactionRequest_sequence, hf_index, ett_h248_TransactionRequest);
3496 static int dissect_transactionRequest_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3497 return dissect_h248_TransactionRequest(TRUE, tvb, offset, pinfo, tree, hf_h248_transactionRequest);
3500 static ber_sequence TransactionPending_sequence[] = {
3501 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
3506 dissect_h248_TransactionPending(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3507 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3508 TransactionPending_sequence, hf_index, ett_h248_TransactionPending);
3512 static int dissect_transactionPending_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3513 return dissect_h248_TransactionPending(TRUE, tvb, offset, pinfo, tree, hf_h248_transactionPending);
3516 static ber_sequence StatisticsParameter_sequence[] = {
3517 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_statName_impl },
3518 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_statValue_impl },
3523 dissect_h248_StatisticsParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3524 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3525 StatisticsParameter_sequence, hf_index, ett_h248_StatisticsParameter);
3529 static int dissect_StatisticsDescriptor_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3530 return dissect_h248_StatisticsParameter(FALSE, tvb, offset, pinfo, tree, hf_h248_StatisticsDescriptor_item);
3533 static ber_sequence StatisticsDescriptor_sequence_of[1] = {
3534 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_StatisticsDescriptor_item },
3538 dissect_h248_StatisticsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3539 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3540 StatisticsDescriptor_sequence_of, hf_index, ett_h248_StatisticsDescriptor);
3544 static int dissect_statisticsDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3545 return dissect_h248_StatisticsDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_statisticsDescriptor);
3548 static ber_sequence PackagesItem_sequence[] = {
3549 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_packageName_impl },
3550 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_packageVersion_impl },
3555 dissect_h248_PackagesItem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3556 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3557 PackagesItem_sequence, hf_index, ett_h248_PackagesItem);
3561 static int dissect_PackagesDescriptor_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3562 return dissect_h248_PackagesItem(FALSE, tvb, offset, pinfo, tree, hf_h248_PackagesDescriptor_item);
3565 static ber_sequence PackagesDescriptor_sequence_of[1] = {
3566 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PackagesDescriptor_item },
3570 dissect_h248_PackagesDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3571 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3572 PackagesDescriptor_sequence_of, hf_index, ett_h248_PackagesDescriptor);
3576 static int dissect_packagesDescriptor_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3577 return dissect_h248_PackagesDescriptor(TRUE, tvb, offset, pinfo, tree, hf_h248_packagesDescriptor);
3581 static const value_string AuditReturnParameter_vals[] = {
3582 { 0, "errorDescriptor" },
3583 { 1, "mediaDescriptor" },
3584 { 2, "modemDescriptor" },
3585 { 3, "muxDescriptor" },
3586 { 4, "eventsDescriptor" },
3587 { 5, "eventBufferDescriptor" },
3588 { 6, "signalsDescriptor" },
3589 { 7, "digitMapDescriptor" },
3590 { 8, "observedEventsDescriptor" },
3591 { 9, "statisticsDescriptor" },
3592 { 10, "packagesDescriptor" },
3593 { 11, "emptyDescriptors" },
3597 static ber_choice AuditReturnParameter_choice[] = {
3598 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_errorDescriptor_impl },
3599 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mediaDescriptor_impl },
3600 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_modemDescriptor_impl },
3601 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_muxDescriptor_impl },
3602 { 4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_eventsDescriptor_impl },
3603 { 5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_eventBufferDescriptor_impl },
3604 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_signalsDescriptor_impl },
3605 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_digitMapDescriptor_impl },
3606 { 8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_observedEventsDescriptor_impl },
3607 { 9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_statisticsDescriptor_impl },
3608 { 10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_packagesDescriptor_impl },
3609 { 11, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_emptyDescriptors_impl },
3610 { 0, 0, 0, 0, NULL }
3614 dissect_h248_AuditReturnParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3615 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3616 AuditReturnParameter_choice, hf_index, ett_h248_AuditReturnParameter);
3620 static int dissect_TerminationAudit_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3621 return dissect_h248_AuditReturnParameter(FALSE, tvb, offset, pinfo, tree, hf_h248_TerminationAudit_item);
3624 static ber_sequence TerminationAudit_sequence_of[1] = {
3625 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_TerminationAudit_item },
3629 dissect_h248_TerminationAudit(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3630 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3631 TerminationAudit_sequence_of, hf_index, ett_h248_TerminationAudit);
3635 static int dissect_terminationAudit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3636 return dissect_h248_TerminationAudit(TRUE, tvb, offset, pinfo, tree, hf_h248_terminationAudit);
3638 static int dissect_terminationAuditResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3639 return dissect_h248_TerminationAudit(TRUE, tvb, offset, pinfo, tree, hf_h248_terminationAuditResult);
3642 static ber_sequence AmmsReply_sequence[] = {
3643 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3644 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_terminationAudit_impl },
3649 dissect_h248_AmmsReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3650 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3651 AmmsReply_sequence, hf_index, ett_h248_AmmsReply);
3655 static int dissect_addReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3656 return dissect_h248_AmmsReply(TRUE, tvb, offset, pinfo, tree, hf_h248_addReply);
3658 static int dissect_moveReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3659 return dissect_h248_AmmsReply(TRUE, tvb, offset, pinfo, tree, hf_h248_moveReply);
3661 static int dissect_modReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3662 return dissect_h248_AmmsReply(TRUE, tvb, offset, pinfo, tree, hf_h248_modReply);
3664 static int dissect_subtractReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3665 return dissect_h248_AmmsReply(TRUE, tvb, offset, pinfo, tree, hf_h248_subtractReply);
3668 static ber_sequence AuditResult_sequence[] = {
3669 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID1_impl },
3670 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_terminationAuditResult_impl },
3675 dissect_h248_AuditResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3676 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3677 AuditResult_sequence, hf_index, ett_h248_AuditResult);
3681 static int dissect_auditResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3682 return dissect_h248_AuditResult(TRUE, tvb, offset, pinfo, tree, hf_h248_auditResult);
3686 static const value_string AuditReply_vals[] = {
3687 { 0, "contextAuditResult" },
3689 { 2, "auditResult" },
3693 static ber_choice AuditReply_choice[] = {
3694 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_contextAuditResult_impl },
3695 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_error_impl },
3696 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_auditResult_impl },
3697 { 0, 0, 0, 0, NULL }
3701 dissect_h248_AuditReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3702 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3703 AuditReply_choice, hf_index, ett_h248_AuditReply);
3707 static int dissect_auditCapReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3708 return dissect_h248_AuditReply(FALSE, tvb, offset, pinfo, tree, hf_h248_auditCapReply);
3710 static int dissect_auditValueReply(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3711 return dissect_h248_AuditReply(FALSE, tvb, offset, pinfo, tree, hf_h248_auditValueReply);
3714 static ber_sequence NotifyReply_sequence[] = {
3715 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3716 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorDescriptor_impl },
3721 dissect_h248_NotifyReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3722 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3723 NotifyReply_sequence, hf_index, ett_h248_NotifyReply);
3727 static int dissect_notifyReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3728 return dissect_h248_NotifyReply(TRUE, tvb, offset, pinfo, tree, hf_h248_notifyReply);
3731 static ber_sequence ServiceChangeResParm_sequence[] = {
3732 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_serviceChangeMgcId },
3733 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_NOTCHKTAG, dissect_serviceChangeAddress },
3734 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceChangeVersion_impl },
3735 { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceChangeProfile_impl },
3736 { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timestamp_impl },
3741 dissect_h248_ServiceChangeResParm(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3742 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3743 ServiceChangeResParm_sequence, hf_index, ett_h248_ServiceChangeResParm);
3747 static int dissect_serviceChangeResParms_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3748 return dissect_h248_ServiceChangeResParm(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeResParms);
3752 static const value_string ServiceChangeResult_vals[] = {
3753 { 0, "errorDescriptor" },
3754 { 1, "serviceChangeResParms" },
3758 static ber_choice ServiceChangeResult_choice[] = {
3759 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_errorDescriptor_impl },
3760 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceChangeResParms_impl },
3761 { 0, 0, 0, 0, NULL }
3765 dissect_h248_ServiceChangeResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3766 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3767 ServiceChangeResult_choice, hf_index, ett_h248_ServiceChangeResult);
3771 static int dissect_serviceChangeResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3772 return dissect_h248_ServiceChangeResult(FALSE, tvb, offset, pinfo, tree, hf_h248_serviceChangeResult);
3775 static ber_sequence ServiceChangeReply_sequence[] = {
3776 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_terminationID_impl },
3777 { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_serviceChangeResult },
3782 dissect_h248_ServiceChangeReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3783 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3784 ServiceChangeReply_sequence, hf_index, ett_h248_ServiceChangeReply);
3788 static int dissect_serviceChangeReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3789 return dissect_h248_ServiceChangeReply(TRUE, tvb, offset, pinfo, tree, hf_h248_serviceChangeReply);
3793 static const value_string CommandReply_vals[] = {
3797 { 3, "subtractReply" },
3798 { 4, "auditCapReply" },
3799 { 5, "auditValueReply" },
3800 { 6, "notifyReply" },
3801 { 7, "serviceChangeReply" },
3805 static ber_choice CommandReply_choice[] = {
3806 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_addReply_impl },
3807 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_moveReply_impl },
3808 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_modReply_impl },
3809 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_subtractReply_impl },
3810 { 4, BER_CLASS_CON, 4, 0, dissect_auditCapReply },
3811 { 5, BER_CLASS_CON, 5, 0, dissect_auditValueReply },
3812 { 6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_notifyReply_impl },
3813 { 7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_serviceChangeReply_impl },
3814 { 0, 0, 0, 0, NULL }
3818 dissect_h248_CommandReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3819 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3820 CommandReply_choice, hf_index, ett_h248_CommandReply);
3824 static int dissect_commandReply_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3825 return dissect_h248_CommandReply(FALSE, tvb, offset, pinfo, tree, hf_h248_commandReply_item);
3828 static ber_sequence SEQUNCE_OF_CommandReply_sequence_of[1] = {
3829 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_commandReply_item },
3833 dissect_h248_SEQUNCE_OF_CommandReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3834 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3835 SEQUNCE_OF_CommandReply_sequence_of, hf_index, ett_h248_SEQUNCE_OF_CommandReply);
3839 static int dissect_commandReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3840 return dissect_h248_SEQUNCE_OF_CommandReply(TRUE, tvb, offset, pinfo, tree, hf_h248_commandReply);
3843 static ber_sequence ActionReply_sequence[] = {
3844 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_contextId_impl },
3845 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorDescriptor_impl },
3846 { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_contextReply_impl },
3847 { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_commandReply_impl },
3852 dissect_h248_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3853 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3854 ActionReply_sequence, hf_index, ett_h248_ActionReply);
3858 static int dissect_actionReplies_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3859 return dissect_h248_ActionReply(FALSE, tvb, offset, pinfo, tree, hf_h248_actionReplies_item);
3862 static ber_sequence SEQUNCE_OF_ActionReply_sequence_of[1] = {
3863 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_actionReplies_item },
3867 dissect_h248_SEQUNCE_OF_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3868 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3869 SEQUNCE_OF_ActionReply_sequence_of, hf_index, ett_h248_SEQUNCE_OF_ActionReply);
3873 static int dissect_actionReplies_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3874 return dissect_h248_SEQUNCE_OF_ActionReply(TRUE, tvb, offset, pinfo, tree, hf_h248_actionReplies);
3878 static const value_string T_transactionResult_vals[] = {
3879 { 0, "transactionError" },
3880 { 1, "actionReplies" },
3884 static ber_choice T_transactionResult_choice[] = {
3885 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transactionError_impl },
3886 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_actionReplies_impl },
3887 { 0, 0, 0, 0, NULL }
3891 dissect_h248_T_transactionResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3892 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3893 T_transactionResult_choice, hf_index, ett_h248_T_transactionResult);
3897 static int dissect_transactionResult(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3898 return dissect_h248_T_transactionResult(FALSE, tvb, offset, pinfo, tree, hf_h248_transactionResult);
3901 static ber_sequence TransactionReply_sequence[] = {
3902 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transactionId_impl },
3903 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_immAckRequired_impl },
3904 { BER_CLASS_CON, 2, 0, dissect_transactionResult },
3909 dissect_h248_TransactionReply(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3910 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3911 TransactionReply_sequence, hf_index, ett_h248_TransactionReply);
3915 static int dissect_transactionReply_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3916 return dissect_h248_TransactionReply(TRUE, tvb, offset, pinfo, tree, hf_h248_transactionReply);
3919 static ber_sequence TransactionAck_sequence[] = {
3920 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_firstAck_impl },
3921 { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lastAck_impl },
3926 dissect_h248_TransactionAck(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3927 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3928 TransactionAck_sequence, hf_index, ett_h248_TransactionAck);
3932 static int dissect_TransactionResponseAck_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3933 return dissect_h248_TransactionAck(FALSE, tvb, offset, pinfo, tree, hf_h248_TransactionResponseAck_item);
3936 static ber_sequence TransactionResponseAck_sequence_of[1] = {
3937 { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_TransactionResponseAck_item },
3941 dissect_h248_TransactionResponseAck(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3942 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3943 TransactionResponseAck_sequence_of, hf_index, ett_h248_TransactionResponseAck);
3947 static int dissect_transactionResponseAck_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3948 return dissect_h248_TransactionResponseAck(TRUE, tvb, offset, pinfo, tree, hf_h248_transactionResponseAck);
3952 static const value_string Transaction_vals[] = {
3953 { 0, "transactionRequest" },
3954 { 1, "transactionPending" },
3955 { 2, "transactionReply" },
3956 { 3, "transactionResponseAck" },
3960 static ber_choice Transaction_choice[] = {
3961 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transactionRequest_impl },
3962 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_transactionPending_impl },
3963 { 2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_transactionReply_impl },
3964 { 3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_transactionResponseAck_impl },
3965 { 0, 0, 0, 0, NULL }
3969 dissect_h248_Transaction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3970 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3971 Transaction_choice, hf_index, ett_h248_Transaction);
3975 static int dissect_transactions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3976 return dissect_h248_Transaction(FALSE, tvb, offset, pinfo, tree, hf_h248_transactions_item);
3979 static ber_sequence SEQUNCE_OF_Transaction_sequence_of[1] = {
3980 { BER_CLASS_CON, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_transactions_item },
3984 dissect_h248_SEQUNCE_OF_Transaction(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
3985 offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3986 SEQUNCE_OF_Transaction_sequence_of, hf_index, ett_h248_SEQUNCE_OF_Transaction);
3990 static int dissect_transactions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3991 return dissect_h248_SEQUNCE_OF_Transaction(TRUE, tvb, offset, pinfo, tree, hf_h248_transactions);
3995 static const value_string T_messageBody_vals[] = {
3996 { 0, "messageError" },
3997 { 1, "transactions" },
4001 static ber_choice T_messageBody_choice[] = {
4002 { 0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageError_impl },
4003 { 1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_transactions_impl },
4004 { 0, 0, 0, 0, NULL }
4008 dissect_h248_T_messageBody(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4009 offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4010 T_messageBody_choice, hf_index, ett_h248_T_messageBody);
4014 static int dissect_messageBody(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4015 return dissect_h248_T_messageBody(FALSE, tvb, offset, pinfo, tree, hf_h248_messageBody);
4018 static ber_sequence Message_sequence[] = {
4019 { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_version_impl },
4020 { BER_CLASS_CON, 1, BER_FLAGS_NOTCHKTAG, dissect_mId },
4021 { BER_CLASS_CON, 2, 0, dissect_messageBody },
4026 dissect_h248_Message(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4027 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4028 Message_sequence, hf_index, ett_h248_Message);
4032 static int dissect_mess_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4033 return dissect_h248_Message(TRUE, tvb, offset, pinfo, tree, hf_h248_mess);
4036 static ber_sequence MegacoMessage_sequence[] = {
4037 { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_authHeader_impl },
4038 { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_mess_impl },
4043 dissect_h248_MegacoMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
4044 offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4045 MegacoMessage_sequence, hf_index, ett_h248_MegacoMessage);
4051 /*--- End of included file: packet-h248-fn.c ---*/
4056 dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
4058 proto_item *h248_item;
4059 proto_tree *h248_tree = NULL;
4061 /* Make entry in the Protocol column on summary display */
4062 if (check_col(pinfo->cinfo, COL_PROTOCOL))
4063 col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.248");
4066 h248_item = proto_tree_add_item(tree, proto_h248, tvb, 0, -1, FALSE);
4067 h248_tree = proto_item_add_subtree(h248_item, ett_h248);
4070 dissect_h248_MegacoMessage(FALSE, tvb, 0, pinfo, h248_tree, -1);
4076 /*--- proto_register_h248 ----------------------------------------------*/
4077 void proto_register_h248(void) {
4079 /* List of fields */
4080 static hf_register_info hf[] = {
4081 { &hf_h248_mtpaddress_ni, {
4082 "NI", "h248.mtpaddress.ni", FT_UINT32, BASE_DEC,
4083 NULL, 0, "NI", HFILL }},
4084 { &hf_h248_mtpaddress_pc, {
4085 "PC", "h248.mtpaddress.pc", FT_UINT32, BASE_DEC,
4086 NULL, 0, "PC", HFILL }},
4087 { &hf_h248_package_name, {
4088 "Package", "h248.package_name", FT_UINT32, BASE_HEX,
4089 VALS(package_name_vals), 0, "Package", HFILL }},
4090 { &hf_h248_package_bcp_BNCChar_PDU,
4091 { "BNCChar", "h248.package_bcp.BNCChar",
4092 FT_UINT32, BASE_DEC, VALS(BNCChar_vals), 0,
4093 "BNCChar", HFILL }},
4094 { &hf_h248_package_annex_C_TMR,
4095 { "TMR", "h248.package_annex_C.TMR",
4096 FT_UINT32, BASE_DEC, VALS(isup_transmission_medium_requirement_value), 0,
4097 "BNCChar", HFILL }},
4098 { &hf_h248_package_annex_C_USI,
4099 { "USI", "h248.package_annex_C.USI",
4100 FT_BYTES, BASE_HEX, NULL, 0,
4101 "User Service Information", HFILL }},
4102 { &hf_h248_package_annex_C_BIR,
4103 { "BIR", "h248.package_annex_C.BIR",
4104 FT_BYTES, BASE_HEX, NULL, 0,
4106 { &hf_h248_package_annex_C_NSAP,
4107 { "NSAP", "h248.package_annex_C.NSAP",
4108 FT_BYTES, BASE_HEX, NULL, 0,
4112 /*--- Included file: packet-h248-hfarr.c ---*/
4114 { &hf_h248_authHeader,
4115 { "authHeader", "h248.authHeader",
4116 FT_NONE, BASE_NONE, NULL, 0,
4117 "MegacoMessage/authHeader", HFILL }},
4119 { "mess", "h248.mess",
4120 FT_NONE, BASE_NONE, NULL, 0,
4121 "MegacoMessage/mess", HFILL }},
4122 { &hf_h248_secParmIndex,
4123 { "secParmIndex", "h248.secParmIndex",
4124 FT_BYTES, BASE_HEX, NULL, 0,
4125 "AuthenticationHeader/secParmIndex", HFILL }},
4127 { "seqNum", "h248.seqNum",
4128 FT_BYTES, BASE_HEX, NULL, 0,
4129 "AuthenticationHeader/seqNum", HFILL }},
4132 FT_BYTES, BASE_HEX, NULL, 0,
4133 "AuthenticationHeader/ad", HFILL }},
4135 { "version", "h248.version",
4136 FT_UINT32, BASE_DEC, NULL, 0,
4137 "Message/version", HFILL }},
4139 { "mId", "h248.mId",
4140 FT_UINT32, BASE_DEC, VALS(MId_vals), 0,
4141 "Message/mId", HFILL }},
4142 { &hf_h248_messageBody,
4143 { "messageBody", "h248.messageBody",
4144 FT_UINT32, BASE_DEC, VALS(T_messageBody_vals), 0,
4145 "Message/messageBody", HFILL }},
4146 { &hf_h248_messageError,
4147 { "messageError", "h248.messageError",
4148 FT_NONE, BASE_NONE, NULL, 0,
4149 "Message/messageBody/messageError", HFILL }},
4150 { &hf_h248_transactions,
4151 { "transactions", "h248.transactions",
4152 FT_UINT32, BASE_DEC, NULL, 0,
4153 "Message/messageBody/transactions", HFILL }},
4154 { &hf_h248_transactions_item,
4155 { "Item", "h248.transactions_item",
4156 FT_UINT32, BASE_DEC, VALS(Transaction_vals), 0,
4157 "Message/messageBody/transactions/_item", HFILL }},
4158 { &hf_h248_ip4Address,
4159 { "ip4Address", "h248.ip4Address",
4160 FT_NONE, BASE_NONE, NULL, 0,
4162 { &hf_h248_ip6Address,
4163 { "ip6Address", "h248.ip6Address",
4164 FT_NONE, BASE_NONE, NULL, 0,
4166 { &hf_h248_domainName,
4167 { "domainName", "h248.domainName",
4168 FT_NONE, BASE_NONE, NULL, 0,
4170 { &hf_h248_deviceName,
4171 { "deviceName", "h248.deviceName",
4172 FT_STRING, BASE_NONE, NULL, 0,
4174 { &hf_h248_mtpAddress,
4175 { "mtpAddress", "h248.mtpAddress",
4176 FT_BYTES, BASE_HEX, NULL, 0,
4177 "MId/mtpAddress", HFILL }},
4179 { "name", "h248.name",
4180 FT_STRING, BASE_NONE, NULL, 0,
4181 "DomainName/name", HFILL }},
4182 { &hf_h248_portNumber,
4183 { "portNumber", "h248.portNumber",
4184 FT_UINT32, BASE_DEC, NULL, 0,
4187 { "address", "h248.address",
4188 FT_BYTES, BASE_HEX, NULL, 0,
4189 "IP4Address/address", HFILL }},
4190 { &hf_h248_address1,
4191 { "address", "h248.address",
4192 FT_BYTES, BASE_HEX, NULL, 0,
4193 "IP6Address/address", HFILL }},
4194 { &hf_h248_transactionRequest,
4195 { "transactionRequest", "h248.transactionRequest",
4196 FT_NONE, BASE_NONE, NULL, 0,
4197 "Transaction/transactionRequest", HFILL }},
4198 { &hf_h248_transactionPending,
4199 { "transactionPending", "h248.transactionPending",
4200 FT_NONE, BASE_NONE, NULL, 0,
4201 "Transaction/transactionPending", HFILL }},
4202 { &hf_h248_transactionReply,
4203 { "transactionReply", "h248.transactionReply",
4204 FT_NONE, BASE_NONE, NULL, 0,
4205 "Transaction/transactionReply", HFILL }},
4206 { &hf_h248_transactionResponseAck,
4207 { "transactionResponseAck", "h248.transactionResponseAck",
4208 FT_UINT32, BASE_DEC, NULL, 0,
4209 "Transaction/transactionResponseAck", HFILL }},
4210 { &hf_h248_transactionId,
4211 { "transactionId", "h248.transactionId",
4212 FT_UINT32, BASE_DEC, NULL, 0,
4215 { "actions", "h248.actions",
4216 FT_UINT32, BASE_DEC, NULL, 0,
4217 "TransactionRequest/actions", HFILL }},
4218 { &hf_h248_actions_item,
4219 { "Item", "h248.actions_item",
4220 FT_NONE, BASE_NONE, NULL, 0,
4221 "TransactionRequest/actions/_item", HFILL }},
4222 { &hf_h248_immAckRequired,
4223 { "immAckRequired", "h248.immAckRequired",
4224 FT_NONE, BASE_NONE, NULL, 0,
4225 "TransactionReply/immAckRequired", HFILL }},
4226 { &hf_h248_transactionResult,
4227 { "transactionResult", "h248.transactionResult",
4228 FT_UINT32, BASE_DEC, VALS(T_transactionResult_vals), 0,
4229 "TransactionReply/transactionResult", HFILL }},
4230 { &hf_h248_transactionError,
4231 { "transactionError", "h248.transactionError",
4232 FT_NONE, BASE_NONE, NULL, 0,
4233 "TransactionReply/transactionResult/transactionError", HFILL }},
4234 { &hf_h248_actionReplies,
4235 { "actionReplies", "h248.actionReplies",
4236 FT_UINT32, BASE_DEC, NULL, 0,
4237 "TransactionReply/transactionResult/actionReplies", HFILL }},
4238 { &hf_h248_actionReplies_item,
4239 { "Item", "h248.actionReplies_item",
4240 FT_NONE, BASE_NONE, NULL, 0,
4241 "TransactionReply/transactionResult/actionReplies/_item", HFILL }},
4242 { &hf_h248_TransactionResponseAck_item,
4243 { "Item", "h248.TransactionResponseAck_item",
4244 FT_NONE, BASE_NONE, NULL, 0,
4245 "TransactionResponseAck/_item", HFILL }},
4246 { &hf_h248_firstAck,
4247 { "firstAck", "h248.firstAck",
4248 FT_UINT32, BASE_DEC, NULL, 0,
4249 "TransactionAck/firstAck", HFILL }},
4251 { "lastAck", "h248.lastAck",
4252 FT_UINT32, BASE_DEC, NULL, 0,
4253 "TransactionAck/lastAck", HFILL }},
4254 { &hf_h248_errorCode,
4255 { "errorCode", "h248.errorCode",
4256 FT_UINT32, BASE_DEC, NULL, 0,
4257 "ErrorDescriptor/errorCode", HFILL }},
4258 { &hf_h248_errorText,
4259 { "errorText", "h248.errorText",
4260 FT_STRING, BASE_NONE, NULL, 0,
4261 "ErrorDescriptor/errorText", HFILL }},
4262 { &hf_h248_contextId,
4263 { "contextId", "h248.contextId",
4264 FT_UINT32, BASE_DEC, NULL, 0,
4266 { &hf_h248_contextRequest,
4267 { "contextRequest", "h248.contextRequest",
4268 FT_NONE, BASE_NONE, NULL, 0,
4269 "ActionRequest/contextRequest", HFILL }},
4270 { &hf_h248_contextAttrAuditReq,
4271 { "contextAttrAuditReq", "h248.contextAttrAuditReq",
4272 FT_NONE, BASE_NONE, NULL, 0,
4273 "ActionRequest/contextAttrAuditReq", HFILL }},
4274 { &hf_h248_commandRequests,
4275 { "commandRequests", "h248.commandRequests",
4276 FT_UINT32, BASE_DEC, NULL, 0,
4277 "ActionRequest/commandRequests", HFILL }},
4278 { &hf_h248_commandRequests_item,
4279 { "Item", "h248.commandRequests_item",
4280 FT_NONE, BASE_NONE, NULL, 0,
4281 "ActionRequest/commandRequests/_item", HFILL }},
4282 { &hf_h248_errorDescriptor,
4283 { "errorDescriptor", "h248.errorDescriptor",
4284 FT_NONE, BASE_NONE, NULL, 0,
4286 { &hf_h248_contextReply,
4287 { "contextReply", "h248.contextReply",
4288 FT_NONE, BASE_NONE, NULL, 0,
4289 "ActionReply/contextReply", HFILL }},
4290 { &hf_h248_commandReply,
4291 { "commandReply", "h248.commandReply",
4292 FT_UINT32, BASE_DEC, NULL, 0,
4293 "ActionReply/commandReply", HFILL }},
4294 { &hf_h248_commandReply_item,
4295 { "Item", "h248.commandReply_item",
4296 FT_UINT32, BASE_DEC, VALS(CommandReply_vals), 0,
4297 "ActionReply/commandReply/_item", HFILL }},
4298 { &hf_h248_priority,
4299 { "priority", "h248.priority",
4300 FT_UINT32, BASE_DEC, NULL, 0,
4301 "ContextRequest/priority", HFILL }},
4302 { &hf_h248_emergency,
4303 { "emergency", "h248.emergency",
4304 FT_BOOLEAN, 8, NULL, 0,
4305 "ContextRequest/emergency", HFILL }},
4306 { &hf_h248_topologyReq,
4307 { "topologyReq", "h248.topologyReq",
4308 FT_UINT32, BASE_DEC, NULL, 0,
4309 "ContextRequest/topologyReq", HFILL }},
4310 { &hf_h248_topologyReq_item,
4311 { "Item", "h248.topologyReq_item",
4312 FT_NONE, BASE_NONE, NULL, 0,
4313 "ContextRequest/topologyReq/_item", HFILL }},
4314 { &hf_h248_topology,
4315 { "topology", "h248.topology",
4316 FT_NONE, BASE_NONE, NULL, 0,
4317 "ContextAttrAuditRequest/topology", HFILL }},
4318 { &hf_h248_emergency1,
4319 { "emergency", "h248.emergency",
4320 FT_NONE, BASE_NONE, NULL, 0,
4321 "ContextAttrAuditRequest/emergency", HFILL }},
4322 { &hf_h248_priority1,
4323 { "priority", "h248.priority",
4324 FT_NONE, BASE_NONE, NULL, 0,
4325 "ContextAttrAuditRequest/priority", HFILL }},
4327 { "command", "h248.command",
4328 FT_UINT32, BASE_DEC, VALS(Command_vals), 0,
4329 "CommandRequest/command", HFILL }},
4330 { &hf_h248_optional,
4331 { "optional", "h248.optional",
4332 FT_NONE, BASE_NONE, NULL, 0,
4333 "CommandRequest/optional", HFILL }},
4334 { &hf_h248_wildcardReturn,
4335 { "wildcardReturn", "h248.wildcardReturn",
4336 FT_NONE, BASE_NONE, NULL, 0,
4337 "CommandRequest/wildcardReturn", HFILL }},
4339 { "addReq", "h248.addReq",
4340 FT_NONE, BASE_NONE, NULL, 0,
4341 "Command/addReq", HFILL }},
4343 { "moveReq", "h248.moveReq",
4344 FT_NONE, BASE_NONE, NULL, 0,
4345 "Command/moveReq", HFILL }},
4347 { "modReq", "h248.modReq",
4348 FT_NONE, BASE_NONE, NULL, 0,
4349 "Command/modReq", HFILL }},
4350 { &hf_h248_subtractReq,
4351 { "subtractReq", "h248.subtractReq",
4352 FT_NONE, BASE_NONE, NULL, 0,
4353 "Command/subtractReq", HFILL }},
4354 { &hf_h248_auditCapRequest,
4355 { "auditCapRequest", "h248.auditCapRequest",
4356 FT_NONE, BASE_NONE, NULL, 0,
4357 "Command/auditCapRequest", HFILL }},
4358 { &hf_h248_auditValueRequest,
4359 { "auditValueRequest", "h248.auditValueRequest",
4360 FT_NONE, BASE_NONE, NULL, 0,
4361 "Command/auditValueRequest", HFILL }},
4362 { &hf_h248_notifyReq,
4363 { "notifyReq", "h248.notifyReq",
4364 FT_NONE, BASE_NONE, NULL, 0,
4365 "Command/notifyReq", HFILL }},
4366 { &hf_h248_serviceChangeReq,
4367 { "serviceChangeReq", "h248.serviceChangeReq",
4368 FT_NONE, BASE_NONE, NULL, 0,
4369 "Command/serviceChangeReq", HFILL }},
4370 { &hf_h248_addReply,
4371 { "addReply", "h248.addReply",
4372 FT_NONE, BASE_NONE, NULL, 0,
4373 "CommandReply/addReply", HFILL }},
4374 { &hf_h248_moveReply,
4375 { "moveReply", "h248.moveReply",
4376 FT_NONE, BASE_NONE, NULL, 0,
4377 "CommandReply/moveReply", HFILL }},
4378 { &hf_h248_modReply,
4379 { "modReply", "h248.modReply",
4380 FT_NONE, BASE_NONE, NULL, 0,
4381 "CommandReply/modReply", HFILL }},
4382 { &hf_h248_subtractReply,
4383 { "subtractReply", "h248.subtractReply",
4384 FT_NONE, BASE_NONE, NULL, 0,
4385 "CommandReply/subtractReply", HFILL }},
4386 { &hf_h248_auditCapReply,
4387 { "auditCapReply", "h248.auditCapReply",
4388 FT_UINT32, BASE_DEC, VALS(AuditReply_vals), 0,
4389 "CommandReply/auditCapReply", HFILL }},
4390 { &hf_h248_auditValueReply,
4391 { "auditValueReply", "h248.auditValueReply",
4392 FT_UINT32, BASE_DEC, VALS(AuditReply_vals), 0,
4393 "CommandReply/auditValueReply", HFILL }},
4394 { &hf_h248_notifyReply,
4395 { "notifyReply", "h248.notifyReply",
4396 FT_NONE, BASE_NONE, NULL, 0,
4397 "CommandReply/notifyReply", HFILL }},
4398 { &hf_h248_serviceChangeReply,
4399 { "serviceChangeReply", "h248.serviceChangeReply",
4400 FT_NONE, BASE_NONE, NULL, 0,
4401 "CommandReply/serviceChangeReply", HFILL }},
4402 { &hf_h248_terminationFrom,
4403 { "terminationFrom", "h248.terminationFrom",
4404 FT_NONE, BASE_NONE, NULL, 0,
4405 "TopologyRequest/terminationFrom", HFILL }},
4406 { &hf_h248_terminationTo,
4407 { "terminationTo", "h248.terminationTo",
4408 FT_NONE, BASE_NONE, NULL, 0,
4409 "TopologyRequest/terminationTo", HFILL }},
4410 { &hf_h248_topologyDirection,
4411 { "topologyDirection", "h248.topologyDirection",
4412 FT_UINT32, BASE_DEC, VALS(T_topologyDirection_vals), 0,
4413 "TopologyRequest/topologyDirection", HFILL }},
4414 { &hf_h248_streamID,
4415 { "streamID", "h248.streamID",
4416 FT_UINT32, BASE_DEC, NULL, 0,
4418 { &hf_h248_terminationID,
4419 { "terminationID", "h248.terminationID",
4420 FT_UINT32, BASE_DEC, NULL, 0,
4422 { &hf_h248_descriptors,
4423 { "descriptors", "h248.descriptors",
4424 FT_UINT32, BASE_DEC, NULL, 0,
4425 "AmmRequest/descriptors", HFILL }},
4426 { &hf_h248_descriptors_item,
4427 { "Item", "h248.descriptors_item",
4428 FT_UINT32, BASE_DEC, VALS(AmmDescriptor_vals), 0,
4429 "AmmRequest/descriptors/_item", HFILL }},
4430 { &hf_h248_mediaDescriptor,
4431 { "mediaDescriptor", "h248.mediaDescriptor",
4432 FT_NONE, BASE_NONE, NULL, 0,
4434 { &hf_h248_modemDescriptor,
4435 { "modemDescriptor", "h248.modemDescriptor",
4436 FT_NONE, BASE_NONE, NULL, 0,
4438 { &hf_h248_muxDescriptor,
4439 { "muxDescriptor", "h248.muxDescriptor",
4440 FT_NONE, BASE_NONE, NULL, 0,
4442 { &hf_h248_eventsDescriptor,
4443 { "eventsDescriptor", "h248.eventsDescriptor",
4444 FT_NONE, BASE_NONE, NULL, 0,
4446 { &hf_h248_eventBufferDescriptor,
4447 { "eventBufferDescriptor", "h248.eventBufferDescriptor",
4448 FT_UINT32, BASE_DEC, NULL, 0,
4450 { &hf_h248_signalsDescriptor,
4451 { "signalsDescriptor", "h248.signalsDescriptor",
4452 FT_UINT32, BASE_DEC, NULL, 0,
4454 { &hf_h248_digitMapDescriptor,
4455 { "digitMapDescriptor", "h248.digitMapDescriptor",
4456 FT_NONE, BASE_NONE, NULL, 0,
4458 { &hf_h248_auditDescriptor,
4459 { "auditDescriptor", "h248.auditDescriptor",
4460 FT_NONE, BASE_NONE, NULL, 0,
4462 { &hf_h248_terminationAudit,
4463 { "terminationAudit", "h248.terminationAudit",
4464 FT_UINT32, BASE_DEC, NULL, 0,
4465 "AmmsReply/terminationAudit", HFILL }},
4466 { &hf_h248_terminationID1,
4467 { "terminationID", "h248.terminationID",
4468 FT_NONE, BASE_NONE, NULL, 0,
4470 { &hf_h248_contextAuditResult,
4471 { "contextAuditResult", "h248.contextAuditResult",
4472 FT_UINT32, BASE_DEC, NULL, 0,
4473 "AuditReply/contextAuditResult", HFILL }},
4475 { "error", "h248.error",
4476 FT_NONE, BASE_NONE, NULL, 0,
4477 "AuditReply/error", HFILL }},
4478 { &hf_h248_auditResult,
4479 { "auditResult", "h248.auditResult",
4480 FT_NONE, BASE_NONE, NULL, 0,
4481 "AuditReply/auditResult", HFILL }},
4482 { &hf_h248_terminationAuditResult,
4483 { "terminationAuditResult", "h248.terminationAuditResult",
4484 FT_UINT32, BASE_DEC, NULL, 0,
4485 "AuditResult/terminationAuditResult", HFILL }},
4486 { &hf_h248_TerminationAudit_item,
4487 { "Item", "h248.TerminationAudit_item",
4488 FT_UINT32, BASE_DEC, VALS(AuditReturnParameter_vals), 0,
4489 "TerminationAudit/_item", HFILL }},
4490 { &hf_h248_observedEventsDescriptor,
4491 { "observedEventsDescriptor", "h248.observedEventsDescriptor",
4492 FT_NONE, BASE_NONE, NULL, 0,
4494 { &hf_h248_statisticsDescriptor,
4495 { "statisticsDescriptor", "h248.statisticsDescriptor",
4496 FT_UINT32, BASE_DEC, NULL, 0,
4497 "AuditReturnParameter/statisticsDescriptor", HFILL }},
4498 { &hf_h248_packagesDescriptor,
4499 { "packagesDescriptor", "h248.packagesDescriptor",
4500 FT_UINT32, BASE_DEC, NULL, 0,
4501 "AuditReturnParameter/packagesDescriptor", HFILL }},
4502 { &hf_h248_emptyDescriptors,
4503 { "emptyDescriptors", "h248.emptyDescriptors",
4504 FT_NONE, BASE_NONE, NULL, 0,
4505 "AuditReturnParameter/emptyDescriptors", HFILL }},
4506 { &hf_h248_auditToken,
4507 { "auditToken", "h248.auditToken",
4508 FT_BYTES, BASE_HEX, NULL, 0,
4509 "AuditDescriptor/auditToken", HFILL }},
4510 { &hf_h248_auditPropertyToken,
4511 { "auditPropertyToken", "h248.auditPropertyToken",
4512 FT_UINT32, BASE_DEC, NULL, 0,
4513 "AuditDescriptor/auditPropertyToken", HFILL }},
4514 { &hf_h248_auditPropertyToken_item,
4515 { "Item", "h248.auditPropertyToken_item",
4516 FT_UINT32, BASE_DEC, VALS(IndAuditParameter_vals), 0,
4517 "AuditDescriptor/auditPropertyToken/_item", HFILL }},
4518 { &hf_h248_indaudmediaDescriptor,
4519 { "indaudmediaDescriptor", "h248.indaudmediaDescriptor",
4520 FT_NONE, BASE_NONE, NULL, 0,
4521 "IndAuditParameter/indaudmediaDescriptor", HFILL }},
4522 { &hf_h248_indaudeventsDescriptor,
4523 { "indaudeventsDescriptor", "h248.indaudeventsDescriptor",
4524 FT_NONE, BASE_NONE, NULL, 0,
4525 "IndAuditParameter/indaudeventsDescriptor", HFILL }},
4526 { &hf_h248_indaudeventBufferDescriptor,
4527 { "indaudeventBufferDescriptor", "h248.indaudeventBufferDescriptor",
4528 FT_NONE, BASE_NONE, NULL, 0,
4529 "IndAuditParameter/indaudeventBufferDescriptor", HFILL }},
4530 { &hf_h248_indaudsignalsDescriptor,
4531 { "indaudsignalsDescriptor", "h248.indaudsignalsDescriptor",
4532 FT_UINT32, BASE_DEC, VALS(IndAudSignalsDescriptor_vals), 0,
4533 "IndAuditParameter/indaudsignalsDescriptor", HFILL }},
4534 { &hf_h248_indauddigitMapDescriptor,
4535 { "indauddigitMapDescriptor", "h248.indauddigitMapDescriptor",
4536 FT_NONE, BASE_NONE, NULL, 0,
4537 "IndAuditParameter/indauddigitMapDescriptor", HFILL }},
4538 { &hf_h248_indaudstatisticsDescriptor,
4539 { "indaudstatisticsDescriptor", "h248.indaudstatisticsDescriptor",
4540 FT_NONE, BASE_NONE, NULL, 0,
4541 "IndAuditParameter/indaudstatisticsDescriptor", HFILL }},
4542 { &hf_h248_indaudpackagesDescriptor,
4543 { "indaudpackagesDescriptor", "h248.indaudpackagesDescriptor",
4544 FT_NONE, BASE_NONE, NULL, 0,
4545 "IndAuditParameter/indaudpackagesDescriptor", HFILL }},
4546 { &hf_h248_termStateDescr,
4547 { "termStateDescr", "h248.termStateDescr",
4548 FT_NONE, BASE_NONE, NULL, 0,
4549 "IndAudMediaDescriptor/termStateDescr", HFILL }},
4551 { "streams", "h248.streams",
4552 FT_UINT32, BASE_DEC, VALS(T_streams_vals), 0,
4553 "IndAudMediaDescriptor/streams", HFILL }},
4554 { &hf_h248_oneStream,
4555 { "oneStream", "h248.oneStream",
4556 FT_NONE, BASE_NONE, NULL, 0,
4557 "IndAudMediaDescriptor/streams/oneStream", HFILL }},
4558 { &hf_h248_multiStream,
4559 { "multiStream", "h248.multiStream",
4560 FT_UINT32, BASE_DEC, NULL, 0,
4561 "IndAudMediaDescriptor/streams/multiStream", HFILL }},
4562 { &hf_h248_multiStream_item,
4563 { "Item", "h248.multiStream_item",
4564 FT_NONE, BASE_NONE, NULL, 0,
4565 "IndAudMediaDescriptor/streams/multiStream/_item", HFILL }},
4566 { &hf_h248_streamParms,
4567 { "streamParms", "h248.streamParms",
4568 FT_NONE, BASE_NONE, NULL, 0,
4569 "IndAudStreamDescriptor/streamParms", HFILL }},
4570 { &hf_h248_localControlDescriptor,
4571 { "localControlDescriptor", "h248.localControlDescriptor",
4572 FT_NONE, BASE_NONE, NULL, 0,
4573 "IndAudStreamParms/localControlDescriptor", HFILL }},
4574 { &hf_h248_localDescriptor,
4575 { "localDescriptor", "h248.localDescriptor",
4576 FT_NONE, BASE_NONE, NULL, 0,
4577 "IndAudStreamParms/localDescriptor", HFILL }},
4578 { &hf_h248_remoteDescriptor,
4579 { "remoteDescriptor", "h248.remoteDescriptor",
4580 FT_NONE, BASE_NONE, NULL, 0,
4581 "IndAudStreamParms/remoteDescriptor", HFILL }},
4582 { &hf_h248_streamMode,
4583 { "streamMode", "h248.streamMode",
4584 FT_NONE, BASE_NONE, NULL, 0,
4585 "IndAudLocalControlDescriptor/streamMode", HFILL }},
4586 { &hf_h248_reserveValue,
4587 { "reserveValue", "h248.reserveValue",
4588 FT_NONE, BASE_NONE, NULL, 0,
4589 "IndAudLocalControlDescriptor/reserveValue", HFILL }},
4590 { &hf_h248_reserveGroup,
4591 { "reserveGroup", "h248.reserveGroup",
4592 FT_NONE, BASE_NONE, NULL, 0,
4593 "IndAudLocalControlDescriptor/reserveGroup", HFILL }},
4594 { &hf_h248_propertyParms,
4595 { "propertyParms", "h248.propertyParms",
4596 FT_UINT32, BASE_DEC, NULL, 0,
4598 { &hf_h248_propertyParms_item,
4599 { "Item", "h248.propertyParms_item",
4600 FT_NONE, BASE_NONE, NULL, 0,
4603 { "name", "h248.name",
4604 FT_BYTES, BASE_HEX, NULL, 0,
4605 "IndAudPropertyParm/name", HFILL }},
4606 { &hf_h248_propGroupID,
4607 { "propGroupID", "h248.propGroupID",
4608 FT_UINT32, BASE_DEC, NULL, 0,
4609 "IndAudLocalRemoteDescriptor/propGroupID", HFILL }},
4610 { &hf_h248_propGrps,
4611 { "propGrps", "h248.propGrps",
4612 FT_UINT32, BASE_DEC, NULL, 0,
4613 "IndAudLocalRemoteDescriptor/propGrps", HFILL }},
4614 { &hf_h248_IndAudPropertyGroup_item,
4615 { "Item", "h248.IndAudPropertyGroup_item",
4616 FT_NONE, BASE_NONE, NULL, 0,
4617 "IndAudPropertyGroup/_item", HFILL }},
4618 { &hf_h248_eventBufferControl,
4619 { "eventBufferControl", "h248.eventBufferControl",
4620 FT_NONE, BASE_NONE, NULL, 0,
4621 "IndAudTerminationStateDescriptor/eventBufferControl", HFILL }},
4622 { &hf_h248_serviceState,
4623 { "serviceState", "h248.serviceState",
4624 FT_NONE, BASE_NONE, NULL, 0,
4625 "IndAudTerminationStateDescriptor/serviceState", HFILL }},
4626 { &hf_h248_requestID,
4627 { "requestID", "h248.requestID",
4628 FT_UINT32, BASE_DEC, NULL, 0,
4630 { &hf_h248_pkgdName,
4631 { "pkgdName", "h248.pkgdName",
4632 FT_BYTES, BASE_HEX, NULL, 0,
4634 { &hf_h248_eventName,
4635 { "eventName", "h248.eventName",
4636 FT_BYTES, BASE_HEX, NULL, 0,
4637 "IndAudEventBufferDescriptor/eventName", HFILL }},
4639 { "signal", "h248.signal",
4640 FT_NONE, BASE_NONE, NULL, 0,
4641 "IndAudSignalsDescriptor/signal", HFILL }},
4642 { &hf_h248_seqSigList,
4643 { "seqSigList", "h248.seqSigList",
4644 FT_NONE, BASE_NONE, NULL, 0,
4645 "IndAudSignalsDescriptor/seqSigList", HFILL }},
4648 FT_UINT32, BASE_DEC, NULL, 0,
4650 { &hf_h248_signalList,
4651 { "signalList", "h248.signalList",
4652 FT_NONE, BASE_NONE, NULL, 0,
4653 "IndAudSeqSigList/signalList", HFILL }},
4654 { &hf_h248_signalName,
4655 { "signalName", "h248.signalName",
4656 FT_BYTES, BASE_HEX, NULL, 0,
4657 "IndAudSignal/signalName", HFILL }},
4658 { &hf_h248_digitMapName,
4659 { "digitMapName", "h248.digitMapName",
4660 FT_BYTES, BASE_HEX, NULL, 0,
4662 { &hf_h248_statName,
4663 { "statName", "h248.statName",
4664 FT_BYTES, BASE_HEX, NULL, 0,
4666 { &hf_h248_packageName,
4667 { "packageName", "h248.packageName",
4668 FT_BYTES, BASE_HEX, NULL, 0,
4670 { &hf_h248_packageVersion,
4671 { "packageVersion", "h248.packageVersion",
4672 FT_UINT32, BASE_DEC, NULL, 0,
4674 { &hf_h248_requestId,
4675 { "requestId", "h248.requestId",
4676 FT_UINT32, BASE_DEC, NULL, 0,
4677 "ObservedEventsDescriptor/requestId", HFILL }},
4678 { &hf_h248_observedEventLst,
4679 { "observedEventLst", "h248.observedEventLst",
4680 FT_UINT32, BASE_DEC, NULL, 0,
4681 "ObservedEventsDescriptor/observedEventLst", HFILL }},
4682 { &hf_h248_observedEventLst_item,
4683 { "Item", "h248.observedEventLst_item",
4684 FT_NONE, BASE_NONE, NULL, 0,
4685 "ObservedEventsDescriptor/observedEventLst/_item", HFILL }},
4686 { &hf_h248_eventName1,
4687 { "eventName", "h248.eventName",
4688 FT_BYTES, BASE_HEX, NULL, 0,
4690 { &hf_h248_eventParList,
4691 { "eventParList", "h248.eventParList",
4692 FT_UINT32, BASE_DEC, NULL, 0,
4694 { &hf_h248_eventParList_item,
4695 { "Item", "h248.eventParList_item",
4696 FT_NONE, BASE_NONE, NULL, 0,
4698 { &hf_h248_timeNotation,
4699 { "timeNotation", "h248.timeNotation",
4700 FT_NONE, BASE_NONE, NULL, 0,
4701 "ObservedEvent/timeNotation", HFILL }},
4702 { &hf_h248_eventParameterName,
4703 { "eventParameterName", "h248.eventParameterName",
4704 FT_BYTES, BASE_HEX, NULL, 0,
4705 "EventParameter/eventParameterName", HFILL }},
4707 { "value", "h248.value",
4708 FT_UINT32, BASE_DEC, NULL, 0,
4710 { &hf_h248_extraInfo,
4711 { "extraInfo", "h248.extraInfo",
4712 FT_UINT32, BASE_DEC, VALS(T_extraInfo_vals), 0,
4713 "EventParameter/extraInfo", HFILL }},
4714 { &hf_h248_relation,
4715 { "relation", "h248.relation",
4716 FT_UINT32, BASE_DEC, VALS(Relation_vals), 0,
4719 { "range", "h248.range",
4720 FT_BOOLEAN, 8, NULL, 0,
4723 { "sublist", "h248.sublist",
4724 FT_BOOLEAN, 8, NULL, 0,
4726 { &hf_h248_serviceChangeParms,
4727 { "serviceChangeParms", "h248.serviceChangeParms",
4728 FT_NONE, BASE_NONE, NULL, 0,
4729 "ServiceChangeRequest/serviceChangeParms", HFILL }},
4730 { &hf_h248_serviceChangeResult,
4731 { "serviceChangeResult", "h248.serviceChangeResult",
4732 FT_UINT32, BASE_DEC, VALS(ServiceChangeResult_vals), 0,
4733 "ServiceChangeReply/serviceChangeResult", HFILL }},
4734 { &hf_h248_serviceChangeResParms,
4735 { "serviceChangeResParms", "h248.serviceChangeResParms",
4736 FT_NONE, BASE_NONE, NULL, 0,
4737 "ServiceChangeResult/serviceChangeResParms", HFILL }},
4738 { &hf_h248_wildcard,
4739 { "wildcard", "h248.wildcard",
4740 FT_UINT32, BASE_DEC, NULL, 0,
4741 "TerminationID/wildcard", HFILL }},
4742 { &hf_h248_wildcard_item,
4743 { "Item", "h248.wildcard_item",
4744 FT_BYTES, BASE_HEX, NULL, 0,
4745 "TerminationID/wildcard/_item", HFILL }},
4748 FT_BYTES, BASE_HEX, NULL, 0,
4749 "TerminationID/id", HFILL }},
4750 { &hf_h248_TerminationIDList_item,
4751 { "Item", "h248.TerminationIDList_item",
4752 FT_NONE, BASE_NONE, NULL, 0,
4753 "TerminationIDList/_item", HFILL }},
4754 { &hf_h248_termStateDescr1,
4755 { "termStateDescr", "h248.termStateDescr",
4756 FT_NONE, BASE_NONE, NULL, 0,
4757 "MediaDescriptor/termStateDescr", HFILL }},
4758 { &hf_h248_streams1,
4759 { "streams", "h248.streams",
4760 FT_UINT32, BASE_DEC, VALS(T_streams1_vals), 0,
4761 "MediaDescriptor/streams", HFILL }},
4762 { &hf_h248_oneStream1,
4763 { "oneStream", "h248.oneStream",
4764 FT_NONE, BASE_NONE, NULL, 0,
4765 "MediaDescriptor/streams/oneStream", HFILL }},
4766 { &hf_h248_multiStream1,
4767 { "multiStream", "h248.multiStream",
4768 FT_UINT32, BASE_DEC, NULL, 0,
4769 "MediaDescriptor/streams/multiStream", HFILL }},
4770 { &hf_h248_multiStream_item1,
4771 { "Item", "h248.multiStream_item",
4772 FT_NONE, BASE_NONE, NULL, 0,
4773 "MediaDescriptor/streams/multiStream/_item", HFILL }},
4774 { &hf_h248_streamParms1,
4775 { "streamParms", "h248.streamParms",
4776 FT_NONE, BASE_NONE, NULL, 0,
4777 "StreamDescriptor/streamParms", HFILL }},
4778 { &hf_h248_localControlDescriptor1,
4779 { "localControlDescriptor", "h248.localControlDescriptor",
4780 FT_NONE, BASE_NONE, NULL, 0,
4781 "StreamParms/localControlDescriptor", HFILL }},
4782 { &hf_h248_localDescriptor1,
4783 { "localDescriptor", "h248.localDescriptor",
4784 FT_NONE, BASE_NONE, NULL, 0,
4785 "StreamParms/localDescriptor", HFILL }},
4786 { &hf_h248_remoteDescriptor1,
4787 { "remoteDescriptor", "h248.remoteDescriptor",
4788 FT_NONE, BASE_NONE, NULL, 0,
4789 "StreamParms/remoteDescriptor", HFILL }},
4790 { &hf_h248_streamMode1,
4791 { "streamMode", "h248.streamMode",
4792 FT_UINT32, BASE_DEC, VALS(StreamMode_vals), 0,
4793 "LocalControlDescriptor/streamMode", HFILL }},
4794 { &hf_h248_reserveValue1,
4795 { "reserveValue", "h248.reserveValue",
4796 FT_BOOLEAN, 8, NULL, 0,
4797 "LocalControlDescriptor/reserveValue", HFILL }},
4798 { &hf_h248_reserveGroup1,
4799 { "reserveGroup", "h248.reserveGroup",
4800 FT_BOOLEAN, 8, NULL, 0,
4801 "LocalControlDescriptor/reserveGroup", HFILL }},
4802 { &hf_h248_propertyParms1,
4803 { "propertyParms", "h248.propertyParms",
4804 FT_UINT32, BASE_DEC, NULL, 0,
4806 { &hf_h248_propertyParms_item1,
4807 { "Item", "h248.propertyParms_item",
4808 FT_NONE, BASE_NONE, NULL, 0,
4810 { &hf_h248_propertyName,
4811 { "propertyName", "h248.propertyName",
4812 FT_BYTES, BASE_HEX, NULL, 0,
4813 "PropertyParm/propertyName", HFILL }},
4815 { "value", "h248.value",
4816 FT_UINT32, BASE_DEC, NULL, 0,
4817 "PropertyParm/value", HFILL }},
4818 { &hf_h248_value_item,
4819 { "Item", "h248.value_item",
4820 FT_BYTES, BASE_HEX, NULL, 0,
4821 "PropertyParm/value/_item", HFILL }},
4822 { &hf_h248_extraInfo1,
4823 { "extraInfo", "h248.extraInfo",
4824 FT_UINT32, BASE_DEC, VALS(T_extraInfo1_vals), 0,
4825 "PropertyParm/extraInfo", HFILL }},
4826 { &hf_h248_propGrps1,
4827 { "propGrps", "h248.propGrps",
4828 FT_UINT32, BASE_DEC, NULL, 0,
4829 "LocalRemoteDescriptor/propGrps", HFILL }},
4830 { &hf_h248_propGrps_item,
4831 { "Item", "h248.propGrps_item",
4832 FT_UINT32, BASE_DEC, NULL, 0,
4833 "LocalRemoteDescriptor/propGrps/_item", HFILL }},
4834 { &hf_h248_PropertyGroup_item,
4835 { "Item", "h248.PropertyGroup_item",
4836 FT_NONE, BASE_NONE, NULL, 0,
4837 "PropertyGroup/_item", HFILL }},
4838 { &hf_h248_eventBufferControl1,
4839 { "eventBufferControl", "h248.eventBufferControl",
4840 FT_UINT32, BASE_DEC, VALS(EventBufferControl_vals), 0,
4841 "TerminationStateDescriptor/eventBufferControl", HFILL }},
4842 { &hf_h248_serviceState1,
4843 { "serviceState", "h248.serviceState",
4844 FT_UINT32, BASE_DEC, VALS(ServiceState_vals), 0,
4845 "TerminationStateDescriptor/serviceState", HFILL }},
4847 { "muxType", "h248.muxType",
4848 FT_UINT32, BASE_DEC, VALS(MuxType_vals), 0,
4849 "MuxDescriptor/muxType", HFILL }},
4850 { &hf_h248_termList,
4851 { "termList", "h248.termList",
4852 FT_UINT32, BASE_DEC, NULL, 0,
4853 "MuxDescriptor/termList", HFILL }},
4854 { &hf_h248_termList_item,
4855 { "Item", "h248.termList_item",
4856 FT_NONE, BASE_NONE, NULL, 0,
4857 "MuxDescriptor/termList/_item", HFILL }},
4858 { &hf_h248_nonStandardData,
4859 { "nonStandardData", "h248.nonStandardData",
4860 FT_NONE, BASE_NONE, NULL, 0,
4862 { &hf_h248_eventList,
4863 { "eventList", "h248.eventList",
4864 FT_UINT32, BASE_DEC, NULL, 0,
4865 "EventsDescriptor/eventList", HFILL }},
4866 { &hf_h248_eventList_item,
4867 { "Item", "h248.eventList_item",
4868 FT_NONE, BASE_NONE, NULL, 0,
4869 "EventsDescriptor/eventList/_item", HFILL }},
4870 { &hf_h248_eventAction,
4871 { "eventAction", "h248.eventAction",
4872 FT_NONE, BASE_NONE, NULL, 0,
4873 "RequestedEvent/eventAction", HFILL }},
4874 { &hf_h248_evParList,
4875 { "evParList", "h248.evParList",
4876 FT_UINT32, BASE_DEC, NULL, 0,
4878 { &hf_h248_evParList_item,
4879 { "Item", "h248.evParList_item",
4880 FT_NONE, BASE_NONE, NULL, 0,
4882 { &hf_h248_keepActive,
4883 { "keepActive", "h248.keepActive",
4884 FT_BOOLEAN, 8, NULL, 0,
4887 { "eventDM", "h248.eventDM",
4888 FT_UINT32, BASE_DEC, VALS(EventDM_vals), 0,
4890 { &hf_h248_secondEvent,
4891 { "secondEvent", "h248.secondEvent",
4892 FT_NONE, BASE_NONE, NULL, 0,
4893 "RequestedActions/secondEvent", HFILL }},
4894 { &hf_h248_digitMapValue,
4895 { "digitMapValue", "h248.digitMapValue",
4896 FT_NONE, BASE_NONE, NULL, 0,
4898 { &hf_h248_eventList1,
4899 { "eventList", "h248.eventList",
4900 FT_UINT32, BASE_DEC, NULL, 0,
4901 "SecondEventsDescriptor/eventList", HFILL }},
4902 { &hf_h248_eventList_item1,
4903 { "Item", "h248.eventList_item",
4904 FT_NONE, BASE_NONE, NULL, 0,
4905 "SecondEventsDescriptor/eventList/_item", HFILL }},
4906 { &hf_h248_eventAction1,
4907 { "eventAction", "h248.eventAction",
4908 FT_NONE, BASE_NONE, NULL, 0,
4909 "SecondRequestedEvent/eventAction", HFILL }},
4910 { &hf_h248_EventBufferDescriptor_item,
4911 { "Item", "h248.EventBufferDescriptor_item",
4912 FT_NONE, BASE_NONE, NULL, 0,
4913 "EventBufferDescriptor/_item", HFILL }},
4914 { &hf_h248_SignalsDescriptor_item,
4915 { "Item", "h248.SignalsDescriptor_item",
4916 FT_UINT32, BASE_DEC, VALS(SignalRequest_vals), 0,
4917 "SignalsDescriptor/_item", HFILL }},
4919 { "signal", "h248.signal",
4920 FT_NONE, BASE_NONE, NULL, 0,
4921 "SignalRequest/signal", HFILL }},
4922 { &hf_h248_seqSigList1,
4923 { "seqSigList", "h248.seqSigList",
4924 FT_NONE, BASE_NONE, NULL, 0,
4925 "SignalRequest/seqSigList", HFILL }},
4926 { &hf_h248_signalList1,
4927 { "signalList", "h248.signalList",
4928 FT_UINT32, BASE_DEC, NULL, 0,
4929 "SeqSigList/signalList", HFILL }},
4930 { &hf_h248_signalList_item,
4931 { "Item", "h248.signalList_item",
4932 FT_NONE, BASE_NONE, NULL, 0,
4933 "SeqSigList/signalList/_item", HFILL }},
4934 { &hf_h248_signalName1,
4935 { "signalName", "h248.signalName",
4936 FT_BYTES, BASE_HEX, NULL, 0,
4937 "Signal/signalName", HFILL }},
4939 { "sigType", "h248.sigType",
4940 FT_UINT32, BASE_DEC, VALS(SignalType_vals), 0,
4941 "Signal/sigType", HFILL }},
4942 { &hf_h248_duration,
4943 { "duration", "h248.duration",
4944 FT_UINT32, BASE_DEC, NULL, 0,
4945 "Signal/duration", HFILL }},
4946 { &hf_h248_notifyCompletion,
4947 { "notifyCompletion", "h248.notifyCompletion",
4948 FT_BYTES, BASE_HEX, NULL, 0,
4949 "Signal/notifyCompletion", HFILL }},
4950 { &hf_h248_sigParList,
4951 { "sigParList", "h248.sigParList",
4952 FT_UINT32, BASE_DEC, NULL, 0,
4953 "Signal/sigParList", HFILL }},
4954 { &hf_h248_sigParList_item,
4955 { "Item", "h248.sigParList_item",
4956 FT_NONE, BASE_NONE, NULL, 0,
4957 "Signal/sigParList/_item", HFILL }},
4958 { &hf_h248_sigParameterName,
4959 { "sigParameterName", "h248.sigParameterName",
4960 FT_BYTES, BASE_HEX, NULL, 0,
4961 "SigParameter/sigParameterName", HFILL }},
4962 { &hf_h248_extraInfo2,
4963 { "extraInfo", "h248.extraInfo",
4964 FT_UINT32, BASE_DEC, VALS(T_extraInfo2_vals), 0,
4965 "SigParameter/extraInfo", HFILL }},
4967 { "mtl", "h248.mtl",
4968 FT_UINT32, BASE_DEC, NULL, 0,
4969 "ModemDescriptor/mtl", HFILL }},
4970 { &hf_h248_mtl_item,
4971 { "Item", "h248.mtl_item",
4972 FT_UINT32, BASE_DEC, VALS(ModemType_vals), 0,
4973 "ModemDescriptor/mtl/_item", HFILL }},
4975 { "mpl", "h248.mpl",
4976 FT_UINT32, BASE_DEC, NULL, 0,
4977 "ModemDescriptor/mpl", HFILL }},
4978 { &hf_h248_mpl_item,
4979 { "Item", "h248.mpl_item",
4980 FT_NONE, BASE_NONE, NULL, 0,
4981 "ModemDescriptor/mpl/_item", HFILL }},
4982 { &hf_h248_startTimer,
4983 { "startTimer", "h248.startTimer",
4984 FT_UINT32, BASE_DEC, NULL, 0,
4985 "DigitMapValue/startTimer", HFILL }},
4986 { &hf_h248_shortTimer,
4987 { "shortTimer", "h248.shortTimer",
4988 FT_UINT32, BASE_DEC, NULL, 0,
4989 "DigitMapValue/shortTimer", HFILL }},
4990 { &hf_h248_longTimer,
4991 { "longTimer", "h248.longTimer",
4992 FT_UINT32, BASE_DEC, NULL, 0,
4993 "DigitMapValue/longTimer", HFILL }},
4994 { &hf_h248_digitMapBody,
4995 { "digitMapBody", "h248.digitMapBody",
4996 FT_STRING, BASE_NONE, NULL, 0,
4997 "DigitMapValue/digitMapBody", HFILL }},
4998 { &hf_h248_durationTimer,
4999 { "durationTimer", "h248.durationTimer",
5000 FT_UINT32, BASE_DEC, NULL, 0,
5001 "DigitMapValue/durationTimer", HFILL }},
5002 { &hf_h248_serviceChangeMethod,
5003 { "serviceChangeMethod", "h248.serviceChangeMethod",
5004 FT_UINT32, BASE_DEC, VALS(ServiceChangeMethod_vals), 0,
5005 "ServiceChangeParm/serviceChangeMethod", HFILL }},
5006 { &hf_h248_serviceChangeAddress,
5007 { "serviceChangeAddress", "h248.serviceChangeAddress",
5008 FT_UINT32, BASE_DEC, VALS(ServiceChangeAddress_vals), 0,
5010 { &hf_h248_serviceChangeVersion,
5011 { "serviceChangeVersion", "h248.serviceChangeVersion",
5012 FT_UINT32, BASE_DEC, NULL, 0,
5014 { &hf_h248_serviceChangeProfile,
5015 { "serviceChangeProfile", "h248.serviceChangeProfile",
5016 FT_NONE, BASE_NONE, NULL, 0,
5018 { &hf_h248_serviceChangeReason,
5019 { "serviceChangeReason", "h248.serviceChangeReason",
5020 FT_UINT32, BASE_DEC, NULL, 0,
5021 "ServiceChangeParm/serviceChangeReason", HFILL }},
5022 { &hf_h248_serviceChangeDelay,
5023 { "serviceChangeDelay", "h248.serviceChangeDelay",
5024 FT_UINT32, BASE_DEC, NULL, 0,
5025 "ServiceChangeParm/serviceChangeDelay", HFILL }},
5026 { &hf_h248_serviceChangeMgcId,
5027 { "serviceChangeMgcId", "h248.serviceChangeMgcId",
5028 FT_UINT32, BASE_DEC, VALS(MId_vals), 0,
5030 { &hf_h248_timeStamp,
5031 { "timeStamp", "h248.timeStamp",
5032 FT_NONE, BASE_NONE, NULL, 0,
5033 "ServiceChangeParm/timeStamp", HFILL }},
5034 { &hf_h248_serviceChangeInfo,
5035 { "serviceChangeInfo", "h248.serviceChangeInfo",
5036 FT_NONE, BASE_NONE, NULL, 0,
5037 "ServiceChangeParm/serviceChangeInfo", HFILL }},
5038 { &hf_h248_mtpAddress1,
5039 { "mtpAddress", "h248.mtpAddress",
5040 FT_BYTES, BASE_HEX, NULL, 0,
5041 "ServiceChangeAddress/mtpAddress", HFILL }},
5042 { &hf_h248_timestamp,
5043 { "timestamp", "h248.timestamp",
5044 FT_NONE, BASE_NONE, NULL, 0,
5045 "ServiceChangeResParm/timestamp", HFILL }},
5046 { &hf_h248_profileName,
5047 { "profileName", "h248.profileName",
5048 FT_STRING, BASE_NONE, NULL, 0,
5049 "ServiceChangeProfile/profileName", HFILL }},
5050 { &hf_h248_PackagesDescriptor_item,
5051 { "Item", "h248.PackagesDescriptor_item",
5052 FT_NONE, BASE_NONE, NULL, 0,
5053 "PackagesDescriptor/_item", HFILL }},
5054 { &hf_h248_StatisticsDescriptor_item,
5055 { "Item", "h248.StatisticsDescriptor_item",
5056 FT_NONE, BASE_NONE, NULL, 0,
5057 "StatisticsDescriptor/_item", HFILL }},
5058 { &hf_h248_statValue,
5059 { "statValue", "h248.statValue",
5060 FT_UINT32, BASE_DEC, NULL, 0,
5061 "StatisticsParameter/statValue", HFILL }},
5062 { &hf_h248_nonStandardIdentifier,
5063 { "nonStandardIdentifier", "h248.nonStandardIdentifier",
5064 FT_UINT32, BASE_DEC, VALS(NonStandardIdentifier_vals), 0,
5065 "NonStandardData/nonStandardIdentifier", HFILL }},
5067 { "data", "h248.data",
5068 FT_BYTES, BASE_HEX, NULL, 0,
5069 "NonStandardData/data", HFILL }},
5071 { "object", "h248.object",
5072 FT_STRING, BASE_NONE, NULL, 0,
5073 "NonStandardIdentifier/object", HFILL }},
5074 { &hf_h248_h221NonStandard,
5075 { "h221NonStandard", "h248.h221NonStandard",
5076 FT_NONE, BASE_NONE, NULL, 0,
5077 "NonStandardIdentifier/h221NonStandard", HFILL }},
5078 { &hf_h248_experimental,
5079 { "experimental", "h248.experimental",
5080 FT_STRING, BASE_NONE, NULL, 0,
5081 "NonStandardIdentifier/experimental", HFILL }},
5082 { &hf_h248_t35CountryCode1,
5083 { "t35CountryCode1", "h248.t35CountryCode1",
5084 FT_UINT32, BASE_DEC, NULL, 0,
5085 "H221NonStandard/t35CountryCode1", HFILL }},
5086 { &hf_h248_t35CountryCode2,
5087 { "t35CountryCode2", "h248.t35CountryCode2",
5088 FT_UINT32, BASE_DEC, NULL, 0,
5089 "H221NonStandard/t35CountryCode2", HFILL }},
5090 { &hf_h248_t35Extension,
5091 { "t35Extension", "h248.t35Extension",
5092 FT_UINT32, BASE_DEC, NULL, 0,
5093 "H221NonStandard/t35Extension", HFILL }},
5094 { &hf_h248_manufacturerCode,
5095 { "manufacturerCode", "h248.manufacturerCode",
5096 FT_UINT32, BASE_DEC, NULL, 0,
5097 "H221NonStandard/manufacturerCode", HFILL }},
5099 { "date", "h248.date",
5100 FT_STRING, BASE_NONE, NULL, 0,
5101 "TimeNotation/date", HFILL }},
5103 { "time", "h248.time",
5104 FT_STRING, BASE_NONE, NULL, 0,
5105 "TimeNotation/time", HFILL }},
5106 { &hf_h248_Value_item,
5107 { "Item", "h248.Value_item",
5108 FT_BYTES, BASE_HEX, NULL, 0,
5109 "Value/_item", HFILL }},
5110 { &hf_h248_T_auditToken_muxToken,
5111 { "muxToken", "h248.muxToken",
5112 FT_BOOLEAN, 8, NULL, 0x80,
5114 { &hf_h248_T_auditToken_modemToken,
5115 { "modemToken", "h248.modemToken",
5116 FT_BOOLEAN, 8, NULL, 0x40,
5118 { &hf_h248_T_auditToken_mediaToken,
5119 { "mediaToken", "h248.mediaToken",
5120 FT_BOOLEAN, 8, NULL, 0x20,
5122 { &hf_h248_T_auditToken_eventsToken,
5123 { "eventsToken", "h248.eventsToken",
5124 FT_BOOLEAN, 8, NULL, 0x10,
5126 { &hf_h248_T_auditToken_signalsToken,
5127 { "signalsToken", "h248.signalsToken",
5128 FT_BOOLEAN, 8, NULL, 0x08,
5130 { &hf_h248_T_auditToken_digitMapToken,
5131 { "digitMapToken", "h248.digitMapToken",
5132 FT_BOOLEAN, 8, NULL, 0x04,
5134 { &hf_h248_T_auditToken_statsToken,
5135 { "statsToken", "h248.statsToken",
5136 FT_BOOLEAN, 8, NULL, 0x02,
5138 { &hf_h248_T_auditToken_observedEventsToken,
5139 { "observedEventsToken", "h248.observedEventsToken",
5140 FT_BOOLEAN, 8, NULL, 0x01,
5142 { &hf_h248_T_auditToken_packagesToken,
5143 { "packagesToken", "h248.packagesToken",
5144 FT_BOOLEAN, 8, NULL, 0x80,
5146 { &hf_h248_T_auditToken_eventBufferToken,
5147 { "eventBufferToken", "h248.eventBufferToken",
5148 FT_BOOLEAN, 8, NULL, 0x40,
5150 { &hf_h248_NotifyCompletion_onTimeOut,
5151 { "onTimeOut", "h248.onTimeOut",
5152 FT_BOOLEAN, 8, NULL, 0x80,
5154 { &hf_h248_NotifyCompletion_onInterruptByEvent,
5155 { "onInterruptByEvent", "h248.onInterruptByEvent",
5156 FT_BOOLEAN, 8, NULL, 0x40,
5158 { &hf_h248_NotifyCompletion_onInterruptByNewSignalDescr,
5159 { "onInterruptByNewSignalDescr", "h248.onInterruptByNewSignalDescr",
5160 FT_BOOLEAN, 8, NULL, 0x20,
5162 { &hf_h248_NotifyCompletion_otherReason,
5163 { "otherReason", "h248.otherReason",
5164 FT_BOOLEAN, 8, NULL, 0x10,
5167 /*--- End of included file: packet-h248-hfarr.c ---*/
5171 /* List of subtrees */
5172 static gint *ett[] = {
5177 /*--- Included file: packet-h248-ettarr.c ---*/
5179 &ett_h248_MegacoMessage,
5180 &ett_h248_AuthenticationHeader,
5182 &ett_h248_T_messageBody,
5183 &ett_h248_SEQUNCE_OF_Transaction,
5185 &ett_h248_DomainName,
5186 &ett_h248_IP4Address,
5187 &ett_h248_IP6Address,
5188 &ett_h248_Transaction,
5189 &ett_h248_TransactionRequest,
5190 &ett_h248_SEQUNCE_OF_ActionRequest,
5191 &ett_h248_TransactionPending,
5192 &ett_h248_TransactionReply,
5193 &ett_h248_T_transactionResult,
5194 &ett_h248_SEQUNCE_OF_ActionReply,
5195 &ett_h248_TransactionResponseAck,
5196 &ett_h248_TransactionAck,
5197 &ett_h248_ErrorDescriptor,
5198 &ett_h248_ActionRequest,
5199 &ett_h248_SEQUNCE_OF_CommandRequest,
5200 &ett_h248_ActionReply,
5201 &ett_h248_SEQUNCE_OF_CommandReply,
5202 &ett_h248_ContextRequest,
5203 &ett_h248_SEQUNCE_OF_TopologyRequest,
5204 &ett_h248_ContextAttrAuditRequest,
5205 &ett_h248_CommandRequest,
5207 &ett_h248_CommandReply,
5208 &ett_h248_TopologyRequest,
5209 &ett_h248_AmmRequest,
5210 &ett_h248_SEQUNCE_OF_AmmDescriptor,
5211 &ett_h248_AmmDescriptor,
5212 &ett_h248_AmmsReply,
5213 &ett_h248_SubtractRequest,
5214 &ett_h248_AuditRequest,
5215 &ett_h248_AuditReply,
5216 &ett_h248_AuditResult,
5217 &ett_h248_TerminationAudit,
5218 &ett_h248_AuditReturnParameter,
5219 &ett_h248_AuditDescriptor,
5220 &ett_h248_T_auditToken,
5221 &ett_h248_SEQUNCE_OF_IndAuditParameter,
5222 &ett_h248_IndAuditParameter,
5223 &ett_h248_IndAudMediaDescriptor,
5224 &ett_h248_T_streams,
5225 &ett_h248_SEQUNCE_OF_IndAudStreamDescriptor,
5226 &ett_h248_IndAudStreamDescriptor,
5227 &ett_h248_IndAudStreamParms,
5228 &ett_h248_IndAudLocalControlDescriptor,
5229 &ett_h248_SEQUNCE_OF_IndAudPropertyParm,
5230 &ett_h248_IndAudPropertyParm,
5231 &ett_h248_IndAudLocalRemoteDescriptor,
5232 &ett_h248_IndAudPropertyGroup,
5233 &ett_h248_IndAudTerminationStateDescriptor,
5234 &ett_h248_IndAudEventsDescriptor,
5235 &ett_h248_IndAudEventBufferDescriptor,
5236 &ett_h248_IndAudSignalsDescriptor,
5237 &ett_h248_IndAudSeqSigList,
5238 &ett_h248_IndAudSignal,
5239 &ett_h248_IndAudDigitMapDescriptor,
5240 &ett_h248_IndAudStatisticsDescriptor,
5241 &ett_h248_IndAudPackagesDescriptor,
5242 &ett_h248_NotifyRequest,
5243 &ett_h248_NotifyReply,
5244 &ett_h248_ObservedEventsDescriptor,
5245 &ett_h248_SEQUNCE_OF_ObservedEvent,
5246 &ett_h248_ObservedEvent,
5247 &ett_h248_SEQUNCE_OF_EventParameter,
5248 &ett_h248_EventParameter,
5249 &ett_h248_T_extraInfo,
5250 &ett_h248_ServiceChangeRequest,
5251 &ett_h248_ServiceChangeReply,
5252 &ett_h248_ServiceChangeResult,
5253 &ett_h248_TerminationID,
5254 &ett_h248_SEQUNCE_OF_WildcardField,
5255 &ett_h248_TerminationIDList,
5256 &ett_h248_MediaDescriptor,
5257 &ett_h248_T_streams1,
5258 &ett_h248_SEQUNCE_OF_StreamDescriptor,
5259 &ett_h248_StreamDescriptor,
5260 &ett_h248_StreamParms,
5261 &ett_h248_LocalControlDescriptor,
5262 &ett_h248_SEQUNCE_OF_PropertyParm,
5263 &ett_h248_PropertyParm,
5264 &ett_h248_SEQUNCE_OF_PropertyID,
5265 &ett_h248_T_extraInfo1,
5266 &ett_h248_LocalRemoteDescriptor,
5267 &ett_h248_SEQUNCE_OF_PropertyGroup,
5268 &ett_h248_PropertyGroup,
5269 &ett_h248_TerminationStateDescriptor,
5270 &ett_h248_MuxDescriptor,
5271 &ett_h248_SEQUNCE_OF_TerminationID,
5272 &ett_h248_EventsDescriptor,
5273 &ett_h248_SEQUNCE_OF_RequestedEvent,
5274 &ett_h248_RequestedEvent,
5275 &ett_h248_RequestedActions,
5277 &ett_h248_SecondEventsDescriptor,
5278 &ett_h248_SEQUNCE_OF_SecondRequestedEvent,
5279 &ett_h248_SecondRequestedEvent,
5280 &ett_h248_SecondRequestedActions,
5281 &ett_h248_EventBufferDescriptor,
5282 &ett_h248_EventSpec,
5283 &ett_h248_SignalsDescriptor,
5284 &ett_h248_SignalRequest,
5285 &ett_h248_SeqSigList,
5286 &ett_h248_SEQUNCE_OF_Signal,
5288 &ett_h248_SEQUNCE_OF_SigParameter,
5289 &ett_h248_NotifyCompletion,
5290 &ett_h248_SigParameter,
5291 &ett_h248_T_extraInfo2,
5292 &ett_h248_ModemDescriptor,
5293 &ett_h248_SEQUNCE_OF_ModemType,
5294 &ett_h248_DigitMapDescriptor,
5295 &ett_h248_DigitMapValue,
5296 &ett_h248_ServiceChangeParm,
5297 &ett_h248_ServiceChangeAddress,
5298 &ett_h248_ServiceChangeResParm,
5299 &ett_h248_ServiceChangeProfile,
5300 &ett_h248_PackagesDescriptor,
5301 &ett_h248_PackagesItem,
5302 &ett_h248_StatisticsDescriptor,
5303 &ett_h248_StatisticsParameter,
5304 &ett_h248_NonStandardData,
5305 &ett_h248_NonStandardIdentifier,
5306 &ett_h248_H221NonStandard,
5307 &ett_h248_TimeNotation,
5310 /*--- End of included file: packet-h248-ettarr.c ---*/
5314 /* Register protocol */
5315 proto_h248 = proto_register_protocol(PNAME, PSNAME, PFNAME);
5316 register_dissector("h248", dissect_h248, proto_h248);
5318 /* Register fields and subtrees */
5319 proto_register_field_array(proto_h248, hf, array_length(hf));
5320 proto_register_subtree_array(ett, array_length(ett));
5322 /* register a dissector table packages can attach to */
5323 h248_package_bin_dissector_table = register_dissector_table("h248.package.bin", "Binary H.248 Package Dissectors", FT_UINT16,BASE_HEX);
5328 /*--- proto_reg_handoff_h248 -------------------------------------------*/
5329 void proto_reg_handoff_h248(void) {
5330 dissector_handle_t h248_handle;
5332 h248_handle = find_dissector("h248");
5334 * Handle the dissection of Media stream properties H.248.1 Annex C in this dissector
5337 dissector_add("m3ua.protocol_data_si", GATEWAY_CONTROL_PROTOCOL_USER_ID, h248_handle);