ASN.1 dissectors regenerated with new asn2wrs to get updated field blurb
[obnox/wireshark/wip.git] / epan / dissectors / packet-camel.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* .\packet-camel.c                                                           */
4 /* ../../tools/asn2wrs.py -b -e -p camel -c camel.cnf -s packet-camel-template camel.asn */
5
6 /* Input file: packet-camel-template.c */
7
8 #line 1 "packet-camel-template.c"
9 /* packet-camel-template.c
10  * Routines for Camel
11  * Copyright 2004, Tim Endean <endeant@hotmail.com>
12  * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
13  * Copyright 2005, Javier AcuÇña <javier.acuna@sixbell.com>
14  * Updated to ETSI TS 129 078 V6.4.0 (2004-3GPP TS 29.078 version 6.4.0 Release 6 1 12)
15  * Copyright 2005-2006, Anders Broman <anders.broman@ericsson.com>
16  * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
17  *
18  * $Id$
19  *
20  * Wireshark - Network traffic analyzer
21  * By Gerald Combs <gerald@wireshark.org>
22  * Copyright 1998 Gerald Combs
23  *
24  * This program is free software; you can redistribute it and/or
25  * modify it under the terms of the GNU General Public License
26  * as published by the Free Software Foundation; either version 2
27  * of the License, or (at your option) any later version.
28  *
29  * This program is distributed in the hope that it will be useful,
30  * but WITHOUT ANY WARRANTY; without even the implied warranty of
31  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
32  * GNU General Public License for more details.
33  *
34  * You should have received a copy of the GNU General Public License
35  * along with this program; if not, write to the Free Software
36  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
37  * References: ETSI 300 374
38  */
39 /* 
40  * Indentation logic: this file is indented with 2 spaces indentation. 
41  *                    there are no tabs.
42  */
43 #ifdef HAVE_CONFIG_H
44 # include "config.h"
45 #endif
46
47 #include <glib.h>
48 #include <epan/packet.h>
49 #include <epan/prefs.h>
50 #include <epan/conversation.h>
51 #include <epan/oid_resolv.h>
52 #include <epan/tap.h>
53
54 #include <stdio.h>
55 #include <string.h>
56
57 #include "packet-ber.h"
58 #include "packet-camel.h"
59 #include "packet-q931.h"
60 #include "packet-e164.h"
61 #include "packet-isup.h"
62 #include "packet-gsm_map.h"
63 #include "packet-gsm_a.h"
64 #include "packet-tcap.h"
65
66 #define PNAME  "Camel"
67 #define PSNAME "CAMEL"
68 #define PFNAME "camel"
69
70 /* Initialize the protocol and registered fields */
71 int proto_camel = -1;
72 int date_format = 1; /*assume european date format */
73 static int hf_digit = -1; 
74 static int hf_camel_invokeCmd = -1;             /* Opcode */
75 static int hf_camel_invokeid = -1;              /* INTEGER */
76 static int hf_camel_linkedID = -1;              /* INTEGER */
77 static int hf_camel_absent = -1;                /* NULL */
78 static int hf_camel_invokeId = -1;              /* InvokeId */
79 static int hf_camel_invoke = -1;                /* InvokePDU */
80 static int hf_camel_returnResult = -1;          /* InvokePDU */
81 static int hf_camel_returnResult_result = -1;
82 static int hf_camel_getPassword = -1;  
83 static int hf_camel_currentPassword = -1;  
84 static int hf_camel_nature_of_number = -1;
85 static int hf_camel_number_plan = -1;
86 static int hf_camel_imsi_digits = -1;
87 static int hf_camel_addr_extension = -1;
88 static int hf_camel_addr_natureOfAddressIndicator = -1;
89 static int hf_camel_addr_nature_of_number = -1;
90 static int hf_camel_addr_numberingPlanInd = -1;
91 static int hf_camel_addr_digits = -1;
92 static int hf_camel_cause_indicator = -1;
93 static int hf_camel_PDPTypeNumber_etsi = -1;
94 static int hf_camel_PDPTypeNumber_ietf = -1;
95 static int hf_camel_PDPAddress_IPv4 = -1;
96 static int hf_camel_PDPAddress_IPv6 = -1;
97 static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength = -1;
98
99 /*--- Included file: packet-camel-hf.c ---*/
100 #line 1 "packet-camel-hf.c"
101 static int hf_camel_reserved = -1;                /* INTEGER */
102 static int hf_camel_aoc = -1;                     /* INTEGER */
103 static int hf_camel_standardPartEnd = -1;         /* INTEGER */
104 static int hf_camel_genOfVoiceAnn = -1;           /* INTEGER */
105 static int hf_camel_voiceInfo2 = -1;              /* INTEGER */
106 static int hf_camel_voiceInfo1 = -1;              /* INTEGER */
107 static int hf_camel_voiceBack1 = -1;              /* INTEGER */
108 static int hf_camel_iPRoutAdd = -1;               /* INTEGER */
109 static int hf_camel_bilateralPart = -1;           /* OCTET_STRING_SIZE_0_3 */
110 static int hf_camel_extension = -1;               /* INTEGER_1 */
111 static int hf_camel_natureOfAddressIndicator = -1;  /* INTEGER */
112 static int hf_camel_numberingPlanInd = -1;        /* INTEGER */
113 static int hf_camel_digits1 = -1;                 /* OCTET_STRING_SIZE_0_19 */
114 static int hf_camel_digits2 = -1;                 /* OCTET_STRING_SIZE_0_8 */
115 static int hf_camel_typeOfShape = -1;             /* INTEGER */
116 static int hf_camel_spare3 = -1;                  /* INTEGER */
117 static int hf_camel_degreesOfLatitude = -1;       /* OCTET_STRING_SIZE_3 */
118 static int hf_camel_degreesOfLongitude = -1;      /* OCTET_STRING_SIZE_3 */
119 static int hf_camel_uncertaintyCode = -1;         /* OCTET_STRING_SIZE_1 */
120 static int hf_camel_typeOfAddress = -1;           /* INTEGER */
121 static int hf_camel_addressLength = -1;           /* INTEGER_4_16 */
122 static int hf_camel_address = -1;                 /* OCTET_STRING_SIZE_4_16 */
123 static int hf_camel_originalReasons = -1;         /* INTEGER */
124 static int hf_camel_spare4 = -1;                  /* INTEGER_0 */
125 static int hf_camel_indicator = -1;               /* INTEGER */
126 static int hf_camel_reason = -1;                  /* INTEGER */
127 static int hf_camel_spare2 = -1;                  /* INTEGER_0 */
128 static int hf_camel_counter = -1;                 /* INTEGER */
129 static int hf_camel_oddEven = -1;                 /* INTEGER */
130 static int hf_camel_innInd = -1;                  /* INTEGER */
131 static int hf_camel_spare5 = -1;                  /* INTEGER_0 */
132 static int hf_camel_digits3 = -1;                 /* OCTET_STRING_SIZE_0_16 */
133 static int hf_camel_niInd = -1;                   /* INTEGER */
134 static int hf_camel_presentInd = -1;              /* INTEGER */
135 static int hf_camel_screening = -1;               /* INTEGER */
136 static int hf_camel_digits4 = -1;                 /* OCTET_STRING_SIZE_0_8 */
137 static int hf_camel_spare6 = -1;                  /* INTEGER_0 */
138 static int hf_camel_digits5 = -1;                 /* OCTET_STRING_SIZE_1_10 */
139 static int hf_camel_o1ext = -1;                   /* INTEGER_1 */
140 static int hf_camel_codingStandard = -1;          /* INTEGER */
141 static int hf_camel_spare77 = -1;                 /* INTEGER_0 */
142 static int hf_camel_location = -1;                /* INTEGER */
143 static int hf_camel_o2ext = -1;                   /* INTEGER_1 */
144 static int hf_camel_causeValue = -1;              /* INTEGER */
145 static int hf_camel_diagnostics = -1;             /* OCTET_STRING_SIZE_0_30 */
146 static int hf_camel_numberQualifierIndicator = -1;  /* INTEGER */
147 static int hf_camel_digits6 = -1;                 /* OCTET_STRING_SIZE_0_8 */
148 static int hf_camel_digits7 = -1;                 /* OCTET_STRING_SIZE_0_8 */
149 static int hf_camel_ext = -1;                     /* INTEGER */
150 static int hf_camel_typeOfNumber = -1;            /* T_typeOfNumber */
151 static int hf_camel_digits8 = -1;                 /* OCTET_STRING_SIZE_0_40 */
152 static int hf_camel_actimeDurationCharging = -1;  /* T_actimeDurationCharging */
153 static int hf_camel_maxCallPeriodDuration = -1;   /* INTEGER_1_864000 */
154 static int hf_camel_releaseIfdurationExceeded = -1;  /* BOOLEAN */
155 static int hf_camel_tariffSwitchInterval = -1;    /* INTEGER_1_86400 */
156 static int hf_camel_actone = -1;                  /* BOOLEAN */
157 static int hf_camel_extensions = -1;              /* ExtensionsArray */
158 static int hf_camel_legID = -1;                   /* LegID */
159 static int hf_camel_srfConnection = -1;           /* CallSegmentID */
160 static int hf_camel_aOCInitial = -1;              /* CAI_Gsm0224 */
161 static int hf_camel_aOCSubsequent = -1;           /* AOCSubsequent */
162 static int hf_camel_cAI_GSM0224 = -1;             /* CAI_Gsm0224 */
163 static int hf_camel_tone = -1;                    /* BOOLEAN */
164 static int hf_camel_burstList = -1;               /* BurstList */
165 static int hf_camel_conferenceTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
166 static int hf_camel_callCompletionTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
167 static int hf_camel_calledAddressValue = -1;      /* Digits */
168 static int hf_camel_gapOnService = -1;            /* GapOnService */
169 static int hf_camel_calledAddressAndService = -1;  /* T_calledAddressAndService */
170 static int hf_camel_serviceKey = -1;              /* ServiceKey */
171 static int hf_camel_callingAddressAndService = -1;  /* T_callingAddressAndService */
172 static int hf_camel_callingAddressValue = -1;     /* Digits */
173 static int hf_camel_eventTypeBCSM = -1;           /* EventTypeBCSM */
174 static int hf_camel_monitorMode = -1;             /* MonitorMode */
175 static int hf_camel_legID6 = -1;                  /* LegID */
176 static int hf_camel_dpSpecificCriteria = -1;      /* DpSpecificCriteria */
177 static int hf_camel_automaticRearm = -1;          /* NULL */
178 static int hf_camel_cause = -1;                   /* Cause */
179 static int hf_camel_bearerCap = -1;               /* BearerCap */
180 static int hf_camel_numberOfBursts = -1;          /* INTEGER_1_3 */
181 static int hf_camel_burstInterval = -1;           /* INTEGER_1_1200 */
182 static int hf_camel_numberOfTonesInBurst = -1;    /* INTEGER_1_3 */
183 static int hf_camel_toneDuration = -1;            /* INTEGER_1_20 */
184 static int hf_camel_toneInterval = -1;            /* INTEGER_1_20 */
185 static int hf_camel_warningPeriod = -1;           /* INTEGER_1_1200 */
186 static int hf_camel_bursts = -1;                  /* Burst */
187 static int hf_camel_e1 = -1;                      /* INTEGER_0_8191 */
188 static int hf_camel_e2 = -1;                      /* INTEGER_0_8191 */
189 static int hf_camel_e3 = -1;                      /* INTEGER_0_8191 */
190 static int hf_camel_e4 = -1;                      /* INTEGER_0_8191 */
191 static int hf_camel_e5 = -1;                      /* INTEGER_0_8191 */
192 static int hf_camel_e6 = -1;                      /* INTEGER_0_8191 */
193 static int hf_camel_e7 = -1;                      /* INTEGER_0_8191 */
194 static int hf_camel_callSegmentID = -1;           /* CallSegmentID */
195 static int hf_camel_invokeID = -1;                /* InvokeID */
196 static int hf_camel_timeDurationCharging = -1;    /* T_timeDurationCharging */
197 static int hf_camel_audibleIndicator = -1;        /* AudibleIndicator */
198 static int hf_camel_timeDurationChargingResult = -1;  /* T_timeDurationChargingResult */
199 static int hf_camel_partyToCharge = -1;           /* ReceivingSideID */
200 static int hf_camel_timeInformation = -1;         /* TimeInformation */
201 static int hf_camel_legActive = -1;               /* BOOLEAN */
202 static int hf_camel_callLegReleasedAtTcpExpiry = -1;  /* NULL */
203 static int hf_camel_extensions1 = -1;             /* Extensions */
204 static int hf_camel_aChChargingAddress = -1;      /* AChChargingAddress */
205 static int hf_camel_fCIBCCCAMELsequence1 = -1;    /* T_fCIBCCCAMELsequence1 */
206 static int hf_camel_freeFormatData = -1;          /* FreeFormatData */
207 static int hf_camel_partyToCharge4 = -1;          /* SendingSideID */
208 static int hf_camel_appendFreeFormatData = -1;    /* AppendFreeFormatData */
209 static int hf_camel_fCIBCCCAMELsequence2 = -1;    /* T_fCIBCCCAMELsequence2 */
210 static int hf_camel_pDPID = -1;                   /* PDPId */
211 static int hf_camel_fCIBCCCAMELsequence3 = -1;    /* T_fCIBCCCAMELsequence3 */
212 static int hf_camel_aOCBeforeAnswer = -1;         /* AOCBeforeAnswer */
213 static int hf_camel_aOCAfterAnswer = -1;          /* AOCSubsequent */
214 static int hf_camel_aOC_extension = -1;           /* CAMEL_SCIBillingChargingCharacteristicsAlt */
215 static int hf_camel_aOCGPRS = -1;                 /* AOCGprs */
216 static int hf_camel_ChangeOfPositionControlInfo_item = -1;  /* ChangeOfLocation */
217 static int hf_camel_cellGlobalId = -1;            /* CellGlobalIdOrServiceAreaIdFixedLength */
218 static int hf_camel_serviceAreaId = -1;           /* CellGlobalIdOrServiceAreaIdFixedLength */
219 static int hf_camel_locationAreaId = -1;          /* LAIFixedLength */
220 static int hf_camel_inter_SystemHandOver = -1;    /* NULL */
221 static int hf_camel_inter_PLMNHandOver = -1;      /* NULL */
222 static int hf_camel_inter_MSCHandOver = -1;       /* NULL */
223 static int hf_camel_changeOfLocationAlt = -1;     /* ChangeOfLocationAlt */
224 static int hf_camel_maxTransferredVolume = -1;    /* INTEGER_1_2147483647 */
225 static int hf_camel_maxElapsedTime = -1;          /* INTEGER_1_86400 */
226 static int hf_camel_transferredVolume = -1;       /* TransferredVolume */
227 static int hf_camel_elapsedTime = -1;             /* ElapsedTime */
228 static int hf_camel_transferredVolumeRollOver = -1;  /* TransferredVolumeRollOver */
229 static int hf_camel_elapsedTimeRollOver = -1;     /* ElapsedTimeRollOver */
230 static int hf_camel_minimumNbOfDigits = -1;       /* INTEGER_1_30 */
231 static int hf_camel_maximumNbOfDigits = -1;       /* INTEGER_1_30 */
232 static int hf_camel_endOfReplyDigit = -1;         /* OCTET_STRING_SIZE_1_2 */
233 static int hf_camel_cancelDigit = -1;             /* OCTET_STRING_SIZE_1_2 */
234 static int hf_camel_startDigit = -1;              /* OCTET_STRING_SIZE_1_2 */
235 static int hf_camel_firstDigitTimeOut = -1;       /* INTEGER_1_127 */
236 static int hf_camel_interDigitTimeOut = -1;       /* INTEGER_1_127 */
237 static int hf_camel_errorTreatment = -1;          /* ErrorTreatment */
238 static int hf_camel_interruptableAnnInd = -1;     /* BOOLEAN */
239 static int hf_camel_voiceInformation = -1;        /* BOOLEAN */
240 static int hf_camel_voiceBack = -1;               /* BOOLEAN */
241 static int hf_camel_collectedDigits = -1;         /* CollectedDigits */
242 static int hf_camel_basicGapCriteria = -1;        /* BasicGapCriteria */
243 static int hf_camel_scfID = -1;                   /* ScfID */
244 static int hf_camel_DestinationRoutingAddress_item = -1;  /* CalledPartyNumber */
245 static int hf_camel_applicationTimer = -1;        /* ApplicationTimer */
246 static int hf_camel_midCallControlInfo = -1;      /* MidCallControlInfo */
247 static int hf_camel_dpSpecificCriteriaAlt = -1;   /* DpSpecificCriteriaAlt */
248 static int hf_camel_changeOfPositionControlInfo = -1;  /* ChangeOfPositionControlInfo */
249 static int hf_camel_oServiceChangeSpecificInfo = -1;  /* T_oServiceChangeSpecificInfo */
250 static int hf_camel_ext_basicServiceCode = -1;    /* Ext_BasicServiceCode */
251 static int hf_camel_tServiceChangeSpecificInfo = -1;  /* T_tServiceChangeSpecificInfo */
252 static int hf_camel_timeGPRSIfNoTariffSwitch = -1;  /* INTEGER_0_86400 */
253 static int hf_camel_timeGPRSIfTariffSwitch = -1;  /* T_timeGPRSIfTariffSwitch */
254 static int hf_camel_timeGPRSSinceLastTariffSwitch = -1;  /* INTEGER_0_86400 */
255 static int hf_camel_timeGPRSTariffSwitchInterval = -1;  /* INTEGER_0_86400 */
256 static int hf_camel_rOTimeGPRSIfNoTariffSwitch = -1;  /* INTEGER_0_255 */
257 static int hf_camel_rOTimeGPRSIfTariffSwitch = -1;  /* T_rOTimeGPRSIfTariffSwitch */
258 static int hf_camel_rOTimeGPRSSinceLastTariffSwitch = -1;  /* INTEGER_0_255 */
259 static int hf_camel_rOTimeGPRSTariffSwitchInterval = -1;  /* INTEGER_0_255 */
260 static int hf_camel_pDPTypeOrganization = -1;     /* OCTET_STRING_SIZE_1 */
261 static int hf_camel_pDPTypeNumber = -1;           /* OCTET_STRING_SIZE_1 */
262 static int hf_camel_pDPAddress = -1;              /* OCTET_STRING_SIZE_1_63 */
263 static int hf_camel_routeSelectFailureSpecificInfo = -1;  /* T_routeSelectFailureSpecificInfo */
264 static int hf_camel_failureCause = -1;            /* Cause */
265 static int hf_camel_oCalledPartyBusySpecificInfo = -1;  /* T_oCalledPartyBusySpecificInfo */
266 static int hf_camel_busyCause = -1;               /* Cause */
267 static int hf_camel_oNoAnswerSpecificInfo = -1;   /* T_oNoAnswerSpecificInfo */
268 static int hf_camel_oAnswerSpecificInfo = -1;     /* T_oAnswerSpecificInfo */
269 static int hf_camel_destinationAddress = -1;      /* CalledPartyNumber */
270 static int hf_camel_or_Call = -1;                 /* NULL */
271 static int hf_camel_forwardedCall = -1;           /* NULL */
272 static int hf_camel_chargeIndicator = -1;         /* ChargeIndicator */
273 static int hf_camel_ext_basicServiceCode2 = -1;   /* Ext_BasicServiceCode */
274 static int hf_camel_oMidCallSpecificInfo = -1;    /* T_oMidCallSpecificInfo */
275 static int hf_camel_midCallEvents = -1;           /* T_midCallEvents */
276 static int hf_camel_dTMFDigitsCompleted = -1;     /* Digits */
277 static int hf_camel_dTMFDigitsTimeOut = -1;       /* Digits */
278 static int hf_camel_oDisconnectSpecificInfo = -1;  /* T_oDisconnectSpecificInfo */
279 static int hf_camel_releaseCause = -1;            /* Cause */
280 static int hf_camel_tBusySpecificInfo = -1;       /* T_tBusySpecificInfo */
281 static int hf_camel_callForwarded = -1;           /* NULL */
282 static int hf_camel_routeNotPermitted = -1;       /* NULL */
283 static int hf_camel_forwardingDestinationNumber = -1;  /* CalledPartyNumber */
284 static int hf_camel_tNoAnswerSpecificInfo = -1;   /* T_tNoAnswerSpecificInfo */
285 static int hf_camel_tAnswerSpecificInfo = -1;     /* T_tAnswerSpecificInfo */
286 static int hf_camel_tMidCallSpecificInfo = -1;    /* T_tMidCallSpecificInfo */
287 static int hf_camel_midCallEvents1 = -1;          /* T_midCallEvents1 */
288 static int hf_camel_tDisconnectSpecificInfo = -1;  /* T_tDisconnectSpecificInfo */
289 static int hf_camel_oTermSeizedSpecificInfo = -1;  /* T_oTermSeizedSpecificInfo */
290 static int hf_camel_locationInformation = -1;     /* LocationInformation */
291 static int hf_camel_callAcceptedSpecificInfo = -1;  /* T_callAcceptedSpecificInfo */
292 static int hf_camel_oAbandonSpecificInfo = -1;    /* T_oAbandonSpecificInfo */
293 static int hf_camel_oChangeOfPositionSpecificInfo = -1;  /* T_oChangeOfPositionSpecificInfo */
294 static int hf_camel_metDPCriteriaList = -1;       /* MetDPCriteriaList */
295 static int hf_camel_tChangeOfPositionSpecificInfo = -1;  /* T_tChangeOfPositionSpecificInfo */
296 static int hf_camel_dpSpecificInfoAlt = -1;       /* DpSpecificInfoAlt */
297 static int hf_camel_o_smsFailureSpecificInfo = -1;  /* T_o_smsFailureSpecificInfo */
298 static int hf_camel_smsfailureCause = -1;         /* MO_SMSCause */
299 static int hf_camel_o_smsSubmittedSpecificInfo = -1;  /* T_o_smsSubmittedSpecificInfo */
300 static int hf_camel_foo = -1;                     /* INTEGER_0 */
301 static int hf_camel_t_smsFailureSpecificInfo = -1;  /* T_t_smsFailureSpecificInfo */
302 static int hf_camel_failureCause1 = -1;           /* MT_SMSCause */
303 static int hf_camel_t_smsDeliverySpecificInfo = -1;  /* T_t_smsDeliverySpecificInfo */
304 static int hf_camel_Extensions_item = -1;         /* ExtensionField */
305 static int hf_camel_callDiversionTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
306 static int hf_camel_callingPartyRestrictionIndicator = -1;  /* OCTET_STRING_SIZE_1 */
307 static int hf_camel_compoundGapCriteria = -1;     /* CompoundCriteria */
308 static int hf_camel_duration1 = -1;               /* Duration */
309 static int hf_camel_gapInterval = -1;             /* Interval */
310 static int hf_camel_informationToSend = -1;       /* InformationToSend */
311 static int hf_camel_GenericNumbers_item = -1;     /* GenericNumber */
312 static int hf_camel_short_QoS_format = -1;        /* QoS_Subscribed */
313 static int hf_camel_long_QoS_format = -1;         /* Ext_QoS_Subscribed */
314 static int hf_camel_supplement_to_long_QoS_format = -1;  /* Ext2_QoS_Subscribed */
315 static int hf_camel_gPRSEventType = -1;           /* GPRSEventType */
316 static int hf_camel_attachChangeOfPositionSpecificInformation = -1;  /* T_attachChangeOfPositionSpecificInformation */
317 static int hf_camel_locationInformationGPRS = -1;  /* LocationInformationGPRS */
318 static int hf_camel_pdp_ContextchangeOfPositionSpecificInformation = -1;  /* T_pdp_ContextchangeOfPositionSpecificInformation */
319 static int hf_camel_accessPointName = -1;         /* AccessPointName */
320 static int hf_camel_chargingID = -1;              /* GPRSChargingID */
321 static int hf_camel_pDPType = -1;                 /* PDPType */
322 static int hf_camel_qualityOfService = -1;        /* QualityOfService */
323 static int hf_camel_timeAndTimeZone = -1;         /* TimeAndTimezone */
324 static int hf_camel_gGSNAddress = -1;             /* GSN_Address */
325 static int hf_camel_detachSpecificInformation = -1;  /* T_detachSpecificInformation */
326 static int hf_camel_inititatingEntity = -1;       /* InitiatingEntity */
327 static int hf_camel_routeingAreaUpdate = -1;      /* NULL */
328 static int hf_camel_disconnectSpecificInformation = -1;  /* T_disconnectSpecificInformation */
329 static int hf_camel_pDPContextEstablishmentSpecificInformation = -1;  /* T_pDPContextEstablishmentSpecificInformation */
330 static int hf_camel_pDPInitiationType = -1;       /* PDPInitiationType */
331 static int hf_camel_secondaryPDPContext = -1;     /* NULL */
332 static int hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation = -1;  /* T_pDPContextEstablishmentAcknowledgementSpecificInformation */
333 static int hf_camel_mSNetworkCapability = -1;     /* MSNetworkCapability */
334 static int hf_camel_mSRadioAccessCapability = -1;  /* MSRadioAccessCapability */
335 static int hf_camel_messageID = -1;               /* MessageID */
336 static int hf_camel_numberOfRepetitions = -1;     /* INTEGER_1_127 */
337 static int hf_camel_duration2 = -1;               /* INTEGER_0_32767 */
338 static int hf_camel_interval = -1;                /* INTEGER_0_32767 */
339 static int hf_camel_inbandInfo = -1;              /* InbandInfo */
340 static int hf_camel_tone1 = -1;                   /* Tone */
341 static int hf_camel_cellGlobalIdOrServiceAreaIdOrLAI = -1;  /* CellGlobalIdOrServiceAreaIdOrLAI */
342 static int hf_camel_routeingAreaIdentity = -1;    /* RAIdentity */
343 static int hf_camel_geographicalInformation = -1;  /* GeographicalInformation */
344 static int hf_camel_sgsn_Number = -1;             /* ISDN_AddressString */
345 static int hf_camel_selectedLSAIdentity = -1;     /* LSAIdentity */
346 static int hf_camel_extensionContainer = -1;      /* ExtensionContainer */
347 static int hf_camel_saiPresent = -1;              /* NULL */
348 static int hf_camel_elementaryMessageID = -1;     /* Integer4 */
349 static int hf_camel_text = -1;                    /* T_text */
350 static int hf_camel_messageContent = -1;          /* IA5String_SIZE_1_127 */
351 static int hf_camel_attributes = -1;              /* OCTET_STRING_SIZE_2_10 */
352 static int hf_camel_elementaryMessageIDs = -1;    /* SEQUENCE_SIZE_1_16_OF_Integer4 */
353 static int hf_camel_elementaryMessageIDs_item = -1;  /* Integer4 */
354 static int hf_camel_variableMessage = -1;         /* T_variableMessage */
355 static int hf_camel_variableParts = -1;           /* VariablePartsArray */
356 static int hf_camel_MetDPCriteriaList_item = -1;  /* MetDPCriterion */
357 static int hf_camel_enteringCellGlobalId = -1;    /* CellGlobalIdOrServiceAreaIdFixedLength */
358 static int hf_camel_leavingCellGlobalId = -1;     /* CellGlobalIdOrServiceAreaIdFixedLength */
359 static int hf_camel_enteringServiceAreaId = -1;   /* CellGlobalIdOrServiceAreaIdFixedLength */
360 static int hf_camel_leavingServiceAreaId = -1;    /* CellGlobalIdOrServiceAreaIdFixedLength */
361 static int hf_camel_enteringLocationAreaId = -1;  /* LAIFixedLength */
362 static int hf_camel_leavingLocationAreaId = -1;   /* LAIFixedLength */
363 static int hf_camel_inter_SystemHandOverToUMTS = -1;  /* NULL */
364 static int hf_camel_inter_SystemHandOverToGSM = -1;  /* NULL */
365 static int hf_camel_metDPCriterionAlt = -1;       /* MetDPCriterionAlt */
366 static int hf_camel_minimumNumberOfDigits = -1;   /* INTEGER_1_30 */
367 static int hf_camel_maximumNumberOfDigits = -1;   /* INTEGER_1_30 */
368 static int hf_camel_interDigitTimeout = -1;       /* INTEGER_1_127 */
369 static int hf_camel_requested_QoS = -1;           /* GPRS_QoS */
370 static int hf_camel_subscribed_QoS = -1;          /* GPRS_QoS */
371 static int hf_camel_negotiated_QoS = -1;          /* GPRS_QoS */
372 static int hf_camel_requested_QoS_Extension = -1;  /* GPRS_QoS_Extension */
373 static int hf_camel_subscribed_QoS_Extension = -1;  /* GPRS_QoS_Extension */
374 static int hf_camel_negotiated_QoS_Extension = -1;  /* GPRS_QoS_Extension */
375 static int hf_camel_receivingSideID = -1;         /* LegType */
376 static int hf_camel_RequestedInformationList_item = -1;  /* RequestedInformation */
377 static int hf_camel_RequestedInformationTypeList_item = -1;  /* RequestedInformationType */
378 static int hf_camel_requestedInformationType = -1;  /* RequestedInformationType */
379 static int hf_camel_requestedInformationValue = -1;  /* RequestedInformationValue */
380 static int hf_camel_callAttemptElapsedTimeValue = -1;  /* INTEGER_0_255 */
381 static int hf_camel_callStopTimeValue = -1;       /* DateAndTime */
382 static int hf_camel_callConnectedElapsedTimeValue = -1;  /* Integer4 */
383 static int hf_camel_releaseCauseValue = -1;       /* Cause */
384 static int hf_camel_sendingSideID = -1;           /* LegType */
385 static int hf_camel_forwardServiceInteractionInd = -1;  /* ForwardServiceInteractionInd */
386 static int hf_camel_backwardServiceInteractionInd = -1;  /* BackwardServiceInteractionInd */
387 static int hf_camel_bothwayThroughConnectionInd = -1;  /* BothwayThroughConnectionInd */
388 static int hf_camel_connectedNumberTreatmentInd = -1;  /* ConnectedNumberTreatmentInd */
389 static int hf_camel_nonCUGCall = -1;              /* NULL */
390 static int hf_camel_holdTreatmentIndicator = -1;  /* OCTET_STRING_SIZE_1 */
391 static int hf_camel_cwTreatmentIndicator = -1;    /* OCTET_STRING_SIZE_1 */
392 static int hf_camel_ectTreatmentIndicator = -1;   /* OCTET_STRING_SIZE_1 */
393 static int hf_camel_eventTypeSMS = -1;            /* EventTypeSMS */
394 static int hf_camel_timeSinceTariffSwitch = -1;   /* INTEGER_0_864000 */
395 static int hf_camel_tttariffSwitchInterval = -1;  /* INTEGER_1_864000 */
396 static int hf_camel_timeIfNoTariffSwitch = -1;    /* TimeIfNoTariffSwitch */
397 static int hf_camel_timeIfTariffSwitch = -1;      /* TimeIfTariffSwitch */
398 static int hf_camel_toneID = -1;                  /* Integer4 */
399 static int hf_camel_duration3 = -1;               /* Integer4 */
400 static int hf_camel_volumeIfNoTariffSwitch = -1;  /* INTEGER_0_2147483647 */
401 static int hf_camel_volumeIfTariffSwitch = -1;    /* T_volumeIfTariffSwitch */
402 static int hf_camel_volumeSinceLastTariffSwitch = -1;  /* INTEGER_0_2147483647 */
403 static int hf_camel_volumeTariffSwitchInterval = -1;  /* INTEGER_0_2147483647 */
404 static int hf_camel_rOVolumeIfNoTariffSwitch = -1;  /* INTEGER_0_255 */
405 static int hf_camel_rOVolumeIfTariffSwitch = -1;  /* T_rOVolumeIfTariffSwitch */
406 static int hf_camel_rOVolumeSinceLastTariffSwitch = -1;  /* INTEGER_0_255 */
407 static int hf_camel_rOVolumeTariffSwitchInterval = -1;  /* INTEGER_0_255 */
408 static int hf_camel_integer = -1;                 /* Integer4 */
409 static int hf_camel_number = -1;                  /* Digits */
410 static int hf_camel_time = -1;                    /* OCTET_STRING_SIZE_2 */
411 static int hf_camel_date = -1;                    /* OCTET_STRING_SIZE_4 */
412 static int hf_camel_price = -1;                   /* OCTET_STRING_SIZE_4 */
413 static int hf_camel_pDPTypeOrganization1 = -1;    /* PDPTypeOrganization */
414 static int hf_camel_pDPTypeNumber1 = -1;          /* PDPTypeNumber */
415 static int hf_camel_pDPAddress1 = -1;             /* PDPAddress */
416 static int hf_camel_local = -1;                   /* INTEGER */
417 static int hf_camel_global = -1;                  /* OBJECT_IDENTIFIER */
418 static int hf_camel_messageType = -1;             /* T_messageType */
419 static int hf_camel_firstExtensionExtensionType = -1;  /* NULL */
420 static int hf_camel_extId = -1;                   /* ExtensionSetextensionId */
421 static int hf_camel_callresultOctet = -1;         /* CallresultoctetPDU */
422 static int hf_camel_allRequests = -1;             /* NULL */
423 static int hf_camel_callSegmentToCancel = -1;     /* CallSegmentToCancel */
424 static int hf_camel_digitsResponse = -1;          /* Digits */
425 static int hf_camel_pdpID = -1;                   /* PDPId */
426 static int hf_camel_gPRSCause = -1;               /* GPRSCause */
427 static int hf_camel_gprsCause = -1;               /* GPRSCause */
428 static int hf_camel_gPRSEvent = -1;               /* GPRSEventArray */
429 static int hf_camel_GPRSEventArray_item = -1;     /* GPRSEvent */
430 static int hf_camel_sCIGPRSBillingChargingCharacteristics = -1;  /* SCIGPRSBillingChargingCharacteristics */
431 static int hf_camel_assumedIdle = -1;             /* NULL */
432 static int hf_camel_camelBusy = -1;               /* NULL */
433 static int hf_camel_netDetNotReachable = -1;      /* NotReachableReason */
434 static int hf_camel_notProvidedFromVLR = -1;      /* NULL */
435 static int hf_camel_PrivateExtensionList_item = -1;  /* PrivateExtension */
436 static int hf_camel_cellIdFixedLength = -1;       /* CellIdFixedLength */
437 static int hf_camel_laiFixedLength = -1;          /* LAIFixedLength */
438 static int hf_camel_VariablePartsArray_item = -1;  /* VariablePart */
439 static int hf_camel_gmscAddress = -1;             /* ISDN_AddressString */
440 static int hf_camel_ms_Classmark2 = -1;           /* MS_Classmark2 */
441 static int hf_camel_iMEI = -1;                    /* IMEI */
442 static int hf_camel_supportedCamelPhases = -1;    /* SupportedCamelPhases */
443 static int hf_camel_offeredCamel4Functionalities = -1;  /* OfferedCamel4Functionalities */
444 static int hf_camel_bearerCapability2 = -1;       /* BearerCapability */
445 static int hf_camel_highLayerCompatibility2 = -1;  /* HighLayerCompatibility */
446 static int hf_camel_lowLayerCompatibility = -1;   /* LowLayerCompatibility */
447 static int hf_camel_lowLayerCompatibility2 = -1;  /* LowLayerCompatibility */
448 static int hf_camel_enhancedDialledServicesAllowed = -1;  /* NULL */
449 static int hf_camel_uu_Data = -1;                 /* UU_Data */
450 static int hf_camel_destinationRoutingAddress = -1;  /* DestinationRoutingAddress */
451 static int hf_camel_legToBeCreated = -1;          /* LegID */
452 static int hf_camel_newCallSegment = -1;          /* CallSegmentID */
453 static int hf_camel_callingPartyNumber = -1;      /* CallingPartyNumber */
454 static int hf_camel_callReferenceNumber = -1;     /* CallReferenceNumber */
455 static int hf_camel_gsmSCFAddress = -1;           /* ISDN_AddressString */
456 static int hf_camel_suppress_T_CSI = -1;          /* NULL */
457 static int hf_camel_legIDToMove = -1;             /* LegID */
458 static int hf_camel_legOrCallSegment = -1;        /* LegOrCallSegment */
459 static int hf_camel_miscGPRSInfo = -1;            /* MiscCallInfo */
460 static int hf_camel_gPRSEventSpecificInformation = -1;  /* GPRSEventSpecificInformation */
461 static int hf_camel_type = -1;                    /* SupportedExtensionsid */
462 static int hf_camel_criticality = -1;             /* CriticalityType */
463 static int hf_camel_value = -1;                   /* SupportedExtensionsExtensionType */
464 static int hf_camel_aChBillingChargingCharacteristics = -1;  /* AChBillingChargingCharacteristics */
465 static int hf_camel_partyToCharge1 = -1;          /* SendingSideID */
466 static int hf_camel_ExtensionsArray_item = -1;    /* ExtensionField */
467 static int hf_camel_correlationID = -1;           /* CorrelationID */
468 static int hf_camel_iPSSPCapabilities = -1;       /* IPSSPCapabilities */
469 static int hf_camel_requestedInformationTypeList = -1;  /* RequestedInformationTypeList */
470 static int hf_camel_legID3 = -1;                  /* SendingSideID */
471 static int hf_camel_alertingPattern = -1;         /* AlertingPattern */
472 static int hf_camel_originalCalledPartyID = -1;   /* OriginalCalledPartyID */
473 static int hf_camel_carrier = -1;                 /* Carrier */
474 static int hf_camel_callingPartysCategory = -1;   /* CallingPartysCategory */
475 static int hf_camel_redirectingPartyID = -1;      /* RedirectingPartyID */
476 static int hf_camel_redirectionInformation = -1;  /* RedirectionInformation */
477 static int hf_camel_genericNumbers = -1;          /* GenericNumbers */
478 static int hf_camel_serviceInteractionIndicatorsTwo = -1;  /* ServiceInteractionIndicatorsTwo */
479 static int hf_camel_chargeNumber = -1;            /* ChargeNumber */
480 static int hf_camel_cug_Interlock = -1;           /* CUG_Interlock */
481 static int hf_camel_cug_OutgoingAccess = -1;      /* NULL */
482 static int hf_camel_suppressionOfAnnouncement = -1;  /* SuppressionOfAnnouncement */
483 static int hf_camel_oCSIApplicable = -1;          /* OCSIApplicable */
484 static int hf_camel_naOliInfo = -1;               /* NAOliInfo */
485 static int hf_camel_bor_InterrogationRequested = -1;  /* NULL */
486 static int hf_camel_resourceAddress = -1;         /* T_resourceAddress */
487 static int hf_camel_ipRoutingAddress = -1;        /* IPRoutingAddress */
488 static int hf_camel_none = -1;                    /* NULL */
489 static int hf_camel_suppress_O_CSI = -1;          /* NULL */
490 static int hf_camel_continueWithArgumentArgExtension = -1;  /* ContinueWithArgumentArgExtension */
491 static int hf_camel_suppress_D_CSI = -1;          /* NULL */
492 static int hf_camel_suppress_N_CSI = -1;          /* NULL */
493 static int hf_camel_suppressOutgoingCallBarring = -1;  /* NULL */
494 static int hf_camel_legToBeReleased = -1;         /* LegID */
495 static int hf_camel_callSegmentFailure = -1;      /* CallSegmentFailure */
496 static int hf_camel_bCSM_Failure = -1;            /* BCSM_Failure */
497 static int hf_camel_assistingSSPIPRoutingAddress = -1;  /* AssistingSSPIPRoutingAddress */
498 static int hf_camel_eventSpecificInformationBCSM = -1;  /* EventSpecificInformationBCSM */
499 static int hf_camel_legID4 = -1;                  /* ReceivingSideID */
500 static int hf_camel_miscCallInfo = -1;            /* MiscCallInfo */
501 static int hf_camel_timerID = -1;                 /* TimerID */
502 static int hf_camel_timervalue = -1;              /* TimerValue */
503 static int hf_camel_sCIBillingChargingCharacteristics = -1;  /* SCIBillingChargingCharacteristics */
504 static int hf_camel_partyToCharge2 = -1;          /* SendingSideID */
505 static int hf_camel_legToBeSplit = -1;            /* LegID */
506 static int hf_camel_destinationReference = -1;    /* Integer4 */
507 static int hf_camel_originationReference = -1;    /* Integer4 */
508 static int hf_camel_eventSpecificInformationSMS = -1;  /* EventSpecificInformationSMS */
509 static int hf_camel_sMSEvents = -1;               /* SMSEventArray */
510 static int hf_camel_SMSEventArray_item = -1;      /* SMSEvent */
511 static int hf_camel_bcsmEvents = -1;              /* BCSMEventArray */
512 static int hf_camel_BCSMEventArray_item = -1;     /* BCSMEvent */
513 static int hf_camel_callingPartysNumber = -1;     /* ISDN_AddressString */
514 static int hf_camel_destinationSubscriberNumber = -1;  /* CalledPartyBCDNumber */
515 static int hf_camel_sMSCAddress = -1;             /* ISDN_AddressString */
516 static int hf_camel_requestedInformationList = -1;  /* RequestedInformationList */
517 static int hf_camel_legID5 = -1;                  /* ReceivingSideID */
518 static int hf_camel_disconnectFromIPForbidden = -1;  /* BOOLEAN */
519 static int hf_camel_requestAnnouncementComplete = -1;  /* BOOLEAN */
520 static int hf_camel_collectedInfo = -1;           /* CollectedInfo */
521 static int hf_camel_mSISDN = -1;                  /* ISDN_AddressString */
522 static int hf_camel_iMSI = -1;                    /* IMSI */
523 static int hf_camel_gPRSMSClass = -1;             /* GPRSMSClass */
524 static int hf_camel_sGSNCapabilities = -1;        /* SGSNCapabilities */
525 static int hf_camel_gapCriteria = -1;             /* GapCriteria */
526 static int hf_camel_gapIndicators = -1;           /* GapIndicators */
527 static int hf_camel_controlType = -1;             /* ControlType */
528 static int hf_camel_gapTreatment = -1;            /* GapTreatment */
529 static int hf_camel_calledPartyNumber = -1;       /* CalledPartyNumber */
530 static int hf_camel_cGEncountered = -1;           /* CGEncountered */
531 static int hf_camel_locationNumber = -1;          /* LocationNumber */
532 static int hf_camel_highLayerCompatibility = -1;  /* HighLayerCompatibility */
533 static int hf_camel_additionalCallingPartyNumber = -1;  /* AdditionalCallingPartyNumber */
534 static int hf_camel_bearerCapability = -1;        /* BearerCapability */
535 static int hf_camel_cug_Index = -1;               /* CUG_Index */
536 static int hf_camel_subscriberState = -1;         /* SubscriberState */
537 static int hf_camel_mscAddress = -1;              /* ISDN_AddressString */
538 static int hf_camel_calledPartyBCDNumber = -1;    /* CalledPartyBCDNumber */
539 static int hf_camel_timeAndTimezone = -1;         /* TimeAndTimezone */
540 static int hf_camel_gsm_ForwardingPending = -1;   /* NULL */
541 static int hf_camel_initialDPArgExtension = -1;   /* InitialDPArgExtension */
542 static int hf_camel_callingPartyNumberas = -1;    /* ISDN_AddressString */
543 static int hf_camel_locationInformationMSC = -1;  /* LocationInformation */
544 static int hf_camel_tPShortMessageSubmissionSpecificInfo = -1;  /* TPShortMessageSubmissionInfo */
545 static int hf_camel_tPProtocolIdentifier = -1;    /* TPProtocolIdentifier */
546 static int hf_camel_tPDataCodingScheme = -1;      /* TPDataCodingScheme */
547 static int hf_camel_tPValidityPeriod = -1;        /* TPValidityPeriod */
548 static int hf_camel_smsReferenceNumber = -1;      /* CallReferenceNumber */
549 static int hf_camel_sgsnNumber = -1;              /* ISDN_AddressString */
550 static int hf_camel_privateExtensionList = -1;    /* PrivateExtensionList */
551 static int hf_camel_pcs_Extensions = -1;          /* PCS_Extensions */
552 static int hf_camel_chargingCharacteristics = -1;  /* ChargingCharacteristics */
553 static int hf_camel_chargingResult = -1;          /* ChargingResult */
554 static int hf_camel_active = -1;                  /* BOOLEAN */
555 static int hf_camel_chargingRollOver = -1;        /* ChargingRollOver */
556 static int hf_camel_problem = -1;                 /* T_problem */
557 static int hf_camel_operation = -1;               /* InvokeID */
558 /* named bits */
559 static int hf_camel_SupportedCamelPhases_phase1 = -1;
560 static int hf_camel_SupportedCamelPhases_phase2 = -1;
561 static int hf_camel_SupportedCamelPhases_phase3 = -1;
562 static int hf_camel_SupportedCamelPhases_phase4 = -1;
563 static int hf_camel_OfferedCamel4Functionalities_initiateCallAttempt = -1;
564 static int hf_camel_OfferedCamel4Functionalities_splitLeg = -1;
565 static int hf_camel_OfferedCamel4Functionalities_moveLeg = -1;
566 static int hf_camel_OfferedCamel4Functionalities_disconnectLeg = -1;
567 static int hf_camel_OfferedCamel4Functionalities_entityReleased = -1;
568 static int hf_camel_OfferedCamel4Functionalities_dfc_WithArgument = -1;
569 static int hf_camel_OfferedCamel4Functionalities_playTone = -1;
570 static int hf_camel_OfferedCamel4Functionalities_dtmf_MidCall = -1;
571 static int hf_camel_OfferedCamel4Functionalities_chargingIndicator = -1;
572 static int hf_camel_OfferedCamel4Functionalities_alertingDP = -1;
573 static int hf_camel_OfferedCamel4Functionalities_locationAtAlerting = -1;
574 static int hf_camel_OfferedCamel4Functionalities_changeOfPositionDP = -1;
575 static int hf_camel_OfferedCamel4Functionalities_or_Interactions = -1;
576 static int hf_camel_OfferedCamel4Functionalities_warningToneEnhancements = -1;
577 static int hf_camel_OfferedCamel4Functionalities_cf_Enhancements = -1;
578 static int hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices = -1;
579 static int hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices = -1;
580 static int hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP = -1;
581 static int hf_camel_OfferedCamel4Functionalities_serviceChangeDP = -1;
582
583 /*--- End of included file: packet-camel-hf.c ---*/
584 #line 91 "packet-camel-template.c"
585 static guint global_tcap_itu_ssn = 0;
586
587 /* Initialize the subtree pointers */
588 static gint ett_camel = -1;
589 static gint ett_camel_InvokeId = -1;
590 static gint ett_camel_InvokePDU = -1;
591 static gint ett_camel_ReturnResultPDU = -1;
592 static gint ett_camel_ReturnResult_result = -1;
593 static gint ett_camel_camelPDU = -1;
594 static gint ett_camelisup_parameter = -1;
595 static gint ett_camel_addr = -1;
596 static gint ett_camel_isdn_address_string = -1;
597 static gint ett_camel_MSRadioAccessCapability = -1;
598 static gint ett_camel_MSNetworkCapability = -1;
599 static gint ett_camel_AccessPointName = -1;
600 static gint ett_camel_pdptypenumber = -1;
601
602
603 /*--- Included file: packet-camel-ett.c ---*/
604 #line 1 "packet-camel-ett.c"
605 static gint ett_camel_PBSGSNCapabilities = -1;
606 static gint ett_camel_PBIPSSPCapabilities = -1;
607 static gint ett_camel_PBAddressString = -1;
608 static gint ett_camel_PBISDNAddressString = -1;
609 static gint ett_camel_PBGeographicalInformation = -1;
610 static gint ett_camel_PBGSNAddress = -1;
611 static gint ett_camel_PBRedirectionInformation = -1;
612 static gint ett_camel_PBCalledPartyNumber = -1;
613 static gint ett_camel_PBCallingPartyNumber = -1;
614 static gint ett_camel_PBRedirectingNumber = -1;
615 static gint ett_camel_PBCause = -1;
616 static gint ett_camel_PBGenericNumber = -1;
617 static gint ett_camel_PBLocationNumber = -1;
618 static gint ett_camel_PBCalledPartyBCDNumber = -1;
619 static gint ett_camel_AChBillingChargingCharacteristics = -1;
620 static gint ett_camel_T_actimeDurationCharging = -1;
621 static gint ett_camel_AChChargingAddress = -1;
622 static gint ett_camel_AOCBeforeAnswer = -1;
623 static gint ett_camel_AOCGprs = -1;
624 static gint ett_camel_AOCSubsequent = -1;
625 static gint ett_camel_AudibleIndicator = -1;
626 static gint ett_camel_BackwardServiceInteractionInd = -1;
627 static gint ett_camel_BasicGapCriteria = -1;
628 static gint ett_camel_T_calledAddressAndService = -1;
629 static gint ett_camel_T_callingAddressAndService = -1;
630 static gint ett_camel_BCSMEvent = -1;
631 static gint ett_camel_BCSM_Failure = -1;
632 static gint ett_camel_BearerCapability = -1;
633 static gint ett_camel_Burst = -1;
634 static gint ett_camel_BurstList = -1;
635 static gint ett_camel_CAI_Gsm0224 = -1;
636 static gint ett_camel_CallSegmentFailure = -1;
637 static gint ett_camel_CallSegmentToCancel = -1;
638 static gint ett_camel_CAMEL_AChBillingChargingCharacteristics = -1;
639 static gint ett_camel_T_timeDurationCharging = -1;
640 static gint ett_camel_CAMEL_CallResult = -1;
641 static gint ett_camel_T_timeDurationChargingResult = -1;
642 static gint ett_camel_CAMEL_FCIBillingChargingCharacteristics = -1;
643 static gint ett_camel_T_fCIBCCCAMELsequence1 = -1;
644 static gint ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics = -1;
645 static gint ett_camel_T_fCIBCCCAMELsequence2 = -1;
646 static gint ett_camel_CAMEL_FCISMSBillingChargingCharacteristics = -1;
647 static gint ett_camel_T_fCIBCCCAMELsequence3 = -1;
648 static gint ett_camel_CAMEL_SCIBillingChargingCharacteristics = -1;
649 static gint ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt = -1;
650 static gint ett_camel_CamelSCIGPRSBillingChargingCharacteristics = -1;
651 static gint ett_camel_ChangeOfPositionControlInfo = -1;
652 static gint ett_camel_ChangeOfLocation = -1;
653 static gint ett_camel_ChangeOfLocationAlt = -1;
654 static gint ett_camel_ChargingCharacteristics = -1;
655 static gint ett_camel_ChargingResult = -1;
656 static gint ett_camel_ChargingRollOver = -1;
657 static gint ett_camel_CollectedDigits = -1;
658 static gint ett_camel_CollectedInfo = -1;
659 static gint ett_camel_CompoundCriteria = -1;
660 static gint ett_camel_DestinationRoutingAddress = -1;
661 static gint ett_camel_DpSpecificCriteria = -1;
662 static gint ett_camel_DpSpecificCriteriaAlt = -1;
663 static gint ett_camel_DpSpecificInfoAlt = -1;
664 static gint ett_camel_T_oServiceChangeSpecificInfo = -1;
665 static gint ett_camel_T_tServiceChangeSpecificInfo = -1;
666 static gint ett_camel_ElapsedTime = -1;
667 static gint ett_camel_T_timeGPRSIfTariffSwitch = -1;
668 static gint ett_camel_ElapsedTimeRollOver = -1;
669 static gint ett_camel_T_rOTimeGPRSIfTariffSwitch = -1;
670 static gint ett_camel_EndUserAddress = -1;
671 static gint ett_camel_EventSpecificInformationBCSM = -1;
672 static gint ett_camel_T_routeSelectFailureSpecificInfo = -1;
673 static gint ett_camel_T_oCalledPartyBusySpecificInfo = -1;
674 static gint ett_camel_T_oNoAnswerSpecificInfo = -1;
675 static gint ett_camel_T_oAnswerSpecificInfo = -1;
676 static gint ett_camel_T_oMidCallSpecificInfo = -1;
677 static gint ett_camel_T_midCallEvents = -1;
678 static gint ett_camel_T_oDisconnectSpecificInfo = -1;
679 static gint ett_camel_T_tBusySpecificInfo = -1;
680 static gint ett_camel_T_tNoAnswerSpecificInfo = -1;
681 static gint ett_camel_T_tAnswerSpecificInfo = -1;
682 static gint ett_camel_T_tMidCallSpecificInfo = -1;
683 static gint ett_camel_T_midCallEvents1 = -1;
684 static gint ett_camel_T_tDisconnectSpecificInfo = -1;
685 static gint ett_camel_T_oTermSeizedSpecificInfo = -1;
686 static gint ett_camel_T_callAcceptedSpecificInfo = -1;
687 static gint ett_camel_T_oAbandonSpecificInfo = -1;
688 static gint ett_camel_T_oChangeOfPositionSpecificInfo = -1;
689 static gint ett_camel_T_tChangeOfPositionSpecificInfo = -1;
690 static gint ett_camel_EventSpecificInformationSMS = -1;
691 static gint ett_camel_T_o_smsFailureSpecificInfo = -1;
692 static gint ett_camel_T_o_smsSubmittedSpecificInfo = -1;
693 static gint ett_camel_T_t_smsFailureSpecificInfo = -1;
694 static gint ett_camel_T_t_smsDeliverySpecificInfo = -1;
695 static gint ett_camel_Extensions = -1;
696 static gint ett_camel_ForwardServiceInteractionInd = -1;
697 static gint ett_camel_GapCriteria = -1;
698 static gint ett_camel_GapIndicators = -1;
699 static gint ett_camel_GapOnService = -1;
700 static gint ett_camel_GapTreatment = -1;
701 static gint ett_camel_GenericNumbers = -1;
702 static gint ett_camel_GPRS_QoS = -1;
703 static gint ett_camel_GPRS_QoS_Extension = -1;
704 static gint ett_camel_GPRSEvent = -1;
705 static gint ett_camel_GPRSEventSpecificInformation = -1;
706 static gint ett_camel_T_attachChangeOfPositionSpecificInformation = -1;
707 static gint ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation = -1;
708 static gint ett_camel_T_detachSpecificInformation = -1;
709 static gint ett_camel_T_disconnectSpecificInformation = -1;
710 static gint ett_camel_T_pDPContextEstablishmentSpecificInformation = -1;
711 static gint ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation = -1;
712 static gint ett_camel_GPRSMSClass = -1;
713 static gint ett_camel_InbandInfo = -1;
714 static gint ett_camel_InformationToSend = -1;
715 static gint ett_camel_LegOrCallSegment = -1;
716 static gint ett_camel_LocationInformationGPRS = -1;
717 static gint ett_camel_MessageID = -1;
718 static gint ett_camel_T_text = -1;
719 static gint ett_camel_SEQUENCE_SIZE_1_16_OF_Integer4 = -1;
720 static gint ett_camel_T_variableMessage = -1;
721 static gint ett_camel_MetDPCriteriaList = -1;
722 static gint ett_camel_MetDPCriterion = -1;
723 static gint ett_camel_MetDPCriterionAlt = -1;
724 static gint ett_camel_MidCallControlInfo = -1;
725 static gint ett_camel_QualityOfService = -1;
726 static gint ett_camel_ReceivingSideID = -1;
727 static gint ett_camel_RequestedInformationList = -1;
728 static gint ett_camel_RequestedInformationTypeList = -1;
729 static gint ett_camel_RequestedInformation = -1;
730 static gint ett_camel_RequestedInformationValue = -1;
731 static gint ett_camel_SendingSideID = -1;
732 static gint ett_camel_ServiceInteractionIndicatorsTwo = -1;
733 static gint ett_camel_SMSEvent = -1;
734 static gint ett_camel_TimeIfTariffSwitch = -1;
735 static gint ett_camel_TimeInformation = -1;
736 static gint ett_camel_Tone = -1;
737 static gint ett_camel_TransferredVolume = -1;
738 static gint ett_camel_T_volumeIfTariffSwitch = -1;
739 static gint ett_camel_TransferredVolumeRollOver = -1;
740 static gint ett_camel_T_rOVolumeIfTariffSwitch = -1;
741 static gint ett_camel_VariablePart = -1;
742 static gint ett_camel_PDPType = -1;
743 static gint ett_camel_Code = -1;
744 static gint ett_camel_PCS_Extensions = -1;
745 static gint ett_camel_MiscCallInfo = -1;
746 static gint ett_camel_SupportedExtensionsExtensionType = -1;
747 static gint ett_camel_PrivateExtension = -1;
748 static gint ett_camel_ApplyChargingReportArg = -1;
749 static gint ett_camel_CancelArg = -1;
750 static gint ett_camel_ReceivedInformationArg = -1;
751 static gint ett_camel_ConnectGPRSArg = -1;
752 static gint ett_camel_EntityReleasedGPRSArg = -1;
753 static gint ett_camel_ReleaseGPRSArg = -1;
754 static gint ett_camel_RequestReportGPRSEventArg = -1;
755 static gint ett_camel_GPRSEventArray = -1;
756 static gint ett_camel_SendChargingInformationGPRSArg = -1;
757 static gint ett_camel_SubscriberState = -1;
758 static gint ett_camel_PrivateExtensionList = -1;
759 static gint ett_camel_CellIdOrLAI = -1;
760 static gint ett_camel_LegID = -1;
761 static gint ett_camel_VariablePartsArray = -1;
762 static gint ett_camel_InitialDPArgExtension = -1;
763 static gint ett_camel_InitiateCallAttemptArg = -1;
764 static gint ett_camel_InitiateCallAttemptRes = -1;
765 static gint ett_camel_MoveLegArg = -1;
766 static gint ett_camel_PlayToneArg = -1;
767 static gint ett_camel_SupportedCamelPhases = -1;
768 static gint ett_camel_OfferedCamel4Functionalities = -1;
769 static gint ett_camel_EventReportGPRSArg = -1;
770 static gint ett_camel_ExtensionField = -1;
771 static gint ett_camel_ApplyChargingArg = -1;
772 static gint ett_camel_ExtensionsArray = -1;
773 static gint ett_camel_AssistRequestInstructionsArg = -1;
774 static gint ett_camel_CallInformationRequestArg = -1;
775 static gint ett_camel_ConnectArg = -1;
776 static gint ett_camel_ConnectToResourceArg = -1;
777 static gint ett_camel_T_resourceAddress = -1;
778 static gint ett_camel_ContinueWithArgumentArg = -1;
779 static gint ett_camel_ContinueWithArgumentArgExtension = -1;
780 static gint ett_camel_DisconnectLegArg = -1;
781 static gint ett_camel_EntityReleasedArg = -1;
782 static gint ett_camel_DisconnectForwardConnectionWithArgumentArg = -1;
783 static gint ett_camel_EstablishTemporaryConnectionArg = -1;
784 static gint ett_camel_EventReportBCSMArg = -1;
785 static gint ett_camel_ResetTimerArg = -1;
786 static gint ett_camel_SendChargingInformationArg = -1;
787 static gint ett_camel_SplitLegArg = -1;
788 static gint ett_camel_CAPGPRSReferenceNumber = -1;
789 static gint ett_camel_EventReportSMSArg = -1;
790 static gint ett_camel_RequestReportSMSEventArg = -1;
791 static gint ett_camel_SMSEventArray = -1;
792 static gint ett_camel_ResetTimerSMSArg = -1;
793 static gint ett_camel_RequestReportBCSMEventArg = -1;
794 static gint ett_camel_BCSMEventArray = -1;
795 static gint ett_camel_ConnectSMSArg = -1;
796 static gint ett_camel_CallInformationReportArg = -1;
797 static gint ett_camel_PlayAnnouncementArg = -1;
798 static gint ett_camel_PromptAndCollectUserInformationArg = -1;
799 static gint ett_camel_InitialDPGPRSArg = -1;
800 static gint ett_camel_CallGapArg = -1;
801 static gint ett_camel_InitialDPArg = -1;
802 static gint ett_camel_InitialDPSMSArg = -1;
803 static gint ett_camel_ExtensionContainer = -1;
804 static gint ett_camel_ApplyChargingGPRSArg = -1;
805 static gint ett_camel_ApplyChargingReportGPRSArg = -1;
806 static gint ett_camel_CancelGPRSArg = -1;
807 static gint ett_camel_ContinueGPRSArg = -1;
808 static gint ett_camel_ResetTimerGPRSArg = -1;
809 static gint ett_camel_CancelFailedPARAM = -1;
810
811 /*--- End of included file: packet-camel-ett.c ---*/
812 #line 109 "packet-camel-template.c"
813
814
815 /* Preference settings default */
816 #define MAX_SSN 254
817 static range_t *global_ssn_range;
818 static range_t *ssn_range;
819 dissector_handle_t  camel_handle;
820
821 /* Global variables */
822
823 static int application_context_version;
824 static guint8 PDPTypeOrganization;
825 static guint8 PDPTypeNumber;
826
827
828 static int  dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset);
829
830 static const true_false_string camel_extension_value = {
831   "No Extension",
832   "Extension"
833 };
834 #define EUROPEAN_DATE 1
835 #define AMERICAN_DATE 2
836 #define CAMEL_DATE_AND_TIME_LEN 20 /* 2*5 + 4 + 5 + 1 (HH:MM:SS;mm/dd/yyyy) */
837
838 static enum_val_t date_options[] = {
839   { "european",         "DD/MM/YYYY",       EUROPEAN_DATE },
840   { "american",        "MM/DD/YYYY",        AMERICAN_DATE },
841   { NULL, NULL, 0 }
842 };
843
844 static const value_string digit_value[] = {
845     { 0,  "0"},
846     { 1,  "1"},
847     { 2,  "2"},
848     { 3,  "3"},
849     { 4,  "4"},
850     { 5,  "5"},
851     { 6,  "6"},
852     { 7,  "7"},
853     { 8,  "8"},
854     { 9,  "9"},
855     { 10, "spare"},
856     { 11, "spare"},
857     { 12, "spare"},
858     { 13, "spare"},
859     { 0,  NULL}};
860   
861   
862 static const value_string camel_nature_of_addr_indicator_values[] = {
863   {   0x00,  "unknown" },
864   {   0x01,  "International Number" },
865   {   0x02,  "National Significant Number" },
866   {   0x03,  "Network Specific Number" },
867   {   0x04,  "Subscriber Number" },
868   {   0x05,  "Reserved" },
869   {   0x06,  "Abbreviated Number" },
870   {   0x07,  "Reserved for extension" },
871   { 0, NULL }
872 };
873 static const value_string camel_number_plan_values[] = {
874   {   0x00,  "unknown" },
875   {   0x01,  "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
876   {   0x02,  "spare" },
877   {   0x03,  "Data Numbering (ITU-T Rec. X.121)" },
878   {   0x04,  "Telex Numbering (ITU-T Rec. F.69)" },
879   {   0x05,  "spare" },
880   {   0x06,  "Land Mobile Numbering (ITU-T Rec. E.212)" },
881   {   0x07,  "spare" },
882   {   0x08,  "National Numbering" },
883   {   0x09,  "Private Numbering" },
884   {   0x0f,  "Reserved for extension" },
885   { 0, NULL }
886 };
887
888 /* End includes from old" packet-camel.c */
889
890
891 /*--- Included file: packet-camel-fn.c ---*/
892 #line 1 "packet-camel-fn.c"
893 /*--- Fields for imported types ---*/
894
895 static int dissect_cellGlobalId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
896   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_cellGlobalId);
897 }
898 static int dissect_serviceAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
899   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_serviceAreaId);
900 }
901 static int dissect_locationAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
902   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_locationAreaId);
903 }
904 static int dissect_ext_basicServiceCode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
905   return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode);
906 }
907 static int dissect_ext_basicServiceCode2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
908   return dissect_gsm_map_Ext_BasicServiceCode(TRUE, tvb, offset, pinfo, tree, hf_camel_ext_basicServiceCode2);
909 }
910 static int dissect_locationInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
911   return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformation);
912 }
913 static int dissect_short_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
914   return dissect_gsm_map_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_short_QoS_format);
915 }
916 static int dissect_long_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
917   return dissect_gsm_map_Ext_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_long_QoS_format);
918 }
919 static int dissect_supplement_to_long_QoS_format_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
920   return dissect_gsm_map_Ext2_QoS_Subscribed(TRUE, tvb, offset, pinfo, tree, hf_camel_supplement_to_long_QoS_format);
921 }
922 static int dissect_chargingID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
923   return dissect_gsm_map_GPRSChargingID(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingID);
924 }
925 static int dissect_gGSNAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
926   return dissect_gsm_map_GSN_Address(TRUE, tvb, offset, pinfo, tree, hf_camel_gGSNAddress);
927 }
928 static int dissect_routeingAreaIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
929   return dissect_gsm_map_RAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_routeingAreaIdentity);
930 }
931 static int dissect_geographicalInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
932   return dissect_gsm_map_GeographicalInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_geographicalInformation);
933 }
934 static int dissect_selectedLSAIdentity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
935   return dissect_gsm_map_LSAIdentity(TRUE, tvb, offset, pinfo, tree, hf_camel_selectedLSAIdentity);
936 }
937 static int dissect_enteringCellGlobalId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
938   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringCellGlobalId);
939 }
940 static int dissect_leavingCellGlobalId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
941   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingCellGlobalId);
942 }
943 static int dissect_enteringServiceAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
944   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringServiceAreaId);
945 }
946 static int dissect_leavingServiceAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
947   return dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingServiceAreaId);
948 }
949 static int dissect_enteringLocationAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
950   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_enteringLocationAreaId);
951 }
952 static int dissect_leavingLocationAreaId_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
953   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_leavingLocationAreaId);
954 }
955 static int dissect_laiFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
956   return dissect_gsm_map_LAIFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_laiFixedLength);
957 }
958 static int dissect_ms_Classmark2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
959   return dissect_gsm_map_MS_Classmark2(TRUE, tvb, offset, pinfo, tree, hf_camel_ms_Classmark2);
960 }
961 static int dissect_iMEI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
962   return dissect_gsm_map_IMEI(TRUE, tvb, offset, pinfo, tree, hf_camel_iMEI);
963 }
964 static int dissect_uu_Data_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
965   return dissect_gsm_map_UU_Data(TRUE, tvb, offset, pinfo, tree, hf_camel_uu_Data);
966 }
967 static int dissect_iMSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
968   return dissect_gsm_map_IMSI(TRUE, tvb, offset, pinfo, tree, hf_camel_iMSI);
969 }
970 static int dissect_locationInformationMSC_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
971   return dissect_gsm_map_LocationInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformationMSC);
972 }
973
974
975
976 static int
977 dissect_camel_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
978   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
979                                   NULL);
980
981   return offset;
982 }
983 static int dissect_reserved(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
984   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_reserved);
985 }
986 static int dissect_aoc(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
987   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_aoc);
988 }
989 static int dissect_standardPartEnd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
990   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_standardPartEnd);
991 }
992 static int dissect_genOfVoiceAnn(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
993   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_genOfVoiceAnn);
994 }
995 static int dissect_voiceInfo2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
996   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_voiceInfo2);
997 }
998 static int dissect_voiceInfo1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
999   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_voiceInfo1);
1000 }
1001 static int dissect_voiceBack1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1002   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_voiceBack1);
1003 }
1004 static int dissect_iPRoutAdd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1005   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_iPRoutAdd);
1006 }
1007 static int dissect_natureOfAddressIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1008   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_natureOfAddressIndicator);
1009 }
1010 static int dissect_numberingPlanInd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1011   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_numberingPlanInd);
1012 }
1013 static int dissect_typeOfShape(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1014   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_typeOfShape);
1015 }
1016 static int dissect_spare3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1017   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_spare3);
1018 }
1019 static int dissect_typeOfAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1020   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_typeOfAddress);
1021 }
1022 static int dissect_originalReasons(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1023   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_originalReasons);
1024 }
1025 static int dissect_indicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1026   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_indicator);
1027 }
1028 static int dissect_reason(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1029   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_reason);
1030 }
1031 static int dissect_counter(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1032   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_counter);
1033 }
1034 static int dissect_oddEven(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1035   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_oddEven);
1036 }
1037 static int dissect_innInd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1038   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_innInd);
1039 }
1040 static int dissect_niInd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1041   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_niInd);
1042 }
1043 static int dissect_presentInd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1044   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_presentInd);
1045 }
1046 static int dissect_screening(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1047   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_screening);
1048 }
1049 static int dissect_codingStandard(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1050   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_codingStandard);
1051 }
1052 static int dissect_location(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1053   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_location);
1054 }
1055 static int dissect_causeValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1056   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_causeValue);
1057 }
1058 static int dissect_numberQualifierIndicator(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1059   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_numberQualifierIndicator);
1060 }
1061 static int dissect_ext(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1062   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_ext);
1063 }
1064 static int dissect_local(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1065   return dissect_camel_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_camel_local);
1066 }
1067
1068
1069 static const ber_sequence_t PBSGSNCapabilities_sequence[] = {
1070   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reserved },
1071   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_aoc },
1072   { 0, 0, 0, NULL }
1073 };
1074
1075 static int
1076 dissect_camel_PBSGSNCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1077   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1078                                    PBSGSNCapabilities_sequence, hf_index, ett_camel_PBSGSNCapabilities);
1079
1080   return offset;
1081 }
1082
1083
1084
1085 static int
1086 dissect_camel_OCTET_STRING_SIZE_0_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1087   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1088                                        NULL);
1089
1090   return offset;
1091 }
1092 static int dissect_bilateralPart(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1093   return dissect_camel_OCTET_STRING_SIZE_0_3(FALSE, tvb, offset, pinfo, tree, hf_camel_bilateralPart);
1094 }
1095
1096
1097 static const ber_sequence_t PBIPSSPCapabilities_sequence[] = {
1098   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_standardPartEnd },
1099   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reserved },
1100   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_genOfVoiceAnn },
1101   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_voiceInfo2 },
1102   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_voiceInfo1 },
1103   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_voiceBack1 },
1104   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_iPRoutAdd },
1105   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_bilateralPart },
1106   { 0, 0, 0, NULL }
1107 };
1108
1109 static int
1110 dissect_camel_PBIPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1111   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1112                                    PBIPSSPCapabilities_sequence, hf_index, ett_camel_PBIPSSPCapabilities);
1113
1114   return offset;
1115 }
1116
1117
1118
1119 static int
1120 dissect_camel_INTEGER_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1121   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1122                                   NULL);
1123
1124   return offset;
1125 }
1126 static int dissect_extension(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1127   return dissect_camel_INTEGER_1(FALSE, tvb, offset, pinfo, tree, hf_camel_extension);
1128 }
1129 static int dissect_o1ext(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1130   return dissect_camel_INTEGER_1(FALSE, tvb, offset, pinfo, tree, hf_camel_o1ext);
1131 }
1132 static int dissect_o2ext(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1133   return dissect_camel_INTEGER_1(FALSE, tvb, offset, pinfo, tree, hf_camel_o2ext);
1134 }
1135
1136
1137
1138 static int
1139 dissect_camel_OCTET_STRING_SIZE_0_19(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1140   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1141                                        NULL);
1142
1143   return offset;
1144 }
1145 static int dissect_digits1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1146   return dissect_camel_OCTET_STRING_SIZE_0_19(FALSE, tvb, offset, pinfo, tree, hf_camel_digits1);
1147 }
1148
1149
1150 static const ber_sequence_t PBAddressString_sequence[] = {
1151   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_extension },
1152   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1153   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1154   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits1 },
1155   { 0, 0, 0, NULL }
1156 };
1157
1158 static int
1159 dissect_camel_PBAddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1160   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1161                                    PBAddressString_sequence, hf_index, ett_camel_PBAddressString);
1162
1163   return offset;
1164 }
1165
1166
1167
1168 static int
1169 dissect_camel_OCTET_STRING_SIZE_0_8(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1170   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1171                                        NULL);
1172
1173   return offset;
1174 }
1175 static int dissect_digits2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1176   return dissect_camel_OCTET_STRING_SIZE_0_8(FALSE, tvb, offset, pinfo, tree, hf_camel_digits2);
1177 }
1178 static int dissect_digits4(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1179   return dissect_camel_OCTET_STRING_SIZE_0_8(FALSE, tvb, offset, pinfo, tree, hf_camel_digits4);
1180 }
1181 static int dissect_digits6(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1182   return dissect_camel_OCTET_STRING_SIZE_0_8(FALSE, tvb, offset, pinfo, tree, hf_camel_digits6);
1183 }
1184 static int dissect_digits7(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1185   return dissect_camel_OCTET_STRING_SIZE_0_8(FALSE, tvb, offset, pinfo, tree, hf_camel_digits7);
1186 }
1187
1188
1189 static const ber_sequence_t PBISDNAddressString_sequence[] = {
1190   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_extension },
1191   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1192   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1193   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits2 },
1194   { 0, 0, 0, NULL }
1195 };
1196
1197 static int
1198 dissect_camel_PBISDNAddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1199   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1200                                    PBISDNAddressString_sequence, hf_index, ett_camel_PBISDNAddressString);
1201
1202   return offset;
1203 }
1204
1205
1206
1207 static int
1208 dissect_camel_OCTET_STRING_SIZE_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1209   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1210                                        NULL);
1211
1212   return offset;
1213 }
1214 static int dissect_degreesOfLatitude(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1215   return dissect_camel_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_camel_degreesOfLatitude);
1216 }
1217 static int dissect_degreesOfLongitude(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1218   return dissect_camel_OCTET_STRING_SIZE_3(FALSE, tvb, offset, pinfo, tree, hf_camel_degreesOfLongitude);
1219 }
1220
1221
1222
1223 static int
1224 dissect_camel_OCTET_STRING_SIZE_1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1225   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1226                                        NULL);
1227
1228   return offset;
1229 }
1230 static int dissect_uncertaintyCode(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1231   return dissect_camel_OCTET_STRING_SIZE_1(FALSE, tvb, offset, pinfo, tree, hf_camel_uncertaintyCode);
1232 }
1233 static int dissect_conferenceTreatmentIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1234   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_conferenceTreatmentIndicator);
1235 }
1236 static int dissect_callCompletionTreatmentIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1237   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_callCompletionTreatmentIndicator);
1238 }
1239 static int dissect_pDPTypeOrganization_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1240   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPTypeOrganization);
1241 }
1242 static int dissect_pDPTypeNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1243   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPTypeNumber);
1244 }
1245 static int dissect_callDiversionTreatmentIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1246   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_callDiversionTreatmentIndicator);
1247 }
1248 static int dissect_callingPartyRestrictionIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1249   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartyRestrictionIndicator);
1250 }
1251 static int dissect_holdTreatmentIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1252   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_holdTreatmentIndicator);
1253 }
1254 static int dissect_cwTreatmentIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1255   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_cwTreatmentIndicator);
1256 }
1257 static int dissect_ectTreatmentIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1258   return dissect_camel_OCTET_STRING_SIZE_1(TRUE, tvb, offset, pinfo, tree, hf_camel_ectTreatmentIndicator);
1259 }
1260
1261
1262 static const ber_sequence_t PBGeographicalInformation_sequence[] = {
1263   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_typeOfShape },
1264   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_spare3 },
1265   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_degreesOfLatitude },
1266   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_degreesOfLongitude },
1267   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_uncertaintyCode },
1268   { 0, 0, 0, NULL }
1269 };
1270
1271 static int
1272 dissect_camel_PBGeographicalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1273   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1274                                    PBGeographicalInformation_sequence, hf_index, ett_camel_PBGeographicalInformation);
1275
1276   return offset;
1277 }
1278
1279
1280
1281 static int
1282 dissect_camel_INTEGER_4_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1283   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1284                                   NULL);
1285
1286   return offset;
1287 }
1288 static int dissect_addressLength(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1289   return dissect_camel_INTEGER_4_16(FALSE, tvb, offset, pinfo, tree, hf_camel_addressLength);
1290 }
1291
1292
1293
1294 static int
1295 dissect_camel_OCTET_STRING_SIZE_4_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1296   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1297                                        NULL);
1298
1299   return offset;
1300 }
1301 static int dissect_address(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1302   return dissect_camel_OCTET_STRING_SIZE_4_16(FALSE, tvb, offset, pinfo, tree, hf_camel_address);
1303 }
1304
1305
1306 static const ber_sequence_t PBGSNAddress_sequence[] = {
1307   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_typeOfAddress },
1308   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_addressLength },
1309   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_address },
1310   { 0, 0, 0, NULL }
1311 };
1312
1313 static int
1314 dissect_camel_PBGSNAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1315   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1316                                    PBGSNAddress_sequence, hf_index, ett_camel_PBGSNAddress);
1317
1318   return offset;
1319 }
1320
1321
1322
1323 static int
1324 dissect_camel_INTEGER_0(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1325   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1326                                   NULL);
1327
1328   return offset;
1329 }
1330 static int dissect_spare4(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1331   return dissect_camel_INTEGER_0(FALSE, tvb, offset, pinfo, tree, hf_camel_spare4);
1332 }
1333 static int dissect_spare2(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1334   return dissect_camel_INTEGER_0(FALSE, tvb, offset, pinfo, tree, hf_camel_spare2);
1335 }
1336 static int dissect_spare5(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1337   return dissect_camel_INTEGER_0(FALSE, tvb, offset, pinfo, tree, hf_camel_spare5);
1338 }
1339 static int dissect_spare6(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1340   return dissect_camel_INTEGER_0(FALSE, tvb, offset, pinfo, tree, hf_camel_spare6);
1341 }
1342 static int dissect_spare77(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1343   return dissect_camel_INTEGER_0(FALSE, tvb, offset, pinfo, tree, hf_camel_spare77);
1344 }
1345 static int dissect_foo(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1346   return dissect_camel_INTEGER_0(FALSE, tvb, offset, pinfo, tree, hf_camel_foo);
1347 }
1348
1349
1350 static const ber_sequence_t PBRedirectionInformation_sequence[] = {
1351   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_originalReasons },
1352   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_spare4 },
1353   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_indicator },
1354   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_reason },
1355   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_spare2 },
1356   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_counter },
1357   { 0, 0, 0, NULL }
1358 };
1359
1360 static int
1361 dissect_camel_PBRedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1362   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1363                                    PBRedirectionInformation_sequence, hf_index, ett_camel_PBRedirectionInformation);
1364
1365   return offset;
1366 }
1367
1368
1369
1370 static int
1371 dissect_camel_OCTET_STRING_SIZE_0_16(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1372   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1373                                        NULL);
1374
1375   return offset;
1376 }
1377 static int dissect_digits3(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1378   return dissect_camel_OCTET_STRING_SIZE_0_16(FALSE, tvb, offset, pinfo, tree, hf_camel_digits3);
1379 }
1380
1381
1382 static const ber_sequence_t PBCalledPartyNumber_sequence[] = {
1383   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_oddEven },
1384   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1385   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_innInd },
1386   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1387   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_spare5 },
1388   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits3 },
1389   { 0, 0, 0, NULL }
1390 };
1391
1392 static int
1393 dissect_camel_PBCalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1394   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1395                                    PBCalledPartyNumber_sequence, hf_index, ett_camel_PBCalledPartyNumber);
1396
1397   return offset;
1398 }
1399
1400
1401 static const ber_sequence_t PBCallingPartyNumber_sequence[] = {
1402   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_oddEven },
1403   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1404   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_niInd },
1405   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1406   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentInd },
1407   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_screening },
1408   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits4 },
1409   { 0, 0, 0, NULL }
1410 };
1411
1412 static int
1413 dissect_camel_PBCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1414   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1415                                    PBCallingPartyNumber_sequence, hf_index, ett_camel_PBCallingPartyNumber);
1416
1417   return offset;
1418 }
1419
1420
1421
1422 static int
1423 dissect_camel_OCTET_STRING_SIZE_1_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1424   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1425                                        NULL);
1426
1427   return offset;
1428 }
1429 static int dissect_digits5(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1430   return dissect_camel_OCTET_STRING_SIZE_1_10(FALSE, tvb, offset, pinfo, tree, hf_camel_digits5);
1431 }
1432
1433
1434 static const ber_sequence_t PBRedirectingNumber_sequence[] = {
1435   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_oddEven },
1436   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1437   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_innInd },
1438   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1439   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_spare6 },
1440   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits5 },
1441   { 0, 0, 0, NULL }
1442 };
1443
1444 static int
1445 dissect_camel_PBRedirectingNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1446   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1447                                    PBRedirectingNumber_sequence, hf_index, ett_camel_PBRedirectingNumber);
1448
1449   return offset;
1450 }
1451
1452
1453
1454 static int
1455 dissect_camel_OCTET_STRING_SIZE_0_30(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1456   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1457                                        NULL);
1458
1459   return offset;
1460 }
1461 static int dissect_diagnostics(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1462   return dissect_camel_OCTET_STRING_SIZE_0_30(FALSE, tvb, offset, pinfo, tree, hf_camel_diagnostics);
1463 }
1464
1465
1466 static const ber_sequence_t PBCause_sequence[] = {
1467   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_o1ext },
1468   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_codingStandard },
1469   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_spare77 },
1470   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_location },
1471   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_o2ext },
1472   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_causeValue },
1473   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_diagnostics },
1474   { 0, 0, 0, NULL }
1475 };
1476
1477 static int
1478 dissect_camel_PBCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1479   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1480                                    PBCause_sequence, hf_index, ett_camel_PBCause);
1481
1482   return offset;
1483 }
1484
1485
1486 static const ber_sequence_t PBGenericNumber_sequence[] = {
1487   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberQualifierIndicator },
1488   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_oddEven },
1489   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1490   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_niInd },
1491   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1492   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentInd },
1493   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_screening },
1494   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits6 },
1495   { 0, 0, 0, NULL }
1496 };
1497
1498 static int
1499 dissect_camel_PBGenericNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1500   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1501                                    PBGenericNumber_sequence, hf_index, ett_camel_PBGenericNumber);
1502
1503   return offset;
1504 }
1505
1506
1507 static const ber_sequence_t PBLocationNumber_sequence[] = {
1508   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_oddEven },
1509   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_natureOfAddressIndicator },
1510   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_innInd },
1511   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1512   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_presentInd },
1513   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_screening },
1514   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits7 },
1515   { 0, 0, 0, NULL }
1516 };
1517
1518 static int
1519 dissect_camel_PBLocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1520   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1521                                    PBLocationNumber_sequence, hf_index, ett_camel_PBLocationNumber);
1522
1523   return offset;
1524 }
1525
1526
1527 static const value_string camel_T_typeOfNumber_vals[] = {
1528   {   0, "unknown" },
1529   {   1, "international" },
1530   {   2, "national" },
1531   {   3, "networkSpecific" },
1532   {   4, "dedicatedAccess" },
1533   {   5, "reserved5" },
1534   {   6, "reserved6" },
1535   {   7, "reservedExt" },
1536   { 0, NULL }
1537 };
1538
1539
1540 static int
1541 dissect_camel_T_typeOfNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1542   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1543                                   NULL);
1544
1545   return offset;
1546 }
1547 static int dissect_typeOfNumber(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1548   return dissect_camel_T_typeOfNumber(FALSE, tvb, offset, pinfo, tree, hf_camel_typeOfNumber);
1549 }
1550
1551
1552
1553 static int
1554 dissect_camel_OCTET_STRING_SIZE_0_40(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1555   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1556                                        NULL);
1557
1558   return offset;
1559 }
1560 static int dissect_digits8(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1561   return dissect_camel_OCTET_STRING_SIZE_0_40(FALSE, tvb, offset, pinfo, tree, hf_camel_digits8);
1562 }
1563
1564
1565 static const ber_sequence_t PBCalledPartyBCDNumber_sequence[] = {
1566   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ext },
1567   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_typeOfNumber },
1568   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberingPlanInd },
1569   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_digits8 },
1570   { 0, 0, 0, NULL }
1571 };
1572
1573 static int
1574 dissect_camel_PBCalledPartyBCDNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1575   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1576                                    PBCalledPartyBCDNumber_sequence, hf_index, ett_camel_PBCalledPartyBCDNumber);
1577
1578   return offset;
1579 }
1580
1581
1582
1583 static int
1584 dissect_camel_AccessPointName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1585 #line 323 "camel.cnf"
1586
1587  tvbuff_t       *parameter_tvb;
1588  proto_item *item;
1589  proto_tree *subtree;
1590
1591   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1592                                        &parameter_tvb);
1593
1594
1595  if (!parameter_tvb)
1596         return offset;
1597  item = get_ber_last_created_item();
1598  subtree = proto_item_add_subtree(item, ett_camel_AccessPointName);
1599  de_sm_apn(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0);
1600
1601
1602
1603
1604   return offset;
1605 }
1606 static int dissect_accessPointName_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1607   return dissect_camel_AccessPointName(TRUE, tvb, offset, pinfo, tree, hf_camel_accessPointName);
1608 }
1609
1610
1611
1612 static int
1613 dissect_camel_INTEGER_1_864000(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1614   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1615                                   NULL);
1616
1617   return offset;
1618 }
1619 static int dissect_maxCallPeriodDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1620   return dissect_camel_INTEGER_1_864000(TRUE, tvb, offset, pinfo, tree, hf_camel_maxCallPeriodDuration);
1621 }
1622 static int dissect_tttariffSwitchInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1623   return dissect_camel_INTEGER_1_864000(TRUE, tvb, offset, pinfo, tree, hf_camel_tttariffSwitchInterval);
1624 }
1625
1626
1627
1628 static int
1629 dissect_camel_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1630   offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1631
1632   return offset;
1633 }
1634 static int dissect_releaseIfdurationExceeded_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1635   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseIfdurationExceeded);
1636 }
1637 static int dissect_actone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1638   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_actone);
1639 }
1640 static int dissect_tone(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1641   return dissect_camel_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_camel_tone);
1642 }
1643 static int dissect_legActive_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1644   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_legActive);
1645 }
1646 static int dissect_interruptableAnnInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1647   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_interruptableAnnInd);
1648 }
1649 static int dissect_voiceInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1650   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_voiceInformation);
1651 }
1652 static int dissect_voiceBack_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1653   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_voiceBack);
1654 }
1655 static int dissect_disconnectFromIPForbidden_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1656   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_disconnectFromIPForbidden);
1657 }
1658 static int dissect_requestAnnouncementComplete_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1659   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_requestAnnouncementComplete);
1660 }
1661 static int dissect_active_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1662   return dissect_camel_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_camel_active);
1663 }
1664
1665
1666
1667 static int
1668 dissect_camel_INTEGER_1_86400(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1669   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1670                                   NULL);
1671
1672   return offset;
1673 }
1674 static int dissect_tariffSwitchInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1675   return dissect_camel_INTEGER_1_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_tariffSwitchInterval);
1676 }
1677 static int dissect_maxElapsedTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1678   return dissect_camel_INTEGER_1_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_maxElapsedTime);
1679 }
1680
1681
1682
1683 static int
1684 dissect_camel_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1685   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
1686
1687   return offset;
1688 }
1689 static int dissect_global(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1690   return dissect_camel_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_camel_global);
1691 }
1692
1693
1694 static const value_string camel_Code_vals[] = {
1695   {   0, "local" },
1696   {   1, "global" },
1697   { 0, NULL }
1698 };
1699
1700 static const ber_choice_t Code_choice[] = {
1701   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_local },
1702   {   1, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_global },
1703   { 0, 0, 0, 0, NULL }
1704 };
1705
1706 static int
1707 dissect_camel_Code(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1708   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1709                                  Code_choice, hf_index, ett_camel_Code,
1710                                  NULL);
1711
1712   return offset;
1713 }
1714
1715
1716
1717 static int
1718 dissect_camel_SupportedExtensionsid(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1719   offset = dissect_camel_Code(implicit_tag, tvb, offset, pinfo, tree, hf_index);
1720
1721   return offset;
1722 }
1723 static int dissect_type(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1724   return dissect_camel_SupportedExtensionsid(FALSE, tvb, offset, pinfo, tree, hf_camel_type);
1725 }
1726
1727
1728 static const value_string camel_CriticalityType_vals[] = {
1729   {   0, "ignore" },
1730   {   1, "abort" },
1731   { 0, NULL }
1732 };
1733
1734
1735 static int
1736 dissect_camel_CriticalityType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1737   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1738                                   NULL);
1739
1740   return offset;
1741 }
1742 static int dissect_criticality(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1743   return dissect_camel_CriticalityType(FALSE, tvb, offset, pinfo, tree, hf_camel_criticality);
1744 }
1745
1746
1747
1748 static int
1749 dissect_camel_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1750   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
1751
1752   return offset;
1753 }
1754 static int dissect_automaticRearm_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1755   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_automaticRearm);
1756 }
1757 static int dissect_callLegReleasedAtTcpExpiry_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1758   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_callLegReleasedAtTcpExpiry);
1759 }
1760 static int dissect_inter_SystemHandOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1761   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOver);
1762 }
1763 static int dissect_inter_PLMNHandOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1764   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_PLMNHandOver);
1765 }
1766 static int dissect_inter_MSCHandOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1767   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_MSCHandOver);
1768 }
1769 static int dissect_or_Call_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1770   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_or_Call);
1771 }
1772 static int dissect_forwardedCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1773   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_forwardedCall);
1774 }
1775 static int dissect_callForwarded_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1776   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_callForwarded);
1777 }
1778 static int dissect_routeNotPermitted_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1779   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_routeNotPermitted);
1780 }
1781 static int dissect_routeingAreaUpdate_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1782   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_routeingAreaUpdate);
1783 }
1784 static int dissect_secondaryPDPContext_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1785   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_secondaryPDPContext);
1786 }
1787 static int dissect_saiPresent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1788   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_saiPresent);
1789 }
1790 static int dissect_inter_SystemHandOverToUMTS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1791   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOverToUMTS);
1792 }
1793 static int dissect_inter_SystemHandOverToGSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1794   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_inter_SystemHandOverToGSM);
1795 }
1796 static int dissect_nonCUGCall_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1797   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_nonCUGCall);
1798 }
1799 static int dissect_firstExtensionExtensionType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1800   return dissect_camel_NULL(FALSE, tvb, offset, pinfo, tree, hf_camel_firstExtensionExtensionType);
1801 }
1802 static int dissect_allRequests_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1803   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_allRequests);
1804 }
1805 static int dissect_assumedIdle_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1806   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_assumedIdle);
1807 }
1808 static int dissect_camelBusy_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1809   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_camelBusy);
1810 }
1811 static int dissect_notProvidedFromVLR_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1812   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_notProvidedFromVLR);
1813 }
1814 static int dissect_enhancedDialledServicesAllowed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1815   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_enhancedDialledServicesAllowed);
1816 }
1817 static int dissect_suppress_T_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1818   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_T_CSI);
1819 }
1820 static int dissect_cug_OutgoingAccess_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1821   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_OutgoingAccess);
1822 }
1823 static int dissect_bor_InterrogationRequested_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1824   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_bor_InterrogationRequested);
1825 }
1826 static int dissect_none_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1827   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_none);
1828 }
1829 static int dissect_suppress_O_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1830   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_O_CSI);
1831 }
1832 static int dissect_suppress_D_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1833   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_D_CSI);
1834 }
1835 static int dissect_suppress_N_CSI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1836   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppress_N_CSI);
1837 }
1838 static int dissect_suppressOutgoingCallBarring_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1839   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_suppressOutgoingCallBarring);
1840 }
1841 static int dissect_gsm_ForwardingPending_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1842   return dissect_camel_NULL(TRUE, tvb, offset, pinfo, tree, hf_camel_gsm_ForwardingPending);
1843 }
1844
1845
1846 static const value_string camel_SupportedExtensionsExtensionType_vals[] = {
1847   {   0, "firstExtensionExtensionType" },
1848   { 0, NULL }
1849 };
1850
1851 static const ber_choice_t SupportedExtensionsExtensionType_choice[] = {
1852   {   0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_firstExtensionExtensionType },
1853   { 0, 0, 0, 0, NULL }
1854 };
1855
1856 static int
1857 dissect_camel_SupportedExtensionsExtensionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1858   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1859                                  SupportedExtensionsExtensionType_choice, hf_index, ett_camel_SupportedExtensionsExtensionType,
1860                                  NULL);
1861
1862   return offset;
1863 }
1864 static int dissect_value_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1865   return dissect_camel_SupportedExtensionsExtensionType(TRUE, tvb, offset, pinfo, tree, hf_camel_value);
1866 }
1867
1868
1869 static const ber_sequence_t ExtensionField_sequence[] = {
1870   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_type },
1871   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_criticality },
1872   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_value_impl },
1873   { 0, 0, 0, NULL }
1874 };
1875
1876 static int
1877 dissect_camel_ExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1878   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1879                                    ExtensionField_sequence, hf_index, ett_camel_ExtensionField);
1880
1881   return offset;
1882 }
1883 static int dissect_Extensions_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1884   return dissect_camel_ExtensionField(FALSE, tvb, offset, pinfo, tree, hf_camel_Extensions_item);
1885 }
1886 static int dissect_ExtensionsArray_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1887   return dissect_camel_ExtensionField(FALSE, tvb, offset, pinfo, tree, hf_camel_ExtensionsArray_item);
1888 }
1889
1890
1891 static const ber_sequence_t ExtensionsArray_sequence_of[1] = {
1892   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ExtensionsArray_item },
1893 };
1894
1895 static int
1896 dissect_camel_ExtensionsArray(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1897   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
1898                                       ExtensionsArray_sequence_of, hf_index, ett_camel_ExtensionsArray);
1899
1900   return offset;
1901 }
1902 static int dissect_extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1903   return dissect_camel_ExtensionsArray(TRUE, tvb, offset, pinfo, tree, hf_camel_extensions);
1904 }
1905
1906
1907 static const ber_sequence_t T_actimeDurationCharging_sequence[] = {
1908   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_maxCallPeriodDuration_impl },
1909   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseIfdurationExceeded_impl },
1910   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl },
1911   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_actone_impl },
1912   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
1913   { 0, 0, 0, NULL }
1914 };
1915
1916 static int
1917 dissect_camel_T_actimeDurationCharging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1918   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
1919                                    T_actimeDurationCharging_sequence, hf_index, ett_camel_T_actimeDurationCharging);
1920
1921   return offset;
1922 }
1923 static int dissect_actimeDurationCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1924   return dissect_camel_T_actimeDurationCharging(TRUE, tvb, offset, pinfo, tree, hf_camel_actimeDurationCharging);
1925 }
1926
1927
1928 static const value_string camel_AChBillingChargingCharacteristics_vals[] = {
1929   {   0, "actimeDurationCharging" },
1930   { 0, NULL }
1931 };
1932
1933 static const ber_choice_t AChBillingChargingCharacteristics_choice[] = {
1934   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_actimeDurationCharging_impl },
1935   { 0, 0, 0, 0, NULL }
1936 };
1937
1938 static int
1939 dissect_camel_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1940   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1941                                  AChBillingChargingCharacteristics_choice, hf_index, ett_camel_AChBillingChargingCharacteristics,
1942                                  NULL);
1943
1944   return offset;
1945 }
1946 static int dissect_aChBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1947   return dissect_camel_AChBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_camel_aChBillingChargingCharacteristics);
1948 }
1949
1950
1951
1952 static int
1953 dissect_camel_LegType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1954   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
1955                                        NULL);
1956
1957   return offset;
1958 }
1959 static int dissect_receivingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1960   return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_receivingSideID);
1961 }
1962 static int dissect_sendingSideID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1963   return dissect_camel_LegType(TRUE, tvb, offset, pinfo, tree, hf_camel_sendingSideID);
1964 }
1965
1966
1967 static const value_string camel_LegID_vals[] = {
1968   {   0, "sendingSideID" },
1969   {   1, "receivingSideID" },
1970   { 0, NULL }
1971 };
1972
1973 static const ber_choice_t LegID_choice[] = {
1974   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl },
1975   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl },
1976   { 0, 0, 0, 0, NULL }
1977 };
1978
1979 static int
1980 dissect_camel_LegID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
1981   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
1982                                  LegID_choice, hf_index, ett_camel_LegID,
1983                                  NULL);
1984
1985   return offset;
1986 }
1987 static int dissect_legID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1988   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID);
1989 }
1990 static int dissect_legID6_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1991   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID6);
1992 }
1993 static int dissect_legToBeCreated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1994   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeCreated);
1995 }
1996 static int dissect_legIDToMove_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
1997   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legIDToMove);
1998 }
1999 static int dissect_legToBeReleased_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2000   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeReleased);
2001 }
2002 static int dissect_legToBeSplit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2003   return dissect_camel_LegID(TRUE, tvb, offset, pinfo, tree, hf_camel_legToBeSplit);
2004 }
2005
2006
2007
2008 static int
2009 dissect_camel_CallSegmentID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2010   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2011                                   NULL);
2012
2013   return offset;
2014 }
2015 static int dissect_srfConnection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2016   return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_srfConnection);
2017 }
2018 static int dissect_callSegmentID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2019   return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentID);
2020 }
2021 static int dissect_newCallSegment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2022   return dissect_camel_CallSegmentID(TRUE, tvb, offset, pinfo, tree, hf_camel_newCallSegment);
2023 }
2024
2025
2026 static const value_string camel_AChChargingAddress_vals[] = {
2027   {   2, "legID" },
2028   {  50, "srfConnection" },
2029   { 0, NULL }
2030 };
2031
2032 static const ber_choice_t AChChargingAddress_choice[] = {
2033   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_legID_impl },
2034   {  50, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_srfConnection_impl },
2035   { 0, 0, 0, 0, NULL }
2036 };
2037
2038 static int
2039 dissect_camel_AChChargingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2040   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2041                                  AChChargingAddress_choice, hf_index, ett_camel_AChChargingAddress,
2042                                  NULL);
2043
2044   return offset;
2045 }
2046 static int dissect_aChChargingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2047   return dissect_camel_AChChargingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_aChChargingAddress);
2048 }
2049
2050
2051
2052 static int
2053 dissect_camel_Digits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2054   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2055                                        NULL);
2056
2057   return offset;
2058 }
2059 static int dissect_calledAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2060   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_calledAddressValue);
2061 }
2062 static int dissect_callingAddressValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2063   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_callingAddressValue);
2064 }
2065 static int dissect_dTMFDigitsCompleted_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2066   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_dTMFDigitsCompleted);
2067 }
2068 static int dissect_dTMFDigitsTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2069   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_dTMFDigitsTimeOut);
2070 }
2071 static int dissect_number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2072   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_number);
2073 }
2074 static int dissect_digitsResponse_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2075   return dissect_camel_Digits(TRUE, tvb, offset, pinfo, tree, hf_camel_digitsResponse);
2076 }
2077
2078
2079
2080 static int
2081 dissect_camel_AdditionalCallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2082   offset = dissect_camel_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2083
2084   return offset;
2085 }
2086 static int dissect_additionalCallingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2087   return dissect_camel_AdditionalCallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_additionalCallingPartyNumber);
2088 }
2089
2090
2091
2092 static int
2093 dissect_camel_AlertingPattern(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2094   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2095                                        NULL);
2096
2097   return offset;
2098 }
2099 static int dissect_alertingPattern_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2100   return dissect_camel_AlertingPattern(TRUE, tvb, offset, pinfo, tree, hf_camel_alertingPattern);
2101 }
2102
2103
2104
2105 static int
2106 dissect_camel_INTEGER_0_8191(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2107   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2108                                   NULL);
2109
2110   return offset;
2111 }
2112 static int dissect_e1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2113   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e1);
2114 }
2115 static int dissect_e2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2116   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e2);
2117 }
2118 static int dissect_e3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2119   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e3);
2120 }
2121 static int dissect_e4_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2122   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e4);
2123 }
2124 static int dissect_e5_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2125   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e5);
2126 }
2127 static int dissect_e6_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2128   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e6);
2129 }
2130 static int dissect_e7_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2131   return dissect_camel_INTEGER_0_8191(TRUE, tvb, offset, pinfo, tree, hf_camel_e7);
2132 }
2133
2134
2135 static const ber_sequence_t CAI_Gsm0224_sequence[] = {
2136   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e1_impl },
2137   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e2_impl },
2138   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e3_impl },
2139   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e4_impl },
2140   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e5_impl },
2141   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e6_impl },
2142   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_e7_impl },
2143   { 0, 0, 0, NULL }
2144 };
2145
2146 static int
2147 dissect_camel_CAI_Gsm0224(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2148   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2149                                    CAI_Gsm0224_sequence, hf_index, ett_camel_CAI_Gsm0224);
2150
2151   return offset;
2152 }
2153 static int dissect_aOCInitial_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2154   return dissect_camel_CAI_Gsm0224(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCInitial);
2155 }
2156 static int dissect_cAI_GSM0224_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2157   return dissect_camel_CAI_Gsm0224(TRUE, tvb, offset, pinfo, tree, hf_camel_cAI_GSM0224);
2158 }
2159
2160
2161 static const ber_sequence_t AOCSubsequent_sequence[] = {
2162   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cAI_GSM0224_impl },
2163   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl },
2164   { 0, 0, 0, NULL }
2165 };
2166
2167 static int
2168 dissect_camel_AOCSubsequent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2169   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2170                                    AOCSubsequent_sequence, hf_index, ett_camel_AOCSubsequent);
2171
2172   return offset;
2173 }
2174 static int dissect_aOCSubsequent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2175   return dissect_camel_AOCSubsequent(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCSubsequent);
2176 }
2177 static int dissect_aOCAfterAnswer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2178   return dissect_camel_AOCSubsequent(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCAfterAnswer);
2179 }
2180
2181
2182 static const ber_sequence_t AOCBeforeAnswer_sequence[] = {
2183   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aOCInitial_impl },
2184   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aOCSubsequent_impl },
2185   { 0, 0, 0, NULL }
2186 };
2187
2188 static int
2189 dissect_camel_AOCBeforeAnswer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2190   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2191                                    AOCBeforeAnswer_sequence, hf_index, ett_camel_AOCBeforeAnswer);
2192
2193   return offset;
2194 }
2195 static int dissect_aOCBeforeAnswer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2196   return dissect_camel_AOCBeforeAnswer(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCBeforeAnswer);
2197 }
2198
2199
2200 static const ber_sequence_t AOCGprs_sequence[] = {
2201   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aOCInitial_impl },
2202   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_aOCSubsequent_impl },
2203   { 0, 0, 0, NULL }
2204 };
2205
2206 static int
2207 dissect_camel_AOCGprs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2208   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2209                                    AOCGprs_sequence, hf_index, ett_camel_AOCGprs);
2210
2211   return offset;
2212 }
2213 static int dissect_aOCGPRS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2214   return dissect_camel_AOCGprs(TRUE, tvb, offset, pinfo, tree, hf_camel_aOCGPRS);
2215 }
2216
2217
2218 static const value_string camel_AppendFreeFormatData_vals[] = {
2219   {   0, "overwrite" },
2220   {   1, "append" },
2221   { 0, NULL }
2222 };
2223
2224
2225 static int
2226 dissect_camel_AppendFreeFormatData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2227   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2228                                   NULL);
2229
2230   return offset;
2231 }
2232 static int dissect_appendFreeFormatData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2233   return dissect_camel_AppendFreeFormatData(TRUE, tvb, offset, pinfo, tree, hf_camel_appendFreeFormatData);
2234 }
2235
2236
2237
2238 static int
2239 dissect_camel_ApplicationTimer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2240   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2241                                   NULL);
2242
2243   return offset;
2244 }
2245 static int dissect_applicationTimer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2246   return dissect_camel_ApplicationTimer(TRUE, tvb, offset, pinfo, tree, hf_camel_applicationTimer);
2247 }
2248
2249
2250
2251 static int
2252 dissect_camel_AssistingSSPIPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2253   offset = dissect_camel_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2254
2255   return offset;
2256 }
2257 static int dissect_assistingSSPIPRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2258   return dissect_camel_AssistingSSPIPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_assistingSSPIPRoutingAddress);
2259 }
2260
2261
2262
2263 static int
2264 dissect_camel_INTEGER_1_1200(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2265   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2266                                   NULL);
2267
2268   return offset;
2269 }
2270 static int dissect_burstInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2271   return dissect_camel_INTEGER_1_1200(TRUE, tvb, offset, pinfo, tree, hf_camel_burstInterval);
2272 }
2273 static int dissect_warningPeriod_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2274   return dissect_camel_INTEGER_1_1200(TRUE, tvb, offset, pinfo, tree, hf_camel_warningPeriod);
2275 }
2276
2277
2278
2279 static int
2280 dissect_camel_INTEGER_1_3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2281   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2282                                   NULL);
2283
2284   return offset;
2285 }
2286 static int dissect_numberOfBursts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2287   return dissect_camel_INTEGER_1_3(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfBursts);
2288 }
2289 static int dissect_numberOfTonesInBurst_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2290   return dissect_camel_INTEGER_1_3(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfTonesInBurst);
2291 }
2292
2293
2294
2295 static int
2296 dissect_camel_INTEGER_1_20(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2297   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2298                                   NULL);
2299
2300   return offset;
2301 }
2302 static int dissect_toneDuration_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2303   return dissect_camel_INTEGER_1_20(TRUE, tvb, offset, pinfo, tree, hf_camel_toneDuration);
2304 }
2305 static int dissect_toneInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2306   return dissect_camel_INTEGER_1_20(TRUE, tvb, offset, pinfo, tree, hf_camel_toneInterval);
2307 }
2308
2309
2310 static const ber_sequence_t Burst_sequence[] = {
2311   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfBursts_impl },
2312   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_burstInterval_impl },
2313   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfTonesInBurst_impl },
2314   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_toneDuration_impl },
2315   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_toneInterval_impl },
2316   { 0, 0, 0, NULL }
2317 };
2318
2319 static int
2320 dissect_camel_Burst(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2321   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2322                                    Burst_sequence, hf_index, ett_camel_Burst);
2323
2324   return offset;
2325 }
2326 static int dissect_bursts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2327   return dissect_camel_Burst(TRUE, tvb, offset, pinfo, tree, hf_camel_bursts);
2328 }
2329
2330
2331 static const ber_sequence_t BurstList_sequence[] = {
2332   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_warningPeriod_impl },
2333   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bursts_impl },
2334   { 0, 0, 0, NULL }
2335 };
2336
2337 static int
2338 dissect_camel_BurstList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2339   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2340                                    BurstList_sequence, hf_index, ett_camel_BurstList);
2341
2342   return offset;
2343 }
2344 static int dissect_burstList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2345   return dissect_camel_BurstList(TRUE, tvb, offset, pinfo, tree, hf_camel_burstList);
2346 }
2347
2348
2349 static const value_string camel_AudibleIndicator_vals[] = {
2350   {   0, "tone" },
2351   {   1, "burstList" },
2352   { 0, NULL }
2353 };
2354
2355 static const ber_choice_t AudibleIndicator_choice[] = {
2356   {   0, BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_tone },
2357   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_burstList_impl },
2358   { 0, 0, 0, 0, NULL }
2359 };
2360
2361 static int
2362 dissect_camel_AudibleIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2363   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2364                                  AudibleIndicator_choice, hf_index, ett_camel_AudibleIndicator,
2365                                  NULL);
2366
2367   return offset;
2368 }
2369 static int dissect_audibleIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2370   return dissect_camel_AudibleIndicator(TRUE, tvb, offset, pinfo, tree, hf_camel_audibleIndicator);
2371 }
2372
2373
2374 static const ber_sequence_t BackwardServiceInteractionInd_sequence[] = {
2375   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_conferenceTreatmentIndicator_impl },
2376   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callCompletionTreatmentIndicator_impl },
2377   { 0, 0, 0, NULL }
2378 };
2379
2380 static int
2381 dissect_camel_BackwardServiceInteractionInd(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2382   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2383                                    BackwardServiceInteractionInd_sequence, hf_index, ett_camel_BackwardServiceInteractionInd);
2384
2385   return offset;
2386 }
2387 static int dissect_backwardServiceInteractionInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2388   return dissect_camel_BackwardServiceInteractionInd(TRUE, tvb, offset, pinfo, tree, hf_camel_backwardServiceInteractionInd);
2389 }
2390
2391
2392
2393 static int
2394 dissect_camel_ServiceKey(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2395   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2396                                   NULL);
2397
2398   return offset;
2399 }
2400 static int dissect_serviceKey_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2401   return dissect_camel_ServiceKey(TRUE, tvb, offset, pinfo, tree, hf_camel_serviceKey);
2402 }
2403
2404
2405 static const ber_sequence_t GapOnService_sequence[] = {
2406   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2407   { 0, 0, 0, NULL }
2408 };
2409
2410 static int
2411 dissect_camel_GapOnService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2412   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2413                                    GapOnService_sequence, hf_index, ett_camel_GapOnService);
2414
2415   return offset;
2416 }
2417 static int dissect_gapOnService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2418   return dissect_camel_GapOnService(TRUE, tvb, offset, pinfo, tree, hf_camel_gapOnService);
2419 }
2420
2421
2422 static const ber_sequence_t T_calledAddressAndService_sequence[] = {
2423   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
2424   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2425   { 0, 0, 0, NULL }
2426 };
2427
2428 static int
2429 dissect_camel_T_calledAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2430   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2431                                    T_calledAddressAndService_sequence, hf_index, ett_camel_T_calledAddressAndService);
2432
2433   return offset;
2434 }
2435 static int dissect_calledAddressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2436   return dissect_camel_T_calledAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_camel_calledAddressAndService);
2437 }
2438
2439
2440 static const ber_sequence_t T_callingAddressAndService_sequence[] = {
2441   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callingAddressValue_impl },
2442   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
2443   { 0, 0, 0, NULL }
2444 };
2445
2446 static int
2447 dissect_camel_T_callingAddressAndService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2448   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2449                                    T_callingAddressAndService_sequence, hf_index, ett_camel_T_callingAddressAndService);
2450
2451   return offset;
2452 }
2453 static int dissect_callingAddressAndService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2454   return dissect_camel_T_callingAddressAndService(TRUE, tvb, offset, pinfo, tree, hf_camel_callingAddressAndService);
2455 }
2456
2457
2458 static const value_string camel_BasicGapCriteria_vals[] = {
2459   {   0, "calledAddressValue" },
2460   {   2, "gapOnService" },
2461   {  29, "calledAddressAndService" },
2462   {  30, "callingAddressAndService" },
2463   { 0, NULL }
2464 };
2465
2466 static const ber_choice_t BasicGapCriteria_choice[] = {
2467   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_calledAddressValue_impl },
2468   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gapOnService_impl },
2469   {  29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_calledAddressAndService_impl },
2470   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_callingAddressAndService_impl },
2471   { 0, 0, 0, 0, NULL }
2472 };
2473
2474 static int
2475 dissect_camel_BasicGapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2476   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2477                                  BasicGapCriteria_choice, hf_index, ett_camel_BasicGapCriteria,
2478                                  NULL);
2479
2480   return offset;
2481 }
2482 static int dissect_basicGapCriteria(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2483   return dissect_camel_BasicGapCriteria(FALSE, tvb, offset, pinfo, tree, hf_camel_basicGapCriteria);
2484 }
2485 static int dissect_basicGapCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2486   return dissect_camel_BasicGapCriteria(TRUE, tvb, offset, pinfo, tree, hf_camel_basicGapCriteria);
2487 }
2488
2489
2490 static const value_string camel_EventTypeBCSM_vals[] = {
2491   {   2, "collectedInfo" },
2492   {   2, "collectedInfo" },
2493   {   3, "analyzedInformation" },
2494   {   4, "routeSelectFailure" },
2495   {   5, "oCalledPartyBusy" },
2496   {   6, "oNoAnswer" },
2497   {   7, "oAnswer" },
2498   {   8, "oMidCall" },
2499   {   9, "oDisconnect" },
2500   {  10, "oAbandon" },
2501   {  12, "termAttemptAuthorized" },
2502   {  13, "tBusy" },
2503   {  14, "tNoAnswer" },
2504   {  15, "tAnswer" },
2505   {  16, "tMidCall" },
2506   {  17, "tDisconnect" },
2507   {  18, "tAbandon" },
2508   {  19, "oTermSeized" },
2509   {  27, "callAccepted" },
2510   {  50, "oChangeOfPosition" },
2511   {  51, "tChangeOfPosition" },
2512   {  52, "oServiceChange" },
2513   {  53, "tServiceChange" },
2514   { 0, NULL }
2515 };
2516
2517
2518 static int
2519 dissect_camel_EventTypeBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2520   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2521                                   NULL);
2522
2523   return offset;
2524 }
2525 static int dissect_eventTypeBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2526   return dissect_camel_EventTypeBCSM(TRUE, tvb, offset, pinfo, tree, hf_camel_eventTypeBCSM);
2527 }
2528
2529
2530 static const value_string camel_MonitorMode_vals[] = {
2531   {   0, "interrupted" },
2532   {   1, "notifyAndContinue" },
2533   {   2, "transparent" },
2534   { 0, NULL }
2535 };
2536
2537
2538 static int
2539 dissect_camel_MonitorMode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2540   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2541                                   NULL);
2542
2543   return offset;
2544 }
2545 static int dissect_monitorMode_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2546   return dissect_camel_MonitorMode(TRUE, tvb, offset, pinfo, tree, hf_camel_monitorMode);
2547 }
2548
2549
2550
2551 static int
2552 dissect_camel_INTEGER_1_30(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2553   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2554                                   NULL);
2555
2556   return offset;
2557 }
2558 static int dissect_minimumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2559   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNbOfDigits);
2560 }
2561 static int dissect_maximumNbOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2562   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNbOfDigits);
2563 }
2564 static int dissect_minimumNumberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2565   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_minimumNumberOfDigits);
2566 }
2567 static int dissect_maximumNumberOfDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2568   return dissect_camel_INTEGER_1_30(TRUE, tvb, offset, pinfo, tree, hf_camel_maximumNumberOfDigits);
2569 }
2570
2571
2572
2573 static int
2574 dissect_camel_OCTET_STRING_SIZE_1_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2575   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2576                                        NULL);
2577
2578   return offset;
2579 }
2580 static int dissect_endOfReplyDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2581   return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_endOfReplyDigit);
2582 }
2583 static int dissect_cancelDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2584   return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_cancelDigit);
2585 }
2586 static int dissect_startDigit_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2587   return dissect_camel_OCTET_STRING_SIZE_1_2(TRUE, tvb, offset, pinfo, tree, hf_camel_startDigit);
2588 }
2589
2590
2591
2592 static int
2593 dissect_camel_INTEGER_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2594   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2595                                   NULL);
2596
2597   return offset;
2598 }
2599 static int dissect_firstDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2600   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_firstDigitTimeOut);
2601 }
2602 static int dissect_interDigitTimeOut_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2603   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeOut);
2604 }
2605 static int dissect_numberOfRepetitions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2606   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_numberOfRepetitions);
2607 }
2608 static int dissect_interDigitTimeout_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2609   return dissect_camel_INTEGER_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_interDigitTimeout);
2610 }
2611
2612
2613 static const ber_sequence_t MidCallControlInfo_sequence[] = {
2614   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNumberOfDigits_impl },
2615   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_maximumNumberOfDigits_impl },
2616   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl },
2617   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cancelDigit_impl },
2618   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startDigit_impl },
2619   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeout_impl },
2620   { 0, 0, 0, NULL }
2621 };
2622
2623 static int
2624 dissect_camel_MidCallControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2625   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2626                                    MidCallControlInfo_sequence, hf_index, ett_camel_MidCallControlInfo);
2627
2628   return offset;
2629 }
2630 static int dissect_midCallControlInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2631   return dissect_camel_MidCallControlInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallControlInfo);
2632 }
2633
2634
2635 static const ber_sequence_t ChangeOfLocationAlt_sequence[] = {
2636   { 0, 0, 0, NULL }
2637 };
2638
2639 static int
2640 dissect_camel_ChangeOfLocationAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2641   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2642                                    ChangeOfLocationAlt_sequence, hf_index, ett_camel_ChangeOfLocationAlt);
2643
2644   return offset;
2645 }
2646 static int dissect_changeOfLocationAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2647   return dissect_camel_ChangeOfLocationAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_changeOfLocationAlt);
2648 }
2649
2650
2651 static const value_string camel_ChangeOfLocation_vals[] = {
2652   {   0, "cellGlobalId" },
2653   {   1, "serviceAreaId" },
2654   {   2, "locationAreaId" },
2655   {   3, "inter-SystemHandOver" },
2656   {   4, "inter-PLMNHandOver" },
2657   {   5, "inter-MSCHandOver" },
2658   {   6, "changeOfLocationAlt" },
2659   { 0, NULL }
2660 };
2661
2662 static const ber_choice_t ChangeOfLocation_choice[] = {
2663   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellGlobalId_impl },
2664   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_serviceAreaId_impl },
2665   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_locationAreaId_impl },
2666   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_inter_SystemHandOver_impl },
2667   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_inter_PLMNHandOver_impl },
2668   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_inter_MSCHandOver_impl },
2669   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_changeOfLocationAlt_impl },
2670   { 0, 0, 0, 0, NULL }
2671 };
2672
2673 static int
2674 dissect_camel_ChangeOfLocation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2675   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2676                                  ChangeOfLocation_choice, hf_index, ett_camel_ChangeOfLocation,
2677                                  NULL);
2678
2679   return offset;
2680 }
2681 static int dissect_ChangeOfPositionControlInfo_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2682   return dissect_camel_ChangeOfLocation(FALSE, tvb, offset, pinfo, tree, hf_camel_ChangeOfPositionControlInfo_item);
2683 }
2684
2685
2686 static const ber_sequence_t ChangeOfPositionControlInfo_sequence_of[1] = {
2687   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ChangeOfPositionControlInfo_item },
2688 };
2689
2690 static int
2691 dissect_camel_ChangeOfPositionControlInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2692   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
2693                                       ChangeOfPositionControlInfo_sequence_of, hf_index, ett_camel_ChangeOfPositionControlInfo);
2694
2695   return offset;
2696 }
2697 static int dissect_changeOfPositionControlInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2698   return dissect_camel_ChangeOfPositionControlInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_changeOfPositionControlInfo);
2699 }
2700
2701
2702 static const ber_sequence_t DpSpecificCriteriaAlt_sequence[] = {
2703   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_changeOfPositionControlInfo_impl },
2704   { 0, 0, 0, NULL }
2705 };
2706
2707 static int
2708 dissect_camel_DpSpecificCriteriaAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2709   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2710                                    DpSpecificCriteriaAlt_sequence, hf_index, ett_camel_DpSpecificCriteriaAlt);
2711
2712   return offset;
2713 }
2714 static int dissect_dpSpecificCriteriaAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2715   return dissect_camel_DpSpecificCriteriaAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificCriteriaAlt);
2716 }
2717
2718
2719 static const value_string camel_DpSpecificCriteria_vals[] = {
2720   {   1, "applicationTimer" },
2721   {   2, "midCallControlInfo" },
2722   {   3, "dpSpecificCriteriaAlt" },
2723   { 0, NULL }
2724 };
2725
2726 static const ber_choice_t DpSpecificCriteria_choice[] = {
2727   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_applicationTimer_impl },
2728   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_midCallControlInfo_impl },
2729   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_dpSpecificCriteriaAlt_impl },
2730   { 0, 0, 0, 0, NULL }
2731 };
2732
2733 static int
2734 dissect_camel_DpSpecificCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2735   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2736                                  DpSpecificCriteria_choice, hf_index, ett_camel_DpSpecificCriteria,
2737                                  NULL);
2738
2739   return offset;
2740 }
2741 static int dissect_dpSpecificCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2742   return dissect_camel_DpSpecificCriteria(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificCriteria);
2743 }
2744
2745
2746 static const ber_sequence_t BCSMEvent_sequence[] = {
2747   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
2748   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
2749   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID6_impl },
2750   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_dpSpecificCriteria_impl },
2751   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_automaticRearm_impl },
2752   { 0, 0, 0, NULL }
2753 };
2754
2755 static int
2756 dissect_camel_BCSMEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2757   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2758                                    BCSMEvent_sequence, hf_index, ett_camel_BCSMEvent);
2759
2760   return offset;
2761 }
2762 static int dissect_BCSMEventArray_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2763   return dissect_camel_BCSMEvent(FALSE, tvb, offset, pinfo, tree, hf_camel_BCSMEventArray_item);
2764 }
2765
2766
2767
2768 static int
2769 dissect_camel_Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2770 #line 101 "camel.cnf"
2771
2772        tvbuff_t *camel_tvb;
2773        guint8 Cause_value;
2774
2775   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2776                                        &camel_tvb);
2777
2778
2779        if (camel_tvb)
2780            dissect_q931_cause_ie(camel_tvb, 0, tvb_length_remaining(camel_tvb,0), tree, hf_camel_cause_indicator, &Cause_value);
2781
2782
2783        return offset;
2784
2785
2786   return offset;
2787 }
2788 static int dissect_cause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2789   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_cause);
2790 }
2791 static int dissect_failureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2792   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_failureCause);
2793 }
2794 static int dissect_busyCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2795   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_busyCause);
2796 }
2797 static int dissect_releaseCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2798   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCause);
2799 }
2800 static int dissect_releaseCauseValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2801   return dissect_camel_Cause(TRUE, tvb, offset, pinfo, tree, hf_camel_releaseCauseValue);
2802 }
2803
2804
2805 static const ber_sequence_t BCSM_Failure_sequence[] = {
2806   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID_impl },
2807   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl },
2808   { 0, 0, 0, NULL }
2809 };
2810
2811 static int
2812 dissect_camel_BCSM_Failure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2813   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
2814                                    BCSM_Failure_sequence, hf_index, ett_camel_BCSM_Failure);
2815
2816   return offset;
2817 }
2818 static int dissect_bCSM_Failure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2819   return dissect_camel_BCSM_Failure(TRUE, tvb, offset, pinfo, tree, hf_camel_bCSM_Failure);
2820 }
2821
2822
2823
2824 static int
2825 dissect_camel_BearerCap(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2826 #line 232 "camel.cnf"
2827
2828  tvbuff_t       *parameter_tvb;
2829
2830   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2831                                        &parameter_tvb);
2832
2833
2834  if (!parameter_tvb)
2835         return offset;
2836
2837  dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_length_remaining(parameter_tvb,0), tree);
2838
2839
2840
2841   return offset;
2842 }
2843 static int dissect_bearerCap_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2844   return dissect_camel_BearerCap(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCap);
2845 }
2846
2847
2848 static const value_string camel_BearerCapability_vals[] = {
2849   {   0, "bearerCap" },
2850   { 0, NULL }
2851 };
2852
2853 static const ber_choice_t BearerCapability_choice[] = {
2854   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bearerCap_impl },
2855   { 0, 0, 0, 0, NULL }
2856 };
2857
2858 static int
2859 dissect_camel_BearerCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2860   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
2861                                  BearerCapability_choice, hf_index, ett_camel_BearerCapability,
2862                                  NULL);
2863
2864   return offset;
2865 }
2866 static int dissect_bearerCapability2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2867   return dissect_camel_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCapability2);
2868 }
2869 static int dissect_bearerCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2870   return dissect_camel_BearerCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_bearerCapability);
2871 }
2872
2873
2874
2875 static int
2876 dissect_camel_ISDN_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2877 #line 60 "camel.cnf"
2878
2879  tvbuff_t       *parameter_tvb;
2880  char           *digit_str;
2881  proto_item *item;
2882  proto_tree *subtree;
2883
2884   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
2885                                        &parameter_tvb);
2886
2887
2888  if (!parameter_tvb)
2889         return offset;
2890  item = get_ber_last_created_item();
2891  subtree = proto_item_add_subtree(item, ett_camel_isdn_address_string);
2892   
2893  proto_tree_add_item(subtree, hf_camel_addr_extension, parameter_tvb, 0,1,FALSE);
2894  
2895  proto_tree_add_item(subtree, hf_camel_addr_natureOfAddressIndicator, parameter_tvb, 0,1,FALSE);
2896  proto_tree_add_item(subtree, hf_camel_addr_numberingPlanInd, parameter_tvb, 0,1,FALSE);
2897  digit_str = unpack_digits(parameter_tvb, 1);
2898
2899  proto_tree_add_string(subtree, hf_camel_addr_digits, parameter_tvb, 1, -1, digit_str);
2900
2901
2902   return offset;
2903 }
2904 static int dissect_sgsn_Number_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2905   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_sgsn_Number);
2906 }
2907 static int dissect_gmscAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2908   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_gmscAddress);
2909 }
2910 static int dissect_gsmSCFAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2911   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_gsmSCFAddress);
2912 }
2913 static int dissect_callingPartysNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2914   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartysNumber);
2915 }
2916 static int dissect_sMSCAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2917   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_sMSCAddress);
2918 }
2919 static int dissect_mSISDN_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2920   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_mSISDN);
2921 }
2922 static int dissect_mscAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2923   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_mscAddress);
2924 }
2925 static int dissect_callingPartyNumberas_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2926   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartyNumberas);
2927 }
2928 static int dissect_sgsnNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2929   return dissect_camel_ISDN_AddressString(TRUE, tvb, offset, pinfo, tree, hf_camel_sgsnNumber);
2930 }
2931
2932
2933
2934 static int
2935 dissect_camel_CalledPartyBCDNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2936   offset = dissect_camel_ISDN_AddressString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
2937
2938   return offset;
2939 }
2940 static int dissect_destinationSubscriberNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2941   return dissect_camel_CalledPartyBCDNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_destinationSubscriberNumber);
2942 }
2943 static int dissect_calledPartyBCDNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2944   return dissect_camel_CalledPartyBCDNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_calledPartyBCDNumber);
2945 }
2946
2947
2948
2949 static int
2950 dissect_camel_CalledPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2951 #line 44 "camel.cnf"
2952
2953
2954  tvbuff_t *isup_tvb;
2955  guint32 len;
2956
2957  len=tvb_length_remaining(tvb,offset);
2958  isup_tvb = tvb_new_subset(tvb, offset,-1 , -1 );
2959  dissect_isup_called_party_number_parameter(isup_tvb, tree, NULL);
2960  offset += len;
2961  
2962
2963
2964   return offset;
2965 }
2966 static int dissect_DestinationRoutingAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2967   return dissect_camel_CalledPartyNumber(FALSE, tvb, offset, pinfo, tree, hf_camel_DestinationRoutingAddress_item);
2968 }
2969 static int dissect_destinationAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2970   return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_destinationAddress);
2971 }
2972 static int dissect_forwardingDestinationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2973   return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_forwardingDestinationNumber);
2974 }
2975 static int dissect_calledPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
2976   return dissect_camel_CalledPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_calledPartyNumber);
2977 }
2978
2979
2980
2981 static int
2982 dissect_camel_CallingPartyNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
2983 #line 27 "camel.cnf"
2984
2985
2986  proto_item* parameter_item;
2987  proto_item* parameter_tree;
2988  tvbuff_t *isup_tvb;
2989  guint32 len;
2990
2991  len=tvb_length_remaining(tvb,offset);
2992  parameter_item = proto_tree_add_item(tree, hf_index, tvb, offset, -1, FALSE);
2993  parameter_tree = proto_item_add_subtree(parameter_item, ett_camelisup_parameter);
2994  isup_tvb = tvb_new_subset(tvb, offset,-1 , -1 );
2995  dissect_isup_calling_party_number_parameter(isup_tvb, parameter_tree, parameter_item);
2996  offset += len;
2997
2998
2999   return offset;
3000 }
3001 static int dissect_callingPartyNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3002   return dissect_camel_CallingPartyNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartyNumber);
3003 }
3004
3005
3006 static const value_string camel_ReceivingSideID_vals[] = {
3007   {   1, "receivingSideID" },
3008   { 0, NULL }
3009 };
3010
3011 static const ber_choice_t ReceivingSideID_choice[] = {
3012   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_receivingSideID_impl },
3013   { 0, 0, 0, 0, NULL }
3014 };
3015
3016 static int
3017 dissect_camel_ReceivingSideID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3018   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3019                                  ReceivingSideID_choice, hf_index, ett_camel_ReceivingSideID,
3020                                  NULL);
3021
3022   return offset;
3023 }
3024 static int dissect_partyToCharge_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3025   return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge);
3026 }
3027 static int dissect_legID4_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3028   return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID4);
3029 }
3030 static int dissect_legID5_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3031   return dissect_camel_ReceivingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID5);
3032 }
3033
3034
3035
3036 static int
3037 dissect_camel_TimeIfNoTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3038   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3039                                   NULL);
3040
3041   return offset;
3042 }
3043 static int dissect_timeIfNoTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3044   return dissect_camel_TimeIfNoTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_timeIfNoTariffSwitch);
3045 }
3046
3047
3048
3049 static int
3050 dissect_camel_INTEGER_0_864000(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3051   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3052                                   NULL);
3053
3054   return offset;
3055 }
3056 static int dissect_timeSinceTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3057   return dissect_camel_INTEGER_0_864000(TRUE, tvb, offset, pinfo, tree, hf_camel_timeSinceTariffSwitch);
3058 }
3059
3060
3061 static const ber_sequence_t TimeIfTariffSwitch_sequence[] = {
3062   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeSinceTariffSwitch_impl },
3063   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tttariffSwitchInterval_impl },
3064   { 0, 0, 0, NULL }
3065 };
3066
3067 static int
3068 dissect_camel_TimeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3069   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3070                                    TimeIfTariffSwitch_sequence, hf_index, ett_camel_TimeIfTariffSwitch);
3071
3072   return offset;
3073 }
3074 static int dissect_timeIfTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3075   return dissect_camel_TimeIfTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_timeIfTariffSwitch);
3076 }
3077
3078
3079 static const value_string camel_TimeInformation_vals[] = {
3080   {   0, "timeIfNoTariffSwitch" },
3081   {   1, "timeIfTariffSwitch" },
3082   { 0, NULL }
3083 };
3084
3085 static const ber_choice_t TimeInformation_choice[] = {
3086   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeIfNoTariffSwitch_impl },
3087   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timeIfTariffSwitch_impl },
3088   { 0, 0, 0, 0, NULL }
3089 };
3090
3091 static int
3092 dissect_camel_TimeInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3093   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3094                                  TimeInformation_choice, hf_index, ett_camel_TimeInformation,
3095                                  NULL);
3096
3097   return offset;
3098 }
3099 static int dissect_timeInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3100   return dissect_camel_TimeInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_timeInformation);
3101 }
3102
3103
3104 static const ber_sequence_t Extensions_sequence_of[1] = {
3105   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_Extensions_item },
3106 };
3107
3108 static int
3109 dissect_camel_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3110   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
3111                                       Extensions_sequence_of, hf_index, ett_camel_Extensions);
3112
3113   return offset;
3114 }
3115 static int dissect_extensions1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3116   return dissect_camel_Extensions(TRUE, tvb, offset, pinfo, tree, hf_camel_extensions1);
3117 }
3118
3119
3120 static const ber_sequence_t T_timeDurationChargingResult_sequence[] = {
3121   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge_impl },
3122   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_timeInformation_impl },
3123   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_legActive_impl },
3124   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callLegReleasedAtTcpExpiry_impl },
3125   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
3126   { BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChChargingAddress_impl },
3127   { 0, 0, 0, NULL }
3128 };
3129
3130 static int
3131 dissect_camel_T_timeDurationChargingResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3132   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3133                                    T_timeDurationChargingResult_sequence, hf_index, ett_camel_T_timeDurationChargingResult);
3134
3135   return offset;
3136 }
3137 static int dissect_timeDurationChargingResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3138   return dissect_camel_T_timeDurationChargingResult(TRUE, tvb, offset, pinfo, tree, hf_camel_timeDurationChargingResult);
3139 }
3140
3141
3142 static const value_string camel_CAMEL_CallResult_vals[] = {
3143   {   0, "timeDurationChargingResult" },
3144   { 0, NULL }
3145 };
3146
3147 static const ber_choice_t CAMEL_CallResult_choice[] = {
3148   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeDurationChargingResult_impl },
3149   { 0, 0, 0, 0, NULL }
3150 };
3151
3152 static int
3153 dissect_camel_CAMEL_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3154   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3155                                  CAMEL_CallResult_choice, hf_index, ett_camel_CAMEL_CallResult,
3156                                  NULL);
3157
3158   return offset;
3159 }
3160
3161
3162
3163 static int
3164 dissect_camel_CallResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3165   offset = dissect_camel_CAMEL_CallResult(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3166
3167   return offset;
3168 }
3169
3170
3171 static const ber_sequence_t CallSegmentFailure_sequence[] = {
3172   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
3173   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl },
3174   { 0, 0, 0, NULL }
3175 };
3176
3177 static int
3178 dissect_camel_CallSegmentFailure(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3179   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3180                                    CallSegmentFailure_sequence, hf_index, ett_camel_CallSegmentFailure);
3181
3182   return offset;
3183 }
3184 static int dissect_callSegmentFailure_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3185   return dissect_camel_CallSegmentFailure(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentFailure);
3186 }
3187
3188
3189
3190 static int
3191 dissect_camel_TCInvokeIdSet(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3192   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3193                                   NULL);
3194
3195   return offset;
3196 }
3197
3198
3199
3200 static int
3201 dissect_camel_InvokeID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3202   offset = dissect_camel_TCInvokeIdSet(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3203
3204   return offset;
3205 }
3206 static int dissect_invokeID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3207   return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_invokeID);
3208 }
3209 static int dissect_operation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3210   return dissect_camel_InvokeID(TRUE, tvb, offset, pinfo, tree, hf_camel_operation);
3211 }
3212
3213
3214 static const ber_sequence_t CallSegmentToCancel_sequence[] = {
3215   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_invokeID_impl },
3216   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
3217   { 0, 0, 0, NULL }
3218 };
3219
3220 static int
3221 dissect_camel_CallSegmentToCancel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3222   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3223                                    CallSegmentToCancel_sequence, hf_index, ett_camel_CallSegmentToCancel);
3224
3225   return offset;
3226 }
3227 static int dissect_callSegmentToCancel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3228   return dissect_camel_CallSegmentToCancel(TRUE, tvb, offset, pinfo, tree, hf_camel_callSegmentToCancel);
3229 }
3230
3231
3232 static const ber_sequence_t T_timeDurationCharging_sequence[] = {
3233   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_maxCallPeriodDuration_impl },
3234   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseIfdurationExceeded_impl },
3235   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl },
3236   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_audibleIndicator_impl },
3237   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
3238   { 0, 0, 0, NULL }
3239 };
3240
3241 static int
3242 dissect_camel_T_timeDurationCharging(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3243   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3244                                    T_timeDurationCharging_sequence, hf_index, ett_camel_T_timeDurationCharging);
3245
3246   return offset;
3247 }
3248 static int dissect_timeDurationCharging_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3249   return dissect_camel_T_timeDurationCharging(TRUE, tvb, offset, pinfo, tree, hf_camel_timeDurationCharging);
3250 }
3251
3252
3253 static const value_string camel_CAMEL_AChBillingChargingCharacteristics_vals[] = {
3254   {   0, "timeDurationCharging" },
3255   { 0, NULL }
3256 };
3257
3258 static const ber_choice_t CAMEL_AChBillingChargingCharacteristics_choice[] = {
3259   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeDurationCharging_impl },
3260   { 0, 0, 0, 0, NULL }
3261 };
3262
3263 static int
3264 dissect_camel_CAMEL_AChBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3265   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3266                                  CAMEL_AChBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_AChBillingChargingCharacteristics,
3267                                  NULL);
3268
3269   return offset;
3270 }
3271
3272
3273
3274 static int
3275 dissect_camel_FreeFormatData(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3276   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3277                                        NULL);
3278
3279   return offset;
3280 }
3281 static int dissect_freeFormatData_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3282   return dissect_camel_FreeFormatData(TRUE, tvb, offset, pinfo, tree, hf_camel_freeFormatData);
3283 }
3284
3285
3286 static const value_string camel_SendingSideID_vals[] = {
3287   {   0, "sendingSideID" },
3288   { 0, NULL }
3289 };
3290
3291 static const ber_choice_t SendingSideID_choice[] = {
3292   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sendingSideID_impl },
3293   { 0, 0, 0, 0, NULL }
3294 };
3295
3296 static int
3297 dissect_camel_SendingSideID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3298   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3299                                  SendingSideID_choice, hf_index, ett_camel_SendingSideID,
3300                                  NULL);
3301
3302   return offset;
3303 }
3304 static int dissect_partyToCharge4_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3305   return dissect_camel_SendingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge4);
3306 }
3307 static int dissect_partyToCharge1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3308   return dissect_camel_SendingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge1);
3309 }
3310 static int dissect_legID3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3311   return dissect_camel_SendingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_legID3);
3312 }
3313 static int dissect_partyToCharge2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3314   return dissect_camel_SendingSideID(TRUE, tvb, offset, pinfo, tree, hf_camel_partyToCharge2);
3315 }
3316
3317
3318 static const ber_sequence_t T_fCIBCCCAMELsequence1_sequence[] = {
3319   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_freeFormatData_impl },
3320   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge4_impl },
3321   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_appendFreeFormatData_impl },
3322   { 0, 0, 0, NULL }
3323 };
3324
3325 static int
3326 dissect_camel_T_fCIBCCCAMELsequence1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3327   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3328                                    T_fCIBCCCAMELsequence1_sequence, hf_index, ett_camel_T_fCIBCCCAMELsequence1);
3329
3330   return offset;
3331 }
3332 static int dissect_fCIBCCCAMELsequence1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3333   return dissect_camel_T_fCIBCCCAMELsequence1(TRUE, tvb, offset, pinfo, tree, hf_camel_fCIBCCCAMELsequence1);
3334 }
3335
3336
3337 static const value_string camel_CAMEL_FCIBillingChargingCharacteristics_vals[] = {
3338   {   0, "fCIBCCCAMELsequence1" },
3339   { 0, NULL }
3340 };
3341
3342 static const ber_choice_t CAMEL_FCIBillingChargingCharacteristics_choice[] = {
3343   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_fCIBCCCAMELsequence1_impl },
3344   { 0, 0, 0, 0, NULL }
3345 };
3346
3347 static int
3348 dissect_camel_CAMEL_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3349   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3350                                  CAMEL_FCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_FCIBillingChargingCharacteristics,
3351                                  NULL);
3352
3353   return offset;
3354 }
3355
3356
3357
3358 static int
3359 dissect_camel_PDPId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3360   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3361                                        NULL);
3362
3363   return offset;
3364 }
3365 static int dissect_pDPID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3366   return dissect_camel_PDPId(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPID);
3367 }
3368 static int dissect_pdpID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3369   return dissect_camel_PDPId(TRUE, tvb, offset, pinfo, tree, hf_camel_pdpID);
3370 }
3371
3372
3373 static const ber_sequence_t T_fCIBCCCAMELsequence2_sequence[] = {
3374   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_freeFormatData_impl },
3375   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
3376   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_appendFreeFormatData_impl },
3377   { 0, 0, 0, NULL }
3378 };
3379
3380 static int
3381 dissect_camel_T_fCIBCCCAMELsequence2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3382   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3383                                    T_fCIBCCCAMELsequence2_sequence, hf_index, ett_camel_T_fCIBCCCAMELsequence2);
3384
3385   return offset;
3386 }
3387 static int dissect_fCIBCCCAMELsequence2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3388   return dissect_camel_T_fCIBCCCAMELsequence2(TRUE, tvb, offset, pinfo, tree, hf_camel_fCIBCCCAMELsequence2);
3389 }
3390
3391
3392 static const ber_sequence_t CAMEL_FCIGPRSBillingChargingCharacteristics_sequence[] = {
3393   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_fCIBCCCAMELsequence2_impl },
3394   { 0, 0, 0, NULL }
3395 };
3396
3397 static int
3398 dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3399   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3400                                    CAMEL_FCIGPRSBillingChargingCharacteristics_sequence, hf_index, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics);
3401
3402   return offset;
3403 }
3404
3405
3406 static const ber_sequence_t T_fCIBCCCAMELsequence3_sequence[] = {
3407   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_freeFormatData_impl },
3408   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_appendFreeFormatData_impl },
3409   { 0, 0, 0, NULL }
3410 };
3411
3412 static int
3413 dissect_camel_T_fCIBCCCAMELsequence3(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3414   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3415                                    T_fCIBCCCAMELsequence3_sequence, hf_index, ett_camel_T_fCIBCCCAMELsequence3);
3416
3417   return offset;
3418 }
3419 static int dissect_fCIBCCCAMELsequence3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3420   return dissect_camel_T_fCIBCCCAMELsequence3(TRUE, tvb, offset, pinfo, tree, hf_camel_fCIBCCCAMELsequence3);
3421 }
3422
3423
3424 static const value_string camel_CAMEL_FCISMSBillingChargingCharacteristics_vals[] = {
3425   {   0, "fCIBCCCAMELsequence3" },
3426   { 0, NULL }
3427 };
3428
3429 static const ber_choice_t CAMEL_FCISMSBillingChargingCharacteristics_choice[] = {
3430   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_fCIBCCCAMELsequence3_impl },
3431   { 0, 0, 0, 0, NULL }
3432 };
3433
3434 static int
3435 dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3436   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3437                                  CAMEL_FCISMSBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics,
3438                                  NULL);
3439
3440   return offset;
3441 }
3442
3443
3444 static const ber_sequence_t CAMEL_SCIBillingChargingCharacteristicsAlt_sequence[] = {
3445   { 0, 0, 0, NULL }
3446 };
3447
3448 static int
3449 dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3450   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3451                                    CAMEL_SCIBillingChargingCharacteristicsAlt_sequence, hf_index, ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt);
3452
3453   return offset;
3454 }
3455 static int dissect_aOC_extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3456   return dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_aOC_extension);
3457 }
3458
3459
3460 static const value_string camel_CAMEL_SCIBillingChargingCharacteristics_vals[] = {
3461   {   0, "aOCBeforeAnswer" },
3462   {   1, "aOCAfterAnswer" },
3463   {   2, "aOC-extension" },
3464   { 0, NULL }
3465 };
3466
3467 static const ber_choice_t CAMEL_SCIBillingChargingCharacteristics_choice[] = {
3468   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aOCBeforeAnswer_impl },
3469   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_aOCAfterAnswer_impl },
3470   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_aOC_extension_impl },
3471   { 0, 0, 0, 0, NULL }
3472 };
3473
3474 static int
3475 dissect_camel_CAMEL_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3476   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3477                                  CAMEL_SCIBillingChargingCharacteristics_choice, hf_index, ett_camel_CAMEL_SCIBillingChargingCharacteristics,
3478                                  NULL);
3479
3480   return offset;
3481 }
3482
3483
3484 static const ber_sequence_t CamelSCIGPRSBillingChargingCharacteristics_sequence[] = {
3485   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_aOCGPRS_impl },
3486   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
3487   { 0, 0, 0, NULL }
3488 };
3489
3490 static int
3491 dissect_camel_CamelSCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3492   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3493                                    CamelSCIGPRSBillingChargingCharacteristics_sequence, hf_index, ett_camel_CamelSCIGPRSBillingChargingCharacteristics);
3494
3495   return offset;
3496 }
3497
3498
3499
3500 static int
3501 dissect_camel_Carrier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3502   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3503                                        NULL);
3504
3505   return offset;
3506 }
3507 static int dissect_carrier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3508   return dissect_camel_Carrier(TRUE, tvb, offset, pinfo, tree, hf_camel_carrier);
3509 }
3510
3511
3512 static const value_string camel_CGEncountered_vals[] = {
3513   {   0, "noCGencountered" },
3514   {   1, "manualCGencountered" },
3515   {   2, "scpOverload" },
3516   { 0, NULL }
3517 };
3518
3519
3520 static int
3521 dissect_camel_CGEncountered(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3522   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3523                                   NULL);
3524
3525   return offset;
3526 }
3527 static int dissect_cGEncountered_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3528   return dissect_camel_CGEncountered(TRUE, tvb, offset, pinfo, tree, hf_camel_cGEncountered);
3529 }
3530
3531
3532
3533 static int
3534 dissect_camel_ChargeIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3535   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3536                                        NULL);
3537
3538   return offset;
3539 }
3540 static int dissect_chargeIndicator_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3541   return dissect_camel_ChargeIndicator(TRUE, tvb, offset, pinfo, tree, hf_camel_chargeIndicator);
3542 }
3543
3544
3545
3546 static int
3547 dissect_camel_LocationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3548   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3549                                        NULL);
3550
3551   return offset;
3552 }
3553 static int dissect_locationNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3554   return dissect_camel_LocationNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_locationNumber);
3555 }
3556
3557
3558
3559 static int
3560 dissect_camel_ChargeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3561   offset = dissect_camel_LocationNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
3562
3563   return offset;
3564 }
3565 static int dissect_chargeNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3566   return dissect_camel_ChargeNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_chargeNumber);
3567 }
3568
3569
3570
3571 static int
3572 dissect_camel_INTEGER_1_2147483647(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3573   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3574                                   NULL);
3575
3576   return offset;
3577 }
3578 static int dissect_maxTransferredVolume_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3579   return dissect_camel_INTEGER_1_2147483647(TRUE, tvb, offset, pinfo, tree, hf_camel_maxTransferredVolume);
3580 }
3581
3582
3583 static const value_string camel_ChargingCharacteristics_vals[] = {
3584   {   0, "maxTransferredVolume" },
3585   {   1, "maxElapsedTime" },
3586   { 0, NULL }
3587 };
3588
3589 static const ber_choice_t ChargingCharacteristics_choice[] = {
3590   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_maxTransferredVolume_impl },
3591   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_maxElapsedTime_impl },
3592   { 0, 0, 0, 0, NULL }
3593 };
3594
3595 static int
3596 dissect_camel_ChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3597   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3598                                  ChargingCharacteristics_choice, hf_index, ett_camel_ChargingCharacteristics,
3599                                  NULL);
3600
3601   return offset;
3602 }
3603 static int dissect_chargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3604   return dissect_camel_ChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingCharacteristics);
3605 }
3606
3607
3608
3609 static int
3610 dissect_camel_INTEGER_0_2147483647(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3611   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3612                                   NULL);
3613
3614   return offset;
3615 }
3616 static int dissect_volumeIfNoTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3617   return dissect_camel_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_camel_volumeIfNoTariffSwitch);
3618 }
3619 static int dissect_volumeSinceLastTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3620   return dissect_camel_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_camel_volumeSinceLastTariffSwitch);
3621 }
3622 static int dissect_volumeTariffSwitchInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3623   return dissect_camel_INTEGER_0_2147483647(TRUE, tvb, offset, pinfo, tree, hf_camel_volumeTariffSwitchInterval);
3624 }
3625
3626
3627 static const ber_sequence_t T_volumeIfTariffSwitch_sequence[] = {
3628   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_volumeSinceLastTariffSwitch_impl },
3629   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_volumeTariffSwitchInterval_impl },
3630   { 0, 0, 0, NULL }
3631 };
3632
3633 static int
3634 dissect_camel_T_volumeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3635   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3636                                    T_volumeIfTariffSwitch_sequence, hf_index, ett_camel_T_volumeIfTariffSwitch);
3637
3638   return offset;
3639 }
3640 static int dissect_volumeIfTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3641   return dissect_camel_T_volumeIfTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_volumeIfTariffSwitch);
3642 }
3643
3644
3645 static const value_string camel_TransferredVolume_vals[] = {
3646   {   0, "volumeIfNoTariffSwitch" },
3647   {   1, "volumeIfTariffSwitch" },
3648   { 0, NULL }
3649 };
3650
3651 static const ber_choice_t TransferredVolume_choice[] = {
3652   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_volumeIfNoTariffSwitch_impl },
3653   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_volumeIfTariffSwitch_impl },
3654   { 0, 0, 0, 0, NULL }
3655 };
3656
3657 static int
3658 dissect_camel_TransferredVolume(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3659   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3660                                  TransferredVolume_choice, hf_index, ett_camel_TransferredVolume,
3661                                  NULL);
3662
3663   return offset;
3664 }
3665 static int dissect_transferredVolume_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3666   return dissect_camel_TransferredVolume(TRUE, tvb, offset, pinfo, tree, hf_camel_transferredVolume);
3667 }
3668
3669
3670
3671 static int
3672 dissect_camel_INTEGER_0_86400(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3673   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3674                                   NULL);
3675
3676   return offset;
3677 }
3678 static int dissect_timeGPRSIfNoTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3679   return dissect_camel_INTEGER_0_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_timeGPRSIfNoTariffSwitch);
3680 }
3681 static int dissect_timeGPRSSinceLastTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3682   return dissect_camel_INTEGER_0_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_timeGPRSSinceLastTariffSwitch);
3683 }
3684 static int dissect_timeGPRSTariffSwitchInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3685   return dissect_camel_INTEGER_0_86400(TRUE, tvb, offset, pinfo, tree, hf_camel_timeGPRSTariffSwitchInterval);
3686 }
3687
3688
3689 static const ber_sequence_t T_timeGPRSIfTariffSwitch_sequence[] = {
3690   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeGPRSSinceLastTariffSwitch_impl },
3691   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeGPRSTariffSwitchInterval_impl },
3692   { 0, 0, 0, NULL }
3693 };
3694
3695 static int
3696 dissect_camel_T_timeGPRSIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3697   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3698                                    T_timeGPRSIfTariffSwitch_sequence, hf_index, ett_camel_T_timeGPRSIfTariffSwitch);
3699
3700   return offset;
3701 }
3702 static int dissect_timeGPRSIfTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3703   return dissect_camel_T_timeGPRSIfTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_timeGPRSIfTariffSwitch);
3704 }
3705
3706
3707 static const value_string camel_ElapsedTime_vals[] = {
3708   {   0, "timeGPRSIfNoTariffSwitch" },
3709   {   1, "timeGPRSIfTariffSwitch" },
3710   { 0, NULL }
3711 };
3712
3713 static const ber_choice_t ElapsedTime_choice[] = {
3714   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_timeGPRSIfNoTariffSwitch_impl },
3715   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timeGPRSIfTariffSwitch_impl },
3716   { 0, 0, 0, 0, NULL }
3717 };
3718
3719 static int
3720 dissect_camel_ElapsedTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3721   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3722                                  ElapsedTime_choice, hf_index, ett_camel_ElapsedTime,
3723                                  NULL);
3724
3725   return offset;
3726 }
3727 static int dissect_elapsedTime_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3728   return dissect_camel_ElapsedTime(TRUE, tvb, offset, pinfo, tree, hf_camel_elapsedTime);
3729 }
3730
3731
3732 static const value_string camel_ChargingResult_vals[] = {
3733   {   0, "transferredVolume" },
3734   {   1, "elapsedTime" },
3735   { 0, NULL }
3736 };
3737
3738 static const ber_choice_t ChargingResult_choice[] = {
3739   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transferredVolume_impl },
3740   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_elapsedTime_impl },
3741   { 0, 0, 0, 0, NULL }
3742 };
3743
3744 static int
3745 dissect_camel_ChargingResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3746   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3747                                  ChargingResult_choice, hf_index, ett_camel_ChargingResult,
3748                                  NULL);
3749
3750   return offset;
3751 }
3752 static int dissect_chargingResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3753   return dissect_camel_ChargingResult(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingResult);
3754 }
3755
3756
3757
3758 static int
3759 dissect_camel_INTEGER_0_255(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3760   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3761                                   NULL);
3762
3763   return offset;
3764 }
3765 static int dissect_rOTimeGPRSIfNoTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3766   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_rOTimeGPRSIfNoTariffSwitch);
3767 }
3768 static int dissect_rOTimeGPRSSinceLastTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3769   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_rOTimeGPRSSinceLastTariffSwitch);
3770 }
3771 static int dissect_rOTimeGPRSTariffSwitchInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3772   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_rOTimeGPRSTariffSwitchInterval);
3773 }
3774 static int dissect_callAttemptElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3775   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_callAttemptElapsedTimeValue);
3776 }
3777 static int dissect_rOVolumeIfNoTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3778   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_rOVolumeIfNoTariffSwitch);
3779 }
3780 static int dissect_rOVolumeSinceLastTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3781   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_rOVolumeSinceLastTariffSwitch);
3782 }
3783 static int dissect_rOVolumeTariffSwitchInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3784   return dissect_camel_INTEGER_0_255(TRUE, tvb, offset, pinfo, tree, hf_camel_rOVolumeTariffSwitchInterval);
3785 }
3786
3787
3788 static const ber_sequence_t T_rOVolumeIfTariffSwitch_sequence[] = {
3789   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rOVolumeSinceLastTariffSwitch_impl },
3790   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rOVolumeTariffSwitchInterval_impl },
3791   { 0, 0, 0, NULL }
3792 };
3793
3794 static int
3795 dissect_camel_T_rOVolumeIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3796   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3797                                    T_rOVolumeIfTariffSwitch_sequence, hf_index, ett_camel_T_rOVolumeIfTariffSwitch);
3798
3799   return offset;
3800 }
3801 static int dissect_rOVolumeIfTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3802   return dissect_camel_T_rOVolumeIfTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_rOVolumeIfTariffSwitch);
3803 }
3804
3805
3806 static const value_string camel_TransferredVolumeRollOver_vals[] = {
3807   {   0, "rOVolumeIfNoTariffSwitch" },
3808   {   1, "rOVolumeIfTariffSwitch" },
3809   { 0, NULL }
3810 };
3811
3812 static const ber_choice_t TransferredVolumeRollOver_choice[] = {
3813   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_rOVolumeIfNoTariffSwitch_impl },
3814   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_rOVolumeIfTariffSwitch_impl },
3815   { 0, 0, 0, 0, NULL }
3816 };
3817
3818 static int
3819 dissect_camel_TransferredVolumeRollOver(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3820   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3821                                  TransferredVolumeRollOver_choice, hf_index, ett_camel_TransferredVolumeRollOver,
3822                                  NULL);
3823
3824   return offset;
3825 }
3826 static int dissect_transferredVolumeRollOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3827   return dissect_camel_TransferredVolumeRollOver(TRUE, tvb, offset, pinfo, tree, hf_camel_transferredVolumeRollOver);
3828 }
3829
3830
3831 static const ber_sequence_t T_rOTimeGPRSIfTariffSwitch_sequence[] = {
3832   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rOTimeGPRSSinceLastTariffSwitch_impl },
3833   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_rOTimeGPRSTariffSwitchInterval_impl },
3834   { 0, 0, 0, NULL }
3835 };
3836
3837 static int
3838 dissect_camel_T_rOTimeGPRSIfTariffSwitch(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3839   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3840                                    T_rOTimeGPRSIfTariffSwitch_sequence, hf_index, ett_camel_T_rOTimeGPRSIfTariffSwitch);
3841
3842   return offset;
3843 }
3844 static int dissect_rOTimeGPRSIfTariffSwitch_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3845   return dissect_camel_T_rOTimeGPRSIfTariffSwitch(TRUE, tvb, offset, pinfo, tree, hf_camel_rOTimeGPRSIfTariffSwitch);
3846 }
3847
3848
3849 static const value_string camel_ElapsedTimeRollOver_vals[] = {
3850   {   0, "rOTimeGPRSIfNoTariffSwitch" },
3851   {   1, "rOTimeGPRSIfTariffSwitch" },
3852   { 0, NULL }
3853 };
3854
3855 static const ber_choice_t ElapsedTimeRollOver_choice[] = {
3856   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_rOTimeGPRSIfNoTariffSwitch_impl },
3857   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_rOTimeGPRSIfTariffSwitch_impl },
3858   { 0, 0, 0, 0, NULL }
3859 };
3860
3861 static int
3862 dissect_camel_ElapsedTimeRollOver(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3863   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3864                                  ElapsedTimeRollOver_choice, hf_index, ett_camel_ElapsedTimeRollOver,
3865                                  NULL);
3866
3867   return offset;
3868 }
3869 static int dissect_elapsedTimeRollOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3870   return dissect_camel_ElapsedTimeRollOver(TRUE, tvb, offset, pinfo, tree, hf_camel_elapsedTimeRollOver);
3871 }
3872
3873
3874 static const value_string camel_ChargingRollOver_vals[] = {
3875   {   0, "transferredVolumeRollOver" },
3876   {   1, "elapsedTimeRollOver" },
3877   { 0, NULL }
3878 };
3879
3880 static const ber_choice_t ChargingRollOver_choice[] = {
3881   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_transferredVolumeRollOver_impl },
3882   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_elapsedTimeRollOver_impl },
3883   { 0, 0, 0, 0, NULL }
3884 };
3885
3886 static int
3887 dissect_camel_ChargingRollOver(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3888   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3889                                  ChargingRollOver_choice, hf_index, ett_camel_ChargingRollOver,
3890                                  NULL);
3891
3892   return offset;
3893 }
3894 static int dissect_chargingRollOver_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3895   return dissect_camel_ChargingRollOver(TRUE, tvb, offset, pinfo, tree, hf_camel_chargingRollOver);
3896 }
3897
3898
3899 static const value_string camel_ErrorTreatment_vals[] = {
3900   {   0, "stdErrorAndInfo" },
3901   {   1, "help" },
3902   {   2, "repeatPrompt" },
3903   { 0, NULL }
3904 };
3905
3906
3907 static int
3908 dissect_camel_ErrorTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3909   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3910                                   NULL);
3911
3912   return offset;
3913 }
3914 static int dissect_errorTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3915   return dissect_camel_ErrorTreatment(TRUE, tvb, offset, pinfo, tree, hf_camel_errorTreatment);
3916 }
3917
3918
3919 static const ber_sequence_t CollectedDigits_sequence[] = {
3920   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_minimumNbOfDigits_impl },
3921   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_maximumNbOfDigits_impl },
3922   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_endOfReplyDigit_impl },
3923   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cancelDigit_impl },
3924   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_startDigit_impl },
3925   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_firstDigitTimeOut_impl },
3926   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interDigitTimeOut_impl },
3927   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_errorTreatment_impl },
3928   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interruptableAnnInd_impl },
3929   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voiceInformation_impl },
3930   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_voiceBack_impl },
3931   { 0, 0, 0, NULL }
3932 };
3933
3934 static int
3935 dissect_camel_CollectedDigits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3936   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
3937                                    CollectedDigits_sequence, hf_index, ett_camel_CollectedDigits);
3938
3939   return offset;
3940 }
3941 static int dissect_collectedDigits_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3942   return dissect_camel_CollectedDigits(TRUE, tvb, offset, pinfo, tree, hf_camel_collectedDigits);
3943 }
3944
3945
3946 static const value_string camel_CollectedInfo_vals[] = {
3947   {   0, "collectedDigits" },
3948   { 0, NULL }
3949 };
3950
3951 static const ber_choice_t CollectedInfo_choice[] = {
3952   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_collectedDigits_impl },
3953   { 0, 0, 0, 0, NULL }
3954 };
3955
3956 static int
3957 dissect_camel_CollectedInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3958   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
3959                                  CollectedInfo_choice, hf_index, ett_camel_CollectedInfo,
3960                                  NULL);
3961
3962   return offset;
3963 }
3964 static int dissect_collectedInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3965   return dissect_camel_CollectedInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_collectedInfo);
3966 }
3967
3968
3969 static const value_string camel_ConnectedNumberTreatmentInd_vals[] = {
3970   {   0, "noINImpact" },
3971   {   1, "presentationRestricted" },
3972   {   2, "presentCalledINNumber" },
3973   {   3, "presentCallINNumberRestricted" },
3974   { 0, NULL }
3975 };
3976
3977
3978 static int
3979 dissect_camel_ConnectedNumberTreatmentInd(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3980   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
3981                                   NULL);
3982
3983   return offset;
3984 }
3985 static int dissect_connectedNumberTreatmentInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
3986   return dissect_camel_ConnectedNumberTreatmentInd(TRUE, tvb, offset, pinfo, tree, hf_camel_connectedNumberTreatmentInd);
3987 }
3988
3989
3990 static const value_string camel_ControlType_vals[] = {
3991   {   0, "sCPOverloaded" },
3992   {   1, "manuallyInitiated" },
3993   { 0, NULL }
3994 };
3995
3996
3997 static int
3998 dissect_camel_ControlType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
3999   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4000                                   NULL);
4001
4002   return offset;
4003 }
4004 static int dissect_controlType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4005   return dissect_camel_ControlType(TRUE, tvb, offset, pinfo, tree, hf_camel_controlType);
4006 }
4007
4008
4009
4010 static int
4011 dissect_camel_ScfID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4012   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4013                                        NULL);
4014
4015   return offset;
4016 }
4017 static int dissect_scfID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4018   return dissect_camel_ScfID(TRUE, tvb, offset, pinfo, tree, hf_camel_scfID);
4019 }
4020
4021
4022 static const ber_sequence_t CompoundCriteria_sequence[] = {
4023   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_basicGapCriteria_impl },
4024   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
4025   { 0, 0, 0, NULL }
4026 };
4027
4028 static int
4029 dissect_camel_CompoundCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4030   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4031                                    CompoundCriteria_sequence, hf_index, ett_camel_CompoundCriteria);
4032
4033   return offset;
4034 }
4035 static int dissect_compoundGapCriteria(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4036   return dissect_camel_CompoundCriteria(FALSE, tvb, offset, pinfo, tree, hf_camel_compoundGapCriteria);
4037 }
4038
4039
4040
4041 static int
4042 dissect_camel_CorrelationID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4043   offset = dissect_camel_Digits(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4044
4045   return offset;
4046 }
4047 static int dissect_correlationID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4048   return dissect_camel_CorrelationID(TRUE, tvb, offset, pinfo, tree, hf_camel_correlationID);
4049 }
4050
4051
4052
4053 static int
4054 dissect_camel_DateAndTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4055 #line 133 "camel.cnf"
4056
4057
4058 /* 
4059 * date_option = 1 european dd:mm:yyyy
4060 * date_option = 2 american mm:dd:yyyy
4061 */
4062
4063 /*
4064 * Output should be HH:MM:SS;dd/mm/yyyy
4065 * if european is selected, and HH:MM:SS;mm/dd/yyyy
4066 * otherwise.
4067 */
4068
4069   guint8 digit_pair;
4070   guint8 i = 0, curr_offset; 
4071   char time[CAMEL_DATE_AND_TIME_LEN];
4072   char c[CAMEL_DATE_AND_TIME_LEN]; /*temporary container*/
4073
4074   /* 2 digits per octet, 7 octets total + 5 delimiters */
4075     
4076   for (curr_offset = 0; curr_offset < 7 ; curr_offset++)    
4077   /*Loop to extract date*/
4078   {
4079       digit_pair = tvb_get_guint8(tvb, curr_offset);
4080       
4081       proto_tree_add_uint(tree,
4082                           hf_digit,
4083                           tvb,
4084                           curr_offset,
4085                           1,
4086                           digit_pair & 0x0F);
4087
4088       proto_tree_add_uint(tree,
4089                           hf_digit,
4090                           tvb,
4091                           curr_offset,
4092                           1,
4093                           digit_pair >>4);
4094                           
4095       
4096       c[i] = camel_number_to_char( digit_pair & 0x0F);
4097       i++;
4098       c[i] = camel_number_to_char( digit_pair >>4);
4099       i++;
4100   }
4101   
4102   /* Pretty print date */
4103   /* XXX - Should we use sprintf here instead of assembling the string by
4104    * hand? */
4105   
4106   time[0] = c[8];
4107   time[1] = c[9];
4108   time[2] = ':';
4109   time[3] = c[10];
4110   time[4] = c[11];
4111   time[5] = ':';
4112   time[6] = c[12];
4113   time[7] = c[13];
4114   time[8] = ';';
4115   if ( EUROPEAN_DATE == date_format) /*european*/
4116   {
4117     time[9] = c[6]; /*day*/
4118     time[10] = c[7];
4119     time[11] = '/'; 
4120     time[12] = c[4]; /*month*/
4121     time[13] = c[5];
4122   }
4123   else /*american*/
4124   {
4125     time[9] = c[4]; /*month*/
4126     time[10] = c[5];
4127     time[11] = '/'; 
4128     time[12] = c[6]; /*day*/
4129     time[13] = c[7];
4130   }
4131   time[14] = '/';
4132   time[15] = c[0];
4133   time[16] = c[1];
4134   time[17] = c[2];
4135   time[18] = c[3];
4136
4137   time[CAMEL_DATE_AND_TIME_LEN - 1] = '\0';
4138  
4139 /*start = 0, length = 7*/
4140  
4141   proto_tree_add_string(tree, 
4142                       hf_index, 
4143                       tvb,
4144                       0, 
4145                       7, 
4146                       time);
4147
4148   return 7; /* 7  octets eaten*/
4149
4150
4151
4152   return offset;
4153 }
4154 static int dissect_callStopTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4155   return dissect_camel_DateAndTime(TRUE, tvb, offset, pinfo, tree, hf_camel_callStopTimeValue);
4156 }
4157
4158
4159 static const ber_sequence_t DestinationRoutingAddress_sequence_of[1] = {
4160   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_DestinationRoutingAddress_item },
4161 };
4162
4163 static int
4164 dissect_camel_DestinationRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4165   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4166                                       DestinationRoutingAddress_sequence_of, hf_index, ett_camel_DestinationRoutingAddress);
4167
4168   return offset;
4169 }
4170 static int dissect_destinationRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4171   return dissect_camel_DestinationRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_destinationRoutingAddress);
4172 }
4173
4174
4175 static const ber_sequence_t T_oServiceChangeSpecificInfo_sequence[] = {
4176   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl },
4177   { 0, 0, 0, NULL }
4178 };
4179
4180 static int
4181 dissect_camel_T_oServiceChangeSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4182   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4183                                    T_oServiceChangeSpecificInfo_sequence, hf_index, ett_camel_T_oServiceChangeSpecificInfo);
4184
4185   return offset;
4186 }
4187 static int dissect_oServiceChangeSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4188   return dissect_camel_T_oServiceChangeSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oServiceChangeSpecificInfo);
4189 }
4190
4191
4192 static const ber_sequence_t T_tServiceChangeSpecificInfo_sequence[] = {
4193   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl },
4194   { 0, 0, 0, NULL }
4195 };
4196
4197 static int
4198 dissect_camel_T_tServiceChangeSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4199   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4200                                    T_tServiceChangeSpecificInfo_sequence, hf_index, ett_camel_T_tServiceChangeSpecificInfo);
4201
4202   return offset;
4203 }
4204 static int dissect_tServiceChangeSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4205   return dissect_camel_T_tServiceChangeSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tServiceChangeSpecificInfo);
4206 }
4207
4208
4209 static const ber_sequence_t DpSpecificInfoAlt_sequence[] = {
4210   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_oServiceChangeSpecificInfo_impl },
4211   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tServiceChangeSpecificInfo_impl },
4212   { 0, 0, 0, NULL }
4213 };
4214
4215 static int
4216 dissect_camel_DpSpecificInfoAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4217   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4218                                    DpSpecificInfoAlt_sequence, hf_index, ett_camel_DpSpecificInfoAlt);
4219
4220   return offset;
4221 }
4222 static int dissect_dpSpecificInfoAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4223   return dissect_camel_DpSpecificInfoAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_dpSpecificInfoAlt);
4224 }
4225
4226
4227
4228 static int
4229 dissect_camel_OCTET_STRING_SIZE_1_63(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4230   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4231                                        NULL);
4232
4233   return offset;
4234 }
4235 static int dissect_pDPAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4236   return dissect_camel_OCTET_STRING_SIZE_1_63(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPAddress);
4237 }
4238
4239
4240 static const ber_sequence_t EndUserAddress_sequence[] = {
4241   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pDPTypeOrganization_impl },
4242   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_pDPTypeNumber_impl },
4243   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPAddress_impl },
4244   { 0, 0, 0, NULL }
4245 };
4246
4247 static int
4248 dissect_camel_EndUserAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4249   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4250                                    EndUserAddress_sequence, hf_index, ett_camel_EndUserAddress);
4251
4252   return offset;
4253 }
4254
4255
4256 static const ber_sequence_t T_routeSelectFailureSpecificInfo_sequence[] = {
4257   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause_impl },
4258   { 0, 0, 0, NULL }
4259 };
4260
4261 static int
4262 dissect_camel_T_routeSelectFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4263   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4264                                    T_routeSelectFailureSpecificInfo_sequence, hf_index, ett_camel_T_routeSelectFailureSpecificInfo);
4265
4266   return offset;
4267 }
4268 static int dissect_routeSelectFailureSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4269   return dissect_camel_T_routeSelectFailureSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_routeSelectFailureSpecificInfo);
4270 }
4271
4272
4273 static const ber_sequence_t T_oCalledPartyBusySpecificInfo_sequence[] = {
4274   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
4275   { 0, 0, 0, NULL }
4276 };
4277
4278 static int
4279 dissect_camel_T_oCalledPartyBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4280   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4281                                    T_oCalledPartyBusySpecificInfo_sequence, hf_index, ett_camel_T_oCalledPartyBusySpecificInfo);
4282
4283   return offset;
4284 }
4285 static int dissect_oCalledPartyBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4286   return dissect_camel_T_oCalledPartyBusySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oCalledPartyBusySpecificInfo);
4287 }
4288
4289
4290 static const ber_sequence_t T_oNoAnswerSpecificInfo_sequence[] = {
4291   { 0, 0, 0, NULL }
4292 };
4293
4294 static int
4295 dissect_camel_T_oNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4296   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4297                                    T_oNoAnswerSpecificInfo_sequence, hf_index, ett_camel_T_oNoAnswerSpecificInfo);
4298
4299   return offset;
4300 }
4301 static int dissect_oNoAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4302   return dissect_camel_T_oNoAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oNoAnswerSpecificInfo);
4303 }
4304
4305
4306 static const ber_sequence_t T_oAnswerSpecificInfo_sequence[] = {
4307   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationAddress_impl },
4308   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Call_impl },
4309   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedCall_impl },
4310   { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeIndicator_impl },
4311   { BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl },
4312   { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode2_impl },
4313   { 0, 0, 0, NULL }
4314 };
4315
4316 static int
4317 dissect_camel_T_oAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4318   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4319                                    T_oAnswerSpecificInfo_sequence, hf_index, ett_camel_T_oAnswerSpecificInfo);
4320
4321   return offset;
4322 }
4323 static int dissect_oAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4324   return dissect_camel_T_oAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oAnswerSpecificInfo);
4325 }
4326
4327
4328 static const value_string camel_T_midCallEvents_vals[] = {
4329   {   3, "dTMFDigitsCompleted" },
4330   {   4, "dTMFDigitsTimeOut" },
4331   { 0, NULL }
4332 };
4333
4334 static const ber_choice_t T_midCallEvents_choice[] = {
4335   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_dTMFDigitsCompleted_impl },
4336   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_dTMFDigitsTimeOut_impl },
4337   { 0, 0, 0, 0, NULL }
4338 };
4339
4340 static int
4341 dissect_camel_T_midCallEvents(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4342   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4343                                  T_midCallEvents_choice, hf_index, ett_camel_T_midCallEvents,
4344                                  NULL);
4345
4346   return offset;
4347 }
4348 static int dissect_midCallEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4349   return dissect_camel_T_midCallEvents(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallEvents);
4350 }
4351
4352
4353 static const ber_sequence_t T_oMidCallSpecificInfo_sequence[] = {
4354   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_midCallEvents_impl },
4355   { 0, 0, 0, NULL }
4356 };
4357
4358 static int
4359 dissect_camel_T_oMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4360   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4361                                    T_oMidCallSpecificInfo_sequence, hf_index, ett_camel_T_oMidCallSpecificInfo);
4362
4363   return offset;
4364 }
4365 static int dissect_oMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4366   return dissect_camel_T_oMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oMidCallSpecificInfo);
4367 }
4368
4369
4370 static const ber_sequence_t T_oDisconnectSpecificInfo_sequence[] = {
4371   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
4372   { 0, 0, 0, NULL }
4373 };
4374
4375 static int
4376 dissect_camel_T_oDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4377   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4378                                    T_oDisconnectSpecificInfo_sequence, hf_index, ett_camel_T_oDisconnectSpecificInfo);
4379
4380   return offset;
4381 }
4382 static int dissect_oDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4383   return dissect_camel_T_oDisconnectSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oDisconnectSpecificInfo);
4384 }
4385
4386
4387 static const ber_sequence_t T_tBusySpecificInfo_sequence[] = {
4388   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_busyCause_impl },
4389   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwarded_impl },
4390   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeNotPermitted_impl },
4391   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingDestinationNumber_impl },
4392   { 0, 0, 0, NULL }
4393 };
4394
4395 static int
4396 dissect_camel_T_tBusySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4397   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4398                                    T_tBusySpecificInfo_sequence, hf_index, ett_camel_T_tBusySpecificInfo);
4399
4400   return offset;
4401 }
4402 static int dissect_tBusySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4403   return dissect_camel_T_tBusySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tBusySpecificInfo);
4404 }
4405
4406
4407 static const ber_sequence_t T_tNoAnswerSpecificInfo_sequence[] = {
4408   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callForwarded_impl },
4409   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingDestinationNumber_impl },
4410   { 0, 0, 0, NULL }
4411 };
4412
4413 static int
4414 dissect_camel_T_tNoAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4415   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4416                                    T_tNoAnswerSpecificInfo_sequence, hf_index, ett_camel_T_tNoAnswerSpecificInfo);
4417
4418   return offset;
4419 }
4420 static int dissect_tNoAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4421   return dissect_camel_T_tNoAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tNoAnswerSpecificInfo);
4422 }
4423
4424
4425 static const ber_sequence_t T_tAnswerSpecificInfo_sequence[] = {
4426   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationAddress_impl },
4427   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_or_Call_impl },
4428   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardedCall_impl },
4429   { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeIndicator_impl },
4430   { BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl },
4431   { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode2_impl },
4432   { 0, 0, 0, NULL }
4433 };
4434
4435 static int
4436 dissect_camel_T_tAnswerSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4437   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4438                                    T_tAnswerSpecificInfo_sequence, hf_index, ett_camel_T_tAnswerSpecificInfo);
4439
4440   return offset;
4441 }
4442 static int dissect_tAnswerSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4443   return dissect_camel_T_tAnswerSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tAnswerSpecificInfo);
4444 }
4445
4446
4447 static const value_string camel_T_midCallEvents1_vals[] = {
4448   {   3, "dTMFDigitsCompleted" },
4449   {   4, "dTMFDigitsTimeOut" },
4450   { 0, NULL }
4451 };
4452
4453 static const ber_choice_t T_midCallEvents1_choice[] = {
4454   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_dTMFDigitsCompleted_impl },
4455   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_dTMFDigitsTimeOut_impl },
4456   { 0, 0, 0, 0, NULL }
4457 };
4458
4459 static int
4460 dissect_camel_T_midCallEvents1(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4461   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4462                                  T_midCallEvents1_choice, hf_index, ett_camel_T_midCallEvents1,
4463                                  NULL);
4464
4465   return offset;
4466 }
4467 static int dissect_midCallEvents1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4468   return dissect_camel_T_midCallEvents1(TRUE, tvb, offset, pinfo, tree, hf_camel_midCallEvents1);
4469 }
4470
4471
4472 static const ber_sequence_t T_tMidCallSpecificInfo_sequence[] = {
4473   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_midCallEvents1_impl },
4474   { 0, 0, 0, NULL }
4475 };
4476
4477 static int
4478 dissect_camel_T_tMidCallSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4479   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4480                                    T_tMidCallSpecificInfo_sequence, hf_index, ett_camel_T_tMidCallSpecificInfo);
4481
4482   return offset;
4483 }
4484 static int dissect_tMidCallSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4485   return dissect_camel_T_tMidCallSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tMidCallSpecificInfo);
4486 }
4487
4488
4489 static const ber_sequence_t T_tDisconnectSpecificInfo_sequence[] = {
4490   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
4491   { 0, 0, 0, NULL }
4492 };
4493
4494 static int
4495 dissect_camel_T_tDisconnectSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4496   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4497                                    T_tDisconnectSpecificInfo_sequence, hf_index, ett_camel_T_tDisconnectSpecificInfo);
4498
4499   return offset;
4500 }
4501 static int dissect_tDisconnectSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4502   return dissect_camel_T_tDisconnectSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tDisconnectSpecificInfo);
4503 }
4504
4505
4506 static const ber_sequence_t T_oTermSeizedSpecificInfo_sequence[] = {
4507   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
4508   { 0, 0, 0, NULL }
4509 };
4510
4511 static int
4512 dissect_camel_T_oTermSeizedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4513   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4514                                    T_oTermSeizedSpecificInfo_sequence, hf_index, ett_camel_T_oTermSeizedSpecificInfo);
4515
4516   return offset;
4517 }
4518 static int dissect_oTermSeizedSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4519   return dissect_camel_T_oTermSeizedSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oTermSeizedSpecificInfo);
4520 }
4521
4522
4523 static const ber_sequence_t T_callAcceptedSpecificInfo_sequence[] = {
4524   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
4525   { 0, 0, 0, NULL }
4526 };
4527
4528 static int
4529 dissect_camel_T_callAcceptedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4530   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4531                                    T_callAcceptedSpecificInfo_sequence, hf_index, ett_camel_T_callAcceptedSpecificInfo);
4532
4533   return offset;
4534 }
4535 static int dissect_callAcceptedSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4536   return dissect_camel_T_callAcceptedSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_callAcceptedSpecificInfo);
4537 }
4538
4539
4540 static const ber_sequence_t T_oAbandonSpecificInfo_sequence[] = {
4541   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeNotPermitted_impl },
4542   { 0, 0, 0, NULL }
4543 };
4544
4545 static int
4546 dissect_camel_T_oAbandonSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4547   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4548                                    T_oAbandonSpecificInfo_sequence, hf_index, ett_camel_T_oAbandonSpecificInfo);
4549
4550   return offset;
4551 }
4552 static int dissect_oAbandonSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4553   return dissect_camel_T_oAbandonSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oAbandonSpecificInfo);
4554 }
4555
4556
4557 static const ber_sequence_t MetDPCriterionAlt_sequence[] = {
4558   { 0, 0, 0, NULL }
4559 };
4560
4561 static int
4562 dissect_camel_MetDPCriterionAlt(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4563   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4564                                    MetDPCriterionAlt_sequence, hf_index, ett_camel_MetDPCriterionAlt);
4565
4566   return offset;
4567 }
4568 static int dissect_metDPCriterionAlt_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4569   return dissect_camel_MetDPCriterionAlt(TRUE, tvb, offset, pinfo, tree, hf_camel_metDPCriterionAlt);
4570 }
4571
4572
4573 static const value_string camel_MetDPCriterion_vals[] = {
4574   {   0, "enteringCellGlobalId" },
4575   {   1, "leavingCellGlobalId" },
4576   {   2, "enteringServiceAreaId" },
4577   {   3, "leavingServiceAreaId" },
4578   {   4, "enteringLocationAreaId" },
4579   {   5, "leavingLocationAreaId" },
4580   {   6, "inter-SystemHandOverToUMTS" },
4581   {   7, "inter-SystemHandOverToGSM" },
4582   {   8, "inter-PLMNHandOver" },
4583   {   9, "inter-MSCHandOver" },
4584   {  10, "metDPCriterionAlt" },
4585   { 0, NULL }
4586 };
4587
4588 static const ber_choice_t MetDPCriterion_choice[] = {
4589   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_enteringCellGlobalId_impl },
4590   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_leavingCellGlobalId_impl },
4591   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_enteringServiceAreaId_impl },
4592   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_leavingServiceAreaId_impl },
4593   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_enteringLocationAreaId_impl },
4594   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_leavingLocationAreaId_impl },
4595   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_inter_SystemHandOverToUMTS_impl },
4596   {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_inter_SystemHandOverToGSM_impl },
4597   {   8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_inter_PLMNHandOver_impl },
4598   {   9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_inter_MSCHandOver_impl },
4599   {  10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_metDPCriterionAlt_impl },
4600   { 0, 0, 0, 0, NULL }
4601 };
4602
4603 static int
4604 dissect_camel_MetDPCriterion(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4605   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4606                                  MetDPCriterion_choice, hf_index, ett_camel_MetDPCriterion,
4607                                  NULL);
4608
4609   return offset;
4610 }
4611 static int dissect_MetDPCriteriaList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4612   return dissect_camel_MetDPCriterion(FALSE, tvb, offset, pinfo, tree, hf_camel_MetDPCriteriaList_item);
4613 }
4614
4615
4616 static const ber_sequence_t MetDPCriteriaList_sequence_of[1] = {
4617   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_MetDPCriteriaList_item },
4618 };
4619
4620 static int
4621 dissect_camel_MetDPCriteriaList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4622   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
4623                                       MetDPCriteriaList_sequence_of, hf_index, ett_camel_MetDPCriteriaList);
4624
4625   return offset;
4626 }
4627 static int dissect_metDPCriteriaList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4628   return dissect_camel_MetDPCriteriaList(TRUE, tvb, offset, pinfo, tree, hf_camel_metDPCriteriaList);
4629 }
4630
4631
4632 static const ber_sequence_t T_oChangeOfPositionSpecificInfo_sequence[] = {
4633   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
4634   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_metDPCriteriaList_impl },
4635   { 0, 0, 0, NULL }
4636 };
4637
4638 static int
4639 dissect_camel_T_oChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4640   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4641                                    T_oChangeOfPositionSpecificInfo_sequence, hf_index, ett_camel_T_oChangeOfPositionSpecificInfo);
4642
4643   return offset;
4644 }
4645 static int dissect_oChangeOfPositionSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4646   return dissect_camel_T_oChangeOfPositionSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_oChangeOfPositionSpecificInfo);
4647 }
4648
4649
4650 static const ber_sequence_t T_tChangeOfPositionSpecificInfo_sequence[] = {
4651   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
4652   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_metDPCriteriaList_impl },
4653   { 0, 0, 0, NULL }
4654 };
4655
4656 static int
4657 dissect_camel_T_tChangeOfPositionSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4658   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4659                                    T_tChangeOfPositionSpecificInfo_sequence, hf_index, ett_camel_T_tChangeOfPositionSpecificInfo);
4660
4661   return offset;
4662 }
4663 static int dissect_tChangeOfPositionSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4664   return dissect_camel_T_tChangeOfPositionSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tChangeOfPositionSpecificInfo);
4665 }
4666
4667
4668 static const value_string camel_EventSpecificInformationBCSM_vals[] = {
4669   {   2, "routeSelectFailureSpecificInfo" },
4670   {   3, "oCalledPartyBusySpecificInfo" },
4671   {   4, "oNoAnswerSpecificInfo" },
4672   {   5, "oAnswerSpecificInfo" },
4673   {   6, "oMidCallSpecificInfo" },
4674   {   7, "oDisconnectSpecificInfo" },
4675   {   8, "tBusySpecificInfo" },
4676   {   9, "tNoAnswerSpecificInfo" },
4677   {  10, "tAnswerSpecificInfo" },
4678   {  11, "tMidCallSpecificInfo" },
4679   {  12, "tDisconnectSpecificInfo" },
4680   {  13, "oTermSeizedSpecificInfo" },
4681   {  20, "callAcceptedSpecificInfo" },
4682   {  21, "oAbandonSpecificInfo" },
4683   {  50, "oChangeOfPositionSpecificInfo" },
4684   {  51, "tChangeOfPositionSpecificInfo" },
4685   {  52, "dpSpecificInfoAlt" },
4686   { 0, NULL }
4687 };
4688
4689 static const ber_choice_t EventSpecificInformationBCSM_choice[] = {
4690   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_routeSelectFailureSpecificInfo_impl },
4691   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_oCalledPartyBusySpecificInfo_impl },
4692   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_oNoAnswerSpecificInfo_impl },
4693   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_oAnswerSpecificInfo_impl },
4694   {   6, BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_oMidCallSpecificInfo_impl },
4695   {   7, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_oDisconnectSpecificInfo_impl },
4696   {   8, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_tBusySpecificInfo_impl },
4697   {   9, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_tNoAnswerSpecificInfo_impl },
4698   {  10, BER_CLASS_CON, 10, BER_FLAGS_IMPLTAG, dissect_tAnswerSpecificInfo_impl },
4699   {  11, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_tMidCallSpecificInfo_impl },
4700   {  12, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_tDisconnectSpecificInfo_impl },
4701   {  13, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_oTermSeizedSpecificInfo_impl },
4702   {  20, BER_CLASS_CON, 20, BER_FLAGS_IMPLTAG, dissect_callAcceptedSpecificInfo_impl },
4703   {  21, BER_CLASS_CON, 21, BER_FLAGS_IMPLTAG, dissect_oAbandonSpecificInfo_impl },
4704   {  50, BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG, dissect_oChangeOfPositionSpecificInfo_impl },
4705   {  51, BER_CLASS_CON, 51, BER_FLAGS_IMPLTAG, dissect_tChangeOfPositionSpecificInfo_impl },
4706   {  52, BER_CLASS_CON, 52, BER_FLAGS_IMPLTAG, dissect_dpSpecificInfoAlt_impl },
4707   { 0, 0, 0, 0, NULL }
4708 };
4709
4710 static int
4711 dissect_camel_EventSpecificInformationBCSM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4712   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4713                                  EventSpecificInformationBCSM_choice, hf_index, ett_camel_EventSpecificInformationBCSM,
4714                                  NULL);
4715
4716   return offset;
4717 }
4718 static int dissect_eventSpecificInformationBCSM_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4719   return dissect_camel_EventSpecificInformationBCSM(TRUE, tvb, offset, pinfo, tree, hf_camel_eventSpecificInformationBCSM);
4720 }
4721
4722
4723 static const value_string camel_MO_SMSCause_vals[] = {
4724   {   0, "systemFailure" },
4725   {   1, "unexpectedDataValue" },
4726   {   2, "facilityNotSupported" },
4727   {   3, "sM-DeliveryFailure" },
4728   {   4, "releaseFromRadioInterface" },
4729   { 0, NULL }
4730 };
4731
4732
4733 static int
4734 dissect_camel_MO_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4735   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4736                                   NULL);
4737
4738   return offset;
4739 }
4740 static int dissect_smsfailureCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4741   return dissect_camel_MO_SMSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_smsfailureCause);
4742 }
4743
4744
4745 static const ber_sequence_t T_o_smsFailureSpecificInfo_sequence[] = {
4746   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_smsfailureCause_impl },
4747   { 0, 0, 0, NULL }
4748 };
4749
4750 static int
4751 dissect_camel_T_o_smsFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4752   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4753                                    T_o_smsFailureSpecificInfo_sequence, hf_index, ett_camel_T_o_smsFailureSpecificInfo);
4754
4755   return offset;
4756 }
4757 static int dissect_o_smsFailureSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4758   return dissect_camel_T_o_smsFailureSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_o_smsFailureSpecificInfo);
4759 }
4760
4761
4762 static const ber_sequence_t T_o_smsSubmittedSpecificInfo_sequence[] = {
4763   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_foo },
4764   { 0, 0, 0, NULL }
4765 };
4766
4767 static int
4768 dissect_camel_T_o_smsSubmittedSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4769   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4770                                    T_o_smsSubmittedSpecificInfo_sequence, hf_index, ett_camel_T_o_smsSubmittedSpecificInfo);
4771
4772   return offset;
4773 }
4774 static int dissect_o_smsSubmittedSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4775   return dissect_camel_T_o_smsSubmittedSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_o_smsSubmittedSpecificInfo);
4776 }
4777
4778
4779
4780 static int
4781 dissect_camel_MT_SMSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4782   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4783                                        NULL);
4784
4785   return offset;
4786 }
4787 static int dissect_failureCause1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4788   return dissect_camel_MT_SMSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_failureCause1);
4789 }
4790
4791
4792 static const ber_sequence_t T_t_smsFailureSpecificInfo_sequence[] = {
4793   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_failureCause1_impl },
4794   { 0, 0, 0, NULL }
4795 };
4796
4797 static int
4798 dissect_camel_T_t_smsFailureSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4799   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4800                                    T_t_smsFailureSpecificInfo_sequence, hf_index, ett_camel_T_t_smsFailureSpecificInfo);
4801
4802   return offset;
4803 }
4804 static int dissect_t_smsFailureSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4805   return dissect_camel_T_t_smsFailureSpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_t_smsFailureSpecificInfo);
4806 }
4807
4808
4809 static const ber_sequence_t T_t_smsDeliverySpecificInfo_sequence[] = {
4810   { 0, 0, 0, NULL }
4811 };
4812
4813 static int
4814 dissect_camel_T_t_smsDeliverySpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4815   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4816                                    T_t_smsDeliverySpecificInfo_sequence, hf_index, ett_camel_T_t_smsDeliverySpecificInfo);
4817
4818   return offset;
4819 }
4820 static int dissect_t_smsDeliverySpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4821   return dissect_camel_T_t_smsDeliverySpecificInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_t_smsDeliverySpecificInfo);
4822 }
4823
4824
4825 static const value_string camel_EventSpecificInformationSMS_vals[] = {
4826   {   0, "o-smsFailureSpecificInfo" },
4827   {   1, "o-smsSubmittedSpecificInfo" },
4828   {   2, "t-smsFailureSpecificInfo" },
4829   {   3, "t-smsDeliverySpecificInfo" },
4830   { 0, NULL }
4831 };
4832
4833 static const ber_choice_t EventSpecificInformationSMS_choice[] = {
4834   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_o_smsFailureSpecificInfo_impl },
4835   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_o_smsSubmittedSpecificInfo_impl },
4836   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_t_smsFailureSpecificInfo_impl },
4837   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_t_smsDeliverySpecificInfo_impl },
4838   { 0, 0, 0, 0, NULL }
4839 };
4840
4841 static int
4842 dissect_camel_EventSpecificInformationSMS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4843   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4844                                  EventSpecificInformationSMS_choice, hf_index, ett_camel_EventSpecificInformationSMS,
4845                                  NULL);
4846
4847   return offset;
4848 }
4849 static int dissect_eventSpecificInformationSMS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4850   return dissect_camel_EventSpecificInformationSMS(TRUE, tvb, offset, pinfo, tree, hf_camel_eventSpecificInformationSMS);
4851 }
4852
4853
4854 static const value_string camel_EventTypeSMS_vals[] = {
4855   {   1, "sms-CollectedInfo" },
4856   {   2, "o-smsFailure" },
4857   {   3, "o-smsSubmission" },
4858   {  11, "sms-DeliveryRequested" },
4859   {  12, "t-smsFailure" },
4860   {  13, "t-smsDelivery" },
4861   { 0, NULL }
4862 };
4863
4864
4865 static int
4866 dissect_camel_EventTypeSMS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4867   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4868                                   NULL);
4869
4870   return offset;
4871 }
4872 static int dissect_eventTypeSMS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4873   return dissect_camel_EventTypeSMS(TRUE, tvb, offset, pinfo, tree, hf_camel_eventTypeSMS);
4874 }
4875
4876
4877
4878 static int
4879 dissect_camel_FCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4880   offset = dissect_camel_CAMEL_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4881
4882   return offset;
4883 }
4884
4885
4886
4887 static int
4888 dissect_camel_FCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4889   offset = dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index);
4890
4891   return offset;
4892 }
4893
4894
4895
4896 static int
4897 dissect_camel_FCISMSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4898   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4899                                        NULL);
4900
4901   return offset;
4902 }
4903
4904
4905 static const ber_sequence_t ForwardServiceInteractionInd_sequence[] = {
4906   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_conferenceTreatmentIndicator_impl },
4907   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callDiversionTreatmentIndicator_impl },
4908   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyRestrictionIndicator_impl },
4909   { 0, 0, 0, NULL }
4910 };
4911
4912 static int
4913 dissect_camel_ForwardServiceInteractionInd(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4914   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4915                                    ForwardServiceInteractionInd_sequence, hf_index, ett_camel_ForwardServiceInteractionInd);
4916
4917   return offset;
4918 }
4919 static int dissect_forwardServiceInteractionInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4920   return dissect_camel_ForwardServiceInteractionInd(TRUE, tvb, offset, pinfo, tree, hf_camel_forwardServiceInteractionInd);
4921 }
4922
4923
4924 static const value_string camel_GapCriteria_vals[] = {
4925   {   0, "basicGapCriteria" },
4926   {   1, "compoundGapCriteria" },
4927   { 0, NULL }
4928 };
4929
4930 static const ber_choice_t GapCriteria_choice[] = {
4931   {   0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_basicGapCriteria },
4932   {   1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_compoundGapCriteria },
4933   { 0, 0, 0, 0, NULL }
4934 };
4935
4936 static int
4937 dissect_camel_GapCriteria(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4938   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
4939                                  GapCriteria_choice, hf_index, ett_camel_GapCriteria,
4940                                  NULL);
4941
4942   return offset;
4943 }
4944 static int dissect_gapCriteria_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4945   return dissect_camel_GapCriteria(TRUE, tvb, offset, pinfo, tree, hf_camel_gapCriteria);
4946 }
4947
4948
4949
4950 static int
4951 dissect_camel_Duration(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4952   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4953                                   NULL);
4954
4955   return offset;
4956 }
4957 static int dissect_duration1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4958   return dissect_camel_Duration(TRUE, tvb, offset, pinfo, tree, hf_camel_duration1);
4959 }
4960
4961
4962
4963 static int
4964 dissect_camel_Interval(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4965   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4966                                   NULL);
4967
4968   return offset;
4969 }
4970 static int dissect_gapInterval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4971   return dissect_camel_Interval(TRUE, tvb, offset, pinfo, tree, hf_camel_gapInterval);
4972 }
4973
4974
4975 static const ber_sequence_t GapIndicators_sequence[] = {
4976   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_duration1_impl },
4977   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapInterval_impl },
4978   { 0, 0, 0, NULL }
4979 };
4980
4981 static int
4982 dissect_camel_GapIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4983   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
4984                                    GapIndicators_sequence, hf_index, ett_camel_GapIndicators);
4985
4986   return offset;
4987 }
4988 static int dissect_gapIndicators_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
4989   return dissect_camel_GapIndicators(TRUE, tvb, offset, pinfo, tree, hf_camel_gapIndicators);
4990 }
4991
4992
4993
4994 static int
4995 dissect_camel_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
4996   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
4997                                   NULL);
4998
4999   return offset;
5000 }
5001 static int dissect_elementaryMessageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5002   return dissect_camel_Integer4(TRUE, tvb, offset, pinfo, tree, hf_camel_elementaryMessageID);
5003 }
5004 static int dissect_elementaryMessageIDs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5005   return dissect_camel_Integer4(FALSE, tvb, offset, pinfo, tree, hf_camel_elementaryMessageIDs_item);
5006 }
5007 static int dissect_callConnectedElapsedTimeValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5008   return dissect_camel_Integer4(TRUE, tvb, offset, pinfo, tree, hf_camel_callConnectedElapsedTimeValue);
5009 }
5010 static int dissect_toneID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5011   return dissect_camel_Integer4(TRUE, tvb, offset, pinfo, tree, hf_camel_toneID);
5012 }
5013 static int dissect_duration3_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5014   return dissect_camel_Integer4(TRUE, tvb, offset, pinfo, tree, hf_camel_duration3);
5015 }
5016 static int dissect_integer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5017   return dissect_camel_Integer4(TRUE, tvb, offset, pinfo, tree, hf_camel_integer);
5018 }
5019 static int dissect_destinationReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5020   return dissect_camel_Integer4(FALSE, tvb, offset, pinfo, tree, hf_camel_destinationReference);
5021 }
5022 static int dissect_originationReference(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5023   return dissect_camel_Integer4(FALSE, tvb, offset, pinfo, tree, hf_camel_originationReference);
5024 }
5025
5026
5027
5028 static int
5029 dissect_camel_IA5String_SIZE_1_127(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5030   offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
5031                                             pinfo, tree, tvb, offset, hf_index,
5032                                             NULL);
5033
5034   return offset;
5035 }
5036 static int dissect_messageContent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5037   return dissect_camel_IA5String_SIZE_1_127(TRUE, tvb, offset, pinfo, tree, hf_camel_messageContent);
5038 }
5039
5040
5041
5042 static int
5043 dissect_camel_OCTET_STRING_SIZE_2_10(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5044   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5045                                        NULL);
5046
5047   return offset;
5048 }
5049 static int dissect_attributes_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5050   return dissect_camel_OCTET_STRING_SIZE_2_10(TRUE, tvb, offset, pinfo, tree, hf_camel_attributes);
5051 }
5052
5053
5054 static const ber_sequence_t T_text_sequence[] = {
5055   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageContent_impl },
5056   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributes_impl },
5057   { 0, 0, 0, NULL }
5058 };
5059
5060 static int
5061 dissect_camel_T_text(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5062   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5063                                    T_text_sequence, hf_index, ett_camel_T_text);
5064
5065   return offset;
5066 }
5067 static int dissect_text_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5068   return dissect_camel_T_text(TRUE, tvb, offset, pinfo, tree, hf_camel_text);
5069 }
5070
5071
5072 static const ber_sequence_t SEQUENCE_SIZE_1_16_OF_Integer4_sequence_of[1] = {
5073   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_elementaryMessageIDs_item },
5074 };
5075
5076 static int
5077 dissect_camel_SEQUENCE_SIZE_1_16_OF_Integer4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5078   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5079                                       SEQUENCE_SIZE_1_16_OF_Integer4_sequence_of, hf_index, ett_camel_SEQUENCE_SIZE_1_16_OF_Integer4);
5080
5081   return offset;
5082 }
5083 static int dissect_elementaryMessageIDs_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5084   return dissect_camel_SEQUENCE_SIZE_1_16_OF_Integer4(TRUE, tvb, offset, pinfo, tree, hf_camel_elementaryMessageIDs);
5085 }
5086
5087
5088
5089 static int
5090 dissect_camel_OCTET_STRING_SIZE_2(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5091   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5092                                        NULL);
5093
5094   return offset;
5095 }
5096 static int dissect_time_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5097   return dissect_camel_OCTET_STRING_SIZE_2(TRUE, tvb, offset, pinfo, tree, hf_camel_time);
5098 }
5099
5100
5101
5102 static int
5103 dissect_camel_OCTET_STRING_SIZE_4(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5104   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5105                                        NULL);
5106
5107   return offset;
5108 }
5109 static int dissect_date_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5110   return dissect_camel_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_camel_date);
5111 }
5112 static int dissect_price_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5113   return dissect_camel_OCTET_STRING_SIZE_4(TRUE, tvb, offset, pinfo, tree, hf_camel_price);
5114 }
5115
5116
5117 static const value_string camel_VariablePart_vals[] = {
5118   {   0, "integer" },
5119   {   1, "number" },
5120   {   2, "time" },
5121   {   3, "date" },
5122   {   4, "price" },
5123   { 0, NULL }
5124 };
5125
5126 static const ber_choice_t VariablePart_choice[] = {
5127   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_integer_impl },
5128   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_number_impl },
5129   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_time_impl },
5130   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_date_impl },
5131   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_price_impl },
5132   { 0, 0, 0, 0, NULL }
5133 };
5134
5135 static int
5136 dissect_camel_VariablePart(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5137   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5138                                  VariablePart_choice, hf_index, ett_camel_VariablePart,
5139                                  NULL);
5140
5141   return offset;
5142 }
5143 static int dissect_VariablePartsArray_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5144   return dissect_camel_VariablePart(FALSE, tvb, offset, pinfo, tree, hf_camel_VariablePartsArray_item);
5145 }
5146
5147
5148 static const ber_sequence_t VariablePartsArray_sequence_of[1] = {
5149   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_VariablePartsArray_item },
5150 };
5151
5152 static int
5153 dissect_camel_VariablePartsArray(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5154   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5155                                       VariablePartsArray_sequence_of, hf_index, ett_camel_VariablePartsArray);
5156
5157   return offset;
5158 }
5159 static int dissect_variableParts_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5160   return dissect_camel_VariablePartsArray(TRUE, tvb, offset, pinfo, tree, hf_camel_variableParts);
5161 }
5162
5163
5164 static const ber_sequence_t T_variableMessage_sequence[] = {
5165   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl },
5166   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_variableParts_impl },
5167   { 0, 0, 0, NULL }
5168 };
5169
5170 static int
5171 dissect_camel_T_variableMessage(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5172   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5173                                    T_variableMessage_sequence, hf_index, ett_camel_T_variableMessage);
5174
5175   return offset;
5176 }
5177 static int dissect_variableMessage_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5178   return dissect_camel_T_variableMessage(TRUE, tvb, offset, pinfo, tree, hf_camel_variableMessage);
5179 }
5180
5181
5182 static const value_string camel_MessageID_vals[] = {
5183   {   0, "elementaryMessageID" },
5184   {   1, "text" },
5185   {  29, "elementaryMessageIDs" },
5186   {  30, "variableMessage" },
5187   { 0, NULL }
5188 };
5189
5190 static const ber_choice_t MessageID_choice[] = {
5191   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_elementaryMessageID_impl },
5192   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_text_impl },
5193   {  29, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_elementaryMessageIDs_impl },
5194   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_variableMessage_impl },
5195   { 0, 0, 0, 0, NULL }
5196 };
5197
5198 static int
5199 dissect_camel_MessageID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5200   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5201                                  MessageID_choice, hf_index, ett_camel_MessageID,
5202                                  NULL);
5203
5204   return offset;
5205 }
5206 static int dissect_messageID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5207   return dissect_camel_MessageID(TRUE, tvb, offset, pinfo, tree, hf_camel_messageID);
5208 }
5209
5210
5211
5212 static int
5213 dissect_camel_INTEGER_0_32767(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5214   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5215                                   NULL);
5216
5217   return offset;
5218 }
5219 static int dissect_duration2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5220   return dissect_camel_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_camel_duration2);
5221 }
5222 static int dissect_interval_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5223   return dissect_camel_INTEGER_0_32767(TRUE, tvb, offset, pinfo, tree, hf_camel_interval);
5224 }
5225
5226
5227 static const ber_sequence_t InbandInfo_sequence[] = {
5228   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_messageID_impl },
5229   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_numberOfRepetitions_impl },
5230   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_duration2_impl },
5231   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_interval_impl },
5232   { 0, 0, 0, NULL }
5233 };
5234
5235 static int
5236 dissect_camel_InbandInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5237   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5238                                    InbandInfo_sequence, hf_index, ett_camel_InbandInfo);
5239
5240   return offset;
5241 }
5242 static int dissect_inbandInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5243   return dissect_camel_InbandInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_inbandInfo);
5244 }
5245
5246
5247 static const ber_sequence_t Tone_sequence[] = {
5248   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_toneID_impl },
5249   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_duration3_impl },
5250   { 0, 0, 0, NULL }
5251 };
5252
5253 static int
5254 dissect_camel_Tone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5255   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5256                                    Tone_sequence, hf_index, ett_camel_Tone);
5257
5258   return offset;
5259 }
5260 static int dissect_tone1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5261   return dissect_camel_Tone(TRUE, tvb, offset, pinfo, tree, hf_camel_tone1);
5262 }
5263
5264
5265 static const value_string camel_InformationToSend_vals[] = {
5266   {   0, "inbandInfo" },
5267   {   1, "tone" },
5268   { 0, NULL }
5269 };
5270
5271 static const ber_choice_t InformationToSend_choice[] = {
5272   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_inbandInfo_impl },
5273   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_tone1_impl },
5274   { 0, 0, 0, 0, NULL }
5275 };
5276
5277 static int
5278 dissect_camel_InformationToSend(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5279   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5280                                  InformationToSend_choice, hf_index, ett_camel_InformationToSend,
5281                                  NULL);
5282
5283   return offset;
5284 }
5285 static int dissect_informationToSend_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5286   return dissect_camel_InformationToSend(TRUE, tvb, offset, pinfo, tree, hf_camel_informationToSend);
5287 }
5288
5289
5290 static const value_string camel_GapTreatment_vals[] = {
5291   {   0, "informationToSend" },
5292   {   1, "releaseCause" },
5293   { 0, NULL }
5294 };
5295
5296 static const ber_choice_t GapTreatment_choice[] = {
5297   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_informationToSend_impl },
5298   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
5299   { 0, 0, 0, 0, NULL }
5300 };
5301
5302 static int
5303 dissect_camel_GapTreatment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5304   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5305                                  GapTreatment_choice, hf_index, ett_camel_GapTreatment,
5306                                  NULL);
5307
5308   return offset;
5309 }
5310 static int dissect_gapTreatment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5311   return dissect_camel_GapTreatment(TRUE, tvb, offset, pinfo, tree, hf_camel_gapTreatment);
5312 }
5313
5314
5315
5316 static int
5317 dissect_camel_GenericNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5318   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5319                                        NULL);
5320
5321   return offset;
5322 }
5323 static int dissect_GenericNumbers_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5324   return dissect_camel_GenericNumber(FALSE, tvb, offset, pinfo, tree, hf_camel_GenericNumbers_item);
5325 }
5326
5327
5328 static const ber_sequence_t GenericNumbers_set_of[1] = {
5329   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_GenericNumbers_item },
5330 };
5331
5332 static int
5333 dissect_camel_GenericNumbers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5334   offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
5335                                  GenericNumbers_set_of, hf_index, ett_camel_GenericNumbers);
5336
5337   return offset;
5338 }
5339 static int dissect_genericNumbers_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5340   return dissect_camel_GenericNumbers(TRUE, tvb, offset, pinfo, tree, hf_camel_genericNumbers);
5341 }
5342
5343
5344 static const value_string camel_GPRS_QoS_vals[] = {
5345   {   0, "short-QoS-format" },
5346   {   1, "long-QoS-format" },
5347   { 0, NULL }
5348 };
5349
5350 static const ber_choice_t GPRS_QoS_choice[] = {
5351   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_short_QoS_format_impl },
5352   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_long_QoS_format_impl },
5353   { 0, 0, 0, 0, NULL }
5354 };
5355
5356 static int
5357 dissect_camel_GPRS_QoS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5358   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5359                                  GPRS_QoS_choice, hf_index, ett_camel_GPRS_QoS,
5360                                  NULL);
5361
5362   return offset;
5363 }
5364 static int dissect_requested_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5365   return dissect_camel_GPRS_QoS(TRUE, tvb, offset, pinfo, tree, hf_camel_requested_QoS);
5366 }
5367 static int dissect_subscribed_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5368   return dissect_camel_GPRS_QoS(TRUE, tvb, offset, pinfo, tree, hf_camel_subscribed_QoS);
5369 }
5370 static int dissect_negotiated_QoS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5371   return dissect_camel_GPRS_QoS(TRUE, tvb, offset, pinfo, tree, hf_camel_negotiated_QoS);
5372 }
5373
5374
5375 static const ber_sequence_t GPRS_QoS_Extension_sequence[] = {
5376   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_supplement_to_long_QoS_format_impl },
5377   { 0, 0, 0, NULL }
5378 };
5379
5380 static int
5381 dissect_camel_GPRS_QoS_Extension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5382   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5383                                    GPRS_QoS_Extension_sequence, hf_index, ett_camel_GPRS_QoS_Extension);
5384
5385   return offset;
5386 }
5387 static int dissect_requested_QoS_Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5388   return dissect_camel_GPRS_QoS_Extension(TRUE, tvb, offset, pinfo, tree, hf_camel_requested_QoS_Extension);
5389 }
5390 static int dissect_subscribed_QoS_Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5391   return dissect_camel_GPRS_QoS_Extension(TRUE, tvb, offset, pinfo, tree, hf_camel_subscribed_QoS_Extension);
5392 }
5393 static int dissect_negotiated_QoS_Extension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5394   return dissect_camel_GPRS_QoS_Extension(TRUE, tvb, offset, pinfo, tree, hf_camel_negotiated_QoS_Extension);
5395 }
5396
5397
5398
5399 static int
5400 dissect_camel_GPRSCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5401   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5402                                        NULL);
5403
5404   return offset;
5405 }
5406 static int dissect_gPRSCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5407   return dissect_camel_GPRSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSCause);
5408 }
5409 static int dissect_gprsCause_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5410   return dissect_camel_GPRSCause(TRUE, tvb, offset, pinfo, tree, hf_camel_gprsCause);
5411 }
5412
5413
5414 static const value_string camel_GPRSEventType_vals[] = {
5415   {   1, "attach" },
5416   {   2, "attachChangeOfPosition" },
5417   {   3, "detached" },
5418   {  11, "pdp-ContextEstablishment" },
5419   {  12, "pdp-ContextEstablishmentAcknowledgement" },
5420   {  13, "disconnect" },
5421   {  14, "pdp-ContextChangeOfPosition" },
5422   { 0, NULL }
5423 };
5424
5425
5426 static int
5427 dissect_camel_GPRSEventType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5428   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5429                                   NULL);
5430
5431   return offset;
5432 }
5433 static int dissect_gPRSEventType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5434   return dissect_camel_GPRSEventType(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSEventType);
5435 }
5436
5437
5438 static const ber_sequence_t GPRSEvent_sequence[] = {
5439   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gPRSEventType_impl },
5440   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
5441   { 0, 0, 0, NULL }
5442 };
5443
5444 static int
5445 dissect_camel_GPRSEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5446   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5447                                    GPRSEvent_sequence, hf_index, ett_camel_GPRSEvent);
5448
5449   return offset;
5450 }
5451 static int dissect_GPRSEventArray_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5452   return dissect_camel_GPRSEvent(FALSE, tvb, offset, pinfo, tree, hf_camel_GPRSEventArray_item);
5453 }
5454
5455
5456
5457 static int
5458 dissect_camel_CellGlobalIdOrServiceAreaIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5459 #line 412 "camel.cnf"
5460         proto_item *item;
5461         proto_tree *subtree;
5462         int start_offset;
5463
5464  start_offset = offset;
5465   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5466                                        NULL);
5467
5468
5469  item = get_ber_last_created_item();
5470  subtree = proto_item_add_subtree(item, ett_camel_pdptypenumber);
5471
5472  if (tvb_reported_length_remaining(tvb,start_offset) == 7){
5473         dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(TRUE, tvb, start_offset, pinfo, subtree, hf_camel_cellGlobalIdOrServiceAreaIdFixedLength);
5474  }else{
5475         dissect_gsm_map_LAIFixedLength(TRUE, tvb, start_offset, pinfo, subtree, hf_camel_locationAreaId);
5476  }                      
5477
5478
5479
5480
5481   return offset;
5482 }
5483 static int dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5484   return dissect_camel_CellGlobalIdOrServiceAreaIdOrLAI(TRUE, tvb, offset, pinfo, tree, hf_camel_cellGlobalIdOrServiceAreaIdOrLAI);
5485 }
5486
5487
5488
5489 static int
5490 dissect_camel_ExtensionSetextensionId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5491   offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index, NULL);
5492
5493   return offset;
5494 }
5495 static int dissect_extId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5496   return dissect_camel_ExtensionSetextensionId(FALSE, tvb, offset, pinfo, tree, hf_camel_extId);
5497 }
5498
5499
5500 static const ber_sequence_t PrivateExtension_sequence[] = {
5501   { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_extId },
5502   { 0, 0, 0, NULL }
5503 };
5504
5505 static int
5506 dissect_camel_PrivateExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5507   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5508                                    PrivateExtension_sequence, hf_index, ett_camel_PrivateExtension);
5509
5510   return offset;
5511 }
5512 static int dissect_PrivateExtensionList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5513   return dissect_camel_PrivateExtension(FALSE, tvb, offset, pinfo, tree, hf_camel_PrivateExtensionList_item);
5514 }
5515
5516
5517 static const ber_sequence_t PrivateExtensionList_sequence_of[1] = {
5518   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_PrivateExtensionList_item },
5519 };
5520
5521 static int
5522 dissect_camel_PrivateExtensionList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5523   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
5524                                       PrivateExtensionList_sequence_of, hf_index, ett_camel_PrivateExtensionList);
5525
5526   return offset;
5527 }
5528 static int dissect_privateExtensionList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5529   return dissect_camel_PrivateExtensionList(TRUE, tvb, offset, pinfo, tree, hf_camel_privateExtensionList);
5530 }
5531
5532
5533 static const ber_sequence_t PCS_Extensions_sequence[] = {
5534   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_foo },
5535   { 0, 0, 0, NULL }
5536 };
5537
5538 static int
5539 dissect_camel_PCS_Extensions(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5540   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5541                                    PCS_Extensions_sequence, hf_index, ett_camel_PCS_Extensions);
5542
5543   return offset;
5544 }
5545 static int dissect_pcs_Extensions_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5546   return dissect_camel_PCS_Extensions(TRUE, tvb, offset, pinfo, tree, hf_camel_pcs_Extensions);
5547 }
5548
5549
5550 static const ber_sequence_t ExtensionContainer_sequence[] = {
5551   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_privateExtensionList_impl },
5552   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pcs_Extensions_impl },
5553   { 0, 0, 0, NULL }
5554 };
5555
5556 static int
5557 dissect_camel_ExtensionContainer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5558   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5559                                    ExtensionContainer_sequence, hf_index, ett_camel_ExtensionContainer);
5560
5561   return offset;
5562 }
5563 static int dissect_extensionContainer_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5564   return dissect_camel_ExtensionContainer(TRUE, tvb, offset, pinfo, tree, hf_camel_extensionContainer);
5565 }
5566
5567
5568 static const ber_sequence_t LocationInformationGPRS_sequence[] = {
5569   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cellGlobalIdOrServiceAreaIdOrLAI_impl },
5570   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingAreaIdentity_impl },
5571   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_geographicalInformation_impl },
5572   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsn_Number_impl },
5573   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_selectedLSAIdentity_impl },
5574   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensionContainer_impl },
5575   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_saiPresent_impl },
5576   { 0, 0, 0, NULL }
5577 };
5578
5579 static int
5580 dissect_camel_LocationInformationGPRS(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5581   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5582                                    LocationInformationGPRS_sequence, hf_index, ett_camel_LocationInformationGPRS);
5583
5584   return offset;
5585 }
5586 static int dissect_locationInformationGPRS_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5587   return dissect_camel_LocationInformationGPRS(TRUE, tvb, offset, pinfo, tree, hf_camel_locationInformationGPRS);
5588 }
5589
5590
5591 static const ber_sequence_t T_attachChangeOfPositionSpecificInformation_sequence[] = {
5592   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
5593   { 0, 0, 0, NULL }
5594 };
5595
5596 static int
5597 dissect_camel_T_attachChangeOfPositionSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5598   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5599                                    T_attachChangeOfPositionSpecificInformation_sequence, hf_index, ett_camel_T_attachChangeOfPositionSpecificInformation);
5600
5601   return offset;
5602 }
5603 static int dissect_attachChangeOfPositionSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5604   return dissect_camel_T_attachChangeOfPositionSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_attachChangeOfPositionSpecificInformation);
5605 }
5606
5607
5608
5609 static int
5610 dissect_camel_PDPTypeOrganization(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5611 #line 341 "camel.cnf"
5612
5613  tvbuff_t       *parameter_tvb;
5614
5615   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5616                                        &parameter_tvb);
5617
5618
5619  if (!parameter_tvb)
5620         return offset;
5621  PDPTypeOrganization  = (tvb_get_guint8(parameter_tvb,0) &0x0f);        
5622
5623
5624
5625   return offset;
5626 }
5627 static int dissect_pDPTypeOrganization1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5628   return dissect_camel_PDPTypeOrganization(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPTypeOrganization1);
5629 }
5630
5631
5632
5633 static int
5634 dissect_camel_PDPTypeNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5635 #line 354 "camel.cnf"
5636
5637  tvbuff_t       *parameter_tvb;
5638  proto_item *item;
5639  proto_tree *subtree;
5640
5641   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5642                                        &parameter_tvb);
5643
5644
5645  if (!parameter_tvb)
5646         return offset;
5647  PDPTypeNumber = tvb_get_guint8(parameter_tvb,0);       
5648  item = get_ber_last_created_item();
5649  subtree = proto_item_add_subtree(item, ett_camel_pdptypenumber);
5650  switch (PDPTypeOrganization){
5651  case 0: /* ETSI */
5652         proto_tree_add_item(tree, hf_camel_PDPTypeNumber_etsi, parameter_tvb, 0, 1, FALSE);
5653         break;
5654  case 1: /* IETF */
5655         proto_tree_add_item(tree, hf_camel_PDPTypeNumber_ietf, parameter_tvb, 0, 1, FALSE);
5656         break;
5657  default:
5658         break;
5659  }
5660
5661
5662
5663   return offset;
5664 }
5665 static int dissect_pDPTypeNumber1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5666   return dissect_camel_PDPTypeNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPTypeNumber1);
5667 }
5668
5669
5670
5671 static int
5672 dissect_camel_PDPAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5673 #line 381 "camel.cnf"
5674
5675  tvbuff_t       *parameter_tvb;
5676  proto_item *item;
5677  proto_tree *subtree;
5678
5679   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5680                                        &parameter_tvb);
5681
5682
5683  if (!parameter_tvb)
5684         return offset;
5685  item = get_ber_last_created_item();
5686  subtree = proto_item_add_subtree(item, ett_camel_pdptypenumber);
5687  switch (PDPTypeOrganization){
5688  case 0: /* ETSI */
5689         break;
5690  case 1: /* IETF */
5691         switch(PDPTypeNumber){
5692         case 0x21: /* IPv4 */
5693                 proto_tree_add_item(tree, hf_camel_PDPAddress_IPv4, parameter_tvb, 0, tvb_length(parameter_tvb), FALSE);
5694                 break;
5695         case 0x57: /* IPv6 */
5696                 proto_tree_add_item(tree, hf_camel_PDPAddress_IPv6, parameter_tvb, 0, tvb_length(parameter_tvb), FALSE);
5697                 break;
5698         default:
5699                 break;
5700         }
5701  default:
5702         break;
5703
5704  }
5705
5706
5707
5708   return offset;
5709 }
5710 static int dissect_pDPAddress1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5711   return dissect_camel_PDPAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPAddress1);
5712 }
5713
5714
5715 static const ber_sequence_t PDPType_sequence[] = {
5716   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_pDPTypeOrganization1_impl },
5717   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_pDPTypeNumber1_impl },
5718   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPAddress1_impl },
5719   { 0, 0, 0, NULL }
5720 };
5721
5722 static int
5723 dissect_camel_PDPType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5724   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5725                                    PDPType_sequence, hf_index, ett_camel_PDPType);
5726
5727   return offset;
5728 }
5729 static int dissect_pDPType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5730   return dissect_camel_PDPType(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPType);
5731 }
5732
5733
5734 static const ber_sequence_t QualityOfService_sequence[] = {
5735   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_requested_QoS_impl },
5736   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscribed_QoS_impl },
5737   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_negotiated_QoS_impl },
5738   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requested_QoS_Extension_impl },
5739   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_subscribed_QoS_Extension_impl },
5740   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_negotiated_QoS_Extension_impl },
5741   { 0, 0, 0, NULL }
5742 };
5743
5744 static int
5745 dissect_camel_QualityOfService(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5746   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5747                                    QualityOfService_sequence, hf_index, ett_camel_QualityOfService);
5748
5749   return offset;
5750 }
5751 static int dissect_qualityOfService_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5752   return dissect_camel_QualityOfService(TRUE, tvb, offset, pinfo, tree, hf_camel_qualityOfService);
5753 }
5754
5755
5756
5757 static int
5758 dissect_camel_TimeAndTimezone(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5759   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5760                                        NULL);
5761
5762   return offset;
5763 }
5764 static int dissect_timeAndTimeZone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5765   return dissect_camel_TimeAndTimezone(TRUE, tvb, offset, pinfo, tree, hf_camel_timeAndTimeZone);
5766 }
5767 static int dissect_timeAndTimezone_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5768   return dissect_camel_TimeAndTimezone(TRUE, tvb, offset, pinfo, tree, hf_camel_timeAndTimezone);
5769 }
5770
5771
5772 static const ber_sequence_t T_pdp_ContextchangeOfPositionSpecificInformation_sequence[] = {
5773   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessPointName_impl },
5774   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingID_impl },
5775   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
5776   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPType_impl },
5777   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qualityOfService_impl },
5778   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeAndTimeZone_impl },
5779   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gGSNAddress_impl },
5780   { 0, 0, 0, NULL }
5781 };
5782
5783 static int
5784 dissect_camel_T_pdp_ContextchangeOfPositionSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5785   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5786                                    T_pdp_ContextchangeOfPositionSpecificInformation_sequence, hf_index, ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation);
5787
5788   return offset;
5789 }
5790 static int dissect_pdp_ContextchangeOfPositionSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5791   return dissect_camel_T_pdp_ContextchangeOfPositionSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_pdp_ContextchangeOfPositionSpecificInformation);
5792 }
5793
5794
5795 static const value_string camel_InitiatingEntity_vals[] = {
5796   {   0, "mobileStation" },
5797   {   1, "sgsn" },
5798   {   2, "hlr" },
5799   {   3, "ggsn" },
5800   { 0, NULL }
5801 };
5802
5803
5804 static int
5805 dissect_camel_InitiatingEntity(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5806   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5807                                   NULL);
5808
5809   return offset;
5810 }
5811 static int dissect_inititatingEntity_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5812   return dissect_camel_InitiatingEntity(TRUE, tvb, offset, pinfo, tree, hf_camel_inititatingEntity);
5813 }
5814
5815
5816 static const ber_sequence_t T_detachSpecificInformation_sequence[] = {
5817   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inititatingEntity_impl },
5818   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingAreaUpdate_impl },
5819   { 0, 0, 0, NULL }
5820 };
5821
5822 static int
5823 dissect_camel_T_detachSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5824   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5825                                    T_detachSpecificInformation_sequence, hf_index, ett_camel_T_detachSpecificInformation);
5826
5827   return offset;
5828 }
5829 static int dissect_detachSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5830   return dissect_camel_T_detachSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_detachSpecificInformation);
5831 }
5832
5833
5834 static const ber_sequence_t T_disconnectSpecificInformation_sequence[] = {
5835   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_inititatingEntity_impl },
5836   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingAreaUpdate_impl },
5837   { 0, 0, 0, NULL }
5838 };
5839
5840 static int
5841 dissect_camel_T_disconnectSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5842   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5843                                    T_disconnectSpecificInformation_sequence, hf_index, ett_camel_T_disconnectSpecificInformation);
5844
5845   return offset;
5846 }
5847 static int dissect_disconnectSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5848   return dissect_camel_T_disconnectSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_disconnectSpecificInformation);
5849 }
5850
5851
5852 static const value_string camel_PDPInitiationType_vals[] = {
5853   {   0, "mSInitiated" },
5854   {   1, "networkInitiated" },
5855   { 0, NULL }
5856 };
5857
5858
5859 static int
5860 dissect_camel_PDPInitiationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5861   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5862                                   NULL);
5863
5864   return offset;
5865 }
5866 static int dissect_pDPInitiationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5867   return dissect_camel_PDPInitiationType(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPInitiationType);
5868 }
5869
5870
5871 static const ber_sequence_t T_pDPContextEstablishmentSpecificInformation_sequence[] = {
5872   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessPointName_impl },
5873   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPType_impl },
5874   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qualityOfService_impl },
5875   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
5876   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeAndTimeZone_impl },
5877   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPInitiationType_impl },
5878   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_secondaryPDPContext_impl },
5879   { 0, 0, 0, NULL }
5880 };
5881
5882 static int
5883 dissect_camel_T_pDPContextEstablishmentSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5884   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5885                                    T_pDPContextEstablishmentSpecificInformation_sequence, hf_index, ett_camel_T_pDPContextEstablishmentSpecificInformation);
5886
5887   return offset;
5888 }
5889 static int dissect_pDPContextEstablishmentSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5890   return dissect_camel_T_pDPContextEstablishmentSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPContextEstablishmentSpecificInformation);
5891 }
5892
5893
5894 static const ber_sequence_t T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence[] = {
5895   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessPointName_impl },
5896   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingID_impl },
5897   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPType_impl },
5898   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qualityOfService_impl },
5899   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
5900   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeAndTimeZone_impl },
5901   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gGSNAddress_impl },
5902   { 0, 0, 0, NULL }
5903 };
5904
5905 static int
5906 dissect_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5907   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
5908                                    T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence, hf_index, ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation);
5909
5910   return offset;
5911 }
5912 static int dissect_pDPContextEstablishmentAcknowledgementSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5913   return dissect_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation);
5914 }
5915
5916
5917 static const value_string camel_GPRSEventSpecificInformation_vals[] = {
5918   {   0, "attachChangeOfPositionSpecificInformation" },
5919   {   1, "pdp-ContextchangeOfPositionSpecificInformation" },
5920   {   2, "detachSpecificInformation" },
5921   {   3, "disconnectSpecificInformation" },
5922   {   4, "pDPContextEstablishmentSpecificInformation" },
5923   {   5, "pDPContextEstablishmentAcknowledgementSpecificInformation" },
5924   { 0, NULL }
5925 };
5926
5927 static const ber_choice_t GPRSEventSpecificInformation_choice[] = {
5928   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_attachChangeOfPositionSpecificInformation_impl },
5929   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_pdp_ContextchangeOfPositionSpecificInformation_impl },
5930   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_detachSpecificInformation_impl },
5931   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_disconnectSpecificInformation_impl },
5932   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_pDPContextEstablishmentSpecificInformation_impl },
5933   {   5, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_pDPContextEstablishmentAcknowledgementSpecificInformation_impl },
5934   { 0, 0, 0, 0, NULL }
5935 };
5936
5937 static int
5938 dissect_camel_GPRSEventSpecificInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5939   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
5940                                  GPRSEventSpecificInformation_choice, hf_index, ett_camel_GPRSEventSpecificInformation,
5941                                  NULL);
5942
5943   return offset;
5944 }
5945 static int dissect_gPRSEventSpecificInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5946   return dissect_camel_GPRSEventSpecificInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSEventSpecificInformation);
5947 }
5948
5949
5950
5951 static int
5952 dissect_camel_MSNetworkCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5953 #line 289 "camel.cnf"
5954
5955  tvbuff_t       *parameter_tvb;
5956  proto_item *item;
5957  proto_tree *subtree;
5958
5959   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5960                                        &parameter_tvb);
5961
5962
5963  if (!parameter_tvb)
5964         return offset;
5965  item = get_ber_last_created_item();
5966  subtree = proto_item_add_subtree(item, ett_camel_MSNetworkCapability);
5967  de_gmm_ms_net_cap(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0);
5968
5969
5970
5971   return offset;
5972 }
5973 static int dissect_mSNetworkCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
5974   return dissect_camel_MSNetworkCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_mSNetworkCapability);
5975 }
5976
5977
5978
5979 static int
5980 dissect_camel_MSRadioAccessCapability(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
5981 #line 306 "camel.cnf"
5982
5983  tvbuff_t       *parameter_tvb;
5984  proto_item *item;
5985  proto_tree *subtree;
5986
5987   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
5988                                        &parameter_tvb);
5989
5990
5991  if (!parameter_tvb)
5992         return offset;
5993  item = get_ber_last_created_item();
5994  subtree = proto_item_add_subtree(item, ett_camel_MSRadioAccessCapability);
5995  de_gmm_ms_radio_acc_cap(parameter_tvb, subtree, 0, tvb_length_remaining(parameter_tvb,0), NULL, 0);
5996
5997
5998
5999   return offset;
6000 }
6001 static int dissect_mSRadioAccessCapability_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6002   return dissect_camel_MSRadioAccessCapability(TRUE, tvb, offset, pinfo, tree, hf_camel_mSRadioAccessCapability);
6003 }
6004
6005
6006 static const ber_sequence_t GPRSMSClass_sequence[] = {
6007   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_mSNetworkCapability_impl },
6008   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mSRadioAccessCapability_impl },
6009   { 0, 0, 0, NULL }
6010 };
6011
6012 static int
6013 dissect_camel_GPRSMSClass(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6014   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6015                                    GPRSMSClass_sequence, hf_index, ett_camel_GPRSMSClass);
6016
6017   return offset;
6018 }
6019 static int dissect_gPRSMSClass_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6020   return dissect_camel_GPRSMSClass(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSMSClass);
6021 }
6022
6023
6024
6025 static int
6026 dissect_camel_IPRoutingAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6027   offset = dissect_camel_CalledPartyNumber(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6028
6029   return offset;
6030 }
6031 static int dissect_ipRoutingAddress_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6032   return dissect_camel_IPRoutingAddress(TRUE, tvb, offset, pinfo, tree, hf_camel_ipRoutingAddress);
6033 }
6034
6035
6036
6037 static int
6038 dissect_camel_IPSSPCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6039   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6040                                        NULL);
6041
6042   return offset;
6043 }
6044 static int dissect_iPSSPCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6045   return dissect_camel_IPSSPCapabilities(TRUE, tvb, offset, pinfo, tree, hf_camel_iPSSPCapabilities);
6046 }
6047
6048
6049 static const value_string camel_LegOrCallSegment_vals[] = {
6050   {   0, "callSegmentID" },
6051   {   1, "legID" },
6052   { 0, NULL }
6053 };
6054
6055 static const ber_choice_t LegOrCallSegment_choice[] = {
6056   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
6057   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_legID_impl },
6058   { 0, 0, 0, 0, NULL }
6059 };
6060
6061 static int
6062 dissect_camel_LegOrCallSegment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6063   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6064                                  LegOrCallSegment_choice, hf_index, ett_camel_LegOrCallSegment,
6065                                  NULL);
6066
6067   return offset;
6068 }
6069 static int dissect_legOrCallSegment_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6070   return dissect_camel_LegOrCallSegment(TRUE, tvb, offset, pinfo, tree, hf_camel_legOrCallSegment);
6071 }
6072
6073
6074
6075 static int
6076 dissect_camel_LowLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6077   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6078                                        NULL);
6079
6080   return offset;
6081 }
6082 static int dissect_lowLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6083   return dissect_camel_LowLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_lowLayerCompatibility);
6084 }
6085 static int dissect_lowLayerCompatibility2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6086   return dissect_camel_LowLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_lowLayerCompatibility2);
6087 }
6088
6089
6090
6091 static int
6092 dissect_camel_NAOliInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6093   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6094                                        NULL);
6095
6096   return offset;
6097 }
6098 static int dissect_naOliInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6099   return dissect_camel_NAOliInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_naOliInfo);
6100 }
6101
6102
6103
6104 static int
6105 dissect_camel_OCSIApplicable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6106   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
6107
6108   return offset;
6109 }
6110 static int dissect_oCSIApplicable_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6111   return dissect_camel_OCSIApplicable(TRUE, tvb, offset, pinfo, tree, hf_camel_oCSIApplicable);
6112 }
6113
6114
6115
6116 static int
6117 dissect_camel_OriginalCalledPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6118 #line 262 "camel.cnf"
6119
6120  tvbuff_t       *parameter_tvb;
6121
6122   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6123                                        &parameter_tvb);
6124
6125
6126  if (!parameter_tvb)
6127         return offset;
6128  dissect_isup_original_called_number_parameter(parameter_tvb, tree, NULL);
6129
6130
6131
6132   return offset;
6133 }
6134 static int dissect_originalCalledPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6135   return dissect_camel_OriginalCalledPartyID(TRUE, tvb, offset, pinfo, tree, hf_camel_originalCalledPartyID);
6136 }
6137
6138
6139
6140 static int
6141 dissect_camel_RedirectingPartyID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6142 #line 276 "camel.cnf"
6143
6144  tvbuff_t       *parameter_tvb;
6145
6146   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6147                                        &parameter_tvb);
6148
6149
6150  if (!parameter_tvb)
6151         return offset;
6152  dissect_isup_redirecting_number_parameter(parameter_tvb, tree, NULL);
6153
6154
6155
6156   return offset;
6157 }
6158 static int dissect_redirectingPartyID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6159   return dissect_camel_RedirectingPartyID(TRUE, tvb, offset, pinfo, tree, hf_camel_redirectingPartyID);
6160 }
6161
6162
6163 static const value_string camel_RequestedInformationType_vals[] = {
6164   {   0, "callAttemptElapsedTime" },
6165   {   1, "callStopTime" },
6166   {   2, "callConnectedElapsedTime" },
6167   {  30, "releaseCause" },
6168   { 0, NULL }
6169 };
6170
6171
6172 static int
6173 dissect_camel_RequestedInformationType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6174   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6175                                   NULL);
6176
6177   return offset;
6178 }
6179 static int dissect_RequestedInformationTypeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6180   return dissect_camel_RequestedInformationType(FALSE, tvb, offset, pinfo, tree, hf_camel_RequestedInformationTypeList_item);
6181 }
6182 static int dissect_requestedInformationType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6183   return dissect_camel_RequestedInformationType(TRUE, tvb, offset, pinfo, tree, hf_camel_requestedInformationType);
6184 }
6185
6186
6187 static const value_string camel_RequestedInformationValue_vals[] = {
6188   {   0, "callAttemptElapsedTimeValue" },
6189   {   1, "callStopTimeValue" },
6190   {   2, "callConnectedElapsedTimeValue" },
6191   {  30, "releaseCauseValue" },
6192   { 0, NULL }
6193 };
6194
6195 static const ber_choice_t RequestedInformationValue_choice[] = {
6196   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callAttemptElapsedTimeValue_impl },
6197   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_callStopTimeValue_impl },
6198   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_callConnectedElapsedTimeValue_impl },
6199   {  30, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_releaseCauseValue_impl },
6200   { 0, 0, 0, 0, NULL }
6201 };
6202
6203 static int
6204 dissect_camel_RequestedInformationValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6205   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6206                                  RequestedInformationValue_choice, hf_index, ett_camel_RequestedInformationValue,
6207                                  NULL);
6208
6209   return offset;
6210 }
6211 static int dissect_requestedInformationValue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6212   return dissect_camel_RequestedInformationValue(TRUE, tvb, offset, pinfo, tree, hf_camel_requestedInformationValue);
6213 }
6214
6215
6216 static const ber_sequence_t RequestedInformation_sequence[] = {
6217   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationType_impl },
6218   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_requestedInformationValue_impl },
6219   { 0, 0, 0, NULL }
6220 };
6221
6222 static int
6223 dissect_camel_RequestedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6224   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6225                                    RequestedInformation_sequence, hf_index, ett_camel_RequestedInformation);
6226
6227   return offset;
6228 }
6229 static int dissect_RequestedInformationList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6230   return dissect_camel_RequestedInformation(FALSE, tvb, offset, pinfo, tree, hf_camel_RequestedInformationList_item);
6231 }
6232
6233
6234 static const ber_sequence_t RequestedInformationList_sequence_of[1] = {
6235   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RequestedInformationList_item },
6236 };
6237
6238 static int
6239 dissect_camel_RequestedInformationList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6240   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6241                                       RequestedInformationList_sequence_of, hf_index, ett_camel_RequestedInformationList);
6242
6243   return offset;
6244 }
6245 static int dissect_requestedInformationList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6246   return dissect_camel_RequestedInformationList(TRUE, tvb, offset, pinfo, tree, hf_camel_requestedInformationList);
6247 }
6248
6249
6250 static const ber_sequence_t RequestedInformationTypeList_sequence_of[1] = {
6251   { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_RequestedInformationTypeList_item },
6252 };
6253
6254 static int
6255 dissect_camel_RequestedInformationTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6256   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6257                                       RequestedInformationTypeList_sequence_of, hf_index, ett_camel_RequestedInformationTypeList);
6258
6259   return offset;
6260 }
6261 static int dissect_requestedInformationTypeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6262   return dissect_camel_RequestedInformationTypeList(TRUE, tvb, offset, pinfo, tree, hf_camel_requestedInformationTypeList);
6263 }
6264
6265
6266
6267 static int
6268 dissect_camel_RPCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6269   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6270                                        NULL);
6271
6272   return offset;
6273 }
6274
6275
6276
6277 static int
6278 dissect_camel_SCIBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6279   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6280                                        NULL);
6281
6282   return offset;
6283 }
6284 static int dissect_sCIBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6285   return dissect_camel_SCIBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_camel_sCIBillingChargingCharacteristics);
6286 }
6287
6288
6289
6290 static int
6291 dissect_camel_SCIGPRSBillingChargingCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6292   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6293                                        NULL);
6294
6295   return offset;
6296 }
6297 static int dissect_sCIGPRSBillingChargingCharacteristics_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6298   return dissect_camel_SCIGPRSBillingChargingCharacteristics(TRUE, tvb, offset, pinfo, tree, hf_camel_sCIGPRSBillingChargingCharacteristics);
6299 }
6300
6301
6302 static const value_string camel_BothwayThroughConnectionInd_vals[] = {
6303   {   0, "bothwayPathRequired" },
6304   {   1, "bothwayPathNotRequired" },
6305   { 0, NULL }
6306 };
6307
6308
6309 static int
6310 dissect_camel_BothwayThroughConnectionInd(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6311   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6312                                   NULL);
6313
6314   return offset;
6315 }
6316 static int dissect_bothwayThroughConnectionInd_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6317   return dissect_camel_BothwayThroughConnectionInd(TRUE, tvb, offset, pinfo, tree, hf_camel_bothwayThroughConnectionInd);
6318 }
6319
6320
6321 static const ber_sequence_t ServiceInteractionIndicatorsTwo_sequence[] = {
6322   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardServiceInteractionInd_impl },
6323   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_backwardServiceInteractionInd_impl },
6324   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bothwayThroughConnectionInd_impl },
6325   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_connectedNumberTreatmentInd_impl },
6326   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_nonCUGCall_impl },
6327   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_holdTreatmentIndicator_impl },
6328   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cwTreatmentIndicator_impl },
6329   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ectTreatmentIndicator_impl },
6330   { 0, 0, 0, NULL }
6331 };
6332
6333 static int
6334 dissect_camel_ServiceInteractionIndicatorsTwo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6335   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6336                                    ServiceInteractionIndicatorsTwo_sequence, hf_index, ett_camel_ServiceInteractionIndicatorsTwo);
6337
6338   return offset;
6339 }
6340 static int dissect_serviceInteractionIndicatorsTwo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6341   return dissect_camel_ServiceInteractionIndicatorsTwo(TRUE, tvb, offset, pinfo, tree, hf_camel_serviceInteractionIndicatorsTwo);
6342 }
6343
6344
6345
6346 static int
6347 dissect_camel_SGSNCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6348   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6349                                        NULL);
6350
6351   return offset;
6352 }
6353 static int dissect_sGSNCapabilities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6354   return dissect_camel_SGSNCapabilities(TRUE, tvb, offset, pinfo, tree, hf_camel_sGSNCapabilities);
6355 }
6356
6357
6358
6359 static int
6360 dissect_camel_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6361   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6362                                        NULL);
6363
6364   return offset;
6365 }
6366
6367
6368
6369 static int
6370 dissect_camel_SMS_AddressString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6371   offset = dissect_camel_AddressString(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6372
6373   return offset;
6374 }
6375
6376
6377 static const ber_sequence_t SMSEvent_sequence[] = {
6378   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeSMS_impl },
6379   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_monitorMode_impl },
6380   { 0, 0, 0, NULL }
6381 };
6382
6383 static int
6384 dissect_camel_SMSEvent(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6385   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6386                                    SMSEvent_sequence, hf_index, ett_camel_SMSEvent);
6387
6388   return offset;
6389 }
6390 static int dissect_SMSEventArray_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6391   return dissect_camel_SMSEvent(FALSE, tvb, offset, pinfo, tree, hf_camel_SMSEventArray_item);
6392 }
6393
6394
6395
6396 static int
6397 dissect_camel_TariffSwitchInterval(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6398   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6399                                   NULL);
6400
6401   return offset;
6402 }
6403
6404
6405 static const value_string camel_TimerID_vals[] = {
6406   {   0, "tssf" },
6407   { 0, NULL }
6408 };
6409
6410
6411 static int
6412 dissect_camel_TimerID(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6413   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6414                                   NULL);
6415
6416   return offset;
6417 }
6418 static int dissect_timerID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6419   return dissect_camel_TimerID(TRUE, tvb, offset, pinfo, tree, hf_camel_timerID);
6420 }
6421
6422
6423
6424 static int
6425 dissect_camel_TimerValue(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6426   offset = dissect_camel_Integer4(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6427
6428   return offset;
6429 }
6430 static int dissect_timervalue_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6431   return dissect_camel_TimerValue(TRUE, tvb, offset, pinfo, tree, hf_camel_timervalue);
6432 }
6433
6434
6435
6436 static int
6437 dissect_camel_TPDataCodingScheme(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6438   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6439                                        NULL);
6440
6441   return offset;
6442 }
6443 static int dissect_tPDataCodingScheme_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6444   return dissect_camel_TPDataCodingScheme(TRUE, tvb, offset, pinfo, tree, hf_camel_tPDataCodingScheme);
6445 }
6446
6447
6448
6449 static int
6450 dissect_camel_TPProtocolIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6451   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6452                                        NULL);
6453
6454   return offset;
6455 }
6456 static int dissect_tPProtocolIdentifier_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6457   return dissect_camel_TPProtocolIdentifier(TRUE, tvb, offset, pinfo, tree, hf_camel_tPProtocolIdentifier);
6458 }
6459
6460
6461
6462 static int
6463 dissect_camel_TPShortMessageSpecificInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6464   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6465                                        NULL);
6466
6467   return offset;
6468 }
6469
6470
6471
6472 static int
6473 dissect_camel_TPShortMessageSubmissionInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6474   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6475                                        NULL);
6476
6477   return offset;
6478 }
6479 static int dissect_tPShortMessageSubmissionSpecificInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6480   return dissect_camel_TPShortMessageSubmissionInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_tPShortMessageSubmissionSpecificInfo);
6481 }
6482
6483
6484
6485 static int
6486 dissect_camel_TPValidityPeriod(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6487   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6488                                        NULL);
6489
6490   return offset;
6491 }
6492 static int dissect_tPValidityPeriod_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6493   return dissect_camel_TPValidityPeriod(TRUE, tvb, offset, pinfo, tree, hf_camel_tPValidityPeriod);
6494 }
6495
6496
6497 static const value_string camel_UnavailableNetworkResource_vals[] = {
6498   {   0, "unavailableResources" },
6499   {   1, "componentFailure" },
6500   {   2, "basicCallProcessingException" },
6501   {   3, "resourceStatusFailure" },
6502   {   4, "endUserFailure" },
6503   { 0, NULL }
6504 };
6505
6506
6507 static int
6508 dissect_camel_UnavailableNetworkResource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6509   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6510                                   NULL);
6511
6512   return offset;
6513 }
6514
6515
6516
6517 static int
6518 dissect_camel_SpecializedResourceReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6519   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
6520
6521   return offset;
6522 }
6523
6524
6525
6526 static int
6527 dissect_camel_Priority(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6528   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6529                                   NULL);
6530
6531   return offset;
6532 }
6533
6534
6535
6536 static int
6537 dissect_camel_CUG_Interlock(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6538   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6539                                        NULL);
6540
6541   return offset;
6542 }
6543 static int dissect_cug_Interlock_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6544   return dissect_camel_CUG_Interlock(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_Interlock);
6545 }
6546
6547
6548
6549 static int
6550 dissect_camel_CUG_Index(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6551   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6552                                   NULL);
6553
6554   return offset;
6555 }
6556 static int dissect_cug_Index_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6557   return dissect_camel_CUG_Index(TRUE, tvb, offset, pinfo, tree, hf_camel_cug_Index);
6558 }
6559
6560
6561
6562 static int
6563 dissect_camel_CallReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6564   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6565                                        NULL);
6566
6567   return offset;
6568 }
6569 static int dissect_callReferenceNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6570   return dissect_camel_CallReferenceNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_callReferenceNumber);
6571 }
6572 static int dissect_smsReferenceNumber_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6573   return dissect_camel_CallReferenceNumber(TRUE, tvb, offset, pinfo, tree, hf_camel_smsReferenceNumber);
6574 }
6575
6576
6577
6578 static int
6579 dissect_camel_SuppressionOfAnnouncement(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6580   offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
6581
6582   return offset;
6583 }
6584 static int dissect_suppressionOfAnnouncement_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6585   return dissect_camel_SuppressionOfAnnouncement(TRUE, tvb, offset, pinfo, tree, hf_camel_suppressionOfAnnouncement);
6586 }
6587
6588
6589 static const value_string camel_NotReachableReason_vals[] = {
6590   {   0, "msPurged" },
6591   {   1, "imsiDetached" },
6592   {   2, "restrictedArea" },
6593   {   3, "notRegistred" },
6594   { 0, NULL }
6595 };
6596
6597
6598 static int
6599 dissect_camel_NotReachableReason(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6600   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6601                                   NULL);
6602
6603   return offset;
6604 }
6605 static int dissect_netDetNotReachable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6606   return dissect_camel_NotReachableReason(FALSE, tvb, offset, pinfo, tree, hf_camel_netDetNotReachable);
6607 }
6608
6609
6610
6611 static int
6612 dissect_camel_AgeOfLocationInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6613   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6614                                   NULL);
6615
6616   return offset;
6617 }
6618
6619
6620
6621 static int
6622 dissect_camel_CellIdFixedLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6623   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6624                                        NULL);
6625
6626   return offset;
6627 }
6628 static int dissect_cellIdFixedLength_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6629   return dissect_camel_CellIdFixedLength(TRUE, tvb, offset, pinfo, tree, hf_camel_cellIdFixedLength);
6630 }
6631
6632
6633
6634 static int
6635 dissect_camel_Ext_TeleserviceCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6636   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6637                                        NULL);
6638
6639   return offset;
6640 }
6641
6642
6643
6644 static int
6645 dissect_camel_Ext_BearerServiceCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6646   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6647                                        NULL);
6648
6649   return offset;
6650 }
6651
6652
6653
6654 static int
6655 dissect_camel_CallingPartysCategory(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6656   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6657                                        NULL);
6658
6659   return offset;
6660 }
6661 static int dissect_callingPartysCategory_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6662   return dissect_camel_CallingPartysCategory(TRUE, tvb, offset, pinfo, tree, hf_camel_callingPartysCategory);
6663 }
6664
6665
6666
6667 static int
6668 dissect_camel_RedirectionInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6669 #line 247 "camel.cnf"
6670
6671  tvbuff_t       *parameter_tvb;
6672
6673   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6674                                        &parameter_tvb);
6675
6676
6677  if (!parameter_tvb)
6678         return offset;
6679
6680  dissect_isup_redirection_information_parameter(parameter_tvb, tree, NULL);
6681
6682
6683
6684   return offset;
6685 }
6686 static int dissect_redirectionInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6687   return dissect_camel_RedirectionInformation(TRUE, tvb, offset, pinfo, tree, hf_camel_redirectionInformation);
6688 }
6689
6690
6691
6692 static int
6693 dissect_camel_HighLayerCompatibility(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6694   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6695                                        NULL);
6696
6697   return offset;
6698 }
6699 static int dissect_highLayerCompatibility2_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6700   return dissect_camel_HighLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_highLayerCompatibility2);
6701 }
6702 static int dissect_highLayerCompatibility_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6703   return dissect_camel_HighLayerCompatibility(TRUE, tvb, offset, pinfo, tree, hf_camel_highLayerCompatibility);
6704 }
6705
6706
6707 static const value_string camel_T_messageType_vals[] = {
6708   {   0, "request" },
6709   {   1, "notification" },
6710   { 0, NULL }
6711 };
6712
6713
6714 static int
6715 dissect_camel_T_messageType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6716   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6717                                   NULL);
6718
6719   return offset;
6720 }
6721 static int dissect_messageType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6722   return dissect_camel_T_messageType(TRUE, tvb, offset, pinfo, tree, hf_camel_messageType);
6723 }
6724
6725
6726 static const ber_sequence_t MiscCallInfo_sequence[] = {
6727   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_messageType_impl },
6728   { 0, 0, 0, NULL }
6729 };
6730
6731 static int
6732 dissect_camel_MiscCallInfo(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6733   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6734                                    MiscCallInfo_sequence, hf_index, ett_camel_MiscCallInfo);
6735
6736   return offset;
6737 }
6738 static int dissect_miscGPRSInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6739   return dissect_camel_MiscCallInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_miscGPRSInfo);
6740 }
6741 static int dissect_miscCallInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6742   return dissect_camel_MiscCallInfo(TRUE, tvb, offset, pinfo, tree, hf_camel_miscCallInfo);
6743 }
6744
6745
6746
6747 static int
6748 dissect_camel_CallresultoctetPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6749 #line 87 "camel.cnf"
6750 tvbuff_t        *parameter_tvb;
6751
6752   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6753                                        &parameter_tvb);
6754
6755  if (!parameter_tvb)
6756         return offset;
6757  dissect_camel_CAMEL_CallResult(implicit_tag, parameter_tvb, 0, pinfo, tree, -1);
6758  
6759
6760
6761   return offset;
6762 }
6763 static int dissect_callresultOctet(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6764   return dissect_camel_CallresultoctetPDU(FALSE, tvb, offset, pinfo, tree, hf_camel_callresultOctet);
6765 }
6766
6767
6768 static const ber_sequence_t ApplyChargingReportArg_sequence[] = {
6769   { BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_callresultOctet },
6770   { 0, 0, 0, NULL }
6771 };
6772
6773 static int
6774 dissect_camel_ApplyChargingReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6775   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6776                                    ApplyChargingReportArg_sequence, hf_index, ett_camel_ApplyChargingReportArg);
6777
6778   return offset;
6779 }
6780
6781
6782 static const value_string camel_CancelArg_vals[] = {
6783   {   0, "invokeID" },
6784   {   1, "allRequests" },
6785   {   2, "callSegmentToCancel" },
6786   { 0, NULL }
6787 };
6788
6789 static const ber_choice_t CancelArg_choice[] = {
6790   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_invokeID_impl },
6791   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_allRequests_impl },
6792   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_callSegmentToCancel_impl },
6793   { 0, 0, 0, 0, NULL }
6794 };
6795
6796 static int
6797 dissect_camel_CancelArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6798   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6799                                  CancelArg_choice, hf_index, ett_camel_CancelArg,
6800                                  NULL);
6801
6802   return offset;
6803 }
6804
6805
6806
6807 static int
6808 dissect_camel_FurnishChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6809   offset = dissect_camel_CAMEL_FCIBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6810
6811   return offset;
6812 }
6813
6814
6815
6816 static int
6817 dissect_camel_Q850Cause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6818 #line 118 "camel.cnf"
6819
6820        tvbuff_t *camel_tvb;
6821        guint8 Cause_value;
6822
6823   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6824                                        &camel_tvb);
6825
6826
6827        if (camel_tvb)
6828            dissect_q931_cause_ie(camel_tvb, 0, tvb_length_remaining(camel_tvb,0), tree, hf_camel_cause_indicator, &Cause_value);
6829
6830
6831        return offset;
6832
6833
6834   return offset;
6835 }
6836
6837
6838
6839 static int
6840 dissect_camel_ReleaseCallArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6841   offset = dissect_camel_Q850Cause(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6842
6843   return offset;
6844 }
6845
6846
6847 static const value_string camel_ReceivedInformationArg_vals[] = {
6848   {   0, "digitsResponse" },
6849   { 0, NULL }
6850 };
6851
6852 static const ber_choice_t ReceivedInformationArg_choice[] = {
6853   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_digitsResponse_impl },
6854   { 0, 0, 0, 0, NULL }
6855 };
6856
6857 static int
6858 dissect_camel_ReceivedInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6859   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6860                                  ReceivedInformationArg_choice, hf_index, ett_camel_ReceivedInformationArg,
6861                                  NULL);
6862
6863   return offset;
6864 }
6865
6866
6867
6868 static int
6869 dissect_camel_FurnishChargingInformationSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6870   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
6871                                        NULL);
6872
6873   return offset;
6874 }
6875
6876
6877 static const ber_sequence_t ConnectGPRSArg_sequence[] = {
6878   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_accessPointName_impl },
6879   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pdpID_impl },
6880   { 0, 0, 0, NULL }
6881 };
6882
6883 static int
6884 dissect_camel_ConnectGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6885   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6886                                    ConnectGPRSArg_sequence, hf_index, ett_camel_ConnectGPRSArg);
6887
6888   return offset;
6889 }
6890
6891
6892 static const ber_sequence_t EntityReleasedGPRSArg_sequence[] = {
6893   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gPRSCause_impl },
6894   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
6895   { 0, 0, 0, NULL }
6896 };
6897
6898 static int
6899 dissect_camel_EntityReleasedGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6900   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6901                                    EntityReleasedGPRSArg_sequence, hf_index, ett_camel_EntityReleasedGPRSArg);
6902
6903   return offset;
6904 }
6905
6906
6907
6908 static int
6909 dissect_camel_FurnishChargingInformationGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6910   offset = dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(implicit_tag, tvb, offset, pinfo, tree, hf_index);
6911
6912   return offset;
6913 }
6914
6915
6916 static const ber_sequence_t ReleaseGPRSArg_sequence[] = {
6917   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprsCause_impl },
6918   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
6919   { 0, 0, 0, NULL }
6920 };
6921
6922 static int
6923 dissect_camel_ReleaseGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6924   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6925                                    ReleaseGPRSArg_sequence, hf_index, ett_camel_ReleaseGPRSArg);
6926
6927   return offset;
6928 }
6929
6930
6931 static const ber_sequence_t GPRSEventArray_sequence_of[1] = {
6932   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GPRSEventArray_item },
6933 };
6934
6935 static int
6936 dissect_camel_GPRSEventArray(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6937   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
6938                                       GPRSEventArray_sequence_of, hf_index, ett_camel_GPRSEventArray);
6939
6940   return offset;
6941 }
6942 static int dissect_gPRSEvent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
6943   return dissect_camel_GPRSEventArray(TRUE, tvb, offset, pinfo, tree, hf_camel_gPRSEvent);
6944 }
6945
6946
6947 static const ber_sequence_t RequestReportGPRSEventArg_sequence[] = {
6948   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gPRSEvent_impl },
6949   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
6950   { 0, 0, 0, NULL }
6951 };
6952
6953 static int
6954 dissect_camel_RequestReportGPRSEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6955   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6956                                    RequestReportGPRSEventArg_sequence, hf_index, ett_camel_RequestReportGPRSEventArg);
6957
6958   return offset;
6959 }
6960
6961
6962 static const ber_sequence_t SendChargingInformationGPRSArg_sequence[] = {
6963   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sCIGPRSBillingChargingCharacteristics_impl },
6964   { 0, 0, 0, NULL }
6965 };
6966
6967 static int
6968 dissect_camel_SendChargingInformationGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6969   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
6970                                    SendChargingInformationGPRSArg_sequence, hf_index, ett_camel_SendChargingInformationGPRSArg);
6971
6972   return offset;
6973 }
6974
6975
6976 static const value_string camel_SubscriberState_vals[] = {
6977   {   0, "assumedIdle" },
6978   {   1, "camelBusy" },
6979   {   2, "netDetNotReachable" },
6980   {   3, "notProvidedFromVLR" },
6981   { 0, NULL }
6982 };
6983
6984 static const ber_choice_t SubscriberState_choice[] = {
6985   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assumedIdle_impl },
6986   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_camelBusy_impl },
6987   {   2, BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_netDetNotReachable },
6988   {   3, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_notProvidedFromVLR_impl },
6989   { 0, 0, 0, 0, NULL }
6990 };
6991
6992 static int
6993 dissect_camel_SubscriberState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
6994   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
6995                                  SubscriberState_choice, hf_index, ett_camel_SubscriberState,
6996                                  NULL);
6997
6998   return offset;
6999 }
7000 static int dissect_subscriberState_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7001   return dissect_camel_SubscriberState(TRUE, tvb, offset, pinfo, tree, hf_camel_subscriberState);
7002 }
7003
7004
7005 static const value_string camel_CellIdOrLAI_vals[] = {
7006   {   0, "cellIdFixedLength" },
7007   {   1, "laiFixedLength" },
7008   { 0, NULL }
7009 };
7010
7011 static const ber_choice_t CellIdOrLAI_choice[] = {
7012   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_cellIdFixedLength_impl },
7013   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_laiFixedLength_impl },
7014   { 0, 0, 0, 0, NULL }
7015 };
7016
7017 static int
7018 dissect_camel_CellIdOrLAI(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7019   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7020                                  CellIdOrLAI_choice, hf_index, ett_camel_CellIdOrLAI,
7021                                  NULL);
7022
7023   return offset;
7024 }
7025
7026
7027 static const asn_namedbit SupportedCamelPhases_bits[] = {
7028   {  0, &hf_camel_SupportedCamelPhases_phase1, -1, -1, "phase1", NULL },
7029   {  1, &hf_camel_SupportedCamelPhases_phase2, -1, -1, "phase2", NULL },
7030   {  2, &hf_camel_SupportedCamelPhases_phase3, -1, -1, "phase3", NULL },
7031   {  3, &hf_camel_SupportedCamelPhases_phase4, -1, -1, "phase4", NULL },
7032   { 0, NULL, 0, 0, NULL, NULL }
7033 };
7034
7035 static int
7036 dissect_camel_SupportedCamelPhases(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7037   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
7038                                     SupportedCamelPhases_bits, hf_index, ett_camel_SupportedCamelPhases,
7039                                     NULL);
7040
7041   return offset;
7042 }
7043 static int dissect_supportedCamelPhases_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7044   return dissect_camel_SupportedCamelPhases(TRUE, tvb, offset, pinfo, tree, hf_camel_supportedCamelPhases);
7045 }
7046
7047
7048 static const asn_namedbit OfferedCamel4Functionalities_bits[] = {
7049   {  0, &hf_camel_OfferedCamel4Functionalities_initiateCallAttempt, -1, -1, "initiateCallAttempt", NULL },
7050   {  1, &hf_camel_OfferedCamel4Functionalities_splitLeg, -1, -1, "splitLeg", NULL },
7051   {  2, &hf_camel_OfferedCamel4Functionalities_moveLeg, -1, -1, "moveLeg", NULL },
7052   {  3, &hf_camel_OfferedCamel4Functionalities_disconnectLeg, -1, -1, "disconnectLeg", NULL },
7053   {  4, &hf_camel_OfferedCamel4Functionalities_entityReleased, -1, -1, "entityReleased", NULL },
7054   {  5, &hf_camel_OfferedCamel4Functionalities_dfc_WithArgument, -1, -1, "dfc-WithArgument", NULL },
7055   {  6, &hf_camel_OfferedCamel4Functionalities_playTone, -1, -1, "playTone", NULL },
7056   {  7, &hf_camel_OfferedCamel4Functionalities_dtmf_MidCall, -1, -1, "dtmf-MidCall", NULL },
7057   {  8, &hf_camel_OfferedCamel4Functionalities_chargingIndicator, -1, -1, "chargingIndicator", NULL },
7058   {  9, &hf_camel_OfferedCamel4Functionalities_alertingDP, -1, -1, "alertingDP", NULL },
7059   { 10, &hf_camel_OfferedCamel4Functionalities_locationAtAlerting, -1, -1, "locationAtAlerting", NULL },
7060   { 11, &hf_camel_OfferedCamel4Functionalities_changeOfPositionDP, -1, -1, "changeOfPositionDP", NULL },
7061   { 12, &hf_camel_OfferedCamel4Functionalities_or_Interactions, -1, -1, "or-Interactions", NULL },
7062   { 13, &hf_camel_OfferedCamel4Functionalities_warningToneEnhancements, -1, -1, "warningToneEnhancements", NULL },
7063   { 14, &hf_camel_OfferedCamel4Functionalities_cf_Enhancements, -1, -1, "cf-Enhancements", NULL },
7064   { 15, &hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices, -1, -1, "subscribedEnhancedDialledServices", NULL },
7065   { 16, &hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices, -1, -1, "servingNetworkEnhancedDialledServices", NULL },
7066   { 17, &hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP, -1, -1, "criteriaForChangeOfPositionDP", NULL },
7067   { 18, &hf_camel_OfferedCamel4Functionalities_serviceChangeDP, -1, -1, "serviceChangeDP", NULL },
7068   { 0, NULL, 0, 0, NULL, NULL }
7069 };
7070
7071 static int
7072 dissect_camel_OfferedCamel4Functionalities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7073   offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
7074                                     OfferedCamel4Functionalities_bits, hf_index, ett_camel_OfferedCamel4Functionalities,
7075                                     NULL);
7076
7077   return offset;
7078 }
7079 static int dissect_offeredCamel4Functionalities_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7080   return dissect_camel_OfferedCamel4Functionalities(TRUE, tvb, offset, pinfo, tree, hf_camel_offeredCamel4Functionalities);
7081 }
7082
7083
7084 static const ber_sequence_t InitialDPArgExtension_sequence[] = {
7085   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gmscAddress_impl },
7086   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_forwardingDestinationNumber_impl },
7087   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ms_Classmark2_impl },
7088   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iMEI_impl },
7089   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
7090   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4Functionalities_impl },
7091   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability2_impl },
7092   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode2_impl },
7093   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility2_impl },
7094   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowLayerCompatibility_impl },
7095   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_lowLayerCompatibility2_impl },
7096   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_enhancedDialledServicesAllowed_impl },
7097   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_uu_Data_impl },
7098   { 0, 0, 0, NULL }
7099 };
7100
7101 static int
7102 dissect_camel_InitialDPArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7103   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7104                                    InitialDPArgExtension_sequence, hf_index, ett_camel_InitialDPArgExtension);
7105
7106   return offset;
7107 }
7108 static int dissect_initialDPArgExtension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7109   return dissect_camel_InitialDPArgExtension(TRUE, tvb, offset, pinfo, tree, hf_camel_initialDPArgExtension);
7110 }
7111
7112
7113 static const ber_sequence_t InitiateCallAttemptArg_sequence[] = {
7114   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
7115   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7116   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeCreated_impl },
7117   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_newCallSegment_impl },
7118   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
7119   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
7120   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsmSCFAddress_impl },
7121   { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_T_CSI_impl },
7122   { 0, 0, 0, NULL }
7123 };
7124
7125 static int
7126 dissect_camel_InitiateCallAttemptArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7127   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7128                                    InitiateCallAttemptArg_sequence, hf_index, ett_camel_InitiateCallAttemptArg);
7129
7130   return offset;
7131 }
7132
7133
7134 static const ber_sequence_t InitiateCallAttemptRes_sequence[] = {
7135   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_supportedCamelPhases_impl },
7136   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_offeredCamel4Functionalities_impl },
7137   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7138   { 0, 0, 0, NULL }
7139 };
7140
7141 static int
7142 dissect_camel_InitiateCallAttemptRes(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7143   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7144                                    InitiateCallAttemptRes_sequence, hf_index, ett_camel_InitiateCallAttemptRes);
7145
7146   return offset;
7147 }
7148
7149
7150 static const ber_sequence_t MoveLegArg_sequence[] = {
7151   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legIDToMove_impl },
7152   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7153   { 0, 0, 0, NULL }
7154 };
7155
7156 static int
7157 dissect_camel_MoveLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7158   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7159                                    MoveLegArg_sequence, hf_index, ett_camel_MoveLegArg);
7160
7161   return offset;
7162 }
7163
7164
7165 static const ber_sequence_t PlayToneArg_sequence[] = {
7166   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legOrCallSegment_impl },
7167   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bursts_impl },
7168   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7169   { 0, 0, 0, NULL }
7170 };
7171
7172 static int
7173 dissect_camel_PlayToneArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7174   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7175                                    PlayToneArg_sequence, hf_index, ett_camel_PlayToneArg);
7176
7177   return offset;
7178 }
7179
7180
7181
7182 static int
7183 dissect_camel_GeodeticInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7184   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7185                                        NULL);
7186
7187   return offset;
7188 }
7189
7190
7191 static const ber_sequence_t EventReportGPRSArg_sequence[] = {
7192   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gPRSEventType_impl },
7193   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscGPRSInfo_impl },
7194   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gPRSEventSpecificInformation_impl },
7195   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
7196   { 0, 0, 0, NULL }
7197 };
7198
7199 static int
7200 dissect_camel_EventReportGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7201   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7202                                    EventReportGPRSArg_sequence, hf_index, ett_camel_EventReportGPRSArg);
7203
7204   return offset;
7205 }
7206
7207
7208 static const ber_sequence_t ApplyChargingArg_sequence[] = {
7209   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChBillingChargingCharacteristics_impl },
7210   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge1_impl },
7211   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7212   { BER_CLASS_CON, 50, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_aChChargingAddress_impl },
7213   { 0, 0, 0, NULL }
7214 };
7215
7216 static int
7217 dissect_camel_ApplyChargingArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7218   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7219                                    ApplyChargingArg_sequence, hf_index, ett_camel_ApplyChargingArg);
7220
7221   return offset;
7222 }
7223
7224
7225 static const ber_sequence_t AssistRequestInstructionsArg_sequence[] = {
7226   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
7227   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
7228   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7229   { 0, 0, 0, NULL }
7230 };
7231
7232 static int
7233 dissect_camel_AssistRequestInstructionsArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7234   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7235                                    AssistRequestInstructionsArg_sequence, hf_index, ett_camel_AssistRequestInstructionsArg);
7236
7237   return offset;
7238 }
7239
7240
7241 static const ber_sequence_t CallInformationRequestArg_sequence[] = {
7242   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationTypeList_impl },
7243   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7244   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID3_impl },
7245   { 0, 0, 0, NULL }
7246 };
7247
7248 static int
7249 dissect_camel_CallInformationRequestArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7250   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7251                                    CallInformationRequestArg_sequence, hf_index, ett_camel_CallInformationRequestArg);
7252
7253   return offset;
7254 }
7255
7256
7257 static const ber_sequence_t ConnectArg_sequence[] = {
7258   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_destinationRoutingAddress_impl },
7259   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
7260   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
7261   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7262   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
7263   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
7264   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
7265   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
7266   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_genericNumbers_impl },
7267   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl },
7268   { BER_CLASS_CON, 19, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
7269   { BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_Interlock_impl },
7270   { BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_OutgoingAccess_impl },
7271   { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
7272   { BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_oCSIApplicable_impl },
7273   { BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naOliInfo_impl },
7274   { BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bor_InterrogationRequested_impl },
7275   { 0, 0, 0, NULL }
7276 };
7277
7278 static int
7279 dissect_camel_ConnectArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7280   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7281                                    ConnectArg_sequence, hf_index, ett_camel_ConnectArg);
7282
7283   return offset;
7284 }
7285
7286
7287 static const value_string camel_T_resourceAddress_vals[] = {
7288   {   0, "ipRoutingAddress" },
7289   {   3, "none" },
7290   { 0, NULL }
7291 };
7292
7293 static const ber_choice_t T_resourceAddress_choice[] = {
7294   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_ipRoutingAddress_impl },
7295   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_none_impl },
7296   { 0, 0, 0, 0, NULL }
7297 };
7298
7299 static int
7300 dissect_camel_T_resourceAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7301   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7302                                  T_resourceAddress_choice, hf_index, ett_camel_T_resourceAddress,
7303                                  NULL);
7304
7305   return offset;
7306 }
7307 static int dissect_resourceAddress(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7308   return dissect_camel_T_resourceAddress(FALSE, tvb, offset, pinfo, tree, hf_camel_resourceAddress);
7309 }
7310
7311
7312 static const ber_sequence_t ConnectToResourceArg_sequence[] = {
7313   { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_resourceAddress },
7314   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7315   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl },
7316   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
7317   { 0, 0, 0, NULL }
7318 };
7319
7320 static int
7321 dissect_camel_ConnectToResourceArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7322   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7323                                    ConnectToResourceArg_sequence, hf_index, ett_camel_ConnectToResourceArg);
7324
7325   return offset;
7326 }
7327
7328
7329 static const ber_sequence_t ContinueWithArgumentArgExtension_sequence[] = {
7330   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_D_CSI_impl },
7331   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_N_CSI_impl },
7332   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressOutgoingCallBarring_impl },
7333   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legOrCallSegment_impl },
7334   { 0, 0, 0, NULL }
7335 };
7336
7337 static int
7338 dissect_camel_ContinueWithArgumentArgExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7339   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7340                                    ContinueWithArgumentArgExtension_sequence, hf_index, ett_camel_ContinueWithArgumentArgExtension);
7341
7342   return offset;
7343 }
7344 static int dissect_continueWithArgumentArgExtension_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7345   return dissect_camel_ContinueWithArgumentArgExtension(TRUE, tvb, offset, pinfo, tree, hf_camel_continueWithArgumentArgExtension);
7346 }
7347
7348
7349 static const ber_sequence_t ContinueWithArgumentArg_sequence[] = {
7350   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_alertingPattern_impl },
7351   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7352   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl },
7353   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
7354   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_genericNumbers_impl },
7355   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_Interlock_impl },
7356   { BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_OutgoingAccess_impl },
7357   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
7358   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
7359   { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppressionOfAnnouncement_impl },
7360   { BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naOliInfo_impl },
7361   { BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_bor_InterrogationRequested_impl },
7362   { BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_suppress_O_CSI_impl },
7363   { BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_continueWithArgumentArgExtension_impl },
7364   { 0, 0, 0, NULL }
7365 };
7366
7367 static int
7368 dissect_camel_ContinueWithArgumentArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7369   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7370                                    ContinueWithArgumentArg_sequence, hf_index, ett_camel_ContinueWithArgumentArg);
7371
7372   return offset;
7373 }
7374
7375
7376 static const ber_sequence_t DisconnectLegArg_sequence[] = {
7377   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeReleased_impl },
7378   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_releaseCause_impl },
7379   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7380   { 0, 0, 0, NULL }
7381 };
7382
7383 static int
7384 dissect_camel_DisconnectLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7385   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7386                                    DisconnectLegArg_sequence, hf_index, ett_camel_DisconnectLegArg);
7387
7388   return offset;
7389 }
7390
7391
7392 static const value_string camel_EntityReleasedArg_vals[] = {
7393   {   0, "callSegmentFailure" },
7394   {   1, "bCSM-Failure" },
7395   { 0, NULL }
7396 };
7397
7398 static const ber_choice_t EntityReleasedArg_choice[] = {
7399   {   0, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_callSegmentFailure_impl },
7400   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_bCSM_Failure_impl },
7401   { 0, 0, 0, 0, NULL }
7402 };
7403
7404 static int
7405 dissect_camel_EntityReleasedArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7406   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
7407                                  EntityReleasedArg_choice, hf_index, ett_camel_EntityReleasedArg,
7408                                  NULL);
7409
7410   return offset;
7411 }
7412
7413
7414 static const ber_sequence_t DisconnectForwardConnectionWithArgumentArg_sequence[] = {
7415   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
7416   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7417   { 0, 0, 0, NULL }
7418 };
7419
7420 static int
7421 dissect_camel_DisconnectForwardConnectionWithArgumentArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7422   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7423                                    DisconnectForwardConnectionWithArgumentArg_sequence, hf_index, ett_camel_DisconnectForwardConnectionWithArgumentArg);
7424
7425   return offset;
7426 }
7427
7428
7429 static const ber_sequence_t EstablishTemporaryConnectionArg_sequence[] = {
7430   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_assistingSSPIPRoutingAddress_impl },
7431   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_correlationID_impl },
7432   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_scfID_impl },
7433   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7434   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
7435   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl },
7436   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_naOliInfo_impl },
7437   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargeNumber_impl },
7438   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
7439   { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
7440   { 0, 0, 0, NULL }
7441 };
7442
7443 static int
7444 dissect_camel_EstablishTemporaryConnectionArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7445   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7446                                    EstablishTemporaryConnectionArg_sequence, hf_index, ett_camel_EstablishTemporaryConnectionArg);
7447
7448   return offset;
7449 }
7450
7451
7452 static const ber_sequence_t EventReportBCSMArg_sequence[] = {
7453   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
7454   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_eventSpecificInformationBCSM_impl },
7455   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID4_impl },
7456   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
7457   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7458   { 0, 0, 0, NULL }
7459 };
7460
7461 static int
7462 dissect_camel_EventReportBCSMArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7463   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7464                                    EventReportBCSMArg_sequence, hf_index, ett_camel_EventReportBCSMArg);
7465
7466   return offset;
7467 }
7468
7469
7470 static const ber_sequence_t ResetTimerArg_sequence[] = {
7471   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl },
7472   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl },
7473   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7474   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callSegmentID_impl },
7475   { 0, 0, 0, NULL }
7476 };
7477
7478 static int
7479 dissect_camel_ResetTimerArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7480   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7481                                    ResetTimerArg_sequence, hf_index, ett_camel_ResetTimerArg);
7482
7483   return offset;
7484 }
7485
7486
7487 static const ber_sequence_t SendChargingInformationArg_sequence[] = {
7488   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sCIBillingChargingCharacteristics_impl },
7489   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_partyToCharge2_impl },
7490   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7491   { 0, 0, 0, NULL }
7492 };
7493
7494 static int
7495 dissect_camel_SendChargingInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7496   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7497                                    SendChargingInformationArg_sequence, hf_index, ett_camel_SendChargingInformationArg);
7498
7499   return offset;
7500 }
7501
7502
7503 static const ber_sequence_t SplitLegArg_sequence[] = {
7504   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legToBeSplit_impl },
7505   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_newCallSegment_impl },
7506   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions1_impl },
7507   { 0, 0, 0, NULL }
7508 };
7509
7510 static int
7511 dissect_camel_SplitLegArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7512   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7513                                    SplitLegArg_sequence, hf_index, ett_camel_SplitLegArg);
7514
7515   return offset;
7516 }
7517
7518
7519 static const ber_sequence_t CAPGPRSReferenceNumber_sequence[] = {
7520   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_destinationReference },
7521   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_originationReference },
7522   { 0, 0, 0, NULL }
7523 };
7524
7525 static int
7526 dissect_camel_CAPGPRSReferenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7527   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7528                                    CAPGPRSReferenceNumber_sequence, hf_index, ett_camel_CAPGPRSReferenceNumber);
7529
7530   return offset;
7531 }
7532
7533
7534 static const ber_sequence_t EventReportSMSArg_sequence[] = {
7535   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_eventTypeSMS_impl },
7536   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_eventSpecificInformationSMS_impl },
7537   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_miscCallInfo_impl },
7538   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7539   { 0, 0, 0, NULL }
7540 };
7541
7542 static int
7543 dissect_camel_EventReportSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7544   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7545                                    EventReportSMSArg_sequence, hf_index, ett_camel_EventReportSMSArg);
7546
7547   return offset;
7548 }
7549
7550
7551 static const ber_sequence_t SMSEventArray_sequence_of[1] = {
7552   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SMSEventArray_item },
7553 };
7554
7555 static int
7556 dissect_camel_SMSEventArray(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7557   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
7558                                       SMSEventArray_sequence_of, hf_index, ett_camel_SMSEventArray);
7559
7560   return offset;
7561 }
7562 static int dissect_sMSEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7563   return dissect_camel_SMSEventArray(TRUE, tvb, offset, pinfo, tree, hf_camel_sMSEvents);
7564 }
7565
7566
7567 static const ber_sequence_t RequestReportSMSEventArg_sequence[] = {
7568   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_sMSEvents_impl },
7569   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7570   { 0, 0, 0, NULL }
7571 };
7572
7573 static int
7574 dissect_camel_RequestReportSMSEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7575   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7576                                    RequestReportSMSEventArg_sequence, hf_index, ett_camel_RequestReportSMSEventArg);
7577
7578   return offset;
7579 }
7580
7581
7582 static const ber_sequence_t ResetTimerSMSArg_sequence[] = {
7583   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl },
7584   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl },
7585   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7586   { 0, 0, 0, NULL }
7587 };
7588
7589 static int
7590 dissect_camel_ResetTimerSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7591   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7592                                    ResetTimerSMSArg_sequence, hf_index, ett_camel_ResetTimerSMSArg);
7593
7594   return offset;
7595 }
7596
7597
7598 static const ber_sequence_t BCSMEventArray_sequence_of[1] = {
7599   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_BCSMEventArray_item },
7600 };
7601
7602 static int
7603 dissect_camel_BCSMEventArray(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7604   offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
7605                                       BCSMEventArray_sequence_of, hf_index, ett_camel_BCSMEventArray);
7606
7607   return offset;
7608 }
7609 static int dissect_bcsmEvents_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7610   return dissect_camel_BCSMEventArray(TRUE, tvb, offset, pinfo, tree, hf_camel_bcsmEvents);
7611 }
7612
7613
7614 static const ber_sequence_t RequestReportBCSMEventArg_sequence[] = {
7615   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_bcsmEvents_impl },
7616   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7617   { 0, 0, 0, NULL }
7618 };
7619
7620 static int
7621 dissect_camel_RequestReportBCSMEventArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7622   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7623                                    RequestReportBCSMEventArg_sequence, hf_index, ett_camel_RequestReportBCSMEventArg);
7624
7625   return offset;
7626 }
7627
7628
7629 static const ber_sequence_t ConnectSMSArg_sequence[] = {
7630   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysNumber_impl },
7631   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationSubscriberNumber_impl },
7632   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sMSCAddress_impl },
7633   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7634   { 0, 0, 0, NULL }
7635 };
7636
7637 static int
7638 dissect_camel_ConnectSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7639   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7640                                    ConnectSMSArg_sequence, hf_index, ett_camel_ConnectSMSArg);
7641
7642   return offset;
7643 }
7644
7645
7646 static const ber_sequence_t CallInformationReportArg_sequence[] = {
7647   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_requestedInformationList_impl },
7648   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7649   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_legID5_impl },
7650   { 0, 0, 0, NULL }
7651 };
7652
7653 static int
7654 dissect_camel_CallInformationReportArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7655   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7656                                    CallInformationReportArg_sequence, hf_index, ett_camel_CallInformationReportArg);
7657
7658   return offset;
7659 }
7660
7661
7662 static const ber_sequence_t PlayAnnouncementArg_sequence[] = {
7663   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
7664   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl },
7665   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_requestAnnouncementComplete_impl },
7666   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7667   { 0, 0, 0, NULL }
7668 };
7669
7670 static int
7671 dissect_camel_PlayAnnouncementArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7672   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7673                                    PlayAnnouncementArg_sequence, hf_index, ett_camel_PlayAnnouncementArg);
7674
7675   return offset;
7676 }
7677
7678
7679 static const ber_sequence_t PromptAndCollectUserInformationArg_sequence[] = {
7680   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_collectedInfo_impl },
7681   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_disconnectFromIPForbidden_impl },
7682   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_informationToSend_impl },
7683   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7684   { 0, 0, 0, NULL }
7685 };
7686
7687 static int
7688 dissect_camel_PromptAndCollectUserInformationArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7689   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7690                                    PromptAndCollectUserInformationArg_sequence, hf_index, ett_camel_PromptAndCollectUserInformationArg);
7691
7692   return offset;
7693 }
7694
7695
7696 static const ber_sequence_t InitialDPGPRSArg_sequence[] = {
7697   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
7698   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gPRSEventType_impl },
7699   { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_mSISDN_impl },
7700   { BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_iMSI_impl },
7701   { BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_timeAndTimeZone_impl },
7702   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gPRSMSClass_impl },
7703   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPType_impl },
7704   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qualityOfService_impl },
7705   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_accessPointName_impl },
7706   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_routeingAreaIdentity_impl },
7707   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_chargingID_impl },
7708   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sGSNCapabilities_impl },
7709   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
7710   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPInitiationType_impl },
7711   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7712   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gGSNAddress_impl },
7713   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_secondaryPDPContext_impl },
7714   { 0, 0, 0, NULL }
7715 };
7716
7717 static int
7718 dissect_camel_InitialDPGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7719   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7720                                    InitialDPGPRSArg_sequence, hf_index, ett_camel_InitialDPGPRSArg);
7721
7722   return offset;
7723 }
7724
7725
7726 static const ber_sequence_t CallGapArg_sequence[] = {
7727   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gapCriteria_impl },
7728   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gapIndicators_impl },
7729   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_controlType_impl },
7730   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gapTreatment_impl },
7731   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7732   { 0, 0, 0, NULL }
7733 };
7734
7735 static int
7736 dissect_camel_CallGapArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7737   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7738                                    CallGapArg_sequence, hf_index, ett_camel_CallGapArg);
7739
7740   return offset;
7741 }
7742
7743
7744 static const ber_sequence_t InitialDPArg_sequence[] = {
7745   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
7746   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyNumber_impl },
7747   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumber_impl },
7748   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartysCategory_impl },
7749   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cGEncountered_impl },
7750   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iPSSPCapabilities_impl },
7751   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationNumber_impl },
7752   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_originalCalledPartyID_impl },
7753   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7754   { BER_CLASS_CON, 23, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_highLayerCompatibility_impl },
7755   { BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalCallingPartyNumber_impl },
7756   { BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_bearerCapability_impl },
7757   { BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTypeBCSM_impl },
7758   { BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectingPartyID_impl },
7759   { BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redirectionInformation_impl },
7760   { BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cause_impl },
7761   { BER_CLASS_CON, 32, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_serviceInteractionIndicatorsTwo_impl },
7762   { BER_CLASS_CON, 37, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_carrier_impl },
7763   { BER_CLASS_CON, 45, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_Index_impl },
7764   { BER_CLASS_CON, 46, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_Interlock_impl },
7765   { BER_CLASS_CON, 47, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_cug_OutgoingAccess_impl },
7766   { BER_CLASS_CON, 50, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iMSI_impl },
7767   { BER_CLASS_CON, 51, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_subscriberState_impl },
7768   { BER_CLASS_CON, 52, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformation_impl },
7769   { BER_CLASS_CON, 53, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_ext_basicServiceCode_impl },
7770   { BER_CLASS_CON, 54, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callReferenceNumber_impl },
7771   { BER_CLASS_CON, 55, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mscAddress_impl },
7772   { BER_CLASS_CON, 56, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_calledPartyBCDNumber_impl },
7773   { BER_CLASS_CON, 57, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeAndTimezone_impl },
7774   { BER_CLASS_CON, 58, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_ForwardingPending_impl },
7775   { BER_CLASS_CON, 59, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_initialDPArgExtension_impl },
7776   { 0, 0, 0, NULL }
7777 };
7778
7779 static int
7780 dissect_camel_InitialDPArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7781   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7782                                    InitialDPArg_sequence, hf_index, ett_camel_InitialDPArg);
7783
7784   return offset;
7785 }
7786
7787
7788 static const ber_sequence_t InitialDPSMSArg_sequence[] = {
7789   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_serviceKey_impl },
7790   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_destinationSubscriberNumber_impl },
7791   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_callingPartyNumberas_impl },
7792   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_eventTypeSMS_impl },
7793   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_iMSI_impl },
7794   { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationMSC_impl },
7795   { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_locationInformationGPRS_impl },
7796   { BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sMSCAddress_impl },
7797   { BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timeAndTimezone_impl },
7798   { BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tPShortMessageSubmissionSpecificInfo_impl },
7799   { BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tPProtocolIdentifier_impl },
7800   { BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tPDataCodingScheme_impl },
7801   { BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tPValidityPeriod_impl },
7802   { BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_extensions_impl },
7803   { BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_smsReferenceNumber_impl },
7804   { BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_mscAddress_impl },
7805   { BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_sgsnNumber_impl },
7806   { 0, 0, 0, NULL }
7807 };
7808
7809 static int
7810 dissect_camel_InitialDPSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7811   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7812                                    InitialDPSMSArg_sequence, hf_index, ett_camel_InitialDPSMSArg);
7813
7814   return offset;
7815 }
7816
7817
7818
7819 static int
7820 dissect_camel_ReleaseSMSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7821   offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7822                                        NULL);
7823
7824   return offset;
7825 }
7826
7827
7828 static const ber_sequence_t ApplyChargingGPRSArg_sequence[] = {
7829   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_chargingCharacteristics_impl },
7830   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_tariffSwitchInterval_impl },
7831   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
7832   { 0, 0, 0, NULL }
7833 };
7834
7835 static int
7836 dissect_camel_ApplyChargingGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7837   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7838                                    ApplyChargingGPRSArg_sequence, hf_index, ett_camel_ApplyChargingGPRSArg);
7839
7840   return offset;
7841 }
7842
7843
7844 static const ber_sequence_t ApplyChargingReportGPRSArg_sequence[] = {
7845   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_chargingResult_impl },
7846   { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_qualityOfService_impl },
7847   { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_active_impl },
7848   { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
7849   { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_chargingRollOver_impl },
7850   { 0, 0, 0, NULL }
7851 };
7852
7853 static int
7854 dissect_camel_ApplyChargingReportGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7855   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7856                                    ApplyChargingReportGPRSArg_sequence, hf_index, ett_camel_ApplyChargingReportGPRSArg);
7857
7858   return offset;
7859 }
7860
7861
7862 static const ber_sequence_t CancelGPRSArg_sequence[] = {
7863   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
7864   { 0, 0, 0, NULL }
7865 };
7866
7867 static int
7868 dissect_camel_CancelGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7869   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7870                                    CancelGPRSArg_sequence, hf_index, ett_camel_CancelGPRSArg);
7871
7872   return offset;
7873 }
7874
7875
7876 static const ber_sequence_t ContinueGPRSArg_sequence[] = {
7877   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_pDPID_impl },
7878   { 0, 0, 0, NULL }
7879 };
7880
7881 static int
7882 dissect_camel_ContinueGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7883   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7884                                    ContinueGPRSArg_sequence, hf_index, ett_camel_ContinueGPRSArg);
7885
7886   return offset;
7887 }
7888
7889
7890 static const ber_sequence_t ResetTimerGPRSArg_sequence[] = {
7891   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_timerID_impl },
7892   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_timervalue_impl },
7893   { 0, 0, 0, NULL }
7894 };
7895
7896 static int
7897 dissect_camel_ResetTimerGPRSArg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7898   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7899                                    ResetTimerGPRSArg_sequence, hf_index, ett_camel_ResetTimerGPRSArg);
7900
7901   return offset;
7902 }
7903
7904
7905 static const value_string camel_T_problem_vals[] = {
7906   {   0, "unknownOperation" },
7907   {   1, "tooLate" },
7908   {   2, "operationNotCancellable" },
7909   { 0, NULL }
7910 };
7911
7912
7913 static int
7914 dissect_camel_T_problem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7915   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7916                                   NULL);
7917
7918   return offset;
7919 }
7920 static int dissect_problem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
7921   return dissect_camel_T_problem(TRUE, tvb, offset, pinfo, tree, hf_camel_problem);
7922 }
7923
7924
7925 static const ber_sequence_t CancelFailedPARAM_sequence[] = {
7926   { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_problem_impl },
7927   { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_operation_impl },
7928   { 0, 0, 0, NULL }
7929 };
7930
7931 static int
7932 dissect_camel_CancelFailedPARAM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7933   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
7934                                    CancelFailedPARAM_sequence, hf_index, ett_camel_CancelFailedPARAM);
7935
7936   return offset;
7937 }
7938
7939
7940 static const value_string camel_RequestedInfoErrorPARAM_vals[] = {
7941   {   1, "unknownRequestedInfo" },
7942   {   2, "requestedInfoNotAvailable" },
7943   { 0, NULL }
7944 };
7945
7946
7947 static int
7948 dissect_camel_RequestedInfoErrorPARAM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7949   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7950                                   NULL);
7951
7952   return offset;
7953 }
7954
7955
7956 static const value_string camel_TaskRefusedPARAM_vals[] = {
7957   {   0, "generic" },
7958   {   1, "unobtainable" },
7959   {   2, "congestion" },
7960   { 0, NULL }
7961 };
7962
7963
7964 static int
7965 dissect_camel_TaskRefusedPARAM(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
7966   offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
7967                                   NULL);
7968
7969   return offset;
7970 }
7971
7972
7973 /*--- End of included file: packet-camel-fn.c ---*/
7974 #line 187 "packet-camel-template.c"
7975
7976 const value_string camel_opr_code_strings[] = {
7977
7978   {0,   "InitialDP"},
7979   {16, "AssistRequestInstructions"},
7980   {17, "EstablishTemporaryConnection"},
7981   {18, "DisconnectForwardConnection"},
7982   {19, "ConnectToResource"},
7983   {20, "Connect"},
7984   {22, "ReleaseCall"},
7985   {23, "RequestReportBCSMEvent"},
7986   {24, "EventReportBCSM"},
7987   {31, "Continue"},
7988   {32, "InitiateCallAttempt"},
7989   {33, "ResetTimer"},
7990   {34, "FurnishChargingInformation"},
7991   {35, "ApplyCharging"},
7992   {36, "ApplyChargingReport"},
7993   {41, "CallGap"},
7994   {44, "CallInformationReport"},
7995   {45, "CallInformationRequest"},
7996   {46, "SendChargingInformation"},
7997   {47, "PlayAnnouncement"},
7998   {48, "PromptAndCollectUserInformation"},
7999   {49, "SpecializedResourceReport"},
8000   {53, "Cancel"},
8001   {55, "ActivityTest"},
8002   {56, "ContinueWithArgument"},
8003   {60, "InitialDPSMS"},
8004   {61, "FurnishChargingInformationSMS"},
8005   {62, "ConnectSMS"},
8006   {63, "RequestReportSMSEvent"},
8007   {64, "EventReportSMS"},
8008   {65, "ContinueSMS"},
8009   {66, "ReleaseSMS"},
8010   {67, "ResetTimerSMS"},
8011   {70, "ActivityTestGPRS"},
8012   {71, "ApplyChargingGPRS"},
8013   {72, "ApplyChargingReportGPRS"},
8014   {73, "CancelGPRS"},
8015   {74, "ConnectGPRS"},
8016   {75, "ContinueGPRS"},
8017   {76, "EntityReleasedGPRS"},
8018   {77, "FurnishChargingInformationGPRS"},
8019   {78, "InitialDPGPRS"},
8020   {79, "ReleaseGPRS"},
8021   {80, "EventReportGPRS"},
8022   {81, "RequestReportGPRSEvent"},
8023   {82, "ResetTimerGPRS"},
8024   {83, "SendChargingInformationGPRS"},
8025   {86,  "DFCWithArgument"},
8026   {88,  "ContinueWithArgument"},
8027   {90,  "DisconnectLeg"},
8028   {93,  "MoveLeg"},
8029   {95,  "SplitLeg"},
8030   {96,  "EntityReleased"},
8031   {97,  "PlayTone"},
8032   {0, NULL}
8033 };
8034
8035 char camel_number_to_char(int number)
8036 {
8037    if (number < 10)
8038    return (char) (number + 48 ); /* this is ASCII specific */
8039    else
8040    return (char) (number + 55 );
8041 }
8042
8043 static guint32 opcode=0;
8044
8045 static int
8046 dissect_camel_Opcode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
8047   offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_index, &opcode);
8048
8049   if (check_col(pinfo->cinfo, COL_INFO)){
8050     /* Add Camel Opcode to INFO column */
8051     col_append_fstr(pinfo->cinfo, COL_INFO, val_to_str(opcode, camel_opr_code_strings, "Unknown Camel (%u)"));
8052     col_append_fstr(pinfo->cinfo, COL_INFO, " ");
8053         col_set_fence(pinfo->cinfo, COL_INFO);
8054   }
8055   return offset;
8056 }
8057
8058 static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8059   switch(opcode){
8060   case 0: /*InitialDP*/
8061     offset=dissect_camel_InitialDPArg(FALSE, tvb, offset, pinfo, tree, -1);
8062     break;
8063   case 16: /*AssistRequestInstructions*/
8064     offset=dissect_camel_AssistRequestInstructionsArg(FALSE, tvb, offset, pinfo, tree, -1);
8065     break;
8066   case 17: /*EstablishTemporaryConnection*/
8067     offset=dissect_camel_EstablishTemporaryConnectionArg(FALSE, tvb, offset, pinfo, tree, -1);
8068     break;
8069   case 18: /*DisconnectForwardConnections*/
8070     proto_tree_add_text(tree, tvb, offset, -1, "Disconnect Forward Connection");
8071     break;
8072   case 19: /*ConnectToResource*/
8073     offset=dissect_camel_ConnectToResourceArg(FALSE, tvb, offset, pinfo, tree, -1);
8074     break;
8075   case 20: /*Connect*/
8076     offset=dissect_camel_ConnectArg(FALSE, tvb, offset, pinfo, tree, -1);
8077     break;
8078   case 22: /*releaseCall*/
8079     offset=dissect_camel_ReleaseCallArg(FALSE, tvb, offset, pinfo, tree, hf_camel_cause);
8080     break;
8081   case 23: /*RequestReportBCSMEvent*/
8082     offset=dissect_camel_RequestReportBCSMEventArg(FALSE, tvb, offset, pinfo, tree, -1);
8083     break;
8084   case 24: /*EventReportBCSM*/
8085     offset=dissect_camel_EventReportBCSMArg(FALSE, tvb, offset, pinfo, tree, -1);
8086     break;
8087   case 31: /*Continue*/
8088     /* Continue: no arguments - do nothing */
8089     break;
8090   case 32: /*initiateCallAttempt*/
8091     offset=dissect_camel_InitiateCallAttemptArg(FALSE, tvb, offset, pinfo, tree, -1);
8092     break;
8093   case 33: /*ResetTimer*/
8094     offset=dissect_camel_ResetTimerArg(FALSE, tvb, offset, pinfo, tree, -1);
8095     break;
8096   case 34: /*FurnishChargingInformation*/
8097     offset=dissect_camel_FurnishChargingInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
8098     break;
8099   case 35: /*ApplyCharging*/
8100     offset=dissect_camel_ApplyChargingArg(FALSE, tvb, offset, pinfo, tree, -1);
8101     break;
8102   case 36: /*ApplyChargingReport*/
8103     offset=dissect_camel_ApplyChargingReportArg(TRUE, tvb, offset, pinfo, tree, -1);
8104     break;
8105   case 41: /*CallGap*/
8106     offset=dissect_camel_CallGapArg(FALSE, tvb, offset, pinfo, tree, -1);
8107     break;
8108   case 44: /*CallInformationReport*/
8109     offset=dissect_camel_CallInformationReportArg(FALSE, tvb, offset, pinfo, tree, -1);
8110     break;
8111   case 45: /*CallInformationRequest*/
8112     offset=dissect_camel_CallInformationRequestArg(FALSE, tvb, offset, pinfo, tree, -1);
8113     break;
8114   case 46: /*SendChargingInformation*/
8115     offset=dissect_camel_SendChargingInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
8116     break;
8117   case 47: /*PlayAnnouncement*/
8118     offset=dissect_camel_PlayAnnouncementArg(FALSE, tvb, offset, pinfo, tree, -1);
8119     break;
8120   case 48: /*PromptAndCollectUserInformation*/
8121     offset=dissect_camel_PromptAndCollectUserInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
8122     break;
8123   case 49: /*SpecializedResourceReport*/
8124     offset=dissect_camel_SpecializedResourceReportArg(FALSE, tvb, offset, pinfo, tree, -1);
8125     break;
8126   case 53: /*Cancel*/
8127     offset=dissect_camel_CancelArg(FALSE, tvb, offset, pinfo, tree, -1);
8128     break;
8129   case 56: /*ContinueWithArgument*/
8130     offset=dissect_camel_ContinueWithArgumentArg(FALSE, tvb, offset, pinfo, tree, -1);
8131     break;
8132   case 60: /*InitialDPSMS*/
8133     offset=dissect_camel_InitialDPSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
8134     break;
8135   case 61: /*FurnishChargingInformationSMS*/
8136     offset=dissect_camel_FurnishChargingInformationSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
8137     break;
8138   case 62: /*ConnectSMS*/
8139     offset=dissect_camel_ConnectSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
8140     break;
8141   case 63: /*RequestReportSMSEvent*/
8142     offset=dissect_camel_RequestReportSMSEventArg(FALSE, tvb, offset, pinfo, tree, -1);
8143     break;
8144   case 64: /*EventReportSMS*/
8145     offset=dissect_camel_EventReportSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
8146     break;
8147   case 65: /*ContinueSMS*/
8148     /* ContinueSMS: no arguments - do nothing */
8149     break;
8150   case 66: /*ReleaseSMS*/
8151     offset=dissect_camel_ReleaseSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
8152     break;
8153   case 67: /*ResetTimerSMS*/
8154     offset=dissect_camel_ResetTimerSMSArg(FALSE, tvb, offset, pinfo, tree, -1);
8155     break;
8156   case 71: /*ApplyChargingGPRS*/
8157     offset=dissect_camel_ApplyChargingGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8158     break;
8159   case 72: /*ApplyChargingReportGPRS*/
8160     offset=dissect_camel_ApplyChargingReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8161     break;
8162   case 73: /*CancelGPRS*/
8163     offset=dissect_camel_CancelGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8164     break;
8165   case 74: /*ConnectGPRS*/
8166     offset=dissect_camel_ConnectGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8167     break;
8168   case 75: /*ContinueGPRS*/
8169     offset=dissect_camel_ContinueGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8170     break;
8171   case 76: /*EntityReleasedGPRS*/
8172     offset=dissect_camel_EntityReleasedGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8173     break;
8174   case 77: /*FurnishChargingInformationGPRS*/
8175     offset=dissect_camel_FurnishChargingInformationGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8176     break;
8177   case 78: /*InitialDPGPRS*/
8178     offset=dissect_camel_InitialDPGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8179     break;
8180   case 79: /*ReleaseGPRS*/
8181     offset=dissect_camel_ReleaseGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8182     break;
8183   case 80: /*EventReportGPRS*/
8184     offset=dissect_camel_EventReportGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8185     break;
8186   case 81: /*RequestReportGPRSEvent*/
8187     offset=dissect_camel_RequestReportGPRSEventArg(FALSE, tvb, offset, pinfo, tree, -1);
8188     break;
8189   case 82: /*ResetTimerGPRS*/
8190     offset=dissect_camel_ResetTimerGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8191     break;
8192   case 83: /*SendChargingInformationGPRS*/
8193     offset=dissect_camel_SendChargingInformationGPRSArg(FALSE, tvb, offset, pinfo, tree, -1);
8194     break;
8195   case 86: /*DFCWithArgument*/
8196     offset= dissect_camel_DisconnectForwardConnectionWithArgumentArg(FALSE, tvb, offset, pinfo, tree, -1);
8197     break;
8198   case 88: /*ContinueWithArgument*/
8199           /* XXX Same as opcode 56 ??? */
8200     offset= dissect_camel_ContinueWithArgumentArg(FALSE, tvb, offset, pinfo, tree, -1);
8201     break;
8202   case 90: /*DisconnectLeg*/
8203     offset= dissect_camel_DisconnectLegArg(FALSE, tvb, offset, pinfo, tree, -1);
8204     break;
8205   case 93: /*MoveLeg*/
8206     offset= dissect_camel_MoveLegArg(FALSE, tvb, offset, pinfo, tree, -1);
8207     break;
8208   case 95: /*SplitLeg*/
8209     offset= dissect_camel_SplitLegArg(FALSE, tvb, offset, pinfo, tree, -1);
8210     break;
8211   case 96: /*EntityReleased*/
8212     offset= dissect_camel_EntityReleasedArg(FALSE, tvb, offset, pinfo, tree, -1);
8213     break;
8214   case 97: /*PlayTone*/
8215     offset= dissect_camel_PlayToneArg(FALSE, tvb, offset, pinfo, tree, -1);
8216     break;
8217   default:
8218     proto_tree_add_text(tree, tvb, offset, -1, "Unknown invokeData blob");
8219     /* todo call the asn.1 dissector */
8220   }
8221   return offset;
8222 }
8223
8224
8225 static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8226   switch(opcode){
8227   case 32: /*initiateCallAttempt*/
8228     offset=dissect_camel_InitiateCallAttemptRes(FALSE, tvb, offset, pinfo, tree, -1);
8229     break;
8230   case 48: /*PromptAndCollectUserInformation*/
8231     offset=dissect_camel_ReceivedInformationArg(FALSE, tvb, offset, pinfo, tree, -1);
8232     break;
8233   case 55: /*ActivityTest*/
8234     /* ActivityTest: no arguments - do nothing */
8235     break;
8236   case 70: /*ActivityTestGPRS*/
8237     /* ActivityTestGPRS: no arguments - do nothing */
8238     break;
8239   default:
8240     proto_tree_add_text(tree, tvb, offset, -1, "Unknown returnResultData blob");
8241   }
8242   return offset;
8243 }
8244
8245 static int 
8246 dissect_invokeCmd(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8247   return dissect_camel_Opcode(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeCmd);
8248 }
8249
8250 static int dissect_invokeid(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8251   return dissect_ber_integer(FALSE, pinfo, tree, tvb, offset, hf_camel_invokeid, NULL);
8252 }
8253
8254
8255 static const value_string InvokeId_vals[] = {
8256   {   0, "invokeid" },
8257   {   1, "absent" },
8258   { 0, NULL }
8259 };
8260
8261 static int dissect_absent(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8262   return dissect_camel_NULL(FALSE, tvb, offset, pinfo, tree, hf_camel_absent);
8263 }
8264
8265 static const ber_choice_t InvokeId_choice[] = {
8266   {   0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeid },
8267   {   1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_absent },
8268   { 0, 0, 0, 0, NULL }
8269 };
8270
8271 static int
8272 dissect_camel_InvokeId(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
8273   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
8274                               InvokeId_choice, hf_index, ett_camel_InvokeId, NULL);
8275
8276   return offset;
8277 }
8278 static int dissect_invokeId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8279   return dissect_camel_InvokeId(FALSE, tvb, offset, pinfo, tree, hf_camel_invokeId);
8280 }
8281 static int dissect_linkedID_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8282         return dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_camel_linkedID, NULL);
8283 }
8284
8285 static const ber_sequence_t InvokePDU_sequence[] = {
8286   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
8287   { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_linkedID_impl },
8288   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
8289   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeData },
8290   { 0, 0, 0, NULL }
8291 };
8292
8293 static int
8294 dissect_camel_InvokePDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
8295   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8296                                 InvokePDU_sequence, hf_index, ett_camel_InvokePDU);
8297
8298   return offset;
8299 }
8300 static int dissect_invoke_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8301   return dissect_camel_InvokePDU(TRUE, tvb, offset, pinfo, tree, hf_camel_invoke);
8302 }
8303
8304 static const ber_sequence_t ReturnResult_result_sequence[] = {
8305   { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_invokeCmd },
8306   { BER_CLASS_UNI, -1/*depends on Cmd*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_returnResultData },
8307   { 0, 0, 0, NULL }
8308 };
8309 static int
8310 dissect_returnResult_result(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8311   offset = dissect_ber_sequence(FALSE, pinfo, tree, tvb, offset,
8312                                 ReturnResult_result_sequence, hf_camel_returnResult_result, ett_camel_ReturnResult_result);
8313
8314   return offset;
8315 }
8316
8317 static const ber_sequence_t ReturnResultPDU_sequence[] = {
8318   { BER_CLASS_UNI, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_invokeId },
8319   { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_returnResult_result },
8320   { 0, 0, 0, NULL }
8321 };
8322
8323 static int
8324 dissect_camel_returnResultPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
8325   offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
8326                                 ReturnResultPDU_sequence, hf_index, ett_camel_ReturnResultPDU);
8327
8328   return offset;
8329 }
8330 static int dissect_returnResult_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
8331   return dissect_camel_returnResultPDU(TRUE, tvb, offset, pinfo, tree, hf_camel_returnResult);
8332 }
8333
8334 static const value_string camelPDU_vals[] = {
8335   {   1, "Invoke " },
8336   {   2, "ReturnResult " },
8337   {   3, "ReturnError " },
8338   {   4, "Reject " },
8339   { 0, NULL }
8340 };
8341
8342 static const ber_choice_t camelPDU_choice[] = {
8343   {   1, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_invoke_impl },
8344   {   2, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_returnResult_impl },
8345 #ifdef REMOVED
8346   {   3, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_returnError_impl },
8347   {   4, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_reject_impl },
8348 #endif
8349   { 0, 0, 0, 0, NULL }
8350 };
8351
8352 static guint8 camel_pdu_type = 0;
8353 static guint8 camel_pdu_size = 0;
8354
8355 static int
8356 dissect_camel_camelPDU(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
8357
8358   char *version_ptr;
8359
8360   opcode = 0;
8361   application_context_version = 0;
8362   if (pinfo->private_data != NULL){
8363     version_ptr = strrchr(pinfo->private_data,'.');
8364     if (version_ptr) {
8365       application_context_version = atoi(version_ptr+1);
8366     }
8367   }
8368
8369   camel_pdu_type = tvb_get_guint8(tvb, offset)&0x0f;
8370   /* Get the length and add 2 */
8371   camel_pdu_size = tvb_get_guint8(tvb, offset+1)+2;
8372
8373   if (check_col(pinfo->cinfo, COL_INFO)){
8374     /* Populate the info column with PDU type*/
8375     col_set_str(pinfo->cinfo, COL_INFO, val_to_str(camel_pdu_type, camelPDU_vals, "Unknown Camel (%u)"));
8376   }
8377
8378   offset = dissect_ber_choice(pinfo, tree, tvb, offset,
8379                               camelPDU_choice, hf_index, ett_camel_camelPDU, NULL);
8380
8381   return offset;
8382 }
8383
8384 static void
8385 dissect_camel(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
8386 {
8387   proto_item    *item=NULL;
8388   proto_tree    *tree=NULL;
8389
8390   if (check_col(pinfo->cinfo, COL_PROTOCOL)) {
8391     col_set_str(pinfo->cinfo, COL_PROTOCOL, "Camel");
8392   }
8393
8394   /* create display subtree for the protocol */
8395   if(parent_tree){
8396      item = proto_tree_add_item(parent_tree, proto_camel, tvb, 0, -1, FALSE);
8397      tree = proto_item_add_subtree(item, ett_camel);
8398   }
8399
8400   dissect_camel_camelPDU(FALSE, tvb, 0, pinfo, tree, -1);
8401
8402 }
8403
8404 /*--- proto_reg_handoff_camel ---------------------------------------*/
8405 static void range_delete_callback(guint32 ssn)
8406 {
8407   if (ssn) {
8408     delete_itu_tcap_subdissector(ssn, camel_handle);
8409   }
8410 }
8411
8412 static void range_add_callback(guint32 ssn)
8413 {
8414   if (ssn) {
8415     add_itu_tcap_subdissector(ssn, camel_handle);
8416   }
8417 }
8418
8419 void proto_reg_handoff_camel(void) {
8420
8421   static int camel_prefs_initialized = FALSE;
8422   
8423   if (!camel_prefs_initialized) {
8424     camel_prefs_initialized = TRUE;
8425     camel_handle = create_dissector_handle(dissect_camel, proto_camel);
8426   } else {
8427     range_foreach(ssn_range, range_delete_callback);
8428   }
8429
8430   g_free(ssn_range);
8431   ssn_range = range_copy(global_ssn_range);
8432
8433   range_foreach(ssn_range, range_add_callback);
8434   
8435 }
8436
8437 void proto_register_camel(void) {
8438   module_t *camel_module;
8439   /* List of fields */
8440   static hf_register_info hf[] = {
8441   { &hf_camel_cause_indicator, /* Currently not enabled */
8442     { "Cause indicator",  "camel.cause_indicator",
8443       FT_UINT8, BASE_DEC, VALS(q850_cause_code_vals), 0x7f,
8444       "", HFILL }},
8445     { &hf_camel_invokeCmd,
8446       { "invokeCmd", "camel.invokeCmd",
8447         FT_UINT32, BASE_DEC, VALS(camel_opr_code_strings), 0,
8448         "InvokePDU/invokeCmd", HFILL }},
8449     { &hf_camel_invokeid,
8450       { "invokeid", "camel.invokeid",
8451         FT_INT32, BASE_DEC, NULL, 0,
8452         "InvokeId/invokeid", HFILL }},
8453     { &hf_camel_linkedID,
8454       { "linkedid", "camel.linkedid",
8455         FT_INT32, BASE_DEC, NULL, 0,
8456         "LinkedId/linkedid", HFILL }},
8457     
8458     { &hf_camel_absent,
8459       { "absent", "camel.absent",
8460         FT_NONE, BASE_NONE, NULL, 0,
8461         "InvokeId/absent", HFILL }},
8462     { &hf_camel_invokeId,
8463       { "invokeId", "camel.invokeId",
8464         FT_UINT32, BASE_DEC, VALS(InvokeId_vals), 0,
8465         "InvokePDU/invokeId", HFILL }},
8466     { &hf_camel_invoke,
8467       { "invoke", "camel.invoke",
8468         FT_NONE, BASE_NONE, NULL, 0,
8469         "camelPDU/invoke", HFILL }},
8470     { &hf_camel_returnResult,
8471       { "returnResult", "camel.returnResult",
8472         FT_NONE, BASE_NONE, NULL, 0,
8473         "camelPDU/returnResult", HFILL }},
8474     { &hf_camel_imsi_digits,
8475       { "Imsi digits", "camel.imsi_digits",
8476         FT_STRING, BASE_NONE, NULL, 0,
8477         "Imsi digits", HFILL }},
8478     { &hf_camel_addr_extension,
8479      { "Extension", "camel.addr_extension",
8480         FT_BOOLEAN, 8, TFS(&camel_extension_value), 0x80,
8481         "Extension", HFILL }},
8482     { &hf_camel_addr_natureOfAddressIndicator,
8483       { "Nature of address", "camel.addr_nature_of_addr",
8484         FT_UINT8, BASE_HEX, VALS(camel_nature_of_addr_indicator_values), 0x70,
8485         "Nature of address", HFILL }},
8486     { &hf_camel_addr_numberingPlanInd,
8487       { "Numbering plan indicator", "camel.addr_numbering_plan",
8488         FT_UINT8, BASE_HEX, VALS(camel_number_plan_values), 0x0f,
8489         "Numbering plan indicator", HFILL }},
8490   { &hf_camel_addr_digits,
8491       { "Address digits", "camel.address_digits",
8492         FT_STRING, BASE_NONE, NULL, 0,
8493         "Address digits", HFILL }},
8494    { &hf_digit,
8495       { "Digit Value",  "camel.digit_value",
8496       FT_UINT8, BASE_DEC, VALS(digit_value), 0, "Digit Value", HFILL }},
8497    { &hf_camel_PDPTypeNumber_etsi,
8498       { "ETSI defined PDP Type Value",  "camel.PDPTypeNumber_etsi",
8499       FT_UINT8, BASE_HEX, VALS(gsm_map_etsi_defined_pdp_vals), 0,
8500           "ETSI defined PDP Type Value", HFILL }},
8501    { &hf_camel_PDPTypeNumber_ietf,
8502       { "IETF defined PDP Type Value",  "camel.PDPTypeNumber_ietf",
8503       FT_UINT8, BASE_HEX, VALS(gsm_map_ietf_defined_pdp_vals), 0,
8504           "IETF defined PDP Type Value", HFILL }},
8505    { &hf_camel_PDPAddress_IPv4,
8506       { "PDPAddress IPv4",  "camel.PDPAddress_IPv4",
8507           FT_IPv4, BASE_NONE, NULL, 0,
8508           "IPAddress IPv4", HFILL }},
8509    { &hf_camel_PDPAddress_IPv6,
8510       { "PDPAddress IPv6",  "camel.PDPAddress_IPv6",
8511           FT_IPv6, BASE_NONE, NULL, 0,
8512           "IPAddress IPv6", HFILL }},
8513     { &hf_camel_cellGlobalIdOrServiceAreaIdFixedLength,
8514       { "CellGlobalIdOrServiceAreaIdFixedLength", "camel.CellGlobalIdOrServiceAreaIdFixedLength",
8515         FT_BYTES, BASE_HEX, NULL, 0,
8516         "LocationInformationGPRS/CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
8517
8518 #ifdef REMOVED
8519 #endif
8520
8521 /*--- Included file: packet-camel-hfarr.c ---*/
8522 #line 1 "packet-camel-hfarr.c"
8523     { &hf_camel_reserved,
8524       { "reserved", "camel.reserved",
8525         FT_INT32, BASE_DEC, NULL, 0,
8526         "camel.INTEGER", HFILL }},
8527     { &hf_camel_aoc,
8528       { "aoc", "camel.aoc",
8529         FT_INT32, BASE_DEC, NULL, 0,
8530         "camel.INTEGER", HFILL }},
8531     { &hf_camel_standardPartEnd,
8532       { "standardPartEnd", "camel.standardPartEnd",
8533         FT_INT32, BASE_DEC, NULL, 0,
8534         "camel.INTEGER", HFILL }},
8535     { &hf_camel_genOfVoiceAnn,
8536       { "genOfVoiceAnn", "camel.genOfVoiceAnn",
8537         FT_INT32, BASE_DEC, NULL, 0,
8538         "camel.INTEGER", HFILL }},
8539     { &hf_camel_voiceInfo2,
8540       { "voiceInfo2", "camel.voiceInfo2",
8541         FT_INT32, BASE_DEC, NULL, 0,
8542         "camel.INTEGER", HFILL }},
8543     { &hf_camel_voiceInfo1,
8544       { "voiceInfo1", "camel.voiceInfo1",
8545         FT_INT32, BASE_DEC, NULL, 0,
8546         "camel.INTEGER", HFILL }},
8547     { &hf_camel_voiceBack1,
8548       { "voiceBack1", "camel.voiceBack1",
8549         FT_INT32, BASE_DEC, NULL, 0,
8550         "camel.INTEGER", HFILL }},
8551     { &hf_camel_iPRoutAdd,
8552       { "iPRoutAdd", "camel.iPRoutAdd",
8553         FT_INT32, BASE_DEC, NULL, 0,
8554         "camel.INTEGER", HFILL }},
8555     { &hf_camel_bilateralPart,
8556       { "bilateralPart", "camel.bilateralPart",
8557         FT_BYTES, BASE_HEX, NULL, 0,
8558         "camel.OCTET_STRING_SIZE_0_3", HFILL }},
8559     { &hf_camel_extension,
8560       { "extension", "camel.extension",
8561         FT_UINT32, BASE_DEC, NULL, 0,
8562         "camel.INTEGER_1", HFILL }},
8563     { &hf_camel_natureOfAddressIndicator,
8564       { "natureOfAddressIndicator", "camel.natureOfAddressIndicator",
8565         FT_INT32, BASE_DEC, NULL, 0,
8566         "camel.INTEGER", HFILL }},
8567     { &hf_camel_numberingPlanInd,
8568       { "numberingPlanInd", "camel.numberingPlanInd",
8569         FT_INT32, BASE_DEC, NULL, 0,
8570         "camel.INTEGER", HFILL }},
8571     { &hf_camel_digits1,
8572       { "digits1", "camel.digits1",
8573         FT_BYTES, BASE_HEX, NULL, 0,
8574         "camel.OCTET_STRING_SIZE_0_19", HFILL }},
8575     { &hf_camel_digits2,
8576       { "digits2", "camel.digits2",
8577         FT_BYTES, BASE_HEX, NULL, 0,
8578         "camel.OCTET_STRING_SIZE_0_8", HFILL }},
8579     { &hf_camel_typeOfShape,
8580       { "typeOfShape", "camel.typeOfShape",
8581         FT_INT32, BASE_DEC, NULL, 0,
8582         "camel.INTEGER", HFILL }},
8583     { &hf_camel_spare3,
8584       { "spare3", "camel.spare3",
8585         FT_INT32, BASE_DEC, NULL, 0,
8586         "camel.INTEGER", HFILL }},
8587     { &hf_camel_degreesOfLatitude,
8588       { "degreesOfLatitude", "camel.degreesOfLatitude",
8589         FT_BYTES, BASE_HEX, NULL, 0,
8590         "camel.OCTET_STRING_SIZE_3", HFILL }},
8591     { &hf_camel_degreesOfLongitude,
8592       { "degreesOfLongitude", "camel.degreesOfLongitude",
8593         FT_BYTES, BASE_HEX, NULL, 0,
8594         "camel.OCTET_STRING_SIZE_3", HFILL }},
8595     { &hf_camel_uncertaintyCode,
8596       { "uncertaintyCode", "camel.uncertaintyCode",
8597         FT_BYTES, BASE_HEX, NULL, 0,
8598         "camel.OCTET_STRING_SIZE_1", HFILL }},
8599     { &hf_camel_typeOfAddress,
8600       { "typeOfAddress", "camel.typeOfAddress",
8601         FT_INT32, BASE_DEC, NULL, 0,
8602         "camel.INTEGER", HFILL }},
8603     { &hf_camel_addressLength,
8604       { "addressLength", "camel.addressLength",
8605         FT_UINT32, BASE_DEC, NULL, 0,
8606         "camel.INTEGER_4_16", HFILL }},
8607     { &hf_camel_address,
8608       { "address", "camel.address",
8609         FT_BYTES, BASE_HEX, NULL, 0,
8610         "camel.OCTET_STRING_SIZE_4_16", HFILL }},
8611     { &hf_camel_originalReasons,
8612       { "originalReasons", "camel.originalReasons",
8613         FT_INT32, BASE_DEC, NULL, 0,
8614         "camel.INTEGER", HFILL }},
8615     { &hf_camel_spare4,
8616       { "spare4", "camel.spare4",
8617         FT_UINT32, BASE_DEC, NULL, 0,
8618         "camel.INTEGER_0", HFILL }},
8619     { &hf_camel_indicator,
8620       { "indicator", "camel.indicator",
8621         FT_INT32, BASE_DEC, NULL, 0,
8622         "camel.INTEGER", HFILL }},
8623     { &hf_camel_reason,
8624       { "reason", "camel.reason",
8625         FT_INT32, BASE_DEC, NULL, 0,
8626         "camel.INTEGER", HFILL }},
8627     { &hf_camel_spare2,
8628       { "spare2", "camel.spare2",
8629         FT_UINT32, BASE_DEC, NULL, 0,
8630         "camel.INTEGER_0", HFILL }},
8631     { &hf_camel_counter,
8632       { "counter", "camel.counter",
8633         FT_INT32, BASE_DEC, NULL, 0,
8634         "camel.INTEGER", HFILL }},
8635     { &hf_camel_oddEven,
8636       { "oddEven", "camel.oddEven",
8637         FT_INT32, BASE_DEC, NULL, 0,
8638         "camel.INTEGER", HFILL }},
8639     { &hf_camel_innInd,
8640       { "innInd", "camel.innInd",
8641         FT_INT32, BASE_DEC, NULL, 0,
8642         "camel.INTEGER", HFILL }},
8643     { &hf_camel_spare5,
8644       { "spare5", "camel.spare5",
8645         FT_UINT32, BASE_DEC, NULL, 0,
8646         "camel.INTEGER_0", HFILL }},
8647     { &hf_camel_digits3,
8648       { "digits3", "camel.digits3",
8649         FT_BYTES, BASE_HEX, NULL, 0,
8650         "camel.OCTET_STRING_SIZE_0_16", HFILL }},
8651     { &hf_camel_niInd,
8652       { "niInd", "camel.niInd",
8653         FT_INT32, BASE_DEC, NULL, 0,
8654         "camel.INTEGER", HFILL }},
8655     { &hf_camel_presentInd,
8656       { "presentInd", "camel.presentInd",
8657         FT_INT32, BASE_DEC, NULL, 0,
8658         "camel.INTEGER", HFILL }},
8659     { &hf_camel_screening,
8660       { "screening", "camel.screening",
8661         FT_INT32, BASE_DEC, NULL, 0,
8662         "camel.INTEGER", HFILL }},
8663     { &hf_camel_digits4,
8664       { "digits4", "camel.digits4",
8665         FT_BYTES, BASE_HEX, NULL, 0,
8666         "camel.OCTET_STRING_SIZE_0_8", HFILL }},
8667     { &hf_camel_spare6,
8668       { "spare6", "camel.spare6",
8669         FT_UINT32, BASE_DEC, NULL, 0,
8670         "camel.INTEGER_0", HFILL }},
8671     { &hf_camel_digits5,
8672       { "digits5", "camel.digits5",
8673         FT_BYTES, BASE_HEX, NULL, 0,
8674         "camel.OCTET_STRING_SIZE_1_10", HFILL }},
8675     { &hf_camel_o1ext,
8676       { "o1ext", "camel.o1ext",
8677         FT_UINT32, BASE_DEC, NULL, 0,
8678         "camel.INTEGER_1", HFILL }},
8679     { &hf_camel_codingStandard,
8680       { "codingStandard", "camel.codingStandard",
8681         FT_INT32, BASE_DEC, NULL, 0,
8682         "camel.INTEGER", HFILL }},
8683     { &hf_camel_spare77,
8684       { "spare77", "camel.spare77",
8685         FT_UINT32, BASE_DEC, NULL, 0,
8686         "camel.INTEGER_0", HFILL }},
8687     { &hf_camel_location,
8688       { "location", "camel.location",
8689         FT_INT32, BASE_DEC, NULL, 0,
8690         "camel.INTEGER", HFILL }},
8691     { &hf_camel_o2ext,
8692       { "o2ext", "camel.o2ext",
8693         FT_UINT32, BASE_DEC, NULL, 0,
8694         "camel.INTEGER_1", HFILL }},
8695     { &hf_camel_causeValue,
8696       { "causeValue", "camel.causeValue",
8697         FT_INT32, BASE_DEC, NULL, 0,
8698         "camel.INTEGER", HFILL }},
8699     { &hf_camel_diagnostics,
8700       { "diagnostics", "camel.diagnostics",
8701         FT_BYTES, BASE_HEX, NULL, 0,
8702         "camel.OCTET_STRING_SIZE_0_30", HFILL }},
8703     { &hf_camel_numberQualifierIndicator,
8704       { "numberQualifierIndicator", "camel.numberQualifierIndicator",
8705         FT_INT32, BASE_DEC, NULL, 0,
8706         "camel.INTEGER", HFILL }},
8707     { &hf_camel_digits6,
8708       { "digits6", "camel.digits6",
8709         FT_BYTES, BASE_HEX, NULL, 0,
8710         "camel.OCTET_STRING_SIZE_0_8", HFILL }},
8711     { &hf_camel_digits7,
8712       { "digits7", "camel.digits7",
8713         FT_BYTES, BASE_HEX, NULL, 0,
8714         "camel.OCTET_STRING_SIZE_0_8", HFILL }},
8715     { &hf_camel_ext,
8716       { "ext", "camel.ext",
8717         FT_INT32, BASE_DEC, NULL, 0,
8718         "camel.INTEGER", HFILL }},
8719     { &hf_camel_typeOfNumber,
8720       { "typeOfNumber", "camel.typeOfNumber",
8721         FT_UINT32, BASE_DEC, VALS(camel_T_typeOfNumber_vals), 0,
8722         "camel.T_typeOfNumber", HFILL }},
8723     { &hf_camel_digits8,
8724       { "digits8", "camel.digits8",
8725         FT_BYTES, BASE_HEX, NULL, 0,
8726         "camel.OCTET_STRING_SIZE_0_40", HFILL }},
8727     { &hf_camel_actimeDurationCharging,
8728       { "actimeDurationCharging", "camel.actimeDurationCharging",
8729         FT_NONE, BASE_NONE, NULL, 0,
8730         "camel.T_actimeDurationCharging", HFILL }},
8731     { &hf_camel_maxCallPeriodDuration,
8732       { "maxCallPeriodDuration", "camel.maxCallPeriodDuration",
8733         FT_UINT32, BASE_DEC, NULL, 0,
8734         "camel.INTEGER_1_864000", HFILL }},
8735     { &hf_camel_releaseIfdurationExceeded,
8736       { "releaseIfdurationExceeded", "camel.releaseIfdurationExceeded",
8737         FT_BOOLEAN, 8, NULL, 0,
8738         "camel.BOOLEAN", HFILL }},
8739     { &hf_camel_tariffSwitchInterval,
8740       { "tariffSwitchInterval", "camel.tariffSwitchInterval",
8741         FT_UINT32, BASE_DEC, NULL, 0,
8742         "camel.INTEGER_1_86400", HFILL }},
8743     { &hf_camel_actone,
8744       { "actone", "camel.actone",
8745         FT_BOOLEAN, 8, NULL, 0,
8746         "camel.BOOLEAN", HFILL }},
8747     { &hf_camel_extensions,
8748       { "extensions", "camel.extensions",
8749         FT_UINT32, BASE_DEC, NULL, 0,
8750         "camel.ExtensionsArray", HFILL }},
8751     { &hf_camel_legID,
8752       { "legID", "camel.legID",
8753         FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0,
8754         "camel.LegID", HFILL }},
8755     { &hf_camel_srfConnection,
8756       { "srfConnection", "camel.srfConnection",
8757         FT_UINT32, BASE_DEC, NULL, 0,
8758         "camel.CallSegmentID", HFILL }},
8759     { &hf_camel_aOCInitial,
8760       { "aOCInitial", "camel.aOCInitial",
8761         FT_NONE, BASE_NONE, NULL, 0,
8762         "camel.CAI_Gsm0224", HFILL }},
8763     { &hf_camel_aOCSubsequent,
8764       { "aOCSubsequent", "camel.aOCSubsequent",
8765         FT_NONE, BASE_NONE, NULL, 0,
8766         "camel.AOCSubsequent", HFILL }},
8767     { &hf_camel_cAI_GSM0224,
8768       { "cAI-GSM0224", "camel.cAI_GSM0224",
8769         FT_NONE, BASE_NONE, NULL, 0,
8770         "camel.CAI_Gsm0224", HFILL }},
8771     { &hf_camel_tone,
8772       { "tone", "camel.tone",
8773         FT_BOOLEAN, 8, NULL, 0,
8774         "camel.BOOLEAN", HFILL }},
8775     { &hf_camel_burstList,
8776       { "burstList", "camel.burstList",
8777         FT_NONE, BASE_NONE, NULL, 0,
8778         "camel.BurstList", HFILL }},
8779     { &hf_camel_conferenceTreatmentIndicator,
8780       { "conferenceTreatmentIndicator", "camel.conferenceTreatmentIndicator",
8781         FT_BYTES, BASE_HEX, NULL, 0,
8782         "camel.OCTET_STRING_SIZE_1", HFILL }},
8783     { &hf_camel_callCompletionTreatmentIndicator,
8784       { "callCompletionTreatmentIndicator", "camel.callCompletionTreatmentIndicator",
8785         FT_BYTES, BASE_HEX, NULL, 0,
8786         "camel.OCTET_STRING_SIZE_1", HFILL }},
8787     { &hf_camel_calledAddressValue,
8788       { "calledAddressValue", "camel.calledAddressValue",
8789         FT_BYTES, BASE_HEX, NULL, 0,
8790         "camel.Digits", HFILL }},
8791     { &hf_camel_gapOnService,
8792       { "gapOnService", "camel.gapOnService",
8793         FT_NONE, BASE_NONE, NULL, 0,
8794         "camel.GapOnService", HFILL }},
8795     { &hf_camel_calledAddressAndService,
8796       { "calledAddressAndService", "camel.calledAddressAndService",
8797         FT_NONE, BASE_NONE, NULL, 0,
8798         "camel.T_calledAddressAndService", HFILL }},
8799     { &hf_camel_serviceKey,
8800       { "serviceKey", "camel.serviceKey",
8801         FT_UINT32, BASE_DEC, NULL, 0,
8802         "camel.ServiceKey", HFILL }},
8803     { &hf_camel_callingAddressAndService,
8804       { "callingAddressAndService", "camel.callingAddressAndService",
8805         FT_NONE, BASE_NONE, NULL, 0,
8806         "camel.T_callingAddressAndService", HFILL }},
8807     { &hf_camel_callingAddressValue,
8808       { "callingAddressValue", "camel.callingAddressValue",
8809         FT_BYTES, BASE_HEX, NULL, 0,
8810         "camel.Digits", HFILL }},
8811     { &hf_camel_eventTypeBCSM,
8812       { "eventTypeBCSM", "camel.eventTypeBCSM",
8813         FT_UINT32, BASE_DEC, VALS(camel_EventTypeBCSM_vals), 0,
8814         "camel.EventTypeBCSM", HFILL }},
8815     { &hf_camel_monitorMode,
8816       { "monitorMode", "camel.monitorMode",
8817         FT_UINT32, BASE_DEC, VALS(camel_MonitorMode_vals), 0,
8818         "camel.MonitorMode", HFILL }},
8819     { &hf_camel_legID6,
8820       { "legID6", "camel.legID6",
8821         FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0,
8822         "camel.LegID", HFILL }},
8823     { &hf_camel_dpSpecificCriteria,
8824       { "dpSpecificCriteria", "camel.dpSpecificCriteria",
8825         FT_UINT32, BASE_DEC, VALS(camel_DpSpecificCriteria_vals), 0,
8826         "camel.DpSpecificCriteria", HFILL }},
8827     { &hf_camel_automaticRearm,
8828       { "automaticRearm", "camel.automaticRearm",
8829         FT_NONE, BASE_NONE, NULL, 0,
8830         "camel.NULL", HFILL }},
8831     { &hf_camel_cause,
8832       { "cause", "camel.cause",
8833         FT_BYTES, BASE_HEX, NULL, 0,
8834         "camel.Cause", HFILL }},
8835     { &hf_camel_bearerCap,
8836       { "bearerCap", "camel.bearerCap",
8837         FT_BYTES, BASE_HEX, NULL, 0,
8838         "camel.BearerCap", HFILL }},
8839     { &hf_camel_numberOfBursts,
8840       { "numberOfBursts", "camel.numberOfBursts",
8841         FT_UINT32, BASE_DEC, NULL, 0,
8842         "camel.INTEGER_1_3", HFILL }},
8843     { &hf_camel_burstInterval,
8844       { "burstInterval", "camel.burstInterval",
8845         FT_UINT32, BASE_DEC, NULL, 0,
8846         "camel.INTEGER_1_1200", HFILL }},
8847     { &hf_camel_numberOfTonesInBurst,
8848       { "numberOfTonesInBurst", "camel.numberOfTonesInBurst",
8849         FT_UINT32, BASE_DEC, NULL, 0,
8850         "camel.INTEGER_1_3", HFILL }},
8851     { &hf_camel_toneDuration,
8852       { "toneDuration", "camel.toneDuration",
8853         FT_UINT32, BASE_DEC, NULL, 0,
8854         "camel.INTEGER_1_20", HFILL }},
8855     { &hf_camel_toneInterval,
8856       { "toneInterval", "camel.toneInterval",
8857         FT_UINT32, BASE_DEC, NULL, 0,
8858         "camel.INTEGER_1_20", HFILL }},
8859     { &hf_camel_warningPeriod,
8860       { "warningPeriod", "camel.warningPeriod",
8861         FT_UINT32, BASE_DEC, NULL, 0,
8862         "camel.INTEGER_1_1200", HFILL }},
8863     { &hf_camel_bursts,
8864       { "bursts", "camel.bursts",
8865         FT_NONE, BASE_NONE, NULL, 0,
8866         "camel.Burst", HFILL }},
8867     { &hf_camel_e1,
8868       { "e1", "camel.e1",
8869         FT_UINT32, BASE_DEC, NULL, 0,
8870         "camel.INTEGER_0_8191", HFILL }},
8871     { &hf_camel_e2,
8872       { "e2", "camel.e2",
8873         FT_UINT32, BASE_DEC, NULL, 0,
8874         "camel.INTEGER_0_8191", HFILL }},
8875     { &hf_camel_e3,
8876       { "e3", "camel.e3",
8877         FT_UINT32, BASE_DEC, NULL, 0,
8878         "camel.INTEGER_0_8191", HFILL }},
8879     { &hf_camel_e4,
8880       { "e4", "camel.e4",
8881         FT_UINT32, BASE_DEC, NULL, 0,
8882         "camel.INTEGER_0_8191", HFILL }},
8883     { &hf_camel_e5,
8884       { "e5", "camel.e5",
8885         FT_UINT32, BASE_DEC, NULL, 0,
8886         "camel.INTEGER_0_8191", HFILL }},
8887     { &hf_camel_e6,
8888       { "e6", "camel.e6",
8889         FT_UINT32, BASE_DEC, NULL, 0,
8890         "camel.INTEGER_0_8191", HFILL }},
8891     { &hf_camel_e7,
8892       { "e7", "camel.e7",
8893         FT_UINT32, BASE_DEC, NULL, 0,
8894         "camel.INTEGER_0_8191", HFILL }},
8895     { &hf_camel_callSegmentID,
8896       { "callSegmentID", "camel.callSegmentID",
8897         FT_UINT32, BASE_DEC, NULL, 0,
8898         "camel.CallSegmentID", HFILL }},
8899     { &hf_camel_invokeID,
8900       { "invokeID", "camel.invokeID",
8901         FT_INT32, BASE_DEC, NULL, 0,
8902         "camel.InvokeID", HFILL }},
8903     { &hf_camel_timeDurationCharging,
8904       { "timeDurationCharging", "camel.timeDurationCharging",
8905         FT_NONE, BASE_NONE, NULL, 0,
8906         "camel.T_timeDurationCharging", HFILL }},
8907     { &hf_camel_audibleIndicator,
8908       { "audibleIndicator", "camel.audibleIndicator",
8909         FT_UINT32, BASE_DEC, VALS(camel_AudibleIndicator_vals), 0,
8910         "camel.AudibleIndicator", HFILL }},
8911     { &hf_camel_timeDurationChargingResult,
8912       { "timeDurationChargingResult", "camel.timeDurationChargingResult",
8913         FT_NONE, BASE_NONE, NULL, 0,
8914         "camel.T_timeDurationChargingResult", HFILL }},
8915     { &hf_camel_partyToCharge,
8916       { "partyToCharge", "camel.partyToCharge",
8917         FT_UINT32, BASE_DEC, VALS(camel_ReceivingSideID_vals), 0,
8918         "camel.ReceivingSideID", HFILL }},
8919     { &hf_camel_timeInformation,
8920       { "timeInformation", "camel.timeInformation",
8921         FT_UINT32, BASE_DEC, VALS(camel_TimeInformation_vals), 0,
8922         "camel.TimeInformation", HFILL }},
8923     { &hf_camel_legActive,
8924       { "legActive", "camel.legActive",
8925         FT_BOOLEAN, 8, NULL, 0,
8926         "camel.BOOLEAN", HFILL }},
8927     { &hf_camel_callLegReleasedAtTcpExpiry,
8928       { "callLegReleasedAtTcpExpiry", "camel.callLegReleasedAtTcpExpiry",
8929         FT_NONE, BASE_NONE, NULL, 0,
8930         "camel.NULL", HFILL }},
8931     { &hf_camel_extensions1,
8932       { "extensions", "camel.extensions",
8933         FT_UINT32, BASE_DEC, NULL, 0,
8934         "camel.Extensions", HFILL }},
8935     { &hf_camel_aChChargingAddress,
8936       { "aChChargingAddress", "camel.aChChargingAddress",
8937         FT_UINT32, BASE_DEC, VALS(camel_AChChargingAddress_vals), 0,
8938         "camel.AChChargingAddress", HFILL }},
8939     { &hf_camel_fCIBCCCAMELsequence1,
8940       { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1",
8941         FT_NONE, BASE_NONE, NULL, 0,
8942         "camel.T_fCIBCCCAMELsequence1", HFILL }},
8943     { &hf_camel_freeFormatData,
8944       { "freeFormatData", "camel.freeFormatData",
8945         FT_BYTES, BASE_HEX, NULL, 0,
8946         "camel.FreeFormatData", HFILL }},
8947     { &hf_camel_partyToCharge4,
8948       { "partyToCharge4", "camel.partyToCharge4",
8949         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
8950         "camel.SendingSideID", HFILL }},
8951     { &hf_camel_appendFreeFormatData,
8952       { "appendFreeFormatData", "camel.appendFreeFormatData",
8953         FT_UINT32, BASE_DEC, VALS(camel_AppendFreeFormatData_vals), 0,
8954         "camel.AppendFreeFormatData", HFILL }},
8955     { &hf_camel_fCIBCCCAMELsequence2,
8956       { "fCIBCCCAMELsequence2", "camel.fCIBCCCAMELsequence2",
8957         FT_NONE, BASE_NONE, NULL, 0,
8958         "camel.T_fCIBCCCAMELsequence2", HFILL }},
8959     { &hf_camel_pDPID,
8960       { "pDPID", "camel.pDPID",
8961         FT_BYTES, BASE_HEX, NULL, 0,
8962         "camel.PDPId", HFILL }},
8963     { &hf_camel_fCIBCCCAMELsequence3,
8964       { "fCIBCCCAMELsequence3", "camel.fCIBCCCAMELsequence3",
8965         FT_NONE, BASE_NONE, NULL, 0,
8966         "camel.T_fCIBCCCAMELsequence3", HFILL }},
8967     { &hf_camel_aOCBeforeAnswer,
8968       { "aOCBeforeAnswer", "camel.aOCBeforeAnswer",
8969         FT_NONE, BASE_NONE, NULL, 0,
8970         "camel.AOCBeforeAnswer", HFILL }},
8971     { &hf_camel_aOCAfterAnswer,
8972       { "aOCAfterAnswer", "camel.aOCAfterAnswer",
8973         FT_NONE, BASE_NONE, NULL, 0,
8974         "camel.AOCSubsequent", HFILL }},
8975     { &hf_camel_aOC_extension,
8976       { "aOC-extension", "camel.aOC_extension",
8977         FT_NONE, BASE_NONE, NULL, 0,
8978         "camel.CAMEL_SCIBillingChargingCharacteristicsAlt", HFILL }},
8979     { &hf_camel_aOCGPRS,
8980       { "aOCGPRS", "camel.aOCGPRS",
8981         FT_NONE, BASE_NONE, NULL, 0,
8982         "camel.AOCGprs", HFILL }},
8983     { &hf_camel_ChangeOfPositionControlInfo_item,
8984       { "Item", "camel.ChangeOfPositionControlInfo_item",
8985         FT_UINT32, BASE_DEC, VALS(camel_ChangeOfLocation_vals), 0,
8986         "camel.ChangeOfLocation", HFILL }},
8987     { &hf_camel_cellGlobalId,
8988       { "cellGlobalId", "camel.cellGlobalId",
8989         FT_BYTES, BASE_HEX, NULL, 0,
8990         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
8991     { &hf_camel_serviceAreaId,
8992       { "serviceAreaId", "camel.serviceAreaId",
8993         FT_BYTES, BASE_HEX, NULL, 0,
8994         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
8995     { &hf_camel_locationAreaId,
8996       { "locationAreaId", "camel.locationAreaId",
8997         FT_BYTES, BASE_HEX, NULL, 0,
8998         "gsm_map.LAIFixedLength", HFILL }},
8999     { &hf_camel_inter_SystemHandOver,
9000       { "inter-SystemHandOver", "camel.inter_SystemHandOver",
9001         FT_NONE, BASE_NONE, NULL, 0,
9002         "camel.NULL", HFILL }},
9003     { &hf_camel_inter_PLMNHandOver,
9004       { "inter-PLMNHandOver", "camel.inter_PLMNHandOver",
9005         FT_NONE, BASE_NONE, NULL, 0,
9006         "camel.NULL", HFILL }},
9007     { &hf_camel_inter_MSCHandOver,
9008       { "inter-MSCHandOver", "camel.inter_MSCHandOver",
9009         FT_NONE, BASE_NONE, NULL, 0,
9010         "camel.NULL", HFILL }},
9011     { &hf_camel_changeOfLocationAlt,
9012       { "changeOfLocationAlt", "camel.changeOfLocationAlt",
9013         FT_NONE, BASE_NONE, NULL, 0,
9014         "camel.ChangeOfLocationAlt", HFILL }},
9015     { &hf_camel_maxTransferredVolume,
9016       { "maxTransferredVolume", "camel.maxTransferredVolume",
9017         FT_UINT32, BASE_DEC, NULL, 0,
9018         "camel.INTEGER_1_2147483647", HFILL }},
9019     { &hf_camel_maxElapsedTime,
9020       { "maxElapsedTime", "camel.maxElapsedTime",
9021         FT_UINT32, BASE_DEC, NULL, 0,
9022         "camel.INTEGER_1_86400", HFILL }},
9023     { &hf_camel_transferredVolume,
9024       { "transferredVolume", "camel.transferredVolume",
9025         FT_UINT32, BASE_DEC, VALS(camel_TransferredVolume_vals), 0,
9026         "camel.TransferredVolume", HFILL }},
9027     { &hf_camel_elapsedTime,
9028       { "elapsedTime", "camel.elapsedTime",
9029         FT_UINT32, BASE_DEC, VALS(camel_ElapsedTime_vals), 0,
9030         "camel.ElapsedTime", HFILL }},
9031     { &hf_camel_transferredVolumeRollOver,
9032       { "transferredVolumeRollOver", "camel.transferredVolumeRollOver",
9033         FT_UINT32, BASE_DEC, VALS(camel_TransferredVolumeRollOver_vals), 0,
9034         "camel.TransferredVolumeRollOver", HFILL }},
9035     { &hf_camel_elapsedTimeRollOver,
9036       { "elapsedTimeRollOver", "camel.elapsedTimeRollOver",
9037         FT_UINT32, BASE_DEC, VALS(camel_ElapsedTimeRollOver_vals), 0,
9038         "camel.ElapsedTimeRollOver", HFILL }},
9039     { &hf_camel_minimumNbOfDigits,
9040       { "minimumNbOfDigits", "camel.minimumNbOfDigits",
9041         FT_UINT32, BASE_DEC, NULL, 0,
9042         "camel.INTEGER_1_30", HFILL }},
9043     { &hf_camel_maximumNbOfDigits,
9044       { "maximumNbOfDigits", "camel.maximumNbOfDigits",
9045         FT_UINT32, BASE_DEC, NULL, 0,
9046         "camel.INTEGER_1_30", HFILL }},
9047     { &hf_camel_endOfReplyDigit,
9048       { "endOfReplyDigit", "camel.endOfReplyDigit",
9049         FT_BYTES, BASE_HEX, NULL, 0,
9050         "camel.OCTET_STRING_SIZE_1_2", HFILL }},
9051     { &hf_camel_cancelDigit,
9052       { "cancelDigit", "camel.cancelDigit",
9053         FT_BYTES, BASE_HEX, NULL, 0,
9054         "camel.OCTET_STRING_SIZE_1_2", HFILL }},
9055     { &hf_camel_startDigit,
9056       { "startDigit", "camel.startDigit",
9057         FT_BYTES, BASE_HEX, NULL, 0,
9058         "camel.OCTET_STRING_SIZE_1_2", HFILL }},
9059     { &hf_camel_firstDigitTimeOut,
9060       { "firstDigitTimeOut", "camel.firstDigitTimeOut",
9061         FT_UINT32, BASE_DEC, NULL, 0,
9062         "camel.INTEGER_1_127", HFILL }},
9063     { &hf_camel_interDigitTimeOut,
9064       { "interDigitTimeOut", "camel.interDigitTimeOut",
9065         FT_UINT32, BASE_DEC, NULL, 0,
9066         "camel.INTEGER_1_127", HFILL }},
9067     { &hf_camel_errorTreatment,
9068       { "errorTreatment", "camel.errorTreatment",
9069         FT_UINT32, BASE_DEC, VALS(camel_ErrorTreatment_vals), 0,
9070         "camel.ErrorTreatment", HFILL }},
9071     { &hf_camel_interruptableAnnInd,
9072       { "interruptableAnnInd", "camel.interruptableAnnInd",
9073         FT_BOOLEAN, 8, NULL, 0,
9074         "camel.BOOLEAN", HFILL }},
9075     { &hf_camel_voiceInformation,
9076       { "voiceInformation", "camel.voiceInformation",
9077         FT_BOOLEAN, 8, NULL, 0,
9078         "camel.BOOLEAN", HFILL }},
9079     { &hf_camel_voiceBack,
9080       { "voiceBack", "camel.voiceBack",
9081         FT_BOOLEAN, 8, NULL, 0,
9082         "camel.BOOLEAN", HFILL }},
9083     { &hf_camel_collectedDigits,
9084       { "collectedDigits", "camel.collectedDigits",
9085         FT_NONE, BASE_NONE, NULL, 0,
9086         "camel.CollectedDigits", HFILL }},
9087     { &hf_camel_basicGapCriteria,
9088       { "basicGapCriteria", "camel.basicGapCriteria",
9089         FT_UINT32, BASE_DEC, VALS(camel_BasicGapCriteria_vals), 0,
9090         "camel.BasicGapCriteria", HFILL }},
9091     { &hf_camel_scfID,
9092       { "scfID", "camel.scfID",
9093         FT_BYTES, BASE_HEX, NULL, 0,
9094         "camel.ScfID", HFILL }},
9095     { &hf_camel_DestinationRoutingAddress_item,
9096       { "Item", "camel.DestinationRoutingAddress_item",
9097         FT_BYTES, BASE_HEX, NULL, 0,
9098         "camel.CalledPartyNumber", HFILL }},
9099     { &hf_camel_applicationTimer,
9100       { "applicationTimer", "camel.applicationTimer",
9101         FT_UINT32, BASE_DEC, NULL, 0,
9102         "camel.ApplicationTimer", HFILL }},
9103     { &hf_camel_midCallControlInfo,
9104       { "midCallControlInfo", "camel.midCallControlInfo",
9105         FT_NONE, BASE_NONE, NULL, 0,
9106         "camel.MidCallControlInfo", HFILL }},
9107     { &hf_camel_dpSpecificCriteriaAlt,
9108       { "dpSpecificCriteriaAlt", "camel.dpSpecificCriteriaAlt",
9109         FT_NONE, BASE_NONE, NULL, 0,
9110         "camel.DpSpecificCriteriaAlt", HFILL }},
9111     { &hf_camel_changeOfPositionControlInfo,
9112       { "changeOfPositionControlInfo", "camel.changeOfPositionControlInfo",
9113         FT_UINT32, BASE_DEC, NULL, 0,
9114         "camel.ChangeOfPositionControlInfo", HFILL }},
9115     { &hf_camel_oServiceChangeSpecificInfo,
9116       { "oServiceChangeSpecificInfo", "camel.oServiceChangeSpecificInfo",
9117         FT_NONE, BASE_NONE, NULL, 0,
9118         "camel.T_oServiceChangeSpecificInfo", HFILL }},
9119     { &hf_camel_ext_basicServiceCode,
9120       { "ext-basicServiceCode", "camel.ext_basicServiceCode",
9121         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
9122         "gsm_map.Ext_BasicServiceCode", HFILL }},
9123     { &hf_camel_tServiceChangeSpecificInfo,
9124       { "tServiceChangeSpecificInfo", "camel.tServiceChangeSpecificInfo",
9125         FT_NONE, BASE_NONE, NULL, 0,
9126         "camel.T_tServiceChangeSpecificInfo", HFILL }},
9127     { &hf_camel_timeGPRSIfNoTariffSwitch,
9128       { "timeGPRSIfNoTariffSwitch", "camel.timeGPRSIfNoTariffSwitch",
9129         FT_UINT32, BASE_DEC, NULL, 0,
9130         "camel.INTEGER_0_86400", HFILL }},
9131     { &hf_camel_timeGPRSIfTariffSwitch,
9132       { "timeGPRSIfTariffSwitch", "camel.timeGPRSIfTariffSwitch",
9133         FT_NONE, BASE_NONE, NULL, 0,
9134         "camel.T_timeGPRSIfTariffSwitch", HFILL }},
9135     { &hf_camel_timeGPRSSinceLastTariffSwitch,
9136       { "timeGPRSSinceLastTariffSwitch", "camel.timeGPRSSinceLastTariffSwitch",
9137         FT_UINT32, BASE_DEC, NULL, 0,
9138         "camel.INTEGER_0_86400", HFILL }},
9139     { &hf_camel_timeGPRSTariffSwitchInterval,
9140       { "timeGPRSTariffSwitchInterval", "camel.timeGPRSTariffSwitchInterval",
9141         FT_UINT32, BASE_DEC, NULL, 0,
9142         "camel.INTEGER_0_86400", HFILL }},
9143     { &hf_camel_rOTimeGPRSIfNoTariffSwitch,
9144       { "rOTimeGPRSIfNoTariffSwitch", "camel.rOTimeGPRSIfNoTariffSwitch",
9145         FT_UINT32, BASE_DEC, NULL, 0,
9146         "camel.INTEGER_0_255", HFILL }},
9147     { &hf_camel_rOTimeGPRSIfTariffSwitch,
9148       { "rOTimeGPRSIfTariffSwitch", "camel.rOTimeGPRSIfTariffSwitch",
9149         FT_NONE, BASE_NONE, NULL, 0,
9150         "camel.T_rOTimeGPRSIfTariffSwitch", HFILL }},
9151     { &hf_camel_rOTimeGPRSSinceLastTariffSwitch,
9152       { "rOTimeGPRSSinceLastTariffSwitch", "camel.rOTimeGPRSSinceLastTariffSwitch",
9153         FT_UINT32, BASE_DEC, NULL, 0,
9154         "camel.INTEGER_0_255", HFILL }},
9155     { &hf_camel_rOTimeGPRSTariffSwitchInterval,
9156       { "rOTimeGPRSTariffSwitchInterval", "camel.rOTimeGPRSTariffSwitchInterval",
9157         FT_UINT32, BASE_DEC, NULL, 0,
9158         "camel.INTEGER_0_255", HFILL }},
9159     { &hf_camel_pDPTypeOrganization,
9160       { "pDPTypeOrganization", "camel.pDPTypeOrganization",
9161         FT_BYTES, BASE_HEX, NULL, 0,
9162         "camel.OCTET_STRING_SIZE_1", HFILL }},
9163     { &hf_camel_pDPTypeNumber,
9164       { "pDPTypeNumber", "camel.pDPTypeNumber",
9165         FT_BYTES, BASE_HEX, NULL, 0,
9166         "camel.OCTET_STRING_SIZE_1", HFILL }},
9167     { &hf_camel_pDPAddress,
9168       { "pDPAddress", "camel.pDPAddress",
9169         FT_BYTES, BASE_HEX, NULL, 0,
9170         "camel.OCTET_STRING_SIZE_1_63", HFILL }},
9171     { &hf_camel_routeSelectFailureSpecificInfo,
9172       { "routeSelectFailureSpecificInfo", "camel.routeSelectFailureSpecificInfo",
9173         FT_NONE, BASE_NONE, NULL, 0,
9174         "camel.T_routeSelectFailureSpecificInfo", HFILL }},
9175     { &hf_camel_failureCause,
9176       { "failureCause", "camel.failureCause",
9177         FT_BYTES, BASE_HEX, NULL, 0,
9178         "camel.Cause", HFILL }},
9179     { &hf_camel_oCalledPartyBusySpecificInfo,
9180       { "oCalledPartyBusySpecificInfo", "camel.oCalledPartyBusySpecificInfo",
9181         FT_NONE, BASE_NONE, NULL, 0,
9182         "camel.T_oCalledPartyBusySpecificInfo", HFILL }},
9183     { &hf_camel_busyCause,
9184       { "busyCause", "camel.busyCause",
9185         FT_BYTES, BASE_HEX, NULL, 0,
9186         "camel.Cause", HFILL }},
9187     { &hf_camel_oNoAnswerSpecificInfo,
9188       { "oNoAnswerSpecificInfo", "camel.oNoAnswerSpecificInfo",
9189         FT_NONE, BASE_NONE, NULL, 0,
9190         "camel.T_oNoAnswerSpecificInfo", HFILL }},
9191     { &hf_camel_oAnswerSpecificInfo,
9192       { "oAnswerSpecificInfo", "camel.oAnswerSpecificInfo",
9193         FT_NONE, BASE_NONE, NULL, 0,
9194         "camel.T_oAnswerSpecificInfo", HFILL }},
9195     { &hf_camel_destinationAddress,
9196       { "destinationAddress", "camel.destinationAddress",
9197         FT_BYTES, BASE_HEX, NULL, 0,
9198         "camel.CalledPartyNumber", HFILL }},
9199     { &hf_camel_or_Call,
9200       { "or-Call", "camel.or_Call",
9201         FT_NONE, BASE_NONE, NULL, 0,
9202         "camel.NULL", HFILL }},
9203     { &hf_camel_forwardedCall,
9204       { "forwardedCall", "camel.forwardedCall",
9205         FT_NONE, BASE_NONE, NULL, 0,
9206         "camel.NULL", HFILL }},
9207     { &hf_camel_chargeIndicator,
9208       { "chargeIndicator", "camel.chargeIndicator",
9209         FT_BYTES, BASE_HEX, NULL, 0,
9210         "camel.ChargeIndicator", HFILL }},
9211     { &hf_camel_ext_basicServiceCode2,
9212       { "ext-basicServiceCode2", "camel.ext_basicServiceCode2",
9213         FT_UINT32, BASE_DEC, VALS(gsm_map_Ext_BasicServiceCode_vals), 0,
9214         "gsm_map.Ext_BasicServiceCode", HFILL }},
9215     { &hf_camel_oMidCallSpecificInfo,
9216       { "oMidCallSpecificInfo", "camel.oMidCallSpecificInfo",
9217         FT_NONE, BASE_NONE, NULL, 0,
9218         "camel.T_oMidCallSpecificInfo", HFILL }},
9219     { &hf_camel_midCallEvents,
9220       { "midCallEvents", "camel.midCallEvents",
9221         FT_UINT32, BASE_DEC, VALS(camel_T_midCallEvents_vals), 0,
9222         "camel.T_midCallEvents", HFILL }},
9223     { &hf_camel_dTMFDigitsCompleted,
9224       { "dTMFDigitsCompleted", "camel.dTMFDigitsCompleted",
9225         FT_BYTES, BASE_HEX, NULL, 0,
9226         "camel.Digits", HFILL }},
9227     { &hf_camel_dTMFDigitsTimeOut,
9228       { "dTMFDigitsTimeOut", "camel.dTMFDigitsTimeOut",
9229         FT_BYTES, BASE_HEX, NULL, 0,
9230         "camel.Digits", HFILL }},
9231     { &hf_camel_oDisconnectSpecificInfo,
9232       { "oDisconnectSpecificInfo", "camel.oDisconnectSpecificInfo",
9233         FT_NONE, BASE_NONE, NULL, 0,
9234         "camel.T_oDisconnectSpecificInfo", HFILL }},
9235     { &hf_camel_releaseCause,
9236       { "releaseCause", "camel.releaseCause",
9237         FT_BYTES, BASE_HEX, NULL, 0,
9238         "camel.Cause", HFILL }},
9239     { &hf_camel_tBusySpecificInfo,
9240       { "tBusySpecificInfo", "camel.tBusySpecificInfo",
9241         FT_NONE, BASE_NONE, NULL, 0,
9242         "camel.T_tBusySpecificInfo", HFILL }},
9243     { &hf_camel_callForwarded,
9244       { "callForwarded", "camel.callForwarded",
9245         FT_NONE, BASE_NONE, NULL, 0,
9246         "camel.NULL", HFILL }},
9247     { &hf_camel_routeNotPermitted,
9248       { "routeNotPermitted", "camel.routeNotPermitted",
9249         FT_NONE, BASE_NONE, NULL, 0,
9250         "camel.NULL", HFILL }},
9251     { &hf_camel_forwardingDestinationNumber,
9252       { "forwardingDestinationNumber", "camel.forwardingDestinationNumber",
9253         FT_BYTES, BASE_HEX, NULL, 0,
9254         "camel.CalledPartyNumber", HFILL }},
9255     { &hf_camel_tNoAnswerSpecificInfo,
9256       { "tNoAnswerSpecificInfo", "camel.tNoAnswerSpecificInfo",
9257         FT_NONE, BASE_NONE, NULL, 0,
9258         "camel.T_tNoAnswerSpecificInfo", HFILL }},
9259     { &hf_camel_tAnswerSpecificInfo,
9260       { "tAnswerSpecificInfo", "camel.tAnswerSpecificInfo",
9261         FT_NONE, BASE_NONE, NULL, 0,
9262         "camel.T_tAnswerSpecificInfo", HFILL }},
9263     { &hf_camel_tMidCallSpecificInfo,
9264       { "tMidCallSpecificInfo", "camel.tMidCallSpecificInfo",
9265         FT_NONE, BASE_NONE, NULL, 0,
9266         "camel.T_tMidCallSpecificInfo", HFILL }},
9267     { &hf_camel_midCallEvents1,
9268       { "midCallEvents", "camel.midCallEvents",
9269         FT_UINT32, BASE_DEC, VALS(camel_T_midCallEvents1_vals), 0,
9270         "camel.T_midCallEvents1", HFILL }},
9271     { &hf_camel_tDisconnectSpecificInfo,
9272       { "tDisconnectSpecificInfo", "camel.tDisconnectSpecificInfo",
9273         FT_NONE, BASE_NONE, NULL, 0,
9274         "camel.T_tDisconnectSpecificInfo", HFILL }},
9275     { &hf_camel_oTermSeizedSpecificInfo,
9276       { "oTermSeizedSpecificInfo", "camel.oTermSeizedSpecificInfo",
9277         FT_NONE, BASE_NONE, NULL, 0,
9278         "camel.T_oTermSeizedSpecificInfo", HFILL }},
9279     { &hf_camel_locationInformation,
9280       { "locationInformation", "camel.locationInformation",
9281         FT_NONE, BASE_NONE, NULL, 0,
9282         "gsm_map.LocationInformation", HFILL }},
9283     { &hf_camel_callAcceptedSpecificInfo,
9284       { "callAcceptedSpecificInfo", "camel.callAcceptedSpecificInfo",
9285         FT_NONE, BASE_NONE, NULL, 0,
9286         "camel.T_callAcceptedSpecificInfo", HFILL }},
9287     { &hf_camel_oAbandonSpecificInfo,
9288       { "oAbandonSpecificInfo", "camel.oAbandonSpecificInfo",
9289         FT_NONE, BASE_NONE, NULL, 0,
9290         "camel.T_oAbandonSpecificInfo", HFILL }},
9291     { &hf_camel_oChangeOfPositionSpecificInfo,
9292       { "oChangeOfPositionSpecificInfo", "camel.oChangeOfPositionSpecificInfo",
9293         FT_NONE, BASE_NONE, NULL, 0,
9294         "camel.T_oChangeOfPositionSpecificInfo", HFILL }},
9295     { &hf_camel_metDPCriteriaList,
9296       { "metDPCriteriaList", "camel.metDPCriteriaList",
9297         FT_UINT32, BASE_DEC, NULL, 0,
9298         "camel.MetDPCriteriaList", HFILL }},
9299     { &hf_camel_tChangeOfPositionSpecificInfo,
9300       { "tChangeOfPositionSpecificInfo", "camel.tChangeOfPositionSpecificInfo",
9301         FT_NONE, BASE_NONE, NULL, 0,
9302         "camel.T_tChangeOfPositionSpecificInfo", HFILL }},
9303     { &hf_camel_dpSpecificInfoAlt,
9304       { "dpSpecificInfoAlt", "camel.dpSpecificInfoAlt",
9305         FT_NONE, BASE_NONE, NULL, 0,
9306         "camel.DpSpecificInfoAlt", HFILL }},
9307     { &hf_camel_o_smsFailureSpecificInfo,
9308       { "o-smsFailureSpecificInfo", "camel.o_smsFailureSpecificInfo",
9309         FT_NONE, BASE_NONE, NULL, 0,
9310         "camel.T_o_smsFailureSpecificInfo", HFILL }},
9311     { &hf_camel_smsfailureCause,
9312       { "smsfailureCause", "camel.smsfailureCause",
9313         FT_UINT32, BASE_DEC, VALS(camel_MO_SMSCause_vals), 0,
9314         "camel.MO_SMSCause", HFILL }},
9315     { &hf_camel_o_smsSubmittedSpecificInfo,
9316       { "o-smsSubmittedSpecificInfo", "camel.o_smsSubmittedSpecificInfo",
9317         FT_NONE, BASE_NONE, NULL, 0,
9318         "camel.T_o_smsSubmittedSpecificInfo", HFILL }},
9319     { &hf_camel_foo,
9320       { "foo", "camel.foo",
9321         FT_UINT32, BASE_DEC, NULL, 0,
9322         "camel.INTEGER_0", HFILL }},
9323     { &hf_camel_t_smsFailureSpecificInfo,
9324       { "t-smsFailureSpecificInfo", "camel.t_smsFailureSpecificInfo",
9325         FT_NONE, BASE_NONE, NULL, 0,
9326         "camel.T_t_smsFailureSpecificInfo", HFILL }},
9327     { &hf_camel_failureCause1,
9328       { "failureCause", "camel.failureCause",
9329         FT_BYTES, BASE_HEX, NULL, 0,
9330         "camel.MT_SMSCause", HFILL }},
9331     { &hf_camel_t_smsDeliverySpecificInfo,
9332       { "t-smsDeliverySpecificInfo", "camel.t_smsDeliverySpecificInfo",
9333         FT_NONE, BASE_NONE, NULL, 0,
9334         "camel.T_t_smsDeliverySpecificInfo", HFILL }},
9335     { &hf_camel_Extensions_item,
9336       { "Item", "camel.Extensions_item",
9337         FT_NONE, BASE_NONE, NULL, 0,
9338         "camel.ExtensionField", HFILL }},
9339     { &hf_camel_callDiversionTreatmentIndicator,
9340       { "callDiversionTreatmentIndicator", "camel.callDiversionTreatmentIndicator",
9341         FT_BYTES, BASE_HEX, NULL, 0,
9342         "camel.OCTET_STRING_SIZE_1", HFILL }},
9343     { &hf_camel_callingPartyRestrictionIndicator,
9344       { "callingPartyRestrictionIndicator", "camel.callingPartyRestrictionIndicator",
9345         FT_BYTES, BASE_HEX, NULL, 0,
9346         "camel.OCTET_STRING_SIZE_1", HFILL }},
9347     { &hf_camel_compoundGapCriteria,
9348       { "compoundGapCriteria", "camel.compoundGapCriteria",
9349         FT_NONE, BASE_NONE, NULL, 0,
9350         "camel.CompoundCriteria", HFILL }},
9351     { &hf_camel_duration1,
9352       { "duration1", "camel.duration1",
9353         FT_INT32, BASE_DEC, NULL, 0,
9354         "camel.Duration", HFILL }},
9355     { &hf_camel_gapInterval,
9356       { "gapInterval", "camel.gapInterval",
9357         FT_INT32, BASE_DEC, NULL, 0,
9358         "camel.Interval", HFILL }},
9359     { &hf_camel_informationToSend,
9360       { "informationToSend", "camel.informationToSend",
9361         FT_UINT32, BASE_DEC, VALS(camel_InformationToSend_vals), 0,
9362         "camel.InformationToSend", HFILL }},
9363     { &hf_camel_GenericNumbers_item,
9364       { "Item", "camel.GenericNumbers_item",
9365         FT_BYTES, BASE_HEX, NULL, 0,
9366         "camel.GenericNumber", HFILL }},
9367     { &hf_camel_short_QoS_format,
9368       { "short-QoS-format", "camel.short_QoS_format",
9369         FT_BYTES, BASE_HEX, NULL, 0,
9370         "gsm_map.QoS_Subscribed", HFILL }},
9371     { &hf_camel_long_QoS_format,
9372       { "long-QoS-format", "camel.long_QoS_format",
9373         FT_BYTES, BASE_HEX, NULL, 0,
9374         "gsm_map.Ext_QoS_Subscribed", HFILL }},
9375     { &hf_camel_supplement_to_long_QoS_format,
9376       { "supplement-to-long-QoS-format", "camel.supplement_to_long_QoS_format",
9377         FT_BYTES, BASE_HEX, NULL, 0,
9378         "gsm_map.Ext2_QoS_Subscribed", HFILL }},
9379     { &hf_camel_gPRSEventType,
9380       { "gPRSEventType", "camel.gPRSEventType",
9381         FT_UINT32, BASE_DEC, VALS(camel_GPRSEventType_vals), 0,
9382         "camel.GPRSEventType", HFILL }},
9383     { &hf_camel_attachChangeOfPositionSpecificInformation,
9384       { "attachChangeOfPositionSpecificInformation", "camel.attachChangeOfPositionSpecificInformation",
9385         FT_NONE, BASE_NONE, NULL, 0,
9386         "camel.T_attachChangeOfPositionSpecificInformation", HFILL }},
9387     { &hf_camel_locationInformationGPRS,
9388       { "locationInformationGPRS", "camel.locationInformationGPRS",
9389         FT_NONE, BASE_NONE, NULL, 0,
9390         "camel.LocationInformationGPRS", HFILL }},
9391     { &hf_camel_pdp_ContextchangeOfPositionSpecificInformation,
9392       { "pdp-ContextchangeOfPositionSpecificInformation", "camel.pdp_ContextchangeOfPositionSpecificInformation",
9393         FT_NONE, BASE_NONE, NULL, 0,
9394         "camel.T_pdp_ContextchangeOfPositionSpecificInformation", HFILL }},
9395     { &hf_camel_accessPointName,
9396       { "accessPointName", "camel.accessPointName",
9397         FT_BYTES, BASE_HEX, NULL, 0,
9398         "camel.AccessPointName", HFILL }},
9399     { &hf_camel_chargingID,
9400       { "chargingID", "camel.chargingID",
9401         FT_BYTES, BASE_HEX, NULL, 0,
9402         "gsm_map.GPRSChargingID", HFILL }},
9403     { &hf_camel_pDPType,
9404       { "pDPType", "camel.pDPType",
9405         FT_NONE, BASE_NONE, NULL, 0,
9406         "camel.PDPType", HFILL }},
9407     { &hf_camel_qualityOfService,
9408       { "qualityOfService", "camel.qualityOfService",
9409         FT_NONE, BASE_NONE, NULL, 0,
9410         "camel.QualityOfService", HFILL }},
9411     { &hf_camel_timeAndTimeZone,
9412       { "timeAndTimeZone", "camel.timeAndTimeZone",
9413         FT_BYTES, BASE_HEX, NULL, 0,
9414         "camel.TimeAndTimezone", HFILL }},
9415     { &hf_camel_gGSNAddress,
9416       { "gGSNAddress", "camel.gGSNAddress",
9417         FT_BYTES, BASE_HEX, NULL, 0,
9418         "gsm_map.GSN_Address", HFILL }},
9419     { &hf_camel_detachSpecificInformation,
9420       { "detachSpecificInformation", "camel.detachSpecificInformation",
9421         FT_NONE, BASE_NONE, NULL, 0,
9422         "camel.T_detachSpecificInformation", HFILL }},
9423     { &hf_camel_inititatingEntity,
9424       { "inititatingEntity", "camel.inititatingEntity",
9425         FT_UINT32, BASE_DEC, VALS(camel_InitiatingEntity_vals), 0,
9426         "camel.InitiatingEntity", HFILL }},
9427     { &hf_camel_routeingAreaUpdate,
9428       { "routeingAreaUpdate", "camel.routeingAreaUpdate",
9429         FT_NONE, BASE_NONE, NULL, 0,
9430         "camel.NULL", HFILL }},
9431     { &hf_camel_disconnectSpecificInformation,
9432       { "disconnectSpecificInformation", "camel.disconnectSpecificInformation",
9433         FT_NONE, BASE_NONE, NULL, 0,
9434         "camel.T_disconnectSpecificInformation", HFILL }},
9435     { &hf_camel_pDPContextEstablishmentSpecificInformation,
9436       { "pDPContextEstablishmentSpecificInformation", "camel.pDPContextEstablishmentSpecificInformation",
9437         FT_NONE, BASE_NONE, NULL, 0,
9438         "camel.T_pDPContextEstablishmentSpecificInformation", HFILL }},
9439     { &hf_camel_pDPInitiationType,
9440       { "pDPInitiationType", "camel.pDPInitiationType",
9441         FT_UINT32, BASE_DEC, VALS(camel_PDPInitiationType_vals), 0,
9442         "camel.PDPInitiationType", HFILL }},
9443     { &hf_camel_secondaryPDPContext,
9444       { "secondaryPDPContext", "camel.secondaryPDPContext",
9445         FT_NONE, BASE_NONE, NULL, 0,
9446         "camel.NULL", HFILL }},
9447     { &hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation,
9448       { "pDPContextEstablishmentAcknowledgementSpecificInformation", "camel.pDPContextEstablishmentAcknowledgementSpecificInformation",
9449         FT_NONE, BASE_NONE, NULL, 0,
9450         "camel.T_pDPContextEstablishmentAcknowledgementSpecificInformation", HFILL }},
9451     { &hf_camel_mSNetworkCapability,
9452       { "mSNetworkCapability", "camel.mSNetworkCapability",
9453         FT_BYTES, BASE_HEX, NULL, 0,
9454         "camel.MSNetworkCapability", HFILL }},
9455     { &hf_camel_mSRadioAccessCapability,
9456       { "mSRadioAccessCapability", "camel.mSRadioAccessCapability",
9457         FT_BYTES, BASE_HEX, NULL, 0,
9458         "camel.MSRadioAccessCapability", HFILL }},
9459     { &hf_camel_messageID,
9460       { "messageID", "camel.messageID",
9461         FT_UINT32, BASE_DEC, VALS(camel_MessageID_vals), 0,
9462         "camel.MessageID", HFILL }},
9463     { &hf_camel_numberOfRepetitions,
9464       { "numberOfRepetitions", "camel.numberOfRepetitions",
9465         FT_UINT32, BASE_DEC, NULL, 0,
9466         "camel.INTEGER_1_127", HFILL }},
9467     { &hf_camel_duration2,
9468       { "duration2", "camel.duration2",
9469         FT_UINT32, BASE_DEC, NULL, 0,
9470         "camel.INTEGER_0_32767", HFILL }},
9471     { &hf_camel_interval,
9472       { "interval", "camel.interval",
9473         FT_UINT32, BASE_DEC, NULL, 0,
9474         "camel.INTEGER_0_32767", HFILL }},
9475     { &hf_camel_inbandInfo,
9476       { "inbandInfo", "camel.inbandInfo",
9477         FT_NONE, BASE_NONE, NULL, 0,
9478         "camel.InbandInfo", HFILL }},
9479     { &hf_camel_tone1,
9480       { "tone", "camel.tone",
9481         FT_NONE, BASE_NONE, NULL, 0,
9482         "camel.Tone", HFILL }},
9483     { &hf_camel_cellGlobalIdOrServiceAreaIdOrLAI,
9484       { "cellGlobalIdOrServiceAreaIdOrLAI", "camel.cellGlobalIdOrServiceAreaIdOrLAI",
9485         FT_BYTES, BASE_HEX, NULL, 0,
9486         "camel.CellGlobalIdOrServiceAreaIdOrLAI", HFILL }},
9487     { &hf_camel_routeingAreaIdentity,
9488       { "routeingAreaIdentity", "camel.routeingAreaIdentity",
9489         FT_BYTES, BASE_HEX, NULL, 0,
9490         "gsm_map.RAIdentity", HFILL }},
9491     { &hf_camel_geographicalInformation,
9492       { "geographicalInformation", "camel.geographicalInformation",
9493         FT_BYTES, BASE_HEX, NULL, 0,
9494         "gsm_map.GeographicalInformation", HFILL }},
9495     { &hf_camel_sgsn_Number,
9496       { "sgsn-Number", "camel.sgsn_Number",
9497         FT_BYTES, BASE_HEX, NULL, 0,
9498         "camel.ISDN_AddressString", HFILL }},
9499     { &hf_camel_selectedLSAIdentity,
9500       { "selectedLSAIdentity", "camel.selectedLSAIdentity",
9501         FT_BYTES, BASE_HEX, NULL, 0,
9502         "gsm_map.LSAIdentity", HFILL }},
9503     { &hf_camel_extensionContainer,
9504       { "extensionContainer", "camel.extensionContainer",
9505         FT_NONE, BASE_NONE, NULL, 0,
9506         "camel.ExtensionContainer", HFILL }},
9507     { &hf_camel_saiPresent,
9508       { "saiPresent", "camel.saiPresent",
9509         FT_NONE, BASE_NONE, NULL, 0,
9510         "camel.NULL", HFILL }},
9511     { &hf_camel_elementaryMessageID,
9512       { "elementaryMessageID", "camel.elementaryMessageID",
9513         FT_UINT32, BASE_DEC, NULL, 0,
9514         "camel.Integer4", HFILL }},
9515     { &hf_camel_text,
9516       { "text", "camel.text",
9517         FT_NONE, BASE_NONE, NULL, 0,
9518         "camel.T_text", HFILL }},
9519     { &hf_camel_messageContent,
9520       { "messageContent", "camel.messageContent",
9521         FT_STRING, BASE_NONE, NULL, 0,
9522         "camel.IA5String_SIZE_1_127", HFILL }},
9523     { &hf_camel_attributes,
9524       { "attributes", "camel.attributes",
9525         FT_BYTES, BASE_HEX, NULL, 0,
9526         "camel.OCTET_STRING_SIZE_2_10", HFILL }},
9527     { &hf_camel_elementaryMessageIDs,
9528       { "elementaryMessageIDs", "camel.elementaryMessageIDs",
9529         FT_UINT32, BASE_DEC, NULL, 0,
9530         "camel.SEQUENCE_SIZE_1_16_OF_Integer4", HFILL }},
9531     { &hf_camel_elementaryMessageIDs_item,
9532       { "Item", "camel.elementaryMessageIDs_item",
9533         FT_UINT32, BASE_DEC, NULL, 0,
9534         "camel.Integer4", HFILL }},
9535     { &hf_camel_variableMessage,
9536       { "variableMessage", "camel.variableMessage",
9537         FT_NONE, BASE_NONE, NULL, 0,
9538         "camel.T_variableMessage", HFILL }},
9539     { &hf_camel_variableParts,
9540       { "variableParts", "camel.variableParts",
9541         FT_UINT32, BASE_DEC, NULL, 0,
9542         "camel.VariablePartsArray", HFILL }},
9543     { &hf_camel_MetDPCriteriaList_item,
9544       { "Item", "camel.MetDPCriteriaList_item",
9545         FT_UINT32, BASE_DEC, VALS(camel_MetDPCriterion_vals), 0,
9546         "camel.MetDPCriterion", HFILL }},
9547     { &hf_camel_enteringCellGlobalId,
9548       { "enteringCellGlobalId", "camel.enteringCellGlobalId",
9549         FT_BYTES, BASE_HEX, NULL, 0,
9550         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
9551     { &hf_camel_leavingCellGlobalId,
9552       { "leavingCellGlobalId", "camel.leavingCellGlobalId",
9553         FT_BYTES, BASE_HEX, NULL, 0,
9554         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
9555     { &hf_camel_enteringServiceAreaId,
9556       { "enteringServiceAreaId", "camel.enteringServiceAreaId",
9557         FT_BYTES, BASE_HEX, NULL, 0,
9558         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
9559     { &hf_camel_leavingServiceAreaId,
9560       { "leavingServiceAreaId", "camel.leavingServiceAreaId",
9561         FT_BYTES, BASE_HEX, NULL, 0,
9562         "gsm_map.CellGlobalIdOrServiceAreaIdFixedLength", HFILL }},
9563     { &hf_camel_enteringLocationAreaId,
9564       { "enteringLocationAreaId", "camel.enteringLocationAreaId",
9565         FT_BYTES, BASE_HEX, NULL, 0,
9566         "gsm_map.LAIFixedLength", HFILL }},
9567     { &hf_camel_leavingLocationAreaId,
9568       { "leavingLocationAreaId", "camel.leavingLocationAreaId",
9569         FT_BYTES, BASE_HEX, NULL, 0,
9570         "gsm_map.LAIFixedLength", HFILL }},
9571     { &hf_camel_inter_SystemHandOverToUMTS,
9572       { "inter-SystemHandOverToUMTS", "camel.inter_SystemHandOverToUMTS",
9573         FT_NONE, BASE_NONE, NULL, 0,
9574         "camel.NULL", HFILL }},
9575     { &hf_camel_inter_SystemHandOverToGSM,
9576       { "inter-SystemHandOverToGSM", "camel.inter_SystemHandOverToGSM",
9577         FT_NONE, BASE_NONE, NULL, 0,
9578         "camel.NULL", HFILL }},
9579     { &hf_camel_metDPCriterionAlt,
9580       { "metDPCriterionAlt", "camel.metDPCriterionAlt",
9581         FT_NONE, BASE_NONE, NULL, 0,
9582         "camel.MetDPCriterionAlt", HFILL }},
9583     { &hf_camel_minimumNumberOfDigits,
9584       { "minimumNumberOfDigits", "camel.minimumNumberOfDigits",
9585         FT_UINT32, BASE_DEC, NULL, 0,
9586         "camel.INTEGER_1_30", HFILL }},
9587     { &hf_camel_maximumNumberOfDigits,
9588       { "maximumNumberOfDigits", "camel.maximumNumberOfDigits",
9589         FT_UINT32, BASE_DEC, NULL, 0,
9590         "camel.INTEGER_1_30", HFILL }},
9591     { &hf_camel_interDigitTimeout,
9592       { "interDigitTimeout", "camel.interDigitTimeout",
9593         FT_UINT32, BASE_DEC, NULL, 0,
9594         "camel.INTEGER_1_127", HFILL }},
9595     { &hf_camel_requested_QoS,
9596       { "requested-QoS", "camel.requested_QoS",
9597         FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0,
9598         "camel.GPRS_QoS", HFILL }},
9599     { &hf_camel_subscribed_QoS,
9600       { "subscribed-QoS", "camel.subscribed_QoS",
9601         FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0,
9602         "camel.GPRS_QoS", HFILL }},
9603     { &hf_camel_negotiated_QoS,
9604       { "negotiated-QoS", "camel.negotiated_QoS",
9605         FT_UINT32, BASE_DEC, VALS(camel_GPRS_QoS_vals), 0,
9606         "camel.GPRS_QoS", HFILL }},
9607     { &hf_camel_requested_QoS_Extension,
9608       { "requested-QoS-Extension", "camel.requested_QoS_Extension",
9609         FT_NONE, BASE_NONE, NULL, 0,
9610         "camel.GPRS_QoS_Extension", HFILL }},
9611     { &hf_camel_subscribed_QoS_Extension,
9612       { "subscribed-QoS-Extension", "camel.subscribed_QoS_Extension",
9613         FT_NONE, BASE_NONE, NULL, 0,
9614         "camel.GPRS_QoS_Extension", HFILL }},
9615     { &hf_camel_negotiated_QoS_Extension,
9616       { "negotiated-QoS-Extension", "camel.negotiated_QoS_Extension",
9617         FT_NONE, BASE_NONE, NULL, 0,
9618         "camel.GPRS_QoS_Extension", HFILL }},
9619     { &hf_camel_receivingSideID,
9620       { "receivingSideID", "camel.receivingSideID",
9621         FT_BYTES, BASE_HEX, NULL, 0,
9622         "camel.LegType", HFILL }},
9623     { &hf_camel_RequestedInformationList_item,
9624       { "Item", "camel.RequestedInformationList_item",
9625         FT_NONE, BASE_NONE, NULL, 0,
9626         "camel.RequestedInformation", HFILL }},
9627     { &hf_camel_RequestedInformationTypeList_item,
9628       { "Item", "camel.RequestedInformationTypeList_item",
9629         FT_UINT32, BASE_DEC, VALS(camel_RequestedInformationType_vals), 0,
9630         "camel.RequestedInformationType", HFILL }},
9631     { &hf_camel_requestedInformationType,
9632       { "requestedInformationType", "camel.requestedInformationType",
9633         FT_UINT32, BASE_DEC, VALS(camel_RequestedInformationType_vals), 0,
9634         "camel.RequestedInformationType", HFILL }},
9635     { &hf_camel_requestedInformationValue,
9636       { "requestedInformationValue", "camel.requestedInformationValue",
9637         FT_UINT32, BASE_DEC, VALS(camel_RequestedInformationValue_vals), 0,
9638         "camel.RequestedInformationValue", HFILL }},
9639     { &hf_camel_callAttemptElapsedTimeValue,
9640       { "callAttemptElapsedTimeValue", "camel.callAttemptElapsedTimeValue",
9641         FT_UINT32, BASE_DEC, NULL, 0,
9642         "camel.INTEGER_0_255", HFILL }},
9643     { &hf_camel_callStopTimeValue,
9644       { "callStopTimeValue", "camel.callStopTimeValue",
9645         FT_STRING, NONE, NULL, 0,
9646         "camel.DateAndTime", HFILL }},
9647     { &hf_camel_callConnectedElapsedTimeValue,
9648       { "callConnectedElapsedTimeValue", "camel.callConnectedElapsedTimeValue",
9649         FT_UINT32, BASE_DEC, NULL, 0,
9650         "camel.Integer4", HFILL }},
9651     { &hf_camel_releaseCauseValue,
9652       { "releaseCauseValue", "camel.releaseCauseValue",
9653         FT_BYTES, BASE_HEX, NULL, 0,
9654         "camel.Cause", HFILL }},
9655     { &hf_camel_sendingSideID,
9656       { "sendingSideID", "camel.sendingSideID",
9657         FT_BYTES, BASE_HEX, NULL, 0,
9658         "camel.LegType", HFILL }},
9659     { &hf_camel_forwardServiceInteractionInd,
9660       { "forwardServiceInteractionInd", "camel.forwardServiceInteractionInd",
9661         FT_NONE, BASE_NONE, NULL, 0,
9662         "camel.ForwardServiceInteractionInd", HFILL }},
9663     { &hf_camel_backwardServiceInteractionInd,
9664       { "backwardServiceInteractionInd", "camel.backwardServiceInteractionInd",
9665         FT_NONE, BASE_NONE, NULL, 0,
9666         "camel.BackwardServiceInteractionInd", HFILL }},
9667     { &hf_camel_bothwayThroughConnectionInd,
9668       { "bothwayThroughConnectionInd", "camel.bothwayThroughConnectionInd",
9669         FT_UINT32, BASE_DEC, VALS(camel_BothwayThroughConnectionInd_vals), 0,
9670         "camel.BothwayThroughConnectionInd", HFILL }},
9671     { &hf_camel_connectedNumberTreatmentInd,
9672       { "connectedNumberTreatmentInd", "camel.connectedNumberTreatmentInd",
9673         FT_UINT32, BASE_DEC, VALS(camel_ConnectedNumberTreatmentInd_vals), 0,
9674         "camel.ConnectedNumberTreatmentInd", HFILL }},
9675     { &hf_camel_nonCUGCall,
9676       { "nonCUGCall", "camel.nonCUGCall",
9677         FT_NONE, BASE_NONE, NULL, 0,
9678         "camel.NULL", HFILL }},
9679     { &hf_camel_holdTreatmentIndicator,
9680       { "holdTreatmentIndicator", "camel.holdTreatmentIndicator",
9681         FT_BYTES, BASE_HEX, NULL, 0,
9682         "camel.OCTET_STRING_SIZE_1", HFILL }},
9683     { &hf_camel_cwTreatmentIndicator,
9684       { "cwTreatmentIndicator", "camel.cwTreatmentIndicator",
9685         FT_BYTES, BASE_HEX, NULL, 0,
9686         "camel.OCTET_STRING_SIZE_1", HFILL }},
9687     { &hf_camel_ectTreatmentIndicator,
9688       { "ectTreatmentIndicator", "camel.ectTreatmentIndicator",
9689         FT_BYTES, BASE_HEX, NULL, 0,
9690         "camel.OCTET_STRING_SIZE_1", HFILL }},
9691     { &hf_camel_eventTypeSMS,
9692       { "eventTypeSMS", "camel.eventTypeSMS",
9693         FT_UINT32, BASE_DEC, VALS(camel_EventTypeSMS_vals), 0,
9694         "camel.EventTypeSMS", HFILL }},
9695     { &hf_camel_timeSinceTariffSwitch,
9696       { "timeSinceTariffSwitch", "camel.timeSinceTariffSwitch",
9697         FT_UINT32, BASE_DEC, NULL, 0,
9698         "camel.INTEGER_0_864000", HFILL }},
9699     { &hf_camel_tttariffSwitchInterval,
9700       { "tttariffSwitchInterval", "camel.tttariffSwitchInterval",
9701         FT_UINT32, BASE_DEC, NULL, 0,
9702         "camel.INTEGER_1_864000", HFILL }},
9703     { &hf_camel_timeIfNoTariffSwitch,
9704       { "timeIfNoTariffSwitch", "camel.timeIfNoTariffSwitch",
9705         FT_UINT32, BASE_DEC, NULL, 0,
9706         "camel.TimeIfNoTariffSwitch", HFILL }},
9707     { &hf_camel_timeIfTariffSwitch,
9708       { "timeIfTariffSwitch", "camel.timeIfTariffSwitch",
9709         FT_NONE, BASE_NONE, NULL, 0,
9710         "camel.TimeIfTariffSwitch", HFILL }},
9711     { &hf_camel_toneID,
9712       { "toneID", "camel.toneID",
9713         FT_UINT32, BASE_DEC, NULL, 0,
9714         "camel.Integer4", HFILL }},
9715     { &hf_camel_duration3,
9716       { "duration3", "camel.duration3",
9717         FT_UINT32, BASE_DEC, NULL, 0,
9718         "camel.Integer4", HFILL }},
9719     { &hf_camel_volumeIfNoTariffSwitch,
9720       { "volumeIfNoTariffSwitch", "camel.volumeIfNoTariffSwitch",
9721         FT_UINT32, BASE_DEC, NULL, 0,
9722         "camel.INTEGER_0_2147483647", HFILL }},
9723     { &hf_camel_volumeIfTariffSwitch,
9724       { "volumeIfTariffSwitch", "camel.volumeIfTariffSwitch",
9725         FT_NONE, BASE_NONE, NULL, 0,
9726         "camel.T_volumeIfTariffSwitch", HFILL }},
9727     { &hf_camel_volumeSinceLastTariffSwitch,
9728       { "volumeSinceLastTariffSwitch", "camel.volumeSinceLastTariffSwitch",
9729         FT_UINT32, BASE_DEC, NULL, 0,
9730         "camel.INTEGER_0_2147483647", HFILL }},
9731     { &hf_camel_volumeTariffSwitchInterval,
9732       { "volumeTariffSwitchInterval", "camel.volumeTariffSwitchInterval",
9733         FT_UINT32, BASE_DEC, NULL, 0,
9734         "camel.INTEGER_0_2147483647", HFILL }},
9735     { &hf_camel_rOVolumeIfNoTariffSwitch,
9736       { "rOVolumeIfNoTariffSwitch", "camel.rOVolumeIfNoTariffSwitch",
9737         FT_UINT32, BASE_DEC, NULL, 0,
9738         "camel.INTEGER_0_255", HFILL }},
9739     { &hf_camel_rOVolumeIfTariffSwitch,
9740       { "rOVolumeIfTariffSwitch", "camel.rOVolumeIfTariffSwitch",
9741         FT_NONE, BASE_NONE, NULL, 0,
9742         "camel.T_rOVolumeIfTariffSwitch", HFILL }},
9743     { &hf_camel_rOVolumeSinceLastTariffSwitch,
9744       { "rOVolumeSinceLastTariffSwitch", "camel.rOVolumeSinceLastTariffSwitch",
9745         FT_UINT32, BASE_DEC, NULL, 0,
9746         "camel.INTEGER_0_255", HFILL }},
9747     { &hf_camel_rOVolumeTariffSwitchInterval,
9748       { "rOVolumeTariffSwitchInterval", "camel.rOVolumeTariffSwitchInterval",
9749         FT_UINT32, BASE_DEC, NULL, 0,
9750         "camel.INTEGER_0_255", HFILL }},
9751     { &hf_camel_integer,
9752       { "integer", "camel.integer",
9753         FT_UINT32, BASE_DEC, NULL, 0,
9754         "camel.Integer4", HFILL }},
9755     { &hf_camel_number,
9756       { "number", "camel.number",
9757         FT_BYTES, BASE_HEX, NULL, 0,
9758         "camel.Digits", HFILL }},
9759     { &hf_camel_time,
9760       { "time", "camel.time",
9761         FT_BYTES, BASE_HEX, NULL, 0,
9762         "camel.OCTET_STRING_SIZE_2", HFILL }},
9763     { &hf_camel_date,
9764       { "date", "camel.date",
9765         FT_BYTES, BASE_HEX, NULL, 0,
9766         "camel.OCTET_STRING_SIZE_4", HFILL }},
9767     { &hf_camel_price,
9768       { "price", "camel.price",
9769         FT_BYTES, BASE_HEX, NULL, 0,
9770         "camel.OCTET_STRING_SIZE_4", HFILL }},
9771     { &hf_camel_pDPTypeOrganization1,
9772       { "pDPTypeOrganization", "camel.pDPTypeOrganization",
9773         FT_UINT8, BASE_DEC, VALS(gsm_map_PDP_Type_Organisation_vals), 0x0f,
9774         "camel.PDPTypeOrganization", HFILL }},
9775     { &hf_camel_pDPTypeNumber1,
9776       { "pDPTypeNumber", "camel.pDPTypeNumber",
9777         FT_BYTES, BASE_HEX, NULL, 0,
9778         "camel.PDPTypeNumber", HFILL }},
9779     { &hf_camel_pDPAddress1,
9780       { "pDPAddress", "camel.pDPAddress",
9781         FT_BYTES, BASE_HEX, NULL, 0,
9782         "camel.PDPAddress", HFILL }},
9783     { &hf_camel_local,
9784       { "local", "camel.local",
9785         FT_INT32, BASE_DEC, NULL, 0,
9786         "camel.INTEGER", HFILL }},
9787     { &hf_camel_global,
9788       { "global", "camel.global",
9789         FT_OID, BASE_NONE, NULL, 0,
9790         "camel.OBJECT_IDENTIFIER", HFILL }},
9791     { &hf_camel_messageType,
9792       { "messageType", "camel.messageType",
9793         FT_UINT32, BASE_DEC, VALS(camel_T_messageType_vals), 0,
9794         "camel.T_messageType", HFILL }},
9795     { &hf_camel_firstExtensionExtensionType,
9796       { "firstExtensionExtensionType", "camel.firstExtensionExtensionType",
9797         FT_NONE, BASE_NONE, NULL, 0,
9798         "camel.NULL", HFILL }},
9799     { &hf_camel_extId,
9800       { "extId", "camel.extId",
9801         FT_OID, BASE_NONE, NULL, 0,
9802         "camel.ExtensionSetextensionId", HFILL }},
9803     { &hf_camel_callresultOctet,
9804       { "callresultOctet", "camel.callresultOctet",
9805         FT_BYTES, BASE_HEX, NULL, 0,
9806         "camel.CallresultoctetPDU", HFILL }},
9807     { &hf_camel_allRequests,
9808       { "allRequests", "camel.allRequests",
9809         FT_NONE, BASE_NONE, NULL, 0,
9810         "camel.NULL", HFILL }},
9811     { &hf_camel_callSegmentToCancel,
9812       { "callSegmentToCancel", "camel.callSegmentToCancel",
9813         FT_NONE, BASE_NONE, NULL, 0,
9814         "camel.CallSegmentToCancel", HFILL }},
9815     { &hf_camel_digitsResponse,
9816       { "digitsResponse", "camel.digitsResponse",
9817         FT_BYTES, BASE_HEX, NULL, 0,
9818         "camel.Digits", HFILL }},
9819     { &hf_camel_pdpID,
9820       { "pdpID", "camel.pdpID",
9821         FT_BYTES, BASE_HEX, NULL, 0,
9822         "camel.PDPId", HFILL }},
9823     { &hf_camel_gPRSCause,
9824       { "gPRSCause", "camel.gPRSCause",
9825         FT_BYTES, BASE_HEX, NULL, 0,
9826         "camel.GPRSCause", HFILL }},
9827     { &hf_camel_gprsCause,
9828       { "gprsCause", "camel.gprsCause",
9829         FT_BYTES, BASE_HEX, NULL, 0,
9830         "camel.GPRSCause", HFILL }},
9831     { &hf_camel_gPRSEvent,
9832       { "gPRSEvent", "camel.gPRSEvent",
9833         FT_UINT32, BASE_DEC, NULL, 0,
9834         "camel.GPRSEventArray", HFILL }},
9835     { &hf_camel_GPRSEventArray_item,
9836       { "Item", "camel.GPRSEventArray_item",
9837         FT_NONE, BASE_NONE, NULL, 0,
9838         "camel.GPRSEvent", HFILL }},
9839     { &hf_camel_sCIGPRSBillingChargingCharacteristics,
9840       { "sCIGPRSBillingChargingCharacteristics", "camel.sCIGPRSBillingChargingCharacteristics",
9841         FT_BYTES, BASE_HEX, NULL, 0,
9842         "camel.SCIGPRSBillingChargingCharacteristics", HFILL }},
9843     { &hf_camel_assumedIdle,
9844       { "assumedIdle", "camel.assumedIdle",
9845         FT_NONE, BASE_NONE, NULL, 0,
9846         "camel.NULL", HFILL }},
9847     { &hf_camel_camelBusy,
9848       { "camelBusy", "camel.camelBusy",
9849         FT_NONE, BASE_NONE, NULL, 0,
9850         "camel.NULL", HFILL }},
9851     { &hf_camel_netDetNotReachable,
9852       { "netDetNotReachable", "camel.netDetNotReachable",
9853         FT_UINT32, BASE_DEC, VALS(camel_NotReachableReason_vals), 0,
9854         "camel.NotReachableReason", HFILL }},
9855     { &hf_camel_notProvidedFromVLR,
9856       { "notProvidedFromVLR", "camel.notProvidedFromVLR",
9857         FT_NONE, BASE_NONE, NULL, 0,
9858         "camel.NULL", HFILL }},
9859     { &hf_camel_PrivateExtensionList_item,
9860       { "Item", "camel.PrivateExtensionList_item",
9861         FT_NONE, BASE_NONE, NULL, 0,
9862         "camel.PrivateExtension", HFILL }},
9863     { &hf_camel_cellIdFixedLength,
9864       { "cellIdFixedLength", "camel.cellIdFixedLength",
9865         FT_BYTES, BASE_HEX, NULL, 0,
9866         "camel.CellIdFixedLength", HFILL }},
9867     { &hf_camel_laiFixedLength,
9868       { "laiFixedLength", "camel.laiFixedLength",
9869         FT_BYTES, BASE_HEX, NULL, 0,
9870         "gsm_map.LAIFixedLength", HFILL }},
9871     { &hf_camel_VariablePartsArray_item,
9872       { "Item", "camel.VariablePartsArray_item",
9873         FT_UINT32, BASE_DEC, VALS(camel_VariablePart_vals), 0,
9874         "camel.VariablePart", HFILL }},
9875     { &hf_camel_gmscAddress,
9876       { "gmscAddress", "camel.gmscAddress",
9877         FT_BYTES, BASE_HEX, NULL, 0,
9878         "camel.ISDN_AddressString", HFILL }},
9879     { &hf_camel_ms_Classmark2,
9880       { "ms-Classmark2", "camel.ms_Classmark2",
9881         FT_BYTES, BASE_HEX, NULL, 0,
9882         "gsm_map.MS_Classmark2", HFILL }},
9883     { &hf_camel_iMEI,
9884       { "iMEI", "camel.iMEI",
9885         FT_BYTES, BASE_HEX, NULL, 0,
9886         "gsm_map.IMEI", HFILL }},
9887     { &hf_camel_supportedCamelPhases,
9888       { "supportedCamelPhases", "camel.supportedCamelPhases",
9889         FT_BYTES, BASE_HEX, NULL, 0,
9890         "camel.SupportedCamelPhases", HFILL }},
9891     { &hf_camel_offeredCamel4Functionalities,
9892       { "offeredCamel4Functionalities", "camel.offeredCamel4Functionalities",
9893         FT_BYTES, BASE_HEX, NULL, 0,
9894         "camel.OfferedCamel4Functionalities", HFILL }},
9895     { &hf_camel_bearerCapability2,
9896       { "bearerCapability2", "camel.bearerCapability2",
9897         FT_UINT32, BASE_DEC, VALS(camel_BearerCapability_vals), 0,
9898         "camel.BearerCapability", HFILL }},
9899     { &hf_camel_highLayerCompatibility2,
9900       { "highLayerCompatibility2", "camel.highLayerCompatibility2",
9901         FT_BYTES, BASE_HEX, NULL, 0,
9902         "camel.HighLayerCompatibility", HFILL }},
9903     { &hf_camel_lowLayerCompatibility,
9904       { "lowLayerCompatibility", "camel.lowLayerCompatibility",
9905         FT_BYTES, BASE_HEX, NULL, 0,
9906         "camel.LowLayerCompatibility", HFILL }},
9907     { &hf_camel_lowLayerCompatibility2,
9908       { "lowLayerCompatibility2", "camel.lowLayerCompatibility2",
9909         FT_BYTES, BASE_HEX, NULL, 0,
9910         "camel.LowLayerCompatibility", HFILL }},
9911     { &hf_camel_enhancedDialledServicesAllowed,
9912       { "enhancedDialledServicesAllowed", "camel.enhancedDialledServicesAllowed",
9913         FT_NONE, BASE_NONE, NULL, 0,
9914         "camel.NULL", HFILL }},
9915     { &hf_camel_uu_Data,
9916       { "uu-Data", "camel.uu_Data",
9917         FT_NONE, BASE_NONE, NULL, 0,
9918         "gsm_map.UU_Data", HFILL }},
9919     { &hf_camel_destinationRoutingAddress,
9920       { "destinationRoutingAddress", "camel.destinationRoutingAddress",
9921         FT_UINT32, BASE_DEC, NULL, 0,
9922         "camel.DestinationRoutingAddress", HFILL }},
9923     { &hf_camel_legToBeCreated,
9924       { "legToBeCreated", "camel.legToBeCreated",
9925         FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0,
9926         "camel.LegID", HFILL }},
9927     { &hf_camel_newCallSegment,
9928       { "newCallSegment", "camel.newCallSegment",
9929         FT_UINT32, BASE_DEC, NULL, 0,
9930         "camel.CallSegmentID", HFILL }},
9931     { &hf_camel_callingPartyNumber,
9932       { "callingPartyNumber", "camel.callingPartyNumber",
9933         FT_BYTES, BASE_HEX, NULL, 0,
9934         "camel.CallingPartyNumber", HFILL }},
9935     { &hf_camel_callReferenceNumber,
9936       { "callReferenceNumber", "camel.callReferenceNumber",
9937         FT_BYTES, BASE_HEX, NULL, 0,
9938         "camel.CallReferenceNumber", HFILL }},
9939     { &hf_camel_gsmSCFAddress,
9940       { "gsmSCFAddress", "camel.gsmSCFAddress",
9941         FT_BYTES, BASE_HEX, NULL, 0,
9942         "camel.ISDN_AddressString", HFILL }},
9943     { &hf_camel_suppress_T_CSI,
9944       { "suppress-T-CSI", "camel.suppress_T_CSI",
9945         FT_NONE, BASE_NONE, NULL, 0,
9946         "camel.NULL", HFILL }},
9947     { &hf_camel_legIDToMove,
9948       { "legIDToMove", "camel.legIDToMove",
9949         FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0,
9950         "camel.LegID", HFILL }},
9951     { &hf_camel_legOrCallSegment,
9952       { "legOrCallSegment", "camel.legOrCallSegment",
9953         FT_UINT32, BASE_DEC, VALS(camel_LegOrCallSegment_vals), 0,
9954         "camel.LegOrCallSegment", HFILL }},
9955     { &hf_camel_miscGPRSInfo,
9956       { "miscGPRSInfo", "camel.miscGPRSInfo",
9957         FT_NONE, BASE_NONE, NULL, 0,
9958         "camel.MiscCallInfo", HFILL }},
9959     { &hf_camel_gPRSEventSpecificInformation,
9960       { "gPRSEventSpecificInformation", "camel.gPRSEventSpecificInformation",
9961         FT_UINT32, BASE_DEC, VALS(camel_GPRSEventSpecificInformation_vals), 0,
9962         "camel.GPRSEventSpecificInformation", HFILL }},
9963     { &hf_camel_type,
9964       { "type", "camel.type",
9965         FT_UINT32, BASE_DEC, VALS(camel_Code_vals), 0,
9966         "camel.SupportedExtensionsid", HFILL }},
9967     { &hf_camel_criticality,
9968       { "criticality", "camel.criticality",
9969         FT_UINT32, BASE_DEC, VALS(camel_CriticalityType_vals), 0,
9970         "camel.CriticalityType", HFILL }},
9971     { &hf_camel_value,
9972       { "value", "camel.value",
9973         FT_UINT32, BASE_DEC, VALS(camel_SupportedExtensionsExtensionType_vals), 0,
9974         "camel.SupportedExtensionsExtensionType", HFILL }},
9975     { &hf_camel_aChBillingChargingCharacteristics,
9976       { "aChBillingChargingCharacteristics", "camel.aChBillingChargingCharacteristics",
9977         FT_UINT32, BASE_DEC, VALS(camel_AChBillingChargingCharacteristics_vals), 0,
9978         "camel.AChBillingChargingCharacteristics", HFILL }},
9979     { &hf_camel_partyToCharge1,
9980       { "partyToCharge1", "camel.partyToCharge1",
9981         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
9982         "camel.SendingSideID", HFILL }},
9983     { &hf_camel_ExtensionsArray_item,
9984       { "Item", "camel.ExtensionsArray_item",
9985         FT_NONE, BASE_NONE, NULL, 0,
9986         "camel.ExtensionField", HFILL }},
9987     { &hf_camel_correlationID,
9988       { "correlationID", "camel.correlationID",
9989         FT_BYTES, BASE_HEX, NULL, 0,
9990         "camel.CorrelationID", HFILL }},
9991     { &hf_camel_iPSSPCapabilities,
9992       { "iPSSPCapabilities", "camel.iPSSPCapabilities",
9993         FT_BYTES, BASE_HEX, NULL, 0,
9994         "camel.IPSSPCapabilities", HFILL }},
9995     { &hf_camel_requestedInformationTypeList,
9996       { "requestedInformationTypeList", "camel.requestedInformationTypeList",
9997         FT_UINT32, BASE_DEC, NULL, 0,
9998         "camel.RequestedInformationTypeList", HFILL }},
9999     { &hf_camel_legID3,
10000       { "legID3", "camel.legID3",
10001         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
10002         "camel.SendingSideID", HFILL }},
10003     { &hf_camel_alertingPattern,
10004       { "alertingPattern", "camel.alertingPattern",
10005         FT_BYTES, BASE_HEX, NULL, 0,
10006         "camel.AlertingPattern", HFILL }},
10007     { &hf_camel_originalCalledPartyID,
10008       { "originalCalledPartyID", "camel.originalCalledPartyID",
10009         FT_BYTES, BASE_HEX, NULL, 0,
10010         "camel.OriginalCalledPartyID", HFILL }},
10011     { &hf_camel_carrier,
10012       { "carrier", "camel.carrier",
10013         FT_BYTES, BASE_HEX, NULL, 0,
10014         "camel.Carrier", HFILL }},
10015     { &hf_camel_callingPartysCategory,
10016       { "callingPartysCategory", "camel.callingPartysCategory",
10017         FT_UINT16, BASE_DEC, VALS(isup_calling_partys_category_value), 0,
10018         "camel.CallingPartysCategory", HFILL }},
10019     { &hf_camel_redirectingPartyID,
10020       { "redirectingPartyID", "camel.redirectingPartyID",
10021         FT_BYTES, BASE_HEX, NULL, 0,
10022         "camel.RedirectingPartyID", HFILL }},
10023     { &hf_camel_redirectionInformation,
10024       { "redirectionInformation", "camel.redirectionInformation",
10025         FT_BYTES, BASE_HEX, NULL, 0,
10026         "camel.RedirectionInformation", HFILL }},
10027     { &hf_camel_genericNumbers,
10028       { "genericNumbers", "camel.genericNumbers",
10029         FT_UINT32, BASE_DEC, NULL, 0,
10030         "camel.GenericNumbers", HFILL }},
10031     { &hf_camel_serviceInteractionIndicatorsTwo,
10032       { "serviceInteractionIndicatorsTwo", "camel.serviceInteractionIndicatorsTwo",
10033         FT_NONE, BASE_NONE, NULL, 0,
10034         "camel.ServiceInteractionIndicatorsTwo", HFILL }},
10035     { &hf_camel_chargeNumber,
10036       { "chargeNumber", "camel.chargeNumber",
10037         FT_BYTES, BASE_HEX, NULL, 0,
10038         "camel.ChargeNumber", HFILL }},
10039     { &hf_camel_cug_Interlock,
10040       { "cug-Interlock", "camel.cug_Interlock",
10041         FT_BYTES, BASE_HEX, NULL, 0,
10042         "camel.CUG_Interlock", HFILL }},
10043     { &hf_camel_cug_OutgoingAccess,
10044       { "cug-OutgoingAccess", "camel.cug_OutgoingAccess",
10045         FT_NONE, BASE_NONE, NULL, 0,
10046         "camel.NULL", HFILL }},
10047     { &hf_camel_suppressionOfAnnouncement,
10048       { "suppressionOfAnnouncement", "camel.suppressionOfAnnouncement",
10049         FT_NONE, BASE_NONE, NULL, 0,
10050         "camel.SuppressionOfAnnouncement", HFILL }},
10051     { &hf_camel_oCSIApplicable,
10052       { "oCSIApplicable", "camel.oCSIApplicable",
10053         FT_NONE, BASE_NONE, NULL, 0,
10054         "camel.OCSIApplicable", HFILL }},
10055     { &hf_camel_naOliInfo,
10056       { "naOliInfo", "camel.naOliInfo",
10057         FT_BYTES, BASE_HEX, NULL, 0,
10058         "camel.NAOliInfo", HFILL }},
10059     { &hf_camel_bor_InterrogationRequested,
10060       { "bor-InterrogationRequested", "camel.bor_InterrogationRequested",
10061         FT_NONE, BASE_NONE, NULL, 0,
10062         "camel.NULL", HFILL }},
10063     { &hf_camel_resourceAddress,
10064       { "resourceAddress", "camel.resourceAddress",
10065         FT_UINT32, BASE_DEC, VALS(camel_T_resourceAddress_vals), 0,
10066         "camel.T_resourceAddress", HFILL }},
10067     { &hf_camel_ipRoutingAddress,
10068       { "ipRoutingAddress", "camel.ipRoutingAddress",
10069         FT_BYTES, BASE_HEX, NULL, 0,
10070         "camel.IPRoutingAddress", HFILL }},
10071     { &hf_camel_none,
10072       { "none", "camel.none",
10073         FT_NONE, BASE_NONE, NULL, 0,
10074         "camel.NULL", HFILL }},
10075     { &hf_camel_suppress_O_CSI,
10076       { "suppress-O-CSI", "camel.suppress_O_CSI",
10077         FT_NONE, BASE_NONE, NULL, 0,
10078         "camel.NULL", HFILL }},
10079     { &hf_camel_continueWithArgumentArgExtension,
10080       { "continueWithArgumentArgExtension", "camel.continueWithArgumentArgExtension",
10081         FT_NONE, BASE_NONE, NULL, 0,
10082         "camel.ContinueWithArgumentArgExtension", HFILL }},
10083     { &hf_camel_suppress_D_CSI,
10084       { "suppress-D-CSI", "camel.suppress_D_CSI",
10085         FT_NONE, BASE_NONE, NULL, 0,
10086         "camel.NULL", HFILL }},
10087     { &hf_camel_suppress_N_CSI,
10088       { "suppress-N-CSI", "camel.suppress_N_CSI",
10089         FT_NONE, BASE_NONE, NULL, 0,
10090         "camel.NULL", HFILL }},
10091     { &hf_camel_suppressOutgoingCallBarring,
10092       { "suppressOutgoingCallBarring", "camel.suppressOutgoingCallBarring",
10093         FT_NONE, BASE_NONE, NULL, 0,
10094         "camel.NULL", HFILL }},
10095     { &hf_camel_legToBeReleased,
10096       { "legToBeReleased", "camel.legToBeReleased",
10097         FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0,
10098         "camel.LegID", HFILL }},
10099     { &hf_camel_callSegmentFailure,
10100       { "callSegmentFailure", "camel.callSegmentFailure",
10101         FT_NONE, BASE_NONE, NULL, 0,
10102         "camel.CallSegmentFailure", HFILL }},
10103     { &hf_camel_bCSM_Failure,
10104       { "bCSM-Failure", "camel.bCSM_Failure",
10105         FT_NONE, BASE_NONE, NULL, 0,
10106         "camel.BCSM_Failure", HFILL }},
10107     { &hf_camel_assistingSSPIPRoutingAddress,
10108       { "assistingSSPIPRoutingAddress", "camel.assistingSSPIPRoutingAddress",
10109         FT_BYTES, BASE_HEX, NULL, 0,
10110         "camel.AssistingSSPIPRoutingAddress", HFILL }},
10111     { &hf_camel_eventSpecificInformationBCSM,
10112       { "eventSpecificInformationBCSM", "camel.eventSpecificInformationBCSM",
10113         FT_UINT32, BASE_DEC, VALS(camel_EventSpecificInformationBCSM_vals), 0,
10114         "camel.EventSpecificInformationBCSM", HFILL }},
10115     { &hf_camel_legID4,
10116       { "legID4", "camel.legID4",
10117         FT_UINT32, BASE_DEC, VALS(camel_ReceivingSideID_vals), 0,
10118         "camel.ReceivingSideID", HFILL }},
10119     { &hf_camel_miscCallInfo,
10120       { "miscCallInfo", "camel.miscCallInfo",
10121         FT_NONE, BASE_NONE, NULL, 0,
10122         "camel.MiscCallInfo", HFILL }},
10123     { &hf_camel_timerID,
10124       { "timerID", "camel.timerID",
10125         FT_UINT32, BASE_DEC, VALS(camel_TimerID_vals), 0,
10126         "camel.TimerID", HFILL }},
10127     { &hf_camel_timervalue,
10128       { "timervalue", "camel.timervalue",
10129         FT_UINT32, BASE_DEC, NULL, 0,
10130         "camel.TimerValue", HFILL }},
10131     { &hf_camel_sCIBillingChargingCharacteristics,
10132       { "sCIBillingChargingCharacteristics", "camel.sCIBillingChargingCharacteristics",
10133         FT_BYTES, BASE_HEX, NULL, 0,
10134         "camel.SCIBillingChargingCharacteristics", HFILL }},
10135     { &hf_camel_partyToCharge2,
10136       { "partyToCharge2", "camel.partyToCharge2",
10137         FT_UINT32, BASE_DEC, VALS(camel_SendingSideID_vals), 0,
10138         "camel.SendingSideID", HFILL }},
10139     { &hf_camel_legToBeSplit,
10140       { "legToBeSplit", "camel.legToBeSplit",
10141         FT_UINT32, BASE_DEC, VALS(camel_LegID_vals), 0,
10142         "camel.LegID", HFILL }},
10143     { &hf_camel_destinationReference,
10144       { "destinationReference", "camel.destinationReference",
10145         FT_UINT32, BASE_DEC, NULL, 0,
10146         "camel.Integer4", HFILL }},
10147     { &hf_camel_originationReference,
10148       { "originationReference", "camel.originationReference",
10149         FT_UINT32, BASE_DEC, NULL, 0,
10150         "camel.Integer4", HFILL }},
10151     { &hf_camel_eventSpecificInformationSMS,
10152       { "eventSpecificInformationSMS", "camel.eventSpecificInformationSMS",
10153         FT_UINT32, BASE_DEC, VALS(camel_EventSpecificInformationSMS_vals), 0,
10154         "camel.EventSpecificInformationSMS", HFILL }},
10155     { &hf_camel_sMSEvents,
10156       { "sMSEvents", "camel.sMSEvents",
10157         FT_UINT32, BASE_DEC, NULL, 0,
10158         "camel.SMSEventArray", HFILL }},
10159     { &hf_camel_SMSEventArray_item,
10160       { "Item", "camel.SMSEventArray_item",
10161         FT_NONE, BASE_NONE, NULL, 0,
10162         "camel.SMSEvent", HFILL }},
10163     { &hf_camel_bcsmEvents,
10164       { "bcsmEvents", "camel.bcsmEvents",
10165         FT_UINT32, BASE_DEC, NULL, 0,
10166         "camel.BCSMEventArray", HFILL }},
10167     { &hf_camel_BCSMEventArray_item,
10168       { "Item", "camel.BCSMEventArray_item",
10169         FT_NONE, BASE_NONE, NULL, 0,
10170         "camel.BCSMEvent", HFILL }},
10171     { &hf_camel_callingPartysNumber,
10172       { "callingPartysNumber", "camel.callingPartysNumber",
10173         FT_BYTES, BASE_HEX, NULL, 0,
10174         "camel.ISDN_AddressString", HFILL }},
10175     { &hf_camel_destinationSubscriberNumber,
10176       { "destinationSubscriberNumber", "camel.destinationSubscriberNumber",
10177         FT_BYTES, BASE_HEX, NULL, 0,
10178         "camel.CalledPartyBCDNumber", HFILL }},
10179     { &hf_camel_sMSCAddress,
10180       { "sMSCAddress", "camel.sMSCAddress",
10181         FT_BYTES, BASE_HEX, NULL, 0,
10182         "camel.ISDN_AddressString", HFILL }},
10183     { &hf_camel_requestedInformationList,
10184       { "requestedInformationList", "camel.requestedInformationList",
10185         FT_UINT32, BASE_DEC, NULL, 0,
10186         "camel.RequestedInformationList", HFILL }},
10187     { &hf_camel_legID5,
10188       { "legID5", "camel.legID5",
10189         FT_UINT32, BASE_DEC, VALS(camel_ReceivingSideID_vals), 0,
10190         "camel.ReceivingSideID", HFILL }},
10191     { &hf_camel_disconnectFromIPForbidden,
10192       { "disconnectFromIPForbidden", "camel.disconnectFromIPForbidden",
10193         FT_BOOLEAN, 8, NULL, 0,
10194         "camel.BOOLEAN", HFILL }},
10195     { &hf_camel_requestAnnouncementComplete,
10196       { "requestAnnouncementComplete", "camel.requestAnnouncementComplete",
10197         FT_BOOLEAN, 8, NULL, 0,
10198         "camel.BOOLEAN", HFILL }},
10199     { &hf_camel_collectedInfo,
10200       { "collectedInfo", "camel.collectedInfo",
10201         FT_UINT32, BASE_DEC, VALS(camel_CollectedInfo_vals), 0,
10202         "camel.CollectedInfo", HFILL }},
10203     { &hf_camel_mSISDN,
10204       { "mSISDN", "camel.mSISDN",
10205         FT_BYTES, BASE_HEX, NULL, 0,
10206         "camel.ISDN_AddressString", HFILL }},
10207     { &hf_camel_iMSI,
10208       { "iMSI", "camel.iMSI",
10209         FT_BYTES, BASE_HEX, NULL, 0,
10210         "gsm_map.IMSI", HFILL }},
10211     { &hf_camel_gPRSMSClass,
10212       { "gPRSMSClass", "camel.gPRSMSClass",
10213         FT_NONE, BASE_NONE, NULL, 0,
10214         "camel.GPRSMSClass", HFILL }},
10215     { &hf_camel_sGSNCapabilities,
10216       { "sGSNCapabilities", "camel.sGSNCapabilities",
10217         FT_BYTES, BASE_HEX, NULL, 0,
10218         "camel.SGSNCapabilities", HFILL }},
10219     { &hf_camel_gapCriteria,
10220       { "gapCriteria", "camel.gapCriteria",
10221         FT_UINT32, BASE_DEC, VALS(camel_GapCriteria_vals), 0,
10222         "camel.GapCriteria", HFILL }},
10223     { &hf_camel_gapIndicators,
10224       { "gapIndicators", "camel.gapIndicators",
10225         FT_NONE, BASE_NONE, NULL, 0,
10226         "camel.GapIndicators", HFILL }},
10227     { &hf_camel_controlType,
10228       { "controlType", "camel.controlType",
10229         FT_UINT32, BASE_DEC, VALS(camel_ControlType_vals), 0,
10230         "camel.ControlType", HFILL }},
10231     { &hf_camel_gapTreatment,
10232       { "gapTreatment", "camel.gapTreatment",
10233         FT_UINT32, BASE_DEC, VALS(camel_GapTreatment_vals), 0,
10234         "camel.GapTreatment", HFILL }},
10235     { &hf_camel_calledPartyNumber,
10236       { "calledPartyNumber", "camel.calledPartyNumber",
10237         FT_BYTES, BASE_HEX, NULL, 0,
10238         "camel.CalledPartyNumber", HFILL }},
10239     { &hf_camel_cGEncountered,
10240       { "cGEncountered", "camel.cGEncountered",
10241         FT_UINT32, BASE_DEC, VALS(camel_CGEncountered_vals), 0,
10242         "camel.CGEncountered", HFILL }},
10243     { &hf_camel_locationNumber,
10244       { "locationNumber", "camel.locationNumber",
10245         FT_BYTES, BASE_HEX, NULL, 0,
10246         "camel.LocationNumber", HFILL }},
10247     { &hf_camel_highLayerCompatibility,
10248       { "highLayerCompatibility", "camel.highLayerCompatibility",
10249         FT_BYTES, BASE_HEX, NULL, 0,
10250         "camel.HighLayerCompatibility", HFILL }},
10251     { &hf_camel_additionalCallingPartyNumber,
10252       { "additionalCallingPartyNumber", "camel.additionalCallingPartyNumber",
10253         FT_BYTES, BASE_HEX, NULL, 0,
10254         "camel.AdditionalCallingPartyNumber", HFILL }},
10255     { &hf_camel_bearerCapability,
10256       { "bearerCapability", "camel.bearerCapability",
10257         FT_UINT32, BASE_DEC, VALS(camel_BearerCapability_vals), 0,
10258         "camel.BearerCapability", HFILL }},
10259     { &hf_camel_cug_Index,
10260       { "cug-Index", "camel.cug_Index",
10261         FT_UINT32, BASE_DEC, NULL, 0,
10262         "camel.CUG_Index", HFILL }},
10263     { &hf_camel_subscriberState,
10264       { "subscriberState", "camel.subscriberState",
10265         FT_UINT32, BASE_DEC, VALS(gsm_map_SubscriberState_vals), 0,
10266         "camel.SubscriberState", HFILL }},
10267     { &hf_camel_mscAddress,
10268       { "mscAddress", "camel.mscAddress",
10269         FT_BYTES, BASE_HEX, NULL, 0,
10270         "camel.ISDN_AddressString", HFILL }},
10271     { &hf_camel_calledPartyBCDNumber,
10272       { "calledPartyBCDNumber", "camel.calledPartyBCDNumber",
10273         FT_BYTES, BASE_HEX, NULL, 0,
10274         "camel.CalledPartyBCDNumber", HFILL }},
10275     { &hf_camel_timeAndTimezone,
10276       { "timeAndTimezone", "camel.timeAndTimezone",
10277         FT_BYTES, BASE_HEX, NULL, 0,
10278         "camel.TimeAndTimezone", HFILL }},
10279     { &hf_camel_gsm_ForwardingPending,
10280       { "gsm-ForwardingPending", "camel.gsm_ForwardingPending",
10281         FT_NONE, BASE_NONE, NULL, 0,
10282         "camel.NULL", HFILL }},
10283     { &hf_camel_initialDPArgExtension,
10284       { "initialDPArgExtension", "camel.initialDPArgExtension",
10285         FT_NONE, BASE_NONE, NULL, 0,
10286         "camel.InitialDPArgExtension", HFILL }},
10287     { &hf_camel_callingPartyNumberas,
10288       { "callingPartyNumberas", "camel.callingPartyNumberas",
10289         FT_BYTES, BASE_HEX, NULL, 0,
10290         "camel.ISDN_AddressString", HFILL }},
10291     { &hf_camel_locationInformationMSC,
10292       { "locationInformationMSC", "camel.locationInformationMSC",
10293         FT_NONE, BASE_NONE, NULL, 0,
10294         "gsm_map.LocationInformation", HFILL }},
10295     { &hf_camel_tPShortMessageSubmissionSpecificInfo,
10296       { "tPShortMessageSubmissionSpecificInfo", "camel.tPShortMessageSubmissionSpecificInfo",
10297         FT_BYTES, BASE_HEX, NULL, 0,
10298         "camel.TPShortMessageSubmissionInfo", HFILL }},
10299     { &hf_camel_tPProtocolIdentifier,
10300       { "tPProtocolIdentifier", "camel.tPProtocolIdentifier",
10301         FT_BYTES, BASE_HEX, NULL, 0,
10302         "camel.TPProtocolIdentifier", HFILL }},
10303     { &hf_camel_tPDataCodingScheme,
10304       { "tPDataCodingScheme", "camel.tPDataCodingScheme",
10305         FT_BYTES, BASE_HEX, NULL, 0,
10306         "camel.TPDataCodingScheme", HFILL }},
10307     { &hf_camel_tPValidityPeriod,
10308       { "tPValidityPeriod", "camel.tPValidityPeriod",
10309         FT_BYTES, BASE_HEX, NULL, 0,
10310         "camel.TPValidityPeriod", HFILL }},
10311     { &hf_camel_smsReferenceNumber,
10312       { "smsReferenceNumber", "camel.smsReferenceNumber",
10313         FT_BYTES, BASE_HEX, NULL, 0,
10314         "camel.CallReferenceNumber", HFILL }},
10315     { &hf_camel_sgsnNumber,
10316       { "sgsnNumber", "camel.sgsnNumber",
10317         FT_BYTES, BASE_HEX, NULL, 0,
10318         "camel.ISDN_AddressString", HFILL }},
10319     { &hf_camel_privateExtensionList,
10320       { "privateExtensionList", "camel.privateExtensionList",
10321         FT_UINT32, BASE_DEC, NULL, 0,
10322         "camel.PrivateExtensionList", HFILL }},
10323     { &hf_camel_pcs_Extensions,
10324       { "pcs-Extensions", "camel.pcs_Extensions",
10325         FT_NONE, BASE_NONE, NULL, 0,
10326         "camel.PCS_Extensions", HFILL }},
10327     { &hf_camel_chargingCharacteristics,
10328       { "chargingCharacteristics", "camel.chargingCharacteristics",
10329         FT_UINT32, BASE_DEC, VALS(camel_ChargingCharacteristics_vals), 0,
10330         "camel.ChargingCharacteristics", HFILL }},
10331     { &hf_camel_chargingResult,
10332       { "chargingResult", "camel.chargingResult",
10333         FT_UINT32, BASE_DEC, VALS(camel_ChargingResult_vals), 0,
10334         "camel.ChargingResult", HFILL }},
10335     { &hf_camel_active,
10336       { "active", "camel.active",
10337         FT_BOOLEAN, 8, NULL, 0,
10338         "camel.BOOLEAN", HFILL }},
10339     { &hf_camel_chargingRollOver,
10340       { "chargingRollOver", "camel.chargingRollOver",
10341         FT_UINT32, BASE_DEC, VALS(camel_ChargingRollOver_vals), 0,
10342         "camel.ChargingRollOver", HFILL }},
10343     { &hf_camel_problem,
10344       { "problem", "camel.problem",
10345         FT_UINT32, BASE_DEC, VALS(camel_T_problem_vals), 0,
10346         "camel.T_problem", HFILL }},
10347     { &hf_camel_operation,
10348       { "operation", "camel.operation",
10349         FT_INT32, BASE_DEC, NULL, 0,
10350         "camel.InvokeID", HFILL }},
10351     { &hf_camel_SupportedCamelPhases_phase1,
10352       { "phase1", "camel.phase1",
10353         FT_BOOLEAN, 8, NULL, 0x80,
10354         "", HFILL }},
10355     { &hf_camel_SupportedCamelPhases_phase2,
10356       { "phase2", "camel.phase2",
10357         FT_BOOLEAN, 8, NULL, 0x40,
10358         "", HFILL }},
10359     { &hf_camel_SupportedCamelPhases_phase3,
10360       { "phase3", "camel.phase3",
10361         FT_BOOLEAN, 8, NULL, 0x20,
10362         "", HFILL }},
10363     { &hf_camel_SupportedCamelPhases_phase4,
10364       { "phase4", "camel.phase4",
10365         FT_BOOLEAN, 8, NULL, 0x10,
10366         "", HFILL }},
10367     { &hf_camel_OfferedCamel4Functionalities_initiateCallAttempt,
10368       { "initiateCallAttempt", "camel.initiateCallAttempt",
10369         FT_BOOLEAN, 8, NULL, 0x80,
10370         "", HFILL }},
10371     { &hf_camel_OfferedCamel4Functionalities_splitLeg,
10372       { "splitLeg", "camel.splitLeg",
10373         FT_BOOLEAN, 8, NULL, 0x40,
10374         "", HFILL }},
10375     { &hf_camel_OfferedCamel4Functionalities_moveLeg,
10376       { "moveLeg", "camel.moveLeg",
10377         FT_BOOLEAN, 8, NULL, 0x20,
10378         "", HFILL }},
10379     { &hf_camel_OfferedCamel4Functionalities_disconnectLeg,
10380       { "disconnectLeg", "camel.disconnectLeg",
10381         FT_BOOLEAN, 8, NULL, 0x10,
10382         "", HFILL }},
10383     { &hf_camel_OfferedCamel4Functionalities_entityReleased,
10384       { "entityReleased", "camel.entityReleased",
10385         FT_BOOLEAN, 8, NULL, 0x08,
10386         "", HFILL }},
10387     { &hf_camel_OfferedCamel4Functionalities_dfc_WithArgument,
10388       { "dfc-WithArgument", "camel.dfc-WithArgument",
10389         FT_BOOLEAN, 8, NULL, 0x04,
10390         "", HFILL }},
10391     { &hf_camel_OfferedCamel4Functionalities_playTone,
10392       { "playTone", "camel.playTone",
10393         FT_BOOLEAN, 8, NULL, 0x02,
10394         "", HFILL }},
10395     { &hf_camel_OfferedCamel4Functionalities_dtmf_MidCall,
10396       { "dtmf-MidCall", "camel.dtmf-MidCall",
10397         FT_BOOLEAN, 8, NULL, 0x01,
10398         "", HFILL }},
10399     { &hf_camel_OfferedCamel4Functionalities_chargingIndicator,
10400       { "chargingIndicator", "camel.chargingIndicator",
10401         FT_BOOLEAN, 8, NULL, 0x80,
10402         "", HFILL }},
10403     { &hf_camel_OfferedCamel4Functionalities_alertingDP,
10404       { "alertingDP", "camel.alertingDP",
10405         FT_BOOLEAN, 8, NULL, 0x40,
10406         "", HFILL }},
10407     { &hf_camel_OfferedCamel4Functionalities_locationAtAlerting,
10408       { "locationAtAlerting", "camel.locationAtAlerting",
10409         FT_BOOLEAN, 8, NULL, 0x20,
10410         "", HFILL }},
10411     { &hf_camel_OfferedCamel4Functionalities_changeOfPositionDP,
10412       { "changeOfPositionDP", "camel.changeOfPositionDP",
10413         FT_BOOLEAN, 8, NULL, 0x10,
10414         "", HFILL }},
10415     { &hf_camel_OfferedCamel4Functionalities_or_Interactions,
10416       { "or-Interactions", "camel.or-Interactions",
10417         FT_BOOLEAN, 8, NULL, 0x08,
10418         "", HFILL }},
10419     { &hf_camel_OfferedCamel4Functionalities_warningToneEnhancements,
10420       { "warningToneEnhancements", "camel.warningToneEnhancements",
10421         FT_BOOLEAN, 8, NULL, 0x04,
10422         "", HFILL }},
10423     { &hf_camel_OfferedCamel4Functionalities_cf_Enhancements,
10424       { "cf-Enhancements", "camel.cf-Enhancements",
10425         FT_BOOLEAN, 8, NULL, 0x02,
10426         "", HFILL }},
10427     { &hf_camel_OfferedCamel4Functionalities_subscribedEnhancedDialledServices,
10428       { "subscribedEnhancedDialledServices", "camel.subscribedEnhancedDialledServices",
10429         FT_BOOLEAN, 8, NULL, 0x01,
10430         "", HFILL }},
10431     { &hf_camel_OfferedCamel4Functionalities_servingNetworkEnhancedDialledServices,
10432       { "servingNetworkEnhancedDialledServices", "camel.servingNetworkEnhancedDialledServices",
10433         FT_BOOLEAN, 8, NULL, 0x80,
10434         "", HFILL }},
10435     { &hf_camel_OfferedCamel4Functionalities_criteriaForChangeOfPositionDP,
10436       { "criteriaForChangeOfPositionDP", "camel.criteriaForChangeOfPositionDP",
10437         FT_BOOLEAN, 8, NULL, 0x40,
10438         "", HFILL }},
10439     { &hf_camel_OfferedCamel4Functionalities_serviceChangeDP,
10440       { "serviceChangeDP", "camel.serviceChangeDP",
10441         FT_BOOLEAN, 8, NULL, 0x20,
10442         "", HFILL }},
10443
10444 /*--- End of included file: packet-camel-hfarr.c ---*/
10445 #line 733 "packet-camel-template.c"
10446   };
10447
10448   /* List of subtrees */
10449   static gint *ett[] = {
10450     &ett_camel,
10451     &ett_camel_InvokeId,
10452     &ett_camel_InvokePDU,
10453     &ett_camel_ReturnResultPDU,
10454     &ett_camel_ReturnResult_result,
10455     &ett_camel_camelPDU,
10456     &ett_camelisup_parameter,
10457     &ett_camel_addr,
10458         &ett_camel_isdn_address_string,
10459         &ett_camel_MSRadioAccessCapability,
10460         &ett_camel_MSNetworkCapability,
10461         &ett_camel_AccessPointName,
10462         &ett_camel_pdptypenumber,
10463
10464 /*--- Included file: packet-camel-ettarr.c ---*/
10465 #line 1 "packet-camel-ettarr.c"
10466     &ett_camel_PBSGSNCapabilities,
10467     &ett_camel_PBIPSSPCapabilities,
10468     &ett_camel_PBAddressString,
10469     &ett_camel_PBISDNAddressString,
10470     &ett_camel_PBGeographicalInformation,
10471     &ett_camel_PBGSNAddress,
10472     &ett_camel_PBRedirectionInformation,
10473     &ett_camel_PBCalledPartyNumber,
10474     &ett_camel_PBCallingPartyNumber,
10475     &ett_camel_PBRedirectingNumber,
10476     &ett_camel_PBCause,
10477     &ett_camel_PBGenericNumber,
10478     &ett_camel_PBLocationNumber,
10479     &ett_camel_PBCalledPartyBCDNumber,
10480     &ett_camel_AChBillingChargingCharacteristics,
10481     &ett_camel_T_actimeDurationCharging,
10482     &ett_camel_AChChargingAddress,
10483     &ett_camel_AOCBeforeAnswer,
10484     &ett_camel_AOCGprs,
10485     &ett_camel_AOCSubsequent,
10486     &ett_camel_AudibleIndicator,
10487     &ett_camel_BackwardServiceInteractionInd,
10488     &ett_camel_BasicGapCriteria,
10489     &ett_camel_T_calledAddressAndService,
10490     &ett_camel_T_callingAddressAndService,
10491     &ett_camel_BCSMEvent,
10492     &ett_camel_BCSM_Failure,
10493     &ett_camel_BearerCapability,
10494     &ett_camel_Burst,
10495     &ett_camel_BurstList,
10496     &ett_camel_CAI_Gsm0224,
10497     &ett_camel_CallSegmentFailure,
10498     &ett_camel_CallSegmentToCancel,
10499     &ett_camel_CAMEL_AChBillingChargingCharacteristics,
10500     &ett_camel_T_timeDurationCharging,
10501     &ett_camel_CAMEL_CallResult,
10502     &ett_camel_T_timeDurationChargingResult,
10503     &ett_camel_CAMEL_FCIBillingChargingCharacteristics,
10504     &ett_camel_T_fCIBCCCAMELsequence1,
10505     &ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics,
10506     &ett_camel_T_fCIBCCCAMELsequence2,
10507     &ett_camel_CAMEL_FCISMSBillingChargingCharacteristics,
10508     &ett_camel_T_fCIBCCCAMELsequence3,
10509     &ett_camel_CAMEL_SCIBillingChargingCharacteristics,
10510     &ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt,
10511     &ett_camel_CamelSCIGPRSBillingChargingCharacteristics,
10512     &ett_camel_ChangeOfPositionControlInfo,
10513     &ett_camel_ChangeOfLocation,
10514     &ett_camel_ChangeOfLocationAlt,
10515     &ett_camel_ChargingCharacteristics,
10516     &ett_camel_ChargingResult,
10517     &ett_camel_ChargingRollOver,
10518     &ett_camel_CollectedDigits,
10519     &ett_camel_CollectedInfo,
10520     &ett_camel_CompoundCriteria,
10521     &ett_camel_DestinationRoutingAddress,
10522     &ett_camel_DpSpecificCriteria,
10523     &ett_camel_DpSpecificCriteriaAlt,
10524     &ett_camel_DpSpecificInfoAlt,
10525     &ett_camel_T_oServiceChangeSpecificInfo,
10526     &ett_camel_T_tServiceChangeSpecificInfo,
10527     &ett_camel_ElapsedTime,
10528     &ett_camel_T_timeGPRSIfTariffSwitch,
10529     &ett_camel_ElapsedTimeRollOver,
10530     &ett_camel_T_rOTimeGPRSIfTariffSwitch,
10531     &ett_camel_EndUserAddress,
10532     &ett_camel_EventSpecificInformationBCSM,
10533     &ett_camel_T_routeSelectFailureSpecificInfo,
10534     &ett_camel_T_oCalledPartyBusySpecificInfo,
10535     &ett_camel_T_oNoAnswerSpecificInfo,
10536     &ett_camel_T_oAnswerSpecificInfo,
10537     &ett_camel_T_oMidCallSpecificInfo,
10538     &ett_camel_T_midCallEvents,
10539     &ett_camel_T_oDisconnectSpecificInfo,
10540     &ett_camel_T_tBusySpecificInfo,
10541     &ett_camel_T_tNoAnswerSpecificInfo,
10542     &ett_camel_T_tAnswerSpecificInfo,
10543     &ett_camel_T_tMidCallSpecificInfo,
10544     &ett_camel_T_midCallEvents1,
10545     &ett_camel_T_tDisconnectSpecificInfo,
10546     &ett_camel_T_oTermSeizedSpecificInfo,
10547     &ett_camel_T_callAcceptedSpecificInfo,
10548     &ett_camel_T_oAbandonSpecificInfo,
10549     &ett_camel_T_oChangeOfPositionSpecificInfo,
10550     &ett_camel_T_tChangeOfPositionSpecificInfo,
10551     &ett_camel_EventSpecificInformationSMS,
10552     &ett_camel_T_o_smsFailureSpecificInfo,
10553     &ett_camel_T_o_smsSubmittedSpecificInfo,
10554     &ett_camel_T_t_smsFailureSpecificInfo,
10555     &ett_camel_T_t_smsDeliverySpecificInfo,
10556     &ett_camel_Extensions,
10557     &ett_camel_ForwardServiceInteractionInd,
10558     &ett_camel_GapCriteria,
10559     &ett_camel_GapIndicators,
10560     &ett_camel_GapOnService,
10561     &ett_camel_GapTreatment,
10562     &ett_camel_GenericNumbers,
10563     &ett_camel_GPRS_QoS,
10564     &ett_camel_GPRS_QoS_Extension,
10565     &ett_camel_GPRSEvent,
10566     &ett_camel_GPRSEventSpecificInformation,
10567     &ett_camel_T_attachChangeOfPositionSpecificInformation,
10568     &ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation,
10569     &ett_camel_T_detachSpecificInformation,
10570     &ett_camel_T_disconnectSpecificInformation,
10571     &ett_camel_T_pDPContextEstablishmentSpecificInformation,
10572     &ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation,
10573     &ett_camel_GPRSMSClass,
10574     &ett_camel_InbandInfo,
10575     &ett_camel_InformationToSend,
10576     &ett_camel_LegOrCallSegment,
10577     &ett_camel_LocationInformationGPRS,
10578     &ett_camel_MessageID,
10579     &ett_camel_T_text,
10580     &ett_camel_SEQUENCE_SIZE_1_16_OF_Integer4,
10581     &ett_camel_T_variableMessage,
10582     &ett_camel_MetDPCriteriaList,
10583     &ett_camel_MetDPCriterion,
10584     &ett_camel_MetDPCriterionAlt,
10585     &ett_camel_MidCallControlInfo,
10586     &ett_camel_QualityOfService,
10587     &ett_camel_ReceivingSideID,
10588     &ett_camel_RequestedInformationList,
10589     &ett_camel_RequestedInformationTypeList,
10590     &ett_camel_RequestedInformation,
10591     &ett_camel_RequestedInformationValue,
10592     &ett_camel_SendingSideID,
10593     &ett_camel_ServiceInteractionIndicatorsTwo,
10594     &ett_camel_SMSEvent,
10595     &ett_camel_TimeIfTariffSwitch,
10596     &ett_camel_TimeInformation,
10597     &ett_camel_Tone,
10598     &ett_camel_TransferredVolume,
10599     &ett_camel_T_volumeIfTariffSwitch,
10600     &ett_camel_TransferredVolumeRollOver,
10601     &ett_camel_T_rOVolumeIfTariffSwitch,
10602     &ett_camel_VariablePart,
10603     &ett_camel_PDPType,
10604     &ett_camel_Code,
10605     &ett_camel_PCS_Extensions,
10606     &ett_camel_MiscCallInfo,
10607     &ett_camel_SupportedExtensionsExtensionType,
10608     &ett_camel_PrivateExtension,
10609     &ett_camel_ApplyChargingReportArg,
10610     &ett_camel_CancelArg,
10611     &ett_camel_ReceivedInformationArg,
10612     &ett_camel_ConnectGPRSArg,
10613     &ett_camel_EntityReleasedGPRSArg,
10614     &ett_camel_ReleaseGPRSArg,
10615     &ett_camel_RequestReportGPRSEventArg,
10616     &ett_camel_GPRSEventArray,
10617     &ett_camel_SendChargingInformationGPRSArg,
10618     &ett_camel_SubscriberState,
10619     &ett_camel_PrivateExtensionList,
10620     &ett_camel_CellIdOrLAI,
10621     &ett_camel_LegID,
10622     &ett_camel_VariablePartsArray,
10623     &ett_camel_InitialDPArgExtension,
10624     &ett_camel_InitiateCallAttemptArg,
10625     &ett_camel_InitiateCallAttemptRes,
10626     &ett_camel_MoveLegArg,
10627     &ett_camel_PlayToneArg,
10628     &ett_camel_SupportedCamelPhases,
10629     &ett_camel_OfferedCamel4Functionalities,
10630     &ett_camel_EventReportGPRSArg,
10631     &ett_camel_ExtensionField,
10632     &ett_camel_ApplyChargingArg,
10633     &ett_camel_ExtensionsArray,
10634     &ett_camel_AssistRequestInstructionsArg,
10635     &ett_camel_CallInformationRequestArg,
10636     &ett_camel_ConnectArg,
10637     &ett_camel_ConnectToResourceArg,
10638     &ett_camel_T_resourceAddress,
10639     &ett_camel_ContinueWithArgumentArg,
10640     &ett_camel_ContinueWithArgumentArgExtension,
10641     &ett_camel_DisconnectLegArg,
10642     &ett_camel_EntityReleasedArg,
10643     &ett_camel_DisconnectForwardConnectionWithArgumentArg,
10644     &ett_camel_EstablishTemporaryConnectionArg,
10645     &ett_camel_EventReportBCSMArg,
10646     &ett_camel_ResetTimerArg,
10647     &ett_camel_SendChargingInformationArg,
10648     &ett_camel_SplitLegArg,
10649     &ett_camel_CAPGPRSReferenceNumber,
10650     &ett_camel_EventReportSMSArg,
10651     &ett_camel_RequestReportSMSEventArg,
10652     &ett_camel_SMSEventArray,
10653     &ett_camel_ResetTimerSMSArg,
10654     &ett_camel_RequestReportBCSMEventArg,
10655     &ett_camel_BCSMEventArray,
10656     &ett_camel_ConnectSMSArg,
10657     &ett_camel_CallInformationReportArg,
10658     &ett_camel_PlayAnnouncementArg,
10659     &ett_camel_PromptAndCollectUserInformationArg,
10660     &ett_camel_InitialDPGPRSArg,
10661     &ett_camel_CallGapArg,
10662     &ett_camel_InitialDPArg,
10663     &ett_camel_InitialDPSMSArg,
10664     &ett_camel_ExtensionContainer,
10665     &ett_camel_ApplyChargingGPRSArg,
10666     &ett_camel_ApplyChargingReportGPRSArg,
10667     &ett_camel_CancelGPRSArg,
10668     &ett_camel_ContinueGPRSArg,
10669     &ett_camel_ResetTimerGPRSArg,
10670     &ett_camel_CancelFailedPARAM,
10671
10672 /*--- End of included file: packet-camel-ettarr.c ---*/
10673 #line 751 "packet-camel-template.c"
10674   };
10675
10676   /* Register protocol */
10677   proto_camel = proto_register_protocol(PNAME, PSNAME, PFNAME);
10678
10679   proto_register_field_array(proto_camel, hf, array_length(hf));
10680   proto_register_subtree_array(ett, array_length(ett));
10681
10682   register_ber_oid_dissector_handle("0.4.0.0.1.0.50.1",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network|umts-Network(1) applicationContext(0) cap-gsmssf-to-gsmscf(50) version2(1)" );
10683   register_ber_oid_dissector_handle("0.4.0.0.1.0.51.1",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network|umts-Network(1) applicationContext(0) cap-assist-handoff-gsmssf-to-gsmscf(51) version2(1)" );
10684   register_ber_oid_dissector_handle("0.4.0.0.1.0.52.1",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network|umts-Network(1) applicationContext(0) cap-gsmSRF-to-gsmscf(52) version2(1)" );
10685   register_ber_oid_dissector_handle("0.4.0.0.1.21.3.50",camel_handle, proto_camel, "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) cAP3OE(21) ac(3) id-ac-CAP-gprsSSF-gsmSCF-AC(50)" );
10686
10687   add_oid_str_name("0.4.0.0.1.1.5.2","iitu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) abstractSyntax(1) cap-GPRS-ReferenceNumber(5) version3(2)");
10688
10689     
10690
10691   /* Register our configuration options, particularly our ssn:s */
10692   /* Set default SSNs */
10693   range_convert_str(&global_ssn_range, "6-9", MAX_SSN);
10694   ssn_range = range_empty();
10695
10696   camel_module = prefs_register_protocol(proto_camel, proto_reg_handoff_camel);
10697
10698   prefs_register_enum_preference(camel_module, "date.format", "Date Format",
10699                                   "The date format: (DD/MM) or (MM/DD)",
10700                                   &date_format, date_options, FALSE);
10701   
10702   
10703   prefs_register_range_preference(camel_module, "tcap.ssn",
10704     "TCAP SSNs",
10705     "TCAP Subsystem numbers used for Camel",
10706     &global_ssn_range, MAX_SSN);
10707 }
10708