1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* asn2wrs.py -b -q -L -p camel -c ./camel.cnf -s ./packet-camel-template -D . -O ../.. CAP-object-identifiers.asn CAP-classes.asn CAP-datatypes.asn CAP-errorcodes.asn CAP-errortypes.asn CAP-operationcodes.asn CAP-GPRS-ReferenceNumber.asn CAP-gsmSCF-gsmSRF-ops-args.asn CAP-gsmSSF-gsmSCF-ops-args.asn CAP-gprsSSF-gsmSCF-ops-args.asn CAP-SMS-ops-args.asn CAP-U-ABORT-Data.asn CamelV2diff.asn ../ros/Remote-Operations-Information-Objects.asn ../ros/Remote-Operations-Generic-ROS-PDUs.asn */
6 /* packet-camel-template.c
8 * Copyright 2004, Tim Endean <endeant@hotmail.com>
9 * Copyright 2005, Olivier Jacques <olivier.jacques@hp.com>
10 * Copyright 2005, Javier Acuna <javier.acuna@sixbell.com>
11 * Updated to ETSI TS 129 078 V6.4.0 (2004-3GPP TS 29.078 version 6.4.0 Release 6 1 12)
12 * Copyright 2005-2010, Anders Broman <anders.broman@ericsson.com>
13 * Updated to 3GPP TS 29.078 version 7.3.0 Release 7 (2006-06)
14 * Built from the gsm-map dissector Copyright 2004, Anders Broman <anders.broman@ericsson.com>
16 * Wireshark - Network traffic analyzer
17 * By Gerald Combs <gerald@wireshark.org>
18 * Copyright 1998 Gerald Combs
20 * SPDX-License-Identifier: GPL-2.0-or-later
21 * References: ETSI 300 374
24 * Indentation logic: this file is indented with 2 spaces indentation.
31 #include <epan/packet.h>
32 #include <epan/prefs.h>
33 #include <epan/oids.h>
35 #include <epan/srt_table.h>
36 #include <epan/stat_tap_ui.h>
37 #include <epan/asn1.h>
38 #include <epan/expert.h>
40 #include <wsutil/strtoi.h>
41 #include <wsutil/array.h>
43 #include "packet-ber.h"
44 #include "packet-camel.h"
45 #include "packet-q931.h"
46 #include "packet-e164.h"
47 #include "packet-isup.h"
48 #include "packet-gsm_map.h"
49 #include "packet-gsm_a_common.h"
50 #include "packet-inap.h"
51 #include "packet-tcap.h"
54 #define PSNAME "CAMEL"
55 #define PFNAME "camel"
57 /* Initialize the protocol and registered fields */
58 static int proto_camel
;
59 static int date_format
= 1; /*assume european date format */
61 /* Global variables */
62 static uint32_t opcode
=0;
63 static uint32_t errorCode
=0;
64 static uint32_t camel_ver
;
66 /* When several Camel components are received in a single TCAP message,
67 we have to use several buffers for the stored parameters
68 because else this data are erased during TAP dissector call */
69 #define MAX_CAMEL_INSTANCE 10
70 static int camelsrt_global_current
=0;
71 static struct camelsrt_info_t camelsrt_global_info
[MAX_CAMEL_INSTANCE
];
74 static rose_ctx_t camel_rose_ctx
;
77 static int hf_camel_extension_code_local
;
78 static int hf_camel_error_code_local
;
79 static int hf_camel_cause_indicator
;
80 static int hf_camel_PDPTypeNumber_etsi
;
81 static int hf_camel_PDPTypeNumber_ietf
;
82 static int hf_camel_PDPAddress_IPv4
;
83 static int hf_camel_PDPAddress_IPv6
;
84 static int hf_camel_cellGlobalIdOrServiceAreaIdFixedLength
;
85 static int hf_camel_RP_Cause
;
86 static int hf_camel_CAMEL_AChBillingChargingCharacteristics
;
87 static int hf_camel_CAMEL_FCIBillingChargingCharacteristics
;
88 static int hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
;
89 static int hf_camel_CAMEL_FCISMSBillingChargingCharacteristics
;
90 static int hf_camel_CAMEL_SCIBillingChargingCharacteristics
;
91 static int hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
;
92 static int hf_camel_CAMEL_CallResult
;
94 /* Used by persistent data */
95 static int hf_camelsrt_SessionId
;
96 //static int hf_camelsrt_RequestNumber;
97 static int hf_camelsrt_Duplicate
;
98 static int hf_camelsrt_RequestFrame
;
99 static int hf_camelsrt_ResponseFrame
;
100 //static int hf_camelsrt_DeltaTime;
101 //static int hf_camelsrt_SessionTime;
102 static int hf_camelsrt_DeltaTime31
;
103 static int hf_camelsrt_DeltaTime75
;
104 static int hf_camelsrt_DeltaTime65
;
105 static int hf_camelsrt_DeltaTime22
;
106 static int hf_camelsrt_DeltaTime35
;
107 static int hf_camelsrt_DeltaTime80
;
108 static int hf_camel_timeandtimezone_time
;
109 static int hf_camel_timeandtimezone_tz
;
111 static int hf_camel_PAR_cancelFailed_PDU
; /* PAR_cancelFailed */
112 static int hf_camel_PAR_requestedInfoError_PDU
; /* PAR_requestedInfoError */
113 static int hf_camel_UnavailableNetworkResource_PDU
; /* UnavailableNetworkResource */
114 static int hf_camel_PAR_taskRefused_PDU
; /* PAR_taskRefused */
115 static int hf_camel_CAP_GPRS_ReferenceNumber_PDU
; /* CAP_GPRS_ReferenceNumber */
116 static int hf_camel_PlayAnnouncementArg_PDU
; /* PlayAnnouncementArg */
117 static int hf_camel_PromptAndCollectUserInformationArg_PDU
; /* PromptAndCollectUserInformationArg */
118 static int hf_camel_ReceivedInformationArg_PDU
; /* ReceivedInformationArg */
119 static int hf_camel_SpecializedResourceReportArg_PDU
; /* SpecializedResourceReportArg */
120 static int hf_camel_ApplyChargingArg_PDU
; /* ApplyChargingArg */
121 static int hf_camel_ApplyChargingReportArg_PDU
; /* ApplyChargingReportArg */
122 static int hf_camel_AssistRequestInstructionsArg_PDU
; /* AssistRequestInstructionsArg */
123 static int hf_camel_CallGapArg_PDU
; /* CallGapArg */
124 static int hf_camel_CallInformationReportArg_PDU
; /* CallInformationReportArg */
125 static int hf_camel_CallInformationRequestArg_PDU
; /* CallInformationRequestArg */
126 static int hf_camel_CancelArg_PDU
; /* CancelArg */
127 static int hf_camel_CollectInformationArg_PDU
; /* CollectInformationArg */
128 static int hf_camel_ConnectArg_PDU
; /* ConnectArg */
129 static int hf_camel_ConnectToResourceArg_PDU
; /* ConnectToResourceArg */
130 static int hf_camel_ContinueWithArgumentArg_PDU
; /* ContinueWithArgumentArg */
131 static int hf_camel_DisconnectForwardConnectionWithArgumentArg_PDU
; /* DisconnectForwardConnectionWithArgumentArg */
132 static int hf_camel_DisconnectLegArg_PDU
; /* DisconnectLegArg */
133 static int hf_camel_EntityReleasedArg_PDU
; /* EntityReleasedArg */
134 static int hf_camel_EstablishTemporaryConnectionArg_PDU
; /* EstablishTemporaryConnectionArg */
135 static int hf_camel_EventReportBCSMArg_PDU
; /* EventReportBCSMArg */
136 static int hf_camel_FurnishChargingInformationArg_PDU
; /* FurnishChargingInformationArg */
137 static int hf_camel_InitialDPArg_PDU
; /* InitialDPArg */
138 static int hf_camel_InitiateCallAttemptArg_PDU
; /* InitiateCallAttemptArg */
139 static int hf_camel_InitiateCallAttemptRes_PDU
; /* InitiateCallAttemptRes */
140 static int hf_camel_MoveLegArg_PDU
; /* MoveLegArg */
141 static int hf_camel_PlayToneArg_PDU
; /* PlayToneArg */
142 static int hf_camel_ReleaseCallArg_PDU
; /* ReleaseCallArg */
143 static int hf_camel_RequestReportBCSMEventArg_PDU
; /* RequestReportBCSMEventArg */
144 static int hf_camel_ResetTimerArg_PDU
; /* ResetTimerArg */
145 static int hf_camel_SendChargingInformationArg_PDU
; /* SendChargingInformationArg */
146 static int hf_camel_SplitLegArg_PDU
; /* SplitLegArg */
147 static int hf_camel_ApplyChargingGPRSArg_PDU
; /* ApplyChargingGPRSArg */
148 static int hf_camel_ApplyChargingReportGPRSArg_PDU
; /* ApplyChargingReportGPRSArg */
149 static int hf_camel_CancelGPRSArg_PDU
; /* CancelGPRSArg */
150 static int hf_camel_ConnectGPRSArg_PDU
; /* ConnectGPRSArg */
151 static int hf_camel_ContinueGPRSArg_PDU
; /* ContinueGPRSArg */
152 static int hf_camel_EntityReleasedGPRSArg_PDU
; /* EntityReleasedGPRSArg */
153 static int hf_camel_EventReportGPRSArg_PDU
; /* EventReportGPRSArg */
154 static int hf_camel_FurnishChargingInformationGPRSArg_PDU
; /* FurnishChargingInformationGPRSArg */
155 static int hf_camel_InitialDPGPRSArg_PDU
; /* InitialDPGPRSArg */
156 static int hf_camel_ReleaseGPRSArg_PDU
; /* ReleaseGPRSArg */
157 static int hf_camel_RequestReportGPRSEventArg_PDU
; /* RequestReportGPRSEventArg */
158 static int hf_camel_ResetTimerGPRSArg_PDU
; /* ResetTimerGPRSArg */
159 static int hf_camel_SendChargingInformationGPRSArg_PDU
; /* SendChargingInformationGPRSArg */
160 static int hf_camel_ConnectSMSArg_PDU
; /* ConnectSMSArg */
161 static int hf_camel_EventReportSMSArg_PDU
; /* EventReportSMSArg */
162 static int hf_camel_FurnishChargingInformationSMSArg_PDU
; /* FurnishChargingInformationSMSArg */
163 static int hf_camel_InitialDPSMSArg_PDU
; /* InitialDPSMSArg */
164 static int hf_camel_ReleaseSMSArg_PDU
; /* ReleaseSMSArg */
165 static int hf_camel_RequestReportSMSEventArg_PDU
; /* RequestReportSMSEventArg */
166 static int hf_camel_ResetTimerSMSArg_PDU
; /* ResetTimerSMSArg */
167 static int hf_camel_CAP_U_ABORT_REASON_PDU
; /* CAP_U_ABORT_REASON */
168 static int hf_camel_legID
; /* LegID */
169 static int hf_camel_srfConnection
; /* CallSegmentID */
170 static int hf_camel_aOCInitial
; /* CAI_GSM0224 */
171 static int hf_camel_aOCSubsequent
; /* AOCSubsequent */
172 static int hf_camel_cAI_GSM0224
; /* CAI_GSM0224 */
173 static int hf_camel_aocSubsequent_tariffSwitchInterval
; /* INTEGER_1_86400 */
174 static int hf_camel_audibleIndicatorTone
; /* BOOLEAN */
175 static int hf_camel_burstList
; /* BurstList */
176 static int hf_camel_conferenceTreatmentIndicator
; /* OCTET_STRING_SIZE_1 */
177 static int hf_camel_callCompletionTreatmentIndicator
; /* OCTET_STRING_SIZE_1 */
178 static int hf_camel_calledAddressValue
; /* Digits */
179 static int hf_camel_gapOnService
; /* GapOnService */
180 static int hf_camel_calledAddressAndService
; /* T_calledAddressAndService */
181 static int hf_camel_serviceKey
; /* ServiceKey */
182 static int hf_camel_callingAddressAndService
; /* T_callingAddressAndService */
183 static int hf_camel_callingAddressValue
; /* Digits */
184 static int hf_camel_eventTypeBCSM
; /* EventTypeBCSM */
185 static int hf_camel_monitorMode
; /* MonitorMode */
186 static int hf_camel_dpSpecificCriteria
; /* DpSpecificCriteria */
187 static int hf_camel_automaticRearm
; /* NULL */
188 static int hf_camel_cause
; /* Cause */
189 static int hf_camel_bearerCap
; /* T_bearerCap */
190 static int hf_camel_numberOfBursts
; /* INTEGER_1_3 */
191 static int hf_camel_burstInterval
; /* INTEGER_1_1200 */
192 static int hf_camel_numberOfTonesInBurst
; /* INTEGER_1_3 */
193 static int hf_camel_burstToneDuration
; /* INTEGER_1_20 */
194 static int hf_camel_toneInterval
; /* INTEGER_1_20 */
195 static int hf_camel_warningPeriod
; /* INTEGER_1_1200 */
196 static int hf_camel_bursts
; /* Burst */
197 static int hf_camel_e1
; /* INTEGER_0_8191 */
198 static int hf_camel_e2
; /* INTEGER_0_8191 */
199 static int hf_camel_e3
; /* INTEGER_0_8191 */
200 static int hf_camel_e4
; /* INTEGER_0_8191 */
201 static int hf_camel_e5
; /* INTEGER_0_8191 */
202 static int hf_camel_e6
; /* INTEGER_0_8191 */
203 static int hf_camel_e7
; /* INTEGER_0_8191 */
204 static int hf_camel_callSegmentID
; /* CallSegmentID */
205 static int hf_camel_invokeID
; /* InvokeID */
206 static int hf_camel_timeDurationCharging
; /* T_timeDurationCharging */
207 static int hf_camel_maxCallPeriodDuration
; /* INTEGER_1_864000 */
208 static int hf_camel_releaseIfdurationExceeded
; /* BOOLEAN */
209 static int hf_camel_timeDurationCharging_tariffSwitchInterval
; /* INTEGER_1_86400 */
210 static int hf_camel_audibleIndicator
; /* T_audibleIndicator */
211 static int hf_camel_extensions
; /* Extensions */
212 static int hf_camel_timeDurationChargingResult
; /* T_timeDurationChargingResult */
213 static int hf_camel_timeDurationChargingResultpartyToCharge
; /* ReceivingSideID */
214 static int hf_camel_timeInformation
; /* TimeInformation */
215 static int hf_camel_legActive
; /* BOOLEAN */
216 static int hf_camel_callLegReleasedAtTcpExpiry
; /* NULL */
217 static int hf_camel_aChChargingAddress
; /* AChChargingAddress */
218 static int hf_camel_fci_fCIBCCCAMELsequence1
; /* T_fci_fCIBCCCAMELsequence1 */
219 static int hf_camel_freeFormatData
; /* OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength */
220 static int hf_camel_fCIBCCCAMELsequence1partyToCharge
; /* SendingSideID */
221 static int hf_camel_appendFreeFormatData
; /* AppendFreeFormatData */
222 static int hf_camel_fciGPRS_fCIBCCCAMELsequence1
; /* T_fciGPRS_fCIBCCCAMELsequence1 */
223 static int hf_camel_pDPID
; /* PDPID */
224 static int hf_camel_fciSMS_fCIBCCCAMELsequence1
; /* T_fciSMS_fCIBCCCAMELsequence1 */
225 static int hf_camel_aOCBeforeAnswer
; /* AOCBeforeAnswer */
226 static int hf_camel_aOCAfterAnswer
; /* AOCSubsequent */
227 static int hf_camel_aOC_extension
; /* CAMEL_SCIBillingChargingCharacteristicsAlt */
228 static int hf_camel_aOCGPRS
; /* AOCGPRS */
229 static int hf_camel_ChangeOfPositionControlInfo_item
; /* ChangeOfLocation */
230 static int hf_camel_cellGlobalId
; /* CellGlobalIdOrServiceAreaIdFixedLength */
231 static int hf_camel_serviceAreaId
; /* CellGlobalIdOrServiceAreaIdFixedLength */
232 static int hf_camel_locationAreaId
; /* LAIFixedLength */
233 static int hf_camel_inter_SystemHandOver
; /* NULL */
234 static int hf_camel_inter_PLMNHandOver
; /* NULL */
235 static int hf_camel_inter_MSCHandOver
; /* NULL */
236 static int hf_camel_changeOfLocationAlt
; /* ChangeOfLocationAlt */
237 static int hf_camel_maxTransferredVolume
; /* INTEGER_1_4294967295 */
238 static int hf_camel_maxElapsedTime
; /* INTEGER_1_86400 */
239 static int hf_camel_transferredVolume
; /* TransferredVolume */
240 static int hf_camel_elapsedTime
; /* ElapsedTime */
241 static int hf_camel_transferredVolumeRollOver
; /* TransferredVolumeRollOver */
242 static int hf_camel_elapsedTimeRollOver
; /* ElapsedTimeRollOver */
243 static int hf_camel_minimumNbOfDigits
; /* INTEGER_1_30 */
244 static int hf_camel_maximumNbOfDigits
; /* INTEGER_1_30 */
245 static int hf_camel_endOfReplyDigit
; /* OCTET_STRING_SIZE_1_2 */
246 static int hf_camel_cancelDigit
; /* OCTET_STRING_SIZE_1_2 */
247 static int hf_camel_startDigit
; /* OCTET_STRING_SIZE_1_2 */
248 static int hf_camel_firstDigitTimeOut
; /* INTEGER_1_127 */
249 static int hf_camel_interDigitTimeOut
; /* INTEGER_1_127 */
250 static int hf_camel_errorTreatment
; /* ErrorTreatment */
251 static int hf_camel_interruptableAnnInd
; /* BOOLEAN */
252 static int hf_camel_voiceInformation
; /* BOOLEAN */
253 static int hf_camel_voiceBack
; /* BOOLEAN */
254 static int hf_camel_collectedDigits
; /* CollectedDigits */
255 static int hf_camel_basicGapCriteria
; /* BasicGapCriteria */
256 static int hf_camel_scfID
; /* ScfID */
257 static int hf_camel_DestinationRoutingAddress_item
; /* CalledPartyNumber */
258 static int hf_camel_applicationTimer
; /* ApplicationTimer */
259 static int hf_camel_midCallControlInfo
; /* MidCallControlInfo */
260 static int hf_camel_dpSpecificCriteriaAlt
; /* DpSpecificCriteriaAlt */
261 static int hf_camel_changeOfPositionControlInfo
; /* ChangeOfPositionControlInfo */
262 static int hf_camel_numberOfDigits
; /* NumberOfDigits */
263 static int hf_camel_interDigitTimeout
; /* INTEGER_1_127 */
264 static int hf_camel_oServiceChangeSpecificInfo
; /* T_oServiceChangeSpecificInfo */
265 static int hf_camel_ext_basicServiceCode
; /* Ext_BasicServiceCode */
266 static int hf_camel_initiatorOfServiceChange
; /* InitiatorOfServiceChange */
267 static int hf_camel_natureOfServiceChange
; /* NatureOfServiceChange */
268 static int hf_camel_tServiceChangeSpecificInfo
; /* T_tServiceChangeSpecificInfo */
269 static int hf_camel_collectedInfoSpecificInfo
; /* T_collectedInfoSpecificInfo */
270 static int hf_camel_calledPartyNumber
; /* CalledPartyNumber */
271 static int hf_camel_timeGPRSIfNoTariffSwitch
; /* INTEGER_0_86400 */
272 static int hf_camel_timeGPRSIfTariffSwitch
; /* T_timeGPRSIfTariffSwitch */
273 static int hf_camel_timeGPRSSinceLastTariffSwitch
; /* INTEGER_0_86400 */
274 static int hf_camel_timeGPRSTariffSwitchInterval
; /* INTEGER_0_86400 */
275 static int hf_camel_rO_TimeGPRSIfNoTariffSwitch
; /* INTEGER_0_255 */
276 static int hf_camel_rO_TimeGPRSIfTariffSwitch
; /* T_rO_TimeGPRSIfTariffSwitch */
277 static int hf_camel_rO_TimeGPRSSinceLastTariffSwitch
; /* INTEGER_0_255 */
278 static int hf_camel_rO_TimeGPRSTariffSwitchInterval
; /* INTEGER_0_255 */
279 static int hf_camel_pDPTypeOrganization
; /* T_pDPTypeOrganization */
280 static int hf_camel_pDPTypeNumber
; /* T_pDPTypeNumber */
281 static int hf_camel_pDPAddress
; /* T_pDPAddress */
282 static int hf_camel_routeSelectFailureSpecificInfo
; /* T_routeSelectFailureSpecificInfo */
283 static int hf_camel_routeSelectfailureCause
; /* Cause */
284 static int hf_camel_oCalledPartyBusySpecificInfo
; /* T_oCalledPartyBusySpecificInfo */
285 static int hf_camel_busyCause
; /* Cause */
286 static int hf_camel_oNoAnswerSpecificInfo
; /* T_oNoAnswerSpecificInfo */
287 static int hf_camel_oAnswerSpecificInfo
; /* T_oAnswerSpecificInfo */
288 static int hf_camel_destinationAddress
; /* CalledPartyNumber */
289 static int hf_camel_or_Call
; /* NULL */
290 static int hf_camel_forwardedCall
; /* NULL */
291 static int hf_camel_chargeIndicator
; /* ChargeIndicator */
292 static int hf_camel_ext_basicServiceCode2
; /* Ext_BasicServiceCode */
293 static int hf_camel_oMidCallSpecificInfo
; /* T_oMidCallSpecificInfo */
294 static int hf_camel_omidCallEvents
; /* T_omidCallEvents */
295 static int hf_camel_dTMFDigitsCompleted
; /* Digits */
296 static int hf_camel_dTMFDigitsTimeOut
; /* Digits */
297 static int hf_camel_oDisconnectSpecificInfo
; /* T_oDisconnectSpecificInfo */
298 static int hf_camel_releaseCause
; /* Cause */
299 static int hf_camel_tBusySpecificInfo
; /* T_tBusySpecificInfo */
300 static int hf_camel_callForwarded
; /* NULL */
301 static int hf_camel_routeNotPermitted
; /* NULL */
302 static int hf_camel_forwardingDestinationNumber
; /* CalledPartyNumber */
303 static int hf_camel_tNoAnswerSpecificInfo
; /* T_tNoAnswerSpecificInfo */
304 static int hf_camel_tAnswerSpecificInfo
; /* T_tAnswerSpecificInfo */
305 static int hf_camel_tMidCallSpecificInfo
; /* T_tMidCallSpecificInfo */
306 static int hf_camel_tmidCallEvents
; /* T_tmidCallEvents */
307 static int hf_camel_tDisconnectSpecificInfo
; /* T_tDisconnectSpecificInfo */
308 static int hf_camel_oTermSeizedSpecificInfo
; /* T_oTermSeizedSpecificInfo */
309 static int hf_camel_locationInformation
; /* LocationInformation */
310 static int hf_camel_callAcceptedSpecificInfo
; /* T_callAcceptedSpecificInfo */
311 static int hf_camel_oAbandonSpecificInfo
; /* T_oAbandonSpecificInfo */
312 static int hf_camel_oChangeOfPositionSpecificInfo
; /* T_oChangeOfPositionSpecificInfo */
313 static int hf_camel_metDPCriteriaList
; /* MetDPCriteriaList */
314 static int hf_camel_tChangeOfPositionSpecificInfo
; /* T_tChangeOfPositionSpecificInfo */
315 static int hf_camel_dpSpecificInfoAlt
; /* DpSpecificInfoAlt */
316 static int hf_camel_o_smsFailureSpecificInfo
; /* T_o_smsFailureSpecificInfo */
317 static int hf_camel_mo_smsfailureCause
; /* MO_SMSCause */
318 static int hf_camel_o_smsSubmissionSpecificInfo
; /* T_o_smsSubmissionSpecificInfo */
319 static int hf_camel_t_smsFailureSpecificInfo
; /* T_t_smsFailureSpecificInfo */
320 static int hf_camel_t_smsfailureCause
; /* MT_SMSCause */
321 static int hf_camel_t_smsDeliverySpecificInfo
; /* T_t_smsDeliverySpecificInfo */
322 static int hf_camel_Extensions_item
; /* ExtensionField */
323 static int hf_camel_type
; /* Code */
324 static int hf_camel_criticality
; /* CriticalityType */
325 static int hf_camel_value
; /* T_value */
326 static int hf_camel_callDiversionTreatmentIndicator
; /* OCTET_STRING_SIZE_1 */
327 static int hf_camel_callingPartyRestrictionIndicator
; /* OCTET_STRING_SIZE_1 */
328 static int hf_camel_compoundGapCriteria
; /* CompoundCriteria */
329 static int hf_camel_gapIndicatorsDuration
; /* Duration */
330 static int hf_camel_gapInterval
; /* Interval */
331 static int hf_camel_informationToSend
; /* InformationToSend */
332 static int hf_camel_GenericNumbers_item
; /* GenericNumber */
333 static int hf_camel_short_QoS_format
; /* QoS_Subscribed */
334 static int hf_camel_long_QoS_format
; /* Ext_QoS_Subscribed */
335 static int hf_camel_supplement_to_long_QoS_format
; /* Ext2_QoS_Subscribed */
336 static int hf_camel_additionalSupplement
; /* Ext3_QoS_Subscribed */
337 static int hf_camel_gPRSEventType
; /* GPRSEventType */
338 static int hf_camel_attachChangeOfPositionSpecificInformation
; /* T_attachChangeOfPositionSpecificInformation */
339 static int hf_camel_locationInformationGPRS
; /* LocationInformationGPRS */
340 static int hf_camel_pdp_ContextchangeOfPositionSpecificInformation
; /* T_pdp_ContextchangeOfPositionSpecificInformation */
341 static int hf_camel_accessPointName
; /* AccessPointName */
342 static int hf_camel_chargingID
; /* GPRSChargingID */
343 static int hf_camel_endUserAddress
; /* EndUserAddress */
344 static int hf_camel_qualityOfService
; /* QualityOfService */
345 static int hf_camel_timeAndTimeZone
; /* TimeAndTimezone */
346 static int hf_camel_gGSNAddress
; /* GSN_Address */
347 static int hf_camel_detachSpecificInformation
; /* T_detachSpecificInformation */
348 static int hf_camel_initiatingEntity
; /* InitiatingEntity */
349 static int hf_camel_routeingAreaUpdate
; /* NULL */
350 static int hf_camel_disconnectSpecificInformation
; /* T_disconnectSpecificInformation */
351 static int hf_camel_pDPContextEstablishmentSpecificInformation
; /* T_pDPContextEstablishmentSpecificInformation */
352 static int hf_camel_pDPInitiationType
; /* PDPInitiationType */
353 static int hf_camel_secondaryPDP_context
; /* NULL */
354 static int hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation
; /* T_pDPContextEstablishmentAcknowledgementSpecificInformation */
355 static int hf_camel_messageID
; /* MessageID */
356 static int hf_camel_numberOfRepetitions
; /* INTEGER_1_127 */
357 static int hf_camel_inbandInfoDuration
; /* INTEGER_0_32767 */
358 static int hf_camel_interval
; /* INTEGER_0_32767 */
359 static int hf_camel_inbandInfo
; /* InbandInfo */
360 static int hf_camel_tone
; /* Tone */
361 static int hf_camel_cellGlobalIdOrServiceAreaIdOrLAI
; /* T_cellGlobalIdOrServiceAreaIdOrLAI */
362 static int hf_camel_routeingAreaIdentity
; /* RAIdentity */
363 static int hf_camel_geographicalInformation
; /* GeographicalInformation */
364 static int hf_camel_sgsn_Number
; /* ISDN_AddressString */
365 static int hf_camel_selectedLSAIdentity
; /* LSAIdentity */
366 static int hf_camel_extensionContainer
; /* ExtensionContainer */
367 static int hf_camel_sai_Present
; /* NULL */
368 static int hf_camel_userCSGInformation
; /* UserCSGInformation */
369 static int hf_camel_elementaryMessageID
; /* Integer4 */
370 static int hf_camel_text
; /* T_text */
371 static int hf_camel_messageContent
; /* IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength */
372 static int hf_camel_attributes
; /* OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength */
373 static int hf_camel_elementaryMessageIDs
; /* SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4 */
374 static int hf_camel_elementaryMessageIDs_item
; /* Integer4 */
375 static int hf_camel_variableMessage
; /* T_variableMessage */
376 static int hf_camel_variableParts
; /* SEQUENCE_SIZE_1_5_OF_VariablePart */
377 static int hf_camel_variableParts_item
; /* VariablePart */
378 static int hf_camel_MetDPCriteriaList_item
; /* MetDPCriterion */
379 static int hf_camel_enteringCellGlobalId
; /* CellGlobalIdOrServiceAreaIdFixedLength */
380 static int hf_camel_leavingCellGlobalId
; /* CellGlobalIdOrServiceAreaIdFixedLength */
381 static int hf_camel_enteringServiceAreaId
; /* CellGlobalIdOrServiceAreaIdFixedLength */
382 static int hf_camel_leavingServiceAreaId
; /* CellGlobalIdOrServiceAreaIdFixedLength */
383 static int hf_camel_enteringLocationAreaId
; /* LAIFixedLength */
384 static int hf_camel_leavingLocationAreaId
; /* LAIFixedLength */
385 static int hf_camel_inter_SystemHandOverToUMTS
; /* NULL */
386 static int hf_camel_inter_SystemHandOverToGSM
; /* NULL */
387 static int hf_camel_metDPCriterionAlt
; /* MetDPCriterionAlt */
388 static int hf_camel_minimumNumberOfDigits
; /* INTEGER_1_30 */
389 static int hf_camel_maximumNumberOfDigits
; /* INTEGER_1_30 */
390 static int hf_camel_requested_QoS
; /* GPRS_QoS */
391 static int hf_camel_subscribed_QoS
; /* GPRS_QoS */
392 static int hf_camel_negotiated_QoS
; /* GPRS_QoS */
393 static int hf_camel_requested_QoS_Extension
; /* GPRS_QoS_Extension */
394 static int hf_camel_subscribed_QoS_Extension
; /* GPRS_QoS_Extension */
395 static int hf_camel_negotiated_QoS_Extension
; /* GPRS_QoS_Extension */
396 static int hf_camel_receivingSideID
; /* LegType */
397 static int hf_camel_RequestedInformationList_item
; /* RequestedInformation */
398 static int hf_camel_RequestedInformationTypeList_item
; /* RequestedInformationType */
399 static int hf_camel_requestedInformationType
; /* RequestedInformationType */
400 static int hf_camel_requestedInformationValue
; /* RequestedInformationValue */
401 static int hf_camel_callAttemptElapsedTimeValue
; /* INTEGER_0_255 */
402 static int hf_camel_callStopTimeValue
; /* DateAndTime */
403 static int hf_camel_callConnectedElapsedTimeValue
; /* Integer4 */
404 static int hf_camel_releaseCauseValue
; /* Cause */
405 static int hf_camel_sendingSideID
; /* LegType */
406 static int hf_camel_forwardServiceInteractionInd
; /* ForwardServiceInteractionInd */
407 static int hf_camel_backwardServiceInteractionInd
; /* BackwardServiceInteractionInd */
408 static int hf_camel_bothwayThroughConnectionInd
; /* BothwayThroughConnectionInd */
409 static int hf_camel_connectedNumberTreatmentInd
; /* ConnectedNumberTreatmentInd */
410 static int hf_camel_nonCUGCall
; /* NULL */
411 static int hf_camel_holdTreatmentIndicator
; /* OCTET_STRING_SIZE_1 */
412 static int hf_camel_cwTreatmentIndicator
; /* OCTET_STRING_SIZE_1 */
413 static int hf_camel_ectTreatmentIndicator
; /* OCTET_STRING_SIZE_1 */
414 static int hf_camel_eventTypeSMS
; /* EventTypeSMS */
415 static int hf_camel_timeSinceTariffSwitch
; /* INTEGER_0_864000 */
416 static int hf_camel_timeIfTariffSwitch_tariffSwitchInterval
; /* INTEGER_1_864000 */
417 static int hf_camel_timeIfNoTariffSwitch
; /* TimeIfNoTariffSwitch */
418 static int hf_camel_timeIfTariffSwitch
; /* TimeIfTariffSwitch */
419 static int hf_camel_toneID
; /* Integer4 */
420 static int hf_camel_toneDuration
; /* Integer4 */
421 static int hf_camel_volumeIfNoTariffSwitch
; /* INTEGER_0_4294967295 */
422 static int hf_camel_volumeIfTariffSwitch
; /* T_volumeIfTariffSwitch */
423 static int hf_camel_volumeSinceLastTariffSwitch
; /* INTEGER_0_4294967295 */
424 static int hf_camel_volumeTariffSwitchInterval
; /* INTEGER_0_4294967295 */
425 static int hf_camel_rO_VolumeIfNoTariffSwitch
; /* INTEGER_0_255 */
426 static int hf_camel_rO_VolumeIfTariffSwitch
; /* T_rO_VolumeIfTariffSwitch */
427 static int hf_camel_rO_VolumeSinceLastTariffSwitch
; /* INTEGER_0_255 */
428 static int hf_camel_rO_VolumeTariffSwitchInterval
; /* INTEGER_0_255 */
429 static int hf_camel_integer
; /* Integer4 */
430 static int hf_camel_number
; /* Digits */
431 static int hf_camel_time
; /* OCTET_STRING_SIZE_2 */
432 static int hf_camel_date
; /* OCTET_STRING_SIZE_4 */
433 static int hf_camel_price
; /* OCTET_STRING_SIZE_4 */
434 static int hf_camel_par_cancelFailedProblem
; /* T_par_cancelFailedProblem */
435 static int hf_camel_operation
; /* InvokeID */
436 static int hf_camel_destinationReference
; /* Integer4 */
437 static int hf_camel_originationReference
; /* Integer4 */
438 static int hf_camel_disconnectFromIPForbidden
; /* BOOLEAN */
439 static int hf_camel_requestAnnouncementCompleteNotification
; /* BOOLEAN */
440 static int hf_camel_requestAnnouncementStartedNotification
; /* BOOLEAN */
441 static int hf_camel_collectedInfo
; /* CollectedInfo */
442 static int hf_camel_digitsResponse
; /* Digits */
443 static int hf_camel_allAnnouncementsComplete
; /* NULL */
444 static int hf_camel_firstAnnouncementStarted
; /* NULL */
445 static int hf_camel_aChBillingChargingCharacteristics
; /* AChBillingChargingCharacteristics */
446 static int hf_camel_partyToCharge
; /* SendingSideID */
447 static int hf_camel_iTXcharging
; /* BOOLEAN */
448 static int hf_camel_correlationID
; /* CorrelationID */
449 static int hf_camel_iPSSPCapabilities
; /* IPSSPCapabilities */
450 static int hf_camel_gapCriteria
; /* GapCriteria */
451 static int hf_camel_gapIndicators
; /* GapIndicators */
452 static int hf_camel_controlType
; /* ControlType */
453 static int hf_camel_gapTreatment
; /* GapTreatment */
454 static int hf_camel_requestedInformationList
; /* RequestedInformationList */
455 static int hf_camel_legID_01
; /* ReceivingSideID */
456 static int hf_camel_requestedInformationTypeList
; /* RequestedInformationTypeList */
457 static int hf_camel_legID_02
; /* SendingSideID */
458 static int hf_camel_allRequests
; /* NULL */
459 static int hf_camel_callSegmentToCancel
; /* CallSegmentToCancel */
460 static int hf_camel_destinationRoutingAddress
; /* DestinationRoutingAddress */
461 static int hf_camel_alertingPattern
; /* AlertingPattern */
462 static int hf_camel_originalCalledPartyID
; /* OriginalCalledPartyID */
463 static int hf_camel_carrier
; /* Carrier */
464 static int hf_camel_callingPartysCategory
; /* CallingPartysCategory */
465 static int hf_camel_redirectingPartyID
; /* RedirectingPartyID */
466 static int hf_camel_redirectionInformation
; /* RedirectionInformation */
467 static int hf_camel_genericNumbers
; /* GenericNumbers */
468 static int hf_camel_serviceInteractionIndicatorsTwo
; /* ServiceInteractionIndicatorsTwo */
469 static int hf_camel_chargeNumber
; /* ChargeNumber */
470 static int hf_camel_legToBeConnected
; /* LegID */
471 static int hf_camel_cug_Interlock
; /* CUG_Interlock */
472 static int hf_camel_cug_OutgoingAccess
; /* NULL */
473 static int hf_camel_suppressionOfAnnouncement
; /* SuppressionOfAnnouncement */
474 static int hf_camel_oCSIApplicable
; /* OCSIApplicable */
475 static int hf_camel_naOliInfo
; /* NAOliInfo */
476 static int hf_camel_bor_InterrogationRequested
; /* NULL */
477 static int hf_camel_suppress_N_CSI
; /* NULL */
478 static int hf_camel_resourceAddress
; /* T_resourceAddress */
479 static int hf_camel_ipRoutingAddress
; /* IPRoutingAddress */
480 static int hf_camel_none
; /* NULL */
481 static int hf_camel_suppress_O_CSI
; /* NULL */
482 static int hf_camel_continueWithArgumentArgExtension
; /* ContinueWithArgumentArgExtension */
483 static int hf_camel_suppress_D_CSI
; /* NULL */
484 static int hf_camel_suppressOutgoingCallBarring
; /* NULL */
485 static int hf_camel_legOrCallSegment
; /* LegOrCallSegment */
486 static int hf_camel_legToBeReleased
; /* LegID */
487 static int hf_camel_callSegmentFailure
; /* CallSegmentFailure */
488 static int hf_camel_bCSM_Failure
; /* BCSM_Failure */
489 static int hf_camel_assistingSSPIPRoutingAddress
; /* AssistingSSPIPRoutingAddress */
490 static int hf_camel_callingPartyNumber
; /* CallingPartyNumber */
491 static int hf_camel_eventSpecificInformationBCSM
; /* EventSpecificInformationBCSM */
492 static int hf_camel_miscCallInfo
; /* MiscCallInfo */
493 static int hf_camel_cGEncountered
; /* CGEncountered */
494 static int hf_camel_locationNumber
; /* LocationNumber */
495 static int hf_camel_highLayerCompatibility
; /* HighLayerCompatibility */
496 static int hf_camel_additionalCallingPartyNumber
; /* AdditionalCallingPartyNumber */
497 static int hf_camel_bearerCapability
; /* BearerCapability */
498 static int hf_camel_cug_Index
; /* CUG_Index */
499 static int hf_camel_iMSI
; /* IMSI */
500 static int hf_camel_subscriberState
; /* SubscriberState */
501 static int hf_camel_callReferenceNumber
; /* CallReferenceNumber */
502 static int hf_camel_mscAddress
; /* ISDN_AddressString */
503 static int hf_camel_calledPartyBCDNumber
; /* CalledPartyBCDNumber */
504 static int hf_camel_timeAndTimezone
; /* TimeAndTimezone */
505 static int hf_camel_callForwardingSS_Pending
; /* NULL */
506 static int hf_camel_initialDPArgExtension
; /* InitialDPArgExtension */
507 static int hf_camel_gmscAddress
; /* ISDN_AddressString */
508 static int hf_camel_ms_Classmark2
; /* MS_Classmark2 */
509 static int hf_camel_iMEI
; /* IMEI */
510 static int hf_camel_supportedCamelPhases
; /* SupportedCamelPhases */
511 static int hf_camel_offeredCamel4Functionalities
; /* OfferedCamel4Functionalities */
512 static int hf_camel_bearerCapability2
; /* BearerCapability */
513 static int hf_camel_highLayerCompatibility2
; /* HighLayerCompatibility */
514 static int hf_camel_lowLayerCompatibility
; /* LowLayerCompatibility */
515 static int hf_camel_lowLayerCompatibility2
; /* LowLayerCompatibility */
516 static int hf_camel_enhancedDialledServicesAllowed
; /* NULL */
517 static int hf_camel_uu_Data
; /* UU_Data */
518 static int hf_camel_collectInformationAllowed
; /* NULL */
519 static int hf_camel_releaseCallArgExtensionAllowed
; /* NULL */
520 static int hf_camel_legToBeCreated
; /* LegID */
521 static int hf_camel_newCallSegment
; /* CallSegmentID */
522 static int hf_camel_gsmSCFAddress
; /* ISDN_AddressString */
523 static int hf_camel_suppress_T_CSI
; /* NULL */
524 static int hf_camel_legIDToMove
; /* LegID */
525 static int hf_camel_allCallSegments
; /* AllCallSegments */
526 static int hf_camel_allCallSegmentsWithExtension
; /* AllCallSegmentsWithExtension */
527 static int hf_camel_bcsmEvents
; /* SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent */
528 static int hf_camel_bcsmEvents_item
; /* BCSMEvent */
529 static int hf_camel_timerID
; /* TimerID */
530 static int hf_camel_timervalue
; /* TimerValue */
531 static int hf_camel_sCIBillingChargingCharacteristics
; /* SCIBillingChargingCharacteristics */
532 static int hf_camel_legToBeSplit
; /* LegID */
533 static int hf_camel_chargingCharacteristics
; /* ChargingCharacteristics */
534 static int hf_camel_applyChargingGPRS_tariffSwitchInterval
; /* INTEGER_1_86400 */
535 static int hf_camel_chargingResult
; /* ChargingResult */
536 static int hf_camel_active
; /* BOOLEAN */
537 static int hf_camel_chargingRollOver
; /* ChargingRollOver */
538 static int hf_camel_pdpID
; /* PDPID */
539 static int hf_camel_gPRSCause
; /* GPRSCause */
540 static int hf_camel_miscGPRSInfo
; /* MiscCallInfo */
541 static int hf_camel_gPRSEventSpecificInformation
; /* GPRSEventSpecificInformation */
542 static int hf_camel_mSISDN
; /* ISDN_AddressString */
543 static int hf_camel_gPRSMSClass
; /* GPRSMSClass */
544 static int hf_camel_sGSNCapabilities
; /* SGSNCapabilities */
545 static int hf_camel_gprsCause
; /* GPRSCause */
546 static int hf_camel_gPRSEvent
; /* SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent */
547 static int hf_camel_gPRSEvent_item
; /* GPRSEvent */
548 static int hf_camel_sCIGPRSBillingChargingCharacteristics
; /* SCIGPRSBillingChargingCharacteristics */
549 static int hf_camel_callingPartysNumber
; /* SMS_AddressString */
550 static int hf_camel_destinationSubscriberNumber
; /* CalledPartyBCDNumber */
551 static int hf_camel_sMSCAddress
; /* ISDN_AddressString */
552 static int hf_camel_eventSpecificInformationSMS
; /* EventSpecificInformationSMS */
553 static int hf_camel_callingPartyNumber_01
; /* SMS_AddressString */
554 static int hf_camel_locationInformationMSC
; /* LocationInformation */
555 static int hf_camel_tPShortMessageSpecificInfo
; /* TPShortMessageSpecificInfo */
556 static int hf_camel_tPProtocolIdentifier
; /* TPProtocolIdentifier */
557 static int hf_camel_tPDataCodingScheme
; /* TPDataCodingScheme */
558 static int hf_camel_tPValidityPeriod
; /* TPValidityPeriod */
559 static int hf_camel_smsReferenceNumber
; /* CallReferenceNumber */
560 static int hf_camel_calledPartyNumber_01
; /* ISDN_AddressString */
561 static int hf_camel_sMSEvents
; /* SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent */
562 static int hf_camel_sMSEvents_item
; /* SMSEvent */
563 static int hf_camel_extensions_01
; /* SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField */
564 static int hf_camel_extensions_item
; /* ExtensionField */
565 static int hf_camel_na_info
; /* NA_Info */
566 static int hf_camel_naCarrierInformation
; /* NACarrierInformation */
567 static int hf_camel_naCarrierId
; /* NAEA_CIC */
568 static int hf_camel_naCICSelectionType
; /* NACarrierSelectionInfo */
569 static int hf_camel_naChargeNumber
; /* NAChargeNumber */
570 static int hf_camel_timeDurationCharging_01
; /* T_timeDurationCharging_01 */
571 static int hf_camel_releaseIfdurationExceeded_01
; /* ReleaseIfDurationExceeded */
572 static int hf_camel_tariffSwitchInterval
; /* INTEGER_1_86400 */
573 static int hf_camel_tone_01
; /* BOOLEAN */
574 static int hf_camel_local
; /* T_local */
575 static int hf_camel_global
; /* T_global */
576 static int hf_camel_invoke
; /* Invoke */
577 static int hf_camel_returnResult
; /* ReturnResult */
578 static int hf_camel_returnError
; /* ReturnError */
579 static int hf_camel_reject
; /* Reject */
580 static int hf_camel_invokeId
; /* InvokeId */
581 static int hf_camel_linkedId
; /* T_linkedId */
582 static int hf_camel_linkedIdPresent
; /* T_linkedIdPresent */
583 static int hf_camel_absent
; /* NULL */
584 static int hf_camel_opcode
; /* Code */
585 static int hf_camel_argument
; /* T_argument */
586 static int hf_camel_result
; /* T_result */
587 static int hf_camel_resultArgument
; /* ResultArgument */
588 static int hf_camel_errcode
; /* Code */
589 static int hf_camel_parameter
; /* T_parameter */
590 static int hf_camel_problem
; /* T_problem */
591 static int hf_camel_general
; /* GeneralProblem */
592 static int hf_camel_invokeProblem
; /* InvokeProblem */
593 static int hf_camel_problemReturnResult
; /* ReturnResultProblem */
594 static int hf_camel_returnErrorProblem
; /* ReturnErrorProblem */
595 static int hf_camel_present
; /* INTEGER */
596 static int hf_camel_InvokeId_present
; /* InvokeId_present */
598 static struct camelsrt_info_t
* gp_camelsrt_info
;
600 /* Forward declarations */
601 static int dissect_invokeData(proto_tree
*tree
, tvbuff_t
*tvb
, int offset
,asn1_ctx_t
*actx
);
602 static int dissect_returnResultData(proto_tree
*tree
, tvbuff_t
*tvb
, int offset
,asn1_ctx_t
*actx
);
603 static int dissect_returnErrorData(proto_tree
*tree
, tvbuff_t
*tvb
, int offset
,asn1_ctx_t
*actx
);
604 static int dissect_camel_CAMEL_AChBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
605 static int dissect_camel_CAMEL_AChBillingChargingCharacteristicsV2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
606 static int dissect_camel_CAMEL_CallResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
607 static int dissect_camel_EstablishTemporaryConnectionArgV2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
608 static int dissect_camel_SpecializedResourceReportArgV23(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
610 /* XXX - can we get rid of these and always do the SRT work? */
611 static bool gcamel_PersistentSRT
=false;
612 static bool gcamel_DisplaySRT
=false;
613 bool gcamel_StatSRT
=false;
615 /* Initialize the subtree pointers */
616 static int ett_camel
;
617 static int ett_camelisup_parameter
;
618 static int ett_camel_AccessPointName
;
619 static int ett_camel_pdptypenumber
;
620 static int ett_camel_cause
;
621 static int ett_camel_RPcause
;
622 static int ett_camel_stat
;
623 static int ett_camel_calledpartybcdnumber
;
624 static int ett_camel_callingpartynumber
;
625 static int ett_camel_originalcalledpartyid
;
626 static int ett_camel_redirectingpartyid
;
627 static int ett_camel_locationnumber
;
628 static int ett_camel_additionalcallingpartynumber
;
629 static int ett_camel_calledAddressValue
;
630 static int ett_camel_callingAddressValue
;
631 static int ett_camel_assistingSSPIPRoutingAddress
;
632 static int ett_camel_correlationID
;
633 static int ett_camel_dTMFDigitsCompleted
;
634 static int ett_camel_dTMFDigitsTimeOut
;
635 static int ett_camel_number
;
636 static int ett_camel_digitsResponse
;
637 static int ett_camel_timeandtimezone
;
639 static int ett_camel_AChChargingAddress
;
640 static int ett_camel_AOCBeforeAnswer
;
641 static int ett_camel_AOCGPRS
;
642 static int ett_camel_AOCSubsequent
;
643 static int ett_camel_AudibleIndicator
;
644 static int ett_camel_BackwardServiceInteractionInd
;
645 static int ett_camel_BasicGapCriteria
;
646 static int ett_camel_T_calledAddressAndService
;
647 static int ett_camel_T_callingAddressAndService
;
648 static int ett_camel_BCSMEvent
;
649 static int ett_camel_BCSM_Failure
;
650 static int ett_camel_BearerCapability
;
651 static int ett_camel_Burst
;
652 static int ett_camel_BurstList
;
653 static int ett_camel_CAI_GSM0224
;
654 static int ett_camel_CallSegmentFailure
;
655 static int ett_camel_CallSegmentToCancel
;
656 static int ett_camel_CAMEL_AChBillingChargingCharacteristics
;
657 static int ett_camel_T_timeDurationCharging
;
658 static int ett_camel_CAMEL_CallResult
;
659 static int ett_camel_T_timeDurationChargingResult
;
660 static int ett_camel_CAMEL_FCIBillingChargingCharacteristics
;
661 static int ett_camel_T_fci_fCIBCCCAMELsequence1
;
662 static int ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
;
663 static int ett_camel_T_fciGPRS_fCIBCCCAMELsequence1
;
664 static int ett_camel_CAMEL_FCISMSBillingChargingCharacteristics
;
665 static int ett_camel_T_fciSMS_fCIBCCCAMELsequence1
;
666 static int ett_camel_CAMEL_SCIBillingChargingCharacteristics
;
667 static int ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt
;
668 static int ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
;
669 static int ett_camel_ChangeOfPositionControlInfo
;
670 static int ett_camel_ChangeOfLocation
;
671 static int ett_camel_ChangeOfLocationAlt
;
672 static int ett_camel_ChargingCharacteristics
;
673 static int ett_camel_ChargingResult
;
674 static int ett_camel_ChargingRollOver
;
675 static int ett_camel_CollectedDigits
;
676 static int ett_camel_CollectedInfo
;
677 static int ett_camel_CompoundCriteria
;
678 static int ett_camel_DestinationRoutingAddress
;
679 static int ett_camel_DpSpecificCriteria
;
680 static int ett_camel_DpSpecificCriteriaAlt
;
681 static int ett_camel_DpSpecificInfoAlt
;
682 static int ett_camel_T_oServiceChangeSpecificInfo
;
683 static int ett_camel_T_tServiceChangeSpecificInfo
;
684 static int ett_camel_T_collectedInfoSpecificInfo
;
685 static int ett_camel_ElapsedTime
;
686 static int ett_camel_T_timeGPRSIfTariffSwitch
;
687 static int ett_camel_ElapsedTimeRollOver
;
688 static int ett_camel_T_rO_TimeGPRSIfTariffSwitch
;
689 static int ett_camel_EndUserAddress
;
690 static int ett_camel_EventSpecificInformationBCSM
;
691 static int ett_camel_T_routeSelectFailureSpecificInfo
;
692 static int ett_camel_T_oCalledPartyBusySpecificInfo
;
693 static int ett_camel_T_oNoAnswerSpecificInfo
;
694 static int ett_camel_T_oAnswerSpecificInfo
;
695 static int ett_camel_T_oMidCallSpecificInfo
;
696 static int ett_camel_T_omidCallEvents
;
697 static int ett_camel_T_oDisconnectSpecificInfo
;
698 static int ett_camel_T_tBusySpecificInfo
;
699 static int ett_camel_T_tNoAnswerSpecificInfo
;
700 static int ett_camel_T_tAnswerSpecificInfo
;
701 static int ett_camel_T_tMidCallSpecificInfo
;
702 static int ett_camel_T_tmidCallEvents
;
703 static int ett_camel_T_tDisconnectSpecificInfo
;
704 static int ett_camel_T_oTermSeizedSpecificInfo
;
705 static int ett_camel_T_callAcceptedSpecificInfo
;
706 static int ett_camel_T_oAbandonSpecificInfo
;
707 static int ett_camel_T_oChangeOfPositionSpecificInfo
;
708 static int ett_camel_T_tChangeOfPositionSpecificInfo
;
709 static int ett_camel_EventSpecificInformationSMS
;
710 static int ett_camel_T_o_smsFailureSpecificInfo
;
711 static int ett_camel_T_o_smsSubmissionSpecificInfo
;
712 static int ett_camel_T_t_smsFailureSpecificInfo
;
713 static int ett_camel_T_t_smsDeliverySpecificInfo
;
714 static int ett_camel_Extensions
;
715 static int ett_camel_ExtensionField
;
716 static int ett_camel_ForwardServiceInteractionInd
;
717 static int ett_camel_GapCriteria
;
718 static int ett_camel_GapIndicators
;
719 static int ett_camel_GapOnService
;
720 static int ett_camel_GapTreatment
;
721 static int ett_camel_GenericNumbers
;
722 static int ett_camel_GPRS_QoS
;
723 static int ett_camel_GPRS_QoS_Extension
;
724 static int ett_camel_GPRSEvent
;
725 static int ett_camel_GPRSEventSpecificInformation
;
726 static int ett_camel_T_attachChangeOfPositionSpecificInformation
;
727 static int ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation
;
728 static int ett_camel_T_detachSpecificInformation
;
729 static int ett_camel_T_disconnectSpecificInformation
;
730 static int ett_camel_T_pDPContextEstablishmentSpecificInformation
;
731 static int ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation
;
732 static int ett_camel_InbandInfo
;
733 static int ett_camel_InformationToSend
;
734 static int ett_camel_LegOrCallSegment
;
735 static int ett_camel_LocationInformationGPRS
;
736 static int ett_camel_MessageID
;
737 static int ett_camel_T_text
;
738 static int ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4
;
739 static int ett_camel_T_variableMessage
;
740 static int ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart
;
741 static int ett_camel_MetDPCriteriaList
;
742 static int ett_camel_MetDPCriterion
;
743 static int ett_camel_MetDPCriterionAlt
;
744 static int ett_camel_MidCallControlInfo
;
745 static int ett_camel_QualityOfService
;
746 static int ett_camel_ReceivingSideID
;
747 static int ett_camel_RequestedInformationList
;
748 static int ett_camel_RequestedInformationTypeList
;
749 static int ett_camel_RequestedInformation
;
750 static int ett_camel_RequestedInformationValue
;
751 static int ett_camel_SendingSideID
;
752 static int ett_camel_ServiceInteractionIndicatorsTwo
;
753 static int ett_camel_SMSEvent
;
754 static int ett_camel_TimeIfTariffSwitch
;
755 static int ett_camel_TimeInformation
;
756 static int ett_camel_Tone
;
757 static int ett_camel_TransferredVolume
;
758 static int ett_camel_T_volumeIfTariffSwitch
;
759 static int ett_camel_TransferredVolumeRollOver
;
760 static int ett_camel_T_rO_VolumeIfTariffSwitch
;
761 static int ett_camel_VariablePart
;
762 static int ett_camel_PAR_cancelFailed
;
763 static int ett_camel_CAP_GPRS_ReferenceNumber
;
764 static int ett_camel_PlayAnnouncementArg
;
765 static int ett_camel_PromptAndCollectUserInformationArg
;
766 static int ett_camel_ReceivedInformationArg
;
767 static int ett_camel_SpecializedResourceReportArg
;
768 static int ett_camel_ApplyChargingArg
;
769 static int ett_camel_AssistRequestInstructionsArg
;
770 static int ett_camel_CallGapArg
;
771 static int ett_camel_CallInformationReportArg
;
772 static int ett_camel_CallInformationRequestArg
;
773 static int ett_camel_CancelArg
;
774 static int ett_camel_CollectInformationArg
;
775 static int ett_camel_ConnectArg
;
776 static int ett_camel_ConnectToResourceArg
;
777 static int ett_camel_T_resourceAddress
;
778 static int ett_camel_ContinueWithArgumentArg
;
779 static int ett_camel_ContinueWithArgumentArgExtension
;
780 static int ett_camel_DisconnectForwardConnectionWithArgumentArg
;
781 static int ett_camel_DisconnectLegArg
;
782 static int ett_camel_EntityReleasedArg
;
783 static int ett_camel_EstablishTemporaryConnectionArg
;
784 static int ett_camel_EventReportBCSMArg
;
785 static int ett_camel_InitialDPArg
;
786 static int ett_camel_InitialDPArgExtension
;
787 static int ett_camel_InitiateCallAttemptArg
;
788 static int ett_camel_InitiateCallAttemptRes
;
789 static int ett_camel_MoveLegArg
;
790 static int ett_camel_PlayToneArg
;
791 static int ett_camel_ReleaseCallArg
;
792 static int ett_camel_AllCallSegmentsWithExtension
;
793 static int ett_camel_RequestReportBCSMEventArg
;
794 static int ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent
;
795 static int ett_camel_ResetTimerArg
;
796 static int ett_camel_SendChargingInformationArg
;
797 static int ett_camel_SplitLegArg
;
798 static int ett_camel_ApplyChargingGPRSArg
;
799 static int ett_camel_ApplyChargingReportGPRSArg
;
800 static int ett_camel_CancelGPRSArg
;
801 static int ett_camel_ConnectGPRSArg
;
802 static int ett_camel_ContinueGPRSArg
;
803 static int ett_camel_EntityReleasedGPRSArg
;
804 static int ett_camel_EventReportGPRSArg
;
805 static int ett_camel_InitialDPGPRSArg
;
806 static int ett_camel_ReleaseGPRSArg
;
807 static int ett_camel_RequestReportGPRSEventArg
;
808 static int ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent
;
809 static int ett_camel_ResetTimerGPRSArg
;
810 static int ett_camel_SendChargingInformationGPRSArg
;
811 static int ett_camel_ConnectSMSArg
;
812 static int ett_camel_EventReportSMSArg
;
813 static int ett_camel_InitialDPSMSArg
;
814 static int ett_camel_RequestReportSMSEventArg
;
815 static int ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent
;
816 static int ett_camel_ResetTimerSMSArg
;
817 static int ett_camel_EstablishTemporaryConnectionArgV2
;
818 static int ett_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
;
819 static int ett_camel_InitialDPArgExtensionV2
;
820 static int ett_camel_NACarrierInformation
;
821 static int ett_camel_NA_Info
;
822 static int ett_camel_CAMEL_AChBillingChargingCharacteristicsV2
;
823 static int ett_camel_T_timeDurationCharging_01
;
824 static int ett_camel_ReleaseIfDurationExceeded
;
825 static int ett_camel_Code
;
826 static int ett_camel_ROS
;
827 static int ett_camel_Invoke
;
828 static int ett_camel_T_linkedId
;
829 static int ett_camel_ReturnResult
;
830 static int ett_camel_T_result
;
831 static int ett_camel_ReturnError
;
832 static int ett_camel_Reject
;
833 static int ett_camel_T_problem
;
834 static int ett_camel_InvokeId
;
836 static expert_field ei_camel_unknown_invokeData
;
837 static expert_field ei_camel_unknown_returnResultData
;
838 static expert_field ei_camel_unknown_returnErrorData
;
839 static expert_field ei_camel_par_wrong_length
;
840 static expert_field ei_camel_bcd_not_digit
;
842 /* Preference settings default */
844 static range_t
*global_ssn_range
;
845 static dissector_handle_t camel_handle
;
846 static dissector_handle_t camel_v1_handle
;
847 static dissector_handle_t camel_v2_handle
;
848 static dissector_handle_t camel_v3_handle
;
849 static dissector_handle_t camel_v4_handle
;
851 /* Global variables */
853 static uint8_t PDPTypeOrganization
;
854 static uint8_t PDPTypeNumber
;
855 const char *camel_obj_id
;
856 bool is_ExtensionField
;
858 /* Global hash tables*/
859 static wmem_map_t
*srt_calls
;
860 static uint32_t camelsrt_global_SessionId
=1;
862 static int camel_opcode_type
;
863 #define CAMEL_OPCODE_INVOKE 1
864 #define CAMEL_OPCODE_RETURN_RESULT 2
865 #define CAMEL_OPCODE_RETURN_ERROR 3
866 #define CAMEL_OPCODE_REJECT 4
868 static const value_string camel_Component_vals
[] = {
870 { 2, "returnResultLast" },
871 { 3, "returnError" },
876 const value_string camelSRTtype_naming
[]= {
877 { CAMELSRT_SESSION
, "TCAP_Session" },
878 { CAMELSRT_VOICE_INITIALDP
, "InitialDP/Continue" },
879 { CAMELSRT_VOICE_ACR1
, "Slice1_ACR/ACH" },
880 { CAMELSRT_VOICE_ACR2
, "Slice2_ACR/ACH" },
881 { CAMELSRT_VOICE_ACR3
, "Slice3_ACR/ACH" },
882 { CAMELSRT_VOICE_DISC
, "EvtRepBSCM/Release" },
883 { CAMELSRT_SMS_INITIALDP
, "InitialDP/ContinueSMS" },
884 { CAMELSRT_GPRS_INITIALDP
, "InitialDP/ContinueGPRS" },
885 { CAMELSRT_GPRS_REPORT
, "EvtRepGPRS/ContinueGPRS" },
889 #define EUROPEAN_DATE 1
890 #define AMERICAN_DATE 2
891 #define CAMEL_DATE_AND_TIME_LEN 20 /* 2*5 + 4 + 5 + 1 (HH:MM:SS;mm/dd/yyyy) */
893 static const enum_val_t date_options
[] = {
894 { "european", "DD/MM/YYYY", EUROPEAN_DATE
},
895 { "american", "MM/DD/YYYY", AMERICAN_DATE
},
899 static const value_string digit_value
[] = {
920 static const value_string camel_nature_of_addr_indicator_values
[] = {
922 { 0x01, "International Number" },
923 { 0x02, "National Significant Number" },
924 { 0x03, "Network Specific Number" },
925 { 0x04, "Subscriber Number" },
926 { 0x05, "Reserved" },
927 { 0x06, "Abbreviated Number" },
928 { 0x07, "Reserved for extension" },
931 static const value_string camel_number_plan_values
[] = {
933 { 0x01, "ISDN/Telephony Numbering (Rec ITU-T E.164)" },
935 { 0x03, "Data Numbering (ITU-T Rec. X.121)" },
936 { 0x04, "Telex Numbering (ITU-T Rec. F.69)" },
938 { 0x06, "Land Mobile Numbering (ITU-T Rec. E.212)" },
940 { 0x08, "National Numbering" },
941 { 0x09, "Private Numbering" },
942 { 0x0f, "Reserved for extension" },
947 /* End includes from old" packet-camel.c */
949 static const value_string camel_RP_Cause_values
[] = {
950 { 1, "Unassigned (unallocated) number" },
951 { 8, "Operator determined barring" },
952 { 10, "Call barred" },
954 { 21, "Short message transfer rejected" },
955 { 27, "Destination out of order" },
956 { 28, "Unidentified subscriber" },
957 { 29, "Facility Rejected" },
958 { 30, "Unknown subscriber" },
959 { 38, "Network out of order" },
960 { 41, "Temporary failure" },
961 { 42, "Congestion" },
962 { 47, "Resources unavailable, unspecified" },
963 { 50, "Requested facility not subscribed" },
964 { 69, "Requested facility not implemented" },
965 { 81, "Invalid short message transfer reference value" },
966 { 95, "Semantically incorrect message" },
967 { 96, "Invalid mandatory information" },
968 { 97, " Message Type non-existent or not implemented" },
969 { 98, "Message not compatible with short message protocol state" },
970 { 99, "Information element non existent or not implemented" },
971 { 111, "Protocol error, unspecified" },
972 { 127, "Interworking, unspecified" },
973 { 22,"Memory capacity exceeded" },
977 static const value_string camel_holdTreatmentIndicator_values
[] = {
978 { 0x01, "acceptHoldRequest" },
979 { 0x02, "rejectHoldRequest" },
982 static const value_string camel_cwTreatmentIndicator_values
[] = {
983 { 0x01, "acceptCw" },
984 { 0x02, "rejectCw" },
987 static const value_string camel_ectTreatmentIndicator_values
[] = {
988 { 0x01, "acceptEctRequest" },
989 { 0x02, "rejectEctRequest" },
993 #define tc_Messages "0.0.17.773.2.1.3"
994 #define tc_NotationExtensions "0.0.17.775.2.4.1"
995 #define ros_InformationObjects "2.4.5.0"
996 #define datatypes "0.4.0.0.1.3.52.7"
997 #define errortypes "0.4.0.0.1.3.51.7"
998 #define operationcodes "0.4.0.0.1.3.53.7"
999 #define errorcodes "0.4.0.0.1.3.57.7"
1000 #define classes "0.4.0.0.1.3.54.7"
1001 #define gsmSSF_gsmSCF_Operations "0.4.0.0.1.3.101.7"
1002 #define gsmSSF_gsmSCF_Protocol "0.4.0.0.1.3.102.7"
1003 #define gsmSCF_gsmSRF_Operations "0.4.0.0.1.3.103.7"
1004 #define gsmSCF_gsmSRF_Protocol "0.4.0.0.1.3.104.7"
1005 #define sms_Operations "0.4.0.0.1.3.105.7"
1006 #define smsSSF_gsmSCF_Protocol "0.4.0.0.1.3.106.7"
1007 #define gprsSSF_gsmSCF_Operations "0.4.0.0.1.3.107.7"
1008 #define gprsSSF_gsmSCF_Protocol "0.4.0.0.1.3.108.7"
1009 #define id_CAP "0.4.0.0.1.22"
1010 #define id_CAP3 "0.4.0.0.1.20"
1011 #define id_CAPOE "0.4.0.0.1.23"
1012 #define id_CAP3OE "0.4.0.0.1.21"
1013 #define id_ac id_CAP".3"
1014 #define id_acE id_CAPOE".3"
1015 #define id_ac3E id_CAP3OE".3"
1016 #define id_as id_CAP".5"
1017 #define id_asE id_CAPOE".5"
1018 #define id_rosObject id_CAP".25"
1019 #define id_contract id_CAP".26"
1020 #define id_contract3 id_CAP3".26"
1021 #define id_contractE id_CAPOE".26"
1022 #define id_package id_CAP".27"
1023 #define id_packageE id_CAPOE".27"
1024 #define id_rosObject_gsmSCF id_rosObject".4"
1025 #define id_rosObject_gsmSSF id_rosObject".5"
1026 #define id_rosObject_gsmSRF id_rosObject".6"
1027 #define id_rosObject_gprsSSF id_rosObject".7"
1028 #define id_rosObject_smsSSF_V3 id_rosObject".8"
1029 #define id_rosObject_smsSSF_V4 id_rosObject".9"
1030 #define id_ac_CAP_gsmSSF_scfGenericAC id_acE".4"
1031 #define id_ac_CAP_gsmSSF_scfAssistHandoffAC id_acE".6"
1032 #define id_ac_CAP_scf_gsmSSFGenericAC id_acE".8"
1033 #define id_ac_gsmSRF_gsmSCF id_ac".14"
1034 #define id_ac_CAP_gprsSSF_gsmSCF_AC id_ac3E".50"
1035 #define id_ac_CAP_gsmSCF_gprsSSF_AC id_ac3E".51"
1036 #define id_ac_cap3_sms_AC id_ac3E".61"
1037 #define id_ac_cap4_sms_AC id_acE".61"
1038 #define id_CAPSsfToScfGeneric id_contractE".3"
1039 #define id_CAPAssistHandoffssfToScf id_contractE".5"
1040 #define id_CAPScfToSsfGeneric id_contractE".6"
1041 #define id_contract_gsmSRF_gsmSCF id_contract".13"
1042 #define id_capGprsSsfTogsmScf id_contract".14"
1043 #define id_capGsmScfToGprsSsf id_contract".15"
1044 #define id_cap3SmsSsfTogsmScf id_contract3".16"
1045 #define id_cap4SmsSsfTogsmScf id_contract".16"
1046 #define id_package_scfActivation id_package".11"
1047 #define id_package_gsmSRF_scfActivationOfAssist id_package".15"
1048 #define id_package_assistConnectionEstablishment id_package".16"
1049 #define id_package_genericDisconnectResource id_package".17"
1050 #define id_package_nonAssistedConnectionEstablishment id_package".18"
1051 #define id_package_connect id_package".19"
1052 #define id_package_callHandling id_packageE".20"
1053 #define id_package_bcsmEventHandling id_package".21"
1054 #define id_package_ssfCallProcessing id_packageE".24"
1055 #define id_package_scfCallInitiation id_package".25"
1056 #define id_package_timer id_package".26"
1057 #define id_package_billing id_package".27"
1058 #define id_package_charging id_package".28"
1059 #define id_package_trafficManagement id_package".29"
1060 #define id_package_callReport id_package".32"
1061 #define id_package_signallingControl id_package".33"
1062 #define id_package_activityTest id_package".34"
1063 #define id_package_cancel id_packageE".36"
1064 #define id_package_cphResponse id_package".37"
1065 #define id_package_exceptionInform id_package".38"
1066 #define id_package_playTone id_package".39"
1067 #define id_package_specializedResourceControl id_package".42"
1068 #define id_package_gsmSRF_scfCancel id_package".43"
1069 #define id_package_gprsContinue id_package".49"
1070 #define id_package_gprsExceptionInformation id_package".50"
1071 #define id_package_gprsScfActivation id_package".51"
1072 #define id_package_gprsConnect id_package".52"
1073 #define id_package_gprsRelease id_package".53"
1074 #define id_package_gprsEventHandling id_package".54"
1075 #define id_package_gprsTimer id_package".55"
1076 #define id_package_gprsBilling id_package".56"
1077 #define id_package_gprsCharging id_package".57"
1078 #define id_package_gprsActivityTest id_package".58"
1079 #define id_package_gprsCancel id_package".59"
1080 #define id_package_gprsChargeAdvice id_package".60"
1081 #define id_package_smsActivation id_package".61"
1082 #define id_package_smsConnect id_package".62"
1083 #define id_package_smsContinue id_package".63"
1084 #define id_package_smsRelease id_package".64"
1085 #define id_package_smsEventHandling id_package".65"
1086 #define id_package_smsBilling id_package".66"
1087 #define id_package_smsTimer id_package".67"
1088 #define id_as_gsmSSF_scfGenericAS id_asE".4"
1089 #define id_as_assistHandoff_gsmSSF_scfAS id_asE".6"
1090 #define id_as_scf_gsmSSFGenericAS id_asE".7"
1091 #define id_as_basic_gsmSRF_gsmSCF id_as".14"
1092 #define id_as_gprsSSF_gsmSCF_AS id_as".50"
1093 #define id_as_gsmSCF_gprsSSF_AS id_as".51"
1094 #define id_as_smsSSF_gsmSCF_AS id_as".61"
1097 #define maxSMS_AddressStringLength 11
1098 #define numOfInfoItems 4
1099 #define errcode_canceled 0
1100 #define errcode_cancelFailed 1
1101 #define errcode_eTCFailed 3
1102 #define errcode_improperCallerResponse 4
1103 #define errcode_missingCustomerRecord 6
1104 #define errcode_missingParameter 7
1105 #define errcode_parameterOutOfRange 8
1106 #define errcode_requestedInfoError 10
1107 #define errcode_systemFailure 11
1108 #define errcode_taskRefused 12
1109 #define errcode_unavailableResource 13
1110 #define errcode_unexpectedComponentSequence 14
1111 #define errcode_unexpectedDataValue 15
1112 #define errcode_unexpectedParameter 16
1113 #define errcode_unknownLegID 17
1114 #define errcode_unknownPDPID 50
1115 #define errcode_unknownCSID 51
1116 #define opcode_initialDP 0
1117 #define opcode_assistRequestInstructions 16
1118 #define opcode_establishTemporaryConnection 17
1119 #define opcode_disconnectForwardConnection 18
1120 #define opcode_dFCWithArgument 86
1121 #define opcode_connectToResource 19
1122 #define opcode_connect 20
1123 #define opcode_releaseCall 22
1124 #define opcode_requestReportBCSMEvent 23
1125 #define opcode_eventReportBCSM 24
1126 #define opcode_collectInformation 27
1127 #define opcode_continue 31
1128 #define opcode_initiateCallAttempt 32
1129 #define opcode_resetTimer 33
1130 #define opcode_furnishChargingInformation 34
1131 #define opcode_applyCharging 35
1132 #define opcode_applyChargingReport 36
1133 #define opcode_callGap 41
1134 #define opcode_callInformationReport 44
1135 #define opcode_callInformationRequest 45
1136 #define opcode_sendChargingInformation 46
1137 #define opcode_playAnnouncement 47
1138 #define opcode_promptAndCollectUserInformation 48
1139 #define opcode_specializedResourceReport 49
1140 #define opcode_cancel 53
1141 #define opcode_activityTest 55
1142 #define opcode_continueWithArgument 88
1143 #define opcode_disconnectLeg 90
1144 #define opcode_moveLeg 93
1145 #define opcode_splitLeg 95
1146 #define opcode_entityReleased 96
1147 #define opcode_playTone 97
1148 #define opcode_initialDPSMS 60
1149 #define opcode_furnishChargingInformationSMS 61
1150 #define opcode_connectSMS 62
1151 #define opcode_requestReportSMSEvent 63
1152 #define opcode_eventReportSMS 64
1153 #define opcode_continueSMS 65
1154 #define opcode_releaseSMS 66
1155 #define opcode_resetTimerSMS 67
1156 #define opcode_activityTestGPRS 70
1157 #define opcode_applyChargingGPRS 71
1158 #define opcode_applyChargingReportGPRS 72
1159 #define opcode_cancelGPRS 73
1160 #define opcode_connectGPRS 74
1161 #define opcode_continueGPRS 75
1162 #define opcode_entityReleasedGPRS 76
1163 #define opcode_furnishChargingInformationGPRS 77
1164 #define opcode_initialDPGPRS 78
1165 #define opcode_releaseGPRS 79
1166 #define opcode_eventReportGPRS 80
1167 #define opcode_requestReportGPRSEvent 81
1168 #define opcode_resetTimerGPRS 82
1169 #define opcode_sendChargingInformationGPRS 83
1170 #define id_CAP_GPRS_ReferenceNumber "0.4.0.0.1.1.5.2"
1171 #define id_CAP_U_ABORT_Reason "0.4.0.0.1.1.2.2"
1172 #define noInvokeId NULL
1175 /* CAMEL OPERATIONS */
1176 const value_string camel_opr_code_strings
[] = {
1177 { opcode_playAnnouncement
, "playAnnouncement" },
1178 { opcode_promptAndCollectUserInformation
, "promptAndCollectUserInformation" },
1179 { opcode_specializedResourceReport
, "specializedResourceReport" },
1180 { opcode_activityTest
, "activityTest" },
1181 { opcode_applyCharging
, "applyCharging" },
1182 { opcode_applyChargingReport
, "applyChargingReport" },
1183 { opcode_assistRequestInstructions
, "assistRequestInstructions" },
1184 { opcode_callGap
, "callGap" },
1185 { opcode_callInformationReport
, "callInformationReport" },
1186 { opcode_callInformationRequest
, "callInformationRequest" },
1187 { opcode_cancel
, "cancel" },
1188 { opcode_collectInformation
, "collectInformation" },
1189 { opcode_connect
, "connect" },
1190 { opcode_connectToResource
, "connectToResource" },
1191 { opcode_continue
, "continue" },
1192 { opcode_continueWithArgument
, "continueWithArgument" },
1193 { opcode_disconnectForwardConnection
, "disconnectForwardConnection" },
1194 { opcode_dFCWithArgument
, "disconnectForwardConnectionWithArgument" },
1195 { opcode_disconnectLeg
, "disconnectLeg" },
1196 { opcode_entityReleased
, "entityReleased" },
1197 { opcode_establishTemporaryConnection
, "establishTemporaryConnection" },
1198 { opcode_eventReportBCSM
, "eventReportBCSM" },
1199 { opcode_furnishChargingInformation
, "furnishChargingInformation" },
1200 { opcode_initialDP
, "initialDP" },
1201 { opcode_initiateCallAttempt
, "initiateCallAttempt" },
1202 { opcode_moveLeg
, "moveLeg" },
1203 { opcode_playTone
, "playTone" },
1204 { opcode_releaseCall
, "releaseCall" },
1205 { opcode_requestReportBCSMEvent
, "requestReportBCSMEvent" },
1206 { opcode_resetTimer
, "resetTimer" },
1207 { opcode_sendChargingInformation
, "sendChargingInformation" },
1208 { opcode_splitLeg
, "splitLeg" },
1209 { opcode_activityTestGPRS
, "activityTestGPRS" },
1210 { opcode_applyChargingGPRS
, "applyChargingGPRS" },
1211 { opcode_applyChargingReportGPRS
, "applyChargingReportGPRS" },
1212 { opcode_cancelGPRS
, "cancelGPRS" },
1213 { opcode_connectGPRS
, "connectGPRS" },
1214 { opcode_continueGPRS
, "continueGPRS" },
1215 { opcode_entityReleasedGPRS
, "entityReleasedGPRS" },
1216 { opcode_eventReportGPRS
, "eventReportGPRS" },
1217 { opcode_furnishChargingInformationGPRS
, "furnishChargingInformationGPRS" },
1218 { opcode_initialDPGPRS
, "initialDPGPRS" },
1219 { opcode_releaseGPRS
, "releaseGPRS" },
1220 { opcode_requestReportGPRSEvent
, "requestReportGPRSEvent" },
1221 { opcode_resetTimerGPRS
, "resetTimerGPRS" },
1222 { opcode_sendChargingInformationGPRS
, "sendChargingInformationGPRS" },
1223 { opcode_connectSMS
, "connectSMS" },
1224 { opcode_continueSMS
, "continueSMS" },
1225 { opcode_eventReportSMS
, "eventReportSMS" },
1226 { opcode_furnishChargingInformationSMS
, "furnishChargingInformationSMS" },
1227 { opcode_initialDPSMS
, "initialDPSMS" },
1228 { opcode_releaseSMS
, "releaseSMS" },
1229 { opcode_requestReportSMSEvent
, "requestReportSMSEvent" },
1230 { opcode_resetTimerSMS
, "resetTimerSMS" },
1236 static const value_string camel_err_code_string_vals
[] = {
1237 { errcode_canceled
, "canceled" },
1238 { errcode_cancelFailed
, "cancelFailed" },
1239 { errcode_eTCFailed
, "eTCFailed" },
1240 { errcode_improperCallerResponse
, "improperCallerResponse" },
1241 { errcode_missingCustomerRecord
, "missingCustomerRecord" },
1242 { errcode_missingParameter
, "missingParameter" },
1243 { errcode_parameterOutOfRange
, "parameterOutOfRange" },
1244 { errcode_requestedInfoError
, "requestedInfoError" },
1245 { errcode_systemFailure
, "systemFailure" },
1246 { errcode_taskRefused
, "taskRefused" },
1247 { errcode_unavailableResource
, "unavailableResource" },
1248 { errcode_unexpectedComponentSequence
, "unexpectedComponentSequence" },
1249 { errcode_unexpectedDataValue
, "unexpectedDataValue" },
1250 { errcode_unexpectedParameter
, "unexpectedParameter" },
1251 { errcode_unknownLegID
, "unknownLegID" },
1252 { errcode_unknownCSID
, "unknownCSID" },
1253 { errcode_unknownPDPID
, "unknownPDPID" },
1262 #undef DEBUG_CAMELSRT
1263 /* #define DEBUG_CAMELSRT */
1265 #ifdef DEBUG_CAMELSRT
1268 static unsigned debug_level
= 99;
1270 static void dbg(unsigned level
, char *fmt
, ...) {
1273 if (level
> debug_level
) return;
1275 vfprintf(stderr
, fmt
, ap
);
1281 camelstat_init(struct register_srt
* srt _U_
, GArray
* srt_array
)
1283 srt_stat_table
*camel_srt_table
;
1287 camel_srt_table
= init_srt_table("CAMEL Commands", NULL
, srt_array
, NB_CAMELSRT_CATEGORY
, NULL
, NULL
, NULL
);
1288 for (i
= 0; i
< NB_CAMELSRT_CATEGORY
; i
++)
1290 tmp_str
= val_to_str_wmem(NULL
,i
,camelSRTtype_naming
,"Unknown (%d)");
1291 init_srt_table_row(camel_srt_table
, i
, tmp_str
);
1292 wmem_free(NULL
, tmp_str
);
1296 static tap_packet_status
1297 camelstat_packet(void *pcamel
, packet_info
*pinfo
, epan_dissect_t
*edt _U_
, const void *psi
, tap_flags_t flags _U_
)
1300 srt_stat_table
*camel_srt_table
;
1301 const struct camelsrt_info_t
* pi
=(const struct camelsrt_info_t
*)psi
;
1302 srt_data_t
*data
= (srt_data_t
*)pcamel
;
1305 for (i
=1; i
<NB_CAMELSRT_CATEGORY
; i
++) {
1306 if ( pi
->bool_msginfo
[i
] &&
1307 pi
->msginfo
[i
].is_delta_time
1308 && pi
->msginfo
[i
].request_available
1309 && !pi
->msginfo
[i
].is_duplicate
)
1311 camel_srt_table
= g_array_index(data
->srt_array
, srt_stat_table
*, idx
);
1312 add_srt_table_data(camel_srt_table
, i
, &pi
->msginfo
[i
].req_time
, pinfo
);
1315 return TAP_PACKET_REDRAW
;
1319 static char camel_number_to_char(int number
)
1322 return (char) (number
+ 48 ); /* this is ASCII specific */
1324 return (char) (number
+ 55 );
1331 dissect_RP_cause_ie(tvbuff_t
*tvb
, uint32_t offset
, _U_
unsigned len
,
1332 proto_tree
*tree
, int hf_cause_value
, uint8_t *cause_value
)
1335 uint32_t curr_offset
;
1337 curr_offset
= offset
;
1338 oct
= tvb_get_uint8(tvb
, curr_offset
);
1340 *cause_value
= oct
& 0x7f;
1342 proto_tree_add_uint(tree
, hf_cause_value
, tvb
, curr_offset
, 1, oct
);
1346 oct
= tvb_get_uint8(tvb
, curr_offset
);
1347 proto_tree_add_uint_format(tree
, hf_cause_value
,
1348 tvb
, curr_offset
, 1, oct
,
1349 "Diagnostic : %u", oct
);
1352 return curr_offset
- offset
;
1355 static int dissect_camel_InitialDPArgExtensionV2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
1360 dissect_camel_AccessPointName(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1362 tvbuff_t
*parameter_tvb
;
1363 proto_tree
*subtree
;
1365 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1371 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_AccessPointName
);
1372 de_sm_apn(parameter_tvb
, subtree
, actx
->pinfo
, 0, tvb_reported_length(parameter_tvb
), NULL
, 0);
1380 dissect_camel_AChBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1381 tvbuff_t
*parameter_tvb
;
1382 proto_tree
*subtree
;
1384 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1389 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_AChBillingChargingCharacteristics
);
1390 if((camel_ver
== 2)||(camel_ver
== 1)){
1391 return dissect_camel_CAMEL_AChBillingChargingCharacteristicsV2(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_AChBillingChargingCharacteristics
);
1393 dissect_camel_CAMEL_AChBillingChargingCharacteristics(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_AChBillingChargingCharacteristics
);
1402 dissect_camel_CallSegmentID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1403 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1410 static const value_string camel_AChChargingAddress_vals
[] = {
1412 { 50, "srfConnection" },
1416 static const ber_choice_t AChChargingAddress_choice
[] = {
1417 { 2, &hf_camel_legID
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
1418 { 50, &hf_camel_srfConnection
, BER_CLASS_CON
, 50, BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
1419 { 0, NULL
, 0, 0, 0, NULL
}
1423 dissect_camel_AChChargingAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1424 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1425 AChChargingAddress_choice
, hf_index
, ett_camel_AChChargingAddress
,
1434 dissect_camel_Digits(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1436 * Digits {PARAMETERS-BOUND : bound} ::= OCTET STRING (SIZE(
1437 * bound.&minDigitsLength .. bound.&maxDigitsLength))
1438 *-- Indicates the address signalling digits.
1439 *-- Refer to ETSI EN 300 356 1 [23] Generic Number & Generic Digits parameters for encoding.
1440 *-- The coding of the subfields 'NumberQualifier' in Generic Number and 'TypeOfDigits' in
1441 *-- Generic Digits are irrelevant to the CAP;
1442 *-- the ASN.1 tags are sufficient to identify the parameter.
1443 *-- The ISUP format does not allow to exclude these subfields,
1444 *-- therefore the value is network operator specific.
1446 *-- The following parameters shall use Generic Number:
1447 *-- - AdditionalCallingPartyNumber for InitialDP
1448 *-- - AssistingSSPIPRoutingAddress for EstablishTemporaryConnection
1449 *-- - CorrelationID for AssistRequestInstructions
1450 *-- - CalledAddressValue for all occurrences, CallingAddressValue for all occurrences.
1452 *-- The following parameters shall use Generic Digits:
1453 *-- - CorrelationID in EstablishTemporaryConnection
1454 *-- - number in VariablePart
1455 *-- - digitsResponse in ReceivedInformationArg
1456 *-- - midCallEvents in oMidCallSpecificInfo and tMidCallSpecificInfo
1458 *-- In the digitsResponse and midCallevents, the digits may also include the '*', '#',
1459 *-- a, b, c and d digits by using the IA5 character encoding scheme. If the BCD even or
1460 *-- BCD odd encoding scheme is used, then the following encoding shall be applied for the
1461 *-- non-decimal characters: 1011 (*), 1100 (#).
1463 *-- AssistingSSPIPRoutingAddress in EstablishTemporaryConnection and CorrelationID in
1464 *-- AssistRequestInstructions may contain a Hex B digit as address signal. Refer to
1465 *-- Annex A.6 for the usage of the Hex B digit.
1467 *-- Note that when CorrelationID is transported in Generic Digits, then the digits shall
1468 *-- always be BCD encoded.
1470 tvbuff_t
*parameter_tvb
;
1471 proto_tree
*subtree
;
1473 bool digits
= false;
1475 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1481 if (hf_index
== hf_camel_calledAddressValue
) {
1482 ett
= ett_camel_calledAddressValue
;
1483 } else if (hf_index
== hf_camel_callingAddressValue
) {
1484 ett
= ett_camel_callingAddressValue
;
1485 } else if (hf_index
== hf_camel_additionalCallingPartyNumber
) {
1486 ett
= ett_camel_additionalcallingpartynumber
;
1487 } else if (hf_index
== hf_camel_assistingSSPIPRoutingAddress
) {
1488 ett
= ett_camel_assistingSSPIPRoutingAddress
;
1489 } else if (hf_index
== hf_camel_correlationID
) {
1490 ett
= ett_camel_correlationID
;
1491 digits
= (opcode
== opcode_establishTemporaryConnection
) ? true : false;
1492 } else if (hf_index
== hf_camel_dTMFDigitsCompleted
) {
1493 ett
= ett_camel_dTMFDigitsCompleted
;
1495 } else if (hf_index
== hf_camel_dTMFDigitsTimeOut
) {
1496 ett
= ett_camel_dTMFDigitsTimeOut
;
1498 } else if (hf_index
== hf_camel_number
) {
1499 ett
= ett_camel_number
;
1501 } else if (hf_index
== hf_camel_digitsResponse
) {
1502 ett
= ett_camel_digitsResponse
;
1506 subtree
= proto_item_add_subtree(actx
->created_item
, ett
);
1508 dissect_isup_generic_digits_parameter(parameter_tvb
, subtree
, NULL
);
1510 dissect_isup_generic_number_parameter(parameter_tvb
, actx
->pinfo
, subtree
, NULL
);
1520 dissect_camel_AdditionalCallingPartyNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1521 offset
= dissect_camel_Digits(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
1529 dissect_camel_AlertingPattern(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1530 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1539 dissect_camel_INTEGER_0_8191(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1540 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1547 static const ber_sequence_t CAI_GSM0224_sequence
[] = {
1548 { &hf_camel_e1
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1549 { &hf_camel_e2
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1550 { &hf_camel_e3
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1551 { &hf_camel_e4
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1552 { &hf_camel_e5
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1553 { &hf_camel_e6
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1554 { &hf_camel_e7
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_8191
},
1555 { NULL
, 0, 0, 0, NULL
}
1559 dissect_camel_CAI_GSM0224(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1560 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1561 CAI_GSM0224_sequence
, hf_index
, ett_camel_CAI_GSM0224
);
1569 dissect_camel_INTEGER_1_86400(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1570 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1577 static const ber_sequence_t AOCSubsequent_sequence
[] = {
1578 { &hf_camel_cAI_GSM0224
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CAI_GSM0224
},
1579 { &hf_camel_aocSubsequent_tariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_86400
},
1580 { NULL
, 0, 0, 0, NULL
}
1584 dissect_camel_AOCSubsequent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1585 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1586 AOCSubsequent_sequence
, hf_index
, ett_camel_AOCSubsequent
);
1592 static const ber_sequence_t AOCBeforeAnswer_sequence
[] = {
1593 { &hf_camel_aOCInitial
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CAI_GSM0224
},
1594 { &hf_camel_aOCSubsequent
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AOCSubsequent
},
1595 { NULL
, 0, 0, 0, NULL
}
1599 dissect_camel_AOCBeforeAnswer(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1600 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1601 AOCBeforeAnswer_sequence
, hf_index
, ett_camel_AOCBeforeAnswer
);
1607 static const ber_sequence_t AOCGPRS_sequence
[] = {
1608 { &hf_camel_aOCInitial
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CAI_GSM0224
},
1609 { &hf_camel_aOCSubsequent
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AOCSubsequent
},
1610 { NULL
, 0, 0, 0, NULL
}
1614 dissect_camel_AOCGPRS(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1615 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1616 AOCGPRS_sequence
, hf_index
, ett_camel_AOCGPRS
);
1622 static const value_string camel_AppendFreeFormatData_vals
[] = {
1630 dissect_camel_AppendFreeFormatData(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1631 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1640 dissect_camel_ApplicationTimer(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1641 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1650 dissect_camel_AssistingSSPIPRoutingAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1651 offset
= dissect_camel_Digits(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
1659 dissect_camel_BOOLEAN(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1660 offset
= dissect_ber_boolean(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
1668 dissect_camel_INTEGER_1_1200(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1669 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1678 dissect_camel_INTEGER_1_3(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1679 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1688 dissect_camel_INTEGER_1_20(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1689 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1696 static const ber_sequence_t Burst_sequence
[] = {
1697 { &hf_camel_numberOfBursts
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_3
},
1698 { &hf_camel_burstInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_1200
},
1699 { &hf_camel_numberOfTonesInBurst
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_3
},
1700 { &hf_camel_burstToneDuration
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_20
},
1701 { &hf_camel_toneInterval
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_20
},
1702 { NULL
, 0, 0, 0, NULL
}
1706 dissect_camel_Burst(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1707 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1708 Burst_sequence
, hf_index
, ett_camel_Burst
);
1714 static const ber_sequence_t BurstList_sequence
[] = {
1715 { &hf_camel_warningPeriod
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_1200
},
1716 { &hf_camel_bursts
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_Burst
},
1717 { NULL
, 0, 0, 0, NULL
}
1721 dissect_camel_BurstList(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1722 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1723 BurstList_sequence
, hf_index
, ett_camel_BurstList
);
1729 static const value_string camel_AudibleIndicator_vals
[] = {
1735 static const ber_choice_t AudibleIndicator_choice
[] = {
1736 { 0, &hf_camel_audibleIndicatorTone
, BER_CLASS_UNI
, BER_UNI_TAG_BOOLEAN
, BER_FLAGS_NOOWNTAG
, dissect_camel_BOOLEAN
},
1737 { 1, &hf_camel_burstList
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_BurstList
},
1738 { 0, NULL
, 0, 0, 0, NULL
}
1742 dissect_camel_AudibleIndicator(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1743 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1744 AudibleIndicator_choice
, hf_index
, ett_camel_AudibleIndicator
,
1753 dissect_camel_OCTET_STRING_SIZE_1(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1754 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1761 static const ber_sequence_t BackwardServiceInteractionInd_sequence
[] = {
1762 { &hf_camel_conferenceTreatmentIndicator
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
1763 { &hf_camel_callCompletionTreatmentIndicator
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
1764 { NULL
, 0, 0, 0, NULL
}
1768 dissect_camel_BackwardServiceInteractionInd(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1769 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1770 BackwardServiceInteractionInd_sequence
, hf_index
, ett_camel_BackwardServiceInteractionInd
);
1776 static const ber_sequence_t GapOnService_sequence
[] = {
1777 { &hf_camel_serviceKey
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_ServiceKey
},
1778 { NULL
, 0, 0, 0, NULL
}
1782 dissect_camel_GapOnService(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1783 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1784 GapOnService_sequence
, hf_index
, ett_camel_GapOnService
);
1790 static const ber_sequence_t T_calledAddressAndService_sequence
[] = {
1791 { &hf_camel_calledAddressValue
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
1792 { &hf_camel_serviceKey
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_inap_ServiceKey
},
1793 { NULL
, 0, 0, 0, NULL
}
1797 dissect_camel_T_calledAddressAndService(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1798 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1799 T_calledAddressAndService_sequence
, hf_index
, ett_camel_T_calledAddressAndService
);
1805 static const ber_sequence_t T_callingAddressAndService_sequence
[] = {
1806 { &hf_camel_callingAddressValue
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
1807 { &hf_camel_serviceKey
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_inap_ServiceKey
},
1808 { NULL
, 0, 0, 0, NULL
}
1812 dissect_camel_T_callingAddressAndService(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1813 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1814 T_callingAddressAndService_sequence
, hf_index
, ett_camel_T_callingAddressAndService
);
1820 static const value_string camel_BasicGapCriteria_vals
[] = {
1821 { 0, "calledAddressValue" },
1822 { 2, "gapOnService" },
1823 { 29, "calledAddressAndService" },
1824 { 30, "callingAddressAndService" },
1828 static const ber_choice_t BasicGapCriteria_choice
[] = {
1829 { 0, &hf_camel_calledAddressValue
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
1830 { 2, &hf_camel_gapOnService
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_GapOnService
},
1831 { 29, &hf_camel_calledAddressAndService
, BER_CLASS_CON
, 29, BER_FLAGS_IMPLTAG
, dissect_camel_T_calledAddressAndService
},
1832 { 30, &hf_camel_callingAddressAndService
, BER_CLASS_CON
, 30, BER_FLAGS_IMPLTAG
, dissect_camel_T_callingAddressAndService
},
1833 { 0, NULL
, 0, 0, 0, NULL
}
1837 dissect_camel_BasicGapCriteria(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1838 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1839 BasicGapCriteria_choice
, hf_index
, ett_camel_BasicGapCriteria
,
1846 static const value_string camel_EventTypeBCSM_vals
[] = {
1847 { 2, "collectedInfo" },
1848 { 3, "analyzedInformation" },
1849 { 4, "routeSelectFailure" },
1850 { 5, "oCalledPartyBusy" },
1854 { 9, "oDisconnect" },
1856 { 12, "termAttemptAuthorized" },
1858 { 14, "tNoAnswer" },
1861 { 17, "tDisconnect" },
1863 { 19, "oTermSeized" },
1864 { 27, "callAccepted" },
1865 { 50, "oChangeOfPosition" },
1866 { 51, "tChangeOfPosition" },
1867 { 52, "oServiceChange" },
1868 { 53, "tServiceChange" },
1874 dissect_camel_EventTypeBCSM(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1875 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1882 static const value_string camel_MonitorMode_vals
[] = {
1883 { 0, "interrupted" },
1884 { 1, "notifyAndContinue" },
1885 { 2, "transparent" },
1891 dissect_camel_MonitorMode(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1892 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1901 dissect_camel_INTEGER_1_30(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1902 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1911 dissect_camel_OCTET_STRING_SIZE_1_2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1912 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1921 dissect_camel_INTEGER_1_127(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1922 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
1929 static const ber_sequence_t MidCallControlInfo_sequence
[] = {
1930 { &hf_camel_minimumNumberOfDigits
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_30
},
1931 { &hf_camel_maximumNumberOfDigits
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_30
},
1932 { &hf_camel_endOfReplyDigit
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1_2
},
1933 { &hf_camel_cancelDigit
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1_2
},
1934 { &hf_camel_startDigit
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1_2
},
1935 { &hf_camel_interDigitTimeout
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_127
},
1936 { NULL
, 0, 0, 0, NULL
}
1940 dissect_camel_MidCallControlInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1941 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1942 MidCallControlInfo_sequence
, hf_index
, ett_camel_MidCallControlInfo
);
1950 dissect_camel_NULL(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1951 offset
= dissect_ber_null(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
);
1957 static const ber_sequence_t ChangeOfLocationAlt_sequence
[] = {
1958 { NULL
, 0, 0, 0, NULL
}
1962 dissect_camel_ChangeOfLocationAlt(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1963 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1964 ChangeOfLocationAlt_sequence
, hf_index
, ett_camel_ChangeOfLocationAlt
);
1970 static const value_string camel_ChangeOfLocation_vals
[] = {
1971 { 0, "cellGlobalId" },
1972 { 1, "serviceAreaId" },
1973 { 2, "locationAreaId" },
1974 { 3, "inter-SystemHandOver" },
1975 { 4, "inter-PLMNHandOver" },
1976 { 5, "inter-MSCHandOver" },
1977 { 6, "changeOfLocationAlt" },
1981 static const ber_choice_t ChangeOfLocation_choice
[] = {
1982 { 0, &hf_camel_cellGlobalId
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength
},
1983 { 1, &hf_camel_serviceAreaId
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength
},
1984 { 2, &hf_camel_locationAreaId
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_gsm_map_LAIFixedLength
},
1985 { 3, &hf_camel_inter_SystemHandOver
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
1986 { 4, &hf_camel_inter_PLMNHandOver
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
1987 { 5, &hf_camel_inter_MSCHandOver
, BER_CLASS_CON
, 5, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
1988 { 6, &hf_camel_changeOfLocationAlt
, BER_CLASS_CON
, 6, BER_FLAGS_IMPLTAG
, dissect_camel_ChangeOfLocationAlt
},
1989 { 0, NULL
, 0, 0, 0, NULL
}
1993 dissect_camel_ChangeOfLocation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1994 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1995 ChangeOfLocation_choice
, hf_index
, ett_camel_ChangeOfLocation
,
2002 static const ber_sequence_t ChangeOfPositionControlInfo_sequence_of
[1] = {
2003 { &hf_camel_ChangeOfPositionControlInfo_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ChangeOfLocation
},
2007 dissect_camel_ChangeOfPositionControlInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2008 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
2009 ChangeOfPositionControlInfo_sequence_of
, hf_index
, ett_camel_ChangeOfPositionControlInfo
);
2017 dissect_camel_NumberOfDigits(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2018 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2025 static const ber_sequence_t DpSpecificCriteriaAlt_sequence
[] = {
2026 { &hf_camel_changeOfPositionControlInfo
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_ChangeOfPositionControlInfo
},
2027 { &hf_camel_numberOfDigits
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NumberOfDigits
},
2028 { &hf_camel_interDigitTimeout
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_127
},
2029 { NULL
, 0, 0, 0, NULL
}
2033 dissect_camel_DpSpecificCriteriaAlt(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2034 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2035 DpSpecificCriteriaAlt_sequence
, hf_index
, ett_camel_DpSpecificCriteriaAlt
);
2041 static const value_string camel_DpSpecificCriteria_vals
[] = {
2042 { 1, "applicationTimer" },
2043 { 2, "midCallControlInfo" },
2044 { 3, "dpSpecificCriteriaAlt" },
2048 static const ber_choice_t DpSpecificCriteria_choice
[] = {
2049 { 1, &hf_camel_applicationTimer
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_ApplicationTimer
},
2050 { 2, &hf_camel_midCallControlInfo
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_MidCallControlInfo
},
2051 { 3, &hf_camel_dpSpecificCriteriaAlt
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_DpSpecificCriteriaAlt
},
2052 { 0, NULL
, 0, 0, 0, NULL
}
2056 dissect_camel_DpSpecificCriteria(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2057 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2058 DpSpecificCriteria_choice
, hf_index
, ett_camel_DpSpecificCriteria
,
2065 static const ber_sequence_t BCSMEvent_sequence
[] = {
2066 { &hf_camel_eventTypeBCSM
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_EventTypeBCSM
},
2067 { &hf_camel_monitorMode
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_MonitorMode
},
2068 { &hf_camel_legID
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
2069 { &hf_camel_dpSpecificCriteria
, BER_CLASS_CON
, 30, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_DpSpecificCriteria
},
2070 { &hf_camel_automaticRearm
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
2071 { NULL
, 0, 0, 0, NULL
}
2075 dissect_camel_BCSMEvent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2076 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2077 BCSMEvent_sequence
, hf_index
, ett_camel_BCSMEvent
);
2085 dissect_camel_Cause(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2087 tvbuff_t
*parameter_tvb
;
2088 uint8_t Cause_value
;
2089 proto_tree
*subtree
;
2091 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2097 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_cause
);
2099 dissect_q931_cause_ie(parameter_tvb
, 0, tvb_reported_length_remaining(parameter_tvb
,0), subtree
, hf_camel_cause_indicator
, &Cause_value
, isup_parameter_type_value
);
2105 static const ber_sequence_t BCSM_Failure_sequence
[] = {
2106 { &hf_camel_legID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
2107 { &hf_camel_cause
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
2108 { NULL
, 0, 0, 0, NULL
}
2112 dissect_camel_BCSM_Failure(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2113 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2114 BCSM_Failure_sequence
, hf_index
, ett_camel_BCSM_Failure
);
2122 dissect_camel_T_bearerCap(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2123 tvbuff_t
*parameter_tvb
;
2125 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2132 dissect_q931_bearer_capability_ie(parameter_tvb
, 0, tvb_reported_length_remaining(parameter_tvb
,0), tree
);
2138 static const value_string camel_BearerCapability_vals
[] = {
2143 static const ber_choice_t BearerCapability_choice
[] = {
2144 { 0, &hf_camel_bearerCap
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_bearerCap
},
2145 { 0, NULL
, 0, 0, 0, NULL
}
2149 dissect_camel_BearerCapability(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2150 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2151 BearerCapability_choice
, hf_index
, ett_camel_BearerCapability
,
2160 dissect_camel_CalledPartyBCDNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2161 /* See 3GPP TS 29.078
2162 * and 3GPP TS 24.008, section 10.5.4.7
2163 * Indicates the Called Party Number, including service selection information.
2164 * Refer to 3GPP TS 24.008 [9] for encoding.
2165 * This data type carries only the 'type of number', 'numbering plan
2166 * identification' and 'number digit' fields defined in 3GPP TS 24.008 [9];
2167 * it does not carry the 'called party BCD number IEI' or 'length of called
2168 * party BCD number contents'.
2169 * In the context of the DestinationSubscriberNumber field in ConnectSMSArg or
2170 * InitialDPSMSArg, a CalledPartyBCDNumber may also contain an alphanumeric
2171 * character string. In this case, type-of-number '101'B is used, in accordance
2172 * with 3GPP TS 23.040 [6]. The address is coded in accordance with the
2173 * GSM 7-bit default alphabet definition and the SMS packing rules
2174 * as specified in 3GPP TS 23.038 [15] in this case.
2176 tvbuff_t
*parameter_tvb
;
2177 proto_tree
*subtree
;
2179 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2185 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_calledpartybcdnumber
);
2186 de_cld_party_bcd_num(parameter_tvb
, subtree
, actx
->pinfo
, 0, tvb_reported_length(parameter_tvb
), NULL
, 0);
2195 dissect_camel_CalledPartyNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2196 tvbuff_t
*parameter_tvb
;
2197 proto_tree
*subtree
;
2199 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2206 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_calledpartybcdnumber
);
2207 dissect_isup_called_party_number_parameter(parameter_tvb
, actx
->pinfo
, subtree
, NULL
);
2215 dissect_camel_CallingPartyNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2216 tvbuff_t
*parameter_tvb
;
2217 proto_tree
*subtree
;
2219 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2226 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_callingpartynumber
);
2227 dissect_isup_calling_party_number_parameter(parameter_tvb
, actx
->pinfo
, subtree
, NULL
);
2235 dissect_camel_CallResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2236 tvbuff_t
*parameter_tvb
;
2237 proto_tree
*subtree
;
2239 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2244 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_CallResult
);
2245 dissect_camel_CAMEL_CallResult(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_CallResult
);
2252 static const ber_sequence_t CallSegmentFailure_sequence
[] = {
2253 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
2254 { &hf_camel_cause
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
2255 { NULL
, 0, 0, 0, NULL
}
2259 dissect_camel_CallSegmentFailure(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2260 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2261 CallSegmentFailure_sequence
, hf_index
, ett_camel_CallSegmentFailure
);
2269 dissect_camel_InvokeID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2270 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2277 static const ber_sequence_t CallSegmentToCancel_sequence
[] = {
2278 { &hf_camel_invokeID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_InvokeID
},
2279 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
2280 { NULL
, 0, 0, 0, NULL
}
2284 dissect_camel_CallSegmentToCancel(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2285 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2286 CallSegmentToCancel_sequence
, hf_index
, ett_camel_CallSegmentToCancel
);
2294 dissect_camel_INTEGER_1_864000(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2295 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2304 dissect_camel_T_audibleIndicator(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2305 if (tvb_reported_length_remaining(tvb
,offset
) < 2)
2306 offset
= dissect_camel_BOOLEAN(true, tvb
, offset
, actx
, tree
, hf_camel_audibleIndicatorTone
);
2308 offset
= dissect_camel_AudibleIndicator(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
2318 dissect_camel_T_local(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2320 if (is_ExtensionField
){
2321 hf_index
= hf_camel_extension_code_local
;
2322 }else if (camel_opcode_type
== CAMEL_OPCODE_RETURN_ERROR
){
2323 hf_index
= hf_camel_error_code_local
;
2325 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2328 if (is_ExtensionField
== false){
2329 if (camel_opcode_type
== CAMEL_OPCODE_RETURN_ERROR
){
2331 col_append_str(actx
->pinfo
->cinfo
, COL_INFO
,
2332 val_to_str(errorCode
, camel_err_code_string_vals
, "Unknown CAMEL error (%u)"));
2333 col_append_str(actx
->pinfo
->cinfo
, COL_INFO
, " ");
2334 col_set_fence(actx
->pinfo
->cinfo
, COL_INFO
);
2336 col_append_str(actx
->pinfo
->cinfo
, COL_INFO
,
2337 val_to_str(opcode
, camel_opr_code_strings
, "Unknown CAMEL (%u)"));
2338 col_append_str(actx
->pinfo
->cinfo
, COL_INFO
, " ");
2339 col_set_fence(actx
->pinfo
->cinfo
, COL_INFO
);
2341 gp_camelsrt_info
->opcode
=opcode
;
2350 dissect_camel_T_global(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2351 offset
= dissect_ber_object_identifier_str(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, &camel_obj_id
);
2357 static const value_string camel_Code_vals
[] = {
2363 static const ber_choice_t Code_choice
[] = {
2364 { 0, &hf_camel_local
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_camel_T_local
},
2365 { 1, &hf_camel_global
, BER_CLASS_UNI
, BER_UNI_TAG_OID
, BER_FLAGS_NOOWNTAG
, dissect_camel_T_global
},
2366 { 0, NULL
, 0, 0, 0, NULL
}
2370 dissect_camel_Code(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2371 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2372 Code_choice
, hf_index
, ett_camel_Code
,
2381 dissect_camel_T_value(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2382 /*XXX handle local form here */
2384 offset
=call_ber_oid_callback(camel_obj_id
, tvb
, offset
, actx
->pinfo
, tree
, NULL
);
2386 is_ExtensionField
= false;
2393 static const ber_sequence_t ExtensionField_sequence
[] = {
2394 { &hf_camel_type
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_Code
},
2395 { &hf_camel_criticality
, BER_CLASS_UNI
, BER_UNI_TAG_ENUMERATED
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_inap_CriticalityType
},
2396 { &hf_camel_value
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_value
},
2397 { NULL
, 0, 0, 0, NULL
}
2401 dissect_camel_ExtensionField(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2402 camel_obj_id
= NULL
;
2403 is_ExtensionField
=true;
2405 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2406 ExtensionField_sequence
, hf_index
, ett_camel_ExtensionField
);
2412 static const ber_sequence_t Extensions_sequence_of
[1] = {
2413 { &hf_camel_Extensions_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_ExtensionField
},
2417 dissect_camel_Extensions(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2418 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
2419 Extensions_sequence_of
, hf_index
, ett_camel_Extensions
);
2425 static const ber_sequence_t T_timeDurationCharging_sequence
[] = {
2426 { &hf_camel_maxCallPeriodDuration
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_864000
},
2427 { &hf_camel_releaseIfdurationExceeded
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
2428 { &hf_camel_timeDurationCharging_tariffSwitchInterval
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_86400
},
2429 { &hf_camel_audibleIndicator
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_T_audibleIndicator
},
2430 { &hf_camel_extensions
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
2431 { NULL
, 0, 0, 0, NULL
}
2435 dissect_camel_T_timeDurationCharging(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2436 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2437 T_timeDurationCharging_sequence
, hf_index
, ett_camel_T_timeDurationCharging
);
2443 static const value_string camel_CAMEL_AChBillingChargingCharacteristics_vals
[] = {
2444 { 0, "timeDurationCharging" },
2448 static const ber_choice_t CAMEL_AChBillingChargingCharacteristics_choice
[] = {
2449 { 0, &hf_camel_timeDurationCharging
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_timeDurationCharging
},
2450 { 0, NULL
, 0, 0, 0, NULL
}
2454 dissect_camel_CAMEL_AChBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2455 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2456 CAMEL_AChBillingChargingCharacteristics_choice
, hf_index
, ett_camel_CAMEL_AChBillingChargingCharacteristics
,
2465 dissect_camel_LegType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2466 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2473 static const value_string camel_ReceivingSideID_vals
[] = {
2474 { 1, "receivingSideID" },
2478 static const ber_choice_t ReceivingSideID_choice
[] = {
2479 { 1, &hf_camel_receivingSideID
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_LegType
},
2480 { 0, NULL
, 0, 0, 0, NULL
}
2484 dissect_camel_ReceivingSideID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2485 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2486 ReceivingSideID_choice
, hf_index
, ett_camel_ReceivingSideID
,
2495 dissect_camel_TimeIfNoTariffSwitch(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2496 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2505 dissect_camel_INTEGER_0_864000(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2506 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2513 static const ber_sequence_t TimeIfTariffSwitch_sequence
[] = {
2514 { &hf_camel_timeSinceTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_864000
},
2515 { &hf_camel_timeIfTariffSwitch_tariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_864000
},
2516 { NULL
, 0, 0, 0, NULL
}
2520 dissect_camel_TimeIfTariffSwitch(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2521 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2522 TimeIfTariffSwitch_sequence
, hf_index
, ett_camel_TimeIfTariffSwitch
);
2528 static const value_string camel_TimeInformation_vals
[] = {
2529 { 0, "timeIfNoTariffSwitch" },
2530 { 1, "timeIfTariffSwitch" },
2534 static const ber_choice_t TimeInformation_choice
[] = {
2535 { 0, &hf_camel_timeIfNoTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_TimeIfNoTariffSwitch
},
2536 { 1, &hf_camel_timeIfTariffSwitch
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_TimeIfTariffSwitch
},
2537 { 0, NULL
, 0, 0, 0, NULL
}
2541 dissect_camel_TimeInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2542 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2543 TimeInformation_choice
, hf_index
, ett_camel_TimeInformation
,
2550 static const ber_sequence_t T_timeDurationChargingResult_sequence
[] = {
2551 { &hf_camel_timeDurationChargingResultpartyToCharge
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ReceivingSideID
},
2552 { &hf_camel_timeInformation
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_TimeInformation
},
2553 { &hf_camel_legActive
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
2554 { &hf_camel_callLegReleasedAtTcpExpiry
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
2555 { &hf_camel_extensions
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
2556 { &hf_camel_aChChargingAddress
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_AChChargingAddress
},
2557 { NULL
, 0, 0, 0, NULL
}
2561 dissect_camel_T_timeDurationChargingResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2562 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2563 T_timeDurationChargingResult_sequence
, hf_index
, ett_camel_T_timeDurationChargingResult
);
2569 static const value_string camel_CAMEL_CallResult_vals
[] = {
2570 { 0, "timeDurationChargingResult" },
2574 static const ber_choice_t CAMEL_CallResult_choice
[] = {
2575 { 0, &hf_camel_timeDurationChargingResult
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_timeDurationChargingResult
},
2576 { 0, NULL
, 0, 0, 0, NULL
}
2580 dissect_camel_CAMEL_CallResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2581 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2582 CAMEL_CallResult_choice
, hf_index
, ett_camel_CAMEL_CallResult
,
2591 dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2592 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2599 static const value_string camel_SendingSideID_vals
[] = {
2600 { 0, "sendingSideID" },
2604 static const ber_choice_t SendingSideID_choice
[] = {
2605 { 0, &hf_camel_sendingSideID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_LegType
},
2606 { 0, NULL
, 0, 0, 0, NULL
}
2610 dissect_camel_SendingSideID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2611 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2612 SendingSideID_choice
, hf_index
, ett_camel_SendingSideID
,
2619 static const ber_sequence_t T_fci_fCIBCCCAMELsequence1_sequence
[] = {
2620 { &hf_camel_freeFormatData
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength
},
2621 { &hf_camel_fCIBCCCAMELsequence1partyToCharge
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_SendingSideID
},
2622 { &hf_camel_appendFreeFormatData
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AppendFreeFormatData
},
2623 { NULL
, 0, 0, 0, NULL
}
2627 dissect_camel_T_fci_fCIBCCCAMELsequence1(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2628 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2629 T_fci_fCIBCCCAMELsequence1_sequence
, hf_index
, ett_camel_T_fci_fCIBCCCAMELsequence1
);
2635 static const value_string camel_CAMEL_FCIBillingChargingCharacteristics_vals
[] = {
2636 { 0, "fCIBCCCAMELsequence1" },
2640 static const ber_choice_t CAMEL_FCIBillingChargingCharacteristics_choice
[] = {
2641 { 0, &hf_camel_fci_fCIBCCCAMELsequence1
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_fci_fCIBCCCAMELsequence1
},
2642 { 0, NULL
, 0, 0, 0, NULL
}
2646 dissect_camel_CAMEL_FCIBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2647 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2648 CAMEL_FCIBillingChargingCharacteristics_choice
, hf_index
, ett_camel_CAMEL_FCIBillingChargingCharacteristics
,
2657 dissect_camel_PDPID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2658 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2665 static const ber_sequence_t T_fciGPRS_fCIBCCCAMELsequence1_sequence
[] = {
2666 { &hf_camel_freeFormatData
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength
},
2667 { &hf_camel_pDPID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
2668 { &hf_camel_appendFreeFormatData
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AppendFreeFormatData
},
2669 { NULL
, 0, 0, 0, NULL
}
2673 dissect_camel_T_fciGPRS_fCIBCCCAMELsequence1(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2674 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2675 T_fciGPRS_fCIBCCCAMELsequence1_sequence
, hf_index
, ett_camel_T_fciGPRS_fCIBCCCAMELsequence1
);
2681 static const ber_sequence_t CAMEL_FCIGPRSBillingChargingCharacteristics_sequence
[] = {
2682 { &hf_camel_fciGPRS_fCIBCCCAMELsequence1
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_fciGPRS_fCIBCCCAMELsequence1
},
2683 { NULL
, 0, 0, 0, NULL
}
2687 dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2688 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2689 CAMEL_FCIGPRSBillingChargingCharacteristics_sequence
, hf_index
, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
);
2695 static const ber_sequence_t T_fciSMS_fCIBCCCAMELsequence1_sequence
[] = {
2696 { &hf_camel_freeFormatData
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength
},
2697 { &hf_camel_appendFreeFormatData
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AppendFreeFormatData
},
2698 { NULL
, 0, 0, 0, NULL
}
2702 dissect_camel_T_fciSMS_fCIBCCCAMELsequence1(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2703 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2704 T_fciSMS_fCIBCCCAMELsequence1_sequence
, hf_index
, ett_camel_T_fciSMS_fCIBCCCAMELsequence1
);
2710 static const value_string camel_CAMEL_FCISMSBillingChargingCharacteristics_vals
[] = {
2711 { 0, "fCIBCCCAMELsequence1" },
2715 static const ber_choice_t CAMEL_FCISMSBillingChargingCharacteristics_choice
[] = {
2716 { 0, &hf_camel_fciSMS_fCIBCCCAMELsequence1
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_fciSMS_fCIBCCCAMELsequence1
},
2717 { 0, NULL
, 0, 0, 0, NULL
}
2721 dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2722 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2723 CAMEL_FCISMSBillingChargingCharacteristics_choice
, hf_index
, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics
,
2730 static const ber_sequence_t CAMEL_SCIBillingChargingCharacteristicsAlt_sequence
[] = {
2731 { NULL
, 0, 0, 0, NULL
}
2735 dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2736 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2737 CAMEL_SCIBillingChargingCharacteristicsAlt_sequence
, hf_index
, ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt
);
2743 static const value_string camel_CAMEL_SCIBillingChargingCharacteristics_vals
[] = {
2744 { 0, "aOCBeforeAnswer" },
2745 { 1, "aOCAfterAnswer" },
2746 { 2, "aOC-extension" },
2750 static const ber_choice_t CAMEL_SCIBillingChargingCharacteristics_choice
[] = {
2751 { 0, &hf_camel_aOCBeforeAnswer
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AOCBeforeAnswer
},
2752 { 1, &hf_camel_aOCAfterAnswer
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_AOCSubsequent
},
2753 { 2, &hf_camel_aOC_extension
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_CAMEL_SCIBillingChargingCharacteristicsAlt
},
2754 { 0, NULL
, 0, 0, 0, NULL
}
2758 dissect_camel_CAMEL_SCIBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2759 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2760 CAMEL_SCIBillingChargingCharacteristics_choice
, hf_index
, ett_camel_CAMEL_SCIBillingChargingCharacteristics
,
2767 static const ber_sequence_t CAMEL_SCIGPRSBillingChargingCharacteristics_sequence
[] = {
2768 { &hf_camel_aOCGPRS
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AOCGPRS
},
2769 { &hf_camel_pDPID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
2770 { NULL
, 0, 0, 0, NULL
}
2774 dissect_camel_CAMEL_SCIGPRSBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2775 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2776 CAMEL_SCIGPRSBillingChargingCharacteristics_sequence
, hf_index
, ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
);
2784 dissect_camel_Carrier(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2785 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2792 static const value_string camel_CGEncountered_vals
[] = {
2793 { 0, "noCGencountered" },
2794 { 1, "manualCGencountered" },
2795 { 2, "scpOverload" },
2801 dissect_camel_CGEncountered(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2802 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2811 dissect_camel_ChargeIndicator(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2812 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2821 dissect_camel_LocationNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2822 tvbuff_t
*parameter_tvb
;
2823 proto_tree
*subtree
;
2825 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2832 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_locationnumber
);
2833 dissect_isup_location_number_parameter(parameter_tvb
, actx
->pinfo
, subtree
, NULL
);
2841 dissect_camel_ChargeNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2842 offset
= dissect_camel_LocationNumber(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
2850 dissect_camel_INTEGER_1_4294967295(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2851 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2858 static const value_string camel_ChargingCharacteristics_vals
[] = {
2859 { 0, "maxTransferredVolume" },
2860 { 1, "maxElapsedTime" },
2864 static const ber_choice_t ChargingCharacteristics_choice
[] = {
2865 { 0, &hf_camel_maxTransferredVolume
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_4294967295
},
2866 { 1, &hf_camel_maxElapsedTime
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_86400
},
2867 { 0, NULL
, 0, 0, 0, NULL
}
2871 dissect_camel_ChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2872 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2873 ChargingCharacteristics_choice
, hf_index
, ett_camel_ChargingCharacteristics
,
2882 dissect_camel_INTEGER_0_4294967295(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2883 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2890 static const ber_sequence_t T_volumeIfTariffSwitch_sequence
[] = {
2891 { &hf_camel_volumeSinceLastTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_4294967295
},
2892 { &hf_camel_volumeTariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_4294967295
},
2893 { NULL
, 0, 0, 0, NULL
}
2897 dissect_camel_T_volumeIfTariffSwitch(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2898 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2899 T_volumeIfTariffSwitch_sequence
, hf_index
, ett_camel_T_volumeIfTariffSwitch
);
2905 static const value_string camel_TransferredVolume_vals
[] = {
2906 { 0, "volumeIfNoTariffSwitch" },
2907 { 1, "volumeIfTariffSwitch" },
2911 static const ber_choice_t TransferredVolume_choice
[] = {
2912 { 0, &hf_camel_volumeIfNoTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_4294967295
},
2913 { 1, &hf_camel_volumeIfTariffSwitch
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_volumeIfTariffSwitch
},
2914 { 0, NULL
, 0, 0, 0, NULL
}
2918 dissect_camel_TransferredVolume(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2919 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2920 TransferredVolume_choice
, hf_index
, ett_camel_TransferredVolume
,
2929 dissect_camel_INTEGER_0_86400(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2930 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
2937 static const ber_sequence_t T_timeGPRSIfTariffSwitch_sequence
[] = {
2938 { &hf_camel_timeGPRSSinceLastTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_86400
},
2939 { &hf_camel_timeGPRSTariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_86400
},
2940 { NULL
, 0, 0, 0, NULL
}
2944 dissect_camel_T_timeGPRSIfTariffSwitch(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2945 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
2946 T_timeGPRSIfTariffSwitch_sequence
, hf_index
, ett_camel_T_timeGPRSIfTariffSwitch
);
2952 static const value_string camel_ElapsedTime_vals
[] = {
2953 { 0, "timeGPRSIfNoTariffSwitch" },
2954 { 1, "timeGPRSIfTariffSwitch" },
2958 static const ber_choice_t ElapsedTime_choice
[] = {
2959 { 0, &hf_camel_timeGPRSIfNoTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_86400
},
2960 { 1, &hf_camel_timeGPRSIfTariffSwitch
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_timeGPRSIfTariffSwitch
},
2961 { 0, NULL
, 0, 0, 0, NULL
}
2965 dissect_camel_ElapsedTime(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2966 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2967 ElapsedTime_choice
, hf_index
, ett_camel_ElapsedTime
,
2974 static const value_string camel_ChargingResult_vals
[] = {
2975 { 0, "transferredVolume" },
2976 { 1, "elapsedTime" },
2980 static const ber_choice_t ChargingResult_choice
[] = {
2981 { 0, &hf_camel_transferredVolume
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_TransferredVolume
},
2982 { 1, &hf_camel_elapsedTime
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_ElapsedTime
},
2983 { 0, NULL
, 0, 0, 0, NULL
}
2987 dissect_camel_ChargingResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2988 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
2989 ChargingResult_choice
, hf_index
, ett_camel_ChargingResult
,
2998 dissect_camel_INTEGER_0_255(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
2999 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3006 static const ber_sequence_t T_rO_VolumeIfTariffSwitch_sequence
[] = {
3007 { &hf_camel_rO_VolumeSinceLastTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
3008 { &hf_camel_rO_VolumeTariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
3009 { NULL
, 0, 0, 0, NULL
}
3013 dissect_camel_T_rO_VolumeIfTariffSwitch(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3014 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3015 T_rO_VolumeIfTariffSwitch_sequence
, hf_index
, ett_camel_T_rO_VolumeIfTariffSwitch
);
3021 static const value_string camel_TransferredVolumeRollOver_vals
[] = {
3022 { 0, "rO-VolumeIfNoTariffSwitch" },
3023 { 1, "rO-VolumeIfTariffSwitch" },
3027 static const ber_choice_t TransferredVolumeRollOver_choice
[] = {
3028 { 0, &hf_camel_rO_VolumeIfNoTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
3029 { 1, &hf_camel_rO_VolumeIfTariffSwitch
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_rO_VolumeIfTariffSwitch
},
3030 { 0, NULL
, 0, 0, 0, NULL
}
3034 dissect_camel_TransferredVolumeRollOver(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3035 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3036 TransferredVolumeRollOver_choice
, hf_index
, ett_camel_TransferredVolumeRollOver
,
3043 static const ber_sequence_t T_rO_TimeGPRSIfTariffSwitch_sequence
[] = {
3044 { &hf_camel_rO_TimeGPRSSinceLastTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
3045 { &hf_camel_rO_TimeGPRSTariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
3046 { NULL
, 0, 0, 0, NULL
}
3050 dissect_camel_T_rO_TimeGPRSIfTariffSwitch(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3051 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3052 T_rO_TimeGPRSIfTariffSwitch_sequence
, hf_index
, ett_camel_T_rO_TimeGPRSIfTariffSwitch
);
3058 static const value_string camel_ElapsedTimeRollOver_vals
[] = {
3059 { 0, "rO-TimeGPRSIfNoTariffSwitch" },
3060 { 1, "rO-TimeGPRSIfTariffSwitch" },
3064 static const ber_choice_t ElapsedTimeRollOver_choice
[] = {
3065 { 0, &hf_camel_rO_TimeGPRSIfNoTariffSwitch
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
3066 { 1, &hf_camel_rO_TimeGPRSIfTariffSwitch
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_rO_TimeGPRSIfTariffSwitch
},
3067 { 0, NULL
, 0, 0, 0, NULL
}
3071 dissect_camel_ElapsedTimeRollOver(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3072 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3073 ElapsedTimeRollOver_choice
, hf_index
, ett_camel_ElapsedTimeRollOver
,
3080 static const value_string camel_ChargingRollOver_vals
[] = {
3081 { 0, "transferredVolumeRollOver" },
3082 { 1, "elapsedTimeRollOver" },
3086 static const ber_choice_t ChargingRollOver_choice
[] = {
3087 { 0, &hf_camel_transferredVolumeRollOver
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_TransferredVolumeRollOver
},
3088 { 1, &hf_camel_elapsedTimeRollOver
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_ElapsedTimeRollOver
},
3089 { 0, NULL
, 0, 0, 0, NULL
}
3093 dissect_camel_ChargingRollOver(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3094 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3095 ChargingRollOver_choice
, hf_index
, ett_camel_ChargingRollOver
,
3102 static const value_string camel_ErrorTreatment_vals
[] = {
3103 { 0, "stdErrorAndInfo" },
3105 { 2, "repeatPrompt" },
3111 dissect_camel_ErrorTreatment(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3112 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3119 static const ber_sequence_t CollectedDigits_sequence
[] = {
3120 { &hf_camel_minimumNbOfDigits
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_30
},
3121 { &hf_camel_maximumNbOfDigits
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_30
},
3122 { &hf_camel_endOfReplyDigit
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1_2
},
3123 { &hf_camel_cancelDigit
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1_2
},
3124 { &hf_camel_startDigit
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1_2
},
3125 { &hf_camel_firstDigitTimeOut
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_127
},
3126 { &hf_camel_interDigitTimeOut
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_127
},
3127 { &hf_camel_errorTreatment
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ErrorTreatment
},
3128 { &hf_camel_interruptableAnnInd
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
3129 { &hf_camel_voiceInformation
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
3130 { &hf_camel_voiceBack
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
3131 { NULL
, 0, 0, 0, NULL
}
3135 dissect_camel_CollectedDigits(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3136 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3137 CollectedDigits_sequence
, hf_index
, ett_camel_CollectedDigits
);
3143 static const value_string camel_CollectedInfo_vals
[] = {
3144 { 0, "collectedDigits" },
3148 static const ber_choice_t CollectedInfo_choice
[] = {
3149 { 0, &hf_camel_collectedDigits
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CollectedDigits
},
3150 { 0, NULL
, 0, 0, 0, NULL
}
3154 dissect_camel_CollectedInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3155 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3156 CollectedInfo_choice
, hf_index
, ett_camel_CollectedInfo
,
3163 static const value_string camel_ConnectedNumberTreatmentInd_vals
[] = {
3164 { 0, "noINImpact" },
3165 { 1, "presentationRestricted" },
3166 { 2, "presentCalledINNumber" },
3167 { 3, "presentCallINNumberRestricted" },
3173 dissect_camel_ConnectedNumberTreatmentInd(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3174 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3181 static const value_string camel_ControlType_vals
[] = {
3182 { 0, "sCPOverloaded" },
3183 { 1, "manuallyInitiated" },
3189 dissect_camel_ControlType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3190 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3199 dissect_camel_ScfID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3200 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3207 static const ber_sequence_t CompoundCriteria_sequence
[] = {
3208 { &hf_camel_basicGapCriteria
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_BasicGapCriteria
},
3209 { &hf_camel_scfID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ScfID
},
3210 { NULL
, 0, 0, 0, NULL
}
3214 dissect_camel_CompoundCriteria(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3215 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3216 CompoundCriteria_sequence
, hf_index
, ett_camel_CompoundCriteria
);
3224 dissect_camel_CorrelationID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3225 offset
= dissect_camel_Digits(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
3233 dissect_camel_DateAndTime(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3237 * date_option = 1 european dd:mm:yyyy
3238 * date_option = 2 american mm:dd:yyyy
3242 * Output should be HH:MM:SS;dd/mm/yyyy
3243 * if european is selected, and HH:MM:SS;mm/dd/yyyy
3248 uint8_t i
= 0, curr_offset
;
3249 char camel_time
[CAMEL_DATE_AND_TIME_LEN
];
3250 char c
[CAMEL_DATE_AND_TIME_LEN
]; /*temporary container*/
3252 /* 2 digits per octet, 7 octets total + 5 delimiters */
3254 for (curr_offset
= 0; curr_offset
< 7 ; curr_offset
++)
3255 /*Loop to extract date*/
3257 digit_pair
= tvb_get_uint8(tvb
, curr_offset
);
3259 proto_tree_add_uint(tree
,
3266 proto_tree_add_uint(tree
,
3274 c
[i
] = camel_number_to_char( digit_pair
& 0x0F);
3276 c
[i
] = camel_number_to_char( digit_pair
>>4);
3280 /* Pretty print date */
3281 /* XXX - Should we use snprintf here instead of assembling the string by
3284 camel_time
[0] = c
[8];
3285 camel_time
[1] = c
[9];
3286 camel_time
[2] = ':';
3287 camel_time
[3] = c
[10];
3288 camel_time
[4] = c
[11];
3289 camel_time
[5] = ':';
3290 camel_time
[6] = c
[12];
3291 camel_time
[7] = c
[13];
3292 camel_time
[8] = ';';
3293 if ( EUROPEAN_DATE
== date_format
) /*european*/
3295 camel_time
[9] = c
[6]; /*day*/
3296 camel_time
[10] = c
[7];
3297 camel_time
[11] = '/';
3298 camel_time
[12] = c
[4]; /*month*/
3299 camel_time
[13] = c
[5];
3303 camel_time
[9] = c
[4]; /*month*/
3304 camel_time
[10] = c
[5];
3305 camel_time
[11] = '/';
3306 camel_time
[12] = c
[6]; /*day*/
3307 camel_time
[13] = c
[7];
3309 camel_time
[14] = '/';
3310 camel_time
[15] = c
[0];
3311 camel_time
[16] = c
[1];
3312 camel_time
[17] = c
[2];
3313 camel_time
[18] = c
[3];
3315 camel_time
[CAMEL_DATE_AND_TIME_LEN
- 1] = '\0';
3317 /*start = 0, length = 7*/
3319 proto_tree_add_string(tree
,
3326 return 7; /* 7 octets eaten*/
3332 static const ber_sequence_t DestinationRoutingAddress_sequence_of
[1] = {
3333 { &hf_camel_DestinationRoutingAddress_item
, BER_CLASS_UNI
, BER_UNI_TAG_OCTETSTRING
, BER_FLAGS_NOOWNTAG
, dissect_camel_CalledPartyNumber
},
3337 dissect_camel_DestinationRoutingAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3338 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
3339 DestinationRoutingAddress_sequence_of
, hf_index
, ett_camel_DestinationRoutingAddress
);
3345 static const value_string camel_InitiatorOfServiceChange_vals
[] = {
3353 dissect_camel_InitiatorOfServiceChange(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3354 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3361 static const value_string camel_NatureOfServiceChange_vals
[] = {
3362 { 0, "userInitiated" },
3363 { 1, "networkInitiated" },
3369 dissect_camel_NatureOfServiceChange(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3370 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3377 static const ber_sequence_t T_oServiceChangeSpecificInfo_sequence
[] = {
3378 { &hf_camel_ext_basicServiceCode
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
3379 { &hf_camel_initiatorOfServiceChange
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_InitiatorOfServiceChange
},
3380 { &hf_camel_natureOfServiceChange
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NatureOfServiceChange
},
3381 { NULL
, 0, 0, 0, NULL
}
3385 dissect_camel_T_oServiceChangeSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3386 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3387 T_oServiceChangeSpecificInfo_sequence
, hf_index
, ett_camel_T_oServiceChangeSpecificInfo
);
3393 static const ber_sequence_t T_tServiceChangeSpecificInfo_sequence
[] = {
3394 { &hf_camel_ext_basicServiceCode
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
3395 { &hf_camel_initiatorOfServiceChange
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_InitiatorOfServiceChange
},
3396 { &hf_camel_natureOfServiceChange
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NatureOfServiceChange
},
3397 { NULL
, 0, 0, 0, NULL
}
3401 dissect_camel_T_tServiceChangeSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3402 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3403 T_tServiceChangeSpecificInfo_sequence
, hf_index
, ett_camel_T_tServiceChangeSpecificInfo
);
3409 static const ber_sequence_t T_collectedInfoSpecificInfo_sequence
[] = {
3410 { &hf_camel_calledPartyNumber
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
3411 { NULL
, 0, 0, 0, NULL
}
3415 dissect_camel_T_collectedInfoSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3416 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3417 T_collectedInfoSpecificInfo_sequence
, hf_index
, ett_camel_T_collectedInfoSpecificInfo
);
3423 static const ber_sequence_t DpSpecificInfoAlt_sequence
[] = {
3424 { &hf_camel_oServiceChangeSpecificInfo
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_oServiceChangeSpecificInfo
},
3425 { &hf_camel_tServiceChangeSpecificInfo
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_tServiceChangeSpecificInfo
},
3426 { &hf_camel_collectedInfoSpecificInfo
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_T_collectedInfoSpecificInfo
},
3427 { NULL
, 0, 0, 0, NULL
}
3431 dissect_camel_DpSpecificInfoAlt(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3432 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3433 DpSpecificInfoAlt_sequence
, hf_index
, ett_camel_DpSpecificInfoAlt
);
3441 dissect_camel_T_pDPTypeOrganization(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3443 tvbuff_t
*parameter_tvb
;
3445 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3451 PDPTypeOrganization
= (tvb_get_uint8(parameter_tvb
,0) &0x0f);
3459 dissect_camel_T_pDPTypeNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3461 tvbuff_t
*parameter_tvb
;
3462 proto_tree
*subtree
;
3464 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3470 PDPTypeNumber
= tvb_get_uint8(parameter_tvb
,0);
3471 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_pdptypenumber
);
3472 switch (PDPTypeOrganization
){
3474 proto_tree_add_item(subtree
, hf_camel_PDPTypeNumber_etsi
, parameter_tvb
, 0, 1, ENC_BIG_ENDIAN
);
3477 proto_tree_add_item(subtree
, hf_camel_PDPTypeNumber_ietf
, parameter_tvb
, 0, 1, ENC_BIG_ENDIAN
);
3489 dissect_camel_T_pDPAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3491 tvbuff_t
*parameter_tvb
;
3492 proto_tree
*subtree
;
3494 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3500 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_pdptypenumber
);
3501 switch (PDPTypeOrganization
){
3505 switch(PDPTypeNumber
){
3506 case 0x21: /* IPv4 */
3507 proto_tree_add_item(subtree
, hf_camel_PDPAddress_IPv4
, parameter_tvb
, 0, tvb_reported_length(parameter_tvb
), ENC_BIG_ENDIAN
);
3509 case 0x57: /* IPv6 */
3510 proto_tree_add_item(subtree
, hf_camel_PDPAddress_IPv6
, parameter_tvb
, 0, tvb_reported_length(parameter_tvb
), ENC_NA
);
3524 static const ber_sequence_t EndUserAddress_sequence
[] = {
3525 { &hf_camel_pDPTypeOrganization
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_pDPTypeOrganization
},
3526 { &hf_camel_pDPTypeNumber
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_pDPTypeNumber
},
3527 { &hf_camel_pDPAddress
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_T_pDPAddress
},
3528 { NULL
, 0, 0, 0, NULL
}
3532 dissect_camel_EndUserAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3533 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3534 EndUserAddress_sequence
, hf_index
, ett_camel_EndUserAddress
);
3540 static const ber_sequence_t T_routeSelectFailureSpecificInfo_sequence
[] = {
3541 { &hf_camel_routeSelectfailureCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
3542 { NULL
, 0, 0, 0, NULL
}
3546 dissect_camel_T_routeSelectFailureSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3547 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3548 T_routeSelectFailureSpecificInfo_sequence
, hf_index
, ett_camel_T_routeSelectFailureSpecificInfo
);
3554 static const ber_sequence_t T_oCalledPartyBusySpecificInfo_sequence
[] = {
3555 { &hf_camel_busyCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
3556 { NULL
, 0, 0, 0, NULL
}
3560 dissect_camel_T_oCalledPartyBusySpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3561 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3562 T_oCalledPartyBusySpecificInfo_sequence
, hf_index
, ett_camel_T_oCalledPartyBusySpecificInfo
);
3568 static const ber_sequence_t T_oNoAnswerSpecificInfo_sequence
[] = {
3569 { NULL
, 0, 0, 0, NULL
}
3573 dissect_camel_T_oNoAnswerSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3574 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3575 T_oNoAnswerSpecificInfo_sequence
, hf_index
, ett_camel_T_oNoAnswerSpecificInfo
);
3581 static const ber_sequence_t T_oAnswerSpecificInfo_sequence
[] = {
3582 { &hf_camel_destinationAddress
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
3583 { &hf_camel_or_Call
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3584 { &hf_camel_forwardedCall
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3585 { &hf_camel_chargeIndicator
, BER_CLASS_CON
, 53, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ChargeIndicator
},
3586 { &hf_camel_ext_basicServiceCode
, BER_CLASS_CON
, 54, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
3587 { &hf_camel_ext_basicServiceCode2
, BER_CLASS_CON
, 55, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
3588 { NULL
, 0, 0, 0, NULL
}
3592 dissect_camel_T_oAnswerSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3593 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3594 T_oAnswerSpecificInfo_sequence
, hf_index
, ett_camel_T_oAnswerSpecificInfo
);
3600 static const value_string camel_T_omidCallEvents_vals
[] = {
3601 { 3, "dTMFDigitsCompleted" },
3602 { 4, "dTMFDigitsTimeOut" },
3606 static const ber_choice_t T_omidCallEvents_choice
[] = {
3607 { 3, &hf_camel_dTMFDigitsCompleted
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
3608 { 4, &hf_camel_dTMFDigitsTimeOut
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
3609 { 0, NULL
, 0, 0, 0, NULL
}
3613 dissect_camel_T_omidCallEvents(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3614 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3615 T_omidCallEvents_choice
, hf_index
, ett_camel_T_omidCallEvents
,
3622 static const ber_sequence_t T_oMidCallSpecificInfo_sequence
[] = {
3623 { &hf_camel_omidCallEvents
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_T_omidCallEvents
},
3624 { NULL
, 0, 0, 0, NULL
}
3628 dissect_camel_T_oMidCallSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3629 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3630 T_oMidCallSpecificInfo_sequence
, hf_index
, ett_camel_T_oMidCallSpecificInfo
);
3636 static const ber_sequence_t T_oDisconnectSpecificInfo_sequence
[] = {
3637 { &hf_camel_releaseCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
3638 { NULL
, 0, 0, 0, NULL
}
3642 dissect_camel_T_oDisconnectSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3643 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3644 T_oDisconnectSpecificInfo_sequence
, hf_index
, ett_camel_T_oDisconnectSpecificInfo
);
3650 static const ber_sequence_t T_tBusySpecificInfo_sequence
[] = {
3651 { &hf_camel_busyCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
3652 { &hf_camel_callForwarded
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3653 { &hf_camel_routeNotPermitted
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3654 { &hf_camel_forwardingDestinationNumber
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
3655 { NULL
, 0, 0, 0, NULL
}
3659 dissect_camel_T_tBusySpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3660 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3661 T_tBusySpecificInfo_sequence
, hf_index
, ett_camel_T_tBusySpecificInfo
);
3667 static const ber_sequence_t T_tNoAnswerSpecificInfo_sequence
[] = {
3668 { &hf_camel_callForwarded
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3669 { &hf_camel_forwardingDestinationNumber
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
3670 { NULL
, 0, 0, 0, NULL
}
3674 dissect_camel_T_tNoAnswerSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3675 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3676 T_tNoAnswerSpecificInfo_sequence
, hf_index
, ett_camel_T_tNoAnswerSpecificInfo
);
3682 static const ber_sequence_t T_tAnswerSpecificInfo_sequence
[] = {
3683 { &hf_camel_destinationAddress
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
3684 { &hf_camel_or_Call
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3685 { &hf_camel_forwardedCall
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3686 { &hf_camel_chargeIndicator
, BER_CLASS_CON
, 53, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ChargeIndicator
},
3687 { &hf_camel_ext_basicServiceCode
, BER_CLASS_CON
, 54, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
3688 { &hf_camel_ext_basicServiceCode2
, BER_CLASS_CON
, 55, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
3689 { NULL
, 0, 0, 0, NULL
}
3693 dissect_camel_T_tAnswerSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3694 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3695 T_tAnswerSpecificInfo_sequence
, hf_index
, ett_camel_T_tAnswerSpecificInfo
);
3701 static const value_string camel_T_tmidCallEvents_vals
[] = {
3702 { 3, "dTMFDigitsCompleted" },
3703 { 4, "dTMFDigitsTimeOut" },
3707 static const ber_choice_t T_tmidCallEvents_choice
[] = {
3708 { 3, &hf_camel_dTMFDigitsCompleted
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
3709 { 4, &hf_camel_dTMFDigitsTimeOut
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
3710 { 0, NULL
, 0, 0, 0, NULL
}
3714 dissect_camel_T_tmidCallEvents(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3715 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3716 T_tmidCallEvents_choice
, hf_index
, ett_camel_T_tmidCallEvents
,
3723 static const ber_sequence_t T_tMidCallSpecificInfo_sequence
[] = {
3724 { &hf_camel_tmidCallEvents
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_T_tmidCallEvents
},
3725 { NULL
, 0, 0, 0, NULL
}
3729 dissect_camel_T_tMidCallSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3730 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3731 T_tMidCallSpecificInfo_sequence
, hf_index
, ett_camel_T_tMidCallSpecificInfo
);
3737 static const ber_sequence_t T_tDisconnectSpecificInfo_sequence
[] = {
3738 { &hf_camel_releaseCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
3739 { NULL
, 0, 0, 0, NULL
}
3743 dissect_camel_T_tDisconnectSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3744 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3745 T_tDisconnectSpecificInfo_sequence
, hf_index
, ett_camel_T_tDisconnectSpecificInfo
);
3751 static const ber_sequence_t T_oTermSeizedSpecificInfo_sequence
[] = {
3752 { &hf_camel_locationInformation
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LocationInformation
},
3753 { NULL
, 0, 0, 0, NULL
}
3757 dissect_camel_T_oTermSeizedSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3758 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3759 T_oTermSeizedSpecificInfo_sequence
, hf_index
, ett_camel_T_oTermSeizedSpecificInfo
);
3765 static const ber_sequence_t T_callAcceptedSpecificInfo_sequence
[] = {
3766 { &hf_camel_locationInformation
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LocationInformation
},
3767 { NULL
, 0, 0, 0, NULL
}
3771 dissect_camel_T_callAcceptedSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3772 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3773 T_callAcceptedSpecificInfo_sequence
, hf_index
, ett_camel_T_callAcceptedSpecificInfo
);
3779 static const ber_sequence_t T_oAbandonSpecificInfo_sequence
[] = {
3780 { &hf_camel_routeNotPermitted
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3781 { NULL
, 0, 0, 0, NULL
}
3785 dissect_camel_T_oAbandonSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3786 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3787 T_oAbandonSpecificInfo_sequence
, hf_index
, ett_camel_T_oAbandonSpecificInfo
);
3793 static const ber_sequence_t MetDPCriterionAlt_sequence
[] = {
3794 { NULL
, 0, 0, 0, NULL
}
3798 dissect_camel_MetDPCriterionAlt(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3799 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3800 MetDPCriterionAlt_sequence
, hf_index
, ett_camel_MetDPCriterionAlt
);
3806 static const value_string camel_MetDPCriterion_vals
[] = {
3807 { 0, "enteringCellGlobalId" },
3808 { 1, "leavingCellGlobalId" },
3809 { 2, "enteringServiceAreaId" },
3810 { 3, "leavingServiceAreaId" },
3811 { 4, "enteringLocationAreaId" },
3812 { 5, "leavingLocationAreaId" },
3813 { 6, "inter-SystemHandOverToUMTS" },
3814 { 7, "inter-SystemHandOverToGSM" },
3815 { 8, "inter-PLMNHandOver" },
3816 { 9, "inter-MSCHandOver" },
3817 { 10, "metDPCriterionAlt" },
3821 static const ber_choice_t MetDPCriterion_choice
[] = {
3822 { 0, &hf_camel_enteringCellGlobalId
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength
},
3823 { 1, &hf_camel_leavingCellGlobalId
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength
},
3824 { 2, &hf_camel_enteringServiceAreaId
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength
},
3825 { 3, &hf_camel_leavingServiceAreaId
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength
},
3826 { 4, &hf_camel_enteringLocationAreaId
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_gsm_map_LAIFixedLength
},
3827 { 5, &hf_camel_leavingLocationAreaId
, BER_CLASS_CON
, 5, BER_FLAGS_IMPLTAG
, dissect_gsm_map_LAIFixedLength
},
3828 { 6, &hf_camel_inter_SystemHandOverToUMTS
, BER_CLASS_CON
, 6, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3829 { 7, &hf_camel_inter_SystemHandOverToGSM
, BER_CLASS_CON
, 7, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3830 { 8, &hf_camel_inter_PLMNHandOver
, BER_CLASS_CON
, 8, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3831 { 9, &hf_camel_inter_MSCHandOver
, BER_CLASS_CON
, 9, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
3832 { 10, &hf_camel_metDPCriterionAlt
, BER_CLASS_CON
, 10, BER_FLAGS_IMPLTAG
, dissect_camel_MetDPCriterionAlt
},
3833 { 0, NULL
, 0, 0, 0, NULL
}
3837 dissect_camel_MetDPCriterion(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3838 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3839 MetDPCriterion_choice
, hf_index
, ett_camel_MetDPCriterion
,
3846 static const ber_sequence_t MetDPCriteriaList_sequence_of
[1] = {
3847 { &hf_camel_MetDPCriteriaList_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_MetDPCriterion
},
3851 dissect_camel_MetDPCriteriaList(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3852 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
3853 MetDPCriteriaList_sequence_of
, hf_index
, ett_camel_MetDPCriteriaList
);
3859 static const ber_sequence_t T_oChangeOfPositionSpecificInfo_sequence
[] = {
3860 { &hf_camel_locationInformation
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LocationInformation
},
3861 { &hf_camel_metDPCriteriaList
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_MetDPCriteriaList
},
3862 { NULL
, 0, 0, 0, NULL
}
3866 dissect_camel_T_oChangeOfPositionSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3867 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3868 T_oChangeOfPositionSpecificInfo_sequence
, hf_index
, ett_camel_T_oChangeOfPositionSpecificInfo
);
3874 static const ber_sequence_t T_tChangeOfPositionSpecificInfo_sequence
[] = {
3875 { &hf_camel_locationInformation
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LocationInformation
},
3876 { &hf_camel_metDPCriteriaList
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_MetDPCriteriaList
},
3877 { NULL
, 0, 0, 0, NULL
}
3881 dissect_camel_T_tChangeOfPositionSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3882 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3883 T_tChangeOfPositionSpecificInfo_sequence
, hf_index
, ett_camel_T_tChangeOfPositionSpecificInfo
);
3889 static const value_string camel_EventSpecificInformationBCSM_vals
[] = {
3890 { 2, "routeSelectFailureSpecificInfo" },
3891 { 3, "oCalledPartyBusySpecificInfo" },
3892 { 4, "oNoAnswerSpecificInfo" },
3893 { 5, "oAnswerSpecificInfo" },
3894 { 6, "oMidCallSpecificInfo" },
3895 { 7, "oDisconnectSpecificInfo" },
3896 { 8, "tBusySpecificInfo" },
3897 { 9, "tNoAnswerSpecificInfo" },
3898 { 10, "tAnswerSpecificInfo" },
3899 { 11, "tMidCallSpecificInfo" },
3900 { 12, "tDisconnectSpecificInfo" },
3901 { 13, "oTermSeizedSpecificInfo" },
3902 { 20, "callAcceptedSpecificInfo" },
3903 { 21, "oAbandonSpecificInfo" },
3904 { 50, "oChangeOfPositionSpecificInfo" },
3905 { 51, "tChangeOfPositionSpecificInfo" },
3906 { 52, "dpSpecificInfoAlt" },
3910 static const ber_choice_t EventSpecificInformationBCSM_choice
[] = {
3911 { 2, &hf_camel_routeSelectFailureSpecificInfo
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_T_routeSelectFailureSpecificInfo
},
3912 { 3, &hf_camel_oCalledPartyBusySpecificInfo
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_T_oCalledPartyBusySpecificInfo
},
3913 { 4, &hf_camel_oNoAnswerSpecificInfo
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_T_oNoAnswerSpecificInfo
},
3914 { 5, &hf_camel_oAnswerSpecificInfo
, BER_CLASS_CON
, 5, BER_FLAGS_IMPLTAG
, dissect_camel_T_oAnswerSpecificInfo
},
3915 { 6, &hf_camel_oMidCallSpecificInfo
, BER_CLASS_CON
, 6, BER_FLAGS_IMPLTAG
, dissect_camel_T_oMidCallSpecificInfo
},
3916 { 7, &hf_camel_oDisconnectSpecificInfo
, BER_CLASS_CON
, 7, BER_FLAGS_IMPLTAG
, dissect_camel_T_oDisconnectSpecificInfo
},
3917 { 8, &hf_camel_tBusySpecificInfo
, BER_CLASS_CON
, 8, BER_FLAGS_IMPLTAG
, dissect_camel_T_tBusySpecificInfo
},
3918 { 9, &hf_camel_tNoAnswerSpecificInfo
, BER_CLASS_CON
, 9, BER_FLAGS_IMPLTAG
, dissect_camel_T_tNoAnswerSpecificInfo
},
3919 { 10, &hf_camel_tAnswerSpecificInfo
, BER_CLASS_CON
, 10, BER_FLAGS_IMPLTAG
, dissect_camel_T_tAnswerSpecificInfo
},
3920 { 11, &hf_camel_tMidCallSpecificInfo
, BER_CLASS_CON
, 11, BER_FLAGS_IMPLTAG
, dissect_camel_T_tMidCallSpecificInfo
},
3921 { 12, &hf_camel_tDisconnectSpecificInfo
, BER_CLASS_CON
, 12, BER_FLAGS_IMPLTAG
, dissect_camel_T_tDisconnectSpecificInfo
},
3922 { 13, &hf_camel_oTermSeizedSpecificInfo
, BER_CLASS_CON
, 13, BER_FLAGS_IMPLTAG
, dissect_camel_T_oTermSeizedSpecificInfo
},
3923 { 20, &hf_camel_callAcceptedSpecificInfo
, BER_CLASS_CON
, 20, BER_FLAGS_IMPLTAG
, dissect_camel_T_callAcceptedSpecificInfo
},
3924 { 21, &hf_camel_oAbandonSpecificInfo
, BER_CLASS_CON
, 21, BER_FLAGS_IMPLTAG
, dissect_camel_T_oAbandonSpecificInfo
},
3925 { 50, &hf_camel_oChangeOfPositionSpecificInfo
, BER_CLASS_CON
, 50, BER_FLAGS_IMPLTAG
, dissect_camel_T_oChangeOfPositionSpecificInfo
},
3926 { 51, &hf_camel_tChangeOfPositionSpecificInfo
, BER_CLASS_CON
, 51, BER_FLAGS_IMPLTAG
, dissect_camel_T_tChangeOfPositionSpecificInfo
},
3927 { 52, &hf_camel_dpSpecificInfoAlt
, BER_CLASS_CON
, 52, BER_FLAGS_IMPLTAG
, dissect_camel_DpSpecificInfoAlt
},
3928 { 0, NULL
, 0, 0, 0, NULL
}
3932 dissect_camel_EventSpecificInformationBCSM(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3933 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
3934 EventSpecificInformationBCSM_choice
, hf_index
, ett_camel_EventSpecificInformationBCSM
,
3941 static const value_string camel_MO_SMSCause_vals
[] = {
3942 { 0, "systemFailure" },
3943 { 1, "unexpectedDataValue" },
3944 { 2, "facilityNotSupported" },
3945 { 3, "sM-DeliveryFailure" },
3946 { 4, "releaseFromRadioInterface" },
3952 dissect_camel_MO_SMSCause(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3953 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3960 static const ber_sequence_t T_o_smsFailureSpecificInfo_sequence
[] = {
3961 { &hf_camel_mo_smsfailureCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_MO_SMSCause
},
3962 { NULL
, 0, 0, 0, NULL
}
3966 dissect_camel_T_o_smsFailureSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3967 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3968 T_o_smsFailureSpecificInfo_sequence
, hf_index
, ett_camel_T_o_smsFailureSpecificInfo
);
3974 static const ber_sequence_t T_o_smsSubmissionSpecificInfo_sequence
[] = {
3975 { NULL
, 0, 0, 0, NULL
}
3979 dissect_camel_T_o_smsSubmissionSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3980 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
3981 T_o_smsSubmissionSpecificInfo_sequence
, hf_index
, ett_camel_T_o_smsSubmissionSpecificInfo
);
3989 dissect_camel_MT_SMSCause(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
3990 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
3997 static const ber_sequence_t T_t_smsFailureSpecificInfo_sequence
[] = {
3998 { &hf_camel_t_smsfailureCause
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_MT_SMSCause
},
3999 { NULL
, 0, 0, 0, NULL
}
4003 dissect_camel_T_t_smsFailureSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4004 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4005 T_t_smsFailureSpecificInfo_sequence
, hf_index
, ett_camel_T_t_smsFailureSpecificInfo
);
4011 static const ber_sequence_t T_t_smsDeliverySpecificInfo_sequence
[] = {
4012 { NULL
, 0, 0, 0, NULL
}
4016 dissect_camel_T_t_smsDeliverySpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4017 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4018 T_t_smsDeliverySpecificInfo_sequence
, hf_index
, ett_camel_T_t_smsDeliverySpecificInfo
);
4024 static const value_string camel_EventSpecificInformationSMS_vals
[] = {
4025 { 0, "o-smsFailureSpecificInfo" },
4026 { 1, "o-smsSubmissionSpecificInfo" },
4027 { 2, "t-smsFailureSpecificInfo" },
4028 { 3, "t-smsDeliverySpecificInfo" },
4032 static const ber_choice_t EventSpecificInformationSMS_choice
[] = {
4033 { 0, &hf_camel_o_smsFailureSpecificInfo
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_o_smsFailureSpecificInfo
},
4034 { 1, &hf_camel_o_smsSubmissionSpecificInfo
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_o_smsSubmissionSpecificInfo
},
4035 { 2, &hf_camel_t_smsFailureSpecificInfo
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_T_t_smsFailureSpecificInfo
},
4036 { 3, &hf_camel_t_smsDeliverySpecificInfo
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_T_t_smsDeliverySpecificInfo
},
4037 { 0, NULL
, 0, 0, 0, NULL
}
4041 dissect_camel_EventSpecificInformationSMS(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4042 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4043 EventSpecificInformationSMS_choice
, hf_index
, ett_camel_EventSpecificInformationSMS
,
4050 static const value_string camel_EventTypeSMS_vals
[] = {
4051 { 1, "sms-CollectedInfo" },
4052 { 2, "o-smsFailure" },
4053 { 3, "o-smsSubmission" },
4054 { 11, "sms-DeliveryRequested" },
4055 { 12, "t-smsFailure" },
4056 { 13, "t-smsDelivery" },
4062 dissect_camel_EventTypeSMS(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4063 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4072 dissect_camel_FCIBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4073 tvbuff_t
*parameter_tvb
;
4074 proto_tree
*subtree
;
4076 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4081 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_FCIBillingChargingCharacteristics
);
4082 dissect_camel_CAMEL_FCIBillingChargingCharacteristics(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_FCIBillingChargingCharacteristics
);
4091 dissect_camel_FCIGPRSBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4092 tvbuff_t
*parameter_tvb
;
4093 proto_tree
*subtree
;
4095 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4100 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
);
4101 dissect_camel_CAMEL_FCIGPRSBillingChargingCharacteristics(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
);
4110 dissect_camel_FCISMSBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4111 tvbuff_t
*parameter_tvb
;
4112 proto_tree
*subtree
;
4114 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4119 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_FCISMSBillingChargingCharacteristics
);
4120 dissect_camel_CAMEL_FCISMSBillingChargingCharacteristics(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_FCISMSBillingChargingCharacteristics
);
4127 static const ber_sequence_t ForwardServiceInteractionInd_sequence
[] = {
4128 { &hf_camel_conferenceTreatmentIndicator
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
4129 { &hf_camel_callDiversionTreatmentIndicator
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
4130 { &hf_camel_callingPartyRestrictionIndicator
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
4131 { NULL
, 0, 0, 0, NULL
}
4135 dissect_camel_ForwardServiceInteractionInd(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4136 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4137 ForwardServiceInteractionInd_sequence
, hf_index
, ett_camel_ForwardServiceInteractionInd
);
4143 static const value_string camel_GapCriteria_vals
[] = {
4144 { 0, "basicGapCriteria" },
4145 { 1, "compoundGapCriteria" },
4149 static const ber_choice_t GapCriteria_choice
[] = {
4150 { 0, &hf_camel_basicGapCriteria
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
, dissect_camel_BasicGapCriteria
},
4151 { 1, &hf_camel_compoundGapCriteria
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_CompoundCriteria
},
4152 { 0, NULL
, 0, 0, 0, NULL
}
4156 dissect_camel_GapCriteria(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4157 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4158 GapCriteria_choice
, hf_index
, ett_camel_GapCriteria
,
4165 static const ber_sequence_t GapIndicators_sequence
[] = {
4166 { &hf_camel_gapIndicatorsDuration
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_Duration
},
4167 { &hf_camel_gapInterval
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_inap_Interval
},
4168 { NULL
, 0, 0, 0, NULL
}
4172 dissect_camel_GapIndicators(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4173 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4174 GapIndicators_sequence
, hf_index
, ett_camel_GapIndicators
);
4182 dissect_camel_IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4183 offset
= dissect_ber_restricted_string(implicit_tag
, BER_UNI_TAG_IA5String
,
4184 actx
, tree
, tvb
, offset
, hf_index
,
4193 dissect_camel_OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4194 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4201 static const ber_sequence_t T_text_sequence
[] = {
4202 { &hf_camel_messageContent
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength
},
4203 { &hf_camel_attributes
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength
},
4204 { NULL
, 0, 0, 0, NULL
}
4208 dissect_camel_T_text(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4209 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4210 T_text_sequence
, hf_index
, ett_camel_T_text
);
4216 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4_sequence_of
[1] = {
4217 { &hf_camel_elementaryMessageIDs_item
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_inap_Integer4
},
4221 dissect_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4222 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
4223 SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4_sequence_of
, hf_index
, ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4
);
4231 dissect_camel_OCTET_STRING_SIZE_2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4232 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4241 dissect_camel_OCTET_STRING_SIZE_4(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4242 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4249 static const value_string camel_VariablePart_vals
[] = {
4258 static const ber_choice_t VariablePart_choice
[] = {
4259 { 0, &hf_camel_integer
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
4260 { 1, &hf_camel_number
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
4261 { 2, &hf_camel_time
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_2
},
4262 { 3, &hf_camel_date
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_4
},
4263 { 4, &hf_camel_price
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_4
},
4264 { 0, NULL
, 0, 0, 0, NULL
}
4268 dissect_camel_VariablePart(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4269 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4270 VariablePart_choice
, hf_index
, ett_camel_VariablePart
,
4277 static const ber_sequence_t SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of
[1] = {
4278 { &hf_camel_variableParts_item
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_VariablePart
},
4282 dissect_camel_SEQUENCE_SIZE_1_5_OF_VariablePart(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4283 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
4284 SEQUENCE_SIZE_1_5_OF_VariablePart_sequence_of
, hf_index
, ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart
);
4290 static const ber_sequence_t T_variableMessage_sequence
[] = {
4291 { &hf_camel_elementaryMessageID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
4292 { &hf_camel_variableParts
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_5_OF_VariablePart
},
4293 { NULL
, 0, 0, 0, NULL
}
4297 dissect_camel_T_variableMessage(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4298 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4299 T_variableMessage_sequence
, hf_index
, ett_camel_T_variableMessage
);
4305 static const value_string camel_MessageID_vals
[] = {
4306 { 0, "elementaryMessageID" },
4308 { 29, "elementaryMessageIDs" },
4309 { 30, "variableMessage" },
4313 static const ber_choice_t MessageID_choice
[] = {
4314 { 0, &hf_camel_elementaryMessageID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
4315 { 1, &hf_camel_text
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_text
},
4316 { 29, &hf_camel_elementaryMessageIDs
, BER_CLASS_CON
, 29, BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4
},
4317 { 30, &hf_camel_variableMessage
, BER_CLASS_CON
, 30, BER_FLAGS_IMPLTAG
, dissect_camel_T_variableMessage
},
4318 { 0, NULL
, 0, 0, 0, NULL
}
4322 dissect_camel_MessageID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4323 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4324 MessageID_choice
, hf_index
, ett_camel_MessageID
,
4333 dissect_camel_INTEGER_0_32767(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4334 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4341 static const ber_sequence_t InbandInfo_sequence
[] = {
4342 { &hf_camel_messageID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_MessageID
},
4343 { &hf_camel_numberOfRepetitions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_127
},
4344 { &hf_camel_inbandInfoDuration
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_32767
},
4345 { &hf_camel_interval
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_32767
},
4346 { NULL
, 0, 0, 0, NULL
}
4350 dissect_camel_InbandInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4351 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4352 InbandInfo_sequence
, hf_index
, ett_camel_InbandInfo
);
4358 static const ber_sequence_t Tone_sequence
[] = {
4359 { &hf_camel_toneID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
4360 { &hf_camel_toneDuration
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
4361 { NULL
, 0, 0, 0, NULL
}
4365 dissect_camel_Tone(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4366 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4367 Tone_sequence
, hf_index
, ett_camel_Tone
);
4373 static const value_string camel_InformationToSend_vals
[] = {
4374 { 0, "inbandInfo" },
4379 static const ber_choice_t InformationToSend_choice
[] = {
4380 { 0, &hf_camel_inbandInfo
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_InbandInfo
},
4381 { 1, &hf_camel_tone
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_Tone
},
4382 { 0, NULL
, 0, 0, 0, NULL
}
4386 dissect_camel_InformationToSend(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4387 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4388 InformationToSend_choice
, hf_index
, ett_camel_InformationToSend
,
4395 static const value_string camel_GapTreatment_vals
[] = {
4396 { 0, "informationToSend" },
4397 { 1, "releaseCause" },
4401 static const ber_choice_t GapTreatment_choice
[] = {
4402 { 0, &hf_camel_informationToSend
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_InformationToSend
},
4403 { 1, &hf_camel_releaseCause
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
4404 { 0, NULL
, 0, 0, 0, NULL
}
4408 dissect_camel_GapTreatment(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4409 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4410 GapTreatment_choice
, hf_index
, ett_camel_GapTreatment
,
4419 dissect_camel_GenericNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4420 tvbuff_t
*parameter_tvb
;
4422 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4429 dissect_isup_generic_number_parameter(parameter_tvb
, actx
->pinfo
, tree
, NULL
);
4435 static const ber_sequence_t GenericNumbers_set_of
[1] = {
4436 { &hf_camel_GenericNumbers_item
, BER_CLASS_UNI
, BER_UNI_TAG_OCTETSTRING
, BER_FLAGS_NOOWNTAG
, dissect_camel_GenericNumber
},
4440 dissect_camel_GenericNumbers(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4441 offset
= dissect_ber_set_of(implicit_tag
, actx
, tree
, tvb
, offset
,
4442 GenericNumbers_set_of
, hf_index
, ett_camel_GenericNumbers
);
4448 static const value_string camel_GPRS_QoS_vals
[] = {
4449 { 0, "short-QoS-format" },
4450 { 1, "long-QoS-format" },
4454 static const ber_choice_t GPRS_QoS_choice
[] = {
4455 { 0, &hf_camel_short_QoS_format
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_QoS_Subscribed
},
4456 { 1, &hf_camel_long_QoS_format
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_Ext_QoS_Subscribed
},
4457 { 0, NULL
, 0, 0, 0, NULL
}
4461 dissect_camel_GPRS_QoS(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4462 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4463 GPRS_QoS_choice
, hf_index
, ett_camel_GPRS_QoS
,
4470 static const ber_sequence_t GPRS_QoS_Extension_sequence
[] = {
4471 { &hf_camel_supplement_to_long_QoS_format
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_Ext2_QoS_Subscribed
},
4472 { &hf_camel_additionalSupplement
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_Ext3_QoS_Subscribed
},
4473 { NULL
, 0, 0, 0, NULL
}
4477 dissect_camel_GPRS_QoS_Extension(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4478 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4479 GPRS_QoS_Extension_sequence
, hf_index
, ett_camel_GPRS_QoS_Extension
);
4487 dissect_camel_GPRSCause(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4488 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4495 static const value_string camel_GPRSEventType_vals
[] = {
4497 { 2, "attachChangeOfPosition" },
4499 { 11, "pdp-ContextEstablishment" },
4500 { 12, "pdp-ContextEstablishmentAcknowledgement" },
4501 { 13, "disonnect" },
4502 { 14, "pdp-ContextChangeOfPosition" },
4508 dissect_camel_GPRSEventType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4509 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4516 static const ber_sequence_t GPRSEvent_sequence
[] = {
4517 { &hf_camel_gPRSEventType
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_GPRSEventType
},
4518 { &hf_camel_monitorMode
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_MonitorMode
},
4519 { NULL
, 0, 0, 0, NULL
}
4523 dissect_camel_GPRSEvent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4524 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4525 GPRSEvent_sequence
, hf_index
, ett_camel_GPRSEvent
);
4533 dissect_camel_T_cellGlobalIdOrServiceAreaIdOrLAI(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4534 proto_tree
*subtree
;
4537 start_offset
= offset
;
4538 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4542 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_pdptypenumber
);
4544 if (tvb_reported_length_remaining(tvb
,start_offset
) == 7){
4545 dissect_gsm_map_CellGlobalIdOrServiceAreaIdFixedLength(true, tvb
, start_offset
, actx
, subtree
, hf_camel_cellGlobalIdOrServiceAreaIdFixedLength
);
4547 dissect_gsm_map_LAIFixedLength(true, tvb
, start_offset
, actx
, subtree
, hf_camel_locationAreaId
);
4556 dissect_camel_UserCSGInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4557 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4564 static const ber_sequence_t LocationInformationGPRS_sequence
[] = {
4565 { &hf_camel_cellGlobalIdOrServiceAreaIdOrLAI
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_T_cellGlobalIdOrServiceAreaIdOrLAI
},
4566 { &hf_camel_routeingAreaIdentity
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_RAIdentity
},
4567 { &hf_camel_geographicalInformation
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_GeographicalInformation
},
4568 { &hf_camel_sgsn_Number
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
4569 { &hf_camel_selectedLSAIdentity
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LSAIdentity
},
4570 { &hf_camel_extensionContainer
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ExtensionContainer
},
4571 { &hf_camel_sai_Present
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
4572 { &hf_camel_userCSGInformation
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_UserCSGInformation
},
4573 { NULL
, 0, 0, 0, NULL
}
4577 dissect_camel_LocationInformationGPRS(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4578 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4579 LocationInformationGPRS_sequence
, hf_index
, ett_camel_LocationInformationGPRS
);
4585 static const ber_sequence_t T_attachChangeOfPositionSpecificInformation_sequence
[] = {
4586 { &hf_camel_locationInformationGPRS
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationInformationGPRS
},
4587 { NULL
, 0, 0, 0, NULL
}
4591 dissect_camel_T_attachChangeOfPositionSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4592 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4593 T_attachChangeOfPositionSpecificInformation_sequence
, hf_index
, ett_camel_T_attachChangeOfPositionSpecificInformation
);
4599 static const ber_sequence_t QualityOfService_sequence
[] = {
4600 { &hf_camel_requested_QoS
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_GPRS_QoS
},
4601 { &hf_camel_subscribed_QoS
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_GPRS_QoS
},
4602 { &hf_camel_negotiated_QoS
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_GPRS_QoS
},
4603 { &hf_camel_requested_QoS_Extension
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_GPRS_QoS_Extension
},
4604 { &hf_camel_subscribed_QoS_Extension
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_GPRS_QoS_Extension
},
4605 { &hf_camel_negotiated_QoS_Extension
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_GPRS_QoS_Extension
},
4606 { NULL
, 0, 0, 0, NULL
}
4610 dissect_camel_QualityOfService(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4611 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4612 QualityOfService_sequence
, hf_index
, ett_camel_QualityOfService
);
4620 dissect_camel_TimeAndTimezone(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4621 tvbuff_t
*parameter_tvb
;
4622 proto_tree
*subtree
;
4635 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4641 length
= tvb_reported_length(parameter_tvb
);
4642 if (length
< 8 /*cAPSpecificBoundSetminTimeAndTimezoneLength*/){
4643 expert_add_info(actx
->pinfo
, actx
->created_item
, &ei_camel_par_wrong_length
);
4646 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_timeandtimezone
);
4647 item
= proto_tree_add_item_ret_display_string(subtree
, hf_camel_timeandtimezone_time
, parameter_tvb
, 0, 7, ENC_BCD_DIGITS_0_9
|ENC_LITTLE_ENDIAN
, actx
->pinfo
->pool
, &digit_str
);
4650 The Time Zone indicates the difference, expressed in quarters of an hour, between the local time and GMT. In the first of the two semi octets,
4651 the first bit (bit 3 of the seventh octet of the TP Service Centre Time Stamp field) represents the algebraic sign of this difference (0: positive, 1: negative).
4653 oct
= tvb_get_uint8(parameter_tvb
,7);
4655 /* packet-gsm_sms.c time dis_field_scts_aux() */
4656 tz
= (oct
>> 4) + (oct
& 0x07) * 10;
4657 tz
= (oct
& 0x08) ? -tz
: tz
;
4659 proto_tree_add_int_format_value(subtree
, hf_camel_timeandtimezone_tz
, parameter_tvb
, 7, 1, tz
, "GMT %+d hours %d minutes", tz
/ 4, tz
% 4 * 15);
4661 /* ENC_BCD_DIGITS_0_9 truncates if the nibble is 0xf. */
4662 if (strlen(digit_str
) < 14 || strchr(digit_str
, '?')) {
4663 expert_add_info(actx
->pinfo
, item
, &ei_camel_bcd_not_digit
);
4667 (void) g_strlcpy(year
, digit_str
, 5);
4668 (void) g_strlcpy(month
, digit_str
+4, 3);
4669 (void) g_strlcpy(day
, digit_str
+6, 3);
4670 (void) g_strlcpy(hour
, digit_str
+8, 3);
4671 (void) g_strlcpy(minute
, digit_str
+10, 3);
4672 (void) g_strlcpy(second
, digit_str
+12, 3);
4674 proto_item_append_text(item
, " (%s-%s-%s %s:%s:%s)",year
,month
,day
,hour
,minute
,second
);
4681 static const ber_sequence_t T_pdp_ContextchangeOfPositionSpecificInformation_sequence
[] = {
4682 { &hf_camel_accessPointName
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AccessPointName
},
4683 { &hf_camel_chargingID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_GPRSChargingID
},
4684 { &hf_camel_locationInformationGPRS
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationInformationGPRS
},
4685 { &hf_camel_endUserAddress
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_EndUserAddress
},
4686 { &hf_camel_qualityOfService
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_QualityOfService
},
4687 { &hf_camel_timeAndTimeZone
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimeAndTimezone
},
4688 { &hf_camel_gGSNAddress
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_GSN_Address
},
4689 { NULL
, 0, 0, 0, NULL
}
4693 dissect_camel_T_pdp_ContextchangeOfPositionSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4694 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4695 T_pdp_ContextchangeOfPositionSpecificInformation_sequence
, hf_index
, ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation
);
4701 static const value_string camel_InitiatingEntity_vals
[] = {
4702 { 0, "mobileStation" },
4711 dissect_camel_InitiatingEntity(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4712 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4719 static const ber_sequence_t T_detachSpecificInformation_sequence
[] = {
4720 { &hf_camel_initiatingEntity
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_InitiatingEntity
},
4721 { &hf_camel_routeingAreaUpdate
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
4722 { NULL
, 0, 0, 0, NULL
}
4726 dissect_camel_T_detachSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4727 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4728 T_detachSpecificInformation_sequence
, hf_index
, ett_camel_T_detachSpecificInformation
);
4734 static const ber_sequence_t T_disconnectSpecificInformation_sequence
[] = {
4735 { &hf_camel_initiatingEntity
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_InitiatingEntity
},
4736 { &hf_camel_routeingAreaUpdate
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
4737 { NULL
, 0, 0, 0, NULL
}
4741 dissect_camel_T_disconnectSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4742 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4743 T_disconnectSpecificInformation_sequence
, hf_index
, ett_camel_T_disconnectSpecificInformation
);
4749 static const value_string camel_PDPInitiationType_vals
[] = {
4750 { 0, "mSInitiated" },
4751 { 1, "networkInitiated" },
4757 dissect_camel_PDPInitiationType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4758 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4765 static const ber_sequence_t T_pDPContextEstablishmentSpecificInformation_sequence
[] = {
4766 { &hf_camel_accessPointName
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AccessPointName
},
4767 { &hf_camel_endUserAddress
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_EndUserAddress
},
4768 { &hf_camel_qualityOfService
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_QualityOfService
},
4769 { &hf_camel_locationInformationGPRS
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationInformationGPRS
},
4770 { &hf_camel_timeAndTimeZone
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimeAndTimezone
},
4771 { &hf_camel_pDPInitiationType
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPInitiationType
},
4772 { &hf_camel_secondaryPDP_context
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
4773 { NULL
, 0, 0, 0, NULL
}
4777 dissect_camel_T_pDPContextEstablishmentSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4778 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4779 T_pDPContextEstablishmentSpecificInformation_sequence
, hf_index
, ett_camel_T_pDPContextEstablishmentSpecificInformation
);
4785 static const ber_sequence_t T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence
[] = {
4786 { &hf_camel_accessPointName
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AccessPointName
},
4787 { &hf_camel_chargingID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_GPRSChargingID
},
4788 { &hf_camel_endUserAddress
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_EndUserAddress
},
4789 { &hf_camel_qualityOfService
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_QualityOfService
},
4790 { &hf_camel_locationInformationGPRS
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationInformationGPRS
},
4791 { &hf_camel_timeAndTimeZone
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimeAndTimezone
},
4792 { &hf_camel_gGSNAddress
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_GSN_Address
},
4793 { NULL
, 0, 0, 0, NULL
}
4797 dissect_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4798 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4799 T_pDPContextEstablishmentAcknowledgementSpecificInformation_sequence
, hf_index
, ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation
);
4805 static const value_string camel_GPRSEventSpecificInformation_vals
[] = {
4806 { 0, "attachChangeOfPositionSpecificInformation" },
4807 { 1, "pdp-ContextchangeOfPositionSpecificInformation" },
4808 { 2, "detachSpecificInformation" },
4809 { 3, "disconnectSpecificInformation" },
4810 { 4, "pDPContextEstablishmentSpecificInformation" },
4811 { 5, "pDPContextEstablishmentAcknowledgementSpecificInformation" },
4815 static const ber_choice_t GPRSEventSpecificInformation_choice
[] = {
4816 { 0, &hf_camel_attachChangeOfPositionSpecificInformation
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_attachChangeOfPositionSpecificInformation
},
4817 { 1, &hf_camel_pdp_ContextchangeOfPositionSpecificInformation
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_T_pdp_ContextchangeOfPositionSpecificInformation
},
4818 { 2, &hf_camel_detachSpecificInformation
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_T_detachSpecificInformation
},
4819 { 3, &hf_camel_disconnectSpecificInformation
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_T_disconnectSpecificInformation
},
4820 { 4, &hf_camel_pDPContextEstablishmentSpecificInformation
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_T_pDPContextEstablishmentSpecificInformation
},
4821 { 5, &hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation
, BER_CLASS_CON
, 5, BER_FLAGS_IMPLTAG
, dissect_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation
},
4822 { 0, NULL
, 0, 0, 0, NULL
}
4826 dissect_camel_GPRSEventSpecificInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4827 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4828 GPRSEventSpecificInformation_choice
, hf_index
, ett_camel_GPRSEventSpecificInformation
,
4837 dissect_camel_IPRoutingAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4838 offset
= dissect_camel_CalledPartyNumber(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
4846 dissect_camel_IPSSPCapabilities(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4847 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4854 static const value_string camel_LegOrCallSegment_vals
[] = {
4855 { 0, "callSegmentID" },
4860 static const ber_choice_t LegOrCallSegment_choice
[] = {
4861 { 0, &hf_camel_callSegmentID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
4862 { 1, &hf_camel_legID
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
4863 { 0, NULL
, 0, 0, 0, NULL
}
4867 dissect_camel_LegOrCallSegment(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4868 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4869 LegOrCallSegment_choice
, hf_index
, ett_camel_LegOrCallSegment
,
4878 dissect_camel_LowLayerCompatibility(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4879 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4888 dissect_camel_NAOliInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4889 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4898 dissect_camel_OCSIApplicable(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4899 offset
= dissect_ber_null(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
);
4907 dissect_camel_OriginalCalledPartyID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4909 tvbuff_t
*parameter_tvb
;
4910 proto_tree
*subtree
;
4912 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4918 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_originalcalledpartyid
);
4919 dissect_isup_original_called_number_parameter(parameter_tvb
, actx
->pinfo
, subtree
, NULL
);
4927 dissect_camel_RedirectingPartyID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4929 tvbuff_t
*parameter_tvb
;
4930 proto_tree
*subtree
;
4932 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4938 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_redirectingpartyid
);
4939 dissect_isup_redirecting_number_parameter(parameter_tvb
, actx
->pinfo
, subtree
, NULL
);
4945 static const value_string camel_RequestedInformationType_vals
[] = {
4946 { 0, "callAttemptElapsedTime" },
4947 { 1, "callStopTime" },
4948 { 2, "callConnectedElapsedTime" },
4949 { 30, "releaseCause" },
4955 dissect_camel_RequestedInformationType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4956 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
4963 static const value_string camel_RequestedInformationValue_vals
[] = {
4964 { 0, "callAttemptElapsedTimeValue" },
4965 { 1, "callStopTimeValue" },
4966 { 2, "callConnectedElapsedTimeValue" },
4967 { 30, "releaseCauseValue" },
4971 static const ber_choice_t RequestedInformationValue_choice
[] = {
4972 { 0, &hf_camel_callAttemptElapsedTimeValue
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_0_255
},
4973 { 1, &hf_camel_callStopTimeValue
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_DateAndTime
},
4974 { 2, &hf_camel_callConnectedElapsedTimeValue
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
4975 { 30, &hf_camel_releaseCauseValue
, BER_CLASS_CON
, 30, BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
4976 { 0, NULL
, 0, 0, 0, NULL
}
4980 dissect_camel_RequestedInformationValue(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4981 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
4982 RequestedInformationValue_choice
, hf_index
, ett_camel_RequestedInformationValue
,
4989 static const ber_sequence_t RequestedInformation_sequence
[] = {
4990 { &hf_camel_requestedInformationType
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_RequestedInformationType
},
4991 { &hf_camel_requestedInformationValue
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_RequestedInformationValue
},
4992 { NULL
, 0, 0, 0, NULL
}
4996 dissect_camel_RequestedInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
4997 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
4998 RequestedInformation_sequence
, hf_index
, ett_camel_RequestedInformation
);
5004 static const ber_sequence_t RequestedInformationList_sequence_of
[1] = {
5005 { &hf_camel_RequestedInformationList_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_RequestedInformation
},
5009 dissect_camel_RequestedInformationList(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5010 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
5011 RequestedInformationList_sequence_of
, hf_index
, ett_camel_RequestedInformationList
);
5017 static const ber_sequence_t RequestedInformationTypeList_sequence_of
[1] = {
5018 { &hf_camel_RequestedInformationTypeList_item
, BER_CLASS_UNI
, BER_UNI_TAG_ENUMERATED
, BER_FLAGS_NOOWNTAG
, dissect_camel_RequestedInformationType
},
5022 dissect_camel_RequestedInformationTypeList(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5023 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
5024 RequestedInformationTypeList_sequence_of
, hf_index
, ett_camel_RequestedInformationTypeList
);
5032 dissect_camel_RPCause(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5034 tvbuff_t
*parameter_tvb
;
5035 uint8_t Cause_value
;
5036 proto_tree
*subtree
;
5038 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5044 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_RPcause
);
5046 dissect_RP_cause_ie(parameter_tvb
, 0, tvb_reported_length_remaining(parameter_tvb
,0), subtree
, hf_camel_RP_Cause
, &Cause_value
);
5054 dissect_camel_SCIBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5055 tvbuff_t
*parameter_tvb
;
5056 proto_tree
*subtree
;
5058 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5063 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_SCIBillingChargingCharacteristics
);
5064 dissect_camel_CAMEL_SCIBillingChargingCharacteristics(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_SCIBillingChargingCharacteristics
);
5073 dissect_camel_SCIGPRSBillingChargingCharacteristics(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5074 tvbuff_t
*parameter_tvb
;
5075 proto_tree
*subtree
;
5077 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5082 subtree
= proto_item_add_subtree(actx
->created_item
, ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
);
5083 dissect_camel_CAMEL_SCIGPRSBillingChargingCharacteristics(false, parameter_tvb
, 0, actx
, subtree
, hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
);
5090 static const ber_sequence_t ServiceInteractionIndicatorsTwo_sequence
[] = {
5091 { &hf_camel_forwardServiceInteractionInd
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ForwardServiceInteractionInd
},
5092 { &hf_camel_backwardServiceInteractionInd
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BackwardServiceInteractionInd
},
5093 { &hf_camel_bothwayThroughConnectionInd
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_BothwayThroughConnectionInd
},
5094 { &hf_camel_connectedNumberTreatmentInd
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ConnectedNumberTreatmentInd
},
5095 { &hf_camel_nonCUGCall
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5096 { &hf_camel_holdTreatmentIndicator
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
5097 { &hf_camel_cwTreatmentIndicator
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
5098 { &hf_camel_ectTreatmentIndicator
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCTET_STRING_SIZE_1
},
5099 { NULL
, 0, 0, 0, NULL
}
5103 dissect_camel_ServiceInteractionIndicatorsTwo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5104 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5105 ServiceInteractionIndicatorsTwo_sequence
, hf_index
, ett_camel_ServiceInteractionIndicatorsTwo
);
5113 dissect_camel_SGSNCapabilities(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5114 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5123 dissect_camel_SMS_AddressString(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5124 offset
= dissect_gsm_map_AddressString(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5130 static const ber_sequence_t SMSEvent_sequence
[] = {
5131 { &hf_camel_eventTypeSMS
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_EventTypeSMS
},
5132 { &hf_camel_monitorMode
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_MonitorMode
},
5133 { NULL
, 0, 0, 0, NULL
}
5137 dissect_camel_SMSEvent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5138 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5139 SMSEvent_sequence
, hf_index
, ett_camel_SMSEvent
);
5145 static const value_string camel_TimerID_vals
[] = {
5152 dissect_camel_TimerID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5153 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5162 dissect_camel_TimerValue(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5163 offset
= dissect_inap_Integer4(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5171 dissect_camel_TPDataCodingScheme(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5172 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5181 dissect_camel_TPProtocolIdentifier(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5182 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5191 dissect_camel_TPShortMessageSpecificInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5192 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5201 dissect_camel_TPValidityPeriod(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5202 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5209 static const value_string camel_UnavailableNetworkResource_vals
[] = {
5210 { 0, "unavailableResources" },
5211 { 1, "componentFailure" },
5212 { 2, "basicCallProcessingException" },
5213 { 3, "resourceStatusFailure" },
5214 { 4, "endUserFailure" },
5220 dissect_camel_UnavailableNetworkResource(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5221 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5228 static const value_string camel_T_par_cancelFailedProblem_vals
[] = {
5229 { 0, "unknownOperation" },
5231 { 2, "operationNotCancellable" },
5237 dissect_camel_T_par_cancelFailedProblem(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5238 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5245 static const ber_sequence_t PAR_cancelFailed_sequence
[] = {
5246 { &hf_camel_par_cancelFailedProblem
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_par_cancelFailedProblem
},
5247 { &hf_camel_operation
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_InvokeID
},
5248 { NULL
, 0, 0, 0, NULL
}
5252 dissect_camel_PAR_cancelFailed(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5253 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5254 PAR_cancelFailed_sequence
, hf_index
, ett_camel_PAR_cancelFailed
);
5260 static const value_string camel_PAR_requestedInfoError_vals
[] = {
5261 { 1, "unknownRequestedInfo" },
5262 { 2, "requestedInfoNotAvailable" },
5268 dissect_camel_PAR_requestedInfoError(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5269 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5276 static const value_string camel_PAR_taskRefused_vals
[] = {
5278 { 1, "unobtainable" },
5279 { 2, "congestion" },
5285 dissect_camel_PAR_taskRefused(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5286 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
5293 static const ber_sequence_t CAP_GPRS_ReferenceNumber_sequence
[] = {
5294 { &hf_camel_destinationReference
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
5295 { &hf_camel_originationReference
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_Integer4
},
5296 { NULL
, 0, 0, 0, NULL
}
5300 dissect_camel_CAP_GPRS_ReferenceNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5301 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5302 CAP_GPRS_ReferenceNumber_sequence
, hf_index
, ett_camel_CAP_GPRS_ReferenceNumber
);
5308 static const ber_sequence_t PlayAnnouncementArg_sequence
[] = {
5309 { &hf_camel_informationToSend
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_InformationToSend
},
5310 { &hf_camel_disconnectFromIPForbidden
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
5311 { &hf_camel_requestAnnouncementCompleteNotification
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
5312 { &hf_camel_extensions
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5313 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5314 { &hf_camel_requestAnnouncementStartedNotification
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
5315 { NULL
, 0, 0, 0, NULL
}
5319 dissect_camel_PlayAnnouncementArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5320 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5321 PlayAnnouncementArg_sequence
, hf_index
, ett_camel_PlayAnnouncementArg
);
5327 static const ber_sequence_t PromptAndCollectUserInformationArg_sequence
[] = {
5328 { &hf_camel_collectedInfo
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_CollectedInfo
},
5329 { &hf_camel_disconnectFromIPForbidden
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
5330 { &hf_camel_informationToSend
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_InformationToSend
},
5331 { &hf_camel_extensions
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5332 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5333 { &hf_camel_requestAnnouncementStartedNotification
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
5334 { NULL
, 0, 0, 0, NULL
}
5338 dissect_camel_PromptAndCollectUserInformationArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5339 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5340 PromptAndCollectUserInformationArg_sequence
, hf_index
, ett_camel_PromptAndCollectUserInformationArg
);
5346 static const value_string camel_ReceivedInformationArg_vals
[] = {
5347 { 0, "digitsResponse" },
5351 static const ber_choice_t ReceivedInformationArg_choice
[] = {
5352 { 0, &hf_camel_digitsResponse
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_Digits
},
5353 { 0, NULL
, 0, 0, 0, NULL
}
5357 dissect_camel_ReceivedInformationArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5358 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
5359 ReceivedInformationArg_choice
, hf_index
, ett_camel_ReceivedInformationArg
,
5366 static const value_string camel_SpecializedResourceReportArg_vals
[] = {
5367 { 50, "allAnnouncementsComplete" },
5368 { 51, "firstAnnouncementStarted" },
5372 static const ber_choice_t SpecializedResourceReportArg_choice
[] = {
5373 { 50, &hf_camel_allAnnouncementsComplete
, BER_CLASS_CON
, 50, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5374 { 51, &hf_camel_firstAnnouncementStarted
, BER_CLASS_CON
, 51, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5375 { 0, NULL
, 0, 0, 0, NULL
}
5379 dissect_camel_SpecializedResourceReportArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5380 if (camel_ver
< 4) {
5381 return dissect_camel_SpecializedResourceReportArgV23(implicit_tag
, tvb
, offset
, actx
, tree
, hf_camel_allAnnouncementsComplete
);
5383 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
5384 SpecializedResourceReportArg_choice
, hf_index
, ett_camel_SpecializedResourceReportArg
,
5393 static const ber_sequence_t ApplyChargingArg_sequence
[] = {
5394 { &hf_camel_aChBillingChargingCharacteristics
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AChBillingChargingCharacteristics
},
5395 { &hf_camel_partyToCharge
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_SendingSideID
},
5396 { &hf_camel_extensions
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5397 { &hf_camel_aChChargingAddress
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_AChChargingAddress
},
5398 { &hf_camel_iTXcharging
, BER_CLASS_CON
, 64, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
5399 { NULL
, 0, 0, 0, NULL
}
5403 dissect_camel_ApplyChargingArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5404 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5405 ApplyChargingArg_sequence
, hf_index
, ett_camel_ApplyChargingArg
);
5413 dissect_camel_ApplyChargingReportArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5414 offset
= dissect_camel_CallResult(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5420 static const ber_sequence_t AssistRequestInstructionsArg_sequence
[] = {
5421 { &hf_camel_correlationID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CorrelationID
},
5422 { &hf_camel_iPSSPCapabilities
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_IPSSPCapabilities
},
5423 { &hf_camel_extensions
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5424 { NULL
, 0, 0, 0, NULL
}
5428 dissect_camel_AssistRequestInstructionsArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5429 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5430 AssistRequestInstructionsArg_sequence
, hf_index
, ett_camel_AssistRequestInstructionsArg
);
5436 static const ber_sequence_t CallGapArg_sequence
[] = {
5437 { &hf_camel_gapCriteria
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_GapCriteria
},
5438 { &hf_camel_gapIndicators
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_GapIndicators
},
5439 { &hf_camel_controlType
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ControlType
},
5440 { &hf_camel_gapTreatment
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_GapTreatment
},
5441 { &hf_camel_extensions
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5442 { NULL
, 0, 0, 0, NULL
}
5446 dissect_camel_CallGapArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5447 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5448 CallGapArg_sequence
, hf_index
, ett_camel_CallGapArg
);
5454 static const ber_sequence_t CallInformationReportArg_sequence
[] = {
5455 { &hf_camel_requestedInformationList
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_RequestedInformationList
},
5456 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5457 { &hf_camel_legID_01
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ReceivingSideID
},
5458 { NULL
, 0, 0, 0, NULL
}
5462 dissect_camel_CallInformationReportArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5463 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5464 CallInformationReportArg_sequence
, hf_index
, ett_camel_CallInformationReportArg
);
5470 static const ber_sequence_t CallInformationRequestArg_sequence
[] = {
5471 { &hf_camel_requestedInformationTypeList
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_RequestedInformationTypeList
},
5472 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5473 { &hf_camel_legID_02
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_SendingSideID
},
5474 { NULL
, 0, 0, 0, NULL
}
5478 dissect_camel_CallInformationRequestArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5479 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5480 CallInformationRequestArg_sequence
, hf_index
, ett_camel_CallInformationRequestArg
);
5486 static const value_string camel_CancelArg_vals
[] = {
5488 { 1, "allRequests" },
5489 { 2, "callSegmentToCancel" },
5493 static const ber_choice_t CancelArg_choice
[] = {
5494 { 0, &hf_camel_invokeID
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_InvokeID
},
5495 { 1, &hf_camel_allRequests
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5496 { 2, &hf_camel_callSegmentToCancel
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentToCancel
},
5497 { 0, NULL
, 0, 0, 0, NULL
}
5501 dissect_camel_CancelArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5502 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
5503 CancelArg_choice
, hf_index
, ett_camel_CancelArg
,
5510 static const ber_sequence_t CollectInformationArg_sequence
[] = {
5511 { &hf_camel_extensions
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5512 { NULL
, 0, 0, 0, NULL
}
5516 dissect_camel_CollectInformationArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5517 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5518 CollectInformationArg_sequence
, hf_index
, ett_camel_CollectInformationArg
);
5524 static const ber_sequence_t ConnectArg_sequence
[] = {
5525 { &hf_camel_destinationRoutingAddress
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_DestinationRoutingAddress
},
5526 { &hf_camel_alertingPattern
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AlertingPattern
},
5527 { &hf_camel_originalCalledPartyID
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OriginalCalledPartyID
},
5528 { &hf_camel_extensions
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5529 { &hf_camel_carrier
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Carrier
},
5530 { &hf_camel_callingPartysCategory
, BER_CLASS_CON
, 28, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_CallingPartysCategory
},
5531 { &hf_camel_redirectingPartyID
, BER_CLASS_CON
, 29, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_RedirectingPartyID
},
5532 { &hf_camel_redirectionInformation
, BER_CLASS_CON
, 30, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_RedirectionInformation
},
5533 { &hf_camel_genericNumbers
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_GenericNumbers
},
5534 { &hf_camel_serviceInteractionIndicatorsTwo
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ServiceInteractionIndicatorsTwo
},
5535 { &hf_camel_chargeNumber
, BER_CLASS_CON
, 19, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ChargeNumber
},
5536 { &hf_camel_legToBeConnected
, BER_CLASS_CON
, 21, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
5537 { &hf_camel_cug_Interlock
, BER_CLASS_CON
, 31, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_CUG_Interlock
},
5538 { &hf_camel_cug_OutgoingAccess
, BER_CLASS_CON
, 32, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5539 { &hf_camel_suppressionOfAnnouncement
, BER_CLASS_CON
, 55, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ch_SuppressionOfAnnouncement
},
5540 { &hf_camel_oCSIApplicable
, BER_CLASS_CON
, 56, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OCSIApplicable
},
5541 { &hf_camel_naOliInfo
, BER_CLASS_CON
, 57, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NAOliInfo
},
5542 { &hf_camel_bor_InterrogationRequested
, BER_CLASS_CON
, 58, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5543 { &hf_camel_suppress_N_CSI
, BER_CLASS_CON
, 59, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5544 { NULL
, 0, 0, 0, NULL
}
5548 dissect_camel_ConnectArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5549 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5550 ConnectArg_sequence
, hf_index
, ett_camel_ConnectArg
);
5556 static const value_string camel_T_resourceAddress_vals
[] = {
5557 { 0, "ipRoutingAddress" },
5562 static const ber_choice_t T_resourceAddress_choice
[] = {
5563 { 0, &hf_camel_ipRoutingAddress
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_IPRoutingAddress
},
5564 { 3, &hf_camel_none
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5565 { 0, NULL
, 0, 0, 0, NULL
}
5569 dissect_camel_T_resourceAddress(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5570 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
5571 T_resourceAddress_choice
, hf_index
, ett_camel_T_resourceAddress
,
5578 static const ber_sequence_t ConnectToResourceArg_sequence
[] = {
5579 { &hf_camel_resourceAddress
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_T_resourceAddress
},
5580 { &hf_camel_extensions
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5581 { &hf_camel_serviceInteractionIndicatorsTwo
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ServiceInteractionIndicatorsTwo
},
5582 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5583 { NULL
, 0, 0, 0, NULL
}
5587 dissect_camel_ConnectToResourceArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5588 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5589 ConnectToResourceArg_sequence
, hf_index
, ett_camel_ConnectToResourceArg
);
5595 static const ber_sequence_t ContinueWithArgumentArgExtension_sequence
[] = {
5596 { &hf_camel_suppress_D_CSI
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5597 { &hf_camel_suppress_N_CSI
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5598 { &hf_camel_suppressOutgoingCallBarring
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5599 { &hf_camel_legOrCallSegment
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_LegOrCallSegment
},
5600 { NULL
, 0, 0, 0, NULL
}
5604 dissect_camel_ContinueWithArgumentArgExtension(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5605 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5606 ContinueWithArgumentArgExtension_sequence
, hf_index
, ett_camel_ContinueWithArgumentArgExtension
);
5612 static const ber_sequence_t ContinueWithArgumentArg_sequence
[] = {
5613 { &hf_camel_alertingPattern
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AlertingPattern
},
5614 { &hf_camel_extensions
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5615 { &hf_camel_serviceInteractionIndicatorsTwo
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ServiceInteractionIndicatorsTwo
},
5616 { &hf_camel_callingPartysCategory
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_CallingPartysCategory
},
5617 { &hf_camel_genericNumbers
, BER_CLASS_CON
, 16, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_GenericNumbers
},
5618 { &hf_camel_cug_Interlock
, BER_CLASS_CON
, 17, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_CUG_Interlock
},
5619 { &hf_camel_cug_OutgoingAccess
, BER_CLASS_CON
, 18, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5620 { &hf_camel_chargeNumber
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ChargeNumber
},
5621 { &hf_camel_carrier
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Carrier
},
5622 { &hf_camel_suppressionOfAnnouncement
, BER_CLASS_CON
, 55, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ch_SuppressionOfAnnouncement
},
5623 { &hf_camel_naOliInfo
, BER_CLASS_CON
, 56, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NAOliInfo
},
5624 { &hf_camel_bor_InterrogationRequested
, BER_CLASS_CON
, 57, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5625 { &hf_camel_suppress_O_CSI
, BER_CLASS_CON
, 58, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5626 { &hf_camel_continueWithArgumentArgExtension
, BER_CLASS_CON
, 59, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ContinueWithArgumentArgExtension
},
5627 { NULL
, 0, 0, 0, NULL
}
5631 dissect_camel_ContinueWithArgumentArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5632 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5633 ContinueWithArgumentArg_sequence
, hf_index
, ett_camel_ContinueWithArgumentArg
);
5639 static const ber_sequence_t DisconnectForwardConnectionWithArgumentArg_sequence
[] = {
5640 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5641 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5642 { NULL
, 0, 0, 0, NULL
}
5646 dissect_camel_DisconnectForwardConnectionWithArgumentArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5647 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5648 DisconnectForwardConnectionWithArgumentArg_sequence
, hf_index
, ett_camel_DisconnectForwardConnectionWithArgumentArg
);
5654 static const ber_sequence_t DisconnectLegArg_sequence
[] = {
5655 { &hf_camel_legToBeReleased
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
5656 { &hf_camel_releaseCause
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
5657 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5658 { NULL
, 0, 0, 0, NULL
}
5662 dissect_camel_DisconnectLegArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5663 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5664 DisconnectLegArg_sequence
, hf_index
, ett_camel_DisconnectLegArg
);
5670 static const value_string camel_EntityReleasedArg_vals
[] = {
5671 { 0, "callSegmentFailure" },
5672 { 1, "bCSM-Failure" },
5676 static const ber_choice_t EntityReleasedArg_choice
[] = {
5677 { 0, &hf_camel_callSegmentFailure
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentFailure
},
5678 { 1, &hf_camel_bCSM_Failure
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_BCSM_Failure
},
5679 { 0, NULL
, 0, 0, 0, NULL
}
5683 dissect_camel_EntityReleasedArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5684 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
5685 EntityReleasedArg_choice
, hf_index
, ett_camel_EntityReleasedArg
,
5692 static const ber_sequence_t EstablishTemporaryConnectionArg_sequence
[] = {
5693 { &hf_camel_assistingSSPIPRoutingAddress
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AssistingSSPIPRoutingAddress
},
5694 { &hf_camel_correlationID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CorrelationID
},
5695 { &hf_camel_scfID
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ScfID
},
5696 { &hf_camel_extensions
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5697 { &hf_camel_carrier
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Carrier
},
5698 { &hf_camel_serviceInteractionIndicatorsTwo
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ServiceInteractionIndicatorsTwo
},
5699 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5700 { &hf_camel_naOliInfo
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NAOliInfo
},
5701 { &hf_camel_chargeNumber
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ChargeNumber
},
5702 { &hf_camel_originalCalledPartyID
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OriginalCalledPartyID
},
5703 { &hf_camel_callingPartyNumber
, BER_CLASS_CON
, 53, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallingPartyNumber
},
5704 { NULL
, 0, 0, 0, NULL
}
5708 dissect_camel_EstablishTemporaryConnectionArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5711 return dissect_camel_EstablishTemporaryConnectionArgV2(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5713 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5714 EstablishTemporaryConnectionArg_sequence
, hf_index
, ett_camel_EstablishTemporaryConnectionArg
);
5722 static const ber_sequence_t EventReportBCSMArg_sequence
[] = {
5723 { &hf_camel_eventTypeBCSM
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_EventTypeBCSM
},
5724 { &hf_camel_eventSpecificInformationBCSM
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_EventSpecificInformationBCSM
},
5725 { &hf_camel_legID_01
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ReceivingSideID
},
5726 { &hf_camel_miscCallInfo
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_MiscCallInfo
},
5727 { &hf_camel_extensions
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5728 { NULL
, 0, 0, 0, NULL
}
5732 dissect_camel_EventReportBCSMArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5733 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5734 EventReportBCSMArg_sequence
, hf_index
, ett_camel_EventReportBCSMArg
);
5742 dissect_camel_FurnishChargingInformationArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5743 offset
= dissect_camel_FCIBillingChargingCharacteristics(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5749 static const ber_sequence_t InitialDPArgExtension_sequence
[] = {
5750 { &hf_camel_gmscAddress
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
5751 { &hf_camel_forwardingDestinationNumber
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
5752 { &hf_camel_ms_Classmark2
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_MS_Classmark2
},
5753 { &hf_camel_iMEI
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_IMEI
},
5754 { &hf_camel_supportedCamelPhases
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_SupportedCamelPhases
},
5755 { &hf_camel_offeredCamel4Functionalities
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_OfferedCamel4Functionalities
},
5756 { &hf_camel_bearerCapability2
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_BearerCapability
},
5757 { &hf_camel_ext_basicServiceCode2
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
5758 { &hf_camel_highLayerCompatibility2
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_HighLayerCompatibility
},
5759 { &hf_camel_lowLayerCompatibility
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LowLayerCompatibility
},
5760 { &hf_camel_lowLayerCompatibility2
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LowLayerCompatibility
},
5761 { &hf_camel_enhancedDialledServicesAllowed
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5762 { &hf_camel_uu_Data
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ch_UU_Data
},
5763 { &hf_camel_collectInformationAllowed
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5764 { &hf_camel_releaseCallArgExtensionAllowed
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5765 { NULL
, 0, 0, 0, NULL
}
5769 dissect_camel_InitialDPArgExtension(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5771 if((camel_ver
== 2)||(camel_ver
== 1)){
5772 return dissect_camel_InitialDPArgExtensionV2(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5775 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5776 InitialDPArgExtension_sequence
, hf_index
, ett_camel_InitialDPArgExtension
);
5784 static const ber_sequence_t InitialDPArg_sequence
[] = {
5785 { &hf_camel_serviceKey
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_ServiceKey
},
5786 { &hf_camel_calledPartyNumber
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyNumber
},
5787 { &hf_camel_callingPartyNumber
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallingPartyNumber
},
5788 { &hf_camel_callingPartysCategory
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_CallingPartysCategory
},
5789 { &hf_camel_cGEncountered
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CGEncountered
},
5790 { &hf_camel_iPSSPCapabilities
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_IPSSPCapabilities
},
5791 { &hf_camel_locationNumber
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationNumber
},
5792 { &hf_camel_originalCalledPartyID
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_OriginalCalledPartyID
},
5793 { &hf_camel_extensions
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5794 { &hf_camel_highLayerCompatibility
, BER_CLASS_CON
, 23, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_HighLayerCompatibility
},
5795 { &hf_camel_additionalCallingPartyNumber
, BER_CLASS_CON
, 25, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AdditionalCallingPartyNumber
},
5796 { &hf_camel_bearerCapability
, BER_CLASS_CON
, 27, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_BearerCapability
},
5797 { &hf_camel_eventTypeBCSM
, BER_CLASS_CON
, 28, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_EventTypeBCSM
},
5798 { &hf_camel_redirectingPartyID
, BER_CLASS_CON
, 29, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_RedirectingPartyID
},
5799 { &hf_camel_redirectionInformation
, BER_CLASS_CON
, 30, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_RedirectionInformation
},
5800 { &hf_camel_cause
, BER_CLASS_CON
, 17, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Cause
},
5801 { &hf_camel_serviceInteractionIndicatorsTwo
, BER_CLASS_CON
, 32, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ServiceInteractionIndicatorsTwo
},
5802 { &hf_camel_carrier
, BER_CLASS_CON
, 37, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Carrier
},
5803 { &hf_camel_cug_Index
, BER_CLASS_CON
, 45, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_CUG_Index
},
5804 { &hf_camel_cug_Interlock
, BER_CLASS_CON
, 46, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_CUG_Interlock
},
5805 { &hf_camel_cug_OutgoingAccess
, BER_CLASS_CON
, 47, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5806 { &hf_camel_iMSI
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_IMSI
},
5807 { &hf_camel_subscriberState
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_SubscriberState
},
5808 { &hf_camel_locationInformation
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LocationInformation
},
5809 { &hf_camel_ext_basicServiceCode
, BER_CLASS_CON
, 53, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_Ext_BasicServiceCode
},
5810 { &hf_camel_callReferenceNumber
, BER_CLASS_CON
, 54, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ch_CallReferenceNumber
},
5811 { &hf_camel_mscAddress
, BER_CLASS_CON
, 55, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
5812 { &hf_camel_calledPartyBCDNumber
, BER_CLASS_CON
, 56, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyBCDNumber
},
5813 { &hf_camel_timeAndTimezone
, BER_CLASS_CON
, 57, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimeAndTimezone
},
5814 { &hf_camel_callForwardingSS_Pending
, BER_CLASS_CON
, 58, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5815 { &hf_camel_initialDPArgExtension
, BER_CLASS_CON
, 59, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_InitialDPArgExtension
},
5816 { NULL
, 0, 0, 0, NULL
}
5820 dissect_camel_InitialDPArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5821 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5822 InitialDPArg_sequence
, hf_index
, ett_camel_InitialDPArg
);
5828 static const ber_sequence_t InitiateCallAttemptArg_sequence
[] = {
5829 { &hf_camel_destinationRoutingAddress
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_DestinationRoutingAddress
},
5830 { &hf_camel_extensions
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5831 { &hf_camel_legToBeCreated
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
5832 { &hf_camel_newCallSegment
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5833 { &hf_camel_callingPartyNumber
, BER_CLASS_CON
, 30, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallingPartyNumber
},
5834 { &hf_camel_callReferenceNumber
, BER_CLASS_CON
, 51, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ch_CallReferenceNumber
},
5835 { &hf_camel_gsmSCFAddress
, BER_CLASS_CON
, 52, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
5836 { &hf_camel_suppress_T_CSI
, BER_CLASS_CON
, 53, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5837 { NULL
, 0, 0, 0, NULL
}
5841 dissect_camel_InitiateCallAttemptArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5842 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5843 InitiateCallAttemptArg_sequence
, hf_index
, ett_camel_InitiateCallAttemptArg
);
5849 static const ber_sequence_t InitiateCallAttemptRes_sequence
[] = {
5850 { &hf_camel_supportedCamelPhases
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_SupportedCamelPhases
},
5851 { &hf_camel_offeredCamel4Functionalities
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_OfferedCamel4Functionalities
},
5852 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5853 { &hf_camel_releaseCallArgExtensionAllowed
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
5854 { NULL
, 0, 0, 0, NULL
}
5858 dissect_camel_InitiateCallAttemptRes(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5859 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5860 InitiateCallAttemptRes_sequence
, hf_index
, ett_camel_InitiateCallAttemptRes
);
5866 static const ber_sequence_t MoveLegArg_sequence
[] = {
5867 { &hf_camel_legIDToMove
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
5868 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5869 { NULL
, 0, 0, 0, NULL
}
5873 dissect_camel_MoveLegArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5874 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5875 MoveLegArg_sequence
, hf_index
, ett_camel_MoveLegArg
);
5881 static const ber_sequence_t PlayToneArg_sequence
[] = {
5882 { &hf_camel_legOrCallSegment
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_LegOrCallSegment
},
5883 { &hf_camel_bursts
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_Burst
},
5884 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5885 { NULL
, 0, 0, 0, NULL
}
5889 dissect_camel_PlayToneArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5890 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5891 PlayToneArg_sequence
, hf_index
, ett_camel_PlayToneArg
);
5899 dissect_camel_AllCallSegments(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5900 offset
= dissect_camel_Cause(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
5906 static const ber_sequence_t AllCallSegmentsWithExtension_sequence
[] = {
5907 { &hf_camel_allCallSegments
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AllCallSegments
},
5908 { &hf_camel_extensions
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5909 { NULL
, 0, 0, 0, NULL
}
5913 dissect_camel_AllCallSegmentsWithExtension(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5914 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5915 AllCallSegmentsWithExtension_sequence
, hf_index
, ett_camel_AllCallSegmentsWithExtension
);
5921 static const value_string camel_ReleaseCallArg_vals
[] = {
5922 { 0, "allCallSegments" },
5923 { 1, "allCallSegmentsWithExtension" },
5927 static const ber_choice_t ReleaseCallArg_choice
[] = {
5928 { 0, &hf_camel_allCallSegments
, BER_CLASS_UNI
, BER_UNI_TAG_OCTETSTRING
, BER_FLAGS_NOOWNTAG
, dissect_camel_AllCallSegments
},
5929 { 1, &hf_camel_allCallSegmentsWithExtension
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_AllCallSegmentsWithExtension
},
5930 { 0, NULL
, 0, 0, 0, NULL
}
5934 dissect_camel_ReleaseCallArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5935 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
5936 ReleaseCallArg_choice
, hf_index
, ett_camel_ReleaseCallArg
,
5943 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent_sequence_of
[1] = {
5944 { &hf_camel_bcsmEvents_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_BCSMEvent
},
5948 dissect_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5949 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
5950 SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent_sequence_of
, hf_index
, ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent
);
5956 static const ber_sequence_t RequestReportBCSMEventArg_sequence
[] = {
5957 { &hf_camel_bcsmEvents
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent
},
5958 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5959 { NULL
, 0, 0, 0, NULL
}
5963 dissect_camel_RequestReportBCSMEventArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5964 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5965 RequestReportBCSMEventArg_sequence
, hf_index
, ett_camel_RequestReportBCSMEventArg
);
5971 static const ber_sequence_t ResetTimerArg_sequence
[] = {
5972 { &hf_camel_timerID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimerID
},
5973 { &hf_camel_timervalue
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_TimerValue
},
5974 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5975 { &hf_camel_callSegmentID
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
5976 { NULL
, 0, 0, 0, NULL
}
5980 dissect_camel_ResetTimerArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5981 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5982 ResetTimerArg_sequence
, hf_index
, ett_camel_ResetTimerArg
);
5988 static const ber_sequence_t SendChargingInformationArg_sequence
[] = {
5989 { &hf_camel_sCIBillingChargingCharacteristics
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_SCIBillingChargingCharacteristics
},
5990 { &hf_camel_partyToCharge
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_SendingSideID
},
5991 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
5992 { NULL
, 0, 0, 0, NULL
}
5996 dissect_camel_SendChargingInformationArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
5997 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
5998 SendChargingInformationArg_sequence
, hf_index
, ett_camel_SendChargingInformationArg
);
6004 static const ber_sequence_t SplitLegArg_sequence
[] = {
6005 { &hf_camel_legToBeSplit
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_LegID
},
6006 { &hf_camel_newCallSegment
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CallSegmentID
},
6007 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6008 { NULL
, 0, 0, 0, NULL
}
6012 dissect_camel_SplitLegArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6013 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6014 SplitLegArg_sequence
, hf_index
, ett_camel_SplitLegArg
);
6020 static const ber_sequence_t ApplyChargingGPRSArg_sequence
[] = {
6021 { &hf_camel_chargingCharacteristics
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ChargingCharacteristics
},
6022 { &hf_camel_applyChargingGPRS_tariffSwitchInterval
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_86400
},
6023 { &hf_camel_pDPID
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6024 { NULL
, 0, 0, 0, NULL
}
6028 dissect_camel_ApplyChargingGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6029 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6030 ApplyChargingGPRSArg_sequence
, hf_index
, ett_camel_ApplyChargingGPRSArg
);
6036 static const ber_sequence_t ApplyChargingReportGPRSArg_sequence
[] = {
6037 { &hf_camel_chargingResult
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ChargingResult
},
6038 { &hf_camel_qualityOfService
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_QualityOfService
},
6039 { &hf_camel_active
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_BOOLEAN
},
6040 { &hf_camel_pDPID
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6041 { &hf_camel_chargingRollOver
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_ChargingRollOver
},
6042 { NULL
, 0, 0, 0, NULL
}
6046 dissect_camel_ApplyChargingReportGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6047 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6048 ApplyChargingReportGPRSArg_sequence
, hf_index
, ett_camel_ApplyChargingReportGPRSArg
);
6054 static const ber_sequence_t CancelGPRSArg_sequence
[] = {
6055 { &hf_camel_pDPID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6056 { NULL
, 0, 0, 0, NULL
}
6060 dissect_camel_CancelGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6061 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6062 CancelGPRSArg_sequence
, hf_index
, ett_camel_CancelGPRSArg
);
6068 static const ber_sequence_t ConnectGPRSArg_sequence
[] = {
6069 { &hf_camel_accessPointName
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AccessPointName
},
6070 { &hf_camel_pdpID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6071 { NULL
, 0, 0, 0, NULL
}
6075 dissect_camel_ConnectGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6076 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6077 ConnectGPRSArg_sequence
, hf_index
, ett_camel_ConnectGPRSArg
);
6083 static const ber_sequence_t ContinueGPRSArg_sequence
[] = {
6084 { &hf_camel_pDPID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6085 { NULL
, 0, 0, 0, NULL
}
6089 dissect_camel_ContinueGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6090 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6091 ContinueGPRSArg_sequence
, hf_index
, ett_camel_ContinueGPRSArg
);
6097 static const ber_sequence_t EntityReleasedGPRSArg_sequence
[] = {
6098 { &hf_camel_gPRSCause
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_GPRSCause
},
6099 { &hf_camel_pDPID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6100 { NULL
, 0, 0, 0, NULL
}
6104 dissect_camel_EntityReleasedGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6105 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6106 EntityReleasedGPRSArg_sequence
, hf_index
, ett_camel_EntityReleasedGPRSArg
);
6112 static const ber_sequence_t EventReportGPRSArg_sequence
[] = {
6113 { &hf_camel_gPRSEventType
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_GPRSEventType
},
6114 { &hf_camel_miscGPRSInfo
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_MiscCallInfo
},
6115 { &hf_camel_gPRSEventSpecificInformation
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_GPRSEventSpecificInformation
},
6116 { &hf_camel_pDPID
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6117 { NULL
, 0, 0, 0, NULL
}
6121 dissect_camel_EventReportGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6122 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6123 EventReportGPRSArg_sequence
, hf_index
, ett_camel_EventReportGPRSArg
);
6131 dissect_camel_FurnishChargingInformationGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6132 offset
= dissect_camel_FCIGPRSBillingChargingCharacteristics(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
6138 static const ber_sequence_t InitialDPGPRSArg_sequence
[] = {
6139 { &hf_camel_serviceKey
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_ServiceKey
},
6140 { &hf_camel_gPRSEventType
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_GPRSEventType
},
6141 { &hf_camel_mSISDN
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6142 { &hf_camel_iMSI
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_gsm_map_IMSI
},
6143 { &hf_camel_timeAndTimeZone
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_TimeAndTimezone
},
6144 { &hf_camel_gPRSMSClass
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_GPRSMSClass
},
6145 { &hf_camel_endUserAddress
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_EndUserAddress
},
6146 { &hf_camel_qualityOfService
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_QualityOfService
},
6147 { &hf_camel_accessPointName
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_AccessPointName
},
6148 { &hf_camel_routeingAreaIdentity
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_RAIdentity
},
6149 { &hf_camel_chargingID
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_GPRSChargingID
},
6150 { &hf_camel_sGSNCapabilities
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_SGSNCapabilities
},
6151 { &hf_camel_locationInformationGPRS
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationInformationGPRS
},
6152 { &hf_camel_pDPInitiationType
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPInitiationType
},
6153 { &hf_camel_extensions
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6154 { &hf_camel_gGSNAddress
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_GSN_Address
},
6155 { &hf_camel_secondaryPDP_context
, BER_CLASS_CON
, 16, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
6156 { &hf_camel_iMEI
, BER_CLASS_CON
, 17, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_IMEI
},
6157 { NULL
, 0, 0, 0, NULL
}
6161 dissect_camel_InitialDPGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6162 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6163 InitialDPGPRSArg_sequence
, hf_index
, ett_camel_InitialDPGPRSArg
);
6169 static const ber_sequence_t ReleaseGPRSArg_sequence
[] = {
6170 { &hf_camel_gprsCause
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_GPRSCause
},
6171 { &hf_camel_pDPID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6172 { NULL
, 0, 0, 0, NULL
}
6176 dissect_camel_ReleaseGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6177 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6178 ReleaseGPRSArg_sequence
, hf_index
, ett_camel_ReleaseGPRSArg
);
6184 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent_sequence_of
[1] = {
6185 { &hf_camel_gPRSEvent_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_GPRSEvent
},
6189 dissect_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6190 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
6191 SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent_sequence_of
, hf_index
, ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent
);
6197 static const ber_sequence_t RequestReportGPRSEventArg_sequence
[] = {
6198 { &hf_camel_gPRSEvent
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent
},
6199 { &hf_camel_pDPID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_PDPID
},
6200 { NULL
, 0, 0, 0, NULL
}
6204 dissect_camel_RequestReportGPRSEventArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6205 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6206 RequestReportGPRSEventArg_sequence
, hf_index
, ett_camel_RequestReportGPRSEventArg
);
6212 static const ber_sequence_t ResetTimerGPRSArg_sequence
[] = {
6213 { &hf_camel_timerID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimerID
},
6214 { &hf_camel_timervalue
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_TimerValue
},
6215 { NULL
, 0, 0, 0, NULL
}
6219 dissect_camel_ResetTimerGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6220 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6221 ResetTimerGPRSArg_sequence
, hf_index
, ett_camel_ResetTimerGPRSArg
);
6227 static const ber_sequence_t SendChargingInformationGPRSArg_sequence
[] = {
6228 { &hf_camel_sCIGPRSBillingChargingCharacteristics
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_SCIGPRSBillingChargingCharacteristics
},
6229 { NULL
, 0, 0, 0, NULL
}
6233 dissect_camel_SendChargingInformationGPRSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6234 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6235 SendChargingInformationGPRSArg_sequence
, hf_index
, ett_camel_SendChargingInformationGPRSArg
);
6241 static const ber_sequence_t ConnectSMSArg_sequence
[] = {
6242 { &hf_camel_callingPartysNumber
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_SMS_AddressString
},
6243 { &hf_camel_destinationSubscriberNumber
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyBCDNumber
},
6244 { &hf_camel_sMSCAddress
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6245 { &hf_camel_extensions
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6246 { NULL
, 0, 0, 0, NULL
}
6250 dissect_camel_ConnectSMSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6251 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6252 ConnectSMSArg_sequence
, hf_index
, ett_camel_ConnectSMSArg
);
6258 static const ber_sequence_t EventReportSMSArg_sequence
[] = {
6259 { &hf_camel_eventTypeSMS
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_EventTypeSMS
},
6260 { &hf_camel_eventSpecificInformationSMS
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_EventSpecificInformationSMS
},
6261 { &hf_camel_miscCallInfo
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_inap_MiscCallInfo
},
6262 { &hf_camel_extensions
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6263 { NULL
, 0, 0, 0, NULL
}
6267 dissect_camel_EventReportSMSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6268 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6269 EventReportSMSArg_sequence
, hf_index
, ett_camel_EventReportSMSArg
);
6277 dissect_camel_FurnishChargingInformationSMSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6278 offset
= dissect_camel_FCISMSBillingChargingCharacteristics(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
6284 static const ber_sequence_t InitialDPSMSArg_sequence
[] = {
6285 { &hf_camel_serviceKey
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_inap_ServiceKey
},
6286 { &hf_camel_destinationSubscriberNumber
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CalledPartyBCDNumber
},
6287 { &hf_camel_callingPartyNumber_01
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_SMS_AddressString
},
6288 { &hf_camel_eventTypeSMS
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_EventTypeSMS
},
6289 { &hf_camel_iMSI
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_IMSI
},
6290 { &hf_camel_locationInformationMSC
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_LocationInformation
},
6291 { &hf_camel_locationInformationGPRS
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_LocationInformationGPRS
},
6292 { &hf_camel_sMSCAddress
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6293 { &hf_camel_timeAndTimezone
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimeAndTimezone
},
6294 { &hf_camel_tPShortMessageSpecificInfo
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TPShortMessageSpecificInfo
},
6295 { &hf_camel_tPProtocolIdentifier
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TPProtocolIdentifier
},
6296 { &hf_camel_tPDataCodingScheme
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TPDataCodingScheme
},
6297 { &hf_camel_tPValidityPeriod
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TPValidityPeriod
},
6298 { &hf_camel_extensions
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6299 { &hf_camel_smsReferenceNumber
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ch_CallReferenceNumber
},
6300 { &hf_camel_mscAddress
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6301 { &hf_camel_sgsn_Number
, BER_CLASS_CON
, 16, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6302 { &hf_camel_ms_Classmark2
, BER_CLASS_CON
, 17, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_MS_Classmark2
},
6303 { &hf_camel_gPRSMSClass
, BER_CLASS_CON
, 18, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ms_GPRSMSClass
},
6304 { &hf_camel_iMEI
, BER_CLASS_CON
, 19, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_IMEI
},
6305 { &hf_camel_calledPartyNumber_01
, BER_CLASS_CON
, 20, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6306 { NULL
, 0, 0, 0, NULL
}
6310 dissect_camel_InitialDPSMSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6311 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6312 InitialDPSMSArg_sequence
, hf_index
, ett_camel_InitialDPSMSArg
);
6320 dissect_camel_ReleaseSMSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6321 offset
= dissect_camel_RPCause(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
6327 static const ber_sequence_t SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent_sequence_of
[1] = {
6328 { &hf_camel_sMSEvents_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_SMSEvent
},
6332 dissect_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6333 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
6334 SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent_sequence_of
, hf_index
, ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent
);
6340 static const ber_sequence_t RequestReportSMSEventArg_sequence
[] = {
6341 { &hf_camel_sMSEvents
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent
},
6342 { &hf_camel_extensions
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6343 { NULL
, 0, 0, 0, NULL
}
6347 dissect_camel_RequestReportSMSEventArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6348 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6349 RequestReportSMSEventArg_sequence
, hf_index
, ett_camel_RequestReportSMSEventArg
);
6355 static const ber_sequence_t ResetTimerSMSArg_sequence
[] = {
6356 { &hf_camel_timerID
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_TimerID
},
6357 { &hf_camel_timervalue
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_TimerValue
},
6358 { &hf_camel_extensions
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_Extensions
},
6359 { NULL
, 0, 0, 0, NULL
}
6363 dissect_camel_ResetTimerSMSArg(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6364 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6365 ResetTimerSMSArg_sequence
, hf_index
, ett_camel_ResetTimerSMSArg
);
6371 static const value_string camel_CAP_U_ABORT_REASON_vals
[] = {
6372 { 1, "no-reason-given" },
6373 { 2, "application-timer-expired" },
6374 { 3, "not-allowed-procedures" },
6375 { 4, "abnormal-processing" },
6376 { 5, "congestion" },
6377 { 6, "invalid-reference" },
6378 { 7, "missing-reference" },
6379 { 8, "overlapping-dialogue" },
6385 dissect_camel_CAP_U_ABORT_REASON(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6386 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6393 static const ber_sequence_t SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField_sequence_of
[1] = {
6394 { &hf_camel_extensions_item
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_NOOWNTAG
, dissect_camel_ExtensionField
},
6398 dissect_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6399 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
6400 SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField_sequence_of
, hf_index
, ett_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
);
6408 dissect_camel_NACarrierSelectionInfo(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6409 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6416 static const ber_sequence_t NACarrierInformation_sequence
[] = {
6417 { &hf_camel_naCarrierId
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_NAEA_CIC
},
6418 { &hf_camel_naCICSelectionType
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NACarrierSelectionInfo
},
6419 { NULL
, 0, 0, 0, NULL
}
6423 dissect_camel_NACarrierInformation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6424 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6425 NACarrierInformation_sequence
, hf_index
, ett_camel_NACarrierInformation
);
6433 dissect_camel_NAChargeNumber(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6434 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6441 static const ber_sequence_t NA_Info_sequence
[] = {
6442 { &hf_camel_naCarrierInformation
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NACarrierInformation
},
6443 { &hf_camel_naOliInfo
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NAOliInfo
},
6444 { &hf_camel_naChargeNumber
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NAChargeNumber
},
6445 { NULL
, 0, 0, 0, NULL
}
6449 dissect_camel_NA_Info(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6450 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6451 NA_Info_sequence
, hf_index
, ett_camel_NA_Info
);
6457 static const ber_sequence_t EstablishTemporaryConnectionArgV2_sequence
[] = {
6458 { &hf_camel_assistingSSPIPRoutingAddress
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_AssistingSSPIPRoutingAddress
},
6459 { &hf_camel_correlationID
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_CorrelationID
},
6460 { &hf_camel_scfID
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ScfID
},
6461 { &hf_camel_extensions_01
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
6462 { &hf_camel_serviceInteractionIndicatorsTwo
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ServiceInteractionIndicatorsTwo
},
6463 { &hf_camel_na_info
, BER_CLASS_CON
, 50, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NA_Info
},
6464 { NULL
, 0, 0, 0, NULL
}
6468 dissect_camel_EstablishTemporaryConnectionArgV2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6469 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6470 EstablishTemporaryConnectionArgV2_sequence
, hf_index
, ett_camel_EstablishTemporaryConnectionArgV2
);
6476 static const ber_sequence_t InitialDPArgExtensionV2_sequence
[] = {
6477 { &hf_camel_naCarrierInformation
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_NACarrierInformation
},
6478 { &hf_camel_gmscAddress
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_gsm_map_ISDN_AddressString
},
6479 { NULL
, 0, 0, 0, NULL
}
6483 dissect_camel_InitialDPArgExtensionV2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6484 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6485 InitialDPArgExtensionV2_sequence
, hf_index
, ett_camel_InitialDPArgExtensionV2
);
6491 static const ber_sequence_t ReleaseIfDurationExceeded_sequence
[] = {
6492 { &hf_camel_tone_01
, BER_CLASS_UNI
, BER_UNI_TAG_BOOLEAN
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_camel_BOOLEAN
},
6493 { &hf_camel_extensions_01
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
},
6494 { NULL
, 0, 0, 0, NULL
}
6498 dissect_camel_ReleaseIfDurationExceeded(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6499 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6500 ReleaseIfDurationExceeded_sequence
, hf_index
, ett_camel_ReleaseIfDurationExceeded
);
6506 static const ber_sequence_t T_timeDurationCharging_01_sequence
[] = {
6507 { &hf_camel_maxCallPeriodDuration
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_864000
},
6508 { &hf_camel_releaseIfdurationExceeded_01
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_ReleaseIfDurationExceeded
},
6509 { &hf_camel_tariffSwitchInterval
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_IMPLTAG
, dissect_camel_INTEGER_1_86400
},
6510 { NULL
, 0, 0, 0, NULL
}
6514 dissect_camel_T_timeDurationCharging_01(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6515 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6516 T_timeDurationCharging_01_sequence
, hf_index
, ett_camel_T_timeDurationCharging_01
);
6522 static const ber_choice_t CAMEL_AChBillingChargingCharacteristicsV2_choice
[] = {
6523 { 0, &hf_camel_timeDurationCharging_01
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_timeDurationCharging_01
},
6524 { 0, NULL
, 0, 0, 0, NULL
}
6528 dissect_camel_CAMEL_AChBillingChargingCharacteristicsV2(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6529 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
6530 CAMEL_AChBillingChargingCharacteristicsV2_choice
, hf_index
, ett_camel_CAMEL_AChBillingChargingCharacteristicsV2
,
6539 dissect_camel_SpecializedResourceReportArgV23(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6540 offset
= dissect_ber_null(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
);
6548 dissect_camel_INTEGER(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6549 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6556 static const value_string camel_InvokeId_vals
[] = {
6562 static const ber_choice_t InvokeId_choice
[] = {
6563 { 0, &hf_camel_present
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_camel_INTEGER
},
6564 { 1, &hf_camel_absent
, BER_CLASS_UNI
, BER_UNI_TAG_NULL
, BER_FLAGS_NOOWNTAG
, dissect_camel_NULL
},
6565 { 0, NULL
, 0, 0, 0, NULL
}
6569 dissect_camel_InvokeId(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6570 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
6571 InvokeId_choice
, hf_index
, ett_camel_InvokeId
,
6580 dissect_camel_InvokeId_present(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6581 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6590 dissect_camel_T_linkedIdPresent(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6591 offset
= dissect_camel_InvokeId_present(implicit_tag
, tvb
, offset
, actx
, tree
, hf_index
);
6597 static const value_string camel_T_linkedId_vals
[] = {
6603 static const ber_choice_t T_linkedId_choice
[] = {
6604 { 0, &hf_camel_linkedIdPresent
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_T_linkedIdPresent
},
6605 { 1, &hf_camel_absent
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_NULL
},
6606 { 0, NULL
, 0, 0, 0, NULL
}
6610 dissect_camel_T_linkedId(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6611 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
6612 T_linkedId_choice
, hf_index
, ett_camel_T_linkedId
,
6621 dissect_camel_T_argument(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6622 offset
= dissect_invokeData(tree
, tvb
, offset
, actx
);
6629 static const ber_sequence_t Invoke_sequence
[] = {
6630 { &hf_camel_invokeId
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_InvokeId
},
6631 { &hf_camel_linkedId
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_T_linkedId
},
6632 { &hf_camel_opcode
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_Code
},
6633 { &hf_camel_argument
, BER_CLASS_ANY
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_camel_T_argument
},
6634 { NULL
, 0, 0, 0, NULL
}
6638 dissect_camel_Invoke(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6639 camel_opcode_type
=CAMEL_OPCODE_INVOKE
;
6641 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6642 Invoke_sequence
, hf_index
, ett_camel_Invoke
);
6650 dissect_camel_ResultArgument(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6651 offset
= dissect_returnResultData(tree
, tvb
, offset
, actx
);
6658 static const ber_sequence_t T_result_sequence
[] = {
6659 { &hf_camel_opcode
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_Code
},
6660 { &hf_camel_resultArgument
, BER_CLASS_ANY
, 0, BER_FLAGS_NOOWNTAG
, dissect_camel_ResultArgument
},
6661 { NULL
, 0, 0, 0, NULL
}
6665 dissect_camel_T_result(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6666 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6667 T_result_sequence
, hf_index
, ett_camel_T_result
);
6673 static const ber_sequence_t ReturnResult_sequence
[] = {
6674 { &hf_camel_invokeId
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_InvokeId
},
6675 { &hf_camel_result
, BER_CLASS_UNI
, BER_UNI_TAG_SEQUENCE
, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_camel_T_result
},
6676 { NULL
, 0, 0, 0, NULL
}
6680 dissect_camel_ReturnResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6681 camel_opcode_type
=CAMEL_OPCODE_RETURN_RESULT
;
6683 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6684 ReturnResult_sequence
, hf_index
, ett_camel_ReturnResult
);
6692 dissect_camel_T_parameter(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6693 offset
= dissect_returnErrorData(tree
, tvb
, offset
, actx
);
6701 static const ber_sequence_t ReturnError_sequence
[] = {
6702 { &hf_camel_invokeId
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_InvokeId
},
6703 { &hf_camel_errcode
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_Code
},
6704 { &hf_camel_parameter
, BER_CLASS_ANY
, 0, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
, dissect_camel_T_parameter
},
6705 { NULL
, 0, 0, 0, NULL
}
6709 dissect_camel_ReturnError(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6710 camel_opcode_type
=CAMEL_OPCODE_RETURN_ERROR
;
6712 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6713 ReturnError_sequence
, hf_index
, ett_camel_ReturnError
);
6719 static const value_string camel_GeneralProblem_vals
[] = {
6720 { 0, "unrecognizedPDU" },
6721 { 1, "mistypedPDU" },
6722 { 2, "badlyStructuredPDU" },
6728 dissect_camel_GeneralProblem(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6729 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6736 static const value_string camel_InvokeProblem_vals
[] = {
6737 { 0, "duplicateInvocation" },
6738 { 1, "unrecognizedOperation" },
6739 { 2, "mistypedArgument" },
6740 { 3, "resourceLimitation" },
6741 { 4, "releaseInProgress" },
6742 { 5, "unrecognizedLinkedId" },
6743 { 6, "linkedResponseUnexpected" },
6744 { 7, "unexpectedLinkedOperation" },
6750 dissect_camel_InvokeProblem(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6751 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6758 static const value_string camel_ReturnResultProblem_vals
[] = {
6759 { 0, "unrecognizedInvocation" },
6760 { 1, "resultResponseUnexpected" },
6761 { 2, "mistypedResult" },
6767 dissect_camel_ReturnResultProblem(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6768 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6775 static const value_string camel_ReturnErrorProblem_vals
[] = {
6776 { 0, "unrecognizedInvocation" },
6777 { 1, "errorResponseUnexpected" },
6778 { 2, "unrecognizedError" },
6779 { 3, "unexpectedError" },
6780 { 4, "mistypedParameter" },
6786 dissect_camel_ReturnErrorProblem(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6787 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
6794 static const value_string camel_T_problem_vals
[] = {
6797 { 2, "returnResult" },
6798 { 3, "returnError" },
6802 static const ber_choice_t T_problem_choice
[] = {
6803 { 0, &hf_camel_general
, BER_CLASS_CON
, 0, BER_FLAGS_IMPLTAG
, dissect_camel_GeneralProblem
},
6804 { 1, &hf_camel_invokeProblem
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_InvokeProblem
},
6805 { 2, &hf_camel_problemReturnResult
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_ReturnResultProblem
},
6806 { 3, &hf_camel_returnErrorProblem
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_ReturnErrorProblem
},
6807 { 0, NULL
, 0, 0, 0, NULL
}
6811 dissect_camel_T_problem(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6812 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
6813 T_problem_choice
, hf_index
, ett_camel_T_problem
,
6820 static const ber_sequence_t Reject_sequence
[] = {
6821 { &hf_camel_invokeId
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_InvokeId
},
6822 { &hf_camel_problem
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_camel_T_problem
},
6823 { NULL
, 0, 0, 0, NULL
}
6827 dissect_camel_Reject(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6828 camel_opcode_type
=CAMEL_OPCODE_REJECT
;
6831 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
6832 Reject_sequence
, hf_index
, ett_camel_Reject
);
6838 static const ber_choice_t ROS_choice
[] = {
6839 { 1, &hf_camel_invoke
, BER_CLASS_CON
, 1, BER_FLAGS_IMPLTAG
, dissect_camel_Invoke
},
6840 { 2, &hf_camel_returnResult
, BER_CLASS_CON
, 2, BER_FLAGS_IMPLTAG
, dissect_camel_ReturnResult
},
6841 { 3, &hf_camel_returnError
, BER_CLASS_CON
, 3, BER_FLAGS_IMPLTAG
, dissect_camel_ReturnError
},
6842 { 4, &hf_camel_reject
, BER_CLASS_CON
, 4, BER_FLAGS_IMPLTAG
, dissect_camel_Reject
},
6843 { 0, NULL
, 0, 0, 0, NULL
}
6847 dissect_camel_ROS(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
6848 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
6849 ROS_choice
, hf_index
, ett_camel_ROS
,
6857 static int dissect_PAR_cancelFailed_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6859 asn1_ctx_t asn1_ctx
;
6860 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6861 offset
= dissect_camel_PAR_cancelFailed(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_PAR_cancelFailed_PDU
);
6864 static int dissect_PAR_requestedInfoError_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6866 asn1_ctx_t asn1_ctx
;
6867 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6868 offset
= dissect_camel_PAR_requestedInfoError(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_PAR_requestedInfoError_PDU
);
6871 static int dissect_UnavailableNetworkResource_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6873 asn1_ctx_t asn1_ctx
;
6874 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6875 offset
= dissect_camel_UnavailableNetworkResource(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_UnavailableNetworkResource_PDU
);
6878 static int dissect_PAR_taskRefused_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6880 asn1_ctx_t asn1_ctx
;
6881 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6882 offset
= dissect_camel_PAR_taskRefused(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_PAR_taskRefused_PDU
);
6885 static int dissect_CAP_GPRS_ReferenceNumber_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6887 asn1_ctx_t asn1_ctx
;
6888 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6889 offset
= dissect_camel_CAP_GPRS_ReferenceNumber(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CAP_GPRS_ReferenceNumber_PDU
);
6892 static int dissect_PlayAnnouncementArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6894 asn1_ctx_t asn1_ctx
;
6895 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6896 offset
= dissect_camel_PlayAnnouncementArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_PlayAnnouncementArg_PDU
);
6899 static int dissect_PromptAndCollectUserInformationArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6901 asn1_ctx_t asn1_ctx
;
6902 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6903 offset
= dissect_camel_PromptAndCollectUserInformationArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_PromptAndCollectUserInformationArg_PDU
);
6906 static int dissect_ReceivedInformationArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6908 asn1_ctx_t asn1_ctx
;
6909 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6910 offset
= dissect_camel_ReceivedInformationArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ReceivedInformationArg_PDU
);
6913 static int dissect_SpecializedResourceReportArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6915 asn1_ctx_t asn1_ctx
;
6916 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6917 offset
= dissect_camel_SpecializedResourceReportArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_SpecializedResourceReportArg_PDU
);
6920 static int dissect_ApplyChargingArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6922 asn1_ctx_t asn1_ctx
;
6923 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6924 offset
= dissect_camel_ApplyChargingArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ApplyChargingArg_PDU
);
6927 static int dissect_ApplyChargingReportArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6929 asn1_ctx_t asn1_ctx
;
6930 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6931 offset
= dissect_camel_ApplyChargingReportArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ApplyChargingReportArg_PDU
);
6934 static int dissect_AssistRequestInstructionsArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6936 asn1_ctx_t asn1_ctx
;
6937 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6938 offset
= dissect_camel_AssistRequestInstructionsArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_AssistRequestInstructionsArg_PDU
);
6941 static int dissect_CallGapArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6943 asn1_ctx_t asn1_ctx
;
6944 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6945 offset
= dissect_camel_CallGapArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CallGapArg_PDU
);
6948 static int dissect_CallInformationReportArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6950 asn1_ctx_t asn1_ctx
;
6951 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6952 offset
= dissect_camel_CallInformationReportArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CallInformationReportArg_PDU
);
6955 static int dissect_CallInformationRequestArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6957 asn1_ctx_t asn1_ctx
;
6958 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6959 offset
= dissect_camel_CallInformationRequestArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CallInformationRequestArg_PDU
);
6962 static int dissect_CancelArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6964 asn1_ctx_t asn1_ctx
;
6965 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6966 offset
= dissect_camel_CancelArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CancelArg_PDU
);
6969 static int dissect_CollectInformationArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6971 asn1_ctx_t asn1_ctx
;
6972 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6973 offset
= dissect_camel_CollectInformationArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CollectInformationArg_PDU
);
6976 static int dissect_ConnectArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6978 asn1_ctx_t asn1_ctx
;
6979 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6980 offset
= dissect_camel_ConnectArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ConnectArg_PDU
);
6983 static int dissect_ConnectToResourceArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6985 asn1_ctx_t asn1_ctx
;
6986 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6987 offset
= dissect_camel_ConnectToResourceArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ConnectToResourceArg_PDU
);
6990 static int dissect_ContinueWithArgumentArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6992 asn1_ctx_t asn1_ctx
;
6993 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
6994 offset
= dissect_camel_ContinueWithArgumentArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ContinueWithArgumentArg_PDU
);
6997 static int dissect_DisconnectForwardConnectionWithArgumentArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
6999 asn1_ctx_t asn1_ctx
;
7000 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7001 offset
= dissect_camel_DisconnectForwardConnectionWithArgumentArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_DisconnectForwardConnectionWithArgumentArg_PDU
);
7004 static int dissect_DisconnectLegArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7006 asn1_ctx_t asn1_ctx
;
7007 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7008 offset
= dissect_camel_DisconnectLegArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_DisconnectLegArg_PDU
);
7011 static int dissect_EntityReleasedArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7013 asn1_ctx_t asn1_ctx
;
7014 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7015 offset
= dissect_camel_EntityReleasedArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_EntityReleasedArg_PDU
);
7018 static int dissect_EstablishTemporaryConnectionArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7020 asn1_ctx_t asn1_ctx
;
7021 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7022 offset
= dissect_camel_EstablishTemporaryConnectionArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_EstablishTemporaryConnectionArg_PDU
);
7025 static int dissect_EventReportBCSMArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7027 asn1_ctx_t asn1_ctx
;
7028 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7029 offset
= dissect_camel_EventReportBCSMArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_EventReportBCSMArg_PDU
);
7032 static int dissect_FurnishChargingInformationArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7034 asn1_ctx_t asn1_ctx
;
7035 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7036 offset
= dissect_camel_FurnishChargingInformationArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_FurnishChargingInformationArg_PDU
);
7039 static int dissect_InitialDPArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7041 asn1_ctx_t asn1_ctx
;
7042 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7043 offset
= dissect_camel_InitialDPArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_InitialDPArg_PDU
);
7046 static int dissect_InitiateCallAttemptArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7048 asn1_ctx_t asn1_ctx
;
7049 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7050 offset
= dissect_camel_InitiateCallAttemptArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_InitiateCallAttemptArg_PDU
);
7053 static int dissect_InitiateCallAttemptRes_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7055 asn1_ctx_t asn1_ctx
;
7056 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7057 offset
= dissect_camel_InitiateCallAttemptRes(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_InitiateCallAttemptRes_PDU
);
7060 static int dissect_MoveLegArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7062 asn1_ctx_t asn1_ctx
;
7063 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7064 offset
= dissect_camel_MoveLegArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_MoveLegArg_PDU
);
7067 static int dissect_PlayToneArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7069 asn1_ctx_t asn1_ctx
;
7070 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7071 offset
= dissect_camel_PlayToneArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_PlayToneArg_PDU
);
7074 static int dissect_ReleaseCallArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7076 asn1_ctx_t asn1_ctx
;
7077 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7078 offset
= dissect_camel_ReleaseCallArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ReleaseCallArg_PDU
);
7081 static int dissect_RequestReportBCSMEventArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7083 asn1_ctx_t asn1_ctx
;
7084 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7085 offset
= dissect_camel_RequestReportBCSMEventArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_RequestReportBCSMEventArg_PDU
);
7088 static int dissect_ResetTimerArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7090 asn1_ctx_t asn1_ctx
;
7091 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7092 offset
= dissect_camel_ResetTimerArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ResetTimerArg_PDU
);
7095 static int dissect_SendChargingInformationArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7097 asn1_ctx_t asn1_ctx
;
7098 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7099 offset
= dissect_camel_SendChargingInformationArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_SendChargingInformationArg_PDU
);
7102 static int dissect_SplitLegArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7104 asn1_ctx_t asn1_ctx
;
7105 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7106 offset
= dissect_camel_SplitLegArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_SplitLegArg_PDU
);
7109 static int dissect_ApplyChargingGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7111 asn1_ctx_t asn1_ctx
;
7112 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7113 offset
= dissect_camel_ApplyChargingGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ApplyChargingGPRSArg_PDU
);
7116 static int dissect_ApplyChargingReportGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7118 asn1_ctx_t asn1_ctx
;
7119 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7120 offset
= dissect_camel_ApplyChargingReportGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ApplyChargingReportGPRSArg_PDU
);
7123 static int dissect_CancelGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7125 asn1_ctx_t asn1_ctx
;
7126 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7127 offset
= dissect_camel_CancelGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CancelGPRSArg_PDU
);
7130 static int dissect_ConnectGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7132 asn1_ctx_t asn1_ctx
;
7133 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7134 offset
= dissect_camel_ConnectGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ConnectGPRSArg_PDU
);
7137 static int dissect_ContinueGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7139 asn1_ctx_t asn1_ctx
;
7140 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7141 offset
= dissect_camel_ContinueGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ContinueGPRSArg_PDU
);
7144 static int dissect_EntityReleasedGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7146 asn1_ctx_t asn1_ctx
;
7147 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7148 offset
= dissect_camel_EntityReleasedGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_EntityReleasedGPRSArg_PDU
);
7151 static int dissect_EventReportGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7153 asn1_ctx_t asn1_ctx
;
7154 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7155 offset
= dissect_camel_EventReportGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_EventReportGPRSArg_PDU
);
7158 static int dissect_FurnishChargingInformationGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7160 asn1_ctx_t asn1_ctx
;
7161 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7162 offset
= dissect_camel_FurnishChargingInformationGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_FurnishChargingInformationGPRSArg_PDU
);
7165 static int dissect_InitialDPGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7167 asn1_ctx_t asn1_ctx
;
7168 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7169 offset
= dissect_camel_InitialDPGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_InitialDPGPRSArg_PDU
);
7172 static int dissect_ReleaseGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7174 asn1_ctx_t asn1_ctx
;
7175 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7176 offset
= dissect_camel_ReleaseGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ReleaseGPRSArg_PDU
);
7179 static int dissect_RequestReportGPRSEventArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7181 asn1_ctx_t asn1_ctx
;
7182 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7183 offset
= dissect_camel_RequestReportGPRSEventArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_RequestReportGPRSEventArg_PDU
);
7186 static int dissect_ResetTimerGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7188 asn1_ctx_t asn1_ctx
;
7189 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7190 offset
= dissect_camel_ResetTimerGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ResetTimerGPRSArg_PDU
);
7193 static int dissect_SendChargingInformationGPRSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7195 asn1_ctx_t asn1_ctx
;
7196 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7197 offset
= dissect_camel_SendChargingInformationGPRSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_SendChargingInformationGPRSArg_PDU
);
7200 static int dissect_ConnectSMSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7202 asn1_ctx_t asn1_ctx
;
7203 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7204 offset
= dissect_camel_ConnectSMSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ConnectSMSArg_PDU
);
7207 static int dissect_EventReportSMSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7209 asn1_ctx_t asn1_ctx
;
7210 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7211 offset
= dissect_camel_EventReportSMSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_EventReportSMSArg_PDU
);
7214 static int dissect_FurnishChargingInformationSMSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7216 asn1_ctx_t asn1_ctx
;
7217 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7218 offset
= dissect_camel_FurnishChargingInformationSMSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_FurnishChargingInformationSMSArg_PDU
);
7221 static int dissect_InitialDPSMSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7223 asn1_ctx_t asn1_ctx
;
7224 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7225 offset
= dissect_camel_InitialDPSMSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_InitialDPSMSArg_PDU
);
7228 static int dissect_ReleaseSMSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7230 asn1_ctx_t asn1_ctx
;
7231 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7232 offset
= dissect_camel_ReleaseSMSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ReleaseSMSArg_PDU
);
7235 static int dissect_RequestReportSMSEventArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7237 asn1_ctx_t asn1_ctx
;
7238 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7239 offset
= dissect_camel_RequestReportSMSEventArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_RequestReportSMSEventArg_PDU
);
7242 static int dissect_ResetTimerSMSArg_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7244 asn1_ctx_t asn1_ctx
;
7245 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7246 offset
= dissect_camel_ResetTimerSMSArg(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_ResetTimerSMSArg_PDU
);
7249 static int dissect_CAP_U_ABORT_REASON_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
7251 asn1_ctx_t asn1_ctx
;
7252 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
7253 offset
= dissect_camel_CAP_U_ABORT_REASON(false, tvb
, offset
, &asn1_ctx
, tree
, hf_camel_CAP_U_ABORT_REASON_PDU
);
7259 static int dissect_invokeData(proto_tree
*tree
, tvbuff_t
*tvb
, int offset
, asn1_ctx_t
*actx
) {
7262 case opcode_playAnnouncement
: /* playAnnouncement */
7263 offset
= dissect_PlayAnnouncementArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7265 case opcode_promptAndCollectUserInformation
: /* promptAndCollectUserInformation */
7266 offset
= dissect_PromptAndCollectUserInformationArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7268 case opcode_specializedResourceReport
: /* specializedResourceReport */
7269 offset
= dissect_SpecializedResourceReportArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7271 case opcode_applyCharging
: /* applyCharging */
7272 offset
= dissect_ApplyChargingArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7274 case opcode_applyChargingReport
: /* applyChargingReport */
7275 offset
= dissect_ApplyChargingReportArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7277 case opcode_assistRequestInstructions
: /* assistRequestInstructions */
7278 offset
= dissect_AssistRequestInstructionsArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7280 case opcode_callGap
: /* callGap */
7281 offset
= dissect_CallGapArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7283 case opcode_callInformationReport
: /* callInformationReport */
7284 offset
= dissect_CallInformationReportArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7286 case opcode_callInformationRequest
: /* callInformationRequest */
7287 offset
= dissect_CallInformationRequestArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7289 case opcode_cancel
: /* cancel */
7290 offset
= dissect_CancelArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7292 case opcode_collectInformation
: /* collectInformation */
7293 offset
= dissect_CollectInformationArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7295 case opcode_connect
: /* connect */
7296 offset
= dissect_ConnectArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7298 case opcode_connectToResource
: /* connectToResource */
7299 offset
= dissect_ConnectToResourceArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7301 case opcode_continueWithArgument
: /* continueWithArgument */
7302 offset
= dissect_ContinueWithArgumentArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7304 case opcode_dFCWithArgument
: /* disconnectForwardConnectionWithArgument */
7305 offset
= dissect_DisconnectForwardConnectionWithArgumentArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7307 case opcode_disconnectLeg
: /* disconnectLeg */
7308 offset
= dissect_DisconnectLegArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7310 case opcode_entityReleased
: /* entityReleased */
7311 offset
= dissect_EntityReleasedArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7313 case opcode_establishTemporaryConnection
: /* establishTemporaryConnection */
7314 offset
= dissect_EstablishTemporaryConnectionArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7316 case opcode_eventReportBCSM
: /* eventReportBCSM */
7317 offset
= dissect_EventReportBCSMArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7319 case opcode_furnishChargingInformation
: /* furnishChargingInformation */
7320 offset
= dissect_FurnishChargingInformationArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7322 case opcode_initialDP
: /* initialDP */
7323 offset
= dissect_InitialDPArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7325 case opcode_initiateCallAttempt
: /* initiateCallAttempt */
7326 offset
= dissect_InitiateCallAttemptArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7328 case opcode_moveLeg
: /* moveLeg */
7329 offset
= dissect_MoveLegArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7331 case opcode_playTone
: /* playTone */
7332 offset
= dissect_PlayToneArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7334 case opcode_releaseCall
: /* releaseCall */
7335 offset
= dissect_ReleaseCallArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7337 case opcode_requestReportBCSMEvent
: /* requestReportBCSMEvent */
7338 offset
= dissect_RequestReportBCSMEventArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7340 case opcode_resetTimer
: /* resetTimer */
7341 offset
= dissect_ResetTimerArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7343 case opcode_sendChargingInformation
: /* sendChargingInformation */
7344 offset
= dissect_SendChargingInformationArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7346 case opcode_splitLeg
: /* splitLeg */
7347 offset
= dissect_SplitLegArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7349 case opcode_applyChargingGPRS
: /* applyChargingGPRS */
7350 offset
= dissect_ApplyChargingGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7352 case opcode_applyChargingReportGPRS
: /* applyChargingReportGPRS */
7353 offset
= dissect_ApplyChargingReportGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7355 case opcode_cancelGPRS
: /* cancelGPRS */
7356 offset
= dissect_CancelGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7358 case opcode_connectGPRS
: /* connectGPRS */
7359 offset
= dissect_ConnectGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7361 case opcode_continueGPRS
: /* continueGPRS */
7362 offset
= dissect_ContinueGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7364 case opcode_entityReleasedGPRS
: /* entityReleasedGPRS */
7365 offset
= dissect_EntityReleasedGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7367 case opcode_eventReportGPRS
: /* eventReportGPRS */
7368 offset
= dissect_EventReportGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7370 case opcode_furnishChargingInformationGPRS
: /* furnishChargingInformationGPRS */
7371 offset
= dissect_FurnishChargingInformationGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7373 case opcode_initialDPGPRS
: /* initialDPGPRS */
7374 offset
= dissect_InitialDPGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7376 case opcode_releaseGPRS
: /* releaseGPRS */
7377 offset
= dissect_ReleaseGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7379 case opcode_requestReportGPRSEvent
: /* requestReportGPRSEvent */
7380 offset
= dissect_RequestReportGPRSEventArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7382 case opcode_resetTimerGPRS
: /* resetTimerGPRS */
7383 offset
= dissect_ResetTimerGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7385 case opcode_sendChargingInformationGPRS
: /* sendChargingInformationGPRS */
7386 offset
= dissect_SendChargingInformationGPRSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7388 case opcode_connectSMS
: /* connectSMS */
7389 offset
= dissect_ConnectSMSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7391 case opcode_eventReportSMS
: /* eventReportSMS */
7392 offset
= dissect_EventReportSMSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7394 case opcode_furnishChargingInformationSMS
: /* furnishChargingInformationSMS */
7395 offset
= dissect_FurnishChargingInformationSMSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7397 case opcode_initialDPSMS
: /* initialDPSMS */
7398 offset
= dissect_InitialDPSMSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7400 case opcode_releaseSMS
: /* releaseSMS */
7401 offset
= dissect_ReleaseSMSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7403 case opcode_requestReportSMSEvent
: /* requestReportSMSEvent */
7404 offset
= dissect_RequestReportSMSEventArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7406 case opcode_resetTimerSMS
: /* resetTimerSMS */
7407 offset
= dissect_ResetTimerSMSArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7410 proto_tree_add_expert_format(tree
, actx
->pinfo
, &ei_camel_unknown_invokeData
,
7411 tvb
, offset
, -1, "Unknown invokeData %d", opcode
);
7412 /* todo call the asn.1 dissector */
7419 static int dissect_returnResultData(proto_tree
*tree
, tvbuff_t
*tvb
, int offset
,asn1_ctx_t
*actx
) {
7422 case opcode_promptAndCollectUserInformation
: /* promptAndCollectUserInformation */
7423 offset
= dissect_ReceivedInformationArg_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7425 case opcode_initiateCallAttempt
: /* initiateCallAttempt */
7426 offset
= dissect_InitiateCallAttemptRes_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7429 proto_tree_add_expert_format(tree
, actx
->pinfo
, &ei_camel_unknown_returnResultData
,
7430 tvb
, offset
, -1, "Unknown returnResultData %d",opcode
);
7436 static int dissect_returnErrorData(proto_tree
*tree
, tvbuff_t
*tvb
, int offset
,asn1_ctx_t
*actx
) {
7439 case errcode_cancelFailed
: /* cancelFailed */
7440 dissect_PAR_cancelFailed_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7442 case errcode_requestedInfoError
: /* requestedInfoError */
7443 dissect_PAR_requestedInfoError_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7445 case errcode_systemFailure
: /* systemFailure */
7446 dissect_UnavailableNetworkResource_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7448 case errcode_taskRefused
: /* taskRefused */
7449 dissect_PAR_taskRefused_PDU(tvb
, actx
->pinfo
, tree
, NULL
);
7452 proto_tree_add_expert_format(tree
, actx
->pinfo
, &ei_camel_unknown_returnErrorData
,
7453 tvb
, offset
, -1, "Unknown returnErrorData %d",errorCode
);
7460 * Functions needed for Hash-Table
7463 /* compare 2 keys */
7465 camelsrt_call_equal(const void *k1
, const void *k2
)
7467 const struct camelsrt_call_info_key_t
*key1
= (const struct camelsrt_call_info_key_t
*) k1
;
7468 const struct camelsrt_call_info_key_t
*key2
= (const struct camelsrt_call_info_key_t
*) k2
;
7470 return (key1
->SessionIdKey
== key2
->SessionIdKey
) ;
7473 /* calculate a hash key */
7475 camelsrt_call_hash(const void *k
)
7477 const struct camelsrt_call_info_key_t
*key
= (const struct camelsrt_call_info_key_t
*) k
;
7478 return key
->SessionIdKey
;
7482 * Find the dialog by Key and Time
7484 static struct camelsrt_call_t
*
7485 find_camelsrt_call(struct camelsrt_call_info_key_t
*p_camelsrt_call_key
)
7487 struct camelsrt_call_t
*p_camelsrt_call
= NULL
;
7488 p_camelsrt_call
= (struct camelsrt_call_t
*)wmem_map_lookup(srt_calls
, p_camelsrt_call_key
);
7490 #ifdef DEBUG_CAMELSRT
7491 if(p_camelsrt_call
) {
7492 dbg(10,"D%d ", p_camelsrt_call
->session_id
);
7494 dbg(23,"Not in hash ");
7498 return p_camelsrt_call
;
7502 * Initialize the data per call for the Service Response Time Statistics
7503 * Data are linked to a Camel operation in a TCAP transaction
7506 raz_camelsrt_call (struct camelsrt_call_t
*p_camelsrt_call
)
7508 memset(p_camelsrt_call
,0,sizeof(struct camelsrt_call_t
));
7512 * New record to create, to identify a new transaction
7514 static struct camelsrt_call_t
*
7515 new_camelsrt_call(struct camelsrt_call_info_key_t
*p_camelsrt_call_key
)
7517 struct camelsrt_call_info_key_t
*p_new_camelsrt_call_key
;
7518 struct camelsrt_call_t
*p_new_camelsrt_call
= NULL
;
7520 /* Register the transaction in the hash table
7521 with the tcap transaction Id as main Key
7522 Once created, this entry will be updated later */
7524 p_new_camelsrt_call_key
= wmem_new(wmem_file_scope(), struct camelsrt_call_info_key_t
);
7525 p_new_camelsrt_call_key
->SessionIdKey
= p_camelsrt_call_key
->SessionIdKey
;
7526 p_new_camelsrt_call
= wmem_new(wmem_file_scope(), struct camelsrt_call_t
);
7527 raz_camelsrt_call(p_new_camelsrt_call
);
7528 p_new_camelsrt_call
->session_id
= camelsrt_global_SessionId
++;
7529 #ifdef DEBUG_CAMELSRT
7530 dbg(10,"D%d ", p_new_camelsrt_call
->session_id
);
7533 wmem_map_insert(srt_calls
, p_new_camelsrt_call_key
, p_new_camelsrt_call
);
7534 return p_new_camelsrt_call
;
7538 * Routine called when the TAP is initialized.
7539 * so hash table are (re)created
7542 camelsrt_init_routine(void)
7544 /* Reset the session counter */
7545 camelsrt_global_SessionId
=1;
7547 /* The Display of SRT is enable
7548 * 1) For wireshark only if Persistent Stat is enable
7549 * 2) For Tshark, if the SRT CLI tap is registered
7551 gcamel_DisplaySRT
=gcamel_PersistentSRT
|| gcamel_StatSRT
;
7556 * Update a record with the data of the Request
7559 update_camelsrt_call(struct camelsrt_call_t
*p_camelsrt_call
, packet_info
*pinfo
,
7560 unsigned msg_category
)
7562 p_camelsrt_call
->category
[msg_category
].req_num
= pinfo
->num
;
7563 p_camelsrt_call
->category
[msg_category
].rsp_num
= 0;
7564 p_camelsrt_call
->category
[msg_category
].responded
= false;
7565 p_camelsrt_call
->category
[msg_category
].req_time
= pinfo
->abs_ts
;
7569 * Update the Camel session info, and close the session.
7570 * Then remove the associated context, if we do not have persistentSRT enable
7573 camelsrt_close_call_matching(packet_info
*pinfo
,
7574 struct camelsrt_info_t
*p_camelsrt_info
)
7576 struct camelsrt_call_t
*p_camelsrt_call
;
7577 struct camelsrt_call_info_key_t camelsrt_call_key
;
7580 p_camelsrt_info
->bool_msginfo
[CAMELSRT_SESSION
]=true;
7581 #ifdef DEBUG_CAMELSRT
7582 dbg(10,"\n Session end #%u\n", pinfo
->num
);
7584 /* look only for matching request, if matching conversation is available. */
7585 camelsrt_call_key
.SessionIdKey
= p_camelsrt_info
->tcap_session_id
;
7587 #ifdef DEBUG_CAMELSRT
7588 dbg(11,"Search key %lu ",camelsrt_call_key
.SessionIdKey
);
7590 p_camelsrt_call
= find_camelsrt_call(&camelsrt_call_key
);
7591 if(p_camelsrt_call
) {
7592 #ifdef DEBUG_CAMELSRT
7595 /* Calculate Service Response Time */
7596 nstime_delta(&delta
, &pinfo
->abs_ts
, &p_camelsrt_call
->category
[CAMELSRT_SESSION
].req_time
);
7597 p_camelsrt_call
->category
[CAMELSRT_SESSION
].responded
= true;
7598 p_camelsrt_info
->msginfo
[CAMELSRT_SESSION
].request_available
= true;
7599 p_camelsrt_info
->msginfo
[CAMELSRT_SESSION
].is_delta_time
= true;
7600 p_camelsrt_info
->msginfo
[CAMELSRT_SESSION
].delta_time
= delta
; /* give it to tap */
7601 p_camelsrt_info
->msginfo
[CAMELSRT_SESSION
].req_time
= p_camelsrt_call
->category
[CAMELSRT_SESSION
].req_time
;
7603 if ( !gcamel_PersistentSRT
) {
7604 wmem_map_remove(srt_calls
, &camelsrt_call_key
);
7605 #ifdef DEBUG_CAMELSRT
7606 dbg(20,"remove hash ");
7609 #ifdef DEBUG_CAMELSRT
7610 dbg(20,"keep hash ");
7613 } /* call reference found */
7617 * Callback function for the TCAP dissector
7618 * This callback function is used to inform the camel layer, that the session
7619 * has been Closed or Aborted by a TCAP message without Camel component
7620 * So, we can close the context for camel session, and update the stats.
7623 camelsrt_tcap_matching(tvbuff_t
*tvb _U_
, packet_info
*pinfo
,
7624 proto_tree
*tree _U_
,
7625 struct tcaphash_context_t
*p_tcap_context
)
7627 struct camelsrt_info_t
*p_camelsrt_info
;
7629 #ifdef DEBUG_CAMELSRT
7630 dbg(11,"Camel_CallBack ");
7632 p_camelsrt_info
=camelsrt_razinfo();
7634 p_camelsrt_info
->tcap_context
=p_tcap_context
;
7635 if (p_tcap_context
) {
7636 #ifdef DEBUG_CAMELSRT
7637 dbg(11,"Close TCAP ");
7639 p_camelsrt_info
->tcap_session_id
= p_tcap_context
->session_id
;
7640 camelsrt_close_call_matching(pinfo
, p_camelsrt_info
);
7641 tap_queue_packet(camel_tap
, pinfo
, p_camelsrt_info
);
7646 * Create the record identifiying the Camel session
7647 * As the Tcap session id given by the TCAP dissector is uniq, it will be
7651 camelsrt_begin_call_matching(packet_info
*pinfo
,
7652 struct camelsrt_info_t
*p_camelsrt_info
)
7654 struct camelsrt_call_t
*p_camelsrt_call
;
7655 struct camelsrt_call_info_key_t camelsrt_call_key
;
7657 p_camelsrt_info
->bool_msginfo
[CAMELSRT_SESSION
]=true;
7659 /* prepare the key data */
7660 camelsrt_call_key
.SessionIdKey
= p_camelsrt_info
->tcap_session_id
;
7662 /* look up the request */
7663 #ifdef DEBUG_CAMELSRT
7664 dbg(10,"\n Session begin #%u\n", pinfo
->num
);
7665 dbg(11,"Search key %lu ",camelsrt_call_key
.SessionIdKey
);
7667 p_camelsrt_call
= (struct camelsrt_call_t
*)wmem_map_lookup(srt_calls
, &camelsrt_call_key
);
7668 if (p_camelsrt_call
) {
7669 /* We have seen this request before -> do nothing */
7670 #ifdef DEBUG_CAMELSRT
7671 dbg(22,"Already seen ");
7673 } else { /* p_camelsrt_call has not been found */
7674 #ifdef DEBUG_CAMELSRT
7675 dbg(10,"New key %lu ",camelsrt_call_key
.SessionIdKey
);
7677 p_camelsrt_call
= new_camelsrt_call(&camelsrt_call_key
);
7678 p_camelsrt_call
->tcap_context
=(struct tcaphash_context_t
*)p_camelsrt_info
->tcap_context
;
7679 update_camelsrt_call(p_camelsrt_call
, pinfo
,CAMELSRT_SESSION
);
7681 #ifdef DEBUG_CAMELSRT
7682 dbg(11,"Update Callback ");
7684 p_camelsrt_call
->tcap_context
->callback
=camelsrt_tcap_matching
;
7689 * Register the request, and try to find the response
7693 camelsrt_request_call_matching(tvbuff_t
*tvb
, packet_info
*pinfo
,
7695 struct camelsrt_info_t
*p_camelsrt_info
,
7698 struct camelsrt_call_t
*p_camelsrt_call
;
7699 struct camelsrt_call_info_key_t camelsrt_call_key
;
7700 proto_item
*ti
, *hidden_item
;
7702 #ifdef DEBUG_CAMELSRT
7703 dbg(10,"\n %s #%u\n", val_to_str_const(srt_type
, camelSRTtype_naming
, "Unk"),pinfo
->num
);
7706 /* look only for matching request, if matching conversation is available. */
7707 camelsrt_call_key
.SessionIdKey
= p_camelsrt_info
->tcap_session_id
;
7709 #ifdef DEBUG_CAMELSRT
7710 dbg(11,"Search key %lu ", camelsrt_call_key
.SessionIdKey
);
7712 p_camelsrt_call
= find_camelsrt_call(&camelsrt_call_key
);
7713 if(p_camelsrt_call
) {
7714 #ifdef DEBUG_CAMELSRT
7717 if (gcamel_DisplaySRT
)
7718 proto_tree_add_uint(tree
, hf_camelsrt_SessionId
, tvb
, 0,0, p_camelsrt_call
->session_id
);
7721 /* Hmm.. As there are several slices ApplyChargingReport/ApplyCharging
7722 * we will prepare the measurement for 3 slices with 3 categories */
7723 if (srt_type
==CAMELSRT_VOICE_ACR1
) {
7724 if (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].req_num
== 0) {
7725 srt_type
=CAMELSRT_VOICE_ACR1
;
7726 } else if ( (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].req_num
== 0)
7727 && (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].rsp_num
!= 0)
7728 && (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].rsp_num
< pinfo
->num
) ) {
7729 srt_type
=CAMELSRT_VOICE_ACR2
;
7730 } else if ( (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR3
].req_num
== 0)
7731 && (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].rsp_num
!= 0)
7732 && (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].rsp_num
< pinfo
->num
) ) {
7733 srt_type
=CAMELSRT_VOICE_ACR3
;
7734 } else if (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].rsp_num
!= 0
7735 && p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].rsp_num
> pinfo
->num
) {
7736 srt_type
=CAMELSRT_VOICE_ACR1
;
7737 } else if ( p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].rsp_num
!= 0
7738 && p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].rsp_num
> pinfo
->num
) {
7739 srt_type
=CAMELSRT_VOICE_ACR2
;
7740 } else if (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].rsp_num
!= 0
7741 && p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR3
].rsp_num
> pinfo
->num
) {
7742 srt_type
=CAMELSRT_VOICE_ACR3
;
7744 #ifdef DEBUG_CAMELSRT
7745 dbg(70,"Request ACR %u ",srt_type
);
7746 dbg(70,"ACR1 %u %u",p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].req_num
, p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].rsp_num
);
7747 dbg(70,"ACR2 %u %u",p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].req_num
, p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].rsp_num
);
7748 dbg(70,"ACR3 %u %u",p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR3
].req_num
, p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR3
].rsp_num
);
7751 p_camelsrt_info
->bool_msginfo
[srt_type
]=true;
7754 if (p_camelsrt_call
->category
[srt_type
].req_num
== 0) {
7755 /* We have not yet seen a request to that call, so this must be the first request
7756 remember its frame number. */
7757 #ifdef DEBUG_CAMELSRT
7758 dbg(5,"Set reqlink #%u ", pinfo
->num
);
7760 update_camelsrt_call(p_camelsrt_call
, pinfo
, srt_type
);
7762 /* We have seen a request to this call - but was it *this* request? */
7763 if (p_camelsrt_call
->category
[srt_type
].req_num
!= pinfo
->num
) {
7765 if (srt_type
!=CAMELSRT_VOICE_DISC
) {
7766 /* No, so it's a duplicate request. Mark it as such. */
7767 #ifdef DEBUG_CAMELSRT
7768 dbg(21,"Display_duplicate with req %d ", p_camelsrt_call
->category
[srt_type
].req_num
);
7770 p_camelsrt_info
->msginfo
[srt_type
].is_duplicate
= true;
7771 if (gcamel_DisplaySRT
){
7772 hidden_item
= proto_tree_add_uint(tree
, hf_camelsrt_Duplicate
, tvb
, 0,0, 77);
7773 proto_item_set_hidden(hidden_item
);
7777 /* Ignore duplicate frame */
7778 if (pinfo
->num
> p_camelsrt_call
->category
[srt_type
].req_num
) {
7779 p_camelsrt_call
->category
[srt_type
].req_num
= pinfo
->num
;
7780 #ifdef DEBUG_CAMELSRT
7781 dbg(5,"DISC Set reqlink #%u ", pinfo
->num
);
7783 update_camelsrt_call(p_camelsrt_call
, pinfo
, srt_type
);
7784 } /* greater frame */
7786 } /* req_num already seen */
7787 } /* req_num != 0 */
7789 /* add link to response frame, if available */
7790 if ( gcamel_DisplaySRT
&&
7791 (p_camelsrt_call
->category
[srt_type
].rsp_num
!= 0) &&
7792 (p_camelsrt_call
->category
[srt_type
].req_num
!= 0) &&
7793 (p_camelsrt_call
->category
[srt_type
].req_num
== pinfo
->num
) ) {
7794 #ifdef DEBUG_CAMELSRT
7795 dbg(20,"Display_framersplink %d ",p_camelsrt_call
->category
[srt_type
].rsp_num
);
7797 ti
= proto_tree_add_uint_format(tree
, hf_camelsrt_RequestFrame
, tvb
, 0, 0,
7798 p_camelsrt_call
->category
[srt_type
].rsp_num
,
7799 "Linked response %s in frame %u",
7800 val_to_str_const(srt_type
, camelSRTtype_naming
, "Unk"),
7801 p_camelsrt_call
->category
[srt_type
].rsp_num
);
7802 proto_item_set_generated(ti
);
7804 } /* call reference */
7808 * Display the delta time between two messages in a field corresponding
7809 * to the category (hf_camelsrt_DeltaTimexx).
7812 camelsrt_display_DeltaTime(proto_tree
*tree
, tvbuff_t
*tvb
, nstime_t
*value_ptr
,
7817 if ( gcamel_DisplaySRT
) {
7819 case CAMELSRT_VOICE_INITIALDP
:
7820 ti
= proto_tree_add_time(tree
, hf_camelsrt_DeltaTime31
, tvb
, 0, 0, value_ptr
);
7821 proto_item_set_generated(ti
);
7824 case CAMELSRT_VOICE_ACR1
:
7825 case CAMELSRT_VOICE_ACR2
:
7826 case CAMELSRT_VOICE_ACR3
:
7827 ti
= proto_tree_add_time(tree
, hf_camelsrt_DeltaTime22
, tvb
, 0, 0, value_ptr
);
7828 proto_item_set_generated(ti
);
7831 case CAMELSRT_VOICE_DISC
:
7832 ti
= proto_tree_add_time(tree
, hf_camelsrt_DeltaTime35
, tvb
, 0, 0, value_ptr
);
7833 proto_item_set_generated(ti
);
7836 case CAMELSRT_GPRS_INITIALDP
:
7837 ti
= proto_tree_add_time(tree
, hf_camelsrt_DeltaTime75
, tvb
, 0, 0, value_ptr
);
7838 proto_item_set_generated(ti
);
7841 case CAMELSRT_GPRS_REPORT
:
7842 ti
= proto_tree_add_time(tree
, hf_camelsrt_DeltaTime80
, tvb
, 0, 0, value_ptr
);
7843 proto_item_set_generated(ti
);
7846 case CAMELSRT_SMS_INITIALDP
:
7847 ti
= proto_tree_add_time(tree
, hf_camelsrt_DeltaTime65
, tvb
, 0, 0, value_ptr
);
7848 proto_item_set_generated(ti
);
7858 * Check if the received message is a response to a previous request
7859 * registered is the camel session context.
7862 camelsrt_report_call_matching(tvbuff_t
*tvb
, packet_info
*pinfo
,
7864 struct camelsrt_info_t
*p_camelsrt_info
,
7867 struct camelsrt_call_t
*p_camelsrt_call
;
7868 struct camelsrt_call_info_key_t camelsrt_call_key
;
7870 proto_item
*ti
, *hidden_item
;
7872 #ifdef DEBUG_CAMELSRT
7873 dbg(10,"\n %s #%u\n", val_to_str_const(srt_type
, camelSRTtype_naming
, "Unk"),pinfo
->num
);
7875 camelsrt_call_key
.SessionIdKey
= p_camelsrt_info
->tcap_session_id
;
7876 /* look only for matching request, if matching conversation is available. */
7878 #ifdef DEBUG_CAMELSRT
7879 dbg(11,"Search key %lu ",camelsrt_call_key
.SessionIdKey
);
7881 p_camelsrt_call
= find_camelsrt_call(&camelsrt_call_key
);
7882 if(p_camelsrt_call
) {
7883 #ifdef DEBUG_CAMELSRT
7884 dbg(12,"Found, req=%d ",p_camelsrt_call
->category
[srt_type
].req_num
);
7886 if ( gcamel_DisplaySRT
)
7887 proto_tree_add_uint(tree
, hf_camelsrt_SessionId
, tvb
, 0,0, p_camelsrt_call
->session_id
);
7889 if (srt_type
==CAMELSRT_VOICE_ACR1
) {
7890 if (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR3
].req_num
!= 0
7891 && p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR3
].req_num
< pinfo
->num
) {
7892 srt_type
=CAMELSRT_VOICE_ACR1
;
7893 } else if ( p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].req_num
!= 0
7894 && p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR2
].req_num
< pinfo
->num
) {
7895 srt_type
=CAMELSRT_VOICE_ACR2
;
7896 } else if (p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].req_num
!= 0
7897 && p_camelsrt_call
->category
[CAMELSRT_VOICE_ACR1
].req_num
< pinfo
->num
) {
7898 srt_type
=CAMELSRT_VOICE_ACR1
;
7900 #ifdef DEBUG_CAMELSRT
7901 dbg(70,"Report ACR %u ",srt_type
);
7904 p_camelsrt_info
->bool_msginfo
[srt_type
]=true;
7906 if (p_camelsrt_call
->category
[srt_type
].rsp_num
== 0) {
7907 if ( (p_camelsrt_call
->category
[srt_type
].req_num
!= 0)
7908 && (pinfo
->num
> p_camelsrt_call
->category
[srt_type
].req_num
) ){
7909 /* We have not yet seen a response to that call, so this must be the first response;
7910 remember its frame number only if response comes after request */
7911 #ifdef DEBUG_CAMELSRT
7912 dbg(14,"Set reslink #%d req %u ",pinfo
->num
, p_camelsrt_call
->category
[srt_type
].req_num
);
7914 p_camelsrt_call
->category
[srt_type
].rsp_num
= pinfo
->num
;
7917 #ifdef DEBUG_CAMELSRT
7918 dbg(2,"badreslink #%u req %u ",pinfo
->num
, p_camelsrt_call
->category
[srt_type
].req_num
);
7920 } /* req_num != 0 */
7921 } else { /* rsp_num != 0 */
7922 /* We have seen a response to this call - but was it *this* response? */
7923 if (p_camelsrt_call
->category
[srt_type
].rsp_num
!= pinfo
->num
) {
7924 /* No, so it's a duplicate response. Mark it as such. */
7925 #ifdef DEBUG_CAMELSRT
7926 dbg(21,"Display_duplicate rsp=%d ", p_camelsrt_call
->category
[srt_type
].rsp_num
);
7928 p_camelsrt_info
->msginfo
[srt_type
].is_duplicate
= true;
7929 if ( gcamel_DisplaySRT
){
7930 hidden_item
= proto_tree_add_uint(tree
, hf_camelsrt_Duplicate
, tvb
, 0,0, 77);
7931 proto_item_set_hidden(hidden_item
);
7934 } /* rsp_num != 0 */
7936 if ( (p_camelsrt_call
->category
[srt_type
].req_num
!= 0) &&
7937 (p_camelsrt_call
->category
[srt_type
].rsp_num
!= 0) &&
7938 (p_camelsrt_call
->category
[srt_type
].rsp_num
== pinfo
->num
) ) {
7940 p_camelsrt_call
->category
[srt_type
].responded
= true;
7941 p_camelsrt_info
->msginfo
[srt_type
].request_available
= true;
7942 #ifdef DEBUG_CAMELSRT
7943 dbg(20,"Display_frameReqlink %d ",p_camelsrt_call
->category
[srt_type
].req_num
);
7945 /* Indicate the frame to which this is a reply. */
7946 if ( gcamel_DisplaySRT
) {
7947 ti
= proto_tree_add_uint_format(tree
, hf_camelsrt_ResponseFrame
, tvb
, 0, 0,
7948 p_camelsrt_call
->category
[srt_type
].req_num
,
7949 "Linked request %s in frame %u",
7950 val_to_str_const(srt_type
, camelSRTtype_naming
, "Unk"),
7951 p_camelsrt_call
->category
[srt_type
].req_num
);
7952 proto_item_set_generated(ti
);
7954 /* Calculate Service Response Time */
7955 nstime_delta(&delta
, &pinfo
->abs_ts
, &p_camelsrt_call
->category
[srt_type
].req_time
);
7957 p_camelsrt_info
->msginfo
[srt_type
].is_delta_time
= true;
7958 p_camelsrt_info
->msginfo
[srt_type
].delta_time
= delta
; /* give it to tap */
7959 p_camelsrt_info
->msginfo
[srt_type
].req_time
= p_camelsrt_call
->category
[srt_type
].req_time
;
7961 /* display Service Response Time and make it filterable */
7962 camelsrt_display_DeltaTime(tree
, tvb
, &delta
, srt_type
);
7964 } /*req_num != 0 && not duplicate */
7965 } /* call reference found */
7969 * Service Response Time analyze, called just after the camel dissector
7970 * According to the camel operation, we
7971 * - open/close a context for the camel session
7972 * - look for a request, or look for the corresponding response
7975 camelsrt_call_matching(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
,
7976 struct camelsrt_info_t
*p_camelsrt_info
)
7979 #ifdef DEBUG_CAMELSRT
7980 dbg(10,"tcap_session #%d ", p_camelsrt_info
->tcap_session_id
);
7983 switch (p_camelsrt_info
->opcode
) {
7985 case 0: /*InitialDP*/
7986 camelsrt_begin_call_matching(pinfo
, p_camelsrt_info
);
7987 camelsrt_request_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
7988 CAMELSRT_VOICE_INITIALDP
);
7990 case 60: /*InitialDPSMS*/
7991 camelsrt_begin_call_matching(pinfo
, p_camelsrt_info
);
7992 camelsrt_request_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
7993 CAMELSRT_SMS_INITIALDP
);
7995 case 78: /*InitialDPGPRS*/
7996 camelsrt_begin_call_matching(pinfo
, p_camelsrt_info
);
7997 camelsrt_request_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
7998 CAMELSRT_GPRS_INITIALDP
);
8001 case 23: /*RequestReportBCSMEvent*/
8004 case 63: /*RequestReportSMSEvent*/
8007 case 81: /*RequestReportGPRSEvent*/
8010 case 24: /*EventReportBCSMEvent*/
8011 camelsrt_request_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8012 CAMELSRT_VOICE_DISC
);
8015 case 64: /*EventReportSMS*/
8016 /* Session has been explicitly closed without TC_END */
8017 camelsrt_close_call_matching(pinfo
, p_camelsrt_info
);
8018 tcapsrt_close((struct tcaphash_context_t
*)p_camelsrt_info
->tcap_context
, pinfo
);
8021 case 80: /*EventReportGPRS*/
8022 camelsrt_begin_call_matching(pinfo
, p_camelsrt_info
);
8023 camelsrt_request_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8024 CAMELSRT_GPRS_REPORT
);
8027 case 35: /*ApplyCharging*/
8028 camelsrt_report_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8029 CAMELSRT_VOICE_ACR1
);
8032 case 71: /*ApplyChargingGPRS*/
8035 case 36: /*ApplyChargingReport*/
8036 camelsrt_request_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8037 CAMELSRT_VOICE_ACR1
);
8040 case 72: /*ApplyChargingReportGPRS*/
8043 case 31: /*Continue*/
8044 camelsrt_report_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8045 CAMELSRT_VOICE_INITIALDP
);
8047 case 65: /*ContinueSMS*/
8048 camelsrt_report_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8049 CAMELSRT_SMS_INITIALDP
);
8051 case 75: /*ContinueGPRS*/
8052 camelsrt_report_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8053 CAMELSRT_GPRS_INITIALDP
);
8054 camelsrt_report_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8055 CAMELSRT_GPRS_REPORT
);
8058 case 22: /*ReleaseCall*/
8059 camelsrt_report_call_matching(tvb
, pinfo
, tree
, p_camelsrt_info
,
8060 CAMELSRT_VOICE_DISC
);
8061 /* Session has been closed by Network */
8062 camelsrt_close_call_matching(pinfo
, p_camelsrt_info
);
8065 case 66: /*ReleaseSMS*/
8066 /* Session has been closed by Network */
8067 camelsrt_close_call_matching(pinfo
, p_camelsrt_info
);
8068 tcapsrt_close((struct tcaphash_context_t
*)p_camelsrt_info
->tcap_context
,pinfo
);
8071 case 79: /*ReleaseGPRS*/
8072 /* Session has been closed by Network */
8073 camelsrt_close_call_matching(pinfo
, p_camelsrt_info
);
8075 } /* switch opcode */
8079 * Initialize the Message Info used by the main dissector
8080 * Data are linked to a TCAP transaction
8082 struct camelsrt_info_t
*
8083 camelsrt_razinfo(void)
8085 struct camelsrt_info_t
*p_camelsrt_info
;
8087 /* Global buffer for packet extraction */
8088 camelsrt_global_current
++;
8089 if(camelsrt_global_current
==MAX_CAMEL_INSTANCE
){
8090 camelsrt_global_current
=0;
8093 p_camelsrt_info
=&camelsrt_global_info
[camelsrt_global_current
];
8094 memset(p_camelsrt_info
,0,sizeof(struct camelsrt_info_t
));
8096 p_camelsrt_info
->opcode
=255;
8098 return p_camelsrt_info
;
8102 static uint8_t camel_pdu_type
;
8103 static uint8_t camel_pdu_size
;
8107 dissect_camel_camelPDU(bool implicit_tag _U_
, tvbuff_t
*tvb
, int offset
, asn1_ctx_t
*actx _U_
,proto_tree
*tree
,
8108 int hf_index
, struct tcap_private_t
* p_private_tcap
) {
8111 if (p_private_tcap
!= NULL
){
8112 gp_camelsrt_info
->tcap_context
=p_private_tcap
->context
;
8113 if (p_private_tcap
->context
)
8114 gp_camelsrt_info
->tcap_session_id
= ( (struct tcaphash_context_t
*) (p_private_tcap
->context
))->session_id
;
8117 camel_pdu_type
= tvb_get_uint8(tvb
, offset
)&0x0f;
8118 /* Get the length and add 2 */
8119 camel_pdu_size
= tvb_get_uint8(tvb
, offset
+1)+2;
8121 /* Populate the info column with PDU type*/
8122 col_add_str(actx
->pinfo
->cinfo
, COL_INFO
, val_to_str(camel_pdu_type
, camel_Component_vals
, "Unknown Camel (%u)"));
8123 col_append_str(actx
->pinfo
->cinfo
, COL_INFO
, " ");
8125 is_ExtensionField
=false;
8126 offset
= dissect_camel_ROS(true, tvb
, offset
, actx
, tree
, hf_index
);
8132 dissect_camel_all(int version
, const char* col_protocol
, const char* suffix
,
8133 tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void* data
)
8136 proto_tree
*tree
= NULL
, *stat_tree
= NULL
;
8137 struct tcap_private_t
* p_private_tcap
= (struct tcap_private_t
*)data
;
8138 asn1_ctx_t asn1_ctx
;
8139 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
8141 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, col_protocol
);
8143 camel_ver
= version
;
8145 /* create display subtree for the protocol */
8147 item
= proto_tree_add_item(parent_tree
, proto_camel
, tvb
, 0, -1, ENC_NA
);
8148 tree
= proto_item_add_subtree(item
, ett_camel
);
8149 proto_item_append_text(item
, "%s", suffix
);
8151 /* camelsrt reset counter, and initialise global pointer
8152 to store service response time related data */
8153 gp_camelsrt_info
=camelsrt_razinfo();
8155 dissect_camel_camelPDU(false, tvb
, 0, &asn1_ctx
, tree
, -1, p_private_tcap
);
8157 /* If a Tcap context is associated to this transaction */
8158 if (gp_camelsrt_info
->tcap_context
) {
8159 if (gcamel_DisplaySRT
&& tree
) {
8160 stat_tree
= proto_tree_add_subtree(tree
, tvb
, 0, 0, ett_camel_stat
, NULL
, "Stat");
8162 camelsrt_call_matching(tvb
, pinfo
, stat_tree
, gp_camelsrt_info
);
8163 tap_queue_packet(camel_tap
, pinfo
, gp_camelsrt_info
);
8166 return tvb_captured_length(tvb
);
8170 dissect_camel_v1(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void* data
)
8172 return dissect_camel_all(1, "Camel-v1", "-V1", tvb
, pinfo
, parent_tree
, data
);
8176 dissect_camel_v2(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void* data
)
8178 return dissect_camel_all(2, "Camel-v2", "-V2", tvb
, pinfo
, parent_tree
, data
);
8182 dissect_camel_v3(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void* data
)
8184 return dissect_camel_all(3, "Camel-v3", "-V3", tvb
, pinfo
, parent_tree
, data
);
8188 dissect_camel_v4(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void* data
)
8190 return dissect_camel_all(4, "Camel-v4", "-V4", tvb
, pinfo
, parent_tree
, data
);
8194 dissect_camel(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*parent_tree
, void* data
)
8196 return dissect_camel_all(4, "Camel", "", tvb
, pinfo
, parent_tree
, data
);
8202 MESSAGE_TYPE_COLUMN
= 0,
8204 } camel_stat_columns
;
8206 static stat_tap_table_item camel_stat_fields
[] = {{TABLE_ITEM_STRING
, TAP_ALIGN_LEFT
, "Message Type or Reason", "%-25s"}, {TABLE_ITEM_UINT
, TAP_ALIGN_RIGHT
, "Count", "%d"}};
8208 static void camel_stat_init(stat_tap_table_ui
* new_stat
)
8210 const char *table_name
= "CAMEL Message Counters";
8211 int num_fields
= array_length(camel_stat_fields
);
8212 stat_tap_table
*table
;
8214 stat_tap_table_item_type items
[array_length(camel_stat_fields
)];
8216 table
= stat_tap_find_table(new_stat
, table_name
);
8218 if (new_stat
->stat_tap_reset_table_cb
) {
8219 new_stat
->stat_tap_reset_table_cb(table
);
8224 table
= stat_tap_init_table(table_name
, num_fields
, 0, NULL
);
8225 stat_tap_add_table(new_stat
, table
);
8227 memset(items
, 0x0, sizeof(items
));
8228 items
[MESSAGE_TYPE_COLUMN
].type
= TABLE_ITEM_STRING
;
8229 items
[COUNT_COLUMN
].type
= TABLE_ITEM_UINT
;
8230 items
[COUNT_COLUMN
].value
.uint_value
= 0;
8232 /* Add a row for each value type */
8233 for (i
= 0; i
< camel_MAX_NUM_OPR_CODES
; i
++)
8235 const char *ocs
= try_val_to_str(i
, camel_opr_code_strings
);
8238 col_str
= ws_strdup_printf("Request %s", ocs
);
8240 col_str
= ws_strdup_printf("Unknown op code %d", i
);
8243 items
[MESSAGE_TYPE_COLUMN
].value
.string_value
= col_str
;
8244 stat_tap_init_table_row(table
, i
, num_fields
, items
);
8248 static tap_packet_status
8249 camel_stat_packet(void *tapdata
, packet_info
*pinfo _U_
, epan_dissect_t
*edt _U_
, const void *csi_ptr
, tap_flags_t flags _U_
)
8251 stat_data_t
* stat_data
= (stat_data_t
*)tapdata
;
8252 const struct camelsrt_info_t
*csi
= (const struct camelsrt_info_t
*) csi_ptr
;
8253 stat_tap_table
* table
;
8254 stat_tap_table_item_type
* msg_data
;
8256 table
= g_array_index(stat_data
->stat_tap_data
->tables
, stat_tap_table
*, 0);
8257 if (csi
->opcode
>= table
->num_elements
)
8258 return TAP_PACKET_DONT_REDRAW
;
8259 msg_data
= stat_tap_get_field_data(table
, csi
->opcode
, COUNT_COLUMN
);
8260 msg_data
->value
.uint_value
++;
8261 stat_tap_set_field_data(table
, csi
->opcode
, COUNT_COLUMN
, msg_data
);
8263 return TAP_PACKET_REDRAW
;
8267 camel_stat_reset(stat_tap_table
* table
)
8270 stat_tap_table_item_type
* item_data
;
8272 for (element
= 0; element
< table
->num_elements
; element
++)
8274 item_data
= stat_tap_get_field_data(table
, element
, COUNT_COLUMN
);
8275 item_data
->value
.uint_value
= 0;
8276 stat_tap_set_field_data(table
, element
, COUNT_COLUMN
, item_data
);
8281 camel_stat_free_table_item(stat_tap_table
* table _U_
, unsigned row _U_
, unsigned column
, stat_tap_table_item_type
* field_data
)
8283 if (column
!= MESSAGE_TYPE_COLUMN
) return;
8284 g_free((char*)field_data
->value
.string_value
);
8287 /*--- proto_reg_handoff_camel ---------------------------------------*/
8288 static void range_delete_callback(uint32_t ssn
, void *ptr _U_
)
8291 delete_itu_tcap_subdissector(ssn
, camel_handle
);
8295 static void range_add_callback(uint32_t ssn
, void *ptr _U_
)
8298 add_itu_tcap_subdissector(ssn
, camel_handle
);
8302 void proto_reg_handoff_camel(void) {
8303 static bool camel_prefs_initialized
= false;
8304 static range_t
*ssn_range
;
8306 if (!camel_prefs_initialized
) {
8308 camel_prefs_initialized
= true;
8310 register_ber_oid_dissector_handle("0.4.0.0.1.0.50.0",camel_v1_handle
, proto_camel
, "CAP-v1-gsmSSF-to-gsmSCF-AC" );
8311 register_ber_oid_dissector_handle("0.4.0.0.1.0.50.1",camel_v2_handle
, proto_camel
, "CAP-v2-gsmSSF-to-gsmSCF-AC" );
8312 register_ber_oid_dissector_handle("0.4.0.0.1.0.51.1",camel_v2_handle
, proto_camel
, "CAP-v2-assist-gsmSSF-to-gsmSCF-AC" );
8313 register_ber_oid_dissector_handle("0.4.0.0.1.0.52.1",camel_v2_handle
, proto_camel
, "CAP-v2-gsmSRF-to-gsmSCF-AC" );
8315 /* CAMEL Phase 3 Application Context Names */
8316 register_ber_oid_dissector_handle("0.4.0.0.1.21.3.4", camel_v3_handle
, proto_camel
, "capssf-scfGenericAC");
8317 register_ber_oid_dissector_handle("0.4.0.0.1.21.3.6", camel_v3_handle
, proto_camel
, "capssf-scfAssistHandoffAC");
8318 register_ber_oid_dissector_handle("0.4.0.0.1.20.3.14", camel_v3_handle
, proto_camel
, "gsmSRF-gsmSCF-ac");
8319 register_ber_oid_dissector_handle("0.4.0.0.1.21.3.50", camel_v3_handle
, proto_camel
, "cap3-gprssf-scfAC");
8320 register_ber_oid_dissector_handle("0.4.0.0.1.21.3.51", camel_v3_handle
, proto_camel
, "cap3-gsmscf-gprsssfAC");
8321 register_ber_oid_dissector_handle("0.4.0.0.1.21.3.61", camel_v3_handle
, proto_camel
, "cap3-sms-AC");
8323 /* CAMEL Phase 4 Application Context Names */
8324 register_ber_oid_dissector_handle("0.4.0.0.1.23.3.4", camel_v4_handle
, proto_camel
, "capssf-scfGenericAC");
8325 register_ber_oid_dissector_handle("0.4.0.0.1.23.3.6", camel_v4_handle
, proto_camel
, "capssf-scfAssistHandoffAC");
8326 register_ber_oid_dissector_handle("0.4.0.0.1.23.3.8", camel_v4_handle
, proto_camel
, "capscf-ssfGenericAC");
8327 register_ber_oid_dissector_handle("0.4.0.0.1.22.3.14", camel_v4_handle
, proto_camel
, "gsmSRF-gsmSCF-ac");
8328 register_ber_oid_dissector_handle("0.4.0.0.1.23.3.61", camel_v4_handle
, proto_camel
, "cap4-sms-AC");
8331 register_ber_oid_dissector("0.4.0.0.1.1.5.2", dissect_CAP_GPRS_ReferenceNumber_PDU
, proto_camel
, "id-CAP-GPRS-ReferenceNumber");
8332 register_ber_oid_dissector("0.4.0.0.1.1.2.2", dissect_CAP_U_ABORT_REASON_PDU
, proto_camel
, "id-CAP-U-ABORT-Reason");
8335 range_foreach(ssn_range
, range_delete_callback
, NULL
);
8336 wmem_free(wmem_epan_scope(), ssn_range
);
8339 ssn_range
= range_copy(wmem_epan_scope(), global_ssn_range
);
8341 range_foreach(ssn_range
, range_add_callback
, NULL
);
8345 void proto_register_camel(void) {
8346 module_t
*camel_module
;
8347 /* List of fields */
8348 static hf_register_info hf
[] = {
8349 { &hf_camel_extension_code_local
,
8350 { "local", "camel.extension_code_local",
8351 FT_INT32
, BASE_DEC
, NULL
, 0,
8352 "Extension local code", HFILL
}},
8353 { &hf_camel_error_code_local
,
8354 { "local", "camel.error_code_local",
8355 FT_INT32
, BASE_DEC
, VALS(camel_err_code_string_vals
), 0,
8356 "ERROR code", HFILL
}},
8357 { &hf_camel_cause_indicator
, /* Currently not enabled */
8358 { "Cause indicator", "camel.cause_indicator",
8359 FT_UINT8
, BASE_DEC
|BASE_EXT_STRING
, &q850_cause_code_vals_ext
, 0x7f,
8362 { "Digit Value", "camel.digit_value",
8363 FT_UINT8
, BASE_DEC
, VALS(digit_value
), 0, NULL
, HFILL
}},
8364 { &hf_camel_PDPTypeNumber_etsi
,
8365 { "ETSI defined PDP Type Value", "camel.PDPTypeNumber_etsi",
8366 FT_UINT8
, BASE_HEX
, VALS(gsm_map_etsi_defined_pdp_vals
), 0,
8368 { &hf_camel_PDPTypeNumber_ietf
,
8369 { "IETF defined PDP Type Value", "camel.PDPTypeNumber_ietf",
8370 FT_UINT8
, BASE_HEX
, VALS(gsm_map_ietf_defined_pdp_vals
), 0,
8372 { &hf_camel_PDPAddress_IPv4
,
8373 { "PDPAddress IPv4", "camel.PDPAddress_IPv4",
8374 FT_IPv4
, BASE_NONE
, NULL
, 0,
8375 "IPAddress IPv4", HFILL
}},
8376 { &hf_camel_PDPAddress_IPv6
,
8377 { "PDPAddress IPv6", "camel.PDPAddress_IPv6",
8378 FT_IPv6
, BASE_NONE
, NULL
, 0,
8379 "IPAddress IPv6", HFILL
}},
8380 { &hf_camel_cellGlobalIdOrServiceAreaIdFixedLength
,
8381 { "CellGlobalIdOrServiceAreaIdFixedLength", "camel.CellGlobalIdOrServiceAreaIdFixedLength",
8382 FT_BYTES
, BASE_NONE
, NULL
, 0,
8383 "LocationInformationGPRS/CellGlobalIdOrServiceAreaIdOrLAI", HFILL
}},
8384 { &hf_camel_RP_Cause
,
8385 { "RP Cause", "camel.RP_Cause",
8386 FT_UINT8
, BASE_DEC
, VALS(camel_RP_Cause_values
), 0x7F,
8387 "RP Cause Value", HFILL
}},
8389 { &hf_camel_CAMEL_AChBillingChargingCharacteristics
,
8390 { "CAMEL-AChBillingChargingCharacteristics", "camel.CAMEL_AChBillingChargingCharacteristics",
8391 FT_UINT32
, BASE_DEC
, VALS(camel_CAMEL_AChBillingChargingCharacteristics_vals
), 0,
8394 { &hf_camel_CAMEL_FCIBillingChargingCharacteristics
,
8395 { "CAMEL-FCIBillingChargingCharacteristics", "camel.CAMEL_FCIBillingChargingCharacteristics",
8396 FT_UINT32
, BASE_DEC
, VALS(camel_CAMEL_FCIBillingChargingCharacteristics_vals
), 0,
8399 { &hf_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
,
8400 { "CAMEL-FCIGPRSBillingChargingCharacteristics", "camel.CAMEL_FCIGPRSBillingChargingCharacteristics",
8401 FT_UINT32
, BASE_DEC
, NULL
, 0,
8404 { &hf_camel_CAMEL_FCISMSBillingChargingCharacteristics
,
8405 { "CAMEL-FCISMSBillingChargingCharacteristics", "camel.CAMEL_FCISMSBillingChargingCharacteristics",
8406 FT_UINT32
, BASE_DEC
, VALS(camel_CAMEL_FCISMSBillingChargingCharacteristics_vals
), 0,
8409 { &hf_camel_CAMEL_SCIBillingChargingCharacteristics
,
8410 { "CAMEL-SCIBillingChargingCharacteristics", "camel.CAMEL_SCIBillingChargingCharacteristics",
8411 FT_UINT32
, BASE_DEC
, VALS(camel_CAMEL_SCIBillingChargingCharacteristics_vals
), 0,
8414 { &hf_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
,
8415 { "CAMEL-SCIGPRSBillingChargingCharacteristics", "camel.CAMEL_SCIGPRSBillingChargingCharacteristics",
8416 FT_UINT32
, BASE_DEC
, NULL
, 0,
8417 "CAMEL-FSCIGPRSBillingChargingCharacteristics", HFILL
}},
8419 { &hf_camel_CAMEL_CallResult
,
8420 { "CAMEL-CAMEL_CallResult", "camel.CAMEL_CallResult",
8421 FT_UINT32
, BASE_DEC
, VALS(camel_CAMEL_CallResult_vals
), 0,
8422 "CAMEL-CallResult", HFILL
}},
8424 /* Camel Service Response Time */
8425 { &hf_camelsrt_SessionId
,
8427 "camel.srt.session_id",
8428 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
8431 //{ &hf_camelsrt_RequestNumber,
8432 // { "Request Number",
8433 // "camel.srt.request_number",
8434 // FT_UINT64, BASE_DEC, NULL, 0x0,
8437 { &hf_camelsrt_Duplicate
,
8438 { "Request Duplicate",
8439 "camel.srt.duplicate",
8440 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
8443 { &hf_camelsrt_RequestFrame
,
8444 { "Requested Frame",
8445 "camel.srt.reqframe",
8446 FT_FRAMENUM
, BASE_NONE
, FRAMENUM_TYPE(FT_FRAMENUM_REQUEST
), 0x0,
8447 "SRT Request Frame", HFILL
}
8449 { &hf_camelsrt_ResponseFrame
,
8451 "camel.srt.rspframe",
8452 FT_FRAMENUM
, BASE_NONE
, FRAMENUM_TYPE(FT_FRAMENUM_RESPONSE
), 0x0,
8453 "SRT Response Frame", HFILL
}
8455 //{ &hf_camelsrt_DeltaTime,
8456 // { "Service Response Time",
8457 // "camel.srt.deltatime",
8458 // FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
8459 // "DeltaTime between Request and Response", HFILL }
8461 //{ &hf_camelsrt_SessionTime,
8462 // { "Session duration",
8463 // "camel.srt.sessiontime",
8464 // FT_RELATIVE_TIME, BASE_NONE, NULL, 0x0,
8465 // "Duration of the TCAP session", HFILL }
8467 { &hf_camelsrt_DeltaTime31
,
8468 { "Service Response Time",
8469 "camel.srt.deltatime31",
8470 FT_RELATIVE_TIME
, BASE_NONE
, NULL
, 0x0,
8471 "DeltaTime between InitialDP and Continue", HFILL
}
8473 { &hf_camelsrt_DeltaTime65
,
8474 { "Service Response Time",
8475 "camel.srt.deltatime65",
8476 FT_RELATIVE_TIME
, BASE_NONE
, NULL
, 0x0,
8477 "DeltaTime between InitialDPSMS and ContinueSMS", HFILL
}
8479 { &hf_camelsrt_DeltaTime75
,
8480 { "Service Response Time",
8481 "camel.srt.deltatime75",
8482 FT_RELATIVE_TIME
, BASE_NONE
, NULL
, 0x0,
8483 "DeltaTime between InitialDPGPRS and ContinueGPRS", HFILL
}
8485 { &hf_camelsrt_DeltaTime35
,
8486 { "Service Response Time",
8487 "camel.srt.deltatime35",
8488 FT_RELATIVE_TIME
, BASE_NONE
, NULL
, 0x0,
8489 "DeltaTime between ApplyChargingReport and ApplyCharging", HFILL
}
8491 { &hf_camelsrt_DeltaTime22
,
8492 { "Service Response Time",
8493 "camel.srt.deltatime22",
8494 FT_RELATIVE_TIME
, BASE_NONE
, NULL
, 0x0,
8495 "DeltaTime between EventReport(Disconnect) and Release Call", HFILL
}
8497 { &hf_camelsrt_DeltaTime80
,
8498 { "Service Response Time",
8499 "camel.srt.deltatime80",
8500 FT_RELATIVE_TIME
, BASE_NONE
, NULL
, 0x0,
8501 "DeltaTime between EventReportGPRS and ContinueGPRS", HFILL
}
8503 { &hf_camel_timeandtimezone_time
,
8505 "camel.timeandtimezone.time",
8506 FT_STRING
, BASE_NONE
, NULL
, 0x0,
8509 { &hf_camel_timeandtimezone_tz
,
8511 "camel.timeandtimezone.timezone",
8512 FT_INT8
, BASE_DEC
, NULL
, 0x0,
8513 "Difference, expressed in quarters of an hour, between local time and GMT", HFILL
}
8517 { &hf_camel_PAR_cancelFailed_PDU
,
8518 { "PAR-cancelFailed", "camel.PAR_cancelFailed_element",
8519 FT_NONE
, BASE_NONE
, NULL
, 0,
8521 { &hf_camel_PAR_requestedInfoError_PDU
,
8522 { "PAR-requestedInfoError", "camel.PAR_requestedInfoError",
8523 FT_UINT32
, BASE_DEC
, VALS(camel_PAR_requestedInfoError_vals
), 0,
8525 { &hf_camel_UnavailableNetworkResource_PDU
,
8526 { "UnavailableNetworkResource", "camel.UnavailableNetworkResource",
8527 FT_UINT32
, BASE_DEC
, VALS(camel_UnavailableNetworkResource_vals
), 0,
8529 { &hf_camel_PAR_taskRefused_PDU
,
8530 { "PAR-taskRefused", "camel.PAR_taskRefused",
8531 FT_UINT32
, BASE_DEC
, VALS(camel_PAR_taskRefused_vals
), 0,
8533 { &hf_camel_CAP_GPRS_ReferenceNumber_PDU
,
8534 { "CAP-GPRS-ReferenceNumber", "camel.CAP_GPRS_ReferenceNumber_element",
8535 FT_NONE
, BASE_NONE
, NULL
, 0,
8537 { &hf_camel_PlayAnnouncementArg_PDU
,
8538 { "PlayAnnouncementArg", "camel.PlayAnnouncementArg_element",
8539 FT_NONE
, BASE_NONE
, NULL
, 0,
8541 { &hf_camel_PromptAndCollectUserInformationArg_PDU
,
8542 { "PromptAndCollectUserInformationArg", "camel.PromptAndCollectUserInformationArg_element",
8543 FT_NONE
, BASE_NONE
, NULL
, 0,
8545 { &hf_camel_ReceivedInformationArg_PDU
,
8546 { "ReceivedInformationArg", "camel.ReceivedInformationArg",
8547 FT_UINT32
, BASE_DEC
, VALS(camel_ReceivedInformationArg_vals
), 0,
8549 { &hf_camel_SpecializedResourceReportArg_PDU
,
8550 { "SpecializedResourceReportArg", "camel.SpecializedResourceReportArg",
8551 FT_UINT32
, BASE_DEC
, VALS(camel_SpecializedResourceReportArg_vals
), 0,
8553 { &hf_camel_ApplyChargingArg_PDU
,
8554 { "ApplyChargingArg", "camel.ApplyChargingArg_element",
8555 FT_NONE
, BASE_NONE
, NULL
, 0,
8557 { &hf_camel_ApplyChargingReportArg_PDU
,
8558 { "ApplyChargingReportArg", "camel.ApplyChargingReportArg",
8559 FT_BYTES
, BASE_NONE
, NULL
, 0,
8561 { &hf_camel_AssistRequestInstructionsArg_PDU
,
8562 { "AssistRequestInstructionsArg", "camel.AssistRequestInstructionsArg_element",
8563 FT_NONE
, BASE_NONE
, NULL
, 0,
8565 { &hf_camel_CallGapArg_PDU
,
8566 { "CallGapArg", "camel.CallGapArg_element",
8567 FT_NONE
, BASE_NONE
, NULL
, 0,
8569 { &hf_camel_CallInformationReportArg_PDU
,
8570 { "CallInformationReportArg", "camel.CallInformationReportArg_element",
8571 FT_NONE
, BASE_NONE
, NULL
, 0,
8573 { &hf_camel_CallInformationRequestArg_PDU
,
8574 { "CallInformationRequestArg", "camel.CallInformationRequestArg_element",
8575 FT_NONE
, BASE_NONE
, NULL
, 0,
8577 { &hf_camel_CancelArg_PDU
,
8578 { "CancelArg", "camel.CancelArg",
8579 FT_UINT32
, BASE_DEC
, VALS(camel_CancelArg_vals
), 0,
8581 { &hf_camel_CollectInformationArg_PDU
,
8582 { "CollectInformationArg", "camel.CollectInformationArg_element",
8583 FT_NONE
, BASE_NONE
, NULL
, 0,
8585 { &hf_camel_ConnectArg_PDU
,
8586 { "ConnectArg", "camel.ConnectArg_element",
8587 FT_NONE
, BASE_NONE
, NULL
, 0,
8589 { &hf_camel_ConnectToResourceArg_PDU
,
8590 { "ConnectToResourceArg", "camel.ConnectToResourceArg_element",
8591 FT_NONE
, BASE_NONE
, NULL
, 0,
8593 { &hf_camel_ContinueWithArgumentArg_PDU
,
8594 { "ContinueWithArgumentArg", "camel.ContinueWithArgumentArg_element",
8595 FT_NONE
, BASE_NONE
, NULL
, 0,
8597 { &hf_camel_DisconnectForwardConnectionWithArgumentArg_PDU
,
8598 { "DisconnectForwardConnectionWithArgumentArg", "camel.DisconnectForwardConnectionWithArgumentArg_element",
8599 FT_NONE
, BASE_NONE
, NULL
, 0,
8601 { &hf_camel_DisconnectLegArg_PDU
,
8602 { "DisconnectLegArg", "camel.DisconnectLegArg_element",
8603 FT_NONE
, BASE_NONE
, NULL
, 0,
8605 { &hf_camel_EntityReleasedArg_PDU
,
8606 { "EntityReleasedArg", "camel.EntityReleasedArg",
8607 FT_UINT32
, BASE_DEC
, VALS(camel_EntityReleasedArg_vals
), 0,
8609 { &hf_camel_EstablishTemporaryConnectionArg_PDU
,
8610 { "EstablishTemporaryConnectionArg", "camel.EstablishTemporaryConnectionArg_element",
8611 FT_NONE
, BASE_NONE
, NULL
, 0,
8613 { &hf_camel_EventReportBCSMArg_PDU
,
8614 { "EventReportBCSMArg", "camel.EventReportBCSMArg_element",
8615 FT_NONE
, BASE_NONE
, NULL
, 0,
8617 { &hf_camel_FurnishChargingInformationArg_PDU
,
8618 { "FurnishChargingInformationArg", "camel.FurnishChargingInformationArg",
8619 FT_BYTES
, BASE_NONE
, NULL
, 0,
8621 { &hf_camel_InitialDPArg_PDU
,
8622 { "InitialDPArg", "camel.InitialDPArg_element",
8623 FT_NONE
, BASE_NONE
, NULL
, 0,
8625 { &hf_camel_InitiateCallAttemptArg_PDU
,
8626 { "InitiateCallAttemptArg", "camel.InitiateCallAttemptArg_element",
8627 FT_NONE
, BASE_NONE
, NULL
, 0,
8629 { &hf_camel_InitiateCallAttemptRes_PDU
,
8630 { "InitiateCallAttemptRes", "camel.InitiateCallAttemptRes_element",
8631 FT_NONE
, BASE_NONE
, NULL
, 0,
8633 { &hf_camel_MoveLegArg_PDU
,
8634 { "MoveLegArg", "camel.MoveLegArg_element",
8635 FT_NONE
, BASE_NONE
, NULL
, 0,
8637 { &hf_camel_PlayToneArg_PDU
,
8638 { "PlayToneArg", "camel.PlayToneArg_element",
8639 FT_NONE
, BASE_NONE
, NULL
, 0,
8641 { &hf_camel_ReleaseCallArg_PDU
,
8642 { "ReleaseCallArg", "camel.ReleaseCallArg",
8643 FT_UINT32
, BASE_DEC
, VALS(camel_ReleaseCallArg_vals
), 0,
8645 { &hf_camel_RequestReportBCSMEventArg_PDU
,
8646 { "RequestReportBCSMEventArg", "camel.RequestReportBCSMEventArg_element",
8647 FT_NONE
, BASE_NONE
, NULL
, 0,
8649 { &hf_camel_ResetTimerArg_PDU
,
8650 { "ResetTimerArg", "camel.ResetTimerArg_element",
8651 FT_NONE
, BASE_NONE
, NULL
, 0,
8653 { &hf_camel_SendChargingInformationArg_PDU
,
8654 { "SendChargingInformationArg", "camel.SendChargingInformationArg_element",
8655 FT_NONE
, BASE_NONE
, NULL
, 0,
8657 { &hf_camel_SplitLegArg_PDU
,
8658 { "SplitLegArg", "camel.SplitLegArg_element",
8659 FT_NONE
, BASE_NONE
, NULL
, 0,
8661 { &hf_camel_ApplyChargingGPRSArg_PDU
,
8662 { "ApplyChargingGPRSArg", "camel.ApplyChargingGPRSArg_element",
8663 FT_NONE
, BASE_NONE
, NULL
, 0,
8665 { &hf_camel_ApplyChargingReportGPRSArg_PDU
,
8666 { "ApplyChargingReportGPRSArg", "camel.ApplyChargingReportGPRSArg_element",
8667 FT_NONE
, BASE_NONE
, NULL
, 0,
8669 { &hf_camel_CancelGPRSArg_PDU
,
8670 { "CancelGPRSArg", "camel.CancelGPRSArg_element",
8671 FT_NONE
, BASE_NONE
, NULL
, 0,
8673 { &hf_camel_ConnectGPRSArg_PDU
,
8674 { "ConnectGPRSArg", "camel.ConnectGPRSArg_element",
8675 FT_NONE
, BASE_NONE
, NULL
, 0,
8677 { &hf_camel_ContinueGPRSArg_PDU
,
8678 { "ContinueGPRSArg", "camel.ContinueGPRSArg_element",
8679 FT_NONE
, BASE_NONE
, NULL
, 0,
8681 { &hf_camel_EntityReleasedGPRSArg_PDU
,
8682 { "EntityReleasedGPRSArg", "camel.EntityReleasedGPRSArg_element",
8683 FT_NONE
, BASE_NONE
, NULL
, 0,
8685 { &hf_camel_EventReportGPRSArg_PDU
,
8686 { "EventReportGPRSArg", "camel.EventReportGPRSArg_element",
8687 FT_NONE
, BASE_NONE
, NULL
, 0,
8689 { &hf_camel_FurnishChargingInformationGPRSArg_PDU
,
8690 { "FurnishChargingInformationGPRSArg", "camel.FurnishChargingInformationGPRSArg",
8691 FT_BYTES
, BASE_NONE
, NULL
, 0,
8693 { &hf_camel_InitialDPGPRSArg_PDU
,
8694 { "InitialDPGPRSArg", "camel.InitialDPGPRSArg_element",
8695 FT_NONE
, BASE_NONE
, NULL
, 0,
8697 { &hf_camel_ReleaseGPRSArg_PDU
,
8698 { "ReleaseGPRSArg", "camel.ReleaseGPRSArg_element",
8699 FT_NONE
, BASE_NONE
, NULL
, 0,
8701 { &hf_camel_RequestReportGPRSEventArg_PDU
,
8702 { "RequestReportGPRSEventArg", "camel.RequestReportGPRSEventArg_element",
8703 FT_NONE
, BASE_NONE
, NULL
, 0,
8705 { &hf_camel_ResetTimerGPRSArg_PDU
,
8706 { "ResetTimerGPRSArg", "camel.ResetTimerGPRSArg_element",
8707 FT_NONE
, BASE_NONE
, NULL
, 0,
8709 { &hf_camel_SendChargingInformationGPRSArg_PDU
,
8710 { "SendChargingInformationGPRSArg", "camel.SendChargingInformationGPRSArg_element",
8711 FT_NONE
, BASE_NONE
, NULL
, 0,
8713 { &hf_camel_ConnectSMSArg_PDU
,
8714 { "ConnectSMSArg", "camel.ConnectSMSArg_element",
8715 FT_NONE
, BASE_NONE
, NULL
, 0,
8717 { &hf_camel_EventReportSMSArg_PDU
,
8718 { "EventReportSMSArg", "camel.EventReportSMSArg_element",
8719 FT_NONE
, BASE_NONE
, NULL
, 0,
8721 { &hf_camel_FurnishChargingInformationSMSArg_PDU
,
8722 { "FurnishChargingInformationSMSArg", "camel.FurnishChargingInformationSMSArg",
8723 FT_BYTES
, BASE_NONE
, NULL
, 0,
8725 { &hf_camel_InitialDPSMSArg_PDU
,
8726 { "InitialDPSMSArg", "camel.InitialDPSMSArg_element",
8727 FT_NONE
, BASE_NONE
, NULL
, 0,
8729 { &hf_camel_ReleaseSMSArg_PDU
,
8730 { "ReleaseSMSArg", "camel.ReleaseSMSArg",
8731 FT_BYTES
, BASE_NONE
, NULL
, 0,
8733 { &hf_camel_RequestReportSMSEventArg_PDU
,
8734 { "RequestReportSMSEventArg", "camel.RequestReportSMSEventArg_element",
8735 FT_NONE
, BASE_NONE
, NULL
, 0,
8737 { &hf_camel_ResetTimerSMSArg_PDU
,
8738 { "ResetTimerSMSArg", "camel.ResetTimerSMSArg_element",
8739 FT_NONE
, BASE_NONE
, NULL
, 0,
8741 { &hf_camel_CAP_U_ABORT_REASON_PDU
,
8742 { "CAP-U-ABORT-REASON", "camel.CAP_U_ABORT_REASON",
8743 FT_UINT32
, BASE_DEC
, VALS(camel_CAP_U_ABORT_REASON_vals
), 0,
8746 { "legID", "camel.legID",
8747 FT_UINT32
, BASE_DEC
, VALS(inap_LegID_vals
), 0,
8749 { &hf_camel_srfConnection
,
8750 { "srfConnection", "camel.srfConnection",
8751 FT_UINT32
, BASE_DEC
, NULL
, 0,
8752 "CallSegmentID", HFILL
}},
8753 { &hf_camel_aOCInitial
,
8754 { "aOCInitial", "camel.aOCInitial_element",
8755 FT_NONE
, BASE_NONE
, NULL
, 0,
8756 "CAI_GSM0224", HFILL
}},
8757 { &hf_camel_aOCSubsequent
,
8758 { "aOCSubsequent", "camel.aOCSubsequent_element",
8759 FT_NONE
, BASE_NONE
, NULL
, 0,
8761 { &hf_camel_cAI_GSM0224
,
8762 { "cAI-GSM0224", "camel.cAI_GSM0224_element",
8763 FT_NONE
, BASE_NONE
, NULL
, 0,
8765 { &hf_camel_aocSubsequent_tariffSwitchInterval
,
8766 { "tariffSwitchInterval", "camel.tariffSwitchInterval",
8767 FT_UINT32
, BASE_DEC
, NULL
, 0,
8768 "INTEGER_1_86400", HFILL
}},
8769 { &hf_camel_audibleIndicatorTone
,
8770 { "tone", "camel.tone",
8771 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
8772 "BOOLEAN", HFILL
}},
8773 { &hf_camel_burstList
,
8774 { "burstList", "camel.burstList_element",
8775 FT_NONE
, BASE_NONE
, NULL
, 0,
8777 { &hf_camel_conferenceTreatmentIndicator
,
8778 { "conferenceTreatmentIndicator", "camel.conferenceTreatmentIndicator",
8779 FT_BYTES
, BASE_NONE
, NULL
, 0,
8780 "OCTET_STRING_SIZE_1", HFILL
}},
8781 { &hf_camel_callCompletionTreatmentIndicator
,
8782 { "callCompletionTreatmentIndicator", "camel.callCompletionTreatmentIndicator",
8783 FT_BYTES
, BASE_NONE
, NULL
, 0,
8784 "OCTET_STRING_SIZE_1", HFILL
}},
8785 { &hf_camel_calledAddressValue
,
8786 { "calledAddressValue", "camel.calledAddressValue",
8787 FT_BYTES
, BASE_NONE
, NULL
, 0,
8789 { &hf_camel_gapOnService
,
8790 { "gapOnService", "camel.gapOnService_element",
8791 FT_NONE
, BASE_NONE
, NULL
, 0,
8793 { &hf_camel_calledAddressAndService
,
8794 { "calledAddressAndService", "camel.calledAddressAndService_element",
8795 FT_NONE
, BASE_NONE
, NULL
, 0,
8797 { &hf_camel_serviceKey
,
8798 { "serviceKey", "camel.serviceKey",
8799 FT_UINT32
, BASE_DEC
, NULL
, 0,
8801 { &hf_camel_callingAddressAndService
,
8802 { "callingAddressAndService", "camel.callingAddressAndService_element",
8803 FT_NONE
, BASE_NONE
, NULL
, 0,
8805 { &hf_camel_callingAddressValue
,
8806 { "callingAddressValue", "camel.callingAddressValue",
8807 FT_BYTES
, BASE_NONE
, NULL
, 0,
8809 { &hf_camel_eventTypeBCSM
,
8810 { "eventTypeBCSM", "camel.eventTypeBCSM",
8811 FT_UINT32
, BASE_DEC
, VALS(camel_EventTypeBCSM_vals
), 0,
8813 { &hf_camel_monitorMode
,
8814 { "monitorMode", "camel.monitorMode",
8815 FT_UINT32
, BASE_DEC
, VALS(camel_MonitorMode_vals
), 0,
8817 { &hf_camel_dpSpecificCriteria
,
8818 { "dpSpecificCriteria", "camel.dpSpecificCriteria",
8819 FT_UINT32
, BASE_DEC
, VALS(camel_DpSpecificCriteria_vals
), 0,
8821 { &hf_camel_automaticRearm
,
8822 { "automaticRearm", "camel.automaticRearm_element",
8823 FT_NONE
, BASE_NONE
, NULL
, 0,
8826 { "cause", "camel.cause",
8827 FT_BYTES
, BASE_NONE
, NULL
, 0,
8829 { &hf_camel_bearerCap
,
8830 { "bearerCap", "camel.bearerCap",
8831 FT_BYTES
, BASE_NONE
, NULL
, 0,
8833 { &hf_camel_numberOfBursts
,
8834 { "numberOfBursts", "camel.numberOfBursts",
8835 FT_UINT32
, BASE_DEC
, NULL
, 0,
8836 "INTEGER_1_3", HFILL
}},
8837 { &hf_camel_burstInterval
,
8838 { "burstInterval", "camel.burstInterval",
8839 FT_UINT32
, BASE_DEC
, NULL
, 0,
8840 "INTEGER_1_1200", HFILL
}},
8841 { &hf_camel_numberOfTonesInBurst
,
8842 { "numberOfTonesInBurst", "camel.numberOfTonesInBurst",
8843 FT_UINT32
, BASE_DEC
, NULL
, 0,
8844 "INTEGER_1_3", HFILL
}},
8845 { &hf_camel_burstToneDuration
,
8846 { "toneDuration", "camel.toneDuration",
8847 FT_UINT32
, BASE_DEC
, NULL
, 0,
8848 "INTEGER_1_20", HFILL
}},
8849 { &hf_camel_toneInterval
,
8850 { "toneInterval", "camel.toneInterval",
8851 FT_UINT32
, BASE_DEC
, NULL
, 0,
8852 "INTEGER_1_20", HFILL
}},
8853 { &hf_camel_warningPeriod
,
8854 { "warningPeriod", "camel.warningPeriod",
8855 FT_UINT32
, BASE_DEC
, NULL
, 0,
8856 "INTEGER_1_1200", HFILL
}},
8858 { "bursts", "camel.bursts_element",
8859 FT_NONE
, BASE_NONE
, NULL
, 0,
8863 FT_UINT32
, BASE_DEC
, NULL
, 0,
8864 "INTEGER_0_8191", HFILL
}},
8867 FT_UINT32
, BASE_DEC
, NULL
, 0,
8868 "INTEGER_0_8191", HFILL
}},
8871 FT_UINT32
, BASE_DEC
, NULL
, 0,
8872 "INTEGER_0_8191", HFILL
}},
8875 FT_UINT32
, BASE_DEC
, NULL
, 0,
8876 "INTEGER_0_8191", HFILL
}},
8879 FT_UINT32
, BASE_DEC
, NULL
, 0,
8880 "INTEGER_0_8191", HFILL
}},
8883 FT_UINT32
, BASE_DEC
, NULL
, 0,
8884 "INTEGER_0_8191", HFILL
}},
8887 FT_UINT32
, BASE_DEC
, NULL
, 0,
8888 "INTEGER_0_8191", HFILL
}},
8889 { &hf_camel_callSegmentID
,
8890 { "callSegmentID", "camel.callSegmentID",
8891 FT_UINT32
, BASE_DEC
, NULL
, 0,
8893 { &hf_camel_invokeID
,
8894 { "invokeID", "camel.invokeID",
8895 FT_INT32
, BASE_DEC
, NULL
, 0,
8897 { &hf_camel_timeDurationCharging
,
8898 { "timeDurationCharging", "camel.timeDurationCharging_element",
8899 FT_NONE
, BASE_NONE
, NULL
, 0,
8901 { &hf_camel_maxCallPeriodDuration
,
8902 { "maxCallPeriodDuration", "camel.maxCallPeriodDuration",
8903 FT_UINT32
, BASE_DEC
, NULL
, 0,
8904 "INTEGER_1_864000", HFILL
}},
8905 { &hf_camel_releaseIfdurationExceeded
,
8906 { "releaseIfdurationExceeded", "camel.releaseIfdurationExceeded",
8907 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
8908 "BOOLEAN", HFILL
}},
8909 { &hf_camel_timeDurationCharging_tariffSwitchInterval
,
8910 { "tariffSwitchInterval", "camel.tariffSwitchInterval",
8911 FT_UINT32
, BASE_DEC
, NULL
, 0,
8912 "INTEGER_1_86400", HFILL
}},
8913 { &hf_camel_audibleIndicator
,
8914 { "audibleIndicator", "camel.audibleIndicator",
8915 FT_UINT32
, BASE_DEC
, VALS(camel_AudibleIndicator_vals
), 0,
8917 { &hf_camel_extensions
,
8918 { "extensions", "camel.extensions",
8919 FT_UINT32
, BASE_DEC
, NULL
, 0,
8921 { &hf_camel_timeDurationChargingResult
,
8922 { "timeDurationChargingResult", "camel.timeDurationChargingResult_element",
8923 FT_NONE
, BASE_NONE
, NULL
, 0,
8925 { &hf_camel_timeDurationChargingResultpartyToCharge
,
8926 { "partyToCharge", "camel.partyToCharge",
8927 FT_UINT32
, BASE_DEC
, VALS(camel_ReceivingSideID_vals
), 0,
8928 "ReceivingSideID", HFILL
}},
8929 { &hf_camel_timeInformation
,
8930 { "timeInformation", "camel.timeInformation",
8931 FT_UINT32
, BASE_DEC
, VALS(camel_TimeInformation_vals
), 0,
8933 { &hf_camel_legActive
,
8934 { "legActive", "camel.legActive",
8935 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
8936 "BOOLEAN", HFILL
}},
8937 { &hf_camel_callLegReleasedAtTcpExpiry
,
8938 { "callLegReleasedAtTcpExpiry", "camel.callLegReleasedAtTcpExpiry_element",
8939 FT_NONE
, BASE_NONE
, NULL
, 0,
8941 { &hf_camel_aChChargingAddress
,
8942 { "aChChargingAddress", "camel.aChChargingAddress",
8943 FT_UINT32
, BASE_DEC
, VALS(camel_AChChargingAddress_vals
), 0,
8945 { &hf_camel_fci_fCIBCCCAMELsequence1
,
8946 { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1_element",
8947 FT_NONE
, BASE_NONE
, NULL
, 0,
8948 "T_fci_fCIBCCCAMELsequence1", HFILL
}},
8949 { &hf_camel_freeFormatData
,
8950 { "freeFormatData", "camel.freeFormatData",
8951 FT_BYTES
, BASE_NONE
, NULL
, 0,
8952 "OCTET_STRING_SIZE_bound__minFCIBillingChargingDataLength_bound__maxFCIBillingChargingDataLength", HFILL
}},
8953 { &hf_camel_fCIBCCCAMELsequence1partyToCharge
,
8954 { "partyToCharge", "camel.partyToCharge",
8955 FT_UINT32
, BASE_DEC
, VALS(camel_SendingSideID_vals
), 0,
8956 "SendingSideID", HFILL
}},
8957 { &hf_camel_appendFreeFormatData
,
8958 { "appendFreeFormatData", "camel.appendFreeFormatData",
8959 FT_UINT32
, BASE_DEC
, VALS(camel_AppendFreeFormatData_vals
), 0,
8961 { &hf_camel_fciGPRS_fCIBCCCAMELsequence1
,
8962 { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1_element",
8963 FT_NONE
, BASE_NONE
, NULL
, 0,
8964 "T_fciGPRS_fCIBCCCAMELsequence1", HFILL
}},
8966 { "pDPID", "camel.pDPID",
8967 FT_BYTES
, BASE_NONE
, NULL
, 0,
8969 { &hf_camel_fciSMS_fCIBCCCAMELsequence1
,
8970 { "fCIBCCCAMELsequence1", "camel.fCIBCCCAMELsequence1_element",
8971 FT_NONE
, BASE_NONE
, NULL
, 0,
8972 "T_fciSMS_fCIBCCCAMELsequence1", HFILL
}},
8973 { &hf_camel_aOCBeforeAnswer
,
8974 { "aOCBeforeAnswer", "camel.aOCBeforeAnswer_element",
8975 FT_NONE
, BASE_NONE
, NULL
, 0,
8977 { &hf_camel_aOCAfterAnswer
,
8978 { "aOCAfterAnswer", "camel.aOCAfterAnswer_element",
8979 FT_NONE
, BASE_NONE
, NULL
, 0,
8980 "AOCSubsequent", HFILL
}},
8981 { &hf_camel_aOC_extension
,
8982 { "aOC-extension", "camel.aOC_extension_element",
8983 FT_NONE
, BASE_NONE
, NULL
, 0,
8984 "CAMEL_SCIBillingChargingCharacteristicsAlt", HFILL
}},
8985 { &hf_camel_aOCGPRS
,
8986 { "aOCGPRS", "camel.aOCGPRS_element",
8987 FT_NONE
, BASE_NONE
, NULL
, 0,
8989 { &hf_camel_ChangeOfPositionControlInfo_item
,
8990 { "ChangeOfLocation", "camel.ChangeOfLocation",
8991 FT_UINT32
, BASE_DEC
, VALS(camel_ChangeOfLocation_vals
), 0,
8993 { &hf_camel_cellGlobalId
,
8994 { "cellGlobalId", "camel.cellGlobalId",
8995 FT_BYTES
, BASE_NONE
, NULL
, 0,
8996 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL
}},
8997 { &hf_camel_serviceAreaId
,
8998 { "serviceAreaId", "camel.serviceAreaId",
8999 FT_BYTES
, BASE_NONE
, NULL
, 0,
9000 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL
}},
9001 { &hf_camel_locationAreaId
,
9002 { "locationAreaId", "camel.locationAreaId",
9003 FT_BYTES
, BASE_NONE
, NULL
, 0,
9004 "LAIFixedLength", HFILL
}},
9005 { &hf_camel_inter_SystemHandOver
,
9006 { "inter-SystemHandOver", "camel.inter_SystemHandOver_element",
9007 FT_NONE
, BASE_NONE
, NULL
, 0,
9009 { &hf_camel_inter_PLMNHandOver
,
9010 { "inter-PLMNHandOver", "camel.inter_PLMNHandOver_element",
9011 FT_NONE
, BASE_NONE
, NULL
, 0,
9013 { &hf_camel_inter_MSCHandOver
,
9014 { "inter-MSCHandOver", "camel.inter_MSCHandOver_element",
9015 FT_NONE
, BASE_NONE
, NULL
, 0,
9017 { &hf_camel_changeOfLocationAlt
,
9018 { "changeOfLocationAlt", "camel.changeOfLocationAlt_element",
9019 FT_NONE
, BASE_NONE
, NULL
, 0,
9021 { &hf_camel_maxTransferredVolume
,
9022 { "maxTransferredVolume", "camel.maxTransferredVolume",
9023 FT_UINT32
, BASE_DEC
, NULL
, 0,
9024 "INTEGER_1_4294967295", HFILL
}},
9025 { &hf_camel_maxElapsedTime
,
9026 { "maxElapsedTime", "camel.maxElapsedTime",
9027 FT_UINT32
, BASE_DEC
, NULL
, 0,
9028 "INTEGER_1_86400", HFILL
}},
9029 { &hf_camel_transferredVolume
,
9030 { "transferredVolume", "camel.transferredVolume",
9031 FT_UINT32
, BASE_DEC
, VALS(camel_TransferredVolume_vals
), 0,
9033 { &hf_camel_elapsedTime
,
9034 { "elapsedTime", "camel.elapsedTime",
9035 FT_UINT32
, BASE_DEC
, VALS(camel_ElapsedTime_vals
), 0,
9037 { &hf_camel_transferredVolumeRollOver
,
9038 { "transferredVolumeRollOver", "camel.transferredVolumeRollOver",
9039 FT_UINT32
, BASE_DEC
, VALS(camel_TransferredVolumeRollOver_vals
), 0,
9041 { &hf_camel_elapsedTimeRollOver
,
9042 { "elapsedTimeRollOver", "camel.elapsedTimeRollOver",
9043 FT_UINT32
, BASE_DEC
, VALS(camel_ElapsedTimeRollOver_vals
), 0,
9045 { &hf_camel_minimumNbOfDigits
,
9046 { "minimumNbOfDigits", "camel.minimumNbOfDigits",
9047 FT_UINT32
, BASE_DEC
, NULL
, 0,
9048 "INTEGER_1_30", HFILL
}},
9049 { &hf_camel_maximumNbOfDigits
,
9050 { "maximumNbOfDigits", "camel.maximumNbOfDigits",
9051 FT_UINT32
, BASE_DEC
, NULL
, 0,
9052 "INTEGER_1_30", HFILL
}},
9053 { &hf_camel_endOfReplyDigit
,
9054 { "endOfReplyDigit", "camel.endOfReplyDigit",
9055 FT_BYTES
, BASE_NONE
, NULL
, 0,
9056 "OCTET_STRING_SIZE_1_2", HFILL
}},
9057 { &hf_camel_cancelDigit
,
9058 { "cancelDigit", "camel.cancelDigit",
9059 FT_BYTES
, BASE_NONE
, NULL
, 0,
9060 "OCTET_STRING_SIZE_1_2", HFILL
}},
9061 { &hf_camel_startDigit
,
9062 { "startDigit", "camel.startDigit",
9063 FT_BYTES
, BASE_NONE
, NULL
, 0,
9064 "OCTET_STRING_SIZE_1_2", HFILL
}},
9065 { &hf_camel_firstDigitTimeOut
,
9066 { "firstDigitTimeOut", "camel.firstDigitTimeOut",
9067 FT_UINT32
, BASE_DEC
, NULL
, 0,
9068 "INTEGER_1_127", HFILL
}},
9069 { &hf_camel_interDigitTimeOut
,
9070 { "interDigitTimeOut", "camel.interDigitTimeOut",
9071 FT_UINT32
, BASE_DEC
, NULL
, 0,
9072 "INTEGER_1_127", HFILL
}},
9073 { &hf_camel_errorTreatment
,
9074 { "errorTreatment", "camel.errorTreatment",
9075 FT_UINT32
, BASE_DEC
, VALS(camel_ErrorTreatment_vals
), 0,
9077 { &hf_camel_interruptableAnnInd
,
9078 { "interruptableAnnInd", "camel.interruptableAnnInd",
9079 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9080 "BOOLEAN", HFILL
}},
9081 { &hf_camel_voiceInformation
,
9082 { "voiceInformation", "camel.voiceInformation",
9083 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9084 "BOOLEAN", HFILL
}},
9085 { &hf_camel_voiceBack
,
9086 { "voiceBack", "camel.voiceBack",
9087 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9088 "BOOLEAN", HFILL
}},
9089 { &hf_camel_collectedDigits
,
9090 { "collectedDigits", "camel.collectedDigits_element",
9091 FT_NONE
, BASE_NONE
, NULL
, 0,
9093 { &hf_camel_basicGapCriteria
,
9094 { "basicGapCriteria", "camel.basicGapCriteria",
9095 FT_UINT32
, BASE_DEC
, VALS(camel_BasicGapCriteria_vals
), 0,
9098 { "scfID", "camel.scfID",
9099 FT_BYTES
, BASE_NONE
, NULL
, 0,
9101 { &hf_camel_DestinationRoutingAddress_item
,
9102 { "CalledPartyNumber", "camel.CalledPartyNumber",
9103 FT_BYTES
, BASE_NONE
, NULL
, 0,
9105 { &hf_camel_applicationTimer
,
9106 { "applicationTimer", "camel.applicationTimer",
9107 FT_UINT32
, BASE_DEC
, NULL
, 0,
9109 { &hf_camel_midCallControlInfo
,
9110 { "midCallControlInfo", "camel.midCallControlInfo_element",
9111 FT_NONE
, BASE_NONE
, NULL
, 0,
9113 { &hf_camel_dpSpecificCriteriaAlt
,
9114 { "dpSpecificCriteriaAlt", "camel.dpSpecificCriteriaAlt_element",
9115 FT_NONE
, BASE_NONE
, NULL
, 0,
9117 { &hf_camel_changeOfPositionControlInfo
,
9118 { "changeOfPositionControlInfo", "camel.changeOfPositionControlInfo",
9119 FT_UINT32
, BASE_DEC
, NULL
, 0,
9121 { &hf_camel_numberOfDigits
,
9122 { "numberOfDigits", "camel.numberOfDigits",
9123 FT_UINT32
, BASE_DEC
, NULL
, 0,
9125 { &hf_camel_interDigitTimeout
,
9126 { "interDigitTimeout", "camel.interDigitTimeout",
9127 FT_UINT32
, BASE_DEC
, NULL
, 0,
9128 "INTEGER_1_127", HFILL
}},
9129 { &hf_camel_oServiceChangeSpecificInfo
,
9130 { "oServiceChangeSpecificInfo", "camel.oServiceChangeSpecificInfo_element",
9131 FT_NONE
, BASE_NONE
, NULL
, 0,
9133 { &hf_camel_ext_basicServiceCode
,
9134 { "ext-basicServiceCode", "camel.ext_basicServiceCode",
9135 FT_UINT32
, BASE_DEC
, VALS(gsm_map_Ext_BasicServiceCode_vals
), 0,
9137 { &hf_camel_initiatorOfServiceChange
,
9138 { "initiatorOfServiceChange", "camel.initiatorOfServiceChange",
9139 FT_UINT32
, BASE_DEC
, VALS(camel_InitiatorOfServiceChange_vals
), 0,
9141 { &hf_camel_natureOfServiceChange
,
9142 { "natureOfServiceChange", "camel.natureOfServiceChange",
9143 FT_UINT32
, BASE_DEC
, VALS(camel_NatureOfServiceChange_vals
), 0,
9145 { &hf_camel_tServiceChangeSpecificInfo
,
9146 { "tServiceChangeSpecificInfo", "camel.tServiceChangeSpecificInfo_element",
9147 FT_NONE
, BASE_NONE
, NULL
, 0,
9149 { &hf_camel_collectedInfoSpecificInfo
,
9150 { "collectedInfoSpecificInfo", "camel.collectedInfoSpecificInfo_element",
9151 FT_NONE
, BASE_NONE
, NULL
, 0,
9153 { &hf_camel_calledPartyNumber
,
9154 { "calledPartyNumber", "camel.calledPartyNumber",
9155 FT_BYTES
, BASE_NONE
, NULL
, 0,
9157 { &hf_camel_timeGPRSIfNoTariffSwitch
,
9158 { "timeGPRSIfNoTariffSwitch", "camel.timeGPRSIfNoTariffSwitch",
9159 FT_UINT32
, BASE_DEC
, NULL
, 0,
9160 "INTEGER_0_86400", HFILL
}},
9161 { &hf_camel_timeGPRSIfTariffSwitch
,
9162 { "timeGPRSIfTariffSwitch", "camel.timeGPRSIfTariffSwitch_element",
9163 FT_NONE
, BASE_NONE
, NULL
, 0,
9165 { &hf_camel_timeGPRSSinceLastTariffSwitch
,
9166 { "timeGPRSSinceLastTariffSwitch", "camel.timeGPRSSinceLastTariffSwitch",
9167 FT_UINT32
, BASE_DEC
, NULL
, 0,
9168 "INTEGER_0_86400", HFILL
}},
9169 { &hf_camel_timeGPRSTariffSwitchInterval
,
9170 { "timeGPRSTariffSwitchInterval", "camel.timeGPRSTariffSwitchInterval",
9171 FT_UINT32
, BASE_DEC
, NULL
, 0,
9172 "INTEGER_0_86400", HFILL
}},
9173 { &hf_camel_rO_TimeGPRSIfNoTariffSwitch
,
9174 { "rO-TimeGPRSIfNoTariffSwitch", "camel.rO_TimeGPRSIfNoTariffSwitch",
9175 FT_UINT32
, BASE_DEC
, NULL
, 0,
9176 "INTEGER_0_255", HFILL
}},
9177 { &hf_camel_rO_TimeGPRSIfTariffSwitch
,
9178 { "rO-TimeGPRSIfTariffSwitch", "camel.rO_TimeGPRSIfTariffSwitch_element",
9179 FT_NONE
, BASE_NONE
, NULL
, 0,
9181 { &hf_camel_rO_TimeGPRSSinceLastTariffSwitch
,
9182 { "rO-TimeGPRSSinceLastTariffSwitch", "camel.rO_TimeGPRSSinceLastTariffSwitch",
9183 FT_UINT32
, BASE_DEC
, NULL
, 0,
9184 "INTEGER_0_255", HFILL
}},
9185 { &hf_camel_rO_TimeGPRSTariffSwitchInterval
,
9186 { "rO-TimeGPRSTariffSwitchInterval", "camel.rO_TimeGPRSTariffSwitchInterval",
9187 FT_UINT32
, BASE_DEC
, NULL
, 0,
9188 "INTEGER_0_255", HFILL
}},
9189 { &hf_camel_pDPTypeOrganization
,
9190 { "pDPTypeOrganization", "camel.pDPTypeOrganization",
9191 FT_BYTES
, BASE_NONE
, NULL
, 0,
9193 { &hf_camel_pDPTypeNumber
,
9194 { "pDPTypeNumber", "camel.pDPTypeNumber",
9195 FT_BYTES
, BASE_NONE
, NULL
, 0,
9197 { &hf_camel_pDPAddress
,
9198 { "pDPAddress", "camel.pDPAddress",
9199 FT_BYTES
, BASE_NONE
, NULL
, 0,
9201 { &hf_camel_routeSelectFailureSpecificInfo
,
9202 { "routeSelectFailureSpecificInfo", "camel.routeSelectFailureSpecificInfo_element",
9203 FT_NONE
, BASE_NONE
, NULL
, 0,
9205 { &hf_camel_routeSelectfailureCause
,
9206 { "failureCause", "camel.routeSelectfailureCause",
9207 FT_BYTES
, BASE_NONE
, NULL
, 0,
9209 { &hf_camel_oCalledPartyBusySpecificInfo
,
9210 { "oCalledPartyBusySpecificInfo", "camel.oCalledPartyBusySpecificInfo_element",
9211 FT_NONE
, BASE_NONE
, NULL
, 0,
9213 { &hf_camel_busyCause
,
9214 { "busyCause", "camel.busyCause",
9215 FT_BYTES
, BASE_NONE
, NULL
, 0,
9217 { &hf_camel_oNoAnswerSpecificInfo
,
9218 { "oNoAnswerSpecificInfo", "camel.oNoAnswerSpecificInfo_element",
9219 FT_NONE
, BASE_NONE
, NULL
, 0,
9221 { &hf_camel_oAnswerSpecificInfo
,
9222 { "oAnswerSpecificInfo", "camel.oAnswerSpecificInfo_element",
9223 FT_NONE
, BASE_NONE
, NULL
, 0,
9225 { &hf_camel_destinationAddress
,
9226 { "destinationAddress", "camel.destinationAddress",
9227 FT_BYTES
, BASE_NONE
, NULL
, 0,
9228 "CalledPartyNumber", HFILL
}},
9229 { &hf_camel_or_Call
,
9230 { "or-Call", "camel.or_Call_element",
9231 FT_NONE
, BASE_NONE
, NULL
, 0,
9233 { &hf_camel_forwardedCall
,
9234 { "forwardedCall", "camel.forwardedCall_element",
9235 FT_NONE
, BASE_NONE
, NULL
, 0,
9237 { &hf_camel_chargeIndicator
,
9238 { "chargeIndicator", "camel.chargeIndicator",
9239 FT_BYTES
, BASE_NONE
, NULL
, 0,
9241 { &hf_camel_ext_basicServiceCode2
,
9242 { "ext-basicServiceCode2", "camel.ext_basicServiceCode2",
9243 FT_UINT32
, BASE_DEC
, VALS(gsm_map_Ext_BasicServiceCode_vals
), 0,
9244 "Ext_BasicServiceCode", HFILL
}},
9245 { &hf_camel_oMidCallSpecificInfo
,
9246 { "oMidCallSpecificInfo", "camel.oMidCallSpecificInfo_element",
9247 FT_NONE
, BASE_NONE
, NULL
, 0,
9249 { &hf_camel_omidCallEvents
,
9250 { "midCallEvents", "camel.midCallEvents",
9251 FT_UINT32
, BASE_DEC
, VALS(camel_T_omidCallEvents_vals
), 0,
9252 "T_omidCallEvents", HFILL
}},
9253 { &hf_camel_dTMFDigitsCompleted
,
9254 { "dTMFDigitsCompleted", "camel.dTMFDigitsCompleted",
9255 FT_BYTES
, BASE_NONE
, NULL
, 0,
9257 { &hf_camel_dTMFDigitsTimeOut
,
9258 { "dTMFDigitsTimeOut", "camel.dTMFDigitsTimeOut",
9259 FT_BYTES
, BASE_NONE
, NULL
, 0,
9261 { &hf_camel_oDisconnectSpecificInfo
,
9262 { "oDisconnectSpecificInfo", "camel.oDisconnectSpecificInfo_element",
9263 FT_NONE
, BASE_NONE
, NULL
, 0,
9265 { &hf_camel_releaseCause
,
9266 { "releaseCause", "camel.releaseCause",
9267 FT_BYTES
, BASE_NONE
, NULL
, 0,
9269 { &hf_camel_tBusySpecificInfo
,
9270 { "tBusySpecificInfo", "camel.tBusySpecificInfo_element",
9271 FT_NONE
, BASE_NONE
, NULL
, 0,
9273 { &hf_camel_callForwarded
,
9274 { "callForwarded", "camel.callForwarded_element",
9275 FT_NONE
, BASE_NONE
, NULL
, 0,
9277 { &hf_camel_routeNotPermitted
,
9278 { "routeNotPermitted", "camel.routeNotPermitted_element",
9279 FT_NONE
, BASE_NONE
, NULL
, 0,
9281 { &hf_camel_forwardingDestinationNumber
,
9282 { "forwardingDestinationNumber", "camel.forwardingDestinationNumber",
9283 FT_BYTES
, BASE_NONE
, NULL
, 0,
9284 "CalledPartyNumber", HFILL
}},
9285 { &hf_camel_tNoAnswerSpecificInfo
,
9286 { "tNoAnswerSpecificInfo", "camel.tNoAnswerSpecificInfo_element",
9287 FT_NONE
, BASE_NONE
, NULL
, 0,
9289 { &hf_camel_tAnswerSpecificInfo
,
9290 { "tAnswerSpecificInfo", "camel.tAnswerSpecificInfo_element",
9291 FT_NONE
, BASE_NONE
, NULL
, 0,
9293 { &hf_camel_tMidCallSpecificInfo
,
9294 { "tMidCallSpecificInfo", "camel.tMidCallSpecificInfo_element",
9295 FT_NONE
, BASE_NONE
, NULL
, 0,
9297 { &hf_camel_tmidCallEvents
,
9298 { "midCallEvents", "camel.midCallEvents",
9299 FT_UINT32
, BASE_DEC
, VALS(camel_T_tmidCallEvents_vals
), 0,
9300 "T_tmidCallEvents", HFILL
}},
9301 { &hf_camel_tDisconnectSpecificInfo
,
9302 { "tDisconnectSpecificInfo", "camel.tDisconnectSpecificInfo_element",
9303 FT_NONE
, BASE_NONE
, NULL
, 0,
9305 { &hf_camel_oTermSeizedSpecificInfo
,
9306 { "oTermSeizedSpecificInfo", "camel.oTermSeizedSpecificInfo_element",
9307 FT_NONE
, BASE_NONE
, NULL
, 0,
9309 { &hf_camel_locationInformation
,
9310 { "locationInformation", "camel.locationInformation_element",
9311 FT_NONE
, BASE_NONE
, NULL
, 0,
9313 { &hf_camel_callAcceptedSpecificInfo
,
9314 { "callAcceptedSpecificInfo", "camel.callAcceptedSpecificInfo_element",
9315 FT_NONE
, BASE_NONE
, NULL
, 0,
9317 { &hf_camel_oAbandonSpecificInfo
,
9318 { "oAbandonSpecificInfo", "camel.oAbandonSpecificInfo_element",
9319 FT_NONE
, BASE_NONE
, NULL
, 0,
9321 { &hf_camel_oChangeOfPositionSpecificInfo
,
9322 { "oChangeOfPositionSpecificInfo", "camel.oChangeOfPositionSpecificInfo_element",
9323 FT_NONE
, BASE_NONE
, NULL
, 0,
9325 { &hf_camel_metDPCriteriaList
,
9326 { "metDPCriteriaList", "camel.metDPCriteriaList",
9327 FT_UINT32
, BASE_DEC
, NULL
, 0,
9329 { &hf_camel_tChangeOfPositionSpecificInfo
,
9330 { "tChangeOfPositionSpecificInfo", "camel.tChangeOfPositionSpecificInfo_element",
9331 FT_NONE
, BASE_NONE
, NULL
, 0,
9333 { &hf_camel_dpSpecificInfoAlt
,
9334 { "dpSpecificInfoAlt", "camel.dpSpecificInfoAlt_element",
9335 FT_NONE
, BASE_NONE
, NULL
, 0,
9337 { &hf_camel_o_smsFailureSpecificInfo
,
9338 { "o-smsFailureSpecificInfo", "camel.o_smsFailureSpecificInfo_element",
9339 FT_NONE
, BASE_NONE
, NULL
, 0,
9341 { &hf_camel_mo_smsfailureCause
,
9342 { "failureCause", "camel.mo-smsfailureCause",
9343 FT_UINT32
, BASE_DEC
, VALS(camel_MO_SMSCause_vals
), 0,
9344 "MO_SMSCause", HFILL
}},
9345 { &hf_camel_o_smsSubmissionSpecificInfo
,
9346 { "o-smsSubmissionSpecificInfo", "camel.o_smsSubmissionSpecificInfo_element",
9347 FT_NONE
, BASE_NONE
, NULL
, 0,
9349 { &hf_camel_t_smsFailureSpecificInfo
,
9350 { "t-smsFailureSpecificInfo", "camel.t_smsFailureSpecificInfo_element",
9351 FT_NONE
, BASE_NONE
, NULL
, 0,
9352 "T_t_smsFailureSpecificInfo", HFILL
}},
9353 { &hf_camel_t_smsfailureCause
,
9354 { "failureCause", "camel.t-smsfailureCause",
9355 FT_BYTES
, BASE_NONE
, NULL
, 0,
9356 "MT_SMSCause", HFILL
}},
9357 { &hf_camel_t_smsDeliverySpecificInfo
,
9358 { "t-smsDeliverySpecificInfo", "camel.t_smsDeliverySpecificInfo_element",
9359 FT_NONE
, BASE_NONE
, NULL
, 0,
9360 "T_t_smsDeliverySpecificInfo", HFILL
}},
9361 { &hf_camel_Extensions_item
,
9362 { "ExtensionField", "camel.ExtensionField_element",
9363 FT_NONE
, BASE_NONE
, NULL
, 0,
9366 { "type", "camel.type",
9367 FT_UINT32
, BASE_DEC
, VALS(camel_Code_vals
), 0,
9369 { &hf_camel_criticality
,
9370 { "criticality", "camel.criticality",
9371 FT_UINT32
, BASE_DEC
, VALS(inap_CriticalityType_vals
), 0,
9372 "CriticalityType", HFILL
}},
9374 { "value", "camel.value_element",
9375 FT_NONE
, BASE_NONE
, NULL
, 0,
9377 { &hf_camel_callDiversionTreatmentIndicator
,
9378 { "callDiversionTreatmentIndicator", "camel.callDiversionTreatmentIndicator",
9379 FT_BYTES
, BASE_NONE
, NULL
, 0,
9380 "OCTET_STRING_SIZE_1", HFILL
}},
9381 { &hf_camel_callingPartyRestrictionIndicator
,
9382 { "callingPartyRestrictionIndicator", "camel.callingPartyRestrictionIndicator",
9383 FT_BYTES
, BASE_NONE
, NULL
, 0,
9384 "OCTET_STRING_SIZE_1", HFILL
}},
9385 { &hf_camel_compoundGapCriteria
,
9386 { "compoundGapCriteria", "camel.compoundGapCriteria_element",
9387 FT_NONE
, BASE_NONE
, NULL
, 0,
9388 "CompoundCriteria", HFILL
}},
9389 { &hf_camel_gapIndicatorsDuration
,
9390 { "duration", "camel.gapIndicatorsDuration",
9391 FT_INT32
, BASE_DEC
, NULL
, 0,
9393 { &hf_camel_gapInterval
,
9394 { "gapInterval", "camel.gapInterval",
9395 FT_INT32
, BASE_DEC
, NULL
, 0,
9396 "Interval", HFILL
}},
9397 { &hf_camel_informationToSend
,
9398 { "informationToSend", "camel.informationToSend",
9399 FT_UINT32
, BASE_DEC
, VALS(camel_InformationToSend_vals
), 0,
9401 { &hf_camel_GenericNumbers_item
,
9402 { "GenericNumber", "camel.GenericNumber",
9403 FT_BYTES
, BASE_NONE
, NULL
, 0,
9405 { &hf_camel_short_QoS_format
,
9406 { "short-QoS-format", "camel.short_QoS_format",
9407 FT_BYTES
, BASE_NONE
, NULL
, 0,
9408 "QoS_Subscribed", HFILL
}},
9409 { &hf_camel_long_QoS_format
,
9410 { "long-QoS-format", "camel.long_QoS_format",
9411 FT_BYTES
, BASE_NONE
, NULL
, 0,
9412 "Ext_QoS_Subscribed", HFILL
}},
9413 { &hf_camel_supplement_to_long_QoS_format
,
9414 { "supplement-to-long-QoS-format", "camel.supplement_to_long_QoS_format",
9415 FT_BYTES
, BASE_NONE
, NULL
, 0,
9416 "Ext2_QoS_Subscribed", HFILL
}},
9417 { &hf_camel_additionalSupplement
,
9418 { "additionalSupplement", "camel.additionalSupplement",
9419 FT_BYTES
, BASE_NONE
, NULL
, 0,
9420 "Ext3_QoS_Subscribed", HFILL
}},
9421 { &hf_camel_gPRSEventType
,
9422 { "gPRSEventType", "camel.gPRSEventType",
9423 FT_UINT32
, BASE_DEC
, VALS(camel_GPRSEventType_vals
), 0,
9425 { &hf_camel_attachChangeOfPositionSpecificInformation
,
9426 { "attachChangeOfPositionSpecificInformation", "camel.attachChangeOfPositionSpecificInformation_element",
9427 FT_NONE
, BASE_NONE
, NULL
, 0,
9429 { &hf_camel_locationInformationGPRS
,
9430 { "locationInformationGPRS", "camel.locationInformationGPRS_element",
9431 FT_NONE
, BASE_NONE
, NULL
, 0,
9433 { &hf_camel_pdp_ContextchangeOfPositionSpecificInformation
,
9434 { "pdp-ContextchangeOfPositionSpecificInformation", "camel.pdp_ContextchangeOfPositionSpecificInformation_element",
9435 FT_NONE
, BASE_NONE
, NULL
, 0,
9437 { &hf_camel_accessPointName
,
9438 { "accessPointName", "camel.accessPointName",
9439 FT_BYTES
, BASE_NONE
, NULL
, 0,
9441 { &hf_camel_chargingID
,
9442 { "chargingID", "camel.chargingID",
9443 FT_BYTES
, BASE_NONE
, NULL
, 0,
9444 "GPRSChargingID", HFILL
}},
9445 { &hf_camel_endUserAddress
,
9446 { "endUserAddress", "camel.endUserAddress_element",
9447 FT_NONE
, BASE_NONE
, NULL
, 0,
9449 { &hf_camel_qualityOfService
,
9450 { "qualityOfService", "camel.qualityOfService_element",
9451 FT_NONE
, BASE_NONE
, NULL
, 0,
9453 { &hf_camel_timeAndTimeZone
,
9454 { "timeAndTimeZone", "camel.timeAndTimeZone",
9455 FT_BYTES
, BASE_NONE
, NULL
, 0,
9457 { &hf_camel_gGSNAddress
,
9458 { "gGSNAddress", "camel.gGSNAddress",
9459 FT_BYTES
, BASE_NONE
, NULL
, 0,
9460 "GSN_Address", HFILL
}},
9461 { &hf_camel_detachSpecificInformation
,
9462 { "detachSpecificInformation", "camel.detachSpecificInformation_element",
9463 FT_NONE
, BASE_NONE
, NULL
, 0,
9465 { &hf_camel_initiatingEntity
,
9466 { "initiatingEntity", "camel.initiatingEntity",
9467 FT_UINT32
, BASE_DEC
, VALS(camel_InitiatingEntity_vals
), 0,
9469 { &hf_camel_routeingAreaUpdate
,
9470 { "routeingAreaUpdate", "camel.routeingAreaUpdate_element",
9471 FT_NONE
, BASE_NONE
, NULL
, 0,
9473 { &hf_camel_disconnectSpecificInformation
,
9474 { "disconnectSpecificInformation", "camel.disconnectSpecificInformation_element",
9475 FT_NONE
, BASE_NONE
, NULL
, 0,
9477 { &hf_camel_pDPContextEstablishmentSpecificInformation
,
9478 { "pDPContextEstablishmentSpecificInformation", "camel.pDPContextEstablishmentSpecificInformation_element",
9479 FT_NONE
, BASE_NONE
, NULL
, 0,
9481 { &hf_camel_pDPInitiationType
,
9482 { "pDPInitiationType", "camel.pDPInitiationType",
9483 FT_UINT32
, BASE_DEC
, VALS(camel_PDPInitiationType_vals
), 0,
9485 { &hf_camel_secondaryPDP_context
,
9486 { "secondaryPDP-context", "camel.secondaryPDP_context_element",
9487 FT_NONE
, BASE_NONE
, NULL
, 0,
9489 { &hf_camel_pDPContextEstablishmentAcknowledgementSpecificInformation
,
9490 { "pDPContextEstablishmentAcknowledgementSpecificInformation", "camel.pDPContextEstablishmentAcknowledgementSpecificInformation_element",
9491 FT_NONE
, BASE_NONE
, NULL
, 0,
9493 { &hf_camel_messageID
,
9494 { "messageID", "camel.messageID",
9495 FT_UINT32
, BASE_DEC
, VALS(camel_MessageID_vals
), 0,
9497 { &hf_camel_numberOfRepetitions
,
9498 { "numberOfRepetitions", "camel.numberOfRepetitions",
9499 FT_UINT32
, BASE_DEC
, NULL
, 0,
9500 "INTEGER_1_127", HFILL
}},
9501 { &hf_camel_inbandInfoDuration
,
9502 { "duration", "camel.inbandInfoDuration",
9503 FT_UINT32
, BASE_DEC
, NULL
, 0,
9504 "INTEGER_0_32767", HFILL
}},
9505 { &hf_camel_interval
,
9506 { "interval", "camel.interval",
9507 FT_UINT32
, BASE_DEC
, NULL
, 0,
9508 "INTEGER_0_32767", HFILL
}},
9509 { &hf_camel_inbandInfo
,
9510 { "inbandInfo", "camel.inbandInfo_element",
9511 FT_NONE
, BASE_NONE
, NULL
, 0,
9514 { "tone", "camel.tone_element",
9515 FT_NONE
, BASE_NONE
, NULL
, 0,
9517 { &hf_camel_cellGlobalIdOrServiceAreaIdOrLAI
,
9518 { "cellGlobalIdOrServiceAreaIdOrLAI", "camel.cellGlobalIdOrServiceAreaIdOrLAI",
9519 FT_BYTES
, BASE_NONE
, NULL
, 0,
9521 { &hf_camel_routeingAreaIdentity
,
9522 { "routeingAreaIdentity", "camel.routeingAreaIdentity",
9523 FT_BYTES
, BASE_NONE
, NULL
, 0,
9524 "RAIdentity", HFILL
}},
9525 { &hf_camel_geographicalInformation
,
9526 { "geographicalInformation", "camel.geographicalInformation",
9527 FT_BYTES
, BASE_NONE
, NULL
, 0,
9529 { &hf_camel_sgsn_Number
,
9530 { "sgsn-Number", "camel.sgsn_Number",
9531 FT_BYTES
, BASE_NONE
, NULL
, 0,
9532 "ISDN_AddressString", HFILL
}},
9533 { &hf_camel_selectedLSAIdentity
,
9534 { "selectedLSAIdentity", "camel.selectedLSAIdentity",
9535 FT_BYTES
, BASE_NONE
, NULL
, 0,
9536 "LSAIdentity", HFILL
}},
9537 { &hf_camel_extensionContainer
,
9538 { "extensionContainer", "camel.extensionContainer_element",
9539 FT_NONE
, BASE_NONE
, NULL
, 0,
9541 { &hf_camel_sai_Present
,
9542 { "sai-Present", "camel.sai_Present_element",
9543 FT_NONE
, BASE_NONE
, NULL
, 0,
9545 { &hf_camel_userCSGInformation
,
9546 { "userCSGInformation", "camel.userCSGInformation",
9547 FT_BYTES
, BASE_NONE
, NULL
, 0,
9549 { &hf_camel_elementaryMessageID
,
9550 { "elementaryMessageID", "camel.elementaryMessageID",
9551 FT_UINT32
, BASE_DEC
, NULL
, 0,
9552 "Integer4", HFILL
}},
9554 { "text", "camel.text_element",
9555 FT_NONE
, BASE_NONE
, NULL
, 0,
9557 { &hf_camel_messageContent
,
9558 { "messageContent", "camel.messageContent",
9559 FT_STRING
, BASE_NONE
, NULL
, 0,
9560 "IA5String_SIZE_bound__minMessageContentLength_bound__maxMessageContentLength", HFILL
}},
9561 { &hf_camel_attributes
,
9562 { "attributes", "camel.attributes",
9563 FT_BYTES
, BASE_NONE
, NULL
, 0,
9564 "OCTET_STRING_SIZE_bound__minAttributesLength_bound__maxAttributesLength", HFILL
}},
9565 { &hf_camel_elementaryMessageIDs
,
9566 { "elementaryMessageIDs", "camel.elementaryMessageIDs",
9567 FT_UINT32
, BASE_DEC
, NULL
, 0,
9568 "SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4", HFILL
}},
9569 { &hf_camel_elementaryMessageIDs_item
,
9570 { "Integer4", "camel.Integer4",
9571 FT_UINT32
, BASE_DEC
, NULL
, 0,
9573 { &hf_camel_variableMessage
,
9574 { "variableMessage", "camel.variableMessage_element",
9575 FT_NONE
, BASE_NONE
, NULL
, 0,
9577 { &hf_camel_variableParts
,
9578 { "variableParts", "camel.variableParts",
9579 FT_UINT32
, BASE_DEC
, NULL
, 0,
9580 "SEQUENCE_SIZE_1_5_OF_VariablePart", HFILL
}},
9581 { &hf_camel_variableParts_item
,
9582 { "VariablePart", "camel.VariablePart",
9583 FT_UINT32
, BASE_DEC
, VALS(camel_VariablePart_vals
), 0,
9585 { &hf_camel_MetDPCriteriaList_item
,
9586 { "MetDPCriterion", "camel.MetDPCriterion",
9587 FT_UINT32
, BASE_DEC
, VALS(camel_MetDPCriterion_vals
), 0,
9589 { &hf_camel_enteringCellGlobalId
,
9590 { "enteringCellGlobalId", "camel.enteringCellGlobalId",
9591 FT_BYTES
, BASE_NONE
, NULL
, 0,
9592 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL
}},
9593 { &hf_camel_leavingCellGlobalId
,
9594 { "leavingCellGlobalId", "camel.leavingCellGlobalId",
9595 FT_BYTES
, BASE_NONE
, NULL
, 0,
9596 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL
}},
9597 { &hf_camel_enteringServiceAreaId
,
9598 { "enteringServiceAreaId", "camel.enteringServiceAreaId",
9599 FT_BYTES
, BASE_NONE
, NULL
, 0,
9600 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL
}},
9601 { &hf_camel_leavingServiceAreaId
,
9602 { "leavingServiceAreaId", "camel.leavingServiceAreaId",
9603 FT_BYTES
, BASE_NONE
, NULL
, 0,
9604 "CellGlobalIdOrServiceAreaIdFixedLength", HFILL
}},
9605 { &hf_camel_enteringLocationAreaId
,
9606 { "enteringLocationAreaId", "camel.enteringLocationAreaId",
9607 FT_BYTES
, BASE_NONE
, NULL
, 0,
9608 "LAIFixedLength", HFILL
}},
9609 { &hf_camel_leavingLocationAreaId
,
9610 { "leavingLocationAreaId", "camel.leavingLocationAreaId",
9611 FT_BYTES
, BASE_NONE
, NULL
, 0,
9612 "LAIFixedLength", HFILL
}},
9613 { &hf_camel_inter_SystemHandOverToUMTS
,
9614 { "inter-SystemHandOverToUMTS", "camel.inter_SystemHandOverToUMTS_element",
9615 FT_NONE
, BASE_NONE
, NULL
, 0,
9617 { &hf_camel_inter_SystemHandOverToGSM
,
9618 { "inter-SystemHandOverToGSM", "camel.inter_SystemHandOverToGSM_element",
9619 FT_NONE
, BASE_NONE
, NULL
, 0,
9621 { &hf_camel_metDPCriterionAlt
,
9622 { "metDPCriterionAlt", "camel.metDPCriterionAlt_element",
9623 FT_NONE
, BASE_NONE
, NULL
, 0,
9625 { &hf_camel_minimumNumberOfDigits
,
9626 { "minimumNumberOfDigits", "camel.minimumNumberOfDigits",
9627 FT_UINT32
, BASE_DEC
, NULL
, 0,
9628 "INTEGER_1_30", HFILL
}},
9629 { &hf_camel_maximumNumberOfDigits
,
9630 { "maximumNumberOfDigits", "camel.maximumNumberOfDigits",
9631 FT_UINT32
, BASE_DEC
, NULL
, 0,
9632 "INTEGER_1_30", HFILL
}},
9633 { &hf_camel_requested_QoS
,
9634 { "requested-QoS", "camel.requested_QoS",
9635 FT_UINT32
, BASE_DEC
, VALS(camel_GPRS_QoS_vals
), 0,
9636 "GPRS_QoS", HFILL
}},
9637 { &hf_camel_subscribed_QoS
,
9638 { "subscribed-QoS", "camel.subscribed_QoS",
9639 FT_UINT32
, BASE_DEC
, VALS(camel_GPRS_QoS_vals
), 0,
9640 "GPRS_QoS", HFILL
}},
9641 { &hf_camel_negotiated_QoS
,
9642 { "negotiated-QoS", "camel.negotiated_QoS",
9643 FT_UINT32
, BASE_DEC
, VALS(camel_GPRS_QoS_vals
), 0,
9644 "GPRS_QoS", HFILL
}},
9645 { &hf_camel_requested_QoS_Extension
,
9646 { "requested-QoS-Extension", "camel.requested_QoS_Extension_element",
9647 FT_NONE
, BASE_NONE
, NULL
, 0,
9648 "GPRS_QoS_Extension", HFILL
}},
9649 { &hf_camel_subscribed_QoS_Extension
,
9650 { "subscribed-QoS-Extension", "camel.subscribed_QoS_Extension_element",
9651 FT_NONE
, BASE_NONE
, NULL
, 0,
9652 "GPRS_QoS_Extension", HFILL
}},
9653 { &hf_camel_negotiated_QoS_Extension
,
9654 { "negotiated-QoS-Extension", "camel.negotiated_QoS_Extension_element",
9655 FT_NONE
, BASE_NONE
, NULL
, 0,
9656 "GPRS_QoS_Extension", HFILL
}},
9657 { &hf_camel_receivingSideID
,
9658 { "receivingSideID", "camel.receivingSideID",
9659 FT_BYTES
, BASE_NONE
, NULL
, 0,
9660 "LegType", HFILL
}},
9661 { &hf_camel_RequestedInformationList_item
,
9662 { "RequestedInformation", "camel.RequestedInformation_element",
9663 FT_NONE
, BASE_NONE
, NULL
, 0,
9665 { &hf_camel_RequestedInformationTypeList_item
,
9666 { "RequestedInformationType", "camel.RequestedInformationType",
9667 FT_UINT32
, BASE_DEC
, VALS(camel_RequestedInformationType_vals
), 0,
9669 { &hf_camel_requestedInformationType
,
9670 { "requestedInformationType", "camel.requestedInformationType",
9671 FT_UINT32
, BASE_DEC
, VALS(camel_RequestedInformationType_vals
), 0,
9673 { &hf_camel_requestedInformationValue
,
9674 { "requestedInformationValue", "camel.requestedInformationValue",
9675 FT_UINT32
, BASE_DEC
, VALS(camel_RequestedInformationValue_vals
), 0,
9677 { &hf_camel_callAttemptElapsedTimeValue
,
9678 { "callAttemptElapsedTimeValue", "camel.callAttemptElapsedTimeValue",
9679 FT_UINT32
, BASE_DEC
, NULL
, 0,
9680 "INTEGER_0_255", HFILL
}},
9681 { &hf_camel_callStopTimeValue
,
9682 { "callStopTimeValue", "camel.callStopTimeValue",
9683 FT_STRING
, BASE_NONE
, NULL
, 0,
9684 "DateAndTime", HFILL
}},
9685 { &hf_camel_callConnectedElapsedTimeValue
,
9686 { "callConnectedElapsedTimeValue", "camel.callConnectedElapsedTimeValue",
9687 FT_UINT32
, BASE_DEC
, NULL
, 0,
9688 "Integer4", HFILL
}},
9689 { &hf_camel_releaseCauseValue
,
9690 { "releaseCauseValue", "camel.releaseCauseValue",
9691 FT_BYTES
, BASE_NONE
, NULL
, 0,
9693 { &hf_camel_sendingSideID
,
9694 { "sendingSideID", "camel.sendingSideID",
9695 FT_BYTES
, BASE_NONE
, NULL
, 0,
9696 "LegType", HFILL
}},
9697 { &hf_camel_forwardServiceInteractionInd
,
9698 { "forwardServiceInteractionInd", "camel.forwardServiceInteractionInd_element",
9699 FT_NONE
, BASE_NONE
, NULL
, 0,
9701 { &hf_camel_backwardServiceInteractionInd
,
9702 { "backwardServiceInteractionInd", "camel.backwardServiceInteractionInd_element",
9703 FT_NONE
, BASE_NONE
, NULL
, 0,
9705 { &hf_camel_bothwayThroughConnectionInd
,
9706 { "bothwayThroughConnectionInd", "camel.bothwayThroughConnectionInd",
9707 FT_UINT32
, BASE_DEC
, VALS(inap_BothwayThroughConnectionInd_vals
), 0,
9709 { &hf_camel_connectedNumberTreatmentInd
,
9710 { "connectedNumberTreatmentInd", "camel.connectedNumberTreatmentInd",
9711 FT_UINT32
, BASE_DEC
, VALS(camel_ConnectedNumberTreatmentInd_vals
), 0,
9713 { &hf_camel_nonCUGCall
,
9714 { "nonCUGCall", "camel.nonCUGCall_element",
9715 FT_NONE
, BASE_NONE
, NULL
, 0,
9717 { &hf_camel_holdTreatmentIndicator
,
9718 { "holdTreatmentIndicator", "camel.holdTreatmentIndicator",
9719 FT_INT32
, BASE_DEC
, VALS(camel_holdTreatmentIndicator_values
), 0,
9720 "OCTET_STRING_SIZE_1", HFILL
}},
9721 { &hf_camel_cwTreatmentIndicator
,
9722 { "cwTreatmentIndicator", "camel.cwTreatmentIndicator",
9723 FT_INT32
, BASE_DEC
, VALS(camel_cwTreatmentIndicator_values
), 0,
9724 "OCTET_STRING_SIZE_1", HFILL
}},
9725 { &hf_camel_ectTreatmentIndicator
,
9726 { "ectTreatmentIndicator", "camel.ectTreatmentIndicator",
9727 FT_INT32
, BASE_DEC
, VALS(camel_ectTreatmentIndicator_values
), 0,
9728 "OCTET_STRING_SIZE_1", HFILL
}},
9729 { &hf_camel_eventTypeSMS
,
9730 { "eventTypeSMS", "camel.eventTypeSMS",
9731 FT_UINT32
, BASE_DEC
, VALS(camel_EventTypeSMS_vals
), 0,
9733 { &hf_camel_timeSinceTariffSwitch
,
9734 { "timeSinceTariffSwitch", "camel.timeSinceTariffSwitch",
9735 FT_UINT32
, BASE_DEC
, NULL
, 0,
9736 "INTEGER_0_864000", HFILL
}},
9737 { &hf_camel_timeIfTariffSwitch_tariffSwitchInterval
,
9738 { "tariffSwitchInterval", "camel.tariffSwitchInterval",
9739 FT_UINT32
, BASE_DEC
, NULL
, 0,
9740 "INTEGER_1_864000", HFILL
}},
9741 { &hf_camel_timeIfNoTariffSwitch
,
9742 { "timeIfNoTariffSwitch", "camel.timeIfNoTariffSwitch",
9743 FT_UINT32
, BASE_DEC
, NULL
, 0,
9745 { &hf_camel_timeIfTariffSwitch
,
9746 { "timeIfTariffSwitch", "camel.timeIfTariffSwitch_element",
9747 FT_NONE
, BASE_NONE
, NULL
, 0,
9750 { "toneID", "camel.toneID",
9751 FT_UINT32
, BASE_DEC
, NULL
, 0,
9752 "Integer4", HFILL
}},
9753 { &hf_camel_toneDuration
,
9754 { "duration", "camel.toneDuration",
9755 FT_UINT32
, BASE_DEC
, NULL
, 0,
9756 "Integer4", HFILL
}},
9757 { &hf_camel_volumeIfNoTariffSwitch
,
9758 { "volumeIfNoTariffSwitch", "camel.volumeIfNoTariffSwitch",
9759 FT_UINT32
, BASE_DEC
, NULL
, 0,
9760 "INTEGER_0_4294967295", HFILL
}},
9761 { &hf_camel_volumeIfTariffSwitch
,
9762 { "volumeIfTariffSwitch", "camel.volumeIfTariffSwitch_element",
9763 FT_NONE
, BASE_NONE
, NULL
, 0,
9765 { &hf_camel_volumeSinceLastTariffSwitch
,
9766 { "volumeSinceLastTariffSwitch", "camel.volumeSinceLastTariffSwitch",
9767 FT_UINT32
, BASE_DEC
, NULL
, 0,
9768 "INTEGER_0_4294967295", HFILL
}},
9769 { &hf_camel_volumeTariffSwitchInterval
,
9770 { "volumeTariffSwitchInterval", "camel.volumeTariffSwitchInterval",
9771 FT_UINT32
, BASE_DEC
, NULL
, 0,
9772 "INTEGER_0_4294967295", HFILL
}},
9773 { &hf_camel_rO_VolumeIfNoTariffSwitch
,
9774 { "rO-VolumeIfNoTariffSwitch", "camel.rO_VolumeIfNoTariffSwitch",
9775 FT_UINT32
, BASE_DEC
, NULL
, 0,
9776 "INTEGER_0_255", HFILL
}},
9777 { &hf_camel_rO_VolumeIfTariffSwitch
,
9778 { "rO-VolumeIfTariffSwitch", "camel.rO_VolumeIfTariffSwitch_element",
9779 FT_NONE
, BASE_NONE
, NULL
, 0,
9781 { &hf_camel_rO_VolumeSinceLastTariffSwitch
,
9782 { "rO-VolumeSinceLastTariffSwitch", "camel.rO_VolumeSinceLastTariffSwitch",
9783 FT_UINT32
, BASE_DEC
, NULL
, 0,
9784 "INTEGER_0_255", HFILL
}},
9785 { &hf_camel_rO_VolumeTariffSwitchInterval
,
9786 { "rO-VolumeTariffSwitchInterval", "camel.rO_VolumeTariffSwitchInterval",
9787 FT_UINT32
, BASE_DEC
, NULL
, 0,
9788 "INTEGER_0_255", HFILL
}},
9789 { &hf_camel_integer
,
9790 { "integer", "camel.integer",
9791 FT_UINT32
, BASE_DEC
, NULL
, 0,
9792 "Integer4", HFILL
}},
9794 { "number", "camel.number",
9795 FT_BYTES
, BASE_NONE
, NULL
, 0,
9798 { "time", "camel.time",
9799 FT_BYTES
, BASE_NONE
, NULL
, 0,
9800 "OCTET_STRING_SIZE_2", HFILL
}},
9802 { "date", "camel.date",
9803 FT_BYTES
, BASE_NONE
, NULL
, 0,
9804 "OCTET_STRING_SIZE_4", HFILL
}},
9806 { "price", "camel.price",
9807 FT_BYTES
, BASE_NONE
, NULL
, 0,
9808 "OCTET_STRING_SIZE_4", HFILL
}},
9809 { &hf_camel_par_cancelFailedProblem
,
9810 { "problem", "camel.problem",
9811 FT_UINT32
, BASE_DEC
, VALS(camel_T_par_cancelFailedProblem_vals
), 0,
9812 "T_par_cancelFailedProblem", HFILL
}},
9813 { &hf_camel_operation
,
9814 { "operation", "camel.operation",
9815 FT_INT32
, BASE_DEC
, NULL
, 0,
9816 "InvokeID", HFILL
}},
9817 { &hf_camel_destinationReference
,
9818 { "destinationReference", "camel.destinationReference",
9819 FT_UINT32
, BASE_DEC
, NULL
, 0,
9820 "Integer4", HFILL
}},
9821 { &hf_camel_originationReference
,
9822 { "originationReference", "camel.originationReference",
9823 FT_UINT32
, BASE_DEC
, NULL
, 0,
9824 "Integer4", HFILL
}},
9825 { &hf_camel_disconnectFromIPForbidden
,
9826 { "disconnectFromIPForbidden", "camel.disconnectFromIPForbidden",
9827 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9828 "BOOLEAN", HFILL
}},
9829 { &hf_camel_requestAnnouncementCompleteNotification
,
9830 { "requestAnnouncementCompleteNotification", "camel.requestAnnouncementCompleteNotification",
9831 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9832 "BOOLEAN", HFILL
}},
9833 { &hf_camel_requestAnnouncementStartedNotification
,
9834 { "requestAnnouncementStartedNotification", "camel.requestAnnouncementStartedNotification",
9835 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9836 "BOOLEAN", HFILL
}},
9837 { &hf_camel_collectedInfo
,
9838 { "collectedInfo", "camel.collectedInfo",
9839 FT_UINT32
, BASE_DEC
, VALS(camel_CollectedInfo_vals
), 0,
9841 { &hf_camel_digitsResponse
,
9842 { "digitsResponse", "camel.digitsResponse",
9843 FT_BYTES
, BASE_NONE
, NULL
, 0,
9845 { &hf_camel_allAnnouncementsComplete
,
9846 { "allAnnouncementsComplete", "camel.allAnnouncementsComplete_element",
9847 FT_NONE
, BASE_NONE
, NULL
, 0,
9849 { &hf_camel_firstAnnouncementStarted
,
9850 { "firstAnnouncementStarted", "camel.firstAnnouncementStarted_element",
9851 FT_NONE
, BASE_NONE
, NULL
, 0,
9853 { &hf_camel_aChBillingChargingCharacteristics
,
9854 { "aChBillingChargingCharacteristics", "camel.aChBillingChargingCharacteristics",
9855 FT_BYTES
, BASE_NONE
, NULL
, 0,
9857 { &hf_camel_partyToCharge
,
9858 { "partyToCharge", "camel.partyToCharge",
9859 FT_UINT32
, BASE_DEC
, VALS(camel_SendingSideID_vals
), 0,
9860 "SendingSideID", HFILL
}},
9861 { &hf_camel_iTXcharging
,
9862 { "iTXcharging", "camel.iTXcharging",
9863 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
9864 "BOOLEAN", HFILL
}},
9865 { &hf_camel_correlationID
,
9866 { "correlationID", "camel.correlationID",
9867 FT_BYTES
, BASE_NONE
, NULL
, 0,
9869 { &hf_camel_iPSSPCapabilities
,
9870 { "iPSSPCapabilities", "camel.iPSSPCapabilities",
9871 FT_BYTES
, BASE_NONE
, NULL
, 0,
9873 { &hf_camel_gapCriteria
,
9874 { "gapCriteria", "camel.gapCriteria",
9875 FT_UINT32
, BASE_DEC
, VALS(camel_GapCriteria_vals
), 0,
9877 { &hf_camel_gapIndicators
,
9878 { "gapIndicators", "camel.gapIndicators_element",
9879 FT_NONE
, BASE_NONE
, NULL
, 0,
9881 { &hf_camel_controlType
,
9882 { "controlType", "camel.controlType",
9883 FT_UINT32
, BASE_DEC
, VALS(camel_ControlType_vals
), 0,
9885 { &hf_camel_gapTreatment
,
9886 { "gapTreatment", "camel.gapTreatment",
9887 FT_UINT32
, BASE_DEC
, VALS(camel_GapTreatment_vals
), 0,
9889 { &hf_camel_requestedInformationList
,
9890 { "requestedInformationList", "camel.requestedInformationList",
9891 FT_UINT32
, BASE_DEC
, NULL
, 0,
9893 { &hf_camel_legID_01
,
9894 { "legID", "camel.legID",
9895 FT_UINT32
, BASE_DEC
, VALS(camel_ReceivingSideID_vals
), 0,
9896 "ReceivingSideID", HFILL
}},
9897 { &hf_camel_requestedInformationTypeList
,
9898 { "requestedInformationTypeList", "camel.requestedInformationTypeList",
9899 FT_UINT32
, BASE_DEC
, NULL
, 0,
9901 { &hf_camel_legID_02
,
9902 { "legID", "camel.legID",
9903 FT_UINT32
, BASE_DEC
, VALS(camel_SendingSideID_vals
), 0,
9904 "SendingSideID", HFILL
}},
9905 { &hf_camel_allRequests
,
9906 { "allRequests", "camel.allRequests_element",
9907 FT_NONE
, BASE_NONE
, NULL
, 0,
9909 { &hf_camel_callSegmentToCancel
,
9910 { "callSegmentToCancel", "camel.callSegmentToCancel_element",
9911 FT_NONE
, BASE_NONE
, NULL
, 0,
9913 { &hf_camel_destinationRoutingAddress
,
9914 { "destinationRoutingAddress", "camel.destinationRoutingAddress",
9915 FT_UINT32
, BASE_DEC
, NULL
, 0,
9917 { &hf_camel_alertingPattern
,
9918 { "alertingPattern", "camel.alertingPattern",
9919 FT_BYTES
, BASE_NONE
, NULL
, 0,
9921 { &hf_camel_originalCalledPartyID
,
9922 { "originalCalledPartyID", "camel.originalCalledPartyID",
9923 FT_BYTES
, BASE_NONE
, NULL
, 0,
9925 { &hf_camel_carrier
,
9926 { "carrier", "camel.carrier",
9927 FT_BYTES
, BASE_NONE
, NULL
, 0,
9929 { &hf_camel_callingPartysCategory
,
9930 { "callingPartysCategory", "camel.callingPartysCategory",
9931 FT_UINT16
, BASE_DEC
|BASE_EXT_STRING
, &isup_calling_partys_category_value_ext
, 0,
9933 { &hf_camel_redirectingPartyID
,
9934 { "redirectingPartyID", "camel.redirectingPartyID",
9935 FT_BYTES
, BASE_NONE
, NULL
, 0,
9937 { &hf_camel_redirectionInformation
,
9938 { "redirectionInformation", "camel.redirectionInformation",
9939 FT_BYTES
, BASE_NONE
, NULL
, 0,
9941 { &hf_camel_genericNumbers
,
9942 { "genericNumbers", "camel.genericNumbers",
9943 FT_UINT32
, BASE_DEC
, NULL
, 0,
9945 { &hf_camel_serviceInteractionIndicatorsTwo
,
9946 { "serviceInteractionIndicatorsTwo", "camel.serviceInteractionIndicatorsTwo_element",
9947 FT_NONE
, BASE_NONE
, NULL
, 0,
9949 { &hf_camel_chargeNumber
,
9950 { "chargeNumber", "camel.chargeNumber",
9951 FT_BYTES
, BASE_NONE
, NULL
, 0,
9953 { &hf_camel_legToBeConnected
,
9954 { "legToBeConnected", "camel.legToBeConnected",
9955 FT_UINT32
, BASE_DEC
, VALS(inap_LegID_vals
), 0,
9957 { &hf_camel_cug_Interlock
,
9958 { "cug-Interlock", "camel.cug_Interlock",
9959 FT_BYTES
, BASE_NONE
, NULL
, 0,
9961 { &hf_camel_cug_OutgoingAccess
,
9962 { "cug-OutgoingAccess", "camel.cug_OutgoingAccess_element",
9963 FT_NONE
, BASE_NONE
, NULL
, 0,
9965 { &hf_camel_suppressionOfAnnouncement
,
9966 { "suppressionOfAnnouncement", "camel.suppressionOfAnnouncement_element",
9967 FT_NONE
, BASE_NONE
, NULL
, 0,
9969 { &hf_camel_oCSIApplicable
,
9970 { "oCSIApplicable", "camel.oCSIApplicable_element",
9971 FT_NONE
, BASE_NONE
, NULL
, 0,
9973 { &hf_camel_naOliInfo
,
9974 { "naOliInfo", "camel.naOliInfo",
9975 FT_BYTES
, BASE_NONE
, NULL
, 0,
9977 { &hf_camel_bor_InterrogationRequested
,
9978 { "bor-InterrogationRequested", "camel.bor_InterrogationRequested_element",
9979 FT_NONE
, BASE_NONE
, NULL
, 0,
9981 { &hf_camel_suppress_N_CSI
,
9982 { "suppress-N-CSI", "camel.suppress_N_CSI_element",
9983 FT_NONE
, BASE_NONE
, NULL
, 0,
9985 { &hf_camel_resourceAddress
,
9986 { "resourceAddress", "camel.resourceAddress",
9987 FT_UINT32
, BASE_DEC
, VALS(camel_T_resourceAddress_vals
), 0,
9989 { &hf_camel_ipRoutingAddress
,
9990 { "ipRoutingAddress", "camel.ipRoutingAddress",
9991 FT_BYTES
, BASE_NONE
, NULL
, 0,
9994 { "none", "camel.none_element",
9995 FT_NONE
, BASE_NONE
, NULL
, 0,
9997 { &hf_camel_suppress_O_CSI
,
9998 { "suppress-O-CSI", "camel.suppress_O_CSI_element",
9999 FT_NONE
, BASE_NONE
, NULL
, 0,
10001 { &hf_camel_continueWithArgumentArgExtension
,
10002 { "continueWithArgumentArgExtension", "camel.continueWithArgumentArgExtension_element",
10003 FT_NONE
, BASE_NONE
, NULL
, 0,
10005 { &hf_camel_suppress_D_CSI
,
10006 { "suppress-D-CSI", "camel.suppress_D_CSI_element",
10007 FT_NONE
, BASE_NONE
, NULL
, 0,
10009 { &hf_camel_suppressOutgoingCallBarring
,
10010 { "suppressOutgoingCallBarring", "camel.suppressOutgoingCallBarring_element",
10011 FT_NONE
, BASE_NONE
, NULL
, 0,
10013 { &hf_camel_legOrCallSegment
,
10014 { "legOrCallSegment", "camel.legOrCallSegment",
10015 FT_UINT32
, BASE_DEC
, VALS(camel_LegOrCallSegment_vals
), 0,
10017 { &hf_camel_legToBeReleased
,
10018 { "legToBeReleased", "camel.legToBeReleased",
10019 FT_UINT32
, BASE_DEC
, VALS(inap_LegID_vals
), 0,
10021 { &hf_camel_callSegmentFailure
,
10022 { "callSegmentFailure", "camel.callSegmentFailure_element",
10023 FT_NONE
, BASE_NONE
, NULL
, 0,
10025 { &hf_camel_bCSM_Failure
,
10026 { "bCSM-Failure", "camel.bCSM_Failure_element",
10027 FT_NONE
, BASE_NONE
, NULL
, 0,
10029 { &hf_camel_assistingSSPIPRoutingAddress
,
10030 { "assistingSSPIPRoutingAddress", "camel.assistingSSPIPRoutingAddress",
10031 FT_BYTES
, BASE_NONE
, NULL
, 0,
10033 { &hf_camel_callingPartyNumber
,
10034 { "callingPartyNumber", "camel.callingPartyNumber",
10035 FT_BYTES
, BASE_NONE
, NULL
, 0,
10037 { &hf_camel_eventSpecificInformationBCSM
,
10038 { "eventSpecificInformationBCSM", "camel.eventSpecificInformationBCSM",
10039 FT_UINT32
, BASE_DEC
, VALS(camel_EventSpecificInformationBCSM_vals
), 0,
10041 { &hf_camel_miscCallInfo
,
10042 { "miscCallInfo", "camel.miscCallInfo_element",
10043 FT_NONE
, BASE_NONE
, NULL
, 0,
10045 { &hf_camel_cGEncountered
,
10046 { "cGEncountered", "camel.cGEncountered",
10047 FT_UINT32
, BASE_DEC
, VALS(camel_CGEncountered_vals
), 0,
10049 { &hf_camel_locationNumber
,
10050 { "locationNumber", "camel.locationNumber",
10051 FT_BYTES
, BASE_NONE
, NULL
, 0,
10053 { &hf_camel_highLayerCompatibility
,
10054 { "highLayerCompatibility", "camel.highLayerCompatibility",
10055 FT_BYTES
, BASE_NONE
, NULL
, 0,
10057 { &hf_camel_additionalCallingPartyNumber
,
10058 { "additionalCallingPartyNumber", "camel.additionalCallingPartyNumber",
10059 FT_BYTES
, BASE_NONE
, NULL
, 0,
10061 { &hf_camel_bearerCapability
,
10062 { "bearerCapability", "camel.bearerCapability",
10063 FT_UINT32
, BASE_DEC
, VALS(camel_BearerCapability_vals
), 0,
10065 { &hf_camel_cug_Index
,
10066 { "cug-Index", "camel.cug_Index",
10067 FT_UINT32
, BASE_DEC
, NULL
, 0,
10070 { "iMSI", "camel.iMSI",
10071 FT_BYTES
, BASE_NONE
, NULL
, 0,
10073 { &hf_camel_subscriberState
,
10074 { "subscriberState", "camel.subscriberState",
10075 FT_UINT32
, BASE_DEC
, VALS(gsm_map_ms_SubscriberState_vals
), 0,
10077 { &hf_camel_callReferenceNumber
,
10078 { "callReferenceNumber", "camel.callReferenceNumber",
10079 FT_BYTES
, BASE_NONE
, NULL
, 0,
10081 { &hf_camel_mscAddress
,
10082 { "mscAddress", "camel.mscAddress",
10083 FT_BYTES
, BASE_NONE
, NULL
, 0,
10084 "ISDN_AddressString", HFILL
}},
10085 { &hf_camel_calledPartyBCDNumber
,
10086 { "calledPartyBCDNumber", "camel.calledPartyBCDNumber",
10087 FT_BYTES
, BASE_NONE
, NULL
, 0,
10089 { &hf_camel_timeAndTimezone
,
10090 { "timeAndTimezone", "camel.timeAndTimezone",
10091 FT_BYTES
, BASE_NONE
, NULL
, 0,
10093 { &hf_camel_callForwardingSS_Pending
,
10094 { "callForwardingSS-Pending", "camel.callForwardingSS_Pending_element",
10095 FT_NONE
, BASE_NONE
, NULL
, 0,
10097 { &hf_camel_initialDPArgExtension
,
10098 { "initialDPArgExtension", "camel.initialDPArgExtension_element",
10099 FT_NONE
, BASE_NONE
, NULL
, 0,
10101 { &hf_camel_gmscAddress
,
10102 { "gmscAddress", "camel.gmscAddress",
10103 FT_BYTES
, BASE_NONE
, NULL
, 0,
10104 "ISDN_AddressString", HFILL
}},
10105 { &hf_camel_ms_Classmark2
,
10106 { "ms-Classmark2", "camel.ms_Classmark2",
10107 FT_BYTES
, BASE_NONE
, NULL
, 0,
10110 { "iMEI", "camel.iMEI",
10111 FT_BYTES
, BASE_NONE
, NULL
, 0,
10113 { &hf_camel_supportedCamelPhases
,
10114 { "supportedCamelPhases", "camel.supportedCamelPhases",
10115 FT_BYTES
, BASE_NONE
, NULL
, 0,
10117 { &hf_camel_offeredCamel4Functionalities
,
10118 { "offeredCamel4Functionalities", "camel.offeredCamel4Functionalities",
10119 FT_BYTES
, BASE_NONE
, NULL
, 0,
10121 { &hf_camel_bearerCapability2
,
10122 { "bearerCapability2", "camel.bearerCapability2",
10123 FT_UINT32
, BASE_DEC
, VALS(camel_BearerCapability_vals
), 0,
10124 "BearerCapability", HFILL
}},
10125 { &hf_camel_highLayerCompatibility2
,
10126 { "highLayerCompatibility2", "camel.highLayerCompatibility2",
10127 FT_BYTES
, BASE_NONE
, NULL
, 0,
10128 "HighLayerCompatibility", HFILL
}},
10129 { &hf_camel_lowLayerCompatibility
,
10130 { "lowLayerCompatibility", "camel.lowLayerCompatibility",
10131 FT_BYTES
, BASE_NONE
, NULL
, 0,
10133 { &hf_camel_lowLayerCompatibility2
,
10134 { "lowLayerCompatibility2", "camel.lowLayerCompatibility2",
10135 FT_BYTES
, BASE_NONE
, NULL
, 0,
10136 "LowLayerCompatibility", HFILL
}},
10137 { &hf_camel_enhancedDialledServicesAllowed
,
10138 { "enhancedDialledServicesAllowed", "camel.enhancedDialledServicesAllowed_element",
10139 FT_NONE
, BASE_NONE
, NULL
, 0,
10141 { &hf_camel_uu_Data
,
10142 { "uu-Data", "camel.uu_Data_element",
10143 FT_NONE
, BASE_NONE
, NULL
, 0,
10145 { &hf_camel_collectInformationAllowed
,
10146 { "collectInformationAllowed", "camel.collectInformationAllowed_element",
10147 FT_NONE
, BASE_NONE
, NULL
, 0,
10149 { &hf_camel_releaseCallArgExtensionAllowed
,
10150 { "releaseCallArgExtensionAllowed", "camel.releaseCallArgExtensionAllowed_element",
10151 FT_NONE
, BASE_NONE
, NULL
, 0,
10153 { &hf_camel_legToBeCreated
,
10154 { "legToBeCreated", "camel.legToBeCreated",
10155 FT_UINT32
, BASE_DEC
, VALS(inap_LegID_vals
), 0,
10157 { &hf_camel_newCallSegment
,
10158 { "newCallSegment", "camel.newCallSegment",
10159 FT_UINT32
, BASE_DEC
, NULL
, 0,
10160 "CallSegmentID", HFILL
}},
10161 { &hf_camel_gsmSCFAddress
,
10162 { "gsmSCFAddress", "camel.gsmSCFAddress",
10163 FT_BYTES
, BASE_NONE
, NULL
, 0,
10164 "ISDN_AddressString", HFILL
}},
10165 { &hf_camel_suppress_T_CSI
,
10166 { "suppress-T-CSI", "camel.suppress_T_CSI_element",
10167 FT_NONE
, BASE_NONE
, NULL
, 0,
10169 { &hf_camel_legIDToMove
,
10170 { "legIDToMove", "camel.legIDToMove",
10171 FT_UINT32
, BASE_DEC
, VALS(inap_LegID_vals
), 0,
10173 { &hf_camel_allCallSegments
,
10174 { "allCallSegments", "camel.allCallSegments",
10175 FT_BYTES
, BASE_NONE
, NULL
, 0,
10177 { &hf_camel_allCallSegmentsWithExtension
,
10178 { "allCallSegmentsWithExtension", "camel.allCallSegmentsWithExtension_element",
10179 FT_NONE
, BASE_NONE
, NULL
, 0,
10181 { &hf_camel_bcsmEvents
,
10182 { "bcsmEvents", "camel.bcsmEvents",
10183 FT_UINT32
, BASE_DEC
, NULL
, 0,
10184 "SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent", HFILL
}},
10185 { &hf_camel_bcsmEvents_item
,
10186 { "BCSMEvent", "camel.BCSMEvent_element",
10187 FT_NONE
, BASE_NONE
, NULL
, 0,
10189 { &hf_camel_timerID
,
10190 { "timerID", "camel.timerID",
10191 FT_UINT32
, BASE_DEC
, VALS(camel_TimerID_vals
), 0,
10193 { &hf_camel_timervalue
,
10194 { "timervalue", "camel.timervalue",
10195 FT_UINT32
, BASE_DEC
, NULL
, 0,
10197 { &hf_camel_sCIBillingChargingCharacteristics
,
10198 { "sCIBillingChargingCharacteristics", "camel.sCIBillingChargingCharacteristics",
10199 FT_BYTES
, BASE_NONE
, NULL
, 0,
10201 { &hf_camel_legToBeSplit
,
10202 { "legToBeSplit", "camel.legToBeSplit",
10203 FT_UINT32
, BASE_DEC
, VALS(inap_LegID_vals
), 0,
10205 { &hf_camel_chargingCharacteristics
,
10206 { "chargingCharacteristics", "camel.chargingCharacteristics",
10207 FT_UINT32
, BASE_DEC
, VALS(camel_ChargingCharacteristics_vals
), 0,
10209 { &hf_camel_applyChargingGPRS_tariffSwitchInterval
,
10210 { "tariffSwitchInterval", "camel.tariffSwitchInterval",
10211 FT_UINT32
, BASE_DEC
, NULL
, 0,
10212 "INTEGER_1_86400", HFILL
}},
10213 { &hf_camel_chargingResult
,
10214 { "chargingResult", "camel.chargingResult",
10215 FT_UINT32
, BASE_DEC
, VALS(camel_ChargingResult_vals
), 0,
10217 { &hf_camel_active
,
10218 { "active", "camel.active",
10219 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
10220 "BOOLEAN", HFILL
}},
10221 { &hf_camel_chargingRollOver
,
10222 { "chargingRollOver", "camel.chargingRollOver",
10223 FT_UINT32
, BASE_DEC
, VALS(camel_ChargingRollOver_vals
), 0,
10226 { "pdpID", "camel.pdpID",
10227 FT_BYTES
, BASE_NONE
, NULL
, 0,
10229 { &hf_camel_gPRSCause
,
10230 { "gPRSCause", "camel.gPRSCause",
10231 FT_BYTES
, BASE_NONE
, NULL
, 0,
10233 { &hf_camel_miscGPRSInfo
,
10234 { "miscGPRSInfo", "camel.miscGPRSInfo_element",
10235 FT_NONE
, BASE_NONE
, NULL
, 0,
10236 "MiscCallInfo", HFILL
}},
10237 { &hf_camel_gPRSEventSpecificInformation
,
10238 { "gPRSEventSpecificInformation", "camel.gPRSEventSpecificInformation",
10239 FT_UINT32
, BASE_DEC
, VALS(camel_GPRSEventSpecificInformation_vals
), 0,
10241 { &hf_camel_mSISDN
,
10242 { "mSISDN", "camel.mSISDN",
10243 FT_BYTES
, BASE_NONE
, NULL
, 0,
10244 "ISDN_AddressString", HFILL
}},
10245 { &hf_camel_gPRSMSClass
,
10246 { "gPRSMSClass", "camel.gPRSMSClass_element",
10247 FT_NONE
, BASE_NONE
, NULL
, 0,
10249 { &hf_camel_sGSNCapabilities
,
10250 { "sGSNCapabilities", "camel.sGSNCapabilities",
10251 FT_BYTES
, BASE_NONE
, NULL
, 0,
10253 { &hf_camel_gprsCause
,
10254 { "gprsCause", "camel.gprsCause",
10255 FT_BYTES
, BASE_NONE
, NULL
, 0,
10257 { &hf_camel_gPRSEvent
,
10258 { "gPRSEvent", "camel.gPRSEvent",
10259 FT_UINT32
, BASE_DEC
, NULL
, 0,
10260 "SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent", HFILL
}},
10261 { &hf_camel_gPRSEvent_item
,
10262 { "GPRSEvent", "camel.GPRSEvent_element",
10263 FT_NONE
, BASE_NONE
, NULL
, 0,
10265 { &hf_camel_sCIGPRSBillingChargingCharacteristics
,
10266 { "sCIGPRSBillingChargingCharacteristics", "camel.sCIGPRSBillingChargingCharacteristics",
10267 FT_BYTES
, BASE_NONE
, NULL
, 0,
10269 { &hf_camel_callingPartysNumber
,
10270 { "callingPartysNumber", "camel.callingPartysNumber",
10271 FT_BYTES
, BASE_NONE
, NULL
, 0,
10272 "SMS_AddressString", HFILL
}},
10273 { &hf_camel_destinationSubscriberNumber
,
10274 { "destinationSubscriberNumber", "camel.destinationSubscriberNumber",
10275 FT_BYTES
, BASE_NONE
, NULL
, 0,
10276 "CalledPartyBCDNumber", HFILL
}},
10277 { &hf_camel_sMSCAddress
,
10278 { "sMSCAddress", "camel.sMSCAddress",
10279 FT_BYTES
, BASE_NONE
, NULL
, 0,
10280 "ISDN_AddressString", HFILL
}},
10281 { &hf_camel_eventSpecificInformationSMS
,
10282 { "eventSpecificInformationSMS", "camel.eventSpecificInformationSMS",
10283 FT_UINT32
, BASE_DEC
, VALS(camel_EventSpecificInformationSMS_vals
), 0,
10285 { &hf_camel_callingPartyNumber_01
,
10286 { "callingPartyNumber", "camel.callingPartyNumber",
10287 FT_BYTES
, BASE_NONE
, NULL
, 0,
10288 "SMS_AddressString", HFILL
}},
10289 { &hf_camel_locationInformationMSC
,
10290 { "locationInformationMSC", "camel.locationInformationMSC_element",
10291 FT_NONE
, BASE_NONE
, NULL
, 0,
10292 "LocationInformation", HFILL
}},
10293 { &hf_camel_tPShortMessageSpecificInfo
,
10294 { "tPShortMessageSpecificInfo", "camel.tPShortMessageSpecificInfo",
10295 FT_BYTES
, BASE_NONE
, NULL
, 0,
10297 { &hf_camel_tPProtocolIdentifier
,
10298 { "tPProtocolIdentifier", "camel.tPProtocolIdentifier",
10299 FT_BYTES
, BASE_NONE
, NULL
, 0,
10301 { &hf_camel_tPDataCodingScheme
,
10302 { "tPDataCodingScheme", "camel.tPDataCodingScheme",
10303 FT_BYTES
, BASE_NONE
, NULL
, 0,
10305 { &hf_camel_tPValidityPeriod
,
10306 { "tPValidityPeriod", "camel.tPValidityPeriod",
10307 FT_BYTES
, BASE_NONE
, NULL
, 0,
10309 { &hf_camel_smsReferenceNumber
,
10310 { "smsReferenceNumber", "camel.smsReferenceNumber",
10311 FT_BYTES
, BASE_NONE
, NULL
, 0,
10312 "CallReferenceNumber", HFILL
}},
10313 { &hf_camel_calledPartyNumber_01
,
10314 { "calledPartyNumber", "camel.calledPartyNumber",
10315 FT_BYTES
, BASE_NONE
, NULL
, 0,
10316 "ISDN_AddressString", HFILL
}},
10317 { &hf_camel_sMSEvents
,
10318 { "sMSEvents", "camel.sMSEvents",
10319 FT_UINT32
, BASE_DEC
, NULL
, 0,
10320 "SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent", HFILL
}},
10321 { &hf_camel_sMSEvents_item
,
10322 { "SMSEvent", "camel.SMSEvent_element",
10323 FT_NONE
, BASE_NONE
, NULL
, 0,
10325 { &hf_camel_extensions_01
,
10326 { "extensions", "camel.extensions",
10327 FT_UINT32
, BASE_DEC
, NULL
, 0,
10328 "SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField", HFILL
}},
10329 { &hf_camel_extensions_item
,
10330 { "ExtensionField", "camel.ExtensionField_element",
10331 FT_NONE
, BASE_NONE
, NULL
, 0,
10333 { &hf_camel_na_info
,
10334 { "na-info", "camel.na_info_element",
10335 FT_NONE
, BASE_NONE
, NULL
, 0,
10337 { &hf_camel_naCarrierInformation
,
10338 { "naCarrierInformation", "camel.naCarrierInformation_element",
10339 FT_NONE
, BASE_NONE
, NULL
, 0,
10341 { &hf_camel_naCarrierId
,
10342 { "naCarrierId", "camel.naCarrierId",
10343 FT_BYTES
, BASE_NONE
, NULL
, 0,
10344 "NAEA_CIC", HFILL
}},
10345 { &hf_camel_naCICSelectionType
,
10346 { "naCICSelectionType", "camel.naCICSelectionType",
10347 FT_BYTES
, BASE_NONE
, NULL
, 0,
10348 "NACarrierSelectionInfo", HFILL
}},
10349 { &hf_camel_naChargeNumber
,
10350 { "naChargeNumber", "camel.naChargeNumber",
10351 FT_BYTES
, BASE_NONE
, NULL
, 0,
10353 { &hf_camel_timeDurationCharging_01
,
10354 { "timeDurationCharging", "camel.timeDurationCharging_element",
10355 FT_NONE
, BASE_NONE
, NULL
, 0,
10356 "T_timeDurationCharging_01", HFILL
}},
10357 { &hf_camel_releaseIfdurationExceeded_01
,
10358 { "releaseIfdurationExceeded", "camel.releaseIfdurationExceeded_element",
10359 FT_NONE
, BASE_NONE
, NULL
, 0,
10361 { &hf_camel_tariffSwitchInterval
,
10362 { "tariffSwitchInterval", "camel.tariffSwitchInterval",
10363 FT_UINT32
, BASE_DEC
, NULL
, 0,
10364 "INTEGER_1_86400", HFILL
}},
10365 { &hf_camel_tone_01
,
10366 { "tone", "camel.tone",
10367 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
10368 "BOOLEAN", HFILL
}},
10370 { "local", "camel.local",
10371 FT_INT32
, BASE_DEC
, VALS(camel_opr_code_strings
), 0,
10373 { &hf_camel_global
,
10374 { "global", "camel.global",
10375 FT_OID
, BASE_NONE
, NULL
, 0,
10377 { &hf_camel_invoke
,
10378 { "invoke", "camel.invoke_element",
10379 FT_NONE
, BASE_NONE
, NULL
, 0,
10381 { &hf_camel_returnResult
,
10382 { "returnResult", "camel.returnResult_element",
10383 FT_NONE
, BASE_NONE
, NULL
, 0,
10385 { &hf_camel_returnError
,
10386 { "returnError", "camel.returnError_element",
10387 FT_NONE
, BASE_NONE
, NULL
, 0,
10389 { &hf_camel_reject
,
10390 { "reject", "camel.reject_element",
10391 FT_NONE
, BASE_NONE
, NULL
, 0,
10393 { &hf_camel_invokeId
,
10394 { "invokeId", "camel.invokeId",
10395 FT_UINT32
, BASE_DEC
, VALS(camel_InvokeId_vals
), 0,
10397 { &hf_camel_linkedId
,
10398 { "linkedId", "camel.linkedId",
10399 FT_UINT32
, BASE_DEC
, VALS(camel_T_linkedId_vals
), 0,
10401 { &hf_camel_linkedIdPresent
,
10402 { "present", "camel.present",
10403 FT_INT32
, BASE_DEC
, NULL
, 0,
10404 "T_linkedIdPresent", HFILL
}},
10405 { &hf_camel_absent
,
10406 { "absent", "camel.absent_element",
10407 FT_NONE
, BASE_NONE
, NULL
, 0,
10409 { &hf_camel_opcode
,
10410 { "opcode", "camel.opcode",
10411 FT_UINT32
, BASE_DEC
, VALS(camel_Code_vals
), 0,
10413 { &hf_camel_argument
,
10414 { "argument", "camel.argument_element",
10415 FT_NONE
, BASE_NONE
, NULL
, 0,
10417 { &hf_camel_result
,
10418 { "result", "camel.result_element",
10419 FT_NONE
, BASE_NONE
, NULL
, 0,
10421 { &hf_camel_resultArgument
,
10422 { "result", "camel.result_element",
10423 FT_NONE
, BASE_NONE
, NULL
, 0,
10424 "ResultArgument", HFILL
}},
10425 { &hf_camel_errcode
,
10426 { "errcode", "camel.errcode",
10427 FT_UINT32
, BASE_DEC
, VALS(camel_Code_vals
), 0,
10429 { &hf_camel_parameter
,
10430 { "parameter", "camel.parameter_element",
10431 FT_NONE
, BASE_NONE
, NULL
, 0,
10433 { &hf_camel_problem
,
10434 { "problem", "camel.problem",
10435 FT_UINT32
, BASE_DEC
, VALS(camel_T_problem_vals
), 0,
10437 { &hf_camel_general
,
10438 { "general", "camel.general",
10439 FT_INT32
, BASE_DEC
, VALS(camel_GeneralProblem_vals
), 0,
10440 "GeneralProblem", HFILL
}},
10441 { &hf_camel_invokeProblem
,
10442 { "invoke", "camel.invoke",
10443 FT_INT32
, BASE_DEC
, VALS(camel_InvokeProblem_vals
), 0,
10444 "InvokeProblem", HFILL
}},
10445 { &hf_camel_problemReturnResult
,
10446 { "returnResult", "camel.returnResult",
10447 FT_INT32
, BASE_DEC
, VALS(camel_ReturnResultProblem_vals
), 0,
10448 "ReturnResultProblem", HFILL
}},
10449 { &hf_camel_returnErrorProblem
,
10450 { "returnError", "camel.returnError",
10451 FT_INT32
, BASE_DEC
, VALS(camel_ReturnErrorProblem_vals
), 0,
10452 "ReturnErrorProblem", HFILL
}},
10453 { &hf_camel_present
,
10454 { "present", "camel.present",
10455 FT_INT32
, BASE_DEC
, NULL
, 0,
10456 "INTEGER", HFILL
}},
10457 { &hf_camel_InvokeId_present
,
10458 { "InvokeId.present", "camel.InvokeId_present",
10459 FT_INT32
, BASE_DEC
, NULL
, 0,
10460 "InvokeId_present", HFILL
}},
10463 /* List of subtrees */
10464 static int *ett
[] = {
10466 &ett_camelisup_parameter
,
10467 &ett_camel_AccessPointName
,
10468 &ett_camel_pdptypenumber
,
10470 &ett_camel_RPcause
,
10472 &ett_camel_calledpartybcdnumber
,
10473 &ett_camel_callingpartynumber
,
10474 &ett_camel_originalcalledpartyid
,
10475 &ett_camel_redirectingpartyid
,
10476 &ett_camel_locationnumber
,
10477 &ett_camel_additionalcallingpartynumber
,
10478 &ett_camel_calledAddressValue
,
10479 &ett_camel_callingAddressValue
,
10480 &ett_camel_assistingSSPIPRoutingAddress
,
10481 &ett_camel_correlationID
,
10482 &ett_camel_dTMFDigitsCompleted
,
10483 &ett_camel_dTMFDigitsTimeOut
,
10485 &ett_camel_digitsResponse
,
10486 &ett_camel_timeandtimezone
,
10488 &ett_camel_AChChargingAddress
,
10489 &ett_camel_AOCBeforeAnswer
,
10490 &ett_camel_AOCGPRS
,
10491 &ett_camel_AOCSubsequent
,
10492 &ett_camel_AudibleIndicator
,
10493 &ett_camel_BackwardServiceInteractionInd
,
10494 &ett_camel_BasicGapCriteria
,
10495 &ett_camel_T_calledAddressAndService
,
10496 &ett_camel_T_callingAddressAndService
,
10497 &ett_camel_BCSMEvent
,
10498 &ett_camel_BCSM_Failure
,
10499 &ett_camel_BearerCapability
,
10501 &ett_camel_BurstList
,
10502 &ett_camel_CAI_GSM0224
,
10503 &ett_camel_CallSegmentFailure
,
10504 &ett_camel_CallSegmentToCancel
,
10505 &ett_camel_CAMEL_AChBillingChargingCharacteristics
,
10506 &ett_camel_T_timeDurationCharging
,
10507 &ett_camel_CAMEL_CallResult
,
10508 &ett_camel_T_timeDurationChargingResult
,
10509 &ett_camel_CAMEL_FCIBillingChargingCharacteristics
,
10510 &ett_camel_T_fci_fCIBCCCAMELsequence1
,
10511 &ett_camel_CAMEL_FCIGPRSBillingChargingCharacteristics
,
10512 &ett_camel_T_fciGPRS_fCIBCCCAMELsequence1
,
10513 &ett_camel_CAMEL_FCISMSBillingChargingCharacteristics
,
10514 &ett_camel_T_fciSMS_fCIBCCCAMELsequence1
,
10515 &ett_camel_CAMEL_SCIBillingChargingCharacteristics
,
10516 &ett_camel_CAMEL_SCIBillingChargingCharacteristicsAlt
,
10517 &ett_camel_CAMEL_SCIGPRSBillingChargingCharacteristics
,
10518 &ett_camel_ChangeOfPositionControlInfo
,
10519 &ett_camel_ChangeOfLocation
,
10520 &ett_camel_ChangeOfLocationAlt
,
10521 &ett_camel_ChargingCharacteristics
,
10522 &ett_camel_ChargingResult
,
10523 &ett_camel_ChargingRollOver
,
10524 &ett_camel_CollectedDigits
,
10525 &ett_camel_CollectedInfo
,
10526 &ett_camel_CompoundCriteria
,
10527 &ett_camel_DestinationRoutingAddress
,
10528 &ett_camel_DpSpecificCriteria
,
10529 &ett_camel_DpSpecificCriteriaAlt
,
10530 &ett_camel_DpSpecificInfoAlt
,
10531 &ett_camel_T_oServiceChangeSpecificInfo
,
10532 &ett_camel_T_tServiceChangeSpecificInfo
,
10533 &ett_camel_T_collectedInfoSpecificInfo
,
10534 &ett_camel_ElapsedTime
,
10535 &ett_camel_T_timeGPRSIfTariffSwitch
,
10536 &ett_camel_ElapsedTimeRollOver
,
10537 &ett_camel_T_rO_TimeGPRSIfTariffSwitch
,
10538 &ett_camel_EndUserAddress
,
10539 &ett_camel_EventSpecificInformationBCSM
,
10540 &ett_camel_T_routeSelectFailureSpecificInfo
,
10541 &ett_camel_T_oCalledPartyBusySpecificInfo
,
10542 &ett_camel_T_oNoAnswerSpecificInfo
,
10543 &ett_camel_T_oAnswerSpecificInfo
,
10544 &ett_camel_T_oMidCallSpecificInfo
,
10545 &ett_camel_T_omidCallEvents
,
10546 &ett_camel_T_oDisconnectSpecificInfo
,
10547 &ett_camel_T_tBusySpecificInfo
,
10548 &ett_camel_T_tNoAnswerSpecificInfo
,
10549 &ett_camel_T_tAnswerSpecificInfo
,
10550 &ett_camel_T_tMidCallSpecificInfo
,
10551 &ett_camel_T_tmidCallEvents
,
10552 &ett_camel_T_tDisconnectSpecificInfo
,
10553 &ett_camel_T_oTermSeizedSpecificInfo
,
10554 &ett_camel_T_callAcceptedSpecificInfo
,
10555 &ett_camel_T_oAbandonSpecificInfo
,
10556 &ett_camel_T_oChangeOfPositionSpecificInfo
,
10557 &ett_camel_T_tChangeOfPositionSpecificInfo
,
10558 &ett_camel_EventSpecificInformationSMS
,
10559 &ett_camel_T_o_smsFailureSpecificInfo
,
10560 &ett_camel_T_o_smsSubmissionSpecificInfo
,
10561 &ett_camel_T_t_smsFailureSpecificInfo
,
10562 &ett_camel_T_t_smsDeliverySpecificInfo
,
10563 &ett_camel_Extensions
,
10564 &ett_camel_ExtensionField
,
10565 &ett_camel_ForwardServiceInteractionInd
,
10566 &ett_camel_GapCriteria
,
10567 &ett_camel_GapIndicators
,
10568 &ett_camel_GapOnService
,
10569 &ett_camel_GapTreatment
,
10570 &ett_camel_GenericNumbers
,
10571 &ett_camel_GPRS_QoS
,
10572 &ett_camel_GPRS_QoS_Extension
,
10573 &ett_camel_GPRSEvent
,
10574 &ett_camel_GPRSEventSpecificInformation
,
10575 &ett_camel_T_attachChangeOfPositionSpecificInformation
,
10576 &ett_camel_T_pdp_ContextchangeOfPositionSpecificInformation
,
10577 &ett_camel_T_detachSpecificInformation
,
10578 &ett_camel_T_disconnectSpecificInformation
,
10579 &ett_camel_T_pDPContextEstablishmentSpecificInformation
,
10580 &ett_camel_T_pDPContextEstablishmentAcknowledgementSpecificInformation
,
10581 &ett_camel_InbandInfo
,
10582 &ett_camel_InformationToSend
,
10583 &ett_camel_LegOrCallSegment
,
10584 &ett_camel_LocationInformationGPRS
,
10585 &ett_camel_MessageID
,
10587 &ett_camel_SEQUENCE_SIZE_1_bound__numOfMessageIDs_OF_Integer4
,
10588 &ett_camel_T_variableMessage
,
10589 &ett_camel_SEQUENCE_SIZE_1_5_OF_VariablePart
,
10590 &ett_camel_MetDPCriteriaList
,
10591 &ett_camel_MetDPCriterion
,
10592 &ett_camel_MetDPCriterionAlt
,
10593 &ett_camel_MidCallControlInfo
,
10594 &ett_camel_QualityOfService
,
10595 &ett_camel_ReceivingSideID
,
10596 &ett_camel_RequestedInformationList
,
10597 &ett_camel_RequestedInformationTypeList
,
10598 &ett_camel_RequestedInformation
,
10599 &ett_camel_RequestedInformationValue
,
10600 &ett_camel_SendingSideID
,
10601 &ett_camel_ServiceInteractionIndicatorsTwo
,
10602 &ett_camel_SMSEvent
,
10603 &ett_camel_TimeIfTariffSwitch
,
10604 &ett_camel_TimeInformation
,
10606 &ett_camel_TransferredVolume
,
10607 &ett_camel_T_volumeIfTariffSwitch
,
10608 &ett_camel_TransferredVolumeRollOver
,
10609 &ett_camel_T_rO_VolumeIfTariffSwitch
,
10610 &ett_camel_VariablePart
,
10611 &ett_camel_PAR_cancelFailed
,
10612 &ett_camel_CAP_GPRS_ReferenceNumber
,
10613 &ett_camel_PlayAnnouncementArg
,
10614 &ett_camel_PromptAndCollectUserInformationArg
,
10615 &ett_camel_ReceivedInformationArg
,
10616 &ett_camel_SpecializedResourceReportArg
,
10617 &ett_camel_ApplyChargingArg
,
10618 &ett_camel_AssistRequestInstructionsArg
,
10619 &ett_camel_CallGapArg
,
10620 &ett_camel_CallInformationReportArg
,
10621 &ett_camel_CallInformationRequestArg
,
10622 &ett_camel_CancelArg
,
10623 &ett_camel_CollectInformationArg
,
10624 &ett_camel_ConnectArg
,
10625 &ett_camel_ConnectToResourceArg
,
10626 &ett_camel_T_resourceAddress
,
10627 &ett_camel_ContinueWithArgumentArg
,
10628 &ett_camel_ContinueWithArgumentArgExtension
,
10629 &ett_camel_DisconnectForwardConnectionWithArgumentArg
,
10630 &ett_camel_DisconnectLegArg
,
10631 &ett_camel_EntityReleasedArg
,
10632 &ett_camel_EstablishTemporaryConnectionArg
,
10633 &ett_camel_EventReportBCSMArg
,
10634 &ett_camel_InitialDPArg
,
10635 &ett_camel_InitialDPArgExtension
,
10636 &ett_camel_InitiateCallAttemptArg
,
10637 &ett_camel_InitiateCallAttemptRes
,
10638 &ett_camel_MoveLegArg
,
10639 &ett_camel_PlayToneArg
,
10640 &ett_camel_ReleaseCallArg
,
10641 &ett_camel_AllCallSegmentsWithExtension
,
10642 &ett_camel_RequestReportBCSMEventArg
,
10643 &ett_camel_SEQUENCE_SIZE_1_bound__numOfBCSMEvents_OF_BCSMEvent
,
10644 &ett_camel_ResetTimerArg
,
10645 &ett_camel_SendChargingInformationArg
,
10646 &ett_camel_SplitLegArg
,
10647 &ett_camel_ApplyChargingGPRSArg
,
10648 &ett_camel_ApplyChargingReportGPRSArg
,
10649 &ett_camel_CancelGPRSArg
,
10650 &ett_camel_ConnectGPRSArg
,
10651 &ett_camel_ContinueGPRSArg
,
10652 &ett_camel_EntityReleasedGPRSArg
,
10653 &ett_camel_EventReportGPRSArg
,
10654 &ett_camel_InitialDPGPRSArg
,
10655 &ett_camel_ReleaseGPRSArg
,
10656 &ett_camel_RequestReportGPRSEventArg
,
10657 &ett_camel_SEQUENCE_SIZE_1_bound__numOfGPRSEvents_OF_GPRSEvent
,
10658 &ett_camel_ResetTimerGPRSArg
,
10659 &ett_camel_SendChargingInformationGPRSArg
,
10660 &ett_camel_ConnectSMSArg
,
10661 &ett_camel_EventReportSMSArg
,
10662 &ett_camel_InitialDPSMSArg
,
10663 &ett_camel_RequestReportSMSEventArg
,
10664 &ett_camel_SEQUENCE_SIZE_1_bound__numOfSMSEvents_OF_SMSEvent
,
10665 &ett_camel_ResetTimerSMSArg
,
10666 &ett_camel_EstablishTemporaryConnectionArgV2
,
10667 &ett_camel_SEQUENCE_SIZE_1_numOfExtensions_OF_ExtensionField
,
10668 &ett_camel_InitialDPArgExtensionV2
,
10669 &ett_camel_NACarrierInformation
,
10670 &ett_camel_NA_Info
,
10671 &ett_camel_CAMEL_AChBillingChargingCharacteristicsV2
,
10672 &ett_camel_T_timeDurationCharging_01
,
10673 &ett_camel_ReleaseIfDurationExceeded
,
10677 &ett_camel_T_linkedId
,
10678 &ett_camel_ReturnResult
,
10679 &ett_camel_T_result
,
10680 &ett_camel_ReturnError
,
10682 &ett_camel_T_problem
,
10683 &ett_camel_InvokeId
,
10686 static ei_register_info ei
[] = {
10687 { &ei_camel_unknown_invokeData
, { "camel.unknown.invokeData", PI_MALFORMED
, PI_WARN
, "Unknown invokeData", EXPFILL
}},
10688 { &ei_camel_unknown_returnResultData
, { "camel.unknown.returnResultData", PI_MALFORMED
, PI_WARN
, "Unknown returnResultData", EXPFILL
}},
10689 { &ei_camel_unknown_returnErrorData
, { "camel.unknown.returnErrorData", PI_MALFORMED
, PI_WARN
, "Unknown returnErrorData", EXPFILL
}},
10690 { &ei_camel_par_wrong_length
, { "camel.par_wrong_length", PI_PROTOCOL
, PI_ERROR
, "Wrong length of parameter", EXPFILL
}},
10691 { &ei_camel_bcd_not_digit
, { "camel.bcd_not_digit", PI_MALFORMED
, PI_WARN
, "BCD number contains a value that is not a digit", EXPFILL
}},
10694 expert_module_t
* expert_camel
;
10696 static tap_param camel_stat_params
[] = {
10697 { PARAM_FILTER
, "filter", "Filter", NULL
, true }
10700 static stat_tap_table_ui camel_stat_table
= {
10701 REGISTER_TELEPHONY_GROUP_GSM
,
10702 "CAMEL Messages and Response Status",
10708 camel_stat_free_table_item
,
10710 array_length(camel_stat_fields
), camel_stat_fields
,
10711 array_length(camel_stat_params
), camel_stat_params
,
10716 /* Register protocol */
10717 proto_camel
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
10719 camel_handle
= register_dissector("camel", dissect_camel
, proto_camel
);
10720 camel_v1_handle
= register_dissector("camel-v1", dissect_camel_v1
, proto_camel
);
10721 camel_v2_handle
= register_dissector("camel-v2", dissect_camel_v2
, proto_camel
);
10722 camel_v3_handle
= register_dissector("camel-v3", dissect_camel_v3
, proto_camel
);
10723 camel_v4_handle
= register_dissector("camel-v4", dissect_camel_v4
, proto_camel
);
10725 proto_register_field_array(proto_camel
, hf
, array_length(hf
));
10726 proto_register_subtree_array(ett
, array_length(ett
));
10727 expert_camel
= expert_register_protocol(proto_camel
);
10728 expert_register_field_array(expert_camel
, ei
, array_length(ei
));
10730 rose_ctx_init(&camel_rose_ctx
);
10732 /* Register dissector tables */
10733 camel_rose_ctx
.arg_local_dissector_table
= register_dissector_table("camel.ros.local.arg",
10734 "CAMEL Operation Argument (local opcode)", proto_camel
,
10735 FT_UINT32
, BASE_HEX
);
10736 camel_rose_ctx
.res_local_dissector_table
= register_dissector_table("camel.ros.local.res",
10737 "CAMEL Operation Result (local opcode)", proto_camel
,
10738 FT_UINT32
, BASE_HEX
);
10739 camel_rose_ctx
.err_local_dissector_table
= register_dissector_table("camel.ros.local.err",
10740 "CAMEL Error (local opcode)", proto_camel
,
10741 FT_UINT32
, BASE_HEX
);
10743 /* Register our configuration options, particularly our SSNs */
10744 /* Set default SSNs */
10745 range_convert_str(wmem_epan_scope(), &global_ssn_range
, "146", MAX_SSN
);
10747 camel_module
= prefs_register_protocol(proto_camel
, proto_reg_handoff_camel
);
10749 prefs_register_enum_preference(camel_module
, "date.format", "Date Format",
10750 "The date format: (DD/MM) or (MM/DD)",
10751 &date_format
, date_options
, false);
10754 prefs_register_range_preference(camel_module
, "tcap.ssn",
10756 "TCAP Subsystem numbers used for Camel",
10757 &global_ssn_range
, MAX_SSN
);
10759 prefs_register_obsolete_preference(camel_module
, "srt");
10761 prefs_register_bool_preference(camel_module
, "persistentsrt",
10762 "Persistent stats for SRT",
10763 "Statistics for Response Time",
10764 &gcamel_PersistentSRT
);
10766 /* Routine for statistic */
10767 register_init_routine(&camelsrt_init_routine
);
10769 /* create new hash-table for SRT */
10770 srt_calls
= wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), camelsrt_call_hash
, camelsrt_call_equal
);
10772 camel_tap
=register_tap(PSNAME
);
10774 register_srt_table(proto_camel
, PSNAME
, 1, camelstat_packet
, camelstat_init
, NULL
);
10775 register_stat_tap_table_ui(&camel_stat_table
);
10782 * c-basic-offset: 2
10784 * indent-tabs-mode: nil
10787 * ex: set shiftwidth=2 tabstop=8 expandtab:
10788 * :indentSize=2:tabSize=8:noTabs=true: