1 /* Do not modify this file. */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler */
4 /* ../../tools/asn2wrs.py -b -p h248 -c h248.cnf -s packet-h248-template h248v3.asn */
6 /* Input file: packet-h248-template.c */
8 #line 1 "packet-h248-template.c"
10 * Routines for H.248/MEGACO packet dissection
12 * Ronnie Sahlberg 2004
14 * Luis Ontanon 2005 - Context and Transaction Tracing
18 * Wireshark - Network traffic analyzer
19 * By Gerald Combs <gerald@wireshark.org>
20 * Copyright 1998 Gerald Combs
22 * This program is free software; you can redistribute it and/or
23 * modify it under the terms of the GNU General Public License
24 * as published by the Free Software Foundation; either version 2
25 * of the License, or (at your option) any later version.
27 * This program is distributed in the hope that it will be useful,
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 * GNU General Public License for more details.
32 * You should have received a copy of the GNU General Public License
33 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
36 #include "packet-h248.h"
38 #include "packet-tpkt.h"
40 #define PNAME "H.248 MEGACO"
44 #define GATEWAY_CONTROL_PROTOCOL_USER_ID 14
47 /* Initialize the protocol and registered fields */
48 static int proto_h248 = -1;
49 static int hf_h248_mtpaddress_ni = -1;
50 static int hf_h248_mtpaddress_pc = -1;
51 static int hf_h248_pkg_name = -1;
52 static int hf_248_pkg_param = -1;
53 static int hf_h248_event_name = -1;
54 static int hf_h248_signal_name = -1;
55 static int hf_h248_signal_code = -1;
56 static int hf_h248_event_code = -1;
57 static int hf_h248_pkg_bcp_BNCChar_PDU = -1;
61 static int hf_h248_context_id = -1;
62 static int hf_h248_error_code = -1;
63 static int hf_h248_term_wild_type = -1;
64 static int hf_h248_term_wild_level = -1;
65 static int hf_h248_term_wild_position = -1;
67 static int hf_h248_no_pkg = -1;
68 static int hf_h248_no_sig = -1;
69 static int hf_h248_no_evt = -1;
70 static int hf_h248_param = -1;
72 static int hf_h248_serviceChangeReasonStr = -1;
75 /*--- Included file: packet-h248-hf.c ---*/
76 #line 1 "packet-h248-hf.c"
77 static int hf_h248_authHeader = -1; /* AuthenticationHeader */
78 static int hf_h248_mess = -1; /* Message */
79 static int hf_h248_secParmIndex = -1; /* SecurityParmIndex */
80 static int hf_h248_seqNum = -1; /* SequenceNum */
81 static int hf_h248_ad = -1; /* AuthData */
82 static int hf_h248_version = -1; /* INTEGER_0_99 */
83 static int hf_h248_mId = -1; /* MId */
84 static int hf_h248_messageBody = -1; /* T_messageBody */
85 static int hf_h248_messageError = -1; /* ErrorDescriptor */
86 static int hf_h248_transactions = -1; /* SEQUENCE_OF_Transaction */
87 static int hf_h248_transactions_item = -1; /* Transaction */
88 static int hf_h248_ip4Address = -1; /* IP4Address */
89 static int hf_h248_ip6Address = -1; /* IP6Address */
90 static int hf_h248_domainName = -1; /* DomainName */
91 static int hf_h248_deviceName = -1; /* PathName */
92 static int hf_h248_mtpAddress = -1; /* MtpAddress */
93 static int hf_h248_domName = -1; /* IA5String */
94 static int hf_h248_portNumber = -1; /* INTEGER_0_65535 */
95 static int hf_h248_iP4Address = -1; /* OCTET_STRING_SIZE_4 */
96 static int hf_h248_iP6Address = -1; /* OCTET_STRING_SIZE_16 */
97 static int hf_h248_transactionRequest = -1; /* TransactionRequest */
98 static int hf_h248_transactionPending = -1; /* TransactionPending */
99 static int hf_h248_transactionReply = -1; /* TransactionReply */
100 static int hf_h248_transactionResponseAck = -1; /* TransactionResponseAck */
101 static int hf_h248_segmentReply = -1; /* SegmentReply */
102 static int hf_h248_transactionId = -1; /* T_transactionId */
103 static int hf_h248_actions = -1; /* SEQUENCE_OF_ActionRequest */
104 static int hf_h248_actions_item = -1; /* ActionRequest */
105 static int hf_h248_tpend_transactionId = -1; /* T_tpend_transactionId */
106 static int hf_h248_trep_transactionId = -1; /* T_trep_transactionId */
107 static int hf_h248_immAckRequired = -1; /* NULL */
108 static int hf_h248_transactionResult = -1; /* T_transactionResult */
109 static int hf_h248_transactionError = -1; /* ErrorDescriptor */
110 static int hf_h248_actionReplies = -1; /* SEQUENCE_OF_ActionReply */
111 static int hf_h248_actionReplies_item = -1; /* ActionReply */
112 static int hf_h248_segmentNumber = -1; /* SegmentNumber */
113 static int hf_h248_segmentationComplete = -1; /* NULL */
114 static int hf_h248_seg_rep_transactionId = -1; /* T_seg_rep_transactionId */
115 static int hf_h248_TransactionResponseAck_item = -1; /* TransactionAck */
116 static int hf_h248_firstAck = -1; /* TransactionId */
117 static int hf_h248_lastAck = -1; /* TransactionId */
118 static int hf_h248_errorCode = -1; /* T_errorCode */
119 static int hf_h248_errorText = -1; /* ErrorText */
120 static int hf_h248_contextId = -1; /* ContextId */
121 static int hf_h248_contextRequest = -1; /* ContextRequest */
122 static int hf_h248_contextAttrAuditReq = -1; /* T_contextAttrAuditReq */
123 static int hf_h248_commandRequests = -1; /* SEQUENCE_OF_CommandRequest */
124 static int hf_h248_commandRequests_item = -1; /* CommandRequest */
125 static int hf_h248_errorDescriptor = -1; /* ErrorDescriptor */
126 static int hf_h248_contextReply = -1; /* ContextRequest */
127 static int hf_h248_commandReply = -1; /* SEQUENCE_OF_CommandReply */
128 static int hf_h248_commandReply_item = -1; /* CommandReply */
129 static int hf_h248_priority = -1; /* INTEGER_0_15 */
130 static int hf_h248_emergency = -1; /* BOOLEAN */
131 static int hf_h248_topologyReq = -1; /* T_topologyReq */
132 static int hf_h248_topologyReq_item = -1; /* TopologyRequest */
133 static int hf_h248_iepscallind_BOOL = -1; /* Iepscallind_BOOL */
134 static int hf_h248_contextProp = -1; /* SEQUENCE_OF_PropertyParm */
135 static int hf_h248_contextProp_item = -1; /* PropertyParm */
136 static int hf_h248_contextList = -1; /* SEQUENCE_OF_ContextIDinList */
137 static int hf_h248_contextList_item = -1; /* ContextIDinList */
138 static int hf_h248_topology = -1; /* NULL */
139 static int hf_h248_cAAREmergency = -1; /* NULL */
140 static int hf_h248_cAARPriority = -1; /* NULL */
141 static int hf_h248_iepscallind = -1; /* NULL */
142 static int hf_h248_contextPropAud = -1; /* SEQUENCE_OF_IndAudPropertyParm */
143 static int hf_h248_contextPropAud_item = -1; /* IndAudPropertyParm */
144 static int hf_h248_selectpriority = -1; /* INTEGER_0_15 */
145 static int hf_h248_selectemergency = -1; /* BOOLEAN */
146 static int hf_h248_selectiepscallind = -1; /* BOOLEAN */
147 static int hf_h248_selectLogic = -1; /* SelectLogic */
148 static int hf_h248_andAUDITSelect = -1; /* NULL */
149 static int hf_h248_orAUDITSelect = -1; /* NULL */
150 static int hf_h248_command = -1; /* Command */
151 static int hf_h248_optional = -1; /* NULL */
152 static int hf_h248_wildcardReturn = -1; /* NULL */
153 static int hf_h248_addReq = -1; /* T_addReq */
154 static int hf_h248_moveReq = -1; /* T_moveReq */
155 static int hf_h248_modReq = -1; /* T_modReq */
156 static int hf_h248_subtractReq = -1; /* T_subtractReq */
157 static int hf_h248_auditCapRequest = -1; /* T_auditCapRequest */
158 static int hf_h248_auditValueRequest = -1; /* T_auditValueRequest */
159 static int hf_h248_notifyReq = -1; /* T_notifyReq */
160 static int hf_h248_serviceChangeReq = -1; /* ServiceChangeRequest */
161 static int hf_h248_addReply = -1; /* T_addReply */
162 static int hf_h248_moveReply = -1; /* T_moveReply */
163 static int hf_h248_modReply = -1; /* T_modReply */
164 static int hf_h248_subtractReply = -1; /* T_subtractReply */
165 static int hf_h248_auditCapReply = -1; /* T_auditCapReply */
166 static int hf_h248_auditValueReply = -1; /* T_auditValueReply */
167 static int hf_h248_notifyReply = -1; /* T_notifyReply */
168 static int hf_h248_serviceChangeReply = -1; /* ServiceChangeReply */
169 static int hf_h248_terminationFrom = -1; /* TerminationID */
170 static int hf_h248_terminationTo = -1; /* TerminationID */
171 static int hf_h248_topologyDirection = -1; /* T_topologyDirection */
172 static int hf_h248_streamID = -1; /* StreamID */
173 static int hf_h248_topologyDirectionExtension = -1; /* T_topologyDirectionExtension */
174 static int hf_h248_terminationIDList = -1; /* TerminationIDList */
175 static int hf_h248_descriptors = -1; /* SEQUENCE_OF_AmmDescriptor */
176 static int hf_h248_descriptors_item = -1; /* AmmDescriptor */
177 static int hf_h248_mediaDescriptor = -1; /* MediaDescriptor */
178 static int hf_h248_modemDescriptor = -1; /* ModemDescriptor */
179 static int hf_h248_muxDescriptor = -1; /* MuxDescriptor */
180 static int hf_h248_eventsDescriptor = -1; /* EventsDescriptor */
181 static int hf_h248_eventBufferDescriptor = -1; /* EventBufferDescriptor */
182 static int hf_h248_signalsDescriptor = -1; /* SignalsDescriptor */
183 static int hf_h248_digitMapDescriptor = -1; /* DigitMapDescriptor */
184 static int hf_h248_auditDescriptor = -1; /* AuditDescriptor */
185 static int hf_h248_statisticsDescriptor = -1; /* StatisticsDescriptor */
186 static int hf_h248_terminationAudit = -1; /* TerminationAudit */
187 static int hf_h248_terminationID = -1; /* TerminationID */
188 static int hf_h248_contextAuditResult = -1; /* TerminationIDList */
189 static int hf_h248_error = -1; /* ErrorDescriptor */
190 static int hf_h248_auditResult = -1; /* AuditResult */
191 static int hf_h248_auditResultTermList = -1; /* TermListAuditResult */
192 static int hf_h248_terminationAuditResult = -1; /* TerminationAudit */
193 static int hf_h248_TerminationAudit_item = -1; /* AuditReturnParameter */
194 static int hf_h248_observedEventsDescriptor = -1; /* ObservedEventsDescriptor */
195 static int hf_h248_packagesDescriptor = -1; /* PackagesDescriptor */
196 static int hf_h248_emptyDescriptors = -1; /* AuditDescriptor */
197 static int hf_h248_auditToken = -1; /* T_auditToken */
198 static int hf_h248_auditPropertyToken = -1; /* SEQUENCE_OF_IndAuditParameter */
199 static int hf_h248_auditPropertyToken_item = -1; /* IndAuditParameter */
200 static int hf_h248_indaudmediaDescriptor = -1; /* IndAudMediaDescriptor */
201 static int hf_h248_indaudeventsDescriptor = -1; /* IndAudEventsDescriptor */
202 static int hf_h248_indaudeventBufferDescriptor = -1; /* IndAudEventBufferDescriptor */
203 static int hf_h248_indaudsignalsDescriptor = -1; /* IndAudSignalsDescriptor */
204 static int hf_h248_indauddigitMapDescriptor = -1; /* IndAudDigitMapDescriptor */
205 static int hf_h248_indaudstatisticsDescriptor = -1; /* IndAudStatisticsDescriptor */
206 static int hf_h248_indaudpackagesDescriptor = -1; /* IndAudPackagesDescriptor */
207 static int hf_h248_indAudTerminationStateDescriptor = -1; /* IndAudTerminationStateDescriptor */
208 static int hf_h248_indAudMediaDescriptorStreams = -1; /* IndAudMediaDescriptorStreams */
209 static int hf_h248_oneStream = -1; /* IndAudStreamParms */
210 static int hf_h248_multiStream = -1; /* SEQUENCE_OF_IndAudStreamDescriptor */
211 static int hf_h248_multiStream_item = -1; /* IndAudStreamDescriptor */
212 static int hf_h248_indAudStreamParms = -1; /* IndAudStreamParms */
213 static int hf_h248_iASPLocalControlDescriptor = -1; /* IndAudLocalControlDescriptor */
214 static int hf_h248_iASPLocalDescriptor = -1; /* IndAudLocalRemoteDescriptor */
215 static int hf_h248_iASPRemoteDescriptor = -1; /* IndAudLocalRemoteDescriptor */
216 static int hf_h248_statisticsDescriptor_01 = -1; /* IndAudStatisticsDescriptor */
217 static int hf_h248_iALCDStreamMode = -1; /* NULL */
218 static int hf_h248_iALCDReserveValue = -1; /* NULL */
219 static int hf_h248_iALCDReserveGroup = -1; /* NULL */
220 static int hf_h248_indAudPropertyParms = -1; /* SEQUENCE_OF_IndAudPropertyParm */
221 static int hf_h248_indAudPropertyParms_item = -1; /* IndAudPropertyParm */
222 static int hf_h248_streamModeSel = -1; /* StreamMode */
223 static int hf_h248_name = -1; /* PkgdName */
224 static int hf_h248_propertyParms = -1; /* PropertyParm */
225 static int hf_h248_propGroupID = -1; /* INTEGER_0_65535 */
226 static int hf_h248_iAPropertyGroup = -1; /* IndAudPropertyGroup */
227 static int hf_h248_IndAudPropertyGroup_item = -1; /* IndAudPropertyParm */
228 static int hf_h248_eventBufferControl = -1; /* NULL */
229 static int hf_h248_iATSDServiceState = -1; /* NULL */
230 static int hf_h248_serviceStateSel = -1; /* ServiceState */
231 static int hf_h248_requestID = -1; /* RequestID */
232 static int hf_h248_iAEDPkgdName = -1; /* PkgdName */
233 static int hf_h248_iAEBDEventName = -1; /* PkgdName */
234 static int hf_h248_indAudSignal = -1; /* IndAudSignal */
235 static int hf_h248_indAudSeqSigList = -1; /* IndAudSeqSigList */
236 static int hf_h248_id = -1; /* INTEGER_0_65535 */
237 static int hf_h248_iASignalList = -1; /* IndAudSignal */
238 static int hf_h248_iASignalName = -1; /* PkgdName */
239 static int hf_h248_signalRequestID = -1; /* RequestID */
240 static int hf_h248_digitMapName = -1; /* DigitMapName */
241 static int hf_h248_iAStatName = -1; /* PkgdName */
242 static int hf_h248_packageName = -1; /* Name */
243 static int hf_h248_packageVersion = -1; /* INTEGER_0_99 */
244 static int hf_h248_requestId = -1; /* RequestID */
245 static int hf_h248_observedEventLst = -1; /* SEQUENCE_OF_ObservedEvent */
246 static int hf_h248_observedEventLst_item = -1; /* ObservedEvent */
247 static int hf_h248_eventName = -1; /* EventName */
248 static int hf_h248_eventParList = -1; /* SEQUENCE_OF_EventParameter */
249 static int hf_h248_eventParList_item = -1; /* EventParameter */
250 static int hf_h248_timeNotation = -1; /* TimeNotation */
251 static int hf_h248_eventParameterName = -1; /* EventParameterName */
252 static int hf_h248_eventParamValue = -1; /* EventParamValues */
253 static int hf_h248_eventPar_extraInfo = -1; /* EventPar_extraInfo */
254 static int hf_h248_relation = -1; /* Relation */
255 static int hf_h248_range = -1; /* BOOLEAN */
256 static int hf_h248_sublist = -1; /* BOOLEAN */
257 static int hf_h248_EventParamValues_item = -1; /* EventParamValue */
258 static int hf_h248_serviceChangeParms = -1; /* ServiceChangeParm */
259 static int hf_h248_serviceChangeResult = -1; /* ServiceChangeResult */
260 static int hf_h248_serviceChangeResParms = -1; /* ServiceChangeResParm */
261 static int hf_h248_wildcard = -1; /* SEQUENCE_OF_WildcardField */
262 static int hf_h248_wildcard_item = -1; /* WildcardField */
263 static int hf_h248_terminationId = -1; /* T_terminationId */
264 static int hf_h248_TerminationIDList_item = -1; /* TerminationID */
265 static int hf_h248_termStateDescr = -1; /* TerminationStateDescriptor */
266 static int hf_h248_streams = -1; /* T_streams */
267 static int hf_h248_mediaDescriptorOneStream = -1; /* StreamParms */
268 static int hf_h248_mediaDescriptorMultiStream = -1; /* SEQUENCE_OF_StreamDescriptor */
269 static int hf_h248_mediaDescriptorMultiStream_item = -1; /* StreamDescriptor */
270 static int hf_h248_streamParms = -1; /* StreamParms */
271 static int hf_h248_localControlDescriptor = -1; /* LocalControlDescriptor */
272 static int hf_h248_localDescriptor = -1; /* LocalRemoteDescriptor */
273 static int hf_h248_remoteDescriptor = -1; /* LocalRemoteDescriptor */
274 static int hf_h248_streamMode = -1; /* StreamMode */
275 static int hf_h248_reserveValue = -1; /* BOOLEAN */
276 static int hf_h248_reserveGroup = -1; /* BOOLEAN */
277 static int hf_h248_propertyParms_01 = -1; /* SEQUENCE_OF_PropertyParm */
278 static int hf_h248_propertyParms_item = -1; /* PropertyParm */
279 static int hf_h248_propertyName = -1; /* PropertyName */
280 static int hf_h248_propertyParamValue = -1; /* SEQUENCE_OF_PropertyID */
281 static int hf_h248_propertyParamValue_item = -1; /* PropertyID */
282 static int hf_h248_propParm_extraInfo = -1; /* PropParm_extraInfo */
283 static int hf_h248_propGrps = -1; /* SEQUENCE_OF_PropertyGroup */
284 static int hf_h248_propGrps_item = -1; /* PropertyGroup */
285 static int hf_h248_PropertyGroup_item = -1; /* PropertyParm */
286 static int hf_h248_tSEventBufferControl = -1; /* EventBufferControl */
287 static int hf_h248_serviceState = -1; /* ServiceState */
288 static int hf_h248_muxType = -1; /* MuxType */
289 static int hf_h248_termList = -1; /* SEQUENCE_OF_TerminationID */
290 static int hf_h248_termList_item = -1; /* TerminationID */
291 static int hf_h248_nonStandardData = -1; /* NonStandardData */
292 static int hf_h248_eventList = -1; /* SEQUENCE_OF_RequestedEvent */
293 static int hf_h248_eventList_item = -1; /* RequestedEvent */
294 static int hf_h248_eventAction = -1; /* RequestedActions */
295 static int hf_h248_evParList = -1; /* SEQUENCE_OF_EventParameter */
296 static int hf_h248_evParList_item = -1; /* EventParameter */
297 static int hf_h248_secondEvent = -1; /* SecondEventsDescriptor */
298 static int hf_h248_notifyImmediate = -1; /* NULL */
299 static int hf_h248_notifyRegulated = -1; /* RegulatedEmbeddedDescriptor */
300 static int hf_h248_neverNotify = -1; /* NULL */
301 static int hf_h248_keepActive = -1; /* BOOLEAN */
302 static int hf_h248_eventDM = -1; /* EventDM */
303 static int hf_h248_notifyBehaviour = -1; /* NotifyBehaviour */
304 static int hf_h248_resetEventsDescriptor = -1; /* NULL */
305 static int hf_h248_digitMapValue = -1; /* DigitMapValue */
306 static int hf_h248_secondaryEventList = -1; /* SEQUENCE_OF_SecondRequestedEvent */
307 static int hf_h248_secondaryEventList_item = -1; /* SecondRequestedEvent */
308 static int hf_h248_pkgdName = -1; /* PkgdName */
309 static int hf_h248_secondaryEventAction = -1; /* SecondRequestedActions */
310 static int hf_h248_EventBufferDescriptor_item = -1; /* EventSpec */
311 static int hf_h248_SignalsDescriptor_item = -1; /* SignalRequest */
312 static int hf_h248_signal = -1; /* Signal */
313 static int hf_h248_seqSigList = -1; /* SeqSigList */
314 static int hf_h248_signalList = -1; /* SEQUENCE_OF_Signal */
315 static int hf_h248_signalList_item = -1; /* Signal */
316 static int hf_h248_signalName = -1; /* SignalName */
317 static int hf_h248_sigType = -1; /* SignalType */
318 static int hf_h248_duration = -1; /* INTEGER_0_65535 */
319 static int hf_h248_notifyCompletion = -1; /* NotifyCompletion */
320 static int hf_h248_sigParList = -1; /* SEQUENCE_OF_SigParameter */
321 static int hf_h248_sigParList_item = -1; /* SigParameter */
322 static int hf_h248_direction = -1; /* SignalDirection */
323 static int hf_h248_intersigDelay = -1; /* INTEGER_0_65535 */
324 static int hf_h248_sigParameterName = -1; /* SigParameterName */
325 static int hf_h248_value = -1; /* SigParamValues */
326 static int hf_h248_extraInfo = -1; /* T_extraInfo */
327 static int hf_h248_SigParamValues_item = -1; /* SigParamValue */
328 static int hf_h248_mtl = -1; /* SEQUENCE_OF_ModemType */
329 static int hf_h248_mtl_item = -1; /* ModemType */
330 static int hf_h248_mpl = -1; /* SEQUENCE_OF_PropertyParm */
331 static int hf_h248_mpl_item = -1; /* PropertyParm */
332 static int hf_h248_startTimer = -1; /* INTEGER_0_99 */
333 static int hf_h248_shortTimer = -1; /* INTEGER_0_99 */
334 static int hf_h248_longTimer = -1; /* INTEGER_0_99 */
335 static int hf_h248_digitMapBody = -1; /* IA5String */
336 static int hf_h248_durationTimer = -1; /* INTEGER_0_99 */
337 static int hf_h248_serviceChangeMethod = -1; /* ServiceChangeMethod */
338 static int hf_h248_serviceChangeAddress = -1; /* ServiceChangeAddress */
339 static int hf_h248_serviceChangeVersion = -1; /* INTEGER_0_99 */
340 static int hf_h248_serviceChangeProfile = -1; /* ServiceChangeProfile */
341 static int hf_h248_serviceChangeReason = -1; /* SCreasonValue */
342 static int hf_h248_serviceChangeDelay = -1; /* INTEGER_0_4294967295 */
343 static int hf_h248_serviceChangeMgcId = -1; /* MId */
344 static int hf_h248_timeStamp = -1; /* TimeNotation */
345 static int hf_h248_serviceChangeInfo = -1; /* AuditDescriptor */
346 static int hf_h248_serviceChangeIncompleteFlag = -1; /* NULL */
347 static int hf_h248_SCreasonValue_item = -1; /* SCreasonValueOctetStr */
348 static int hf_h248_timestamp = -1; /* TimeNotation */
349 static int hf_h248_profileName = -1; /* IA5String_SIZE_1_67 */
350 static int hf_h248_PackagesDescriptor_item = -1; /* PackagesItem */
351 static int hf_h248_StatisticsDescriptor_item = -1; /* StatisticsParameter */
352 static int hf_h248_statName = -1; /* StatName */
353 static int hf_h248_statValue = -1; /* StatValue */
354 static int hf_h248_nonStandardIdentifier = -1; /* NonStandardIdentifier */
355 static int hf_h248_data = -1; /* OCTET_STRING */
356 static int hf_h248_object = -1; /* OBJECT_IDENTIFIER */
357 static int hf_h248_h221NonStandard = -1; /* H221NonStandard */
358 static int hf_h248_experimental = -1; /* IA5String_SIZE_8 */
359 static int hf_h248_t35CountryCode1 = -1; /* INTEGER_0_255 */
360 static int hf_h248_t35CountryCode2 = -1; /* INTEGER_0_255 */
361 static int hf_h248_t35Extension = -1; /* INTEGER_0_255 */
362 static int hf_h248_manufacturerCode = -1; /* INTEGER_0_65535 */
363 static int hf_h248_date = -1; /* IA5String_SIZE_8 */
364 static int hf_h248_time = -1; /* IA5String_SIZE_8 */
365 static int hf_h248_Value_item = -1; /* OCTET_STRING */
367 static int hf_h248_T_auditToken_muxToken = -1;
368 static int hf_h248_T_auditToken_modemToken = -1;
369 static int hf_h248_T_auditToken_mediaToken = -1;
370 static int hf_h248_T_auditToken_eventsToken = -1;
371 static int hf_h248_T_auditToken_signalsToken = -1;
372 static int hf_h248_T_auditToken_digitMapToken = -1;
373 static int hf_h248_T_auditToken_statsToken = -1;
374 static int hf_h248_T_auditToken_observedEventsToken = -1;
375 static int hf_h248_T_auditToken_packagesToken = -1;
376 static int hf_h248_T_auditToken_eventBufferToken = -1;
377 static int hf_h248_NotifyCompletion_onTimeOut = -1;
378 static int hf_h248_NotifyCompletion_onInterruptByEvent = -1;
379 static int hf_h248_NotifyCompletion_onInterruptByNewSignalDescr = -1;
380 static int hf_h248_NotifyCompletion_otherReason = -1;
381 static int hf_h248_NotifyCompletion_onIteration = -1;
383 /*--- End of included file: packet-h248-hf.c ---*/
384 #line 67 "packet-h248-template.c"
386 /* Initialize the subtree pointers */
387 static gint ett_h248 = -1;
388 static gint ett_mtpaddress = -1;
389 static gint ett_packagename = -1;
390 static gint ett_codec = -1;
391 static gint ett_wildcard = -1;
393 static gint ett_h248_no_pkg = -1;
394 static gint ett_h248_no_sig = -1;
395 static gint ett_h248_no_evt = -1;
397 static int h248_tap = -1;
399 static gcp_hf_ett_t h248_arrel = {{-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1}};
402 /*--- Included file: packet-h248-ett.c ---*/
403 #line 1 "packet-h248-ett.c"
404 static gint ett_h248_MegacoMessage = -1;
405 static gint ett_h248_AuthenticationHeader = -1;
406 static gint ett_h248_Message = -1;
407 static gint ett_h248_T_messageBody = -1;
408 static gint ett_h248_SEQUENCE_OF_Transaction = -1;
409 static gint ett_h248_MId = -1;
410 static gint ett_h248_DomainName = -1;
411 static gint ett_h248_IP4Address = -1;
412 static gint ett_h248_IP6Address = -1;
413 static gint ett_h248_Transaction = -1;
414 static gint ett_h248_TransactionRequest = -1;
415 static gint ett_h248_SEQUENCE_OF_ActionRequest = -1;
416 static gint ett_h248_TransactionPending = -1;
417 static gint ett_h248_TransactionReply = -1;
418 static gint ett_h248_T_transactionResult = -1;
419 static gint ett_h248_SEQUENCE_OF_ActionReply = -1;
420 static gint ett_h248_SegmentReply = -1;
421 static gint ett_h248_TransactionResponseAck = -1;
422 static gint ett_h248_TransactionAck = -1;
423 static gint ett_h248_ErrorDescriptor = -1;
424 static gint ett_h248_ActionRequest = -1;
425 static gint ett_h248_SEQUENCE_OF_CommandRequest = -1;
426 static gint ett_h248_ActionReply = -1;
427 static gint ett_h248_SEQUENCE_OF_CommandReply = -1;
428 static gint ett_h248_ContextRequest = -1;
429 static gint ett_h248_T_topologyReq = -1;
430 static gint ett_h248_SEQUENCE_OF_PropertyParm = -1;
431 static gint ett_h248_SEQUENCE_OF_ContextIDinList = -1;
432 static gint ett_h248_ContextAttrAuditRequest = -1;
433 static gint ett_h248_SEQUENCE_OF_IndAudPropertyParm = -1;
434 static gint ett_h248_SelectLogic = -1;
435 static gint ett_h248_CommandRequest = -1;
436 static gint ett_h248_Command = -1;
437 static gint ett_h248_CommandReply = -1;
438 static gint ett_h248_TopologyRequest = -1;
439 static gint ett_h248_AmmRequest = -1;
440 static gint ett_h248_SEQUENCE_OF_AmmDescriptor = -1;
441 static gint ett_h248_AmmDescriptor = -1;
442 static gint ett_h248_AmmsReply = -1;
443 static gint ett_h248_SubtractRequest = -1;
444 static gint ett_h248_AuditRequest = -1;
445 static gint ett_h248_AuditReply = -1;
446 static gint ett_h248_AuditResult = -1;
447 static gint ett_h248_TermListAuditResult = -1;
448 static gint ett_h248_TerminationAudit = -1;
449 static gint ett_h248_AuditReturnParameter = -1;
450 static gint ett_h248_AuditDescriptor = -1;
451 static gint ett_h248_T_auditToken = -1;
452 static gint ett_h248_SEQUENCE_OF_IndAuditParameter = -1;
453 static gint ett_h248_IndAuditParameter = -1;
454 static gint ett_h248_IndAudMediaDescriptor = -1;
455 static gint ett_h248_IndAudMediaDescriptorStreams = -1;
456 static gint ett_h248_SEQUENCE_OF_IndAudStreamDescriptor = -1;
457 static gint ett_h248_IndAudStreamDescriptor = -1;
458 static gint ett_h248_IndAudStreamParms = -1;
459 static gint ett_h248_IndAudLocalControlDescriptor = -1;
460 static gint ett_h248_IndAudPropertyParm = -1;
461 static gint ett_h248_IndAudLocalRemoteDescriptor = -1;
462 static gint ett_h248_IndAudPropertyGroup = -1;
463 static gint ett_h248_IndAudTerminationStateDescriptor = -1;
464 static gint ett_h248_IndAudEventsDescriptor = -1;
465 static gint ett_h248_IndAudEventBufferDescriptor = -1;
466 static gint ett_h248_IndAudSignalsDescriptor = -1;
467 static gint ett_h248_IndAudSeqSigList = -1;
468 static gint ett_h248_IndAudSignal = -1;
469 static gint ett_h248_IndAudDigitMapDescriptor = -1;
470 static gint ett_h248_IndAudStatisticsDescriptor = -1;
471 static gint ett_h248_IndAudPackagesDescriptor = -1;
472 static gint ett_h248_NotifyRequest = -1;
473 static gint ett_h248_NotifyReply = -1;
474 static gint ett_h248_ObservedEventsDescriptor = -1;
475 static gint ett_h248_SEQUENCE_OF_ObservedEvent = -1;
476 static gint ett_h248_ObservedEvent = -1;
477 static gint ett_h248_SEQUENCE_OF_EventParameter = -1;
478 static gint ett_h248_EventParameter = -1;
479 static gint ett_h248_EventPar_extraInfo = -1;
480 static gint ett_h248_EventParamValues = -1;
481 static gint ett_h248_ServiceChangeRequest = -1;
482 static gint ett_h248_ServiceChangeReply = -1;
483 static gint ett_h248_ServiceChangeResult = -1;
484 static gint ett_h248_TerminationID = -1;
485 static gint ett_h248_SEQUENCE_OF_WildcardField = -1;
486 static gint ett_h248_TerminationIDList = -1;
487 static gint ett_h248_MediaDescriptor = -1;
488 static gint ett_h248_T_streams = -1;
489 static gint ett_h248_SEQUENCE_OF_StreamDescriptor = -1;
490 static gint ett_h248_StreamDescriptor = -1;
491 static gint ett_h248_StreamParms = -1;
492 static gint ett_h248_LocalControlDescriptor = -1;
493 static gint ett_h248_PropertyParm = -1;
494 static gint ett_h248_SEQUENCE_OF_PropertyID = -1;
495 static gint ett_h248_PropParm_extraInfo = -1;
496 static gint ett_h248_LocalRemoteDescriptor = -1;
497 static gint ett_h248_SEQUENCE_OF_PropertyGroup = -1;
498 static gint ett_h248_PropertyGroup = -1;
499 static gint ett_h248_TerminationStateDescriptor = -1;
500 static gint ett_h248_MuxDescriptor = -1;
501 static gint ett_h248_SEQUENCE_OF_TerminationID = -1;
502 static gint ett_h248_EventsDescriptor = -1;
503 static gint ett_h248_SEQUENCE_OF_RequestedEvent = -1;
504 static gint ett_h248_RequestedEvent = -1;
505 static gint ett_h248_RegulatedEmbeddedDescriptor = -1;
506 static gint ett_h248_NotifyBehaviour = -1;
507 static gint ett_h248_RequestedActions = -1;
508 static gint ett_h248_EventDM = -1;
509 static gint ett_h248_SecondEventsDescriptor = -1;
510 static gint ett_h248_SEQUENCE_OF_SecondRequestedEvent = -1;
511 static gint ett_h248_SecondRequestedEvent = -1;
512 static gint ett_h248_SecondRequestedActions = -1;
513 static gint ett_h248_EventBufferDescriptor = -1;
514 static gint ett_h248_EventSpec = -1;
515 static gint ett_h248_SignalsDescriptor = -1;
516 static gint ett_h248_SignalRequest = -1;
517 static gint ett_h248_SeqSigList = -1;
518 static gint ett_h248_SEQUENCE_OF_Signal = -1;
519 static gint ett_h248_Signal = -1;
520 static gint ett_h248_SEQUENCE_OF_SigParameter = -1;
521 static gint ett_h248_NotifyCompletion = -1;
522 static gint ett_h248_SigParameter = -1;
523 static gint ett_h248_T_extraInfo = -1;
524 static gint ett_h248_SigParamValues = -1;
525 static gint ett_h248_ModemDescriptor = -1;
526 static gint ett_h248_SEQUENCE_OF_ModemType = -1;
527 static gint ett_h248_DigitMapDescriptor = -1;
528 static gint ett_h248_DigitMapValue = -1;
529 static gint ett_h248_ServiceChangeParm = -1;
530 static gint ett_h248_SCreasonValue = -1;
531 static gint ett_h248_ServiceChangeAddress = -1;
532 static gint ett_h248_ServiceChangeResParm = -1;
533 static gint ett_h248_ServiceChangeProfile = -1;
534 static gint ett_h248_PackagesDescriptor = -1;
535 static gint ett_h248_PackagesItem = -1;
536 static gint ett_h248_StatisticsDescriptor = -1;
537 static gint ett_h248_StatisticsParameter = -1;
538 static gint ett_h248_NonStandardData = -1;
539 static gint ett_h248_NonStandardIdentifier = -1;
540 static gint ett_h248_H221NonStandard = -1;
541 static gint ett_h248_TimeNotation = -1;
542 static gint ett_h248_Value = -1;
544 /*--- End of included file: packet-h248-ett.c ---*/
545 #line 84 "packet-h248-template.c"
547 static dissector_handle_t h248_term_handle;
549 static emem_tree_t* msgs = NULL;
550 static emem_tree_t* trxs = NULL;
551 static emem_tree_t* ctxs_by_trx = NULL;
552 static emem_tree_t* ctxs = NULL;
554 static gboolean keep_persistent_data = FALSE;
555 static guint global_udp_port = 2945;
556 static guint global_tcp_port = 2945;
557 static gboolean h248_desegment = TRUE;
561 static proto_tree *h248_tree;
562 static tvbuff_t* h248_tvb;
564 static dissector_handle_t h248_handle;
565 static dissector_handle_t h248_term_handle;
566 static dissector_handle_t h248_tpkt_handle;
568 /* Forward declarations */
569 static int dissect_h248_ServiceChangeReasonStr(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
571 /* http://www.iana.org/assignments/megaco-h248 last updated 2007-11-28*/
572 static const value_string package_name_vals[] = {
573 { 0x0000, "Media stream properties H.248.1 Annex C" },
574 { 0x0001, "Generic H.248.1 Annex E" },
575 { 0x0002, "root H.248.1 Annex E" },
576 { 0x0003, "tonegen H.248.1 Annex E" },
577 { 0x0004, "tonedet H.248.1 Annex E" },
578 { 0x0005, "dg H.248.1 Annex E" },
579 { 0x0006, "dd H.248.1 Annex E" },
580 { 0x0007, "cg H.248.1 Annex E" },
581 { 0x0008, "cd H.248.1 Annex E" },
582 { 0x0009, "al H.248.1 Annex E" },
583 { 0x000a, "ct H.248.1 Annex E" },
584 { 0x000b, "nt H.248.1 Annex E" },
585 { 0x000c, "rtp H.248.1 Annex E" },
586 { 0x000d, "tdmc H.248.1 Annex E" },
587 { 0x000e, "ftmd H.248.1 Annex E" },
588 { 0x000f, "txc H.248.2" }, /* H.248.2 */
589 { 0x0010, "txp H.248.2" },
590 { 0x0011, "ctyp H.248.2" },
591 { 0x0012, "fax H.248.2" },
592 { 0x0013, "ipfax H.248.2" },
593 { 0x0014, "dis H.248.3" }, /* H.248.3 */
594 { 0x0015, "key H.248.3" },
595 { 0x0016, "kp H.248.3" },
596 { 0x0017, "labelkey H.248.3" },
597 { 0x0018, "kf H.248.3" },
598 { 0x0019, "ind H.248.3" },
599 { 0x001a, "ks H.248.3" },
600 { 0x001b, "anci H.248.3" },
601 { 0x001c, "dtd H.248.6" }, /* H.248.6 */
602 { 0x001d, "an H.248.7" }, /* H.248.7 */
603 { 0x001e, "Bearer Characteristics Q.1950 Annex A" }, /* Q.1950 Annex A */
604 { 0x001f, "Bearer Network Connection Cut Q.1950 Annex A" },
605 { 0x0020, "Reuse Idle Q.1950 Annex A" },
606 { 0x0021, "Generic Bearer Connection Q.1950 Annex A" },
607 { 0x0022, "Bearer Control Tunnelling Q.1950 Annex A" },
608 { 0x0023, "Basic Call Progress Tones Q.1950 Annex A" },
609 { 0x0024, "Expanded Call Progress Tones Q.1950 Annex A" },
610 { 0x0025, "Basic Services Tones Q.1950 Annex A" },
611 { 0x0026, "Expanded Services Tones Q.1950 Annex A" },
612 { 0x0027, "Intrusion Tones Q.1950 Annex A" },
613 { 0x0028, "Business Tones Q.1950 Annex A" },
614 { 0x0029, "Media Gateway Resource Congestion Handling H.248.10" }, /* H.248.10 */
615 { 0x002a, "H245 package H248.12" }, /* H.248.12 */
616 { 0x002b, "H323 bearer control package H.248.12" }, /* H.248.12 */
617 { 0x002c, "H324 package H.248.12" }, /* H.248.12 */
618 { 0x002d, "H245 command package H.248.12" }, /* H.248.12 */
619 { 0x002e, "H245 indication package H.248.12" }, /* H.248.12 */
620 { 0x002f, "3G User Plane" }, /* 3GPP TS 29.232 v4.1.0 */
621 { 0x0030, "3G Circuit Switched Data" },
622 { 0x0031, "3G TFO Control" },
623 { 0x0032, "3G Expanded Call Progress Tones" },
624 { 0x0033, "Advanced Audio Server (AAS Base)" }, /* H.248.9 */
625 { 0x0034, "AAS Digit Collection" }, /* H.248.9 */
626 { 0x0035, "AAS Recording" }, /* H.248.9 */
627 { 0x0036, "AAS Segment Management" }, /* H.248.9 */
628 { 0x0037, "Quality Alert Ceasing" }, /* H.248.13 */
629 { 0x0038, "Conferencing Tones Generation" }, /* H.248.27 */
630 { 0x0039, "Diagnostic Tones Generation" }, /* H.248.27 */
631 { 0x003a, "Carrier Tones Generation Package H.248.23" }, /* H.248.27 */
632 { 0x003b, "Enhanced Alerting Package H.248.23" }, /* H.248.23 */
633 { 0x003c, "Analog Display Signalling Package H.248.23" }, /* H.248.23 */
634 { 0x003d, "Multi-Frequency Tone Generation Package H.248.24" }, /* H.248.24 */
635 { 0x003e, "H.248.23Multi-Frequency Tone Detection Package H.248.24" }, /* H.248.24 */
636 { 0x003f, "Basic CAS Package H.248.25" }, /* H.248.25 */
637 { 0x0040, "Robbed Bit Signalling Package H.248.25" }, /* H.248.25 */
638 { 0x0041, "Operator Services and Emergency Services Package H.248.25" },
639 { 0x0042, "Operator Services Extension Package H.248.25" },
640 { 0x0043, "Extended Analog Line Supervision Package H.248.26" },
641 { 0x0044, "Automatic Metering Package H.248.26" },
642 { 0x0045, "Inactivity Timer Package H.248.14" },
643 { 0x0046, "3G Modification of Link Characteristics Bearer Capability" }, /* 3GPP TS 29.232 v4.4.0 */
644 { 0x0047, "Base Announcement Syntax H.248.9" },
645 { 0x0048, "Voice Variable Syntax H.248.9" },
646 { 0x0049, "Announcement Set Syntax H.248.9" },
647 { 0x004a, "Phrase Variable Syntax H.248.9" },
648 { 0x004b, "Basic NAS package" },
649 { 0x004c, "NAS incoming package" },
650 { 0x004d, "NAS outgoing package" },
651 { 0x004e, "NAS control package" },
652 { 0x004f, "NAS root package" },
653 { 0x0050, "Profile Handling Package H.248.18" },
654 { 0x0051, "Media Gateway Overload Control Package H.248.11" },
655 { 0x0052, "Extended DTMF Detection Package H.248.16" },
656 { 0x0053, "Quiet Termination Line Test" },
657 { 0x0054, "Loopback Line Test Response" }, /* H.248.17 */
658 { 0x0055, "ITU 404Hz Line Test" }, /* H.248.17 */
659 { 0x0056, "ITU 816Hz Line Test" }, /* H.248.17 */
660 { 0x0057, "ITU 1020Hz Line Test" }, /* H.248.17 */
661 { 0x0058, "ITU 2100Hz Disable Tone Line Test" }, /* H.248.17 */
662 { 0x0059, "ITU 2100Hz Disable Echo Canceller Tone Line Test" }, /* H.248.17 */
663 { 0x005a, "ITU 2804Hz Tone Line Test" }, /* H.248.17 */
664 { 0x005b, "ITU Noise Test Tone Line Test" }, /* H.248.17 */
665 { 0x005c, "ITU Digital Pseudo Random Test Line Test" }, /* H.248.17 */
666 { 0x005d, "ITU ATME No.2 Test Line Response" }, /* H.248.17 */
667 { 0x005e, "ANSI 1004Hz Test Tone Line Test" }, /* H.248.17 */
668 { 0x005f, "ANSI Test Responder Line Test" }, /* H.248.17 */
669 { 0x0060, "ANSI 2225Hz Test Progress Tone Line Test" }, /* H.248.17 */
670 { 0x0061, "ANSI Digital Test Signal Line Test" }, /* H.248.17 */
671 { 0x0062, "ANSI Inverting Loopback Line Test Response" }, /* H.248.17 */
672 { 0x0063, "Extended H.324 Packages H.248.12 Annex A" },
673 { 0x0064, "Extended H.245 Command Package H.248.12 Annex A" },
674 { 0x0065, "Extended H.245 Indication Package H.248.12 Annex A" },
675 { 0x0066, "Enhanced DTMF Detection Package H.248.16" },
676 { 0x0067, "Connection Group Identity Package Q.1950 Annex E" },
677 { 0x0068, "CTM Text Transport 3GPP TS 29.232 v5.2.0" },
678 { 0x0069, "SPNE Control Package Q.115.0" },
679 { 0x006a, "Semi-permanent Connection Package H.248.21" },
680 { 0x006b, "Shared Risk Group Package H.248.22" },
681 { 0x006c, "isuptn Annex B of ITU-T Rec. J.171" },
682 { 0x006d, "Basic CAS Addressing Package H.248.25" },
683 { 0x006e, "Floor Control Package H.248.19" },
684 { 0x006f, "Indication of Being Viewed Package H.248.19" },
685 { 0x0070, "Volume Control Package H.248.19" },
686 { 0x0071, "UNASSIGNED" },
687 { 0x0072, "Volume Detection Package H.248.19" },
688 { 0x0073, "Volume Level Mixing Package H.248.19" },
689 { 0x0074, "Mixing Volume Level Control Package H.248.19" },
690 { 0x0075, "Voice Activated Video Switch Package H.248.19" },
691 { 0x0076, "Lecture Video Mode Package H.248.19" },
692 { 0x0077, "Contributing Video Source Package H.248.19" },
693 { 0x0078, "Video Window Package H.248.19" },
694 { 0x0079, "Tiled Window Package H.248.19" },
695 { 0x007a, "Adaptive Jitter Buffer Package H.248.31" },
696 { 0x007b, "International CAS Package H.248.28" },
697 { 0x007c, "CAS Blocking Package H.248.28" },
698 { 0x007d, "International CAS Compelled Package H.248.29" },
699 { 0x007e, "International CAS Compelled with Overlap Package H.248.29" },
700 { 0x007f, "International CAS Compelled with End-to-end Package H.248.29" },
701 { 0x0080, "RTCP XR Package H.248.30" },
702 { 0x0081, "RTCP XR Burst Metrics Package H.248.30" },
703 { 0x0082, "threegcsden 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
704 { 0x0083, "threegiptra 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
705 { 0x0084, "threegflex 3G Circuit Switched Data" }, /* 3GPP TS 29.232 v5.6.0 */
706 { 0x0085, "H.248 PCMSB" },
707 { 0x008a, "TIPHON Extended H.248/MEGACO Package" }, /* ETSI specification TS 101 3 */
708 { 0x008b, "Differentiated Services Package" }, /* Annex A of ETSI TS 102 333 */
709 { 0x008c, "Gate Management Package" }, /* Annex B of ETSI TS 102 333 */
710 { 0x008d, "Traffic Management Package" }, /* Annex C of ETSI TS 102 333 */
711 { 0x008e, "Gate Recovery Information Package" }, /* Annex D of ETSI TS 102 333 */
712 { 0x008f, "NAT Traversal Package" }, /* Annex E of ETSI TS 102 333 */
713 { 0x0090, "MPLS Package" }, /* Annex F of ETSI TS 102 333 */
714 { 0x0091, "VLAN Package" }, /* Annex G of ETSI TS 102 333 */
715 { 0x0092, "Detailed Congestion Reporting Package" }, /* H.248.32 */
716 { 0x0093, "Stimulus Analogue Lines Package" }, /* H.248.34 */
717 { 0x0094, "icascgen" }, /* H.248.29 Annex B */
718 { 0x0095, "Coin Operated Phone Control Package" }, /* H.248.35 */
719 { 0x0096, "Metering Pulse Detection Package" }, /* H.248.26 Amendment 1 */
720 { 0x0097, "Trace Package" }, /* 3GPP TS 29.232 v6.3.0 */
721 { 0x0098, "Hanging Termination Package" }, /* H.248.36 */
722 { 0x0099, "IP NAPT Traversal Package" }, /* H.248.37 */
723 { 0x009a, "Notification Behaviour Package" }, /* H.248.1v3 */
724 { 0x009b, "Base Context Package" }, /* H.248.38 */
725 { 0x009c, "Application Data Inactivity Detection Package" }, /* H.248.40 */
726 { 0x009d, "Domain Connection Package " }, /* H.248.41 */
727 { 0x009e, "Digital Circuit Multiplication Equipment Package" }, /* H.248.42 */
728 { 0x009f, "Multi-level Precedence and Pre-emption Package" }, /* H.248.44 */
729 { 0x00a0, "MGC Information Package" }, /* H.248.45 */
730 { 0x00a1, "Text Overlay Package" }, /* H.248.19 Amendment 1 */
731 { 0x00a2, "Border and Background Package" }, /* H.248.19 Amendment 1 */
732 { 0x00a3, "Segmentation Package" }, /* H.248.1v3 */
733 { 0x00a4, "ETSI notification behaviour package" }, /* ETSI ES 283 039-3 */
734 { 0x00a5, "ETSI notification rate package" }, /* ETSI ES 283 039-4 */
735 { 0x00a6, "Automatic Speech Recognition Package" }, /* H.248.9 Amendment 1 */
736 { 0x00a7, "Set extension to basic syntax for TTS enhancement Package" },/* H.248.9 Amendment 1 */
737 { 0x00a8, "Advanced audio server base package for TTS enhancement" }, /* H.248.9 Amendment 1 */
738 { 0x00a9, "Multimedia Play Package" }, /* H.248.9 Amendment 1 */
739 { 0x00aa, "Floor Status Detection Package" }, /* H.248.19 Amendment 2 */
740 { 0x00ab, "Floor Control Policy Package" }, /* H.248.19 Amendment 2 */
741 { 0x00ac, "Address Reporting Package" }, /* H.248.37 Amendment 1 */
742 { 0x00ad, "Connection Capability Control Package" }, /* H.248.46 */
743 { 0x00ae, "Statistic Conditional Reporting Package" }, /* H.248.47 Amendment 1 */
744 { 0x00af, "RTCP HR QoS Statistics Package" }, /* H.248.48 */
745 { 0x00b0, "Received RTCP XR Package" }, /* H.248.30 (01/2007) */
746 { 0x00b1, "Received RTCP XR Burst Metrics Package" }, /* H.248.30 (01/2007) */
747 { 0x00b2, "ASCI Group call package" }, /* 3GPP TS 29.232 v7.4.0 */
748 { 0x00b3, "Multimedia Recording Package" }, /* H.248.9 Amendment 1 */
749 { 0x00b4, "H.245 Transport Package" }, /* H.248.12 Amendment 2 */
750 { 0x00b5, "RTCP Handling package" }, /* H.248.57 */
751 { 0x00b6, "Gate Management - Outgoing Destination Address/Port Filtering Package" },/* H.248.43 */
752 { 0x00b7, "Gate Management - Incoming Protocol Filtering Package" },/* H.248.43 */
753 { 0x00b8, "Gate Management - Outgoing Protocol Filtering Package" },/* H.248.43 */
754 { 0x00b9, "Gate Management - Incoming Filtering Behaviour Package" },/* H.248.43 */
755 { 0x00ba, "Gate Management - Outgoing Filtering Behaviour Package" }, /* H.248.43 */
756 { 0x00bb, "Session Description Protocol RFC Package" }, /* H.248.49 */
757 { 0x00bc, "Session Description Protocol Capabilities Package" }, /* H.248.49 */
758 { 0x00bd, "NAT Traversal Toolkit - STUN Base Package" }, /* H.248.50 */
759 { 0x00be, "NAT Traversal Toolkit - MG STUN Client Package" }, /* H.248.50 */
760 { 0x00bf, "NAT Traversal Toolkit - MG TURN Client Package" }, /* H.248.50 */
761 { 0x00c0, "NAT Traversal Toolkit - MGC STUN Client Package" }, /* H.248.50 */
762 { 0x00c1, "NAT Traversal Toolkit - STUN Information Package" }, /* H.248.50 */
763 { 0x00c2, "NAT Traversal Toolkit - MG Act-as STUN Server Package" }, /* H.248.50 */
764 { 0x00c3, "NAT Traversal Toolkit - Originate STUN Continuity Check Package" }, /* H.248.50 */
765 { 0x00c4, "NAT Traversal Toolkit - MGC Originated STUN Request Package" }, /* H.248.50 */
766 { 0x00c5, "NAT Traversal Toolkit - RTP NOOP Request Package" }, /* H.248.50 */
767 { 0x00c6, "Termination Connection Model Package" }, /* H.248.51 */
768 { 0x00c7, "QoS Class Package" }, /* H.248.52 */
769 { 0x00c8, "Traffic Policing Statistics Package" }, /* H.248.53 */
770 { 0x00c9, "Packet Size Package" }, /* H.248.53 */
771 { 0x00ca, "Pull Mode Package" }, /* H.248.55 */
772 { 0x00cb, "RTP Application Data Package" }, /* H.248.58 */
773 { 0x00cc, "Event Timestamp Notification Package" }, /* H.248.59 */
774 { 0x00ce, "Resource Management Rules Package" }, /* H.248.63 */
775 { 0x00cd, "Resource Management Configuration" }, /* H.248.63 */
776 { 0x00cf, "Abstract Resource Management" }, /* H.248.63 */
778 { 0x00d0, "IP layer octets count statistics Package" }, /* H.248.61 */
779 { 0x00d1, "Content of Communication Identity Package" }, /* H.248.60 */
780 { 0x00d2, "RSVP extension package" }, /* H.248.65 */
781 { 0x00d3, "GCP Transport Mode Indication Package" }, /* H.248.67 */
782 { 0x00d4, "IP Router Package" }, /* H.248.64 */
783 { 0x00d5, "Media Resource Identification Package" }, /* H.248.66 */
784 { 0x00d6, "Range Format Support Package" }, /* H.248.66 */
785 { 0x00d7, "Media Resource Description Expiry Package" }, /* H.248.66 */
786 { 0x00d8, "Media Block Size Package" }, /* H.248.66 */
787 { 0x00d9, "RTSP Media Resource Syntax Package" }, /* H.248.66 */
788 { 0x00da, "RTSP Play Package" }, /* H.248.66 */
789 { 0x00db, "Signal Pause Package" }, /* H.248.66 */
790 { 0x00dc, "Data Delivery Speed Adjustme Package" }, /* H.248.66 */
791 { 0x00de, "RTP Information Package" }, /* H.248.66 */
792 { 0x00dd, "Playback Relative Scale Adjustment Package" }, /* H.248.66 */
793 { 0x00df, "RTP Interleaving Package" }, /* H.248.66 */
794 { 0x00e0, "IP Realm Availability Package" }, /* H.248.41 Amendment 1 */
795 { 0x00e1, "General IP Header QoS Octet Package" }, /* H.248.52 */
796 { 0x00e2, "Re-answer Package" }, /* H.248.62 */
797 { 0x00e3, "3G Interface Type package" }, /* 3GPP TS 29.232 v8.4.0 */
798 { 0x00e4, "Latch Statistics Package" }, /* H.248.37 */
799 { 0x00e5, "Floor Control Signalling Package" }, /* H.248.19 Amendment 2 */
800 { 0x00e6, "Include Participant in Mix Package" }, /* H.248.19 Amendment 2 */
801 { 0x00e7, "Speaker Reporting Package" }, /* H.248.19 Amendment 2 */
802 { 0x00e8, "IP Layer Packet Count Statistics Package" }, /* H.248.61 */
803 { 0x00e9, "Removal of Digits and Tones Package" }, /* H.248.68 */
804 { 0x00ea, "MSRP Statistics Package" }, /* H.248.69 */
805 { 0x00eb, "MSRP Connection Status Package" }, /* H.248.69 */
806 { 0x00ec, "Play Message Package" }, /* H.248.69 */
807 { 0x00ed, "Delete Stored Message Package" }, /* H.248.69 */
808 { 0x00ee, "Message Session Information Package" }, /* H.248.69 */
809 { 0x00ef, "Message Filtering Package" }, /* H.248.69 */
810 { 0x00f0, "Stored Message Information Package" }, /* H.248.69 */
811 { 0x00f1, "Record Message Package" }, /* H.248.69 */
812 { 0x00f2, "Digit Dialling Method Information Package" }, /* H.248.70 */
813 { 0x00f, "Digit Dialling Method Information for Extended Digitmap Detection Package" }, /* H.248.70 */
814 { 0x00f4, "Digit Dialling Method Information for Enhanced Digitmap Detection Package" }, /* H.248.70 */
815 { 0x00f5, "Received RTCP Package " }, /* H.248.71 */
816 { 0x00f6, "RTP Cumulative Loss Package" }, /* H.248.71 */
817 { 0x00f7, "H.245 Transport Package for SPC use" }, /* H.248.72 */
818 { 0x00f8, "MONA Preference Package" }, /* H.248.72 */
819 { 0x00f9, "TDM Gain Control Package" }, /* H.248.73 */
820 { 0x8000, "Ericsson IU" },
821 { 0x8001, "Ericsson UMTS and GSM Circuit" },
822 { 0x8002, "Ericsson Tone Generator Package" },
823 { 0x8003, "Ericsson Line Test Package" },
824 { 0x8004, "Nokia Advanced TFO Package" },
825 { 0x8005, "Nokia IWF Package" },
826 { 0x8006, "Nokia Root Package" },
827 { 0x8007, "Nokia Trace Package" },
828 { 0x8008, "Ericsson V5.2 Layer" },
829 { 0x8009, "Ericsson Detailed Termination Information Package" },
830 { 0x800a, "Nokia Bearer Characteristics Package" },
831 { 0x800b, "Nokia Test Call Package" },
832 { 0x800c, "Nokia Extended Continuity Package" },
833 { 0x800d, "Nokia IPnwR Package" },
834 { 0x800e, "Ericsson Tracing Enhancements Package" },
835 { 0x800f, "Ericsson Partially Wildcarded TerminationID Package" },
836 { 0x8010, "SCTP Stream Handling Package" },
841 * This table consist of PackageName + EventName and its's corresponding string
844 static const value_string event_name_vals[] = {
845 { 0x00000000, "Media stream properties H.248.1 Annex C" },
846 { 0x00010000, "g H.248.1 Annex E" },
847 { 0x00010001, "g/Cause" },
848 { 0x00010002, "g/Signal Completion" },
849 { 0x00040000, "tonedet H.248.1 Annex E" },
850 { 0x00040001, "tonedet/std(Start tone detected)" },
851 { 0x00040002, "tonedet/etd(End tone detected)" },
852 { 0x00040003, "tonedet/ltd(Long tone detected)" },
853 { 0x00060000, "dd H.248.1 Annex E" },
854 { 0x00060001, "dd/std" },
855 { 0x00060002, "dd/etd" },
856 { 0x00060003, "dd/ltd" },
857 { 0x00060004, "dd, DigitMap Completion Event" },
858 { 0x00060010, "dd/d0, DTMF character 0" },
859 { 0x00060011, "dd/d1, DTMF character 1" },
860 { 0x00060012, "dd/d2, DTMF character 2" },
861 { 0x00060013, "dd/d3, DTMF character 3" },
862 { 0x00060014, "dd/d4, DTMF character 4" },
863 { 0x00060015, "dd/d5, DTMF character 5" },
864 { 0x00060016, "dd/d6, DTMF character 6" },
865 { 0x00060017, "dd/d7, DTMF character 7" },
866 { 0x00060018, "dd/d8, DTMF character 8" },
867 { 0x00060019, "dd/d9, DTMF character 9" },
868 { 0x0006001a, "dd/a, DTMF character A" },
869 { 0x0006001b, "dd/b, DTMF character B" },
870 { 0x0006001c, "dd/c, DTMF character C" },
871 { 0x0006001d, "dd/d, DTMF character D" },
872 { 0x00060020, "dd/*, DTMF character *" },
873 { 0x00060021, "dd/#, DTMF character #" },
874 { 0x00080030, "cd, Dial Tone" },
875 { 0x00080031, "cd, Ringing Tone" },
876 { 0x00080032, "cd, Busy Tone" },
877 { 0x00080033, "cd, Congestion Tone" },
878 { 0x00080034, "cd, Special Information Tone" },
879 { 0x00080035, "cd, (Recording) Warning Tone" },
880 { 0x00080036, "cd, Payphone Recognition Tone" },
881 { 0x00080037, "cd, Call Waiting Tone" },
882 { 0x00080038, "cd, Caller Waiting Tone" },
883 { 0x00090004, "al, onhook" },
884 { 0x00090005, "al, offhook" },
885 { 0x00090006, "al, flashhook" },
886 { 0x0009ffff, "al, *" },
887 { 0x000a0005, "ct, Completion of Continuity test" },
888 { 0x000b0005, "nt, network failure" },
889 { 0x000b0006, "nt, quality alert" },
890 { 0x000c0001, "rtp, Payload Transition" },
891 { 0x00210000, "Generic Bearer Connection Q.1950 Annex A" },
892 { 0x00210001, "GB/BNCChange" },
893 { 0x00220001, "BT/TIND (Tunnel Indication)" },
894 { 0x002a0001, "H.245/h245msg (Incoming H.245 Message)" },
895 { 0x002a0004, "H.245/h245ChC (H.245 Channel Closed)" },
896 { 0x00450000, "Inactivity Timer H.248.14" },
897 { 0x00450001, "it/ito" },
898 { 0x00450002, "it/ito" },
899 { 0x00460001, "threegmlc/mod_link_supp (Bearer Modification Support Event)" },
900 { 0x00980000, "Hanging Termination Package" },
901 { 0x00980001, "Termination Heartbeat" },
902 { 0x800a0000, "Nokia Bearer Characteristics Package" },
907 * This table consist of PackageName + SignalName and its's corresponding string
909 static const value_string signal_name_vals[] = {
910 { 0x00000000, "Media stream properties H.248.1 Annex C" },
911 { 0x00010000, "g H.248.1 Annex E" },
912 { 0x00030001, "tonegen/pt(Play tone)" },
913 { 0x00050010, "dg, DTMF character 0" },
914 { 0x00050011, "dg, DTMF character 1" },
915 { 0x00050012, "dg, DTMF character 2" },
916 { 0x00050013, "dg, DTMF character 3" },
917 { 0x00050014, "dg, DTMF character 4" },
918 { 0x00050015, "dg, DTMF character 5" },
919 { 0x00050016, "dg, DTMF character 6" },
920 { 0x00050017, "dg, DTMF character 7" },
921 { 0x00050018, "dg, DTMF character 8" },
922 { 0x00050019, "dg, DTMF character 9" },
923 { 0x0005001a, "dg, DTMF character A" },
924 { 0x0005001b, "dg, DTMF character B" },
925 { 0x0005001c, "dg, DTMF character C" },
926 { 0x0005001d, "dg, DTMF character D" },
927 { 0x00050020, "dg, DTMF character *" },
928 { 0x00050021, "dg, DTMF character #" },
929 { 0x00070030, "cg, Dial Tone" },
930 { 0x00070031, "cg/rt (Ringing Tone)" },
931 { 0x00070032, "cg, Busy Tone" },
932 { 0x00070033, "cg, Congestion Tone" },
933 { 0x00070034, "cg, Special Information Tone" },
934 { 0x00070035, "cg, (Recording) Warning Tone" },
935 { 0x00070036, "cg, Payphone Recognition Tone" },
936 { 0x00070037, "cg, Call Waiting Tone" },
937 { 0x00070038, "cg, Caller Waiting Tone" },
938 { 0x00090002, "al, ring" },
939 { 0x0009ffff, "al, *" },
940 { 0x000a0003, "ct, Continuity test" },
941 { 0x000a0004, "ct, Continuity respond" },
942 { 0x00210000, "GB Generic Bearer Connection Q.1950 Annex A" },
943 { 0x00210001, "GB/EstBNC(Establish BNC)" },
944 { 0x00210002, "GB/ModBNC (Modify BNC)" },
945 { 0x00210003, "GB/RelBNC(Release BNC)" },
947 { 0x002a0001, "H.245/cs (channel state)" },
948 { 0x002a0002, "H.245/termtype (Terminal Type)" },
950 { 0x002c0001, "H.324/cmod (Communication mode)" },
951 { 0x002c0002, "H.324/muxlv (Highest Multiplexing level)" },
952 { 0x002c0003, "H.324/demux (Demultiplex)" },
953 { 0x002c0004, "H.324/h223capr (Remote H.223 capability)" },
954 { 0x002c0005, "H.324/muxtbl_in (Incoming Multiplex Table)" },
955 { 0x002c0006, "H.324/muxtbl_out (Outgoing Multiplex Table)" },
957 { 0x800a0000, "Nokia Bearer Characteristics Package" },
962 static const value_string context_id_type[] = {
963 {NULL_CONTEXT,"0 (Null Context)"},
964 {CHOOSE_CONTEXT,"$ (Choose Context)"},
965 {ALL_CONTEXTS,"* (All Contexts)"},
972 static const value_string h248_reasons[] = {
973 { 400, "Syntax error in message"},
974 { 401, "Protocol Error"},
975 { 402, "Unauthorized"},
976 { 403, "Syntax error in transaction request"},
977 { 406, "Version Not Supported"},
978 { 410, "Incorrect identifier"},
979 { 411, "The transaction refers to an unknown ContextId"},
980 { 412, "No ContextIDs available"},
981 { 413, "Number of transactions in message exceeds maximum"}, /* [H.248.8 (08/07)] */
982 { 421, "Unknown action or illegal combination of actions"},
983 { 422, "Syntax Error in Action"},
984 { 430, "Unknown TerminationID"},
985 { 431, "No TerminationID matched a wildcard"},
986 { 432, "Out of TerminationIDs or No TerminationID available"},
987 { 433, "TerminationID is already in a Context"},
988 { 434, "Max number of Terminations in a Context exceeded"},
989 { 435, "Termination ID is not in specified Context"},
990 { 440, "Unsupported or unknown Package"},
991 { 441, "Missing Remote or Local Descriptor"},
992 { 442, "Syntax Error in Command"},
993 { 443, "Unsupported or Unknown Command"},
994 { 444, "Unsupported or Unknown Descriptor"},
995 { 445, "Unsupported or Unknown Property"},
996 { 446, "Unsupported or Unknown Parameter"},
997 { 447, "Descriptor not legal in this command"},
998 { 448, "Descriptor appears twice in a command"},
999 { 449, "Unsupported or Unknown Parameter or Property Value"},
1000 { 450, "No such property in this package"},
1001 { 451, "No such event in this package"},
1002 { 452, "No such signal in this package"},
1003 { 453, "No such statistic in this package"},
1004 { 454, "No such parameter value in this package"},
1005 { 455, "Property illegal in this Descriptor"},
1006 { 456, "Property appears twice in this Descriptor"},
1007 { 457, "Missing parameter in signal or event"},
1008 { 458, "Unexpected Event/Request ID"},
1009 { 459, "Unsupported or Unknown Profile"},
1010 { 460, "Unable to set statistic on stream"},
1011 { 461, "Unsupported or Unknown Profile"}, /*[H.248.18] */
1013 { 471, "Implied Add for Multiplex failure"},
1014 { 472, "Required Information Missing"}, /*[H.248.8 (08/07)] */
1015 { 473, "Conflicting Property Values"}, /*[H.248.8 (08/07)] */
1016 { 474, "Invalid SDP Syntax"}, /*[H.248.49] */
1017 { 475, "Unable to pause the playout of the signal"}, /*[H.248.66] */
1018 { 476, "Unable to adjust the data delivery speed of the Signal"}, /*[H.248.66] */
1020 { 477, "Unable to adjust the playback relative scale of the signal"}, /*[H.248.66] */
1022 { 478, "Behaviour Contradicts Resource Rule"}, /*[H.248.63] */
1024 { 500, "Internal software Failure in MG"},
1025 { 501, "Not Implemented"},
1026 { 502, "Not ready"},
1027 { 503, "Service Unavailable"},
1028 { 504, "Command Received from unauthorized entity"},
1029 { 505, "Transaction Request Received before a Service Change Reply has been received"},
1030 { 506, "Number of Transaction Pendings Exceeded"},
1031 { 510, "Insufficient resources"},
1032 { 511, "Temporarily Busy"}, /* [H.248.8 (08/07)] */
1033 { 512, "Media Gateway unequipped to detect requested Event"},
1034 { 513, "Media Gateway unequipped to generate requested Signals"},
1035 { 514, "Media Gateway cannot send the specified announcement"},
1036 { 515, "Unsupported Media Type"},
1037 { 517, "Unsupported or invalid mode"},
1038 { 518, "Event buffer full"},
1039 { 519, "Out of space to store digit map"},
1040 { 520, "Digit Map undefined in the MG"},
1041 { 521, "Termination is ServiceChangeing"},
1042 { 522, "Functionality Requested in Topology Triple Not Supported"},
1043 { 526, "Insufficient bandwidth"},
1044 { 529, "Internal hardware failure in MG"},
1045 { 530, "Temporary Network failure"},
1046 { 531, "Permanent Network failure"},
1047 { 532, "Audited Property, Statistic, Event or Signal does not exist"},
1048 { 533, "Response exceeds maximum transport PDU size"},
1049 { 534, "Illegal write or read only property"},
1050 { 540, "Unexpected initial hook state"},
1051 { 541, "Unexpected Spare Bit State"}, /* [H.248.33] */
1052 { 542, "Command is not allowed on this termination"},
1053 { 543, "MGC requested event detection timestamp not supported"}, /* [H.248.8 (08/07)] */
1054 { 581, "Does Not Exist"},
1055 { 600, "Illegal syntax within an announcement specification"},
1056 { 601, "Variable type not supported"},
1057 { 602, "Variable value out of range"},
1058 { 603, "Category not supported"},
1059 { 604, "Selector type not supported"},
1060 { 605, "Selector value not supported"},
1061 { 606, "Unknown segment ID"},
1062 { 607, "Mismatch between play specification and provisioned data"},
1063 { 608, "Provisioning error"},
1064 { 609, "Invalid offset"},
1065 { 610, "No free segment IDs"},
1066 { 611, "Temporary segment not found"},
1067 { 612, "Segment in use"},
1068 { 613, "ISP port limit overrun"},
1069 { 614, "No modems available"},
1070 { 615, "Calling number unacceptable"},
1071 { 616, "Called number unacceptable"},
1072 { 617, "Reserved for H.248.9 return code"}, /* [H.248.9] */
1073 { 618, "Reserved for H.248.9 return code"}, /* [H.248.9] */
1074 { 622, "Reserved for H.248.9 return code"}, /* [H.248.9] */
1075 { 623, "Reserved for H.248.9 return code"}, /* [H.248.9] */
1076 { 624, "Reserved for H.248.9 return code"}, /* [H.248.9] */
1077 { 625, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
1078 { 626, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
1079 { 627, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
1080 { 628, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
1081 { 629, "Reserved for H.248.9 return code"}, /* [H.248.9 Amendment 1] */
1082 { 700, "Sieve Script Syntax Error"}, /* [H.248.69] */
1083 { 701, "Unsupported Sieve Require Error"}, /* [H.248.69] */
1084 { 702, "Sieve Actions Exceeded Error"}, /* [H.248.69] */
1086 { 900, "Service Restored"},
1087 { 901, "Cold Boot"},
1088 { 902, "Warm Boot"},
1089 { 903, "MGC Directed Change"},
1090 { 904, "Termination malfunctioning"},
1091 { 905, "Termination taken out of service"},
1092 { 906, "Loss of lower layer connectivity (e.g. downstream sync)"},
1093 { 907, "Transmission Failure"},
1094 { 908, "MG Impending Failure"},
1095 { 909, "MGC Impending Failure"},
1096 { 910, "Media Capability Failure"},
1097 { 911, "Modem Capability Failure"},
1098 { 912, "Mux Capability Failure"},
1099 { 913, "Signal Capability Failure"},
1100 { 914, "Event Capability Failure"},
1101 { 915, "State Loss"},
1102 { 916, "Packages Change"},
1103 { 917, "Capabilities Change"},
1104 { 918, "Cancel Graceful"},
1105 { 919, "Warm Failover"},
1106 { 920, "Cold Failover"},
1110 static const value_string wildcard_modes[] = {
1116 static const value_string wildcard_levels[] = {
1117 { 0, "This One Level" },
1118 { 1, "This Level and those below" },
1122 static h248_curr_info_t curr_info = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
1123 static guint32 error_code;
1124 static gcp_wildcard_t wild_term;
1125 static guint8 wild_card = 0xFF; /* place to store wildcardField */
1127 extern void h248_param_ber_integer(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
1128 asn1_ctx_t asn1_ctx;
1129 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1130 dissect_ber_integer(implicit ? *((gboolean*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
1133 extern void h248_param_ber_octetstring(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
1134 asn1_ctx_t asn1_ctx;
1135 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1136 dissect_ber_octet_string(implicit ? *((gboolean*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
1139 extern void h248_param_ber_boolean(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo, int hfid, h248_curr_info_t* u _U_, void* implicit) {
1140 asn1_ctx_t asn1_ctx;
1141 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1142 dissect_ber_boolean(implicit ? *((gboolean*)implicit) : FALSE, &asn1_ctx, tree, tvb, 0, hfid, NULL);
1145 extern void h248_param_item(proto_tree* tree,
1147 packet_info* pinfo _U_,
1149 h248_curr_info_t* h248_info _U_,
1151 int len = lenp ? *((int*)lenp) : -1;
1152 proto_tree_add_item(tree,hfid,tvb,0,len,FALSE);
1155 extern void h248_param_external_dissector(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u _U_, void* dissector_hdl) {
1156 call_dissector((dissector_handle_t) dissector_hdl,tvb,pinfo,tree);
1160 static const h248_package_t no_package = { 0xffff, &hf_h248_no_pkg, &ett_h248_no_pkg, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
1161 static const h248_pkg_sig_t no_signal = { 0, &hf_h248_no_sig, &ett_h248_no_sig, NULL, NULL };
1162 static const h248_pkg_param_t no_param = { 0, &hf_h248_param, h248_param_item, NULL };
1163 static const h248_pkg_evt_t no_event = { 0, &hf_h248_no_evt, &ett_h248_no_evt, NULL, NULL };
1165 static GPtrArray* packages = NULL;
1167 extern void h248_param_PkgdName(proto_tree* tree, tvbuff_t* tvb, packet_info* pinfo , int hfid _U_, h248_curr_info_t* u1 _U_, void* u2 _U_) {
1168 tvbuff_t *new_tvb = NULL;
1169 proto_tree *package_tree=NULL;
1170 guint16 name_major, name_minor;
1172 const h248_package_t* pkg = NULL;
1175 asn1_ctx_t asn1_ctx;
1176 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
1179 offset = dissect_ber_octet_string(FALSE, &asn1_ctx, tree, tvb, offset, hfid , &new_tvb);
1182 /* this field is always 4 bytes so just read it into two integers */
1183 name_major=tvb_get_ntohs(new_tvb, 0);
1184 name_minor=tvb_get_ntohs(new_tvb, 2);
1186 /* do the prettification */
1187 proto_item_append_text(asn1_ctx.created_item, " %s (%04x)", val_to_str(name_major, package_name_vals, "Unknown Package"), name_major);
1191 const gchar* strval;
1193 package_tree = proto_item_add_subtree(asn1_ctx.created_item, ett_packagename);
1194 proto_tree_add_uint(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major);
1196 for(i=0; i < packages->len; i++) {
1197 pkg = g_ptr_array_index(packages,i);
1199 if (name_major == pkg->id) {
1206 if (! pkg ) pkg = &no_package;
1209 pi = proto_tree_add_uint(package_tree, hf_248_pkg_param, tvb, offset-2, 2, name_minor);
1211 if (pkg->signal_names && ( strval = match_strval(name_minor, pkg->signal_names) )) {
1212 strval = ep_strdup_printf("%s (%d)",strval,name_minor);
1214 strval = ep_strdup_printf("Unknown (%d)",name_minor);
1217 proto_item_set_text(pi,"Signal ID: %s", strval);
1224 static int dissect_h248_trx_id(gboolean implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, guint32* trx_id_p) {
1233 offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &class, &pc, &tag);
1234 offset=dissect_ber_length(pinfo, tree, tvb, offset, &len, NULL);
1236 len=tvb_length_remaining(tvb, offset);
1240 if (len > 8 || len < 1) {
1243 for(i=1;i<=len;i++){
1244 trx_id=(trx_id<<8)|tvb_get_guint8(tvb, offset);
1247 if (trx_id > 0xffffffff) {
1248 proto_item* pi = proto_tree_add_text(tree, tvb, offset-len, len,"transactionId %" G_GINT64_MODIFIER "u", trx_id);
1249 proto_item_set_expert_flags(pi, PI_MALFORMED, PI_WARN);
1254 proto_tree_add_uint(tree, hf_h248_transactionId, tvb, offset-len, len, (guint32)trx_id);
1255 *trx_id_p = (guint32)trx_id;
1262 static int dissect_h248_ctx_id(gboolean implicit_tag, packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset, guint32* ctx_id_p) {
1271 offset=dissect_ber_identifier(pinfo, tree, tvb, offset, &class, &pc, &tag);
1272 offset=dissect_ber_length(pinfo, tree, tvb, offset, &len, NULL);
1274 len=tvb_length_remaining(tvb, offset);
1278 if (len > 8 || len < 1) {
1281 for(i=1;i<=len;i++){
1282 ctx_id=(ctx_id<<8)|tvb_get_guint8(tvb, offset);
1286 if (ctx_id > 0xffffffff) {
1287 proto_item* pi = proto_tree_add_text(tree, tvb, offset-len, len,
1288 "contextId: %" G_GINT64_MODIFIER "u", ctx_id);
1289 proto_item_set_expert_flags(pi, PI_MALFORMED, PI_WARN);
1291 *ctx_id_p = 0xfffffffd;
1294 proto_item* pi = proto_tree_add_uint(tree, hf_h248_context_id, tvb, offset-len, len, (guint32)ctx_id);
1296 if ( ctx_id == NULL_CONTEXT ) {
1297 proto_item_set_text(pi,"contextId: Null Context(0)");
1298 } else if ( ctx_id == CHOOSE_CONTEXT ) {
1299 proto_item_set_text(pi,"contextId: $ (Choose Context = 0xfffffffe)");
1300 } else if ( ctx_id == ALL_CONTEXTS ) {
1301 proto_item_set_text(pi,"contextId: * (All Contexts = 0xffffffff)");
1304 *ctx_id_p = (guint32) ctx_id;
1311 void h248_register_package(const h248_package_t* pkg) {
1312 if (! packages) packages = g_ptr_array_new();
1314 g_ptr_array_add(packages,(void*)pkg);
1317 static guint32 packageandid;
1319 static int dissect_h248_PkgdName(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1320 tvbuff_t *new_tvb = NULL;
1321 proto_tree *package_tree=NULL;
1322 guint16 name_major, name_minor;
1324 const h248_package_t* pkg = NULL;
1328 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
1331 /* this field is always 4 bytes so just read it into two integers */
1332 name_major=tvb_get_ntohs(new_tvb, 0);
1333 name_minor=tvb_get_ntohs(new_tvb, 2);
1334 packageandid=(name_major<<16)|name_minor;
1336 /* do the prettification */
1337 proto_item_append_text(actx->created_item, " %s (%04x)", val_to_str(name_major, package_name_vals, "Unknown Package"), name_major);
1340 package_tree = proto_item_add_subtree(actx->created_item, ett_packagename);
1341 proto_tree_add_uint(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major);
1344 for(i=0; i < packages->len; i++) {
1345 pkg = g_ptr_array_index(packages,i);
1347 if (name_major == pkg->id) {
1354 if (! pkg ) pkg = &no_package;
1357 proto_item* pi = proto_tree_add_uint(package_tree, hf_248_pkg_param, tvb, offset-2, 2, name_minor);
1358 const gchar* strval;
1360 if (pkg->param_names && ( strval = match_strval(name_minor, pkg->param_names) )) {
1361 strval = ep_strdup_printf("%s (%d)",strval,name_minor);
1363 strval = ep_strdup_printf("Unknown (%d)",name_minor);
1366 proto_item_set_text(pi,"Parameter: %s", strval);
1372 curr_info.pkg = pkg;
1377 static int dissect_h248_EventName(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1379 proto_tree *package_tree=NULL;
1380 guint16 name_major, name_minor;
1382 const h248_package_t* pkg = NULL;
1383 const h248_pkg_evt_t* evt = NULL;
1387 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
1390 /* this field is always 4 bytes so just read it into two integers */
1391 name_major=tvb_get_ntohs(new_tvb, 0);
1392 name_minor=tvb_get_ntohs(new_tvb, 2);
1393 packageandid=(name_major<<16)|name_minor;
1395 /* do the prettification */
1396 proto_item_append_text(actx->created_item, " %s (%04x)", val_to_str(name_major, package_name_vals, "Unknown Package"), name_major);
1398 package_tree = proto_item_add_subtree(actx->created_item, ett_packagename);
1400 proto_tree_add_uint(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major);
1403 for(i=0; i < packages->len; i++) {
1404 pkg = g_ptr_array_index(packages,i);
1406 if (name_major == pkg->id) {
1413 if (! pkg ) pkg = &no_package;
1415 curr_info.pkg = pkg;
1418 for (evt = pkg->events; evt->hfid; evt++) {
1419 if (name_minor == evt->id) {
1424 if (! evt->hfid) evt = &no_event;
1429 curr_info.evt = evt;
1432 proto_item* pi = proto_tree_add_uint(package_tree, hf_h248_event_code, tvb, offset-2, 2, name_minor);
1433 const gchar* strval;
1435 if (pkg->event_names && ( strval = match_strval(name_minor, pkg->event_names) )) {
1436 strval = ep_strdup_printf("%s (%d)",strval,name_minor);
1438 strval = ep_strdup_printf("Unknown (%d)",name_minor);
1441 proto_item_set_text(pi,"Event ID: %s", strval);
1445 curr_info.pkg = &no_package;
1446 curr_info.evt = &no_event;
1454 static int dissect_h248_SignalName(gboolean implicit_tag , tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1456 proto_tree *package_tree=NULL;
1457 guint16 name_major, name_minor;
1459 const h248_package_t* pkg = NULL;
1460 const h248_pkg_sig_t* sig;
1464 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
1467 /* this field is always 4 bytes so just read it into two integers */
1468 name_major=tvb_get_ntohs(new_tvb, 0);
1469 name_minor=tvb_get_ntohs(new_tvb, 2);
1470 packageandid=(name_major<<16)|name_minor;
1472 /* do the prettification */
1473 proto_item_append_text(actx->created_item, " %s (%04x)", val_to_str(name_major, package_name_vals, "Unknown Package"), name_major);
1475 package_tree = proto_item_add_subtree(actx->created_item, ett_packagename);
1477 proto_tree_add_uint(package_tree, hf_h248_pkg_name, tvb, offset-4, 2, name_major);
1479 for(i=0; i < packages->len; i++) {
1480 pkg = g_ptr_array_index(packages,i);
1482 if (name_major == pkg->id) {
1489 if (! pkg ) pkg = &no_package;
1492 for (sig = pkg->signals; sig->hfid; sig++) {
1493 if (name_minor == sig->id) {
1498 if (! sig->hfid) sig = &no_signal;
1500 curr_info.pkg = pkg;
1501 curr_info.sig = sig;
1503 curr_info.pkg = &no_package;
1504 curr_info.sig = &no_signal;
1508 proto_item* pi = proto_tree_add_uint(package_tree, hf_h248_signal_code, tvb, offset-2, 2, name_minor);
1509 const gchar* strval;
1511 if (pkg->signal_names && ( strval = match_strval(name_minor, pkg->signal_names) )) {
1512 strval = ep_strdup_printf("%s (%d)",strval,name_minor);
1514 strval = ep_strdup_printf("Unknown (%d)",name_minor);
1517 proto_item_set_text(pi,"Signal ID: %s", strval);
1521 curr_info.pkg = &no_package;
1522 curr_info.sig = &no_signal;
1528 static int dissect_h248_PropertyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
1536 int old_offset, end_offset;
1538 const h248_package_t* pkg;
1539 const h248_pkg_param_t* prop;
1542 offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &class, &pc, &tag);
1543 offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
1544 end_offset=offset+len;
1546 if( (class!=BER_CLASS_UNI)
1547 ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
1548 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);
1553 next_tvb = tvb_new_subset(tvb, offset , len , len );
1554 name_major = packageandid >> 16;
1555 name_minor = packageandid & 0xffff;
1557 pkg = (curr_info.pkg) ? curr_info.pkg : &no_package;
1559 if (pkg->properties) {
1560 for (prop = pkg->properties; prop && prop->hfid; prop++) {
1561 if (name_minor == prop->id) {
1569 if (prop && prop->hfid ) {
1570 if (!prop->dissector) prop = &no_param;
1571 prop->dissector(tree, next_tvb, actx->pinfo, *(prop->hfid), &curr_info, prop->data);
1578 static int dissect_h248_SigParameterName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
1580 guint32 param_id = 0xffffffff;
1581 const h248_pkg_param_t* sigpar;
1582 const gchar* strval;
1585 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
1586 pi = actx->created_item;
1588 switch(tvb_length(next_tvb)) {
1589 case 4: param_id = tvb_get_ntohl(next_tvb,0); break;
1590 case 3: param_id = tvb_get_ntoh24(next_tvb,0); break;
1591 case 2: param_id = tvb_get_ntohs(next_tvb,0); break;
1592 case 1: param_id = tvb_get_guint8(next_tvb,0); break;
1596 curr_info.par = &no_param;
1598 if (curr_info.sig && curr_info.sig->parameters) {
1599 for(sigpar = curr_info.sig->parameters; sigpar->hfid; sigpar++) {
1600 if (sigpar->id == param_id) {
1601 curr_info.par = sigpar;
1607 if (curr_info.sig && curr_info.sig->param_names && ( strval = match_strval(param_id, curr_info.sig->param_names) )) {
1608 strval = ep_strdup_printf("%s (%d)",strval,param_id);
1610 strval = ep_strdup_printf("Unknown (%d)",param_id);
1613 proto_item_set_text(pi,"Parameter: %s", strval);
1618 static int dissect_h248_SigParamValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
1620 int old_offset, end_offset;
1627 offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &class, &pc, &tag);
1628 offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
1629 end_offset=offset+len;
1631 if( (class!=BER_CLASS_UNI)
1632 ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
1633 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);
1638 next_tvb = tvb_new_subset(tvb,offset,len,len);
1640 if ( curr_info.par && curr_info.par->dissector) {
1641 curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
1647 static int dissect_h248_EventParameterName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
1649 guint32 param_id = 0xffffffff;
1650 const h248_pkg_param_t* evtpar;
1651 const gchar* strval;
1654 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb);
1655 pi = actx->created_item;
1658 switch(tvb_length(next_tvb)) {
1659 case 4: param_id = tvb_get_ntohl(next_tvb,0); break;
1660 case 3: param_id = tvb_get_ntoh24(next_tvb,0); break;
1661 case 2: param_id = tvb_get_ntohs(next_tvb,0); break;
1662 case 1: param_id = tvb_get_guint8(next_tvb,0); break;
1668 curr_info.par = &no_param;
1670 if (curr_info.evt && curr_info.evt->parameters) {
1671 for(evtpar = curr_info.evt->parameters; evtpar->hfid; evtpar++) {
1672 if (evtpar->id == param_id) {
1673 curr_info.par = evtpar;
1678 curr_info.par = &no_param;
1681 if (curr_info.evt && curr_info.evt->param_names && ( strval = match_strval(param_id, curr_info.evt->param_names) )) {
1682 strval = ep_strdup_printf("%s (%d)",strval,param_id);
1684 strval = ep_strdup_printf("Unknown (%d)",param_id);
1687 proto_item_set_text(pi,"Parameter: %s", strval);
1693 static int dissect_h248_EventParamValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index _U_) {
1695 int old_offset, end_offset;
1702 offset=dissect_ber_identifier(actx->pinfo, tree, tvb, offset, &class, &pc, &tag);
1703 offset=dissect_ber_length(actx->pinfo, tree, tvb, offset, &len, &ind);
1704 end_offset=offset+len;
1706 if( (class!=BER_CLASS_UNI)
1707 ||(tag!=BER_UNI_TAG_OCTETSTRING) ){
1708 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);
1713 next_tvb = tvb_new_subset(tvb,offset,len,len);
1715 if ( curr_info.par && curr_info.par->dissector) {
1716 curr_info.par->dissector(tree, next_tvb, actx->pinfo, *(curr_info.par->hfid), &curr_info, curr_info.par->data);
1722 static int dissect_h248_MtpAddress(gboolean implicit_tag, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_, proto_tree *tree, int hf_index) {
1724 proto_tree *mtp_tree=NULL;
1726 int i, len, old_offset;
1729 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
1732 /* this field is either 2 or 4 bytes so just read it into an integer */
1734 len=tvb_length(new_tvb);
1736 val= (val<<8)|tvb_get_guint8(new_tvb, i);
1739 /* do the prettification */
1740 proto_item_append_text(actx->created_item, " NI = %d, PC = %d ( %d-%d )", val&0x03,val>>2,val&0x03,val>>2);
1742 mtp_tree = proto_item_add_subtree(actx->created_item, ett_mtpaddress);
1744 proto_tree_add_uint(mtp_tree, hf_h248_mtpaddress_ni, tvb, old_offset, offset-old_offset, val&0x03);
1745 proto_tree_add_uint(mtp_tree, hf_h248_mtpaddress_pc, tvb, old_offset, offset-old_offset, val>>2);
1751 #define H248_TAP() do { if (keep_persistent_data && curr_info.cmd) tap_queue_packet(h248_tap, actx->pinfo, curr_info.cmd); } while(0)
1754 /*--- Included file: packet-h248-fn.c ---*/
1755 #line 1 "packet-h248-fn.c"
1756 /*--- Cyclic dependencies ---*/
1758 /* SecondEventsDescriptor -> SecondEventsDescriptor/eventList -> SecondRequestedEvent -> SecondRequestedActions -> NotifyBehaviour -> RegulatedEmbeddedDescriptor -> SecondEventsDescriptor */
1759 static int dissect_h248_SecondEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
1765 dissect_h248_SecurityParmIndex(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1766 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1775 dissect_h248_SequenceNum(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1776 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1785 dissect_h248_AuthData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1786 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1793 static const ber_sequence_t AuthenticationHeader_sequence[] = {
1794 { &hf_h248_secParmIndex , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SecurityParmIndex },
1795 { &hf_h248_seqNum , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SequenceNum },
1796 { &hf_h248_ad , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_AuthData },
1797 { NULL, 0, 0, 0, NULL }
1801 dissect_h248_AuthenticationHeader(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1802 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1803 AuthenticationHeader_sequence, hf_index, ett_h248_AuthenticationHeader);
1811 dissect_h248_INTEGER_0_99(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1812 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1821 dissect_h248_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1822 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1831 dissect_h248_INTEGER_0_65535(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1832 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1839 static const ber_sequence_t IP4Address_sequence[] = {
1840 { &hf_h248_iP4Address , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_OCTET_STRING_SIZE_4 },
1841 { &hf_h248_portNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
1842 { NULL, 0, 0, 0, NULL }
1846 dissect_h248_IP4Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1847 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1848 IP4Address_sequence, hf_index, ett_h248_IP4Address);
1856 dissect_h248_OCTET_STRING_SIZE_16(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1857 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1864 static const ber_sequence_t IP6Address_sequence[] = {
1865 { &hf_h248_iP6Address , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_OCTET_STRING_SIZE_16 },
1866 { &hf_h248_portNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
1867 { NULL, 0, 0, 0, NULL }
1871 dissect_h248_IP6Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1872 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1873 IP6Address_sequence, hf_index, ett_h248_IP6Address);
1881 dissect_h248_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1882 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1883 actx, tree, tvb, offset, hf_index,
1890 static const ber_sequence_t DomainName_sequence[] = {
1891 { &hf_h248_domName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IA5String },
1892 { &hf_h248_portNumber , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
1893 { NULL, 0, 0, 0, NULL }
1897 dissect_h248_DomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1898 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1899 DomainName_sequence, hf_index, ett_h248_DomainName);
1907 dissect_h248_PathName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1908 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1909 actx, tree, tvb, offset, hf_index,
1917 static const value_string h248_MId_vals[] = {
1918 { 0, "ip4Address" },
1919 { 1, "ip6Address" },
1920 { 2, "domainName" },
1921 { 3, "deviceName" },
1922 { 4, "mtpAddress" },
1926 static const ber_choice_t MId_choice[] = {
1927 { 0, &hf_h248_ip4Address , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IP4Address },
1928 { 1, &hf_h248_ip6Address , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IP6Address },
1929 { 2, &hf_h248_domainName , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_DomainName },
1930 { 3, &hf_h248_deviceName , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_PathName },
1931 { 4, &hf_h248_mtpAddress , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_MtpAddress },
1932 { 0, NULL, 0, 0, 0, NULL }
1936 dissect_h248_MId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1937 offset = dissect_ber_choice(actx, tree, tvb, offset,
1938 MId_choice, hf_index, ett_h248_MId,
1948 dissect_h248_T_errorCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1949 #line 262 "h248.cnf"
1950 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_h248_error_code, &error_code);
1951 expert_add_info_format(actx->pinfo, actx->created_item, PI_RESPONSE_CODE, PI_WARN, "Errored Command");
1953 if (curr_info.cmd) {
1954 gcp_cmd_set_error(curr_info.cmd,error_code);
1955 } else if (curr_info.trx) {
1956 gcp_trx_set_error(curr_info.trx,error_code);
1968 dissect_h248_ErrorText(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1969 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
1970 actx, tree, tvb, offset, hf_index,
1977 static const ber_sequence_t ErrorDescriptor_sequence[] = {
1978 { &hf_h248_errorCode , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_errorCode },
1979 { &hf_h248_errorText , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ErrorText },
1980 { NULL, 0, 0, 0, NULL }
1984 dissect_h248_ErrorDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1985 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1986 ErrorDescriptor_sequence, hf_index, ett_h248_ErrorDescriptor);
1994 dissect_h248_TransactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1995 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2004 dissect_h248_T_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2007 offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
2008 curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REQUEST, keep_persistent_data);
2019 dissect_h248_ContextId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2020 #line 123 "h248.cnf"
2022 offset = dissect_h248_ctx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &ctx_id);
2023 curr_info.ctx = gcp_ctx(curr_info.msg,curr_info.trx,ctx_id,keep_persistent_data);
2024 curr_info.cmd = NULL;
2025 curr_info.term = NULL;
2034 dissect_h248_INTEGER_0_15(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2035 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2044 dissect_h248_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2045 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2053 dissect_h248_WildcardField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2054 #line 280 "h248.cnf"
2056 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
2057 tree = proto_item_add_subtree(actx->created_item,ett_wildcard);
2058 proto_tree_add_item(tree,hf_h248_term_wild_type,new_tvb,0,1,FALSE);
2059 proto_tree_add_item(tree,hf_h248_term_wild_level,new_tvb,0,1,FALSE);
2060 proto_tree_add_item(tree,hf_h248_term_wild_position,new_tvb,0,1,FALSE);
2062 wild_term = tvb_get_guint8(new_tvb,0) & 0x80 ? GCP_WILDCARD_CHOOSE : GCP_WILDCARD_ALL;
2063 /* limitation: assume only one wildcard is used */
2064 wild_card = tvb_get_guint8(new_tvb,0);
2072 static const ber_sequence_t SEQUENCE_OF_WildcardField_sequence_of[1] = {
2073 { &hf_h248_wildcard_item , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_h248_WildcardField },
2077 dissect_h248_SEQUENCE_OF_WildcardField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2078 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2079 SEQUENCE_OF_WildcardField_sequence_of, hf_index, ett_h248_SEQUENCE_OF_WildcardField);
2087 dissect_h248_T_terminationId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2088 #line 294 "h248.cnf"
2090 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &new_tvb);
2093 curr_info.term->len = tvb_length(new_tvb);
2094 curr_info.term->type = 0; /* unknown */
2096 if (curr_info.term->len) {
2097 curr_info.term->buffer = ep_tvb_memdup(new_tvb,0,curr_info.term->len);
2098 curr_info.term->str = bytes_to_str(curr_info.term->buffer,curr_info.term->len);
2101 curr_info.term = gcp_cmd_add_term(curr_info.msg, curr_info.trx, curr_info.cmd, curr_info.term, wild_term, keep_persistent_data);
2103 if (h248_term_handle) {
2104 actx->pinfo->private_data = &wild_card;
2105 call_dissector(h248_term_handle, new_tvb, actx->pinfo, tree);
2109 curr_info.term->len = 0;
2110 curr_info.term->buffer = (guint8*)ep_strdup("");
2111 curr_info.term->str = ep_strdup("?");
2119 static const ber_sequence_t TerminationID_sequence[] = {
2120 { &hf_h248_wildcard , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_WildcardField },
2121 { &hf_h248_terminationId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_T_terminationId },
2122 { NULL, 0, 0, 0, NULL }
2126 dissect_h248_TerminationID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2127 #line 275 "h248.cnf"
2128 curr_info.term = ep_new0(gcp_term_t);
2129 wild_term = GCP_WILDCARD_NONE;
2131 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2132 TerminationID_sequence, hf_index, ett_h248_TerminationID);
2138 static const value_string h248_T_topologyDirection_vals[] = {
2147 dissect_h248_T_topologyDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2148 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2157 dissect_h248_StreamID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2158 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2165 static const value_string h248_T_topologyDirectionExtension_vals[] = {
2166 { 0, "onewayexternal" },
2167 { 1, "onewayboth" },
2173 dissect_h248_T_topologyDirectionExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2174 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2181 static const ber_sequence_t TopologyRequest_sequence[] = {
2182 { &hf_h248_terminationFrom, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationID },
2183 { &hf_h248_terminationTo , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_TerminationID },
2184 { &hf_h248_topologyDirection, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_T_topologyDirection },
2185 { &hf_h248_streamID , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
2186 { &hf_h248_topologyDirectionExtension, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_T_topologyDirectionExtension },
2187 { NULL, 0, 0, 0, NULL }
2191 dissect_h248_TopologyRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2192 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2193 TopologyRequest_sequence, hf_index, ett_h248_TopologyRequest);
2199 static const ber_sequence_t T_topologyReq_sequence_of[1] = {
2200 { &hf_h248_topologyReq_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_TopologyRequest },
2204 dissect_h248_T_topologyReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2205 #line 206 "h248.cnf"
2206 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_TOPOLOGY_REQ,offset,keep_persistent_data);
2209 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2210 T_topologyReq_sequence_of, hf_index, ett_h248_T_topologyReq);
2212 #line 210 "h248.cnf"
2213 curr_info.cmd = NULL;
2221 dissect_h248_Iepscallind_BOOL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2222 offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2231 dissect_h248_PropertyName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2232 offset = dissect_h248_PkgdName(implicit_tag, tvb, offset, actx, tree, hf_index);
2239 static const ber_sequence_t SEQUENCE_OF_PropertyID_sequence_of[1] = {
2240 { &hf_h248_propertyParamValue_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_h248_PropertyID },
2244 dissect_h248_SEQUENCE_OF_PropertyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2245 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2246 SEQUENCE_OF_PropertyID_sequence_of, hf_index, ett_h248_SEQUENCE_OF_PropertyID);
2252 static const value_string h248_Relation_vals[] = {
2253 { 0, "greaterThan" },
2254 { 1, "smallerThan" },
2261 dissect_h248_Relation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2262 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2269 static const value_string h248_PropParm_extraInfo_vals[] = {
2276 static const ber_choice_t PropParm_extraInfo_choice[] = {
2277 { 0, &hf_h248_relation , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_Relation },
2278 { 1, &hf_h248_range , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2279 { 2, &hf_h248_sublist , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2280 { 0, NULL, 0, 0, 0, NULL }
2284 dissect_h248_PropParm_extraInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2285 offset = dissect_ber_choice(actx, tree, tvb, offset,
2286 PropParm_extraInfo_choice, hf_index, ett_h248_PropParm_extraInfo,
2293 static const ber_sequence_t PropertyParm_sequence[] = {
2294 { &hf_h248_propertyName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_PropertyName },
2295 { &hf_h248_propertyParamValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_PropertyID },
2296 { &hf_h248_propParm_extraInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_PropParm_extraInfo },
2297 { NULL, 0, 0, 0, NULL }
2301 dissect_h248_PropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2302 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2303 PropertyParm_sequence, hf_index, ett_h248_PropertyParm);
2309 static const ber_sequence_t SEQUENCE_OF_PropertyParm_sequence_of[1] = {
2310 { &hf_h248_contextProp_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_PropertyParm },
2314 dissect_h248_SEQUENCE_OF_PropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2315 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2316 SEQUENCE_OF_PropertyParm_sequence_of, hf_index, ett_h248_SEQUENCE_OF_PropertyParm);
2324 dissect_h248_ContextIDinList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2325 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2332 static const ber_sequence_t SEQUENCE_OF_ContextIDinList_sequence_of[1] = {
2333 { &hf_h248_contextList_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_h248_ContextIDinList },
2337 dissect_h248_SEQUENCE_OF_ContextIDinList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2338 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2339 SEQUENCE_OF_ContextIDinList_sequence_of, hf_index, ett_h248_SEQUENCE_OF_ContextIDinList);
2345 static const ber_sequence_t ContextRequest_sequence[] = {
2346 { &hf_h248_priority , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_15 },
2347 { &hf_h248_emergency , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2348 { &hf_h248_topologyReq , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_T_topologyReq },
2349 { &hf_h248_iepscallind_BOOL, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_Iepscallind_BOOL },
2350 { &hf_h248_contextProp , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_PropertyParm },
2351 { &hf_h248_contextList , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_ContextIDinList },
2352 { NULL, 0, 0, 0, NULL }
2356 dissect_h248_ContextRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2357 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2358 ContextRequest_sequence, hf_index, ett_h248_ContextRequest);
2366 dissect_h248_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2367 offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
2373 static const ber_sequence_t IndAudPropertyParm_sequence[] = {
2374 { &hf_h248_name , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_PkgdName },
2375 { &hf_h248_propertyParms , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_PropertyParm },
2376 { NULL, 0, 0, 0, NULL }
2380 dissect_h248_IndAudPropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2381 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2382 IndAudPropertyParm_sequence, hf_index, ett_h248_IndAudPropertyParm);
2388 static const ber_sequence_t SEQUENCE_OF_IndAudPropertyParm_sequence_of[1] = {
2389 { &hf_h248_contextPropAud_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_IndAudPropertyParm },
2393 dissect_h248_SEQUENCE_OF_IndAudPropertyParm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2394 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2395 SEQUENCE_OF_IndAudPropertyParm_sequence_of, hf_index, ett_h248_SEQUENCE_OF_IndAudPropertyParm);
2401 static const value_string h248_SelectLogic_vals[] = {
2402 { 0, "andAUDITSelect" },
2403 { 1, "orAUDITSelect" },
2407 static const ber_choice_t SelectLogic_choice[] = {
2408 { 0, &hf_h248_andAUDITSelect , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_NULL },
2409 { 1, &hf_h248_orAUDITSelect , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_NULL },
2410 { 0, NULL, 0, 0, 0, NULL }
2414 dissect_h248_SelectLogic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2415 offset = dissect_ber_choice(actx, tree, tvb, offset,
2416 SelectLogic_choice, hf_index, ett_h248_SelectLogic,
2423 static const ber_sequence_t ContextAttrAuditRequest_sequence[] = {
2424 { &hf_h248_topology , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
2425 { &hf_h248_cAAREmergency , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
2426 { &hf_h248_cAARPriority , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
2427 { &hf_h248_iepscallind , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
2428 { &hf_h248_contextPropAud , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_IndAudPropertyParm },
2429 { &hf_h248_selectpriority , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_15 },
2430 { &hf_h248_selectemergency, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2431 { &hf_h248_selectiepscallind, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2432 { &hf_h248_selectLogic , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_SelectLogic },
2433 { NULL, 0, 0, 0, NULL }
2437 dissect_h248_ContextAttrAuditRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2438 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2439 ContextAttrAuditRequest_sequence, hf_index, ett_h248_ContextAttrAuditRequest);
2447 dissect_h248_T_contextAttrAuditReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2448 #line 214 "h248.cnf"
2449 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_CTX_ATTR_AUDIT_REQ,offset,keep_persistent_data);
2452 offset = dissect_h248_ContextAttrAuditRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
2454 #line 218 "h248.cnf"
2455 curr_info.cmd = NULL;
2461 static const ber_sequence_t TerminationIDList_sequence_of[1] = {
2462 { &hf_h248_TerminationIDList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_TerminationID },
2466 dissect_h248_TerminationIDList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2467 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2468 TerminationIDList_sequence_of, hf_index, ett_h248_TerminationIDList);
2474 static const value_string h248_EventBufferControl_vals[] = {
2482 dissect_h248_EventBufferControl(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2483 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2490 static const value_string h248_ServiceState_vals[] = {
2499 dissect_h248_ServiceState(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2500 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2507 static const ber_sequence_t TerminationStateDescriptor_sequence[] = {
2508 { &hf_h248_propertyParms_01, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_PropertyParm },
2509 { &hf_h248_tSEventBufferControl, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_EventBufferControl },
2510 { &hf_h248_serviceState , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ServiceState },
2511 { NULL, 0, 0, 0, NULL }
2515 dissect_h248_TerminationStateDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2516 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2517 TerminationStateDescriptor_sequence, hf_index, ett_h248_TerminationStateDescriptor);
2523 static const value_string h248_StreamMode_vals[] = {
2534 dissect_h248_StreamMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2535 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2542 static const ber_sequence_t LocalControlDescriptor_sequence[] = {
2543 { &hf_h248_streamMode , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamMode },
2544 { &hf_h248_reserveValue , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2545 { &hf_h248_reserveGroup , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
2546 { &hf_h248_propertyParms_01, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_PropertyParm },
2547 { NULL, 0, 0, 0, NULL }
2551 dissect_h248_LocalControlDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2552 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2553 LocalControlDescriptor_sequence, hf_index, ett_h248_LocalControlDescriptor);
2559 static const ber_sequence_t PropertyGroup_sequence_of[1] = {
2560 { &hf_h248_PropertyGroup_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_PropertyParm },
2564 dissect_h248_PropertyGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2565 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2566 PropertyGroup_sequence_of, hf_index, ett_h248_PropertyGroup);
2572 static const ber_sequence_t SEQUENCE_OF_PropertyGroup_sequence_of[1] = {
2573 { &hf_h248_propGrps_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_PropertyGroup },
2577 dissect_h248_SEQUENCE_OF_PropertyGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2578 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2579 SEQUENCE_OF_PropertyGroup_sequence_of, hf_index, ett_h248_SEQUENCE_OF_PropertyGroup);
2585 static const ber_sequence_t LocalRemoteDescriptor_sequence[] = {
2586 { &hf_h248_propGrps , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_PropertyGroup },
2587 { NULL, 0, 0, 0, NULL }
2591 dissect_h248_LocalRemoteDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2592 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2593 LocalRemoteDescriptor_sequence, hf_index, ett_h248_LocalRemoteDescriptor);
2601 dissect_h248_StatName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2602 offset = dissect_h248_PkgdName(implicit_tag, tvb, offset, actx, tree, hf_index);
2610 dissect_h248_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2611 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2618 static const ber_sequence_t Value_sequence_of[1] = {
2619 { &hf_h248_Value_item , BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_h248_OCTET_STRING },
2623 dissect_h248_Value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2624 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2625 Value_sequence_of, hf_index, ett_h248_Value);
2633 dissect_h248_StatValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2634 offset = dissect_h248_Value(implicit_tag, tvb, offset, actx, tree, hf_index);
2640 static const ber_sequence_t StatisticsParameter_sequence[] = {
2641 { &hf_h248_statName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_StatName },
2642 { &hf_h248_statValue , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StatValue },
2643 { NULL, 0, 0, 0, NULL }
2647 dissect_h248_StatisticsParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2648 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2649 StatisticsParameter_sequence, hf_index, ett_h248_StatisticsParameter);
2655 static const ber_sequence_t StatisticsDescriptor_sequence_of[1] = {
2656 { &hf_h248_StatisticsDescriptor_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_StatisticsParameter },
2660 dissect_h248_StatisticsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2661 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2662 StatisticsDescriptor_sequence_of, hf_index, ett_h248_StatisticsDescriptor);
2668 static const ber_sequence_t StreamParms_sequence[] = {
2669 { &hf_h248_localControlDescriptor, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_LocalControlDescriptor },
2670 { &hf_h248_localDescriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_LocalRemoteDescriptor },
2671 { &hf_h248_remoteDescriptor, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_LocalRemoteDescriptor },
2672 { &hf_h248_statisticsDescriptor, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StatisticsDescriptor },
2673 { NULL, 0, 0, 0, NULL }
2677 dissect_h248_StreamParms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2678 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2679 StreamParms_sequence, hf_index, ett_h248_StreamParms);
2685 static const ber_sequence_t StreamDescriptor_sequence[] = {
2686 { &hf_h248_streamID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
2687 { &hf_h248_streamParms , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_StreamParms },
2688 { NULL, 0, 0, 0, NULL }
2692 dissect_h248_StreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2693 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2694 StreamDescriptor_sequence, hf_index, ett_h248_StreamDescriptor);
2700 static const ber_sequence_t SEQUENCE_OF_StreamDescriptor_sequence_of[1] = {
2701 { &hf_h248_mediaDescriptorMultiStream_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_StreamDescriptor },
2705 dissect_h248_SEQUENCE_OF_StreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2706 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2707 SEQUENCE_OF_StreamDescriptor_sequence_of, hf_index, ett_h248_SEQUENCE_OF_StreamDescriptor);
2713 static const value_string h248_T_streams_vals[] = {
2715 { 1, "multiStream" },
2719 static const ber_choice_t T_streams_choice[] = {
2720 { 0, &hf_h248_mediaDescriptorOneStream, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_StreamParms },
2721 { 1, &hf_h248_mediaDescriptorMultiStream, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_StreamDescriptor },
2722 { 0, NULL, 0, 0, 0, NULL }
2726 dissect_h248_T_streams(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2727 offset = dissect_ber_choice(actx, tree, tvb, offset,
2728 T_streams_choice, hf_index, ett_h248_T_streams,
2735 static const ber_sequence_t MediaDescriptor_sequence[] = {
2736 { &hf_h248_termStateDescr , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TerminationStateDescriptor },
2737 { &hf_h248_streams , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_T_streams },
2738 { NULL, 0, 0, 0, NULL }
2742 dissect_h248_MediaDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2743 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2744 MediaDescriptor_sequence, hf_index, ett_h248_MediaDescriptor);
2750 static const value_string h248_ModemType_vals[] = {
2765 dissect_h248_ModemType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2766 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2773 static const ber_sequence_t SEQUENCE_OF_ModemType_sequence_of[1] = {
2774 { &hf_h248_mtl_item , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_h248_ModemType },
2778 dissect_h248_SEQUENCE_OF_ModemType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2779 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2780 SEQUENCE_OF_ModemType_sequence_of, hf_index, ett_h248_SEQUENCE_OF_ModemType);
2788 dissect_h248_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2789 offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
2797 dissect_h248_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2798 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2805 static const ber_sequence_t H221NonStandard_sequence[] = {
2806 { &hf_h248_t35CountryCode1, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_255 },
2807 { &hf_h248_t35CountryCode2, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_255 },
2808 { &hf_h248_t35Extension , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_255 },
2809 { &hf_h248_manufacturerCode, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
2810 { NULL, 0, 0, 0, NULL }
2814 dissect_h248_H221NonStandard(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2815 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2816 H221NonStandard_sequence, hf_index, ett_h248_H221NonStandard);
2824 dissect_h248_IA5String_SIZE_8(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2825 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
2826 actx, tree, tvb, offset, hf_index,
2833 static const value_string h248_NonStandardIdentifier_vals[] = {
2835 { 1, "h221NonStandard" },
2836 { 2, "experimental" },
2840 static const ber_choice_t NonStandardIdentifier_choice[] = {
2841 { 0, &hf_h248_object , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_OBJECT_IDENTIFIER },
2842 { 1, &hf_h248_h221NonStandard, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_H221NonStandard },
2843 { 2, &hf_h248_experimental , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_IA5String_SIZE_8 },
2844 { 0, NULL, 0, 0, 0, NULL }
2848 dissect_h248_NonStandardIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2849 offset = dissect_ber_choice(actx, tree, tvb, offset,
2850 NonStandardIdentifier_choice, hf_index, ett_h248_NonStandardIdentifier,
2857 static const ber_sequence_t NonStandardData_sequence[] = {
2858 { &hf_h248_nonStandardIdentifier, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_NonStandardIdentifier },
2859 { &hf_h248_data , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_OCTET_STRING },
2860 { NULL, 0, 0, 0, NULL }
2864 dissect_h248_NonStandardData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2865 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2866 NonStandardData_sequence, hf_index, ett_h248_NonStandardData);
2872 static const ber_sequence_t ModemDescriptor_sequence[] = {
2873 { &hf_h248_mtl , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_ModemType },
2874 { &hf_h248_mpl , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_PropertyParm },
2875 { &hf_h248_nonStandardData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NonStandardData },
2876 { NULL, 0, 0, 0, NULL }
2880 dissect_h248_ModemDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2881 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2882 ModemDescriptor_sequence, hf_index, ett_h248_ModemDescriptor);
2888 static const value_string h248_MuxType_vals[] = {
2899 dissect_h248_MuxType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2900 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2907 static const ber_sequence_t SEQUENCE_OF_TerminationID_sequence_of[1] = {
2908 { &hf_h248_termList_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_TerminationID },
2912 dissect_h248_SEQUENCE_OF_TerminationID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2913 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2914 SEQUENCE_OF_TerminationID_sequence_of, hf_index, ett_h248_SEQUENCE_OF_TerminationID);
2920 static const ber_sequence_t MuxDescriptor_sequence[] = {
2921 { &hf_h248_muxType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_MuxType },
2922 { &hf_h248_termList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_TerminationID },
2923 { &hf_h248_nonStandardData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NonStandardData },
2924 { NULL, 0, 0, 0, NULL }
2928 dissect_h248_MuxDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2929 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2930 MuxDescriptor_sequence, hf_index, ett_h248_MuxDescriptor);
2938 dissect_h248_RequestID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2939 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2949 dissect_h248_Name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2950 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2959 dissect_h248_DigitMapName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2960 offset = dissect_h248_Name(implicit_tag, tvb, offset, actx, tree, hf_index);
2966 static const ber_sequence_t DigitMapValue_sequence[] = {
2967 { &hf_h248_startTimer , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
2968 { &hf_h248_shortTimer , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
2969 { &hf_h248_longTimer , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
2970 { &hf_h248_digitMapBody , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_IA5String },
2971 { &hf_h248_durationTimer , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
2972 { NULL, 0, 0, 0, NULL }
2976 dissect_h248_DigitMapValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2977 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2978 DigitMapValue_sequence, hf_index, ett_h248_DigitMapValue);
2984 static const value_string h248_EventDM_vals[] = {
2985 { 0, "digitMapName" },
2986 { 1, "digitMapValue" },
2990 static const ber_choice_t EventDM_choice[] = {
2991 { 0, &hf_h248_digitMapName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_DigitMapName },
2992 { 1, &hf_h248_digitMapValue , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_DigitMapValue },
2993 { 0, NULL, 0, 0, 0, NULL }
2997 dissect_h248_EventDM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2998 offset = dissect_ber_choice(actx, tree, tvb, offset,
2999 EventDM_choice, hf_index, ett_h248_EventDM,
3007 static const value_string h248_SignalType_vals[] = {
3016 dissect_h248_SignalType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3017 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3024 static const asn_namedbit NotifyCompletion_bits[] = {
3025 { 0, &hf_h248_NotifyCompletion_onTimeOut, -1, -1, "onTimeOut", NULL },
3026 { 1, &hf_h248_NotifyCompletion_onInterruptByEvent, -1, -1, "onInterruptByEvent", NULL },
3027 { 2, &hf_h248_NotifyCompletion_onInterruptByNewSignalDescr, -1, -1, "onInterruptByNewSignalDescr", NULL },
3028 { 3, &hf_h248_NotifyCompletion_otherReason, -1, -1, "otherReason", NULL },
3029 { 4, &hf_h248_NotifyCompletion_onIteration, -1, -1, "onIteration", NULL },
3030 { 0, NULL, 0, 0, NULL, NULL }
3034 dissect_h248_NotifyCompletion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3035 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3036 NotifyCompletion_bits, hf_index, ett_h248_NotifyCompletion,
3045 static const ber_sequence_t SigParamValues_sequence_of[1] = {
3046 { &hf_h248_SigParamValues_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_h248_SigParamValue },
3050 dissect_h248_SigParamValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3051 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3052 SigParamValues_sequence_of, hf_index, ett_h248_SigParamValues);
3058 static const value_string h248_T_extraInfo_vals[] = {
3065 static const ber_choice_t T_extraInfo_choice[] = {
3066 { 0, &hf_h248_relation , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_Relation },
3067 { 1, &hf_h248_range , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3068 { 2, &hf_h248_sublist , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3069 { 0, NULL, 0, 0, 0, NULL }
3073 dissect_h248_T_extraInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3074 offset = dissect_ber_choice(actx, tree, tvb, offset,
3075 T_extraInfo_choice, hf_index, ett_h248_T_extraInfo,
3082 static const ber_sequence_t SigParameter_sequence[] = {
3083 { &hf_h248_sigParameterName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SigParameterName },
3084 { &hf_h248_value , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SigParamValues },
3085 { &hf_h248_extraInfo , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_T_extraInfo },
3086 { NULL, 0, 0, 0, NULL }
3090 dissect_h248_SigParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3091 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3092 SigParameter_sequence, hf_index, ett_h248_SigParameter);
3098 static const ber_sequence_t SEQUENCE_OF_SigParameter_sequence_of[1] = {
3099 { &hf_h248_sigParList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_SigParameter },
3103 dissect_h248_SEQUENCE_OF_SigParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3104 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3105 SEQUENCE_OF_SigParameter_sequence_of, hf_index, ett_h248_SEQUENCE_OF_SigParameter);
3111 static const value_string h248_SignalDirection_vals[] = {
3120 dissect_h248_SignalDirection(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3121 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3128 static const ber_sequence_t Signal_sequence[] = {
3129 { &hf_h248_signalName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SignalName },
3130 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3131 { &hf_h248_sigType , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SignalType },
3132 { &hf_h248_duration , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
3133 { &hf_h248_notifyCompletion, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NotifyCompletion },
3134 { &hf_h248_keepActive , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3135 { &hf_h248_sigParList , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_SigParameter },
3136 { &hf_h248_direction , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SignalDirection },
3137 { &hf_h248_requestID , BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_RequestID },
3138 { &hf_h248_intersigDelay , BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
3139 { NULL, 0, 0, 0, NULL }
3143 dissect_h248_Signal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3144 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3145 Signal_sequence, hf_index, ett_h248_Signal);
3151 static const ber_sequence_t SEQUENCE_OF_Signal_sequence_of[1] = {
3152 { &hf_h248_signalList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_Signal },
3156 dissect_h248_SEQUENCE_OF_Signal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3157 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3158 SEQUENCE_OF_Signal_sequence_of, hf_index, ett_h248_SEQUENCE_OF_Signal);
3164 static const ber_sequence_t SeqSigList_sequence[] = {
3165 { &hf_h248_id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
3166 { &hf_h248_signalList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_Signal },
3167 { NULL, 0, 0, 0, NULL }
3171 dissect_h248_SeqSigList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3172 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3173 SeqSigList_sequence, hf_index, ett_h248_SeqSigList);
3179 static const value_string h248_SignalRequest_vals[] = {
3181 { 1, "seqSigList" },
3185 static const ber_choice_t SignalRequest_choice[] = {
3186 { 0, &hf_h248_signal , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_Signal },
3187 { 1, &hf_h248_seqSigList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SeqSigList },
3188 { 0, NULL, 0, 0, 0, NULL }
3192 dissect_h248_SignalRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3193 offset = dissect_ber_choice(actx, tree, tvb, offset,
3194 SignalRequest_choice, hf_index, ett_h248_SignalRequest,
3201 static const ber_sequence_t SignalsDescriptor_sequence_of[1] = {
3202 { &hf_h248_SignalsDescriptor_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_SignalRequest },
3206 dissect_h248_SignalsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3207 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3208 SignalsDescriptor_sequence_of, hf_index, ett_h248_SignalsDescriptor);
3214 static const ber_sequence_t RegulatedEmbeddedDescriptor_sequence[] = {
3215 { &hf_h248_secondEvent , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SecondEventsDescriptor },
3216 { &hf_h248_signalsDescriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SignalsDescriptor },
3217 { NULL, 0, 0, 0, NULL }
3221 dissect_h248_RegulatedEmbeddedDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3222 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3223 RegulatedEmbeddedDescriptor_sequence, hf_index, ett_h248_RegulatedEmbeddedDescriptor);
3229 static const value_string h248_NotifyBehaviour_vals[] = {
3230 { 0, "notifyImmediate" },
3231 { 1, "notifyRegulated" },
3232 { 2, "neverNotify" },
3236 static const ber_choice_t NotifyBehaviour_choice[] = {
3237 { 0, &hf_h248_notifyImmediate, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3238 { 1, &hf_h248_notifyRegulated, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_RegulatedEmbeddedDescriptor },
3239 { 2, &hf_h248_neverNotify , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3240 { 0, NULL, 0, 0, 0, NULL }
3244 dissect_h248_NotifyBehaviour(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3245 offset = dissect_ber_choice(actx, tree, tvb, offset,
3246 NotifyBehaviour_choice, hf_index, ett_h248_NotifyBehaviour,
3253 static const ber_sequence_t SecondRequestedActions_sequence[] = {
3254 { &hf_h248_keepActive , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3255 { &hf_h248_eventDM , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_EventDM },
3256 { &hf_h248_signalsDescriptor, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SignalsDescriptor },
3257 { &hf_h248_notifyBehaviour, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_NotifyBehaviour },
3258 { &hf_h248_resetEventsDescriptor, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3259 { NULL, 0, 0, 0, NULL }
3263 dissect_h248_SecondRequestedActions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3264 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3265 SecondRequestedActions_sequence, hf_index, ett_h248_SecondRequestedActions);
3273 static const ber_sequence_t EventParamValues_sequence_of[1] = {
3274 { &hf_h248_EventParamValues_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_h248_EventParamValue },
3278 dissect_h248_EventParamValues(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3279 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3280 EventParamValues_sequence_of, hf_index, ett_h248_EventParamValues);
3286 static const value_string h248_EventPar_extraInfo_vals[] = {
3293 static const ber_choice_t EventPar_extraInfo_choice[] = {
3294 { 0, &hf_h248_relation , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_Relation },
3295 { 1, &hf_h248_range , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3296 { 2, &hf_h248_sublist , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3297 { 0, NULL, 0, 0, 0, NULL }
3301 dissect_h248_EventPar_extraInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3302 offset = dissect_ber_choice(actx, tree, tvb, offset,
3303 EventPar_extraInfo_choice, hf_index, ett_h248_EventPar_extraInfo,
3310 static const ber_sequence_t EventParameter_sequence[] = {
3311 { &hf_h248_eventParameterName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_EventParameterName },
3312 { &hf_h248_eventParamValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_EventParamValues },
3313 { &hf_h248_eventPar_extraInfo, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_EventPar_extraInfo },
3314 { NULL, 0, 0, 0, NULL }
3318 dissect_h248_EventParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3319 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3320 EventParameter_sequence, hf_index, ett_h248_EventParameter);
3326 static const ber_sequence_t SEQUENCE_OF_EventParameter_sequence_of[1] = {
3327 { &hf_h248_eventParList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_EventParameter },
3331 dissect_h248_SEQUENCE_OF_EventParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3332 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3333 SEQUENCE_OF_EventParameter_sequence_of, hf_index, ett_h248_SEQUENCE_OF_EventParameter);
3339 static const ber_sequence_t SecondRequestedEvent_sequence[] = {
3340 { &hf_h248_pkgdName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_PkgdName },
3341 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3342 { &hf_h248_secondaryEventAction, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SecondRequestedActions },
3343 { &hf_h248_evParList , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_EventParameter },
3344 { NULL, 0, 0, 0, NULL }
3348 dissect_h248_SecondRequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3349 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3350 SecondRequestedEvent_sequence, hf_index, ett_h248_SecondRequestedEvent);
3356 static const ber_sequence_t SEQUENCE_OF_SecondRequestedEvent_sequence_of[1] = {
3357 { &hf_h248_secondaryEventList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_SecondRequestedEvent },
3361 dissect_h248_SEQUENCE_OF_SecondRequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3362 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3363 SEQUENCE_OF_SecondRequestedEvent_sequence_of, hf_index, ett_h248_SEQUENCE_OF_SecondRequestedEvent);
3369 static const ber_sequence_t SecondEventsDescriptor_sequence[] = {
3370 { &hf_h248_requestID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_RequestID },
3371 { &hf_h248_secondaryEventList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_SecondRequestedEvent },
3372 { NULL, 0, 0, 0, NULL }
3376 dissect_h248_SecondEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3377 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3378 SecondEventsDescriptor_sequence, hf_index, ett_h248_SecondEventsDescriptor);
3384 static const ber_sequence_t RequestedActions_sequence[] = {
3385 { &hf_h248_keepActive , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_BOOLEAN },
3386 { &hf_h248_eventDM , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_EventDM },
3387 { &hf_h248_secondEvent , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SecondEventsDescriptor },
3388 { &hf_h248_signalsDescriptor, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SignalsDescriptor },
3389 { &hf_h248_notifyBehaviour, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_NotifyBehaviour },
3390 { &hf_h248_resetEventsDescriptor, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3391 { NULL, 0, 0, 0, NULL }
3395 dissect_h248_RequestedActions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3396 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3397 RequestedActions_sequence, hf_index, ett_h248_RequestedActions);
3403 static const ber_sequence_t RequestedEvent_sequence[] = {
3404 { &hf_h248_eventName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_EventName },
3405 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3406 { &hf_h248_eventAction , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_RequestedActions },
3407 { &hf_h248_evParList , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_EventParameter },
3408 { NULL, 0, 0, 0, NULL }
3412 dissect_h248_RequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3413 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3414 RequestedEvent_sequence, hf_index, ett_h248_RequestedEvent);
3420 static const ber_sequence_t SEQUENCE_OF_RequestedEvent_sequence_of[1] = {
3421 { &hf_h248_eventList_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_RequestedEvent },
3425 dissect_h248_SEQUENCE_OF_RequestedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3426 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3427 SEQUENCE_OF_RequestedEvent_sequence_of, hf_index, ett_h248_SEQUENCE_OF_RequestedEvent);
3433 static const ber_sequence_t EventsDescriptor_sequence[] = {
3434 { &hf_h248_requestID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_RequestID },
3435 { &hf_h248_eventList , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_RequestedEvent },
3436 { NULL, 0, 0, 0, NULL }
3440 dissect_h248_EventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3441 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3442 EventsDescriptor_sequence, hf_index, ett_h248_EventsDescriptor);
3448 static const ber_sequence_t EventSpec_sequence[] = {
3449 { &hf_h248_eventName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_EventName },
3450 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3451 { &hf_h248_eventParList , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_EventParameter },
3452 { NULL, 0, 0, 0, NULL }
3456 dissect_h248_EventSpec(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3457 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3458 EventSpec_sequence, hf_index, ett_h248_EventSpec);
3464 static const ber_sequence_t EventBufferDescriptor_sequence_of[1] = {
3465 { &hf_h248_EventBufferDescriptor_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_EventSpec },
3469 dissect_h248_EventBufferDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3470 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3471 EventBufferDescriptor_sequence_of, hf_index, ett_h248_EventBufferDescriptor);
3477 static const ber_sequence_t DigitMapDescriptor_sequence[] = {
3478 { &hf_h248_digitMapName , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_DigitMapName },
3479 { &hf_h248_digitMapValue , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_DigitMapValue },
3480 { NULL, 0, 0, 0, NULL }
3484 dissect_h248_DigitMapDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3485 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3486 DigitMapDescriptor_sequence, hf_index, ett_h248_DigitMapDescriptor);
3492 static const asn_namedbit T_auditToken_bits[] = {
3493 { 0, &hf_h248_T_auditToken_muxToken, -1, -1, "muxToken", NULL },
3494 { 1, &hf_h248_T_auditToken_modemToken, -1, -1, "modemToken", NULL },
3495 { 2, &hf_h248_T_auditToken_mediaToken, -1, -1, "mediaToken", NULL },
3496 { 3, &hf_h248_T_auditToken_eventsToken, -1, -1, "eventsToken", NULL },
3497 { 4, &hf_h248_T_auditToken_signalsToken, -1, -1, "signalsToken", NULL },
3498 { 5, &hf_h248_T_auditToken_digitMapToken, -1, -1, "digitMapToken", NULL },
3499 { 6, &hf_h248_T_auditToken_statsToken, -1, -1, "statsToken", NULL },
3500 { 7, &hf_h248_T_auditToken_observedEventsToken, -1, -1, "observedEventsToken", NULL },
3501 { 8, &hf_h248_T_auditToken_packagesToken, -1, -1, "packagesToken", NULL },
3502 { 9, &hf_h248_T_auditToken_eventBufferToken, -1, -1, "eventBufferToken", NULL },
3503 { 0, NULL, 0, 0, NULL, NULL }
3507 dissect_h248_T_auditToken(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3508 offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
3509 T_auditToken_bits, hf_index, ett_h248_T_auditToken,
3516 static const ber_sequence_t IndAudTerminationStateDescriptor_sequence[] = {
3517 { &hf_h248_indAudPropertyParms, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_IndAudPropertyParm },
3518 { &hf_h248_eventBufferControl, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3519 { &hf_h248_iATSDServiceState, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3520 { &hf_h248_serviceStateSel, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ServiceState },
3521 { NULL, 0, 0, 0, NULL }
3525 dissect_h248_IndAudTerminationStateDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3526 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3527 IndAudTerminationStateDescriptor_sequence, hf_index, ett_h248_IndAudTerminationStateDescriptor);
3533 static const ber_sequence_t IndAudLocalControlDescriptor_sequence[] = {
3534 { &hf_h248_iALCDStreamMode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3535 { &hf_h248_iALCDReserveValue, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3536 { &hf_h248_iALCDReserveGroup, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
3537 { &hf_h248_indAudPropertyParms, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_IndAudPropertyParm },
3538 { &hf_h248_streamModeSel , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamMode },
3539 { NULL, 0, 0, 0, NULL }
3543 dissect_h248_IndAudLocalControlDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3544 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3545 IndAudLocalControlDescriptor_sequence, hf_index, ett_h248_IndAudLocalControlDescriptor);
3551 static const ber_sequence_t IndAudPropertyGroup_sequence_of[1] = {
3552 { &hf_h248_IndAudPropertyGroup_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_IndAudPropertyParm },
3556 dissect_h248_IndAudPropertyGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3557 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3558 IndAudPropertyGroup_sequence_of, hf_index, ett_h248_IndAudPropertyGroup);
3564 static const ber_sequence_t IndAudLocalRemoteDescriptor_sequence[] = {
3565 { &hf_h248_propGroupID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
3566 { &hf_h248_iAPropertyGroup, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IndAudPropertyGroup },
3567 { NULL, 0, 0, 0, NULL }
3571 dissect_h248_IndAudLocalRemoteDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3572 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3573 IndAudLocalRemoteDescriptor_sequence, hf_index, ett_h248_IndAudLocalRemoteDescriptor);
3579 static const ber_sequence_t IndAudStatisticsDescriptor_sequence[] = {
3580 { &hf_h248_iAStatName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_PkgdName },
3581 { NULL, 0, 0, 0, NULL }
3585 dissect_h248_IndAudStatisticsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3586 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3587 IndAudStatisticsDescriptor_sequence, hf_index, ett_h248_IndAudStatisticsDescriptor);
3593 static const ber_sequence_t IndAudStreamParms_sequence[] = {
3594 { &hf_h248_iASPLocalControlDescriptor, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudLocalControlDescriptor },
3595 { &hf_h248_iASPLocalDescriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudLocalRemoteDescriptor },
3596 { &hf_h248_iASPRemoteDescriptor, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudLocalRemoteDescriptor },
3597 { &hf_h248_statisticsDescriptor_01, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudStatisticsDescriptor },
3598 { NULL, 0, 0, 0, NULL }
3602 dissect_h248_IndAudStreamParms(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3603 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3604 IndAudStreamParms_sequence, hf_index, ett_h248_IndAudStreamParms);
3610 static const ber_sequence_t IndAudStreamDescriptor_sequence[] = {
3611 { &hf_h248_streamID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3612 { &hf_h248_indAudStreamParms, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IndAudStreamParms },
3613 { NULL, 0, 0, 0, NULL }
3617 dissect_h248_IndAudStreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3618 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3619 IndAudStreamDescriptor_sequence, hf_index, ett_h248_IndAudStreamDescriptor);
3625 static const ber_sequence_t SEQUENCE_OF_IndAudStreamDescriptor_sequence_of[1] = {
3626 { &hf_h248_multiStream_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_IndAudStreamDescriptor },
3630 dissect_h248_SEQUENCE_OF_IndAudStreamDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3631 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3632 SEQUENCE_OF_IndAudStreamDescriptor_sequence_of, hf_index, ett_h248_SEQUENCE_OF_IndAudStreamDescriptor);
3638 static const value_string h248_IndAudMediaDescriptorStreams_vals[] = {
3640 { 1, "multiStream" },
3644 static const ber_choice_t IndAudMediaDescriptorStreams_choice[] = {
3645 { 0, &hf_h248_oneStream , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IndAudStreamParms },
3646 { 1, &hf_h248_multiStream , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_IndAudStreamDescriptor },
3647 { 0, NULL, 0, 0, 0, NULL }
3651 dissect_h248_IndAudMediaDescriptorStreams(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3652 offset = dissect_ber_choice(actx, tree, tvb, offset,
3653 IndAudMediaDescriptorStreams_choice, hf_index, ett_h248_IndAudMediaDescriptorStreams,
3660 static const ber_sequence_t IndAudMediaDescriptor_sequence[] = {
3661 { &hf_h248_indAudTerminationStateDescriptor, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudTerminationStateDescriptor },
3662 { &hf_h248_indAudMediaDescriptorStreams, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudMediaDescriptorStreams },
3663 { NULL, 0, 0, 0, NULL }
3667 dissect_h248_IndAudMediaDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3668 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3669 IndAudMediaDescriptor_sequence, hf_index, ett_h248_IndAudMediaDescriptor);
3675 static const ber_sequence_t IndAudEventsDescriptor_sequence[] = {
3676 { &hf_h248_requestID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_RequestID },
3677 { &hf_h248_iAEDPkgdName , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_PkgdName },
3678 { &hf_h248_streamID , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3679 { NULL, 0, 0, 0, NULL }
3683 dissect_h248_IndAudEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3684 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3685 IndAudEventsDescriptor_sequence, hf_index, ett_h248_IndAudEventsDescriptor);
3691 static const ber_sequence_t IndAudEventBufferDescriptor_sequence[] = {
3692 { &hf_h248_iAEBDEventName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_PkgdName },
3693 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3694 { NULL, 0, 0, 0, NULL }
3698 dissect_h248_IndAudEventBufferDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3699 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3700 IndAudEventBufferDescriptor_sequence, hf_index, ett_h248_IndAudEventBufferDescriptor);
3706 static const ber_sequence_t IndAudSignal_sequence[] = {
3707 { &hf_h248_iASignalName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_PkgdName },
3708 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
3709 { &hf_h248_signalRequestID, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_RequestID },
3710 { NULL, 0, 0, 0, NULL }
3714 dissect_h248_IndAudSignal(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3715 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3716 IndAudSignal_sequence, hf_index, ett_h248_IndAudSignal);
3722 static const ber_sequence_t IndAudSeqSigList_sequence[] = {
3723 { &hf_h248_id , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
3724 { &hf_h248_iASignalList , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_IndAudSignal },
3725 { NULL, 0, 0, 0, NULL }
3729 dissect_h248_IndAudSeqSigList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3730 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3731 IndAudSeqSigList_sequence, hf_index, ett_h248_IndAudSeqSigList);
3737 static const value_string h248_IndAudSignalsDescriptor_vals[] = {
3739 { 1, "seqSigList" },
3743 static const ber_choice_t IndAudSignalsDescriptor_choice[] = {
3744 { 0, &hf_h248_indAudSignal , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IndAudSignal },
3745 { 1, &hf_h248_indAudSeqSigList, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IndAudSeqSigList },
3746 { 0, NULL, 0, 0, 0, NULL }
3750 dissect_h248_IndAudSignalsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3751 offset = dissect_ber_choice(actx, tree, tvb, offset,
3752 IndAudSignalsDescriptor_choice, hf_index, ett_h248_IndAudSignalsDescriptor,
3759 static const ber_sequence_t IndAudDigitMapDescriptor_sequence[] = {
3760 { &hf_h248_digitMapName , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_DigitMapName },
3761 { NULL, 0, 0, 0, NULL }
3765 dissect_h248_IndAudDigitMapDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3766 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3767 IndAudDigitMapDescriptor_sequence, hf_index, ett_h248_IndAudDigitMapDescriptor);
3773 static const ber_sequence_t IndAudPackagesDescriptor_sequence[] = {
3774 { &hf_h248_packageName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_Name },
3775 { &hf_h248_packageVersion , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
3776 { NULL, 0, 0, 0, NULL }
3780 dissect_h248_IndAudPackagesDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3781 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3782 IndAudPackagesDescriptor_sequence, hf_index, ett_h248_IndAudPackagesDescriptor);
3788 static const value_string h248_IndAuditParameter_vals[] = {
3789 { 0, "indaudmediaDescriptor" },
3790 { 1, "indaudeventsDescriptor" },
3791 { 2, "indaudeventBufferDescriptor" },
3792 { 3, "indaudsignalsDescriptor" },
3793 { 4, "indauddigitMapDescriptor" },
3794 { 5, "indaudstatisticsDescriptor" },
3795 { 6, "indaudpackagesDescriptor" },
3799 static const ber_choice_t IndAuditParameter_choice[] = {
3800 { 0, &hf_h248_indaudmediaDescriptor, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IndAudMediaDescriptor },
3801 { 1, &hf_h248_indaudeventsDescriptor, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IndAudEventsDescriptor },
3802 { 2, &hf_h248_indaudeventBufferDescriptor, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_IndAudEventBufferDescriptor },
3803 { 3, &hf_h248_indaudsignalsDescriptor, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_IndAudSignalsDescriptor },
3804 { 4, &hf_h248_indauddigitMapDescriptor, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_IndAudDigitMapDescriptor },
3805 { 5, &hf_h248_indaudstatisticsDescriptor, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_h248_IndAudStatisticsDescriptor },
3806 { 6, &hf_h248_indaudpackagesDescriptor, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_h248_IndAudPackagesDescriptor },
3807 { 0, NULL, 0, 0, 0, NULL }
3811 dissect_h248_IndAuditParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3812 offset = dissect_ber_choice(actx, tree, tvb, offset,
3813 IndAuditParameter_choice, hf_index, ett_h248_IndAuditParameter,
3820 static const ber_sequence_t SEQUENCE_OF_IndAuditParameter_sequence_of[1] = {
3821 { &hf_h248_auditPropertyToken_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_IndAuditParameter },
3825 dissect_h248_SEQUENCE_OF_IndAuditParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3826 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3827 SEQUENCE_OF_IndAuditParameter_sequence_of, hf_index, ett_h248_SEQUENCE_OF_IndAuditParameter);
3833 static const ber_sequence_t AuditDescriptor_sequence[] = {
3834 { &hf_h248_auditToken , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_T_auditToken },
3835 { &hf_h248_auditPropertyToken, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_IndAuditParameter },
3836 { NULL, 0, 0, 0, NULL }
3840 dissect_h248_AuditDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3841 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3842 AuditDescriptor_sequence, hf_index, ett_h248_AuditDescriptor);
3848 static const value_string h248_AmmDescriptor_vals[] = {
3849 { 0, "mediaDescriptor" },
3850 { 1, "modemDescriptor" },
3851 { 2, "muxDescriptor" },
3852 { 3, "eventsDescriptor" },
3853 { 4, "eventBufferDescriptor" },
3854 { 5, "signalsDescriptor" },
3855 { 6, "digitMapDescriptor" },
3856 { 7, "auditDescriptor" },
3857 { 8, "statisticsDescriptor" },
3861 static const ber_choice_t AmmDescriptor_choice[] = {
3862 { 0, &hf_h248_mediaDescriptor, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_MediaDescriptor },
3863 { 1, &hf_h248_modemDescriptor, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_ModemDescriptor },
3864 { 2, &hf_h248_muxDescriptor , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_MuxDescriptor },
3865 { 3, &hf_h248_eventsDescriptor, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_EventsDescriptor },
3866 { 4, &hf_h248_eventBufferDescriptor, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_EventBufferDescriptor },
3867 { 5, &hf_h248_signalsDescriptor, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_h248_SignalsDescriptor },
3868 { 6, &hf_h248_digitMapDescriptor, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_h248_DigitMapDescriptor },
3869 { 7, &hf_h248_auditDescriptor, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_h248_AuditDescriptor },
3870 { 8, &hf_h248_statisticsDescriptor, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_h248_StatisticsDescriptor },
3871 { 0, NULL, 0, 0, 0, NULL }
3875 dissect_h248_AmmDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3876 offset = dissect_ber_choice(actx, tree, tvb, offset,
3877 AmmDescriptor_choice, hf_index, ett_h248_AmmDescriptor,
3884 static const ber_sequence_t SEQUENCE_OF_AmmDescriptor_sequence_of[1] = {
3885 { &hf_h248_descriptors_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_AmmDescriptor },
3889 dissect_h248_SEQUENCE_OF_AmmDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3890 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3891 SEQUENCE_OF_AmmDescriptor_sequence_of, hf_index, ett_h248_SEQUENCE_OF_AmmDescriptor);
3897 static const ber_sequence_t AmmRequest_sequence[] = {
3898 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
3899 { &hf_h248_descriptors , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_AmmDescriptor },
3900 { NULL, 0, 0, 0, NULL }
3904 dissect_h248_AmmRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3905 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3906 AmmRequest_sequence, hf_index, ett_h248_AmmRequest);
3914 dissect_h248_T_addReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3915 #line 139 "h248.cnf"
3916 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REQ,offset,keep_persistent_data);
3919 offset = dissect_h248_AmmRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
3921 #line 144 "h248.cnf"
3922 curr_info.cmd = NULL;
3930 dissect_h248_T_moveReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3931 #line 148 "h248.cnf"
3932 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REQ,offset,keep_persistent_data);
3936 offset = dissect_h248_AmmRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
3938 #line 154 "h248.cnf"
3939 curr_info.cmd = NULL;
3947 dissect_h248_T_modReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3948 #line 158 "h248.cnf"
3949 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REQ,offset,keep_persistent_data);
3952 offset = dissect_h248_AmmRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
3954 #line 162 "h248.cnf"
3955 curr_info.cmd = NULL;
3961 static const ber_sequence_t SubtractRequest_sequence[] = {
3962 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
3963 { &hf_h248_auditDescriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_AuditDescriptor },
3964 { NULL, 0, 0, 0, NULL }
3968 dissect_h248_SubtractRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3969 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3970 SubtractRequest_sequence, hf_index, ett_h248_SubtractRequest);
3978 dissect_h248_T_subtractReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3979 #line 166 "h248.cnf"
3980 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REQ,offset,keep_persistent_data);
3983 offset = dissect_h248_SubtractRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
3985 #line 170 "h248.cnf"
3986 curr_info.cmd = NULL;
3992 static const ber_sequence_t AuditRequest_sequence[] = {
3993 { &hf_h248_terminationID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationID },
3994 { &hf_h248_auditDescriptor, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_AuditDescriptor },
3995 { &hf_h248_terminationIDList, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
3996 { NULL, 0, 0, 0, NULL }
4000 dissect_h248_AuditRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4001 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4002 AuditRequest_sequence, hf_index, ett_h248_AuditRequest);
4010 dissect_h248_T_auditCapRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4011 #line 174 "h248.cnf"
4012 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REQ,offset,keep_persistent_data);
4015 offset = dissect_h248_AuditRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
4017 #line 178 "h248.cnf"
4018 curr_info.cmd = NULL;
4026 dissect_h248_T_auditValueRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4027 #line 182 "h248.cnf"
4028 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REQ,offset,keep_persistent_data);
4031 offset = dissect_h248_AuditRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
4033 #line 186 "h248.cnf"
4034 curr_info.cmd = NULL;
4040 static const ber_sequence_t TimeNotation_sequence[] = {
4041 { &hf_h248_date , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IA5String_SIZE_8 },
4042 { &hf_h248_time , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IA5String_SIZE_8 },
4043 { NULL, 0, 0, 0, NULL }
4047 dissect_h248_TimeNotation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4048 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4049 TimeNotation_sequence, hf_index, ett_h248_TimeNotation);
4055 static const ber_sequence_t ObservedEvent_sequence[] = {
4056 { &hf_h248_eventName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_EventName },
4057 { &hf_h248_streamID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_StreamID },
4058 { &hf_h248_eventParList , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_EventParameter },
4059 { &hf_h248_timeNotation , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TimeNotation },
4060 { NULL, 0, 0, 0, NULL }
4064 dissect_h248_ObservedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4065 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4066 ObservedEvent_sequence, hf_index, ett_h248_ObservedEvent);
4072 static const ber_sequence_t SEQUENCE_OF_ObservedEvent_sequence_of[1] = {
4073 { &hf_h248_observedEventLst_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_ObservedEvent },
4077 dissect_h248_SEQUENCE_OF_ObservedEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4078 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4079 SEQUENCE_OF_ObservedEvent_sequence_of, hf_index, ett_h248_SEQUENCE_OF_ObservedEvent);
4085 static const ber_sequence_t ObservedEventsDescriptor_sequence[] = {
4086 { &hf_h248_requestId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_RequestID },
4087 { &hf_h248_observedEventLst, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_ObservedEvent },
4088 { NULL, 0, 0, 0, NULL }
4092 dissect_h248_ObservedEventsDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4093 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4094 ObservedEventsDescriptor_sequence, hf_index, ett_h248_ObservedEventsDescriptor);
4100 static const ber_sequence_t NotifyRequest_sequence[] = {
4101 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4102 { &hf_h248_observedEventsDescriptor, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_ObservedEventsDescriptor },
4103 { &hf_h248_errorDescriptor, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4104 { NULL, 0, 0, 0, NULL }
4108 dissect_h248_NotifyRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4109 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4110 NotifyRequest_sequence, hf_index, ett_h248_NotifyRequest);
4118 dissect_h248_T_notifyReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4119 #line 190 "h248.cnf"
4120 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REQ,offset,keep_persistent_data);
4123 offset = dissect_h248_NotifyRequest(implicit_tag, tvb, offset, actx, tree, hf_index);
4125 #line 194 "h248.cnf"
4126 curr_info.cmd = NULL;
4132 static const value_string h248_ServiceChangeMethod_vals[] = {
4137 { 4, "disconnected" },
4144 dissect_h248_ServiceChangeMethod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4145 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4152 static const value_string h248_ServiceChangeAddress_vals[] = {
4153 { 0, "portNumber" },
4154 { 1, "ip4Address" },
4155 { 2, "ip6Address" },
4156 { 3, "domainName" },
4157 { 4, "deviceName" },
4158 { 5, "mtpAddress" },
4162 static const ber_choice_t ServiceChangeAddress_choice[] = {
4163 { 0, &hf_h248_portNumber , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_65535 },
4164 { 1, &hf_h248_ip4Address , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_IP4Address },
4165 { 2, &hf_h248_ip6Address , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_IP6Address },
4166 { 3, &hf_h248_domainName , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_DomainName },
4167 { 4, &hf_h248_deviceName , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_PathName },
4168 { 5, &hf_h248_mtpAddress , BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_h248_MtpAddress },
4169 { 0, NULL, 0, 0, 0, NULL }
4173 dissect_h248_ServiceChangeAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4174 offset = dissect_ber_choice(actx, tree, tvb, offset,
4175 ServiceChangeAddress_choice, hf_index, ett_h248_ServiceChangeAddress,
4184 dissect_h248_IA5String_SIZE_1_67(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4185 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
4186 actx, tree, tvb, offset, hf_index,
4193 static const ber_sequence_t ServiceChangeProfile_sequence[] = {
4194 { &hf_h248_profileName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_IA5String_SIZE_1_67 },
4195 { NULL, 0, 0, 0, NULL }
4199 dissect_h248_ServiceChangeProfile(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4200 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4201 ServiceChangeProfile_sequence, hf_index, ett_h248_ServiceChangeProfile);
4209 dissect_h248_SCreasonValueOctetStr(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4210 #line 322 "h248.cnf"
4212 tvbuff_t *parameter_tvb;
4213 offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4220 dissect_h248_ServiceChangeReasonStr(FALSE, parameter_tvb, 0, actx, tree, hf_h248_serviceChangeReasonStr);
4228 static const ber_sequence_t SCreasonValue_sequence_of[1] = {
4229 { &hf_h248_SCreasonValue_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_h248_SCreasonValueOctetStr },
4233 dissect_h248_SCreasonValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4234 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4235 SCreasonValue_sequence_of, hf_index, ett_h248_SCreasonValue);
4243 dissect_h248_INTEGER_0_4294967295(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4244 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4251 static const ber_sequence_t ServiceChangeParm_sequence[] = {
4252 { &hf_h248_serviceChangeMethod, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeMethod },
4253 { &hf_h248_serviceChangeAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_ServiceChangeAddress },
4254 { &hf_h248_serviceChangeVersion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
4255 { &hf_h248_serviceChangeProfile, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeProfile },
4256 { &hf_h248_serviceChangeReason, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_SCreasonValue },
4257 { &hf_h248_serviceChangeDelay, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_4294967295 },
4258 { &hf_h248_serviceChangeMgcId, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_MId },
4259 { &hf_h248_timeStamp , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TimeNotation },
4260 { &hf_h248_nonStandardData, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NonStandardData },
4261 { &hf_h248_serviceChangeInfo, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_AuditDescriptor },
4262 { &hf_h248_serviceChangeIncompleteFlag, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
4263 { NULL, 0, 0, 0, NULL }
4267 dissect_h248_ServiceChangeParm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4268 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4269 ServiceChangeParm_sequence, hf_index, ett_h248_ServiceChangeParm);
4275 static const ber_sequence_t ServiceChangeRequest_sequence[] = {
4276 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4277 { &hf_h248_serviceChangeParms, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeParm },
4278 { NULL, 0, 0, 0, NULL }
4282 dissect_h248_ServiceChangeRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4283 #line 198 "h248.cnf"
4284 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REQ,offset,keep_persistent_data);
4287 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4288 ServiceChangeRequest_sequence, hf_index, ett_h248_ServiceChangeRequest);
4290 #line 202 "h248.cnf"
4291 curr_info.cmd = NULL;
4297 static const value_string h248_Command_vals[] = {
4301 { 3, "subtractReq" },
4302 { 4, "auditCapRequest" },
4303 { 5, "auditValueRequest" },
4305 { 7, "serviceChangeReq" },
4309 static const ber_choice_t Command_choice[] = {
4310 { 0, &hf_h248_addReq , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_addReq },
4311 { 1, &hf_h248_moveReq , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_T_moveReq },
4312 { 2, &hf_h248_modReq , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_T_modReq },
4313 { 3, &hf_h248_subtractReq , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_T_subtractReq },
4314 { 4, &hf_h248_auditCapRequest, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_T_auditCapRequest },
4315 { 5, &hf_h248_auditValueRequest, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_h248_T_auditValueRequest },
4316 { 6, &hf_h248_notifyReq , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_h248_T_notifyReq },
4317 { 7, &hf_h248_serviceChangeReq, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeRequest },
4318 { 0, NULL, 0, 0, 0, NULL }
4322 dissect_h248_Command(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4323 offset = dissect_ber_choice(actx, tree, tvb, offset,
4324 Command_choice, hf_index, ett_h248_Command,
4331 static const ber_sequence_t CommandRequest_sequence[] = {
4332 { &hf_h248_command , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_Command },
4333 { &hf_h248_optional , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
4334 { &hf_h248_wildcardReturn , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
4335 { NULL, 0, 0, 0, NULL }
4339 dissect_h248_CommandRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4340 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4341 CommandRequest_sequence, hf_index, ett_h248_CommandRequest);
4347 static const ber_sequence_t SEQUENCE_OF_CommandRequest_sequence_of[1] = {
4348 { &hf_h248_commandRequests_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_CommandRequest },
4352 dissect_h248_SEQUENCE_OF_CommandRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4353 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4354 SEQUENCE_OF_CommandRequest_sequence_of, hf_index, ett_h248_SEQUENCE_OF_CommandRequest);
4360 static const ber_sequence_t ActionRequest_sequence[] = {
4361 { &hf_h248_contextId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ContextId },
4362 { &hf_h248_contextRequest , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ContextRequest },
4363 { &hf_h248_contextAttrAuditReq, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_T_contextAttrAuditReq },
4364 { &hf_h248_commandRequests, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_CommandRequest },
4365 { NULL, 0, 0, 0, NULL }
4369 dissect_h248_ActionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4370 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4371 ActionRequest_sequence, hf_index, ett_h248_ActionRequest);
4377 static const ber_sequence_t SEQUENCE_OF_ActionRequest_sequence_of[1] = {
4378 { &hf_h248_actions_item , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_ActionRequest },
4382 dissect_h248_SEQUENCE_OF_ActionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4383 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4384 SEQUENCE_OF_ActionRequest_sequence_of, hf_index, ett_h248_SEQUENCE_OF_ActionRequest);
4390 static const ber_sequence_t TransactionRequest_sequence[] = {
4391 { &hf_h248_transactionId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_transactionId },
4392 { &hf_h248_actions , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_ActionRequest },
4393 { NULL, 0, 0, 0, NULL }
4397 dissect_h248_TransactionRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4398 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4399 TransactionRequest_sequence, hf_index, ett_h248_TransactionRequest);
4407 dissect_h248_T_tpend_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4408 #line 105 "h248.cnf"
4410 offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
4411 curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_PENDING, keep_persistent_data);
4420 static const ber_sequence_t TransactionPending_sequence[] = {
4421 { &hf_h248_tpend_transactionId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_tpend_transactionId },
4422 { NULL, 0, 0, 0, NULL }
4426 dissect_h248_TransactionPending(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4427 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4428 TransactionPending_sequence, hf_index, ett_h248_TransactionPending);
4436 dissect_h248_T_trep_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4437 #line 111 "h248.cnf"
4439 offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
4440 curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_REPLY, keep_persistent_data);
4449 static const ber_sequence_t PackagesItem_sequence[] = {
4450 { &hf_h248_packageName , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_Name },
4451 { &hf_h248_packageVersion , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
4452 { NULL, 0, 0, 0, NULL }
4456 dissect_h248_PackagesItem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4457 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4458 PackagesItem_sequence, hf_index, ett_h248_PackagesItem);
4464 static const ber_sequence_t PackagesDescriptor_sequence_of[1] = {
4465 { &hf_h248_PackagesDescriptor_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_PackagesItem },
4469 dissect_h248_PackagesDescriptor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4470 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4471 PackagesDescriptor_sequence_of, hf_index, ett_h248_PackagesDescriptor);
4477 static const value_string h248_AuditReturnParameter_vals[] = {
4478 { 0, "errorDescriptor" },
4479 { 1, "mediaDescriptor" },
4480 { 2, "modemDescriptor" },
4481 { 3, "muxDescriptor" },
4482 { 4, "eventsDescriptor" },
4483 { 5, "eventBufferDescriptor" },
4484 { 6, "signalsDescriptor" },
4485 { 7, "digitMapDescriptor" },
4486 { 8, "observedEventsDescriptor" },
4487 { 9, "statisticsDescriptor" },
4488 { 10, "packagesDescriptor" },
4489 { 11, "emptyDescriptors" },
4493 static const ber_choice_t AuditReturnParameter_choice[] = {
4494 { 0, &hf_h248_errorDescriptor, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4495 { 1, &hf_h248_mediaDescriptor, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_MediaDescriptor },
4496 { 2, &hf_h248_modemDescriptor, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_ModemDescriptor },
4497 { 3, &hf_h248_muxDescriptor , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_MuxDescriptor },
4498 { 4, &hf_h248_eventsDescriptor, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_EventsDescriptor },
4499 { 5, &hf_h248_eventBufferDescriptor, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_h248_EventBufferDescriptor },
4500 { 6, &hf_h248_signalsDescriptor, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_h248_SignalsDescriptor },
4501 { 7, &hf_h248_digitMapDescriptor, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_h248_DigitMapDescriptor },
4502 { 8, &hf_h248_observedEventsDescriptor, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_h248_ObservedEventsDescriptor },
4503 { 9, &hf_h248_statisticsDescriptor, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_h248_StatisticsDescriptor },
4504 { 10, &hf_h248_packagesDescriptor, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_h248_PackagesDescriptor },
4505 { 11, &hf_h248_emptyDescriptors, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_h248_AuditDescriptor },
4506 { 0, NULL, 0, 0, 0, NULL }
4510 dissect_h248_AuditReturnParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4511 offset = dissect_ber_choice(actx, tree, tvb, offset,
4512 AuditReturnParameter_choice, hf_index, ett_h248_AuditReturnParameter,
4519 static const ber_sequence_t TerminationAudit_sequence_of[1] = {
4520 { &hf_h248_TerminationAudit_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_AuditReturnParameter },
4524 dissect_h248_TerminationAudit(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4525 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4526 TerminationAudit_sequence_of, hf_index, ett_h248_TerminationAudit);
4532 static const ber_sequence_t AmmsReply_sequence[] = {
4533 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4534 { &hf_h248_terminationAudit, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TerminationAudit },
4535 { NULL, 0, 0, 0, NULL }
4539 dissect_h248_AmmsReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4540 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4541 AmmsReply_sequence, hf_index, ett_h248_AmmsReply);
4549 dissect_h248_T_addReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4550 #line 222 "h248.cnf"
4551 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_ADD_REPLY,offset,keep_persistent_data);
4554 offset = dissect_h248_AmmsReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4562 dissect_h248_T_moveReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4563 #line 227 "h248.cnf"
4564 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOVE_REPLY,offset,keep_persistent_data);
4567 offset = dissect_h248_AmmsReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4575 dissect_h248_T_modReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4576 #line 232 "h248.cnf"
4577 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_MOD_REPLY,offset,keep_persistent_data);
4580 offset = dissect_h248_AmmsReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4588 dissect_h248_T_subtractReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4589 #line 237 "h248.cnf"
4590 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SUB_REPLY,offset,keep_persistent_data);
4593 offset = dissect_h248_AmmsReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4599 static const ber_sequence_t AuditResult_sequence[] = {
4600 { &hf_h248_terminationID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationID },
4601 { &hf_h248_terminationAuditResult, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_TerminationAudit },
4602 { NULL, 0, 0, 0, NULL }
4606 dissect_h248_AuditResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4607 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4608 AuditResult_sequence, hf_index, ett_h248_AuditResult);
4614 static const ber_sequence_t TermListAuditResult_sequence[] = {
4615 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4616 { &hf_h248_terminationAuditResult, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_TerminationAudit },
4617 { NULL, 0, 0, 0, NULL }
4621 dissect_h248_TermListAuditResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4622 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4623 TermListAuditResult_sequence, hf_index, ett_h248_TermListAuditResult);
4629 static const value_string h248_AuditReply_vals[] = {
4630 { 0, "contextAuditResult" },
4632 { 2, "auditResult" },
4633 { 3, "auditResultTermList" },
4637 static const ber_choice_t AuditReply_choice[] = {
4638 { 0, &hf_h248_contextAuditResult, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4639 { 1, &hf_h248_error , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4640 { 2, &hf_h248_auditResult , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_AuditResult },
4641 { 3, &hf_h248_auditResultTermList, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_TermListAuditResult },
4642 { 0, NULL, 0, 0, 0, NULL }
4646 dissect_h248_AuditReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4647 offset = dissect_ber_choice(actx, tree, tvb, offset,
4648 AuditReply_choice, hf_index, ett_h248_AuditReply,
4657 dissect_h248_T_auditCapReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4658 #line 252 "h248.cnf"
4659 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITCAP_REPLY,offset,keep_persistent_data);
4662 offset = dissect_h248_AuditReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4670 dissect_h248_T_auditValueReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4671 #line 257 "h248.cnf"
4672 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_AUDITVAL_REPLY,offset,keep_persistent_data);
4675 offset = dissect_h248_AuditReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4681 static const ber_sequence_t NotifyReply_sequence[] = {
4682 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4683 { &hf_h248_errorDescriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4684 { NULL, 0, 0, 0, NULL }
4688 dissect_h248_NotifyReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4689 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4690 NotifyReply_sequence, hf_index, ett_h248_NotifyReply);
4698 dissect_h248_T_notifyReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4699 #line 242 "h248.cnf"
4700 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_NOTIFY_REPLY,offset,keep_persistent_data);
4703 offset = dissect_h248_NotifyReply(implicit_tag, tvb, offset, actx, tree, hf_index);
4709 static const ber_sequence_t ServiceChangeResParm_sequence[] = {
4710 { &hf_h248_serviceChangeMgcId, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_MId },
4711 { &hf_h248_serviceChangeAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_ServiceChangeAddress },
4712 { &hf_h248_serviceChangeVersion, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
4713 { &hf_h248_serviceChangeProfile, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeProfile },
4714 { &hf_h248_timestamp , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TimeNotation },
4715 { NULL, 0, 0, 0, NULL }
4719 dissect_h248_ServiceChangeResParm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4720 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4721 ServiceChangeResParm_sequence, hf_index, ett_h248_ServiceChangeResParm);
4727 static const value_string h248_ServiceChangeResult_vals[] = {
4728 { 0, "errorDescriptor" },
4729 { 1, "serviceChangeResParms" },
4733 static const ber_choice_t ServiceChangeResult_choice[] = {
4734 { 0, &hf_h248_errorDescriptor, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4735 { 1, &hf_h248_serviceChangeResParms, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeResParm },
4736 { 0, NULL, 0, 0, 0, NULL }
4740 dissect_h248_ServiceChangeResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4741 offset = dissect_ber_choice(actx, tree, tvb, offset,
4742 ServiceChangeResult_choice, hf_index, ett_h248_ServiceChangeResult,
4749 static const ber_sequence_t ServiceChangeReply_sequence[] = {
4750 { &hf_h248_terminationIDList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TerminationIDList },
4751 { &hf_h248_serviceChangeResult, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_ServiceChangeResult },
4752 { NULL, 0, 0, 0, NULL }
4756 dissect_h248_ServiceChangeReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4757 #line 247 "h248.cnf"
4758 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_SVCCHG_REPLY,offset,keep_persistent_data);
4761 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4762 ServiceChangeReply_sequence, hf_index, ett_h248_ServiceChangeReply);
4768 static const value_string h248_CommandReply_vals[] = {
4772 { 3, "subtractReply" },
4773 { 4, "auditCapReply" },
4774 { 5, "auditValueReply" },
4775 { 6, "notifyReply" },
4776 { 7, "serviceChangeReply" },
4780 static const ber_choice_t CommandReply_choice[] = {
4781 { 0, &hf_h248_addReply , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_addReply },
4782 { 1, &hf_h248_moveReply , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_T_moveReply },
4783 { 2, &hf_h248_modReply , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_T_modReply },
4784 { 3, &hf_h248_subtractReply , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_T_subtractReply },
4785 { 4, &hf_h248_auditCapReply , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_T_auditCapReply },
4786 { 5, &hf_h248_auditValueReply, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_h248_T_auditValueReply },
4787 { 6, &hf_h248_notifyReply , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_h248_T_notifyReply },
4788 { 7, &hf_h248_serviceChangeReply, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_h248_ServiceChangeReply },
4789 { 0, NULL, 0, 0, 0, NULL }
4793 dissect_h248_CommandReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4794 offset = dissect_ber_choice(actx, tree, tvb, offset,
4795 CommandReply_choice, hf_index, ett_h248_CommandReply,
4802 static const ber_sequence_t SEQUENCE_OF_CommandReply_sequence_of[1] = {
4803 { &hf_h248_commandReply_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_CommandReply },
4807 dissect_h248_SEQUENCE_OF_CommandReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4808 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4809 SEQUENCE_OF_CommandReply_sequence_of, hf_index, ett_h248_SEQUENCE_OF_CommandReply);
4815 static const ber_sequence_t ActionReply_sequence[] = {
4816 { &hf_h248_contextId , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ContextId },
4817 { &hf_h248_errorDescriptor, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4818 { &hf_h248_contextReply , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_ContextRequest },
4819 { &hf_h248_commandReply , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_CommandReply },
4820 { NULL, 0, 0, 0, NULL }
4824 dissect_h248_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4825 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4826 ActionReply_sequence, hf_index, ett_h248_ActionReply);
4828 #line 132 "h248.cnf"
4829 if (!curr_info.cmd) {
4830 curr_info.cmd = gcp_cmd(curr_info.msg,curr_info.trx,curr_info.ctx,GCP_CMD_REPLY,offset,keep_persistent_data);
4838 static const ber_sequence_t SEQUENCE_OF_ActionReply_sequence_of[1] = {
4839 { &hf_h248_actionReplies_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_ActionReply },
4843 dissect_h248_SEQUENCE_OF_ActionReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4844 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4845 SEQUENCE_OF_ActionReply_sequence_of, hf_index, ett_h248_SEQUENCE_OF_ActionReply);
4851 static const value_string h248_T_transactionResult_vals[] = {
4852 { 0, "transactionError" },
4853 { 1, "actionReplies" },
4857 static const ber_choice_t T_transactionResult_choice[] = {
4858 { 0, &hf_h248_transactionError, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
4859 { 1, &hf_h248_actionReplies , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_ActionReply },
4860 { 0, NULL, 0, 0, 0, NULL }
4864 dissect_h248_T_transactionResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4865 offset = dissect_ber_choice(actx, tree, tvb, offset,
4866 T_transactionResult_choice, hf_index, ett_h248_T_transactionResult,
4875 dissect_h248_SegmentNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4876 offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4883 static const ber_sequence_t TransactionReply_sequence[] = {
4884 { &hf_h248_trep_transactionId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_trep_transactionId },
4885 { &hf_h248_immAckRequired , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
4886 { &hf_h248_transactionResult, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_T_transactionResult },
4887 { &hf_h248_segmentNumber , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_SegmentNumber },
4888 { &hf_h248_segmentationComplete, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
4889 { NULL, 0, 0, 0, NULL }
4893 dissect_h248_TransactionReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4894 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4895 TransactionReply_sequence, hf_index, ett_h248_TransactionReply);
4901 static const ber_sequence_t TransactionAck_sequence[] = {
4902 { &hf_h248_firstAck , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TransactionId },
4903 { &hf_h248_lastAck , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_TransactionId },
4904 { NULL, 0, 0, 0, NULL }
4908 dissect_h248_TransactionAck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4909 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4910 TransactionAck_sequence, hf_index, ett_h248_TransactionAck);
4916 static const ber_sequence_t TransactionResponseAck_sequence_of[1] = {
4917 { &hf_h248_TransactionResponseAck_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_h248_TransactionAck },
4921 dissect_h248_TransactionResponseAck(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4922 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4923 TransactionResponseAck_sequence_of, hf_index, ett_h248_TransactionResponseAck);
4931 dissect_h248_T_seg_rep_transactionId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4932 #line 117 "h248.cnf"
4934 offset = dissect_h248_trx_id(implicit_tag, actx->pinfo, tree, tvb, offset, &trx_id);
4935 curr_info.trx = gcp_trx(curr_info.msg, trx_id, GCP_TRX_ACK, keep_persistent_data);
4944 static const ber_sequence_t SegmentReply_sequence[] = {
4945 { &hf_h248_seg_rep_transactionId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_T_seg_rep_transactionId },
4946 { &hf_h248_segmentNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SegmentNumber },
4947 { &hf_h248_segmentationComplete, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_NULL },
4948 { NULL, 0, 0, 0, NULL }
4952 dissect_h248_SegmentReply(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4953 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4954 SegmentReply_sequence, hf_index, ett_h248_SegmentReply);
4960 static const value_string h248_Transaction_vals[] = {
4961 { 0, "transactionRequest" },
4962 { 1, "transactionPending" },
4963 { 2, "transactionReply" },
4964 { 3, "transactionResponseAck" },
4965 { 4, "segmentReply" },
4969 static const ber_choice_t Transaction_choice[] = {
4970 { 0, &hf_h248_transactionRequest, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_TransactionRequest },
4971 { 1, &hf_h248_transactionPending, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_TransactionPending },
4972 { 2, &hf_h248_transactionReply, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_TransactionReply },
4973 { 3, &hf_h248_transactionResponseAck, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_h248_TransactionResponseAck },
4974 { 4, &hf_h248_segmentReply , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_h248_SegmentReply },
4975 { 0, NULL, 0, 0, 0, NULL }
4979 dissect_h248_Transaction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4980 offset = dissect_ber_choice(actx, tree, tvb, offset,
4981 Transaction_choice, hf_index, ett_h248_Transaction,
4988 static const ber_sequence_t SEQUENCE_OF_Transaction_sequence_of[1] = {
4989 { &hf_h248_transactions_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_Transaction },
4993 dissect_h248_SEQUENCE_OF_Transaction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4994 offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4995 SEQUENCE_OF_Transaction_sequence_of, hf_index, ett_h248_SEQUENCE_OF_Transaction);
5001 static const value_string h248_T_messageBody_vals[] = {
5002 { 0, "messageError" },
5003 { 1, "transactions" },
5007 static const ber_choice_t T_messageBody_choice[] = {
5008 { 0, &hf_h248_messageError , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_ErrorDescriptor },
5009 { 1, &hf_h248_transactions , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_SEQUENCE_OF_Transaction },
5010 { 0, NULL, 0, 0, 0, NULL }
5014 dissect_h248_T_messageBody(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5015 offset = dissect_ber_choice(actx, tree, tvb, offset,
5016 T_messageBody_choice, hf_index, ett_h248_T_messageBody,
5023 static const ber_sequence_t Message_sequence[] = {
5024 { &hf_h248_version , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_h248_INTEGER_0_99 },
5025 { &hf_h248_mId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_h248_MId },
5026 { &hf_h248_messageBody , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_h248_T_messageBody },
5027 { NULL, 0, 0, 0, NULL }
5031 dissect_h248_Message(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5033 curr_info.msg = gcp_msg(actx->pinfo,TVB_RAW_OFFSET(tvb),keep_persistent_data);
5035 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5036 Message_sequence, hf_index, ett_h248_Message);
5039 if (check_col(actx->pinfo->cinfo, COL_INFO))
5040 col_set_str(actx->pinfo->cinfo, COL_INFO, gcp_msg_to_str(curr_info.msg,keep_persistent_data));
5042 if (keep_persistent_data)
5043 gcp_analyze_msg(h248_tree, h248_tvb, curr_info.msg, &h248_arrel);
5049 static const ber_sequence_t MegacoMessage_sequence[] = {
5050 { &hf_h248_authHeader , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_h248_AuthenticationHeader },
5051 { &hf_h248_mess , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_h248_Message },
5052 { NULL, 0, 0, 0, NULL }
5056 dissect_h248_MegacoMessage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5057 offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5058 MegacoMessage_sequence, hf_index, ett_h248_MegacoMessage);
5066 dissect_h248_ServiceChangeReasonStr(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5067 offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
5068 actx, tree, tvb, offset, hf_index,
5075 /*--- End of included file: packet-h248-fn.c ---*/
5076 #line 1292 "packet-h248-template.c"
5078 static void dissect_h248_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
5079 dissect_tpkt_encap(tvb, pinfo, tree, h248_desegment, h248_handle);
5083 dissect_h248(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
5085 proto_item *h248_item;
5086 asn1_ctx_t asn1_ctx;
5090 asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
5092 curr_info.msg = NULL;
5093 curr_info.trx = NULL;
5094 curr_info.ctx = NULL;
5095 curr_info.cmd = NULL;
5096 curr_info.term = NULL;
5097 curr_info.pkg = NULL;
5098 curr_info.evt = NULL;
5099 curr_info.sig = NULL;
5100 curr_info.stat = NULL;
5101 curr_info.par = NULL;
5103 /* Check if it is actually a text-based H.248 encoding, which we
5104 dissect with the "megaco" dissector in Wireshark. (Both
5105 encodings are MEGACO (RFC 3015) and both are H.248.)
5107 if(tvb_length(tvb)>=6){
5108 if(!tvb_strneql(tvb, 0, "MEGACO", 6)){
5109 static dissector_handle_t megaco_handle=NULL;
5111 megaco_handle = find_dissector("megaco");
5114 call_dissector(megaco_handle, tvb, pinfo, tree);
5120 /* Make entry in the Protocol column on summary display */
5121 col_set_str(pinfo->cinfo, COL_PROTOCOL, "H.248");
5124 h248_item = proto_tree_add_item(tree, proto_h248, tvb, 0, -1, FALSE);
5125 h248_tree = proto_item_add_subtree(h248_item, ett_h248);
5128 dissect_h248_MegacoMessage(FALSE, tvb, 0, &asn1_ctx, h248_tree, -1);
5132 /*--- proto_register_h248 ----------------------------------------------*/
5133 void proto_reg_handoff_h248(void);
5135 void proto_register_h248(void) {
5137 /* List of fields */
5138 static hf_register_info hf[] = {
5139 { &hf_h248_mtpaddress_ni, {
5140 "NI", "h248.mtpaddress.ni", FT_UINT32, BASE_DEC,
5141 NULL, 0, NULL, HFILL }},
5142 { &hf_h248_mtpaddress_pc, {
5143 "PC", "h248.mtpaddress.pc", FT_UINT32, BASE_DEC,
5144 NULL, 0, NULL, HFILL }},
5145 { &hf_h248_pkg_name, {
5146 "Package", "h248.package_name", FT_UINT16, BASE_HEX,
5147 VALS(package_name_vals), 0, NULL, HFILL }},
5148 { &hf_248_pkg_param, {
5149 "Parameter ID", "h248.package_paramid", FT_UINT16, BASE_HEX,
5150 NULL, 0, NULL, HFILL }},
5151 { &hf_h248_signal_code, {
5152 "Signal ID", "h248.package_signalid", FT_UINT16, BASE_HEX,
5153 NULL, 0, "Parameter ID", HFILL }},
5154 { &hf_h248_event_code, {
5155 "Event ID", "h248.package_eventid", FT_UINT16, BASE_HEX,
5156 NULL, 0, "Parameter ID", HFILL }},
5157 { &hf_h248_event_name, {
5158 "Package and Event name", "h248.event_name", FT_UINT32, BASE_HEX,
5159 VALS(event_name_vals), 0, "Package", HFILL }},
5160 { &hf_h248_signal_name, {
5161 "Package and Signal name", "h248.signal_name", FT_UINT32, BASE_HEX,
5162 VALS(signal_name_vals), 0, "Package", HFILL }},
5163 { &hf_h248_pkg_bcp_BNCChar_PDU,
5164 { "BNCChar", "h248.package_bcp.BNCChar",
5165 FT_UINT32, BASE_DEC, VALS(gcp_term_types), 0,
5168 { &hf_h248_error_code,
5169 { "errorCode", "h248.errorCode",
5170 FT_UINT32, BASE_DEC, VALS(h248_reasons), 0,
5171 "ErrorDescriptor/errorCode", HFILL }},
5172 { &hf_h248_context_id,
5173 { "contextId", "h248.contextId",
5174 FT_UINT32, BASE_HEX, NULL, 0,
5175 "Context ID", HFILL }},
5176 { &hf_h248_term_wild_type,
5177 { "Wildcard Mode", "h248.term.wildcard.mode",
5178 FT_UINT8, BASE_DEC, VALS(wildcard_modes), 0x80,
5180 { &hf_h248_term_wild_level,
5181 { "Wildcarding Level", "h248.term.wildcard.level",
5182 FT_UINT8, BASE_DEC, VALS(wildcard_levels), 0x40,
5184 { &hf_h248_term_wild_position,
5185 { "Wildcarding Position", "h248.term.wildcard.pos",
5186 FT_UINT8, BASE_DEC, NULL, 0x3F,
5190 { "Unknown Package", "h248.pkg.unknown",
5191 FT_BYTES, BASE_NONE, NULL, 0,
5194 { "Unknown Signal", "h248.pkg.unknown.sig",
5195 FT_BYTES, BASE_NONE, NULL, 0,
5198 { "Unknown Event", "h248.pkg.unknown.evt",
5199 FT_BYTES, BASE_NONE, NULL, 0,
5202 { "Parameter", "h248.pkg.unknown.param",
5203 FT_BYTES, BASE_NONE, NULL, 0,
5205 { &hf_h248_serviceChangeReasonStr,
5206 { "ServiceChangeReasonStr", "h248.serviceChangeReasonstr",
5207 FT_STRING, BASE_NONE, NULL, 0,
5208 "h248.IA5String", HFILL }},
5211 /*--- Included file: packet-h248-hfarr.c ---*/
5212 #line 1 "packet-h248-hfarr.c"
5213 { &hf_h248_authHeader,
5214 { "authHeader", "h248.authHeader",
5215 FT_NONE, BASE_NONE, NULL, 0,
5216 "h248.AuthenticationHeader", HFILL }},
5218 { "mess", "h248.mess",
5219 FT_NONE, BASE_NONE, NULL, 0,
5220 "h248.Message", HFILL }},
5221 { &hf_h248_secParmIndex,
5222 { "secParmIndex", "h248.secParmIndex",
5223 FT_BYTES, BASE_NONE, NULL, 0,
5224 "h248.SecurityParmIndex", HFILL }},
5226 { "seqNum", "h248.seqNum",
5227 FT_BYTES, BASE_NONE, NULL, 0,
5228 "h248.SequenceNum", HFILL }},
5231 FT_BYTES, BASE_NONE, NULL, 0,
5232 "h248.AuthData", HFILL }},
5234 { "version", "h248.version",
5235 FT_UINT32, BASE_DEC, NULL, 0,
5236 "h248.INTEGER_0_99", HFILL }},
5238 { "mId", "h248.mId",
5239 FT_UINT32, BASE_DEC, VALS(h248_MId_vals), 0,
5240 "h248.MId", HFILL }},
5241 { &hf_h248_messageBody,
5242 { "messageBody", "h248.messageBody",
5243 FT_UINT32, BASE_DEC, VALS(h248_T_messageBody_vals), 0,
5244 "h248.T_messageBody", HFILL }},
5245 { &hf_h248_messageError,
5246 { "messageError", "h248.messageError",
5247 FT_NONE, BASE_NONE, NULL, 0,
5248 "h248.ErrorDescriptor", HFILL }},
5249 { &hf_h248_transactions,
5250 { "transactions", "h248.transactions",
5251 FT_UINT32, BASE_DEC, NULL, 0,
5252 "h248.SEQUENCE_OF_Transaction", HFILL }},
5253 { &hf_h248_transactions_item,
5254 { "Transaction", "h248.Transaction",
5255 FT_UINT32, BASE_DEC, VALS(h248_Transaction_vals), 0,
5256 "h248.Transaction", HFILL }},
5257 { &hf_h248_ip4Address,
5258 { "ip4Address", "h248.ip4Address",
5259 FT_NONE, BASE_NONE, NULL, 0,
5260 "h248.IP4Address", HFILL }},
5261 { &hf_h248_ip6Address,
5262 { "ip6Address", "h248.ip6Address",
5263 FT_NONE, BASE_NONE, NULL, 0,
5264 "h248.IP6Address", HFILL }},
5265 { &hf_h248_domainName,
5266 { "domainName", "h248.domainName",
5267 FT_NONE, BASE_NONE, NULL, 0,
5268 "h248.DomainName", HFILL }},
5269 { &hf_h248_deviceName,
5270 { "deviceName", "h248.deviceName",
5271 FT_STRING, BASE_NONE, NULL, 0,
5272 "h248.PathName", HFILL }},
5273 { &hf_h248_mtpAddress,
5274 { "mtpAddress", "h248.mtpAddress",
5275 FT_BYTES, BASE_NONE, NULL, 0,
5276 "h248.MtpAddress", HFILL }},
5278 { "name", "h248.name",
5279 FT_STRING, BASE_NONE, NULL, 0,
5280 "h248.IA5String", HFILL }},
5281 { &hf_h248_portNumber,
5282 { "portNumber", "h248.portNumber",
5283 FT_UINT32, BASE_DEC, NULL, 0,
5284 "h248.INTEGER_0_65535", HFILL }},
5285 { &hf_h248_iP4Address,
5286 { "address", "h248.address",
5287 FT_IPv4, BASE_NONE, NULL, 0,
5288 "h248.OCTET_STRING_SIZE_4", HFILL }},
5289 { &hf_h248_iP6Address,
5290 { "address", "h248.address",
5291 FT_IPv6, BASE_NONE, NULL, 0,
5292 "h248.OCTET_STRING_SIZE_16", HFILL }},
5293 { &hf_h248_transactionRequest,
5294 { "transactionRequest", "h248.transactionRequest",
5295 FT_NONE, BASE_NONE, NULL, 0,
5296 "h248.TransactionRequest", HFILL }},
5297 { &hf_h248_transactionPending,
5298 { "transactionPending", "h248.transactionPending",
5299 FT_NONE, BASE_NONE, NULL, 0,
5300 "h248.TransactionPending", HFILL }},
5301 { &hf_h248_transactionReply,
5302 { "transactionReply", "h248.transactionReply",
5303 FT_NONE, BASE_NONE, NULL, 0,
5304 "h248.TransactionReply", HFILL }},
5305 { &hf_h248_transactionResponseAck,
5306 { "transactionResponseAck", "h248.transactionResponseAck",
5307 FT_UINT32, BASE_DEC, NULL, 0,
5308 "h248.TransactionResponseAck", HFILL }},
5309 { &hf_h248_segmentReply,
5310 { "segmentReply", "h248.segmentReply",
5311 FT_NONE, BASE_NONE, NULL, 0,
5312 "h248.SegmentReply", HFILL }},
5313 { &hf_h248_transactionId,
5314 { "transactionId", "h248.transactionId",
5315 FT_UINT32, BASE_DEC, NULL, 0,
5316 "h248.T_transactionId", HFILL }},
5318 { "actions", "h248.actions",
5319 FT_UINT32, BASE_DEC, NULL, 0,
5320 "h248.SEQUENCE_OF_ActionRequest", HFILL }},
5321 { &hf_h248_actions_item,
5322 { "ActionRequest", "h248.ActionRequest",
5323 FT_NONE, BASE_NONE, NULL, 0,
5324 "h248.ActionRequest", HFILL }},
5325 { &hf_h248_tpend_transactionId,
5326 { "transactionId", "h248.transactionId",
5327 FT_UINT32, BASE_DEC, NULL, 0,
5328 "h248.T_tpend_transactionId", HFILL }},
5329 { &hf_h248_trep_transactionId,
5330 { "transactionId", "h248.transactionId",
5331 FT_UINT32, BASE_DEC, NULL, 0,
5332 "h248.T_trep_transactionId", HFILL }},
5333 { &hf_h248_immAckRequired,
5334 { "immAckRequired", "h248.immAckRequired",
5335 FT_NONE, BASE_NONE, NULL, 0,
5336 "h248.NULL", HFILL }},
5337 { &hf_h248_transactionResult,
5338 { "transactionResult", "h248.transactionResult",
5339 FT_UINT32, BASE_DEC, VALS(h248_T_transactionResult_vals), 0,
5340 "h248.T_transactionResult", HFILL }},
5341 { &hf_h248_transactionError,
5342 { "transactionError", "h248.transactionError",
5343 FT_NONE, BASE_NONE, NULL, 0,
5344 "h248.ErrorDescriptor", HFILL }},
5345 { &hf_h248_actionReplies,
5346 { "actionReplies", "h248.actionReplies",
5347 FT_UINT32, BASE_DEC, NULL, 0,
5348 "h248.SEQUENCE_OF_ActionReply", HFILL }},
5349 { &hf_h248_actionReplies_item,
5350 { "ActionReply", "h248.ActionReply",
5351 FT_NONE, BASE_NONE, NULL, 0,
5352 "h248.ActionReply", HFILL }},
5353 { &hf_h248_segmentNumber,
5354 { "segmentNumber", "h248.segmentNumber",
5355 FT_UINT32, BASE_DEC, NULL, 0,
5356 "h248.SegmentNumber", HFILL }},
5357 { &hf_h248_segmentationComplete,
5358 { "segmentationComplete", "h248.segmentationComplete",
5359 FT_NONE, BASE_NONE, NULL, 0,
5360 "h248.NULL", HFILL }},
5361 { &hf_h248_seg_rep_transactionId,
5362 { "transactionId", "h248.transactionId",
5363 FT_UINT32, BASE_DEC, NULL, 0,
5364 "h248.T_seg_rep_transactionId", HFILL }},
5365 { &hf_h248_TransactionResponseAck_item,
5366 { "TransactionAck", "h248.TransactionAck",
5367 FT_NONE, BASE_NONE, NULL, 0,
5368 "h248.TransactionAck", HFILL }},
5369 { &hf_h248_firstAck,
5370 { "firstAck", "h248.firstAck",
5371 FT_UINT32, BASE_DEC, NULL, 0,
5372 "h248.TransactionId", HFILL }},
5374 { "lastAck", "h248.lastAck",
5375 FT_UINT32, BASE_DEC, NULL, 0,
5376 "h248.TransactionId", HFILL }},
5377 { &hf_h248_errorCode,
5378 { "errorCode", "h248.errorCode",
5379 FT_UINT32, BASE_DEC, NULL, 0,
5380 "h248.T_errorCode", HFILL }},
5381 { &hf_h248_errorText,
5382 { "errorText", "h248.errorText",
5383 FT_STRING, BASE_NONE, NULL, 0,
5384 "h248.ErrorText", HFILL }},
5385 { &hf_h248_contextId,
5386 { "contextId", "h248.contextId",
5387 FT_UINT32, BASE_HEX, NULL, 0,
5388 "h248.ContextId", HFILL }},
5389 { &hf_h248_contextRequest,
5390 { "contextRequest", "h248.contextRequest",
5391 FT_NONE, BASE_NONE, NULL, 0,
5392 "h248.ContextRequest", HFILL }},
5393 { &hf_h248_contextAttrAuditReq,
5394 { "contextAttrAuditReq", "h248.contextAttrAuditReq",
5395 FT_NONE, BASE_NONE, NULL, 0,
5396 "h248.T_contextAttrAuditReq", HFILL }},
5397 { &hf_h248_commandRequests,
5398 { "commandRequests", "h248.commandRequests",
5399 FT_UINT32, BASE_DEC, NULL, 0,
5400 "h248.SEQUENCE_OF_CommandRequest", HFILL }},
5401 { &hf_h248_commandRequests_item,
5402 { "CommandRequest", "h248.CommandRequest",
5403 FT_NONE, BASE_NONE, NULL, 0,
5404 "h248.CommandRequest", HFILL }},
5405 { &hf_h248_errorDescriptor,
5406 { "errorDescriptor", "h248.errorDescriptor",
5407 FT_NONE, BASE_NONE, NULL, 0,
5408 "h248.ErrorDescriptor", HFILL }},
5409 { &hf_h248_contextReply,
5410 { "contextReply", "h248.contextReply",
5411 FT_NONE, BASE_NONE, NULL, 0,
5412 "h248.ContextRequest", HFILL }},
5413 { &hf_h248_commandReply,
5414 { "commandReply", "h248.commandReply",
5415 FT_UINT32, BASE_DEC, NULL, 0,
5416 "h248.SEQUENCE_OF_CommandReply", HFILL }},
5417 { &hf_h248_commandReply_item,
5418 { "CommandReply", "h248.CommandReply",
5419 FT_UINT32, BASE_DEC, VALS(h248_CommandReply_vals), 0,
5420 "h248.CommandReply", HFILL }},
5421 { &hf_h248_priority,
5422 { "priority", "h248.priority",
5423 FT_UINT32, BASE_DEC, NULL, 0,
5424 "h248.INTEGER_0_15", HFILL }},
5425 { &hf_h248_emergency,
5426 { "emergency", "h248.emergency",
5427 FT_BOOLEAN, BASE_NONE, NULL, 0,
5428 "h248.BOOLEAN", HFILL }},
5429 { &hf_h248_topologyReq,
5430 { "topologyReq", "h248.topologyReq",
5431 FT_UINT32, BASE_DEC, NULL, 0,
5432 "h248.T_topologyReq", HFILL }},
5433 { &hf_h248_topologyReq_item,
5434 { "TopologyRequest", "h248.TopologyRequest",
5435 FT_NONE, BASE_NONE, NULL, 0,
5436 "h248.TopologyRequest", HFILL }},
5437 { &hf_h248_iepscallind_BOOL,
5438 { "iepscallind", "h248.iepscallind",
5439 FT_BOOLEAN, BASE_NONE, NULL, 0,
5440 "h248.Iepscallind_BOOL", HFILL }},
5441 { &hf_h248_contextProp,
5442 { "contextProp", "h248.contextProp",
5443 FT_UINT32, BASE_DEC, NULL, 0,
5444 "h248.SEQUENCE_OF_PropertyParm", HFILL }},
5445 { &hf_h248_contextProp_item,
5446 { "PropertyParm", "h248.PropertyParm",
5447 FT_NONE, BASE_NONE, NULL, 0,
5448 "h248.PropertyParm", HFILL }},
5449 { &hf_h248_contextList,
5450 { "contextList", "h248.contextList",
5451 FT_UINT32, BASE_DEC, NULL, 0,
5452 "h248.SEQUENCE_OF_ContextIDinList", HFILL }},
5453 { &hf_h248_contextList_item,
5454 { "ContextIDinList", "h248.ContextIDinList",
5455 FT_UINT32, BASE_DEC, NULL, 0,
5456 "h248.ContextIDinList", HFILL }},
5457 { &hf_h248_topology,
5458 { "topology", "h248.topology",
5459 FT_NONE, BASE_NONE, NULL, 0,
5460 "h248.NULL", HFILL }},
5461 { &hf_h248_cAAREmergency,
5462 { "emergency", "h248.emergency",
5463 FT_NONE, BASE_NONE, NULL, 0,
5464 "h248.NULL", HFILL }},
5465 { &hf_h248_cAARPriority,
5466 { "priority", "h248.priority",
5467 FT_NONE, BASE_NONE, NULL, 0,
5468 "h248.NULL", HFILL }},
5469 { &hf_h248_iepscallind,
5470 { "iepscallind", "h248.iepscallind",
5471 FT_NONE, BASE_NONE, NULL, 0,
5472 "h248.NULL", HFILL }},
5473 { &hf_h248_contextPropAud,
5474 { "contextPropAud", "h248.contextPropAud",
5475 FT_UINT32, BASE_DEC, NULL, 0,
5476 "h248.SEQUENCE_OF_IndAudPropertyParm", HFILL }},
5477 { &hf_h248_contextPropAud_item,
5478 { "IndAudPropertyParm", "h248.IndAudPropertyParm",
5479 FT_NONE, BASE_NONE, NULL, 0,
5480 "h248.IndAudPropertyParm", HFILL }},
5481 { &hf_h248_selectpriority,
5482 { "selectpriority", "h248.selectpriority",
5483 FT_UINT32, BASE_DEC, NULL, 0,
5484 "h248.INTEGER_0_15", HFILL }},
5485 { &hf_h248_selectemergency,
5486 { "selectemergency", "h248.selectemergency",
5487 FT_BOOLEAN, BASE_NONE, NULL, 0,
5488 "h248.BOOLEAN", HFILL }},
5489 { &hf_h248_selectiepscallind,
5490 { "selectiepscallind", "h248.selectiepscallind",
5491 FT_BOOLEAN, BASE_NONE, NULL, 0,
5492 "h248.BOOLEAN", HFILL }},
5493 { &hf_h248_selectLogic,
5494 { "selectLogic", "h248.selectLogic",
5495 FT_UINT32, BASE_DEC, VALS(h248_SelectLogic_vals), 0,
5496 "h248.SelectLogic", HFILL }},
5497 { &hf_h248_andAUDITSelect,
5498 { "andAUDITSelect", "h248.andAUDITSelect",
5499 FT_NONE, BASE_NONE, NULL, 0,
5500 "h248.NULL", HFILL }},
5501 { &hf_h248_orAUDITSelect,
5502 { "orAUDITSelect", "h248.orAUDITSelect",
5503 FT_NONE, BASE_NONE, NULL, 0,
5504 "h248.NULL", HFILL }},
5506 { "command", "h248.command",
5507 FT_UINT32, BASE_DEC, VALS(h248_Command_vals), 0,
5508 "h248.Command", HFILL }},
5509 { &hf_h248_optional,
5510 { "optional", "h248.optional",
5511 FT_NONE, BASE_NONE, NULL, 0,
5512 "h248.NULL", HFILL }},
5513 { &hf_h248_wildcardReturn,
5514 { "wildcardReturn", "h248.wildcardReturn",
5515 FT_NONE, BASE_NONE, NULL, 0,
5516 "h248.NULL", HFILL }},
5518 { "addReq", "h248.addReq",
5519 FT_NONE, BASE_NONE, NULL, 0,
5520 "h248.T_addReq", HFILL }},
5522 { "moveReq", "h248.moveReq",
5523 FT_NONE, BASE_NONE, NULL, 0,
5524 "h248.T_moveReq", HFILL }},
5526 { "modReq", "h248.modReq",
5527 FT_NONE, BASE_NONE, NULL, 0,
5528 "h248.T_modReq", HFILL }},
5529 { &hf_h248_subtractReq,
5530 { "subtractReq", "h248.subtractReq",
5531 FT_NONE, BASE_NONE, NULL, 0,
5532 "h248.T_subtractReq", HFILL }},
5533 { &hf_h248_auditCapRequest,
5534 { "auditCapRequest", "h248.auditCapRequest",
5535 FT_NONE, BASE_NONE, NULL, 0,
5536 "h248.T_auditCapRequest", HFILL }},
5537 { &hf_h248_auditValueRequest,
5538 { "auditValueRequest", "h248.auditValueRequest",
5539 FT_NONE, BASE_NONE, NULL, 0,
5540 "h248.T_auditValueRequest", HFILL }},
5541 { &hf_h248_notifyReq,
5542 { "notifyReq", "h248.notifyReq",
5543 FT_NONE, BASE_NONE, NULL, 0,
5544 "h248.T_notifyReq", HFILL }},
5545 { &hf_h248_serviceChangeReq,
5546 { "serviceChangeReq", "h248.serviceChangeReq",
5547 FT_NONE, BASE_NONE, NULL, 0,
5548 "h248.ServiceChangeRequest", HFILL }},
5549 { &hf_h248_addReply,
5550 { "addReply", "h248.addReply",
5551 FT_NONE, BASE_NONE, NULL, 0,
5552 "h248.T_addReply", HFILL }},
5553 { &hf_h248_moveReply,
5554 { "moveReply", "h248.moveReply",
5555 FT_NONE, BASE_NONE, NULL, 0,
5556 "h248.T_moveReply", HFILL }},
5557 { &hf_h248_modReply,
5558 { "modReply", "h248.modReply",
5559 FT_NONE, BASE_NONE, NULL, 0,
5560 "h248.T_modReply", HFILL }},
5561 { &hf_h248_subtractReply,
5562 { "subtractReply", "h248.subtractReply",
5563 FT_NONE, BASE_NONE, NULL, 0,
5564 "h248.T_subtractReply", HFILL }},
5565 { &hf_h248_auditCapReply,
5566 { "auditCapReply", "h248.auditCapReply",
5567 FT_UINT32, BASE_DEC, VALS(h248_AuditReply_vals), 0,
5568 "h248.T_auditCapReply", HFILL }},
5569 { &hf_h248_auditValueReply,
5570 { "auditValueReply", "h248.auditValueReply",
5571 FT_UINT32, BASE_DEC, VALS(h248_AuditReply_vals), 0,
5572 "h248.T_auditValueReply", HFILL }},
5573 { &hf_h248_notifyReply,
5574 { "notifyReply", "h248.notifyReply",
5575 FT_NONE, BASE_NONE, NULL, 0,
5576 "h248.T_notifyReply", HFILL }},
5577 { &hf_h248_serviceChangeReply,
5578 { "serviceChangeReply", "h248.serviceChangeReply",
5579 FT_NONE, BASE_NONE, NULL, 0,
5580 "h248.ServiceChangeReply", HFILL }},
5581 { &hf_h248_terminationFrom,
5582 { "terminationFrom", "h248.terminationFrom",
5583 FT_NONE, BASE_NONE, NULL, 0,
5584 "h248.TerminationID", HFILL }},
5585 { &hf_h248_terminationTo,
5586 { "terminationTo", "h248.terminationTo",
5587 FT_NONE, BASE_NONE, NULL, 0,
5588 "h248.TerminationID", HFILL }},
5589 { &hf_h248_topologyDirection,
5590 { "topologyDirection", "h248.topologyDirection",
5591 FT_UINT32, BASE_DEC, VALS(h248_T_topologyDirection_vals), 0,
5592 "h248.T_topologyDirection", HFILL }},
5593 { &hf_h248_streamID,
5594 { "streamID", "h248.streamID",
5595 FT_UINT32, BASE_DEC, NULL, 0,
5596 "h248.StreamID", HFILL }},
5597 { &hf_h248_topologyDirectionExtension,
5598 { "topologyDirectionExtension", "h248.topologyDirectionExtension",
5599 FT_UINT32, BASE_DEC, VALS(h248_T_topologyDirectionExtension_vals), 0,
5600 "h248.T_topologyDirectionExtension", HFILL }},
5601 { &hf_h248_terminationIDList,
5602 { "terminationID", "h248.terminationID",
5603 FT_UINT32, BASE_DEC, NULL, 0,
5604 "h248.TerminationIDList", HFILL }},
5605 { &hf_h248_descriptors,
5606 { "descriptors", "h248.descriptors",
5607 FT_UINT32, BASE_DEC, NULL, 0,
5608 "h248.SEQUENCE_OF_AmmDescriptor", HFILL }},
5609 { &hf_h248_descriptors_item,
5610 { "AmmDescriptor", "h248.AmmDescriptor",
5611 FT_UINT32, BASE_DEC, VALS(h248_AmmDescriptor_vals), 0,
5612 "h248.AmmDescriptor", HFILL }},
5613 { &hf_h248_mediaDescriptor,
5614 { "mediaDescriptor", "h248.mediaDescriptor",
5615 FT_NONE, BASE_NONE, NULL, 0,
5616 "h248.MediaDescriptor", HFILL }},
5617 { &hf_h248_modemDescriptor,
5618 { "modemDescriptor", "h248.modemDescriptor",
5619 FT_NONE, BASE_NONE, NULL, 0,
5620 "h248.ModemDescriptor", HFILL }},
5621 { &hf_h248_muxDescriptor,
5622 { "muxDescriptor", "h248.muxDescriptor",
5623 FT_NONE, BASE_NONE, NULL, 0,
5624 "h248.MuxDescriptor", HFILL }},
5625 { &hf_h248_eventsDescriptor,
5626 { "eventsDescriptor", "h248.eventsDescriptor",
5627 FT_NONE, BASE_NONE, NULL, 0,
5628 "h248.EventsDescriptor", HFILL }},
5629 { &hf_h248_eventBufferDescriptor,
5630 { "eventBufferDescriptor", "h248.eventBufferDescriptor",
5631 FT_UINT32, BASE_DEC, NULL, 0,
5632 "h248.EventBufferDescriptor", HFILL }},
5633 { &hf_h248_signalsDescriptor,
5634 { "signalsDescriptor", "h248.signalsDescriptor",
5635 FT_UINT32, BASE_DEC, NULL, 0,
5636 "h248.SignalsDescriptor", HFILL }},
5637 { &hf_h248_digitMapDescriptor,
5638 { "digitMapDescriptor", "h248.digitMapDescriptor",
5639 FT_NONE, BASE_NONE, NULL, 0,
5640 "h248.DigitMapDescriptor", HFILL }},
5641 { &hf_h248_auditDescriptor,
5642 { "auditDescriptor", "h248.auditDescriptor",
5643 FT_NONE, BASE_NONE, NULL, 0,
5644 "h248.AuditDescriptor", HFILL }},
5645 { &hf_h248_statisticsDescriptor,
5646 { "statisticsDescriptor", "h248.statisticsDescriptor",
5647 FT_UINT32, BASE_DEC, NULL, 0,
5648 "h248.StatisticsDescriptor", HFILL }},
5649 { &hf_h248_terminationAudit,
5650 { "terminationAudit", "h248.terminationAudit",
5651 FT_UINT32, BASE_DEC, NULL, 0,
5652 "h248.TerminationAudit", HFILL }},
5653 { &hf_h248_terminationID,
5654 { "terminationID", "h248.terminationID",
5655 FT_NONE, BASE_NONE, NULL, 0,
5656 "h248.TerminationID", HFILL }},
5657 { &hf_h248_contextAuditResult,
5658 { "contextAuditResult", "h248.contextAuditResult",
5659 FT_UINT32, BASE_DEC, NULL, 0,
5660 "h248.TerminationIDList", HFILL }},
5662 { "error", "h248.error",
5663 FT_NONE, BASE_NONE, NULL, 0,
5664 "h248.ErrorDescriptor", HFILL }},
5665 { &hf_h248_auditResult,
5666 { "auditResult", "h248.auditResult",
5667 FT_NONE, BASE_NONE, NULL, 0,
5668 "h248.AuditResult", HFILL }},
5669 { &hf_h248_auditResultTermList,
5670 { "auditResultTermList", "h248.auditResultTermList",
5671 FT_NONE, BASE_NONE, NULL, 0,
5672 "h248.TermListAuditResult", HFILL }},
5673 { &hf_h248_terminationAuditResult,
5674 { "terminationAuditResult", "h248.terminationAuditResult",
5675 FT_UINT32, BASE_DEC, NULL, 0,
5676 "h248.TerminationAudit", HFILL }},
5677 { &hf_h248_TerminationAudit_item,
5678 { "AuditReturnParameter", "h248.AuditReturnParameter",
5679 FT_UINT32, BASE_DEC, VALS(h248_AuditReturnParameter_vals), 0,
5680 "h248.AuditReturnParameter", HFILL }},
5681 { &hf_h248_observedEventsDescriptor,
5682 { "observedEventsDescriptor", "h248.observedEventsDescriptor",
5683 FT_NONE, BASE_NONE, NULL, 0,
5684 "h248.ObservedEventsDescriptor", HFILL }},
5685 { &hf_h248_packagesDescriptor,
5686 { "packagesDescriptor", "h248.packagesDescriptor",
5687 FT_UINT32, BASE_DEC, NULL, 0,
5688 "h248.PackagesDescriptor", HFILL }},
5689 { &hf_h248_emptyDescriptors,
5690 { "emptyDescriptors", "h248.emptyDescriptors",
5691 FT_NONE, BASE_NONE, NULL, 0,
5692 "h248.AuditDescriptor", HFILL }},
5693 { &hf_h248_auditToken,
5694 { "auditToken", "h248.auditToken",
5695 FT_BYTES, BASE_NONE, NULL, 0,
5696 "h248.T_auditToken", HFILL }},
5697 { &hf_h248_auditPropertyToken,
5698 { "auditPropertyToken", "h248.auditPropertyToken",
5699 FT_UINT32, BASE_DEC, NULL, 0,
5700 "h248.SEQUENCE_OF_IndAuditParameter", HFILL }},
5701 { &hf_h248_auditPropertyToken_item,
5702 { "IndAuditParameter", "h248.IndAuditParameter",
5703 FT_UINT32, BASE_DEC, VALS(h248_IndAuditParameter_vals), 0,
5704 "h248.IndAuditParameter", HFILL }},
5705 { &hf_h248_indaudmediaDescriptor,
5706 { "indaudmediaDescriptor", "h248.indaudmediaDescriptor",
5707 FT_NONE, BASE_NONE, NULL, 0,
5708 "h248.IndAudMediaDescriptor", HFILL }},
5709 { &hf_h248_indaudeventsDescriptor,
5710 { "indaudeventsDescriptor", "h248.indaudeventsDescriptor",
5711 FT_NONE, BASE_NONE, NULL, 0,
5712 "h248.IndAudEventsDescriptor", HFILL }},
5713 { &hf_h248_indaudeventBufferDescriptor,
5714 { "indaudeventBufferDescriptor", "h248.indaudeventBufferDescriptor",
5715 FT_NONE, BASE_NONE, NULL, 0,
5716 "h248.IndAudEventBufferDescriptor", HFILL }},
5717 { &hf_h248_indaudsignalsDescriptor,
5718 { "indaudsignalsDescriptor", "h248.indaudsignalsDescriptor",
5719 FT_UINT32, BASE_DEC, VALS(h248_IndAudSignalsDescriptor_vals), 0,
5720 "h248.IndAudSignalsDescriptor", HFILL }},
5721 { &hf_h248_indauddigitMapDescriptor,
5722 { "indauddigitMapDescriptor", "h248.indauddigitMapDescriptor",
5723 FT_NONE, BASE_NONE, NULL, 0,
5724 "h248.IndAudDigitMapDescriptor", HFILL }},
5725 { &hf_h248_indaudstatisticsDescriptor,
5726 { "indaudstatisticsDescriptor", "h248.indaudstatisticsDescriptor",
5727 FT_NONE, BASE_NONE, NULL, 0,
5728 "h248.IndAudStatisticsDescriptor", HFILL }},
5729 { &hf_h248_indaudpackagesDescriptor,
5730 { "indaudpackagesDescriptor", "h248.indaudpackagesDescriptor",
5731 FT_NONE, BASE_NONE, NULL, 0,
5732 "h248.IndAudPackagesDescriptor", HFILL }},
5733 { &hf_h248_indAudTerminationStateDescriptor,
5734 { "termStateDescr", "h248.termStateDescr",
5735 FT_NONE, BASE_NONE, NULL, 0,
5736 "h248.IndAudTerminationStateDescriptor", HFILL }},
5737 { &hf_h248_indAudMediaDescriptorStreams,
5738 { "streams", "h248.streams",
5739 FT_UINT32, BASE_DEC, VALS(h248_IndAudMediaDescriptorStreams_vals), 0,
5740 "h248.IndAudMediaDescriptorStreams", HFILL }},
5741 { &hf_h248_oneStream,
5742 { "oneStream", "h248.oneStream",
5743 FT_NONE, BASE_NONE, NULL, 0,
5744 "h248.IndAudStreamParms", HFILL }},
5745 { &hf_h248_multiStream,
5746 { "multiStream", "h248.multiStream",
5747 FT_UINT32, BASE_DEC, NULL, 0,
5748 "h248.SEQUENCE_OF_IndAudStreamDescriptor", HFILL }},
5749 { &hf_h248_multiStream_item,
5750 { "IndAudStreamDescriptor", "h248.IndAudStreamDescriptor",
5751 FT_NONE, BASE_NONE, NULL, 0,
5752 "h248.IndAudStreamDescriptor", HFILL }},
5753 { &hf_h248_indAudStreamParms,
5754 { "streamParms", "h248.streamParms",
5755 FT_NONE, BASE_NONE, NULL, 0,
5756 "h248.IndAudStreamParms", HFILL }},
5757 { &hf_h248_iASPLocalControlDescriptor,
5758 { "localControlDescriptor", "h248.localControlDescriptor",
5759 FT_NONE, BASE_NONE, NULL, 0,
5760 "h248.IndAudLocalControlDescriptor", HFILL }},
5761 { &hf_h248_iASPLocalDescriptor,
5762 { "localDescriptor", "h248.localDescriptor",
5763 FT_NONE, BASE_NONE, NULL, 0,
5764 "h248.IndAudLocalRemoteDescriptor", HFILL }},
5765 { &hf_h248_iASPRemoteDescriptor,
5766 { "remoteDescriptor", "h248.remoteDescriptor",
5767 FT_NONE, BASE_NONE, NULL, 0,
5768 "h248.IndAudLocalRemoteDescriptor", HFILL }},
5769 { &hf_h248_statisticsDescriptor_01,
5770 { "statisticsDescriptor", "h248.statisticsDescriptor",
5771 FT_NONE, BASE_NONE, NULL, 0,
5772 "h248.IndAudStatisticsDescriptor", HFILL }},
5773 { &hf_h248_iALCDStreamMode,
5774 { "streamMode", "h248.streamMode",
5775 FT_NONE, BASE_NONE, NULL, 0,
5776 "h248.NULL", HFILL }},
5777 { &hf_h248_iALCDReserveValue,
5778 { "reserveValue", "h248.reserveValue",
5779 FT_NONE, BASE_NONE, NULL, 0,
5780 "h248.NULL", HFILL }},
5781 { &hf_h248_iALCDReserveGroup,
5782 { "reserveGroup", "h248.reserveGroup",
5783 FT_NONE, BASE_NONE, NULL, 0,
5784 "h248.NULL", HFILL }},
5785 { &hf_h248_indAudPropertyParms,
5786 { "propertyParms", "h248.propertyParms",
5787 FT_UINT32, BASE_DEC, NULL, 0,
5788 "h248.SEQUENCE_OF_IndAudPropertyParm", HFILL }},
5789 { &hf_h248_indAudPropertyParms_item,
5790 { "IndAudPropertyParm", "h248.IndAudPropertyParm",
5791 FT_NONE, BASE_NONE, NULL, 0,
5792 "h248.IndAudPropertyParm", HFILL }},
5793 { &hf_h248_streamModeSel,
5794 { "streamModeSel", "h248.streamModeSel",
5795 FT_UINT32, BASE_DEC, VALS(h248_StreamMode_vals), 0,
5796 "h248.StreamMode", HFILL }},
5798 { "name", "h248.name",
5799 FT_BYTES, BASE_NONE, NULL, 0,
5800 "h248.PkgdName", HFILL }},
5801 { &hf_h248_propertyParms,
5802 { "propertyParms", "h248.propertyParms",
5803 FT_NONE, BASE_NONE, NULL, 0,
5804 "h248.PropertyParm", HFILL }},
5805 { &hf_h248_propGroupID,
5806 { "propGroupID", "h248.propGroupID",
5807 FT_UINT32, BASE_DEC, NULL, 0,
5808 "h248.INTEGER_0_65535", HFILL }},
5809 { &hf_h248_iAPropertyGroup,
5810 { "propGrps", "h248.propGrps",
5811 FT_UINT32, BASE_DEC, NULL, 0,
5812 "h248.IndAudPropertyGroup", HFILL }},
5813 { &hf_h248_IndAudPropertyGroup_item,
5814 { "IndAudPropertyParm", "h248.IndAudPropertyParm",
5815 FT_NONE, BASE_NONE, NULL, 0,
5816 "h248.IndAudPropertyParm", HFILL }},
5817 { &hf_h248_eventBufferControl,
5818 { "eventBufferControl", "h248.eventBufferControl",
5819 FT_NONE, BASE_NONE, NULL, 0,
5820 "h248.NULL", HFILL }},
5821 { &hf_h248_iATSDServiceState,
5822 { "serviceState", "h248.serviceState",
5823 FT_NONE, BASE_NONE, NULL, 0,
5824 "h248.NULL", HFILL }},
5825 { &hf_h248_serviceStateSel,
5826 { "serviceStateSel", "h248.serviceStateSel",
5827 FT_UINT32, BASE_DEC, VALS(h248_ServiceState_vals), 0,
5828 "h248.ServiceState", HFILL }},
5829 { &hf_h248_requestID,
5830 { "requestID", "h248.requestID",
5831 FT_UINT32, BASE_DEC, NULL, 0,
5832 "h248.RequestID", HFILL }},
5833 { &hf_h248_iAEDPkgdName,
5834 { "pkgdName", "h248.pkgdName",
5835 FT_BYTES, BASE_NONE, NULL, 0,
5836 "h248.PkgdName", HFILL }},
5837 { &hf_h248_iAEBDEventName,
5838 { "eventName", "h248.eventName",
5839 FT_BYTES, BASE_NONE, NULL, 0,
5840 "h248.PkgdName", HFILL }},
5841 { &hf_h248_indAudSignal,
5842 { "signal", "h248.signal",
5843 FT_NONE, BASE_NONE, NULL, 0,
5844 "h248.IndAudSignal", HFILL }},
5845 { &hf_h248_indAudSeqSigList,
5846 { "seqSigList", "h248.seqSigList",
5847 FT_NONE, BASE_NONE, NULL, 0,
5848 "h248.IndAudSeqSigList", HFILL }},
5851 FT_UINT32, BASE_DEC, NULL, 0,
5852 "h248.INTEGER_0_65535", HFILL }},
5853 { &hf_h248_iASignalList,
5854 { "signalList", "h248.signalList",
5855 FT_NONE, BASE_NONE, NULL, 0,
5856 "h248.IndAudSignal", HFILL }},
5857 { &hf_h248_iASignalName,
5858 { "signalName", "h248.signalName",
5859 FT_BYTES, BASE_NONE, NULL, 0,
5860 "h248.PkgdName", HFILL }},
5861 { &hf_h248_signalRequestID,
5862 { "signalRequestID", "h248.signalRequestID",
5863 FT_UINT32, BASE_DEC, NULL, 0,
5864 "h248.RequestID", HFILL }},
5865 { &hf_h248_digitMapName,
5866 { "digitMapName", "h248.digitMapName",
5867 FT_BYTES, BASE_NONE, NULL, 0,
5868 "h248.DigitMapName", HFILL }},
5869 { &hf_h248_iAStatName,
5870 { "statName", "h248.statName",
5871 FT_BYTES, BASE_NONE, NULL, 0,
5872 "h248.PkgdName", HFILL }},
5873 { &hf_h248_packageName,
5874 { "packageName", "h248.packageName",
5875 FT_BYTES, BASE_NONE, NULL, 0,
5876 "h248.Name", HFILL }},
5877 { &hf_h248_packageVersion,
5878 { "packageVersion", "h248.packageVersion",
5879 FT_UINT32, BASE_DEC, NULL, 0,
5880 "h248.INTEGER_0_99", HFILL }},
5881 { &hf_h248_requestId,
5882 { "requestId", "h248.requestId",
5883 FT_UINT32, BASE_DEC, NULL, 0,
5884 "h248.RequestID", HFILL }},
5885 { &hf_h248_observedEventLst,
5886 { "observedEventLst", "h248.observedEventLst",
5887 FT_UINT32, BASE_DEC, NULL, 0,
5888 "h248.SEQUENCE_OF_ObservedEvent", HFILL }},
5889 { &hf_h248_observedEventLst_item,
5890 { "ObservedEvent", "h248.ObservedEvent",
5891 FT_NONE, BASE_NONE, NULL, 0,
5892 "h248.ObservedEvent", HFILL }},
5893 { &hf_h248_eventName,
5894 { "eventName", "h248.eventName",
5895 FT_BYTES, BASE_NONE, NULL, 0,
5896 "h248.EventName", HFILL }},
5897 { &hf_h248_eventParList,
5898 { "eventParList", "h248.eventParList",
5899 FT_UINT32, BASE_DEC, NULL, 0,
5900 "h248.SEQUENCE_OF_EventParameter", HFILL }},
5901 { &hf_h248_eventParList_item,
5902 { "EventParameter", "h248.EventParameter",
5903 FT_NONE, BASE_NONE, NULL, 0,
5904 "h248.EventParameter", HFILL }},
5905 { &hf_h248_timeNotation,
5906 { "timeNotation", "h248.timeNotation",
5907 FT_NONE, BASE_NONE, NULL, 0,
5908 "h248.TimeNotation", HFILL }},
5909 { &hf_h248_eventParameterName,
5910 { "eventParameterName", "h248.eventParameterName",
5911 FT_BYTES, BASE_NONE, NULL, 0,
5912 "h248.EventParameterName", HFILL }},
5913 { &hf_h248_eventParamValue,
5914 { "eventParamValue", "h248.eventParamValue",
5915 FT_UINT32, BASE_DEC, NULL, 0,
5916 "h248.EventParamValues", HFILL }},
5917 { &hf_h248_eventPar_extraInfo,
5918 { "extraInfo", "h248.extraInfo",
5919 FT_UINT32, BASE_DEC, VALS(h248_EventPar_extraInfo_vals), 0,
5920 "h248.EventPar_extraInfo", HFILL }},
5921 { &hf_h248_relation,
5922 { "relation", "h248.relation",
5923 FT_UINT32, BASE_DEC, VALS(h248_Relation_vals), 0,
5924 "h248.Relation", HFILL }},
5926 { "range", "h248.range",
5927 FT_BOOLEAN, BASE_NONE, NULL, 0,
5928 "h248.BOOLEAN", HFILL }},
5930 { "sublist", "h248.sublist",
5931 FT_BOOLEAN, BASE_NONE, NULL, 0,
5932 "h248.BOOLEAN", HFILL }},
5933 { &hf_h248_EventParamValues_item,
5934 { "EventParamValue", "h248.EventParamValue",
5935 FT_BYTES, BASE_NONE, NULL, 0,
5936 "h248.EventParamValue", HFILL }},
5937 { &hf_h248_serviceChangeParms,
5938 { "serviceChangeParms", "h248.serviceChangeParms",
5939 FT_NONE, BASE_NONE, NULL, 0,
5940 "h248.ServiceChangeParm", HFILL }},
5941 { &hf_h248_serviceChangeResult,
5942 { "serviceChangeResult", "h248.serviceChangeResult",
5943 FT_UINT32, BASE_DEC, VALS(h248_ServiceChangeResult_vals), 0,
5944 "h248.ServiceChangeResult", HFILL }},
5945 { &hf_h248_serviceChangeResParms,
5946 { "serviceChangeResParms", "h248.serviceChangeResParms",
5947 FT_NONE, BASE_NONE, NULL, 0,
5948 "h248.ServiceChangeResParm", HFILL }},
5949 { &hf_h248_wildcard,
5950 { "wildcard", "h248.wildcard",
5951 FT_UINT32, BASE_DEC, NULL, 0,
5952 "h248.SEQUENCE_OF_WildcardField", HFILL }},
5953 { &hf_h248_wildcard_item,
5954 { "WildcardField", "h248.WildcardField",
5955 FT_BYTES, BASE_NONE, NULL, 0,
5956 "h248.WildcardField", HFILL }},
5957 { &hf_h248_terminationId,
5959 FT_BYTES, BASE_NONE, NULL, 0,
5960 "h248.T_terminationId", HFILL }},
5961 { &hf_h248_TerminationIDList_item,
5962 { "TerminationID", "h248.TerminationID",
5963 FT_NONE, BASE_NONE, NULL, 0,
5964 "h248.TerminationID", HFILL }},
5965 { &hf_h248_termStateDescr,
5966 { "termStateDescr", "h248.termStateDescr",
5967 FT_NONE, BASE_NONE, NULL, 0,
5968 "h248.TerminationStateDescriptor", HFILL }},
5970 { "streams", "h248.streams",
5971 FT_UINT32, BASE_DEC, VALS(h248_T_streams_vals), 0,
5972 "h248.T_streams", HFILL }},
5973 { &hf_h248_mediaDescriptorOneStream,
5974 { "oneStream", "h248.oneStream",
5975 FT_NONE, BASE_NONE, NULL, 0,
5976 "h248.StreamParms", HFILL }},
5977 { &hf_h248_mediaDescriptorMultiStream,
5978 { "multiStream", "h248.multiStream",
5979 FT_UINT32, BASE_DEC, NULL, 0,
5980 "h248.SEQUENCE_OF_StreamDescriptor", HFILL }},
5981 { &hf_h248_mediaDescriptorMultiStream_item,
5982 { "StreamDescriptor", "h248.StreamDescriptor",
5983 FT_NONE, BASE_NONE, NULL, 0,
5984 "h248.StreamDescriptor", HFILL }},
5985 { &hf_h248_streamParms,
5986 { "streamParms", "h248.streamParms",
5987 FT_NONE, BASE_NONE, NULL, 0,
5988 "h248.StreamParms", HFILL }},
5989 { &hf_h248_localControlDescriptor,
5990 { "localControlDescriptor", "h248.localControlDescriptor",
5991 FT_NONE, BASE_NONE, NULL, 0,
5992 "h248.LocalControlDescriptor", HFILL }},
5993 { &hf_h248_localDescriptor,
5994 { "localDescriptor", "h248.localDescriptor",
5995 FT_NONE, BASE_NONE, NULL, 0,
5996 "h248.LocalRemoteDescriptor", HFILL }},
5997 { &hf_h248_remoteDescriptor,
5998 { "remoteDescriptor", "h248.remoteDescriptor",
5999 FT_NONE, BASE_NONE, NULL, 0,
6000 "h248.LocalRemoteDescriptor", HFILL }},
6001 { &hf_h248_streamMode,
6002 { "streamMode", "h248.streamMode",
6003 FT_UINT32, BASE_DEC, VALS(h248_StreamMode_vals), 0,
6004 "h248.StreamMode", HFILL }},
6005 { &hf_h248_reserveValue,
6006 { "reserveValue", "h248.reserveValue",
6007 FT_BOOLEAN, BASE_NONE, NULL, 0,
6008 "h248.BOOLEAN", HFILL }},
6009 { &hf_h248_reserveGroup,
6010 { "reserveGroup", "h248.reserveGroup",
6011 FT_BOOLEAN, BASE_NONE, NULL, 0,
6012 "h248.BOOLEAN", HFILL }},
6013 { &hf_h248_propertyParms_01,
6014 { "propertyParms", "h248.propertyParms",
6015 FT_UINT32, BASE_DEC, NULL, 0,
6016 "h248.SEQUENCE_OF_PropertyParm", HFILL }},
6017 { &hf_h248_propertyParms_item,
6018 { "PropertyParm", "h248.PropertyParm",
6019 FT_NONE, BASE_NONE, NULL, 0,
6020 "h248.PropertyParm", HFILL }},
6021 { &hf_h248_propertyName,
6022 { "propertyName", "h248.propertyName",
6023 FT_BYTES, BASE_NONE, NULL, 0,
6024 "h248.PropertyName", HFILL }},
6025 { &hf_h248_propertyParamValue,
6026 { "value", "h248.value",
6027 FT_UINT32, BASE_DEC, NULL, 0,
6028 "h248.SEQUENCE_OF_PropertyID", HFILL }},
6029 { &hf_h248_propertyParamValue_item,
6030 { "PropertyID", "h248.PropertyID",
6031 FT_BYTES, BASE_NONE, NULL, 0,
6032 "h248.PropertyID", HFILL }},
6033 { &hf_h248_propParm_extraInfo,
6034 { "extraInfo", "h248.extraInfo",
6035 FT_UINT32, BASE_DEC, VALS(h248_PropParm_extraInfo_vals), 0,
6036 "h248.PropParm_extraInfo", HFILL }},
6037 { &hf_h248_propGrps,
6038 { "propGrps", "h248.propGrps",
6039 FT_UINT32, BASE_DEC, NULL, 0,
6040 "h248.SEQUENCE_OF_PropertyGroup", HFILL }},
6041 { &hf_h248_propGrps_item,
6042 { "PropertyGroup", "h248.PropertyGroup",
6043 FT_UINT32, BASE_DEC, NULL, 0,
6044 "h248.PropertyGroup", HFILL }},
6045 { &hf_h248_PropertyGroup_item,
6046 { "PropertyParm", "h248.PropertyParm",
6047 FT_NONE, BASE_NONE, NULL, 0,
6048 "h248.PropertyParm", HFILL }},
6049 { &hf_h248_tSEventBufferControl,
6050 { "eventBufferControl", "h248.eventBufferControl",
6051 FT_UINT32, BASE_DEC, VALS(h248_EventBufferControl_vals), 0,
6052 "h248.EventBufferControl", HFILL }},
6053 { &hf_h248_serviceState,
6054 { "serviceState", "h248.serviceState",
6055 FT_UINT32, BASE_DEC, VALS(h248_ServiceState_vals), 0,
6056 "h248.ServiceState", HFILL }},
6058 { "muxType", "h248.muxType",
6059 FT_UINT32, BASE_DEC, VALS(h248_MuxType_vals), 0,
6060 "h248.MuxType", HFILL }},
6061 { &hf_h248_termList,
6062 { "termList", "h248.termList",
6063 FT_UINT32, BASE_DEC, NULL, 0,
6064 "h248.SEQUENCE_OF_TerminationID", HFILL }},
6065 { &hf_h248_termList_item,
6066 { "TerminationID", "h248.TerminationID",
6067 FT_NONE, BASE_NONE, NULL, 0,
6068 "h248.TerminationID", HFILL }},
6069 { &hf_h248_nonStandardData,
6070 { "nonStandardData", "h248.nonStandardData",
6071 FT_NONE, BASE_NONE, NULL, 0,
6072 "h248.NonStandardData", HFILL }},
6073 { &hf_h248_eventList,
6074 { "eventList", "h248.eventList",
6075 FT_UINT32, BASE_DEC, NULL, 0,
6076 "h248.SEQUENCE_OF_RequestedEvent", HFILL }},
6077 { &hf_h248_eventList_item,
6078 { "RequestedEvent", "h248.RequestedEvent",
6079 FT_NONE, BASE_NONE, NULL, 0,
6080 "h248.RequestedEvent", HFILL }},
6081 { &hf_h248_eventAction,
6082 { "eventAction", "h248.eventAction",
6083 FT_NONE, BASE_NONE, NULL, 0,
6084 "h248.RequestedActions", HFILL }},
6085 { &hf_h248_evParList,
6086 { "evParList", "h248.evParList",
6087 FT_UINT32, BASE_DEC, NULL, 0,
6088 "h248.SEQUENCE_OF_EventParameter", HFILL }},
6089 { &hf_h248_evParList_item,
6090 { "EventParameter", "h248.EventParameter",
6091 FT_NONE, BASE_NONE, NULL, 0,
6092 "h248.EventParameter", HFILL }},
6093 { &hf_h248_secondEvent,
6094 { "secondEvent", "h248.secondEvent",
6095 FT_NONE, BASE_NONE, NULL, 0,
6096 "h248.SecondEventsDescriptor", HFILL }},
6097 { &hf_h248_notifyImmediate,
6098 { "notifyImmediate", "h248.notifyImmediate",
6099 FT_NONE, BASE_NONE, NULL, 0,
6100 "h248.NULL", HFILL }},
6101 { &hf_h248_notifyRegulated,
6102 { "notifyRegulated", "h248.notifyRegulated",
6103 FT_NONE, BASE_NONE, NULL, 0,
6104 "h248.RegulatedEmbeddedDescriptor", HFILL }},
6105 { &hf_h248_neverNotify,
6106 { "neverNotify", "h248.neverNotify",
6107 FT_NONE, BASE_NONE, NULL, 0,
6108 "h248.NULL", HFILL }},
6109 { &hf_h248_keepActive,
6110 { "keepActive", "h248.keepActive",
6111 FT_BOOLEAN, BASE_NONE, NULL, 0,
6112 "h248.BOOLEAN", HFILL }},
6114 { "eventDM", "h248.eventDM",
6115 FT_UINT32, BASE_DEC, VALS(h248_EventDM_vals), 0,
6116 "h248.EventDM", HFILL }},
6117 { &hf_h248_notifyBehaviour,
6118 { "notifyBehaviour", "h248.notifyBehaviour",
6119 FT_UINT32, BASE_DEC, VALS(h248_NotifyBehaviour_vals), 0,
6120 "h248.NotifyBehaviour", HFILL }},
6121 { &hf_h248_resetEventsDescriptor,
6122 { "resetEventsDescriptor", "h248.resetEventsDescriptor",
6123 FT_NONE, BASE_NONE, NULL, 0,
6124 "h248.NULL", HFILL }},
6125 { &hf_h248_digitMapValue,
6126 { "digitMapValue", "h248.digitMapValue",
6127 FT_NONE, BASE_NONE, NULL, 0,
6128 "h248.DigitMapValue", HFILL }},
6129 { &hf_h248_secondaryEventList,
6130 { "eventList", "h248.eventList",
6131 FT_UINT32, BASE_DEC, NULL, 0,
6132 "h248.SEQUENCE_OF_SecondRequestedEvent", HFILL }},
6133 { &hf_h248_secondaryEventList_item,
6134 { "SecondRequestedEvent", "h248.SecondRequestedEvent",
6135 FT_NONE, BASE_NONE, NULL, 0,
6136 "h248.SecondRequestedEvent", HFILL }},
6137 { &hf_h248_pkgdName,
6138 { "pkgdName", "h248.pkgdName",
6139 FT_BYTES, BASE_NONE, NULL, 0,
6140 "h248.PkgdName", HFILL }},
6141 { &hf_h248_secondaryEventAction,
6142 { "eventAction", "h248.eventAction",
6143 FT_NONE, BASE_NONE, NULL, 0,
6144 "h248.SecondRequestedActions", HFILL }},
6145 { &hf_h248_EventBufferDescriptor_item,
6146 { "EventSpec", "h248.EventSpec",
6147 FT_NONE, BASE_NONE, NULL, 0,
6148 "h248.EventSpec", HFILL }},
6149 { &hf_h248_SignalsDescriptor_item,
6150 { "SignalRequest", "h248.SignalRequest",
6151 FT_UINT32, BASE_DEC, VALS(h248_SignalRequest_vals), 0,
6152 "h248.SignalRequest", HFILL }},
6154 { "signal", "h248.signal",
6155 FT_NONE, BASE_NONE, NULL, 0,
6156 "h248.Signal", HFILL }},
6157 { &hf_h248_seqSigList,
6158 { "seqSigList", "h248.seqSigList",
6159 FT_NONE, BASE_NONE, NULL, 0,
6160 "h248.SeqSigList", HFILL }},
6161 { &hf_h248_signalList,
6162 { "signalList", "h248.signalList",
6163 FT_UINT32, BASE_DEC, NULL, 0,
6164 "h248.SEQUENCE_OF_Signal", HFILL }},
6165 { &hf_h248_signalList_item,
6166 { "Signal", "h248.Signal",
6167 FT_NONE, BASE_NONE, NULL, 0,
6168 "h248.Signal", HFILL }},
6169 { &hf_h248_signalName,
6170 { "signalName", "h248.signalName",
6171 FT_BYTES, BASE_NONE, NULL, 0,
6172 "h248.SignalName", HFILL }},
6174 { "sigType", "h248.sigType",
6175 FT_UINT32, BASE_DEC, VALS(h248_SignalType_vals), 0,
6176 "h248.SignalType", HFILL }},
6177 { &hf_h248_duration,
6178 { "duration", "h248.duration",
6179 FT_UINT32, BASE_DEC, NULL, 0,
6180 "h248.INTEGER_0_65535", HFILL }},
6181 { &hf_h248_notifyCompletion,
6182 { "notifyCompletion", "h248.notifyCompletion",
6183 FT_BYTES, BASE_NONE, NULL, 0,
6184 "h248.NotifyCompletion", HFILL }},
6185 { &hf_h248_sigParList,
6186 { "sigParList", "h248.sigParList",
6187 FT_UINT32, BASE_DEC, NULL, 0,
6188 "h248.SEQUENCE_OF_SigParameter", HFILL }},
6189 { &hf_h248_sigParList_item,
6190 { "SigParameter", "h248.SigParameter",
6191 FT_NONE, BASE_NONE, NULL, 0,
6192 "h248.SigParameter", HFILL }},
6193 { &hf_h248_direction,
6194 { "direction", "h248.direction",
6195 FT_UINT32, BASE_DEC, VALS(h248_SignalDirection_vals), 0,
6196 "h248.SignalDirection", HFILL }},
6197 { &hf_h248_intersigDelay,
6198 { "intersigDelay", "h248.intersigDelay",
6199 FT_UINT32, BASE_DEC, NULL, 0,
6200 "h248.INTEGER_0_65535", HFILL }},
6201 { &hf_h248_sigParameterName,
6202 { "sigParameterName", "h248.sigParameterName",
6203 FT_BYTES, BASE_NONE, NULL, 0,
6204 "h248.SigParameterName", HFILL }},
6206 { "value", "h248.value",
6207 FT_UINT32, BASE_DEC, NULL, 0,
6208 "h248.SigParamValues", HFILL }},
6209 { &hf_h248_extraInfo,
6210 { "extraInfo", "h248.extraInfo",
6211 FT_UINT32, BASE_DEC, VALS(h248_T_extraInfo_vals), 0,
6212 "h248.T_extraInfo", HFILL }},
6213 { &hf_h248_SigParamValues_item,
6214 { "SigParamValue", "h248.SigParamValue",
6215 FT_BYTES, BASE_NONE, NULL, 0,
6216 "h248.SigParamValue", HFILL }},
6218 { "mtl", "h248.mtl",
6219 FT_UINT32, BASE_DEC, NULL, 0,
6220 "h248.SEQUENCE_OF_ModemType", HFILL }},
6221 { &hf_h248_mtl_item,
6222 { "ModemType", "h248.ModemType",
6223 FT_UINT32, BASE_DEC, VALS(h248_ModemType_vals), 0,
6224 "h248.ModemType", HFILL }},
6226 { "mpl", "h248.mpl",
6227 FT_UINT32, BASE_DEC, NULL, 0,
6228 "h248.SEQUENCE_OF_PropertyParm", HFILL }},
6229 { &hf_h248_mpl_item,
6230 { "PropertyParm", "h248.PropertyParm",
6231 FT_NONE, BASE_NONE, NULL, 0,
6232 "h248.PropertyParm", HFILL }},
6233 { &hf_h248_startTimer,
6234 { "startTimer", "h248.startTimer",
6235 FT_UINT32, BASE_DEC, NULL, 0,
6236 "h248.INTEGER_0_99", HFILL }},
6237 { &hf_h248_shortTimer,
6238 { "shortTimer", "h248.shortTimer",
6239 FT_UINT32, BASE_DEC, NULL, 0,
6240 "h248.INTEGER_0_99", HFILL }},
6241 { &hf_h248_longTimer,
6242 { "longTimer", "h248.longTimer",
6243 FT_UINT32, BASE_DEC, NULL, 0,
6244 "h248.INTEGER_0_99", HFILL }},
6245 { &hf_h248_digitMapBody,
6246 { "digitMapBody", "h248.digitMapBody",
6247 FT_STRING, BASE_NONE, NULL, 0,
6248 "h248.IA5String", HFILL }},
6249 { &hf_h248_durationTimer,
6250 { "durationTimer", "h248.durationTimer",
6251 FT_UINT32, BASE_DEC, NULL, 0,
6252 "h248.INTEGER_0_99", HFILL }},
6253 { &hf_h248_serviceChangeMethod,
6254 { "serviceChangeMethod", "h248.serviceChangeMethod",
6255 FT_UINT32, BASE_DEC, VALS(h248_ServiceChangeMethod_vals), 0,
6256 "h248.ServiceChangeMethod", HFILL }},
6257 { &hf_h248_serviceChangeAddress,
6258 { "serviceChangeAddress", "h248.serviceChangeAddress",
6259 FT_UINT32, BASE_DEC, VALS(h248_ServiceChangeAddress_vals), 0,
6260 "h248.ServiceChangeAddress", HFILL }},
6261 { &hf_h248_serviceChangeVersion,
6262 { "serviceChangeVersion", "h248.serviceChangeVersion",
6263 FT_UINT32, BASE_DEC, NULL, 0,
6264 "h248.INTEGER_0_99", HFILL }},
6265 { &hf_h248_serviceChangeProfile,
6266 { "serviceChangeProfile", "h248.serviceChangeProfile",
6267 FT_NONE, BASE_NONE, NULL, 0,
6268 "h248.ServiceChangeProfile", HFILL }},
6269 { &hf_h248_serviceChangeReason,
6270 { "serviceChangeReason", "h248.serviceChangeReason",
6271 FT_UINT32, BASE_DEC, NULL, 0,
6272 "h248.SCreasonValue", HFILL }},
6273 { &hf_h248_serviceChangeDelay,
6274 { "serviceChangeDelay", "h248.serviceChangeDelay",
6275 FT_UINT32, BASE_DEC, NULL, 0,
6276 "h248.INTEGER_0_4294967295", HFILL }},
6277 { &hf_h248_serviceChangeMgcId,
6278 { "serviceChangeMgcId", "h248.serviceChangeMgcId",
6279 FT_UINT32, BASE_DEC, VALS(h248_MId_vals), 0,
6280 "h248.MId", HFILL }},
6281 { &hf_h248_timeStamp,
6282 { "timeStamp", "h248.timeStamp",
6283 FT_NONE, BASE_NONE, NULL, 0,
6284 "h248.TimeNotation", HFILL }},
6285 { &hf_h248_serviceChangeInfo,
6286 { "serviceChangeInfo", "h248.serviceChangeInfo",
6287 FT_NONE, BASE_NONE, NULL, 0,
6288 "h248.AuditDescriptor", HFILL }},
6289 { &hf_h248_serviceChangeIncompleteFlag,
6290 { "serviceChangeIncompleteFlag", "h248.serviceChangeIncompleteFlag",
6291 FT_NONE, BASE_NONE, NULL, 0,
6292 "h248.NULL", HFILL }},
6293 { &hf_h248_SCreasonValue_item,
6294 { "SCreasonValueOctetStr", "h248.SCreasonValueOctetStr",
6295 FT_BYTES, BASE_NONE, NULL, 0,
6296 "h248.SCreasonValueOctetStr", HFILL }},
6297 { &hf_h248_timestamp,
6298 { "timestamp", "h248.timestamp",
6299 FT_NONE, BASE_NONE, NULL, 0,
6300 "h248.TimeNotation", HFILL }},
6301 { &hf_h248_profileName,
6302 { "profileName", "h248.profileName",
6303 FT_STRING, BASE_NONE, NULL, 0,
6304 "h248.IA5String_SIZE_1_67", HFILL }},
6305 { &hf_h248_PackagesDescriptor_item,
6306 { "PackagesItem", "h248.PackagesItem",
6307 FT_NONE, BASE_NONE, NULL, 0,
6308 "h248.PackagesItem", HFILL }},
6309 { &hf_h248_StatisticsDescriptor_item,
6310 { "StatisticsParameter", "h248.StatisticsParameter",
6311 FT_NONE, BASE_NONE, NULL, 0,
6312 "h248.StatisticsParameter", HFILL }},
6313 { &hf_h248_statName,
6314 { "statName", "h248.statName",
6315 FT_BYTES, BASE_NONE, NULL, 0,
6316 "h248.StatName", HFILL }},
6317 { &hf_h248_statValue,
6318 { "statValue", "h248.statValue",
6319 FT_UINT32, BASE_DEC, NULL, 0,
6320 "h248.StatValue", HFILL }},
6321 { &hf_h248_nonStandardIdentifier,
6322 { "nonStandardIdentifier", "h248.nonStandardIdentifier",
6323 FT_UINT32, BASE_DEC, VALS(h248_NonStandardIdentifier_vals), 0,
6324 "h248.NonStandardIdentifier", HFILL }},
6326 { "data", "h248.data",
6327 FT_BYTES, BASE_NONE, NULL, 0,
6328 "h248.OCTET_STRING", HFILL }},
6330 { "object", "h248.object",
6331 FT_OID, BASE_NONE, NULL, 0,
6332 "h248.OBJECT_IDENTIFIER", HFILL }},
6333 { &hf_h248_h221NonStandard,
6334 { "h221NonStandard", "h248.h221NonStandard",
6335 FT_NONE, BASE_NONE, NULL, 0,
6336 "h248.H221NonStandard", HFILL }},
6337 { &hf_h248_experimental,
6338 { "experimental", "h248.experimental",
6339 FT_STRING, BASE_NONE, NULL, 0,
6340 "h248.IA5String_SIZE_8", HFILL }},
6341 { &hf_h248_t35CountryCode1,
6342 { "t35CountryCode1", "h248.t35CountryCode1",
6343 FT_UINT32, BASE_DEC, NULL, 0,
6344 "h248.INTEGER_0_255", HFILL }},
6345 { &hf_h248_t35CountryCode2,
6346 { "t35CountryCode2", "h248.t35CountryCode2",
6347 FT_UINT32, BASE_DEC, NULL, 0,
6348 "h248.INTEGER_0_255", HFILL }},
6349 { &hf_h248_t35Extension,
6350 { "t35Extension", "h248.t35Extension",
6351 FT_UINT32, BASE_DEC, NULL, 0,
6352 "h248.INTEGER_0_255", HFILL }},
6353 { &hf_h248_manufacturerCode,
6354 { "manufacturerCode", "h248.manufacturerCode",
6355 FT_UINT32, BASE_DEC, NULL, 0,
6356 "h248.INTEGER_0_65535", HFILL }},
6358 { "date", "h248.date",
6359 FT_STRING, BASE_NONE, NULL, 0,
6360 "h248.IA5String_SIZE_8", HFILL }},
6362 { "time", "h248.time",
6363 FT_STRING, BASE_NONE, NULL, 0,
6364 "h248.IA5String_SIZE_8", HFILL }},
6365 { &hf_h248_Value_item,
6366 { "Value item", "h248.Value_item",
6367 FT_BYTES, BASE_NONE, NULL, 0,
6368 "h248.OCTET_STRING", HFILL }},
6369 { &hf_h248_T_auditToken_muxToken,
6370 { "muxToken", "h248.muxToken",
6371 FT_BOOLEAN, 8, NULL, 0x80,
6373 { &hf_h248_T_auditToken_modemToken,
6374 { "modemToken", "h248.modemToken",
6375 FT_BOOLEAN, 8, NULL, 0x40,
6377 { &hf_h248_T_auditToken_mediaToken,
6378 { "mediaToken", "h248.mediaToken",
6379 FT_BOOLEAN, 8, NULL, 0x20,
6381 { &hf_h248_T_auditToken_eventsToken,
6382 { "eventsToken", "h248.eventsToken",
6383 FT_BOOLEAN, 8, NULL, 0x10,
6385 { &hf_h248_T_auditToken_signalsToken,
6386 { "signalsToken", "h248.signalsToken",
6387 FT_BOOLEAN, 8, NULL, 0x08,
6389 { &hf_h248_T_auditToken_digitMapToken,
6390 { "digitMapToken", "h248.digitMapToken",
6391 FT_BOOLEAN, 8, NULL, 0x04,
6393 { &hf_h248_T_auditToken_statsToken,
6394 { "statsToken", "h248.statsToken",
6395 FT_BOOLEAN, 8, NULL, 0x02,
6397 { &hf_h248_T_auditToken_observedEventsToken,
6398 { "observedEventsToken", "h248.observedEventsToken",
6399 FT_BOOLEAN, 8, NULL, 0x01,
6401 { &hf_h248_T_auditToken_packagesToken,
6402 { "packagesToken", "h248.packagesToken",
6403 FT_BOOLEAN, 8, NULL, 0x80,
6405 { &hf_h248_T_auditToken_eventBufferToken,
6406 { "eventBufferToken", "h248.eventBufferToken",
6407 FT_BOOLEAN, 8, NULL, 0x40,
6409 { &hf_h248_NotifyCompletion_onTimeOut,
6410 { "onTimeOut", "h248.onTimeOut",
6411 FT_BOOLEAN, 8, NULL, 0x80,
6413 { &hf_h248_NotifyCompletion_onInterruptByEvent,
6414 { "onInterruptByEvent", "h248.onInterruptByEvent",
6415 FT_BOOLEAN, 8, NULL, 0x40,
6417 { &hf_h248_NotifyCompletion_onInterruptByNewSignalDescr,
6418 { "onInterruptByNewSignalDescr", "h248.onInterruptByNewSignalDescr",
6419 FT_BOOLEAN, 8, NULL, 0x20,
6421 { &hf_h248_NotifyCompletion_otherReason,
6422 { "otherReason", "h248.otherReason",
6423 FT_BOOLEAN, 8, NULL, 0x10,
6425 { &hf_h248_NotifyCompletion_onIteration,
6426 { "onIteration", "h248.onIteration",
6427 FT_BOOLEAN, 8, NULL, 0x08,
6430 /*--- End of included file: packet-h248-hfarr.c ---*/
6431 #line 1427 "packet-h248-template.c"
6433 GCP_HF_ARR_ELEMS("h248",h248_arrel)
6437 /* List of subtrees */
6438 static gint *ett[] = {
6447 GCP_ETT_ARR_ELEMS(h248_arrel),
6450 /*--- Included file: packet-h248-ettarr.c ---*/
6451 #line 1 "packet-h248-ettarr.c"
6452 &ett_h248_MegacoMessage,
6453 &ett_h248_AuthenticationHeader,
6455 &ett_h248_T_messageBody,
6456 &ett_h248_SEQUENCE_OF_Transaction,
6458 &ett_h248_DomainName,
6459 &ett_h248_IP4Address,
6460 &ett_h248_IP6Address,
6461 &ett_h248_Transaction,
6462 &ett_h248_TransactionRequest,
6463 &ett_h248_SEQUENCE_OF_ActionRequest,
6464 &ett_h248_TransactionPending,
6465 &ett_h248_TransactionReply,
6466 &ett_h248_T_transactionResult,
6467 &ett_h248_SEQUENCE_OF_ActionReply,
6468 &ett_h248_SegmentReply,
6469 &ett_h248_TransactionResponseAck,
6470 &ett_h248_TransactionAck,
6471 &ett_h248_ErrorDescriptor,
6472 &ett_h248_ActionRequest,
6473 &ett_h248_SEQUENCE_OF_CommandRequest,
6474 &ett_h248_ActionReply,
6475 &ett_h248_SEQUENCE_OF_CommandReply,
6476 &ett_h248_ContextRequest,
6477 &ett_h248_T_topologyReq,
6478 &ett_h248_SEQUENCE_OF_PropertyParm,
6479 &ett_h248_SEQUENCE_OF_ContextIDinList,
6480 &ett_h248_ContextAttrAuditRequest,
6481 &ett_h248_SEQUENCE_OF_IndAudPropertyParm,
6482 &ett_h248_SelectLogic,
6483 &ett_h248_CommandRequest,
6485 &ett_h248_CommandReply,
6486 &ett_h248_TopologyRequest,
6487 &ett_h248_AmmRequest,
6488 &ett_h248_SEQUENCE_OF_AmmDescriptor,
6489 &ett_h248_AmmDescriptor,
6490 &ett_h248_AmmsReply,
6491 &ett_h248_SubtractRequest,
6492 &ett_h248_AuditRequest,
6493 &ett_h248_AuditReply,
6494 &ett_h248_AuditResult,
6495 &ett_h248_TermListAuditResult,
6496 &ett_h248_TerminationAudit,
6497 &ett_h248_AuditReturnParameter,
6498 &ett_h248_AuditDescriptor,
6499 &ett_h248_T_auditToken,
6500 &ett_h248_SEQUENCE_OF_IndAuditParameter,
6501 &ett_h248_IndAuditParameter,
6502 &ett_h248_IndAudMediaDescriptor,
6503 &ett_h248_IndAudMediaDescriptorStreams,
6504 &ett_h248_SEQUENCE_OF_IndAudStreamDescriptor,
6505 &ett_h248_IndAudStreamDescriptor,
6506 &ett_h248_IndAudStreamParms,
6507 &ett_h248_IndAudLocalControlDescriptor,
6508 &ett_h248_IndAudPropertyParm,
6509 &ett_h248_IndAudLocalRemoteDescriptor,
6510 &ett_h248_IndAudPropertyGroup,
6511 &ett_h248_IndAudTerminationStateDescriptor,
6512 &ett_h248_IndAudEventsDescriptor,
6513 &ett_h248_IndAudEventBufferDescriptor,
6514 &ett_h248_IndAudSignalsDescriptor,
6515 &ett_h248_IndAudSeqSigList,
6516 &ett_h248_IndAudSignal,
6517 &ett_h248_IndAudDigitMapDescriptor,
6518 &ett_h248_IndAudStatisticsDescriptor,
6519 &ett_h248_IndAudPackagesDescriptor,
6520 &ett_h248_NotifyRequest,
6521 &ett_h248_NotifyReply,
6522 &ett_h248_ObservedEventsDescriptor,
6523 &ett_h248_SEQUENCE_OF_ObservedEvent,
6524 &ett_h248_ObservedEvent,
6525 &ett_h248_SEQUENCE_OF_EventParameter,
6526 &ett_h248_EventParameter,
6527 &ett_h248_EventPar_extraInfo,
6528 &ett_h248_EventParamValues,
6529 &ett_h248_ServiceChangeRequest,
6530 &ett_h248_ServiceChangeReply,
6531 &ett_h248_ServiceChangeResult,
6532 &ett_h248_TerminationID,
6533 &ett_h248_SEQUENCE_OF_WildcardField,
6534 &ett_h248_TerminationIDList,
6535 &ett_h248_MediaDescriptor,
6536 &ett_h248_T_streams,
6537 &ett_h248_SEQUENCE_OF_StreamDescriptor,
6538 &ett_h248_StreamDescriptor,
6539 &ett_h248_StreamParms,
6540 &ett_h248_LocalControlDescriptor,
6541 &ett_h248_PropertyParm,
6542 &ett_h248_SEQUENCE_OF_PropertyID,
6543 &ett_h248_PropParm_extraInfo,
6544 &ett_h248_LocalRemoteDescriptor,
6545 &ett_h248_SEQUENCE_OF_PropertyGroup,
6546 &ett_h248_PropertyGroup,
6547 &ett_h248_TerminationStateDescriptor,
6548 &ett_h248_MuxDescriptor,
6549 &ett_h248_SEQUENCE_OF_TerminationID,
6550 &ett_h248_EventsDescriptor,
6551 &ett_h248_SEQUENCE_OF_RequestedEvent,
6552 &ett_h248_RequestedEvent,
6553 &ett_h248_RegulatedEmbeddedDescriptor,
6554 &ett_h248_NotifyBehaviour,
6555 &ett_h248_RequestedActions,
6557 &ett_h248_SecondEventsDescriptor,
6558 &ett_h248_SEQUENCE_OF_SecondRequestedEvent,
6559 &ett_h248_SecondRequestedEvent,
6560 &ett_h248_SecondRequestedActions,
6561 &ett_h248_EventBufferDescriptor,
6562 &ett_h248_EventSpec,
6563 &ett_h248_SignalsDescriptor,
6564 &ett_h248_SignalRequest,
6565 &ett_h248_SeqSigList,
6566 &ett_h248_SEQUENCE_OF_Signal,
6568 &ett_h248_SEQUENCE_OF_SigParameter,
6569 &ett_h248_NotifyCompletion,
6570 &ett_h248_SigParameter,
6571 &ett_h248_T_extraInfo,
6572 &ett_h248_SigParamValues,
6573 &ett_h248_ModemDescriptor,
6574 &ett_h248_SEQUENCE_OF_ModemType,
6575 &ett_h248_DigitMapDescriptor,
6576 &ett_h248_DigitMapValue,
6577 &ett_h248_ServiceChangeParm,
6578 &ett_h248_SCreasonValue,
6579 &ett_h248_ServiceChangeAddress,
6580 &ett_h248_ServiceChangeResParm,
6581 &ett_h248_ServiceChangeProfile,
6582 &ett_h248_PackagesDescriptor,
6583 &ett_h248_PackagesItem,
6584 &ett_h248_StatisticsDescriptor,
6585 &ett_h248_StatisticsParameter,
6586 &ett_h248_NonStandardData,
6587 &ett_h248_NonStandardIdentifier,
6588 &ett_h248_H221NonStandard,
6589 &ett_h248_TimeNotation,
6592 /*--- End of included file: packet-h248-ettarr.c ---*/
6593 #line 1445 "packet-h248-template.c"
6596 module_t *h248_module;
6599 /* Register protocol */
6600 proto_h248 = proto_register_protocol(PNAME, PSNAME, PFNAME);
6601 register_dissector("h248", dissect_h248, proto_h248);
6602 register_dissector("h248.tpkt", dissect_h248_tpkt, proto_h248);
6604 /* Register fields and subtrees */
6605 proto_register_field_array(proto_h248, hf, array_length(hf));
6606 proto_register_subtree_array(ett, array_length(ett));
6608 h248_module = prefs_register_protocol(proto_h248, proto_reg_handoff_h248);
6609 prefs_register_bool_preference(h248_module, "ctx_info",
6611 "Mantain relationships between transactions and contexts and display an extra tree showing context data",
6612 &keep_persistent_data);
6613 prefs_register_uint_preference(h248_module, "udp_port",
6615 "Port to be decoded as h248",
6618 prefs_register_uint_preference(h248_module, "tcp_port",
6620 "Port to be decoded as h248",
6623 prefs_register_bool_preference(h248_module, "desegment",
6624 "Desegment H.248 over TCP",
6625 "Desegment H.248 messages that span more TCP segments",
6628 msgs = se_tree_create(EMEM_TREE_TYPE_RED_BLACK, "h248_msgs");
6629 trxs = se_tree_create(EMEM_TREE_TYPE_RED_BLACK, "h248_trxs");
6630 ctxs_by_trx = se_tree_create(EMEM_TREE_TYPE_RED_BLACK, "h248_ctxs_by_trx");
6631 ctxs = se_tree_create(EMEM_TREE_TYPE_RED_BLACK, "h248_ctxs");
6633 h248_tap = register_tap("h248");
6638 /*--- proto_reg_handoff_h248 -------------------------------------------*/
6639 void proto_reg_handoff_h248(void) {
6641 static gboolean initialized = FALSE;
6642 static guint32 udp_port;
6643 static guint32 tcp_port;
6646 h248_handle = find_dissector("h248");
6647 h248_tpkt_handle = find_dissector("h248.tpkt");
6648 dissector_add("mtp3.service_indicator", GATEWAY_CONTROL_PROTOCOL_USER_ID, h248_handle);
6649 h248_term_handle = find_dissector("h248term");
6653 dissector_delete("udp.port", udp_port, h248_handle);
6656 dissector_delete("tcp.port", tcp_port, h248_tpkt_handle);
6659 udp_port = global_udp_port;
6660 tcp_port = global_tcp_port;
6662 if (udp_port != 0) {
6663 dissector_add("udp.port", udp_port, h248_handle);
6666 if (tcp_port != 0) {
6667 dissector_add("tcp.port", tcp_port, h248_tpkt_handle);