📄 scdrfiltration.cpp
字号:
{ writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.DataVolumeGPRSUplink", pLOTV[i].DataVolumeGPRSUp);//INT } if (strlen(pLOTV[i].DataVolumeGPRSDown) > 0) { writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.DataVolumeGPRSDownlink", pLOTV[i].DataVolumeGPRSDown);//INT } writer.AddUserInteger("GMCC-SCDR.ListOfTrafficVolumes.Seq.ChangeCondition", pLOTV[i].ChangeCondition);//INT if (strlen(pLOTV[i].ChangeTime) > 0) { writer.AddUserTime("GMCC-SCDR.ListOfTrafficVolumes.Seq.ChangeTime", &pLOTV[i].ChangeTime[2]);//TIME } } } if (strlen(pSCdr->RecordOpenTime) > 0) { writer.AddUserTime("GMCC-SCDR.RecordOpeningTime", &pSCdr->RecordOpenTime[2]);//TIME } if (strlen(pSCdr->CallDuration) > 0) { writer.AddUserInteger("GMCC-SCDR.Duration", pSCdr->CallDuration);//INT } writer.AddUserBool("GMCC-SCDR.SGSNChange", pSCdr->SGSNChange);//BOOL * if (nCommon > 0 && pCommon != NULL) { for (int i=0; i<nCommon; i++) { if (pCommon[i].SubId == 1) { if (strlen(pCommon[i].CauseForRecordClosing) > 0) { writer.AddUserInteger("GMCC-SCDR.CauseForRecClosing", pCommon[i].CauseForRecordClosing);//INT break; } } } } if (strlen(pSCdr->Diagnostics) > 0) { writer.AddUserInteger("GMCC-SCDR.Diagnostics", pSCdr->Diagnostics);//INT } if (nCommon > 0 && pCommon != NULL) { vector<int> vec; vec.clear(); writer.AddUserOctet("GMCC-SCDR.RecordSequenceNumber", "", 0);//OCTET for (int i=0; i<nCommon; i++) // * { writer.AddUserOctet("GMCC-SCDR.RecordSequenceNumber.Set", "", 0);//OCTET if (pCommon[i].SubId == 12) { writer.AddUserOctet("GMCC-SCDR.RecordSequenceNumber.Set.gsnAddress", "", 0);//OCTET if (strlen(pCommon[i].SGSNAddr) > 0) { writer.AddUserIpAddress("GMCC-SCDR.RecordSequenceNumber.Set.gsnAddress.IPBinaryAddress", pCommon[i].SGSNAddr);//IPADDRSTRING } } if (pCommon[i].SubId == 2) { //writer.AddUserOctet("GMCC-SCDR.RecordSequenceNumber.Set.recordNumberList", "", 0);//OCTET if (strlen(pCommon[i].RSN) > 0) { vec.push_back(atoi(pCommon[i].RSN)); //writer.AddUserInteger("GMCC-SCDR.RecordSequenceNumber.Set.recordNumberList.RecordNumber", pCommon[i].RSN);//INT } } } sort(vec.begin(),vec.end()); for(int i=0; i<vec.size(); i++) { writer.AddUserOctet("GMCC-SCDR.RecordSequenceNumber.Set.recordNumberList", "", 0);//OCTET writer.AddUserInteger("GMCC-SCDR.RecordSequenceNumber.Set.recordNumberList.RecordNumber", vec[i]);//INT } vec.clear(); } if (strlen(pSCdr->NodeID) > 0) { writer.AddUserString("GMCC-SCDR.NodeID", pSCdr->NodeID);//STRING } if (strlen(pSCdr->RecordExtensions) > 0) { writer.AddUserString("GMCC-SCDR.RecordExtensions", pSCdr->RecordExtensions);//STRING * } if (nCommon > 0 && pCommon != NULL) { vector<int> vec; vec.clear(); for (int i=0; i<nCommon; i++) { if (pCommon[i].SubId == 3) { if (strlen(pCommon[i].LRSN) > 0) { vec.push_back(atoi(pCommon[i].LRSN)); //writer.AddUserInteger("GMCC-GCDR.LocalRecordSequenceNumber", pCommon[i].LRSN);//INT //break; } } } sort(vec.begin(),vec.end()); writer.AddUserInteger("GMCC-SCDR.localSequenceNumber", vec[0]);//INT vec.clear(); } //writer.AddUserInteger("GMCC-SCDR.localSequenceNumber", pSCdr->LocalRecordSequeceNumnber);//INT * writer.AddUserInteger("GMCC-SCDR.APNSelectionMode", pSCdr->APNSelectionMode);//INT if (strlen(pSCdr->AccessPointNameOI) > 0) { writer.AddUserString("GMCC-SCDR.AccessPointNameOI", pSCdr->AccessPointNameOI);//STRING } if (strlen(pSCdr->ServedMSISDN) > 0) { writer.AddUserBCDString("GMCC-SCDR.ServedMSISDN", pSCdr->ServedMSISDN);//BCDSTRING } if (strlen(pSCdr->ChargingCharacteristics) >0) { writer.AddUserOctet("GMCC-SCDR.chargingCharacteristics", pSCdr->ChargingCharacteristics);//OCTET } writer.AddUserOctet("GMCC-SCDR.systemType", &pSCdr->SystemType,1);//OCTET writer.AddUserOctet("GMCC-SCDR.cAMELInformationPDP", "",0);//OCTET if (strlen(pSCdr->SCFAddress) > 0) { writer.AddUserString("GMCC-SCDR.cAMELInformationPDP.SCFAddress", pSCdr->SCFAddress);//STRING } if (strlen(pSCdr->ServiceKey) > 0) { writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.ServiceKey", pSCdr->ServiceKey);//INT } writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.DefaultTransactionHandling", pSCdr->DefaultTransacHandling);//INT if (strlen(pSCdr->CAMELAPNNI) > 0) { writer.AddUserString("GMCC-SCDR.cAMELInformationPDP.CAMELAccessPointNameNI", pSCdr->CAMELAPNNI);//STRING } if (strlen(pSCdr->CAMELAPNOI) > 0) { writer.AddUserOctet("GMCC-SCDR.cAMELInformationPDP.CAMELAccessPointNameOI", pSCdr->CAMELAPNOI);//OCTET } if (strlen(pSCdr->NumberOfDPEncounter) > 0) { writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.NumberOfDPEncountered", pSCdr->NumberOfDPEncounter);//INT } if (strlen(pSCdr->LevelOfCamelService) > 0) { //writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.LevelOfCAMELService", pSCdr->LevelOfCamelService);//INT writer.AddUserString("GMCC-SCDR.cAMELInformationPDP.LevelOfCAMELService", pSCdr->LevelOfCamelService);//STRING * } if (strlen(pSCdr->FreeFormatData) > 0) { writer.AddUserOctet("GMCC-SCDR.cAMELInformationPDP.FreeFORMATData", pSCdr->FreeFormatData);//OCTET } writer.AddUserBool("GMCC-SCDR.cAMELInformationPDP.FFDAppendIndicator", pSCdr->FFDAppendIndicator);//BOOL if (strlen(pSCdr->UnsentDownlinkVolume) > 0) { writer.AddUserInteger("GMCC-SCDR.rNCUnsentDownlinkVolume", pSCdr->UnsentDownlinkVolume);//INT } if (strlen(pSCdr->ConsolidationResult) > 0) { writer.AddUserInteger("GMCC-SCDR.consolidationResult", pSCdr->ConsolidationResult);//INT } if ( 2 == pSCdr->SystemType ) { writer.AddUserInteger("GMCC-SCDR.chChSelectionMode", pSCdr->ChargingCharacterSelectionMode);//INT } writer.AddUserBool("GMCC-SCDR.dynamicAddressFlag", pSCdr->DynamicAddressFlag);//BOOL } else if ( NULL != pOSCdr ) { //writer.AddUserInteger("GMCC-SCDR.NetworkInitiation", pOSCdr->NetworkInitiatedPDPContext);//INT writer.AddUserBool("GMCC-SCDR.NetworkInitiation", pOSCdr->NetworkInitiatedPDPContext);//BOOL * if ( 2 == pOSCdr->SystemType ) { writer.AddUserInteger("GMCC-SCDR.anonymousAccessIndicator", pOSCdr->AnonyAccessIndicator);//INT } if (strlen(pOSCdr->ServedIMSI) > 0) { writer.AddUserBCDString("GMCC-SCDR.ServedIMSI", pOSCdr->ServedIMSI);//BCDSTRING } if (strlen(pOSCdr->ServedIMEI) > 0) { writer.AddUserBCDString("GMCC-SCDR.ServedIMEI", pOSCdr->ServedIMEI);//BCDSTRING } if (strlen(pOSCdr->SGSNIPAddress) > 0) { writer.AddUserOctet("GMCC-SCDR.SGSNAddress", "", 0);//OCTET //writer.AddUserString("GMCC-SCDR.SGSNAddress", "");//STRING writer.AddUserIpAddress("GMCC-SCDR.SGSNAddress.IPBinaryAddress", pOSCdr->SGSNIPAddress);//IPADDSTRING } if (strlen(pOSCdr->MSNetworkCapability) > 0) { writer.AddUserOctet("GMCC-SCDR.MsNetworkCapability", pOSCdr->MSNetworkCapability);//OCTET } if (strlen(pOSCdr->RoutingAreaCode) > 0) { writer.AddUserOctet("GMCC-SCDR.RoutingArea", pOSCdr->RoutingAreaCode);//OCTET } if (strlen(pOSCdr->LocationAreaCode) > 0) { writer.AddUserOctet("GMCC-SCDR.LocationAreaCode", pOSCdr->LocationAreaCode);//OCTET } if (strlen(pOSCdr->CellIdentity) > 0) { writer.AddUserOctet("GMCC-SCDR.CellIdentity", pOSCdr->CellIdentity);//OCTET } if (strlen(pOSCdr->ChargingID) > 0) { writer.AddUserInteger("GMCC-SCDR.ChargingID", pOSCdr->ChargingID);//INT } if (strlen(pOSCdr->GGSNAddress) > 0) { writer.AddUserOctet("GMCC-SCDR.GGSNAddressUsed", "", 0);//OCTET writer.AddUserIpAddress("GMCC-SCDR.GGSNAddressUsed.IPBinaryAddress", pOSCdr->GGSNAddress);//IPADDRSTRING } if (strlen(pOSCdr->AccessPointNameNI) > 0) { writer.AddUserString("GMCC-SCDR.AccessPointNameNI", pOSCdr->AccessPointNameNI);//STRING } if (strlen(pOSCdr->PDPTypeNumber) > 0) { writer.AddUserOctet("GMCC-SCDR.PDPType", pOSCdr->PDPTypeNumber);//OCTET } if (strlen(pOSCdr->ServedPDPAddress) > 0) { writer.AddUserOctet("GMCC-SCDR.ServedPDPAddress", "",0);//OCTET writer.AddUserOctet("GMCC-SCDR.ServedPDPAddress.IPAddress", "",0);//OCTET writer.AddUserIpAddress("GMCC-SCDR.ServedPDPAddress.IPAddress.IPBinaryAddress", pOSCdr->ServedPDPAddress);//IPADDRSTRING } if (strlen(pOSCdr->RecordOpenTime) > 0) { writer.AddUserTime("GMCC-SCDR.RecordOpeningTime", &pOSCdr->RecordOpenTime[2]);//TIME } if (strlen(pOSCdr->CallDuration) > 0) { writer.AddUserInteger("GMCC-SCDR.Duration", pOSCdr->CallDuration);//INT } writer.AddUserBool("GMCC-SCDR.SGSNChange", pOSCdr->SGSNChange);//BOOL * if (strlen(pOSCdr->CauseForRecClosing) > 0) { writer.AddUserInteger("GMCC-SCDR.CauseForRecClosing", pOSCdr->CauseForRecClosing);//INT } if (strlen(pOSCdr->Diagnostics) > 0) { writer.AddUserInteger("GMCC-SCDR.Diagnostics", pOSCdr->Diagnostics);//INT } if (strlen(pOSCdr->NodeID) > 0) { writer.AddUserString("GMCC-SCDR.NodeID", pOSCdr->NodeID);//STRING } if (strlen(pOSCdr->RecordExtensions) > 0) { writer.AddUserString("GMCC-SCDR.RecordExtensions", pOSCdr->RecordExtensions);//STRING * } //? writer.AddUserInteger("GMCC-SCDR.LocalRecordSequenceNumber", atoi(pOSCdr->LocalRecordSequeceNumnber));//INT * writer.AddUserInteger("GMCC-SCDR.APNSelectionMode", pOSCdr->APNSelectionMode);//INT if (strlen(pOSCdr->AccessPointNameOI) > 0) { writer.AddUserString("GMCC-SCDR.AccessPointNameOI", pOSCdr->AccessPointNameOI);//STRING } if (strlen(pOSCdr->ServedMSISDN) > 0) { writer.AddUserBCDString("GMCC-SCDR.ServedMSISDN", pOSCdr->ServedMSISDN);//BCDSTRING } if (strlen(pOSCdr->ChargingCharacteristics) >0) { writer.AddUserOctet("GMCC-SCDR.chargingCharacteristics", pOSCdr->ChargingCharacteristics);//OCTET } writer.AddUserOctet("GMCC-SCDR.systemType", &pOSCdr->SystemType,1);//OCTET writer.AddUserOctet("GMCC-SCDR.cAMELInformationPDP", "",0);//OCTET if (strlen(pOSCdr->SCFAddress) > 0) { writer.AddUserString("GMCC-SCDR.cAMELInformationPDP.SCFAddress", pOSCdr->SCFAddress);//STRING } if (strlen(pOSCdr->ServiceKey) > 0) { writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.ServiceKey", pOSCdr->ServiceKey);//INT } writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.DefaultTransactionHandling", pOSCdr->DefaultTransacHandling);//INT if (strlen(pOSCdr->CAMELAPNNI) > 0) { writer.AddUserString("GMCC-SCDR.cAMELInformationPDP.CAMELAccessPointNameNI", pOSCdr->CAMELAPNNI);//STRING } if (strlen(pOSCdr->CAMELAPNOI) > 0) { writer.AddUserOctet("GMCC-SCDR.cAMELInformationPDP.CAMELAccessPointNameOI", pOSCdr->CAMELAPNOI);//OCTET } if (strlen(pOSCdr->NumberOfDPEncounter) > 0) { writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.NumberOfDPEncountered", pOSCdr->NumberOfDPEncounter);//INT } if (strlen(pOSCdr->LevelOfCamelService) > 0) { writer.AddUserInteger("GMCC-SCDR.cAMELInformationPDP.LevelOfCAMELService", pOSCdr->LevelOfCamelService);//INT } if (strlen(pOSCdr->FreeFormatData) > 0) { writer.AddUserOctet("GMCC-SCDR.cAMELInformationPDP.FreeFORMATData", pOSCdr->FreeFormatData);//OCTET } writer.AddUserBool("GMCC-SCDR.cAMELInformationPDP.FFDAppendIndicator", pOSCdr->FFDAppendIndicator);//BOOL if (strlen(pOSCdr->UnsentDownlinkVolume) > 0) { writer.AddUserInteger("GMCC-SCDR.rNCUnsentDownlinkVolume", pOSCdr->UnsentDownlinkVolume);//INT }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -