change the signature that asn2wrs generates for functions to marm all parameters...
[obnox/wireshark/wip.git] / epan / dissectors / packet-camel.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* ./packet-camel.c                                                           */
4 /* ../../tools/asn2wrs.py -b -e -p camel -c camel.cnf -s packet-camel-template camel.asn */
5
6 /* Input file: packet-camel-template.c */
7
8 #line 1 "packet-camel-template.c"
9 /* packet-camel-template.c
10  * Routines for Camel
11  * Copyright 2004, Tim Endean <endeant@hotmail.com>
12  * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
13  * Copyright 2005, Javier AcuÇña <javier.acuna@sixbell.com>
14  * Updated to ETSI TS 129 078 V6.4.0 (2004-3GPP TS 29.078 version 6.4.0 Release 6 1 12)
15  * Copyright 2005-2006, Anders Broman <anders.broman@ericsson.com>
16  * Updated to 3GPP TS 29.078 version 7.3.0 Release 7 (2006-06)
17  * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
18  *
19  * $Id$
20  *
21  * Wireshark - Network traffic analyzer
22  * By Gerald Combs <gerald@wireshark.org>
23  * Copyright 1998 Gerald Combs
24  *
25  * This program is free software; you can redistribute it and/or
26  * modify it under the terms of the GNU General Public License
27  * as published by the Free Software Foundation; either version 2
28  * of the License, or (at your option) any later version.
29  *
30  * This program is distributed in the hope that it will be useful,
31  * but WITHOUT ANY WARRANTY; without even the implied warranty of
32  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
33  * GNU General Public License for more details.
34  *
35  * You should have received a copy of the GNU General Public License
36  * along with this program; if not, write to the Free Software
37  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
38  * References: ETSI 300 374
39  */
40 /* 
41  * Indentation logic: this file is indented with 2 spaces indentation. 
42  *                    there are no tabs.
43  */
44 #ifdef HAVE_CONFIG_H
45 # include "config.h"
46 #endif
47
48 #include <glib.h>
49 #include <epan/packet.h>
50 #include <epan/prefs.h>
51 #include <epan/conversation.h>
52 #include <epan/oid_resolv.h>
53 #include <epan/tap.h>
54 #include "epan/expert.h"
55
56 #include <stdio.h>
57 #include <string.h>
58
59 #include "packet-ber.h"
60 #include "packet-camel.h"
61 #include "packet-q931.h"
62 #include "packet-e164.h"
63 #include "packet-isup.h"
64 #include "packet-gsm_map.h"
65 #include "packet-gsm_a.h"
66 #include "packet-tcap.h"
67 #include "epan/camel-persistentdata.h"
68 #include "epan/tcap-persistentdata.h"
69
70 #define PNAME  "Camel"
71 #define PSNAME "CAMEL"
72 #define PFNAME "camel"
73
74 /* Initialize the protocol and registered fields */
75 int proto_camel = -1;
76 int date_format = 1; /*assume european date format */
77 int camel_tap = -1;
78 /* Global variables */
79 static guint32 opcode=0;
80 static guint32 errorCode=0;
81
82
83 static int hf_digit = -1; 
84 static int hf_camel_addr_extension = -1;
85 static int hf_camel_addr_natureOfAddressIndicator = -1;
86 static int hf_camel_addr_numberingPlanInd = -1;
87 static int hf_camel_addr_digits = -1;
88 static int hf_camel_cause_indicator = -1;
89 static int hf_camel_PDPTypeNumber_etsi = -1;
90 static int hf_camel_PDPTypeNumber_ietf = -1;
91 static int hf_camel_PDPAddress_IPv4 = -1;
92 static int hf_camel_PDPAddress_IPv6 = -1;
93 static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength = -1;
94 static int hf_camel_RP_Cause = -1;
95
96 /* Used by camel-persistentdata.c */
97 int hf_camelsrt_SessionId=-1;
98 int hf_camelsrt_RequestNumber=-1;
99 int hf_camelsrt_Duplicate=-1;
100 int hf_camelsrt_RequestFrame=-1;
101 int hf_camelsrt_ResponseFrame=-1;
102 int hf_camelsrt_DeltaTime=-1;
103 int hf_camelsrt_SessionTime=-1;
104 int hf_camelsrt_DeltaTime31=-1;
105 int hf_camelsrt_DeltaTime75=-1;
106 int hf_camelsrt_DeltaTime65=-1;
107 int hf_camelsrt_DeltaTime22=-1;
108 int hf_camelsrt_DeltaTime35=-1;
109 int hf_camelsrt_DeltaTime80=-1;
110
111 static struct camelsrt_info_t * gp_camelsrt_info;
112
113 /* Forward declarations */
114 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
115 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
116 static int dissect_returnErrorData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
117
118
119
120 /*--- Included file: packet-camel-hf.c ---*/
121 #line 1 "packet-camel-hf.c"
122 static int hf_camel_Component_PDU = -1;           /* Component */
123 static int hf_camel_invoke = -1;                  /* Invoke */
124 static int hf_camel_returnResultLast = -1;        /* ReturnResult */
125 static int hf_camel_returnError = -1;             /* ReturnError */
126 static int hf_camel_reject = -1;                  /* Reject */
127 static int hf_camel_invokeID = -1;                /* InvokeIdType */
128 static int hf_camel_linkedID = -1;                /* InvokeIdType */
129 static int hf_camel_opCode = -1;                  /* OPERATION */
130 static int hf_camel_invokeparameter = -1;         /* InvokeParameter */
131 static int hf_camel_resultretres = -1;            /* T_resultretres */
132 static int hf_camel_returnparameter = -1;         /* ReturnResultParameter */
133 static int hf_camel_errorCode = -1;               /* ERROR */
134 static int hf_camel_parameter = -1;               /* ReturnErrorParameter */
135 static int hf_camel_invokeIDRej = -1;             /* T_invokeIDRej */
136 static int hf_camel_derivable = -1;               /* InvokeIdType */
137 static int hf_camel_not_derivable = -1;           /* NULL */
138 static int hf_camel_problem = -1;                 /* T_problem */
139 static int hf_camel_generalProblem = -1;          /* GeneralProblem */
140 static int hf_camel_invokeProblem = -1;           /* InvokeProblem */
141 static int hf_camel_returnResultProblem = -1;     /* ReturnResultProblem */
142 static int hf_camel_returnErrorProblem = -1;      /* ReturnErrorProblem */
143 static int hf_camel_localValue = -1;              /* OperationLocalvalue */
144 static int hf_camel_globalValue = -1;             /* OBJECT_IDENTIFIER */
145 static int hf_camel_localErrorValue = -1;         /* LocalErrorcode */
146 static int hf_camel_globalErrorValue = -1;        /* OBJECT_IDENTIFIER */
147 static int hf_camel_actimeDurationCharging = -1;  /* T_actimeDurationCharging */
148 static int hf_camel_maxCallPeriodDuration = -1;   /* INTEGER_1_864000 */
149 static int hf_camel_releaseIfdurationExceeded = -1;  /* BOOLEAN */
150 static int hf_camel_tariffSwitchInterval = -1;    /* INTEGER_1_86400 */
151 static int hf_camel_actone = -1;                  /* BOOLEAN */
152 static int hf_camel_extensions = -1;              /* ExtensionsArray */
153 static int hf_camel_legID = -1;                   /* LegID */
154 static int hf_camel_srfConnection = -1;           /* CallSegmentID */
155 static int hf_camel_aOCInitial = -1;              /* CAI_Gsm0224 */
156 static int hf_camel_aOCSubsequent = -1;           /* AOCSubsequent */
157 static int hf_camel_cAI_GSM0224 = -1;             /* CAI_Gsm0224 */
158 static int hf_camel_istone = -1;                  /* BOOLEAN */
159 static int hf_camel_burstList = -1;               /* BurstList */
160 static int hf_camel_conferenceTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
161 static int hf_camel_callCompletionTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
162 static int hf_camel_calledAddressValue = -1;      /* Digits */
163 static int hf_camel_gapOnService = -1;            /* GapOnService */
164 static int hf_camel_calledAddressAndService = -1;  /* T_calledAddressAndService */
165 static int hf_camel_serviceKey = -1;              /* ServiceKey */
166 static int hf_camel_callingAddressAndService = -1;  /* T_callingAddressAndService */
167 static int hf_camel_callingAddressValue = -1;     /* Digits */
168 static int hf_camel_eventTypeBCSM = -1;           /* EventTypeBCSM */
169 static int hf_camel_monitorMode = -1;             /* MonitorMode */
170 static int hf_camel_legID6 = -1;                  /* LegID */
171 static int hf_camel_dpSpecificCriteria = -1;      /* DpSpecificCriteria */
172 static int hf_camel_automaticRearm = -1;          /* NULL */
173 static int hf_camel_cause = -1;                   /* Cause */
174 static int hf_camel_bearerCap = -1;               /* BearerCap */
175 static int hf_camel_numberOfBursts = -1;          /* INTEGER_1_3 */
176 static int hf_camel_burstInterval = -1;           /* INTEGER_1_1200 */
177 static int hf_camel_numberOfTonesInBurst = -1;    /* INTEGER_1_3 */
178 static int hf_camel_toneDuration = -1;            /* INTEGER_1_20 */
179 static int hf_camel_toneInterval = -1;            /* INTEGER_1_20 */
180 static int hf_camel_warningPeriod = -1;           /* INTEGER_1_1200 */
181 static int hf_camel_bursts = -1;                  /* Burst */
182 static int hf_camel_e1 = -1;                      /* INTEGER_0_8191 */
183 static int hf_camel_e2 = -1;                      /* INTEGER_0_8191 */
184 static int hf_camel_e3 = -1;                      /* INTEGER_0_8191 */
185 static int hf_camel_e4 = -1;                      /* INTEGER_0_8191 */
186 static int hf_camel_e5 = -1;                      /* INTEGER_0_8191 */
187 static int hf_camel_e6 = -1;                      /* INTEGER_0_8191 */
188 static int hf_camel_e7 = -1;                      /* INTEGER_0_8191 */
189 static int hf_camel_callSegmentID = -1;           /* CallSegmentID */
190 static int hf_camel_callInvokeID = -1;            /* InvokeID */
191 static int hf_camel_timeDurationCharging = -1;    /* T_timeDurationCharging */
192 static int hf_camel_audibleIndicator = -1;        /* AudibleIndicator */
193 static int hf_camel_timeDurationChargingResult = -1;  /* TimeDurationChargingResult */
194 static int hf_camel_void = -1;                    /* NULL */
195 static int hf_camel_partyToCharge = -1;           /* ReceivingSideID */
196 static int hf_camel_timeInformation = -1;         /* TimeInformation */
197 static int hf_camel_legActive = -1;               /* BOOLEAN */
198 static int hf_camel_callLegReleasedAtTcpExpiry = -1;  /* NULL */
199 static int hf_camel_aChChargingAddress = -1;      /* AChChargingAddress */
200 static int hf_camel_fCIBCCCAMELsequence1 = -1;    /* T_fCIBCCCAMELsequence1 */
201 static int hf_camel_freeFormatData = -1;          /* FreeFormatData */
202 static int hf_camel_partyToCharge4 = -1;          /* SendingSideID */
203 static int hf_camel_appendFreeFormatData = -1;    /* AppendFreeFormatData */
204 static int hf_camel_fCIBCCCAMELsequence2 = -1;    /* T_fCIBCCCAMELsequence2 */
205 static int hf_camel_pDPID = -1;                   /* PDPId */
206 static int hf_camel_fCIBCCCAMELsequence3 = -1;    /* T_fCIBCCCAMELsequence3 */
207 static int hf_camel_aOCBeforeAnswer = -1;         /* AOCBeforeAnswer */
208 static int hf_camel_aOCAfterAnswer = -1;          /* AOCSubsequent */
209 static int hf_camel_aOC_extension = -1;           /* CAMEL_SCIBillingChargingCharacteristicsAlt */
210 static int hf_camel_aOCGPRS = -1;                 /* AOCGprs */
211 static int hf_camel_ChangeOfPositionControlInfo_item = -1;  /* ChangeOfLocation */
212 static int hf_camel_cellGlobalId = -1;            /* CellGlobalIdOrServiceAreaIdFixedLength */
213 static int hf_camel_serviceAreaId = -1;           /* CellGlobalIdOrServiceAreaIdFixedLength */
214 static int hf_camel_locationAreaId = -1;          /* LAIFixedLength */
215 static int hf_camel_inter_SystemHandOver = -1;    /* NULL */
216 static int hf_camel_inter_PLMNHandOver = -1;      /* NULL */
217 static int hf_camel_inter_MSCHandOver = -1;       /* NULL */
218 static int hf_camel_changeOfLocationAlt = -1;     /* ChangeOfLocationAlt */
219 static int hf_camel_maxTransferredVolume = -1;    /* INTEGER_1_4294967295 */
220 static int hf_camel_maxElapsedTime = -1;          /* INTEGER_1_86400 */
221 static int hf_camel_transferredVolume = -1;       /* TransferredVolume */
222 static int hf_camel_elapsedTime = -1;             /* ElapsedTime */
223 static int hf_camel_transferredVolumeRollOver = -1;  /* TransferredVolumeRollOver */
224 static int hf_camel_elapsedTimeRollOver = -1;     /* ElapsedTimeRollOver */
225 static int hf_camel_minimumNbOfDigits = -1;       /* INTEGER_1_30 */
226 static int hf_camel_maximumNbOfDigits = -1;       /* INTEGER_1_30 */
227 static int hf_camel_endOfReplyDigit = -1;         /* OCTET_STRING_SIZE_1_2 */
228 static int hf_camel_cancelDigit = -1;             /* OCTET_STRING_SIZE_1_2 */
229 static int hf_camel_startDigit = -1;              /* OCTET_STRING_SIZE_1_2 */
230 static int hf_camel_firstDigitTimeOut = -1;       /* INTEGER_1_127 */
231 static int hf_camel_interDigitTimeOut = -1;       /* INTEGER_1_127 */
232 static int hf_camel_errorTreatment = -1;          /* ErrorTreatment */
233 static int hf_camel_interruptableAnnInd = -1;     /* BOOLEAN */
234 static int hf_camel_voiceInformation = -1;        /* BOOLEAN */
235 static int hf_camel_voiceBack = -1;               /* BOOLEAN */
236 static int hf_camel_collectedDigits = -1;         /* CollectedDigits */
237 static int hf_camel_basicGapCriteria = -1;        /* BasicGapCriteria */
238 static int hf_camel_scfID = -1;                   /* ScfID */
239 static int hf_camel_DestinationRoutingAddress_item = -1;  /* CalledPartyNumber */
240 static int hf_camel_applicationTimer = -1;        /* ApplicationTimer */
241 static int hf_camel_midCallControlInfo = -1;      /* MidCallControlInfo */
242 static int hf_camel_dpSpecificCriteriaAlt = -1;   /* DpSpecificCriteriaAlt */
243 static int hf_camel_changeOfPositionControlInfo = -1;  /* ChangeOfPositionControlInfo */
244 static int hf_camel_numberOfDigits = -1;          /* NumberOfDigits */
245 static int hf_camel_interDigitTimeout = -1;       /* INTEGER_1_127 */
246 static int hf_camel_oServiceChangeSpecificInfo = -1;  /* T_oServiceChangeSpecificInfo */
247 static int hf_camel_ext_basicServiceCode = -1;    /* Ext_BasicServiceCode */
248 static int hf_camel_initiatorOfServiceChange = -1;  /* InitiatorOfServiceChange */
249 static int hf_camel_natureOfServiceChange = -1;   /* NatureOfServiceChange */
250 static int hf_camel_tServiceChangeSpecificInfo = -1;  /* T_tServiceChangeSpecificInfo */
251 static int hf_camel_timeGPRSIfNoTariffSwitch = -1;  /* INTEGER_0_86400 */
252 static int hf_camel_timeGPRSIfTariffSwitch = -1;  /* T_timeGPRSIfTariffSwitch */
253 static int hf_camel_timeGPRSSinceLastTariffSwitch = -1;  /* INTEGER_0_86400 */
254 static int hf_camel_timeGPRSTariffSwitchInterval = -1;  /* INTEGER_0_86400 */
255 static int hf_camel_rOTimeGPRSIfNoTariffSwitch = -1;  /* INTEGER_0_255 */
256 static int hf_camel_rOTimeGPRSIfTariffSwitch = -1;  /* T_rOTimeGPRSIfTariffSwitch */
257 static int hf_camel_rOTimeGPRSSinceLastTariffSwitch = -1;  /* INTEGER_0_255 */
258 static int hf_camel_rOTimeGPRSTariffSwitchInterval = -1;  /* INTEGER_0_255 */
259 static int hf_camel_routeSelectFailureSpecificInfo = -1;  /* T_routeSelectFailureSpecificInfo */
260 static int hf_camel_failureCause = -1;            /* Cause */
261 static int hf_camel_oCalledPartyBusySpecificInfo = -1;  /* T_oCalledPartyBusySpecificInfo */
262 static int hf_camel_busyCause = -1;               /* Cause */
263 static int hf_camel_oNoAnswerSpecificInfo = -1;   /* T_oNoAnswerSpecificInfo */
264 static int hf_camel_oAnswerSpecificInfo = -1;     /* T_oAnswerSpecificInfo */
265 static int hf_camel_destinationAddress = -1;      /* CalledPartyNumber */
266 static int hf_camel_or_Call = -1;                 /* NULL */
267 static int hf_camel_forwardedCall = -1;           /* NULL */
268 static int hf_camel_chargeIndicator = -1;         /* ChargeIndicator */
269 static int hf_camel_ext_basicServiceCode2 = -1;   /* Ext_BasicServiceCode */
270 static int hf_camel_oMidCallSpecificInfo = -1;    /* T_oMidCallSpecificInfo */
271 static int hf_camel_omidCallEvents = -1;          /* T_omidCallEvents */
272 static int hf_camel_dTMFDigitsCompleted = -1;     /* Digits */
273 static int hf_camel_dTMFDigitsTimeOut = -1;       /* Digits */
274 static int hf_camel_oDisconnectSpecificInfo = -1;  /* T_oDisconnectSpecificInfo */
275 static int hf_camel_releaseCause = -1;            /* Cause */
276 static int hf_camel_tBusySpecificInfo = -1;       /* T_tBusySpecificInfo */
277 static int hf_camel_callForwarded = -1;           /* NULL */
278 static int hf_camel_routeNotPermitted = -1;       /* NULL */
279 static int hf_camel_forwardingDestinationNumber = -1;  /* CalledPartyNumber */
280 static int hf_camel_tNoAnswerSpecificInfo = -1;   /* T_tNoAnswerSpecificInfo */
281 static int hf_camel_tAnswerSpecificInfo = -1;     /* T_tAnswerSpecificInfo */
282 static int hf_camel_tMidCallSpecificInfo = -1;    /* T_tMidCallSpecificInfo */
283 static int hf_camel_tmidCallEvents = -1;          /* T_tmidCallEvents */
284 static int hf_camel_tDisconnectSpecificInfo = -1;  /* T_tDisconnectSpecificInfo */
285 static int hf_camel_oTermSeizedSpecificInfo = -1;  /* T_oTermSeizedSpecificInfo */
286 static int hf_camel_locationInformation = -1;     /* LocationInformation */
287 static int hf_camel_callAcceptedSpecificInfo = -1;  /* T_callAcceptedSpecificInfo */
288 static int hf_camel_oAbandonSpecificInfo = -1;    /* T_oAbandonSpecificInfo */
289 static int hf_camel_oChangeOfPositionSpecificInfo = -1;  /* T_oChangeOfPositionSpecificInfo */
290 static int hf_camel_metDPCriteriaList = -1;       /* MetDPCriteriaList */
291 static int hf_camel_tChangeOfPositionSpecificInfo = -1;  /* T_tChangeOfPositionSpecificInfo */
292 static int hf_camel_dpSpecificInfoAlt = -1;       /* DpSpecificInfoAlt */
293 static int hf_camel_o_smsFailureSpecificInfo = -1;  /* T_o_smsFailureSpecificInfo */
294 static int hf_camel_smsfailureCause = -1;         /* MO_SMSCause */
295 static int hf_camel_o_smsSubmittedSpecificInfo = -1;  /* T_o_smsSubmittedSpecificInfo */
296 static int hf_camel_foo = -1;                     /* INTEGER_0 */
297 static int hf_camel_t_smsFailureSpecificInfo = -1;  /* T_t_smsFailureSpecificInfo */
298 static int hf_camel_failureMTSMSCause = -1;       /* MT_SMSCause */
299 static int hf_camel_t_smsDeliverySpecificInfo = -1;  /* T_t_smsDeliverySpecificInfo */
300 static int hf_camel_callDiversionTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
301 static int hf_camel_callingPartyRestrictionIndicator = -1;  /* OCTET_STRING_SIZE_1 */
302 static int hf_camel_compoundGapCriteria = -1;     /* CompoundCriteria */
303 static int hf_camel_duration1 = -1;               /* Duration */
304 static int hf_camel_gapInterval = -1;             /* Interval */
305 static int hf_camel_informationToSend = -1;       /* InformationToSend */
306 static int hf_camel_GenericNumbers_item = -1;     /* GenericNumber */
307 static int hf_camel_short_QoS_format = -1;        /* QoS_Subscribed */
308 static int hf_camel_long_QoS_format = -1;         /* Ext_QoS_Subscribed */
309 static int hf_camel_supplement_to_long_QoS_format = -1;  /* Ext2_QoS_Subscribed */
310 static int hf_camel_gPRSEventType = -1;           /* GPRSEventType */
311 static int hf_camel_attachChangeOfPositionSpecificInformation = -1;  /* T_attachChangeOfPositionSpecificInformation */
312 static int hf_camel_locationInformationGPRS = -1;  /* LocationInformationGPRS */
313 static int hf_camel_pdp_ContextchangeOfPositionSpecificInformation = -1;  /* T_pdp_ContextchangeOfPositionSpecificInformation */
314 static int hf_camel_accessPointName = -1;         /* AccessPointName */
315 static int hf_camel_chargingID = -1;              /* GPRSChargingID */
316 static int hf_camel_pDPType = -1;                 /* PDPType */
317 static int hf_camel_qualityOfService = -1;        /* QualityOfService */
318 static int hf_camel_timeAndTimeZone = -1;         /* TimeAndTimezone */
319 static int hf_camel_gGSNAddress = -1;             /* GSN_Address */
320 static int hf_camel_detachSpecificInformation = -1;  /* T_detachSpecificInformation */
321 static int hf_camel_inititatingEntity = -1;       /* InitiatingEntity */
322 static int hf_camel_routeingAreaUpdate = -1;      /* NULL */
323 static int hf_camel_disconnectSpecificInformation = -1;  /* T_disconnectSpecificInformation */
324 static int hf_camel_pDPContextEstablishmentSpecificInformation = -1;  /* T_pDPContextEstablishmentSpecificInformation */
325 static int hf_camel_pDPInitiationType = -1;       /* PDPInitiationType */
326 static int hf_camel_secondaryPDPContext = -1;     /* NULL */
327 static int hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation = -1;  /* T_pDPContextEstablishmentAcknowledgementSpecificInformation */
328 static int hf_camel_mSNetworkCapability = -1;     /* MSNetworkCapability */
329 static int hf_camel_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
330 static int hf_camel_messageID = -1;               /* MessageID */
331 static int hf_camel_numberOfRepetitions = -1;     /* INTEGER_1_127 */
332 static int hf_camel_duration2 = -1;               /* INTEGER_0_32767 */
333 static int hf_camel_interval = -1;                /* INTEGER_0_32767 */
334 static int hf_camel_inbandInfo = -1;              /* InbandInfo */
335 static int hf_camel_tone = -1;                    /* Tone */
336 static int hf_camel_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
337 static int hf_camel_routeingAreaIdentity = -1;    /* RAIdentity */
338 static int hf_camel_geographicalInformation = -1;  /* GeographicalInformation */
339 static int hf_camel_sgsn_Number = -1;             /* ISDN_AddressString */
340 static int hf_camel_selectedLSAIdentity = -1;     /* LSAIdentity */
341 static int hf_camel_extensionContainer = -1;      /* ExtensionContainer */
342 static int hf_camel_saiPresent = -1;              /* NULL */
343 static int hf_camel_elementaryMessageID = -1;     /* Integer4 */
344 static int hf_camel_text = -1;                    /* T_text */
345 static int hf_camel_messageContent = -1;          /* IA5String_SIZE_cAPSpecificBoundSetminMessageContentLength_cAPSpecificBoundSetmaxMessageContentLength */
346 static int hf_camel_attributes = -1;              /* OCTET_STRING_SIZE_cAPSpecificBoundSetminAttributesLength_cAPSpecificBoundSetmaxAttributesLength */
347 static int hf_camel_elementaryMessageIDs = -1;    /* SEQUENCE_SIZE_1_cAPSpecificBoundSetnumOfMessageIDs_OF_Integer4 */
348 static int hf_camel_elementaryMessageIDs_item = -1;  /* Integer4 */
349 static int hf_camel_variableMessage = -1;         /* T_variableMessage */
350 static int hf_camel_variableParts = -1;           /* VariablePartsArray */
351 static int hf_camel_MetDPCriteriaList_item = -1;  /* MetDPCriterion */
352 static int hf_camel_enteringCellGlobalId = -1;    /* CellGlobalIdOrServiceAreaIdFixedLength */
353 static int hf_camel_leavingCellGlobalId = -1;     /* CellGlobalIdOrServiceAreaIdFixedLength */
354 static int hf_camel_enteringServiceAreaId = -1;   /* CellGlobalIdOrServiceAreaIdFixedLength */
355 static int hf_camel_leavingServiceAreaId = -1;    /* CellGlobalIdOrServiceAreaIdFixedLength */
356 static int hf_camel_enteringLocationAreaId = -1;  /* LAIFixedLength */
357 static int hf_camel_leavingLocationAreaId = -1;   /* LAIFixedLength */
358 static int hf_camel_inter_SystemHandOverToUMTS = -1;  /* NULL */
359 static int hf_camel_inter_SystemHandOverToGSM = -1;  /* NULL */
360 static int hf_camel_metDPCriterionAlt = -1;       /* MetDPCriterionAlt */
361 static int hf_camel_minimumNumberOfDigits = -1;   /* INTEGER_1_30 */
362 static int hf_camel_maximumNumberOfDigits = -1;   /* INTEGER_1_30 */
363 static int hf_camel_requested_QoS = -1;           /* GPRS_QoS */
364 static int hf_camel_subscribed_QoS = -1;          /* GPRS_QoS */
365 static int hf_camel_negotiated_QoS = -1;          /* GPRS_QoS */
366 static int hf_camel_requested_QoS_Extension = -1;  /* GPRS_QoS_Extension */
367 static int hf_camel_subscribed_QoS_Extension = -1;  /* GPRS_QoS_Extension */
368 static int hf_camel_negotiated_QoS_Extension = -1;  /* GPRS_QoS_Extension */
369 static int hf_camel_receivingSideID = -1;         /* LegType */
370 static int hf_camel_RequestedInformationList_item = -1;  /* RequestedInformation */
371 static int hf_camel_RequestedInformationTypeList_item = -1;  /* RequestedInformationType */
372 static int hf_camel_requestedInformationType = -1;  /* RequestedInformationType */
373 static int hf_camel_requestedInformationValue = -1;  /* RequestedInformationValue */
374 static int hf_camel_callAttemptElapsedTimeValue = -1;  /* INTEGER_0_255 */
375 static int hf_camel_callStopTimeValue = -1;       /* DateAndTime */
376 static int hf_camel_callConnectedElapsedTimeValue = -1;  /* Integer4 */
377 static int hf_camel_releaseCauseValue = -1;       /* Cause */
378 static int hf_camel_sendingSideID = -1;           /* LegType */
379 static int hf_camel_forwardServiceInteractionInd = -1;  /* ForwardServiceInteractionInd */
380 static int hf_camel_backwardServiceInteractionInd = -1;  /* BackwardServiceInteractionInd */
381 static int hf_camel_bothwayThroughConnectionInd = -1;  /* BothwayThroughConnectionInd */
382 static int hf_camel_connectedNumberTreatmentInd = -1;  /* ConnectedNumberTreatmentInd */
383 static int hf_camel_nonCUGCall = -1;              /* NULL */
384 static int hf_camel_holdTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
385 static int hf_camel_cwTreatmentIndicator = -1;    /* OCTET_STRING_SIZE_1 */
386 static int hf_camel_ectTreatmentIndicator = -1;   /* OCTET_STRING_SIZE_1 */
387 static int hf_camel_eventTypeSMS = -1;            /* EventTypeSMS */
388 static int hf_camel_timeSinceTariffSwitch = -1;   /* INTEGER_0_864000 */
389 static int hf_camel_tttariffSwitchInterval = -1;  /* INTEGER_1_864000 */
390 static int hf_camel_timeIfNoTariffSwitch = -1;    /* TimeIfNoTariffSwitch */
391 static int hf_camel_timeIfTariffSwitch = -1;      /* TimeIfTariffSwitch */
392 static int hf_camel_toneID = -1;                  /* Integer4 */
393 static int hf_camel_duration3 = -1;               /* Integer4 */
394 static int hf_camel_volumeIfNoTariffSwitch = -1;  /* INTEGER_0_4294967295 */
395 static int hf_camel_volumeIfTariffSwitch = -1;    /* T_volumeIfTariffSwitch */
396 static int hf_camel_volumeSinceLastTariffSwitch = -1;  /* INTEGER_0_4294967295 */
397 static int hf_camel_volumeTariffSwitchInterval = -1;  /* INTEGER_0_4294967295 */
398 static int hf_camel_rOVolumeIfNoTariffSwitch = -1;  /* INTEGER_0_255 */
399 static int hf_camel_rOVolumeIfTariffSwitch = -1;  /* T_rOVolumeIfTariffSwitch */
400 static int hf_camel_rOVolumeSinceLastTariffSwitch = -1;  /* INTEGER_0_255 */
401 static int hf_camel_rOVolumeTariffSwitchInterval = -1;  /* INTEGER_0_255 */
402 static int hf_camel_integer = -1;                 /* Integer4 */
403 static int hf_camel_number = -1;                  /* Digits */
404 static int hf_camel_time = -1;                    /* OCTET_STRING_SIZE_2 */
405 static int hf_camel_date = -1;                    /* OCTET_STRING_SIZE_4 */
406 static int hf_camel_price = -1;                   /* OCTET_STRING_SIZE_4 */
407 static int hf_camel_allAnnouncementsComplete = -1;  /* NULL */
408 static int hf_camel_firstAnnouncementStarted = -1;  /* NULL */
409 static int hf_camel_pDPTypeOrganization = -1;     /* PDPTypeOrganization */
410 static int hf_camel_pDPTypeNumber = -1;           /* PDPTypeNumber */
411 static int hf_camel_pDPAddress = -1;              /* PDPAddress */
412 static int hf_camel_local = -1;                   /* INTEGER */
413 static int hf_camel_global = -1;                  /* OBJECT_IDENTIFIER */
414 static int hf_camel_messageType = -1;             /* T_messageType */
415 static int hf_camel_firstExtensionExtensionType = -1;  /* NULL */
416 static int hf_camel_extId = -1;                   /* ExtensionSetextensionId */
417 static int hf_camel_callresultOctet = -1;         /* CAMEL_CallResult */
418 static int hf_camel_allRequests = -1;             /* NULL */
419 static int hf_camel_callSegmentToCancel = -1;     /* CallSegmentToCancel */
420 static int hf_camel_digitsResponse = -1;          /* Digits */
421 static int hf_camel_pdpID = -1;                   /* PDPId */
422 static int hf_camel_gPRSCause = -1;               /* GPRSCause */
423 static int hf_camel_gprsCause = -1;               /* GPRSCause */
424 static int hf_camel_gPRSEvent = -1;               /* GPRSEventArray */
425 static int hf_camel_GPRSEventArray_item = -1;     /* GPRSEvent */
426 static int hf_camel_sCIGPRSBillingChargingCharacteristics = -1;  /* SCIGPRSBillingChargingCharacteristics */
427 static int hf_camel_assumedIdle = -1;             /* NULL */
428 static int hf_camel_camelBusy = -1;               /* NULL */
429 static int hf_camel_netDetNotReachable = -1;      /* NotReachableReason */
430 static int hf_camel_notProvidedFromVLR = -1;      /* NULL */
431 static int hf_camel_PrivateExtensionList_item = -1;  /* PrivateExtension */
432 static int hf_camel_VariablePartsArray_item = -1;  /* VariablePart */
433 static int hf_camel_gmscAddress = -1;             /* ISDN_AddressString */
434 static int hf_camel_ms_Classmark2 = -1;           /* MS_Classmark2 */
435 static int hf_camel_iMEI = -1;                    /* IMEI */
436 static int hf_camel_supportedCamelPhases = -1;    /* SupportedCamelPhases */
437 static int hf_camel_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
438 static int hf_camel_bearerCapability2 = -1;       /* BearerCapability */
439 static int hf_camel_highLayerCompatibility2 = -1;  /* HighLayerCompatibility */
440 static int hf_camel_lowLayerCompatibility = -1;   /* LowLayerCompatibility */
441 static int hf_camel_lowLayerCompatibility2 = -1;  /* LowLayerCompatibility */
442 static int hf_camel_enhancedDialledServicesAllowed = -1;  /* NULL */
443 static int hf_camel_uu_Data = -1;                 /* UU_Data */
444 static int hf_camel_collectInformationAllowed = -1;  /* NULL */
445 static int hf_camel_destinationRoutingAddress = -1;  /* DestinationRoutingAddress */
446 static int hf_camel_legToBeCreated = -1;          /* LegID */
447 static int hf_camel_newCallSegment = -1;          /* CallSegmentID */
448 static int hf_camel_callingPartyNumber = -1;      /* CallingPartyNumber */
449 static int hf_camel_callReferenceNumber = -1;     /* CallReferenceNumber */
450 static int hf_camel_gsmSCFAddress = -1;           /* ISDN_AddressString */
451 static int hf_camel_suppress_T_CSI = -1;          /* NULL */
452 static int hf_camel_legIDToMove = -1;             /* LegID */
453 static int hf_camel_legOrCallSegment = -1;        /* LegOrCallSegment */
454 static int hf_camel_miscGPRSInfo = -1;            /* MiscCallInfo */
455 static int hf_camel_gPRSEventSpecificInformation = -1;  /* GPRSEventSpecificInformation */
456 static int hf_camel_type = -1;                    /* SupportedExtensionsid */
457 static int hf_camel_criticality = -1;             /* CriticalityType */
458 static int hf_camel_value = -1;                   /* SupportedExtensionsExtensionType */
459 static int hf_camel_aChBillingChargingCharacteristics = -1;  /* AChBillingChargingCharacteristics */
460 static int hf_camel_partyToCharge1 = -1;          /* SendingSideID */
461 static int hf_camel_ExtensionsArray_item = -1;    /* ExtensionField */
462 static int hf_camel_correlationID = -1;           /* CorrelationID */
463 static int hf_camel_iPSSPCapabilities = -1;       /* IPSSPCapabilities */
464 static int hf_camel_requestedInformationTypeList = -1;  /* RequestedInformationTypeList */
465 static int hf_camel_legID3 = -1;                  /* SendingSideID */
466 static int hf_camel_alertingPattern = -1;         /* AlertingPattern */
467 static int hf_camel_originalCalledPartyID = -1;   /* OriginalCalledPartyID */
468 static int hf_camel_carrier = -1;                 /* Carrier */
469 static int hf_camel_callingPartysCategory = -1;   /* CallingPartysCategory */
470 static int hf_camel_redirectingPartyID = -1;      /* RedirectingPartyID */
471 static int hf_camel_redirectionInformation = -1;  /* RedirectionInformation */
472 static int hf_camel_genericNumbers = -1;          /* GenericNumbers */
473 static int hf_camel_serviceInteractionIndicatorsTwo = -1;  /* ServiceInteractionIndicatorsTwo */
474 static int hf_camel_chargeNumber = -1;            /* ChargeNumber */
475 static int hf_camel_legToBeConnected = -1;        /* LegID */
476 static int hf_camel_cug_Interlock = -1;           /* CUG_Interlock */
477 static int hf_camel_cug_OutgoingAccess = -1;      /* NULL */
478 static int hf_camel_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
479 static int hf_camel_oCSIApplicable = -1;          /* OCSIApplicable */
480 static int hf_camel_naOliInfo = -1;               /* NAOliInfo */
481 static int hf_camel_bor_InterrogationRequested = -1;  /* NULL */
482 static int hf_camel_suppress_N_CSI = -1;          /* NULL */
483 static int hf_camel_resourceAddress = -1;         /* T_resourceAddress */
484 static int hf_camel_ipRoutingAddress = -1;        /* IPRoutingAddress */
485 static int hf_camel_none = -1;                    /* NULL */
486 static int hf_camel_suppress_O_CSI = -1;          /* NULL */
487 static int hf_camel_continueWithArgumentArgExtension = -1;  /* ContinueWithArgumentArgExtension */
488 static int hf_camel_suppress_D_CSI = -1;          /* NULL */
489 static int hf_camel_suppressOutgoingCallBarring = -1;  /* NULL */
490 static int hf_camel_legToBeReleased = -1;         /* LegID */
491 static int hf_camel_callSegmentFailure = -1;      /* CallSegmentFailure */
492 static int hf_camel_bCSM_Failure = -1;            /* BCSM_Failure */
493 static int hf_camel_assistingSSPIPRoutingAddress = -1;  /* AssistingSSPIPRoutingAddress */
494 static int hf_camel_eventSpecificInformationBCSM = -1;  /* EventSpecificInformationBCSM */
495 static int hf_camel_legID4 = -1;                  /* ReceivingSideID */
496 static int hf_camel_miscCallInfo = -1;            /* MiscCallInfo */
497 static int hf_camel_timerID = -1;                 /* TimerID */
498 static int hf_camel_timervalue = -1;              /* TimerValue */
499 static int hf_camel_sCIBillingChargingCharacteristics = -1;  /* SCIBillingChargingCharacteristics */
500 static int hf_camel_partyToCharge2 = -1;          /* SendingSideID */
501 static int hf_camel_legToBeSplit = -1;            /* LegID */
502 static int hf_camel_destinationReference = -1;    /* Integer4 */
503 static int hf_camel_originationReference = -1;    /* Integer4 */
504 static int hf_camel_eventSpecificInformationSMS = -1;  /* EventSpecificInformationSMS */
505 static int hf_camel_bcsmEvents = -1;              /* BCSMEventArray */
506 static int hf_camel_BCSMEventArray_item = -1;     /* BCSMEvent */
507 static int hf_camel_callingPartysNumber = -1;     /* SMS_AddressString */
508 static int hf_camel_destinationSubscriberNumber = -1;  /* CalledPartyBCDNumber */
509 static int hf_camel_sMSCAddress = -1;             /* ISDN_AddressString */
510 static int hf_camel_requestedInformationList = -1;  /* RequestedInformationList */
511 static int hf_camel_legID5 = -1;                  /* ReceivingSideID */
512 static int hf_camel_disconnectFromIPForbidden = -1;  /* BOOLEAN */
513 static int hf_camel_requestAnnouncementComplete = -1;  /* BOOLEAN */
514 static int hf_camel_requestAnnouncementStartedNotification = -1;  /* BOOLEAN */
515 static int hf_camel_collectedInfo = -1;           /* CollectedInfo */
516 static int hf_camel_mSISDN = -1;                  /* ISDN_AddressString */
517 static int hf_camel_iMSI = -1;                    /* IMSI */
518 static int hf_camel_gPRSMSClass = -1;             /* GPRSMSClass */
519 static int hf_camel_sGSNCapabilities = -1;        /* SGSNCapabilities */
520 static int hf_camel_gapCriteria = -1;             /* GapCriteria */
521 static int hf_camel_gapIndicators = -1;           /* GapIndicators */
522 static int hf_camel_controlType = -1;             /* ControlType */
523 static int hf_camel_gapTreatment = -1;            /* GapTreatment */
524 static int hf_camel_calledPartyNumber = -1;       /* CalledPartyNumber */
525 static int hf_camel_cGEncountered = -1;           /* CGEncountered */
526 static int hf_camel_locationNumber = -1;          /* LocationNumber */
527 static int hf_camel_highLayerCompatibility = -1;  /* HighLayerCompatibility */
528 static int hf_camel_additionalCallingPartyNumber = -1;  /* AdditionalCallingPartyNumber */
529 static int hf_camel_bearerCapability = -1;        /* BearerCapability */
530 static int hf_camel_cug_Index = -1;               /* CUG_Index */
531 static int hf_camel_subscriberState = -1;         /* SubscriberState */
532 static int hf_camel_mscAddress = -1;              /* ISDN_AddressString */
533 static int hf_camel_calledPartyBCDNumber = -1;    /* CalledPartyBCDNumber */
534 static int hf_camel_timeAndTimezone = -1;         /* TimeAndTimezone */
535 static int hf_camel_gsm_ForwardingPending = -1;   /* NULL */
536 static int hf_camel_initialDPArgExtension = -1;   /* InitialDPArgExtension */
537 static int hf_camel_callingPartyNumberas = -1;    /* SMS_AddressString */
538 static int hf_camel_locationInformationMSC = -1;  /* LocationInformation */
539 static int hf_camel_tPShortMessageSpecificInfo = -1;  /* TPShortMessageSpecificInfo */
540 static int hf_camel_tPProtocolIdentifier = -1;    /* TPProtocolIdentifier */
541 static int hf_camel_tPDataCodingScheme = -1;      /* TPDataCodingScheme */
542 static int hf_camel_tPValidityPeriod = -1;        /* TPValidityPeriod */
543 static int hf_camel_smsReferenceNumber = -1;      /* CallReferenceNumber */
544 static int hf_camel_sgsnNumber = -1;              /* ISDN_AddressString */
545 static int hf_camel_calledPartyNumberSMS = -1;    /* ISDN_AddressString */
546 static int hf_camel_sMSEvents = -1;               /* SMSEventArray */
547 static int hf_camel_SMSEventArray_item = -1;      /* SMSEvent */
548 static int hf_camel_privateExtensionList = -1;    /* PrivateExtensionList */
549 static int hf_camel_pcs_Extensions = -1;          /* PCS_Extensions */
550 static int hf_camel_chargingCharacteristics = -1;  /* ChargingCharacteristics */
551 static int hf_camel_chargingResult = -1;          /* ChargingResult */
552 static int hf_camel_active = -1;                  /* BOOLEAN */
553 static int hf_camel_chargingRollOver = -1;        /* ChargingRollOver */
554 static int hf_camel_cancelproblem = -1;           /* T_cancelproblem */
555 static int hf_camel_operation = -1;               /* InvokeID */
556 /* named bits */
557 static int hf_camel_SupportedCamelPhases_phase1 = -1;
558 static int hf_camel_SupportedCamelPhases_phase2 = -1;
559 static int hf_camel_SupportedCamelPhases_phase3 = -1;
560 static int hf_camel_SupportedCamelPhases_phase4 = -1;
561 static int hf_camel_OfferedCamel4Functionalities_initiateCallAttempt = -1;
562 static int hf_camel_OfferedCamel4Functionalities_splitLeg = -1;
563 static int hf_camel_OfferedCamel4Functionalities_moveLeg = -1;
564 static int hf_camel_OfferedCamel4Functionalities_disconnectLeg = -1;
565 static int hf_camel_OfferedCamel4Functionalities_entityReleased = -1;
566 static int hf_camel_OfferedCamel4Functionalities_dfc_WithArgument = -1;
567 static int hf_camel_OfferedCamel4Functionalities_playTone = -1;
568 static int hf_camel_OfferedCamel4Functionalities_dtmf_MidCall = -1;
569 static int hf_camel_OfferedCamel4Functionalities_chargingIndicator = -1;
570 static int hf_camel_OfferedCamel4Functionalities_alertingDP = -1;
571 static int hf_camel_OfferedCamel4Functionalities_locationAtAlerting = -1;
572 static int hf_camel_OfferedCamel4Functionalities_changeOfPositionDP = -1;
573 static int hf_camel_OfferedCamel4Functionalities_or_Interactions = -1;
574 static int hf_camel_OfferedCamel4Functionalities_warningToneEnhancements = -1;
575 static int hf_camel_OfferedCamel4Functionalities_cf_Enhancements = -1;
576 static int hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
577 static int hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
578 static int hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
579 static int hf_camel_OfferedCamel4Functionalities_serviceChangeDP = -1;
580
581 /*--- End of included file: packet-camel-hf.c ---*/
582 #line 112 "packet-camel-template.c"
583
584 gboolean gcamel_HandleSRT=FALSE;
585 extern gboolean gcamel_PersistentSRT;
586 extern gboolean gcamel_DisplaySRT;
587
588 /* Initialize the subtree pointers */
589 static gint ett_camel = -1;
590 static gint ett_camelisup_parameter = -1;
591 static gint ett_camel_isdn_address_string = -1;
592 static gint ett_camel_MSRadioAccessCapability = -1;
593 static gint ett_camel_MSNetworkCapability = -1;
594 static gint ett_camel_AccessPointName = -1;
595 static gint ett_camel_pdptypenumber = -1;
596 static gint ett_camel_stat = -1;
597
598
599 /*--- Included file: packet-camel-ett.c ---*/
600 #line 1 "packet-camel-ett.c"
601 static gint ett_camel_Component = -1;
602 static gint ett_camel_Invoke = -1;
603 static gint ett_camel_ReturnResult = -1;
604 static gint ett_camel_T_resultretres = -1;
605 static gint ett_camel_ReturnError = -1;
606 static gint ett_camel_Reject = -1;
607 static gint ett_camel_T_invokeIDRej = -1;
608 static gint ett_camel_T_problem = -1;
609 static gint ett_camel_OPERATION = -1;
610 static gint ett_camel_ERROR = -1;
611 static gint ett_camel_AChBillingChargingCharacteristics = -1;
612 static gint ett_camel_T_actimeDurationCharging = -1;
613 static gint ett_camel_AChChargingAddress = -1;
614 static gint ett_camel_AOCBeforeAnswer = -1;
615 static gint ett_camel_AOCGprs = -1;
616 static gint ett_camel_AOCSubsequent = -1;
617 static gint ett_camel_AudibleIndicator = -1;
618 static gint ett_camel_BackwardServiceInteractionInd = -1;
619 static gint ett_camel_BasicGapCriteria = -1;
620 static gint ett_camel_T_calledAddressAndService = -1;
621 static gint ett_camel_T_callingAddressAndService = -1;
622 static gint ett_camel_BCSMEvent = -1;
623 static gint ett_camel_BCSM_Failure = -1;
624 static gint ett_camel_BearerCapability = -1;
625 static gint ett_camel_Burst = -1;
626 static gint ett_camel_BurstList = -1;
627 static gint ett_camel_CAI_Gsm0224 = -1;
628 static gint ett_camel_CallSegmentFailure = -1;
629 static gint ett_camel_CallSegmentToCancel = -1;
630 static gint ett_camel_CAMEL_AChBillingChargingCharacteristics = -1;
631 static gint ett_camel_T_timeDurationCharging = -1;
632 static gint ett_camel_CAMEL_CallResult = -1;
633 static gint ett_camel_TimeDurationChargingResult = -1;
634 static gint ett_camel_CAMEL_FCIBillingChargingCharacteristics = -1;
635 static gint ett_camel_T_fCIBCCCAMELsequence1 = -1;
636 static gint ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics = -1;
637 static gint ett_camel_T_fCIBCCCAMELsequence2 = -1;
638 static gint ett_camel_CAMEL_FCISMSBillingChargingCharacteristics = -1;
639 static gint ett_camel_T_fCIBCCCAMELsequence3 = -1;
640 static gint ett_camel_CAMEL_SCIBillingChargingCharacteristics = -1;
641 static gint ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt = -1;
642 static gint ett_camel_CamelSCIGPRSBillingChargingCharacteristics = -1;
643 static gint ett_camel_ChangeOfPositionControlInfo = -1;
644 static gint ett_camel_ChangeOfLocation = -1;
645 static gint ett_camel_ChangeOfLocationAlt = -1;
646 static gint ett_camel_ChargingCharacteristics = -1;
647 static gint ett_camel_ChargingResult = -1;
648 static gint ett_camel_ChargingRollOver = -1;
649 static gint ett_camel_CollectedDigits = -1;
650 static gint ett_camel_CollectedInfo = -1;
651 static gint ett_camel_CompoundCriteria = -1;
652 static gint ett_camel_DestinationRoutingAddress = -1;
653 static gint ett_camel_DpSpecificCriteria = -1;
654 static gint ett_camel_DpSpecificCriteriaAlt = -1;
655 static gint ett_camel_DpSpecificInfoAlt = -1;
656 static gint ett_camel_T_oServiceChangeSpecificInfo = -1;
657 static gint ett_camel_T_tServiceChangeSpecificInfo = -1;
658 static gint ett_camel_ElapsedTime = -1;
659 static gint ett_camel_T_timeGPRSIfTariffSwitch = -1;
660 static gint ett_camel_ElapsedTimeRollOver = -1;
661 static gint ett_camel_T_rOTimeGPRSIfTariffSwitch = -1;
662 static gint ett_camel_EventSpecificInformationBCSM = -1;
663 static gint ett_camel_T_routeSelectFailureSpecificInfo = -1;
664 static gint ett_camel_T_oCalledPartyBusySpecificInfo = -1;
665 static gint ett_camel_T_oNoAnswerSpecificInfo = -1;
666 static gint ett_camel_T_oAnswerSpecificInfo = -1;
667 static gint ett_camel_T_oMidCallSpecificInfo = -1;
668 static gint ett_camel_T_omidCallEvents = -1;
669 static gint ett_camel_T_oDisconnectSpecificInfo = -1;
670 static gint ett_camel_T_tBusySpecificInfo = -1;
671 static gint ett_camel_T_tNoAnswerSpecificInfo = -1;
672 static gint ett_camel_T_tAnswerSpecificInfo = -1;
673 static gint ett_camel_T_tMidCallSpecificInfo = -1;
674 static gint ett_camel_T_tmidCallEvents = -1;
675 static gint ett_camel_T_tDisconnectSpecificInfo = -1;
676 static gint ett_camel_T_oTermSeizedSpecificInfo = -1;
677 static gint ett_camel_T_callAcceptedSpecificInfo = -1;
678 static gint ett_camel_T_oAbandonSpecificInfo = -1;
679 static gint ett_camel_T_oChangeOfPositionSpecificInfo = -1;
680 static gint ett_camel_T_tChangeOfPositionSpecificInfo = -1;
681 static gint ett_camel_EventSpecificInformationSMS = -1;
682 static gint ett_camel_T_o_smsFailureSpecificInfo = -1;
683 static gint ett_camel_T_o_smsSubmittedSpecificInfo = -1;
684 static gint ett_camel_T_t_smsFailureSpecificInfo = -1;
685 static gint ett_camel_T_t_smsDeliverySpecificInfo = -1;
686 static gint ett_camel_ForwardServiceInteractionInd = -1;
687 static gint ett_camel_GapCriteria = -1;
688 static gint ett_camel_GapIndicators = -1;
689 static gint ett_camel_GapOnService = -1;
690 static gint ett_camel_GapTreatment = -1;
691 static gint ett_camel_GenericNumbers = -1;
692 static gint ett_camel_GPRS_QoS = -1;
693 static gint ett_camel_GPRS_QoS_Extension = -1;
694 static gint ett_camel_GPRSEvent = -1;
695 static gint ett_camel_GPRSEventSpecificInformation = -1;
696 static gint ett_camel_T_attachChangeOfPositionSpecificInformation = -1;
697 static gint ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation = -1;
698 static gint ett_camel_T_detachSpecificInformation = -1;
699 static gint ett_camel_T_disconnectSpecificInformation = -1;
700 static gint ett_camel_T_pDPContextEstablishmentSpecificInformation = -1;
701 static gint ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation = -1;
702 static gint ett_camel_GPRSMSClass = -1;
703 static gint ett_camel_InbandInfo = -1;
704 static gint ett_camel_InformationToSend = -1;
705 static gint ett_camel_LegOrCallSegment = -1;
706 static gint ett_camel_LocationInformationGPRS = -1;
707 static gint ett_camel_MessageID = -1;
708 static gint ett_camel_T_text = -1;
709 static gint ett_camel_SEQUENCE_SIZE_1_cAPSpecificBoundSetnumOfMessageIDs_OF_Integer4 = -1;
710 static gint ett_camel_T_variableMessage = -1;
711 static gint ett_camel_MetDPCriteriaList = -1;
712 static gint ett_camel_MetDPCriterion = -1;
713 static gint ett_camel_MetDPCriterionAlt = -1;
714 static gint ett_camel_MidCallControlInfo = -1;
715 static gint ett_camel_QualityOfService = -1;
716 static gint ett_camel_ReceivingSideID = -1;
717 static gint ett_camel_RequestedInformationList = -1;
718 static gint ett_camel_RequestedInformationTypeList = -1;
719 static gint ett_camel_RequestedInformation = -1;
720 static gint ett_camel_RequestedInformationValue = -1;
721 static gint ett_camel_SendingSideID = -1;
722 static gint ett_camel_ServiceInteractionIndicatorsTwo = -1;
723 static gint ett_camel_SMSEvent = -1;
724 static gint ett_camel_TimeIfTariffSwitch = -1;
725 static gint ett_camel_TimeInformation = -1;
726 static gint ett_camel_Tone = -1;
727 static gint ett_camel_TransferredVolume = -1;
728 static gint ett_camel_T_volumeIfTariffSwitch = -1;
729 static gint ett_camel_TransferredVolumeRollOver = -1;
730 static gint ett_camel_T_rOVolumeIfTariffSwitch = -1;
731 static gint ett_camel_VariablePart = -1;
732 static gint ett_camel_SpecializedResourceReportArg = -1;
733 static gint ett_camel_PDPType = -1;
734 static gint ett_camel_Code = -1;
735 static gint ett_camel_PCS_Extensions = -1;
736 static gint ett_camel_MiscCallInfo = -1;
737 static gint ett_camel_SupportedExtensionsExtensionType = -1;
738 static gint ett_camel_PrivateExtension = -1;
739 static gint ett_camel_ApplyChargingReportArg = -1;
740 static gint ett_camel_CancelArg = -1;
741 static gint ett_camel_CollectInformationArg = -1;
742 static gint ett_camel_ReceivedInformationArg = -1;
743 static gint ett_camel_ConnectGPRSArg = -1;
744 static gint ett_camel_EntityReleasedGPRSArg = -1;
745 static gint ett_camel_ReleaseGPRSArg = -1;
746 static gint ett_camel_RequestReportGPRSEventArg = -1;
747 static gint ett_camel_GPRSEventArray = -1;
748 static gint ett_camel_SendChargingInformationGPRSArg = -1;
749 static gint ett_camel_SubscriberState = -1;
750 static gint ett_camel_PrivateExtensionList = -1;
751 static gint ett_camel_LegID = -1;
752 static gint ett_camel_VariablePartsArray = -1;
753 static gint ett_camel_InitialDPArgExtension = -1;
754 static gint ett_camel_InitiateCallAttemptArg = -1;
755 static gint ett_camel_InitiateCallAttemptRes = -1;
756 static gint ett_camel_MoveLegArg = -1;
757 static gint ett_camel_PlayToneArg = -1;
758 static gint ett_camel_SupportedCamelPhases = -1;
759 static gint ett_camel_OfferedCamel4Functionalities = -1;
760 static gint ett_camel_EventReportGPRSArg = -1;
761 static gint ett_camel_ExtensionField = -1;
762 static gint ett_camel_ApplyChargingArg = -1;
763 static gint ett_camel_ExtensionsArray = -1;
764 static gint ett_camel_AssistRequestInstructionsArg = -1;
765 static gint ett_camel_CallInformationRequestArg = -1;
766 static gint ett_camel_ConnectArg = -1;
767 static gint ett_camel_ConnectToResourceArg = -1;
768 static gint ett_camel_T_resourceAddress = -1;
769 static gint ett_camel_ContinueWithArgumentArg = -1;
770 static gint ett_camel_ContinueWithArgumentArgExtension = -1;
771 static gint ett_camel_DisconnectLegArg = -1;
772 static gint ett_camel_EntityReleasedArg = -1;
773 static gint ett_camel_DisconnectForwardConnectionWithArgumentArg = -1;
774 static gint ett_camel_EstablishTemporaryConnectionArg = -1;
775 static gint ett_camel_EventReportBCSMArg = -1;
776 static gint ett_camel_ResetTimerArg = -1;
777 static gint ett_camel_SendChargingInformationArg = -1;
778 static gint ett_camel_SplitLegArg = -1;
779 static gint ett_camel_CAPGPRSReferenceNumber = -1;
780 static gint ett_camel_EventReportSMSArg = -1;
781 static gint ett_camel_ResetTimerSMSArg = -1;
782 static gint ett_camel_RequestReportBCSMEventArg = -1;
783 static gint ett_camel_BCSMEventArray = -1;
784 static gint ett_camel_ConnectSMSArg = -1;
785 static gint ett_camel_CallInformationReportArg = -1;
786 static gint ett_camel_PlayAnnouncementArg = -1;
787 static gint ett_camel_PromptAndCollectUserInformationArg = -1;
788 static gint ett_camel_InitialDPGPRSArg = -1;
789 static gint ett_camel_CallGapArg = -1;
790 static gint ett_camel_InitialDPArg = -1;
791 static gint ett_camel_InitialDPSMSArg = -1;
792 static gint ett_camel_RequestReportSMSEventArg = -1;
793 static gint ett_camel_SMSEventArray = -1;
794 static gint ett_camel_ExtensionContainer = -1;
795 static gint ett_camel_ApplyChargingGPRSArg = -1;
796 static gint ett_camel_ApplyChargingReportGPRSArg = -1;
797 static gint ett_camel_CancelGPRSArg = -1;
798 static gint ett_camel_ContinueGPRSArg = -1;
799 static gint ett_camel_ResetTimerGPRSArg = -1;
800 static gint ett_camel_CancelFailedPARAM = -1;
801
802 /*--- End of included file: packet-camel-ett.c ---*/
803 #line 128 "packet-camel-template.c"
804
805
806 /* Preference settings default */
807 #define MAX_SSN 254
808 static range_t *global_ssn_range;
809 static range_t *ssn_range;
810 static dissector_handle_t  camel_handle;
811
812 /* Global variables */
813
814 static int application_context_version;
815 static guint8 PDPTypeOrganization;
816 static guint8 PDPTypeNumber;
817
818 static char camel_number_to_char(int );
819 static guint8 dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, guint len,
820                                   proto_tree *tree, int hf_cause_value, guint8 *cause_value);
821
822 static const true_false_string camel_extension_value = {
823   "No Extension",
824   "Extension"
825 };
826 #define EUROPEAN_DATE 1
827 #define AMERICAN_DATE 2
828 #define CAMEL_DATE_AND_TIME_LEN 20 /* 2*5 + 4 + 5 + 1 (HH:MM:SS;mm/dd/yyyy) */
829
830 static enum_val_t date_options[] = {
831   { "european",         "DD/MM/YYYY",       EUROPEAN_DATE },
832   { "american",        "MM/DD/YYYY",        AMERICAN_DATE },
833   { NULL, NULL, 0 }
834 };
835
836 static const value_string digit_value[] = {
837     { 0,  "0"},
838     { 1,  "1"},
839     { 2,  "2"},
840     { 3,  "3"},
841     { 4,  "4"},
842     { 5,  "5"},
843     { 6,  "6"},
844     { 7,  "7"},
845     { 8,  "8"},
846     { 9,  "9"},
847     { 10, "spare"},
848     { 11, "spare"},
849     { 12, "spare"},
850     { 13, "spare"},
851     { 0,  NULL}};
852   
853   
854 static const value_string camel_nature_of_addr_indicator_values[] = {
855   {   0x00,  "unknown" },
856   {   0x01,  "International Number" },
857   {   0x02,  "National Significant Number" },
858   {   0x03,  "Network Specific Number" },
859   {   0x04,  "Subscriber Number" },
860   {   0x05,  "Reserved" },
861   {   0x06,  "Abbreviated Number" },
862   {   0x07,  "Reserved for extension" },
863   { 0, NULL }
864 };
865 static const value_string camel_number_plan_values[] = {
866   {   0x00,  "unknown" },
867   {   0x01,  "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
868   {   0x02,  "spare" },
869   {   0x03,  "Data Numbering (ITU-T Rec. X.121)" },
870   {   0x04,  "Telex Numbering (ITU-T Rec. F.69)" },
871   {   0x05,  "spare" },
872   {   0x06,  "Land Mobile Numbering (ITU-T Rec. E.212)" },
873   {   0x07,  "spare" },
874   {   0x08,  "National Numbering" },
875   {   0x09,  "Private Numbering" },
876   {   0x0f,  "Reserved for extension" },
877   { 0, NULL }
878 };
879
880 /* End includes from old" packet-camel.c */
881
882 static const value_string camel_RP_Cause_values[] = {
883   { 1, "Unassigned (unallocated) number" },
884   { 8, "Operator determined barring" },
885   { 10, "Call barred" },
886   { 11, "Reserved" },
887   { 21, "Short message transfer rejected" },
888   { 27, "Destination out of order" },
889   { 28, "Unidentified subscriber" },
890   { 29, "Facility Rejected" },
891   { 30, "Unknown subscriber" },
892   { 38, "Network out of order" },
893   { 41, "Temporary failure" },
894   { 42, "Congestion" },
895   { 47, "Resources unavailable, unspecified" },
896   { 50, "Requested facility not subscribed" },
897   { 69, "Requested facility not implemented" },
898   { 81, "Invalid short message transfer reference value" },
899   { 95, "Semantically incorrect message" },
900   { 96, "Invalid mandatory information" },
901   { 97, " Message Type non-existent or not implemented" },
902   { 98, "Message not compatible with short message protocol state" },
903   { 99, "Information element non existent or not implemented" },
904   { 111, "Protocol error, unspecified" },
905   { 127, "Interworking, unspecified" },
906   { 22,"Memory capacity exceeded" },
907   { 0, NULL }
908 };
909
910
911 /*--- Included file: packet-camel-fn.c ---*/
912 #line 1 "packet-camel-fn.c"
913 /*--- Fields for imported types ---*/
914
915 static int dissect_cellGlobalId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
916   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_cellGlobalId);
917 }
918 static int dissect_serviceAreaId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
919   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_serviceAreaId);
920 }
921 static int dissect_locationAreaId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
922   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_locationAreaId);
923 }
924 static int dissect_ext_basicServiceCode_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
925   return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode);
926 }
927 static int dissect_ext_basicServiceCode2_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
928   return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode2);
929 }
930 static int dissect_locationInformation_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
931   return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformation);
932 }
933 static int dissect_short_QoS_format_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
934   return dissect_gsm_map_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_short_QoS_format);
935 }
936 static int dissect_long_QoS_format_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
937   return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_long_QoS_format);
938 }
939 static int dissect_supplement_to_long_QoS_format_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
940   return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_supplement_to_long_QoS_format);
941 }
942 static int dissect_chargingID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
943   return dissect_gsm_map_GPRSChargingID(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingID);
944 }
945 static int dissect_gGSNAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
946   return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, pinfo, tree, hf_camel_gGSNAddress);
947 }
948 static int dissect_routeingAreaIdentity_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
949   return dissect_gsm_map_RAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_routeingAreaIdentity);
950 }
951 static int dissect_geographicalInformation_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
952   return dissect_gsm_map_GeographicalInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_geographicalInformation);
953 }
954 static int dissect_selectedLSAIdentity_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
955   return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_selectedLSAIdentity);
956 }
957 static int dissect_enteringCellGlobalId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
958   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringCellGlobalId);
959 }
960 static int dissect_leavingCellGlobalId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
961   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingCellGlobalId);
962 }
963 static int dissect_enteringServiceAreaId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
964   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringServiceAreaId);
965 }
966 static int dissect_leavingServiceAreaId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
967   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingServiceAreaId);
968 }
969 static int dissect_enteringLocationAreaId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
970   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringLocationAreaId);
971 }
972 static int dissect_leavingLocationAreaId_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
973   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingLocationAreaId);
974 }
975 static int dissect_ms_Classmark2_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
976   return dissect_gsm_map_MS_Classmark2(TRUE, tvb, offset, pinfo, tree, hf_camel_ms_Classmark2);
977 }
978 static int dissect_iMEI_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
979   return dissect_gsm_map_IMEI(TRUE, tvb, offset, pinfo, tree, hf_camel_iMEI);
980 }
981 static int dissect_uu_Data_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
982   return dissect_gsm_map_UU_Data(TRUE, tvb, offset, pinfo, tree, hf_camel_uu_Data);
983 }
984 static int dissect_cug_Interlock_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
985   return dissect_gsm_map_CUG_Interlock(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_Interlock);
986 }
987 static int dissect_iMSI_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
988   return dissect_gsm_map_IMSI(TRUE, tvb, offset, pinfo, tree, hf_camel_iMSI);
989 }
990 static int dissect_cug_Index_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
991   return dissect_gsm_map_CUG_Index(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_Index);
992 }
993 static int dissect_locationInformationMSC_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
994   return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformationMSC);
995 }
996
997
998
999 static int
1000 dissect_camel_InvokeIdType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1001   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1002                                   NULL);
1003
1004   return offset;
1005 }
1006 static int dissect_invokeID(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1007   return dissect_camel_InvokeIdType(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeID);
1008 }
1009 static int dissect_linkedID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1010   return dissect_camel_InvokeIdType(TRUE, tvb, offset, pinfo, tree, hf_camel_linkedID);
1011 }
1012 static int dissect_derivable(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1013   return dissect_camel_InvokeIdType(FALSE, tvb, offset, pinfo, tree, hf_camel_derivable);
1014 }
1015
1016
1017 static const value_string camel_CAMELOperationLocalvalue_vals[] = {
1018   {   0, "initialDP" },
1019   {  16, "assistRequestInstructions" },
1020   {  17, "establishTemporaryConnection" },
1021   {  18, "disconnectForwardConnection" },
1022   {  19, "connectToResource" },
1023   {  20, "connect" },
1024   {  22, "releaseCall" },
1025   {  23, "requestReportBCSMEvent" },
1026   {  24, "eventReportBCSM" },
1027   {  27, "collectInformation" },
1028   {  31, "continue" },
1029   {  32, "initiateCallAttempt" },
1030   {  33, "resetTimer" },
1031   {  34, "furnishChargingInformation" },
1032   {  35, "applyCharging" },
1033   {  36, "applyChargingReport" },
1034   {  41, "callGap" },
1035   {  44, "callInformationReport" },
1036   {  45, "callInformationRequest" },
1037   {  46, "sendChargingInformation" },
1038   {  47, "playAnnouncement" },
1039   {  48, "promptAndCollectUserInformation" },
1040   {  49, "specializedResourceReport" },
1041   {  53, "cancel" },
1042   {  55, "activityTest" },
1043   {  56, "continueWithArgument" },
1044   {  60, "initialDPSMS" },
1045   {  61, "furnishChargingInformationSMS" },
1046   {  62, "connectSMS" },
1047   {  63, "requestReportSMSEvent" },
1048   {  64, "eventReportSMS" },
1049   {  65, "continueSMS" },
1050   {  66, "releaseSMS" },
1051   {  67, "resetTimerSMS" },
1052   {  70, "activityTestGPRS" },
1053   {  71, "applyChargingGPRS" },
1054   {  72, "applyChargingReportGPRS" },
1055   {  73, "cancelGPRS" },
1056   {  74, "connectGPRS" },
1057   {  75, "continueGPRS" },
1058   {  76, "entityReleasedGPRS" },
1059   {  77, "furnishChargingInformationGPRS" },
1060   {  78, "initialDPGPRS" },
1061   {  79, "releaseGPRS" },
1062   {  80, "eventReportGPRS" },
1063   {  81, "requestReportGPRSEvent" },
1064   {  82, "resetTimerGPRS" },
1065   {  83, "sendChargingInformationGPRS" },
1066   {  86, "dFCWithArgument" },
1067   {  88, "continueWithArgument" },
1068   {  90, "disconnectLeg" },
1069   {  93, "moveLeg" },
1070   {  95, "splitLeg" },
1071   {  96, "entityReleased" },
1072   {  97, "playTone" },
1073   { 0, NULL }
1074 };
1075
1076
1077 static int
1078 dissect_camel_CAMELOperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1079 #line 43 "camel.cnf"
1080
1081   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1082                                   &opcode);
1083  
1084   if (check_col(pinfo->cinfo, COL_INFO)){
1085     col_append_fstr(pinfo->cinfo, COL_INFO, 
1086        val_to_str(opcode, camel_opr_code_strings, "Unknown CAMEL (%u)"));
1087     col_append_str(pinfo->cinfo, COL_INFO, " ");
1088     col_set_fence(pinfo->cinfo, COL_INFO);
1089   }
1090   gp_camelsrt_info->opcode=opcode;
1091
1092
1093
1094   return offset;
1095 }
1096
1097
1098
1099 static int
1100 dissect_camel_OperationLocalvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1101   offset = dissect_camel_CAMELOperationLocalvalue(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1102
1103   return offset;
1104 }
1105 static int dissect_localValue(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1106   return dissect_camel_OperationLocalvalue(FALSE, tvb, offset, pinfo, tree, hf_camel_localValue);
1107 }
1108
1109
1110
1111 static int
1112 dissect_camel_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1113   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1114
1115   return offset;
1116 }
1117 static int dissect_globalValue(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1118   return dissect_camel_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_camel_globalValue);
1119 }
1120 static int dissect_globalErrorValue(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1121   return dissect_camel_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_camel_globalErrorValue);
1122 }
1123 static int dissect_global(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1124   return dissect_camel_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_camel_global);
1125 }
1126
1127
1128 static const value_string camel_OPERATION_vals[] = {
1129   {   0, "localValue" },
1130   {   1, "globalValue" },
1131   { 0, NULL }
1132 };
1133
1134 static const ber_choice_t OPERATION_choice[] = {
1135   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
1136   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
1137   { 0, 0, 0, 0, NULL }
1138 };
1139
1140 static int
1141 dissect_camel_OPERATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1142   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1143                                  OPERATION_choice, hf_index, ett_camel_OPERATION,
1144                                  NULL);
1145
1146   return offset;
1147 }
1148 static int dissect_opCode(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1149   return dissect_camel_OPERATION(FALSE, tvb, offset, pinfo, tree, hf_camel_opCode);
1150 }
1151
1152
1153
1154 static int
1155 dissect_camel_InvokeParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1156 #line 27 "camel.cnf"
1157         offset = dissect_invokeData(pinfo, tree, tvb, offset);
1158
1159
1160
1161   return offset;
1162 }
1163 static int dissect_invokeparameter(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1164   return dissect_camel_InvokeParameter(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeparameter);
1165 }
1166
1167
1168 static const ber_sequence_t Invoke_sequence[] = {
1169   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
1170   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl },
1171   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode },
1172   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_invokeparameter },
1173   { 0, 0, 0, NULL }
1174 };
1175
1176 static int
1177 dissect_camel_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1178   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1179                                    Invoke_sequence, hf_index, ett_camel_Invoke);
1180
1181   return offset;
1182 }
1183 static int dissect_invoke_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1184   return dissect_camel_Invoke(TRUE, tvb, offset, pinfo, tree, hf_camel_invoke);
1185 }
1186
1187
1188
1189 static int
1190 dissect_camel_ReturnResultParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1191 #line 31 "camel.cnf"
1192         offset = dissect_returnResultData(pinfo, tree, tvb, offset);
1193
1194
1195
1196   return offset;
1197 }
1198 static int dissect_returnparameter(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1199   return dissect_camel_ReturnResultParameter(FALSE, tvb, offset, pinfo, tree, hf_camel_returnparameter);
1200 }
1201
1202
1203 static const ber_sequence_t T_resultretres_sequence[] = {
1204   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_opCode },
1205   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_returnparameter },
1206   { 0, 0, 0, NULL }
1207 };
1208
1209 static int
1210 dissect_camel_T_resultretres(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1211   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1212                                    T_resultretres_sequence, hf_index, ett_camel_T_resultretres);
1213
1214   return offset;
1215 }
1216 static int dissect_resultretres(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1217   return dissect_camel_T_resultretres(FALSE, tvb, offset, pinfo, tree, hf_camel_resultretres);
1218 }
1219
1220
1221 static const ber_sequence_t ReturnResult_sequence[] = {
1222   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
1223   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_resultretres },
1224   { 0, 0, 0, NULL }
1225 };
1226
1227 static int
1228 dissect_camel_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1229   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1230                                    ReturnResult_sequence, hf_index, ett_camel_ReturnResult);
1231
1232   return offset;
1233 }
1234 static int dissect_returnResultLast_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1235   return dissect_camel_ReturnResult(TRUE, tvb, offset, pinfo, tree, hf_camel_returnResultLast);
1236 }
1237
1238
1239 static const value_string camel_CAMELLocalErrorcode_vals[] = {
1240   {   0, "canceled" },
1241   {   1, "cancelFailed" },
1242   {   3, "eTCFailed" },
1243   {   4, "improperCallerResponse" },
1244   {   6, "missingCustomerRecord" },
1245   {   7, "missingParameter" },
1246   {   8, "parameterOutOfRange" },
1247   {  10, "requestedInfoError" },
1248   {  11, "systemFailure" },
1249   {  12, "taskRefused" },
1250   {  13, "unavailableResource" },
1251   {  14, "unexpectedComponentSequence" },
1252   {  15, "unexpectedDataValue" },
1253   {  16, "unexpectedParameter" },
1254   {  17, "unknownLegID" },
1255   {  50, "unknownPDPID" },
1256   {  51, "unknownCSID" },
1257   { 0, NULL }
1258 };
1259
1260
1261 static int
1262 dissect_camel_CAMELLocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1263   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1264                                   &errorCode);
1265
1266   return offset;
1267 }
1268
1269
1270
1271 static int
1272 dissect_camel_LocalErrorcode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1273   offset = dissect_camel_CAMELLocalErrorcode(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1274
1275   return offset;
1276 }
1277 static int dissect_localErrorValue(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1278   return dissect_camel_LocalErrorcode(FALSE, tvb, offset, pinfo, tree, hf_camel_localErrorValue);
1279 }
1280
1281
1282 static const value_string camel_ERROR_vals[] = {
1283   {   0, "localErrorValue" },
1284   {   1, "globalErrorValue" },
1285   { 0, NULL }
1286 };
1287
1288 static const ber_choice_t ERROR_choice[] = {
1289   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localErrorValue },
1290   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalErrorValue },
1291   { 0, 0, 0, 0, NULL }
1292 };
1293
1294 static int
1295 dissect_camel_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1296   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1297                                  ERROR_choice, hf_index, ett_camel_ERROR,
1298                                  NULL);
1299
1300   return offset;
1301 }
1302 static int dissect_errorCode(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1303   return dissect_camel_ERROR(FALSE, tvb, offset, pinfo, tree, hf_camel_errorCode);
1304 }
1305
1306
1307
1308 static int
1309 dissect_camel_ReturnErrorParameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1310 #line 35 "camel.cnf"
1311         offset = dissect_returnErrorData(pinfo, tree, tvb, offset);
1312
1313
1314
1315   return offset;
1316 }
1317 static int dissect_parameter(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1318   return dissect_camel_ReturnErrorParameter(FALSE, tvb, offset, pinfo, tree, hf_camel_parameter);
1319 }
1320
1321
1322 static const ber_sequence_t ReturnError_sequence[] = {
1323   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeID },
1324   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_errorCode },
1325   { BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_parameter },
1326   { 0, 0, 0, NULL }
1327 };
1328
1329 static int
1330 dissect_camel_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1331   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1332                                    ReturnError_sequence, hf_index, ett_camel_ReturnError);
1333
1334   return offset;
1335 }
1336 static int dissect_returnError_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1337   return dissect_camel_ReturnError(TRUE, tvb, offset, pinfo, tree, hf_camel_returnError);
1338 }
1339
1340
1341
1342 static int
1343 dissect_camel_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1344   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1345
1346   return offset;
1347 }
1348 static int dissect_not_derivable(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1349   return dissect_camel_NULL(FALSE, tvb, offset, pinfo, tree, hf_camel_not_derivable);
1350 }
1351 static int dissect_automaticRearm_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1352   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_automaticRearm);
1353 }
1354 static int dissect_void_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1355   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_void);
1356 }
1357 static int dissect_callLegReleasedAtTcpExpiry_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1358   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_callLegReleasedAtTcpExpiry);
1359 }
1360 static int dissect_inter_SystemHandOver_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1361   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOver);
1362 }
1363 static int dissect_inter_PLMNHandOver_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1364   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_PLMNHandOver);
1365 }
1366 static int dissect_inter_MSCHandOver_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1367   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_MSCHandOver);
1368 }
1369 static int dissect_or_Call_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1370   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_or_Call);
1371 }
1372 static int dissect_forwardedCall_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1373   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_forwardedCall);
1374 }
1375 static int dissect_callForwarded_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1376   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_callForwarded);
1377 }
1378 static int dissect_routeNotPermitted_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1379   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_routeNotPermitted);
1380 }
1381 static int dissect_routeingAreaUpdate_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1382   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_routeingAreaUpdate);
1383 }
1384 static int dissect_secondaryPDPContext_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1385   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_secondaryPDPContext);
1386 }
1387 static int dissect_saiPresent_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1388   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_saiPresent);
1389 }
1390 static int dissect_inter_SystemHandOverToUMTS_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1391   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOverToUMTS);
1392 }
1393 static int dissect_inter_SystemHandOverToGSM_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1394   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOverToGSM);
1395 }
1396 static int dissect_nonCUGCall_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1397   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_nonCUGCall);
1398 }
1399 static int dissect_allAnnouncementsComplete_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1400   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_allAnnouncementsComplete);
1401 }
1402 static int dissect_firstAnnouncementStarted_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1403   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_firstAnnouncementStarted);
1404 }
1405 static int dissect_firstExtensionExtensionType(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1406   return dissect_camel_NULL(FALSE, tvb, offset, pinfo, tree, hf_camel_firstExtensionExtensionType);
1407 }
1408 static int dissect_allRequests_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1409   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_allRequests);
1410 }
1411 static int dissect_assumedIdle_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1412   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_assumedIdle);
1413 }
1414 static int dissect_camelBusy_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1415   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_camelBusy);
1416 }
1417 static int dissect_notProvidedFromVLR_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1418   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_notProvidedFromVLR);
1419 }
1420 static int dissect_enhancedDialledServicesAllowed_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1421   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_enhancedDialledServicesAllowed);
1422 }
1423 static int dissect_collectInformationAllowed_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1424   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_collectInformationAllowed);
1425 }
1426 static int dissect_suppress_T_CSI_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1427   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_T_CSI);
1428 }
1429 static int dissect_cug_OutgoingAccess_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1430   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_OutgoingAccess);
1431 }
1432 static int dissect_bor_InterrogationRequested_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1433   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_bor_InterrogationRequested);
1434 }
1435 static int dissect_suppress_N_CSI_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1436   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_N_CSI);
1437 }
1438 static int dissect_none_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1439   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_none);
1440 }
1441 static int dissect_suppress_O_CSI_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1442   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_O_CSI);
1443 }
1444 static int dissect_suppress_D_CSI_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1445   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_D_CSI);
1446 }
1447 static int dissect_suppressOutgoingCallBarring_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1448   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppressOutgoingCallBarring);
1449 }
1450 static int dissect_gsm_ForwardingPending_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1451   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_gsm_ForwardingPending);
1452 }
1453
1454
1455 static const value_string camel_T_invokeIDRej_vals[] = {
1456   {   0, "derivable" },
1457   {   1, "not-derivable" },
1458   { 0, NULL }
1459 };
1460
1461 static const ber_choice_t T_invokeIDRej_choice[] = {
1462   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_derivable },
1463   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_not_derivable },
1464   { 0, 0, 0, 0, NULL }
1465 };
1466
1467 static int
1468 dissect_camel_T_invokeIDRej(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1469   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1470                                  T_invokeIDRej_choice, hf_index, ett_camel_T_invokeIDRej,
1471                                  NULL);
1472
1473   return offset;
1474 }
1475 static int dissect_invokeIDRej(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1476   return dissect_camel_T_invokeIDRej(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeIDRej);
1477 }
1478
1479
1480 static const value_string camel_GeneralProblem_vals[] = {
1481   {   0, "unrecognizedComponent" },
1482   {   1, "mistypedComponent" },
1483   {   2, "badlyStructuredComponent" },
1484   { 0, NULL }
1485 };
1486
1487
1488 static int
1489 dissect_camel_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1490   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1491                                   NULL);
1492
1493   return offset;
1494 }
1495 static int dissect_generalProblem_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1496   return dissect_camel_GeneralProblem(TRUE, tvb, offset, pinfo, tree, hf_camel_generalProblem);
1497 }
1498
1499
1500 static const value_string camel_InvokeProblem_vals[] = {
1501   {   0, "duplicateInvokeID" },
1502   {   1, "unrecognizedOperation" },
1503   {   2, "mistypedParameter" },
1504   {   3, "resourceLimitation" },
1505   {   4, "initiatingRelease" },
1506   {   5, "unrecognizedLinkedID" },
1507   {   6, "linkedResponseUnexpected" },
1508   {   7, "unexpectedLinkedOperation" },
1509   { 0, NULL }
1510 };
1511
1512
1513 static int
1514 dissect_camel_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1515   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1516                                   NULL);
1517
1518   return offset;
1519 }
1520 static int dissect_invokeProblem_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1521   return dissect_camel_InvokeProblem(TRUE, tvb, offset, pinfo, tree, hf_camel_invokeProblem);
1522 }
1523
1524
1525 static const value_string camel_ReturnResultProblem_vals[] = {
1526   {   0, "unrecognizedInvokeID" },
1527   {   1, "returnResultUnexpected" },
1528   {   2, "mistypedParameter" },
1529   { 0, NULL }
1530 };
1531
1532
1533 static int
1534 dissect_camel_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1535   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1536                                   NULL);
1537
1538   return offset;
1539 }
1540 static int dissect_returnResultProblem_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1541   return dissect_camel_ReturnResultProblem(TRUE, tvb, offset, pinfo, tree, hf_camel_returnResultProblem);
1542 }
1543
1544
1545 static const value_string camel_ReturnErrorProblem_vals[] = {
1546   {   0, "unrecognizedInvokeID" },
1547   {   1, "returnErrorUnexpected" },
1548   {   2, "unrecognizedError" },
1549   {   3, "unexpectedError" },
1550   {   4, "mistypedParameter" },
1551   { 0, NULL }
1552 };
1553
1554
1555 static int
1556 dissect_camel_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1557   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1558                                   NULL);
1559
1560   return offset;
1561 }
1562 static int dissect_returnErrorProblem_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1563   return dissect_camel_ReturnErrorProblem(TRUE, tvb, offset, pinfo, tree, hf_camel_returnErrorProblem);
1564 }
1565
1566
1567 static const value_string camel_T_problem_vals[] = {
1568   {   0, "generalProblem" },
1569   {   1, "invokeProblem" },
1570   {   2, "returnResultProblem" },
1571   {   3, "returnErrorProblem" },
1572   { 0, NULL }
1573 };
1574
1575 static const ber_choice_t T_problem_choice[] = {
1576   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_generalProblem_impl },
1577   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invokeProblem_impl },
1578   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultProblem_impl },
1579   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnErrorProblem_impl },
1580   { 0, 0, 0, 0, NULL }
1581 };
1582
1583 static int
1584 dissect_camel_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1585   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1586                                  T_problem_choice, hf_index, ett_camel_T_problem,
1587                                  NULL);
1588
1589   return offset;
1590 }
1591 static int dissect_problem(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1592   return dissect_camel_T_problem(FALSE, tvb, offset, pinfo, tree, hf_camel_problem);
1593 }
1594
1595
1596 static const ber_sequence_t Reject_sequence[] = {
1597   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeIDRej },
1598   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problem },
1599   { 0, 0, 0, NULL }
1600 };
1601
1602 static int
1603 dissect_camel_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1604   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1605                                    Reject_sequence, hf_index, ett_camel_Reject);
1606
1607   return offset;
1608 }
1609 static int dissect_reject_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1610   return dissect_camel_Reject(TRUE, tvb, offset, pinfo, tree, hf_camel_reject);
1611 }
1612
1613
1614 static const value_string camel_Component_vals[] = {
1615   {   1, "invoke" },
1616   {   2, "returnResultLast" },
1617   {   3, "returnError" },
1618   {   4, "reject" },
1619   { 0, NULL }
1620 };
1621
1622 static const ber_choice_t Component_choice[] = {
1623   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
1624   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResultLast_impl },
1625   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
1626   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
1627   { 0, 0, 0, 0, NULL }
1628 };
1629
1630 static int
1631 dissect_camel_Component(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1632   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1633                                  Component_choice, hf_index, ett_camel_Component,
1634                                  NULL);
1635
1636   return offset;
1637 }
1638
1639
1640
1641 static int
1642 dissect_camel_AccessPointName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1643 #line 389 "camel.cnf"
1644
1645  tvbuff_t       *parameter_tvb;
1646  proto_item *item;
1647  proto_tree *subtree;
1648
1649   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1650                                        &parameter_tvb);
1651
1652
1653  if (!parameter_tvb)
1654         return offset;
1655  item = get_ber_last_created_item();
1656  subtree = proto_item_add_subtree(item, ett_camel_AccessPointName);
1657  de_sm_apn(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0);
1658
1659
1660   return offset;
1661 }
1662 static int dissect_accessPointName_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1663   return dissect_camel_AccessPointName(TRUE, tvb, offset, pinfo, tree, hf_camel_accessPointName);
1664 }
1665
1666
1667
1668 static int
1669 dissect_camel_INTEGER_1_864000(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1670   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1671                                   NULL);
1672
1673   return offset;
1674 }
1675 static int dissect_maxCallPeriodDuration_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1676   return dissect_camel_INTEGER_1_864000(TRUE, tvb, offset, pinfo, tree, hf_camel_maxCallPeriodDuration);
1677 }
1678 static int dissect_tttariffSwitchInterval_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1679   return dissect_camel_INTEGER_1_864000(TRUE, tvb, offset, pinfo, tree, hf_camel_tttariffSwitchInterval);
1680 }
1681
1682
1683
1684 static int
1685 dissect_camel_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1686   offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1687
1688   return offset;
1689 }
1690 static int dissect_releaseIfdurationExceeded_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1691   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseIfdurationExceeded);
1692 }
1693 static int dissect_actone_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1694   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_actone);
1695 }
1696 static int dissect_istone(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1697   return dissect_camel_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_camel_istone);
1698 }
1699 static int dissect_legActive_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1700   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_legActive);
1701 }
1702 static int dissect_interruptableAnnInd_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1703   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_interruptableAnnInd);
1704 }
1705 static int dissect_voiceInformation_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1706   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_voiceInformation);
1707 }
1708 static int dissect_voiceBack_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1709   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_voiceBack);
1710 }
1711 static int dissect_disconnectFromIPForbidden_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1712   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_disconnectFromIPForbidden);
1713 }
1714 static int dissect_requestAnnouncementComplete_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1715   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_requestAnnouncementComplete);
1716 }
1717 static int dissect_requestAnnouncementStartedNotification_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1718   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_requestAnnouncementStartedNotification);
1719 }
1720 static int dissect_active_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1721   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_active);
1722 }
1723
1724
1725
1726 static int
1727 dissect_camel_INTEGER_1_86400(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1728   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1729                                   NULL);
1730
1731   return offset;
1732 }
1733 static int dissect_tariffSwitchInterval_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1734   return dissect_camel_INTEGER_1_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_tariffSwitchInterval);
1735 }
1736 static int dissect_maxElapsedTime_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1737   return dissect_camel_INTEGER_1_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_maxElapsedTime);
1738 }
1739
1740
1741
1742 static int
1743 dissect_camel_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1744   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1745                                   NULL);
1746
1747   return offset;
1748 }
1749 static int dissect_local(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1750   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_local);
1751 }
1752
1753
1754 static const value_string camel_Code_vals[] = {
1755   {   0, "local" },
1756   {   1, "global" },
1757   { 0, NULL }
1758 };
1759
1760 static const ber_choice_t Code_choice[] = {
1761   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_local },
1762   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_global },
1763   { 0, 0, 0, 0, NULL }
1764 };
1765
1766 static int
1767 dissect_camel_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1768   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1769                                  Code_choice, hf_index, ett_camel_Code,
1770                                  NULL);
1771
1772   return offset;
1773 }
1774
1775
1776
1777 static int
1778 dissect_camel_SupportedExtensionsid(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1779   offset = dissect_camel_Code(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1780
1781   return offset;
1782 }
1783 static int dissect_type(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1784   return dissect_camel_SupportedExtensionsid(FALSE, tvb, offset, pinfo, tree, hf_camel_type);
1785 }
1786
1787
1788 static const value_string camel_CriticalityType_vals[] = {
1789   {   0, "ignore" },
1790   {   1, "abort" },
1791   { 0, NULL }
1792 };
1793
1794
1795 static int
1796 dissect_camel_CriticalityType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1797   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1798                                   NULL);
1799
1800   return offset;
1801 }
1802 static int dissect_criticality(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1803   return dissect_camel_CriticalityType(FALSE, tvb, offset, pinfo, tree, hf_camel_criticality);
1804 }
1805
1806
1807 static const value_string camel_SupportedExtensionsExtensionType_vals[] = {
1808   {   0, "firstExtensionExtensionType" },
1809   { 0, NULL }
1810 };
1811
1812 static const ber_choice_t SupportedExtensionsExtensionType_choice[] = {
1813   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_firstExtensionExtensionType },
1814   { 0, 0, 0, 0, NULL }
1815 };
1816
1817 static int
1818 dissect_camel_SupportedExtensionsExtensionType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1819   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1820                                  SupportedExtensionsExtensionType_choice, hf_index, ett_camel_SupportedExtensionsExtensionType,
1821                                  NULL);
1822
1823   return offset;
1824 }
1825 static int dissect_value_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1826   return dissect_camel_SupportedExtensionsExtensionType(TRUE, tvb, offset, pinfo, tree, hf_camel_value);
1827 }
1828
1829
1830 static const ber_sequence_t ExtensionField_sequence[] = {
1831   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_type },
1832   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_criticality },
1833   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_value_impl },
1834   { 0, 0, 0, NULL }
1835 };
1836
1837 static int
1838 dissect_camel_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1839   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1840                                    ExtensionField_sequence, hf_index, ett_camel_ExtensionField);
1841
1842   return offset;
1843 }
1844 static int dissect_ExtensionsArray_item(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1845   return dissect_camel_ExtensionField(FALSE, tvb, offset, pinfo, tree, hf_camel_ExtensionsArray_item);
1846 }
1847
1848
1849 static const ber_sequence_t ExtensionsArray_sequence_of[1] = {
1850   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ExtensionsArray_item },
1851 };
1852
1853 static int
1854 dissect_camel_ExtensionsArray(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1855   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1856                                       ExtensionsArray_sequence_of, hf_index, ett_camel_ExtensionsArray);
1857
1858   return offset;
1859 }
1860 static int dissect_extensions_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1861   return dissect_camel_ExtensionsArray(TRUE, tvb, offset, pinfo, tree, hf_camel_extensions);
1862 }
1863
1864
1865 static const ber_sequence_t T_actimeDurationCharging_sequence[] = {
1866   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_maxCallPeriodDuration_impl },
1867   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseIfdurationExceeded_impl },
1868   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl },
1869   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actone_impl },
1870   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1871   { 0, 0, 0, NULL }
1872 };
1873
1874 static int
1875 dissect_camel_T_actimeDurationCharging(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1876   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1877                                    T_actimeDurationCharging_sequence, hf_index, ett_camel_T_actimeDurationCharging);
1878
1879   return offset;
1880 }
1881 static int dissect_actimeDurationCharging_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1882   return dissect_camel_T_actimeDurationCharging(TRUE, tvb, offset, pinfo, tree, hf_camel_actimeDurationCharging);
1883 }
1884
1885
1886 static const value_string camel_AChBillingChargingCharacteristics_vals[] = {
1887   {   0, "actimeDurationCharging" },
1888   { 0, NULL }
1889 };
1890
1891 static const ber_choice_t AChBillingChargingCharacteristics_choice[] = {
1892   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actimeDurationCharging_impl },
1893   { 0, 0, 0, 0, NULL }
1894 };
1895
1896 static int
1897 dissect_camel_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1898   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1899                                  AChBillingChargingCharacteristics_choice, hf_index, ett_camel_AChBillingChargingCharacteristics,
1900                                  NULL);
1901
1902   return offset;
1903 }
1904 static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1905   return dissect_camel_AChBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_camel_aChBillingChargingCharacteristics);
1906 }
1907
1908
1909
1910 static int
1911 dissect_camel_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1912   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1913                                        NULL);
1914
1915   return offset;
1916 }
1917 static int dissect_receivingSideID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1918   return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_receivingSideID);
1919 }
1920 static int dissect_sendingSideID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1921   return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_sendingSideID);
1922 }
1923
1924
1925 static const value_string camel_LegID_vals[] = {
1926   {   0, "sendingSideID" },
1927   {   1, "receivingSideID" },
1928   { 0, NULL }
1929 };
1930
1931 static const ber_choice_t LegID_choice[] = {
1932   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl },
1933   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl },
1934   { 0, 0, 0, 0, NULL }
1935 };
1936
1937 static int
1938 dissect_camel_LegID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1939   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1940                                  LegID_choice, hf_index, ett_camel_LegID,
1941                                  NULL);
1942
1943   return offset;
1944 }
1945 static int dissect_legID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1946   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID);
1947 }
1948 static int dissect_legID6_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1949   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID6);
1950 }
1951 static int dissect_legToBeCreated_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1952   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeCreated);
1953 }
1954 static int dissect_legIDToMove_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1955   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legIDToMove);
1956 }
1957 static int dissect_legToBeConnected_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1958   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeConnected);
1959 }
1960 static int dissect_legToBeReleased_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1961   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeReleased);
1962 }
1963 static int dissect_legToBeSplit_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1964   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeSplit);
1965 }
1966
1967
1968
1969 static int
1970 dissect_camel_CallSegmentID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
1971   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1972                                   NULL);
1973
1974   return offset;
1975 }
1976 static int dissect_srfConnection_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1977   return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_srfConnection);
1978 }
1979 static int dissect_callSegmentID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1980   return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentID);
1981 }
1982 static int dissect_newCallSegment_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
1983   return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_newCallSegment);
1984 }
1985
1986
1987 static const value_string camel_AChChargingAddress_vals[] = {
1988   {   2, "legID" },
1989   {  50, "srfConnection" },
1990   { 0, NULL }
1991 };
1992
1993 static const ber_choice_t AChChargingAddress_choice[] = {
1994   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_legID_impl },
1995   {  50, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_srfConnection_impl },
1996   { 0, 0, 0, 0, NULL }
1997 };
1998
1999 static int
2000 dissect_camel_AChChargingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2001   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2002                                  AChChargingAddress_choice, hf_index, ett_camel_AChChargingAddress,
2003                                  NULL);
2004
2005   return offset;
2006 }
2007 static int dissect_aChChargingAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2008   return dissect_camel_AChChargingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_aChChargingAddress);
2009 }
2010
2011
2012
2013 static int
2014 dissect_camel_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2015   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2016                                        NULL);
2017
2018   return offset;
2019 }
2020 static int dissect_calledAddressValue_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2021   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_calledAddressValue);
2022 }
2023 static int dissect_callingAddressValue_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2024   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_callingAddressValue);
2025 }
2026 static int dissect_dTMFDigitsCompleted_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2027   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_dTMFDigitsCompleted);
2028 }
2029 static int dissect_dTMFDigitsTimeOut_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2030   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_dTMFDigitsTimeOut);
2031 }
2032 static int dissect_number_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2033   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_number);
2034 }
2035 static int dissect_digitsResponse_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2036   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_digitsResponse);
2037 }
2038
2039
2040
2041 static int
2042 dissect_camel_AdditionalCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2043   offset = dissect_camel_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2044
2045   return offset;
2046 }
2047 static int dissect_additionalCallingPartyNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2048   return dissect_camel_AdditionalCallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_additionalCallingPartyNumber);
2049 }
2050
2051
2052
2053 static int
2054 dissect_camel_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2055   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2056                                        NULL);
2057
2058   return offset;
2059 }
2060 static int dissect_alertingPattern_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2061   return dissect_camel_AlertingPattern(TRUE, tvb, offset, pinfo, tree, hf_camel_alertingPattern);
2062 }
2063
2064
2065
2066 static int
2067 dissect_camel_INTEGER_0_8191(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2068   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2069                                   NULL);
2070
2071   return offset;
2072 }
2073 static int dissect_e1_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2074   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e1);
2075 }
2076 static int dissect_e2_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2077   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e2);
2078 }
2079 static int dissect_e3_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2080   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e3);
2081 }
2082 static int dissect_e4_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2083   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e4);
2084 }
2085 static int dissect_e5_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2086   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e5);
2087 }
2088 static int dissect_e6_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2089   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e6);
2090 }
2091 static int dissect_e7_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2092   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e7);
2093 }
2094
2095
2096 static const ber_sequence_t CAI_Gsm0224_sequence[] = {
2097   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e1_impl },
2098   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e2_impl },
2099   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e3_impl },
2100   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e4_impl },
2101   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e5_impl },
2102   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e6_impl },
2103   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e7_impl },
2104   { 0, 0, 0, NULL }
2105 };
2106
2107 static int
2108 dissect_camel_CAI_Gsm0224(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2109   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2110                                    CAI_Gsm0224_sequence, hf_index, ett_camel_CAI_Gsm0224);
2111
2112   return offset;
2113 }
2114 static int dissect_aOCInitial_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2115   return dissect_camel_CAI_Gsm0224(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCInitial);
2116 }
2117 static int dissect_cAI_GSM0224_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2118   return dissect_camel_CAI_Gsm0224(TRUE, tvb, offset, pinfo, tree, hf_camel_cAI_GSM0224);
2119 }
2120
2121
2122 static const ber_sequence_t AOCSubsequent_sequence[] = {
2123   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cAI_GSM0224_impl },
2124   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl },
2125   { 0, 0, 0, NULL }
2126 };
2127
2128 static int
2129 dissect_camel_AOCSubsequent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2130   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2131                                    AOCSubsequent_sequence, hf_index, ett_camel_AOCSubsequent);
2132
2133   return offset;
2134 }
2135 static int dissect_aOCSubsequent_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2136   return dissect_camel_AOCSubsequent(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCSubsequent);
2137 }
2138 static int dissect_aOCAfterAnswer_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2139   return dissect_camel_AOCSubsequent(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCAfterAnswer);
2140 }
2141
2142
2143 static const ber_sequence_t AOCBeforeAnswer_sequence[] = {
2144   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aOCInitial_impl },
2145   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aOCSubsequent_impl },
2146   { 0, 0, 0, NULL }
2147 };
2148
2149 static int
2150 dissect_camel_AOCBeforeAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2151   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2152                                    AOCBeforeAnswer_sequence, hf_index, ett_camel_AOCBeforeAnswer);
2153
2154   return offset;
2155 }
2156 static int dissect_aOCBeforeAnswer_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2157   return dissect_camel_AOCBeforeAnswer(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCBeforeAnswer);
2158 }
2159
2160
2161 static const ber_sequence_t AOCGprs_sequence[] = {
2162   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aOCInitial_impl },
2163   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aOCSubsequent_impl },
2164   { 0, 0, 0, NULL }
2165 };
2166
2167 static int
2168 dissect_camel_AOCGprs(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2169   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2170                                    AOCGprs_sequence, hf_index, ett_camel_AOCGprs);
2171
2172   return offset;
2173 }
2174 static int dissect_aOCGPRS_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2175   return dissect_camel_AOCGprs(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCGPRS);
2176 }
2177
2178
2179 static const value_string camel_AppendFreeFormatData_vals[] = {
2180   {   0, "overwrite" },
2181   {   1, "append" },
2182   { 0, NULL }
2183 };
2184
2185
2186 static int
2187 dissect_camel_AppendFreeFormatData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2188   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2189                                   NULL);
2190
2191   return offset;
2192 }
2193 static int dissect_appendFreeFormatData_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2194   return dissect_camel_AppendFreeFormatData(TRUE, tvb, offset, pinfo, tree, hf_camel_appendFreeFormatData);
2195 }
2196
2197
2198
2199 static int
2200 dissect_camel_ApplicationTimer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2201   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2202                                   NULL);
2203
2204   return offset;
2205 }
2206 static int dissect_applicationTimer_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2207   return dissect_camel_ApplicationTimer(TRUE, tvb, offset, pinfo, tree, hf_camel_applicationTimer);
2208 }
2209
2210
2211
2212 static int
2213 dissect_camel_AssistingSSPIPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2214   offset = dissect_camel_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2215
2216   return offset;
2217 }
2218 static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2219   return dissect_camel_AssistingSSPIPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_assistingSSPIPRoutingAddress);
2220 }
2221
2222
2223
2224 static int
2225 dissect_camel_INTEGER_1_1200(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2226   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2227                                   NULL);
2228
2229   return offset;
2230 }
2231 static int dissect_burstInterval_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2232   return dissect_camel_INTEGER_1_1200(TRUE, tvb, offset, pinfo, tree, hf_camel_burstInterval);
2233 }
2234 static int dissect_warningPeriod_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2235   return dissect_camel_INTEGER_1_1200(TRUE, tvb, offset, pinfo, tree, hf_camel_warningPeriod);
2236 }
2237
2238
2239
2240 static int
2241 dissect_camel_INTEGER_1_3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2242   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2243                                   NULL);
2244
2245   return offset;
2246 }
2247 static int dissect_numberOfBursts_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2248   return dissect_camel_INTEGER_1_3(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfBursts);
2249 }
2250 static int dissect_numberOfTonesInBurst_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2251   return dissect_camel_INTEGER_1_3(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfTonesInBurst);
2252 }
2253
2254
2255
2256 static int
2257 dissect_camel_INTEGER_1_20(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2258   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2259                                   NULL);
2260
2261   return offset;
2262 }
2263 static int dissect_toneDuration_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2264   return dissect_camel_INTEGER_1_20(TRUE, tvb, offset, pinfo, tree, hf_camel_toneDuration);
2265 }
2266 static int dissect_toneInterval_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2267   return dissect_camel_INTEGER_1_20(TRUE, tvb, offset, pinfo, tree, hf_camel_toneInterval);
2268 }
2269
2270
2271 static const ber_sequence_t Burst_sequence[] = {
2272   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfBursts_impl },
2273   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_burstInterval_impl },
2274   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfTonesInBurst_impl },
2275   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_toneDuration_impl },
2276   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_toneInterval_impl },
2277   { 0, 0, 0, NULL }
2278 };
2279
2280 static int
2281 dissect_camel_Burst(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2282   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2283                                    Burst_sequence, hf_index, ett_camel_Burst);
2284
2285   return offset;
2286 }
2287 static int dissect_bursts_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2288   return dissect_camel_Burst(TRUE, tvb, offset, pinfo, tree, hf_camel_bursts);
2289 }
2290
2291
2292 static const ber_sequence_t BurstList_sequence[] = {
2293   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_warningPeriod_impl },
2294   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bursts_impl },
2295   { 0, 0, 0, NULL }
2296 };
2297
2298 static int
2299 dissect_camel_BurstList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2300   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2301                                    BurstList_sequence, hf_index, ett_camel_BurstList);
2302
2303   return offset;
2304 }
2305 static int dissect_burstList_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2306   return dissect_camel_BurstList(TRUE, tvb, offset, pinfo, tree, hf_camel_burstList);
2307 }
2308
2309
2310 static const value_string camel_AudibleIndicator_vals[] = {
2311   {   0, "istone" },
2312   {   1, "burstList" },
2313   { 0, NULL }
2314 };
2315
2316 static const ber_choice_t AudibleIndicator_choice[] = {
2317   {   0, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_istone },
2318   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_burstList_impl },
2319   { 0, 0, 0, 0, NULL }
2320 };
2321
2322 static int
2323 dissect_camel_AudibleIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2324   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2325                                  AudibleIndicator_choice, hf_index, ett_camel_AudibleIndicator,
2326                                  NULL);
2327
2328   return offset;
2329 }
2330 static int dissect_audibleIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2331   return dissect_camel_AudibleIndicator(TRUE, tvb, offset, pinfo, tree, hf_camel_audibleIndicator);
2332 }
2333
2334
2335
2336 static int
2337 dissect_camel_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2338   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2339                                        NULL);
2340
2341   return offset;
2342 }
2343 static int dissect_conferenceTreatmentIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2344   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_conferenceTreatmentIndicator);
2345 }
2346 static int dissect_callCompletionTreatmentIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2347   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_callCompletionTreatmentIndicator);
2348 }
2349 static int dissect_callDiversionTreatmentIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2350   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_callDiversionTreatmentIndicator);
2351 }
2352 static int dissect_callingPartyRestrictionIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2353   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartyRestrictionIndicator);
2354 }
2355 static int dissect_holdTreatmentIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2356   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_holdTreatmentIndicator);
2357 }
2358 static int dissect_cwTreatmentIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2359   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_cwTreatmentIndicator);
2360 }
2361 static int dissect_ectTreatmentIndicator_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2362   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_ectTreatmentIndicator);
2363 }
2364
2365
2366 static const ber_sequence_t BackwardServiceInteractionInd_sequence[] = {
2367   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_conferenceTreatmentIndicator_impl },
2368   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callCompletionTreatmentIndicator_impl },
2369   { 0, 0, 0, NULL }
2370 };
2371
2372 static int
2373 dissect_camel_BackwardServiceInteractionInd(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2374   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2375                                    BackwardServiceInteractionInd_sequence, hf_index, ett_camel_BackwardServiceInteractionInd);
2376
2377   return offset;
2378 }
2379 static int dissect_backwardServiceInteractionInd_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2380   return dissect_camel_BackwardServiceInteractionInd(TRUE, tvb, offset, pinfo, tree, hf_camel_backwardServiceInteractionInd);
2381 }
2382
2383
2384
2385 static int
2386 dissect_camel_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2387   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2388                                   NULL);
2389
2390   return offset;
2391 }
2392 static int dissect_serviceKey_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2393   return dissect_camel_ServiceKey(TRUE, tvb, offset, pinfo, tree, hf_camel_serviceKey);
2394 }
2395
2396
2397 static const ber_sequence_t GapOnService_sequence[] = {
2398   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2399   { 0, 0, 0, NULL }
2400 };
2401
2402 static int
2403 dissect_camel_GapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2404   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2405                                    GapOnService_sequence, hf_index, ett_camel_GapOnService);
2406
2407   return offset;
2408 }
2409 static int dissect_gapOnService_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2410   return dissect_camel_GapOnService(TRUE, tvb, offset, pinfo, tree, hf_camel_gapOnService);
2411 }
2412
2413
2414 static const ber_sequence_t T_calledAddressAndService_sequence[] = {
2415   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
2416   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2417   { 0, 0, 0, NULL }
2418 };
2419
2420 static int
2421 dissect_camel_T_calledAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2422   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2423                                    T_calledAddressAndService_sequence, hf_index, ett_camel_T_calledAddressAndService);
2424
2425   return offset;
2426 }
2427 static int dissect_calledAddressAndService_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2428   return dissect_camel_T_calledAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_camel_calledAddressAndService);
2429 }
2430
2431
2432 static const ber_sequence_t T_callingAddressAndService_sequence[] = {
2433   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl },
2434   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2435   { 0, 0, 0, NULL }
2436 };
2437
2438 static int
2439 dissect_camel_T_callingAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2440   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2441                                    T_callingAddressAndService_sequence, hf_index, ett_camel_T_callingAddressAndService);
2442
2443   return offset;
2444 }
2445 static int dissect_callingAddressAndService_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2446   return dissect_camel_T_callingAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_camel_callingAddressAndService);
2447 }
2448
2449
2450 static const value_string camel_BasicGapCriteria_vals[] = {
2451   {   0, "calledAddressValue" },
2452   {   2, "gapOnService" },
2453   {  29, "calledAddressAndService" },
2454   {  30, "callingAddressAndService" },
2455   { 0, NULL }
2456 };
2457
2458 static const ber_choice_t BasicGapCriteria_choice[] = {
2459   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
2460   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gapOnService_impl },
2461   {  29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_calledAddressAndService_impl },
2462   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_callingAddressAndService_impl },
2463   { 0, 0, 0, 0, NULL }
2464 };
2465
2466 static int
2467 dissect_camel_BasicGapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2468   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2469                                  BasicGapCriteria_choice, hf_index, ett_camel_BasicGapCriteria,
2470                                  NULL);
2471
2472   return offset;
2473 }
2474 static int dissect_basicGapCriteria(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2475   return dissect_camel_BasicGapCriteria(FALSE, tvb, offset, pinfo, tree, hf_camel_basicGapCriteria);
2476 }
2477 static int dissect_basicGapCriteria_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2478   return dissect_camel_BasicGapCriteria(TRUE, tvb, offset, pinfo, tree, hf_camel_basicGapCriteria);
2479 }
2480
2481
2482 static const value_string camel_EventTypeBCSM_vals[] = {
2483   {   2, "collectedInfo" },
2484   {   3, "analyzedInformation" },
2485   {   4, "routeSelectFailure" },
2486   {   5, "oCalledPartyBusy" },
2487   {   6, "oNoAnswer" },
2488   {   7, "oAnswer" },
2489   {   8, "oMidCall" },
2490   {   9, "oDisconnect" },
2491   {  10, "oAbandon" },
2492   {  12, "termAttemptAuthorized" },
2493   {  13, "tBusy" },
2494   {  14, "tNoAnswer" },
2495   {  15, "tAnswer" },
2496   {  16, "tMidCall" },
2497   {  17, "tDisconnect" },
2498   {  18, "tAbandon" },
2499   {  19, "oTermSeized" },
2500   {  27, "callAccepted" },
2501   {  50, "oChangeOfPosition" },
2502   {  51, "tChangeOfPosition" },
2503   {  52, "oServiceChange" },
2504   {  53, "tServiceChange" },
2505   { 0, NULL }
2506 };
2507
2508
2509 static int
2510 dissect_camel_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2511   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2512                                   NULL);
2513
2514   return offset;
2515 }
2516 static int dissect_eventTypeBCSM_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2517   return dissect_camel_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_camel_eventTypeBCSM);
2518 }
2519
2520
2521 static const value_string camel_MonitorMode_vals[] = {
2522   {   0, "interrupted" },
2523   {   1, "notifyAndContinue" },
2524   {   2, "transparent" },
2525   { 0, NULL }
2526 };
2527
2528
2529 static int
2530 dissect_camel_MonitorMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2531   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2532                                   NULL);
2533
2534   return offset;
2535 }
2536 static int dissect_monitorMode_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2537   return dissect_camel_MonitorMode(TRUE, tvb, offset, pinfo, tree, hf_camel_monitorMode);
2538 }
2539
2540
2541
2542 static int
2543 dissect_camel_INTEGER_1_30(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2544   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2545                                   NULL);
2546
2547   return offset;
2548 }
2549 static int dissect_minimumNbOfDigits_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2550   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNbOfDigits);
2551 }
2552 static int dissect_maximumNbOfDigits_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2553   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNbOfDigits);
2554 }
2555 static int dissect_minimumNumberOfDigits_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2556   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNumberOfDigits);
2557 }
2558 static int dissect_maximumNumberOfDigits_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2559   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNumberOfDigits);
2560 }
2561
2562
2563
2564 static int
2565 dissect_camel_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2566   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2567                                        NULL);
2568
2569   return offset;
2570 }
2571 static int dissect_endOfReplyDigit_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2572   return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_endOfReplyDigit);
2573 }
2574 static int dissect_cancelDigit_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2575   return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_cancelDigit);
2576 }
2577 static int dissect_startDigit_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2578   return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_startDigit);
2579 }
2580
2581
2582
2583 static int
2584 dissect_camel_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2585   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2586                                   NULL);
2587
2588   return offset;
2589 }
2590 static int dissect_firstDigitTimeOut_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2591   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_firstDigitTimeOut);
2592 }
2593 static int dissect_interDigitTimeOut_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2594   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeOut);
2595 }
2596 static int dissect_interDigitTimeout_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2597   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeout);
2598 }
2599 static int dissect_numberOfRepetitions_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2600   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfRepetitions);
2601 }
2602
2603
2604 static const ber_sequence_t MidCallControlInfo_sequence[] = {
2605   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNumberOfDigits_impl },
2606   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfDigits_impl },
2607   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl },
2608   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cancelDigit_impl },
2609   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startDigit_impl },
2610   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeout_impl },
2611   { 0, 0, 0, NULL }
2612 };
2613
2614 static int
2615 dissect_camel_MidCallControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2616   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2617                                    MidCallControlInfo_sequence, hf_index, ett_camel_MidCallControlInfo);
2618
2619   return offset;
2620 }
2621 static int dissect_midCallControlInfo_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2622   return dissect_camel_MidCallControlInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallControlInfo);
2623 }
2624
2625
2626 static const ber_sequence_t ChangeOfLocationAlt_sequence[] = {
2627   { 0, 0, 0, NULL }
2628 };
2629
2630 static int
2631 dissect_camel_ChangeOfLocationAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2632   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2633                                    ChangeOfLocationAlt_sequence, hf_index, ett_camel_ChangeOfLocationAlt);
2634
2635   return offset;
2636 }
2637 static int dissect_changeOfLocationAlt_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2638   return dissect_camel_ChangeOfLocationAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_changeOfLocationAlt);
2639 }
2640
2641
2642 static const value_string camel_ChangeOfLocation_vals[] = {
2643   {   0, "cellGlobalId" },
2644   {   1, "serviceAreaId" },
2645   {   2, "locationAreaId" },
2646   {   3, "inter-SystemHandOver" },
2647   {   4, "inter-PLMNHandOver" },
2648   {   5, "inter-MSCHandOver" },
2649   {   6, "changeOfLocationAlt" },
2650   { 0, NULL }
2651 };
2652
2653 static const ber_choice_t ChangeOfLocation_choice[] = {
2654   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellGlobalId_impl },
2655   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceAreaId_impl },
2656   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_locationAreaId_impl },
2657   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_inter_SystemHandOver_impl },
2658   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_inter_PLMNHandOver_impl },
2659   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_inter_MSCHandOver_impl },
2660   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_changeOfLocationAlt_impl },
2661   { 0, 0, 0, 0, NULL }
2662 };
2663
2664 static int
2665 dissect_camel_ChangeOfLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2666   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2667                                  ChangeOfLocation_choice, hf_index, ett_camel_ChangeOfLocation,
2668                                  NULL);
2669
2670   return offset;
2671 }
2672 static int dissect_ChangeOfPositionControlInfo_item(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2673   return dissect_camel_ChangeOfLocation(FALSE, tvb, offset, pinfo, tree, hf_camel_ChangeOfPositionControlInfo_item);
2674 }
2675
2676
2677 static const ber_sequence_t ChangeOfPositionControlInfo_sequence_of[1] = {
2678   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ChangeOfPositionControlInfo_item },
2679 };
2680
2681 static int
2682 dissect_camel_ChangeOfPositionControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2683   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2684                                       ChangeOfPositionControlInfo_sequence_of, hf_index, ett_camel_ChangeOfPositionControlInfo);
2685
2686   return offset;
2687 }
2688 static int dissect_changeOfPositionControlInfo_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2689   return dissect_camel_ChangeOfPositionControlInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_changeOfPositionControlInfo);
2690 }
2691
2692
2693
2694 static int
2695 dissect_camel_NumberOfDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2696   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2697                                   NULL);
2698
2699   return offset;
2700 }
2701 static int dissect_numberOfDigits_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2702   return dissect_camel_NumberOfDigits(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfDigits);
2703 }
2704
2705
2706 static const ber_sequence_t DpSpecificCriteriaAlt_sequence[] = {
2707   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_changeOfPositionControlInfo_impl },
2708   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfDigits_impl },
2709   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeout_impl },
2710   { 0, 0, 0, NULL }
2711 };
2712
2713 static int
2714 dissect_camel_DpSpecificCriteriaAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2715   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2716                                    DpSpecificCriteriaAlt_sequence, hf_index, ett_camel_DpSpecificCriteriaAlt);
2717
2718   return offset;
2719 }
2720 static int dissect_dpSpecificCriteriaAlt_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2721   return dissect_camel_DpSpecificCriteriaAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificCriteriaAlt);
2722 }
2723
2724
2725 static const value_string camel_DpSpecificCriteria_vals[] = {
2726   {   1, "applicationTimer" },
2727   {   2, "midCallControlInfo" },
2728   {   3, "dpSpecificCriteriaAlt" },
2729   { 0, NULL }
2730 };
2731
2732 static const ber_choice_t DpSpecificCriteria_choice[] = {
2733   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_applicationTimer_impl },
2734   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_midCallControlInfo_impl },
2735   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_dpSpecificCriteriaAlt_impl },
2736   { 0, 0, 0, 0, NULL }
2737 };
2738
2739 static int
2740 dissect_camel_DpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2741   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2742                                  DpSpecificCriteria_choice, hf_index, ett_camel_DpSpecificCriteria,
2743                                  NULL);
2744
2745   return offset;
2746 }
2747 static int dissect_dpSpecificCriteria_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2748   return dissect_camel_DpSpecificCriteria(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificCriteria);
2749 }
2750
2751
2752 static const ber_sequence_t BCSMEvent_sequence[] = {
2753   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
2754   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
2755   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID6_impl },
2756   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_dpSpecificCriteria_impl },
2757   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_automaticRearm_impl },
2758   { 0, 0, 0, NULL }
2759 };
2760
2761 static int
2762 dissect_camel_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2763   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2764                                    BCSMEvent_sequence, hf_index, ett_camel_BCSMEvent);
2765
2766   return offset;
2767 }
2768 static int dissect_BCSMEventArray_item(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2769   return dissect_camel_BCSMEvent(FALSE, tvb, offset, pinfo, tree, hf_camel_BCSMEventArray_item);
2770 }
2771
2772
2773
2774 static int
2775 dissect_camel_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2776 #line 135 "camel.cnf"
2777
2778        tvbuff_t *camel_tvb;
2779        guint8 Cause_value;
2780
2781   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2782                                        &camel_tvb);
2783
2784
2785        if (camel_tvb)
2786            dissect_q931_cause_ie(camel_tvb, 0, tvb_length_remaining(camel_tvb,0), tree, hf_camel_cause_indicator, &Cause_value);
2787
2788
2789        return offset;
2790
2791
2792   return offset;
2793 }
2794 static int dissect_cause_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2795   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_cause);
2796 }
2797 static int dissect_failureCause_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2798   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_failureCause);
2799 }
2800 static int dissect_busyCause_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2801   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_busyCause);
2802 }
2803 static int dissect_releaseCause_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2804   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCause);
2805 }
2806 static int dissect_releaseCauseValue_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2807   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCauseValue);
2808 }
2809
2810
2811 static const ber_sequence_t BCSM_Failure_sequence[] = {
2812   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2813   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl },
2814   { 0, 0, 0, NULL }
2815 };
2816
2817 static int
2818 dissect_camel_BCSM_Failure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2819   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2820                                    BCSM_Failure_sequence, hf_index, ett_camel_BCSM_Failure);
2821
2822   return offset;
2823 }
2824 static int dissect_bCSM_Failure_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2825   return dissect_camel_BCSM_Failure(TRUE, tvb, offset, pinfo, tree, hf_camel_bCSM_Failure);
2826 }
2827
2828
2829
2830 static int
2831 dissect_camel_BearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2832 #line 286 "camel.cnf"
2833
2834  tvbuff_t       *parameter_tvb;
2835
2836   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2837                                        &parameter_tvb);
2838
2839
2840  if (!parameter_tvb)
2841         return offset;
2842
2843  dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree);
2844
2845
2846   return offset;
2847 }
2848 static int dissect_bearerCap_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2849   return dissect_camel_BearerCap(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCap);
2850 }
2851
2852
2853 static const value_string camel_BearerCapability_vals[] = {
2854   {   0, "bearerCap" },
2855   { 0, NULL }
2856 };
2857
2858 static const ber_choice_t BearerCapability_choice[] = {
2859   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bearerCap_impl },
2860   { 0, 0, 0, 0, NULL }
2861 };
2862
2863 static int
2864 dissect_camel_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2865   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2866                                  BearerCapability_choice, hf_index, ett_camel_BearerCapability,
2867                                  NULL);
2868
2869   return offset;
2870 }
2871 static int dissect_bearerCapability2_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2872   return dissect_camel_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCapability2);
2873 }
2874 static int dissect_bearerCapability_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2875   return dissect_camel_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCapability);
2876 }
2877
2878
2879
2880 static int
2881 dissect_camel_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2882 #line 94 "camel.cnf"
2883
2884  tvbuff_t       *parameter_tvb;
2885  char           *digit_str;
2886  proto_item *item;
2887  proto_tree *subtree;
2888
2889   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2890                                        &parameter_tvb);
2891
2892
2893  if (!parameter_tvb)
2894         return offset;
2895  item = get_ber_last_created_item();
2896  subtree = proto_item_add_subtree(item, ett_camel_isdn_address_string);
2897   
2898  proto_tree_add_item(subtree, hf_camel_addr_extension, parameter_tvb, 0,1,FALSE);
2899  
2900  proto_tree_add_item(subtree, hf_camel_addr_natureOfAddressIndicator, parameter_tvb, 0,1,FALSE);
2901  proto_tree_add_item(subtree, hf_camel_addr_numberingPlanInd, parameter_tvb, 0,1,FALSE);
2902  digit_str = unpack_digits(parameter_tvb, 1);
2903
2904  proto_tree_add_string(subtree, hf_camel_addr_digits, parameter_tvb, 1, -1, digit_str);
2905
2906
2907   return offset;
2908 }
2909 static int dissect_sgsn_Number_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2910   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_sgsn_Number);
2911 }
2912 static int dissect_gmscAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2913   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_gmscAddress);
2914 }
2915 static int dissect_gsmSCFAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2916   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_gsmSCFAddress);
2917 }
2918 static int dissect_sMSCAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2919   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_sMSCAddress);
2920 }
2921 static int dissect_mSISDN_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2922   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_mSISDN);
2923 }
2924 static int dissect_mscAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2925   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_mscAddress);
2926 }
2927 static int dissect_sgsnNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2928   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_sgsnNumber);
2929 }
2930 static int dissect_calledPartyNumberSMS_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2931   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_calledPartyNumberSMS);
2932 }
2933
2934
2935
2936 static int
2937 dissect_camel_CalledPartyBCDNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2938   offset = dissect_camel_ISDN_AddressString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2939
2940   return offset;
2941 }
2942 static int dissect_destinationSubscriberNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2943   return dissect_camel_CalledPartyBCDNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_destinationSubscriberNumber);
2944 }
2945 static int dissect_calledPartyBCDNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2946   return dissect_camel_CalledPartyBCDNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_calledPartyBCDNumber);
2947 }
2948
2949
2950
2951 static int
2952 dissect_camel_CalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2953 #line 77 "camel.cnf"
2954
2955
2956  tvbuff_t *isup_tvb;
2957  guint32 len;
2958
2959  len=tvb_length_remaining(tvb,offset);
2960  isup_tvb = tvb_new_subset(tvb, offset,-1 , -1 );
2961  dissect_isup_called_party_number_parameter(isup_tvb, tree, NULL);
2962  offset += len;
2963  
2964
2965
2966   return offset;
2967 }
2968 static int dissect_DestinationRoutingAddress_item(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2969   return dissect_camel_CalledPartyNumber(FALSE, tvb, offset, pinfo, tree, hf_camel_DestinationRoutingAddress_item);
2970 }
2971 static int dissect_destinationAddress_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2972   return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_destinationAddress);
2973 }
2974 static int dissect_forwardingDestinationNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2975   return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_forwardingDestinationNumber);
2976 }
2977 static int dissect_calledPartyNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
2978   return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_calledPartyNumber);
2979 }
2980
2981
2982
2983 static int
2984 dissect_camel_CallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
2985 #line 60 "camel.cnf"
2986
2987
2988  proto_item* parameter_item;
2989  proto_item* parameter_tree;
2990  tvbuff_t *isup_tvb;
2991  guint32 len;
2992
2993  len=tvb_length_remaining(tvb,offset);
2994  parameter_item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
2995  parameter_tree = proto_item_add_subtree(parameter_item, ett_camelisup_parameter);
2996  isup_tvb = tvb_new_subset(tvb, offset,-1 , -1 );
2997  dissect_isup_calling_party_number_parameter(isup_tvb, parameter_tree, parameter_item);
2998  offset += len;
2999
3000
3001   return offset;
3002 }
3003 static int dissect_callingPartyNumber_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3004   return dissect_camel_CallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartyNumber);
3005 }
3006
3007
3008 static const value_string camel_ReceivingSideID_vals[] = {
3009   {   1, "receivingSideID" },
3010   { 0, NULL }
3011 };
3012
3013 static const ber_choice_t ReceivingSideID_choice[] = {
3014   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl },
3015   { 0, 0, 0, 0, NULL }
3016 };
3017
3018 static int
3019 dissect_camel_ReceivingSideID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3020   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3021                                  ReceivingSideID_choice, hf_index, ett_camel_ReceivingSideID,
3022                                  NULL);
3023
3024   return offset;
3025 }
3026 static int dissect_partyToCharge_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3027   return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge);
3028 }
3029 static int dissect_legID4_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3030   return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID4);
3031 }
3032 static int dissect_legID5_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3033   return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID5);
3034 }
3035
3036
3037
3038 static int
3039 dissect_camel_TimeIfNoTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3040   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3041                                   NULL);
3042
3043   return offset;
3044 }
3045 static int dissect_timeIfNoTariffSwitch_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3046   return dissect_camel_TimeIfNoTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_timeIfNoTariffSwitch);
3047 }
3048
3049
3050
3051 static int
3052 dissect_camel_INTEGER_0_864000(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3053   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3054                                   NULL);
3055
3056   return offset;
3057 }
3058 static int dissect_timeSinceTariffSwitch_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3059   return dissect_camel_INTEGER_0_864000(TRUE, tvb, offset, pinfo, tree, hf_camel_timeSinceTariffSwitch);
3060 }
3061
3062
3063 static const ber_sequence_t TimeIfTariffSwitch_sequence[] = {
3064   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeSinceTariffSwitch_impl },
3065   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tttariffSwitchInterval_impl },
3066   { 0, 0, 0, NULL }
3067 };
3068
3069 static int
3070 dissect_camel_TimeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3071   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3072                                    TimeIfTariffSwitch_sequence, hf_index, ett_camel_TimeIfTariffSwitch);
3073
3074   return offset;
3075 }
3076 static int dissect_timeIfTariffSwitch_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3077   return dissect_camel_TimeIfTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_timeIfTariffSwitch);
3078 }
3079
3080
3081 static const value_string camel_TimeInformation_vals[] = {
3082   {   0, "timeIfNoTariffSwitch" },
3083   {   1, "timeIfTariffSwitch" },
3084   { 0, NULL }
3085 };
3086
3087 static const ber_choice_t TimeInformation_choice[] = {
3088   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeIfNoTariffSwitch_impl },
3089   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timeIfTariffSwitch_impl },
3090   { 0, 0, 0, 0, NULL }
3091 };
3092
3093 static int
3094 dissect_camel_TimeInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3095   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3096                                  TimeInformation_choice, hf_index, ett_camel_TimeInformation,
3097                                  NULL);
3098
3099   return offset;
3100 }
3101 static int dissect_timeInformation_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3102   return dissect_camel_TimeInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_timeInformation);
3103 }
3104
3105
3106 static const ber_sequence_t TimeDurationChargingResult_sequence[] = {
3107   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl },
3108   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_timeInformation_impl },
3109   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_legActive_impl },
3110   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callLegReleasedAtTcpExpiry_impl },
3111   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3112   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChChargingAddress_impl },
3113   { 0, 0, 0, NULL }
3114 };
3115
3116 static int
3117 dissect_camel_TimeDurationChargingResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3118   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3119                                    TimeDurationChargingResult_sequence, hf_index, ett_camel_TimeDurationChargingResult);
3120
3121   return offset;
3122 }
3123 static int dissect_timeDurationChargingResult_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3124   return dissect_camel_TimeDurationChargingResult(TRUE, tvb, offset, pinfo, tree, hf_camel_timeDurationChargingResult);
3125 }
3126
3127
3128 static const value_string camel_CAMEL_CallResult_vals[] = {
3129   {   0, "timeDurationChargingResult" },
3130   {  99, "void" },
3131   { 0, NULL }
3132 };
3133
3134 static const ber_choice_t CAMEL_CallResult_choice[] = {
3135   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeDurationChargingResult_impl },
3136   {  99, BER_CLASS_CON, 99, BER_FLAGS_IMPLTAG, dissect_void_impl },
3137   { 0, 0, 0, 0, NULL }
3138 };
3139
3140 static int
3141 dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3142   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3143                                  CAMEL_CallResult_choice, hf_index, ett_camel_CAMEL_CallResult,
3144                                  NULL);
3145
3146   return offset;
3147 }
3148 static int dissect_callresultOctet(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3149   return dissect_camel_CAMEL_CallResult(FALSE, tvb, offset, pinfo, tree, hf_camel_callresultOctet);
3150 }
3151
3152
3153
3154 static int
3155 dissect_camel_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3156   offset = dissect_camel_CAMEL_CallResult(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3157
3158   return offset;
3159 }
3160
3161
3162 static const ber_sequence_t CallSegmentFailure_sequence[] = {
3163   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
3164   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl },
3165   { 0, 0, 0, NULL }
3166 };
3167
3168 static int
3169 dissect_camel_CallSegmentFailure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3170   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3171                                    CallSegmentFailure_sequence, hf_index, ett_camel_CallSegmentFailure);
3172
3173   return offset;
3174 }
3175 static int dissect_callSegmentFailure_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3176   return dissect_camel_CallSegmentFailure(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentFailure);
3177 }
3178
3179
3180
3181 static int
3182 dissect_camel_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3183   offset = dissect_camel_InvokeIdType(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3184
3185   return offset;
3186 }
3187 static int dissect_callInvokeID_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3188   return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_callInvokeID);
3189 }
3190 static int dissect_operation_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3191   return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_operation);
3192 }
3193
3194
3195 static const ber_sequence_t CallSegmentToCancel_sequence[] = {
3196   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callInvokeID_impl },
3197   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
3198   { 0, 0, 0, NULL }
3199 };
3200
3201 static int
3202 dissect_camel_CallSegmentToCancel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_) {
3203   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3204                                    CallSegmentToCancel_sequence, hf_index, ett_camel_CallSegmentToCancel);
3205
3206   return offset;
3207 }
3208 static int dissect_callSegmentToCancel_impl(packet_info *pinfo _U_, proto_tree *tree _U_, tvbuff_t *tvb _U_, int offset _U_) {
3209   return dissect_camel_CallSegmentToCancel(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentToCancel);
3210 }
3211
3212
3213 static const ber_sequence_t T_timeDurationCharging_sequence[] = {
3214   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_maxCallPeriodDuration_impl },
3215   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseIfdurationExceeded_impl },
3216 &nbs