GPRS Call Inputs and Mappings

The TAP3 JSON Kafka CDR Consumer requires a specific JSON input format and mapping rules for GPRS call events.

Input Format

The following is an example GPRS call JSON file. The JSON consists of only a subset of GPRS call TAP3 definitions.
{
  "gprsCall": {
    "gprsBasicCallInformation": {
      "gprsChargeableSubscriber": {
        "chargeableSubscriber": {
          "simChargeableSubscriber": {
            "imsi": "238023712863964",
            "msisdn": "4522553560"
          }
        },
        "pdpAddress": "10.184.185.212"
      },
      "gprsDestination": {
        "accessPointNameNI": "internet"
      },
      "callEventStartTimeStamp": {
        "localTimeStamp": "20140612140301",
        "utcTimeOffset": "+0100"
      }
    },
    "gprsLocationInformation": {
      "gprsNetworkLocation": {
        "cellId": 36913
      }
    },
    "equipmentIdentifier": {
      "imei": "352857002141130"
    },
    "gprsServiceUsed": {
      "chargeInformationList": [
        {
          "chargedItem": "X",
          "chargeDetailList": [
            {
              "charge": 0,
              "chargeableUnits": 0
            }
          ]
        }
      ]
    }
  }
}

Mapping Rules

Mapping Rules describes the mapping rules for processing the JSON input.
Table 1. Mapping Rules
JSON Field Required? Data Type MtxDiamRoMsg Field/Description Example
gprsBasicCallInformation: Y
– gprsChargeableSubscriber Y
– – pdfAddress N string MtxDiamRoMsg.serviceInfo.diamPsInfo.pdpAddressList 10.184.185.212
– – chargeableSubscriber: Y
– – – simChargeableSubscriber: Y
– – – – imsi Y string MtxDiamRoMsg.imsi 238023712863964
– – – – msisdn N string MtxDiamRoMsg.accessNumber and MtxDiamRoMsg.callingStationId 4522553560
– gprsDestination: Y
– – accessPointNameNI Y string MtxDiamRoMsg.calledStationId internet
– callEventStartTimeStamp: Y
– – localTimeStamp Y string MtxDiamRoMsg.eventTime

(Local timestamps are in YYYYMMDDhhmmss format.)

20140612140301
– – utcTimeOffset Y string MtxDiamRoMsg.eventTime (UTC time offsets are in +/-HHMM format, within the range –1300 to +1400 in steps of 15MM (minutes) +0100
– totalCallEventDuration Y integer
gprsLocationInformation: Y
– gprsNetworkLocation Y
– – cellID N integer MtxDiamRoMsg.callingTowerId 36913
equipmentIdentifier: N
– imei N string MtxDiamRoMsg.deviceId 352857002141130
gprsServiceUsed: Y
– chargeInformationList Y list
– – chargeItem Y string Not used. The GPRS Event is always Data usage.
The following fields are set for data usage:
MtxDiamRoMsg.op = 4
MtxDiamRoMsg.serviceTypeObjectId = 2
X
– – chargeDetailList: Y list
– – – charge Y number

MtxDiamRoMsg.costInfo.unitValue

(If multiple charges are in the message, the charges are summed.)

0
– – – chargeable Units N integer The value is set on: MtxDiamRoMsg.multiServiceList[x].usedQuantityList[y].totalDataQuantity
Extra values are set on:
MtxDiamRoMsg.multiServiceList[x].usedQuantityList[y].dataUnit = 200
MtxDiamRoMsg.multiServiceList[x].serviceId = 2
0

Example Mapped MtxDiamRoMsg Message

This example of an MtxDiamRoMsg message follows the mapping rules. The message is sent to MATRIXX Engine for rating:
{
  "$" : "MtxDiamRoMsg",
  "Op" : 4,
  "ApplicationId" : 3,
  "DiamOp" : 271,
  "SessionId" : "kafka-d3fddd168585-1662543322;3",
  "Imsi" : "238023712863964",
  "AccessNumber" : "4522553560",
  "DeviceId" : "352857002141130",
  "ServiceTypeObjectId" : 2,
  "CallingStationId" : "4522553560",
  "CalledStationId" : "internet",
  "MultiServiceList" : [ {
    "$" : "MtxMultiServiceData",
    "UsedQuantityList" : [ {
      "$" : "MtxUsedQuantityData",
      "TotalDataQuantity" : 0,
      "DataUnit" : 200
    } ],
    "ServiceId" : 2
  } ],
  "EventTime" : "2014-06-12T14:03:01+01:00",
  "CallingTowerId" : 36913,
  "ServiceInfo" : {
    "$" : "MtxDiamServiceInfoData",
    "DiamPsInfo" : {
      "$" : "MtxDiamPsInfoData",
      "PdpAddressList" : [ "10.184.185.212" ]
    }
  },
  "CostInfo" : {
    "$" : "MtxDiamCostInfoData",
    "UnitValue" : 0.0
  }
}