PageRenderTime 93ms CodeModel.GetById 3ms RepoModel.GetById 1ms app.codeStats 2ms

/epan/dissectors/packet-camel.c

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