8 Charging Data Record Structure

12.153GPPGeneral Packet Radio Service (GPRS)GPRS ChargingRelease 1997TS

8.1 ASN.1 definitions for CDR information

Within the current GSM 12-series of specifications the ASN.1 definitions are based on X.208 [40] which has been superseded by X.680. This newer version not only includes new features but also removes some that were present in X.208. It was agreed that where possible, the GPRS work would be based on those ASN.1 features that were common to both. However, where necessary, the new features in X.680 [41] be used in some places. X.208 feature that are no longer in X.680 will not be used.

Changes (enhancements) in GSM1205-DataTypes:

CallEventRecordType ::= INTEGER

{

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),

mtTraceRecord (16),

termCAMELIntRecord (17),

sgsnPDPRecord (18),

ggsnPDPRecord (19),

sgsnMMRecord (20),

sgsnSMORecord (21),

sgsnSMTRecord (22)

}

GPRS_Charging-DataTypes { … }

DEFINITIONS IMPLICIT TAGS ::=

BEGIN

— EXPORTS everything

IMPORTS

CellId, Classmark, Diagnostics, CallDuration, ManagementExtensions, TimeStamp, MSISDN, LocationAreaCode, MessageReference, RecordingEntity, SMSResult

FROM GSM1205-DataTypes{ ccitt (0) identified-organization (4) etsi(0) mobileDomain (0) gsmOperation-Maintenance (3) moduleId (3) gsm-12-05 (5) InformationModel (0) asn1Module (2) 1 }

AddressString, ISDN-AddressString, IMSI, IMEI

FROM MAP-CommonDataTypes { ccitt identified-organization (4) etsi(0) mobileDomain (0) gsmNetworkId (1) moduleId (3) map-CommonDataTypes (18) version2 (2) }

ObjectInstance

FROM CMIP-1 {joint-iso-ccitt ms(9) cmip(1) version1 (1) protocol (3)}

ManagementExtension

FROM Attribute-ASN1Module {joint-iso-ccitt ms(9) smi(3) part2 (2) asn1Module(2) 1}

AE-title

FROM ACSE-1 {joint-iso-ccitt association-control(2) abstract-syntax(1) apdus(0) version(1) };

— Note that the syntax of AE-title to be used is from

— CCITT Rec. X.227 / ISO 8650 corrigendum and not "ANY"

——————————————————————————

— CALL AND EVENT RECORDS

——————————————————————————

CallEventRecord ::= CHOICE

{

sgsnPDPRecord [0] SGSNPDPRecord,

ggsnPDPRecord [1] GGSNPDPRecord,

sgsnMMRecord [2] SGSNMMRecord,

sgsnSMORecord [3]SGSNSMORecord,

sgsnSMTRecord [4]SGSNSMTRecord

}

GGSNPDPRecord ::= SET

{

recordType [0] CallEventRecordType,

networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,

anonymousAccessIndicator [2] BOOLEAN OPTIONAL,

servedIMSI [3] IMSI,

ggsnAddress [4] GSNAddress,

chargingID [5] ChargingID,

sgsnAddress [6] SEQUENCE OF GSNAddress,

accessPointName [7] AccessPointName,

pdpType [8] PDPType,

servedPDPAddress [9] PDPAddress,

remotePDPAddress [10] SEQUENCE OF PDPAddress OPTIONAL,

dynamicAddressFlag [11] DynamicAddressFlag OPTIONAL,

listOfTrafficVolumes [12] SEQUENCE OF ChangeOfCharCondition,

recordOpeningTime [13] TimeStamp,

duration [14] CallDuration,

causeForRecClosing [15] CauseForRecClosing,

diagnostics [16] Diagnostics OPTIONAL,

recordSequenceNumber [17] INTEGER OPTIONAL,

nodeID [18] IA5 string OPTIONAL,

recordExtensions [19] ManagementExtensions OPTIONAL,

sgsnPLMNIdentifier [27] PLMN-Id

}

SGSNMMRecord ::= SET

{

recordType [0] CallEventRecordType,

servedIMSI [1] IMSI ,

servedIMEI [2] IMEI OPTIONAL,

sgsnAddress [3] GSNAddress,

msClassmark [4] Classmark OPTIONAL,

routingArea [5] RoutingAreaCode OPTIONAL,

locationAreaCode [6] LocationAreaCode OPTIONAL,

cellIdentity [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] IA5 string OPTIONAL

recordExtensions [16] ManagementExtensions OPTIONAL

}

