Define some fcns & vars as static...
[metze/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 -L -p camel -c ./camel.cnf -s ./packet-camel-template -D . CAP-object-identifiers.asn CAP-classes.asn CAP-datatypes.asn CAP-errorcodes.asn CAP-errortypes.asn CAP-operationcodes.asn CAP-GPRS-ReferenceNumber.asn CAP-gsmSCF-gsmSRF-ops-args.asn CAP-gsmSSF-gsmSCF-ops-args.asn CAP-gprsSSF-gsmSCF-ops-args.asn CAP-SMS-ops-args.asn CAP-U-ABORT-Data.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.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 Acuna <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-2010, 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/oids.h>
52 #include <epan/tap.h>
53 #include <epan/asn1.h>
54 #include <epan/expert.h>
55
56 #include <string.h>
57
58 #include "packet-ber.h"
59 #include "packet-camel.h"
60 #include "packet-q931.h"
61 #include "packet-e164.h"
62 #include "packet-isup.h"
63 #include "packet-gsm_map.h"
64 #include "packet-inap.h"
65 #include "packet-tcap.h"
66 #include <epan/camel-persistentdata.h>
67 #include <epan/tcap-persistentdata.h>
68
69 #define PNAME  "Camel"
70 #define PSNAME "CAMEL"
71 #define PFNAME "camel"
72
73 /* Initialize the protocol and registered fields */
74 static int proto_camel = -1;
75 int date_format = 1; /*assume european date format */
76 int camel_tap = -1;
77 /* Global variables */
78 static guint32 opcode=0;
79 static guint32 errorCode=0;
80
81 /* ROSE context */
82 static rose_ctx_t camel_rose_ctx;
83
84 static int hf_digit = -1; 
85 static int hf_camel_extension_code_local = -1;
86 static int hf_camel_error_code_local = -1;
87 static int hf_camel_cause_indicator = -1;
88 static int hf_camel_PDPTypeNumber_etsi = -1;
89 static int hf_camel_PDPTypeNumber_ietf = -1;
90 static int hf_camel_PDPAddress_IPv4 = -1;
91 static int hf_camel_PDPAddress_IPv6 = -1;
92 static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength = -1;
93 static int hf_camel_RP_Cause = -1;
94 static int hf_camel_CAMEL_AChBillingChargingCharacteristics = -1;
95 static int hf_camel_CAMEL_FCIBillingChargingCharacteristics = -1;
96 static int hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics = -1;
97 static int hf_camel_CAMEL_FCISMSBillingChargingCharacteristics = -1;
98 static int hf_camel_CAMEL_SCIBillingChargingCharacteristics = -1;
99 static int hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics = -1;
100 static int hf_camel_CAMEL_CallResult = -1;
101
102 /* Used by camel-persistentdata.c */
103 int hf_camelsrt_SessionId=-1;
104 int hf_camelsrt_RequestNumber=-1;
105 int hf_camelsrt_Duplicate=-1;
106 int hf_camelsrt_RequestFrame=-1;
107 int hf_camelsrt_ResponseFrame=-1;
108 int hf_camelsrt_DeltaTime=-1;
109 int hf_camelsrt_SessionTime=-1;
110 int hf_camelsrt_DeltaTime31=-1;
111 int hf_camelsrt_DeltaTime75=-1;
112 int hf_camelsrt_DeltaTime65=-1;
113 int hf_camelsrt_DeltaTime22=-1;
114 int hf_camelsrt_DeltaTime35=-1;
115 int hf_camelsrt_DeltaTime80=-1;
116
117
118 /*--- Included file: packet-camel-hf.c ---*/
119 #line 1 "packet-camel-hf.c"
120 static int hf_camel_PAR_cancelFailed_PDU = -1;    /* PAR_cancelFailed */
121 static int hf_camel_PAR_requestedInfoError_PDU = -1;  /* PAR_requestedInfoError */
122 static int hf_camel_UnavailableNetworkResource_PDU = -1;  /* UnavailableNetworkResource */
123 static int hf_camel_PAR_taskRefused_PDU = -1;     /* PAR_taskRefused */
124 static int hf_camel_CAP_GPRS_ReferenceNumber_PDU = -1;  /* CAP_GPRS_ReferenceNumber */
125 static int hf_camel_PlayAnnouncementArg_PDU = -1;  /* PlayAnnouncementArg */
126 static int hf_camel_PromptAndCollectUserInformationArg_PDU = -1;  /* PromptAndCollectUserInformationArg */
127 static int hf_camel_ReceivedInformationArg_PDU = -1;  /* ReceivedInformationArg */
128 static int hf_camel_SpecializedResourceReportArg_PDU = -1;  /* SpecializedResourceReportArg */
129 static int hf_camel_ApplyChargingArg_PDU = -1;    /* ApplyChargingArg */
130 static int hf_camel_ApplyChargingReportArg_PDU = -1;  /* ApplyChargingReportArg */
131 static int hf_camel_AssistRequestInstructionsArg_PDU = -1;  /* AssistRequestInstructionsArg */
132 static int hf_camel_CallGapArg_PDU = -1;          /* CallGapArg */
133 static int hf_camel_CallInformationReportArg_PDU = -1;  /* CallInformationReportArg */
134 static int hf_camel_CallInformationRequestArg_PDU = -1;  /* CallInformationRequestArg */
135 static int hf_camel_CancelArg_PDU = -1;           /* CancelArg */
136 static int hf_camel_ConnectArg_PDU = -1;          /* ConnectArg */
137 static int hf_camel_ConnectToResourceArg_PDU = -1;  /* ConnectToResourceArg */
138 static int hf_camel_ContinueWithArgumentArg_PDU = -1;  /* ContinueWithArgumentArg */
139 static int hf_camel_DisconnectForwardConnectionWithArgumentArg_PDU = -1;  /* DisconnectForwardConnectionWithArgumentArg */
140 static int hf_camel_DisconnectLegArg_PDU = -1;    /* DisconnectLegArg */
141 static int hf_camel_EntityReleasedArg_PDU = -1;   /* EntityReleasedArg */
142 static int hf_camel_EstablishTemporaryConnectionArg_PDU = -1;  /* EstablishTemporaryConnectionArg */
143 static int hf_camel_EventReportBCSMArg_PDU = -1;  /* EventReportBCSMArg */
144 static int hf_camel_FurnishChargingInformationArg_PDU = -1;  /* FurnishChargingInformationArg */
145 static int hf_camel_InitialDPArg_PDU = -1;        /* InitialDPArg */
146 static int hf_camel_InitiateCallAttemptArg_PDU = -1;  /* InitiateCallAttemptArg */
147 static int hf_camel_InitiateCallAttemptRes_PDU = -1;  /* InitiateCallAttemptRes */
148 static int hf_camel_MoveLegArg_PDU = -1;          /* MoveLegArg */
149 static int hf_camel_PlayToneArg_PDU = -1;         /* PlayToneArg */
150 static int hf_camel_ReleaseCallArg_PDU = -1;      /* ReleaseCallArg */
151 static int hf_camel_RequestReportBCSMEventArg_PDU = -1;  /* RequestReportBCSMEventArg */
152 static int hf_camel_ResetTimerArg_PDU = -1;       /* ResetTimerArg */
153 static int hf_camel_SendChargingInformationArg_PDU = -1;  /* SendChargingInformationArg */
154 static int hf_camel_SplitLegArg_PDU = -1;         /* SplitLegArg */
155 static int hf_camel_ApplyChargingGPRSArg_PDU = -1;  /* ApplyChargingGPRSArg */
156 static int hf_camel_ApplyChargingReportGPRSArg_PDU = -1;  /* ApplyChargingReportGPRSArg */
157 static int hf_camel_CancelGPRSArg_PDU = -1;       /* CancelGPRSArg */
158 static int hf_camel_ConnectGPRSArg_PDU = -1;      /* ConnectGPRSArg */
159 static int hf_camel_ContinueGPRSArg_PDU = -1;     /* ContinueGPRSArg */
160 static int hf_camel_EntityReleasedGPRSArg_PDU = -1;  /* EntityReleasedGPRSArg */
161 static int hf_camel_EventReportGPRSArg_PDU = -1;  /* EventReportGPRSArg */
162 static int hf_camel_FurnishChargingInformationGPRSArg_PDU = -1;  /* FurnishChargingInformationGPRSArg */
163 static int hf_camel_InitialDPGPRSArg_PDU = -1;    /* InitialDPGPRSArg */
164 static int hf_camel_ReleaseGPRSArg_PDU = -1;      /* ReleaseGPRSArg */
165 static int hf_camel_RequestReportGPRSEventArg_PDU = -1;  /* RequestReportGPRSEventArg */
166 static int hf_camel_ResetTimerGPRSArg_PDU = -1;   /* ResetTimerGPRSArg */
167 static int hf_camel_SendChargingInformationGPRSArg_PDU = -1;  /* SendChargingInformationGPRSArg */
168 static int hf_camel_ConnectSMSArg_PDU = -1;       /* ConnectSMSArg */
169 static int hf_camel_EventReportSMSArg_PDU = -1;   /* EventReportSMSArg */
170 static int hf_camel_FurnishChargingInformationSMSArg_PDU = -1;  /* FurnishChargingInformationSMSArg */
171 static int hf_camel_InitialDPSMSArg_PDU = -1;     /* InitialDPSMSArg */
172 static int hf_camel_ReleaseSMSArg_PDU = -1;       /* ReleaseSMSArg */
173 static int hf_camel_RequestReportSMSEventArg_PDU = -1;  /* RequestReportSMSEventArg */
174 static int hf_camel_ResetTimerSMSArg_PDU = -1;    /* ResetTimerSMSArg */
175 static int hf_camel_CAP_U_ABORT_REASON_PDU = -1;  /* CAP_U_ABORT_REASON */
176 static int hf_camel_legID = -1;                   /* LegID */
177 static int hf_camel_srfConnection = -1;           /* CallSegmentID */
178 static int hf_camel_aOCInitial = -1;              /* CAI_GSM0224 */
179 static int hf_camel_aOCSubsequent = -1;           /* AOCSubsequent */
180 static int hf_camel_cAI_GSM0224 = -1;             /* CAI_GSM0224 */
181 static int hf_camel_aocSubsequent_tariffSwitchInterval = -1;  /* INTEGER_1_86400 */
182 static int hf_camel_audibleIndicatorTone = -1;    /* BOOLEAN */
183 static int hf_camel_burstList = -1;               /* BurstList */
184 static int hf_camel_conferenceTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
185 static int hf_camel_callCompletionTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
186 static int hf_camel_calledAddressValue = -1;      /* Digits */
187 static int hf_camel_gapOnService = -1;            /* GapOnService */
188 static int hf_camel_calledAddressAndService = -1;  /* T_calledAddressAndService */
189 static int hf_camel_serviceKey = -1;              /* ServiceKey */
190 static int hf_camel_callingAddressAndService = -1;  /* T_callingAddressAndService */
191 static int hf_camel_callingAddressValue = -1;     /* Digits */
192 static int hf_camel_eventTypeBCSM = -1;           /* EventTypeBCSM */
193 static int hf_camel_monitorMode = -1;             /* MonitorMode */
194 static int hf_camel_dpSpecificCriteria = -1;      /* DpSpecificCriteria */
195 static int hf_camel_automaticRearm = -1;          /* NULL */
196 static int hf_camel_cause = -1;                   /* Cause */
197 static int hf_camel_bearerCap = -1;               /* T_bearerCap */
198 static int hf_camel_numberOfBursts = -1;          /* INTEGER_1_3 */
199 static int hf_camel_burstInterval = -1;           /* INTEGER_1_1200 */
200 static int hf_camel_numberOfTonesInBurst = -1;    /* INTEGER_1_3 */
201 static int hf_camel_burstToneDuration = -1;       /* INTEGER_1_20 */
202 static int hf_camel_toneInterval = -1;            /* INTEGER_1_20 */
203 static int hf_camel_warningPeriod = -1;           /* INTEGER_1_1200 */
204 static int hf_camel_bursts = -1;                  /* Burst */
205 static int hf_camel_e1 = -1;                      /* INTEGER_0_8191 */
206 static int hf_camel_e2 = -1;                      /* INTEGER_0_8191 */
207 static int hf_camel_e3 = -1;                      /* INTEGER_0_8191 */
208 static int hf_camel_e4 = -1;                      /* INTEGER_0_8191 */
209 static int hf_camel_e5 = -1;                      /* INTEGER_0_8191 */
210 static int hf_camel_e6 = -1;                      /* INTEGER_0_8191 */
211 static int hf_camel_e7 = -1;                      /* INTEGER_0_8191 */
212 static int hf_camel_callSegmentID = -1;           /* CallSegmentID */
213 static int hf_camel_invokeID = -1;                /* InvokeID */
214 static int hf_camel_timeDurationCharging = -1;    /* T_timeDurationCharging */
215 static int hf_camel_maxCallPeriodDuration = -1;   /* INTEGER_1_864000 */
216 static int hf_camel_releaseIfdurationExceeded = -1;  /* BOOLEAN */
217 static int hf_camel_timeDurationCharging_tariffSwitchInterval = -1;  /* INTEGER_1_86400 */
218 static int hf_camel_audibleIndicator = -1;        /* T_audibleIndicator */
219 static int hf_camel_extensions = -1;              /* Extensions */
220 static int hf_camel_timeDurationChargingResult = -1;  /* T_timeDurationChargingResult */
221 static int hf_camel_timeDurationChargingResultpartyToCharge = -1;  /* ReceivingSideID */
222 static int hf_camel_timeInformation = -1;         /* TimeInformation */
223 static int hf_camel_legActive = -1;               /* BOOLEAN */
224 static int hf_camel_callLegReleasedAtTcpExpiry = -1;  /* NULL */
225 static int hf_camel_aChChargingAddress = -1;      /* AChChargingAddress */
226 static int hf_camel_fci_fCIBCCCAMELsequence1 = -1;  /* T_fci_fCIBCCCAMELsequence1 */
227 static int hf_camel_freeFormatData = -1;          /* OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength */
228 static int hf_camel_fCIBCCCAMELsequence1partyToCharge = -1;  /* SendingSideID */
229 static int hf_camel_appendFreeFormatData = -1;    /* AppendFreeFormatData */
230 static int hf_camel_fciGPRS_fCIBCCCAMELsequence1 = -1;  /* T_fciGPRS_fCIBCCCAMELsequence1 */
231 static int hf_camel_pDPID = -1;                   /* PDPID */
232 static int hf_camel_fciSMS_fCIBCCCAMELsequence1 = -1;  /* T_fciSMS_fCIBCCCAMELsequence1 */
233 static int hf_camel_aOCBeforeAnswer = -1;         /* AOCBeforeAnswer */
234 static int hf_camel_aOCAfterAnswer = -1;          /* AOCSubsequent */
235 static int hf_camel_aOC_extension = -1;           /* CAMEL_SCIBillingChargingCharacteristicsAlt */
236 static int hf_camel_aOCGPRS = -1;                 /* AOCGPRS */
237 static int hf_camel_ChangeOfPositionControlInfo_item = -1;  /* ChangeOfLocation */
238 static int hf_camel_cellGlobalId = -1;            /* CellGlobalIdOrServiceAreaIdFixedLength */
239 static int hf_camel_serviceAreaId = -1;           /* CellGlobalIdOrServiceAreaIdFixedLength */
240 static int hf_camel_locationAreaId = -1;          /* LAIFixedLength */
241 static int hf_camel_inter_SystemHandOver = -1;    /* NULL */
242 static int hf_camel_inter_PLMNHandOver = -1;      /* NULL */
243 static int hf_camel_inter_MSCHandOver = -1;       /* NULL */
244 static int hf_camel_changeOfLocationAlt = -1;     /* ChangeOfLocationAlt */
245 static int hf_camel_maxTransferredVolume = -1;    /* INTEGER_1_4294967295 */
246 static int hf_camel_maxElapsedTime = -1;          /* INTEGER_1_86400 */
247 static int hf_camel_transferredVolume = -1;       /* TransferredVolume */
248 static int hf_camel_elapsedTime = -1;             /* ElapsedTime */
249 static int hf_camel_transferredVolumeRollOver = -1;  /* TransferredVolumeRollOver */
250 static int hf_camel_elapsedTimeRollOver = -1;     /* ElapsedTimeRollOver */
251 static int hf_camel_minimumNbOfDigits = -1;       /* INTEGER_1_30 */
252 static int hf_camel_maximumNbOfDigits = -1;       /* INTEGER_1_30 */
253 static int hf_camel_endOfReplyDigit = -1;         /* OCTET_STRING_SIZE_1_2 */
254 static int hf_camel_cancelDigit = -1;             /* OCTET_STRING_SIZE_1_2 */
255 static int hf_camel_startDigit = -1;              /* OCTET_STRING_SIZE_1_2 */
256 static int hf_camel_firstDigitTimeOut = -1;       /* INTEGER_1_127 */
257 static int hf_camel_interDigitTimeOut = -1;       /* INTEGER_1_127 */
258 static int hf_camel_errorTreatment = -1;          /* ErrorTreatment */
259 static int hf_camel_interruptableAnnInd = -1;     /* BOOLEAN */
260 static int hf_camel_voiceInformation = -1;        /* BOOLEAN */
261 static int hf_camel_voiceBack = -1;               /* BOOLEAN */
262 static int hf_camel_collectedDigits = -1;         /* CollectedDigits */
263 static int hf_camel_basicGapCriteria = -1;        /* BasicGapCriteria */
264 static int hf_camel_scfID = -1;                   /* ScfID */
265 static int hf_camel_DestinationRoutingAddress_item = -1;  /* CalledPartyNumber */
266 static int hf_camel_applicationTimer = -1;        /* ApplicationTimer */
267 static int hf_camel_midCallControlInfo = -1;      /* MidCallControlInfo */
268 static int hf_camel_dpSpecificCriteriaAlt = -1;   /* DpSpecificCriteriaAlt */
269 static int hf_camel_changeOfPositionControlInfo = -1;  /* ChangeOfPositionControlInfo */
270 static int hf_camel_numberOfDigits = -1;          /* NumberOfDigits */
271 static int hf_camel_interDigitTimeout = -1;       /* INTEGER_1_127 */
272 static int hf_camel_oServiceChangeSpecificInfo = -1;  /* T_oServiceChangeSpecificInfo */
273 static int hf_camel_ext_basicServiceCode = -1;    /* Ext_BasicServiceCode */
274 static int hf_camel_initiatorOfServiceChange = -1;  /* InitiatorOfServiceChange */
275 static int hf_camel_natureOfServiceChange = -1;   /* NatureOfServiceChange */
276 static int hf_camel_tServiceChangeSpecificInfo = -1;  /* T_tServiceChangeSpecificInfo */
277 static int hf_camel_collectedInfoSpecificInfo = -1;  /* T_collectedInfoSpecificInfo */
278 static int hf_camel_calledPartyNumber = -1;       /* CalledPartyNumber */
279 static int hf_camel_timeGPRSIfNoTariffSwitch = -1;  /* INTEGER_0_86400 */
280 static int hf_camel_timeGPRSIfTariffSwitch = -1;  /* T_timeGPRSIfTariffSwitch */
281 static int hf_camel_timeGPRSSinceLastTariffSwitch = -1;  /* INTEGER_0_86400 */
282 static int hf_camel_timeGPRSTariffSwitchInterval = -1;  /* INTEGER_0_86400 */
283 static int hf_camel_rO_TimeGPRSIfNoTariffSwitch = -1;  /* INTEGER_0_255 */
284 static int hf_camel_rO_TimeGPRSIfTariffSwitch = -1;  /* T_rO_TimeGPRSIfTariffSwitch */
285 static int hf_camel_rO_TimeGPRSSinceLastTariffSwitch = -1;  /* INTEGER_0_255 */
286 static int hf_camel_rO_TimeGPRSTariffSwitchInterval = -1;  /* INTEGER_0_255 */
287 static int hf_camel_pDPTypeOrganization = -1;     /* T_pDPTypeOrganization */
288 static int hf_camel_pDPTypeNumber = -1;           /* T_pDPTypeNumber */
289 static int hf_camel_pDPAddress = -1;              /* T_pDPAddress */
290 static int hf_camel_routeSelectFailureSpecificInfo = -1;  /* T_routeSelectFailureSpecificInfo */
291 static int hf_camel_routeSelectfailureCause = -1;  /* Cause */
292 static int hf_camel_oCalledPartyBusySpecificInfo = -1;  /* T_oCalledPartyBusySpecificInfo */
293 static int hf_camel_busyCause = -1;               /* Cause */
294 static int hf_camel_oNoAnswerSpecificInfo = -1;   /* T_oNoAnswerSpecificInfo */
295 static int hf_camel_oAnswerSpecificInfo = -1;     /* T_oAnswerSpecificInfo */
296 static int hf_camel_destinationAddress = -1;      /* CalledPartyNumber */
297 static int hf_camel_or_Call = -1;                 /* NULL */
298 static int hf_camel_forwardedCall = -1;           /* NULL */
299 static int hf_camel_chargeIndicator = -1;         /* ChargeIndicator */
300 static int hf_camel_ext_basicServiceCode2 = -1;   /* Ext_BasicServiceCode */
301 static int hf_camel_oMidCallSpecificInfo = -1;    /* T_oMidCallSpecificInfo */
302 static int hf_camel_omidCallEvents = -1;          /* T_omidCallEvents */
303 static int hf_camel_dTMFDigitsCompleted = -1;     /* Digits */
304 static int hf_camel_dTMFDigitsTimeOut = -1;       /* Digits */
305 static int hf_camel_oDisconnectSpecificInfo = -1;  /* T_oDisconnectSpecificInfo */
306 static int hf_camel_releaseCause = -1;            /* Cause */
307 static int hf_camel_tBusySpecificInfo = -1;       /* T_tBusySpecificInfo */
308 static int hf_camel_callForwarded = -1;           /* NULL */
309 static int hf_camel_routeNotPermitted = -1;       /* NULL */
310 static int hf_camel_forwardingDestinationNumber = -1;  /* CalledPartyNumber */
311 static int hf_camel_tNoAnswerSpecificInfo = -1;   /* T_tNoAnswerSpecificInfo */
312 static int hf_camel_tAnswerSpecificInfo = -1;     /* T_tAnswerSpecificInfo */
313 static int hf_camel_tMidCallSpecificInfo = -1;    /* T_tMidCallSpecificInfo */
314 static int hf_camel_tmidCallEvents = -1;          /* T_tmidCallEvents */
315 static int hf_camel_tDisconnectSpecificInfo = -1;  /* T_tDisconnectSpecificInfo */
316 static int hf_camel_oTermSeizedSpecificInfo = -1;  /* T_oTermSeizedSpecificInfo */
317 static int hf_camel_locationInformation = -1;     /* LocationInformation */
318 static int hf_camel_callAcceptedSpecificInfo = -1;  /* T_callAcceptedSpecificInfo */
319 static int hf_camel_oAbandonSpecificInfo = -1;    /* T_oAbandonSpecificInfo */
320 static int hf_camel_oChangeOfPositionSpecificInfo = -1;  /* T_oChangeOfPositionSpecificInfo */
321 static int hf_camel_metDPCriteriaList = -1;       /* MetDPCriteriaList */
322 static int hf_camel_tChangeOfPositionSpecificInfo = -1;  /* T_tChangeOfPositionSpecificInfo */
323 static int hf_camel_dpSpecificInfoAlt = -1;       /* DpSpecificInfoAlt */
324 static int hf_camel_o_smsFailureSpecificInfo = -1;  /* T_o_smsFailureSpecificInfo */
325 static int hf_camel_smsfailureCause = -1;         /* MO_SMSCause */
326 static int hf_camel_o_smsSubmissionSpecificInfo = -1;  /* T_o_smsSubmissionSpecificInfo */
327 static int hf_camel_t_smsFailureSpecificInfo = -1;  /* T_t_smsFailureSpecificInfo */
328 static int hf_camel_t_smsfailureCause = -1;       /* MT_SMSCause */
329 static int hf_camel_t_smsDeliverySpecificInfo = -1;  /* T_t_smsDeliverySpecificInfo */
330 static int hf_camel_Extensions_item = -1;         /* ExtensionField */
331 static int hf_camel_type = -1;                    /* Code */
332 static int hf_camel_criticality = -1;             /* CriticalityType */
333 static int hf_camel_value = -1;                   /* T_value */
334 static int hf_camel_callDiversionTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
335 static int hf_camel_callingPartyRestrictionIndicator = -1;  /* OCTET_STRING_SIZE_1 */
336 static int hf_camel_compoundGapCriteria = -1;     /* CompoundCriteria */
337 static int hf_camel_gapIndicatorsDuration = -1;   /* Duration */
338 static int hf_camel_gapInterval = -1;             /* Interval */
339 static int hf_camel_informationToSend = -1;       /* InformationToSend */
340 static int hf_camel_GenericNumbers_item = -1;     /* GenericNumber */
341 static int hf_camel_short_QoS_format = -1;        /* QoS_Subscribed */
342 static int hf_camel_long_QoS_format = -1;         /* Ext_QoS_Subscribed */
343 static int hf_camel_supplement_to_long_QoS_format = -1;  /* Ext2_QoS_Subscribed */
344 static int hf_camel_additionalSupplement = -1;    /* Ext3_QoS_Subscribed */
345 static int hf_camel_gPRSEventType = -1;           /* GPRSEventType */
346 static int hf_camel_attachChangeOfPositionSpecificInformation = -1;  /* T_attachChangeOfPositionSpecificInformation */
347 static int hf_camel_locationInformationGPRS = -1;  /* LocationInformationGPRS */
348 static int hf_camel_pdp_ContextchangeOfPositionSpecificInformation = -1;  /* T_pdp_ContextchangeOfPositionSpecificInformation */
349 static int hf_camel_accessPointName = -1;         /* AccessPointName */
350 static int hf_camel_chargingID = -1;              /* GPRSChargingID */
351 static int hf_camel_endUserAddress = -1;          /* EndUserAddress */
352 static int hf_camel_qualityOfService = -1;        /* QualityOfService */
353 static int hf_camel_timeAndTimeZone = -1;         /* TimeAndTimezone */
354 static int hf_camel_gGSNAddress = -1;             /* GSN_Address */
355 static int hf_camel_detachSpecificInformation = -1;  /* T_detachSpecificInformation */
356 static int hf_camel_initiatingEntity = -1;        /* InitiatingEntity */
357 static int hf_camel_routeingAreaUpdate = -1;      /* NULL */
358 static int hf_camel_disconnectSpecificInformation = -1;  /* T_disconnectSpecificInformation */
359 static int hf_camel_pDPContextEstablishmentSpecificInformation = -1;  /* T_pDPContextEstablishmentSpecificInformation */
360 static int hf_camel_pDPInitiationType = -1;       /* PDPInitiationType */
361 static int hf_camel_secondaryPDP_context = -1;    /* NULL */
362 static int hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation = -1;  /* T_pDPContextEstablishmentAcknowledgementSpecificInformation */
363 static int hf_camel_messageID = -1;               /* MessageID */
364 static int hf_camel_numberOfRepetitions = -1;     /* INTEGER_1_127 */
365 static int hf_camel_inbandInfoDuration = -1;      /* INTEGER_0_32767 */
366 static int hf_camel_interval = -1;                /* INTEGER_0_32767 */
367 static int hf_camel_inbandInfo = -1;              /* InbandInfo */
368 static int hf_camel_tone = -1;                    /* Tone */
369 static int hf_camel_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* T_cellGlobalIdOrServiceAreaIdOrLAI */
370 static int hf_camel_routeingAreaIdentity = -1;    /* RAIdentity */
371 static int hf_camel_geographicalInformation = -1;  /* GeographicalInformation */
372 static int hf_camel_sgsn_Number = -1;             /* ISDN_AddressString */
373 static int hf_camel_selectedLSAIdentity = -1;     /* LSAIdentity */
374 static int hf_camel_extensionContainer = -1;      /* ExtensionContainer */
375 static int hf_camel_sai_Present = -1;             /* NULL */
376 static int hf_camel_elementaryMessageID = -1;     /* Integer4 */
377 static int hf_camel_text = -1;                    /* T_text */
378 static int hf_camel_messageContent = -1;          /* IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength */
379 static int hf_camel_attributes = -1;              /* OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength */
380 static int hf_camel_elementaryMessageIDs = -1;    /* SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4 */
381 static int hf_camel_elementaryMessageIDs_item = -1;  /* Integer4 */
382 static int hf_camel_variableMessage = -1;         /* T_variableMessage */
383 static int hf_camel_variableParts = -1;           /* SEQUENCE_SIZE_1_5_OF_VariablePart */
384 static int hf_camel_variableParts_item = -1;      /* VariablePart */
385 static int hf_camel_MetDPCriteriaList_item = -1;  /* MetDPCriterion */
386 static int hf_camel_enteringCellGlobalId = -1;    /* CellGlobalIdOrServiceAreaIdFixedLength */
387 static int hf_camel_leavingCellGlobalId = -1;     /* CellGlobalIdOrServiceAreaIdFixedLength */
388 static int hf_camel_enteringServiceAreaId = -1;   /* CellGlobalIdOrServiceAreaIdFixedLength */
389 static int hf_camel_leavingServiceAreaId = -1;    /* CellGlobalIdOrServiceAreaIdFixedLength */
390 static int hf_camel_enteringLocationAreaId = -1;  /* LAIFixedLength */
391 static int hf_camel_leavingLocationAreaId = -1;   /* LAIFixedLength */
392 static int hf_camel_inter_SystemHandOverToUMTS = -1;  /* NULL */
393 static int hf_camel_inter_SystemHandOverToGSM = -1;  /* NULL */
394 static int hf_camel_metDPCriterionAlt = -1;       /* MetDPCriterionAlt */
395 static int hf_camel_minimumNumberOfDigits = -1;   /* INTEGER_1_30 */
396 static int hf_camel_maximumNumberOfDigits = -1;   /* INTEGER_1_30 */
397 static int hf_camel_requested_QoS = -1;           /* GPRS_QoS */
398 static int hf_camel_subscribed_QoS = -1;          /* GPRS_QoS */
399 static int hf_camel_negotiated_QoS = -1;          /* GPRS_QoS */
400 static int hf_camel_requested_QoS_Extension = -1;  /* GPRS_QoS_Extension */
401 static int hf_camel_subscribed_QoS_Extension = -1;  /* GPRS_QoS_Extension */
402 static int hf_camel_negotiated_QoS_Extension = -1;  /* GPRS_QoS_Extension */
403 static int hf_camel_receivingSideID = -1;         /* LegType */
404 static int hf_camel_RequestedInformationList_item = -1;  /* RequestedInformation */
405 static int hf_camel_RequestedInformationTypeList_item = -1;  /* RequestedInformationType */
406 static int hf_camel_requestedInformationType = -1;  /* RequestedInformationType */
407 static int hf_camel_requestedInformationValue = -1;  /* RequestedInformationValue */
408 static int hf_camel_callAttemptElapsedTimeValue = -1;  /* INTEGER_0_255 */
409 static int hf_camel_callStopTimeValue = -1;       /* DateAndTime */
410 static int hf_camel_callConnectedElapsedTimeValue = -1;  /* Integer4 */
411 static int hf_camel_releaseCauseValue = -1;       /* Cause */
412 static int hf_camel_sendingSideID = -1;           /* LegType */
413 static int hf_camel_forwardServiceInteractionInd = -1;  /* ForwardServiceInteractionInd */
414 static int hf_camel_backwardServiceInteractionInd = -1;  /* BackwardServiceInteractionInd */
415 static int hf_camel_bothwayThroughConnectionInd = -1;  /* BothwayThroughConnectionInd */
416 static int hf_camel_connectedNumberTreatmentInd = -1;  /* ConnectedNumberTreatmentInd */
417 static int hf_camel_nonCUGCall = -1;              /* NULL */
418 static int hf_camel_holdTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
419 static int hf_camel_cwTreatmentIndicator = -1;    /* OCTET_STRING_SIZE_1 */
420 static int hf_camel_ectTreatmentIndicator = -1;   /* OCTET_STRING_SIZE_1 */
421 static int hf_camel_eventTypeSMS = -1;            /* EventTypeSMS */
422 static int hf_camel_timeSinceTariffSwitch = -1;   /* INTEGER_0_864000 */
423 static int hf_camel_timeIfTariffSwitch_tariffSwitchInterval = -1;  /* INTEGER_1_864000 */
424 static int hf_camel_timeIfNoTariffSwitch = -1;    /* TimeIfNoTariffSwitch */
425 static int hf_camel_timeIfTariffSwitch = -1;      /* TimeIfTariffSwitch */
426 static int hf_camel_toneID = -1;                  /* Integer4 */
427 static int hf_camel_toneDuration = -1;            /* Integer4 */
428 static int hf_camel_volumeIfNoTariffSwitch = -1;  /* INTEGER_0_4294967295 */
429 static int hf_camel_volumeIfTariffSwitch = -1;    /* T_volumeIfTariffSwitch */
430 static int hf_camel_volumeSinceLastTariffSwitch = -1;  /* INTEGER_0_4294967295 */
431 static int hf_camel_volumeTariffSwitchInterval = -1;  /* INTEGER_0_4294967295 */
432 static int hf_camel_rO_VolumeIfNoTariffSwitch = -1;  /* INTEGER_0_255 */
433 static int hf_camel_rO_VolumeIfTariffSwitch = -1;  /* T_rO_VolumeIfTariffSwitch */
434 static int hf_camel_rO_VolumeSinceLastTariffSwitch = -1;  /* INTEGER_0_255 */
435 static int hf_camel_rO_VolumeTariffSwitchInterval = -1;  /* INTEGER_0_255 */
436 static int hf_camel_integer = -1;                 /* Integer4 */
437 static int hf_camel_number = -1;                  /* Digits */
438 static int hf_camel_time = -1;                    /* OCTET_STRING_SIZE_2 */
439 static int hf_camel_date = -1;                    /* OCTET_STRING_SIZE_4 */
440 static int hf_camel_price = -1;                   /* OCTET_STRING_SIZE_4 */
441 static int hf_camel_par_cancelFailedProblem = -1;  /* T_par_cancelFailedProblem */
442 static int hf_camel_operation = -1;               /* InvokeID */
443 static int hf_camel_destinationReference = -1;    /* Integer4 */
444 static int hf_camel_originationReference = -1;    /* Integer4 */
445 static int hf_camel_disconnectFromIPForbidden = -1;  /* BOOLEAN */
446 static int hf_camel_requestAnnouncementCompleteNotification = -1;  /* BOOLEAN */
447 static int hf_camel_requestAnnouncementStartedNotification = -1;  /* BOOLEAN */
448 static int hf_camel_collectedInfo = -1;           /* CollectedInfo */
449 static int hf_camel_digitsResponse = -1;          /* Digits */
450 static int hf_camel_allAnnouncementsComplete = -1;  /* NULL */
451 static int hf_camel_firstAnnouncementStarted = -1;  /* NULL */
452 static int hf_camel_aChBillingChargingCharacteristics = -1;  /* AChBillingChargingCharacteristics */
453 static int hf_camel_partyToCharge = -1;           /* SendingSideID */
454 static int hf_camel_correlationID = -1;           /* CorrelationID */
455 static int hf_camel_iPSSPCapabilities = -1;       /* IPSSPCapabilities */
456 static int hf_camel_gapCriteria = -1;             /* GapCriteria */
457 static int hf_camel_gapIndicators = -1;           /* GapIndicators */
458 static int hf_camel_controlType = -1;             /* ControlType */
459 static int hf_camel_gapTreatment = -1;            /* GapTreatment */
460 static int hf_camel_requestedInformationList = -1;  /* RequestedInformationList */
461 static int hf_camel_legID_01 = -1;                /* ReceivingSideID */
462 static int hf_camel_requestedInformationTypeList = -1;  /* RequestedInformationTypeList */
463 static int hf_camel_legID_02 = -1;                /* SendingSideID */
464 static int hf_camel_allRequests = -1;             /* NULL */
465 static int hf_camel_callSegmentToCancel = -1;     /* CallSegmentToCancel */
466 static int hf_camel_destinationRoutingAddress = -1;  /* DestinationRoutingAddress */
467 static int hf_camel_alertingPattern = -1;         /* AlertingPattern */
468 static int hf_camel_originalCalledPartyID = -1;   /* OriginalCalledPartyID */
469 static int hf_camel_carrier = -1;                 /* Carrier */
470 static int hf_camel_callingPartysCategory = -1;   /* CallingPartysCategory */
471 static int hf_camel_redirectingPartyID = -1;      /* RedirectingPartyID */
472 static int hf_camel_redirectionInformation = -1;  /* RedirectionInformation */
473 static int hf_camel_genericNumbers = -1;          /* GenericNumbers */
474 static int hf_camel_serviceInteractionIndicatorsTwo = -1;  /* ServiceInteractionIndicatorsTwo */
475 static int hf_camel_chargeNumber = -1;            /* ChargeNumber */
476 static int hf_camel_legToBeConnected = -1;        /* LegID */
477 static int hf_camel_cug_Interlock = -1;           /* CUG_Interlock */
478 static int hf_camel_cug_OutgoingAccess = -1;      /* NULL */
479 static int hf_camel_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
480 static int hf_camel_oCSIApplicable = -1;          /* OCSIApplicable */
481 static int hf_camel_naOliInfo = -1;               /* NAOliInfo */
482 static int hf_camel_bor_InterrogationRequested = -1;  /* NULL */
483 static int hf_camel_suppress_N_CSI = -1;          /* NULL */
484 static int hf_camel_resourceAddress = -1;         /* T_resourceAddress */
485 static int hf_camel_ipRoutingAddress = -1;        /* IPRoutingAddress */
486 static int hf_camel_none = -1;                    /* NULL */
487 static int hf_camel_suppress_O_CSI = -1;          /* NULL */
488 static int hf_camel_continueWithArgumentArgExtension = -1;  /* ContinueWithArgumentArgExtension */
489 static int hf_camel_suppress_D_CSI = -1;          /* NULL */
490 static int hf_camel_suppressOutgoingCallBarring = -1;  /* NULL */
491 static int hf_camel_legOrCallSegment = -1;        /* LegOrCallSegment */
492 static int hf_camel_legToBeReleased = -1;         /* LegID */
493 static int hf_camel_callSegmentFailure = -1;      /* CallSegmentFailure */
494 static int hf_camel_bCSM_Failure = -1;            /* BCSM_Failure */
495 static int hf_camel_assistingSSPIPRoutingAddress = -1;  /* AssistingSSPIPRoutingAddress */
496 static int hf_camel_callingPartyNumber = -1;      /* CallingPartyNumber */
497 static int hf_camel_eventSpecificInformationBCSM = -1;  /* EventSpecificInformationBCSM */
498 static int hf_camel_miscCallInfo = -1;            /* MiscCallInfo */
499 static int hf_camel_cGEncountered = -1;           /* CGEncountered */
500 static int hf_camel_locationNumber = -1;          /* LocationNumber */
501 static int hf_camel_highLayerCompatibility = -1;  /* HighLayerCompatibility */
502 static int hf_camel_additionalCallingPartyNumber = -1;  /* AdditionalCallingPartyNumber */
503 static int hf_camel_bearerCapability = -1;        /* BearerCapability */
504 static int hf_camel_cug_Index = -1;               /* CUG_Index */
505 static int hf_camel_iMSI = -1;                    /* IMSI */
506 static int hf_camel_subscriberState = -1;         /* SubscriberState */
507 static int hf_camel_callReferenceNumber = -1;     /* CallReferenceNumber */
508 static int hf_camel_mscAddress = -1;              /* ISDN_AddressString */
509 static int hf_camel_calledPartyBCDNumber = -1;    /* CalledPartyBCDNumber */
510 static int hf_camel_timeAndTimezone = -1;         /* TimeAndTimezone */
511 static int hf_camel_callForwardingSS_Pending = -1;  /* NULL */
512 static int hf_camel_initialDPArgExtension = -1;   /* InitialDPArgExtension */
513 static int hf_camel_gmscAddress = -1;             /* ISDN_AddressString */
514 static int hf_camel_ms_Classmark2 = -1;           /* MS_Classmark2 */
515 static int hf_camel_iMEI = -1;                    /* IMEI */
516 static int hf_camel_supportedCamelPhases = -1;    /* SupportedCamelPhases */
517 static int hf_camel_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
518 static int hf_camel_bearerCapability2 = -1;       /* BearerCapability */
519 static int hf_camel_highLayerCompatibility2 = -1;  /* HighLayerCompatibility */
520 static int hf_camel_lowLayerCompatibility = -1;   /* LowLayerCompatibility */
521 static int hf_camel_lowLayerCompatibility2 = -1;  /* LowLayerCompatibility */
522 static int hf_camel_enhancedDialledServicesAllowed = -1;  /* NULL */
523 static int hf_camel_uu_Data = -1;                 /* UU_Data */
524 static int hf_camel_collectInformationAllowed = -1;  /* NULL */
525 static int hf_camel_legToBeCreated = -1;          /* LegID */
526 static int hf_camel_newCallSegment = -1;          /* CallSegmentID */
527 static int hf_camel_gsmSCFAddress = -1;           /* ISDN_AddressString */
528 static int hf_camel_suppress_T_CSI = -1;          /* NULL */
529 static int hf_camel_legIDToMove = -1;             /* LegID */
530 static int hf_camel_bcsmEvents = -1;              /* SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent */
531 static int hf_camel_bcsmEvents_item = -1;         /* BCSMEvent */
532 static int hf_camel_timerID = -1;                 /* TimerID */
533 static int hf_camel_timervalue = -1;              /* TimerValue */
534 static int hf_camel_sCIBillingChargingCharacteristics = -1;  /* SCIBillingChargingCharacteristics */
535 static int hf_camel_legToBeSplit = -1;            /* LegID */
536 static int hf_camel_chargingCharacteristics = -1;  /* ChargingCharacteristics */
537 static int hf_camel_applyChargingGPRS_tariffSwitchInterval = -1;  /* INTEGER_1_86400 */
538 static int hf_camel_chargingResult = -1;          /* ChargingResult */
539 static int hf_camel_active = -1;                  /* BOOLEAN */
540 static int hf_camel_chargingRollOver = -1;        /* ChargingRollOver */
541 static int hf_camel_pdpID = -1;                   /* PDPID */
542 static int hf_camel_gPRSCause = -1;               /* GPRSCause */
543 static int hf_camel_miscGPRSInfo = -1;            /* MiscCallInfo */
544 static int hf_camel_gPRSEventSpecificInformation = -1;  /* GPRSEventSpecificInformation */
545 static int hf_camel_mSISDN = -1;                  /* ISDN_AddressString */
546 static int hf_camel_gPRSMSClass = -1;             /* GPRSMSClass */
547 static int hf_camel_sGSNCapabilities = -1;        /* SGSNCapabilities */
548 static int hf_camel_gprsCause = -1;               /* GPRSCause */
549 static int hf_camel_gPRSEvent = -1;               /* SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent */
550 static int hf_camel_gPRSEvent_item = -1;          /* GPRSEvent */
551 static int hf_camel_sCIGPRSBillingChargingCharacteristics = -1;  /* SCIGPRSBillingChargingCharacteristics */
552 static int hf_camel_callingPartysNumber = -1;     /* SMS_AddressString */
553 static int hf_camel_destinationSubscriberNumber = -1;  /* CalledPartyBCDNumber */
554 static int hf_camel_sMSCAddress = -1;             /* ISDN_AddressString */
555 static int hf_camel_eventSpecificInformationSMS = -1;  /* EventSpecificInformationSMS */
556 static int hf_camel_callingPartyNumber_01 = -1;   /* SMS_AddressString */
557 static int hf_camel_locationInformationMSC = -1;  /* LocationInformation */
558 static int hf_camel_tPShortMessageSpecificInfo = -1;  /* TPShortMessageSpecificInfo */
559 static int hf_camel_tPProtocolIdentifier = -1;    /* TPProtocolIdentifier */
560 static int hf_camel_tPDataCodingScheme = -1;      /* TPDataCodingScheme */
561 static int hf_camel_tPValidityPeriod = -1;        /* TPValidityPeriod */
562 static int hf_camel_smsReferenceNumber = -1;      /* CallReferenceNumber */
563 static int hf_camel_calledPartyNumber_01 = -1;    /* ISDN_AddressString */
564 static int hf_camel_sMSEvents = -1;               /* SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent */
565 static int hf_camel_sMSEvents_item = -1;          /* SMSEvent */
566 static int hf_camel_local = -1;                   /* T_local */
567 static int hf_camel_global = -1;                  /* T_global */
568 static int hf_camel_invoke = -1;                  /* Invoke */
569 static int hf_camel_returnResult = -1;            /* ReturnResult */
570 static int hf_camel_returnError = -1;             /* ReturnError */
571 static int hf_camel_reject = -1;                  /* Reject */
572 static int hf_camel_invokeId = -1;                /* InvokeId */
573 static int hf_camel_linkedId = -1;                /* T_linkedId */
574 static int hf_camel_linkedIdPresent = -1;         /* T_linkedIdPresent */
575 static int hf_camel_absent = -1;                  /* NULL */
576 static int hf_camel_opcode = -1;                  /* Code */
577 static int hf_camel_argument = -1;                /* T_argument */
578 static int hf_camel_result = -1;                  /* T_result */
579 static int hf_camel_resultArgument = -1;          /* ResultArgument */
580 static int hf_camel_errcode = -1;                 /* Code */
581 static int hf_camel_parameter = -1;               /* T_parameter */
582 static int hf_camel_problem = -1;                 /* T_problem */
583 static int hf_camel_general = -1;                 /* GeneralProblem */
584 static int hf_camel_invokeProblem = -1;           /* InvokeProblem */
585 static int hf_camel_problemReturnResult = -1;     /* ReturnResultProblem */
586 static int hf_camel_returnErrorProblem = -1;      /* ReturnErrorProblem */
587 static int hf_camel_present = -1;                 /* INTEGER */
588 static int hf_camel_InvokeId_present = -1;        /* InvokeId_present */
589
590 /*--- End of included file: packet-camel-hf.c ---*/
591 #line 110 "packet-camel-template.c"
592
593 static struct camelsrt_info_t * gp_camelsrt_info;
594
595 /* Forward declarations */
596 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx);
597 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx);
598 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx);
599 static int dissect_camel_CAMEL_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
600 static int dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
601
602 gboolean gcamel_HandleSRT=FALSE;
603 extern gboolean gcamel_PersistentSRT;
604 extern gboolean gcamel_DisplaySRT;
605
606 /* Initialize the subtree pointers */
607 static gint ett_camel = -1;
608 static gint ett_camelisup_parameter = -1;
609 static gint ett_camel_AccessPointName = -1;
610 static gint ett_camel_pdptypenumber = -1;
611 static gint ett_camel_cause = -1;
612 static gint ett_camel_RPcause = -1;
613 static gint ett_camel_stat = -1;
614
615
616 /*--- Included file: packet-camel-ett.c ---*/
617 #line 1 "packet-camel-ett.c"
618 static gint ett_camel_AChChargingAddress = -1;
619 static gint ett_camel_AOCBeforeAnswer = -1;
620 static gint ett_camel_AOCGPRS = -1;
621 static gint ett_camel_AOCSubsequent = -1;
622 static gint ett_camel_AudibleIndicator = -1;
623 static gint ett_camel_BackwardServiceInteractionInd = -1;
624 static gint ett_camel_BasicGapCriteria = -1;
625 static gint ett_camel_T_calledAddressAndService = -1;
626 static gint ett_camel_T_callingAddressAndService = -1;
627 static gint ett_camel_BCSMEvent = -1;
628 static gint ett_camel_BCSM_Failure = -1;
629 static gint ett_camel_BearerCapability = -1;
630 static gint ett_camel_Burst = -1;
631 static gint ett_camel_BurstList = -1;
632 static gint ett_camel_CAI_GSM0224 = -1;
633 static gint ett_camel_CallSegmentFailure = -1;
634 static gint ett_camel_CallSegmentToCancel = -1;
635 static gint ett_camel_CAMEL_AChBillingChargingCharacteristics = -1;
636 static gint ett_camel_T_timeDurationCharging = -1;
637 static gint ett_camel_CAMEL_CallResult = -1;
638 static gint ett_camel_T_timeDurationChargingResult = -1;
639 static gint ett_camel_CAMEL_FCIBillingChargingCharacteristics = -1;
640 static gint ett_camel_T_fci_fCIBCCCAMELsequence1 = -1;
641 static gint ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics = -1;
642 static gint ett_camel_T_fciGPRS_fCIBCCCAMELsequence1 = -1;
643 static gint ett_camel_CAMEL_FCISMSBillingChargingCharacteristics = -1;
644 static gint ett_camel_T_fciSMS_fCIBCCCAMELsequence1 = -1;
645 static gint ett_camel_CAMEL_SCIBillingChargingCharacteristics = -1;
646 static gint ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt = -1;
647 static gint ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics = -1;
648 static gint ett_camel_ChangeOfPositionControlInfo = -1;
649 static gint ett_camel_ChangeOfLocation = -1;
650 static gint ett_camel_ChangeOfLocationAlt = -1;
651 static gint ett_camel_ChargingCharacteristics = -1;
652 static gint ett_camel_ChargingResult = -1;
653 static gint ett_camel_ChargingRollOver = -1;
654 static gint ett_camel_CollectedDigits = -1;
655 static gint ett_camel_CollectedInfo = -1;
656 static gint ett_camel_CompoundCriteria = -1;
657 static gint ett_camel_DestinationRoutingAddress = -1;
658 static gint ett_camel_DpSpecificCriteria = -1;
659 static gint ett_camel_DpSpecificCriteriaAlt = -1;
660 static gint ett_camel_DpSpecificInfoAlt = -1;
661 static gint ett_camel_T_oServiceChangeSpecificInfo = -1;
662 static gint ett_camel_T_tServiceChangeSpecificInfo = -1;
663 static gint ett_camel_T_collectedInfoSpecificInfo = -1;
664 static gint ett_camel_ElapsedTime = -1;
665 static gint ett_camel_T_timeGPRSIfTariffSwitch = -1;
666 static gint ett_camel_ElapsedTimeRollOver = -1;
667 static gint ett_camel_T_rO_TimeGPRSIfTariffSwitch = -1;
668 static gint ett_camel_EndUserAddress = -1;
669 static gint ett_camel_EventSpecificInformationBCSM = -1;
670 static gint ett_camel_T_routeSelectFailureSpecificInfo = -1;
671 static gint ett_camel_T_oCalledPartyBusySpecificInfo = -1;
672 static gint ett_camel_T_oNoAnswerSpecificInfo = -1;
673 static gint ett_camel_T_oAnswerSpecificInfo = -1;
674 static gint ett_camel_T_oMidCallSpecificInfo = -1;
675 static gint ett_camel_T_omidCallEvents = -1;
676 static gint ett_camel_T_oDisconnectSpecificInfo = -1;
677 static gint ett_camel_T_tBusySpecificInfo = -1;
678 static gint ett_camel_T_tNoAnswerSpecificInfo = -1;
679 static gint ett_camel_T_tAnswerSpecificInfo = -1;
680 static gint ett_camel_T_tMidCallSpecificInfo = -1;
681 static gint ett_camel_T_tmidCallEvents = -1;
682 static gint ett_camel_T_tDisconnectSpecificInfo = -1;
683 static gint ett_camel_T_oTermSeizedSpecificInfo = -1;
684 static gint ett_camel_T_callAcceptedSpecificInfo = -1;
685 static gint ett_camel_T_oAbandonSpecificInfo = -1;
686 static gint ett_camel_T_oChangeOfPositionSpecificInfo = -1;
687 static gint ett_camel_T_tChangeOfPositionSpecificInfo = -1;
688 static gint ett_camel_EventSpecificInformationSMS = -1;
689 static gint ett_camel_T_o_smsFailureSpecificInfo = -1;
690 static gint ett_camel_T_o_smsSubmissionSpecificInfo = -1;
691 static gint ett_camel_T_t_smsFailureSpecificInfo = -1;
692 static gint ett_camel_T_t_smsDeliverySpecificInfo = -1;
693 static gint ett_camel_Extensions = -1;
694 static gint ett_camel_ExtensionField = -1;
695 static gint ett_camel_ForwardServiceInteractionInd = -1;
696 static gint ett_camel_GapCriteria = -1;
697 static gint ett_camel_GapIndicators = -1;
698 static gint ett_camel_GapOnService = -1;
699 static gint ett_camel_GapTreatment = -1;
700 static gint ett_camel_GenericNumbers = -1;
701 static gint ett_camel_GPRS_QoS = -1;
702 static gint ett_camel_GPRS_QoS_Extension = -1;
703 static gint ett_camel_GPRSEvent = -1;
704 static gint ett_camel_GPRSEventSpecificInformation = -1;
705 static gint ett_camel_T_attachChangeOfPositionSpecificInformation = -1;
706 static gint ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation = -1;
707 static gint ett_camel_T_detachSpecificInformation = -1;
708 static gint ett_camel_T_disconnectSpecificInformation = -1;
709 static gint ett_camel_T_pDPContextEstablishmentSpecificInformation = -1;
710 static gint ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation = -1;
711 static gint ett_camel_InbandInfo = -1;
712 static gint ett_camel_InformationToSend = -1;
713 static gint ett_camel_LegOrCallSegment = -1;
714 static gint ett_camel_LocationInformationGPRS = -1;
715 static gint ett_camel_MessageID = -1;
716 static gint ett_camel_T_text = -1;
717 static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4 = -1;
718 static gint ett_camel_T_variableMessage = -1;
719 static gint ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart = -1;
720 static gint ett_camel_MetDPCriteriaList = -1;
721 static gint ett_camel_MetDPCriterion = -1;
722 static gint ett_camel_MetDPCriterionAlt = -1;
723 static gint ett_camel_MidCallControlInfo = -1;
724 static gint ett_camel_QualityOfService = -1;
725 static gint ett_camel_ReceivingSideID = -1;
726 static gint ett_camel_RequestedInformationList = -1;
727 static gint ett_camel_RequestedInformationTypeList = -1;
728 static gint ett_camel_RequestedInformation = -1;
729 static gint ett_camel_RequestedInformationValue = -1;
730 static gint ett_camel_SendingSideID = -1;
731 static gint ett_camel_ServiceInteractionIndicatorsTwo = -1;
732 static gint ett_camel_SMSEvent = -1;
733 static gint ett_camel_TimeIfTariffSwitch = -1;
734 static gint ett_camel_TimeInformation = -1;
735 static gint ett_camel_Tone = -1;
736 static gint ett_camel_TransferredVolume = -1;
737 static gint ett_camel_T_volumeIfTariffSwitch = -1;
738 static gint ett_camel_TransferredVolumeRollOver = -1;
739 static gint ett_camel_T_rO_VolumeIfTariffSwitch = -1;
740 static gint ett_camel_VariablePart = -1;
741 static gint ett_camel_PAR_cancelFailed = -1;
742 static gint ett_camel_CAP_GPRS_ReferenceNumber = -1;
743 static gint ett_camel_PlayAnnouncementArg = -1;
744 static gint ett_camel_PromptAndCollectUserInformationArg = -1;
745 static gint ett_camel_ReceivedInformationArg = -1;
746 static gint ett_camel_SpecializedResourceReportArg = -1;
747 static gint ett_camel_ApplyChargingArg = -1;
748 static gint ett_camel_AssistRequestInstructionsArg = -1;
749 static gint ett_camel_CallGapArg = -1;
750 static gint ett_camel_CallInformationReportArg = -1;
751 static gint ett_camel_CallInformationRequestArg = -1;
752 static gint ett_camel_CancelArg = -1;
753 static gint ett_camel_ConnectArg = -1;
754 static gint ett_camel_ConnectToResourceArg = -1;
755 static gint ett_camel_T_resourceAddress = -1;
756 static gint ett_camel_ContinueWithArgumentArg = -1;
757 static gint ett_camel_ContinueWithArgumentArgExtension = -1;
758 static gint ett_camel_DisconnectForwardConnectionWithArgumentArg = -1;
759 static gint ett_camel_DisconnectLegArg = -1;
760 static gint ett_camel_EntityReleasedArg = -1;
761 static gint ett_camel_EstablishTemporaryConnectionArg = -1;
762 static gint ett_camel_EventReportBCSMArg = -1;
763 static gint ett_camel_InitialDPArg = -1;
764 static gint ett_camel_InitialDPArgExtension = -1;
765 static gint ett_camel_InitiateCallAttemptArg = -1;
766 static gint ett_camel_InitiateCallAttemptRes = -1;
767 static gint ett_camel_MoveLegArg = -1;
768 static gint ett_camel_PlayToneArg = -1;
769 static gint ett_camel_RequestReportBCSMEventArg = -1;
770 static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent = -1;
771 static gint ett_camel_ResetTimerArg = -1;
772 static gint ett_camel_SendChargingInformationArg = -1;
773 static gint ett_camel_SplitLegArg = -1;
774 static gint ett_camel_ApplyChargingGPRSArg = -1;
775 static gint ett_camel_ApplyChargingReportGPRSArg = -1;
776 static gint ett_camel_CancelGPRSArg = -1;
777 static gint ett_camel_ConnectGPRSArg = -1;
778 static gint ett_camel_ContinueGPRSArg = -1;
779 static gint ett_camel_EntityReleasedGPRSArg = -1;
780 static gint ett_camel_EventReportGPRSArg = -1;
781 static gint ett_camel_InitialDPGPRSArg = -1;
782 static gint ett_camel_ReleaseGPRSArg = -1;
783 static gint ett_camel_RequestReportGPRSEventArg = -1;
784 static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent = -1;
785 static gint ett_camel_ResetTimerGPRSArg = -1;
786 static gint ett_camel_SendChargingInformationGPRSArg = -1;
787 static gint ett_camel_ConnectSMSArg = -1;
788 static gint ett_camel_EventReportSMSArg = -1;
789 static gint ett_camel_InitialDPSMSArg = -1;
790 static gint ett_camel_RequestReportSMSEventArg = -1;
791 static gint ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent = -1;
792 static gint ett_camel_ResetTimerSMSArg = -1;
793 static gint ett_camel_Code = -1;
794 static gint ett_camel_ROS = -1;
795 static gint ett_camel_Invoke = -1;
796 static gint ett_camel_T_linkedId = -1;
797 static gint ett_camel_ReturnResult = -1;
798 static gint ett_camel_T_result = -1;
799 static gint ett_camel_ReturnError = -1;
800 static gint ett_camel_Reject = -1;
801 static gint ett_camel_T_problem = -1;
802 static gint ett_camel_InvokeId = -1;
803
804 /*--- End of included file: packet-camel-ett.c ---*/
805 #line 134 "packet-camel-template.c"
806
807
808 /* Preference settings default */
809 #define MAX_SSN 254
810 static range_t *global_ssn_range;
811 static dissector_handle_t  camel_handle;
812
813 /* Global variables */
814
815 static int application_context_version;
816 static guint8 PDPTypeOrganization;
817 static guint8 PDPTypeNumber;
818 const char *camel_obj_id = NULL;
819 gboolean is_ExtensionField =FALSE;
820
821 static int camel_opcode_type;
822 #define CAMEL_OPCODE_INVOKE        1
823 #define CAMEL_OPCODE_RETURN_RESULT 2
824 #define CAMEL_OPCODE_RETURN_ERROR  3
825 #define CAMEL_OPCODE_REJECT        4
826
827 static const value_string camel_Component_vals[] = {
828   {   1, "invoke" },
829   {   2, "returnResultLast" },
830   {   3, "returnError" },
831   {   4, "reject" },
832   { 0, NULL }
833 };
834
835 static const true_false_string camel_extension_value = {
836   "No Extension",
837   "Extension"
838 };
839 #define EUROPEAN_DATE 1
840 #define AMERICAN_DATE 2
841 #define CAMEL_DATE_AND_TIME_LEN 20 /* 2*5 + 4 + 5 + 1 (HH:MM:SS;mm/dd/yyyy) */
842
843 static enum_val_t date_options[] = {
844   { "european",         "DD/MM/YYYY",       EUROPEAN_DATE },
845   { "american",        "MM/DD/YYYY",        AMERICAN_DATE },
846   { NULL, NULL, 0 }
847 };
848
849 static const value_string digit_value[] = {
850     { 0,  "0"},
851     { 1,  "1"},
852     { 2,  "2"},
853     { 3,  "3"},
854     { 4,  "4"},
855     { 5,  "5"},
856     { 6,  "6"},
857     { 7,  "7"},
858     { 8,  "8"},
859     { 9,  "9"},
860     { 10, "spare"},
861     { 11, "spare"},
862     { 12, "spare"},
863     { 13, "spare"},
864     { 0,  NULL}};
865   
866   
867 static const value_string camel_nature_of_addr_indicator_values[] = {
868   {   0x00,  "unknown" },
869   {   0x01,  "International Number" },
870   {   0x02,  "National Significant Number" },
871   {   0x03,  "Network Specific Number" },
872   {   0x04,  "Subscriber Number" },
873   {   0x05,  "Reserved" },
874   {   0x06,  "Abbreviated Number" },
875   {   0x07,  "Reserved for extension" },
876   { 0, NULL }
877 };
878 static const value_string camel_number_plan_values[] = {
879   {   0x00,  "unknown" },
880   {   0x01,  "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
881   {   0x02,  "spare" },
882   {   0x03,  "Data Numbering (ITU-T Rec. X.121)" },
883   {   0x04,  "Telex Numbering (ITU-T Rec. F.69)" },
884   {   0x05,  "spare" },
885   {   0x06,  "Land Mobile Numbering (ITU-T Rec. E.212)" },
886   {   0x07,  "spare" },
887   {   0x08,  "National Numbering" },
888   {   0x09,  "Private Numbering" },
889   {   0x0f,  "Reserved for extension" },
890   { 0, NULL }
891 };
892
893 /* End includes from old" packet-camel.c */
894
895 static const value_string camel_RP_Cause_values[] = {
896   { 1, "Unassigned (unallocated) number" },
897   { 8, "Operator determined barring" },
898   { 10, "Call barred" },
899   { 11, "Reserved" },
900   { 21, "Short message transfer rejected" },
901   { 27, "Destination out of order" },
902   { 28, "Unidentified subscriber" },
903   { 29, "Facility Rejected" },
904   { 30, "Unknown subscriber" },
905   { 38, "Network out of order" },
906   { 41, "Temporary failure" },
907   { 42, "Congestion" },
908   { 47, "Resources unavailable, unspecified" },
909   { 50, "Requested facility not subscribed" },
910   { 69, "Requested facility not implemented" },
911   { 81, "Invalid short message transfer reference value" },
912   { 95, "Semantically incorrect message" },
913   { 96, "Invalid mandatory information" },
914   { 97, " Message Type non-existent or not implemented" },
915   { 98, "Message not compatible with short message protocol state" },
916   { 99, "Information element non existent or not implemented" },
917   { 111, "Protocol error, unspecified" },
918   { 127, "Interworking, unspecified" },
919   { 22,"Memory capacity exceeded" },
920   { 0, NULL }
921 };
922
923 static const value_string camel_holdTreatmentIndicator_values[] = {
924   {   0x01,  "acceptHoldRequest" },
925   {   0x02,  "rejectHoldRequest" },
926   { 0, NULL }
927 };
928 static const value_string camel_cwTreatmentIndicator_values[] = {
929   {   0x01,  "acceptCw" },
930   {   0x02,  "rejectCw" },
931   { 0, NULL }
932 };
933 static const value_string camel_ectTreatmentIndicator_values[] = {
934   {   0x01,  "acceptEctRequest" },
935   {   0x02,  "rejectEctRequest" },
936   { 0, NULL }
937 };
938
939
940 /*--- Included file: packet-camel-val.h ---*/
941 #line 1 "packet-camel-val.h"
942 #define tc_Messages                    "0.0.17.773.2.1.3"
943 #define tc_NotationExtensions          "0.0.17.775.2.4.1"
944 #define ros_InformationObjects         "2.4.5.0"
945 #define datatypes                      "0.4.0.0.1.3.52.4"
946 #define errortypes                     "0.4.0.0.1.3.51.4"
947 #define operationcodes                 "0.4.0.0.1.3.53.4"
948 #define errorcodes                     "0.4.0.0.1.3.57.4"
949 #define classes                        "0.4.0.0.1.3.54.4"
950 #define gsmSSF_gsmSCF_Operations       "0.4.0.0.1.3.101.4"
951 #define gsmSSF_gsmSCF_Protocol         "0.4.0.0.1.3.102.4"
952 #define gsmSCF_gsmSRF_Operations       "0.4.0.0.1.3.103.4"
953 #define gsmSCF_gsmSRF_Protocol         "0.4.0.0.1.3.104.4"
954 #define sms_Operations                 "0.4.0.0.1.3.105.4"
955 #define smsSSF_gsmSCF_Protocol         "0.4.0.0.1.3.106.4"
956 #define gprsSSF_gsmSCF_Operations      "0.4.0.0.1.3.107.4"
957 #define gprsSSF_gsmSCF_Protocol        "0.4.0.0.1.3.108.4"
958 #define id_CAP                         "0.4.0.0.1.22"
959 #define id_CAP3                        "0.4.0.0.1.20"
960 #define id_CAPOE                       "0.4.0.0.1.23"
961 #define id_CAP3OE                      "0.4.0.0.1.21"
962 #define id_ac                          id_CAP".3"
963 #define id_acE                         id_CAPOE".3"
964 #define id_ac3E                        id_CAP3OE".3"
965 #define id_as                          id_CAP".5"
966 #define id_asE                         id_CAPOE".5"
967 #define id_rosObject                   id_CAP".25"
968 #define id_contract                    id_CAP".26"
969 #define id_contract3                   id_CAP3".26"
970 #define id_contractE                   id_CAPOE".26"
971 #define id_package                     id_CAP".27"
972 #define id_packageE                    id_CAPOE".27"
973 #define id_rosObject_gsmSCF            id_rosObject".4"
974 #define id_rosObject_gsmSSF            id_rosObject".5"
975 #define id_rosObject_gsmSRF            id_rosObject".6"
976 #define id_rosObject_gprsSSF           id_rosObject".7"
977 #define id_rosObject_smsSSF_V3         id_rosObject".8"
978 #define id_rosObject_smsSSF_V4         id_rosObject".9"
979 #define id_ac_CAP_gsmSSF_scfGenericAC  id_acE".4"
980 #define id_ac_CAP_gsmSSF_scfAssistHandoffAC id_acE".6"
981 #define id_ac_CAP_scf_gsmSSFGenericAC  id_acE".8"
982 #define id_ac_gsmSRF_gsmSCF            id_ac".14"
983 #define id_ac_CAP_gprsSSF_gsmSCF_AC    id_ac3E".50"
984 #define id_ac_CAP_gsmSCF_gprsSSF_AC    id_ac3E".51"
985 #define id_ac_cap3_sms_AC              id_ac3E".61"
986 #define id_ac_cap4_sms_AC              id_acE".61"
987 #define id_CAPSsfToScfGeneric          id_contractE".3"
988 #define id_CAPAssistHandoffssfToScf    id_contractE".5"
989 #define id_CAPScfToSsfGeneric          id_contractE".6"
990 #define id_contract_gsmSRF_gsmSCF      id_contract".13"
991 #define id_capGprsSsfTogsmScf          id_contract".14"
992 #define id_capGsmScfToGprsSsf          id_contract".15"
993 #define id_cap3SmsSsfTogsmScf          id_contract3".16"
994 #define id_cap4SmsSsfTogsmScf          id_contract".16"
995 #define id_package_scfActivation       id_package".11"
996 #define id_package_gsmSRF_scfActivationOfAssist id_package".15"
997 #define id_package_assistConnectionEstablishment id_package".16"
998 #define id_package_genericDisconnectResource id_package".17"
999 #define id_package_nonAssistedConnectionEstablishment id_package".18"
1000 #define id_package_connect             id_package".19"
1001 #define id_package_callHandling        id_packageE".20"
1002 #define id_package_bcsmEventHandling   id_package".21"
1003 #define id_package_ssfCallProcessing   id_packageE".24"
1004 #define id_package_scfCallInitiation   id_package".25"
1005 #define id_package_timer               id_package".26"
1006 #define id_package_billing             id_package".27"
1007 #define id_package_charging            id_package".28"
1008 #define id_package_trafficManagement   id_package".29"
1009 #define id_package_callReport          id_package".32"
1010 #define id_package_signallingControl   id_package".33"
1011 #define id_package_activityTest        id_package".34"
1012 #define id_package_cancel              id_packageE".36"
1013 #define id_package_cphResponse         id_package".37"
1014 #define id_package_exceptionInform     id_package".38"
1015 #define id_package_playTone            id_package".39"
1016 #define id_package_specializedResourceControl id_package".42"
1017 #define id_package_gsmSRF_scfCancel    id_package".43"
1018 #define id_package_gprsContinue        id_package".49"
1019 #define id_package_gprsExceptionInformation id_package".50"
1020 #define id_package_gprsScfActivation   id_package".51"
1021 #define id_package_gprsConnect         id_package".52"
1022 #define id_package_gprsRelease         id_package".53"
1023 #define id_package_gprsEventHandling   id_package".54"
1024 #define id_package_gprsTimer           id_package".55"
1025 #define id_package_gprsBilling         id_package".56"
1026 #define id_package_gprsCharging        id_package".57"
1027 #define id_package_gprsActivityTest    id_package".58"
1028 #define id_package_gprsCancel          id_package".59"
1029 #define id_package_gprsChargeAdvice    id_package".60"
1030 #define id_package_smsActivation       id_package".61"
1031 #define id_package_smsConnect          id_package".62"
1032 #define id_package_smsContinue         id_package".63"
1033 #define id_package_smsRelease          id_package".64"
1034 #define id_package_smsEventHandling    id_package".65"
1035 #define id_package_smsBilling          id_package".66"
1036 #define id_package_smsTimer            id_package".67"
1037 #define id_as_gsmSSF_scfGenericAS      id_asE".4"
1038 #define id_as_assistHandoff_gsmSSF_scfAS id_asE".6"
1039 #define id_as_scf_gsmSSFGenericAS      id_asE".7"
1040 #define id_as_basic_gsmSRF_gsmSCF      id_as".14"
1041 #define id_as_gprsSSF_gsmSCF_AS        id_as".50"
1042 #define id_as_gsmSCF_gprsSSF_AS        id_as".51"
1043 #define id_as_smsSSF_gsmSCF_AS         id_as".61"
1044 #define leg1                           0x01
1045 #define leg2                           0x02
1046 #define maxSMS_AddressStringLength     11
1047 #define numOfInfoItems                 4
1048 #define errcode_canceled               0
1049 #define errcode_cancelFailed           1
1050 #define errcode_eTCFailed              3
1051 #define errcode_improperCallerResponse 4
1052 #define errcode_missingCustomerRecord  6
1053 #define errcode_missingParameter       7
1054 #define errcode_parameterOutOfRange    8
1055 #define errcode_requestedInfoError     10
1056 #define errcode_systemFailure          11
1057 #define errcode_taskRefused            12
1058 #define errcode_unavailableResource    13
1059 #define errcode_unexpectedComponentSequence 14
1060 #define errcode_unexpectedDataValue    15
1061 #define errcode_unexpectedParameter    16
1062 #define errcode_unknownLegID           17
1063 #define errcode_unknownPDPID           50
1064 #define errcode_unknownCSID            51
1065 #define opcode_initialDP               0
1066 #define opcode_assistRequestInstructions 16
1067 #define opcode_establishTemporaryConnection 17
1068 #define opcode_disconnectForwardConnection 18
1069 #define opcode_dFCWithArgument         86
1070 #define opcode_connectToResource       19
1071 #define opcode_connect                 20
1072 #define opcode_releaseCall             22
1073 #define opcode_requestReportBCSMEvent  23
1074 #define opcode_eventReportBCSM         24
1075 #define opcode_collectInformation      27
1076 #define opcode_continue                31
1077 #define opcode_initiateCallAttempt     32
1078 #define opcode_resetTimer              33
1079 #define opcode_furnishChargingInformation 34
1080 #define opcode_applyCharging           35
1081 #define opcode_applyChargingReport     36
1082 #define opcode_callGap                 41
1083 #define opcode_callInformationReport   44
1084 #define opcode_callInformationRequest  45
1085 #define opcode_sendChargingInformation 46
1086 #define opcode_playAnnouncement        47
1087 #define opcode_promptAndCollectUserInformation 48
1088 #define opcode_specializedResourceReport 49
1089 #define opcode_cancel                  53
1090 #define opcode_activityTest            55
1091 #define opcode_continueWithArgument    88
1092 #define opcode_disconnectLeg           90
1093 #define opcode_moveLeg                 93
1094 #define opcode_splitLeg                95
1095 #define opcode_entityReleased          96
1096 #define opcode_playTone                97
1097 #define opcode_initialDPSMS            60
1098 #define opcode_furnishChargingInformationSMS 61
1099 #define opcode_connectSMS              62
1100 #define opcode_requestReportSMSEvent   63
1101 #define opcode_eventReportSMS          64
1102 #define opcode_continueSMS             65
1103 #define opcode_releaseSMS              66
1104 #define opcode_resetTimerSMS           67
1105 #define opcode_activityTestGPRS        70
1106 #define opcode_applyChargingGPRS       71
1107 #define opcode_applyChargingReportGPRS 72
1108 #define opcode_cancelGPRS              73
1109 #define opcode_connectGPRS             74
1110 #define opcode_continueGPRS            75
1111 #define opcode_entityReleasedGPRS      76
1112 #define opcode_furnishChargingInformationGPRS 77
1113 #define opcode_initialDPGPRS           78
1114 #define opcode_releaseGPRS             79
1115 #define opcode_eventReportGPRS         80
1116 #define opcode_requestReportGPRSEvent  81
1117 #define opcode_resetTimerGPRS          82
1118 #define opcode_sendChargingInformationGPRS 83
1119 #define id_CAP_GPRS_ReferenceNumber    "0.4.0.0.1.1.5.2"
1120 #define id_CAP_U_ABORT_Reason          "0.4.0.0.1.1.2.2"
1121 #define noInvokeId                     NULL
1122
1123 /*--- End of included file: packet-camel-val.h ---*/
1124 #line 268 "packet-camel-template.c"
1125
1126
1127 /*--- Included file: packet-camel-table.c ---*/
1128 #line 1 "packet-camel-table.c"
1129
1130 /* CAMEL OPERATIONS */
1131 const value_string camel_opr_code_strings[] = {
1132         { opcode_playAnnouncement, "playAnnouncement" },
1133         { opcode_promptAndCollectUserInformation, "promptAndCollectUserInformation" },
1134         { opcode_specializedResourceReport, "specializedResourceReport" },
1135         { opcode_activityTest, "activityTest" },
1136         { opcode_applyCharging, "applyCharging" },
1137         { opcode_applyChargingReport, "applyChargingReport" },
1138         { opcode_assistRequestInstructions, "assistRequestInstructions" },
1139         { opcode_callGap, "callGap" },
1140         { opcode_callInformationReport, "callInformationReport" },
1141         { opcode_callInformationRequest, "callInformationRequest" },
1142         { opcode_cancel, "cancel" },
1143         { opcode_collectInformation, "collectInformation" },
1144         { opcode_connect, "connect" },
1145         { opcode_connectToResource, "connectToResource" },
1146         { opcode_continue, "continue" },
1147         { opcode_continueWithArgument, "continueWithArgument" },
1148         { opcode_disconnectForwardConnection, "disconnectForwardConnection" },
1149         { opcode_dFCWithArgument, "disconnectForwardConnectionWithArgument" },
1150         { opcode_disconnectLeg, "disconnectLeg" },
1151         { opcode_entityReleased, "entityReleased" },
1152         { opcode_establishTemporaryConnection, "establishTemporaryConnection" },
1153         { opcode_eventReportBCSM, "eventReportBCSM" },
1154         { opcode_furnishChargingInformation, "furnishChargingInformation" },
1155         { opcode_initialDP, "initialDP" },
1156         { opcode_initiateCallAttempt, "initiateCallAttempt" },
1157         { opcode_moveLeg, "moveLeg" },
1158         { opcode_playTone, "playTone" },
1159         { opcode_releaseCall, "releaseCall" },
1160         { opcode_requestReportBCSMEvent, "requestReportBCSMEvent" },
1161         { opcode_resetTimer, "resetTimer" },
1162         { opcode_sendChargingInformation, "sendChargingInformation" },
1163         { opcode_splitLeg, "splitLeg" },
1164         { opcode_activityTestGPRS, "activityTestGPRS" },
1165         { opcode_applyChargingGPRS, "applyChargingGPRS" },
1166         { opcode_applyChargingReportGPRS, "applyChargingReportGPRS" },
1167         { opcode_cancelGPRS, "cancelGPRS" },
1168         { opcode_connectGPRS, "connectGPRS" },
1169         { opcode_continueGPRS, "continueGPRS" },
1170         { opcode_entityReleasedGPRS, "entityReleasedGPRS" },
1171         { opcode_eventReportGPRS, "eventReportGPRS" },
1172         { opcode_furnishChargingInformationGPRS, "furnishChargingInformationGPRS" },
1173         { opcode_initialDPGPRS, "initialDPGPRS" },
1174         { opcode_releaseGPRS, "releaseGPRS" },
1175         { opcode_requestReportGPRSEvent, "requestReportGPRSEvent" },
1176         { opcode_resetTimerGPRS, "resetTimerGPRS" },
1177         { opcode_sendChargingInformationGPRS, "sendChargingInformationGPRS" },
1178         { opcode_connectSMS, "connectSMS" },
1179         { opcode_continueSMS, "continueSMS" },
1180         { opcode_eventReportSMS, "eventReportSMS" },
1181         { opcode_furnishChargingInformationSMS, "furnishChargingInformationSMS" },
1182         { opcode_initialDPSMS, "initialDPSMS" },
1183         { opcode_releaseSMS, "releaseSMS" },
1184         { opcode_requestReportSMSEvent, "requestReportSMSEvent" },
1185         { opcode_resetTimerSMS, "resetTimerSMS" },
1186   { 0, NULL }
1187 };
1188
1189
1190 /* CAMEL ERRORS */
1191 static const value_string camel_err_code_string_vals[] = {
1192         { errcode_canceled, "canceled" },  
1193         { errcode_cancelFailed, "cancelFailed" },  
1194         { errcode_eTCFailed, "eTCFailed" },  
1195         { errcode_improperCallerResponse, "improperCallerResponse" },  
1196         { errcode_missingCustomerRecord, "missingCustomerRecord" },  
1197         { errcode_missingParameter, "missingParameter" },  
1198         { errcode_parameterOutOfRange, "parameterOutOfRange" },  
1199         { errcode_requestedInfoError, "requestedInfoError" },  
1200         { errcode_systemFailure, "systemFailure" },  
1201         { errcode_taskRefused, "taskRefused" },  
1202         { errcode_unavailableResource, "unavailableResource" },  
1203         { errcode_unexpectedComponentSequence, "unexpectedComponentSequence" },  
1204         { errcode_unexpectedDataValue, "unexpectedDataValue" },  
1205         { errcode_unexpectedParameter, "unexpectedParameter" },  
1206         { errcode_unknownLegID, "unknownLegID" },  
1207         { errcode_unknownCSID, "unknownCSID" },  
1208         { errcode_unknownPDPID, "unknownPDPID" },  
1209   { 0, NULL }
1210 };
1211
1212
1213 /*--- End of included file: packet-camel-table.c ---*/
1214 #line 270 "packet-camel-template.c"
1215
1216 static char camel_number_to_char(int number)
1217 {
1218    if (number < 10)
1219    return (char) (number + 48 ); /* this is ASCII specific */
1220    else
1221    return (char) (number + 55 );
1222 }
1223
1224 /*
1225  * 24.011 8.2.5.4
1226  */   
1227 static guint8
1228 dissect_RP_cause_ie(tvbuff_t *tvb, guint32 offset, _U_ guint len,
1229                     proto_tree *tree, int hf_cause_value, guint8 *cause_value)
1230 {
1231   guint8        oct;
1232   guint32       curr_offset;
1233   static char a_bigbuf[1024];
1234   
1235   curr_offset = offset;
1236   oct = tvb_get_guint8(tvb, curr_offset);
1237
1238   *cause_value = oct & 0x7f; 
1239   
1240   other_decode_bitfield_value(a_bigbuf, oct, 0x7f, 8);
1241   proto_tree_add_uint_format(tree, hf_cause_value,
1242                              tvb, curr_offset, 1, *cause_value,
1243                              "%s : %s",
1244                              a_bigbuf,
1245                              val_to_str(*cause_value, camel_RP_Cause_values, 
1246                                         "Unknown Cause (%u), treated as (41) \"Temporary failure\" for MO-SMS or (111) \"Protocol error,unspecified\" for MT-SMS"));
1247   curr_offset++;
1248   
1249   if ((oct & 0x80)) {
1250     oct = tvb_get_guint8(tvb, curr_offset);
1251     proto_tree_add_uint_format(tree, hf_cause_value,
1252                                tvb, curr_offset, 1, oct,
1253                                "Diagnostic : %u", oct);
1254     curr_offset++;
1255   }
1256   return(curr_offset - offset);
1257 }
1258
1259
1260 /*--- Included file: packet-camel-fn.c ---*/
1261 #line 1 "packet-camel-fn.c"
1262
1263
1264 static int
1265 dissect_camel_AccessPointName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1266   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1267                                        NULL);
1268
1269   return offset;
1270 }
1271
1272
1273
1274 static int
1275 dissect_camel_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1276  tvbuff_t       *parameter_tvb;
1277  proto_tree *subtree;
1278
1279   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1280                                        &parameter_tvb);
1281
1282  if (!parameter_tvb)
1283         return offset;
1284  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_AChBillingChargingCharacteristics);
1285  dissect_camel_CAMEL_AChBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_AChBillingChargingCharacteristics);
1286
1287
1288   return offset;
1289 }
1290
1291
1292
1293 static int
1294 dissect_camel_CallSegmentID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1295   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1296                                                 NULL);
1297
1298   return offset;
1299 }
1300
1301
1302 static const value_string camel_AChChargingAddress_vals[] = {
1303   {   2, "legID" },
1304   {  50, "srfConnection" },
1305   { 0, NULL }
1306 };
1307
1308 static const ber_choice_t AChChargingAddress_choice[] = {
1309   {   2, &hf_camel_legID         , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_inap_LegID },
1310   {  50, &hf_camel_srfConnection , BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
1311   { 0, NULL, 0, 0, 0, NULL }
1312 };
1313
1314 static int
1315 dissect_camel_AChChargingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1316   offset = dissect_ber_choice(actx, tree, tvb, offset,
1317                                  AChChargingAddress_choice, hf_index, ett_camel_AChChargingAddress,
1318                                  NULL);
1319
1320   return offset;
1321 }
1322
1323
1324
1325 static int
1326 dissect_camel_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1327   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1328                                        NULL);
1329
1330   return offset;
1331 }
1332
1333
1334
1335 static int
1336 dissect_camel_AdditionalCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1337   offset = dissect_camel_Digits(implicit_tag, tvb, offset, actx, tree, hf_index);
1338
1339   return offset;
1340 }
1341
1342
1343
1344 static int
1345 dissect_camel_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1346   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1347                                        NULL);
1348
1349   return offset;
1350 }
1351
1352
1353
1354 static int
1355 dissect_camel_INTEGER_0_8191(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1357                                                 NULL);
1358
1359   return offset;
1360 }
1361
1362
1363 static const ber_sequence_t CAI_GSM0224_sequence[] = {
1364   { &hf_camel_e1            , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1365   { &hf_camel_e2            , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1366   { &hf_camel_e3            , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1367   { &hf_camel_e4            , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1368   { &hf_camel_e5            , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1369   { &hf_camel_e6            , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1370   { &hf_camel_e7            , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_8191 },
1371   { NULL, 0, 0, 0, NULL }
1372 };
1373
1374 static int
1375 dissect_camel_CAI_GSM0224(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1376   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1377                                    CAI_GSM0224_sequence, hf_index, ett_camel_CAI_GSM0224);
1378
1379   return offset;
1380 }
1381
1382
1383
1384 static int
1385 dissect_camel_INTEGER_1_86400(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1386   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1387                                                 NULL);
1388
1389   return offset;
1390 }
1391
1392
1393 static const ber_sequence_t AOCSubsequent_sequence[] = {
1394   { &hf_camel_cAI_GSM0224   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CAI_GSM0224 },
1395   { &hf_camel_aocSubsequent_tariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_86400 },
1396   { NULL, 0, 0, 0, NULL }
1397 };
1398
1399 static int
1400 dissect_camel_AOCSubsequent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1401   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1402                                    AOCSubsequent_sequence, hf_index, ett_camel_AOCSubsequent);
1403
1404   return offset;
1405 }
1406
1407
1408 static const ber_sequence_t AOCBeforeAnswer_sequence[] = {
1409   { &hf_camel_aOCInitial    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CAI_GSM0224 },
1410   { &hf_camel_aOCSubsequent , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AOCSubsequent },
1411   { NULL, 0, 0, 0, NULL }
1412 };
1413
1414 static int
1415 dissect_camel_AOCBeforeAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1416   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1417                                    AOCBeforeAnswer_sequence, hf_index, ett_camel_AOCBeforeAnswer);
1418
1419   return offset;
1420 }
1421
1422
1423 static const ber_sequence_t AOCGPRS_sequence[] = {
1424   { &hf_camel_aOCInitial    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CAI_GSM0224 },
1425   { &hf_camel_aOCSubsequent , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AOCSubsequent },
1426   { NULL, 0, 0, 0, NULL }
1427 };
1428
1429 static int
1430 dissect_camel_AOCGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1431   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1432                                    AOCGPRS_sequence, hf_index, ett_camel_AOCGPRS);
1433
1434   return offset;
1435 }
1436
1437
1438 static const value_string camel_AppendFreeFormatData_vals[] = {
1439   {   0, "overwrite" },
1440   {   1, "append" },
1441   { 0, NULL }
1442 };
1443
1444
1445 static int
1446 dissect_camel_AppendFreeFormatData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1447   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1448                                   NULL);
1449
1450   return offset;
1451 }
1452
1453
1454
1455 static int
1456 dissect_camel_ApplicationTimer(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1457   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1458                                                 NULL);
1459
1460   return offset;
1461 }
1462
1463
1464
1465 static int
1466 dissect_camel_AssistingSSPIPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1467   offset = dissect_camel_Digits(implicit_tag, tvb, offset, actx, tree, hf_index);
1468
1469   return offset;
1470 }
1471
1472
1473
1474 static int
1475 dissect_camel_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1476   offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
1477
1478   return offset;
1479 }
1480
1481
1482
1483 static int
1484 dissect_camel_INTEGER_1_1200(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1485   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1486                                                 NULL);
1487
1488   return offset;
1489 }
1490
1491
1492
1493 static int
1494 dissect_camel_INTEGER_1_3(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1495   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1496                                                 NULL);
1497
1498   return offset;
1499 }
1500
1501
1502
1503 static int
1504 dissect_camel_INTEGER_1_20(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1505   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1506                                                 NULL);
1507
1508   return offset;
1509 }
1510
1511
1512 static const ber_sequence_t Burst_sequence[] = {
1513   { &hf_camel_numberOfBursts, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_3 },
1514   { &hf_camel_burstInterval , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_1200 },
1515   { &hf_camel_numberOfTonesInBurst, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_3 },
1516   { &hf_camel_burstToneDuration, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_20 },
1517   { &hf_camel_toneInterval  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_20 },
1518   { NULL, 0, 0, 0, NULL }
1519 };
1520
1521 static int
1522 dissect_camel_Burst(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1523   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1524                                    Burst_sequence, hf_index, ett_camel_Burst);
1525
1526   return offset;
1527 }
1528
1529
1530 static const ber_sequence_t BurstList_sequence[] = {
1531   { &hf_camel_warningPeriod , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_1200 },
1532   { &hf_camel_bursts        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_Burst },
1533   { NULL, 0, 0, 0, NULL }
1534 };
1535
1536 static int
1537 dissect_camel_BurstList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1538   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1539                                    BurstList_sequence, hf_index, ett_camel_BurstList);
1540
1541   return offset;
1542 }
1543
1544
1545 static const value_string camel_AudibleIndicator_vals[] = {
1546   {   0, "tone" },
1547   {   1, "burstList" },
1548   { 0, NULL }
1549 };
1550
1551 static const ber_choice_t AudibleIndicator_choice[] = {
1552   {   0, &hf_camel_audibleIndicatorTone, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_camel_BOOLEAN },
1553   {   1, &hf_camel_burstList     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_BurstList },
1554   { 0, NULL, 0, 0, 0, NULL }
1555 };
1556
1557 static int
1558 dissect_camel_AudibleIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1559   offset = dissect_ber_choice(actx, tree, tvb, offset,
1560                                  AudibleIndicator_choice, hf_index, ett_camel_AudibleIndicator,
1561                                  NULL);
1562
1563   return offset;
1564 }
1565
1566
1567
1568 static int
1569 dissect_camel_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1570   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1571                                        NULL);
1572
1573   return offset;
1574 }
1575
1576
1577 static const ber_sequence_t BackwardServiceInteractionInd_sequence[] = {
1578   { &hf_camel_conferenceTreatmentIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
1579   { &hf_camel_callCompletionTreatmentIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
1580   { NULL, 0, 0, 0, NULL }
1581 };
1582
1583 static int
1584 dissect_camel_BackwardServiceInteractionInd(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1585   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1586                                    BackwardServiceInteractionInd_sequence, hf_index, ett_camel_BackwardServiceInteractionInd);
1587
1588   return offset;
1589 }
1590
1591
1592 static const ber_sequence_t GapOnService_sequence[] = {
1593   { &hf_camel_serviceKey    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_ServiceKey },
1594   { NULL, 0, 0, 0, NULL }
1595 };
1596
1597 static int
1598 dissect_camel_GapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1599   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1600                                    GapOnService_sequence, hf_index, ett_camel_GapOnService);
1601
1602   return offset;
1603 }
1604
1605
1606 static const ber_sequence_t T_calledAddressAndService_sequence[] = {
1607   { &hf_camel_calledAddressValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
1608   { &hf_camel_serviceKey    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_inap_ServiceKey },
1609   { NULL, 0, 0, 0, NULL }
1610 };
1611
1612 static int
1613 dissect_camel_T_calledAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1614   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1615                                    T_calledAddressAndService_sequence, hf_index, ett_camel_T_calledAddressAndService);
1616
1617   return offset;
1618 }
1619
1620
1621 static const ber_sequence_t T_callingAddressAndService_sequence[] = {
1622   { &hf_camel_callingAddressValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
1623   { &hf_camel_serviceKey    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_inap_ServiceKey },
1624   { NULL, 0, 0, 0, NULL }
1625 };
1626
1627 static int
1628 dissect_camel_T_callingAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1629   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1630                                    T_callingAddressAndService_sequence, hf_index, ett_camel_T_callingAddressAndService);
1631
1632   return offset;
1633 }
1634
1635
1636 static const value_string camel_BasicGapCriteria_vals[] = {
1637   {   0, "calledAddressValue" },
1638   {   2, "gapOnService" },
1639   {  29, "calledAddressAndService" },
1640   {  30, "callingAddressAndService" },
1641   { 0, NULL }
1642 };
1643
1644 static const ber_choice_t BasicGapCriteria_choice[] = {
1645   {   0, &hf_camel_calledAddressValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
1646   {   2, &hf_camel_gapOnService  , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_GapOnService },
1647   {  29, &hf_camel_calledAddressAndService, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_camel_T_calledAddressAndService },
1648   {  30, &hf_camel_callingAddressAndService, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_camel_T_callingAddressAndService },
1649   { 0, NULL, 0, 0, 0, NULL }
1650 };
1651
1652 static int
1653 dissect_camel_BasicGapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1654   offset = dissect_ber_choice(actx, tree, tvb, offset,
1655                                  BasicGapCriteria_choice, hf_index, ett_camel_BasicGapCriteria,
1656                                  NULL);
1657
1658   return offset;
1659 }
1660
1661
1662 static const value_string camel_EventTypeBCSM_vals[] = {
1663   {   2, "collectedInfo" },
1664   {   3, "analyzedInformation" },
1665   {   4, "routeSelectFailure" },
1666   {   5, "oCalledPartyBusy" },
1667   {   6, "oNoAnswer" },
1668   {   7, "oAnswer" },
1669   {   8, "oMidCall" },
1670   {   9, "oDisconnect" },
1671   {  10, "oAbandon" },
1672   {  12, "termAttemptAuthorized" },
1673   {  13, "tBusy" },
1674   {  14, "tNoAnswer" },
1675   {  15, "tAnswer" },
1676   {  16, "tMidCall" },
1677   {  17, "tDisconnect" },
1678   {  18, "tAbandon" },
1679   {  19, "oTermSeized" },
1680   {  27, "callAccepted" },
1681   {  50, "oChangeOfPosition" },
1682   {  51, "tChangeOfPosition" },
1683   {  52, "oServiceChange" },
1684   {  53, "tServiceChange" },
1685   { 0, NULL }
1686 };
1687
1688
1689 static int
1690 dissect_camel_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1691   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1692                                   NULL);
1693
1694   return offset;
1695 }
1696
1697
1698 static const value_string camel_MonitorMode_vals[] = {
1699   {   0, "interrupted" },
1700   {   1, "notifyAndContinue" },
1701   {   2, "transparent" },
1702   { 0, NULL }
1703 };
1704
1705
1706 static int
1707 dissect_camel_MonitorMode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1708   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1709                                   NULL);
1710
1711   return offset;
1712 }
1713
1714
1715
1716 static int
1717 dissect_camel_INTEGER_1_30(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1718   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1719                                                 NULL);
1720
1721   return offset;
1722 }
1723
1724
1725
1726 static int
1727 dissect_camel_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1728   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1729                                        NULL);
1730
1731   return offset;
1732 }
1733
1734
1735
1736 static int
1737 dissect_camel_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1738   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1739                                                 NULL);
1740
1741   return offset;
1742 }
1743
1744
1745 static const ber_sequence_t MidCallControlInfo_sequence[] = {
1746   { &hf_camel_minimumNumberOfDigits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_30 },
1747   { &hf_camel_maximumNumberOfDigits, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_30 },
1748   { &hf_camel_endOfReplyDigit, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1_2 },
1749   { &hf_camel_cancelDigit   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1_2 },
1750   { &hf_camel_startDigit    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1_2 },
1751   { &hf_camel_interDigitTimeout, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_127 },
1752   { NULL, 0, 0, 0, NULL }
1753 };
1754
1755 static int
1756 dissect_camel_MidCallControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1757   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1758                                    MidCallControlInfo_sequence, hf_index, ett_camel_MidCallControlInfo);
1759
1760   return offset;
1761 }
1762
1763
1764
1765 static int
1766 dissect_camel_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1767   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
1768
1769   return offset;
1770 }
1771
1772
1773 static const ber_sequence_t ChangeOfLocationAlt_sequence[] = {
1774   { NULL, 0, 0, 0, NULL }
1775 };
1776
1777 static int
1778 dissect_camel_ChangeOfLocationAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1779   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1780                                    ChangeOfLocationAlt_sequence, hf_index, ett_camel_ChangeOfLocationAlt);
1781
1782   return offset;
1783 }
1784
1785
1786 static const value_string camel_ChangeOfLocation_vals[] = {
1787   {   0, "cellGlobalId" },
1788   {   1, "serviceAreaId" },
1789   {   2, "locationAreaId" },
1790   {   3, "inter-SystemHandOver" },
1791   {   4, "inter-PLMNHandOver" },
1792   {   5, "inter-MSCHandOver" },
1793   {   6, "changeOfLocationAlt" },
1794   { 0, NULL }
1795 };
1796
1797 static const ber_choice_t ChangeOfLocation_choice[] = {
1798   {   0, &hf_camel_cellGlobalId  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
1799   {   1, &hf_camel_serviceAreaId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
1800   {   2, &hf_camel_locationAreaId, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
1801   {   3, &hf_camel_inter_SystemHandOver, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
1802   {   4, &hf_camel_inter_PLMNHandOver, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
1803   {   5, &hf_camel_inter_MSCHandOver, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
1804   {   6, &hf_camel_changeOfLocationAlt, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_camel_ChangeOfLocationAlt },
1805   { 0, NULL, 0, 0, 0, NULL }
1806 };
1807
1808 static int
1809 dissect_camel_ChangeOfLocation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1810   offset = dissect_ber_choice(actx, tree, tvb, offset,
1811                                  ChangeOfLocation_choice, hf_index, ett_camel_ChangeOfLocation,
1812                                  NULL);
1813
1814   return offset;
1815 }
1816
1817
1818 static const ber_sequence_t ChangeOfPositionControlInfo_sequence_of[1] = {
1819   { &hf_camel_ChangeOfPositionControlInfo_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ChangeOfLocation },
1820 };
1821
1822 static int
1823 dissect_camel_ChangeOfPositionControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1824   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
1825                                       ChangeOfPositionControlInfo_sequence_of, hf_index, ett_camel_ChangeOfPositionControlInfo);
1826
1827   return offset;
1828 }
1829
1830
1831
1832 static int
1833 dissect_camel_NumberOfDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1834   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
1835                                                 NULL);
1836
1837   return offset;
1838 }
1839
1840
1841 static const ber_sequence_t DpSpecificCriteriaAlt_sequence[] = {
1842   { &hf_camel_changeOfPositionControlInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_ChangeOfPositionControlInfo },
1843   { &hf_camel_numberOfDigits, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NumberOfDigits },
1844   { &hf_camel_interDigitTimeout, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_127 },
1845   { NULL, 0, 0, 0, NULL }
1846 };
1847
1848 static int
1849 dissect_camel_DpSpecificCriteriaAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1850   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1851                                    DpSpecificCriteriaAlt_sequence, hf_index, ett_camel_DpSpecificCriteriaAlt);
1852
1853   return offset;
1854 }
1855
1856
1857 static const value_string camel_DpSpecificCriteria_vals[] = {
1858   {   1, "applicationTimer" },
1859   {   2, "midCallControlInfo" },
1860   {   3, "dpSpecificCriteriaAlt" },
1861   { 0, NULL }
1862 };
1863
1864 static const ber_choice_t DpSpecificCriteria_choice[] = {
1865   {   1, &hf_camel_applicationTimer, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_ApplicationTimer },
1866   {   2, &hf_camel_midCallControlInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_MidCallControlInfo },
1867   {   3, &hf_camel_dpSpecificCriteriaAlt, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_DpSpecificCriteriaAlt },
1868   { 0, NULL, 0, 0, 0, NULL }
1869 };
1870
1871 static int
1872 dissect_camel_DpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1873   offset = dissect_ber_choice(actx, tree, tvb, offset,
1874                                  DpSpecificCriteria_choice, hf_index, ett_camel_DpSpecificCriteria,
1875                                  NULL);
1876
1877   return offset;
1878 }
1879
1880
1881 static const ber_sequence_t BCSMEvent_sequence[] = {
1882   { &hf_camel_eventTypeBCSM , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_EventTypeBCSM },
1883   { &hf_camel_monitorMode   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_MonitorMode },
1884   { &hf_camel_legID         , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_LegID },
1885   { &hf_camel_dpSpecificCriteria, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_DpSpecificCriteria },
1886   { &hf_camel_automaticRearm, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
1887   { NULL, 0, 0, 0, NULL }
1888 };
1889
1890 static int
1891 dissect_camel_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1892   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1893                                    BCSMEvent_sequence, hf_index, ett_camel_BCSMEvent);
1894
1895   return offset;
1896 }
1897
1898
1899
1900 static int
1901 dissect_camel_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1902
1903 tvbuff_t *parameter_tvb;
1904 guint8 Cause_value;
1905 proto_tree *subtree;
1906
1907   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1908                                        &parameter_tvb);
1909
1910
1911  if (!parameter_tvb)
1912         return offset;
1913  subtree = proto_item_add_subtree(actx->created_item, ett_camel_cause);
1914
1915  dissect_q931_cause_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), subtree, hf_camel_cause_indicator, &Cause_value, isup_parameter_type_value);
1916
1917   return offset;
1918 }
1919
1920
1921 static const ber_sequence_t BCSM_Failure_sequence[] = {
1922   { &hf_camel_legID         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_LegID },
1923   { &hf_camel_cause         , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
1924   { NULL, 0, 0, 0, NULL }
1925 };
1926
1927 static int
1928 dissect_camel_BCSM_Failure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1929   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
1930                                    BCSM_Failure_sequence, hf_index, ett_camel_BCSM_Failure);
1931
1932   return offset;
1933 }
1934
1935
1936
1937 static int
1938 dissect_camel_T_bearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1939  tvbuff_t       *parameter_tvb;
1940
1941   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1942                                        &parameter_tvb);
1943
1944
1945  if (!parameter_tvb)
1946         return offset;
1947
1948  dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree);
1949
1950   return offset;
1951 }
1952
1953
1954 static const value_string camel_BearerCapability_vals[] = {
1955   {   0, "bearerCap" },
1956   { 0, NULL }
1957 };
1958
1959 static const ber_choice_t BearerCapability_choice[] = {
1960   {   0, &hf_camel_bearerCap     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_bearerCap },
1961   { 0, NULL, 0, 0, 0, NULL }
1962 };
1963
1964 static int
1965 dissect_camel_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1966   offset = dissect_ber_choice(actx, tree, tvb, offset,
1967                                  BearerCapability_choice, hf_index, ett_camel_BearerCapability,
1968                                  NULL);
1969
1970   return offset;
1971 }
1972
1973
1974
1975 static int
1976 dissect_camel_CalledPartyBCDNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1977   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1978                                        NULL);
1979
1980   return offset;
1981 }
1982
1983
1984
1985 static int
1986 dissect_camel_CalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1987   tvbuff_t *parameter_tvb;
1988
1989   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
1990                                        &parameter_tvb);
1991
1992
1993  if (!parameter_tvb)
1994         return offset;
1995
1996 dissect_isup_called_party_number_parameter(parameter_tvb, tree, NULL);
1997
1998   return offset;
1999 }
2000
2001
2002
2003 static int
2004 dissect_camel_CallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2005   tvbuff_t *parameter_tvb;
2006
2007   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2008                                        &parameter_tvb);
2009
2010
2011  if (!parameter_tvb)
2012         return offset;
2013
2014 dissect_isup_calling_party_number_parameter(parameter_tvb, tree, NULL);
2015
2016   return offset;
2017 }
2018
2019
2020
2021 static int
2022 dissect_camel_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2023  tvbuff_t       *parameter_tvb; 
2024  proto_tree *subtree; 
2025
2026   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2027                                        &parameter_tvb);
2028
2029  if (!parameter_tvb)
2030         return offset;
2031  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_CallResult);
2032  dissect_camel_CAMEL_CallResult(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_CallResult);
2033
2034
2035   return offset;
2036 }
2037
2038
2039 static const ber_sequence_t CallSegmentFailure_sequence[] = {
2040   { &hf_camel_callSegmentID , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
2041   { &hf_camel_cause         , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
2042   { NULL, 0, 0, 0, NULL }
2043 };
2044
2045 static int
2046 dissect_camel_CallSegmentFailure(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2047   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2048                                    CallSegmentFailure_sequence, hf_index, ett_camel_CallSegmentFailure);
2049
2050   return offset;
2051 }
2052
2053
2054
2055 static int
2056 dissect_camel_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2057   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2058                                                 NULL);
2059
2060   return offset;
2061 }
2062
2063
2064 static const ber_sequence_t CallSegmentToCancel_sequence[] = {
2065   { &hf_camel_invokeID      , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_InvokeID },
2066   { &hf_camel_callSegmentID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
2067   { NULL, 0, 0, 0, NULL }
2068 };
2069
2070 static int
2071 dissect_camel_CallSegmentToCancel(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2072   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2073                                    CallSegmentToCancel_sequence, hf_index, ett_camel_CallSegmentToCancel);
2074
2075   return offset;
2076 }
2077
2078
2079
2080 static int
2081 dissect_camel_INTEGER_1_864000(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2082   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2083                                                 NULL);
2084
2085   return offset;
2086 }
2087
2088
2089
2090 static int
2091 dissect_camel_T_audibleIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2092   if (tvb_length_remaining(tvb,offset) < 2)
2093         offset = dissect_camel_BOOLEAN(TRUE, tvb, offset, actx , tree, hf_camel_audibleIndicatorTone);
2094   else
2095   offset = dissect_camel_AudibleIndicator(implicit_tag, tvb, offset, actx, tree, hf_index);
2096
2097
2098
2099   return offset;
2100 }
2101
2102
2103
2104 static int
2105 dissect_camel_T_local(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2106
2107   if (is_ExtensionField){
2108         hf_index = hf_camel_extension_code_local;
2109   }else if (camel_opcode_type == CAMEL_OPCODE_RETURN_ERROR){
2110         hf_index = hf_camel_error_code_local;  
2111   }             
2112     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2113                                                 &opcode);
2114
2115   if (is_ExtensionField == FALSE){
2116         if (camel_opcode_type == CAMEL_OPCODE_RETURN_ERROR){
2117           errorCode = opcode;   
2118           col_append_str(actx->pinfo->cinfo, COL_INFO, 
2119               val_to_str(errorCode, camel_err_code_string_vals, "Unknown CAMEL error (%u)"));
2120           col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
2121           col_set_fence(actx->pinfo->cinfo, COL_INFO);
2122         }else{
2123           col_append_str(actx->pinfo->cinfo, COL_INFO, 
2124              val_to_str(opcode, camel_opr_code_strings, "Unknown CAMEL (%u)"));
2125           col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
2126           col_set_fence(actx->pinfo->cinfo, COL_INFO);
2127         }
2128         gp_camelsrt_info->opcode=opcode;
2129   }
2130
2131   return offset;
2132 }
2133
2134
2135
2136 static int
2137 dissect_camel_T_global(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2138   offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &camel_obj_id);
2139
2140   return offset;
2141 }
2142
2143
2144 static const value_string camel_Code_vals[] = {
2145   {   0, "local" },
2146   {   1, "global" },
2147   { 0, NULL }
2148 };
2149
2150 static const ber_choice_t Code_choice[] = {
2151   {   0, &hf_camel_local         , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_camel_T_local },
2152   {   1, &hf_camel_global        , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_camel_T_global },
2153   { 0, NULL, 0, 0, 0, NULL }
2154 };
2155
2156 static int
2157 dissect_camel_Code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2158   offset = dissect_ber_choice(actx, tree, tvb, offset,
2159                                  Code_choice, hf_index, ett_camel_Code,
2160                                  NULL);
2161
2162   return offset;
2163 }
2164
2165
2166
2167 static int
2168 dissect_camel_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2169   /*XXX handle local form here */
2170   if(camel_obj_id){
2171     offset=call_ber_oid_callback(camel_obj_id, tvb, offset, actx->pinfo, tree);
2172   }
2173   is_ExtensionField = FALSE;
2174
2175
2176   return offset;
2177 }
2178
2179
2180 static const ber_sequence_t ExtensionField_sequence[] = {
2181   { &hf_camel_type          , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_Code },
2182   { &hf_camel_criticality   , BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_inap_CriticalityType },
2183   { &hf_camel_value         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_value },
2184   { NULL, 0, 0, 0, NULL }
2185 };
2186
2187 static int
2188 dissect_camel_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2189         camel_obj_id = NULL;
2190         is_ExtensionField =TRUE;
2191
2192   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2193                                    ExtensionField_sequence, hf_index, ett_camel_ExtensionField);
2194
2195   return offset;
2196 }
2197
2198
2199 static const ber_sequence_t Extensions_sequence_of[1] = {
2200   { &hf_camel_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_camel_ExtensionField },
2201 };
2202
2203 static int
2204 dissect_camel_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2205   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
2206                                       Extensions_sequence_of, hf_index, ett_camel_Extensions);
2207
2208   return offset;
2209 }
2210
2211
2212 static const ber_sequence_t T_timeDurationCharging_sequence[] = {
2213   { &hf_camel_maxCallPeriodDuration, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_864000 },
2214   { &hf_camel_releaseIfdurationExceeded, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
2215   { &hf_camel_timeDurationCharging_tariffSwitchInterval, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_86400 },
2216   { &hf_camel_audibleIndicator, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_T_audibleIndicator },
2217   { &hf_camel_extensions    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
2218   { NULL, 0, 0, 0, NULL }
2219 };
2220
2221 static int
2222 dissect_camel_T_timeDurationCharging(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2223   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2224                                    T_timeDurationCharging_sequence, hf_index, ett_camel_T_timeDurationCharging);
2225
2226   return offset;
2227 }
2228
2229
2230 static const value_string camel_CAMEL_AChBillingChargingCharacteristics_vals[] = {
2231   {   0, "timeDurationCharging" },
2232   { 0, NULL }
2233 };
2234
2235 static const ber_choice_t CAMEL_AChBillingChargingCharacteristics_choice[] = {
2236   {   0, &hf_camel_timeDurationCharging, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_timeDurationCharging },
2237   { 0, NULL, 0, 0, 0, NULL }
2238 };
2239
2240 static int
2241 dissect_camel_CAMEL_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2242   offset = dissect_ber_choice(actx, tree, tvb, offset,
2243                                  CAMEL_AChBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_AChBillingChargingCharacteristics,
2244                                  NULL);
2245
2246   return offset;
2247 }
2248
2249
2250
2251 static int
2252 dissect_camel_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2253   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2254                                        NULL);
2255
2256   return offset;
2257 }
2258
2259
2260 static const value_string camel_ReceivingSideID_vals[] = {
2261   {   1, "receivingSideID" },
2262   { 0, NULL }
2263 };
2264
2265 static const ber_choice_t ReceivingSideID_choice[] = {
2266   {   1, &hf_camel_receivingSideID, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_LegType },
2267   { 0, NULL, 0, 0, 0, NULL }
2268 };
2269
2270 static int
2271 dissect_camel_ReceivingSideID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2272   offset = dissect_ber_choice(actx, tree, tvb, offset,
2273                                  ReceivingSideID_choice, hf_index, ett_camel_ReceivingSideID,
2274                                  NULL);
2275
2276   return offset;
2277 }
2278
2279
2280
2281 static int
2282 dissect_camel_TimeIfNoTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2283   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2284                                                 NULL);
2285
2286   return offset;
2287 }
2288
2289
2290
2291 static int
2292 dissect_camel_INTEGER_0_864000(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2293   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2294                                                 NULL);
2295
2296   return offset;
2297 }
2298
2299
2300 static const ber_sequence_t TimeIfTariffSwitch_sequence[] = {
2301   { &hf_camel_timeSinceTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_864000 },
2302   { &hf_camel_timeIfTariffSwitch_tariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_864000 },
2303   { NULL, 0, 0, 0, NULL }
2304 };
2305
2306 static int
2307 dissect_camel_TimeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2308   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2309                                    TimeIfTariffSwitch_sequence, hf_index, ett_camel_TimeIfTariffSwitch);
2310
2311   return offset;
2312 }
2313
2314
2315 static const value_string camel_TimeInformation_vals[] = {
2316   {   0, "timeIfNoTariffSwitch" },
2317   {   1, "timeIfTariffSwitch" },
2318   { 0, NULL }
2319 };
2320
2321 static const ber_choice_t TimeInformation_choice[] = {
2322   {   0, &hf_camel_timeIfNoTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_TimeIfNoTariffSwitch },
2323   {   1, &hf_camel_timeIfTariffSwitch, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_TimeIfTariffSwitch },
2324   { 0, NULL, 0, 0, 0, NULL }
2325 };
2326
2327 static int
2328 dissect_camel_TimeInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2329   offset = dissect_ber_choice(actx, tree, tvb, offset,
2330                                  TimeInformation_choice, hf_index, ett_camel_TimeInformation,
2331                                  NULL);
2332
2333   return offset;
2334 }
2335
2336
2337 static const ber_sequence_t T_timeDurationChargingResult_sequence[] = {
2338   { &hf_camel_timeDurationChargingResultpartyToCharge, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ReceivingSideID },
2339   { &hf_camel_timeInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_TimeInformation },
2340   { &hf_camel_legActive     , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
2341   { &hf_camel_callLegReleasedAtTcpExpiry, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
2342   { &hf_camel_extensions    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
2343   { &hf_camel_aChChargingAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_AChChargingAddress },
2344   { NULL, 0, 0, 0, NULL }
2345 };
2346
2347 static int
2348 dissect_camel_T_timeDurationChargingResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2349   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2350                                    T_timeDurationChargingResult_sequence, hf_index, ett_camel_T_timeDurationChargingResult);
2351
2352   return offset;
2353 }
2354
2355
2356 static const value_string camel_CAMEL_CallResult_vals[] = {
2357   {   0, "timeDurationChargingResult" },
2358   { 0, NULL }
2359 };
2360
2361 static const ber_choice_t CAMEL_CallResult_choice[] = {
2362   {   0, &hf_camel_timeDurationChargingResult, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_timeDurationChargingResult },
2363   { 0, NULL, 0, 0, 0, NULL }
2364 };
2365
2366 static int
2367 dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2368   offset = dissect_ber_choice(actx, tree, tvb, offset,
2369                                  CAMEL_CallResult_choice, hf_index, ett_camel_CAMEL_CallResult,
2370                                  NULL);
2371
2372   return offset;
2373 }
2374
2375
2376
2377 static int
2378 dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2379   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2380                                        NULL);
2381
2382   return offset;
2383 }
2384
2385
2386 static const value_string camel_SendingSideID_vals[] = {
2387   {   0, "sendingSideID" },
2388   { 0, NULL }
2389 };
2390
2391 static const ber_choice_t SendingSideID_choice[] = {
2392   {   0, &hf_camel_sendingSideID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_LegType },
2393   { 0, NULL, 0, 0, 0, NULL }
2394 };
2395
2396 static int
2397 dissect_camel_SendingSideID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2398   offset = dissect_ber_choice(actx, tree, tvb, offset,
2399                                  SendingSideID_choice, hf_index, ett_camel_SendingSideID,
2400                                  NULL);
2401
2402   return offset;
2403 }
2404
2405
2406 static const ber_sequence_t T_fci_fCIBCCCAMELsequence1_sequence[] = {
2407   { &hf_camel_freeFormatData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength },
2408   { &hf_camel_fCIBCCCAMELsequence1partyToCharge, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_SendingSideID },
2409   { &hf_camel_appendFreeFormatData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AppendFreeFormatData },
2410   { NULL, 0, 0, 0, NULL }
2411 };
2412
2413 static int
2414 dissect_camel_T_fci_fCIBCCCAMELsequence1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2415   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2416                                    T_fci_fCIBCCCAMELsequence1_sequence, hf_index, ett_camel_T_fci_fCIBCCCAMELsequence1);
2417
2418   return offset;
2419 }
2420
2421
2422 static const value_string camel_CAMEL_FCIBillingChargingCharacteristics_vals[] = {
2423   {   0, "fCIBCCCAMELsequence1" },
2424   { 0, NULL }
2425 };
2426
2427 static const ber_choice_t CAMEL_FCIBillingChargingCharacteristics_choice[] = {
2428   {   0, &hf_camel_fci_fCIBCCCAMELsequence1, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_fci_fCIBCCCAMELsequence1 },
2429   { 0, NULL, 0, 0, 0, NULL }
2430 };
2431
2432 static int
2433 dissect_camel_CAMEL_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2434   offset = dissect_ber_choice(actx, tree, tvb, offset,
2435                                  CAMEL_FCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_FCIBillingChargingCharacteristics,
2436                                  NULL);
2437
2438   return offset;
2439 }
2440
2441
2442
2443 static int
2444 dissect_camel_PDPID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2445   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2446                                        NULL);
2447
2448   return offset;
2449 }
2450
2451
2452 static const ber_sequence_t T_fciGPRS_fCIBCCCAMELsequence1_sequence[] = {
2453   { &hf_camel_freeFormatData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength },
2454   { &hf_camel_pDPID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
2455   { &hf_camel_appendFreeFormatData, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AppendFreeFormatData },
2456   { NULL, 0, 0, 0, NULL }
2457 };
2458
2459 static int
2460 dissect_camel_T_fciGPRS_fCIBCCCAMELsequence1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2461   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2462                                    T_fciGPRS_fCIBCCCAMELsequence1_sequence, hf_index, ett_camel_T_fciGPRS_fCIBCCCAMELsequence1);
2463
2464   return offset;
2465 }
2466
2467
2468 static const ber_sequence_t CAMEL_FCIGPRSBillingChargingCharacteristics_sequence[] = {
2469   { &hf_camel_fciGPRS_fCIBCCCAMELsequence1, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_fciGPRS_fCIBCCCAMELsequence1 },
2470   { NULL, 0, 0, 0, NULL }
2471 };
2472
2473 static int
2474 dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2475   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2476                                    CAMEL_FCIGPRSBillingChargingCharacteristics_sequence, hf_index, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics);
2477
2478   return offset;
2479 }
2480
2481
2482 static const ber_sequence_t T_fciSMS_fCIBCCCAMELsequence1_sequence[] = {
2483   { &hf_camel_freeFormatData, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength },
2484   { &hf_camel_appendFreeFormatData, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AppendFreeFormatData },
2485   { NULL, 0, 0, 0, NULL }
2486 };
2487
2488 static int
2489 dissect_camel_T_fciSMS_fCIBCCCAMELsequence1(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2490   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2491                                    T_fciSMS_fCIBCCCAMELsequence1_sequence, hf_index, ett_camel_T_fciSMS_fCIBCCCAMELsequence1);
2492
2493   return offset;
2494 }
2495
2496
2497 static const value_string camel_CAMEL_FCISMSBillingChargingCharacteristics_vals[] = {
2498   {   0, "fCIBCCCAMELsequence1" },
2499   { 0, NULL }
2500 };
2501
2502 static const ber_choice_t CAMEL_FCISMSBillingChargingCharacteristics_choice[] = {
2503   {   0, &hf_camel_fciSMS_fCIBCCCAMELsequence1, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_fciSMS_fCIBCCCAMELsequence1 },
2504   { 0, NULL, 0, 0, 0, NULL }
2505 };
2506
2507 static int
2508 dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2509   offset = dissect_ber_choice(actx, tree, tvb, offset,
2510                                  CAMEL_FCISMSBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics,
2511                                  NULL);
2512
2513   return offset;
2514 }
2515
2516
2517 static const ber_sequence_t CAMEL_SCIBillingChargingCharacteristicsAlt_sequence[] = {
2518   { NULL, 0, 0, 0, NULL }
2519 };
2520
2521 static int
2522 dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2523   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2524                                    CAMEL_SCIBillingChargingCharacteristicsAlt_sequence, hf_index, ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt);
2525
2526   return offset;
2527 }
2528
2529
2530 static const value_string camel_CAMEL_SCIBillingChargingCharacteristics_vals[] = {
2531   {   0, "aOCBeforeAnswer" },
2532   {   1, "aOCAfterAnswer" },
2533   {   2, "aOC-extension" },
2534   { 0, NULL }
2535 };
2536
2537 static const ber_choice_t CAMEL_SCIBillingChargingCharacteristics_choice[] = {
2538   {   0, &hf_camel_aOCBeforeAnswer, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_AOCBeforeAnswer },
2539   {   1, &hf_camel_aOCAfterAnswer, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_AOCSubsequent },
2540   {   2, &hf_camel_aOC_extension , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt },
2541   { 0, NULL, 0, 0, 0, NULL }
2542 };
2543
2544 static int
2545 dissect_camel_CAMEL_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2546   offset = dissect_ber_choice(actx, tree, tvb, offset,
2547                                  CAMEL_SCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_SCIBillingChargingCharacteristics,
2548                                  NULL);
2549
2550   return offset;
2551 }
2552
2553
2554 static const ber_sequence_t CAMEL_SCIGPRSBillingChargingCharacteristics_sequence[] = {
2555   { &hf_camel_aOCGPRS       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_AOCGPRS },
2556   { &hf_camel_pDPID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
2557   { NULL, 0, 0, 0, NULL }
2558 };
2559
2560 static int
2561 dissect_camel_CAMEL_SCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2562   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2563                                    CAMEL_SCIGPRSBillingChargingCharacteristics_sequence, hf_index, ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics);
2564
2565   return offset;
2566 }
2567
2568
2569
2570 static int
2571 dissect_camel_Carrier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2572   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2573                                        NULL);
2574
2575   return offset;
2576 }
2577
2578
2579 static const value_string camel_CGEncountered_vals[] = {
2580   {   0, "noCGencountered" },
2581   {   1, "manualCGencountered" },
2582   {   2, "scpOverload" },
2583   { 0, NULL }
2584 };
2585
2586
2587 static int
2588 dissect_camel_CGEncountered(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2589   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2590                                   NULL);
2591
2592   return offset;
2593 }
2594
2595
2596
2597 static int
2598 dissect_camel_ChargeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2599   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2600                                        NULL);
2601
2602   return offset;
2603 }
2604
2605
2606
2607 static int
2608 dissect_camel_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2609   tvbuff_t *parameter_tvb;
2610
2611   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2612                                        &parameter_tvb);
2613
2614
2615  if (!parameter_tvb)
2616         return offset;
2617
2618 dissect_isup_location_number_parameter(parameter_tvb, tree, NULL);
2619
2620   return offset;
2621 }
2622
2623
2624
2625 static int
2626 dissect_camel_ChargeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2627   offset = dissect_camel_LocationNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
2628
2629   return offset;
2630 }
2631
2632
2633
2634 static int
2635 dissect_camel_INTEGER_1_4294967295(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2636   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2637                                                 NULL);
2638
2639   return offset;
2640 }
2641
2642
2643 static const value_string camel_ChargingCharacteristics_vals[] = {
2644   {   0, "maxTransferredVolume" },
2645   {   1, "maxElapsedTime" },
2646   { 0, NULL }
2647 };
2648
2649 static const ber_choice_t ChargingCharacteristics_choice[] = {
2650   {   0, &hf_camel_maxTransferredVolume, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_4294967295 },
2651   {   1, &hf_camel_maxElapsedTime, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_86400 },
2652   { 0, NULL, 0, 0, 0, NULL }
2653 };
2654
2655 static int
2656 dissect_camel_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2657   offset = dissect_ber_choice(actx, tree, tvb, offset,
2658                                  ChargingCharacteristics_choice, hf_index, ett_camel_ChargingCharacteristics,
2659                                  NULL);
2660
2661   return offset;
2662 }
2663
2664
2665
2666 static int
2667 dissect_camel_INTEGER_0_4294967295(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2668   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2669                                                 NULL);
2670
2671   return offset;
2672 }
2673
2674
2675 static const ber_sequence_t T_volumeIfTariffSwitch_sequence[] = {
2676   { &hf_camel_volumeSinceLastTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_4294967295 },
2677   { &hf_camel_volumeTariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_4294967295 },
2678   { NULL, 0, 0, 0, NULL }
2679 };
2680
2681 static int
2682 dissect_camel_T_volumeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2683   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2684                                    T_volumeIfTariffSwitch_sequence, hf_index, ett_camel_T_volumeIfTariffSwitch);
2685
2686   return offset;
2687 }
2688
2689
2690 static const value_string camel_TransferredVolume_vals[] = {
2691   {   0, "volumeIfNoTariffSwitch" },
2692   {   1, "volumeIfTariffSwitch" },
2693   { 0, NULL }
2694 };
2695
2696 static const ber_choice_t TransferredVolume_choice[] = {
2697   {   0, &hf_camel_volumeIfNoTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_4294967295 },
2698   {   1, &hf_camel_volumeIfTariffSwitch, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_volumeIfTariffSwitch },
2699   { 0, NULL, 0, 0, 0, NULL }
2700 };
2701
2702 static int
2703 dissect_camel_TransferredVolume(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2704   offset = dissect_ber_choice(actx, tree, tvb, offset,
2705                                  TransferredVolume_choice, hf_index, ett_camel_TransferredVolume,
2706                                  NULL);
2707
2708   return offset;
2709 }
2710
2711
2712
2713 static int
2714 dissect_camel_INTEGER_0_86400(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2715   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2716                                                 NULL);
2717
2718   return offset;
2719 }
2720
2721
2722 static const ber_sequence_t T_timeGPRSIfTariffSwitch_sequence[] = {
2723   { &hf_camel_timeGPRSSinceLastTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_86400 },
2724   { &hf_camel_timeGPRSTariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_86400 },
2725   { NULL, 0, 0, 0, NULL }
2726 };
2727
2728 static int
2729 dissect_camel_T_timeGPRSIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2730   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2731                                    T_timeGPRSIfTariffSwitch_sequence, hf_index, ett_camel_T_timeGPRSIfTariffSwitch);
2732
2733   return offset;
2734 }
2735
2736
2737 static const value_string camel_ElapsedTime_vals[] = {
2738   {   0, "timeGPRSIfNoTariffSwitch" },
2739   {   1, "timeGPRSIfTariffSwitch" },
2740   { 0, NULL }
2741 };
2742
2743 static const ber_choice_t ElapsedTime_choice[] = {
2744   {   0, &hf_camel_timeGPRSIfNoTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_86400 },
2745   {   1, &hf_camel_timeGPRSIfTariffSwitch, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_timeGPRSIfTariffSwitch },
2746   { 0, NULL, 0, 0, 0, NULL }
2747 };
2748
2749 static int
2750 dissect_camel_ElapsedTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2751   offset = dissect_ber_choice(actx, tree, tvb, offset,
2752                                  ElapsedTime_choice, hf_index, ett_camel_ElapsedTime,
2753                                  NULL);
2754
2755   return offset;
2756 }
2757
2758
2759 static const value_string camel_ChargingResult_vals[] = {
2760   {   0, "transferredVolume" },
2761   {   1, "elapsedTime" },
2762   { 0, NULL }
2763 };
2764
2765 static const ber_choice_t ChargingResult_choice[] = {
2766   {   0, &hf_camel_transferredVolume, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_TransferredVolume },
2767   {   1, &hf_camel_elapsedTime   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_ElapsedTime },
2768   { 0, NULL, 0, 0, 0, NULL }
2769 };
2770
2771 static int
2772 dissect_camel_ChargingResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2773   offset = dissect_ber_choice(actx, tree, tvb, offset,
2774                                  ChargingResult_choice, hf_index, ett_camel_ChargingResult,
2775                                  NULL);
2776
2777   return offset;
2778 }
2779
2780
2781
2782 static int
2783 dissect_camel_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2784   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2785                                                 NULL);
2786
2787   return offset;
2788 }
2789
2790
2791 static const ber_sequence_t T_rO_VolumeIfTariffSwitch_sequence[] = {
2792   { &hf_camel_rO_VolumeSinceLastTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
2793   { &hf_camel_rO_VolumeTariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
2794   { NULL, 0, 0, 0, NULL }
2795 };
2796
2797 static int
2798 dissect_camel_T_rO_VolumeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2799   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2800                                    T_rO_VolumeIfTariffSwitch_sequence, hf_index, ett_camel_T_rO_VolumeIfTariffSwitch);
2801
2802   return offset;
2803 }
2804
2805
2806 static const value_string camel_TransferredVolumeRollOver_vals[] = {
2807   {   0, "rO-VolumeIfNoTariffSwitch" },
2808   {   1, "rO-VolumeIfTariffSwitch" },
2809   { 0, NULL }
2810 };
2811
2812 static const ber_choice_t TransferredVolumeRollOver_choice[] = {
2813   {   0, &hf_camel_rO_VolumeIfNoTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
2814   {   1, &hf_camel_rO_VolumeIfTariffSwitch, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_rO_VolumeIfTariffSwitch },
2815   { 0, NULL, 0, 0, 0, NULL }
2816 };
2817
2818 static int
2819 dissect_camel_TransferredVolumeRollOver(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2820   offset = dissect_ber_choice(actx, tree, tvb, offset,
2821                                  TransferredVolumeRollOver_choice, hf_index, ett_camel_TransferredVolumeRollOver,
2822                                  NULL);
2823
2824   return offset;
2825 }
2826
2827
2828 static const ber_sequence_t T_rO_TimeGPRSIfTariffSwitch_sequence[] = {
2829   { &hf_camel_rO_TimeGPRSSinceLastTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
2830   { &hf_camel_rO_TimeGPRSTariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
2831   { NULL, 0, 0, 0, NULL }
2832 };
2833
2834 static int
2835 dissect_camel_T_rO_TimeGPRSIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2836   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2837                                    T_rO_TimeGPRSIfTariffSwitch_sequence, hf_index, ett_camel_T_rO_TimeGPRSIfTariffSwitch);
2838
2839   return offset;
2840 }
2841
2842
2843 static const value_string camel_ElapsedTimeRollOver_vals[] = {
2844   {   0, "rO-TimeGPRSIfNoTariffSwitch" },
2845   {   1, "rO-TimeGPRSIfTariffSwitch" },
2846   { 0, NULL }
2847 };
2848
2849 static const ber_choice_t ElapsedTimeRollOver_choice[] = {
2850   {   0, &hf_camel_rO_TimeGPRSIfNoTariffSwitch, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
2851   {   1, &hf_camel_rO_TimeGPRSIfTariffSwitch, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_rO_TimeGPRSIfTariffSwitch },
2852   { 0, NULL, 0, 0, 0, NULL }
2853 };
2854
2855 static int
2856 dissect_camel_ElapsedTimeRollOver(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2857   offset = dissect_ber_choice(actx, tree, tvb, offset,
2858                                  ElapsedTimeRollOver_choice, hf_index, ett_camel_ElapsedTimeRollOver,
2859                                  NULL);
2860
2861   return offset;
2862 }
2863
2864
2865 static const value_string camel_ChargingRollOver_vals[] = {
2866   {   0, "transferredVolumeRollOver" },
2867   {   1, "elapsedTimeRollOver" },
2868   { 0, NULL }
2869 };
2870
2871 static const ber_choice_t ChargingRollOver_choice[] = {
2872   {   0, &hf_camel_transferredVolumeRollOver, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_TransferredVolumeRollOver },
2873   {   1, &hf_camel_elapsedTimeRollOver, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_ElapsedTimeRollOver },
2874   { 0, NULL, 0, 0, 0, NULL }
2875 };
2876
2877 static int
2878 dissect_camel_ChargingRollOver(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2879   offset = dissect_ber_choice(actx, tree, tvb, offset,
2880                                  ChargingRollOver_choice, hf_index, ett_camel_ChargingRollOver,
2881                                  NULL);
2882
2883   return offset;
2884 }
2885
2886
2887 static const value_string camel_ErrorTreatment_vals[] = {
2888   {   0, "stdErrorAndInfo" },
2889   {   1, "help" },
2890   {   2, "repeatPrompt" },
2891   { 0, NULL }
2892 };
2893
2894
2895 static int
2896 dissect_camel_ErrorTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2897   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2898                                   NULL);
2899
2900   return offset;
2901 }
2902
2903
2904 static const ber_sequence_t CollectedDigits_sequence[] = {
2905   { &hf_camel_minimumNbOfDigits, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_30 },
2906   { &hf_camel_maximumNbOfDigits, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_30 },
2907   { &hf_camel_endOfReplyDigit, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1_2 },
2908   { &hf_camel_cancelDigit   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1_2 },
2909   { &hf_camel_startDigit    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1_2 },
2910   { &hf_camel_firstDigitTimeOut, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_127 },
2911   { &hf_camel_interDigitTimeOut, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_127 },
2912   { &hf_camel_errorTreatment, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ErrorTreatment },
2913   { &hf_camel_interruptableAnnInd, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
2914   { &hf_camel_voiceInformation, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
2915   { &hf_camel_voiceBack     , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
2916   { NULL, 0, 0, 0, NULL }
2917 };
2918
2919 static int
2920 dissect_camel_CollectedDigits(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2921   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
2922                                    CollectedDigits_sequence, hf_index, ett_camel_CollectedDigits);
2923
2924   return offset;
2925 }
2926
2927
2928 static const value_string camel_CollectedInfo_vals[] = {
2929   {   0, "collectedDigits" },
2930   { 0, NULL }
2931 };
2932
2933 static const ber_choice_t CollectedInfo_choice[] = {
2934   {   0, &hf_camel_collectedDigits, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CollectedDigits },
2935   { 0, NULL, 0, 0, 0, NULL }
2936 };
2937
2938 static int
2939 dissect_camel_CollectedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2940   offset = dissect_ber_choice(actx, tree, tvb, offset,
2941                                  CollectedInfo_choice, hf_index, ett_camel_CollectedInfo,
2942                                  NULL);
2943
2944   return offset;
2945 }
2946
2947
2948 static const value_string camel_ConnectedNumberTreatmentInd_vals[] = {
2949   {   0, "noINImpact" },
2950   {   1, "presentationRestricted" },
2951   {   2, "presentCalledINNumber" },
2952   {   3, "presentCallINNumberRestricted" },
2953   { 0, NULL }
2954 };
2955
2956
2957 static int
2958 dissect_camel_ConnectedNumberTreatmentInd(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2959   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2960                                   NULL);
2961
2962   return offset;
2963 }
2964
2965
2966 static const value_string camel_ControlType_vals[] = {
2967   {   0, "sCPOverloaded" },
2968   {   1, "manuallyInitiated" },
2969   { 0, NULL }
2970 };
2971
2972
2973 static int
2974 dissect_camel_ControlType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2975   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
2976                                   NULL);
2977
2978   return offset;
2979 }
2980
2981
2982
2983 static int
2984 dissect_camel_ScfID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2985   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
2986                                        NULL);
2987
2988   return offset;
2989 }
2990
2991
2992 static const ber_sequence_t CompoundCriteria_sequence[] = {
2993   { &hf_camel_basicGapCriteria, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_BasicGapCriteria },
2994   { &hf_camel_scfID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ScfID },
2995   { NULL, 0, 0, 0, NULL }
2996 };
2997
2998 static int
2999 dissect_camel_CompoundCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3000   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3001                                    CompoundCriteria_sequence, hf_index, ett_camel_CompoundCriteria);
3002
3003   return offset;
3004 }
3005
3006
3007
3008 static int
3009 dissect_camel_CorrelationID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3010   offset = dissect_camel_Digits(implicit_tag, tvb, offset, actx, tree, hf_index);
3011
3012   return offset;
3013 }
3014
3015
3016
3017 static int
3018 dissect_camel_DateAndTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3019
3020
3021 /* 
3022 * date_option = 1 european dd:mm:yyyy
3023 * date_option = 2 american mm:dd:yyyy
3024 */
3025
3026 /*
3027 * Output should be HH:MM:SS;dd/mm/yyyy
3028 * if european is selected, and HH:MM:SS;mm/dd/yyyy
3029 * otherwise.
3030 */
3031
3032   guint8 digit_pair;
3033   guint8 i = 0, curr_offset; 
3034   char camel_time[CAMEL_DATE_AND_TIME_LEN];
3035   char c[CAMEL_DATE_AND_TIME_LEN]; /*temporary container*/
3036
3037   /* 2 digits per octet, 7 octets total + 5 delimiters */
3038     
3039   for (curr_offset = 0; curr_offset < 7 ; curr_offset++)    
3040   /*Loop to extract date*/
3041   {
3042       digit_pair = tvb_get_guint8(tvb, curr_offset);
3043       
3044       proto_tree_add_uint(tree,
3045                           hf_digit,
3046                           tvb,
3047                           curr_offset,
3048                           1,
3049                           digit_pair & 0x0F);
3050
3051       proto_tree_add_uint(tree,
3052                           hf_digit,
3053                           tvb,
3054                           curr_offset,
3055                           1,
3056                           digit_pair >>4);
3057                           
3058       
3059       c[i] = camel_number_to_char( digit_pair & 0x0F);
3060       i++;
3061       c[i] = camel_number_to_char( digit_pair >>4);
3062       i++;
3063   }
3064   
3065   /* Pretty print date */
3066   /* XXX - Should we use sprintf here instead of assembling the string by
3067    * hand? */
3068   
3069   camel_time[0] = c[8];
3070   camel_time[1] = c[9];
3071   camel_time[2] = ':';
3072   camel_time[3] = c[10];
3073   camel_time[4] = c[11];
3074   camel_time[5] = ':';
3075   camel_time[6] = c[12];
3076   camel_time[7] = c[13];
3077   camel_time[8] = ';';
3078   if ( EUROPEAN_DATE == date_format) /*european*/
3079   {
3080     camel_time[9] = c[6]; /*day*/
3081     camel_time[10] = c[7];
3082     camel_time[11] = '/'; 
3083     camel_time[12] = c[4]; /*month*/
3084     camel_time[13] = c[5];
3085   }
3086   else /*american*/
3087   {
3088     camel_time[9] = c[4]; /*month*/
3089     camel_time[10] = c[5];
3090     camel_time[11] = '/'; 
3091     camel_time[12] = c[6]; /*day*/
3092     camel_time[13] = c[7];
3093   }
3094   camel_time[14] = '/';
3095   camel_time[15] = c[0];
3096   camel_time[16] = c[1];
3097   camel_time[17] = c[2];
3098   camel_time[18] = c[3];
3099
3100   camel_time[CAMEL_DATE_AND_TIME_LEN - 1] = '\0';
3101  
3102 /*start = 0, length = 7*/
3103  
3104   proto_tree_add_string(tree, 
3105                       hf_index, 
3106                       tvb,
3107                       0, 
3108                       7, 
3109                       camel_time);
3110
3111   return 7; /* 7  octets eaten*/
3112
3113   return offset;
3114 }
3115
3116
3117 static const ber_sequence_t DestinationRoutingAddress_sequence_of[1] = {
3118   { &hf_camel_DestinationRoutingAddress_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_camel_CalledPartyNumber },
3119 };
3120
3121 static int
3122 dissect_camel_DestinationRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3123   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3124                                       DestinationRoutingAddress_sequence_of, hf_index, ett_camel_DestinationRoutingAddress);
3125
3126   return offset;
3127 }
3128
3129
3130 static const value_string camel_InitiatorOfServiceChange_vals[] = {
3131   {   0, "a-side" },
3132   {   1, "b-side" },
3133   { 0, NULL }
3134 };
3135
3136
3137 static int
3138 dissect_camel_InitiatorOfServiceChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3139   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3140                                   NULL);
3141
3142   return offset;
3143 }
3144
3145
3146 static const value_string camel_NatureOfServiceChange_vals[] = {
3147   {   0, "userInitiated" },
3148   {   1, "networkInitiated" },
3149   { 0, NULL }
3150 };
3151
3152
3153 static int
3154 dissect_camel_NatureOfServiceChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3155   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3156                                   NULL);
3157
3158   return offset;
3159 }
3160
3161
3162 static const ber_sequence_t T_oServiceChangeSpecificInfo_sequence[] = {
3163   { &hf_camel_ext_basicServiceCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
3164   { &hf_camel_initiatorOfServiceChange, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_InitiatorOfServiceChange },
3165   { &hf_camel_natureOfServiceChange, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NatureOfServiceChange },
3166   { NULL, 0, 0, 0, NULL }
3167 };
3168
3169 static int
3170 dissect_camel_T_oServiceChangeSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3171   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3172                                    T_oServiceChangeSpecificInfo_sequence, hf_index, ett_camel_T_oServiceChangeSpecificInfo);
3173
3174   return offset;
3175 }
3176
3177
3178 static const ber_sequence_t T_tServiceChangeSpecificInfo_sequence[] = {
3179   { &hf_camel_ext_basicServiceCode, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
3180   { &hf_camel_initiatorOfServiceChange, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_InitiatorOfServiceChange },
3181   { &hf_camel_natureOfServiceChange, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NatureOfServiceChange },
3182   { NULL, 0, 0, 0, NULL }
3183 };
3184
3185 static int
3186 dissect_camel_T_tServiceChangeSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3187   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3188                                    T_tServiceChangeSpecificInfo_sequence, hf_index, ett_camel_T_tServiceChangeSpecificInfo);
3189
3190   return offset;
3191 }
3192
3193
3194 static const ber_sequence_t T_collectedInfoSpecificInfo_sequence[] = {
3195   { &hf_camel_calledPartyNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
3196   { NULL, 0, 0, 0, NULL }
3197 };
3198
3199 static int
3200 dissect_camel_T_collectedInfoSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3201   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3202                                    T_collectedInfoSpecificInfo_sequence, hf_index, ett_camel_T_collectedInfoSpecificInfo);
3203
3204   return offset;
3205 }
3206
3207
3208 static const ber_sequence_t DpSpecificInfoAlt_sequence[] = {
3209   { &hf_camel_oServiceChangeSpecificInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_oServiceChangeSpecificInfo },
3210   { &hf_camel_tServiceChangeSpecificInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_tServiceChangeSpecificInfo },
3211   { &hf_camel_collectedInfoSpecificInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_T_collectedInfoSpecificInfo },
3212   { NULL, 0, 0, 0, NULL }
3213 };
3214
3215 static int
3216 dissect_camel_DpSpecificInfoAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3217   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3218                                    DpSpecificInfoAlt_sequence, hf_index, ett_camel_DpSpecificInfoAlt);
3219
3220   return offset;
3221 }
3222
3223
3224
3225 static int
3226 dissect_camel_T_pDPTypeOrganization(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3227
3228  tvbuff_t       *parameter_tvb;
3229
3230   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3231                                        &parameter_tvb);
3232
3233
3234  if (!parameter_tvb)
3235         return offset;
3236  PDPTypeOrganization  = (tvb_get_guint8(parameter_tvb,0) &0x0f);        
3237
3238   return offset;
3239 }
3240
3241
3242
3243 static int
3244 dissect_camel_T_pDPTypeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3245
3246  tvbuff_t       *parameter_tvb;
3247  proto_tree *subtree;
3248
3249   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3250                                        &parameter_tvb);
3251
3252
3253  if (!parameter_tvb)
3254         return offset;
3255  PDPTypeNumber = tvb_get_guint8(parameter_tvb,0);       
3256  subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
3257  switch (PDPTypeOrganization){
3258  case 0: /* ETSI */
3259         proto_tree_add_item(tree, hf_camel_PDPTypeNumber_etsi, parameter_tvb, 0, 1, FALSE);
3260         break;
3261  case 1: /* IETF */
3262         proto_tree_add_item(tree, hf_camel_PDPTypeNumber_ietf, parameter_tvb, 0, 1, FALSE);
3263         break;
3264  default:
3265         break;
3266  }
3267
3268   return offset;
3269 }
3270
3271
3272
3273 static int
3274 dissect_camel_T_pDPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3275
3276  tvbuff_t       *parameter_tvb;
3277  proto_tree *subtree;
3278
3279   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3280                                        &parameter_tvb);
3281
3282
3283  if (!parameter_tvb)
3284         return offset;
3285  subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
3286  switch (PDPTypeOrganization){
3287  case 0: /* ETSI */
3288         break;
3289  case 1: /* IETF */
3290         switch(PDPTypeNumber){
3291         case 0x21: /* IPv4 */
3292                 proto_tree_add_item(tree, hf_camel_PDPAddress_IPv4, parameter_tvb, 0, tvb_length(parameter_tvb), FALSE);
3293                 break;
3294         case 0x57: /* IPv6 */
3295                 proto_tree_add_item(tree, hf_camel_PDPAddress_IPv6, parameter_tvb, 0, tvb_length(parameter_tvb), FALSE);
3296                 break;
3297         default:
3298                 break;
3299         }
3300  default:
3301         break;
3302
3303  }
3304
3305   return offset;
3306 }
3307
3308
3309 static const ber_sequence_t EndUserAddress_sequence[] = {
3310   { &hf_camel_pDPTypeOrganization, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_pDPTypeOrganization },
3311   { &hf_camel_pDPTypeNumber , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_pDPTypeNumber },
3312   { &hf_camel_pDPAddress    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_T_pDPAddress },
3313   { NULL, 0, 0, 0, NULL }
3314 };
3315
3316 static int
3317 dissect_camel_EndUserAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3318   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3319                                    EndUserAddress_sequence, hf_index, ett_camel_EndUserAddress);
3320
3321   return offset;
3322 }
3323
3324
3325 static const ber_sequence_t T_routeSelectFailureSpecificInfo_sequence[] = {
3326   { &hf_camel_routeSelectfailureCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
3327   { NULL, 0, 0, 0, NULL }
3328 };
3329
3330 static int
3331 dissect_camel_T_routeSelectFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3332   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3333                                    T_routeSelectFailureSpecificInfo_sequence, hf_index, ett_camel_T_routeSelectFailureSpecificInfo);
3334
3335   return offset;
3336 }
3337
3338
3339 static const ber_sequence_t T_oCalledPartyBusySpecificInfo_sequence[] = {
3340   { &hf_camel_busyCause     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
3341   { NULL, 0, 0, 0, NULL }
3342 };
3343
3344 static int
3345 dissect_camel_T_oCalledPartyBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3346   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3347                                    T_oCalledPartyBusySpecificInfo_sequence, hf_index, ett_camel_T_oCalledPartyBusySpecificInfo);
3348
3349   return offset;
3350 }
3351
3352
3353 static const ber_sequence_t T_oNoAnswerSpecificInfo_sequence[] = {
3354   { NULL, 0, 0, 0, NULL }
3355 };
3356
3357 static int
3358 dissect_camel_T_oNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3359   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3360                                    T_oNoAnswerSpecificInfo_sequence, hf_index, ett_camel_T_oNoAnswerSpecificInfo);
3361
3362   return offset;
3363 }
3364
3365
3366 static const ber_sequence_t T_oAnswerSpecificInfo_sequence[] = {
3367   { &hf_camel_destinationAddress, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
3368   { &hf_camel_or_Call       , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3369   { &hf_camel_forwardedCall , BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3370   { &hf_camel_chargeIndicator, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeIndicator },
3371   { &hf_camel_ext_basicServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
3372   { &hf_camel_ext_basicServiceCode2, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
3373   { NULL, 0, 0, 0, NULL }
3374 };
3375
3376 static int
3377 dissect_camel_T_oAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3378   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3379                                    T_oAnswerSpecificInfo_sequence, hf_index, ett_camel_T_oAnswerSpecificInfo);
3380
3381   return offset;
3382 }
3383
3384
3385 static const value_string camel_T_omidCallEvents_vals[] = {
3386   {   3, "dTMFDigitsCompleted" },
3387   {   4, "dTMFDigitsTimeOut" },
3388   { 0, NULL }
3389 };
3390
3391 static const ber_choice_t T_omidCallEvents_choice[] = {
3392   {   3, &hf_camel_dTMFDigitsCompleted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
3393   {   4, &hf_camel_dTMFDigitsTimeOut, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
3394   { 0, NULL, 0, 0, 0, NULL }
3395 };
3396
3397 static int
3398 dissect_camel_T_omidCallEvents(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3399   offset = dissect_ber_choice(actx, tree, tvb, offset,
3400                                  T_omidCallEvents_choice, hf_index, ett_camel_T_omidCallEvents,
3401                                  NULL);
3402
3403   return offset;
3404 }
3405
3406
3407 static const ber_sequence_t T_oMidCallSpecificInfo_sequence[] = {
3408   { &hf_camel_omidCallEvents, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_T_omidCallEvents },
3409   { NULL, 0, 0, 0, NULL }
3410 };
3411
3412 static int
3413 dissect_camel_T_oMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3414   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3415                                    T_oMidCallSpecificInfo_sequence, hf_index, ett_camel_T_oMidCallSpecificInfo);
3416
3417   return offset;
3418 }
3419
3420
3421 static const ber_sequence_t T_oDisconnectSpecificInfo_sequence[] = {
3422   { &hf_camel_releaseCause  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
3423   { NULL, 0, 0, 0, NULL }
3424 };
3425
3426 static int
3427 dissect_camel_T_oDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3428   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3429                                    T_oDisconnectSpecificInfo_sequence, hf_index, ett_camel_T_oDisconnectSpecificInfo);
3430
3431   return offset;
3432 }
3433
3434
3435 static const ber_sequence_t T_tBusySpecificInfo_sequence[] = {
3436   { &hf_camel_busyCause     , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
3437   { &hf_camel_callForwarded , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3438   { &hf_camel_routeNotPermitted, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3439   { &hf_camel_forwardingDestinationNumber, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
3440   { NULL, 0, 0, 0, NULL }
3441 };
3442
3443 static int
3444 dissect_camel_T_tBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3445   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3446                                    T_tBusySpecificInfo_sequence, hf_index, ett_camel_T_tBusySpecificInfo);
3447
3448   return offset;
3449 }
3450
3451
3452 static const ber_sequence_t T_tNoAnswerSpecificInfo_sequence[] = {
3453   { &hf_camel_callForwarded , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3454   { &hf_camel_forwardingDestinationNumber, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
3455   { NULL, 0, 0, 0, NULL }
3456 };
3457
3458 static int
3459 dissect_camel_T_tNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3460   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3461                                    T_tNoAnswerSpecificInfo_sequence, hf_index, ett_camel_T_tNoAnswerSpecificInfo);
3462
3463   return offset;
3464 }
3465
3466
3467 static const ber_sequence_t T_tAnswerSpecificInfo_sequence[] = {
3468   { &hf_camel_destinationAddress, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
3469   { &hf_camel_or_Call       , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3470   { &hf_camel_forwardedCall , BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3471   { &hf_camel_chargeIndicator, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeIndicator },
3472   { &hf_camel_ext_basicServiceCode, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
3473   { &hf_camel_ext_basicServiceCode2, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
3474   { NULL, 0, 0, 0, NULL }
3475 };
3476
3477 static int
3478 dissect_camel_T_tAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3479   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3480                                    T_tAnswerSpecificInfo_sequence, hf_index, ett_camel_T_tAnswerSpecificInfo);
3481
3482   return offset;
3483 }
3484
3485
3486 static const value_string camel_T_tmidCallEvents_vals[] = {
3487   {   3, "dTMFDigitsCompleted" },
3488   {   4, "dTMFDigitsTimeOut" },
3489   { 0, NULL }
3490 };
3491
3492 static const ber_choice_t T_tmidCallEvents_choice[] = {
3493   {   3, &hf_camel_dTMFDigitsCompleted, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
3494   {   4, &hf_camel_dTMFDigitsTimeOut, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
3495   { 0, NULL, 0, 0, 0, NULL }
3496 };
3497
3498 static int
3499 dissect_camel_T_tmidCallEvents(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3500   offset = dissect_ber_choice(actx, tree, tvb, offset,
3501                                  T_tmidCallEvents_choice, hf_index, ett_camel_T_tmidCallEvents,
3502                                  NULL);
3503
3504   return offset;
3505 }
3506
3507
3508 static const ber_sequence_t T_tMidCallSpecificInfo_sequence[] = {
3509   { &hf_camel_tmidCallEvents, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_T_tmidCallEvents },
3510   { NULL, 0, 0, 0, NULL }
3511 };
3512
3513 static int
3514 dissect_camel_T_tMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3515   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3516                                    T_tMidCallSpecificInfo_sequence, hf_index, ett_camel_T_tMidCallSpecificInfo);
3517
3518   return offset;
3519 }
3520
3521
3522 static const ber_sequence_t T_tDisconnectSpecificInfo_sequence[] = {
3523   { &hf_camel_releaseCause  , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
3524   { NULL, 0, 0, 0, NULL }
3525 };
3526
3527 static int
3528 dissect_camel_T_tDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3529   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3530                                    T_tDisconnectSpecificInfo_sequence, hf_index, ett_camel_T_tDisconnectSpecificInfo);
3531
3532   return offset;
3533 }
3534
3535
3536 static const ber_sequence_t T_oTermSeizedSpecificInfo_sequence[] = {
3537   { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
3538   { NULL, 0, 0, 0, NULL }
3539 };
3540
3541 static int
3542 dissect_camel_T_oTermSeizedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3543   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3544                                    T_oTermSeizedSpecificInfo_sequence, hf_index, ett_camel_T_oTermSeizedSpecificInfo);
3545
3546   return offset;
3547 }
3548
3549
3550 static const ber_sequence_t T_callAcceptedSpecificInfo_sequence[] = {
3551   { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
3552   { NULL, 0, 0, 0, NULL }
3553 };
3554
3555 static int
3556 dissect_camel_T_callAcceptedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3557   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3558                                    T_callAcceptedSpecificInfo_sequence, hf_index, ett_camel_T_callAcceptedSpecificInfo);
3559
3560   return offset;
3561 }
3562
3563
3564 static const ber_sequence_t T_oAbandonSpecificInfo_sequence[] = {
3565   { &hf_camel_routeNotPermitted, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3566   { NULL, 0, 0, 0, NULL }
3567 };
3568
3569 static int
3570 dissect_camel_T_oAbandonSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3571   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3572                                    T_oAbandonSpecificInfo_sequence, hf_index, ett_camel_T_oAbandonSpecificInfo);
3573
3574   return offset;
3575 }
3576
3577
3578 static const ber_sequence_t MetDPCriterionAlt_sequence[] = {
3579   { NULL, 0, 0, 0, NULL }
3580 };
3581
3582 static int
3583 dissect_camel_MetDPCriterionAlt(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3584   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3585                                    MetDPCriterionAlt_sequence, hf_index, ett_camel_MetDPCriterionAlt);
3586
3587   return offset;
3588 }
3589
3590
3591 static const value_string camel_MetDPCriterion_vals[] = {
3592   {   0, "enteringCellGlobalId" },
3593   {   1, "leavingCellGlobalId" },
3594   {   2, "enteringServiceAreaId" },
3595   {   3, "leavingServiceAreaId" },
3596   {   4, "enteringLocationAreaId" },
3597   {   5, "leavingLocationAreaId" },
3598   {   6, "inter-SystemHandOverToUMTS" },
3599   {   7, "inter-SystemHandOverToGSM" },
3600   {   8, "inter-PLMNHandOver" },
3601   {   9, "inter-MSCHandOver" },
3602   {  10, "metDPCriterionAlt" },
3603   { 0, NULL }
3604 };
3605
3606 static const ber_choice_t MetDPCriterion_choice[] = {
3607   {   0, &hf_camel_enteringCellGlobalId, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3608   {   1, &hf_camel_leavingCellGlobalId, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3609   {   2, &hf_camel_enteringServiceAreaId, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3610   {   3, &hf_camel_leavingServiceAreaId, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength },
3611   {   4, &hf_camel_enteringLocationAreaId, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
3612   {   5, &hf_camel_leavingLocationAreaId, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gsm_map_LAIFixedLength },
3613   {   6, &hf_camel_inter_SystemHandOverToUMTS, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3614   {   7, &hf_camel_inter_SystemHandOverToGSM, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3615   {   8, &hf_camel_inter_PLMNHandOver, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3616   {   9, &hf_camel_inter_MSCHandOver, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
3617   {  10, &hf_camel_metDPCriterionAlt, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_camel_MetDPCriterionAlt },
3618   { 0, NULL, 0, 0, 0, NULL }
3619 };
3620
3621 static int
3622 dissect_camel_MetDPCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3623   offset = dissect_ber_choice(actx, tree, tvb, offset,
3624                                  MetDPCriterion_choice, hf_index, ett_camel_MetDPCriterion,
3625                                  NULL);
3626
3627   return offset;
3628 }
3629
3630
3631 static const ber_sequence_t MetDPCriteriaList_sequence_of[1] = {
3632   { &hf_camel_MetDPCriteriaList_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_MetDPCriterion },
3633 };
3634
3635 static int
3636 dissect_camel_MetDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3637   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
3638                                       MetDPCriteriaList_sequence_of, hf_index, ett_camel_MetDPCriteriaList);
3639
3640   return offset;
3641 }
3642
3643
3644 static const ber_sequence_t T_oChangeOfPositionSpecificInfo_sequence[] = {
3645   { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
3646   { &hf_camel_metDPCriteriaList, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_MetDPCriteriaList },
3647   { NULL, 0, 0, 0, NULL }
3648 };
3649
3650 static int
3651 dissect_camel_T_oChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3652   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3653                                    T_oChangeOfPositionSpecificInfo_sequence, hf_index, ett_camel_T_oChangeOfPositionSpecificInfo);
3654
3655   return offset;
3656 }
3657
3658
3659 static const ber_sequence_t T_tChangeOfPositionSpecificInfo_sequence[] = {
3660   { &hf_camel_locationInformation, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
3661   { &hf_camel_metDPCriteriaList, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_MetDPCriteriaList },
3662   { NULL, 0, 0, 0, NULL }
3663 };
3664
3665 static int
3666 dissect_camel_T_tChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3667   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3668                                    T_tChangeOfPositionSpecificInfo_sequence, hf_index, ett_camel_T_tChangeOfPositionSpecificInfo);
3669
3670   return offset;
3671 }
3672
3673
3674 static const value_string camel_EventSpecificInformationBCSM_vals[] = {
3675   {   2, "routeSelectFailureSpecificInfo" },
3676   {   3, "oCalledPartyBusySpecificInfo" },
3677   {   4, "oNoAnswerSpecificInfo" },
3678   {   5, "oAnswerSpecificInfo" },
3679   {   6, "oMidCallSpecificInfo" },
3680   {   7, "oDisconnectSpecificInfo" },
3681   {   8, "tBusySpecificInfo" },
3682   {   9, "tNoAnswerSpecificInfo" },
3683   {  10, "tAnswerSpecificInfo" },
3684   {  11, "tMidCallSpecificInfo" },
3685   {  12, "tDisconnectSpecificInfo" },
3686   {  13, "oTermSeizedSpecificInfo" },
3687   {  20, "callAcceptedSpecificInfo" },
3688   {  21, "oAbandonSpecificInfo" },
3689   {  50, "oChangeOfPositionSpecificInfo" },
3690   {  51, "tChangeOfPositionSpecificInfo" },
3691   {  52, "dpSpecificInfoAlt" },
3692   { 0, NULL }
3693 };
3694
3695 static const ber_choice_t EventSpecificInformationBCSM_choice[] = {
3696   {   2, &hf_camel_routeSelectFailureSpecificInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_T_routeSelectFailureSpecificInfo },
3697   {   3, &hf_camel_oCalledPartyBusySpecificInfo, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_T_oCalledPartyBusySpecificInfo },
3698   {   4, &hf_camel_oNoAnswerSpecificInfo, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_T_oNoAnswerSpecificInfo },
3699   {   5, &hf_camel_oAnswerSpecificInfo, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_camel_T_oAnswerSpecificInfo },
3700   {   6, &hf_camel_oMidCallSpecificInfo, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_camel_T_oMidCallSpecificInfo },
3701   {   7, &hf_camel_oDisconnectSpecificInfo, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_camel_T_oDisconnectSpecificInfo },
3702   {   8, &hf_camel_tBusySpecificInfo, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_camel_T_tBusySpecificInfo },
3703   {   9, &hf_camel_tNoAnswerSpecificInfo, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_camel_T_tNoAnswerSpecificInfo },
3704   {  10, &hf_camel_tAnswerSpecificInfo, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_camel_T_tAnswerSpecificInfo },
3705   {  11, &hf_camel_tMidCallSpecificInfo, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_camel_T_tMidCallSpecificInfo },
3706   {  12, &hf_camel_tDisconnectSpecificInfo, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_camel_T_tDisconnectSpecificInfo },
3707   {  13, &hf_camel_oTermSeizedSpecificInfo, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_camel_T_oTermSeizedSpecificInfo },
3708   {  20, &hf_camel_callAcceptedSpecificInfo, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_camel_T_callAcceptedSpecificInfo },
3709   {  21, &hf_camel_oAbandonSpecificInfo, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_camel_T_oAbandonSpecificInfo },
3710   {  50, &hf_camel_oChangeOfPositionSpecificInfo, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_camel_T_oChangeOfPositionSpecificInfo },
3711   {  51, &hf_camel_tChangeOfPositionSpecificInfo, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_camel_T_tChangeOfPositionSpecificInfo },
3712   {  52, &hf_camel_dpSpecificInfoAlt, BER_CLASS_CON, 52, BER_FLAGS_IMPLTAG, dissect_camel_DpSpecificInfoAlt },
3713   { 0, NULL, 0, 0, 0, NULL }
3714 };
3715
3716 static int
3717 dissect_camel_EventSpecificInformationBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3718   offset = dissect_ber_choice(actx, tree, tvb, offset,
3719                                  EventSpecificInformationBCSM_choice, hf_index, ett_camel_EventSpecificInformationBCSM,
3720                                  NULL);
3721
3722   return offset;
3723 }
3724
3725
3726 static const value_string camel_MO_SMSCause_vals[] = {
3727   {   0, "systemFailure" },
3728   {   1, "unexpectedDataValue" },
3729   {   2, "facilityNotSupported" },
3730   {   3, "sM-DeliveryFailure" },
3731   {   4, "releaseFromRadioInterface" },
3732   { 0, NULL }
3733 };
3734
3735
3736 static int
3737 dissect_camel_MO_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3738   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3739                                   NULL);
3740
3741   return offset;
3742 }
3743
3744
3745 static const ber_sequence_t T_o_smsFailureSpecificInfo_sequence[] = {
3746   { &hf_camel_smsfailureCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_MO_SMSCause },
3747   { NULL, 0, 0, 0, NULL }
3748 };
3749
3750 static int
3751 dissect_camel_T_o_smsFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3752   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3753                                    T_o_smsFailureSpecificInfo_sequence, hf_index, ett_camel_T_o_smsFailureSpecificInfo);
3754
3755   return offset;
3756 }
3757
3758
3759 static const ber_sequence_t T_o_smsSubmissionSpecificInfo_sequence[] = {
3760   { NULL, 0, 0, 0, NULL }
3761 };
3762
3763 static int
3764 dissect_camel_T_o_smsSubmissionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3765   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3766                                    T_o_smsSubmissionSpecificInfo_sequence, hf_index, ett_camel_T_o_smsSubmissionSpecificInfo);
3767
3768   return offset;
3769 }
3770
3771
3772
3773 static int
3774 dissect_camel_MT_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3775   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3776                                        NULL);
3777
3778   return offset;
3779 }
3780
3781
3782 static const ber_sequence_t T_t_smsFailureSpecificInfo_sequence[] = {
3783   { &hf_camel_t_smsfailureCause, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_MT_SMSCause },
3784   { NULL, 0, 0, 0, NULL }
3785 };
3786
3787 static int
3788 dissect_camel_T_t_smsFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3789   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3790                                    T_t_smsFailureSpecificInfo_sequence, hf_index, ett_camel_T_t_smsFailureSpecificInfo);
3791
3792   return offset;
3793 }
3794
3795
3796 static const ber_sequence_t T_t_smsDeliverySpecificInfo_sequence[] = {
3797   { NULL, 0, 0, 0, NULL }
3798 };
3799
3800 static int
3801 dissect_camel_T_t_smsDeliverySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3802   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3803                                    T_t_smsDeliverySpecificInfo_sequence, hf_index, ett_camel_T_t_smsDeliverySpecificInfo);
3804
3805   return offset;
3806 }
3807
3808
3809 static const value_string camel_EventSpecificInformationSMS_vals[] = {
3810   {   0, "o-smsFailureSpecificInfo" },
3811   {   1, "o-smsSubmissionSpecificInfo" },
3812   {   2, "t-smsFailureSpecificInfo" },
3813   {   3, "t-smsDeliverySpecificInfo" },
3814   { 0, NULL }
3815 };
3816
3817 static const ber_choice_t EventSpecificInformationSMS_choice[] = {
3818   {   0, &hf_camel_o_smsFailureSpecificInfo, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_o_smsFailureSpecificInfo },
3819   {   1, &hf_camel_o_smsSubmissionSpecificInfo, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_o_smsSubmissionSpecificInfo },
3820   {   2, &hf_camel_t_smsFailureSpecificInfo, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_T_t_smsFailureSpecificInfo },
3821   {   3, &hf_camel_t_smsDeliverySpecificInfo, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_T_t_smsDeliverySpecificInfo },
3822   { 0, NULL, 0, 0, 0, NULL }
3823 };
3824
3825 static int
3826 dissect_camel_EventSpecificInformationSMS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3827   offset = dissect_ber_choice(actx, tree, tvb, offset,
3828                                  EventSpecificInformationSMS_choice, hf_index, ett_camel_EventSpecificInformationSMS,
3829                                  NULL);
3830
3831   return offset;
3832 }
3833
3834
3835 static const value_string camel_EventTypeSMS_vals[] = {
3836   {   1, "sms-CollectedInfo" },
3837   {   2, "o-smsFailure" },
3838   {   3, "o-smsSubmission" },
3839   {  11, "sms-DeliveryRequested" },
3840   {  12, "t-smsFailure" },
3841   {  13, "t-smsDelivery" },
3842   { 0, NULL }
3843 };
3844
3845
3846 static int
3847 dissect_camel_EventTypeSMS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3848   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
3849                                   NULL);
3850
3851   return offset;
3852 }
3853
3854
3855
3856 static int
3857 dissect_camel_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3858  tvbuff_t       *parameter_tvb;
3859  proto_tree *subtree; 
3860
3861   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3862                                        &parameter_tvb);
3863
3864  if (!parameter_tvb)
3865         return offset;
3866  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_FCIBillingChargingCharacteristics);
3867  dissect_camel_CAMEL_FCIBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_FCIBillingChargingCharacteristics);
3868
3869
3870   return offset;
3871 }
3872
3873
3874
3875 static int
3876 dissect_camel_FCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3877  tvbuff_t       *parameter_tvb; 
3878  proto_tree *subtree; 
3879
3880   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3881                                        &parameter_tvb);
3882
3883  if (!parameter_tvb)
3884         return offset;
3885  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics);
3886  dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics);
3887
3888
3889   return offset;
3890 }
3891
3892
3893
3894 static int
3895 dissect_camel_FCISMSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3896  tvbuff_t       *parameter_tvb;
3897  proto_tree *subtree; 
3898
3899   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3900                                        &parameter_tvb);
3901
3902  if (!parameter_tvb)
3903         return offset; 
3904  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics);
3905  dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_FCISMSBillingChargingCharacteristics);
3906
3907
3908   return offset;
3909 }
3910
3911
3912 static const ber_sequence_t ForwardServiceInteractionInd_sequence[] = {
3913   { &hf_camel_conferenceTreatmentIndicator, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
3914   { &hf_camel_callDiversionTreatmentIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
3915   { &hf_camel_callingPartyRestrictionIndicator, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
3916   { NULL, 0, 0, 0, NULL }
3917 };
3918
3919 static int
3920 dissect_camel_ForwardServiceInteractionInd(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3921   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3922                                    ForwardServiceInteractionInd_sequence, hf_index, ett_camel_ForwardServiceInteractionInd);
3923
3924   return offset;
3925 }
3926
3927
3928 static const value_string camel_GapCriteria_vals[] = {
3929   {   0, "basicGapCriteria" },
3930   {   1, "compoundGapCriteria" },
3931   { 0, NULL }
3932 };
3933
3934 static const ber_choice_t GapCriteria_choice[] = {
3935   {   0, &hf_camel_basicGapCriteria, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_camel_BasicGapCriteria },
3936   {   1, &hf_camel_compoundGapCriteria, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_camel_CompoundCriteria },
3937   { 0, NULL, 0, 0, 0, NULL }
3938 };
3939
3940 static int
3941 dissect_camel_GapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3942   offset = dissect_ber_choice(actx, tree, tvb, offset,
3943                                  GapCriteria_choice, hf_index, ett_camel_GapCriteria,
3944                                  NULL);
3945
3946   return offset;
3947 }
3948
3949
3950 static const ber_sequence_t GapIndicators_sequence[] = {
3951   { &hf_camel_gapIndicatorsDuration, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_Duration },
3952   { &hf_camel_gapInterval   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_inap_Interval },
3953   { NULL, 0, 0, 0, NULL }
3954 };
3955
3956 static int
3957 dissect_camel_GapIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3958   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3959                                    GapIndicators_sequence, hf_index, ett_camel_GapIndicators);
3960
3961   return offset;
3962 }
3963
3964
3965
3966 static int
3967 dissect_camel_IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3968   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
3969                                             actx, tree, tvb, offset, hf_index,
3970                                             NULL);
3971
3972   return offset;
3973 }
3974
3975
3976
3977 static int
3978 dissect_camel_OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3979   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
3980                                        NULL);
3981
3982   return offset;
3983 }
3984
3985
3986 static const ber_sequence_t T_text_sequence[] = {
3987   { &hf_camel_messageContent, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength },
3988   { &hf_camel_attributes    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength },
3989   { NULL, 0, 0, 0, NULL }
3990 };
3991
3992 static int
3993 dissect_camel_T_text(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3994   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
3995                                    T_text_sequence, hf_index, ett_camel_T_text);
3996
3997   return offset;
3998 }
3999
4000
4001 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4_sequence_of[1] = {
4002   { &hf_camel_elementaryMessageIDs_item, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_inap_Integer4 },
4003 };
4004
4005 static int
4006 dissect_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4007   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4008                                       SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4_sequence_of, hf_index, ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4);
4009
4010   return offset;
4011 }
4012
4013
4014
4015 static int
4016 dissect_camel_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4017   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4018                                        NULL);
4019
4020   return offset;
4021 }
4022
4023
4024
4025 static int
4026 dissect_camel_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4027   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4028                                        NULL);
4029
4030   return offset;
4031 }
4032
4033
4034 static const value_string camel_VariablePart_vals[] = {
4035   {   0, "integer" },
4036   {   1, "number" },
4037   {   2, "time" },
4038   {   3, "date" },
4039   {   4, "price" },
4040   { 0, NULL }
4041 };
4042
4043 static const ber_choice_t VariablePart_choice[] = {
4044   {   0, &hf_camel_integer       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
4045   {   1, &hf_camel_number        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
4046   {   2, &hf_camel_time          , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_2 },
4047   {   3, &hf_camel_date          , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_4 },
4048   {   4, &hf_camel_price         , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_4 },
4049   { 0, NULL, 0, 0, 0, NULL }
4050 };
4051
4052 static int
4053 dissect_camel_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4054   offset = dissect_ber_choice(actx, tree, tvb, offset,
4055                                  VariablePart_choice, hf_index, ett_camel_VariablePart,
4056                                  NULL);
4057
4058   return offset;
4059 }
4060
4061
4062 static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of[1] = {
4063   { &hf_camel_variableParts_item, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_VariablePart },
4064 };
4065
4066 static int
4067 dissect_camel_SEQUENCE_SIZE_1_5_OF_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4068   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4069                                       SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of, hf_index, ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart);
4070
4071   return offset;
4072 }
4073
4074
4075 static const ber_sequence_t T_variableMessage_sequence[] = {
4076   { &hf_camel_elementaryMessageID, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
4077   { &hf_camel_variableParts , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_SEQUENCE_SIZE_1_5_OF_VariablePart },
4078   { NULL, 0, 0, 0, NULL }
4079 };
4080
4081 static int
4082 dissect_camel_T_variableMessage(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4083   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4084                                    T_variableMessage_sequence, hf_index, ett_camel_T_variableMessage);
4085
4086   return offset;
4087 }
4088
4089
4090 static const value_string camel_MessageID_vals[] = {
4091   {   0, "elementaryMessageID" },
4092   {   1, "text" },
4093   {  29, "elementaryMessageIDs" },
4094   {  30, "variableMessage" },
4095   { 0, NULL }
4096 };
4097
4098 static const ber_choice_t MessageID_choice[] = {
4099   {   0, &hf_camel_elementaryMessageID, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
4100   {   1, &hf_camel_text          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_text },
4101   {  29, &hf_camel_elementaryMessageIDs, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4 },
4102   {  30, &hf_camel_variableMessage, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_camel_T_variableMessage },
4103   { 0, NULL, 0, 0, 0, NULL }
4104 };
4105
4106 static int
4107 dissect_camel_MessageID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4108   offset = dissect_ber_choice(actx, tree, tvb, offset,
4109                                  MessageID_choice, hf_index, ett_camel_MessageID,
4110                                  NULL);
4111
4112   return offset;
4113 }
4114
4115
4116
4117 static int
4118 dissect_camel_INTEGER_0_32767(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4119   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4120                                                 NULL);
4121
4122   return offset;
4123 }
4124
4125
4126 static const ber_sequence_t InbandInfo_sequence[] = {
4127   { &hf_camel_messageID     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_MessageID },
4128   { &hf_camel_numberOfRepetitions, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_127 },
4129   { &hf_camel_inbandInfoDuration, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_32767 },
4130   { &hf_camel_interval      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_32767 },
4131   { NULL, 0, 0, 0, NULL }
4132 };
4133
4134 static int
4135 dissect_camel_InbandInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4136   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4137                                    InbandInfo_sequence, hf_index, ett_camel_InbandInfo);
4138
4139   return offset;
4140 }
4141
4142
4143 static const ber_sequence_t Tone_sequence[] = {
4144   { &hf_camel_toneID        , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
4145   { &hf_camel_toneDuration  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
4146   { NULL, 0, 0, 0, NULL }
4147 };
4148
4149 static int
4150 dissect_camel_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4151   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4152                                    Tone_sequence, hf_index, ett_camel_Tone);
4153
4154   return offset;
4155 }
4156
4157
4158 static const value_string camel_InformationToSend_vals[] = {
4159   {   0, "inbandInfo" },
4160   {   1, "tone" },
4161   { 0, NULL }
4162 };
4163
4164 static const ber_choice_t InformationToSend_choice[] = {
4165   {   0, &hf_camel_inbandInfo    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_InbandInfo },
4166   {   1, &hf_camel_tone          , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_Tone },
4167   { 0, NULL, 0, 0, 0, NULL }
4168 };
4169
4170 static int
4171 dissect_camel_InformationToSend(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4172   offset = dissect_ber_choice(actx, tree, tvb, offset,
4173                                  InformationToSend_choice, hf_index, ett_camel_InformationToSend,
4174                                  NULL);
4175
4176   return offset;
4177 }
4178
4179
4180 static const value_string camel_GapTreatment_vals[] = {
4181   {   0, "informationToSend" },
4182   {   1, "releaseCause" },
4183   { 0, NULL }
4184 };
4185
4186 static const ber_choice_t GapTreatment_choice[] = {
4187   {   0, &hf_camel_informationToSend, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_InformationToSend },
4188   {   1, &hf_camel_releaseCause  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_Cause },
4189   { 0, NULL, 0, 0, 0, NULL }
4190 };
4191
4192 static int
4193 dissect_camel_GapTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4194   offset = dissect_ber_choice(actx, tree, tvb, offset,
4195                                  GapTreatment_choice, hf_index, ett_camel_GapTreatment,
4196                                  NULL);
4197
4198   return offset;
4199 }
4200
4201
4202
4203 static int
4204 dissect_camel_GenericNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4205   tvbuff_t *parameter_tvb;
4206
4207   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4208                                        &parameter_tvb);
4209
4210
4211  if (!parameter_tvb)
4212         return offset;
4213
4214 dissect_isup_generic_number_parameter(parameter_tvb, tree, NULL);
4215
4216   return offset;
4217 }
4218
4219
4220 static const ber_sequence_t GenericNumbers_set_of[1] = {
4221   { &hf_camel_GenericNumbers_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_camel_GenericNumber },
4222 };
4223
4224 static int
4225 dissect_camel_GenericNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4226   offset = dissect_ber_set_of(implicit_tag, actx, tree, tvb, offset,
4227                                  GenericNumbers_set_of, hf_index, ett_camel_GenericNumbers);
4228
4229   return offset;
4230 }
4231
4232
4233 static const value_string camel_GPRS_QoS_vals[] = {
4234   {   0, "short-QoS-format" },
4235   {   1, "long-QoS-format" },
4236   { 0, NULL }
4237 };
4238
4239 static const ber_choice_t GPRS_QoS_choice[] = {
4240   {   0, &hf_camel_short_QoS_format, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_QoS_Subscribed },
4241   {   1, &hf_camel_long_QoS_format, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext_QoS_Subscribed },
4242   { 0, NULL, 0, 0, 0, NULL }
4243 };
4244
4245 static int
4246 dissect_camel_GPRS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4247   offset = dissect_ber_choice(actx, tree, tvb, offset,
4248                                  GPRS_QoS_choice, hf_index, ett_camel_GPRS_QoS,
4249                                  NULL);
4250
4251   return offset;
4252 }
4253
4254
4255 static const ber_sequence_t GPRS_QoS_Extension_sequence[] = {
4256   { &hf_camel_supplement_to_long_QoS_format, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext2_QoS_Subscribed },
4257   { &hf_camel_additionalSupplement, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_Ext3_QoS_Subscribed },
4258   { NULL, 0, 0, 0, NULL }
4259 };
4260
4261 static int
4262 dissect_camel_GPRS_QoS_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4263   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4264                                    GPRS_QoS_Extension_sequence, hf_index, ett_camel_GPRS_QoS_Extension);
4265
4266   return offset;
4267 }
4268
4269
4270
4271 static int
4272 dissect_camel_GPRSCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4273   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4274                                        NULL);
4275
4276   return offset;
4277 }
4278
4279
4280 static const value_string camel_GPRSEventType_vals[] = {
4281   {   1, "attach" },
4282   {   2, "attachChangeOfPosition" },
4283   {   3, "detached" },
4284   {  11, "pdp-ContextEstablishment" },
4285   {  12, "pdp-ContextEstablishmentAcknowledgement" },
4286   {  13, "disonnect" },
4287   {  14, "pdp-ContextChangeOfPosition" },
4288   { 0, NULL }
4289 };
4290
4291
4292 static int
4293 dissect_camel_GPRSEventType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4294   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4295                                   NULL);
4296
4297   return offset;
4298 }
4299
4300
4301 static const ber_sequence_t GPRSEvent_sequence[] = {
4302   { &hf_camel_gPRSEventType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_GPRSEventType },
4303   { &hf_camel_monitorMode   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_MonitorMode },
4304   { NULL, 0, 0, 0, NULL }
4305 };
4306
4307 static int
4308 dissect_camel_GPRSEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4309   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4310                                    GPRSEvent_sequence, hf_index, ett_camel_GPRSEvent);
4311
4312   return offset;
4313 }
4314
4315
4316
4317 static int
4318 dissect_camel_T_cellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4319         proto_tree *subtree;
4320         int start_offset;
4321
4322  start_offset = offset;
4323   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4324                                        NULL);
4325
4326
4327  subtree = proto_item_add_subtree(actx->created_item, ett_camel_pdptypenumber);
4328
4329  if (tvb_reported_length_remaining(tvb,start_offset) == 7){
4330         dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, start_offset, actx, subtree, hf_camel_cellGlobalIdOrServiceAreaIdFixedLength);
4331  }else{
4332         dissect_gsm_map_LAIFixedLength(TRUE, tvb, start_offset, actx, subtree, hf_camel_locationAreaId);
4333  }                      
4334
4335   return offset;
4336 }
4337
4338
4339 static const ber_sequence_t LocationInformationGPRS_sequence[] = {
4340   { &hf_camel_cellGlobalIdOrServiceAreaIdOrLAI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_T_cellGlobalIdOrServiceAreaIdOrLAI },
4341   { &hf_camel_routeingAreaIdentity, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity },
4342   { &hf_camel_geographicalInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GeographicalInformation },
4343   { &hf_camel_sgsn_Number   , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
4344   { &hf_camel_selectedLSAIdentity, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LSAIdentity },
4345   { &hf_camel_extensionContainer, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ExtensionContainer },
4346   { &hf_camel_sai_Present   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
4347   { NULL, 0, 0, 0, NULL }
4348 };
4349
4350 static int
4351 dissect_camel_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4352   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4353                                    LocationInformationGPRS_sequence, hf_index, ett_camel_LocationInformationGPRS);
4354
4355   return offset;
4356 }
4357
4358
4359 static const ber_sequence_t T_attachChangeOfPositionSpecificInformation_sequence[] = {
4360   { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS },
4361   { NULL, 0, 0, 0, NULL }
4362 };
4363
4364 static int
4365 dissect_camel_T_attachChangeOfPositionSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4366   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4367                                    T_attachChangeOfPositionSpecificInformation_sequence, hf_index, ett_camel_T_attachChangeOfPositionSpecificInformation);
4368
4369   return offset;
4370 }
4371
4372
4373 static const ber_sequence_t QualityOfService_sequence[] = {
4374   { &hf_camel_requested_QoS , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_GPRS_QoS },
4375   { &hf_camel_subscribed_QoS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_GPRS_QoS },
4376   { &hf_camel_negotiated_QoS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_GPRS_QoS },
4377   { &hf_camel_requested_QoS_Extension, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GPRS_QoS_Extension },
4378   { &hf_camel_subscribed_QoS_Extension, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GPRS_QoS_Extension },
4379   { &hf_camel_negotiated_QoS_Extension, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GPRS_QoS_Extension },
4380   { NULL, 0, 0, 0, NULL }
4381 };
4382
4383 static int
4384 dissect_camel_QualityOfService(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4385   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4386                                    QualityOfService_sequence, hf_index, ett_camel_QualityOfService);
4387
4388   return offset;
4389 }
4390
4391
4392
4393 static int
4394 dissect_camel_TimeAndTimezone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4395   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4396                                        NULL);
4397
4398   return offset;
4399 }
4400
4401
4402 static const ber_sequence_t T_pdp_ContextchangeOfPositionSpecificInformation_sequence[] = {
4403   { &hf_camel_accessPointName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName },
4404   { &hf_camel_chargingID    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
4405   { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS },
4406   { &hf_camel_endUserAddress, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EndUserAddress },
4407   { &hf_camel_qualityOfService, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService },
4408   { &hf_camel_timeAndTimeZone, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone },
4409   { &hf_camel_gGSNAddress   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
4410   { NULL, 0, 0, 0, NULL }
4411 };
4412
4413 static int
4414 dissect_camel_T_pdp_ContextchangeOfPositionSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4415   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4416                                    T_pdp_ContextchangeOfPositionSpecificInformation_sequence, hf_index, ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation);
4417
4418   return offset;
4419 }
4420
4421
4422 static const value_string camel_InitiatingEntity_vals[] = {
4423   {   0, "mobileStation" },
4424   {   1, "sgsn" },
4425   {   2, "hlr" },
4426   {   3, "ggsn" },
4427   { 0, NULL }
4428 };
4429
4430
4431 static int
4432 dissect_camel_InitiatingEntity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4433   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4434                                   NULL);
4435
4436   return offset;
4437 }
4438
4439
4440 static const ber_sequence_t T_detachSpecificInformation_sequence[] = {
4441   { &hf_camel_initiatingEntity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_InitiatingEntity },
4442   { &hf_camel_routeingAreaUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
4443   { NULL, 0, 0, 0, NULL }
4444 };
4445
4446 static int
4447 dissect_camel_T_detachSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4448   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4449                                    T_detachSpecificInformation_sequence, hf_index, ett_camel_T_detachSpecificInformation);
4450
4451   return offset;
4452 }
4453
4454
4455 static const ber_sequence_t T_disconnectSpecificInformation_sequence[] = {
4456   { &hf_camel_initiatingEntity, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_InitiatingEntity },
4457   { &hf_camel_routeingAreaUpdate, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
4458   { NULL, 0, 0, 0, NULL }
4459 };
4460
4461 static int
4462 dissect_camel_T_disconnectSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4463   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4464                                    T_disconnectSpecificInformation_sequence, hf_index, ett_camel_T_disconnectSpecificInformation);
4465
4466   return offset;
4467 }
4468
4469
4470 static const value_string camel_PDPInitiationType_vals[] = {
4471   {   0, "mSInitiated" },
4472   {   1, "networkInitiated" },
4473   { 0, NULL }
4474 };
4475
4476
4477 static int
4478 dissect_camel_PDPInitiationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4479   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4480                                   NULL);
4481
4482   return offset;
4483 }
4484
4485
4486 static const ber_sequence_t T_pDPContextEstablishmentSpecificInformation_sequence[] = {
4487   { &hf_camel_accessPointName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName },
4488   { &hf_camel_endUserAddress, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EndUserAddress },
4489   { &hf_camel_qualityOfService, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService },
4490   { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS },
4491   { &hf_camel_timeAndTimeZone, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone },
4492   { &hf_camel_pDPInitiationType, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPInitiationType },
4493   { &hf_camel_secondaryPDP_context, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
4494   { NULL, 0, 0, 0, NULL }
4495 };
4496
4497 static int
4498 dissect_camel_T_pDPContextEstablishmentSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4499   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4500                                    T_pDPContextEstablishmentSpecificInformation_sequence, hf_index, ett_camel_T_pDPContextEstablishmentSpecificInformation);
4501
4502   return offset;
4503 }
4504
4505
4506 static const ber_sequence_t T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence[] = {
4507   { &hf_camel_accessPointName, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName },
4508   { &hf_camel_chargingID    , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
4509   { &hf_camel_endUserAddress, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EndUserAddress },
4510   { &hf_camel_qualityOfService, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService },
4511   { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS },
4512   { &hf_camel_timeAndTimeZone, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone },
4513   { &hf_camel_gGSNAddress   , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
4514   { NULL, 0, 0, 0, NULL }
4515 };
4516
4517 static int
4518 dissect_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4519   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4520                                    T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence, hf_index, ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation);
4521
4522   return offset;
4523 }
4524
4525
4526 static const value_string camel_GPRSEventSpecificInformation_vals[] = {
4527   {   0, "attachChangeOfPositionSpecificInformation" },
4528   {   1, "pdp-ContextchangeOfPositionSpecificInformation" },
4529   {   2, "detachSpecificInformation" },
4530   {   3, "disconnectSpecificInformation" },
4531   {   4, "pDPContextEstablishmentSpecificInformation" },
4532   {   5, "pDPContextEstablishmentAcknowledgementSpecificInformation" },
4533   { 0, NULL }
4534 };
4535
4536 static const ber_choice_t GPRSEventSpecificInformation_choice[] = {
4537   {   0, &hf_camel_attachChangeOfPositionSpecificInformation, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_attachChangeOfPositionSpecificInformation },
4538   {   1, &hf_camel_pdp_ContextchangeOfPositionSpecificInformation, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_T_pdp_ContextchangeOfPositionSpecificInformation },
4539   {   2, &hf_camel_detachSpecificInformation, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_T_detachSpecificInformation },
4540   {   3, &hf_camel_disconnectSpecificInformation, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_T_disconnectSpecificInformation },
4541   {   4, &hf_camel_pDPContextEstablishmentSpecificInformation, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_T_pDPContextEstablishmentSpecificInformation },
4542   {   5, &hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation },
4543   { 0, NULL, 0, 0, 0, NULL }
4544 };
4545
4546 static int
4547 dissect_camel_GPRSEventSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4548   offset = dissect_ber_choice(actx, tree, tvb, offset,
4549                                  GPRSEventSpecificInformation_choice, hf_index, ett_camel_GPRSEventSpecificInformation,
4550                                  NULL);
4551
4552   return offset;
4553 }
4554
4555
4556
4557 static int
4558 dissect_camel_IPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4559   offset = dissect_camel_CalledPartyNumber(implicit_tag, tvb, offset, actx, tree, hf_index);
4560
4561   return offset;
4562 }
4563
4564
4565
4566 static int
4567 dissect_camel_IPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4568   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4569                                        NULL);
4570
4571   return offset;
4572 }
4573
4574
4575 static const value_string camel_LegOrCallSegment_vals[] = {
4576   {   0, "callSegmentID" },
4577   {   1, "legID" },
4578   { 0, NULL }
4579 };
4580
4581 static const ber_choice_t LegOrCallSegment_choice[] = {
4582   {   0, &hf_camel_callSegmentID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
4583   {   1, &hf_camel_legID         , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_inap_LegID },
4584   { 0, NULL, 0, 0, 0, NULL }
4585 };
4586
4587 static int
4588 dissect_camel_LegOrCallSegment(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4589   offset = dissect_ber_choice(actx, tree, tvb, offset,
4590                                  LegOrCallSegment_choice, hf_index, ett_camel_LegOrCallSegment,
4591                                  NULL);
4592
4593   return offset;
4594 }
4595
4596
4597
4598 static int
4599 dissect_camel_LowLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4600   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4601                                        NULL);
4602
4603   return offset;
4604 }
4605
4606
4607
4608 static int
4609 dissect_camel_NAOliInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4610   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4611                                        NULL);
4612
4613   return offset;
4614 }
4615
4616
4617
4618 static int
4619 dissect_camel_OCSIApplicable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4620   offset = dissect_ber_null(implicit_tag, actx, tree, tvb, offset, hf_index);
4621
4622   return offset;
4623 }
4624
4625
4626
4627 static int
4628 dissect_camel_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4629
4630  tvbuff_t       *parameter_tvb;
4631
4632   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4633                                        &parameter_tvb);
4634
4635
4636  if (!parameter_tvb)
4637         return offset;
4638  dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL);
4639
4640   return offset;
4641 }
4642
4643
4644
4645 static int
4646 dissect_camel_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4647
4648  tvbuff_t       *parameter_tvb;
4649
4650   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4651                                        &parameter_tvb);
4652
4653
4654  if (!parameter_tvb)
4655         return offset;
4656  dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL);
4657
4658   return offset;
4659 }
4660
4661
4662 static const value_string camel_RequestedInformationType_vals[] = {
4663   {   0, "callAttemptElapsedTime" },
4664   {   1, "callStopTime" },
4665   {   2, "callConnectedElapsedTime" },
4666   {  30, "releaseCause" },
4667   { 0, NULL }
4668 };
4669
4670
4671 static int
4672 dissect_camel_RequestedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4673   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4674                                   NULL);
4675
4676   return offset;
4677 }
4678
4679
4680 static const value_string camel_RequestedInformationValue_vals[] = {
4681   {   0, "callAttemptElapsedTimeValue" },
4682   {   1, "callStopTimeValue" },
4683   {   2, "callConnectedElapsedTimeValue" },
4684   {  30, "releaseCauseValue" },
4685   { 0, NULL }
4686 };
4687
4688 static const ber_choice_t RequestedInformationValue_choice[] = {
4689   {   0, &hf_camel_callAttemptElapsedTimeValue, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_0_255 },
4690   {   1, &hf_camel_callStopTimeValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_DateAndTime },
4691   {   2, &hf_camel_callConnectedElapsedTimeValue, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
4692   {  30, &hf_camel_releaseCauseValue, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_camel_Cause },
4693   { 0, NULL, 0, 0, 0, NULL }
4694 };
4695
4696 static int
4697 dissect_camel_RequestedInformationValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4698   offset = dissect_ber_choice(actx, tree, tvb, offset,
4699                                  RequestedInformationValue_choice, hf_index, ett_camel_RequestedInformationValue,
4700                                  NULL);
4701
4702   return offset;
4703 }
4704
4705
4706 static const ber_sequence_t RequestedInformation_sequence[] = {
4707   { &hf_camel_requestedInformationType, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_RequestedInformationType },
4708   { &hf_camel_requestedInformationValue, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_RequestedInformationValue },
4709   { NULL, 0, 0, 0, NULL }
4710 };
4711
4712 static int
4713 dissect_camel_RequestedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4714   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4715                                    RequestedInformation_sequence, hf_index, ett_camel_RequestedInformation);
4716
4717   return offset;
4718 }
4719
4720
4721 static const ber_sequence_t RequestedInformationList_sequence_of[1] = {
4722   { &hf_camel_RequestedInformationList_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_camel_RequestedInformation },
4723 };
4724
4725 static int
4726 dissect_camel_RequestedInformationList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4727   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4728                                       RequestedInformationList_sequence_of, hf_index, ett_camel_RequestedInformationList);
4729
4730   return offset;
4731 }
4732
4733
4734 static const ber_sequence_t RequestedInformationTypeList_sequence_of[1] = {
4735   { &hf_camel_RequestedInformationTypeList_item, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_camel_RequestedInformationType },
4736 };
4737
4738 static int
4739 dissect_camel_RequestedInformationTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4740   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
4741                                       RequestedInformationTypeList_sequence_of, hf_index, ett_camel_RequestedInformationTypeList);
4742
4743   return offset;
4744 }
4745
4746
4747
4748 static int
4749 dissect_camel_RPCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4750
4751 tvbuff_t *parameter_tvb;
4752 guint8 Cause_value;
4753 proto_tree *subtree;
4754
4755   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4756                                        &parameter_tvb);
4757
4758
4759  if (!parameter_tvb)
4760         return offset;
4761  subtree = proto_item_add_subtree(actx->created_item, ett_camel_RPcause);
4762
4763  dissect_RP_cause_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), subtree, hf_camel_RP_Cause, &Cause_value);
4764
4765   return offset;
4766 }
4767
4768
4769
4770 static int
4771 dissect_camel_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4772  tvbuff_t       *parameter_tvb;
4773  proto_tree *subtree; 
4774
4775   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4776                                        &parameter_tvb);
4777
4778  if (!parameter_tvb)
4779         return offset;
4780  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_SCIBillingChargingCharacteristics);
4781  dissect_camel_CAMEL_SCIBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_SCIBillingChargingCharacteristics);
4782
4783
4784   return offset;
4785 }
4786
4787
4788
4789 static int
4790 dissect_camel_SCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4791  tvbuff_t       *parameter_tvb;
4792  proto_tree *subtree; 
4793
4794   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4795                                        &parameter_tvb);
4796
4797  if (!parameter_tvb)
4798         return offset; 
4799  subtree = proto_item_add_subtree(actx->created_item, ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics);
4800  dissect_camel_CAMEL_SCIGPRSBillingChargingCharacteristics(FALSE, parameter_tvb, 0, actx, subtree, hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics);
4801
4802
4803   return offset;
4804 }
4805
4806
4807 static const ber_sequence_t ServiceInteractionIndicatorsTwo_sequence[] = {
4808   { &hf_camel_forwardServiceInteractionInd, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ForwardServiceInteractionInd },
4809   { &hf_camel_backwardServiceInteractionInd, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BackwardServiceInteractionInd },
4810   { &hf_camel_bothwayThroughConnectionInd, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_BothwayThroughConnectionInd },
4811   { &hf_camel_connectedNumberTreatmentInd, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ConnectedNumberTreatmentInd },
4812   { &hf_camel_nonCUGCall    , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
4813   { &hf_camel_holdTreatmentIndicator, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
4814   { &hf_camel_cwTreatmentIndicator, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
4815   { &hf_camel_ectTreatmentIndicator, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCTET_STRING_SIZE_1 },
4816   { NULL, 0, 0, 0, NULL }
4817 };
4818
4819 static int
4820 dissect_camel_ServiceInteractionIndicatorsTwo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4821   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4822                                    ServiceInteractionIndicatorsTwo_sequence, hf_index, ett_camel_ServiceInteractionIndicatorsTwo);
4823
4824   return offset;
4825 }
4826
4827
4828
4829 static int
4830 dissect_camel_SGSNCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4831   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4832                                        NULL);
4833
4834   return offset;
4835 }
4836
4837
4838
4839 static int
4840 dissect_camel_SMS_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4841   offset = dissect_gsm_map_AddressString(implicit_tag, tvb, offset, actx, tree, hf_index);
4842
4843   return offset;
4844 }
4845
4846
4847 static const ber_sequence_t SMSEvent_sequence[] = {
4848   { &hf_camel_eventTypeSMS  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_EventTypeSMS },
4849   { &hf_camel_monitorMode   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_MonitorMode },
4850   { NULL, 0, 0, 0, NULL }
4851 };
4852
4853 static int
4854 dissect_camel_SMSEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4855   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4856                                    SMSEvent_sequence, hf_index, ett_camel_SMSEvent);
4857
4858   return offset;
4859 }
4860
4861
4862 static const value_string camel_TimerID_vals[] = {
4863   {   0, "tssf" },
4864   { 0, NULL }
4865 };
4866
4867
4868 static int
4869 dissect_camel_TimerID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4870   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4871                                   NULL);
4872
4873   return offset;
4874 }
4875
4876
4877
4878 static int
4879 dissect_camel_TimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4880   offset = dissect_inap_Integer4(implicit_tag, tvb, offset, actx, tree, hf_index);
4881
4882   return offset;
4883 }
4884
4885
4886
4887 static int
4888 dissect_camel_TPDataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4889   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4890                                        NULL);
4891
4892   return offset;
4893 }
4894
4895
4896
4897 static int
4898 dissect_camel_TPProtocolIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4899   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4900                                        NULL);
4901
4902   return offset;
4903 }
4904
4905
4906
4907 static int
4908 dissect_camel_TPShortMessageSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4909   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4910                                        NULL);
4911
4912   return offset;
4913 }
4914
4915
4916
4917 static int
4918 dissect_camel_TPValidityPeriod(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4919   offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
4920                                        NULL);
4921
4922   return offset;
4923 }
4924
4925
4926 static const value_string camel_UnavailableNetworkResource_vals[] = {
4927   {   0, "unavailableResources" },
4928   {   1, "componentFailure" },
4929   {   2, "basicCallProcessingException" },
4930   {   3, "resourceStatusFailure" },
4931   {   4, "endUserFailure" },
4932   { 0, NULL }
4933 };
4934
4935
4936 static int
4937 dissect_camel_UnavailableNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4938   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4939                                   NULL);
4940
4941   return offset;
4942 }
4943
4944
4945 static const value_string camel_T_par_cancelFailedProblem_vals[] = {
4946   {   0, "unknownOperation" },
4947   {   1, "tooLate" },
4948   {   2, "operationNotCancellable" },
4949   { 0, NULL }
4950 };
4951
4952
4953 static int
4954 dissect_camel_T_par_cancelFailedProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4955   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4956                                   NULL);
4957
4958   return offset;
4959 }
4960
4961
4962 static const ber_sequence_t PAR_cancelFailed_sequence[] = {
4963   { &hf_camel_par_cancelFailedProblem, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_par_cancelFailedProblem },
4964   { &hf_camel_operation     , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_InvokeID },
4965   { NULL, 0, 0, 0, NULL }
4966 };
4967
4968 static int
4969 dissect_camel_PAR_cancelFailed(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4970   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
4971                                    PAR_cancelFailed_sequence, hf_index, ett_camel_PAR_cancelFailed);
4972
4973   return offset;
4974 }
4975
4976
4977 static const value_string camel_PAR_requestedInfoError_vals[] = {
4978   {   1, "unknownRequestedInfo" },
4979   {   2, "requestedInfoNotAvailable" },
4980   { 0, NULL }
4981 };
4982
4983
4984 static int
4985 dissect_camel_PAR_requestedInfoError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
4986   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
4987                                   NULL);
4988
4989   return offset;
4990 }
4991
4992
4993 static const value_string camel_PAR_taskRefused_vals[] = {
4994   {   0, "generic" },
4995   {   1, "unobtainable" },
4996   {   2, "congestion" },
4997   { 0, NULL }
4998 };
4999
5000
5001 static int
5002 dissect_camel_PAR_taskRefused(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5003   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
5004                                   NULL);
5005
5006   return offset;
5007 }
5008
5009
5010 static const ber_sequence_t CAP_GPRS_ReferenceNumber_sequence[] = {
5011   { &hf_camel_destinationReference, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
5012   { &hf_camel_originationReference, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_Integer4 },
5013   { NULL, 0, 0, 0, NULL }
5014 };
5015
5016 static int
5017 dissect_camel_CAP_GPRS_ReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5018   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5019                                    CAP_GPRS_ReferenceNumber_sequence, hf_index, ett_camel_CAP_GPRS_ReferenceNumber);
5020
5021   return offset;
5022 }
5023
5024
5025 static const ber_sequence_t PlayAnnouncementArg_sequence[] = {
5026   { &hf_camel_informationToSend, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_InformationToSend },
5027   { &hf_camel_disconnectFromIPForbidden, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
5028   { &hf_camel_requestAnnouncementCompleteNotification, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
5029   { &hf_camel_extensions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5030   { &hf_camel_callSegmentID , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5031   { &hf_camel_requestAnnouncementStartedNotification, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
5032   { NULL, 0, 0, 0, NULL }
5033 };
5034
5035 static int
5036 dissect_camel_PlayAnnouncementArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5037   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5038                                    PlayAnnouncementArg_sequence, hf_index, ett_camel_PlayAnnouncementArg);
5039
5040   return offset;
5041 }
5042
5043
5044 static const ber_sequence_t PromptAndCollectUserInformationArg_sequence[] = {
5045   { &hf_camel_collectedInfo , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_CollectedInfo },
5046   { &hf_camel_disconnectFromIPForbidden, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
5047   { &hf_camel_informationToSend, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_InformationToSend },
5048   { &hf_camel_extensions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5049   { &hf_camel_callSegmentID , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5050   { &hf_camel_requestAnnouncementStartedNotification, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
5051   { NULL, 0, 0, 0, NULL }
5052 };
5053
5054 static int
5055 dissect_camel_PromptAndCollectUserInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5056   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5057                                    PromptAndCollectUserInformationArg_sequence, hf_index, ett_camel_PromptAndCollectUserInformationArg);
5058
5059   return offset;
5060 }
5061
5062
5063 static const value_string camel_ReceivedInformationArg_vals[] = {
5064   {   0, "digitsResponse" },
5065   { 0, NULL }
5066 };
5067
5068 static const ber_choice_t ReceivedInformationArg_choice[] = {
5069   {   0, &hf_camel_digitsResponse, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_Digits },
5070   { 0, NULL, 0, 0, 0, NULL }
5071 };
5072
5073 static int
5074 dissect_camel_ReceivedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5075   offset = dissect_ber_choice(actx, tree, tvb, offset,
5076                                  ReceivedInformationArg_choice, hf_index, ett_camel_ReceivedInformationArg,
5077                                  NULL);
5078
5079   return offset;
5080 }
5081
5082
5083 static const value_string camel_SpecializedResourceReportArg_vals[] = {
5084   {  50, "allAnnouncementsComplete" },
5085   {  51, "firstAnnouncementStarted" },
5086   { 0, NULL }
5087 };
5088
5089 static const ber_choice_t SpecializedResourceReportArg_choice[] = {
5090   {  50, &hf_camel_allAnnouncementsComplete, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5091   {  51, &hf_camel_firstAnnouncementStarted, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5092   { 0, NULL, 0, 0, 0, NULL }
5093 };
5094
5095 static int
5096 dissect_camel_SpecializedResourceReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5097   offset = dissect_ber_choice(actx, tree, tvb, offset,
5098                                  SpecializedResourceReportArg_choice, hf_index, ett_camel_SpecializedResourceReportArg,
5099                                  NULL);
5100
5101   return offset;
5102 }
5103
5104
5105 static const ber_sequence_t ApplyChargingArg_sequence[] = {
5106   { &hf_camel_aChBillingChargingCharacteristics, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_AChBillingChargingCharacteristics },
5107   { &hf_camel_partyToCharge , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_SendingSideID },
5108   { &hf_camel_extensions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5109   { &hf_camel_aChChargingAddress, BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_AChChargingAddress },
5110   { NULL, 0, 0, 0, NULL }
5111 };
5112
5113 static int
5114 dissect_camel_ApplyChargingArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5115   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5116                                    ApplyChargingArg_sequence, hf_index, ett_camel_ApplyChargingArg);
5117
5118   return offset;
5119 }
5120
5121
5122
5123 static int
5124 dissect_camel_ApplyChargingReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5125   offset = dissect_camel_CallResult(implicit_tag, tvb, offset, actx, tree, hf_index);
5126
5127   return offset;
5128 }
5129
5130
5131 static const ber_sequence_t AssistRequestInstructionsArg_sequence[] = {
5132   { &hf_camel_correlationID , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CorrelationID },
5133   { &hf_camel_iPSSPCapabilities, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_IPSSPCapabilities },
5134   { &hf_camel_extensions    , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5135   { NULL, 0, 0, 0, NULL }
5136 };
5137
5138 static int
5139 dissect_camel_AssistRequestInstructionsArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5140   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5141                                    AssistRequestInstructionsArg_sequence, hf_index, ett_camel_AssistRequestInstructionsArg);
5142
5143   return offset;
5144 }
5145
5146
5147 static const ber_sequence_t CallGapArg_sequence[] = {
5148   { &hf_camel_gapCriteria   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_GapCriteria },
5149   { &hf_camel_gapIndicators , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_GapIndicators },
5150   { &hf_camel_controlType   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ControlType },
5151   { &hf_camel_gapTreatment  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_GapTreatment },
5152   { &hf_camel_extensions    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5153   { NULL, 0, 0, 0, NULL }
5154 };
5155
5156 static int
5157 dissect_camel_CallGapArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5158   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5159                                    CallGapArg_sequence, hf_index, ett_camel_CallGapArg);
5160
5161   return offset;
5162 }
5163
5164
5165 static const ber_sequence_t CallInformationReportArg_sequence[] = {
5166   { &hf_camel_requestedInformationList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_RequestedInformationList },
5167   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5168   { &hf_camel_legID_01      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ReceivingSideID },
5169   { NULL, 0, 0, 0, NULL }
5170 };
5171
5172 static int
5173 dissect_camel_CallInformationReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5174   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5175                                    CallInformationReportArg_sequence, hf_index, ett_camel_CallInformationReportArg);
5176
5177   return offset;
5178 }
5179
5180
5181 static const ber_sequence_t CallInformationRequestArg_sequence[] = {
5182   { &hf_camel_requestedInformationTypeList, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_RequestedInformationTypeList },
5183   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5184   { &hf_camel_legID_02      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_SendingSideID },
5185   { NULL, 0, 0, 0, NULL }
5186 };
5187
5188 static int
5189 dissect_camel_CallInformationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5190   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5191                                    CallInformationRequestArg_sequence, hf_index, ett_camel_CallInformationRequestArg);
5192
5193   return offset;
5194 }
5195
5196
5197 static const value_string camel_CancelArg_vals[] = {
5198   {   0, "invokeID" },
5199   {   1, "allRequests" },
5200   {   2, "callSegmentToCancel" },
5201   { 0, NULL }
5202 };
5203
5204 static const ber_choice_t CancelArg_choice[] = {
5205   {   0, &hf_camel_invokeID      , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_InvokeID },
5206   {   1, &hf_camel_allRequests   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5207   {   2, &hf_camel_callSegmentToCancel, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentToCancel },
5208   { 0, NULL, 0, 0, 0, NULL }
5209 };
5210
5211 static int
5212 dissect_camel_CancelArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5213   offset = dissect_ber_choice(actx, tree, tvb, offset,
5214                                  CancelArg_choice, hf_index, ett_camel_CancelArg,
5215                                  NULL);
5216
5217   return offset;
5218 }
5219
5220
5221 static const ber_sequence_t ConnectArg_sequence[] = {
5222   { &hf_camel_destinationRoutingAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_DestinationRoutingAddress },
5223   { &hf_camel_alertingPattern, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AlertingPattern },
5224   { &hf_camel_originalCalledPartyID, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OriginalCalledPartyID },
5225   { &hf_camel_extensions    , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5226   { &hf_camel_carrier       , BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Carrier },
5227   { &hf_camel_callingPartysCategory, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_CallingPartysCategory },
5228   { &hf_camel_redirectingPartyID, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_RedirectingPartyID },
5229   { &hf_camel_redirectionInformation, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_RedirectionInformation },
5230   { &hf_camel_genericNumbers, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GenericNumbers },
5231   { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo },
5232   { &hf_camel_chargeNumber  , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeNumber },
5233   { &hf_camel_legToBeConnected, BER_CLASS_CON, 21, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_LegID },
5234   { &hf_camel_cug_Interlock , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
5235   { &hf_camel_cug_OutgoingAccess, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5236   { &hf_camel_suppressionOfAnnouncement, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
5237   { &hf_camel_oCSIApplicable, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OCSIApplicable },
5238   { &hf_camel_naOliInfo     , BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NAOliInfo },
5239   { &hf_camel_bor_InterrogationRequested, BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5240   { &hf_camel_suppress_N_CSI, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5241   { NULL, 0, 0, 0, NULL }
5242 };
5243
5244 static int
5245 dissect_camel_ConnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5246   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5247                                    ConnectArg_sequence, hf_index, ett_camel_ConnectArg);
5248
5249   return offset;
5250 }
5251
5252
5253 static const value_string camel_T_resourceAddress_vals[] = {
5254   {   0, "ipRoutingAddress" },
5255   {   3, "none" },
5256   { 0, NULL }
5257 };
5258
5259 static const ber_choice_t T_resourceAddress_choice[] = {
5260   {   0, &hf_camel_ipRoutingAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_IPRoutingAddress },
5261   {   3, &hf_camel_none          , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5262   { 0, NULL, 0, 0, 0, NULL }
5263 };
5264
5265 static int
5266 dissect_camel_T_resourceAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5267   offset = dissect_ber_choice(actx, tree, tvb, offset,
5268                                  T_resourceAddress_choice, hf_index, ett_camel_T_resourceAddress,
5269                                  NULL);
5270
5271   return offset;
5272 }
5273
5274
5275 static const ber_sequence_t ConnectToResourceArg_sequence[] = {
5276   { &hf_camel_resourceAddress, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_T_resourceAddress },
5277   { &hf_camel_extensions    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5278   { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo },
5279   { &hf_camel_callSegmentID , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5280   { NULL, 0, 0, 0, NULL }
5281 };
5282
5283 static int
5284 dissect_camel_ConnectToResourceArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5285   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5286                                    ConnectToResourceArg_sequence, hf_index, ett_camel_ConnectToResourceArg);
5287
5288   return offset;
5289 }
5290
5291
5292 static const ber_sequence_t ContinueWithArgumentArgExtension_sequence[] = {
5293   { &hf_camel_suppress_D_CSI, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5294   { &hf_camel_suppress_N_CSI, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5295   { &hf_camel_suppressOutgoingCallBarring, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5296   { &hf_camel_legOrCallSegment, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_LegOrCallSegment },
5297   { NULL, 0, 0, 0, NULL }
5298 };
5299
5300 static int
5301 dissect_camel_ContinueWithArgumentArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5302   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5303                                    ContinueWithArgumentArgExtension_sequence, hf_index, ett_camel_ContinueWithArgumentArgExtension);
5304
5305   return offset;
5306 }
5307
5308
5309 static const ber_sequence_t ContinueWithArgumentArg_sequence[] = {
5310   { &hf_camel_alertingPattern, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AlertingPattern },
5311   { &hf_camel_extensions    , BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5312   { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo },
5313   { &hf_camel_callingPartysCategory, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_CallingPartysCategory },
5314   { &hf_camel_genericNumbers, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_GenericNumbers },
5315   { &hf_camel_cug_Interlock , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
5316   { &hf_camel_cug_OutgoingAccess, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5317   { &hf_camel_chargeNumber  , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeNumber },
5318   { &hf_camel_carrier       , BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Carrier },
5319   { &hf_camel_suppressionOfAnnouncement, BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_SuppressionOfAnnouncement },
5320   { &hf_camel_naOliInfo     , BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NAOliInfo },
5321   { &hf_camel_bor_InterrogationRequested, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5322   { &hf_camel_suppress_O_CSI, BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5323   { &hf_camel_continueWithArgumentArgExtension, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ContinueWithArgumentArgExtension },
5324   { NULL, 0, 0, 0, NULL }
5325 };
5326
5327 static int
5328 dissect_camel_ContinueWithArgumentArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5329   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5330                                    ContinueWithArgumentArg_sequence, hf_index, ett_camel_ContinueWithArgumentArg);
5331
5332   return offset;
5333 }
5334
5335
5336 static const ber_sequence_t DisconnectForwardConnectionWithArgumentArg_sequence[] = {
5337   { &hf_camel_callSegmentID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5338   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5339   { NULL, 0, 0, 0, NULL }
5340 };
5341
5342 static int
5343 dissect_camel_DisconnectForwardConnectionWithArgumentArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5344   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5345                                    DisconnectForwardConnectionWithArgumentArg_sequence, hf_index, ett_camel_DisconnectForwardConnectionWithArgumentArg);
5346
5347   return offset;
5348 }
5349
5350
5351 static const ber_sequence_t DisconnectLegArg_sequence[] = {
5352   { &hf_camel_legToBeReleased, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_LegID },
5353   { &hf_camel_releaseCause  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
5354   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5355   { NULL, 0, 0, 0, NULL }
5356 };
5357
5358 static int
5359 dissect_camel_DisconnectLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5360   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5361                                    DisconnectLegArg_sequence, hf_index, ett_camel_DisconnectLegArg);
5362
5363   return offset;
5364 }
5365
5366
5367 static const value_string camel_EntityReleasedArg_vals[] = {
5368   {   0, "callSegmentFailure" },
5369   {   1, "bCSM-Failure" },
5370   { 0, NULL }
5371 };
5372
5373 static const ber_choice_t EntityReleasedArg_choice[] = {
5374   {   0, &hf_camel_callSegmentFailure, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentFailure },
5375   {   1, &hf_camel_bCSM_Failure  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_BCSM_Failure },
5376   { 0, NULL, 0, 0, 0, NULL }
5377 };
5378
5379 static int
5380 dissect_camel_EntityReleasedArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5381   offset = dissect_ber_choice(actx, tree, tvb, offset,
5382                                  EntityReleasedArg_choice, hf_index, ett_camel_EntityReleasedArg,
5383                                  NULL);
5384
5385   return offset;
5386 }
5387
5388
5389 static const ber_sequence_t EstablishTemporaryConnectionArg_sequence[] = {
5390   { &hf_camel_assistingSSPIPRoutingAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_AssistingSSPIPRoutingAddress },
5391   { &hf_camel_correlationID , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CorrelationID },
5392   { &hf_camel_scfID         , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ScfID },
5393   { &hf_camel_extensions    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5394   { &hf_camel_carrier       , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Carrier },
5395   { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo },
5396   { &hf_camel_callSegmentID , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5397   { &hf_camel_naOliInfo     , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NAOliInfo },
5398   { &hf_camel_chargeNumber  , BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ChargeNumber },
5399   { &hf_camel_originalCalledPartyID, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OriginalCalledPartyID },
5400   { &hf_camel_callingPartyNumber, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallingPartyNumber },
5401   { NULL, 0, 0, 0, NULL }
5402 };
5403
5404 static int
5405 dissect_camel_EstablishTemporaryConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5406   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5407                                    EstablishTemporaryConnectionArg_sequence, hf_index, ett_camel_EstablishTemporaryConnectionArg);
5408
5409   return offset;
5410 }
5411
5412
5413 static const ber_sequence_t EventReportBCSMArg_sequence[] = {
5414   { &hf_camel_eventTypeBCSM , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_EventTypeBCSM },
5415   { &hf_camel_eventSpecificInformationBCSM, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_EventSpecificInformationBCSM },
5416   { &hf_camel_legID_01      , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ReceivingSideID },
5417   { &hf_camel_miscCallInfo  , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_MiscCallInfo },
5418   { &hf_camel_extensions    , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5419   { NULL, 0, 0, 0, NULL }
5420 };
5421
5422 static int
5423 dissect_camel_EventReportBCSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5424   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5425                                    EventReportBCSMArg_sequence, hf_index, ett_camel_EventReportBCSMArg);
5426
5427   return offset;
5428 }
5429
5430
5431
5432 static int
5433 dissect_camel_FurnishChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5434   offset = dissect_camel_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, actx, tree, hf_index);
5435
5436   return offset;
5437 }
5438
5439
5440 static const ber_sequence_t InitialDPArgExtension_sequence[] = {
5441   { &hf_camel_gmscAddress   , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5442   { &hf_camel_forwardingDestinationNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
5443   { &hf_camel_ms_Classmark2 , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
5444   { &hf_camel_iMEI          , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
5445   { &hf_camel_supportedCamelPhases, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
5446   { &hf_camel_offeredCamel4Functionalities, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
5447   { &hf_camel_bearerCapability2, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_BearerCapability },
5448   { &hf_camel_ext_basicServiceCode2, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
5449   { &hf_camel_highLayerCompatibility2, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_HighLayerCompatibility },
5450   { &hf_camel_lowLayerCompatibility, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LowLayerCompatibility },
5451   { &hf_camel_lowLayerCompatibility2, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LowLayerCompatibility },
5452   { &hf_camel_enhancedDialledServicesAllowed, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5453   { &hf_camel_uu_Data       , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_UU_Data },
5454   { &hf_camel_collectInformationAllowed, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5455   { NULL, 0, 0, 0, NULL }
5456 };
5457
5458 static int
5459 dissect_camel_InitialDPArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5460   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5461                                    InitialDPArgExtension_sequence, hf_index, ett_camel_InitialDPArgExtension);
5462
5463   return offset;
5464 }
5465
5466
5467 static const ber_sequence_t InitialDPArg_sequence[] = {
5468   { &hf_camel_serviceKey    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_ServiceKey },
5469   { &hf_camel_calledPartyNumber, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyNumber },
5470   { &hf_camel_callingPartyNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallingPartyNumber },
5471   { &hf_camel_callingPartysCategory, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_CallingPartysCategory },
5472   { &hf_camel_cGEncountered , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CGEncountered },
5473   { &hf_camel_iPSSPCapabilities, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_IPSSPCapabilities },
5474   { &hf_camel_locationNumber, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationNumber },
5475   { &hf_camel_originalCalledPartyID, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_OriginalCalledPartyID },
5476   { &hf_camel_extensions    , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5477   { &hf_camel_highLayerCompatibility, BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_HighLayerCompatibility },
5478   { &hf_camel_additionalCallingPartyNumber, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AdditionalCallingPartyNumber },
5479   { &hf_camel_bearerCapability, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_BearerCapability },
5480   { &hf_camel_eventTypeBCSM , BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EventTypeBCSM },
5481   { &hf_camel_redirectingPartyID, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_RedirectingPartyID },
5482   { &hf_camel_redirectionInformation, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_RedirectionInformation },
5483   { &hf_camel_cause         , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Cause },
5484   { &hf_camel_serviceInteractionIndicatorsTwo, BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_ServiceInteractionIndicatorsTwo },
5485   { &hf_camel_carrier       , BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Carrier },
5486   { &hf_camel_cug_Index     , BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Index },
5487   { &hf_camel_cug_Interlock , BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_CUG_Interlock },
5488   { &hf_camel_cug_OutgoingAccess, BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5489   { &hf_camel_iMSI          , BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5490   { &hf_camel_subscriberState, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SubscriberState },
5491   { &hf_camel_locationInformation, BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
5492   { &hf_camel_ext_basicServiceCode, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_Ext_BasicServiceCode },
5493   { &hf_camel_callReferenceNumber, BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
5494   { &hf_camel_mscAddress    , BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5495   { &hf_camel_calledPartyBCDNumber, BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyBCDNumber },
5496   { &hf_camel_timeAndTimezone, BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone },
5497   { &hf_camel_callForwardingSS_Pending, BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5498   { &hf_camel_initialDPArgExtension, BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_InitialDPArgExtension },
5499   { NULL, 0, 0, 0, NULL }
5500 };
5501
5502 static int
5503 dissect_camel_InitialDPArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5504   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5505                                    InitialDPArg_sequence, hf_index, ett_camel_InitialDPArg);
5506
5507   return offset;
5508 }
5509
5510
5511 static const ber_sequence_t InitiateCallAttemptArg_sequence[] = {
5512   { &hf_camel_destinationRoutingAddress, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_DestinationRoutingAddress },
5513   { &hf_camel_extensions    , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5514   { &hf_camel_legToBeCreated, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_LegID },
5515   { &hf_camel_newCallSegment, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5516   { &hf_camel_callingPartyNumber, BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallingPartyNumber },
5517   { &hf_camel_callReferenceNumber, BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
5518   { &hf_camel_gsmSCFAddress , BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5519   { &hf_camel_suppress_T_CSI, BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5520   { NULL, 0, 0, 0, NULL }
5521 };
5522
5523 static int
5524 dissect_camel_InitiateCallAttemptArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5525   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5526                                    InitiateCallAttemptArg_sequence, hf_index, ett_camel_InitiateCallAttemptArg);
5527
5528   return offset;
5529 }
5530
5531
5532 static const ber_sequence_t InitiateCallAttemptRes_sequence[] = {
5533   { &hf_camel_supportedCamelPhases, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_SupportedCamelPhases },
5534   { &hf_camel_offeredCamel4Functionalities, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_OfferedCamel4Functionalities },
5535   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5536   { NULL, 0, 0, 0, NULL }
5537 };
5538
5539 static int
5540 dissect_camel_InitiateCallAttemptRes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5541   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5542                                    InitiateCallAttemptRes_sequence, hf_index, ett_camel_InitiateCallAttemptRes);
5543
5544   return offset;
5545 }
5546
5547
5548 static const ber_sequence_t MoveLegArg_sequence[] = {
5549   { &hf_camel_legIDToMove   , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_LegID },
5550   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5551   { NULL, 0, 0, 0, NULL }
5552 };
5553
5554 static int
5555 dissect_camel_MoveLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5556   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5557                                    MoveLegArg_sequence, hf_index, ett_camel_MoveLegArg);
5558
5559   return offset;
5560 }
5561
5562
5563 static const ber_sequence_t PlayToneArg_sequence[] = {
5564   { &hf_camel_legOrCallSegment, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_LegOrCallSegment },
5565   { &hf_camel_bursts        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_Burst },
5566   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5567   { NULL, 0, 0, 0, NULL }
5568 };
5569
5570 static int
5571 dissect_camel_PlayToneArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5572   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5573                                    PlayToneArg_sequence, hf_index, ett_camel_PlayToneArg);
5574
5575   return offset;
5576 }
5577
5578
5579
5580 static int
5581 dissect_camel_ReleaseCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5582   offset = dissect_camel_Cause(implicit_tag, tvb, offset, actx, tree, hf_index);
5583
5584   return offset;
5585 }
5586
5587
5588 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent_sequence_of[1] = {
5589   { &hf_camel_bcsmEvents_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_camel_BCSMEvent },
5590 };
5591
5592 static int
5593 dissect_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5594   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5595                                       SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent_sequence_of, hf_index, ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent);
5596
5597   return offset;
5598 }
5599
5600
5601 static const ber_sequence_t RequestReportBCSMEventArg_sequence[] = {
5602   { &hf_camel_bcsmEvents    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent },
5603   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5604   { NULL, 0, 0, 0, NULL }
5605 };
5606
5607 static int
5608 dissect_camel_RequestReportBCSMEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5609   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5610                                    RequestReportBCSMEventArg_sequence, hf_index, ett_camel_RequestReportBCSMEventArg);
5611
5612   return offset;
5613 }
5614
5615
5616 static const ber_sequence_t ResetTimerArg_sequence[] = {
5617   { &hf_camel_timerID       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimerID },
5618   { &hf_camel_timervalue    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_TimerValue },
5619   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5620   { &hf_camel_callSegmentID , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5621   { NULL, 0, 0, 0, NULL }
5622 };
5623
5624 static int
5625 dissect_camel_ResetTimerArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5626   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5627                                    ResetTimerArg_sequence, hf_index, ett_camel_ResetTimerArg);
5628
5629   return offset;
5630 }
5631
5632
5633 static const ber_sequence_t SendChargingInformationArg_sequence[] = {
5634   { &hf_camel_sCIBillingChargingCharacteristics, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_SCIBillingChargingCharacteristics },
5635   { &hf_camel_partyToCharge , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_SendingSideID },
5636   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5637   { NULL, 0, 0, 0, NULL }
5638 };
5639
5640 static int
5641 dissect_camel_SendChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5642   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5643                                    SendChargingInformationArg_sequence, hf_index, ett_camel_SendChargingInformationArg);
5644
5645   return offset;
5646 }
5647
5648
5649 static const ber_sequence_t SplitLegArg_sequence[] = {
5650   { &hf_camel_legToBeSplit  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_LegID },
5651   { &hf_camel_newCallSegment, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CallSegmentID },
5652   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5653   { NULL, 0, 0, 0, NULL }
5654 };
5655
5656 static int
5657 dissect_camel_SplitLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5658   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5659                                    SplitLegArg_sequence, hf_index, ett_camel_SplitLegArg);
5660
5661   return offset;
5662 }
5663
5664
5665 static const ber_sequence_t ApplyChargingGPRSArg_sequence[] = {
5666   { &hf_camel_chargingCharacteristics, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ChargingCharacteristics },
5667   { &hf_camel_applyChargingGPRS_tariffSwitchInterval, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_INTEGER_1_86400 },
5668   { &hf_camel_pDPID         , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5669   { NULL, 0, 0, 0, NULL }
5670 };
5671
5672 static int
5673 dissect_camel_ApplyChargingGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5674   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5675                                    ApplyChargingGPRSArg_sequence, hf_index, ett_camel_ApplyChargingGPRSArg);
5676
5677   return offset;
5678 }
5679
5680
5681 static const ber_sequence_t ApplyChargingReportGPRSArg_sequence[] = {
5682   { &hf_camel_chargingResult, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ChargingResult },
5683   { &hf_camel_qualityOfService, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService },
5684   { &hf_camel_active        , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_BOOLEAN },
5685   { &hf_camel_pDPID         , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5686   { &hf_camel_chargingRollOver, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_ChargingRollOver },
5687   { NULL, 0, 0, 0, NULL }
5688 };
5689
5690 static int
5691 dissect_camel_ApplyChargingReportGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5692   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5693                                    ApplyChargingReportGPRSArg_sequence, hf_index, ett_camel_ApplyChargingReportGPRSArg);
5694
5695   return offset;
5696 }
5697
5698
5699 static const ber_sequence_t CancelGPRSArg_sequence[] = {
5700   { &hf_camel_pDPID         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5701   { NULL, 0, 0, 0, NULL }
5702 };
5703
5704 static int
5705 dissect_camel_CancelGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5706   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5707                                    CancelGPRSArg_sequence, hf_index, ett_camel_CancelGPRSArg);
5708
5709   return offset;
5710 }
5711
5712
5713 static const ber_sequence_t ConnectGPRSArg_sequence[] = {
5714   { &hf_camel_accessPointName, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName },
5715   { &hf_camel_pdpID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5716   { NULL, 0, 0, 0, NULL }
5717 };
5718
5719 static int
5720 dissect_camel_ConnectGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5721   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5722                                    ConnectGPRSArg_sequence, hf_index, ett_camel_ConnectGPRSArg);
5723
5724   return offset;
5725 }
5726
5727
5728 static const ber_sequence_t ContinueGPRSArg_sequence[] = {
5729   { &hf_camel_pDPID         , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5730   { NULL, 0, 0, 0, NULL }
5731 };
5732
5733 static int
5734 dissect_camel_ContinueGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5735   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5736                                    ContinueGPRSArg_sequence, hf_index, ett_camel_ContinueGPRSArg);
5737
5738   return offset;
5739 }
5740
5741
5742 static const ber_sequence_t EntityReleasedGPRSArg_sequence[] = {
5743   { &hf_camel_gPRSCause     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_GPRSCause },
5744   { &hf_camel_pDPID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5745   { NULL, 0, 0, 0, NULL }
5746 };
5747
5748 static int
5749 dissect_camel_EntityReleasedGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5750   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5751                                    EntityReleasedGPRSArg_sequence, hf_index, ett_camel_EntityReleasedGPRSArg);
5752
5753   return offset;
5754 }
5755
5756
5757 static const ber_sequence_t EventReportGPRSArg_sequence[] = {
5758   { &hf_camel_gPRSEventType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_GPRSEventType },
5759   { &hf_camel_miscGPRSInfo  , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_MiscCallInfo },
5760   { &hf_camel_gPRSEventSpecificInformation, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_GPRSEventSpecificInformation },
5761   { &hf_camel_pDPID         , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5762   { NULL, 0, 0, 0, NULL }
5763 };
5764
5765 static int
5766 dissect_camel_EventReportGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5767   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5768                                    EventReportGPRSArg_sequence, hf_index, ett_camel_EventReportGPRSArg);
5769
5770   return offset;
5771 }
5772
5773
5774
5775 static int
5776 dissect_camel_FurnishChargingInformationGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5777   offset = dissect_camel_FCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, actx, tree, hf_index);
5778
5779   return offset;
5780 }
5781
5782
5783 static const ber_sequence_t InitialDPGPRSArg_sequence[] = {
5784   { &hf_camel_serviceKey    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_ServiceKey },
5785   { &hf_camel_gPRSEventType , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_GPRSEventType },
5786   { &hf_camel_mSISDN        , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5787   { &hf_camel_iMSI          , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5788   { &hf_camel_timeAndTimeZone, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone },
5789   { &hf_camel_gPRSMSClass   , BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
5790   { &hf_camel_endUserAddress, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EndUserAddress },
5791   { &hf_camel_qualityOfService, BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_QualityOfService },
5792   { &hf_camel_accessPointName, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_AccessPointName },
5793   { &hf_camel_routeingAreaIdentity, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_RAIdentity },
5794   { &hf_camel_chargingID    , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSChargingID },
5795   { &hf_camel_sGSNCapabilities, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SGSNCapabilities },
5796   { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS },
5797   { &hf_camel_pDPInitiationType, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPInitiationType },
5798   { &hf_camel_extensions    , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5799   { &hf_camel_gGSNAddress   , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_GSN_Address },
5800   { &hf_camel_secondaryPDP_context, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_NULL },
5801   { &hf_camel_iMEI          , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
5802   { NULL, 0, 0, 0, NULL }
5803 };
5804
5805 static int
5806 dissect_camel_InitialDPGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5807   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5808                                    InitialDPGPRSArg_sequence, hf_index, ett_camel_InitialDPGPRSArg);
5809
5810   return offset;
5811 }
5812
5813
5814 static const ber_sequence_t ReleaseGPRSArg_sequence[] = {
5815   { &hf_camel_gprsCause     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_GPRSCause },
5816   { &hf_camel_pDPID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5817   { NULL, 0, 0, 0, NULL }
5818 };
5819
5820 static int
5821 dissect_camel_ReleaseGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5822   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5823                                    ReleaseGPRSArg_sequence, hf_index, ett_camel_ReleaseGPRSArg);
5824
5825   return offset;
5826 }
5827
5828
5829 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent_sequence_of[1] = {
5830   { &hf_camel_gPRSEvent_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_camel_GPRSEvent },
5831 };
5832
5833 static int
5834 dissect_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5835   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5836                                       SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent_sequence_of, hf_index, ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent);
5837
5838   return offset;
5839 }
5840
5841
5842 static const ber_sequence_t RequestReportGPRSEventArg_sequence[] = {
5843   { &hf_camel_gPRSEvent     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent },
5844   { &hf_camel_pDPID         , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_PDPID },
5845   { NULL, 0, 0, 0, NULL }
5846 };
5847
5848 static int
5849 dissect_camel_RequestReportGPRSEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5850   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5851                                    RequestReportGPRSEventArg_sequence, hf_index, ett_camel_RequestReportGPRSEventArg);
5852
5853   return offset;
5854 }
5855
5856
5857 static const ber_sequence_t ResetTimerGPRSArg_sequence[] = {
5858   { &hf_camel_timerID       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimerID },
5859   { &hf_camel_timervalue    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_TimerValue },
5860   { NULL, 0, 0, 0, NULL }
5861 };
5862
5863 static int
5864 dissect_camel_ResetTimerGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5865   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5866                                    ResetTimerGPRSArg_sequence, hf_index, ett_camel_ResetTimerGPRSArg);
5867
5868   return offset;
5869 }
5870
5871
5872 static const ber_sequence_t SendChargingInformationGPRSArg_sequence[] = {
5873   { &hf_camel_sCIGPRSBillingChargingCharacteristics, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_SCIGPRSBillingChargingCharacteristics },
5874   { NULL, 0, 0, 0, NULL }
5875 };
5876
5877 static int
5878 dissect_camel_SendChargingInformationGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5879   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5880                                    SendChargingInformationGPRSArg_sequence, hf_index, ett_camel_SendChargingInformationGPRSArg);
5881
5882   return offset;
5883 }
5884
5885
5886 static const ber_sequence_t ConnectSMSArg_sequence[] = {
5887   { &hf_camel_callingPartysNumber, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SMS_AddressString },
5888   { &hf_camel_destinationSubscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyBCDNumber },
5889   { &hf_camel_sMSCAddress   , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5890   { &hf_camel_extensions    , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5891   { NULL, 0, 0, 0, NULL }
5892 };
5893
5894 static int
5895 dissect_camel_ConnectSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5896   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5897                                    ConnectSMSArg_sequence, hf_index, ett_camel_ConnectSMSArg);
5898
5899   return offset;
5900 }
5901
5902
5903 static const ber_sequence_t EventReportSMSArg_sequence[] = {
5904   { &hf_camel_eventTypeSMS  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_EventTypeSMS },
5905   { &hf_camel_eventSpecificInformationSMS, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_EventSpecificInformationSMS },
5906   { &hf_camel_miscCallInfo  , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inap_MiscCallInfo },
5907   { &hf_camel_extensions    , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5908   { NULL, 0, 0, 0, NULL }
5909 };
5910
5911 static int
5912 dissect_camel_EventReportSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5913   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5914                                    EventReportSMSArg_sequence, hf_index, ett_camel_EventReportSMSArg);
5915
5916   return offset;
5917 }
5918
5919
5920
5921 static int
5922 dissect_camel_FurnishChargingInformationSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5923   offset = dissect_camel_FCISMSBillingChargingCharacteristics(implicit_tag, tvb, offset, actx, tree, hf_index);
5924
5925   return offset;
5926 }
5927
5928
5929 static const ber_sequence_t InitialDPSMSArg_sequence[] = {
5930   { &hf_camel_serviceKey    , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inap_ServiceKey },
5931   { &hf_camel_destinationSubscriberNumber, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_CalledPartyBCDNumber },
5932   { &hf_camel_callingPartyNumber_01, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_SMS_AddressString },
5933   { &hf_camel_eventTypeSMS  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_EventTypeSMS },
5934   { &hf_camel_iMSI          , BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMSI },
5935   { &hf_camel_locationInformationMSC, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_LocationInformation },
5936   { &hf_camel_locationInformationGPRS, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_LocationInformationGPRS },
5937   { &hf_camel_sMSCAddress   , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5938   { &hf_camel_timeAndTimezone, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimeAndTimezone },
5939   { &hf_camel_tPShortMessageSpecificInfo, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TPShortMessageSpecificInfo },
5940   { &hf_camel_tPProtocolIdentifier, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TPProtocolIdentifier },
5941   { &hf_camel_tPDataCodingScheme, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TPDataCodingScheme },
5942   { &hf_camel_tPValidityPeriod, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TPValidityPeriod },
5943   { &hf_camel_extensions    , BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5944   { &hf_camel_smsReferenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ch_CallReferenceNumber },
5945   { &hf_camel_mscAddress    , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5946   { &hf_camel_sgsn_Number   , BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5947   { &hf_camel_ms_Classmark2 , BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_MS_Classmark2 },
5948   { &hf_camel_gPRSMSClass   , BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ms_GPRSMSClass },
5949   { &hf_camel_iMEI          , BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
5950   { &hf_camel_calledPartyNumber_01, BER_CLASS_CON, 20, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_ISDN_AddressString },
5951   { NULL, 0, 0, 0, NULL }
5952 };
5953
5954 static int
5955 dissect_camel_InitialDPSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5956   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5957                                    InitialDPSMSArg_sequence, hf_index, ett_camel_InitialDPSMSArg);
5958
5959   return offset;
5960 }
5961
5962
5963
5964 static int
5965 dissect_camel_ReleaseSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5966   offset = dissect_camel_RPCause(implicit_tag, tvb, offset, actx, tree, hf_index);
5967
5968   return offset;
5969 }
5970
5971
5972 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent_sequence_of[1] = {
5973   { &hf_camel_sMSEvents_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_camel_SMSEvent },
5974 };
5975
5976 static int
5977 dissect_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5978   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
5979                                       SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent_sequence_of, hf_index, ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent);
5980
5981   return offset;
5982 }
5983
5984
5985 static const ber_sequence_t RequestReportSMSEventArg_sequence[] = {
5986   { &hf_camel_sMSEvents     , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent },
5987   { &hf_camel_extensions    , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
5988   { NULL, 0, 0, 0, NULL }
5989 };
5990
5991 static int
5992 dissect_camel_RequestReportSMSEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
5993   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
5994                                    RequestReportSMSEventArg_sequence, hf_index, ett_camel_RequestReportSMSEventArg);
5995
5996   return offset;
5997 }
5998
5999
6000 static const ber_sequence_t ResetTimerSMSArg_sequence[] = {
6001   { &hf_camel_timerID       , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_TimerID },
6002   { &hf_camel_timervalue    , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_TimerValue },
6003   { &hf_camel_extensions    , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_camel_Extensions },
6004   { NULL, 0, 0, 0, NULL }
6005 };
6006
6007 static int
6008 dissect_camel_ResetTimerSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6009   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6010                                    ResetTimerSMSArg_sequence, hf_index, ett_camel_ResetTimerSMSArg);
6011
6012   return offset;
6013 }
6014
6015
6016 static const value_string camel_CAP_U_ABORT_REASON_vals[] = {
6017   {   1, "no-reason-given" },
6018   {   2, "application-timer-expired" },
6019   {   3, "not-allowed-procedures" },
6020   {   4, "abnormal-processing" },
6021   {   5, "congestion" },
6022   {   6, "invalid-reference" },
6023   {   7, "missing-reference" },
6024   {   8, "overlapping-dialogue" },
6025   { 0, NULL }
6026 };
6027
6028
6029 static int
6030 dissect_camel_CAP_U_ABORT_REASON(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6031   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6032                                   NULL);
6033
6034   return offset;
6035 }
6036
6037
6038
6039 static int
6040 dissect_camel_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6041   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6042                                                 NULL);
6043
6044   return offset;
6045 }
6046
6047
6048 static const value_string camel_InvokeId_vals[] = {
6049   {   0, "present" },
6050   {   1, "absent" },
6051   { 0, NULL }
6052 };
6053
6054 static const ber_choice_t InvokeId_choice[] = {
6055   {   0, &hf_camel_present       , BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_camel_INTEGER },
6056   {   1, &hf_camel_absent        , BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_camel_NULL },
6057   { 0, NULL, 0, 0, 0, NULL }
6058 };
6059
6060 static int
6061 dissect_camel_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6062   offset = dissect_ber_choice(actx, tree, tvb, offset,
6063                                  InvokeId_choice, hf_index, ett_camel_InvokeId,
6064                                  NULL);
6065
6066   return offset;
6067 }
6068
6069
6070
6071 static int
6072 dissect_camel_InvokeId_present(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6073   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6074                                                 NULL);
6075
6076   return offset;
6077 }
6078
6079
6080
6081 static int
6082 dissect_camel_T_linkedIdPresent(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6083   offset = dissect_camel_InvokeId_present(implicit_tag, tvb, offset, actx, tree, hf_index);
6084
6085   return offset;
6086 }
6087
6088
6089 static const value_string camel_T_linkedId_vals[] = {
6090   {   0, "present" },
6091   {   1, "absent" },
6092   { 0, NULL }
6093 };
6094
6095 static const ber_choice_t T_linkedId_choice[] = {
6096   {   0, &hf_camel_linkedIdPresent, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_T_linkedIdPresent },
6097   {   1, &hf_camel_absent        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_NULL },
6098   { 0, NULL, 0, 0, 0, NULL }
6099 };
6100
6101 static int
6102 dissect_camel_T_linkedId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6103   offset = dissect_ber_choice(actx, tree, tvb, offset,
6104                                  T_linkedId_choice, hf_index, ett_camel_T_linkedId,
6105                                  NULL);
6106
6107   return offset;
6108 }
6109
6110
6111
6112 static int
6113 dissect_camel_T_argument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6114         offset = dissect_invokeData(tree, tvb, offset, actx);
6115
6116
6117   return offset;
6118 }
6119
6120
6121 static const ber_sequence_t Invoke_sequence[] = {
6122   { &hf_camel_invokeId      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_InvokeId },
6123   { &hf_camel_linkedId      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_T_linkedId },
6124   { &hf_camel_opcode        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_Code },
6125   { &hf_camel_argument      , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_camel_T_argument },
6126   { NULL, 0, 0, 0, NULL }
6127 };
6128
6129 static int
6130 dissect_camel_Invoke(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6131   camel_opcode_type=CAMEL_OPCODE_INVOKE;
6132
6133   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6134                                    Invoke_sequence, hf_index, ett_camel_Invoke);
6135
6136   return offset;
6137 }
6138
6139
6140
6141 static int
6142 dissect_camel_ResultArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6143         offset = dissect_returnResultData(tree, tvb, offset, actx);
6144
6145
6146   return offset;
6147 }
6148
6149
6150 static const ber_sequence_t T_result_sequence[] = {
6151   { &hf_camel_opcode        , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_Code },
6152   { &hf_camel_resultArgument, BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_camel_ResultArgument },
6153   { NULL, 0, 0, 0, NULL }
6154 };
6155
6156 static int
6157 dissect_camel_T_result(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6158   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6159                                    T_result_sequence, hf_index, ett_camel_T_result);
6160
6161   return offset;
6162 }
6163
6164
6165 static const ber_sequence_t ReturnResult_sequence[] = {
6166   { &hf_camel_invokeId      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_InvokeId },
6167   { &hf_camel_result        , BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_camel_T_result },
6168   { NULL, 0, 0, 0, NULL }
6169 };
6170
6171 static int
6172 dissect_camel_ReturnResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6173   camel_opcode_type=CAMEL_OPCODE_RETURN_RESULT;
6174
6175   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6176                                    ReturnResult_sequence, hf_index, ett_camel_ReturnResult);
6177
6178   return offset;
6179 }
6180
6181
6182
6183 static int
6184 dissect_camel_T_parameter(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6185         offset = dissect_returnErrorData(tree, tvb, offset, actx);
6186
6187
6188
6189   return offset;
6190 }
6191
6192
6193 static const ber_sequence_t ReturnError_sequence[] = {
6194   { &hf_camel_invokeId      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_InvokeId },
6195   { &hf_camel_errcode       , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_Code },
6196   { &hf_camel_parameter     , BER_CLASS_ANY, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_camel_T_parameter },
6197   { NULL, 0, 0, 0, NULL }
6198 };
6199
6200 static int
6201 dissect_camel_ReturnError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6202   camel_opcode_type=CAMEL_OPCODE_RETURN_ERROR;
6203
6204   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6205                                    ReturnError_sequence, hf_index, ett_camel_ReturnError);
6206
6207   return offset;
6208 }
6209
6210
6211 static const value_string camel_GeneralProblem_vals[] = {
6212   {   0, "unrecognizedPDU" },
6213   {   1, "mistypedPDU" },
6214   {   2, "badlyStructuredPDU" },
6215   { 0, NULL }
6216 };
6217
6218
6219 static int
6220 dissect_camel_GeneralProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6221   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6222                                                 NULL);
6223
6224   return offset;
6225 }
6226
6227
6228 static const value_string camel_InvokeProblem_vals[] = {
6229   {   0, "duplicateInvocation" },
6230   {   1, "unrecognizedOperation" },
6231   {   2, "mistypedArgument" },
6232   {   3, "resourceLimitation" },
6233   {   4, "releaseInProgress" },
6234   {   5, "unrecognizedLinkedId" },
6235   {   6, "linkedResponseUnexpected" },
6236   {   7, "unexpectedLinkedOperation" },
6237   { 0, NULL }
6238 };
6239
6240
6241 static int
6242 dissect_camel_InvokeProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6243   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6244                                                 NULL);
6245
6246   return offset;
6247 }
6248
6249
6250 static const value_string camel_ReturnResultProblem_vals[] = {
6251   {   0, "unrecognizedInvocation" },
6252   {   1, "resultResponseUnexpected" },
6253   {   2, "mistypedResult" },
6254   { 0, NULL }
6255 };
6256
6257
6258 static int
6259 dissect_camel_ReturnResultProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6260   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6261                                                 NULL);
6262
6263   return offset;
6264 }
6265
6266
6267 static const value_string camel_ReturnErrorProblem_vals[] = {
6268   {   0, "unrecognizedInvocation" },
6269   {   1, "errorResponseUnexpected" },
6270   {   2, "unrecognizedError" },
6271   {   3, "unexpectedError" },
6272   {   4, "mistypedParameter" },
6273   { 0, NULL }
6274 };
6275
6276
6277 static int
6278 dissect_camel_ReturnErrorProblem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6279   offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
6280                                                 NULL);
6281
6282   return offset;
6283 }
6284
6285
6286 static const value_string camel_T_problem_vals[] = {
6287   {   0, "general" },
6288   {   1, "invoke" },
6289   {   2, "returnResult" },
6290   {   3, "returnError" },
6291   { 0, NULL }
6292 };
6293
6294 static const ber_choice_t T_problem_choice[] = {
6295   {   0, &hf_camel_general       , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_camel_GeneralProblem },
6296   {   1, &hf_camel_invokeProblem , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_InvokeProblem },
6297   {   2, &hf_camel_problemReturnResult, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_ReturnResultProblem },
6298   {   3, &hf_camel_returnErrorProblem, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_ReturnErrorProblem },
6299   { 0, NULL, 0, 0, 0, NULL }
6300 };
6301
6302 static int
6303 dissect_camel_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6304   offset = dissect_ber_choice(actx, tree, tvb, offset,
6305                                  T_problem_choice, hf_index, ett_camel_T_problem,
6306                                  NULL);
6307
6308   return offset;
6309 }
6310
6311
6312 static const ber_sequence_t Reject_sequence[] = {
6313   { &hf_camel_invokeId      , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_InvokeId },
6314   { &hf_camel_problem       , BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_camel_T_problem },
6315   { NULL, 0, 0, 0, NULL }
6316 };
6317
6318 static int
6319 dissect_camel_Reject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6320   camel_opcode_type=CAMEL_OPCODE_REJECT;
6321
6322
6323   offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
6324                                    Reject_sequence, hf_index, ett_camel_Reject);
6325
6326   return offset;
6327 }
6328
6329
6330 static const value_string camel_ROS_vals[] = {
6331   {   1, "invoke" },
6332   {   2, "returnResult" },
6333   {   3, "returnError" },
6334   {   4, "reject" },
6335   { 0, NULL }
6336 };
6337
6338 static const ber_choice_t ROS_choice[] = {
6339   {   1, &hf_camel_invoke        , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camel_Invoke },
6340   {   2, &hf_camel_returnResult  , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_camel_ReturnResult },
6341   {   3, &hf_camel_returnError   , BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_camel_ReturnError },
6342   {   4, &hf_camel_reject        , BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_camel_Reject },
6343   { 0, NULL, 0, 0, 0, NULL }
6344 };
6345
6346 static int
6347 dissect_camel_ROS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
6348   offset = dissect_ber_choice(actx, tree, tvb, offset,
6349                                  ROS_choice, hf_index, ett_camel_ROS,
6350                                  NULL);
6351
6352   return offset;
6353 }
6354
6355 /*--- PDUs ---*/
6356
6357 static int dissect_PAR_cancelFailed_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6358   int offset = 0;
6359   asn1_ctx_t asn1_ctx;
6360   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6361   offset = dissect_camel_PAR_cancelFailed(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_PAR_cancelFailed_PDU);
6362   return offset;
6363 }
6364 static int dissect_PAR_requestedInfoError_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6365   int offset = 0;
6366   asn1_ctx_t asn1_ctx;
6367   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6368   offset = dissect_camel_PAR_requestedInfoError(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_PAR_requestedInfoError_PDU);
6369   return offset;
6370 }
6371 static int dissect_UnavailableNetworkResource_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6372   int offset = 0;
6373   asn1_ctx_t asn1_ctx;
6374   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6375   offset = dissect_camel_UnavailableNetworkResource(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_UnavailableNetworkResource_PDU);
6376   return offset;
6377 }
6378 static int dissect_PAR_taskRefused_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6379   int offset = 0;
6380   asn1_ctx_t asn1_ctx;
6381   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6382   offset = dissect_camel_PAR_taskRefused(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_PAR_taskRefused_PDU);
6383   return offset;
6384 }
6385 static void dissect_CAP_GPRS_ReferenceNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6386   asn1_ctx_t asn1_ctx;
6387   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6388   dissect_camel_CAP_GPRS_ReferenceNumber(FALSE, tvb, 0, &asn1_ctx, tree, hf_camel_CAP_GPRS_ReferenceNumber_PDU);
6389 }
6390 static int dissect_PlayAnnouncementArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6391   int offset = 0;
6392   asn1_ctx_t asn1_ctx;
6393   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6394   offset = dissect_camel_PlayAnnouncementArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_PlayAnnouncementArg_PDU);
6395   return offset;
6396 }
6397 static int dissect_PromptAndCollectUserInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6398   int offset = 0;
6399   asn1_ctx_t asn1_ctx;
6400   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6401   offset = dissect_camel_PromptAndCollectUserInformationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_PromptAndCollectUserInformationArg_PDU);
6402   return offset;
6403 }
6404 static int dissect_ReceivedInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6405   int offset = 0;
6406   asn1_ctx_t asn1_ctx;
6407   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6408   offset = dissect_camel_ReceivedInformationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ReceivedInformationArg_PDU);
6409   return offset;
6410 }
6411 static int dissect_SpecializedResourceReportArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6412   int offset = 0;
6413   asn1_ctx_t asn1_ctx;
6414   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6415   offset = dissect_camel_SpecializedResourceReportArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_SpecializedResourceReportArg_PDU);
6416   return offset;
6417 }
6418 static int dissect_ApplyChargingArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6419   int offset = 0;
6420   asn1_ctx_t asn1_ctx;
6421   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6422   offset = dissect_camel_ApplyChargingArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ApplyChargingArg_PDU);
6423   return offset;
6424 }
6425 static int dissect_ApplyChargingReportArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6426   int offset = 0;
6427   asn1_ctx_t asn1_ctx;
6428   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6429   offset = dissect_camel_ApplyChargingReportArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ApplyChargingReportArg_PDU);
6430   return offset;
6431 }
6432 static int dissect_AssistRequestInstructionsArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6433   int offset = 0;
6434   asn1_ctx_t asn1_ctx;
6435   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6436   offset = dissect_camel_AssistRequestInstructionsArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_AssistRequestInstructionsArg_PDU);
6437   return offset;
6438 }
6439 static int dissect_CallGapArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6440   int offset = 0;
6441   asn1_ctx_t asn1_ctx;
6442   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6443   offset = dissect_camel_CallGapArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_CallGapArg_PDU);
6444   return offset;
6445 }
6446 static int dissect_CallInformationReportArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6447   int offset = 0;
6448   asn1_ctx_t asn1_ctx;
6449   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6450   offset = dissect_camel_CallInformationReportArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_CallInformationReportArg_PDU);
6451   return offset;
6452 }
6453 static int dissect_CallInformationRequestArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6454   int offset = 0;
6455   asn1_ctx_t asn1_ctx;
6456   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6457   offset = dissect_camel_CallInformationRequestArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_CallInformationRequestArg_PDU);
6458   return offset;
6459 }
6460 static int dissect_CancelArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6461   int offset = 0;
6462   asn1_ctx_t asn1_ctx;
6463   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6464   offset = dissect_camel_CancelArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_CancelArg_PDU);
6465   return offset;
6466 }
6467 static int dissect_ConnectArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6468   int offset = 0;
6469   asn1_ctx_t asn1_ctx;
6470   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6471   offset = dissect_camel_ConnectArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ConnectArg_PDU);
6472   return offset;
6473 }
6474 static int dissect_ConnectToResourceArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6475   int offset = 0;
6476   asn1_ctx_t asn1_ctx;
6477   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6478   offset = dissect_camel_ConnectToResourceArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ConnectToResourceArg_PDU);
6479   return offset;
6480 }
6481 static int dissect_ContinueWithArgumentArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6482   int offset = 0;
6483   asn1_ctx_t asn1_ctx;
6484   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6485   offset = dissect_camel_ContinueWithArgumentArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ContinueWithArgumentArg_PDU);
6486   return offset;
6487 }
6488 static int dissect_DisconnectForwardConnectionWithArgumentArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6489   int offset = 0;
6490   asn1_ctx_t asn1_ctx;
6491   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6492   offset = dissect_camel_DisconnectForwardConnectionWithArgumentArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_DisconnectForwardConnectionWithArgumentArg_PDU);
6493   return offset;
6494 }
6495 static int dissect_DisconnectLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6496   int offset = 0;
6497   asn1_ctx_t asn1_ctx;
6498   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6499   offset = dissect_camel_DisconnectLegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_DisconnectLegArg_PDU);
6500   return offset;
6501 }
6502 static int dissect_EntityReleasedArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6503   int offset = 0;
6504   asn1_ctx_t asn1_ctx;
6505   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6506   offset = dissect_camel_EntityReleasedArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_EntityReleasedArg_PDU);
6507   return offset;
6508 }
6509 static int dissect_EstablishTemporaryConnectionArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6510   int offset = 0;
6511   asn1_ctx_t asn1_ctx;
6512   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6513   offset = dissect_camel_EstablishTemporaryConnectionArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_EstablishTemporaryConnectionArg_PDU);
6514   return offset;
6515 }
6516 static int dissect_EventReportBCSMArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6517   int offset = 0;
6518   asn1_ctx_t asn1_ctx;
6519   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6520   offset = dissect_camel_EventReportBCSMArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_EventReportBCSMArg_PDU);
6521   return offset;
6522 }
6523 static int dissect_FurnishChargingInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6524   int offset = 0;
6525   asn1_ctx_t asn1_ctx;
6526   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6527   offset = dissect_camel_FurnishChargingInformationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_FurnishChargingInformationArg_PDU);
6528   return offset;
6529 }
6530 static int dissect_InitialDPArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6531   int offset = 0;
6532   asn1_ctx_t asn1_ctx;
6533   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6534   offset = dissect_camel_InitialDPArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_InitialDPArg_PDU);
6535   return offset;
6536 }
6537 static int dissect_InitiateCallAttemptArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6538   int offset = 0;
6539   asn1_ctx_t asn1_ctx;
6540   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6541   offset = dissect_camel_InitiateCallAttemptArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_InitiateCallAttemptArg_PDU);
6542   return offset;
6543 }
6544 static int dissect_InitiateCallAttemptRes_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6545   int offset = 0;
6546   asn1_ctx_t asn1_ctx;
6547   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6548   offset = dissect_camel_InitiateCallAttemptRes(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_InitiateCallAttemptRes_PDU);
6549   return offset;
6550 }
6551 static int dissect_MoveLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6552   int offset = 0;
6553   asn1_ctx_t asn1_ctx;
6554   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6555   offset = dissect_camel_MoveLegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_MoveLegArg_PDU);
6556   return offset;
6557 }
6558 static int dissect_PlayToneArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6559   int offset = 0;
6560   asn1_ctx_t asn1_ctx;
6561   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6562   offset = dissect_camel_PlayToneArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_PlayToneArg_PDU);
6563   return offset;
6564 }
6565 static int dissect_ReleaseCallArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6566   int offset = 0;
6567   asn1_ctx_t asn1_ctx;
6568   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6569   offset = dissect_camel_ReleaseCallArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ReleaseCallArg_PDU);
6570   return offset;
6571 }
6572 static int dissect_RequestReportBCSMEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6573   int offset = 0;
6574   asn1_ctx_t asn1_ctx;
6575   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6576   offset = dissect_camel_RequestReportBCSMEventArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_RequestReportBCSMEventArg_PDU);
6577   return offset;
6578 }
6579 static int dissect_ResetTimerArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6580   int offset = 0;
6581   asn1_ctx_t asn1_ctx;
6582   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6583   offset = dissect_camel_ResetTimerArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ResetTimerArg_PDU);
6584   return offset;
6585 }
6586 static int dissect_SendChargingInformationArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6587   int offset = 0;
6588   asn1_ctx_t asn1_ctx;
6589   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6590   offset = dissect_camel_SendChargingInformationArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_SendChargingInformationArg_PDU);
6591   return offset;
6592 }
6593 static int dissect_SplitLegArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6594   int offset = 0;
6595   asn1_ctx_t asn1_ctx;
6596   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6597   offset = dissect_camel_SplitLegArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_SplitLegArg_PDU);
6598   return offset;
6599 }
6600 static int dissect_ApplyChargingGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6601   int offset = 0;
6602   asn1_ctx_t asn1_ctx;
6603   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6604   offset = dissect_camel_ApplyChargingGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ApplyChargingGPRSArg_PDU);
6605   return offset;
6606 }
6607 static int dissect_ApplyChargingReportGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6608   int offset = 0;
6609   asn1_ctx_t asn1_ctx;
6610   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6611   offset = dissect_camel_ApplyChargingReportGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ApplyChargingReportGPRSArg_PDU);
6612   return offset;
6613 }
6614 static int dissect_CancelGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6615   int offset = 0;
6616   asn1_ctx_t asn1_ctx;
6617   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6618   offset = dissect_camel_CancelGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_CancelGPRSArg_PDU);
6619   return offset;
6620 }
6621 static int dissect_ConnectGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6622   int offset = 0;
6623   asn1_ctx_t asn1_ctx;
6624   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6625   offset = dissect_camel_ConnectGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ConnectGPRSArg_PDU);
6626   return offset;
6627 }
6628 static int dissect_ContinueGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6629   int offset = 0;
6630   asn1_ctx_t asn1_ctx;
6631   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6632   offset = dissect_camel_ContinueGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ContinueGPRSArg_PDU);
6633   return offset;
6634 }
6635 static int dissect_EntityReleasedGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6636   int offset = 0;
6637   asn1_ctx_t asn1_ctx;
6638   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6639   offset = dissect_camel_EntityReleasedGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_EntityReleasedGPRSArg_PDU);
6640   return offset;
6641 }
6642 static int dissect_EventReportGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6643   int offset = 0;
6644   asn1_ctx_t asn1_ctx;
6645   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6646   offset = dissect_camel_EventReportGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_EventReportGPRSArg_PDU);
6647   return offset;
6648 }
6649 static int dissect_FurnishChargingInformationGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6650   int offset = 0;
6651   asn1_ctx_t asn1_ctx;
6652   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6653   offset = dissect_camel_FurnishChargingInformationGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_FurnishChargingInformationGPRSArg_PDU);
6654   return offset;
6655 }
6656 static int dissect_InitialDPGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6657   int offset = 0;
6658   asn1_ctx_t asn1_ctx;
6659   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6660   offset = dissect_camel_InitialDPGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_InitialDPGPRSArg_PDU);
6661   return offset;
6662 }
6663 static int dissect_ReleaseGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6664   int offset = 0;
6665   asn1_ctx_t asn1_ctx;
6666   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6667   offset = dissect_camel_ReleaseGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ReleaseGPRSArg_PDU);
6668   return offset;
6669 }
6670 static int dissect_RequestReportGPRSEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6671   int offset = 0;
6672   asn1_ctx_t asn1_ctx;
6673   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6674   offset = dissect_camel_RequestReportGPRSEventArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_RequestReportGPRSEventArg_PDU);
6675   return offset;
6676 }
6677 static int dissect_ResetTimerGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6678   int offset = 0;
6679   asn1_ctx_t asn1_ctx;
6680   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6681   offset = dissect_camel_ResetTimerGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ResetTimerGPRSArg_PDU);
6682   return offset;
6683 }
6684 static int dissect_SendChargingInformationGPRSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6685   int offset = 0;
6686   asn1_ctx_t asn1_ctx;
6687   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6688   offset = dissect_camel_SendChargingInformationGPRSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_SendChargingInformationGPRSArg_PDU);
6689   return offset;
6690 }
6691 static int dissect_ConnectSMSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6692   int offset = 0;
6693   asn1_ctx_t asn1_ctx;
6694   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6695   offset = dissect_camel_ConnectSMSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ConnectSMSArg_PDU);
6696   return offset;
6697 }
6698 static int dissect_EventReportSMSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6699   int offset = 0;
6700   asn1_ctx_t asn1_ctx;
6701   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6702   offset = dissect_camel_EventReportSMSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_EventReportSMSArg_PDU);
6703   return offset;
6704 }
6705 static int dissect_FurnishChargingInformationSMSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6706   int offset = 0;
6707   asn1_ctx_t asn1_ctx;
6708   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6709   offset = dissect_camel_FurnishChargingInformationSMSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_FurnishChargingInformationSMSArg_PDU);
6710   return offset;
6711 }
6712 static int dissect_InitialDPSMSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6713   int offset = 0;
6714   asn1_ctx_t asn1_ctx;
6715   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6716   offset = dissect_camel_InitialDPSMSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_InitialDPSMSArg_PDU);
6717   return offset;
6718 }
6719 static int dissect_ReleaseSMSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6720   int offset = 0;
6721   asn1_ctx_t asn1_ctx;
6722   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6723   offset = dissect_camel_ReleaseSMSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ReleaseSMSArg_PDU);
6724   return offset;
6725 }
6726 static int dissect_RequestReportSMSEventArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6727   int offset = 0;
6728   asn1_ctx_t asn1_ctx;
6729   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6730   offset = dissect_camel_RequestReportSMSEventArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_RequestReportSMSEventArg_PDU);
6731   return offset;
6732 }
6733 static int dissect_ResetTimerSMSArg_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6734   int offset = 0;
6735   asn1_ctx_t asn1_ctx;
6736   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6737   offset = dissect_camel_ResetTimerSMSArg(FALSE, tvb, offset, &asn1_ctx, tree, hf_camel_ResetTimerSMSArg_PDU);
6738   return offset;
6739 }
6740 static void dissect_CAP_U_ABORT_REASON_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
6741   asn1_ctx_t asn1_ctx;
6742   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
6743   dissect_camel_CAP_U_ABORT_REASON(FALSE, tvb, 0, &asn1_ctx, tree, hf_camel_CAP_U_ABORT_REASON_PDU);
6744 }
6745
6746
6747 /*--- End of included file: packet-camel-fn.c ---*/
6748 #line 315 "packet-camel-template.c"
6749
6750
6751 /*--- Included file: packet-camel-table2.c ---*/
6752 #line 1 "packet-camel-table2.c"
6753
6754 static int dissect_invokeData(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx) {
6755   proto_item *cause;
6756
6757   switch(opcode){
6758     case opcode_playAnnouncement:  /* playAnnouncement */
6759       offset= dissect_PlayAnnouncementArg_PDU(tvb, actx->pinfo , tree);
6760       break;
6761     case opcode_promptAndCollectUserInformation:  /* promptAndCollectUserInformation */
6762       offset= dissect_PromptAndCollectUserInformationArg_PDU(tvb, actx->pinfo , tree);
6763       break;
6764     case opcode_specializedResourceReport:  /* specializedResourceReport */
6765       offset= dissect_SpecializedResourceReportArg_PDU(tvb, actx->pinfo , tree);
6766       break;
6767     case opcode_applyCharging:  /* applyCharging */
6768       offset= dissect_ApplyChargingArg_PDU(tvb, actx->pinfo , tree);
6769       break;
6770     case opcode_applyChargingReport:  /* applyChargingReport */
6771       offset= dissect_ApplyChargingReportArg_PDU(tvb, actx->pinfo , tree);
6772       break;
6773     case opcode_assistRequestInstructions:  /* assistRequestInstructions */
6774       offset= dissect_AssistRequestInstructionsArg_PDU(tvb, actx->pinfo , tree);
6775       break;
6776     case opcode_callGap:  /* callGap */
6777       offset= dissect_CallGapArg_PDU(tvb, actx->pinfo , tree);
6778       break;
6779     case opcode_callInformationReport:  /* callInformationReport */
6780       offset= dissect_CallInformationReportArg_PDU(tvb, actx->pinfo , tree);
6781       break;
6782     case opcode_callInformationRequest:  /* callInformationRequest */
6783       offset= dissect_CallInformationRequestArg_PDU(tvb, actx->pinfo , tree);
6784       break;
6785     case opcode_cancel:  /* cancel */
6786       offset= dissect_CancelArg_PDU(tvb, actx->pinfo , tree);
6787       break;
6788     case opcode_connect:  /* connect */
6789       offset= dissect_ConnectArg_PDU(tvb, actx->pinfo , tree);
6790       break;
6791     case opcode_connectToResource:  /* connectToResource */
6792       offset= dissect_ConnectToResourceArg_PDU(tvb, actx->pinfo , tree);
6793       break;
6794     case opcode_continueWithArgument:  /* continueWithArgument */
6795       offset= dissect_ContinueWithArgumentArg_PDU(tvb, actx->pinfo , tree);
6796       break;
6797     case opcode_dFCWithArgument:  /* disconnectForwardConnectionWithArgument */
6798       offset= dissect_DisconnectForwardConnectionWithArgumentArg_PDU(tvb, actx->pinfo , tree);
6799       break;
6800     case opcode_disconnectLeg:  /* disconnectLeg */
6801       offset= dissect_DisconnectLegArg_PDU(tvb, actx->pinfo , tree);
6802       break;
6803     case opcode_entityReleased:  /* entityReleased */
6804       offset= dissect_EntityReleasedArg_PDU(tvb, actx->pinfo , tree);
6805       break;
6806     case opcode_establishTemporaryConnection:  /* establishTemporaryConnection */
6807       offset= dissect_EstablishTemporaryConnectionArg_PDU(tvb, actx->pinfo , tree);
6808       break;
6809     case opcode_eventReportBCSM:  /* eventReportBCSM */
6810       offset= dissect_EventReportBCSMArg_PDU(tvb, actx->pinfo , tree);
6811       break;
6812     case opcode_furnishChargingInformation:  /* furnishChargingInformation */
6813       offset= dissect_FurnishChargingInformationArg_PDU(tvb, actx->pinfo , tree);
6814       break;
6815     case opcode_initialDP:  /* initialDP */
6816       offset= dissect_InitialDPArg_PDU(tvb, actx->pinfo , tree);
6817       break;
6818     case opcode_initiateCallAttempt:  /* initiateCallAttempt */
6819       offset= dissect_InitiateCallAttemptArg_PDU(tvb, actx->pinfo , tree);
6820       break;
6821     case opcode_moveLeg:  /* moveLeg */
6822       offset= dissect_MoveLegArg_PDU(tvb, actx->pinfo , tree);
6823       break;
6824     case opcode_playTone:  /* playTone */
6825       offset= dissect_PlayToneArg_PDU(tvb, actx->pinfo , tree);
6826       break;
6827     case opcode_releaseCall:  /* releaseCall */
6828       offset= dissect_ReleaseCallArg_PDU(tvb, actx->pinfo , tree);
6829       break;
6830     case opcode_requestReportBCSMEvent:  /* requestReportBCSMEvent */
6831       offset= dissect_RequestReportBCSMEventArg_PDU(tvb, actx->pinfo , tree);
6832       break;
6833     case opcode_resetTimer:  /* resetTimer */
6834       offset= dissect_ResetTimerArg_PDU(tvb, actx->pinfo , tree);
6835       break;
6836     case opcode_sendChargingInformation:  /* sendChargingInformation */
6837       offset= dissect_SendChargingInformationArg_PDU(tvb, actx->pinfo , tree);
6838       break;
6839     case opcode_splitLeg:  /* splitLeg */
6840       offset= dissect_SplitLegArg_PDU(tvb, actx->pinfo , tree);
6841       break;
6842     case opcode_applyChargingGPRS:  /* applyChargingGPRS */
6843       offset= dissect_ApplyChargingGPRSArg_PDU(tvb, actx->pinfo , tree);
6844       break;
6845     case opcode_applyChargingReportGPRS:  /* applyChargingReportGPRS */
6846       offset= dissect_ApplyChargingReportGPRSArg_PDU(tvb, actx->pinfo , tree);
6847       break;
6848     case opcode_cancelGPRS:  /* cancelGPRS */
6849       offset= dissect_CancelGPRSArg_PDU(tvb, actx->pinfo , tree);
6850       break;
6851     case opcode_connectGPRS:  /* connectGPRS */
6852       offset= dissect_ConnectGPRSArg_PDU(tvb, actx->pinfo , tree);
6853       break;
6854     case opcode_continueGPRS:  /* continueGPRS */
6855       offset= dissect_ContinueGPRSArg_PDU(tvb, actx->pinfo , tree);
6856       break;
6857     case opcode_entityReleasedGPRS:  /* entityReleasedGPRS */
6858       offset= dissect_EntityReleasedGPRSArg_PDU(tvb, actx->pinfo , tree);
6859       break;
6860     case opcode_eventReportGPRS:  /* eventReportGPRS */
6861       offset= dissect_EventReportGPRSArg_PDU(tvb, actx->pinfo , tree);
6862       break;
6863     case opcode_furnishChargingInformationGPRS:  /* furnishChargingInformationGPRS */
6864       offset= dissect_FurnishChargingInformationGPRSArg_PDU(tvb, actx->pinfo , tree);
6865       break;
6866     case opcode_initialDPGPRS:  /* initialDPGPRS */
6867       offset= dissect_InitialDPGPRSArg_PDU(tvb, actx->pinfo , tree);
6868       break;
6869     case opcode_releaseGPRS:  /* releaseGPRS */
6870       offset= dissect_ReleaseGPRSArg_PDU(tvb, actx->pinfo , tree);
6871       break;
6872     case opcode_requestReportGPRSEvent:  /* requestReportGPRSEvent */
6873       offset= dissect_RequestReportGPRSEventArg_PDU(tvb, actx->pinfo , tree);
6874       break;
6875     case opcode_resetTimerGPRS:  /* resetTimerGPRS */
6876       offset= dissect_ResetTimerGPRSArg_PDU(tvb, actx->pinfo , tree);
6877       break;
6878     case opcode_sendChargingInformationGPRS:  /* sendChargingInformationGPRS */
6879       offset= dissect_SendChargingInformationGPRSArg_PDU(tvb, actx->pinfo , tree);
6880       break;
6881     case opcode_connectSMS:  /* connectSMS */
6882       offset= dissect_ConnectSMSArg_PDU(tvb, actx->pinfo , tree);
6883       break;
6884     case opcode_eventReportSMS:  /* eventReportSMS */
6885       offset= dissect_EventReportSMSArg_PDU(tvb, actx->pinfo , tree);
6886       break;
6887     case opcode_furnishChargingInformationSMS:  /* furnishChargingInformationSMS */
6888       offset= dissect_FurnishChargingInformationSMSArg_PDU(tvb, actx->pinfo , tree);
6889       break;
6890     case opcode_initialDPSMS:  /* initialDPSMS */
6891       offset= dissect_InitialDPSMSArg_PDU(tvb, actx->pinfo , tree);
6892       break;
6893     case opcode_releaseSMS:  /* releaseSMS */
6894       offset= dissect_ReleaseSMSArg_PDU(tvb, actx->pinfo , tree);
6895       break;
6896     case opcode_requestReportSMSEvent:  /* requestReportSMSEvent */
6897       offset= dissect_RequestReportSMSEventArg_PDU(tvb, actx->pinfo , tree);
6898       break;
6899     case opcode_resetTimerSMS:  /* resetTimerSMS */
6900       offset= dissect_ResetTimerSMSArg_PDU(tvb, actx->pinfo , tree);
6901       break;
6902     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
6903     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
6904     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown invokeData %d",opcode);
6905     /* todo call the asn.1 dissector */
6906   }
6907   return offset;
6908 }
6909
6910
6911 static int dissect_returnResultData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
6912   proto_item *cause;
6913
6914   switch(opcode){
6915     case opcode_promptAndCollectUserInformation:  /* promptAndCollectUserInformation */
6916           offset= dissect_ReceivedInformationArg_PDU(tvb, actx->pinfo , tree);
6917       break;
6918     case opcode_initiateCallAttempt:  /* initiateCallAttempt */
6919           offset= dissect_InitiateCallAttemptRes_PDU(tvb, actx->pinfo , tree);
6920       break;
6921   default:
6922     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
6923     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
6924     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown returnResultData %d",opcode);
6925   }
6926   return offset;
6927 }
6928
6929
6930 static int dissect_returnErrorData(proto_tree *tree, tvbuff_t *tvb, int offset,asn1_ctx_t *actx) {
6931   proto_item *cause;
6932
6933   switch(errorCode) {
6934     case errcode_cancelFailed:  /* cancelFailed */
6935       dissect_PAR_cancelFailed_PDU(tvb, actx->pinfo , tree);
6936       break;
6937     case errcode_requestedInfoError:  /* requestedInfoError */
6938       dissect_PAR_requestedInfoError_PDU(tvb, actx->pinfo , tree);
6939       break;
6940     case errcode_systemFailure:  /* systemFailure */
6941       dissect_UnavailableNetworkResource_PDU(tvb, actx->pinfo , tree);
6942       break;
6943     case errcode_taskRefused:  /* taskRefused */
6944       dissect_PAR_taskRefused_PDU(tvb, actx->pinfo , tree);
6945       break;
6946   default:
6947     cause=proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnErrorData blob");
6948     proto_item_set_expert_flags(cause, PI_MALFORMED, PI_WARN);
6949     expert_add_info_format(actx->pinfo, cause, PI_MALFORMED, PI_WARN, "Unknown returnErrorData %d",errorCode);
6950   }
6951   return offset;
6952 }
6953
6954
6955 /*--- End of included file: packet-camel-table2.c ---*/
6956 #line 317 "packet-camel-template.c"
6957
6958
6959 static guint8 camel_pdu_type = 0;
6960 static guint8 camel_pdu_size = 0;
6961
6962
6963 static int
6964 dissect_camel_camelPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_,proto_tree *tree, int hf_index) {
6965
6966   char *version_ptr;
6967   struct tcap_private_t * p_private_tcap;
6968
6969   opcode = 0;
6970   application_context_version = 0;
6971   if (actx->pinfo->private_data != NULL){
6972     p_private_tcap=actx->pinfo->private_data; 
6973     
6974     if (p_private_tcap->acv==TRUE ){
6975       version_ptr = strrchr(p_private_tcap->oid,'.');
6976       if (version_ptr)
6977         application_context_version = atoi(version_ptr+1);
6978     }
6979     gp_camelsrt_info->tcap_context=p_private_tcap->context; 
6980     if (p_private_tcap->context)
6981       gp_camelsrt_info->tcap_session_id
6982
6983         = ( (struct tcaphash_context_t *) (p_private_tcap->context))->session_id;
6984   }
6985
6986   camel_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
6987   /* Get the length and add 2 */
6988   camel_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
6989
6990   /* Populate the info column with PDU type*/
6991   col_add_str(actx->pinfo->cinfo, COL_INFO, val_to_str(camel_pdu_type, camel_Component_vals, "Unknown Camel (%u)"));
6992   col_append_str(actx->pinfo->cinfo, COL_INFO, " ");
6993
6994   is_ExtensionField =FALSE;
6995   offset = dissect_camel_ROS(TRUE, tvb, offset, actx, tree, hf_index);
6996
6997   return offset;
6998 }
6999
7000
7001 static void
7002 dissect_camel(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
7003 {
7004   proto_item    *item=NULL;
7005   proto_tree    *tree=NULL;
7006   proto_item  *stat_item=NULL;
7007   proto_tree  *stat_tree=NULL;
7008   asn1_ctx_t asn1_ctx;
7009   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
7010
7011   col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel");
7012
7013   /* create display subtree for the protocol */
7014   if(parent_tree){
7015      item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, FALSE);
7016      tree = proto_item_add_subtree(item, ett_camel);
7017   }
7018   /* camelsrt reset counter, and initialise global pointer
7019      to store service response time related data */
7020   gp_camelsrt_info=camelsrt_razinfo();
7021   dissect_camel_camelPDU(FALSE, tvb, 0, &asn1_ctx , tree, -1);
7022   
7023   /* If a Tcap context is associated to this transaction */
7024   if (gcamel_HandleSRT &&
7025       gp_camelsrt_info->tcap_context ) {
7026     if (gcamel_DisplaySRT && tree) {
7027       stat_item = proto_tree_add_text(tree, tvb, 0, 0, "Stat");
7028       stat_tree = proto_item_add_subtree(stat_item, ett_camel_stat);
7029     }
7030     camelsrt_call_matching(tvb, pinfo, stat_tree, gp_camelsrt_info);
7031     tap_queue_packet(camel_tap, pinfo, gp_camelsrt_info);
7032   }
7033 }
7034
7035 /*--- proto_reg_handoff_camel ---------------------------------------*/
7036 static void range_delete_callback(guint32 ssn)
7037 {
7038   if (ssn) {
7039     delete_itu_tcap_subdissector(ssn, camel_handle);
7040   }
7041 }
7042
7043 static void range_add_callback(guint32 ssn)
7044 {
7045   if (ssn) {
7046     add_itu_tcap_subdissector(ssn, camel_handle);
7047   }
7048 }
7049
7050 void proto_reg_handoff_camel(void) {
7051   static gboolean camel_prefs_initialized = FALSE;
7052   static range_t *ssn_range;
7053
7054   if (!camel_prefs_initialized) {
7055
7056     camel_prefs_initialized = TRUE;
7057     camel_handle = find_dissector("camel");
7058
7059
7060     register_ber_oid_dissector_handle("0.4.0.0.1.0.50.0",camel_handle, proto_camel, "CAP-v1-gsmSSF-to-gsmSCF-AC" );
7061     register_ber_oid_dissector_handle("0.4.0.0.1.0.50.1",camel_handle, proto_camel, "CAP-v2-gsmSSF-to-gsmSCF-AC" );
7062     register_ber_oid_dissector_handle("0.4.0.0.1.0.51.1",camel_handle, proto_camel, "CAP-v2-assist-gsmSSF-to-gsmSCF-AC" );
7063     register_ber_oid_dissector_handle("0.4.0.0.1.0.52.1",camel_handle, proto_camel, "CAP-v2-gsmSRF-to-gsmSCF-AC" );
7064     register_ber_oid_dissector_handle("0.4.0.0.1.21.3.50",camel_handle, proto_camel, "cap3-gprssf-scfAC" );
7065     register_ber_oid_dissector_handle("0.4.0.0.1.21.3.51",camel_handle, proto_camel, "cap3-gsmscf-gprsssfAC" );
7066     register_ber_oid_dissector_handle("0.4.0.0.1.21.3.61",camel_handle, proto_camel, "cap3-sms-AC" );
7067     register_ber_oid_dissector_handle("0.4.0.0.1.23.3.4",camel_handle, proto_camel, "capssf-scfGenericAC" );
7068     register_ber_oid_dissector_handle("0.4.0.0.1.23.3.61",camel_handle, proto_camel, "cap4-sms-AC" );
7069         
7070
7071
7072 /*--- Included file: packet-camel-dis-tab.c ---*/
7073 #line 1 "packet-camel-dis-tab.c"
7074   register_ber_oid_dissector("0.4.0.0.1.1.5.2", dissect_CAP_GPRS_ReferenceNumber_PDU, proto_camel, "id-CAP-GPRS-ReferenceNumber");
7075   register_ber_oid_dissector("0.4.0.0.1.1.2.2", dissect_CAP_U_ABORT_REASON_PDU, proto_camel, "id-CAP-U-ABORT-Reason");
7076
7077
7078 /*--- End of included file: packet-camel-dis-tab.c ---*/
7079 #line 432 "packet-camel-template.c"
7080   } else {
7081     range_foreach(ssn_range, range_delete_callback);
7082     g_free(ssn_range);
7083   }
7084
7085   ssn_range = range_copy(global_ssn_range);
7086
7087   range_foreach(ssn_range, range_add_callback);
7088   
7089 }
7090
7091 void proto_register_camel(void) {
7092   module_t *camel_module;
7093   /* List of fields */
7094   static hf_register_info hf[] = {
7095     { &hf_camel_extension_code_local,
7096       { "local", "camel.extension_code_local",
7097         FT_INT32, BASE_DEC, NULL, 0,
7098         "Extension local code", HFILL }},
7099         { &hf_camel_error_code_local,
7100       { "local", "camel.error_code_local",
7101         FT_INT32, BASE_DEC, VALS(camel_err_code_string_vals), 0,
7102         "ERROR code", HFILL }},
7103     { &hf_camel_cause_indicator, /* Currently not enabled */
7104       { "Cause indicator",  "camel.cause_indicator",
7105         FT_UINT8, BASE_DEC, VALS(q850_cause_code_vals), 0x7f,
7106         NULL, HFILL }},
7107     { &hf_digit,
7108       { "Digit Value",  "camel.digit_value",
7109         FT_UINT8, BASE_DEC, VALS(digit_value), 0, NULL, HFILL }},
7110     { &hf_camel_PDPTypeNumber_etsi,
7111       { "ETSI defined PDP Type Value",  "camel.PDPTypeNumber_etsi",
7112         FT_UINT8, BASE_HEX, VALS(gsm_map_etsi_defined_pdp_vals), 0,
7113         NULL, HFILL }},
7114     { &hf_camel_PDPTypeNumber_ietf,
7115       { "IETF defined PDP Type Value",  "camel.PDPTypeNumber_ietf",
7116         FT_UINT8, BASE_HEX, VALS(gsm_map_ietf_defined_pdp_vals), 0,
7117         NULL, HFILL }},
7118     { &hf_camel_PDPAddress_IPv4,
7119       { "PDPAddress IPv4",  "camel.PDPAddress_IPv4",
7120         FT_IPv4, BASE_NONE, NULL, 0,
7121         "IPAddress IPv4", HFILL }},
7122     { &hf_camel_PDPAddress_IPv6,
7123       { "PDPAddress IPv6",  "camel.PDPAddress_IPv6",
7124         FT_IPv6, BASE_NONE, NULL, 0,
7125         "IPAddress IPv6", HFILL }},
7126     { &hf_camel_cellGlobalIdOrServiceAreaIdFixedLength,
7127       { "CellGlobalIdOrServiceAreaIdFixedLength", "camel.CellGlobalIdOrServiceAreaIdFixedLength",
7128         FT_BYTES, BASE_NONE, NULL, 0,
7129         "LocationInformationGPRS/CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
7130     { &hf_camel_RP_Cause,
7131       { "RP Cause",  "camel.RP_Cause",
7132         FT_UINT8, BASE_DEC, NULL, 0,
7133         "RP Cause Value", HFILL }},
7134     
7135     { &hf_camel_CAMEL_AChBillingChargingCharacteristics,
7136       { "CAMEL-AChBillingChargingCharacteristics", "camel.CAMEL_AChBillingChargingCharacteristics",
7137         FT_UINT32, BASE_DEC,  VALS(camel_CAMEL_AChBillingChargingCharacteristics_vals), 0,
7138         NULL, HFILL }}, 
7139     
7140     { &hf_camel_CAMEL_FCIBillingChargingCharacteristics,
7141       { "CAMEL-FCIBillingChargingCharacteristics", "camel.CAMEL_FCIBillingChargingCharacteristics",
7142         FT_UINT32, BASE_DEC, VALS(camel_CAMEL_FCIBillingChargingCharacteristics_vals), 0,
7143         NULL, HFILL }},
7144
7145     { &hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics,
7146       { "CAMEL-FCIGPRSBillingChargingCharacteristics", "camel.CAMEL_FCIGPRSBillingChargingCharacteristics",
7147         FT_UINT32, BASE_DEC, NULL, 0,
7148         NULL, HFILL }},
7149
7150     { &hf_camel_CAMEL_FCISMSBillingChargingCharacteristics,
7151       { "CAMEL-FCISMSBillingChargingCharacteristics", "camel.CAMEL_FCISMSBillingChargingCharacteristics",
7152         FT_UINT32, BASE_DEC, VALS(camel_CAMEL_FCISMSBillingChargingCharacteristics_vals), 0,
7153         NULL, HFILL }},
7154
7155     { &hf_camel_CAMEL_SCIBillingChargingCharacteristics,
7156       { "CAMEL-SCIBillingChargingCharacteristics", "camel.CAMEL_SCIBillingChargingCharacteristics",
7157         FT_UINT32, BASE_DEC, VALS(camel_CAMEL_SCIBillingChargingCharacteristics_vals), 0,
7158         NULL, HFILL }},
7159
7160     { &hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics,
7161       { "CAMEL-SCIGPRSBillingChargingCharacteristics", "camel.CAMEL_SCIGPRSBillingChargingCharacteristics",
7162         FT_UINT32, BASE_DEC, NULL, 0,
7163         "CAMEL-FSCIGPRSBillingChargingCharacteristics", HFILL }},
7164
7165     { &hf_camel_CAMEL_CallResult,
7166       { "CAMEL-CAMEL_CallResult", "camel.CAMEL_CallResult",
7167         FT_UINT32, BASE_DEC, VALS(camel_CAMEL_CallResult_vals), 0,
7168         "CAMEL-CallResult", HFILL }},
7169
7170   /* Camel Service Response Time */
7171     { &hf_camelsrt_SessionId,
7172       { "Session Id",
7173         "camel.srt.session_id",
7174         FT_UINT32, BASE_DEC, NULL, 0x0,
7175         NULL, HFILL }
7176     },
7177     { &hf_camelsrt_RequestNumber,
7178       { "Request Number",
7179         "camel.srt.request_number",
7180         FT_UINT64, BASE_DEC, NULL, 0x0,
7181         NULL, HFILL }
7182     },
7183     { &hf_camelsrt_Duplicate,
7184       { "Request Duplicate",
7185         "camel.srt.duplicate",
7186         FT_UINT32, BASE_DEC, NULL, 0x0,
7187         NULL, HFILL }
7188     },
7189     { &hf_camelsrt_RequestFrame,
7190       { "Requested Frame",
7191         "camel.srt.reqframe",
7192         FT_FRAMENUM, BASE_NONE, NULL, 0x0,
7193         "SRT Request Frame", HFILL }
7194     },
7195     { &hf_camelsrt_ResponseFrame,
7196       { "Response Frame",
7197         "camel.srt.rspframe",
7198         FT_FRAMENUM, BASE_NONE, NULL, 0x0,
7199         "SRT Response Frame", HFILL }
7200     },
7201     { &hf_camelsrt_DeltaTime,
7202       { "Service Response Time",
7203         "camel.srt.deltatime",
7204         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7205         "DeltaTime between Request and Response", HFILL }
7206     },
7207     { &hf_camelsrt_SessionTime,
7208       { "Session duration",
7209         "camel.srt.sessiontime",
7210         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7211         "Duration of the TCAP session", HFILL }
7212     },
7213     { &hf_camelsrt_DeltaTime31,
7214       { "Service Response Time",
7215         "camel.srt.deltatime31",
7216         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7217         "DeltaTime between InitialDP and Continue", HFILL }
7218     },
7219     { &hf_camelsrt_DeltaTime65,
7220       { "Service Response Time",
7221         "camel.srt.deltatime65",
7222         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7223         "DeltaTime between InitialDPSMS and ContinueSMS", HFILL }
7224     },
7225     { &hf_camelsrt_DeltaTime75,
7226       { "Service Response Time",
7227         "camel.srt.deltatime75",
7228         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7229         "DeltaTime between InitialDPGPRS and ContinueGPRS", HFILL }
7230     },
7231     { &hf_camelsrt_DeltaTime35,
7232       { "Service Response Time",
7233         "camel.srt.deltatime35",
7234         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7235         "DeltaTime between ApplyCharginReport and ApplyCharging", HFILL }
7236     },
7237     { &hf_camelsrt_DeltaTime22,
7238       { "Service Response Time",
7239         "camel.srt.deltatime22",
7240         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7241         "DeltaTime between EventReport(Disconnect) and Release Call", HFILL }
7242     },
7243     { &hf_camelsrt_DeltaTime80,
7244       { "Service Response Time",
7245         "camel.srt.deltatime80",
7246         FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
7247         "DeltaTime between EventReportGPRS and ContinueGPRS", HFILL }
7248     },
7249
7250 #ifdef REMOVED
7251 #endif
7252
7253 /*--- Included file: packet-camel-hfarr.c ---*/
7254 #line 1 "packet-camel-hfarr.c"
7255     { &hf_camel_PAR_cancelFailed_PDU,
7256       { "PAR-cancelFailed", "camel.PAR_cancelFailed",
7257         FT_NONE, BASE_NONE, NULL, 0,
7258         NULL, HFILL }},
7259     { &hf_camel_PAR_requestedInfoError_PDU,
7260       { "PAR-requestedInfoError", "camel.PAR_requestedInfoError",
7261         FT_UINT32, BASE_DEC, VALS(camel_PAR_requestedInfoError_vals), 0,
7262         NULL, HFILL }},
7263     { &hf_camel_UnavailableNetworkResource_PDU,
7264       { "UnavailableNetworkResource", "camel.UnavailableNetworkResource",
7265         FT_UINT32, BASE_DEC, VALS(camel_UnavailableNetworkResource_vals), 0,
7266         NULL, HFILL }},
7267     { &hf_camel_PAR_taskRefused_PDU,
7268       { "PAR-taskRefused", "camel.PAR_taskRefused",
7269         FT_UINT32, BASE_DEC, VALS(camel_PAR_taskRefused_vals), 0,
7270         NULL, HFILL }},
7271     { &hf_camel_CAP_GPRS_ReferenceNumber_PDU,
7272       { "CAP-GPRS-ReferenceNumber", "camel.CAP_GPRS_ReferenceNumber",
7273         FT_NONE, BASE_NONE, NULL, 0,
7274         NULL, HFILL }},
7275     { &hf_camel_PlayAnnouncementArg_PDU,
7276       { "PlayAnnouncementArg", "camel.PlayAnnouncementArg",
7277         FT_NONE, BASE_NONE, NULL, 0,
7278         NULL, HFILL }},
7279     { &hf_camel_PromptAndCollectUserInformationArg_PDU,
7280       { "PromptAndCollectUserInformationArg", "camel.PromptAndCollectUserInformationArg",
7281         FT_NONE, BASE_NONE, NULL, 0,
7282         NULL, HFILL }},
7283     { &hf_camel_ReceivedInformationArg_PDU,
7284       { "ReceivedInformationArg", "camel.ReceivedInformationArg",
7285         FT_UINT32, BASE_DEC, VALS(camel_ReceivedInformationArg_vals), 0,
7286         NULL, HFILL }},
7287     { &hf_camel_SpecializedResourceReportArg_PDU,
7288       { "SpecializedResourceReportArg", "camel.SpecializedResourceReportArg",
7289         FT_UINT32, BASE_DEC, VALS(camel_SpecializedResourceReportArg_vals), 0,
7290         NULL, HFILL }},
7291     { &hf_camel_ApplyChargingArg_PDU,
7292       { "ApplyChargingArg", "camel.ApplyChargingArg",
7293         FT_NONE, BASE_NONE, NULL, 0,
7294         NULL, HFILL }},
7295     { &hf_camel_ApplyChargingReportArg_PDU,
7296       { "ApplyChargingReportArg", "camel.ApplyChargingReportArg",
7297         FT_BYTES, BASE_NONE, NULL, 0,
7298         NULL, HFILL }},
7299     { &hf_camel_AssistRequestInstructionsArg_PDU,
7300       { "AssistRequestInstructionsArg", "camel.AssistRequestInstructionsArg",
7301         FT_NONE, BASE_NONE, NULL, 0,
7302         NULL, HFILL }},
7303     { &hf_camel_CallGapArg_PDU,
7304       { "CallGapArg", "camel.CallGapArg",
7305         FT_NONE, BASE_NONE, NULL, 0,
7306         NULL, HFILL }},
7307     { &hf_camel_CallInformationReportArg_PDU,
7308       { "CallInformationReportArg", "camel.CallInformationReportArg",
7309         FT_NONE, BASE_NONE, NULL, 0,
7310         NULL, HFILL }},
7311     { &hf_camel_CallInformationRequestArg_PDU,
7312       { "CallInformationRequestArg", "camel.CallInformationRequestArg",
7313         FT_NONE, BASE_NONE, NULL, 0,
7314         NULL, HFILL }},
7315     { &hf_camel_CancelArg_PDU,
7316       { "CancelArg", "camel.CancelArg",
7317         FT_UINT32, BASE_DEC, VALS(camel_CancelArg_vals), 0,
7318         NULL, HFILL }},
7319     { &hf_camel_ConnectArg_PDU,
7320       { "ConnectArg", "camel.ConnectArg",
7321         FT_NONE, BASE_NONE, NULL, 0,
7322         NULL, HFILL }},
7323     { &hf_camel_ConnectToResourceArg_PDU,
7324       { "ConnectToResourceArg", "camel.ConnectToResourceArg",
7325         FT_NONE, BASE_NONE, NULL, 0,
7326         NULL, HFILL }},
7327     { &hf_camel_ContinueWithArgumentArg_PDU,
7328       { "ContinueWithArgumentArg", "camel.ContinueWithArgumentArg",
7329         FT_NONE, BASE_NONE, NULL, 0,
7330         NULL, HFILL }},
7331     { &hf_camel_DisconnectForwardConnectionWithArgumentArg_PDU,
7332       { "DisconnectForwardConnectionWithArgumentArg", "camel.DisconnectForwardConnectionWithArgumentArg",
7333         FT_NONE, BASE_NONE, NULL, 0,
7334         NULL, HFILL }},
7335     { &hf_camel_DisconnectLegArg_PDU,
7336       { "DisconnectLegArg", "camel.DisconnectLegArg",
7337         FT_NONE, BASE_NONE, NULL, 0,
7338         NULL, HFILL }},
7339     { &hf_camel_EntityReleasedArg_PDU,
7340       { "EntityReleasedArg", "camel.EntityReleasedArg",
7341         FT_UINT32, BASE_DEC, VALS(camel_EntityReleasedArg_vals), 0,
7342         NULL, HFILL }},
7343     { &hf_camel_EstablishTemporaryConnectionArg_PDU,
7344       { "EstablishTemporaryConnectionArg", "camel.EstablishTemporaryConnectionArg",
7345         FT_NONE, BASE_NONE, NULL, 0,
7346         NULL, HFILL }},
7347     { &hf_camel_EventReportBCSMArg_PDU,
7348       { "EventReportBCSMArg", "camel.EventReportBCSMArg",
7349         FT_NONE, BASE_NONE, NULL, 0,
7350         NULL, HFILL }},
7351     { &hf_camel_FurnishChargingInformationArg_PDU,
7352       { "FurnishChargingInformationArg", "camel.FurnishChargingInformationArg",
7353         FT_BYTES, BASE_NONE, NULL, 0,
7354         NULL, HFILL }},
7355     { &hf_camel_InitialDPArg_PDU,
7356       { "InitialDPArg", "camel.InitialDPArg",
7357         FT_NONE, BASE_NONE, NULL, 0,
7358         NULL, HFILL }},
7359     { &hf_camel_InitiateCallAttemptArg_PDU,
7360       { "InitiateCallAttemptArg", "camel.InitiateCallAttemptArg",
7361         FT_NONE, BASE_NONE, NULL, 0,
7362         NULL, HFILL }},
7363     { &hf_camel_InitiateCallAttemptRes_PDU,
7364       { "InitiateCallAttemptRes", "camel.InitiateCallAttemptRes",
7365         FT_NONE, BASE_NONE, NULL, 0,
7366         NULL, HFILL }},
7367     { &hf_camel_MoveLegArg_PDU,
7368       { "MoveLegArg", "camel.MoveLegArg",
7369         FT_NONE, BASE_NONE, NULL, 0,
7370         NULL, HFILL }},
7371     { &hf_camel_PlayToneArg_PDU,
7372       { "PlayToneArg", "camel.PlayToneArg",
7373         FT_NONE, BASE_NONE, NULL, 0,
7374         NULL, HFILL }},
7375     { &hf_camel_ReleaseCallArg_PDU,
7376       { "ReleaseCallArg", "camel.ReleaseCallArg",
7377         FT_BYTES, BASE_NONE, NULL, 0,
7378         NULL, HFILL }},
7379     { &hf_camel_RequestReportBCSMEventArg_PDU,
7380       { "RequestReportBCSMEventArg", "camel.RequestReportBCSMEventArg",
7381         FT_NONE, BASE_NONE, NULL, 0,
7382         NULL, HFILL }},
7383     { &hf_camel_ResetTimerArg_PDU,
7384       { "ResetTimerArg", "camel.ResetTimerArg",
7385         FT_NONE, BASE_NONE, NULL, 0,
7386         NULL, HFILL }},
7387     { &hf_camel_SendChargingInformationArg_PDU,
7388       { "SendChargingInformationArg", "camel.SendChargingInformationArg",
7389         FT_NONE, BASE_NONE, NULL, 0,
7390         NULL, HFILL }},
7391     { &hf_camel_SplitLegArg_PDU,
7392       { "SplitLegArg", "camel.SplitLegArg",
7393         FT_NONE, BASE_NONE, NULL, 0,
7394         NULL, HFILL }},
7395     { &hf_camel_ApplyChargingGPRSArg_PDU,
7396       { "ApplyChargingGPRSArg", "camel.ApplyChargingGPRSArg",
7397         FT_NONE, BASE_NONE, NULL, 0,
7398         NULL, HFILL }},
7399     { &hf_camel_ApplyChargingReportGPRSArg_PDU,
7400       { "ApplyChargingReportGPRSArg", "camel.ApplyChargingReportGPRSArg",
7401         FT_NONE, BASE_NONE, NULL, 0,
7402         NULL, HFILL }},
7403     { &hf_camel_CancelGPRSArg_PDU,
7404       { "CancelGPRSArg", "camel.CancelGPRSArg",
7405         FT_NONE, BASE_NONE, NULL, 0,
7406         NULL, HFILL }},
7407     { &hf_camel_ConnectGPRSArg_PDU,
7408       { "ConnectGPRSArg", "camel.ConnectGPRSArg",
7409         FT_NONE, BASE_NONE, NULL, 0,
7410         NULL, HFILL }},
7411     { &hf_camel_ContinueGPRSArg_PDU,
7412       { "ContinueGPRSArg", "camel.ContinueGPRSArg",
7413         FT_NONE, BASE_NONE, NULL, 0,
7414         NULL, HFILL }},
7415     { &hf_camel_EntityReleasedGPRSArg_PDU,
7416       { "EntityReleasedGPRSArg", "camel.EntityReleasedGPRSArg",
7417         FT_NONE, BASE_NONE, NULL, 0,
7418         NULL, HFILL }},
7419     { &hf_camel_EventReportGPRSArg_PDU,
7420       { "EventReportGPRSArg", "camel.EventReportGPRSArg",
7421         FT_NONE, BASE_NONE, NULL, 0,
7422         NULL, HFILL }},
7423     { &hf_camel_FurnishChargingInformationGPRSArg_PDU,
7424       { "FurnishChargingInformationGPRSArg", "camel.FurnishChargingInformationGPRSArg",
7425         FT_BYTES, BASE_NONE, NULL, 0,
7426         NULL, HFILL }},
7427     { &hf_camel_InitialDPGPRSArg_PDU,
7428       { "InitialDPGPRSArg", "camel.InitialDPGPRSArg",
7429         FT_NONE, BASE_NONE, NULL, 0,
7430         NULL, HFILL }},
7431     { &hf_camel_ReleaseGPRSArg_PDU,
7432       { "ReleaseGPRSArg", "camel.ReleaseGPRSArg",
7433         FT_NONE, BASE_NONE, NULL, 0,
7434         NULL, HFILL }},
7435     { &hf_camel_RequestReportGPRSEventArg_PDU,
7436       { "RequestReportGPRSEventArg", "camel.RequestReportGPRSEventArg",
7437         FT_NONE, BASE_NONE, NULL, 0,
7438         NULL, HFILL }},
7439     { &hf_camel_ResetTimerGPRSArg_PDU,
7440       { "ResetTimerGPRSArg", "camel.ResetTimerGPRSArg",
7441         FT_NONE, BASE_NONE, NULL, 0,
7442         NULL, HFILL }},
7443     { &hf_camel_SendChargingInformationGPRSArg_PDU,
7444       { "SendChargingInformationGPRSArg", "camel.SendChargingInformationGPRSArg",
7445         FT_NONE, BASE_NONE, NULL, 0,
7446         NULL, HFILL }},
7447     { &hf_camel_ConnectSMSArg_PDU,
7448       { "ConnectSMSArg", "camel.ConnectSMSArg",
7449         FT_NONE, BASE_NONE, NULL, 0,
7450         NULL, HFILL }},
7451     { &hf_camel_EventReportSMSArg_PDU,
7452       { "EventReportSMSArg", "camel.EventReportSMSArg",
7453         FT_NONE, BASE_NONE, NULL, 0,
7454         NULL, HFILL }},
7455     { &hf_camel_FurnishChargingInformationSMSArg_PDU,
7456       { "FurnishChargingInformationSMSArg", "camel.FurnishChargingInformationSMSArg",
7457         FT_BYTES, BASE_NONE, NULL, 0,
7458         NULL, HFILL }},
7459     { &hf_camel_InitialDPSMSArg_PDU,
7460       { "InitialDPSMSArg", "camel.InitialDPSMSArg",
7461         FT_NONE, BASE_NONE, NULL, 0,
7462         NULL, HFILL }},
7463     { &hf_camel_ReleaseSMSArg_PDU,
7464       { "ReleaseSMSArg", "camel.ReleaseSMSArg",
7465         FT_BYTES, BASE_NONE, NULL, 0,
7466         NULL, HFILL }},
7467     { &hf_camel_RequestReportSMSEventArg_PDU,
7468       { "RequestReportSMSEventArg", "camel.RequestReportSMSEventArg",
7469         FT_NONE, BASE_NONE, NULL, 0,
7470         NULL, HFILL }},
7471     { &hf_camel_ResetTimerSMSArg_PDU,
7472       { "ResetTimerSMSArg", "camel.ResetTimerSMSArg",
7473         FT_NONE, BASE_NONE, NULL, 0,
7474         NULL, HFILL }},
7475     { &hf_camel_CAP_U_ABORT_REASON_PDU,
7476       { "CAP-U-ABORT-REASON", "camel.CAP_U_ABORT_REASON",
7477         FT_UINT32, BASE_DEC, VALS(camel_CAP_U_ABORT_REASON_vals), 0,
7478         NULL, HFILL }},
7479     { &hf_camel_legID,
7480       { "legID", "camel.legID",
7481         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
7482         NULL, HFILL }},
7483     { &hf_camel_srfConnection,
7484       { "srfConnection", "camel.srfConnection",
7485         FT_UINT32, BASE_DEC, NULL, 0,
7486         "CallSegmentID", HFILL }},
7487     { &hf_camel_aOCInitial,
7488       { "aOCInitial", "camel.aOCInitial",
7489         FT_NONE, BASE_NONE, NULL, 0,
7490         "CAI_GSM0224", HFILL }},
7491     { &hf_camel_aOCSubsequent,
7492       { "aOCSubsequent", "camel.aOCSubsequent",
7493         FT_NONE, BASE_NONE, NULL, 0,
7494         NULL, HFILL }},
7495     { &hf_camel_cAI_GSM0224,
7496       { "cAI-GSM0224", "camel.cAI_GSM0224",
7497         FT_NONE, BASE_NONE, NULL, 0,
7498         NULL, HFILL }},
7499     { &hf_camel_aocSubsequent_tariffSwitchInterval,
7500       { "tariffSwitchInterval", "camel.tariffSwitchInterval",
7501         FT_UINT32, BASE_DEC, NULL, 0,
7502         "INTEGER_1_86400", HFILL }},
7503     { &hf_camel_audibleIndicatorTone,
7504       { "tone", "camel.tone",
7505         FT_BOOLEAN, BASE_NONE, NULL, 0,
7506         "BOOLEAN", HFILL }},
7507     { &hf_camel_burstList,
7508       { "burstList", "camel.burstList",
7509         FT_NONE, BASE_NONE, NULL, 0,
7510         NULL, HFILL }},
7511     { &hf_camel_conferenceTreatmentIndicator,
7512       { "conferenceTreatmentIndicator", "camel.conferenceTreatmentIndicator",
7513         FT_BYTES, BASE_NONE, NULL, 0,
7514         "OCTET_STRING_SIZE_1", HFILL }},
7515     { &hf_camel_callCompletionTreatmentIndicator,
7516       { "callCompletionTreatmentIndicator", "camel.callCompletionTreatmentIndicator",
7517         FT_BYTES, BASE_NONE, NULL, 0,
7518         "OCTET_STRING_SIZE_1", HFILL }},
7519     { &hf_camel_calledAddressValue,
7520       { "calledAddressValue", "camel.calledAddressValue",
7521         FT_BYTES, BASE_NONE, NULL, 0,
7522         "Digits", HFILL }},
7523     { &hf_camel_gapOnService,
7524       { "gapOnService", "camel.gapOnService",
7525         FT_NONE, BASE_NONE, NULL, 0,
7526         NULL, HFILL }},
7527     { &hf_camel_calledAddressAndService,
7528       { "calledAddressAndService", "camel.calledAddressAndService",
7529         FT_NONE, BASE_NONE, NULL, 0,
7530         NULL, HFILL }},
7531     { &hf_camel_serviceKey,
7532       { "serviceKey", "camel.serviceKey",
7533         FT_UINT32, BASE_DEC, NULL, 0,
7534         NULL, HFILL }},
7535     { &hf_camel_callingAddressAndService,
7536       { "callingAddressAndService", "camel.callingAddressAndService",
7537         FT_NONE, BASE_NONE, NULL, 0,
7538         NULL, HFILL }},
7539     { &hf_camel_callingAddressValue,
7540       { "callingAddressValue", "camel.callingAddressValue",
7541         FT_BYTES, BASE_NONE, NULL, 0,
7542         "Digits", HFILL }},
7543     { &hf_camel_eventTypeBCSM,
7544       { "eventTypeBCSM", "camel.eventTypeBCSM",
7545         FT_UINT32, BASE_DEC, VALS(camel_EventTypeBCSM_vals), 0,
7546         NULL, HFILL }},
7547     { &hf_camel_monitorMode,
7548       { "monitorMode", "camel.monitorMode",
7549         FT_UINT32, BASE_DEC, VALS(camel_MonitorMode_vals), 0,
7550         NULL, HFILL }},
7551     { &hf_camel_dpSpecificCriteria,
7552       { "dpSpecificCriteria", "camel.dpSpecificCriteria",
7553         FT_UINT32, BASE_DEC, VALS(camel_DpSpecificCriteria_vals), 0,
7554         NULL, HFILL }},
7555     { &hf_camel_automaticRearm,
7556       { "automaticRearm", "camel.automaticRearm",
7557         FT_NONE, BASE_NONE, NULL, 0,
7558         NULL, HFILL }},
7559     { &hf_camel_cause,
7560       { "cause", "camel.cause",
7561         FT_BYTES, BASE_NONE, NULL, 0,
7562         NULL, HFILL }},
7563     { &hf_camel_bearerCap,
7564       { "bearerCap", "camel.bearerCap",
7565         FT_BYTES, BASE_NONE, NULL, 0,
7566         NULL, HFILL }},
7567     { &hf_camel_numberOfBursts,
7568       { "numberOfBursts", "camel.numberOfBursts",
7569         FT_UINT32, BASE_DEC, NULL, 0,
7570         "INTEGER_1_3", HFILL }},
7571     { &hf_camel_burstInterval,
7572       { "burstInterval", "camel.burstInterval",
7573         FT_UINT32, BASE_DEC, NULL, 0,
7574         "INTEGER_1_1200", HFILL }},
7575     { &hf_camel_numberOfTonesInBurst,
7576       { "numberOfTonesInBurst", "camel.numberOfTonesInBurst",
7577         FT_UINT32, BASE_DEC, NULL, 0,
7578         "INTEGER_1_3", HFILL }},
7579     { &hf_camel_burstToneDuration,
7580       { "toneDuration", "camel.toneDuration",
7581         FT_UINT32, BASE_DEC, NULL, 0,
7582         "INTEGER_1_20", HFILL }},
7583     { &hf_camel_toneInterval,
7584       { "toneInterval", "camel.toneInterval",
7585         FT_UINT32, BASE_DEC, NULL, 0,
7586         "INTEGER_1_20", HFILL }},
7587     { &hf_camel_warningPeriod,
7588       { "warningPeriod", "camel.warningPeriod",
7589         FT_UINT32, BASE_DEC, NULL, 0,
7590         "INTEGER_1_1200", HFILL }},
7591     { &hf_camel_bursts,
7592       { "bursts", "camel.bursts",
7593         FT_NONE, BASE_NONE, NULL, 0,
7594         "Burst", HFILL }},
7595     { &hf_camel_e1,
7596       { "e1", "camel.e1",
7597         FT_UINT32, BASE_DEC, NULL, 0,
7598         "INTEGER_0_8191", HFILL }},
7599     { &hf_camel_e2,
7600       { "e2", "camel.e2",
7601         FT_UINT32, BASE_DEC, NULL, 0,
7602         "INTEGER_0_8191", HFILL }},
7603     { &hf_camel_e3,
7604       { "e3", "camel.e3",
7605         FT_UINT32, BASE_DEC, NULL, 0,
7606         "INTEGER_0_8191", HFILL }},
7607     { &hf_camel_e4,
7608       { "e4", "camel.e4",
7609         FT_UINT32, BASE_DEC, NULL, 0,
7610         "INTEGER_0_8191", HFILL }},
7611     { &hf_camel_e5,
7612       { "e5", "camel.e5",
7613         FT_UINT32, BASE_DEC, NULL, 0,
7614         "INTEGER_0_8191", HFILL }},
7615     { &hf_camel_e6,
7616       { "e6", "camel.e6",
7617         FT_UINT32, BASE_DEC, NULL, 0,
7618         "INTEGER_0_8191", HFILL }},
7619     { &hf_camel_e7,
7620       { "e7", "camel.e7",
7621         FT_UINT32, BASE_DEC, NULL, 0,
7622         "INTEGER_0_8191", HFILL }},
7623     { &hf_camel_callSegmentID,
7624       { "callSegmentID", "camel.callSegmentID",
7625         FT_UINT32, BASE_DEC, NULL, 0,
7626         NULL, HFILL }},
7627     { &hf_camel_invokeID,
7628       { "invokeID", "camel.invokeID",
7629         FT_INT32, BASE_DEC, NULL, 0,
7630         NULL, HFILL }},
7631     { &hf_camel_timeDurationCharging,
7632       { "timeDurationCharging", "camel.timeDurationCharging",
7633         FT_NONE, BASE_NONE, NULL, 0,
7634         NULL, HFILL }},
7635     { &hf_camel_maxCallPeriodDuration,
7636       { "maxCallPeriodDuration", "camel.maxCallPeriodDuration",
7637         FT_UINT32, BASE_DEC, NULL, 0,
7638         "INTEGER_1_864000", HFILL }},
7639     { &hf_camel_releaseIfdurationExceeded,
7640       { "releaseIfdurationExceeded", "camel.releaseIfdurationExceeded",
7641         FT_BOOLEAN, BASE_NONE, NULL, 0,
7642         "BOOLEAN", HFILL }},
7643     { &hf_camel_timeDurationCharging_tariffSwitchInterval,
7644       { "tariffSwitchInterval", "camel.tariffSwitchInterval",
7645         FT_UINT32, BASE_DEC, NULL, 0,
7646         "INTEGER_1_86400", HFILL }},
7647     { &hf_camel_audibleIndicator,
7648       { "audibleIndicator", "camel.audibleIndicator",
7649         FT_UINT32, BASE_DEC, VALS(camel_AudibleIndicator_vals), 0,
7650         NULL, HFILL }},
7651     { &hf_camel_extensions,
7652       { "extensions", "camel.extensions",
7653         FT_UINT32, BASE_DEC, NULL, 0,
7654         NULL, HFILL }},
7655     { &hf_camel_timeDurationChargingResult,
7656       { "timeDurationChargingResult", "camel.timeDurationChargingResult",
7657         FT_NONE, BASE_NONE, NULL, 0,
7658         NULL, HFILL }},
7659     { &hf_camel_timeDurationChargingResultpartyToCharge,
7660       { "partyToCharge", "camel.partyToCharge",
7661         FT_UINT32, BASE_DEC, VALS(camel_ReceivingSideID_vals), 0,
7662         "ReceivingSideID", HFILL }},
7663     { &hf_camel_timeInformation,
7664       { "timeInformation", "camel.timeInformation",
7665         FT_UINT32, BASE_DEC, VALS(camel_TimeInformation_vals), 0,
7666         NULL, HFILL }},
7667     { &hf_camel_legActive,
7668       { "legActive", "camel.legActive",
7669         FT_BOOLEAN, BASE_NONE, NULL, 0,
7670         "BOOLEAN", HFILL }},
7671     { &hf_camel_callLegReleasedAtTcpExpiry,
7672       { "callLegReleasedAtTcpExpiry", "camel.callLegReleasedAtTcpExpiry",
7673         FT_NONE, BASE_NONE, NULL, 0,
7674         NULL, HFILL }},
7675     { &hf_camel_aChChargingAddress,
7676       { "aChChargingAddress", "camel.aChChargingAddress",
7677         FT_UINT32, BASE_DEC, VALS(camel_AChChargingAddress_vals), 0,
7678         NULL, HFILL }},
7679     { &hf_camel_fci_fCIBCCCAMELsequence1,
7680       { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1",
7681         FT_NONE, BASE_NONE, NULL, 0,
7682         "T_fci_fCIBCCCAMELsequence1", HFILL }},
7683     { &hf_camel_freeFormatData,
7684       { "freeFormatData", "camel.freeFormatData",
7685         FT_BYTES, BASE_NONE, NULL, 0,
7686         "OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength", HFILL }},
7687     { &hf_camel_fCIBCCCAMELsequence1partyToCharge,
7688       { "partyToCharge", "camel.partyToCharge",
7689         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
7690         "SendingSideID", HFILL }},
7691     { &hf_camel_appendFreeFormatData,
7692       { "appendFreeFormatData", "camel.appendFreeFormatData",
7693         FT_UINT32, BASE_DEC, VALS(camel_AppendFreeFormatData_vals), 0,
7694         NULL, HFILL }},
7695     { &hf_camel_fciGPRS_fCIBCCCAMELsequence1,
7696       { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1",
7697         FT_NONE, BASE_NONE, NULL, 0,
7698         "T_fciGPRS_fCIBCCCAMELsequence1", HFILL }},
7699     { &hf_camel_pDPID,
7700       { "pDPID", "camel.pDPID",
7701         FT_BYTES, BASE_NONE, NULL, 0,
7702         NULL, HFILL }},
7703     { &hf_camel_fciSMS_fCIBCCCAMELsequence1,
7704       { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1",
7705         FT_NONE, BASE_NONE, NULL, 0,
7706         "T_fciSMS_fCIBCCCAMELsequence1", HFILL }},
7707     { &hf_camel_aOCBeforeAnswer,
7708       { "aOCBeforeAnswer", "camel.aOCBeforeAnswer",
7709         FT_NONE, BASE_NONE, NULL, 0,
7710         NULL, HFILL }},
7711     { &hf_camel_aOCAfterAnswer,
7712       { "aOCAfterAnswer", "camel.aOCAfterAnswer",
7713         FT_NONE, BASE_NONE, NULL, 0,
7714         "AOCSubsequent", HFILL }},
7715     { &hf_camel_aOC_extension,
7716       { "aOC-extension", "camel.aOC_extension",
7717         FT_NONE, BASE_NONE, NULL, 0,
7718         "CAMEL_SCIBillingChargingCharacteristicsAlt", HFILL }},
7719     { &hf_camel_aOCGPRS,
7720       { "aOCGPRS", "camel.aOCGPRS",
7721         FT_NONE, BASE_NONE, NULL, 0,
7722         NULL, HFILL }},
7723     { &hf_camel_ChangeOfPositionControlInfo_item,
7724       { "ChangeOfLocation", "camel.ChangeOfLocation",
7725         FT_UINT32, BASE_DEC, VALS(camel_ChangeOfLocation_vals), 0,
7726         NULL, HFILL }},
7727     { &hf_camel_cellGlobalId,
7728       { "cellGlobalId", "camel.cellGlobalId",
7729         FT_BYTES, BASE_NONE, NULL, 0,
7730         "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
7731     { &hf_camel_serviceAreaId,
7732       { "serviceAreaId", "camel.serviceAreaId",
7733         FT_BYTES, BASE_NONE, NULL, 0,
7734         "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
7735     { &hf_camel_locationAreaId,
7736       { "locationAreaId", "camel.locationAreaId",
7737         FT_BYTES, BASE_NONE, NULL, 0,
7738         "LAIFixedLength", HFILL }},
7739     { &hf_camel_inter_SystemHandOver,
7740       { "inter-SystemHandOver", "camel.inter_SystemHandOver",
7741         FT_NONE, BASE_NONE, NULL, 0,
7742         NULL, HFILL }},
7743     { &hf_camel_inter_PLMNHandOver,
7744       { "inter-PLMNHandOver", "camel.inter_PLMNHandOver",
7745         FT_NONE, BASE_NONE, NULL, 0,
7746         NULL, HFILL }},
7747     { &hf_camel_inter_MSCHandOver,
7748       { "inter-MSCHandOver", "camel.inter_MSCHandOver",
7749         FT_NONE, BASE_NONE, NULL, 0,
7750         NULL, HFILL }},
7751     { &hf_camel_changeOfLocationAlt,
7752       { "changeOfLocationAlt", "camel.changeOfLocationAlt",
7753         FT_NONE, BASE_NONE, NULL, 0,
7754         NULL, HFILL }},
7755     { &hf_camel_maxTransferredVolume,
7756       { "maxTransferredVolume", "camel.maxTransferredVolume",
7757         FT_UINT32, BASE_DEC, NULL, 0,
7758         "INTEGER_1_4294967295", HFILL }},
7759     { &hf_camel_maxElapsedTime,
7760       { "maxElapsedTime", "camel.maxElapsedTime",
7761         FT_UINT32, BASE_DEC, NULL, 0,
7762         "INTEGER_1_86400", HFILL }},
7763     { &hf_camel_transferredVolume,
7764       { "transferredVolume", "camel.transferredVolume",
7765         FT_UINT32, BASE_DEC, VALS(camel_TransferredVolume_vals), 0,
7766         NULL, HFILL }},
7767     { &hf_camel_elapsedTime,
7768       { "elapsedTime", "camel.elapsedTime",
7769         FT_UINT32, BASE_DEC, VALS(camel_ElapsedTime_vals), 0,
7770         NULL, HFILL }},
7771     { &hf_camel_transferredVolumeRollOver,
7772       { "transferredVolumeRollOver", "camel.transferredVolumeRollOver",
7773         FT_UINT32, BASE_DEC, VALS(camel_TransferredVolumeRollOver_vals), 0,
7774         NULL, HFILL }},
7775     { &hf_camel_elapsedTimeRollOver,
7776       { "elapsedTimeRollOver", "camel.elapsedTimeRollOver",
7777         FT_UINT32, BASE_DEC, VALS(camel_ElapsedTimeRollOver_vals), 0,
7778         NULL, HFILL }},
7779     { &hf_camel_minimumNbOfDigits,
7780       { "minimumNbOfDigits", "camel.minimumNbOfDigits",
7781         FT_UINT32, BASE_DEC, NULL, 0,
7782         "INTEGER_1_30", HFILL }},
7783     { &hf_camel_maximumNbOfDigits,
7784       { "maximumNbOfDigits", "camel.maximumNbOfDigits",
7785         FT_UINT32, BASE_DEC, NULL, 0,
7786         "INTEGER_1_30", HFILL }},
7787     { &hf_camel_endOfReplyDigit,
7788       { "endOfReplyDigit", "camel.endOfReplyDigit",
7789         FT_BYTES, BASE_NONE, NULL, 0,
7790         "OCTET_STRING_SIZE_1_2", HFILL }},
7791     { &hf_camel_cancelDigit,
7792       { "cancelDigit", "camel.cancelDigit",
7793         FT_BYTES, BASE_NONE, NULL, 0,
7794         "OCTET_STRING_SIZE_1_2", HFILL }},
7795     { &hf_camel_startDigit,
7796       { "startDigit", "camel.startDigit",
7797         FT_BYTES, BASE_NONE, NULL, 0,
7798         "OCTET_STRING_SIZE_1_2", HFILL }},
7799     { &hf_camel_firstDigitTimeOut,
7800       { "firstDigitTimeOut", "camel.firstDigitTimeOut",
7801         FT_UINT32, BASE_DEC, NULL, 0,
7802         "INTEGER_1_127", HFILL }},
7803     { &hf_camel_interDigitTimeOut,
7804       { "interDigitTimeOut", "camel.interDigitTimeOut",
7805         FT_UINT32, BASE_DEC, NULL, 0,
7806         "INTEGER_1_127", HFILL }},
7807     { &hf_camel_errorTreatment,
7808       { "errorTreatment", "camel.errorTreatment",
7809         FT_UINT32, BASE_DEC, VALS(camel_ErrorTreatment_vals), 0,
7810         NULL, HFILL }},
7811     { &hf_camel_interruptableAnnInd,
7812       { "interruptableAnnInd", "camel.interruptableAnnInd",
7813         FT_BOOLEAN, BASE_NONE, NULL, 0,
7814         "BOOLEAN", HFILL }},
7815     { &hf_camel_voiceInformation,
7816       { "voiceInformation", "camel.voiceInformation",
7817         FT_BOOLEAN, BASE_NONE, NULL, 0,
7818         "BOOLEAN", HFILL }},
7819     { &hf_camel_voiceBack,
7820       { "voiceBack", "camel.voiceBack",
7821         FT_BOOLEAN, BASE_NONE, NULL, 0,
7822         "BOOLEAN", HFILL }},
7823     { &hf_camel_collectedDigits,
7824       { "collectedDigits", "camel.collectedDigits",
7825         FT_NONE, BASE_NONE, NULL, 0,
7826         NULL, HFILL }},
7827     { &hf_camel_basicGapCriteria,
7828       { "basicGapCriteria", "camel.basicGapCriteria",
7829         FT_UINT32, BASE_DEC, VALS(camel_BasicGapCriteria_vals), 0,
7830         NULL, HFILL }},
7831     { &hf_camel_scfID,
7832       { "scfID", "camel.scfID",
7833         FT_BYTES, BASE_NONE, NULL, 0,
7834         NULL, HFILL }},
7835     { &hf_camel_DestinationRoutingAddress_item,
7836       { "CalledPartyNumber", "camel.CalledPartyNumber",
7837         FT_BYTES, BASE_NONE, NULL, 0,
7838         NULL, HFILL }},
7839     { &hf_camel_applicationTimer,
7840       { "applicationTimer", "camel.applicationTimer",
7841         FT_UINT32, BASE_DEC, NULL, 0,
7842         NULL, HFILL }},
7843     { &hf_camel_midCallControlInfo,
7844       { "midCallControlInfo", "camel.midCallControlInfo",
7845         FT_NONE, BASE_NONE, NULL, 0,
7846         NULL, HFILL }},
7847     { &hf_camel_dpSpecificCriteriaAlt,
7848       { "dpSpecificCriteriaAlt", "camel.dpSpecificCriteriaAlt",
7849         FT_NONE, BASE_NONE, NULL, 0,
7850         NULL, HFILL }},
7851     { &hf_camel_changeOfPositionControlInfo,
7852       { "changeOfPositionControlInfo", "camel.changeOfPositionControlInfo",
7853         FT_UINT32, BASE_DEC, NULL, 0,
7854         NULL, HFILL }},
7855     { &hf_camel_numberOfDigits,
7856       { "numberOfDigits", "camel.numberOfDigits",
7857         FT_UINT32, BASE_DEC, NULL, 0,
7858         NULL, HFILL }},
7859     { &hf_camel_interDigitTimeout,
7860       { "interDigitTimeout", "camel.interDigitTimeout",
7861         FT_UINT32, BASE_DEC, NULL, 0,
7862         "INTEGER_1_127", HFILL }},
7863     { &hf_camel_oServiceChangeSpecificInfo,
7864       { "oServiceChangeSpecificInfo", "camel.oServiceChangeSpecificInfo",
7865         FT_NONE, BASE_NONE, NULL, 0,
7866         NULL, HFILL }},
7867     { &hf_camel_ext_basicServiceCode,
7868       { "ext-basicServiceCode", "camel.ext_basicServiceCode",
7869         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
7870         NULL, HFILL }},
7871     { &hf_camel_initiatorOfServiceChange,
7872       { "initiatorOfServiceChange", "camel.initiatorOfServiceChange",
7873         FT_UINT32, BASE_DEC, VALS(camel_InitiatorOfServiceChange_vals), 0,
7874         NULL, HFILL }},
7875     { &hf_camel_natureOfServiceChange,
7876       { "natureOfServiceChange", "camel.natureOfServiceChange",
7877         FT_UINT32, BASE_DEC, VALS(camel_NatureOfServiceChange_vals), 0,
7878         NULL, HFILL }},
7879     { &hf_camel_tServiceChangeSpecificInfo,
7880       { "tServiceChangeSpecificInfo", "camel.tServiceChangeSpecificInfo",
7881         FT_NONE, BASE_NONE, NULL, 0,
7882         NULL, HFILL }},
7883     { &hf_camel_collectedInfoSpecificInfo,
7884       { "collectedInfoSpecificInfo", "camel.collectedInfoSpecificInfo",
7885         FT_NONE, BASE_NONE, NULL, 0,
7886         NULL, HFILL }},
7887     { &hf_camel_calledPartyNumber,
7888       { "calledPartyNumber", "camel.calledPartyNumber",
7889         FT_BYTES, BASE_NONE, NULL, 0,
7890         NULL, HFILL }},
7891     { &hf_camel_timeGPRSIfNoTariffSwitch,
7892       { "timeGPRSIfNoTariffSwitch", "camel.timeGPRSIfNoTariffSwitch",
7893         FT_UINT32, BASE_DEC, NULL, 0,
7894         "INTEGER_0_86400", HFILL }},
7895     { &hf_camel_timeGPRSIfTariffSwitch,
7896       { "timeGPRSIfTariffSwitch", "camel.timeGPRSIfTariffSwitch",
7897         FT_NONE, BASE_NONE, NULL, 0,
7898         NULL, HFILL }},
7899     { &hf_camel_timeGPRSSinceLastTariffSwitch,
7900       { "timeGPRSSinceLastTariffSwitch", "camel.timeGPRSSinceLastTariffSwitch",
7901         FT_UINT32, BASE_DEC, NULL, 0,
7902         "INTEGER_0_86400", HFILL }},
7903     { &hf_camel_timeGPRSTariffSwitchInterval,
7904       { "timeGPRSTariffSwitchInterval", "camel.timeGPRSTariffSwitchInterval",
7905         FT_UINT32, BASE_DEC, NULL, 0,
7906         "INTEGER_0_86400", HFILL }},
7907     { &hf_camel_rO_TimeGPRSIfNoTariffSwitch,
7908       { "rO-TimeGPRSIfNoTariffSwitch", "camel.rO_TimeGPRSIfNoTariffSwitch",
7909         FT_UINT32, BASE_DEC, NULL, 0,
7910         "INTEGER_0_255", HFILL }},
7911     { &hf_camel_rO_TimeGPRSIfTariffSwitch,
7912       { "rO-TimeGPRSIfTariffSwitch", "camel.rO_TimeGPRSIfTariffSwitch",
7913         FT_NONE, BASE_NONE, NULL, 0,
7914         NULL, HFILL }},
7915     { &hf_camel_rO_TimeGPRSSinceLastTariffSwitch,
7916       { "rO-TimeGPRSSinceLastTariffSwitch", "camel.rO_TimeGPRSSinceLastTariffSwitch",
7917         FT_UINT32, BASE_DEC, NULL, 0,
7918         "INTEGER_0_255", HFILL }},
7919     { &hf_camel_rO_TimeGPRSTariffSwitchInterval,
7920       { "rO-TimeGPRSTariffSwitchInterval", "camel.rO_TimeGPRSTariffSwitchInterval",
7921         FT_UINT32, BASE_DEC, NULL, 0,
7922         "INTEGER_0_255", HFILL }},
7923     { &hf_camel_pDPTypeOrganization,
7924       { "pDPTypeOrganization", "camel.pDPTypeOrganization",
7925         FT_BYTES, BASE_NONE, NULL, 0,
7926         NULL, HFILL }},
7927     { &hf_camel_pDPTypeNumber,
7928       { "pDPTypeNumber", "camel.pDPTypeNumber",
7929         FT_BYTES, BASE_NONE, NULL, 0,
7930         NULL, HFILL }},
7931     { &hf_camel_pDPAddress,
7932       { "pDPAddress", "camel.pDPAddress",
7933         FT_BYTES, BASE_NONE, NULL, 0,
7934         NULL, HFILL }},
7935     { &hf_camel_routeSelectFailureSpecificInfo,
7936       { "routeSelectFailureSpecificInfo", "camel.routeSelectFailureSpecificInfo",
7937         FT_NONE, BASE_NONE, NULL, 0,
7938         NULL, HFILL }},
7939     { &hf_camel_routeSelectfailureCause,
7940       { "failureCause", "camel.failureCause",
7941         FT_BYTES, BASE_NONE, NULL, 0,
7942         "Cause", HFILL }},
7943     { &hf_camel_oCalledPartyBusySpecificInfo,
7944       { "oCalledPartyBusySpecificInfo", "camel.oCalledPartyBusySpecificInfo",
7945         FT_NONE, BASE_NONE, NULL, 0,
7946         NULL, HFILL }},
7947     { &hf_camel_busyCause,
7948       { "busyCause", "camel.busyCause",
7949         FT_BYTES, BASE_NONE, NULL, 0,
7950         "Cause", HFILL }},
7951     { &hf_camel_oNoAnswerSpecificInfo,
7952       { "oNoAnswerSpecificInfo", "camel.oNoAnswerSpecificInfo",
7953         FT_NONE, BASE_NONE, NULL, 0,
7954         NULL, HFILL }},
7955     { &hf_camel_oAnswerSpecificInfo,
7956       { "oAnswerSpecificInfo", "camel.oAnswerSpecificInfo",
7957         FT_NONE, BASE_NONE, NULL, 0,
7958         NULL, HFILL }},
7959     { &hf_camel_destinationAddress,
7960       { "destinationAddress", "camel.destinationAddress",
7961         FT_BYTES, BASE_NONE, NULL, 0,
7962         "CalledPartyNumber", HFILL }},
7963     { &hf_camel_or_Call,
7964       { "or-Call", "camel.or_Call",
7965         FT_NONE, BASE_NONE, NULL, 0,
7966         NULL, HFILL }},
7967     { &hf_camel_forwardedCall,
7968       { "forwardedCall", "camel.forwardedCall",
7969         FT_NONE, BASE_NONE, NULL, 0,
7970         NULL, HFILL }},
7971     { &hf_camel_chargeIndicator,
7972       { "chargeIndicator", "camel.chargeIndicator",
7973         FT_BYTES, BASE_NONE, NULL, 0,
7974         NULL, HFILL }},
7975     { &hf_camel_ext_basicServiceCode2,
7976       { "ext-basicServiceCode2", "camel.ext_basicServiceCode2",
7977         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
7978         "Ext_BasicServiceCode", HFILL }},
7979     { &hf_camel_oMidCallSpecificInfo,
7980       { "oMidCallSpecificInfo", "camel.oMidCallSpecificInfo",
7981         FT_NONE, BASE_NONE, NULL, 0,
7982         NULL, HFILL }},
7983     { &hf_camel_omidCallEvents,
7984       { "midCallEvents", "camel.midCallEvents",
7985         FT_UINT32, BASE_DEC, VALS(camel_T_omidCallEvents_vals), 0,
7986         "T_omidCallEvents", HFILL }},
7987     { &hf_camel_dTMFDigitsCompleted,
7988       { "dTMFDigitsCompleted", "camel.dTMFDigitsCompleted",
7989         FT_BYTES, BASE_NONE, NULL, 0,
7990         "Digits", HFILL }},
7991     { &hf_camel_dTMFDigitsTimeOut,
7992       { "dTMFDigitsTimeOut", "camel.dTMFDigitsTimeOut",
7993         FT_BYTES, BASE_NONE, NULL, 0,
7994         "Digits", HFILL }},
7995     { &hf_camel_oDisconnectSpecificInfo,
7996       { "oDisconnectSpecificInfo", "camel.oDisconnectSpecificInfo",
7997         FT_NONE, BASE_NONE, NULL, 0,
7998         NULL, HFILL }},
7999     { &hf_camel_releaseCause,
8000       { "releaseCause", "camel.releaseCause",
8001         FT_BYTES, BASE_NONE, NULL, 0,
8002         "Cause", HFILL }},
8003     { &hf_camel_tBusySpecificInfo,
8004       { "tBusySpecificInfo", "camel.tBusySpecificInfo",
8005         FT_NONE, BASE_NONE, NULL, 0,
8006         NULL, HFILL }},
8007     { &hf_camel_callForwarded,
8008       { "callForwarded", "camel.callForwarded",
8009         FT_NONE, BASE_NONE, NULL, 0,
8010         NULL, HFILL }},
8011     { &hf_camel_routeNotPermitted,
8012       { "routeNotPermitted", "camel.routeNotPermitted",
8013         FT_NONE, BASE_NONE, NULL, 0,
8014         NULL, HFILL }},
8015     { &hf_camel_forwardingDestinationNumber,
8016       { "forwardingDestinationNumber", "camel.forwardingDestinationNumber",
8017         FT_BYTES, BASE_NONE, NULL, 0,
8018         "CalledPartyNumber", HFILL }},
8019     { &hf_camel_tNoAnswerSpecificInfo,
8020       { "tNoAnswerSpecificInfo", "camel.tNoAnswerSpecificInfo",
8021         FT_NONE, BASE_NONE, NULL, 0,
8022         NULL, HFILL }},
8023     { &hf_camel_tAnswerSpecificInfo,
8024       { "tAnswerSpecificInfo", "camel.tAnswerSpecificInfo",
8025         FT_NONE, BASE_NONE, NULL, 0,
8026         NULL, HFILL }},
8027     { &hf_camel_tMidCallSpecificInfo,
8028       { "tMidCallSpecificInfo", "camel.tMidCallSpecificInfo",
8029         FT_NONE, BASE_NONE, NULL, 0,
8030         NULL, HFILL }},
8031     { &hf_camel_tmidCallEvents,
8032       { "midCallEvents", "camel.midCallEvents",
8033         FT_UINT32, BASE_DEC, VALS(camel_T_tmidCallEvents_vals), 0,
8034         "T_tmidCallEvents", HFILL }},
8035     { &hf_camel_tDisconnectSpecificInfo,
8036       { "tDisconnectSpecificInfo", "camel.tDisconnectSpecificInfo",
8037         FT_NONE, BASE_NONE, NULL, 0,
8038         NULL, HFILL }},
8039     { &hf_camel_oTermSeizedSpecificInfo,
8040       { "oTermSeizedSpecificInfo", "camel.oTermSeizedSpecificInfo",
8041         FT_NONE, BASE_NONE, NULL, 0,
8042         NULL, HFILL }},
8043     { &hf_camel_locationInformation,
8044       { "locationInformation", "camel.locationInformation",
8045         FT_NONE, BASE_NONE, NULL, 0,
8046         NULL, HFILL }},
8047     { &hf_camel_callAcceptedSpecificInfo,
8048       { "callAcceptedSpecificInfo", "camel.callAcceptedSpecificInfo",
8049         FT_NONE, BASE_NONE, NULL, 0,
8050         NULL, HFILL }},
8051     { &hf_camel_oAbandonSpecificInfo,
8052       { "oAbandonSpecificInfo", "camel.oAbandonSpecificInfo",
8053         FT_NONE, BASE_NONE, NULL, 0,
8054         NULL, HFILL }},
8055     { &hf_camel_oChangeOfPositionSpecificInfo,
8056       { "oChangeOfPositionSpecificInfo", "camel.oChangeOfPositionSpecificInfo",
8057         FT_NONE, BASE_NONE, NULL, 0,
8058         NULL, HFILL }},
8059     { &hf_camel_metDPCriteriaList,
8060       { "metDPCriteriaList", "camel.metDPCriteriaList",
8061         FT_UINT32, BASE_DEC, NULL, 0,
8062         NULL, HFILL }},
8063     { &hf_camel_tChangeOfPositionSpecificInfo,
8064       { "tChangeOfPositionSpecificInfo", "camel.tChangeOfPositionSpecificInfo",
8065         FT_NONE, BASE_NONE, NULL, 0,
8066         NULL, HFILL }},
8067     { &hf_camel_dpSpecificInfoAlt,
8068       { "dpSpecificInfoAlt", "camel.dpSpecificInfoAlt",
8069         FT_NONE, BASE_NONE, NULL, 0,
8070         NULL, HFILL }},
8071     { &hf_camel_o_smsFailureSpecificInfo,
8072       { "o-smsFailureSpecificInfo", "camel.o_smsFailureSpecificInfo",
8073         FT_NONE, BASE_NONE, NULL, 0,
8074         NULL, HFILL }},
8075     { &hf_camel_smsfailureCause,
8076       { "failureCause", "camel.failureCause",
8077         FT_UINT32, BASE_DEC, VALS(camel_MO_SMSCause_vals), 0,
8078         "MO_SMSCause", HFILL }},
8079     { &hf_camel_o_smsSubmissionSpecificInfo,
8080       { "o-smsSubmissionSpecificInfo", "camel.o_smsSubmissionSpecificInfo",
8081         FT_NONE, BASE_NONE, NULL, 0,
8082         NULL, HFILL }},
8083     { &hf_camel_t_smsFailureSpecificInfo,
8084       { "t-smsFailureSpecificInfo", "camel.t_smsFailureSpecificInfo",
8085         FT_NONE, BASE_NONE, NULL, 0,
8086         "T_t_smsFailureSpecificInfo", HFILL }},
8087     { &hf_camel_t_smsfailureCause,
8088       { "failureCause", "camel.failureCause",
8089         FT_BYTES, BASE_NONE, NULL, 0,
8090         "MT_SMSCause", HFILL }},
8091     { &hf_camel_t_smsDeliverySpecificInfo,
8092       { "t-smsDeliverySpecificInfo", "camel.t_smsDeliverySpecificInfo",
8093         FT_NONE, BASE_NONE, NULL, 0,
8094         "T_t_smsDeliverySpecificInfo", HFILL }},
8095     { &hf_camel_Extensions_item,
8096       { "ExtensionField", "camel.ExtensionField",
8097         FT_NONE, BASE_NONE, NULL, 0,
8098         NULL, HFILL }},
8099     { &hf_camel_type,
8100       { "type", "camel.type",
8101         FT_UINT32, BASE_DEC, VALS(camel_Code_vals), 0,
8102         "Code", HFILL }},
8103     { &hf_camel_criticality,
8104       { "criticality", "camel.criticality",
8105         FT_UINT32, BASE_DEC, VALS(inap_CriticalityType_vals), 0,
8106         "CriticalityType", HFILL }},
8107     { &hf_camel_value,
8108       { "value", "camel.value",
8109         FT_NONE, BASE_NONE, NULL, 0,
8110         NULL, HFILL }},
8111     { &hf_camel_callDiversionTreatmentIndicator,
8112       { "callDiversionTreatmentIndicator", "camel.callDiversionTreatmentIndicator",
8113         FT_BYTES, BASE_NONE, NULL, 0,
8114         "OCTET_STRING_SIZE_1", HFILL }},
8115     { &hf_camel_callingPartyRestrictionIndicator,
8116       { "callingPartyRestrictionIndicator", "camel.callingPartyRestrictionIndicator",
8117         FT_BYTES, BASE_NONE, NULL, 0,
8118         "OCTET_STRING_SIZE_1", HFILL }},
8119     { &hf_camel_compoundGapCriteria,
8120       { "compoundGapCriteria", "camel.compoundGapCriteria",
8121         FT_NONE, BASE_NONE, NULL, 0,
8122         "CompoundCriteria", HFILL }},
8123     { &hf_camel_gapIndicatorsDuration,
8124       { "duration", "camel.duration",
8125         FT_INT32, BASE_DEC, NULL, 0,
8126         NULL, HFILL }},
8127     { &hf_camel_gapInterval,
8128       { "gapInterval", "camel.gapInterval",
8129         FT_INT32, BASE_DEC, NULL, 0,
8130         "Interval", HFILL }},
8131     { &hf_camel_informationToSend,
8132       { "informationToSend", "camel.informationToSend",
8133         FT_UINT32, BASE_DEC, VALS(camel_InformationToSend_vals), 0,
8134         NULL, HFILL }},
8135     { &hf_camel_GenericNumbers_item,
8136       { "GenericNumber", "camel.GenericNumber",
8137         FT_BYTES, BASE_NONE, NULL, 0,
8138         NULL, HFILL }},
8139     { &hf_camel_short_QoS_format,
8140       { "short-QoS-format", "camel.short_QoS_format",
8141         FT_BYTES, BASE_NONE, NULL, 0,
8142         "QoS_Subscribed", HFILL }},
8143     { &hf_camel_long_QoS_format,
8144       { "long-QoS-format", "camel.long_QoS_format",
8145         FT_BYTES, BASE_NONE, NULL, 0,
8146         "Ext_QoS_Subscribed", HFILL }},
8147     { &hf_camel_supplement_to_long_QoS_format,
8148       { "supplement-to-long-QoS-format", "camel.supplement_to_long_QoS_format",
8149         FT_BYTES, BASE_NONE, NULL, 0,
8150         "Ext2_QoS_Subscribed", HFILL }},
8151     { &hf_camel_additionalSupplement,
8152       { "additionalSupplement", "camel.additionalSupplement",
8153         FT_BYTES, BASE_NONE, NULL, 0,
8154         "Ext3_QoS_Subscribed", HFILL }},
8155     { &hf_camel_gPRSEventType,
8156       { "gPRSEventType", "camel.gPRSEventType",
8157         FT_UINT32, BASE_DEC, VALS(camel_GPRSEventType_vals), 0,
8158         NULL, HFILL }},
8159     { &hf_camel_attachChangeOfPositionSpecificInformation,
8160       { "attachChangeOfPositionSpecificInformation", "camel.attachChangeOfPositionSpecificInformation",
8161         FT_NONE, BASE_NONE, NULL, 0,
8162         NULL, HFILL }},
8163     { &hf_camel_locationInformationGPRS,
8164       { "locationInformationGPRS", "camel.locationInformationGPRS",
8165         FT_NONE, BASE_NONE, NULL, 0,
8166         NULL, HFILL }},
8167     { &hf_camel_pdp_ContextchangeOfPositionSpecificInformation,
8168       { "pdp-ContextchangeOfPositionSpecificInformation", "camel.pdp_ContextchangeOfPositionSpecificInformation",
8169         FT_NONE, BASE_NONE, NULL, 0,
8170         NULL, HFILL }},
8171     { &hf_camel_accessPointName,
8172       { "accessPointName", "camel.accessPointName",
8173         FT_STRING, BASE_NONE, NULL, 0,
8174         NULL, HFILL }},
8175     { &hf_camel_chargingID,
8176       { "chargingID", "camel.chargingID",
8177         FT_BYTES, BASE_NONE, NULL, 0,
8178         "GPRSChargingID", HFILL }},
8179     { &hf_camel_endUserAddress,
8180       { "endUserAddress", "camel.endUserAddress",
8181         FT_NONE, BASE_NONE, NULL, 0,
8182         NULL, HFILL }},
8183     { &hf_camel_qualityOfService,
8184       { "qualityOfService", "camel.qualityOfService",
8185         FT_NONE, BASE_NONE, NULL, 0,
8186         NULL, HFILL }},
8187     { &hf_camel_timeAndTimeZone,
8188       { "timeAndTimeZone", "camel.timeAndTimeZone",
8189         FT_BYTES, BASE_NONE, NULL, 0,
8190         NULL, HFILL }},
8191     { &hf_camel_gGSNAddress,
8192       { "gGSNAddress", "camel.gGSNAddress",
8193         FT_BYTES, BASE_NONE, NULL, 0,
8194         "GSN_Address", HFILL }},
8195     { &hf_camel_detachSpecificInformation,
8196       { "detachSpecificInformation", "camel.detachSpecificInformation",
8197         FT_NONE, BASE_NONE, NULL, 0,
8198         NULL, HFILL }},
8199     { &hf_camel_initiatingEntity,
8200       { "initiatingEntity", "camel.initiatingEntity",
8201         FT_UINT32, BASE_DEC, VALS(camel_InitiatingEntity_vals), 0,
8202         NULL, HFILL }},
8203     { &hf_camel_routeingAreaUpdate,
8204       { "routeingAreaUpdate", "camel.routeingAreaUpdate",
8205         FT_NONE, BASE_NONE, NULL, 0,
8206         NULL, HFILL }},
8207     { &hf_camel_disconnectSpecificInformation,
8208       { "disconnectSpecificInformation", "camel.disconnectSpecificInformation",
8209         FT_NONE, BASE_NONE, NULL, 0,
8210         NULL, HFILL }},
8211     { &hf_camel_pDPContextEstablishmentSpecificInformation,
8212       { "pDPContextEstablishmentSpecificInformation", "camel.pDPContextEstablishmentSpecificInformation",
8213         FT_NONE, BASE_NONE, NULL, 0,
8214         NULL, HFILL }},
8215     { &hf_camel_pDPInitiationType,
8216       { "pDPInitiationType", "camel.pDPInitiationType",
8217         FT_UINT32, BASE_DEC, VALS(camel_PDPInitiationType_vals), 0,
8218         NULL, HFILL }},
8219     { &hf_camel_secondaryPDP_context,
8220       { "secondaryPDP-context", "camel.secondaryPDP_context",
8221         FT_NONE, BASE_NONE, NULL, 0,
8222         NULL, HFILL }},
8223     { &hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation,
8224       { "pDPContextEstablishmentAcknowledgementSpecificInformation", "camel.pDPContextEstablishmentAcknowledgementSpecificInformation",
8225         FT_NONE, BASE_NONE, NULL, 0,
8226         NULL, HFILL }},
8227     { &hf_camel_messageID,
8228       { "messageID", "camel.messageID",
8229         FT_UINT32, BASE_DEC, VALS(camel_MessageID_vals), 0,
8230         NULL, HFILL }},
8231     { &hf_camel_numberOfRepetitions,
8232       { "numberOfRepetitions", "camel.numberOfRepetitions",
8233         FT_UINT32, BASE_DEC, NULL, 0,
8234         "INTEGER_1_127", HFILL }},
8235     { &hf_camel_inbandInfoDuration,
8236       { "duration", "camel.duration",
8237         FT_UINT32, BASE_DEC, NULL, 0,
8238         "INTEGER_0_32767", HFILL }},
8239     { &hf_camel_interval,
8240       { "interval", "camel.interval",
8241         FT_UINT32, BASE_DEC, NULL, 0,
8242         "INTEGER_0_32767", HFILL }},
8243     { &hf_camel_inbandInfo,
8244       { "inbandInfo", "camel.inbandInfo",
8245         FT_NONE, BASE_NONE, NULL, 0,
8246         NULL, HFILL }},
8247     { &hf_camel_tone,
8248       { "tone", "camel.tone",
8249         FT_NONE, BASE_NONE, NULL, 0,
8250         NULL, HFILL }},
8251     { &hf_camel_cellGlobalIdOrServiceAreaIdOrLAI,
8252       { "cellGlobalIdOrServiceAreaIdOrLAI", "camel.cellGlobalIdOrServiceAreaIdOrLAI",
8253         FT_BYTES, BASE_NONE, NULL, 0,
8254         NULL, HFILL }},
8255     { &hf_camel_routeingAreaIdentity,
8256       { "routeingAreaIdentity", "camel.routeingAreaIdentity",
8257         FT_BYTES, BASE_NONE, NULL, 0,
8258         "RAIdentity", HFILL }},
8259     { &hf_camel_geographicalInformation,
8260       { "geographicalInformation", "camel.geographicalInformation",
8261         FT_BYTES, BASE_NONE, NULL, 0,
8262         NULL, HFILL }},
8263     { &hf_camel_sgsn_Number,
8264       { "sgsn-Number", "camel.sgsn_Number",
8265         FT_BYTES, BASE_NONE, NULL, 0,
8266         "ISDN_AddressString", HFILL }},
8267     { &hf_camel_selectedLSAIdentity,
8268       { "selectedLSAIdentity", "camel.selectedLSAIdentity",
8269         FT_BYTES, BASE_NONE, NULL, 0,
8270         "LSAIdentity", HFILL }},
8271     { &hf_camel_extensionContainer,
8272       { "extensionContainer", "camel.extensionContainer",
8273         FT_NONE, BASE_NONE, NULL, 0,
8274         NULL, HFILL }},
8275     { &hf_camel_sai_Present,
8276       { "sai-Present", "camel.sai_Present",
8277         FT_NONE, BASE_NONE, NULL, 0,
8278         NULL, HFILL }},
8279     { &hf_camel_elementaryMessageID,
8280       { "elementaryMessageID", "camel.elementaryMessageID",
8281         FT_UINT32, BASE_DEC, NULL, 0,
8282         "Integer4", HFILL }},
8283     { &hf_camel_text,
8284       { "text", "camel.text",
8285         FT_NONE, BASE_NONE, NULL, 0,
8286         NULL, HFILL }},
8287     { &hf_camel_messageContent,
8288       { "messageContent", "camel.messageContent",
8289         FT_STRING, BASE_NONE, NULL, 0,
8290         "IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength", HFILL }},
8291     { &hf_camel_attributes,
8292       { "attributes", "camel.attributes",
8293         FT_BYTES, BASE_NONE, NULL, 0,
8294         "OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength", HFILL }},
8295     { &hf_camel_elementaryMessageIDs,
8296       { "elementaryMessageIDs", "camel.elementaryMessageIDs",
8297         FT_UINT32, BASE_DEC, NULL, 0,
8298         "SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4", HFILL }},
8299     { &hf_camel_elementaryMessageIDs_item,
8300       { "Integer4", "camel.Integer4",
8301         FT_UINT32, BASE_DEC, NULL, 0,
8302         NULL, HFILL }},
8303     { &hf_camel_variableMessage,
8304       { "variableMessage", "camel.variableMessage",
8305         FT_NONE, BASE_NONE, NULL, 0,
8306         NULL, HFILL }},
8307     { &hf_camel_variableParts,
8308       { "variableParts", "camel.variableParts",
8309         FT_UINT32, BASE_DEC, NULL, 0,
8310         "SEQUENCE_SIZE_1_5_OF_VariablePart", HFILL }},
8311     { &hf_camel_variableParts_item,
8312       { "VariablePart", "camel.VariablePart",
8313         FT_UINT32, BASE_DEC, VALS(camel_VariablePart_vals), 0,
8314         NULL, HFILL }},
8315     { &hf_camel_MetDPCriteriaList_item,
8316       { "MetDPCriterion", "camel.MetDPCriterion",
8317         FT_UINT32, BASE_DEC, VALS(camel_MetDPCriterion_vals), 0,
8318         NULL, HFILL }},
8319     { &hf_camel_enteringCellGlobalId,
8320       { "enteringCellGlobalId", "camel.enteringCellGlobalId",
8321         FT_BYTES, BASE_NONE, NULL, 0,
8322         "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
8323     { &hf_camel_leavingCellGlobalId,
8324       { "leavingCellGlobalId", "camel.leavingCellGlobalId",
8325         FT_BYTES, BASE_NONE, NULL, 0,
8326         "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
8327     { &hf_camel_enteringServiceAreaId,
8328       { "enteringServiceAreaId", "camel.enteringServiceAreaId",
8329         FT_BYTES, BASE_NONE, NULL, 0,
8330         "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
8331     { &hf_camel_leavingServiceAreaId,
8332       { "leavingServiceAreaId", "camel.leavingServiceAreaId",
8333         FT_BYTES, BASE_NONE, NULL, 0,
8334         "CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
8335     { &hf_camel_enteringLocationAreaId,
8336       { "enteringLocationAreaId", "camel.enteringLocationAreaId",
8337         FT_BYTES, BASE_NONE, NULL, 0,
8338         "LAIFixedLength", HFILL }},
8339     { &hf_camel_leavingLocationAreaId,
8340       { "leavingLocationAreaId", "camel.leavingLocationAreaId",
8341         FT_BYTES, BASE_NONE, NULL, 0,
8342         "LAIFixedLength", HFILL }},
8343     { &hf_camel_inter_SystemHandOverToUMTS,
8344       { "inter-SystemHandOverToUMTS", "camel.inter_SystemHandOverToUMTS",
8345         FT_NONE, BASE_NONE, NULL, 0,
8346         NULL, HFILL }},
8347     { &hf_camel_inter_SystemHandOverToGSM,
8348       { "inter-SystemHandOverToGSM", "camel.inter_SystemHandOverToGSM",
8349         FT_NONE, BASE_NONE, NULL, 0,
8350         NULL, HFILL }},
8351     { &hf_camel_metDPCriterionAlt,
8352       { "metDPCriterionAlt", "camel.metDPCriterionAlt",
8353         FT_NONE, BASE_NONE, NULL, 0,
8354         NULL, HFILL }},
8355     { &hf_camel_minimumNumberOfDigits,
8356       { "minimumNumberOfDigits", "camel.minimumNumberOfDigits",
8357         FT_UINT32, BASE_DEC, NULL, 0,
8358         "INTEGER_1_30", HFILL }},
8359     { &hf_camel_maximumNumberOfDigits,
8360       { "maximumNumberOfDigits", "camel.maximumNumberOfDigits",
8361         FT_UINT32, BASE_DEC, NULL, 0,
8362         "INTEGER_1_30", HFILL }},
8363     { &hf_camel_requested_QoS,
8364       { "requested-QoS", "camel.requested_QoS",
8365         FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0,
8366         "GPRS_QoS", HFILL }},
8367     { &hf_camel_subscribed_QoS,
8368       { "subscribed-QoS", "camel.subscribed_QoS",
8369         FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0,
8370         "GPRS_QoS", HFILL }},
8371     { &hf_camel_negotiated_QoS,
8372       { "negotiated-QoS", "camel.negotiated_QoS",
8373         FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0,
8374         "GPRS_QoS", HFILL }},
8375     { &hf_camel_requested_QoS_Extension,
8376       { "requested-QoS-Extension", "camel.requested_QoS_Extension",
8377         FT_NONE, BASE_NONE, NULL, 0,
8378         "GPRS_QoS_Extension", HFILL }},
8379     { &hf_camel_subscribed_QoS_Extension,
8380       { "subscribed-QoS-Extension", "camel.subscribed_QoS_Extension",
8381         FT_NONE, BASE_NONE, NULL, 0,
8382         "GPRS_QoS_Extension", HFILL }},
8383     { &hf_camel_negotiated_QoS_Extension,
8384       { "negotiated-QoS-Extension", "camel.negotiated_QoS_Extension",
8385         FT_NONE, BASE_NONE, NULL, 0,
8386         "GPRS_QoS_Extension", HFILL }},
8387     { &hf_camel_receivingSideID,
8388       { "receivingSideID", "camel.receivingSideID",
8389         FT_BYTES, BASE_NONE, NULL, 0,
8390         "LegType", HFILL }},
8391     { &hf_camel_RequestedInformationList_item,
8392       { "RequestedInformation", "camel.RequestedInformation",
8393         FT_NONE, BASE_NONE, NULL, 0,
8394         NULL, HFILL }},
8395     { &hf_camel_RequestedInformationTypeList_item,
8396       { "RequestedInformationType", "camel.RequestedInformationType",
8397         FT_UINT32, BASE_DEC, VALS(camel_RequestedInformationType_vals), 0,
8398         NULL, HFILL }},
8399     { &hf_camel_requestedInformationType,
8400       { "requestedInformationType", "camel.requestedInformationType",
8401         FT_UINT32, BASE_DEC, VALS(camel_RequestedInformationType_vals), 0,
8402         NULL, HFILL }},
8403     { &hf_camel_requestedInformationValue,
8404       { "requestedInformationValue", "camel.requestedInformationValue",
8405         FT_UINT32, BASE_DEC, VALS(camel_RequestedInformationValue_vals), 0,
8406         NULL, HFILL }},
8407     { &hf_camel_callAttemptElapsedTimeValue,
8408       { "callAttemptElapsedTimeValue", "camel.callAttemptElapsedTimeValue",
8409         FT_UINT32, BASE_DEC, NULL, 0,
8410         "INTEGER_0_255", HFILL }},
8411     { &hf_camel_callStopTimeValue,
8412       { "callStopTimeValue", "camel.callStopTimeValue",
8413         FT_STRING, BASE_NONE, NULL, 0,
8414         "DateAndTime", HFILL }},
8415     { &hf_camel_callConnectedElapsedTimeValue,
8416       { "callConnectedElapsedTimeValue", "camel.callConnectedElapsedTimeValue",
8417         FT_UINT32, BASE_DEC, NULL, 0,
8418         "Integer4", HFILL }},
8419     { &hf_camel_releaseCauseValue,
8420       { "releaseCauseValue", "camel.releaseCauseValue",
8421         FT_BYTES, BASE_NONE, NULL, 0,
8422         "Cause", HFILL }},
8423     { &hf_camel_sendingSideID,
8424       { "sendingSideID", "camel.sendingSideID",
8425         FT_BYTES, BASE_NONE, NULL, 0,
8426         "LegType", HFILL }},
8427     { &hf_camel_forwardServiceInteractionInd,
8428       { "forwardServiceInteractionInd", "camel.forwardServiceInteractionInd",
8429         FT_NONE, BASE_NONE, NULL, 0,
8430         NULL, HFILL }},
8431     { &hf_camel_backwardServiceInteractionInd,
8432       { "backwardServiceInteractionInd", "camel.backwardServiceInteractionInd",
8433         FT_NONE, BASE_NONE, NULL, 0,
8434         NULL, HFILL }},
8435     { &hf_camel_bothwayThroughConnectionInd,
8436       { "bothwayThroughConnectionInd", "camel.bothwayThroughConnectionInd",
8437         FT_UINT32, BASE_DEC, VALS(inap_BothwayThroughConnectionInd_vals), 0,
8438         NULL, HFILL }},
8439     { &hf_camel_connectedNumberTreatmentInd,
8440       { "connectedNumberTreatmentInd", "camel.connectedNumberTreatmentInd",
8441         FT_UINT32, BASE_DEC, VALS(camel_ConnectedNumberTreatmentInd_vals), 0,
8442         NULL, HFILL }},
8443     { &hf_camel_nonCUGCall,
8444       { "nonCUGCall", "camel.nonCUGCall",
8445         FT_NONE, BASE_NONE, NULL, 0,
8446         NULL, HFILL }},
8447     { &hf_camel_holdTreatmentIndicator,
8448       { "holdTreatmentIndicator", "camel.holdTreatmentIndicator",
8449         FT_INT32, BASE_DEC, VALS(camel_holdTreatmentIndicator_values), 0,
8450         "OCTET_STRING_SIZE_1", HFILL }},
8451     { &hf_camel_cwTreatmentIndicator,
8452       { "cwTreatmentIndicator", "camel.cwTreatmentIndicator",
8453         FT_INT32, BASE_DEC, VALS(camel_cwTreatmentIndicator_values), 0,
8454         "OCTET_STRING_SIZE_1", HFILL }},
8455     { &hf_camel_ectTreatmentIndicator,
8456       { "ectTreatmentIndicator", "camel.ectTreatmentIndicator",
8457         FT_INT32, BASE_DEC, VALS(camel_ectTreatmentIndicator_values), 0,
8458         "OCTET_STRING_SIZE_1", HFILL }},
8459     { &hf_camel_eventTypeSMS,
8460       { "eventTypeSMS", "camel.eventTypeSMS",
8461         FT_UINT32, BASE_DEC, VALS(camel_EventTypeSMS_vals), 0,
8462         NULL, HFILL }},
8463     { &hf_camel_timeSinceTariffSwitch,
8464       { "timeSinceTariffSwitch", "camel.timeSinceTariffSwitch",
8465         FT_UINT32, BASE_DEC, NULL, 0,
8466         "INTEGER_0_864000", HFILL }},
8467     { &hf_camel_timeIfTariffSwitch_tariffSwitchInterval,
8468       { "tariffSwitchInterval", "camel.tariffSwitchInterval",
8469         FT_UINT32, BASE_DEC, NULL, 0,
8470         "INTEGER_1_864000", HFILL }},
8471     { &hf_camel_timeIfNoTariffSwitch,
8472       { "timeIfNoTariffSwitch", "camel.timeIfNoTariffSwitch",
8473         FT_UINT32, BASE_DEC, NULL, 0,
8474         NULL, HFILL }},
8475     { &hf_camel_timeIfTariffSwitch,
8476       { "timeIfTariffSwitch", "camel.timeIfTariffSwitch",
8477         FT_NONE, BASE_NONE, NULL, 0,
8478         NULL, HFILL }},
8479     { &hf_camel_toneID,
8480       { "toneID", "camel.toneID",
8481         FT_UINT32, BASE_DEC, NULL, 0,
8482         "Integer4", HFILL }},
8483     { &hf_camel_toneDuration,
8484       { "duration", "camel.duration",
8485         FT_UINT32, BASE_DEC, NULL, 0,
8486         "Integer4", HFILL }},
8487     { &hf_camel_volumeIfNoTariffSwitch,
8488       { "volumeIfNoTariffSwitch", "camel.volumeIfNoTariffSwitch",
8489         FT_UINT32, BASE_DEC, NULL, 0,
8490         "INTEGER_0_4294967295", HFILL }},
8491     { &hf_camel_volumeIfTariffSwitch,
8492       { "volumeIfTariffSwitch", "camel.volumeIfTariffSwitch",
8493         FT_NONE, BASE_NONE, NULL, 0,
8494         NULL, HFILL }},
8495     { &hf_camel_volumeSinceLastTariffSwitch,
8496       { "volumeSinceLastTariffSwitch", "camel.volumeSinceLastTariffSwitch",
8497         FT_UINT32, BASE_DEC, NULL, 0,
8498         "INTEGER_0_4294967295", HFILL }},
8499     { &hf_camel_volumeTariffSwitchInterval,
8500       { "volumeTariffSwitchInterval", "camel.volumeTariffSwitchInterval",
8501         FT_UINT32, BASE_DEC, NULL, 0,
8502         "INTEGER_0_4294967295", HFILL }},
8503     { &hf_camel_rO_VolumeIfNoTariffSwitch,
8504       { "rO-VolumeIfNoTariffSwitch", "camel.rO_VolumeIfNoTariffSwitch",
8505         FT_UINT32, BASE_DEC, NULL, 0,
8506         "INTEGER_0_255", HFILL }},
8507     { &hf_camel_rO_VolumeIfTariffSwitch,
8508       { "rO-VolumeIfTariffSwitch", "camel.rO_VolumeIfTariffSwitch",
8509         FT_NONE, BASE_NONE, NULL, 0,
8510         NULL, HFILL }},
8511     { &hf_camel_rO_VolumeSinceLastTariffSwitch,
8512       { "rO-VolumeSinceLastTariffSwitch", "camel.rO_VolumeSinceLastTariffSwitch",
8513         FT_UINT32, BASE_DEC, NULL, 0,
8514         "INTEGER_0_255", HFILL }},
8515     { &hf_camel_rO_VolumeTariffSwitchInterval,
8516       { "rO-VolumeTariffSwitchInterval", "camel.rO_VolumeTariffSwitchInterval",
8517         FT_UINT32, BASE_DEC, NULL, 0,
8518         "INTEGER_0_255", HFILL }},
8519     { &hf_camel_integer,
8520       { "integer", "camel.integer",
8521         FT_UINT32, BASE_DEC, NULL, 0,
8522         "Integer4", HFILL }},
8523     { &hf_camel_number,
8524       { "number", "camel.number",
8525         FT_BYTES, BASE_NONE, NULL, 0,
8526         "Digits", HFILL }},
8527     { &hf_camel_time,
8528       { "time", "camel.time",
8529         FT_BYTES, BASE_NONE, NULL, 0,
8530         "OCTET_STRING_SIZE_2", HFILL }},
8531     { &hf_camel_date,
8532       { "date", "camel.date",
8533         FT_BYTES, BASE_NONE, NULL, 0,
8534         "OCTET_STRING_SIZE_4", HFILL }},
8535     { &hf_camel_price,
8536       { "price", "camel.price",
8537         FT_BYTES, BASE_NONE, NULL, 0,
8538         "OCTET_STRING_SIZE_4", HFILL }},
8539     { &hf_camel_par_cancelFailedProblem,
8540       { "problem", "camel.problem",
8541         FT_UINT32, BASE_DEC, VALS(camel_T_par_cancelFailedProblem_vals), 0,
8542         "T_par_cancelFailedProblem", HFILL }},
8543     { &hf_camel_operation,
8544       { "operation", "camel.operation",
8545         FT_INT32, BASE_DEC, NULL, 0,
8546         "InvokeID", HFILL }},
8547     { &hf_camel_destinationReference,
8548       { "destinationReference", "camel.destinationReference",
8549         FT_UINT32, BASE_DEC, NULL, 0,
8550         "Integer4", HFILL }},
8551     { &hf_camel_originationReference,
8552       { "originationReference", "camel.originationReference",
8553         FT_UINT32, BASE_DEC, NULL, 0,
8554         "Integer4", HFILL }},
8555     { &hf_camel_disconnectFromIPForbidden,
8556       { "disconnectFromIPForbidden", "camel.disconnectFromIPForbidden",
8557         FT_BOOLEAN, BASE_NONE, NULL, 0,
8558         "BOOLEAN", HFILL }},
8559     { &hf_camel_requestAnnouncementCompleteNotification,
8560       { "requestAnnouncementCompleteNotification", "camel.requestAnnouncementCompleteNotification",
8561         FT_BOOLEAN, BASE_NONE, NULL, 0,
8562         "BOOLEAN", HFILL }},
8563     { &hf_camel_requestAnnouncementStartedNotification,
8564       { "requestAnnouncementStartedNotification", "camel.requestAnnouncementStartedNotification",
8565         FT_BOOLEAN, BASE_NONE, NULL, 0,
8566         "BOOLEAN", HFILL }},
8567     { &hf_camel_collectedInfo,
8568       { "collectedInfo", "camel.collectedInfo",
8569         FT_UINT32, BASE_DEC, VALS(camel_CollectedInfo_vals), 0,
8570         NULL, HFILL }},
8571     { &hf_camel_digitsResponse,
8572       { "digitsResponse", "camel.digitsResponse",
8573         FT_BYTES, BASE_NONE, NULL, 0,
8574         "Digits", HFILL }},
8575     { &hf_camel_allAnnouncementsComplete,
8576       { "allAnnouncementsComplete", "camel.allAnnouncementsComplete",
8577         FT_NONE, BASE_NONE, NULL, 0,
8578         NULL, HFILL }},
8579     { &hf_camel_firstAnnouncementStarted,
8580       { "firstAnnouncementStarted", "camel.firstAnnouncementStarted",
8581         FT_NONE, BASE_NONE, NULL, 0,
8582         NULL, HFILL }},
8583     { &hf_camel_aChBillingChargingCharacteristics,
8584       { "aChBillingChargingCharacteristics", "camel.aChBillingChargingCharacteristics",
8585         FT_BYTES, BASE_NONE, NULL, 0,
8586         NULL, HFILL }},
8587     { &hf_camel_partyToCharge,
8588       { "partyToCharge", "camel.partyToCharge",
8589         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
8590         "SendingSideID", HFILL }},
8591     { &hf_camel_correlationID,
8592       { "correlationID", "camel.correlationID",
8593         FT_BYTES, BASE_NONE, NULL, 0,
8594         NULL, HFILL }},
8595     { &hf_camel_iPSSPCapabilities,
8596       { "iPSSPCapabilities", "camel.iPSSPCapabilities",
8597         FT_BYTES, BASE_NONE, NULL, 0,
8598         NULL, HFILL }},
8599     { &hf_camel_gapCriteria,
8600       { "gapCriteria", "camel.gapCriteria",
8601         FT_UINT32, BASE_DEC, VALS(camel_GapCriteria_vals), 0,
8602         NULL, HFILL }},
8603     { &hf_camel_gapIndicators,
8604       { "gapIndicators", "camel.gapIndicators",
8605         FT_NONE, BASE_NONE, NULL, 0,
8606         NULL, HFILL }},
8607     { &hf_camel_controlType,
8608       { "controlType", "camel.controlType",
8609         FT_UINT32, BASE_DEC, VALS(camel_ControlType_vals), 0,
8610         NULL, HFILL }},
8611     { &hf_camel_gapTreatment,
8612       { "gapTreatment", "camel.gapTreatment",
8613         FT_UINT32, BASE_DEC, VALS(camel_GapTreatment_vals), 0,
8614         NULL, HFILL }},
8615     { &hf_camel_requestedInformationList,
8616       { "requestedInformationList", "camel.requestedInformationList",
8617         FT_UINT32, BASE_DEC, NULL, 0,
8618         NULL, HFILL }},
8619     { &hf_camel_legID_01,
8620       { "legID", "camel.legID",
8621         FT_UINT32, BASE_DEC, VALS(camel_ReceivingSideID_vals), 0,
8622         "ReceivingSideID", HFILL }},
8623     { &hf_camel_requestedInformationTypeList,
8624       { "requestedInformationTypeList", "camel.requestedInformationTypeList",
8625         FT_UINT32, BASE_DEC, NULL, 0,
8626         NULL, HFILL }},
8627     { &hf_camel_legID_02,
8628       { "legID", "camel.legID",
8629         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
8630         "SendingSideID", HFILL }},
8631     { &hf_camel_allRequests,
8632       { "allRequests", "camel.allRequests",
8633         FT_NONE, BASE_NONE, NULL, 0,
8634         NULL, HFILL }},
8635     { &hf_camel_callSegmentToCancel,
8636       { "callSegmentToCancel", "camel.callSegmentToCancel",
8637         FT_NONE, BASE_NONE, NULL, 0,
8638         NULL, HFILL }},
8639     { &hf_camel_destinationRoutingAddress,
8640       { "destinationRoutingAddress", "camel.destinationRoutingAddress",
8641         FT_UINT32, BASE_DEC, NULL, 0,
8642         NULL, HFILL }},
8643     { &hf_camel_alertingPattern,
8644       { "alertingPattern", "camel.alertingPattern",
8645         FT_BYTES, BASE_NONE, NULL, 0,
8646         NULL, HFILL }},
8647     { &hf_camel_originalCalledPartyID,
8648       { "originalCalledPartyID", "camel.originalCalledPartyID",
8649         FT_BYTES, BASE_NONE, NULL, 0,
8650         NULL, HFILL }},
8651     { &hf_camel_carrier,
8652       { "carrier", "camel.carrier",
8653         FT_BYTES, BASE_NONE, NULL, 0,
8654         NULL, HFILL }},
8655     { &hf_camel_callingPartysCategory,
8656       { "callingPartysCategory", "camel.callingPartysCategory",
8657         FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0,
8658         NULL, HFILL }},
8659     { &hf_camel_redirectingPartyID,
8660       { "redirectingPartyID", "camel.redirectingPartyID",
8661         FT_BYTES, BASE_NONE, NULL, 0,
8662         NULL, HFILL }},
8663     { &hf_camel_redirectionInformation,
8664       { "redirectionInformation", "camel.redirectionInformation",
8665         FT_BYTES, BASE_NONE, NULL, 0,
8666         NULL, HFILL }},
8667     { &hf_camel_genericNumbers,
8668       { "genericNumbers", "camel.genericNumbers",
8669         FT_UINT32, BASE_DEC, NULL, 0,
8670         NULL, HFILL }},
8671     { &hf_camel_serviceInteractionIndicatorsTwo,
8672       { "serviceInteractionIndicatorsTwo", "camel.serviceInteractionIndicatorsTwo",
8673         FT_NONE, BASE_NONE, NULL, 0,
8674         NULL, HFILL }},
8675     { &hf_camel_chargeNumber,
8676       { "chargeNumber", "camel.chargeNumber",
8677         FT_BYTES, BASE_NONE, NULL, 0,
8678         NULL, HFILL }},
8679     { &hf_camel_legToBeConnected,
8680       { "legToBeConnected", "camel.legToBeConnected",
8681         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
8682         "LegID", HFILL }},
8683     { &hf_camel_cug_Interlock,
8684       { "cug-Interlock", "camel.cug_Interlock",
8685         FT_BYTES, BASE_NONE, NULL, 0,
8686         NULL, HFILL }},
8687     { &hf_camel_cug_OutgoingAccess,
8688       { "cug-OutgoingAccess", "camel.cug_OutgoingAccess",
8689         FT_NONE, BASE_NONE, NULL, 0,
8690         NULL, HFILL }},
8691     { &hf_camel_suppressionOfAnnouncement,
8692       { "suppressionOfAnnouncement", "camel.suppressionOfAnnouncement",
8693         FT_NONE, BASE_NONE, NULL, 0,
8694         NULL, HFILL }},
8695     { &hf_camel_oCSIApplicable,
8696       { "oCSIApplicable", "camel.oCSIApplicable",
8697         FT_NONE, BASE_NONE, NULL, 0,
8698         NULL, HFILL }},
8699     { &hf_camel_naOliInfo,
8700       { "naOliInfo", "camel.naOliInfo",
8701         FT_BYTES, BASE_NONE, NULL, 0,
8702         NULL, HFILL }},
8703     { &hf_camel_bor_InterrogationRequested,
8704       { "bor-InterrogationRequested", "camel.bor_InterrogationRequested",
8705         FT_NONE, BASE_NONE, NULL, 0,
8706         NULL, HFILL }},
8707     { &hf_camel_suppress_N_CSI,
8708       { "suppress-N-CSI", "camel.suppress_N_CSI",
8709         FT_NONE, BASE_NONE, NULL, 0,
8710         NULL, HFILL }},
8711     { &hf_camel_resourceAddress,
8712       { "resourceAddress", "camel.resourceAddress",
8713         FT_UINT32, BASE_DEC, VALS(camel_T_resourceAddress_vals), 0,
8714         NULL, HFILL }},
8715     { &hf_camel_ipRoutingAddress,
8716       { "ipRoutingAddress", "camel.ipRoutingAddress",
8717         FT_BYTES, BASE_NONE, NULL, 0,
8718         NULL, HFILL }},
8719     { &hf_camel_none,
8720       { "none", "camel.none",
8721         FT_NONE, BASE_NONE, NULL, 0,
8722         NULL, HFILL }},
8723     { &hf_camel_suppress_O_CSI,
8724       { "suppress-O-CSI", "camel.suppress_O_CSI",
8725         FT_NONE, BASE_NONE, NULL, 0,
8726         NULL, HFILL }},
8727     { &hf_camel_continueWithArgumentArgExtension,
8728       { "continueWithArgumentArgExtension", "camel.continueWithArgumentArgExtension",
8729         FT_NONE, BASE_NONE, NULL, 0,
8730         NULL, HFILL }},
8731     { &hf_camel_suppress_D_CSI,
8732       { "suppress-D-CSI", "camel.suppress_D_CSI",
8733         FT_NONE, BASE_NONE, NULL, 0,
8734         NULL, HFILL }},
8735     { &hf_camel_suppressOutgoingCallBarring,
8736       { "suppressOutgoingCallBarring", "camel.suppressOutgoingCallBarring",
8737         FT_NONE, BASE_NONE, NULL, 0,
8738         NULL, HFILL }},
8739     { &hf_camel_legOrCallSegment,
8740       { "legOrCallSegment", "camel.legOrCallSegment",
8741         FT_UINT32, BASE_DEC, VALS(camel_LegOrCallSegment_vals), 0,
8742         NULL, HFILL }},
8743     { &hf_camel_legToBeReleased,
8744       { "legToBeReleased", "camel.legToBeReleased",
8745         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
8746         "LegID", HFILL }},
8747     { &hf_camel_callSegmentFailure,
8748       { "callSegmentFailure", "camel.callSegmentFailure",
8749         FT_NONE, BASE_NONE, NULL, 0,
8750         NULL, HFILL }},
8751     { &hf_camel_bCSM_Failure,
8752       { "bCSM-Failure", "camel.bCSM_Failure",
8753         FT_NONE, BASE_NONE, NULL, 0,
8754         NULL, HFILL }},
8755     { &hf_camel_assistingSSPIPRoutingAddress,
8756       { "assistingSSPIPRoutingAddress", "camel.assistingSSPIPRoutingAddress",
8757         FT_BYTES, BASE_NONE, NULL, 0,
8758         NULL, HFILL }},
8759     { &hf_camel_callingPartyNumber,
8760       { "callingPartyNumber", "camel.callingPartyNumber",
8761         FT_BYTES, BASE_NONE, NULL, 0,
8762         NULL, HFILL }},
8763     { &hf_camel_eventSpecificInformationBCSM,
8764       { "eventSpecificInformationBCSM", "camel.eventSpecificInformationBCSM",
8765         FT_UINT32, BASE_DEC, VALS(camel_EventSpecificInformationBCSM_vals), 0,
8766         NULL, HFILL }},
8767     { &hf_camel_miscCallInfo,
8768       { "miscCallInfo", "camel.miscCallInfo",
8769         FT_NONE, BASE_NONE, NULL, 0,
8770         NULL, HFILL }},
8771     { &hf_camel_cGEncountered,
8772       { "cGEncountered", "camel.cGEncountered",
8773         FT_UINT32, BASE_DEC, VALS(camel_CGEncountered_vals), 0,
8774         NULL, HFILL }},
8775     { &hf_camel_locationNumber,
8776       { "locationNumber", "camel.locationNumber",
8777         FT_BYTES, BASE_NONE, NULL, 0,
8778         NULL, HFILL }},
8779     { &hf_camel_highLayerCompatibility,
8780       { "highLayerCompatibility", "camel.highLayerCompatibility",
8781         FT_BYTES, BASE_NONE, NULL, 0,
8782         NULL, HFILL }},
8783     { &hf_camel_additionalCallingPartyNumber,
8784       { "additionalCallingPartyNumber", "camel.additionalCallingPartyNumber",
8785         FT_BYTES, BASE_NONE, NULL, 0,
8786         NULL, HFILL }},
8787     { &hf_camel_bearerCapability,
8788       { "bearerCapability", "camel.bearerCapability",
8789         FT_UINT32, BASE_DEC, VALS(camel_BearerCapability_vals), 0,
8790         NULL, HFILL }},
8791     { &hf_camel_cug_Index,
8792       { "cug-Index", "camel.cug_Index",
8793         FT_UINT32, BASE_DEC, NULL, 0,
8794         NULL, HFILL }},
8795     { &hf_camel_iMSI,
8796       { "iMSI", "camel.iMSI",
8797         FT_BYTES, BASE_NONE, NULL, 0,
8798         NULL, HFILL }},
8799     { &hf_camel_subscriberState,
8800       { "subscriberState", "camel.subscriberState",
8801         FT_UINT32, BASE_DEC, VALS(gsm_map_ms_SubscriberState_vals), 0,
8802         NULL, HFILL }},
8803     { &hf_camel_callReferenceNumber,
8804       { "callReferenceNumber", "camel.callReferenceNumber",
8805         FT_BYTES, BASE_NONE, NULL, 0,
8806         NULL, HFILL }},
8807     { &hf_camel_mscAddress,
8808       { "mscAddress", "camel.mscAddress",
8809         FT_BYTES, BASE_NONE, NULL, 0,
8810         "ISDN_AddressString", HFILL }},
8811     { &hf_camel_calledPartyBCDNumber,
8812       { "calledPartyBCDNumber", "camel.calledPartyBCDNumber",
8813         FT_BYTES, BASE_NONE, NULL, 0,
8814         NULL, HFILL }},
8815     { &hf_camel_timeAndTimezone,
8816       { "timeAndTimezone", "camel.timeAndTimezone",
8817         FT_BYTES, BASE_NONE, NULL, 0,
8818         NULL, HFILL }},
8819     { &hf_camel_callForwardingSS_Pending,
8820       { "callForwardingSS-Pending", "camel.callForwardingSS_Pending",
8821         FT_NONE, BASE_NONE, NULL, 0,
8822         NULL, HFILL }},
8823     { &hf_camel_initialDPArgExtension,
8824       { "initialDPArgExtension", "camel.initialDPArgExtension",
8825         FT_NONE, BASE_NONE, NULL, 0,
8826         NULL, HFILL }},
8827     { &hf_camel_gmscAddress,
8828       { "gmscAddress", "camel.gmscAddress",
8829         FT_BYTES, BASE_NONE, NULL, 0,
8830         "ISDN_AddressString", HFILL }},
8831     { &hf_camel_ms_Classmark2,
8832       { "ms-Classmark2", "camel.ms_Classmark2",
8833         FT_BYTES, BASE_NONE, NULL, 0,
8834         NULL, HFILL }},
8835     { &hf_camel_iMEI,
8836       { "iMEI", "camel.iMEI",
8837         FT_BYTES, BASE_NONE, NULL, 0,
8838         NULL, HFILL }},
8839     { &hf_camel_supportedCamelPhases,
8840       { "supportedCamelPhases", "camel.supportedCamelPhases",
8841         FT_BYTES, BASE_NONE, NULL, 0,
8842         NULL, HFILL }},
8843     { &hf_camel_offeredCamel4Functionalities,
8844       { "offeredCamel4Functionalities", "camel.offeredCamel4Functionalities",
8845         FT_BYTES, BASE_NONE, NULL, 0,
8846         NULL, HFILL }},
8847     { &hf_camel_bearerCapability2,
8848       { "bearerCapability2", "camel.bearerCapability2",
8849         FT_UINT32, BASE_DEC, VALS(camel_BearerCapability_vals), 0,
8850         "BearerCapability", HFILL }},
8851     { &hf_camel_highLayerCompatibility2,
8852       { "highLayerCompatibility2", "camel.highLayerCompatibility2",
8853         FT_BYTES, BASE_NONE, NULL, 0,
8854         "HighLayerCompatibility", HFILL }},
8855     { &hf_camel_lowLayerCompatibility,
8856       { "lowLayerCompatibility", "camel.lowLayerCompatibility",
8857         FT_BYTES, BASE_NONE, NULL, 0,
8858         NULL, HFILL }},
8859     { &hf_camel_lowLayerCompatibility2,
8860       { "lowLayerCompatibility2", "camel.lowLayerCompatibility2",
8861         FT_BYTES, BASE_NONE, NULL, 0,
8862         "LowLayerCompatibility", HFILL }},
8863     { &hf_camel_enhancedDialledServicesAllowed,
8864       { "enhancedDialledServicesAllowed", "camel.enhancedDialledServicesAllowed",
8865         FT_NONE, BASE_NONE, NULL, 0,
8866         NULL, HFILL }},
8867     { &hf_camel_uu_Data,
8868       { "uu-Data", "camel.uu_Data",
8869         FT_NONE, BASE_NONE, NULL, 0,
8870         NULL, HFILL }},
8871     { &hf_camel_collectInformationAllowed,
8872       { "collectInformationAllowed", "camel.collectInformationAllowed",
8873         FT_NONE, BASE_NONE, NULL, 0,
8874         NULL, HFILL }},
8875     { &hf_camel_legToBeCreated,
8876       { "legToBeCreated", "camel.legToBeCreated",
8877         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
8878         "LegID", HFILL }},
8879     { &hf_camel_newCallSegment,
8880       { "newCallSegment", "camel.newCallSegment",
8881         FT_UINT32, BASE_DEC, NULL, 0,
8882         "CallSegmentID", HFILL }},
8883     { &hf_camel_gsmSCFAddress,
8884       { "gsmSCFAddress", "camel.gsmSCFAddress",
8885         FT_BYTES, BASE_NONE, NULL, 0,
8886         "ISDN_AddressString", HFILL }},
8887     { &hf_camel_suppress_T_CSI,
8888       { "suppress-T-CSI", "camel.suppress_T_CSI",
8889         FT_NONE, BASE_NONE, NULL, 0,
8890         NULL, HFILL }},
8891     { &hf_camel_legIDToMove,
8892       { "legIDToMove", "camel.legIDToMove",
8893         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
8894         "LegID", HFILL }},
8895     { &hf_camel_bcsmEvents,
8896       { "bcsmEvents", "camel.bcsmEvents",
8897         FT_UINT32, BASE_DEC, NULL, 0,
8898         "SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent", HFILL }},
8899     { &hf_camel_bcsmEvents_item,
8900       { "BCSMEvent", "camel.BCSMEvent",
8901         FT_NONE, BASE_NONE, NULL, 0,
8902         NULL, HFILL }},
8903     { &hf_camel_timerID,
8904       { "timerID", "camel.timerID",
8905         FT_UINT32, BASE_DEC, VALS(camel_TimerID_vals), 0,
8906         NULL, HFILL }},
8907     { &hf_camel_timervalue,
8908       { "timervalue", "camel.timervalue",
8909         FT_UINT32, BASE_DEC, NULL, 0,
8910         NULL, HFILL }},
8911     { &hf_camel_sCIBillingChargingCharacteristics,
8912       { "sCIBillingChargingCharacteristics", "camel.sCIBillingChargingCharacteristics",
8913         FT_BYTES, BASE_NONE, NULL, 0,
8914         NULL, HFILL }},
8915     { &hf_camel_legToBeSplit,
8916       { "legToBeSplit", "camel.legToBeSplit",
8917         FT_UINT32, BASE_DEC, VALS(inap_LegID_vals), 0,
8918         "LegID", HFILL }},
8919     { &hf_camel_chargingCharacteristics,
8920       { "chargingCharacteristics", "camel.chargingCharacteristics",
8921         FT_UINT32, BASE_DEC, VALS(camel_ChargingCharacteristics_vals), 0,
8922         NULL, HFILL }},
8923     { &hf_camel_applyChargingGPRS_tariffSwitchInterval,
8924       { "tariffSwitchInterval", "camel.tariffSwitchInterval",
8925         FT_UINT32, BASE_DEC, NULL, 0,
8926         "INTEGER_1_86400", HFILL }},
8927     { &hf_camel_chargingResult,
8928       { "chargingResult", "camel.chargingResult",
8929         FT_UINT32, BASE_DEC, VALS(camel_ChargingResult_vals), 0,
8930         NULL, HFILL }},
8931     { &hf_camel_active,
8932       { "active", "camel.active",
8933         FT_BOOLEAN, BASE_NONE, NULL, 0,
8934         "BOOLEAN", HFILL }},
8935     { &hf_camel_chargingRollOver,
8936       { "chargingRollOver", "camel.chargingRollOver",
8937         FT_UINT32, BASE_DEC, VALS(camel_ChargingRollOver_vals), 0,
8938         NULL, HFILL }},
8939     { &hf_camel_pdpID,
8940       { "pdpID", "camel.pdpID",
8941         FT_BYTES, BASE_NONE, NULL, 0,
8942         NULL, HFILL }},
8943     { &hf_camel_gPRSCause,
8944       { "gPRSCause", "camel.gPRSCause",
8945         FT_BYTES, BASE_NONE, NULL, 0,
8946         NULL, HFILL }},
8947     { &hf_camel_miscGPRSInfo,
8948       { "miscGPRSInfo", "camel.miscGPRSInfo",
8949         FT_NONE, BASE_NONE, NULL, 0,
8950         "MiscCallInfo", HFILL }},
8951     { &hf_camel_gPRSEventSpecificInformation,
8952       { "gPRSEventSpecificInformation", "camel.gPRSEventSpecificInformation",
8953         FT_UINT32, BASE_DEC, VALS(camel_GPRSEventSpecificInformation_vals), 0,
8954         NULL, HFILL }},
8955     { &hf_camel_mSISDN,
8956       { "mSISDN", "camel.mSISDN",
8957         FT_BYTES, BASE_NONE, NULL, 0,
8958         "ISDN_AddressString", HFILL }},
8959     { &hf_camel_gPRSMSClass,
8960       { "gPRSMSClass", "camel.gPRSMSClass",
8961         FT_NONE, BASE_NONE, NULL, 0,
8962         NULL, HFILL }},
8963     { &hf_camel_sGSNCapabilities,
8964       { "sGSNCapabilities", "camel.sGSNCapabilities",
8965         FT_BYTES, BASE_NONE, NULL, 0,
8966         NULL, HFILL }},
8967     { &hf_camel_gprsCause,
8968       { "gprsCause", "camel.gprsCause",
8969         FT_BYTES, BASE_NONE, NULL, 0,
8970         NULL, HFILL }},
8971     { &hf_camel_gPRSEvent,
8972       { "gPRSEvent", "camel.gPRSEvent",
8973         FT_UINT32, BASE_DEC, NULL, 0,
8974         "SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent", HFILL }},
8975     { &hf_camel_gPRSEvent_item,
8976       { "GPRSEvent", "camel.GPRSEvent",
8977         FT_NONE, BASE_NONE, NULL, 0,
8978         NULL, HFILL }},
8979     { &hf_camel_sCIGPRSBillingChargingCharacteristics,
8980       { "sCIGPRSBillingChargingCharacteristics", "camel.sCIGPRSBillingChargingCharacteristics",
8981         FT_BYTES, BASE_NONE, NULL, 0,
8982         NULL, HFILL }},
8983     { &hf_camel_callingPartysNumber,
8984       { "callingPartysNumber", "camel.callingPartysNumber",
8985         FT_BYTES, BASE_NONE, NULL, 0,
8986         "SMS_AddressString", HFILL }},
8987     { &hf_camel_destinationSubscriberNumber,
8988       { "destinationSubscriberNumber", "camel.destinationSubscriberNumber",
8989         FT_BYTES, BASE_NONE, NULL, 0,
8990         "CalledPartyBCDNumber", HFILL }},
8991     { &hf_camel_sMSCAddress,
8992       { "sMSCAddress", "camel.sMSCAddress",
8993         FT_BYTES, BASE_NONE, NULL, 0,
8994         "ISDN_AddressString", HFILL }},
8995     { &hf_camel_eventSpecificInformationSMS,
8996       { "eventSpecificInformationSMS", "camel.eventSpecificInformationSMS",
8997         FT_UINT32, BASE_DEC, VALS(camel_EventSpecificInformationSMS_vals), 0,
8998         NULL, HFILL }},
8999     { &hf_camel_callingPartyNumber_01,
9000       { "callingPartyNumber", "camel.callingPartyNumber",
9001         FT_BYTES, BASE_NONE, NULL, 0,
9002         "SMS_AddressString", HFILL }},
9003     { &hf_camel_locationInformationMSC,
9004       { "locationInformationMSC", "camel.locationInformationMSC",
9005         FT_NONE, BASE_NONE, NULL, 0,
9006         "LocationInformation", HFILL }},
9007     { &hf_camel_tPShortMessageSpecificInfo,
9008       { "tPShortMessageSpecificInfo", "camel.tPShortMessageSpecificInfo",
9009         FT_BYTES, BASE_NONE, NULL, 0,
9010         NULL, HFILL }},
9011     { &hf_camel_tPProtocolIdentifier,
9012       { "tPProtocolIdentifier", "camel.tPProtocolIdentifier",
9013         FT_BYTES, BASE_NONE, NULL, 0,
9014         NULL, HFILL }},
9015     { &hf_camel_tPDataCodingScheme,
9016       { "tPDataCodingScheme", "camel.tPDataCodingScheme",
9017         FT_BYTES, BASE_NONE, NULL, 0,
9018         NULL, HFILL }},
9019     { &hf_camel_tPValidityPeriod,
9020       { "tPValidityPeriod", "camel.tPValidityPeriod",
9021         FT_BYTES, BASE_NONE, NULL, 0,
9022         NULL, HFILL }},
9023     { &hf_camel_smsReferenceNumber,
9024       { "smsReferenceNumber", "camel.smsReferenceNumber",
9025         FT_BYTES, BASE_NONE, NULL, 0,
9026         "CallReferenceNumber", HFILL }},
9027     { &hf_camel_calledPartyNumber_01,
9028       { "calledPartyNumber", "camel.calledPartyNumber",
9029         FT_BYTES, BASE_NONE, NULL, 0,
9030         "ISDN_AddressString", HFILL }},
9031     { &hf_camel_sMSEvents,
9032       { "sMSEvents", "camel.sMSEvents",
9033         FT_UINT32, BASE_DEC, NULL, 0,
9034         "SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent", HFILL }},
9035     { &hf_camel_sMSEvents_item,
9036       { "SMSEvent", "camel.SMSEvent",
9037         FT_NONE, BASE_NONE, NULL, 0,
9038         NULL, HFILL }},
9039     { &hf_camel_local,
9040       { "local", "camel.local",
9041         FT_INT32, BASE_DEC, VALS(camel_opr_code_strings), 0,
9042         NULL, HFILL }},
9043     { &hf_camel_global,
9044       { "global", "camel.global",
9045         FT_OID, BASE_NONE, NULL, 0,
9046         NULL, HFILL }},
9047     { &hf_camel_invoke,
9048       { "invoke", "camel.invoke",
9049         FT_NONE, BASE_NONE, NULL, 0,
9050         NULL, HFILL }},
9051     { &hf_camel_returnResult,
9052       { "returnResult", "camel.returnResult",
9053         FT_NONE, BASE_NONE, NULL, 0,
9054         NULL, HFILL }},
9055     { &hf_camel_returnError,
9056       { "returnError", "camel.returnError",
9057         FT_NONE, BASE_NONE, NULL, 0,
9058         NULL, HFILL }},
9059     { &hf_camel_reject,
9060       { "reject", "camel.reject",
9061         FT_NONE, BASE_NONE, NULL, 0,
9062         NULL, HFILL }},
9063     { &hf_camel_invokeId,
9064       { "invokeId", "camel.invokeId",
9065         FT_UINT32, BASE_DEC, VALS(camel_InvokeId_vals), 0,
9066         NULL, HFILL }},
9067     { &hf_camel_linkedId,
9068       { "linkedId", "camel.linkedId",
9069         FT_UINT32, BASE_DEC, VALS(camel_T_linkedId_vals), 0,
9070         NULL, HFILL }},
9071     { &hf_camel_linkedIdPresent,
9072       { "present", "camel.present",
9073         FT_INT32, BASE_DEC, NULL, 0,
9074         "T_linkedIdPresent", HFILL }},
9075     { &hf_camel_absent,
9076       { "absent", "camel.absent",
9077         FT_NONE, BASE_NONE, NULL, 0,
9078         NULL, HFILL }},
9079     { &hf_camel_opcode,
9080       { "opcode", "camel.opcode",
9081         FT_UINT32, BASE_DEC, VALS(camel_Code_vals), 0,
9082         "Code", HFILL }},
9083     { &hf_camel_argument,
9084       { "argument", "camel.argument",
9085         FT_NONE, BASE_NONE, NULL, 0,
9086         NULL, HFILL }},
9087     { &hf_camel_result,
9088       { "result", "camel.result",
9089         FT_NONE, BASE_NONE, NULL, 0,
9090         NULL, HFILL }},
9091     { &hf_camel_resultArgument,
9092       { "result", "camel.result",
9093         FT_NONE, BASE_NONE, NULL, 0,
9094         "ResultArgument", HFILL }},
9095     { &hf_camel_errcode,
9096       { "errcode", "camel.errcode",
9097         FT_UINT32, BASE_DEC, VALS(camel_Code_vals), 0,
9098         "Code", HFILL }},
9099     { &hf_camel_parameter,
9100       { "parameter", "camel.parameter",
9101         FT_NONE, BASE_NONE, NULL, 0,
9102         NULL, HFILL }},
9103     { &hf_camel_problem,
9104       { "problem", "camel.problem",
9105         FT_UINT32, BASE_DEC, VALS(camel_T_problem_vals), 0,
9106         NULL, HFILL }},
9107     { &hf_camel_general,
9108       { "general", "camel.general",
9109         FT_INT32, BASE_DEC, VALS(camel_GeneralProblem_vals), 0,
9110         "GeneralProblem", HFILL }},
9111     { &hf_camel_invokeProblem,
9112       { "invoke", "camel.invoke",
9113         FT_INT32, BASE_DEC, VALS(camel_InvokeProblem_vals), 0,
9114         "InvokeProblem", HFILL }},
9115     { &hf_camel_problemReturnResult,
9116       { "returnResult", "camel.returnResult",
9117         FT_INT32, BASE_DEC, VALS(camel_ReturnResultProblem_vals), 0,
9118         "ReturnResultProblem", HFILL }},
9119     { &hf_camel_returnErrorProblem,
9120       { "returnError", "camel.returnError",
9121         FT_INT32, BASE_DEC, VALS(camel_ReturnErrorProblem_vals), 0,
9122         "ReturnErrorProblem", HFILL }},
9123     { &hf_camel_present,
9124       { "present", "camel.present",
9125         FT_INT32, BASE_DEC, NULL, 0,
9126         "INTEGER", HFILL }},
9127     { &hf_camel_InvokeId_present,
9128       { "InvokeId.present", "camel.InvokeId_present",
9129         FT_INT32, BASE_DEC, NULL, 0,
9130         "InvokeId_present", HFILL }},
9131
9132 /*--- End of included file: packet-camel-hfarr.c ---*/
9133 #line 605 "packet-camel-template.c"
9134   };
9135
9136   /* List of subtrees */
9137   static gint *ett[] = {
9138     &ett_camel,
9139     &ett_camelisup_parameter,
9140     &ett_camel_AccessPointName,
9141     &ett_camel_pdptypenumber,
9142     &ett_camel_cause,
9143     &ett_camel_RPcause,
9144     &ett_camel_stat,
9145
9146
9147 /*--- Included file: packet-camel-ettarr.c ---*/
9148 #line 1 "packet-camel-ettarr.c"
9149     &ett_camel_AChChargingAddress,
9150     &ett_camel_AOCBeforeAnswer,
9151     &ett_camel_AOCGPRS,
9152     &ett_camel_AOCSubsequent,
9153     &ett_camel_AudibleIndicator,
9154     &ett_camel_BackwardServiceInteractionInd,
9155     &ett_camel_BasicGapCriteria,
9156     &ett_camel_T_calledAddressAndService,
9157     &ett_camel_T_callingAddressAndService,
9158     &ett_camel_BCSMEvent,
9159     &ett_camel_BCSM_Failure,
9160     &ett_camel_BearerCapability,
9161     &ett_camel_Burst,
9162     &ett_camel_BurstList,
9163     &ett_camel_CAI_GSM0224,
9164     &ett_camel_CallSegmentFailure,
9165     &ett_camel_CallSegmentToCancel,
9166     &ett_camel_CAMEL_AChBillingChargingCharacteristics,
9167     &ett_camel_T_timeDurationCharging,
9168     &ett_camel_CAMEL_CallResult,
9169     &ett_camel_T_timeDurationChargingResult,
9170     &ett_camel_CAMEL_FCIBillingChargingCharacteristics,
9171     &ett_camel_T_fci_fCIBCCCAMELsequence1,
9172     &ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics,
9173     &ett_camel_T_fciGPRS_fCIBCCCAMELsequence1,
9174     &ett_camel_CAMEL_FCISMSBillingChargingCharacteristics,
9175     &ett_camel_T_fciSMS_fCIBCCCAMELsequence1,
9176     &ett_camel_CAMEL_SCIBillingChargingCharacteristics,
9177     &ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt,
9178     &ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics,
9179     &ett_camel_ChangeOfPositionControlInfo,
9180     &ett_camel_ChangeOfLocation,
9181     &ett_camel_ChangeOfLocationAlt,
9182     &ett_camel_ChargingCharacteristics,
9183     &ett_camel_ChargingResult,
9184     &ett_camel_ChargingRollOver,
9185     &ett_camel_CollectedDigits,
9186     &ett_camel_CollectedInfo,
9187     &ett_camel_CompoundCriteria,
9188     &ett_camel_DestinationRoutingAddress,
9189     &ett_camel_DpSpecificCriteria,
9190     &ett_camel_DpSpecificCriteriaAlt,
9191     &ett_camel_DpSpecificInfoAlt,
9192     &ett_camel_T_oServiceChangeSpecificInfo,
9193     &ett_camel_T_tServiceChangeSpecificInfo,
9194     &ett_camel_T_collectedInfoSpecificInfo,
9195     &ett_camel_ElapsedTime,
9196     &ett_camel_T_timeGPRSIfTariffSwitch,
9197     &ett_camel_ElapsedTimeRollOver,
9198     &ett_camel_T_rO_TimeGPRSIfTariffSwitch,
9199     &ett_camel_EndUserAddress,
9200     &ett_camel_EventSpecificInformationBCSM,
9201     &ett_camel_T_routeSelectFailureSpecificInfo,
9202     &ett_camel_T_oCalledPartyBusySpecificInfo,
9203     &ett_camel_T_oNoAnswerSpecificInfo,
9204     &ett_camel_T_oAnswerSpecificInfo,
9205     &ett_camel_T_oMidCallSpecificInfo,
9206     &ett_camel_T_omidCallEvents,
9207     &ett_camel_T_oDisconnectSpecificInfo,
9208     &ett_camel_T_tBusySpecificInfo,
9209     &ett_camel_T_tNoAnswerSpecificInfo,
9210     &ett_camel_T_tAnswerSpecificInfo,
9211     &ett_camel_T_tMidCallSpecificInfo,
9212     &ett_camel_T_tmidCallEvents,
9213     &ett_camel_T_tDisconnectSpecificInfo,
9214     &ett_camel_T_oTermSeizedSpecificInfo,
9215     &ett_camel_T_callAcceptedSpecificInfo,
9216     &ett_camel_T_oAbandonSpecificInfo,
9217     &ett_camel_T_oChangeOfPositionSpecificInfo,
9218     &ett_camel_T_tChangeOfPositionSpecificInfo,
9219     &ett_camel_EventSpecificInformationSMS,
9220     &ett_camel_T_o_smsFailureSpecificInfo,
9221     &ett_camel_T_o_smsSubmissionSpecificInfo,
9222     &ett_camel_T_t_smsFailureSpecificInfo,
9223     &ett_camel_T_t_smsDeliverySpecificInfo,
9224     &ett_camel_Extensions,
9225     &ett_camel_ExtensionField,
9226     &ett_camel_ForwardServiceInteractionInd,
9227     &ett_camel_GapCriteria,
9228     &ett_camel_GapIndicators,
9229     &ett_camel_GapOnService,
9230     &ett_camel_GapTreatment,
9231     &ett_camel_GenericNumbers,
9232     &ett_camel_GPRS_QoS,
9233     &ett_camel_GPRS_QoS_Extension,
9234     &ett_camel_GPRSEvent,
9235     &ett_camel_GPRSEventSpecificInformation,
9236     &ett_camel_T_attachChangeOfPositionSpecificInformation,
9237     &ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation,
9238     &ett_camel_T_detachSpecificInformation,
9239     &ett_camel_T_disconnectSpecificInformation,
9240     &ett_camel_T_pDPContextEstablishmentSpecificInformation,
9241     &ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation,
9242     &ett_camel_InbandInfo,
9243     &ett_camel_InformationToSend,
9244     &ett_camel_LegOrCallSegment,
9245     &ett_camel_LocationInformationGPRS,
9246     &ett_camel_MessageID,
9247     &ett_camel_T_text,
9248     &ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4,
9249     &ett_camel_T_variableMessage,
9250     &ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart,
9251     &ett_camel_MetDPCriteriaList,
9252     &ett_camel_MetDPCriterion,
9253     &ett_camel_MetDPCriterionAlt,
9254     &ett_camel_MidCallControlInfo,
9255     &ett_camel_QualityOfService,
9256     &ett_camel_ReceivingSideID,
9257     &ett_camel_RequestedInformationList,
9258     &ett_camel_RequestedInformationTypeList,
9259     &ett_camel_RequestedInformation,
9260     &ett_camel_RequestedInformationValue,
9261     &ett_camel_SendingSideID,
9262     &ett_camel_ServiceInteractionIndicatorsTwo,
9263     &ett_camel_SMSEvent,
9264     &ett_camel_TimeIfTariffSwitch,
9265     &ett_camel_TimeInformation,
9266     &ett_camel_Tone,
9267     &ett_camel_TransferredVolume,
9268     &ett_camel_T_volumeIfTariffSwitch,
9269     &ett_camel_TransferredVolumeRollOver,
9270     &ett_camel_T_rO_VolumeIfTariffSwitch,
9271     &ett_camel_VariablePart,
9272     &ett_camel_PAR_cancelFailed,
9273     &ett_camel_CAP_GPRS_ReferenceNumber,
9274     &ett_camel_PlayAnnouncementArg,
9275     &ett_camel_PromptAndCollectUserInformationArg,
9276     &ett_camel_ReceivedInformationArg,
9277     &ett_camel_SpecializedResourceReportArg,
9278     &ett_camel_ApplyChargingArg,
9279     &ett_camel_AssistRequestInstructionsArg,
9280     &ett_camel_CallGapArg,
9281     &ett_camel_CallInformationReportArg,
9282     &ett_camel_CallInformationRequestArg,
9283     &ett_camel_CancelArg,
9284     &ett_camel_ConnectArg,
9285     &ett_camel_ConnectToResourceArg,
9286     &ett_camel_T_resourceAddress,
9287     &ett_camel_ContinueWithArgumentArg,
9288     &ett_camel_ContinueWithArgumentArgExtension,
9289     &ett_camel_DisconnectForwardConnectionWithArgumentArg,
9290     &ett_camel_DisconnectLegArg,
9291     &ett_camel_EntityReleasedArg,
9292     &ett_camel_EstablishTemporaryConnectionArg,
9293     &ett_camel_EventReportBCSMArg,
9294     &ett_camel_InitialDPArg,
9295     &ett_camel_InitialDPArgExtension,
9296     &ett_camel_InitiateCallAttemptArg,
9297     &ett_camel_InitiateCallAttemptRes,
9298     &ett_camel_MoveLegArg,
9299     &ett_camel_PlayToneArg,
9300     &ett_camel_RequestReportBCSMEventArg,
9301     &ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent,
9302     &ett_camel_ResetTimerArg,
9303     &ett_camel_SendChargingInformationArg,
9304     &ett_camel_SplitLegArg,
9305     &ett_camel_ApplyChargingGPRSArg,
9306     &ett_camel_ApplyChargingReportGPRSArg,
9307     &ett_camel_CancelGPRSArg,
9308     &ett_camel_ConnectGPRSArg,
9309     &ett_camel_ContinueGPRSArg,
9310     &ett_camel_EntityReleasedGPRSArg,
9311     &ett_camel_EventReportGPRSArg,
9312     &ett_camel_InitialDPGPRSArg,
9313     &ett_camel_ReleaseGPRSArg,
9314     &ett_camel_RequestReportGPRSEventArg,
9315     &ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent,
9316     &ett_camel_ResetTimerGPRSArg,
9317     &ett_camel_SendChargingInformationGPRSArg,
9318     &ett_camel_ConnectSMSArg,
9319     &ett_camel_EventReportSMSArg,
9320     &ett_camel_InitialDPSMSArg,
9321     &ett_camel_RequestReportSMSEventArg,
9322     &ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent,
9323     &ett_camel_ResetTimerSMSArg,
9324     &ett_camel_Code,
9325     &ett_camel_ROS,
9326     &ett_camel_Invoke,
9327     &ett_camel_T_linkedId,
9328     &ett_camel_ReturnResult,
9329     &ett_camel_T_result,
9330     &ett_camel_ReturnError,
9331     &ett_camel_Reject,
9332     &ett_camel_T_problem,
9333     &ett_camel_InvokeId,
9334
9335 /*--- End of included file: packet-camel-ettarr.c ---*/
9336 #line 618 "packet-camel-template.c"
9337   };
9338   /* Register protocol */
9339   proto_camel = proto_register_protocol(PNAME, PSNAME, PFNAME);
9340
9341   register_dissector("camel", dissect_camel, proto_camel);
9342
9343   proto_register_field_array(proto_camel, hf, array_length(hf));
9344   proto_register_subtree_array(ett, array_length(ett));
9345
9346   rose_ctx_init(&camel_rose_ctx);
9347
9348   /* Register dissector tables */
9349   camel_rose_ctx.arg_local_dissector_table = register_dissector_table("camel.ros.local.arg", 
9350                                                                       "CAMEL Operation Argument (local opcode)", 
9351                                                                       FT_UINT32, BASE_HEX); 
9352   camel_rose_ctx.res_local_dissector_table = register_dissector_table("camel.ros.local.res", 
9353                                                                       "CAMEL Operation Result (local opcode)", 
9354                                                                       FT_UINT32, BASE_HEX); 
9355   camel_rose_ctx.err_local_dissector_table = register_dissector_table("camel.ros.local.err", 
9356                                                                       "CAMEL Error (local opcode)", 
9357                                                                       FT_UINT32, BASE_HEX); 
9358
9359   /* Register our configuration options, particularly our ssn:s */
9360   /* Set default SSNs */
9361   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
9362
9363   camel_module = prefs_register_protocol(proto_camel, proto_reg_handoff_camel);
9364
9365   prefs_register_enum_preference(camel_module, "date.format", "Date Format",
9366                                   "The date format: (DD/MM) or (MM/DD)",
9367                                   &date_format, date_options, FALSE);
9368   
9369   
9370   prefs_register_range_preference(camel_module, "tcap.ssn",
9371     "TCAP SSNs",
9372     "TCAP Subsystem numbers used for Camel",
9373     &global_ssn_range, MAX_SSN);
9374
9375   prefs_register_bool_preference(camel_module, "srt",
9376                                  "Service Response Time Analyse",
9377                                  "Activate the analyse for Response Time",
9378                                  &gcamel_HandleSRT);
9379
9380   prefs_register_bool_preference(camel_module, "persistentsrt",
9381                                  "Persistent stats for SRT",
9382                                  "Statistics for Response Time",
9383                                  &gcamel_PersistentSRT);
9384   
9385   /* Routine for statistic */ 
9386   register_init_routine(&camelsrt_init_routine);
9387   camel_tap=register_tap(PSNAME);
9388 }
9389