Mobile-Originated Call Inputs and Mappings
The TAP3 JSON Kafka CDR Consumer requires a specific JSON input format and mapping rules for TAP3 mobile-originated call events.
Input Format
The following is an example mobile-originated call JSON file. The JSON consists of
only a subset of mobile-originated call TAP3
definitions.
{
"mobileOriginatedCall": {
"basicCallInformation": {
"chargeableSubscriber": {
"simChargeableSubscriber": {
"imsi": "250270000370016",
"msisdn": "79047186350"
}
},
"destination": {
"calledNumber": "79869528070"
},
"callEventStartTimeStamp": {
"localTimeStamp": "20151203105032",
"utcTimeOffset": "+0300"
}
},
"locationInformation": {
"networkLocation": {
"cellId": 57717
}
},
"equipmentIdentifier": {
"imei": "866369021397230"
},
"basicServiceUsedList": [
{
"chargeInformationList": [
{
"chargedItem": "D",
"chargeDetailList": [
{
"charge": 3.3299,
"chargeableUnits": 143
}
]
}
]
}
]
}
}
Mapping Rules
Mapping Rules
describes the mapping rules for processing the JSON input.
JSON Field | Required? | Data Type | MtxDiamRoMsg Field/Description | Example |
---|---|---|---|---|
basicCallInformation: | Y | – | – | – |
‒ chargeableSubscriber | Y | – | – | – |
‒‒ simChargeableSubcriber: | Y | – | – | – |
‒‒‒ imsi | Y | string | MtxDiamRoMsg.imsi | 250270000370016 |
‒‒‒ msisdn | N | string | MtxDiamRoMsg.accessNumber, MtxDiamRoMsg.callingStationId | 79047186350 |
‒ destination: | N | – | – | – |
‒‒ calledNumber | N | string | MtxDiamRoMsg.calledStationId | 79869528070 |
‒ callEventStartTimeStamp | Y | – | – | – |
‒‒ localTimeStamp | Y | string | MtxDiamRoMsg.eventTime (Local timestamps are in YYYYMMDDhhmmss format.) |
20151203105032 |
‒‒ utcTimeOffset | Y | string | MtxDiamRoMsg.eventTime (UTC time offsets are in +/-HHMM format, within the range ‒1300 to +1400 in steps of 15MM (minutes).) |
+-300 |
locationInformation: | N | – | – | – |
‒ networkLocation: | N | – | – | – |
‒‒ cellId | N | integer | MtxDiamRoMsg.callingTowerId | 57717 |
equipmentIdentifier: | Y | – | – | – |
‒ imei | Y | string | MtxDiamRoMsg.deviceId | 866369021397230 |
basicServiceUsedList: | Y | list | – | – |
‒ chargeInformationList: | Y | list | – | – |
‒ chargeItem | Y | string | The value that determines whether the event is voice or text:
|
D |
‒‒ chargeDetailList: | Y | list | – | – |
‒‒‒ charge | Y | number | MtxDiamRoMsg.costInfo.unitValue (If multiple charges are in the message, they are summed.) | 3.3299 |
‒‒‒ chargeableUnits | N | integer | For voice usage, this data is set in the
MtxDiamRoMsg.multiServiceList[x].usedQuantityList[y].actualDurationQuantity
field, and the following flags are added:
For text usage, this data is set in the MtxDiamRoMsg.multiServiceList[m].usedQuantityList[n].quantity field, and the MtxDiamRoMsg.multiServiceList[x].serviceId = 1 is added. |
143 |
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;1",
"Imsi" : "250270000370016",
"AccessNumber" : "79047186350",
"DeviceId" : "866369021397230",
"ServiceTypeObjectId" : 3,
"CallingStationId" : "79047186350",
"CalledStationId" : "79869528070",
"MultiServiceList" : [ {
"$" : "MtxMultiServiceData",
"UsedQuantityList" : [ {
"$" : "MtxUsedQuantityData",
"ActualDurationQuantity" : 143,
"DurationUnit" : 100
} ],
"ServiceId" : 1
} ],
"EventTime" : "2015-12-03T10:50:32+03:00",
"CallingTowerId" : 57717,
"CostInfo" : {
"$" : "MtxDiamCostInfoData",
"UnitValue" : 3.3299
}
}