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.
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:
|
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:
|
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
}
}