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