SGSNPDPRecord ::= SET

{

recordType [0] CallEventRecordType,

networkInitiation [1] NetworkInitiatedPDPContext OPTIONAL,

anonymousAccessIndicator [2] BOOLEAN OPTIONAL,

servedIMSI [3] IMSI ,

servedIMEI [4] IMEI OPTIONAL,

sgsnAddress [5] GSNAddress,

msClassmark [6] Classmark OPTIONAL,

routingArea [7] RoutingAreaCode OPTIONAL,

locationAreaCode [8] LocationAreaCode OPTIONAL,

cellIdentity [9] CellId OPTIONAL,

chargingID [10] ChargingID,

ggsnAddressUsed [11] GSNAddress,

accessPointName [12] AccessPointName,

pdpType [13] PDPType,

servedPDPAddress [14] PDPAddress,

listOfTrafficVolumes [15] SEQUENCE OF ChangeOfCharCondition,

recordOpeningTime [16] TimeStamp,

duration [17] CallDuration,

sgsnChange [18] SGSNChange OPTIONAL,

causeForRecClosing [19] CauseForRecClosing,

diagnostics [20] Diagnostics OPTIONAL,

recordSequenceNumber [21] INTEGER OPTIONAL,

nodeID [22] IA5 string OPTIONAL

recordExtensions [23] ManagementExtensions OPTIONAL

}

SGSNSMORecord ::= SET

{

recordType [0] CallEventRecordType,

servedIMSI [1] IMSI,

servedIMEI [2] IMEI OPTIONAL,

servedMSISDN [3] MSISDN OPTIONAL,

msClassmark [4] Classmark,

serviceCentre [5] AddressString,

recordingEntity [6] RecordingEntity,

locationArea [7] LocationAreaCode OPTIONAL,

routingArea [8] RoutingAreaCode OPTIONAL,

cellIdentity [9] CellId OPTIONAL,

messageReference [10] MessageReference,

originationTime [11] TimeStamp,

smsResult [12] SMSResult OPTIONAL,

recordExtensions [13] ManagementExtensions OPTIONAL

}

SGSNSMTRecord ::= SET

{

recordType [0] CallEventRecordType,

servedIMSI [1] IMSI,

servedIMEI [2] IMEI OPTIONAL,

servedMSISDN [3] MSISDN OPTIONAL,

msClassmark [4] Classmark,

serviceCentre [5] AddressString,

recordingEntity [6] RecordingEntity,

locationArea [7] LocationAreaCode OPTIONAL,

routingArea [8] RoutingAreaCode OPTIONAL,

cellIdentity [9] CellId OPTIONAL,

originationTime [10] TimeStamp,

smsResult [11] SMSResult OPTIONAL,

recordExtensions [12] ManagementExtensions OPTIONAL

}

——————————————————————————

— OBJECT IDENTIFIERS

——————————————————————————

gsm1205InformationModel OBJECT IDENTIFIER ::=

{ ccitt (0) identified-organization (4) etsi (0) mobileDomain (0)

gsm-Operation-Maintenance (3) gsm-12-05 (5) informationModel (0) }

gsm1205ASN1Module OBJECT IDENTIFIER ::=

{ gsm1205InformationModel asn1Module(2) }

gsm1205ManagedObjectClass OBJECT IDENTIFIER ::=

{ gsm1205InformationModel managedObjectClass(3) }

gsm1205Package OBJECT IDENTIFIER ::=

{ gsm1205InformationModel package(4) }

gsm1205NameBinding OBJECT IDENTIFIER ::=

{ gsm1205InformationModel nameBinding(6) }

gsm1205Attribute OBJECT IDENTIFIER ::=

{ gsm1205InformationModel attribute(7) }

gsm1205Action OBJECT IDENTIFIER ::=

{ gsm1205InformationModel action(9) }

gsm1205Notification OBJECT IDENTIFIER ::=

{ gsm1205InformationModel notification(10) }

——————————————————————————

— COMMON DATA TYPES

——————————————————————————

AccessPointName ::= IA5String (SIZE(1..63))

— logical (domain) name in "dot" representation

— see TS GSM 09.60

CauseForRecClosing ::= INTEGER

{

— in GGSN the value sGSNChange should be used for partial record

— generation due to SGSN Address List Overflow

— cause codes 0 to 15 are defined in GSM12.05 as ‘CauseForTerm’ (cause for termination)

normalRelease (0),

abnormalRelease (4),

volumeLimit (16),

timeLimit (17),

sGSNChange (18),

maxChangeCond (19),

managementIntervention (20)

}

