aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-12-06 19:16:10 +0000
committeretxrab <etxrab@f5534014-38df-0310-8fa8-9805f1628bb7>2011-12-06 19:16:10 +0000
commita7420eca137846cae1df15a9e2c0e61b6aa532f6 (patch)
treee87b0c504b7a7dbff4ed7a651e19759c6f07b0d3
parent3b1511547ab48552d2da29b894ec5278249303af (diff)
Update to 3GPP TS 32.298 V6.4.1 (2006-06)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@40105 f5534014-38df-0310-8fa8-9805f1628bb7
-rw-r--r--asn1/gprscdr/GPRSChargingDataTypesV641.asn747
-rw-r--r--asn1/gprscdr/GenericChargingDataTypesV641.asn435
-rw-r--r--asn1/gprscdr/Makefile.common4
-rw-r--r--asn1/gprscdr/gprscdr.cnf15
-rw-r--r--asn1/gprscdr/packet-gprscdr-template.c3
-rw-r--r--epan/dissectors/packet-gprscdr.c643
-rw-r--r--epan/dissectors/packet-gprscdr.h2
7 files changed, 1462 insertions, 387 deletions
diff --git a/asn1/gprscdr/GPRSChargingDataTypesV641.asn b/asn1/gprscdr/GPRSChargingDataTypesV641.asn
new file mode 100644
index 0000000000..b009f884dc
--- /dev/null
+++ b/asn1/gprscdr/GPRSChargingDataTypesV641.asn
@@ -0,0 +1,747 @@
+-- $Id$
+-- 3GPP TS 32.298 V6.4.1 (2006-06)
+--
+GPRSChargingDataTypes {itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) charging (5) gprsChargingDataTypes (2) asn1Module (0) version1 (0)}
+
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+--CallDuration, CalledNumber, CallEventRecordType, CallingNumber, CallReferenceNumber, CellId, DefaultSMS-Handling, Diagnostics, Ext-GeographicalInformation, IMSI, IMEI, IPAddress, ISDN-AddressString, LCSCause, LCSClientExternalID, LCSClientIdentity, LCSClientInternalID, LCSClientType, LCS-Priority, LCSQoSInfo, LevelOfCAMELService, LocalSequenceNumber, LocationAreaAndCell, LocationAreaCode, LocationType, ManagementExtensions, MessageReference, MSISDN, NotificationToMSUser, PositioningData, RecordingEntity, ServiceKey, SMSResult, SmsTpDestinationNumber, TimeStamp
+--FROM GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+
+-- From V670
+RAIdentity
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+-- from TS 29.002 [60]
+
+DefaultGPRS-Handling
+-- RAIdentity
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6)}
+--
+-- from TS 29.002 [60]
+
+LocationMethod
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+-- from TS 24.080 [61]
+
+--MBMS2G3GIndicator, FileRepairSupported, MBMSServiceType, MBMSUserServiceType, RequiredMBMSBearerCapabilities, MBMSSessionIdentity, TMGI, MBMSInformation
+--FROM MBMSChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) mbmsChargingDataTypes (8) asn1Module (0) version1 (0)}
+
+-- Editor’s note: consider moving the above 2 items also into the generic module in order to avoid again copying from external sources.
+;
+
+------------------------------------------------------------------------------
+--
+-- GPRS RECORDS
+--
+------------------------------------------------------------------------------
+
+GPRSCallEventRecord ::= CHOICE
+{
+--
+-- Record values 20..27 are GPRS specific
+-- Record values 29..30 are GPRS and MBMS specific
+
+ sgsnPDPRecord [20] SGSNPDPRecord,
+ ggsnPDPRecord [21] GGSNPDPRecord,
+ sgsnMMRecord [22] SGSNMMRecord,
+ sgsnSMORecord [23] SGSNSMORecord,
+ sgsnSMTRecord [24] SGSNSMTRecord,
+-- sgsnLCTRecord [25] SGSNLCTRecord,
+-- sgsnLCORecord [26] SGSNLCORecord,
+-- sgsnLCNRecord [27] SGSNLCNRecord,
+ egsnPDPRecord [28] EGSNPDPRecord
+-- sgsnMBMSRecord [29] SGSNMBMSRecord,
+-- ggsnMBMSRecord [30] GGSNMBMSRecord
+}
+-- Editor’s note: the acronyms for the LCS record types are not consistent with CS and the "call event record type" notation. They also contradict to the record type definitons below, so alignment is needed.
+
+GGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ ggsnAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ sgsnAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL
+
+}
+
+EGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ ggsnAddress [4] GSNAddress,
+ chargingID [5] ChargingID,
+ sgsnAddress [6] SEQUENCE OF GSNAddress,
+ accessPointNameNI [7] AccessPointNameNI OPTIONAL,
+ pdpType [8] PDPType OPTIONAL,
+ servedPDPAddress [9] PDPAddress OPTIONAL,
+ dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,
+ listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [13] TimeStamp,
+ duration [14] CallDuration,
+ causeForRecClosing [15] CauseForRecClosing,
+ diagnostics [16] Diagnostics OPTIONAL,
+ recordSequenceNumber [17] INTEGER OPTIONAL,
+ nodeID [18] NodeID OPTIONAL,
+ recordExtensions [19] ManagementExtensions OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [21] APNSelectionMode OPTIONAL,
+ servedMSISDN [22] MSISDN OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ iMSsignalingContext [25] NULL OPTIONAL,
+ externalChargingID [26] OCTET STRING OPTIONAL,
+ sgsnPLMNIdentifier [27] PLMN-Id OPTIONAL,
+ pSFurnishChargingInformation [28] PSFurnishChargingInformation OPTIONAL,
+ servedIMEISV [29] IMEI OPTIONAL,
+ rATType [30] RATType OPTIONAL,
+ mSTimeZone [31] MSTimeZone OPTIONAL,
+ userLocationInformation [32] OCTET STRING OPTIONAL,
+ cAMELChargingInformation [33] OCTET STRING OPTIONAL,
+ listOfServiceData [34] SEQUENCE OF ChangeOfServiceCondition OPTIONAL
+}
+
+SGSNMMRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ sgsnAddress [3] GSNAddress OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ routingArea [5] RoutingAreaCode OPTIONAL,
+ locationAreaCode [6] LocationAreaCode OPTIONAL,
+ cellIdentifier [7] CellId OPTIONAL,
+ changeLocation [8] SEQUENCE OF ChangeLocation OPTIONAL,
+ recordOpeningTime [9] TimeStamp,
+ duration [10] CallDuration OPTIONAL,
+ sgsnChange [11] SGSNChange OPTIONAL,
+ causeForRecClosing [12] CauseForRecClosing,
+ diagnostics [13] Diagnostics OPTIONAL,
+ recordSequenceNumber [14] INTEGER OPTIONAL,
+ nodeID [15] NodeID OPTIONAL,
+ recordExtensions [16] ManagementExtensions OPTIONAL,
+ localSequenceNumber [17] LocalSequenceNumber OPTIONAL,
+ servedMSISDN [18] MSISDN OPTIONAL,
+ chargingCharacteristics [19] ChargingCharacteristics,
+ cAMELInformationMM [20] CAMELInformationMM OPTIONAL,
+ rATType [21] RATType OPTIONAL,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL
+}
+
+SGSNPDPRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,
+ servedIMSI [3] IMSI,
+ servedIMEI [4] IMEI OPTIONAL,
+ sgsnAddress [5] GSNAddress OPTIONAL,
+ msNetworkCapability [6] MSNetworkCapability OPTIONAL,
+ routingArea [7] RoutingAreaCode OPTIONAL,
+ locationAreaCode [8] LocationAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ chargingID [10] ChargingID,
+ ggsnAddressUsed [11] GSNAddress,
+ accessPointNameNI [12] AccessPointNameNI OPTIONAL,
+ pdpType [13] PDPType OPTIONAL,
+ servedPDPAddress [14] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition OPTIONAL,
+ recordOpeningTime [16] TimeStamp,
+ duration [17] CallDuration,
+ sgsnChange [18] SGSNChange OPTIONAL,
+ causeForRecClosing [19] CauseForRecClosing,
+ diagnostics [20] Diagnostics OPTIONAL,
+ recordSequenceNumber [21] INTEGER OPTIONAL,
+ nodeID [22] NodeID OPTIONAL,
+ recordExtensions [23] ManagementExtensions OPTIONAL,
+ localSequenceNumber [24] LocalSequenceNumber OPTIONAL,
+ apnSelectionMode [25] APNSelectionMode OPTIONAL,
+ accessPointNameOI [26] AccessPointNameOI OPTIONAL,
+ servedMSISDN [27] MSISDN OPTIONAL,
+ chargingCharacteristics [28] ChargingCharacteristics,
+ rATType [29] RATType OPTIONAL,
+ cAMELInformationPDP [30] CAMELInformationPDP OPTIONAL,
+ rNCUnsentDownlinkVolume [31] DataVolumeGPRS OPTIONAL,
+ chChSelectionMode [32] ChChSelectionMode OPTIONAL,
+ dynamicAddressFlag [33] DynamicAddressFlag OPTIONAL
+}
+
+SGSNSMORecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ messageReference [10] MessageReference,
+ eventTimeStamp [11] TimeStamp,
+ smsResult [12] SMSResult OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ nodeID [14] NodeID OPTIONAL,
+ localSequenceNumber [15] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [16] ChargingCharacteristics,
+ rATType [17] RATType OPTIONAL,
+ destinationNumber [18] SmsTpDestinationNumber OPTIONAL,
+ cAMELInformationSMS [19] CAMELInformationSMS OPTIONAL,
+ chChSelectionMode [20] ChChSelectionMode OPTIONAL
+}
+
+SGSNSMTRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ servedIMSI [1] IMSI,
+ servedIMEI [2] IMEI OPTIONAL,
+ servedMSISDN [3] MSISDN OPTIONAL,
+ msNetworkCapability [4] MSNetworkCapability OPTIONAL,
+ serviceCentre [5] AddressString OPTIONAL,
+ recordingEntity [6] RecordingEntity OPTIONAL,
+ locationArea [7] LocationAreaCode OPTIONAL,
+ routingArea [8] RoutingAreaCode OPTIONAL,
+ cellIdentifier [9] CellId OPTIONAL,
+ eventTimeStamp [10] TimeStamp,
+ smsResult [11] SMSResult OPTIONAL,
+ recordExtensions [12] ManagementExtensions OPTIONAL,
+ nodeID [13] NodeID OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [15] ChargingCharacteristics,
+ rATType [16] RATType OPTIONAL,
+ chChSelectionMode [17] ChChSelectionMode OPTIONAL,
+ cAMELInformationSMS [18] CAMELInformationSMS OPTIONAL
+}
+
+SGSNMTLCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType,
+ lcsClientIdentity [3] LCSClientIdentity,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationType [7] LocationType,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ notificationToMSUser [13] NotificationToMSUser OPTIONAL,
+ privacyOverride [14] NULL OPTIONAL,
+ location [15] LocationAreaAndCell OPTIONAL,
+ routingArea [16] RoutingAreaCode OPTIONAL,
+ locationEstimate [17] Ext-GeographicalInformation OPTIONAL,
+ positioningData [18] PositioningData OPTIONAL,
+ lcsCause [19] LCSCause OPTIONAL,
+ diagnostics [20] Diagnostics OPTIONAL,
+ nodeID [21] NodeID OPTIONAL,
+ localSequenceNumber [22] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [23] ChargingCharacteristics,
+ chChSelectionMode [24] ChChSelectionMode OPTIONAL,
+ rATType [25] RATType OPTIONAL,
+ recordExtensions [26] ManagementExtensions OPTIONAL,
+ causeForRecClosing [27] CauseForRecClosing
+}
+
+SGSNMOLCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ locationMethod [7] LocationMethod,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNNILCSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ recordingEntity [1] RecordingEntity,
+ lcsClientType [2] LCSClientType OPTIONAL,
+ lcsClientIdentity [3] LCSClientIdentity OPTIONAL,
+ servedIMSI [4] IMSI OPTIONAL,
+ servedMSISDN [5] MSISDN OPTIONAL,
+ sgsnAddress [6] GSNAddress OPTIONAL,
+ servedIMEI [7] IMEI OPTIONAL,
+ lcsQos [8] LCSQoSInfo OPTIONAL,
+ lcsPriority [9] LCS-Priority OPTIONAL,
+ mlcNumber [10] ISDN-AddressString OPTIONAL,
+ eventTimeStamp [11] TimeStamp,
+ measurementDuration [12] CallDuration OPTIONAL,
+ location [13] LocationAreaAndCell OPTIONAL,
+ routingArea [14] RoutingAreaCode OPTIONAL,
+ locationEstimate [15] Ext-GeographicalInformation OPTIONAL,
+ positioningData [16] PositioningData OPTIONAL,
+ lcsCause [17] LCSCause OPTIONAL,
+ diagnostics [18] Diagnostics OPTIONAL,
+ nodeID [19] NodeID OPTIONAL,
+ localSequenceNumber [20] LocalSequenceNumber OPTIONAL,
+ chargingCharacteristics [21] ChargingCharacteristics,
+ chChSelectionMode [22] ChChSelectionMode OPTIONAL,
+ rATType [23] RATType OPTIONAL,
+ recordExtensions [24] ManagementExtensions OPTIONAL,
+ causeForRecClosing [25] CauseForRecClosing
+}
+
+SGSNMBMSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofRAs [3] SEQUENCE OF RAIdentity OPTIONAL,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ sgsnPLMNIdentifier [15] PLMN-Id OPTIONAL,
+ numberofReceivingUE [16] Integer OPTIONAL,
+ mbmsInformation [17] MBMSInformation OPTIONAL
+
+}
+
+GGSNMBMSRecord ::= SET
+{
+ recordType [0] CallEventRecordType,
+ ggsnAddress [1] GSNAddress,
+ chargingID [2] ChargingID,
+ listofDownstreamNodes [3] SEQUENCE OF GSNAddress,
+ accessPointNameNI [4] AccessPointNameNI OPTIONAL,
+ servedPDPAddress [5] PDPAddress OPTIONAL,
+ listOfTrafficVolumes [6] SEQUENCE OF ChangeOfMBMSCondition OPTIONAL,
+ recordOpeningTime [7] TimeStamp,
+ duration [8] CallDuration,
+ causeForRecClosing [9] CauseForRecClosing,
+ diagnostics [10] Diagnostics OPTIONAL,
+ recordSequenceNumber [11] INTEGER OPTIONAL,
+ nodeID [12] NodeID OPTIONAL,
+ recordExtensions [13] ManagementExtensions OPTIONAL,
+ localSequenceNumber [14] LocalSequenceNumber OPTIONAL,
+ mbmsInformation [15] MBMSInformation OPTIONAL
+}
+
+------------------------------------------------------------------------------
+--
+-- GPRS DATA TYPES
+--
+------------------------------------------------------------------------------
+
+AccessPointNameNI ::= IA5String (SIZE(1..63))
+ --
+ -- Network Identifier part of APN in dot representation.
+ -- For example, if the complete APN is 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs'
+ -- NI is 'apn1a.apn1b.apn1c' and is presented in this form in the CDR..
+ --
+
+AccessPointNameOI ::= IA5String (SIZE(1..37))
+ --
+ -- Operator Identifier part of APN in dot representation.
+ -- In the 'apn1a.apn1b.apn1c.mnc022.mcc111.gprs' example, the OI portion is 'mnc022.mcc111.gprs'
+ -- and is presented in this form in the CDR.
+ --
+
+APNSelectionMode::= ENUMERATED
+{
+ --
+ -- See Information Elements TS 29.060 [75]
+ --
+ mSorNetworkProvidedSubscriptionVerified (0),
+ mSProvidedSubscriptionNotVerified (1),
+ networkProvidedSubscriptionNotVerified (2)
+}
+
+CAMELAccessPointNameNI ::= AccessPointNameNI
+
+CAMELAccessPointNameOI ::= AccessPointNameOI
+
+CAMELInformationMM ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ numberOfDPEncountered [4] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [5] LevelOfCAMELService OPTIONAL,
+ freeFormatData [6] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [7] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationPDP ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultTransactionHandling [3] DefaultGPRS-Handling OPTIONAL,
+ cAMELAccessPointNameNI [4] CAMELAccessPointNameNI OPTIONAL,
+ cAMELAccessPointNameOI [5] CAMELAccessPointNameOI OPTIONAL,
+ numberOfDPEncountered [6] NumberOfDPEncountered OPTIONAL,
+ levelOfCAMELService [7] LevelOfCAMELService OPTIONAL,
+ freeFormatData [8] FreeFormatData OPTIONAL,
+ fFDAppendIndicator [9] FFDAppendIndicator OPTIONAL
+}
+
+CAMELInformationSMS ::= SET
+{
+ sCFAddress [1] SCFAddress OPTIONAL,
+ serviceKey [2] ServiceKey OPTIONAL,
+ defaultSMSHandling [3] DefaultSMS-Handling OPTIONAL,
+ cAMELCallingPartyNumber [4] CallingNumber OPTIONAL,
+ cAMELDestinationSubscriberNumber [5] SmsTpDestinationNumber OPTIONAL,
+ cAMELSMSCAddress [6] AddressString OPTIONAL,
+ freeFormatData [7] FreeFormatData OPTIONAL,
+ smsReferenceNumber [8] CallReferenceNumber OPTIONAL
+}
+CauseForRecClosing ::= INTEGER
+{
+ --
+ -- In GGSN the value sGSNChange should be used for partial record
+ -- generation due to SGSN Address List Overflow
+ --
+ -- LCS related causes belong to the MAP error causes acc. TS 29.002
+ --
+ -- cause codes 0 to 15 are defined 'CauseForTerm' (cause for termination)
+ --
+ normalRelease (0),
+ abnormalRelease (4),
+ cAMELInitCallRelease (5),
+ volumeLimit (16),
+ timeLimit (17),
+ sGSNChange (18),
+ maxChangeCond (19),
+ managementIntervention (20),
+ intraSGSNIntersystemChange (21),
+ rATChange (22),
+ mSTimeZoneChange (23),
+ unauthorizedRequestingNetwork (52),
+ unauthorizedLCSClient (53),
+ positionMethodFailure (54),
+ unknownOrUnreachableLCSClient (58),
+ listofDownstreamNodeChange (59)
+}
+
+ChangeCondition ::= ENUMERATED
+{
+ --
+ -- Failure Handling values used in eGCDR only
+ --
+ qoSChange (0),
+ tariffTime (1),
+ recordClosure (2),
+ failureHandlingContinueOngoing (3),
+ failureHandlingRetryandTerminateOngoing (4),
+ failureHandlingTerminateOngoing (5)
+}
+
+ChangeOfCharCondition ::= SEQUENCE
+{
+ --
+ -- Used in PDP context record only
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeGPRSUplink [3] DataVolumeGPRS,
+ dataVolumeGPRSDownlink [4] DataVolumeGPRS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp
+}
+ChangeOfMBMSCondition ::= SEQUENCE
+{
+ --
+ -- Used in MBMS record
+ --
+ qosRequested [1] QoSInformation OPTIONAL,
+ qosNegotiated [2] QoSInformation OPTIONAL,
+ dataVolumeMBMSUplink [3] DataVolumeMBMS OPTIONAL,
+ dataVolumeMBMSDownlink [4] DataVolumeMBMS,
+ changeCondition [5] ChangeCondition,
+ changeTime [6] TimeStamp,
+ failureHandlingContinue [7] FailureHandlingContinue OPTIONAL
+}
+ChangeOfServiceCondition ::= SEQUENCE
+{
+ --
+ -- Used for Flow based Charging service data container
+ --
+
+ ratingGroup [1] RatingGroupId,
+ chargingRuleBaseName [2] ChargingRuleBaseName OPTIONAL,
+ resultCode [3] ResultCode OPTIONAL,
+ localSequenceNumber [4] LocalSequenceNumber OPTIONAL,
+ timeOfFirstUsage [5] TimeStamp OPTIONAL,
+ timeOfLastUsage [6] TimeStamp OPTIONAL,
+ timeUsage [7] CallDuration OPTIONAL,
+ serviceConditionChange [8] ServiceConditionChange,
+ qoSInformationNeg [9] QoSInformation OPTIONAL,
+ sgsn-Address [10] GSNAddress OPTIONAL,
+-- sGSNPLMNIdentifier [11] SGSNPLMNIdentifier OPTIONAL, Typo ?
+ sGSNPLMNIdentifier [11] PLMN-Id OPTIONAL,
+ datavolumeFBCUplink [12] DataVolumeGPRS OPTIONAL,
+ datavolumeFBCDownlink [13] DataVolumeGPRS OPTIONAL,
+ timeOfReport [14] TimeStamp,
+ rATType [15] RATType OPTIONAL,
+ failureHandlingContinue [16] FailureHandlingContinue OPTIONAL,
+ serviceIdentifier [17] ServiceIdentifier OPTIONAL,
+ pSFurnishChargingInformation [18] PSFurnishChargingInformation OPTIONAL
+}
+
+-- WS not defined ???
+RatingGroupId ::= OCTET STRING
+
+ChangeLocation ::= SEQUENCE
+{
+ --
+ -- used in SGSNMMRecord only
+ --
+ locationAreaCode [0] LocationAreaCode,
+ routingAreaCode [1] RoutingAreaCode,
+ cellId [2] CellId OPTIONAL,
+ changeTime [3] TimeStamp
+}
+
+ChargingCharacteristics ::= OCTET STRING (SIZE(2))
+ --
+ -- Bit 0-3: Profile Index
+ -- Bit 4-15: For Behavior
+ --
+
+ChargingID ::= INTEGER (0..4294967295)
+ --
+ -- Generated in GGSN, part of PDP context, see TS 23.060
+ -- 0..4294967295 is equivalent to 0..2**32-1
+ --
+
+ChargingRuleBaseName ::= IA5String (SIZE(1..16))
+ --
+ -- identifier for the group of charging rules
+ -- see Charging-Rule-Base-Name AVP as desined in 3GPP TS 29.210 [85]
+
+ChChSelectionMode ::= ENUMERATED
+{
+ sGSNSupplied (0), -- For GGSN only
+ subscriptionSpecific (1), -- For SGSN only
+ aPNSpecific (2), -- For SGSN only
+ homeDefault (3), -- For SGSN and GGSN
+ roamingDefault (4), -- For SGSN and GGSN
+ visitingDefault (5) -- For SGSN and GGSN
+}
+
+DataVolumeGPRS ::= INTEGER
+ --
+ -- The volume of data transferred in octets.
+ --
+
+DynamicAddressFlag ::= BOOLEAN
+
+ETSIAddress ::= AddressString
+ --
+ -- First octet for nature of address, and numbering plan indicator (3 for X.121)
+ -- Other octets TBCD
+ -- See TS 29.002
+ --
+
+FailureHandlingContinue ::= BOOLEAN
+ --
+-- This parameter is included when the failure handling procedure has been executed and new
+-- containers are opened. This parameter shall be included in the first and subsequent
+-- containers opened after the failure handling execution.
+ --
+
+FFDAppendIndicator ::= BOOLEAN
+
+FreeFormatData ::= OCTET STRING (SIZE(1..160))
+ --
+ -- Free formated data as sent in the FurnishChargingInformationGPRS
+ -- see TS 29.078
+ --
+
+GSNAddress ::= IPAddress
+
+MSNetworkCapability ::= OCTET STRING (SIZE(1..8))
+ -- see 3G TS 24.008
+
+NetworkInitiatedPDPContext ::= BOOLEAN
+ --
+ -- Set to true if PDP context was initiated from network side
+ --
+
+NodeID ::= IA5String (SIZE(1..20))
+
+NumberOfDPEncountered ::= INTEGER
+
+PDPAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ eTSIAddress [1] ETSIAddress
+}
+
+PDPType ::= OCTET STRING (SIZE(2))
+ --
+ -- OCTET 1: PDP Type Organization
+ -- OCTET 2: PDP Type Number
+ -- See TS 29.060 [75]
+ --
+
+PLMN-Id ::= OCTET STRING (SIZE (3))
+ --
+ -- This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 29.060 [75]
+ -- as follows:
+ -- OCTET 1 of PLMN-Id = OCTET 2 of RAI
+ -- OCTET 2 of PLMN-Id = OCTET 3 of RAI
+ -- OCTET 3 of PLMN-Id = OCTET 4 of RAI
+
+
+PSFurnishChargingInformation ::= SEQUENCE
+{
+ pSFreeFormatData [1] FreeFormatData,
+ pSFFDAppendIndicator [2] FFDAppendIndicator OPTIONAL
+}
+
+
+QoSInformation ::= OCTET STRING (SIZE (4..15))
+ --
+ -- This octet string
+ -- is a 1:1 copy of the contents (i.e. starting with octet 4) of the "Quality of
+ -- service Profile" information element specified in 3GPP TS 29.060 [75].
+
+RatingGroup ::= INTEGER
+ --
+ -- IP service flow identity (DCCA), range of 4 byte (0...4294967259)
+ -- see Rating-Group AVP as used in 3GPP TS 32.299 [40]
+ --
+
+RATType ::= INTEGER
+ --
+ -- Ihis integer is 1:1 copy of the RAT type value as defined in 3GPP TS 29.060 [75].
+ --
+-- WS Extension
+{
+ reserved (0),
+ utran (1),
+ geran (2),
+ wlan (3),
+ gan (4),
+ hspa-evolution (5)
+}(0..255)
+
+ResultCode ::= INTEGER
+--
+ -- charging protocol return value, range of 4 byte (0...4294967259)
+ -- see Result-Code AVP as used in 3GPP 29.210 [85]
+ --
+
+RoutingAreaCode ::= OCTET STRING (SIZE(1))
+ --
+ -- See TS 24.008 --
+ --
+
+ServiceConditionChange ::= BIT STRING
+{
+qoSChange (0),
+sGSNChange (1),
+sGSNPLMNIDChange (2),
+tariffTimeSwitch (3),
+pDPContextRelease (4),
+rATChange (5),
+serviceIdledOut (6),
+qCTExpiry (7),
+configurationChange (8),
+serviceStop (9),
+timeThresholdReached (10),
+volumeThresholdReached (11),
+timeExhausted (13),
+volumeExhausted (14),
+timeout (15),
+returnRequested (16),
+reauthorisationRequest (17),
+continueOngoingSession (18),
+retryAndTerminateOngoingSession (19),
+terminateOngoingSession (20)
+}
+-- Bits 0-5 are cause values for Gn update/release and TTS
+-- Bits 6-9 are cause values for service stop
+-- Bits 10-14 are cause values for service reauthorization request
+-- Bits 15-17 are cause values for quota return
+-- Bits 18-20: are cause values for Failure Handling Procedure
+-- Bits 21-32: are unused and will always be zero
+-- some of the values are non-exclusive
+-- serviceIdledOut – bit 6 is equivalent to service release by QHT
+
+SCFAddress ::= AddressString
+ --
+ -- See TS 29.002
+ --
+
+ServiceIdentifier ::= INTEGER (0..4294967295)
+ --
+ -- The service identifier is used to identify the service or the service component
+ -- the service data flow relates to. See Service-Identifier AVP as defined
+ -- in 3GPP TS 29.210 [85]
+ --
+
+SGSNChange ::= BOOLEAN
+ --
+ -- present if first record after inter SGSN routing area update
+ -- in new SGSN
+ --
+
+
+END
diff --git a/asn1/gprscdr/GenericChargingDataTypesV641.asn b/asn1/gprscdr/GenericChargingDataTypesV641.asn
new file mode 100644
index 0000000000..89f97851d8
--- /dev/null
+++ b/asn1/gprscdr/GenericChargingDataTypesV641.asn
@@ -0,0 +1,435 @@
+-- $Id$
+-- 3GPP TS 32.298 V6.4.1 (2006-06)
+GenericChargingDataTypes {itu-t (0) identified-organization (4) etsi(0) mobileDomain (0) charging (5) genericChargingDataTypes (0) asn1Module (0) version1 (0)}
+DEFINITIONS IMPLICIT TAGS ::=
+
+BEGIN
+
+-- EXPORTS everything
+
+IMPORTS
+
+CallReferenceNumber, NumberOfForwarding
+FROM MAP-CH-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CH-DataTypes (13) version6 (6) }
+
+-- from TS 29.002 [60]
+
+AddressString, BasicServiceCode, IMSI, IMEI, ISDN-AddressString, LCSClientExternalID, LCSClientInternalID
+FROM MAP-CommonDataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-CommonDataTypes (18) version6 (6) }
+
+-- from TS 29.002 [60]
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+
+DefaultCallHandling, DefaultSMS-Handling, NotificationToMSUser, ServiceKey
+FROM MAP-MS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) map-MS-DataTypes (11) version6 (6) }
+
+-- from TS 29.002 [60]
+
+MOLR-Type
+FROM SS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Access (2) modules (3) ss-DataTypes (2) version7 (7)}
+
+-- from TS 24.080 [61] (editor’s note: correct reference?)
+
+BearerServiceCode
+FROM MAP-BS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-BS-Code (20) version6 (6) }
+
+-- from TS 29.002 [60]
+
+-- Editor’s note: clarify if this should be moved to the CS module
+
+TeleserviceCode
+FROM MAP-TS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-TS-Code (19) version2 (2) }
+
+-- from TS 29.002 [60]
+
+-- Editor’s note: clarify if this should be moved to the CS module
+
+SS-Code
+FROM MAP-SS-Code { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-SS-Code (15) version6 (6) }
+
+-- from TS 29.002 [60]
+
+-- Editor’s note: clarify if this should be moved to the CS module
+
+Ext-GeographicalInformation, LCSClientType, LCS-Priority, LocationType
+FROM MAP-LCS-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-LCS-DataTypes (25) version7 (7)}
+
+-- from TS 29.002 [60]
+
+PositionMethodFailure-Diagnostic, UnauthorizedLCSClient-Diagnostic
+FROM MAP-ER-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0) gsm-Network (1) modules (3) map-ER-DataTypes (17) version7 (7)}
+
+-- from TS 29.002 [60]
+
+-- Editor’s note: "UnauthorizedLCSClient-Diagnostic" was missing in 32.205
+
+BasicService
+FROM Basic-Service-Elements { itu-t identified-organization (4) etsi (0)
+196 basic-service-elements (8) }
+--
+-- from "Digital Subscriber Signalling System No. one (DSS1) protocol"
+-- ETS 300 196 [62]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+
+-- from ITU-T Rec. X.2ab[105] Editor’s note: clarify if this definition is still needed. It appears that it ends in Nirwana.
+
+-- WS localy defined
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+-- from ITU-T Rec. X.721 [106] Editor’s note: clarify if this definition is still needed.
+--AE-title
+--FROM ACSE-1 {joint-iso-itu-t association-control (2) abstract-syntax (1) apdus (0) version (1) }
+--
+-- From ITU-T Rec. X.2cd[107]. Note that the syntax of AE-title to be used is from
+-- ITU-T Rec. X.227 / ISO 8650 corrigendum and not "ANY" Editor’s note: clarify if this definition is still needed. It appears that it ends in Nirwana.
+;
+------------------------------------------------------------------------------
+--
+-- Generic Data Types
+--
+------------------------------------------------------------------------------
+
+BCDDirectoryNumber ::= OCTET STRING
+ -- This type contains the binary coded decimal representation of
+ -- a directory number e.g. calling/called/connected/translated number.
+ -- The encoding of the octet string is in accordance with the
+ -- the elements "Calling party BCD number", "Called party BCD number"
+ -- and "Connected number" defined in TS 24.008.
+ -- This encoding includes type of number and number plan information
+ -- together with a BCD encoded digit string.
+ -- It may also contain both a presentation and screening indicator
+ -- (octet 3a).
+ -- For the avoidance of doubt, this field does not include
+ -- octets 1 and 2, the element name and length, as this would be
+ -- redundant.
+
+CallDuration ::= INTEGER
+ --
+ -- The call duration is counted in seconds.
+ -- For successful calls /sessions / PDP contexts, this is the chargeable duration.
+ -- For call attempts this is the call holding time.
+ --
+
+-- Editor’s note: the explanation above should be removed as proper definitions are required in the individual CDR parameter descriptions in[10] –[31]
+
+CalledNumber ::= BCDDirectoryNumber
+
+CallEventRecordType ::= INTEGER
+{
+
+-- Record values 0..17 are CS specific.
+-- The contents are defined in TS 32.250 [10]
+
+ moCallRecord (0),
+ mtCallRecord (1),
+ roamingRecord (2),
+ incGatewayRecord (3),
+ outGatewayRecord (4),
+ transitCallRecord (5),
+ moSMSRecord (6),
+ mtSMSRecord (7),
+ moSMSIWRecord (8),
+ mtSMSGWRecord (9),
+ ssActionRecord (10),
+ hlrIntRecord (11),
+ locUpdateHLRRecord (12),
+ locUpdateVLRRecord (13),
+ commonEquipRecord (14),
+ moTraceRecord (15), --- used in earlier releases
+ mtTraceRecord (16), --- used in earlier releases
+ termCAMELRecord (17),
+--
+-- Record values 18..22 are GPRS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnPDPRecord (18),
+ ggsnPDPRecord (19),
+ sgsnMMRecord (20),
+ sgsnSMORecord (21),
+ sgsnSMTRecord (22),
+--
+-- Record values 23..25 are CS-LCS specific.
+-- The contents are defined in TS 32.250 [10]
+--
+ mtLCSRecord (23),
+ moLCSRecord (24),
+ niLCSRecord (25),
+--
+-- Record values 26..28 are GPRS-LCS specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sgsnMtLCSRecord (26),
+ sgsnMoLCSRecord (27),
+ sgsnNiLCSRecord (28),
+--
+-- Record values 29..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mmO1SRecord (29),
+ mmO4FRqRecord (30),
+ mmO4FRsRecord (31),
+ mmO4DRecord (32),
+ mmO1DRecord (33),
+ mmO4RRecord (34),
+ mmO1RRecord (35),
+ mmOMDRecord (36),
+ mmR4FRecord (37),
+ mmR1NRqRecord (38),
+ mmR1NRsRecord (39),
+ mmR1RtRecord (40),
+ mmR1AFRecord (42),
+ mmR4DRqRecord (43),
+ mmR4DRsRecord (44),
+ mmR1RRRecord (45),
+ mmR4RRqRecord (46),
+ mmR4RRsRecord (47),
+ mmRMDRecord (48),
+ mmFRecord (49),
+ mmBx1SRecord (50),
+ mmBx1VRecord (51),
+ mmBx1URecord (52),
+ mmBx1DRecord (53),
+ mM7SRecord (54),
+ mM7DRqRecord (55),
+ mM7DRsRecord (56),
+ mM7CRecord (57),
+ mM7RRecord (58),
+ mM7DRRqRecord (59),
+ mM7DRRsRecord (60),
+ mM7RRqRecord (61),
+ mM7RRsRecord (62),
+--
+-- Record values 63..69 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ s-CSCFRecord (63),
+ p-CSCFRecord (64),
+ i-CSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+--
+-- Record values 70 is for Flow based Charging
+-- The contents are defined in TS 32.251 [11]
+--
+ egsnPDPRecord (70),
+--
+-- Record values 71..75 are LCS specific.
+-- The contents are defined in TS 32.271 [31]
+--
+ lCSGMORecord (71),
+ lCSRGMTRecord (72),
+ lCSHGMTRecord (73),
+ lCSVGMTRecord (74),
+ lCSGNIRecord (75),
+--
+-- Record values 76..79 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76 and 77 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+-- And TS 32.273 [33]
+-- Record values 78 and 79 are MBMS service specific
+-- and defined in TS 32.273 [33]
+ subBMSCRecord (78),
+ contentBMSCRecord (79),
+--
+-- Record Values 80..81 are PoC specific.
+-- The contents are defined in TS 32.272 [14]
+--
+ pPFRecord (80),
+ cPFRecord (81)
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+ --
+ -- Coded according to TS 24.008
+ --
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008
+ gsm0902MapErrorValue [1] INTEGER,
+ -- Note: The value to be stored here corresponds to
+ -- the local values defined in the MAP-Errors and
+ -- MAP-DialogueInformation modules, for full details
+ -- see TS 29.002.
+ itu-tQ767Cause [2] INTEGER,
+ -- See ITU-T Q.767
+ networkSpecificCause [3] ManagementExtension,
+ -- To be defined by network operator
+ manufacturerSpecificCause [4] ManagementExtension,
+ -- To be defined by manufacturer
+ positionMethodFailureCause [5] PositionMethodFailure-Diagnostic,
+ -- see TS 29.002
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002
+}
+
+IPAddress ::= CHOICE
+{
+ iPBinaryAddress IPBinaryAddress,
+ iPTextRepresentedAddress IPTextRepresentedAddress
+}
+
+IPBinaryAddress ::= CHOICE
+{
+ iPBinV4Address [0] OCTET STRING (SIZE(4)),
+ iPBinV6Address [1] OCTET STRING (SIZE(16))
+}
+
+IPTextRepresentedAddress ::= CHOICE
+{
+ --
+ -- IP address in the familiar "dot" notation
+ --
+ iPTextV4Address [2] IA5String (SIZE(7..15)),
+ iPTextV6Address [3] IA5String (SIZE(15..45))
+}
+
+LCSCause ::= OCTET STRING (SIZE(1))
+ --
+ -- See LCS Cause Value, 3GPP TS 49.031
+ --
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+ --
+ -- See LCS QoS IE, 3GPP TS 49.031
+ --
+
+LevelOfCAMELService ::= BIT STRING
+{
+ basic (0),
+ callDurationSupervision (1),
+ onlineCharging (2)
+}
+
+LocalSequenceNumber ::= INTEGER (0..4294967295)
+ --
+ -- Sequence number of the record in this node
+ -- 0.. 4294967295 is equivalent to 0..2**32-1, unsigned integer in four octets
+
+LocationAreaAndCell ::= SEQUENCE
+{
+ locationAreaCode [0] LocationAreaCode,
+ cellId [1] CellId
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+ --
+ -- See TS 24.008
+ --
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+ --
+ -- See TS 23.003
+ --
+
+MSISDN ::= ISDN-AddressString
+ --
+ -- See TS 23.003
+ --
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+ --
+ -- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
+ --
+PositioningData ::= OCTET STRING (SIZE(1..33))
+ --
+ -- See Positioning Data IE (octet 3..n), 3GPP TS 49.031
+ --
+
+RecordingEntity ::= AddressString
+
+SMSResult ::= Diagnostics
+
+SmsTpDestinationNumber ::= OCTET STRING
+ --
+ -- This type contains the binary coded decimal representation of
+ -- the SMS address field the encoding of the octet string is in
+ -- accordance with the definition of address fields in TS 23.040.
+ -- This encoding includes type of number and numbering plan indication
+ -- together with the address value range.
+ --
+
+SystemType ::= ENUMERATED
+{
+ --
+ -- "unknown" is not to be used in PS domain.
+ --
+ unknown (0),
+ iuUTRAN (1),
+ gERAN (2)
+}
+
+TimeStamp ::= OCTET STRING (SIZE(9))
+ --
+ -- The contents of this field are a compact form of the UTCTime format
+ -- containing local time plus an offset to universal time. Binary coded
+ -- decimal encoding is employed for the digits to reduce the storage and
+ -- transmission overhead
+ -- e.g. YYMMDDhhmmssShhmm
+ -- where
+ -- YY = Year 00 to 99 BCD encoded
+ -- MM = Month 01 to 12 BCD encoded
+ -- DD = Day 01 to 31 BCD encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ -- ss = second 00 to 59 BCD encoded
+ -- S = Sign 0 = "+", "-" ASCII encoded
+ -- hh = hour 00 to 23 BCD encoded
+ -- mm = minute 00 to 59 BCD encoded
+ --
+
+-- Local WS modification Import ManagementExtension here
+-- as2wrs fault fix:
+DMI-EXTENSION::= CLASS {&id OBJECT IDENTIFIER UNIQUE,
+ &Value
+}WITH SYNTAX {TYPE &Value
+ ID &id
+}
+
+ManagementExtension ::= SEQUENCE {
+ identifier DMI-EXTENSION.&id({ManagementExtensionSet}),
+ significance [1] BOOLEAN DEFAULT FALSE,
+ information
+ [2] DMI-EXTENSION.&Value({ManagementExtensionSet}{@.identifier})
+}
+
+ManagementExtensionSet DMI-EXTENSION ::=
+ {...}
+
+
+
+END
diff --git a/asn1/gprscdr/Makefile.common b/asn1/gprscdr/Makefile.common
index 02dacefbd2..3b3b695ec9 100644
--- a/asn1/gprscdr/Makefile.common
+++ b/asn1/gprscdr/Makefile.common
@@ -26,8 +26,8 @@ EXPORT_FILES = \
$(PROTOCOL_NAME)-exp.cnf
ASN_FILE_LIST = \
- 3GPPGenericChargingDataTypes.asn \
- GPRSChargingDataTypes.asn
+ GenericChargingDataTypesV641.asn \
+ GPRSChargingDataTypesV641.asn
# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
# files do not exist for all protocols: Please add/remove as required.
diff --git a/asn1/gprscdr/gprscdr.cnf b/asn1/gprscdr/gprscdr.cnf
index 0feac3b44d..f785e6e1cb 100644
--- a/asn1/gprscdr/gprscdr.cnf
+++ b/asn1/gprscdr/gprscdr.cnf
@@ -20,6 +20,10 @@ LCSClientIdentity
LCSQoSInfo
LocationAreaAndCell
PositioningData
+# 6.4 If these are needed MBMS asn1 should be added.
+SGSNMBMSRecord
+GGSNMBMSRecord
+ChangeOfMBMSCondition
#.EXPORTS
GPRSCallEventRecord
@@ -106,8 +110,19 @@ GPRSCallEventRecord
data %% 4 * 15,
val_to_str_const(data2, gprscdr_daylight_saving_time_vals, "Unknown")
);
+
+#.FN_BODY PLMN-Id VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
+
+%(DEFAULT_BODY)s
+ if (!parameter_tvb)
+ return offset;
+ subtree = proto_item_add_subtree(actx->created_item, ett_gprscdr_plmn_id);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, TRUE);
+
#.TYPE_ATTR
IPBinaryAddress/iPBinV4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE
IPBinaryAddress/iPBinV6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE
diff --git a/asn1/gprscdr/packet-gprscdr-template.c b/asn1/gprscdr/packet-gprscdr-template.c
index 8528125ee1..17c7367f0a 100644
--- a/asn1/gprscdr/packet-gprscdr-template.c
+++ b/asn1/gprscdr/packet-gprscdr-template.c
@@ -33,6 +33,7 @@
#include "packet-ber.h"
#include "packet-gsm_map.h"
+#include "packet-e212.h"
#include "packet-gprscdr.h"
#define PNAME "GPRS CDR"
@@ -46,6 +47,7 @@ static int proto_gprscdr = -1;
static int ett_gprscdr = -1;
static int ett_gprscdr_timestamp = -1;
+static int ett_gprscdr_plmn_id = -1;
#include "packet-gprscdr-ett.c"
static const value_string gprscdr_daylight_saving_time_vals[] = {
@@ -73,6 +75,7 @@ proto_register_gprscdr(void)
static gint *ett[] = {
&ett_gprscdr,
&ett_gprscdr_timestamp,
+ &ett_gprscdr_plmn_id,
#include "packet-gprscdr-ettarr.c"
};
diff --git a/epan/dissectors/packet-gprscdr.c b/epan/dissectors/packet-gprscdr.c
index 77dc4b3409..2eae899470 100644
--- a/epan/dissectors/packet-gprscdr.c
+++ b/epan/dissectors/packet-gprscdr.c
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gprscdr.c */
-/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors 3GPPGenericChargingDataTypes.asn GPRSChargingDataTypes.asn */
+/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV641.asn GPRSChargingDataTypesV641.asn */
/* Input file: packet-gprscdr-template.c */
@@ -41,6 +41,7 @@
#include "packet-ber.h"
#include "packet-gsm_map.h"
+#include "packet-e212.h"
#include "packet-gprscdr.h"
#define PNAME "GPRS CDR"
@@ -77,8 +78,6 @@ static int hf_gprscdr_sgsnMMRecord = -1; /* SGSNMMRecord */
static int hf_gprscdr_sgsnSMORecord = -1; /* SGSNSMORecord */
static int hf_gprscdr_sgsnSMTRecord = -1; /* SGSNSMTRecord */
static int hf_gprscdr_egsnPDPRecord = -1; /* EGSNPDPRecord */
-static int hf_gprscdr_sgsnMBMSRecord = -1; /* SGSNMBMSRecord */
-static int hf_gprscdr_ggsnMBMSRecord = -1; /* GGSNMBMSRecord */
static int hf_gprscdr_recordType = -1; /* CallEventRecordType */
static int hf_gprscdr_networkInitiation = -1; /* NetworkInitiatedPDPContext */
static int hf_gprscdr_servedIMSI = -1; /* IMSI */
@@ -107,12 +106,12 @@ static int hf_gprscdr_chChSelectionMode = -1; /* ChChSelectionMode */
static int hf_gprscdr_iMSsignalingContext = -1; /* NULL */
static int hf_gprscdr_externalChargingID = -1; /* OCTET_STRING */
static int hf_gprscdr_sgsnPLMNIdentifier = -1; /* PLMN_Id */
-static int hf_gprscdr_pSFurnishChargingInformation = -1; /* PSFurnishChargingInformation */
static int hf_gprscdr_servedIMEISV = -1; /* IMEI */
static int hf_gprscdr_rATType = -1; /* RATType */
static int hf_gprscdr_mSTimeZone = -1; /* MSTimeZone */
static int hf_gprscdr_userLocationInformation = -1; /* OCTET_STRING */
static int hf_gprscdr_cAMELChargingInformation = -1; /* OCTET_STRING */
+static int hf_gprscdr_pSFurnishChargingInformation = -1; /* PSFurnishChargingInformation */
static int hf_gprscdr_listOfServiceData = -1; /* SEQUENCE_OF_ChangeOfServiceCondition */
static int hf_gprscdr_listOfServiceData_item = -1; /* ChangeOfServiceCondition */
static int hf_gprscdr_servedIMEI = -1; /* IMEI */
@@ -137,12 +136,6 @@ static int hf_gprscdr_eventTimeStamp = -1; /* TimeStamp */
static int hf_gprscdr_smsResult = -1; /* SMSResult */
static int hf_gprscdr_destinationNumber = -1; /* SmsTpDestinationNumber */
static int hf_gprscdr_cAMELInformationSMS = -1; /* CAMELInformationSMS */
-static int hf_gprscdr_listofDownstreamNodes = -1; /* SEQUENCE_OF_RouteingAreaCode */
-static int hf_gprscdr_listofDownstreamNodes_item = -1; /* RouteingAreaCode */
-static int hf_gprscdr_numberofReceivingUE = -1; /* INTEGER */
-static int hf_gprscdr_mbmsInformation = -1; /* MBMSInformation */
-static int hf_gprscdr_listofDownstreamNodes_01 = -1; /* SEQUENCE_OF_GSNAddress */
-static int hf_gprscdr_listofDownstreamNodes_item_01 = -1; /* GSNAddress */
static int hf_gprscdr_sCFAddress = -1; /* SCFAddress */
static int hf_gprscdr_serviceKey = -1; /* ServiceKey */
static int hf_gprscdr_defaultTransactionHandling = -1; /* DefaultGPRS_Handling */
@@ -163,45 +156,58 @@ static int hf_gprscdr_dataVolumeGPRSUplink = -1; /* DataVolumeGPRS */
static int hf_gprscdr_dataVolumeGPRSDownlink = -1; /* DataVolumeGPRS */
static int hf_gprscdr_changeCondition = -1; /* ChangeCondition */
static int hf_gprscdr_changeTime = -1; /* TimeStamp */
-static int hf_gprscdr_categoryId = -1; /* CategoryId */
-static int hf_gprscdr_ratingGroupId = -1; /* RatingGroupId */
+static int hf_gprscdr_ratingGroup = -1; /* RatingGroupId */
+static int hf_gprscdr_chargingRuleBaseName = -1; /* ChargingRuleBaseName */
+static int hf_gprscdr_resultCode = -1; /* ResultCode */
static int hf_gprscdr_timeOfFirstUsage = -1; /* TimeStamp */
static int hf_gprscdr_timeOfLastUsage = -1; /* TimeStamp */
static int hf_gprscdr_timeUsage = -1; /* CallDuration */
-static int hf_gprscdr_serviceChangeCause = -1; /* ServiceChangeCause */
+static int hf_gprscdr_serviceConditionChange = -1; /* ServiceConditionChange */
static int hf_gprscdr_qoSInformationNeg = -1; /* QoSInformation */
static int hf_gprscdr_sgsn_Address = -1; /* GSNAddress */
-static int hf_gprscdr_sGSNPLMNIdentifier = -1; /* SGSNPLMNIdentifier */
+static int hf_gprscdr_sGSNPLMNIdentifier = -1; /* PLMN_Id */
static int hf_gprscdr_datavolumeFBCUplink = -1; /* DataVolumeGPRS */
static int hf_gprscdr_datavolumeFBCDownlink = -1; /* DataVolumeGPRS */
static int hf_gprscdr_timeOfReport = -1; /* TimeStamp */
+static int hf_gprscdr_failureHandlingContinue = -1; /* FailureHandlingContinue */
+static int hf_gprscdr_serviceIdentifier = -1; /* ServiceIdentifier */
static int hf_gprscdr_routingAreaCode = -1; /* RoutingAreaCode */
static int hf_gprscdr_cellId = -1; /* CellId */
static int hf_gprscdr_iPAddress = -1; /* IPAddress */
static int hf_gprscdr_eTSIAddress = -1; /* ETSIAddress */
static int hf_gprscdr_pSFreeFormatData = -1; /* FreeFormatData */
static int hf_gprscdr_pSFFDAppendIndicator = -1; /* FFDAppendIndicator */
-static int hf_gprscdr_tMGI = -1; /* TMGI */
-static int hf_gprscdr_mBMSSessionIdentity = -1; /* MBMSSessionIdentity */
-static int hf_gprscdr_mBMSServiceType = -1; /* MBMSServiceType */
-static int hf_gprscdr_mBMSUserServiceType = -1; /* MBMSUserServiceType */
-static int hf_gprscdr_mBMS2G3GIndicator = -1; /* MBMS2G3GIndicator */
-static int hf_gprscdr_fileRepairSupported = -1; /* BOOLEAN */
-static int hf_gprscdr_rAI = -1; /* RoutingAreaCode */
-static int hf_gprscdr_mBMSServiceArea = -1; /* MBMSServiceArea */
-static int hf_gprscdr_requiredMBMSBearerCaps = -1; /* RequiredMBMSBearerCapabilities */
-static int hf_gprscdr_mBMSGWAddress = -1; /* GSNAddress */
-static int hf_gprscdr_cNIPMulticastDistribution = -1; /* CNIPMulticastDistribution */
/* named bits */
static int hf_gprscdr_LevelOfCAMELService_basic = -1;
static int hf_gprscdr_LevelOfCAMELService_callDurationSupervision = -1;
static int hf_gprscdr_LevelOfCAMELService_onlineCharging = -1;
+static int hf_gprscdr_ServiceConditionChange_qoSChange = -1;
+static int hf_gprscdr_ServiceConditionChange_sGSNChange = -1;
+static int hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange = -1;
+static int hf_gprscdr_ServiceConditionChange_tariffTimeSwitch = -1;
+static int hf_gprscdr_ServiceConditionChange_pDPContextRelease = -1;
+static int hf_gprscdr_ServiceConditionChange_rATChange = -1;
+static int hf_gprscdr_ServiceConditionChange_serviceIdledOut = -1;
+static int hf_gprscdr_ServiceConditionChange_qCTExpiry = -1;
+static int hf_gprscdr_ServiceConditionChange_configurationChange = -1;
+static int hf_gprscdr_ServiceConditionChange_serviceStop = -1;
+static int hf_gprscdr_ServiceConditionChange_timeThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChange_volumeThresholdReached = -1;
+static int hf_gprscdr_ServiceConditionChange_timeExhausted = -1;
+static int hf_gprscdr_ServiceConditionChange_volumeExhausted = -1;
+static int hf_gprscdr_ServiceConditionChange_timeout = -1;
+static int hf_gprscdr_ServiceConditionChange_returnRequested = -1;
+static int hf_gprscdr_ServiceConditionChange_reauthorisationRequest = -1;
+static int hf_gprscdr_ServiceConditionChange_continueOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChange_retryAndTerminateOngoingSession = -1;
+static int hf_gprscdr_ServiceConditionChange_terminateOngoingSession = -1;
/*--- End of included file: packet-gprscdr-hf.c ---*/
-#line 46 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 47 "../../asn1/gprscdr/packet-gprscdr-template.c"
static int ett_gprscdr = -1;
static int ett_gprscdr_timestamp = -1;
+static int ett_gprscdr_plmn_id = -1;
/*--- Included file: packet-gprscdr-ett.c ---*/
#line 1 "../../asn1/gprscdr/packet-gprscdr-ett.c"
@@ -223,9 +229,6 @@ static gint ett_gprscdr_SEQUENCE_OF_ChangeLocation = -1;
static gint ett_gprscdr_SGSNPDPRecord = -1;
static gint ett_gprscdr_SGSNSMORecord = -1;
static gint ett_gprscdr_SGSNSMTRecord = -1;
-static gint ett_gprscdr_SGSNMBMSRecord = -1;
-static gint ett_gprscdr_SEQUENCE_OF_RouteingAreaCode = -1;
-static gint ett_gprscdr_GGSNMBMSRecord = -1;
static gint ett_gprscdr_CAMELInformationMM = -1;
static gint ett_gprscdr_CAMELInformationPDP = -1;
static gint ett_gprscdr_CAMELInformationSMS = -1;
@@ -234,10 +237,10 @@ static gint ett_gprscdr_ChangeOfServiceCondition = -1;
static gint ett_gprscdr_ChangeLocation = -1;
static gint ett_gprscdr_PDPAddress = -1;
static gint ett_gprscdr_PSFurnishChargingInformation = -1;
-static gint ett_gprscdr_MBMSInformation = -1;
+static gint ett_gprscdr_ServiceConditionChange = -1;
/*--- End of included file: packet-gprscdr-ett.c ---*/
-#line 50 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 52 "../../asn1/gprscdr/packet-gprscdr-template.c"
static const value_string gprscdr_daylight_saving_time_vals[] = {
{0, "No adjustment"},
@@ -351,6 +354,8 @@ static const value_string gprscdr_CallEventRecordType_vals[] = {
{ 77, "ggsnMBMSRecord" },
{ 78, "subBMSCRecord" },
{ 79, "contentBMSCRecord" },
+ { 80, "pPFRecord" },
+ { 81, "cPFRecord" },
{ 0, NULL }
};
@@ -414,7 +419,7 @@ dissect_gprscdr_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gprscdr_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 41 "../../asn1/gprscdr/gprscdr.cnf"
+#line 45 "../../asn1/gprscdr/gprscdr.cnf"
proto_tree_add_text(tree, tvb, offset, -1, "Not dissected");
@@ -652,7 +657,7 @@ dissect_gprscdr_MSISDN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
dissect_gprscdr_MSTimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 84 "../../asn1/gprscdr/gprscdr.cnf"
+#line 88 "../../asn1/gprscdr/gprscdr.cnf"
/*
*
* 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [75]
@@ -680,8 +685,7 @@ dissect_gprscdr_MSTimeZone(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
data % 4 * 15,
val_to_str_const(data2, gprscdr_daylight_saving_time_vals, "Unknown")
);
-
-
+
return offset;
@@ -719,7 +723,7 @@ dissect_gprscdr_SmsTpDestinationNumber(gboolean implicit_tag _U_, tvbuff_t *tvb
static int
dissect_gprscdr_TimeStamp(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 45 "../../asn1/gprscdr/gprscdr.cnf"
+#line 49 "../../asn1/gprscdr/gprscdr.cnf"
/*
*
* The contents of this field are a compact form of the UTCTime format
@@ -890,6 +894,9 @@ static const value_string gprscdr_ChangeCondition_vals[] = {
{ 0, "qoSChange" },
{ 1, "tariffTime" },
{ 2, "recordClosure" },
+ { 3, "failureHandlingContinueOngoing" },
+ { 4, "failureHandlingRetryandTerminateOngoing" },
+ { 5, "failureHandlingTerminateOngoing" },
{ 0, NULL }
};
@@ -955,6 +962,7 @@ static const value_string gprscdr_CauseForRecClosing_vals[] = {
{ 20, "managementIntervention" },
{ 21, "intraSGSNIntersystemChange" },
{ 22, "rATChange" },
+ { 23, "mSTimeZoneChange" },
{ 52, "unauthorizedRequestingNetwork" },
{ 53, "unauthorizedLCSClient" },
{ 54, "positionMethodFailure" },
@@ -1230,23 +1238,21 @@ dissect_gprscdr_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
dissect_gprscdr_PLMN_Id(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+#line 115 "../../asn1/gprscdr/gprscdr.cnf"
+ tvbuff_t *parameter_tvb;
+ proto_tree *subtree;
- return offset;
-}
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ &parameter_tvb);
-static const ber_sequence_t PSFurnishChargingInformation_sequence[] = {
- { &hf_gprscdr_pSFreeFormatData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_FreeFormatData },
- { &hf_gprscdr_pSFFDAppendIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FFDAppendIndicator },
- { NULL, 0, 0, 0, NULL }
-};
+ if (!parameter_tvb)
+ return offset;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_gprscdr_plmn_id);
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, TRUE);
+
-static int
-dissect_gprscdr_PSFurnishChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
- PSFurnishChargingInformation_sequence, hf_index, ett_gprscdr_PSFurnishChargingInformation);
return offset;
}
@@ -1279,7 +1285,6 @@ static const ber_sequence_t GGSNPDPRecord_set[] = {
{ &hf_gprscdr_iMSsignalingContext, BER_CLASS_CON, 25, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NULL },
{ &hf_gprscdr_externalChargingID, BER_CLASS_CON, 26, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_OCTET_STRING },
{ &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 27, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
- { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 28, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
{ &hf_gprscdr_servedIMEISV, BER_CLASS_CON, 29, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gsm_map_IMEI },
{ &hf_gprscdr_rATType , BER_CLASS_CON, 30, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
{ &hf_gprscdr_mSTimeZone , BER_CLASS_CON, 31, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MSTimeZone },
@@ -1470,11 +1475,16 @@ dissect_gprscdr_SGSNSMTRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
+static const ber_sequence_t PSFurnishChargingInformation_sequence[] = {
+ { &hf_gprscdr_pSFreeFormatData, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_FreeFormatData },
+ { &hf_gprscdr_pSFFDAppendIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FFDAppendIndicator },
+ { NULL, 0, 0, 0, NULL }
+};
static int
-dissect_gprscdr_CategoryId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+dissect_gprscdr_PSFurnishChargingInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
+ PSFurnishChargingInformation_sequence, hf_index, ett_gprscdr_PSFurnishChargingInformation);
return offset;
}
@@ -1483,6 +1493,16 @@ dissect_gprscdr_CategoryId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
dissect_gprscdr_RatingGroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gprscdr_ChargingRuleBaseName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
actx, tree, tvb, offset, hf_index,
NULL);
@@ -1493,39 +1513,86 @@ dissect_gprscdr_RatingGroupId(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_gprscdr_ServiceChangeCause(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+dissect_gprscdr_ResultCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
+static const asn_namedbit ServiceConditionChange_bits[] = {
+ { 0, &hf_gprscdr_ServiceConditionChange_qoSChange, -1, -1, "qoSChange", NULL },
+ { 1, &hf_gprscdr_ServiceConditionChange_sGSNChange, -1, -1, "sGSNChange", NULL },
+ { 2, &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange, -1, -1, "sGSNPLMNIDChange", NULL },
+ { 3, &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch, -1, -1, "tariffTimeSwitch", NULL },
+ { 4, &hf_gprscdr_ServiceConditionChange_pDPContextRelease, -1, -1, "pDPContextRelease", NULL },
+ { 5, &hf_gprscdr_ServiceConditionChange_rATChange, -1, -1, "rATChange", NULL },
+ { 6, &hf_gprscdr_ServiceConditionChange_serviceIdledOut, -1, -1, "serviceIdledOut", NULL },
+ { 7, &hf_gprscdr_ServiceConditionChange_qCTExpiry, -1, -1, "qCTExpiry", NULL },
+ { 8, &hf_gprscdr_ServiceConditionChange_configurationChange, -1, -1, "configurationChange", NULL },
+ { 9, &hf_gprscdr_ServiceConditionChange_serviceStop, -1, -1, "serviceStop", NULL },
+ { 10, &hf_gprscdr_ServiceConditionChange_timeThresholdReached, -1, -1, "timeThresholdReached", NULL },
+ { 11, &hf_gprscdr_ServiceConditionChange_volumeThresholdReached, -1, -1, "volumeThresholdReached", NULL },
+ { 13, &hf_gprscdr_ServiceConditionChange_timeExhausted, -1, -1, "timeExhausted", NULL },
+ { 14, &hf_gprscdr_ServiceConditionChange_volumeExhausted, -1, -1, "volumeExhausted", NULL },
+ { 15, &hf_gprscdr_ServiceConditionChange_timeout, -1, -1, "timeout", NULL },
+ { 16, &hf_gprscdr_ServiceConditionChange_returnRequested, -1, -1, "returnRequested", NULL },
+ { 17, &hf_gprscdr_ServiceConditionChange_reauthorisationRequest, -1, -1, "reauthorisationRequest", NULL },
+ { 18, &hf_gprscdr_ServiceConditionChange_continueOngoingSession, -1, -1, "continueOngoingSession", NULL },
+ { 19, &hf_gprscdr_ServiceConditionChange_retryAndTerminateOngoingSession, -1, -1, "retryAndTerminateOngoingSession", NULL },
+ { 20, &hf_gprscdr_ServiceConditionChange_terminateOngoingSession, -1, -1, "terminateOngoingSession", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
static int
-dissect_gprscdr_SGSNPLMNIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
+dissect_gprscdr_ServiceConditionChange(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+ ServiceConditionChange_bits, hf_index, ett_gprscdr_ServiceConditionChange,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gprscdr_FailureHandlingContinue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gprscdr_ServiceIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
return offset;
}
static const ber_sequence_t ChangeOfServiceCondition_sequence[] = {
- { &hf_gprscdr_categoryId , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_CategoryId },
- { &hf_gprscdr_ratingGroupId, BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
- { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
- { &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 4, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
- { &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 5, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
- { &hf_gprscdr_timeUsage , BER_CLASS_CON, 6, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
- { &hf_gprscdr_serviceChangeCause, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceChangeCause },
- { &hf_gprscdr_qoSInformationNeg, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
- { &hf_gprscdr_sgsn_Address, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
- { &hf_gprscdr_sGSNPLMNIdentifier, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNPLMNIdentifier },
- { &hf_gprscdr_datavolumeFBCUplink, BER_CLASS_CON, 11, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
- { &hf_gprscdr_datavolumeFBCDownlink, BER_CLASS_CON, 12, BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
- { &hf_gprscdr_timeOfReport, BER_CLASS_CON, 13, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
- { &hf_gprscdr_rATType , BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_ratingGroup , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_gprscdr_RatingGroupId },
+ { &hf_gprscdr_chargingRuleBaseName, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingRuleBaseName },
+ { &hf_gprscdr_resultCode , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ResultCode },
+ { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
+ { &hf_gprscdr_timeOfFirstUsage, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_timeOfLastUsage, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_timeUsage , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
+ { &hf_gprscdr_serviceConditionChange, BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceConditionChange },
+ { &hf_gprscdr_qoSInformationNeg, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_QoSInformation },
+ { &hf_gprscdr_sgsn_Address, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
+ { &hf_gprscdr_sGSNPLMNIdentifier, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
+ { &hf_gprscdr_datavolumeFBCUplink, BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_datavolumeFBCDownlink, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_DataVolumeGPRS },
+ { &hf_gprscdr_timeOfReport, BER_CLASS_CON, 14, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
+ { &hf_gprscdr_rATType , BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RATType },
+ { &hf_gprscdr_failureHandlingContinue, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_FailureHandlingContinue },
+ { &hf_gprscdr_serviceIdentifier, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ServiceIdentifier },
+ { &hf_gprscdr_pSFurnishChargingInformation, BER_CLASS_CON, 18, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PSFurnishChargingInformation },
{ NULL, 0, 0, 0, NULL }
};
@@ -1597,218 +1664,6 @@ dissect_gprscdr_EGSNPDPRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-
-static int
-dissect_gprscdr_RouteingAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const ber_sequence_t SEQUENCE_OF_RouteingAreaCode_sequence_of[1] = {
- { &hf_gprscdr_listofDownstreamNodes_item, BER_CLASS_UNI, BER_UNI_TAG_OCTETSTRING, BER_FLAGS_NOOWNTAG, dissect_gprscdr_RouteingAreaCode },
-};
-
-static int
-dissect_gprscdr_SEQUENCE_OF_RouteingAreaCode(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_RouteingAreaCode_sequence_of, hf_index, ett_gprscdr_SEQUENCE_OF_RouteingAreaCode);
-
- return offset;
-}
-
-
-
-static int
-dissect_gprscdr_TMGI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_gprscdr_MBMSSessionIdentity(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const value_string gprscdr_MBMSServiceType_vals[] = {
- { 0, "mULTICAST" },
- { 1, "bROADCAST" },
- { 0, NULL }
-};
-
-
-static int
-dissect_gprscdr_MBMSServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const value_string gprscdr_MBMSUserServiceType_vals[] = {
- { 0, "dOWNLOAD" },
- { 1, "sTREAMING" },
- { 0, NULL }
-};
-
-
-static int
-dissect_gprscdr_MBMSUserServiceType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const value_string gprscdr_MBMS2G3GIndicator_vals[] = {
- { 0, "t2G" },
- { 1, "t3G" },
- { 2, "t2G-AND-3G" },
- { 0, NULL }
-};
-
-
-static int
-dissect_gprscdr_MBMS2G3GIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_gprscdr_MBMSServiceArea(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-
-static int
-dissect_gprscdr_RequiredMBMSBearerCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const value_string gprscdr_CNIPMulticastDistribution_vals[] = {
- { 0, "nO-IP-MULTICAST" },
- { 1, "iP-MULTICAST" },
- { 0, NULL }
-};
-
-
-static int
-dissect_gprscdr_CNIPMulticastDistribution(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
- NULL);
-
- return offset;
-}
-
-
-static const ber_sequence_t MBMSInformation_set[] = {
- { &hf_gprscdr_tMGI , BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_TMGI },
- { &hf_gprscdr_mBMSSessionIdentity, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSSessionIdentity },
- { &hf_gprscdr_mBMSServiceType, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSServiceType },
- { &hf_gprscdr_mBMSUserServiceType, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSUserServiceType },
- { &hf_gprscdr_mBMS2G3GIndicator, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMS2G3GIndicator },
- { &hf_gprscdr_fileRepairSupported, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_BOOLEAN },
- { &hf_gprscdr_rAI , BER_CLASS_CON, 7, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RoutingAreaCode },
- { &hf_gprscdr_mBMSServiceArea, BER_CLASS_CON, 8, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSServiceArea },
- { &hf_gprscdr_requiredMBMSBearerCaps, BER_CLASS_CON, 9, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_RequiredMBMSBearerCapabilities },
- { &hf_gprscdr_mBMSGWAddress, BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
- { &hf_gprscdr_cNIPMulticastDistribution, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_CNIPMulticastDistribution },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_gprscdr_MBMSInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- MBMSInformation_set, hf_index, ett_gprscdr_MBMSInformation);
-
- return offset;
-}
-
-
-static const ber_sequence_t SGSNMBMSRecord_set[] = {
- { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
- { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
- { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
- { &hf_gprscdr_listofDownstreamNodes, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_RouteingAreaCode },
- { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
- { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
- { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
- { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
- { &hf_gprscdr_duration , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
- { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
- { &hf_gprscdr_diagnostics , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
- { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
- { &hf_gprscdr_nodeID , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
- { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
- { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
- { &hf_gprscdr_sgsnPLMNIdentifier, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_PLMN_Id },
- { &hf_gprscdr_numberofReceivingUE, BER_CLASS_CON, 16, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
- { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 17, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_gprscdr_SGSNMBMSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- SGSNMBMSRecord_set, hf_index, ett_gprscdr_SGSNMBMSRecord);
-
- return offset;
-}
-
-
-static const ber_sequence_t GGSNMBMSRecord_set[] = {
- { &hf_gprscdr_recordType , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallEventRecordType },
- { &hf_gprscdr_ggsnAddress , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_GSNAddress },
- { &hf_gprscdr_chargingID , BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_gprscdr_ChargingID },
- { &hf_gprscdr_listofDownstreamNodes_01, BER_CLASS_CON, 3, BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_GSNAddress },
- { &hf_gprscdr_accessPointNameNI, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_AccessPointNameNI },
- { &hf_gprscdr_servedPDPAddress, BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_PDPAddress },
- { &hf_gprscdr_listOfTrafficVolumes, BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_SEQUENCE_OF_ChangeOfCharCondition },
- { &hf_gprscdr_recordOpeningTime, BER_CLASS_CON, 7, BER_FLAGS_IMPLTAG, dissect_gprscdr_TimeStamp },
- { &hf_gprscdr_duration , BER_CLASS_CON, 8, BER_FLAGS_IMPLTAG, dissect_gprscdr_CallDuration },
- { &hf_gprscdr_causeForRecClosing, BER_CLASS_CON, 9, BER_FLAGS_IMPLTAG, dissect_gprscdr_CauseForRecClosing },
- { &hf_gprscdr_diagnostics , BER_CLASS_CON, 10, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_gprscdr_Diagnostics },
- { &hf_gprscdr_recordSequenceNumber, BER_CLASS_CON, 11, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_INTEGER },
- { &hf_gprscdr_nodeID , BER_CLASS_CON, 12, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_NodeID },
- { &hf_gprscdr_recordExtensions, BER_CLASS_CON, 13, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_ManagementExtensions },
- { &hf_gprscdr_localSequenceNumber, BER_CLASS_CON, 14, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_LocalSequenceNumber },
- { &hf_gprscdr_mbmsInformation, BER_CLASS_CON, 15, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_gprscdr_MBMSInformation },
- { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_gprscdr_GGSNMBMSRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
- offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
- GGSNMBMSRecord_set, hf_index, ett_gprscdr_GGSNMBMSRecord);
-
- return offset;
-}
-
-
const value_string gprscdr_GPRSCallEventRecord_vals[] = {
{ 20, "sgsnPDPRecord" },
{ 21, "ggsnPDPRecord" },
@@ -1816,8 +1671,6 @@ const value_string gprscdr_GPRSCallEventRecord_vals[] = {
{ 23, "sgsnSMORecord" },
{ 24, "sgsnSMTRecord" },
{ 28, "egsnPDPRecord" },
- { 29, "sgsnMBMSRecord" },
- { 30, "ggsnMBMSRecord" },
{ 0, NULL }
};
@@ -1828,8 +1681,6 @@ static const ber_choice_t GPRSCallEventRecord_choice[] = {
{ 23, &hf_gprscdr_sgsnSMORecord, BER_CLASS_CON, 23, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMORecord },
{ 24, &hf_gprscdr_sgsnSMTRecord, BER_CLASS_CON, 24, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNSMTRecord },
{ 28, &hf_gprscdr_egsnPDPRecord, BER_CLASS_CON, 28, BER_FLAGS_IMPLTAG, dissect_gprscdr_EGSNPDPRecord },
- { 29, &hf_gprscdr_sgsnMBMSRecord, BER_CLASS_CON, 29, BER_FLAGS_IMPLTAG, dissect_gprscdr_SGSNMBMSRecord },
- { 30, &hf_gprscdr_ggsnMBMSRecord, BER_CLASS_CON, 30, BER_FLAGS_IMPLTAG, dissect_gprscdr_GGSNMBMSRecord },
{ 0, NULL, 0, 0, 0, NULL }
};
@@ -1842,6 +1693,16 @@ dissect_gprscdr_GPRSCallEventRecord(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
return offset;
}
+
+
+static int
+dissect_gprscdr_RatingGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
/*--- PDUs ---*/
int dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
@@ -1854,7 +1715,7 @@ int dissect_gprscdr_GPRSCallEventRecord_PDU(tvbuff_t *tvb _U_, packet_info *pinf
/*--- End of included file: packet-gprscdr-fn.c ---*/
-#line 60 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 62 "../../asn1/gprscdr/packet-gprscdr-template.c"
@@ -1963,14 +1824,6 @@ proto_register_gprscdr(void)
{ "egsnPDPRecord", "gprscdr.egsnPDPRecord",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_gprscdr_sgsnMBMSRecord,
- { "sgsnMBMSRecord", "gprscdr.sgsnMBMSRecord",
- FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_ggsnMBMSRecord,
- { "ggsnMBMSRecord", "gprscdr.ggsnMBMSRecord",
- FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
{ &hf_gprscdr_recordType,
{ "recordType", "gprscdr.recordType",
FT_INT32, BASE_DEC, VALS(gprscdr_CallEventRecordType_vals), 0,
@@ -2083,10 +1936,6 @@ proto_register_gprscdr(void)
{ "sgsnPLMNIdentifier", "gprscdr.sgsnPLMNIdentifier",
FT_BYTES, BASE_NONE, NULL, 0,
"PLMN_Id", HFILL }},
- { &hf_gprscdr_pSFurnishChargingInformation,
- { "pSFurnishChargingInformation", "gprscdr.pSFurnishChargingInformation",
- FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
{ &hf_gprscdr_servedIMEISV,
{ "servedIMEISV", "gprscdr.servedIMEISV",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2107,6 +1956,10 @@ proto_register_gprscdr(void)
{ "cAMELChargingInformation", "gprscdr.cAMELChargingInformation",
FT_BYTES, BASE_NONE, NULL, 0,
"OCTET_STRING", HFILL }},
+ { &hf_gprscdr_pSFurnishChargingInformation,
+ { "pSFurnishChargingInformation", "gprscdr.pSFurnishChargingInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_gprscdr_listOfServiceData,
{ "listOfServiceData", "gprscdr.listOfServiceData",
FT_UINT32, BASE_DEC, NULL, 0,
@@ -2203,30 +2056,6 @@ proto_register_gprscdr(void)
{ "cAMELInformationSMS", "gprscdr.cAMELInformationSMS",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
- { &hf_gprscdr_listofDownstreamNodes,
- { "listofDownstreamNodes", "gprscdr.listofDownstreamNodes",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_RouteingAreaCode", HFILL }},
- { &hf_gprscdr_listofDownstreamNodes_item,
- { "RouteingAreaCode", "gprscdr.RouteingAreaCode",
- FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_numberofReceivingUE,
- { "numberofReceivingUE", "gprscdr.numberofReceivingUE",
- FT_INT32, BASE_DEC, NULL, 0,
- "INTEGER", HFILL }},
- { &hf_gprscdr_mbmsInformation,
- { "mbmsInformation", "gprscdr.mbmsInformation",
- FT_NONE, BASE_NONE, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_listofDownstreamNodes_01,
- { "listofDownstreamNodes", "gprscdr.listofDownstreamNodes",
- FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_GSNAddress", HFILL }},
- { &hf_gprscdr_listofDownstreamNodes_item_01,
- { "GSNAddress", "gprscdr.GSNAddress",
- FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
- NULL, HFILL }},
{ &hf_gprscdr_sCFAddress,
{ "sCFAddress", "gprscdr.sCFAddress",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2307,14 +2136,18 @@ proto_register_gprscdr(void)
{ "changeTime", "gprscdr.changeTime",
FT_BYTES, BASE_NONE, NULL, 0,
"TimeStamp", HFILL }},
- { &hf_gprscdr_categoryId,
- { "categoryId", "gprscdr.categoryId",
- FT_INT32, BASE_DEC, NULL, 0,
- NULL, HFILL }},
- { &hf_gprscdr_ratingGroupId,
- { "ratingGroupId", "gprscdr.ratingGroupId",
+ { &hf_gprscdr_ratingGroup,
+ { "ratingGroup", "gprscdr.ratingGroup",
+ FT_BYTES, BASE_NONE, NULL, 0,
+ "RatingGroupId", HFILL }},
+ { &hf_gprscdr_chargingRuleBaseName,
+ { "chargingRuleBaseName", "gprscdr.chargingRuleBaseName",
FT_STRING, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_gprscdr_resultCode,
+ { "resultCode", "gprscdr.resultCode",
+ FT_INT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_gprscdr_timeOfFirstUsage,
{ "timeOfFirstUsage", "gprscdr.timeOfFirstUsage",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2327,8 +2160,8 @@ proto_register_gprscdr(void)
{ "timeUsage", "gprscdr.timeUsage",
FT_INT32, BASE_DEC, NULL, 0,
"CallDuration", HFILL }},
- { &hf_gprscdr_serviceChangeCause,
- { "serviceChangeCause", "gprscdr.serviceChangeCause",
+ { &hf_gprscdr_serviceConditionChange,
+ { "serviceConditionChange", "gprscdr.serviceConditionChange",
FT_BYTES, BASE_NONE, NULL, 0,
NULL, HFILL }},
{ &hf_gprscdr_qoSInformationNeg,
@@ -2342,7 +2175,7 @@ proto_register_gprscdr(void)
{ &hf_gprscdr_sGSNPLMNIdentifier,
{ "sGSNPLMNIdentifier", "gprscdr.sGSNPLMNIdentifier",
FT_BYTES, BASE_NONE, NULL, 0,
- NULL, HFILL }},
+ "PLMN_Id", HFILL }},
{ &hf_gprscdr_datavolumeFBCUplink,
{ "datavolumeFBCUplink", "gprscdr.datavolumeFBCUplink",
FT_INT32, BASE_DEC, NULL, 0,
@@ -2355,6 +2188,14 @@ proto_register_gprscdr(void)
{ "timeOfReport", "gprscdr.timeOfReport",
FT_BYTES, BASE_NONE, NULL, 0,
"TimeStamp", HFILL }},
+ { &hf_gprscdr_failureHandlingContinue,
+ { "failureHandlingContinue", "gprscdr.failureHandlingContinue",
+ FT_BOOLEAN, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+ { &hf_gprscdr_serviceIdentifier,
+ { "serviceIdentifier", "gprscdr.serviceIdentifier",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
{ &hf_gprscdr_routingAreaCode,
{ "routingAreaCode", "gprscdr.routingAreaCode",
FT_BYTES, BASE_NONE, NULL, 0,
@@ -2379,71 +2220,108 @@ proto_register_gprscdr(void)
{ "pSFFDAppendIndicator", "gprscdr.pSFFDAppendIndicator",
FT_BOOLEAN, BASE_NONE, NULL, 0,
"FFDAppendIndicator", HFILL }},
- { &hf_gprscdr_tMGI,
- { "tMGI", "gprscdr.tMGI",
- FT_BYTES, BASE_NONE, NULL, 0,
+ { &hf_gprscdr_LevelOfCAMELService_basic,
+ { "basic", "gprscdr.basic",
+ FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
- { &hf_gprscdr_mBMSSessionIdentity,
- { "mBMSSessionIdentity", "gprscdr.mBMSSessionIdentity",
- FT_BYTES, BASE_NONE, NULL, 0,
+ { &hf_gprscdr_LevelOfCAMELService_callDurationSupervision,
+ { "callDurationSupervision", "gprscdr.callDurationSupervision",
+ FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
- { &hf_gprscdr_mBMSServiceType,
- { "mBMSServiceType", "gprscdr.mBMSServiceType",
- FT_UINT32, BASE_DEC, VALS(gprscdr_MBMSServiceType_vals), 0,
+ { &hf_gprscdr_LevelOfCAMELService_onlineCharging,
+ { "onlineCharging", "gprscdr.onlineCharging",
+ FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
- { &hf_gprscdr_mBMSUserServiceType,
- { "mBMSUserServiceType", "gprscdr.mBMSUserServiceType",
- FT_UINT32, BASE_DEC, VALS(gprscdr_MBMSUserServiceType_vals), 0,
+ { &hf_gprscdr_ServiceConditionChange_qoSChange,
+ { "qoSChange", "gprscdr.qoSChange",
+ FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
- { &hf_gprscdr_mBMS2G3GIndicator,
- { "mBMS2G3GIndicator", "gprscdr.mBMS2G3GIndicator",
- FT_UINT32, BASE_DEC, VALS(gprscdr_MBMS2G3GIndicator_vals), 0,
+ { &hf_gprscdr_ServiceConditionChange_sGSNChange,
+ { "sGSNChange", "gprscdr.sGSNChange",
+ FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
- { &hf_gprscdr_fileRepairSupported,
- { "fileRepairSupported", "gprscdr.fileRepairSupported",
- FT_BOOLEAN, BASE_NONE, NULL, 0,
- "BOOLEAN", HFILL }},
- { &hf_gprscdr_rAI,
- { "rAI", "gprscdr.rAI",
- FT_BYTES, BASE_NONE, NULL, 0,
- "RoutingAreaCode", HFILL }},
- { &hf_gprscdr_mBMSServiceArea,
- { "mBMSServiceArea", "gprscdr.mBMSServiceArea",
- FT_BYTES, BASE_NONE, NULL, 0,
+ { &hf_gprscdr_ServiceConditionChange_sGSNPLMNIDChange,
+ { "sGSNPLMNIDChange", "gprscdr.sGSNPLMNIDChange",
+ FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
- { &hf_gprscdr_requiredMBMSBearerCaps,
- { "requiredMBMSBearerCaps", "gprscdr.requiredMBMSBearerCaps",
- FT_BYTES, BASE_NONE, NULL, 0,
- "RequiredMBMSBearerCapabilities", HFILL }},
- { &hf_gprscdr_mBMSGWAddress,
- { "mBMSGWAddress", "gprscdr.mBMSGWAddress",
- FT_UINT32, BASE_DEC, VALS(gprscdr_IPAddress_vals), 0,
- "GSNAddress", HFILL }},
- { &hf_gprscdr_cNIPMulticastDistribution,
- { "cNIPMulticastDistribution", "gprscdr.cNIPMulticastDistribution",
- FT_UINT32, BASE_DEC, VALS(gprscdr_CNIPMulticastDistribution_vals), 0,
+ { &hf_gprscdr_ServiceConditionChange_tariffTimeSwitch,
+ { "tariffTimeSwitch", "gprscdr.tariffTimeSwitch",
+ FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }},
- { &hf_gprscdr_LevelOfCAMELService_basic,
- { "basic", "gprscdr.basic",
+ { &hf_gprscdr_ServiceConditionChange_pDPContextRelease,
+ { "pDPContextRelease", "gprscdr.pDPContextRelease",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_rATChange,
+ { "rATChange", "gprscdr.rATChange",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_serviceIdledOut,
+ { "serviceIdledOut", "gprscdr.serviceIdledOut",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_qCTExpiry,
+ { "qCTExpiry", "gprscdr.qCTExpiry",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_configurationChange,
+ { "configurationChange", "gprscdr.configurationChange",
FT_BOOLEAN, 8, NULL, 0x80,
NULL, HFILL }},
- { &hf_gprscdr_LevelOfCAMELService_callDurationSupervision,
- { "callDurationSupervision", "gprscdr.callDurationSupervision",
+ { &hf_gprscdr_ServiceConditionChange_serviceStop,
+ { "serviceStop", "gprscdr.serviceStop",
FT_BOOLEAN, 8, NULL, 0x40,
NULL, HFILL }},
- { &hf_gprscdr_LevelOfCAMELService_onlineCharging,
- { "onlineCharging", "gprscdr.onlineCharging",
+ { &hf_gprscdr_ServiceConditionChange_timeThresholdReached,
+ { "timeThresholdReached", "gprscdr.timeThresholdReached",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_volumeThresholdReached,
+ { "volumeThresholdReached", "gprscdr.volumeThresholdReached",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_timeExhausted,
+ { "timeExhausted", "gprscdr.timeExhausted",
+ FT_BOOLEAN, 8, NULL, 0x04,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_volumeExhausted,
+ { "volumeExhausted", "gprscdr.volumeExhausted",
+ FT_BOOLEAN, 8, NULL, 0x02,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_timeout,
+ { "timeout", "gprscdr.timeout",
+ FT_BOOLEAN, 8, NULL, 0x01,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_returnRequested,
+ { "returnRequested", "gprscdr.returnRequested",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_reauthorisationRequest,
+ { "reauthorisationRequest", "gprscdr.reauthorisationRequest",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_continueOngoingSession,
+ { "continueOngoingSession", "gprscdr.continueOngoingSession",
FT_BOOLEAN, 8, NULL, 0x20,
NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_retryAndTerminateOngoingSession,
+ { "retryAndTerminateOngoingSession", "gprscdr.retryAndTerminateOngoingSession",
+ FT_BOOLEAN, 8, NULL, 0x10,
+ NULL, HFILL }},
+ { &hf_gprscdr_ServiceConditionChange_terminateOngoingSession,
+ { "terminateOngoingSession", "gprscdr.terminateOngoingSession",
+ FT_BOOLEAN, 8, NULL, 0x08,
+ NULL, HFILL }},
/*--- End of included file: packet-gprscdr-hfarr.c ---*/
-#line 70 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 72 "../../asn1/gprscdr/packet-gprscdr-template.c"
};
/* List of subtrees */
static gint *ett[] = {
&ett_gprscdr,
&ett_gprscdr_timestamp,
+ &ett_gprscdr_plmn_id,
/*--- Included file: packet-gprscdr-ettarr.c ---*/
#line 1 "../../asn1/gprscdr/packet-gprscdr-ettarr.c"
@@ -2465,9 +2343,6 @@ proto_register_gprscdr(void)
&ett_gprscdr_SGSNPDPRecord,
&ett_gprscdr_SGSNSMORecord,
&ett_gprscdr_SGSNSMTRecord,
- &ett_gprscdr_SGSNMBMSRecord,
- &ett_gprscdr_SEQUENCE_OF_RouteingAreaCode,
- &ett_gprscdr_GGSNMBMSRecord,
&ett_gprscdr_CAMELInformationMM,
&ett_gprscdr_CAMELInformationPDP,
&ett_gprscdr_CAMELInformationSMS,
@@ -2476,10 +2351,10 @@ proto_register_gprscdr(void)
&ett_gprscdr_ChangeLocation,
&ett_gprscdr_PDPAddress,
&ett_gprscdr_PSFurnishChargingInformation,
- &ett_gprscdr_MBMSInformation,
+ &ett_gprscdr_ServiceConditionChange,
/*--- End of included file: packet-gprscdr-ettarr.c ---*/
-#line 77 "../../asn1/gprscdr/packet-gprscdr-template.c"
+#line 80 "../../asn1/gprscdr/packet-gprscdr-template.c"
};
proto_gprscdr = proto_register_protocol(PNAME, PSNAME, PFNAME);
diff --git a/epan/dissectors/packet-gprscdr.h b/epan/dissectors/packet-gprscdr.h
index 60452a8ec0..c6f5cb900d 100644
--- a/epan/dissectors/packet-gprscdr.h
+++ b/epan/dissectors/packet-gprscdr.h
@@ -1,7 +1,7 @@
/* Do not modify this file. */
/* It is created automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-gprscdr.h */
-/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors 3GPPGenericChargingDataTypes.asn GPRSChargingDataTypes.asn */
+/* ../../tools/asn2wrs.py -b -p gprscdr -c ./gprscdr.cnf -s ./packet-gprscdr-template -D . -O ../../epan/dissectors GenericChargingDataTypesV641.asn GPRSChargingDataTypesV641.asn */
/* Input file: packet-gprscdr-template.h */