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