aboutsummaryrefslogtreecommitdiffstats
path: root/asn1
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2011-02-02 17:00:19 +0000
committerAnders Broman <anders.broman@ericsson.com>2011-02-02 17:00:19 +0000
commit115dfa550cf2156f42d55b0dbe3732e2766f7e6b (patch)
treef82db994adaa0c5882bd102db4b8e8ee03ec2d9a /asn1
parentb52d7750613dbe1688ad4c380daa92ee3e6a7722 (diff)
Routines to dissect GPRS CDR's tranported in GTP'
svn path=/trunk/; revision=35756
Diffstat (limited to 'asn1')
-rw-r--r--asn1/gprscdr/3GPPGenericChargingDataTypes.asn432
-rw-r--r--asn1/gprscdr/GenericChargingDataTypes.asn455
-rw-r--r--asn1/gprscdr/Makefile.am26
-rw-r--r--asn1/gprscdr/Makefile.common56
-rw-r--r--asn1/gprscdr/Makefile.nmake29
-rw-r--r--asn1/gprscdr/gprscdr.cnf32
-rw-r--r--asn1/gprscdr/packet-gprscdr-template.c78
-rw-r--r--asn1/gprscdr/packet-gprscdr-template.h34
8 files changed, 1142 insertions, 0 deletions
diff --git a/asn1/gprscdr/3GPPGenericChargingDataTypes.asn b/asn1/gprscdr/3GPPGenericChargingDataTypes.asn
new file mode 100644
index 0000000000..a58cd54f94
--- /dev/null
+++ b/asn1/gprscdr/3GPPGenericChargingDataTypes.asn
@@ -0,0 +1,432 @@
+-- $Id$
+-- 3GPP TS 32.298 V6.1.0 (2005-09)
+TGPPGenericChargingDataTypes {itu-t identified-organization (4) etsi(0) mobileDomain (0) gsmUmtsNetwork (5) charging (0) asn1Module (0) genericChargingDataTypes (0) version1 (1)}
+-- Editor’s Note: what is the correct structure of the OID?
+
+
+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)
+}
+
+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/GenericChargingDataTypes.asn b/asn1/gprscdr/GenericChargingDataTypes.asn
new file mode 100644
index 0000000000..20339c369a
--- /dev/null
+++ b/asn1/gprscdr/GenericChargingDataTypes.asn
@@ -0,0 +1,455 @@
+-- $Id$
+-- 3GPP TS 32.298 V9.6.0 (2010-12)
+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 [214]
+
+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 [214]
+
+DestinationRoutingAddress
+FROM CAP-DataTypes { itu-t identified-organization (4) etsi (0) mobileDomain (0)
+gsm-Network (1) modules (3) cap-datatypes (52) version1 (0) }
+-- from TS 29.078 [217]
+
+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 [214]
+
+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 [214]
+
+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 [214]
+--
+
+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 [310]
+--
+
+ObjectInstance
+FROM CMIP-1 {joint-iso-itu-t ms (9) cmip (1) version1 (1) protocol (3)}
+--
+-- from Rec. X.2ab[304] Editor’s note: clarify if this definition is still needed. It appears that it ends in Nirvana.
+
+-- WS imports localy
+--ManagementExtension
+--FROM Attribute-ASN1Module {joint-iso-itu-t ms (9) smi (3) part2 (2) asn1Module (2) 1}
+--
+-- from Rec. X.721 [305] 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 Rec. X.2cd[306]. 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 Nirvana.
+-- ;
+------------------------------------------------------------------------------
+--
+-- 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 [208].
+-- 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 TS 32.250[10] – TS 32.275 [35]
+
+CalledNumber ::= BCDDirectoryNumber
+
+RecordType ::= 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),
+ 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 30..62 are MMS specific.
+-- The contents are defined in TS 32.270 [30]
+--
+ mMO1SRecord (30),
+ mMO4FRqRecord (31),
+ mMO4FRsRecord (32),
+ mMO4DRecord (33),
+ mMO1DRecord (34),
+ mMO4RRecord (35),
+ mMO1RRecord (36),
+ mMOMDRecord (37),
+ mMR4FRecord (38),
+ mMR1NRqRecord (39),
+ mMR1NRsRecord (40),
+ mMR1RtRecord (41),
+ 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, 70, 82 are IMS specific.
+-- The contents are defined in TS 32.260 [20]
+--
+ sCSCFRecord (63),
+ pCSCFRecord (64),
+ iCSCFRecord (65),
+ mRFCRecord (66),
+ mGCFRecord (67),
+ bGCFRecord (68),
+ aSRecord (69),
+ eCSCFRecord (70),
+ iBCFRecord (82),
+--
+-- 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,86 are MBMS specific.
+-- The contents are defined in TS 32.251 [11]
+-- Record values 76,77 and 86 are MBMS bearer context specific
+--
+ sgsnMBMSRecord (76),
+ ggsnMBMSRecord (77),
+ gwMBMSRecord (86),
+
+--
+-- 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 [32]
+--
+ pPFRecord (80),
+ cPFRecord (81),
+
+-- Record values 84..85 are EPC specific.
+-- The contents are defined in TS 32.251 [11]
+--
+ sGWRecord (84),
+ pGWRecord (85),
+--
+-- Record Value 83 is MMTel specific.
+-- The contents are defined in TS 32.275 [35]
+--
+ mMTelRecord (83)
+}
+
+CallingNumber ::= BCDDirectoryNumber
+
+CallReference ::= INTEGER
+
+CellId ::= OCTET STRING (SIZE(2))
+--
+-- Coded according to TS 24.008 [208]
+--
+
+ChargeIndicator ::= INTEGER
+{
+ noCharge (0),
+ charge (1)
+}
+
+Diagnostics ::= CHOICE
+{
+ gsm0408Cause [0] INTEGER,
+ -- See TS 24.008 [208]
+ 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 [214].
+ itu-tQ767Cause [2] INTEGER,
+ -- See Q.767 [309]
+ 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 [214]
+ unauthorizedLCSClientCause [6] UnauthorizedLCSClient-Diagnostic
+ -- see TS 29.002 [214]
+}
+
+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, TS 49.031 [227]
+--
+
+LCSClientIdentity ::= SEQUENCE
+{
+ lcsClientExternalID [0] LCSClientExternalID OPTIONAL,
+ lcsClientDialedByMS [1] AddressString OPTIONAL,
+ lcsClientInternalID [2] LCSClientInternalID OPTIONAL
+}
+
+LCSQoSInfo ::= OCTET STRING (SIZE(4))
+--
+-- See LCS QoS IE, TS 49.031 [227]
+--
+
+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,
+ mCC-MNC [2] MCC-MNC OPTIONAL
+}
+
+LocationAreaCode ::= OCTET STRING (SIZE(2))
+--
+-- See TS 24.008 [208]
+--
+
+MCC-MNC ::= OCTET STRING (SIZE(3))
+--
+-- See TS 24.008 [208]
+--
+
+ManagementExtensions ::= SET OF ManagementExtension
+
+MessageReference ::= OCTET STRING
+
+MscNo ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSISDN ::= ISDN-AddressString
+--
+-- See TS 23.003 [200]
+--
+
+MSTimeZone ::= OCTET STRING (SIZE (2))
+--
+-- 1.Octet: Time Zone and 2. Octet: Daylight saving time, see TS 29.060 [215]
+--
+
+NodeAddress ::= CHOICE
+{
+ iPAddress [0] IPAddress,
+ domainName [1] GraphicString
+}
+
+PositioningData ::= OCTET STRING (SIZE(1..33))
+--
+-- See Positioning Data IE (octet 3..n), TS 49.031 [227]
+--
+
+RecordingEntity ::= AddressString
+
+ServiceContextID ::= UTF8String
+
+ServiceSpecificInfo ::= SEQUENCE
+{
+ serviceSpecificData [0] GraphicString OPTIONAL,
+ serviceSpecificType [1] INTEGER OPTIONAL
+}
+
+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 [201].
+-- This encoding includes type of number and numbering plan indication
+-- together with the address value range.
+--
+
+SubscriptionID ::= SET
+{
+ subscriptionIDType [0] SubscriptionIDType,
+ subscriptionIDData [1] UTF8String
+}
+
+SubscriptionIDType ::= ENUMERATED
+{
+ eND-USER-E164 (0),
+ eND-USER-IMSI (1),
+ eND-USER-SIP-URI (2),
+ eND-USER-NAI (3),
+ eND-USER-PRIVATE (4)
+}
+
+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.am b/asn1/gprscdr/Makefile.am
new file mode 100644
index 0000000000..462af31e88
--- /dev/null
+++ b/asn1/gprscdr/Makefile.am
@@ -0,0 +1,26 @@
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../Makefile.preinc
+include Makefile.common
+include ../Makefile.inc
+
diff --git a/asn1/gprscdr/Makefile.common b/asn1/gprscdr/Makefile.common
new file mode 100644
index 0000000000..02a2b57ae0
--- /dev/null
+++ b/asn1/gprscdr/Makefile.common
@@ -0,0 +1,56 @@
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+PROTOCOL_NAME=gprscdr
+
+DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c \
+ packet-$(PROTOCOL_NAME).h
+
+EXPORT_FILES = \
+ $(PROTOCOL_NAME)-exp.cnf
+
+ASN_FILE_LIST = \
+ 3GPPGenericChargingDataTypes.asn \
+ GPRSChargingDataTypes.asn
+
+# The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
+# files do not exist for all protocols: Please add/remove as required.
+EXTRA_DIST = \
+ Makefile.nmake \
+ $(ASN_FILE_LIST) \
+ packet-$(PROTOCOL_NAME)-template.c \
+ packet-$(PROTOCOL_NAME)-template.h \
+ $(PROTOCOL_NAME).cnf
+
+SRC_FILES = \
+ $(EXT_ASN_FILE_LIST) \
+ $(EXTRA_DIST)
+
+A2W_FLAGS= -b -e
+
+EXTRA_CNF=../gsm_map/gsm_map-exp.cnf
+
+../gsm_map/gsm_map-exp.cnf:
+ (cd ../gsm_map && $(MAKE_CNF_EXPORT))
+
+
+
diff --git a/asn1/gprscdr/Makefile.nmake b/asn1/gprscdr/Makefile.nmake
new file mode 100644
index 0000000000..5a32997c60
--- /dev/null
+++ b/asn1/gprscdr/Makefile.nmake
@@ -0,0 +1,29 @@
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# $Id$
+#
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+include ../../config.nmake
+include ../Makefile.preinc.nmake
+include Makefile.common
+include ../Makefile.inc.nmake
+
diff --git a/asn1/gprscdr/gprscdr.cnf b/asn1/gprscdr/gprscdr.cnf
new file mode 100644
index 0000000000..89546a261d
--- /dev/null
+++ b/asn1/gprscdr/gprscdr.cnf
@@ -0,0 +1,32 @@
+# gprscdr.cnf
+# Anders Broman 2011
+# $Id$
+
+#.IMPORT ../gsm_map/gsm_map-exp.cnf
+
+#.MODULE
+
+#.EXPORTS
+GPRSCallEventRecord
+GPRSCallEventRecord_PDU
+
+#.CLASS ATTRIBUTE
+&id ObjectIdentifierType
+&Value
+
+#.CLASS CONTEXT
+&id ObjectIdentifierType
+&Value
+
+#.PDU_NEW
+GPRSCallEventRecord
+
+
+#.FN_BODY ManagementExtension/information
+
+ proto_tree_add_text(tree, tvb, offset, -1, "Not dissected");
+
+#.TYPE_ATTR
+IPBinaryAddress/iPBinV4Address TYPE = FT_IPv4 DISPLAY = BASE_NONE
+IPBinaryAddress/iPBinV6Address TYPE = FT_IPv6 DISPLAY = BASE_NONE
+#.END
diff --git a/asn1/gprscdr/packet-gprscdr-template.c b/asn1/gprscdr/packet-gprscdr-template.c
new file mode 100644
index 0000000000..7ddecc5d4d
--- /dev/null
+++ b/asn1/gprscdr/packet-gprscdr-template.c
@@ -0,0 +1,78 @@
+/* packet-gprscdr-template.c
+ * Copyright 2011 , Anders Broman <anders.broman [AT] ericsson.com>
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * References: 3GPP TS 32.298
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/asn1.h>
+
+#include "packet-ber.h"
+#include "packet-gsm_map.h"
+#include "packet-gprscdr.h"
+
+#define PNAME "GPRS CDR"
+#define PSNAME "GPRSCDR"
+#define PFNAME "gprscdr"
+
+/* Define the GPRS CDR proto */
+static int proto_gprscdr = -1;
+
+#include "packet-gprscdr-hf.c"
+
+static int ett_gprscdr = -1;
+#include "packet-gprscdr-ett.c"
+
+static dissector_handle_t gprscdr_handle;
+
+#include "packet-gprscdr-fn.c"
+
+
+
+/* Register all the bits needed with the filtering engine */
+void
+proto_register_gprscdr(void)
+{
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-gprscdr-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_gprscdr,
+#include "packet-gprscdr-ettarr.c"
+ };
+
+ proto_gprscdr = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ proto_register_field_array(proto_gprscdr, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+/* The registration hand-off routine */
+
diff --git a/asn1/gprscdr/packet-gprscdr-template.h b/asn1/gprscdr/packet-gprscdr-template.h
new file mode 100644
index 0000000000..946581d1d9
--- /dev/null
+++ b/asn1/gprscdr/packet-gprscdr-template.h
@@ -0,0 +1,34 @@
+/* packet-gprscdr.h
+ * Routines for gprscdr packet dissection
+ * Copyright 2011, Anders Broman <anders.broman@ericsson.com>
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_GPRSCDR_H
+#define PACKET_GPRSCDR_H
+
+
+#include "packet-gprscdr-exp.h"
+
+#endif /* PACKET_GPRSCDR_H */
+
+