ChangeCondition ::= ENUMERATED

{

qoSChange (0),

tariffTime (1),

recordClosure (2)

}

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

}

ChangeLocation ::= SEQUENCE

— used in SGSNMMRecord only

{

locationAreaCode [0] LocationAreaCode,

routingAreaCode [1] RoutingAreaCode,

cellId [2] CellID OPTIONAL,

changeTime [3] TimeStamp

}

ChargingID ::= INTEGER (0..4294967295)

— generated in GGSN, part of PDP context, see TS GSM 03.60

— 0..4294967295 is equivalent to 0..2**32-1

DataVolumeGPRS ::= INTEGER

— The volume of uncompressed 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 GSM 09.02

GSNAddress ::= IPAddress

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))

}

NetworkInitiatedPDPContext ::= BOOLEAN

— Set to true if PDP context was initiated from network side

NodeID ::= IA5 string (SIZE(1..20))

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 GSM 09.60

PLMN-Id ::= OCTET STRING (SIZE (3))

— — This is a 1:1 copy from the Routing Area Identity (RAI) IE specified in TS 09.60

— 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

QoSDelay ::= ENUMERATED

{

— See Quality of service TS GSM 04.08

delayClass1 (0),

delayClass2 (1),

delayClass3 (2),

delayClass4 (3)

}

QoSInformation ::=SEQUENCE

{

reliability [0] QoSReliability,

delay [1] QoSDelay,

precedence [2] QoSPrecedence,

peakThroughput [3] QoSPeakThroughput,

meanThroughput [4] QoSMeanThroughput

}

QoSMeanThroughput ::= ENUMERATED

{

— See Quality of service TS GSM 04.08

bestEffort (0),

mean100octetPh (1),

mean200octetPh (2),

mean500octetPh (3),

mean1000octetPh (4),

mean2000octetPh (5),

mean5000octetPh (6),

mean10000octetPh (7),

mean20000octetPh (8),

mean50000octetPh (9),

mean100000octetPh (10),

mean200000octetPh (11),

mean500000octetPh (12),

mean1000000octetPh (13),

mean2000000octetPh (14),

mean5000000octetPh (15),

mean10000000octetPh (16),

mean20000000octetPh (17),

mean50000000octetPh (18)

}

QoSPeakThroughput ::= ENUMERATED

{

— See Quality of service TS GSM 04.08

unspecified (0),

upTo100OctetPs (1),

upTo200OctetPs (2),

upTo400OctetPs (3),

upTo800OctetPs (4),

upTo1600OctetPs (5),

upTo3200OctetPs (6),

upTo6400OctetPs (7),

upTo12800OctetPs (8),

upTo25600OctetPs (9)

}

QoSPrecedence ::= ENUMERATED

{

— See Quality of service TS GSM 04.08

unspecified (0),

highPriority (1),

normalPriority (2),

lowPriority (3)

}

QoSReliability ::= ENUMERATED

{

— See Quality of service TS GSM 04.08

unspecifiedReliability (0),

acknowledgedGTP (1),

unackGTPAcknowLLC (2),

unackGTPLLCAcknowRLC (3),

unackGTPLLCRLC (4),

unacknowUnprotectedData (5)

}

RoutingAreaCode ::= OCTET STRING (SIZE(1))

— See TS GSM 04.08 —

SGSNChange ::= BOOLEAN

— present if first record after inter SGSN routing area update

— in new SGSN

Annex A (informative):
Change history

This annex lists all phase2+ change requests approved for the present document by ETSI SMG.

SMG#

SMG

tdoc

SMG6

tdoc

VERS

CR

RV

PH

CAT

SUBJECT

Resulting

Version

s26

98-0335

98p044

2.0.0

GSM 12.15 approved at SMG #26

6.0.0

s27

98-0666

98p057&98p058

6.0.0

A002

R97

F

Clarification to "GPRS charging logical architecture figure" and other corrections

6.1.0

s28

P-99-177

6-99-006

6.1.0

A003

R97

F

Modification of the parameter "CauseForRecClosing".

6.2.0

P-99-177

6-99-015

A006

R97

F

Correction of the parameter "CallEventRecordType"

Change history

Date

TSG #

TSG Doc.

CR

Rev

Subject/Comment

Old

New

Dec 2002

S_18

SP-020733

A021

Addition of SGSN’s Mobile Country Code (MCC) and Mobile Network Code (MNC) on G-CDR

6.2.0

6.3.0