Call record processing method, device and equipment, and storage medium

By reading the call time bitmap using bitmap technology and determining whether the call record is a duplicate call detail record based on the written bits, the problem of high computational load in existing technologies is solved, and efficient duplicate call detail record identification is achieved.

CN116010407BActive Publication Date: 2026-05-19CHINA UNITED NETWORK COMM GRP CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA UNITED NETWORK COMM GRP CO LTD
Filing Date
2022-12-15
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

The existing technology for identifying duplicate call records by comparing call durations involves a large amount of computation, resulting in low efficiency.

Method used

By using bitmap technology, the system reads the target call time bitmap corresponding to the call time and determines whether the call record is a duplicate call detail record based on the written bits, thus reducing the amount of computation.

Benefits of technology

Bitmap technology is used to quickly identify duplicate call detail records (CDRs), reducing computational load and improving processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116010407B_ABST
    Figure CN116010407B_ABST
Patent Text Reader

Abstract

The application provides a call record processing method and device, equipment and a storage medium, and belongs to the technical field of data processing. The method comprises the following steps: in response to generation of any call record, acquiring the any call record, wherein the any call record comprises a calling number and a call time; reading a target call time bitmap corresponding to the call time, wherein the target call time bitmap corresponds to the call time, and a bit of the target call time bitmap corresponds to time; determining a written bit in the target call time bitmap as a written bit; and determining whether the any call record is a repeated call sheet according to the call time and the written bit. The method solves the problem of a large amount of calculation required for determining a repeated call sheet.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a method, apparatus, device and storage medium for processing call records. Background Technology

[0002] One of the billing standards used by telecom operators is the quantity of call detail records (CDRs), making their accuracy particularly important. During the process of issuing CDRs, various network and hardware issues can cause duplicate CDRs, making the deduplication of CDRs especially crucial.

[0003] Currently, existing technologies determine whether call records are duplicated by comparing the connection time periods of the phone numbers of the two parties in the call.

[0004] However, the inventors have found that the existing technology has at least the following technical problems: the amount of computation required to determine duplicate call records by comparing call time periods is relatively large. Summary of the Invention

[0005] This application provides a method, apparatus, device, and storage medium for processing call records, in order to solve the problem of large computational workload in call detail record (CDR) deduplication.

[0006] In a first aspect, this application provides a call record processing method, comprising: in response to the generation of any call record, acquiring any call record, wherein any call record includes a calling number and a call time; reading a target call time bitmap corresponding to the call time, wherein the target call time bitmap corresponds to the calling number and the bits of the target call time bitmap correspond to the time; determining the bits of the target call time bitmap that have been written with data as written bits; and determining whether any call record is a duplicate call detail record based on the call time and the written bits.

[0007] In one possible implementation, reading the target call time bitmap corresponding to the call time includes: reading the hour bitmap, minute bitmap, and second bitmap of the date corresponding to the call time; or, reading the hour bitmap, minute bitmap, and second bitmap corresponding to the call time.

[0008] In one possible implementation, bits in the hour bitmap correspond to hours, bits in the minute bitmap correspond to minutes, and bits in the second bitmap correspond to seconds. Accordingly, determining whether any call record is a duplicate call detail record (CDR) based on the call time and the written bits includes: determining that any call record is a duplicate CDR in response to at least two written bits in the hour or minute bitmap having the same hour or minute as the call time; determining that any call record is a duplicate CDR in response to at least one written bit in the second bitmap having the same second as the call time; determining that any call record is not a duplicate CDR in response to one written bit in the hour or minute bitmap having the same time as the call time, and no written bit in the second bitmap having the same time as the call time; and determining that any call record is not a duplicate CDR in response to no written bit in the hour, minute, and second bitmaps having the same time as the call time.

[0009] In one possible implementation, after determining that any call record is not a duplicate call detail record, the method further includes: writing preset data into the bit bits corresponding to the call time in the hour bitmap, minute bitmap, and second bitmap.

[0010] In one possible implementation, each minute bitmap corresponds to a bit in the hour bitmap, and each second bitmap corresponds to a bit in the minute bitmap; accordingly, after determining whether any call record is a duplicate call detail record, the implementation further includes: deleting any minute bitmap in response to all bits of any minute bitmap having been written to data; and deleting any second bitmap in response to all bits of any second bitmap having been written to data.

[0011] In one possible implementation, determining whether any call record is a duplicate call detail record (CDR) based on the call time and the bits already written includes: identifying at least one bit corresponding to the call time in the target call time bitmap as a bit to be written; determining that any call record is a duplicate CDR in response to a bit in the bit to be written being the same as any bit already written; and determining that any call record is a non-duplicate CDR in response to all bits in the bit to be written being different from all bits already written.

[0012] In one possible implementation, after determining that any call record is a non-duplicate call detail record, the method further includes: writing preset data into the bits to be written in the target call time bitmap.

[0013] Secondly, this application provides a call record processing apparatus, comprising:

[0014] The call record acquisition module is used to acquire any call record in response to its generation, wherein each call record includes the caller's number and the call time; the bitmap reading module is used to read the target call time bitmap corresponding to the call time, wherein the target call time bitmap corresponds to the call time, and the bits of the target call time bitmap correspond to the time; the bit bit determination module is used to determine the bits of data already written in the target call time bitmap as written bits; the call judgment module is used to determine whether any call record is a duplicate call detail record based on the call time and the written bits.

[0015] Thirdly, this application provides an electronic device, including: a processor and a memory communicatively connected to the processor; the memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory, causing the processor to perform the call recording processing method as described in the first aspect.

[0016] Fourthly, this application provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the call record processing method as described in the first aspect.

[0017] The call record processing method, apparatus, device, and storage medium provided in this application obtain call records, read the target call time bitmap corresponding to the caller number and call time in the call records, and determine whether the call record is a duplicate based on the call time in the call records and the bits of data already written in the target call time bitmap. This reduces the amount of computation required to determine whether a call record is a duplicate by checking whether the bits corresponding to the call time in the image have been written. Attached Figure Description

[0018] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.

[0019] Figure 1 This is a schematic diagram illustrating an application scenario of the call log processing method provided in the embodiments of this application;

[0020] Figure 2 A flowchart illustrating the call record processing method provided in an embodiment of this application;

[0021] Figure 3 This is a schematic diagram of a bitmap provided for an embodiment of this application;

[0022] Figure 4 This is a schematic diagram of the call record processing device provided in the embodiments of this application;

[0023] Figure 5This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application.

[0024] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation

[0025] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0026] First, let me explain the terms used in this application:

[0027] Bitmap: A bitmap (also called a bit array or bit vector) is an array of bits.

[0028] This application is applied to scenarios involving the processing of call records. It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of relevant countries and regions, and corresponding operation entry points are provided for users to choose to authorize or refuse.

[0029] Figure 1 This is a schematic diagram illustrating an application scenario of the call log processing method provided in an embodiment of this application. For example... Figure 1 In this scenario, the system includes: server 101 and database 102.

[0030] Server 101 can be a standalone service, or it can be implemented using a single server or a cluster of multiple servers with more powerful processing capabilities and higher security. Where possible, it can also be replaced by a computer or laptop with strong computing power.

[0031] Database 102 may include a single database or a combination of multiple databases. For example, it may include one or more databases such as Oracle database, relational database management system, DRDS (Distributed Relational Database Service) database, ES (Elasticsearch) database, etc. This application does not impose any special restrictions on it.

[0032] In the specific implementation process, server 101 is used to generate or record call records, and can also obtain call records from database 102.

[0033] The connection between server 101 and database 102 can be either wired or wireless.

[0034] It is understood that the structure illustrated in the embodiments of this application does not constitute a specific limitation on call record processing. In other feasible embodiments of this application, the above architecture may include more or fewer components than illustrated, or combine some components, or split some components, or arrange different components, which can be determined according to the actual application scenario and is not limited here. Figure 1 The scenario shown can be implemented by hardware, software, or a combination of both.

[0035] The technical solution of this application and how the technical solution of this application solves the above-mentioned technical problems are described in detail below with specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.

[0036] Figure 2 This is a flowchart illustrating the call record processing method provided in an embodiment of this application. The execution entity of this embodiment may be... Figure 1 The server 101 in this embodiment can also be a computer and / or a mobile phone, etc., and this embodiment does not impose any special restrictions on it. Figure 2 As shown, the method includes:

[0037] S201: In response to the generation of any call record, obtain any call record, wherein any call record includes the caller's number and the call duration.

[0038] In this step, call logs can be generated after a user makes a call, added to a database, or received from other servers. The caller ID can be the number that made the call, and the call time can be the call start time, call end time, and / or call duration.

[0039] For example, if a phone number "14111111111" dials a phone number "14222222222" at 5:12:10 PM and ends the call at 5:14:12 PM, then the start time is 5:12:10 PM, the end time is 5:14:12 PM, and the call duration is 2 minutes and 2 seconds. As another example, if a phone number "14000000000" dials a phone number "15000000000" at 2:13:20 PM and ends the call at 2:13:30 PM, then the start time is 2:13:20 PM, the end time is 2:13:30 PM, and the call duration is 10 seconds.

[0040] S202: Read the target call time bitmap corresponding to the call time, where the target call time bitmap corresponds to the call time, and the bits of the target call time bitmap correspond to the time.

[0041] In this step, the target call time bitmap corresponding to the caller ID and call duration can be read. The call time bitmap can be stored in a folder, and the folder can correspond to the caller ID. The call time bitmap can also use different naming conventions to correspond to different caller IDs. The correspondence between caller IDs and call time bitmaps can be preset. Different call time bitmaps correspond to different times. A 24-hour day can correspond to 24 different minute bitmaps, and an 60-minute hour can correspond to 60 second bitmaps. Bits in the hour bitmap correspond to different hours, bits in the minute bitmap correspond to different minutes, and bits in the second bitmap correspond to different seconds.

[0042] For example, the call time bitmap corresponding to the caller ID "15000000000" can be a call time bitmap containing "150000000000", or it can be a call time bitmap stored in a folder with "150000000000" in its name. The name of the call time bitmap can also include time information, such as "15:00:00-16:00:00", which represents 3:00 PM to 4:00 PM, and "5:00:00-6:00:00", which represents 5:00 AM to 6:00 AM. This application does not limit the specific phone number, and the call time bitmap can also be divided by minutes and seconds, which will not be elaborated here.

[0043] In one possible implementation, each bit in the call time bitmap can correspond to a second.

[0044] For example, if a call time bitmap corresponds to one day, then a call time bitmap contains 86,400 bits. A call time bitmap can also correspond to half a day, two days, or more days, which will not be elaborated here. Reading the target call time bitmap can mean reading the call time corresponding to the number of days, half a day, or more days.

[0045] S203: Determine the bits in the target call time bitmap that have already been written as written bits.

[0046] In this step, the bits in the target call time bitmap that have already been written with data can be either color bits or bits that have already been written with numerical values.

[0047] For example, writing a 1 to a bit makes the bit black. Unwritten bits can be colorless, white, or a preset color. Unwritten bits may not have corresponding data or may correspond to preset data.

[0048] S204: Determine whether any call record is a duplicate call detail record based on the call time and the bits already written.

[0049] In this step, the call record can be determined to be a duplicate call detail record if the bit corresponding to the second in the call time overlaps with the bit corresponding to the written bit; otherwise, the call record is not determined to be a duplicate call detail record.

[0050] As can be seen from the description of the above embodiments, the embodiments of this application obtain call records, read the target call time bitmap corresponding to the caller number and call time in the call records, and determine whether the call record is a duplicate based on the call time in the call records and the bits of data already written in the target call time bitmap. This realizes the determination of whether the call record is a duplicate by checking whether the bits corresponding to the call time in the image have been written with data, thus reducing the amount of calculation required to determine duplicates.

[0051] In one possible implementation, step S202 above, reading the target call time bitmap corresponding to the call time, includes: S2021 or S2022.

[0052] S2021: Read the hourly, minute, and second bitmaps corresponding to the caller ID and the date of the call.

[0053] In this step, the calling number can correspond to a folder, and the folder corresponding to the calling number stores folders corresponding to the dates. You can search for the hourly, minutely, and secondly plots within the folder corresponding to the calling number's call time. Alternatively, you can retrieve all hourly, minutely, and secondly plots within the folder corresponding to the calling number.

[0054] S2022: Read the hourly, minute, and second bitmaps corresponding to the caller ID and call time.

[0055] In this step, the hourly, minute, and second bitmaps can be mapped to the caller ID. This can be achieved by including the caller ID or a string corresponding to the caller ID in the bitmap's name, or by using tables, dictionaries, or strings to establish the mapping between the bitmap and the caller ID.

[0056] For example, if the call took place from 2:30:00 PM to 2:32:01 PM on February 15th, then the hourly timeline for February 15th, the minute timeline for 2 PM, and the second timeline for 30 minutes to 32 minutes corresponding to the caller ID would be retrieved. As another example, if the call took place from 3:10:00 PM to 3:10:50 PM on March 18th, then the hourly timeline for March 18th, the minute timeline for 3 PM, and the second timeline for 10 minutes corresponding to the caller ID would be retrieved. Yet another example, if the call took place from 4:05:00 AM to 4:05:20 AM on September 19th, then the hourly timeline for September 19th, the minute timeline for 4 AM, and the second timeline for 5 minutes corresponding to the caller ID would be retrieved.

[0057] The bitmap mentioned above may be stored in a server, database, or storage unit.

[0058] As can be seen from the description of the above embodiments, the embodiments of this application reduce the amount of data read and increase the processing speed by reading the hour bitmap, minute bitmap and second bitmap of the date corresponding to the caller number and the call time; or by reading the bitmap corresponding to the caller number and the call time.

[0059] In one possible implementation, the bits in the hour bitmap correspond to the hour, the bits in the minute bitmap correspond to the minute, and the bits in the second bitmap correspond to the second.

[0060] Specifically, hourly bitmaps can be stored in folders corresponding to dates, minute bitmaps in folders corresponding to hours, and second bitmaps in folders corresponding to minutes, thus establishing a correspondence between dates and hourly bitmaps, hourly and minute bitmaps, and minute and second bitmaps. This correspondence can also be implemented using naming conventions; for example, the name of a second bitmap could include the date, hour, and minute; the name of a minute bitmap could include the date and hour; and the name of an hour bitmap could include the date.

[0061] For example, in an hourly bitmap, the first bit corresponds to 0:00 to 1:00, the second bit corresponds to 1:00 to 2:00, and so on, with each hourly bitmap having 12 bits. Bits can also be changed when writing data. For instance, if the latest data written is at 6:00 AM, it can have 6 bits; if the latest data written is at 10:00 AM, it can have 10 bits; and if the latest data written is at 2:00 PM, it can have 14 bits. Minute and second bitmaps are similar to hourly bitmaps and will not be described further here.

[0062] Accordingly, in step S204 above, determining whether any call record is a duplicate call detail record based on the call time and the bits already written includes:

[0063] S2041: In response to an hour bitmap or minute bitmap where at least two written bits correspond to the same hour or minute as the call time, determine that any call record is a duplicate call detail record.

[0064] In this step, for example, if the call time is from 9:00 to 10:00, and the bits corresponding to 9:00 and 10:00 in the hour bitmap have been written with data (i.e., the bits corresponding to 9:00 and 10:00 are written bits), then this call record is determined to be a duplicate call detail record (DDR). As another example, if the call time is from 9:12 to 9:14, and the bits corresponding to 12:13 and 9:14 in the minute bitmap have been written with data (i.e., the bits corresponding to 12:13 and 9:14 are written bits), then this call record is determined to be a DDR. This application embodiment does not limit the specific time of the call.

[0065] S2042: In response to the second bitmap, if at least one written bit corresponds to the same second as the call time, determine that any call record is a duplicate call detail record.

[0066] In this step, for example, if the call duration is from 9:12:30 to 9:12:55, and the bits corresponding to 30 seconds to 55 seconds in the second position chart for 9:12 have been written with data (meaning the bits corresponding to 30 seconds to 55 seconds are written bits), then this call record is determined to be a duplicate call detail record (CDR). As another example, if the call duration is from 12:15:30 to 12:17:33, and the bits corresponding to 10 seconds in the second position chart for 12:17 have been written with data (meaning the bits corresponding to 10 seconds in the second position chart for 12:17 are written bits), then this call record is determined to be a duplicate call detail record (CDR).

[0067] S2043: In response to the fact that a written bit in the hourly or minutely bitmap corresponds to a time that is the same as the time corresponding to the call time, and no written bit in the secondly bitmap corresponds to a time that is the same as the time corresponding to the call time, it is determined that any call record is not a duplicate call detail record. In response to the fact that no written bit in the hourly, minutely, and secondly bitmaps corresponds to a time that is the same as the time corresponding to the call time, it is determined that any call record is not a duplicate call detail record.

[0068] In this step, it is possible to determine that any of the above call records is not a duplicate call detail record even if it does not fall under steps S2041 and S2042 above.

[0069] For example, if the call duration is from 11:12:30 to 11:14:55, and the bit corresponding to 11:00 is a written bit, the bit corresponding to 14:00 in the minute bitmap corresponding to 11:00 is a written bit, the bits corresponding to 30 seconds and beyond in the second bitmap corresponding to 12:00 do not have written bits, the bits corresponding to 13:00 do not have written bits, and the bits corresponding to 55 seconds and beyond in the second bitmap corresponding to 14:00 do not have written bits, then it is determined that any of the above call records is not a duplicate call record. As another example, if the call duration is from 12:15:44 to 12:15:55, and the bit corresponding to 12:00 is a written bit, the bit corresponding to 15:00 in the minute bitmap corresponding to 12:00 is a written bit, and the bits corresponding to 44 seconds to 55 seconds in the second bitmap corresponding to 15:00 do not have written bits, then it is determined that any of the above call records is not a duplicate call record.

[0070] As can be seen from the description of the above embodiments, the embodiments of this application determine whether a call record is a duplicate call detail record (CDR) by using bitmaps to classify call detail records as non-duplicate CDRs when at least two written bits in the hour or minute bitmap correspond to the same time as the call time, and when at least one bit in the second bitmap corresponds to the same time as the call time.

[0071] In one possible implementation, after determining in step S2043 that any call record is not a duplicate call detail record, the method further includes:

[0072] S205: Write the preset data into the bit positions corresponding to the call time in the hour bitmap, minute bitmap, and second bitmap.

[0073] In this step, the hour, minute, and second bitmaps corresponding to the call time can be read and the corresponding bits written. Preset data includes, for example, "1" or "0". If all bits in the bitmap are already filled with 0, a 1 is written when writing the corresponding bitmap; conversely, if all bits in the bitmap are already filled with 1, a 0 is written when writing the corresponding bitmap.

[0074] For example, if the call took place from 11:12:30 to 11:14:55 on February 12th, then the following bits would be written: the bit corresponding to 11:00 in the hourly bitmap of February 12th (which could be the 11th bit); the bits corresponding to 12:00 to 14:00 in the bitmap of 11:00 (which could be the 12th to 14th bits); the bits corresponding to 30 seconds and beyond in the second bitmap of 12:00; all bits in the second bitmap of 13:00; and the bits corresponding to 50 seconds and beyond in the second bitmap of 14:00. This application does not limit the specific time, and will not elaborate further here.

[0075] As can be seen from the description of the above embodiments, the embodiments of this application provide a basis for deduplication of the next call record by writing data into the corresponding bit of the call record in the bitmap when the call record is a duplicate call detail record.

[0076] In one possible implementation, each minute bitmap corresponds to a bit in the hour bitmap, and each second bitmap corresponds to a bit in the minute bitmap.

[0077] Accordingly, after determining whether any call record is a duplicate call detail record in step S2043 above, the method further includes:

[0078] S2061: In response to the fact that all bits of any minute bitmap have been written with data, delete any minute bitmap.

[0079] In this step, for example, if all 60 bits of the minute bitmap corresponding to the 20-minute timeframe have been written with data, then the minute bitmap corresponding to the 20-minute timeframe will be deleted. Similarly, if all 60 bits of the minute bitmap corresponding to 9:40 AM have been written with data, then the minute bitmap corresponding to 9:40 AM will be deleted. And again, if all 60 bits of the minute bitmap corresponding to 11:30 AM on September 12th have been written with data, then the minute bitmap corresponding to 11:30 AM on September 12th will be deleted.

[0080] S2062: In response that all bits of any second bitmap have been written with data, delete any second bitmap.

[0081] This step is similar to step S2061 above, except that the minute bitmap is replaced with a second bitmap, so it will not be described again.

[0082] Accordingly, in any of the above embodiments, determining the bits for which data has been written in the target call time bitmap is the written bit bit includes:

[0083] In response to any bit in any hourly bitmap being a written bit, this bit is designated as the first target bit. In response to the deletion of the minute bitmap corresponding to the first target bit, or the absence of a corresponding minute bitmap for the first target bit, all bits in the minute bitmap corresponding to or supposed to correspond to the first target bit are defaulted to written bits. In response to any bit in any minute bitmap being a written bit, this bit is designated as the second target bit. In response to the deletion of the second bitmap corresponding to the second target bit, or the absence of a corresponding second bitmap for the second target bit, all bits in the second bitmap corresponding to or supposed to correspond to the second target bit are defaulted to written bits.

[0084] For example, in the hourly bitmap, if the bit corresponding to 19:00 has been written with data, and the corresponding minute bitmap for 19:00 has been deleted or not found, then all bits in the minute bitmap corresponding to 19:00 are determined to be written bits. Similarly, in the hourly bitmap, if the bit corresponding to 7:00 has been written with data, and the corresponding minute bitmap for 7:00 has been deleted or not found, then all bits in the minute bitmap corresponding to 7:00 are determined to be written bits. And again, in the minute bitmap, if the bit corresponding to 20:00 has been written with data, and the corresponding second bitmap for 20:00 has been deleted or not found, then all bits in the second bitmap corresponding to 20:00 are determined to be written bits.

[0085] As can be seen from the description of the above embodiments, the embodiments of this application achieve the effect of reducing storage space occupation by deleting any second bitmap when all bits of any second bitmap have been written with data.

[0086] In one possible implementation, step S204 above, determining whether any call record is a duplicate call detail record based on the call time and the written bits, includes:

[0087] S2044: Determine at least one bit corresponding to the call time in the target call time bitmap as the bit to be written.

[0088] In this step, the bit corresponding to the call time in the time bitmap can be identified as the bit to be written.

[0089] For example, if the call duration is from 10:12:10 AM to 10:12:32 AM on February 11th, the corresponding bits to be written are bits 36730 to 36752 corresponding to February 11th. As another example, if the call duration is from 5:22:22 PM to 5:33:33 PM on April 22nd, the corresponding bits to be written are bits 62543 to 63213 corresponding to April 22nd. This application does not impose specific limitations on the call duration.

[0090] S2045: In response to the fact that a bit in the bit to be written is the same as any bit already written, determine that any call record is a duplicate call detail record.

[0091] In this step, for example, if the 2465th bit is a written bit and the 2465th bit is also in the bit list to be written, then any call record in this case is identified as a duplicate call record. Similarly, if the 31111th bit is a written bit and the 31111th bit is also in the bit list to be written, then any call record in this case is identified as a duplicate call record. And again, if the 25784th bit is a written bit and the 25784th bit is also in the bit list to be written, then any call record in this case is identified as a duplicate call record.

[0092] S2046: In response to the fact that all bits in the bit to be written are different from all written bits, determine that any call record is a non-duplicate call detail record.

[0093] In this step, any call record is determined to be a non-duplicate call detail record if no bit in the bit to be written matches any bit in the bit already written. Alternatively, any call record can be determined to be a non-duplicate call detail record in all cases except S2045.

[0094] For example, if the bits to be written are the 3rd to 10th bits, and the 3rd to 10th bits are not among the bits already written, then any call record is determined to be a non-duplicate call detail record.

[0095] As can be seen from the description of the above embodiments, the embodiments of this application determine at least one bit corresponding to the call time in the target call time bitmap as a bit to be written, and determine any call record as a duplicate call detail record if there is a bit in the bit to be written that is the same as any bit that has been written, otherwise determine it as a non-duplicate call detail record, thereby realizing the determination of whether a call detail record is a duplicate call detail record using a bitmap, which reduces the amount of calculation.

[0096] In one possible implementation, after determining in step S2046 that any call record is a non-duplicate call detail record, the method further includes:

[0097] S2047: Write preset data into the bits to be written in the target call time bitmap.

[0098] This step is similar to step S205 above, and will not be repeated here.

[0099] As can be seen from the description of the above embodiments, the embodiments of this application update the bitmap by writing preset data into the bits to be written in the target call time bitmap, which facilitates the deduplication of subsequent call detail records.

[0100] In one possible implementation, the above call record processing method further includes deleting the call time bitmap before a preset duration.

[0101] For example, delete the call time bitmap from 5 days ago, 7 days ago, 30 days ago, 1 month ago, or 2 months ago.

[0102] Figure 3 This is a bitmap illustration provided for an embodiment of this application. Figure 3 As shown, the squares in the diagram represent bits. A "1" in a square indicates that data has been written, and a "0" indicates that no data has been written. Each square depends on whether the bitmap is an hourly, minute, or second bitmap, with the bits corresponding to the hour, minute, and second, respectively.

[0103] All phone numbers in this application are illustrative only and do not represent any actual numbers. The aforementioned time bitmap can be stored in the folder corresponding to the calling number, or a called folder can be created under the calling folder, with the call time bitmap corresponding to the calling and called call records stored in the called folder under the calling folder. This allows for comparison of call records where both the calling and called parties are identical when comparing call records for duplicates. The call time bitmap can be stored in a date folder, with subfolders created at the 24-hour minute level to segment the call time range. For example, if a call duration exists from 17:59:55 to 18:05:02, it corresponds to seven folders: 17:59, 19:00, 19:01, 19:02, 19:03, 19:04, and 19:05. A bitmap file is created under the time folder to record the specific fields of the call duration. Taking a second bitmap as an example, the specific file creation method is as follows: each bit is 1 second, and 60 bits are used to record one minute, so 8 bytes (64 bits) are needed to record one minute.

[0104] By recording incoming call durations in a call time bitmap, you can quickly understand the call duration usage. Multiple call detail records (CDRs) can be written to a single call time bitmap. If there is no bit overwriting (i.e., no bit that has already been written is written again), it indicates that the call duration is not duplicated. In the seconds bitmap, if a bit is repeatedly written as 1, it is a duplicate CDR. In the hours and minutes bitmaps, if two bits are repeatedly written as 1, it is a duplicate CDR. Alternatively, you can generate individual bitmap files to record time usage. If the bits of a bitmap file overlap with those of the currently generated bitmap file, you can quickly know that the data is being used.

[0105] The hourly bitmap described above can also have 48 bits, representing 48 hours over two days, or more or fewer bits, which staff can set themselves.

[0106] Figure 4 This is a schematic diagram of the call log processing device provided in an embodiment of this application. Figure 3 As shown, the call record processing device 400 includes: a record acquisition module 401, a bitmap reading module 402, a bit determination module 403, and a call judgment module 404.

[0107] The record acquisition module 401 is used to acquire any call record in response to the generation of any call record, wherein any call record includes the caller's number and the call time.

[0108] Bitmap reading module 402 is used to read the target call time bitmap corresponding to the call time, wherein the target call time bitmap corresponds to the calling number and the bits of the target call time bitmap correspond to the time.

[0109] The bit determination module 403 is used to determine the bits that have been written into the target call time bitmap as the written bits.

[0110] The call determination module 404 is used to determine whether any call record is a duplicate call detail record based on the call time and the bits that have been written.

[0111] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0112] In one possible implementation, the bitmap reading module 402 is specifically used to read the hour bitmap, minute bitmap, and second bitmap corresponding to the date of the call. Alternatively, it can read the hour bitmap, minute bitmap, and second bitmap corresponding to the caller ID and call time.

[0113] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0114] In one possible implementation, bits in the hour bitmap correspond to hours, bits in the minute bitmap correspond to minutes, and bits in the second bitmap correspond to seconds. The bitmap reading module 402 is specifically used to determine that any call record is a duplicate call detail record (CDR) in response to at least two written bits in the hour or minute bitmap matching the hour or minute of the call time. Similarly, in the second bitmap, if at least one written bit matches the second of the call time, the module determines that any call record is a duplicate CDR. If one written bit in the hour or minute bitmap matches the time of the call time, and no written bit in the second bitmap matches the time of the call time, the module determines that any call record is not a duplicate CDR. Finally, if no written bit in the hour, minute, or second bitmap matches the time of the call time, the module determines that any call record is not a duplicate CDR.

[0115] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0116] In one possible implementation, the call record processing device 400 further includes a data writing module 405.

[0117] The data writing module 405 is used to write preset data into the bit bits corresponding to the call time in the hour bitmap, minute bitmap and second bitmap.

[0118] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0119] In one possible implementation, each minute bitmap corresponds to a bit in the hour bitmap, and each second bitmap corresponds to a bit in the minute bitmap. The call record processing apparatus 400 further includes a bitmap deletion module 406. The bitmap deletion module 406 is configured to delete any minute bitmap in response to all bits of any minute bitmap having been written with data. Similarly, it deletes any second bitmap in response to all bits of any second bitmap having been written with data.

[0120] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0121] In one possible implementation, the call determination module 404 is specifically used to determine at least one bit corresponding to the call time in the target call time bitmap as a bit to be written. In response to a bit in the bit to be written being identical to any already written bit, any call record is determined to be a duplicate call detail record (CDR). In response to all bits in the bit to be written being different from all already written bits, any call record is determined to be a non-duplicate CDR.

[0122] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0123] In one possible implementation, the data writing module 405 is specifically used to write preset data into the bits to be written in the target call time bitmap.

[0124] The apparatus provided in this embodiment can be used to execute the technical solutions of the above method embodiments. Its implementation principle and technical effects are similar, and will not be described again here.

[0125] To implement the above embodiments, this application also provides an electronic device.

[0126] refer to Figure 5 The diagram illustrates a structural schematic of an electronic device 500 suitable for implementing embodiments of this application. The electronic device 500 can be a terminal device or a server. The terminal device can include, but is not limited to, mobile terminals such as mobile phones, laptops, digital radio receivers, personal digital assistants (PDAs), portable Android devices (PADs), portable media players (PMPs), and in-vehicle terminals (e.g., in-vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. Figure 5 The electronic device shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of this application.

[0127] like Figure 5As shown, the electronic device 500 may include a processor (e.g., a central processing unit, a graphics processing unit, etc.) 501 and a memory 502 communicatively connected to the processor. The memory 502 may be a read-only memory (ROM). The processor 501 can perform various appropriate actions and processes according to programs stored in the memory 502, computer-executed instructions, or programs loaded from the storage device 508 into the random access memory (RAM) 503, to implement the call recording processing method in any of the above embodiments. The RAM 503 also stores various programs and data required for the operation of the electronic device 500. The processing device 501, the memory 502, and the RAM 503 are interconnected via a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.

[0128] Typically, the following devices can be connected to I / O interface 505: input devices 506 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 507 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 508 including, for example, magnetic tapes, hard disks, etc.; and communication devices 509. Communication device 509 allows electronic device 500 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 5 An electronic device 500 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.

[0129] Specifically, according to embodiments of this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable storage medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 509, or installed from a storage device 508, or installed from a memory 502. When the computer program is executed by the processing device 501, it performs the functions defined in the methods of the embodiments of this application.

[0130] It should be noted that the computer-readable storage medium described above in this application can be a computer-readable signal medium or a computer storage medium, or any combination of the two. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this application, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this application, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium may also be any computer-readable storage medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable storage medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0131] The aforementioned computer-readable storage medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.

[0132] The aforementioned computer-readable storage medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to perform the method shown in the above embodiments.

[0133] Computer program code for performing the operations of this application can be written in one or more programming languages ​​or a combination thereof. These programming languages ​​include object-oriented programming languages—such as Java, Smalltalk, and C++—and conventional procedural programming languages—such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a Local Area Network (LAN) or a Wide Area Network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0134] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0135] The modules described in the embodiments of this application can be implemented in software or hardware. The names of the units are not necessarily limiting of the module itself; for example, a record acquisition module can also be described as a "call record acquisition module".

[0136] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0137] This application also provides a computer-readable storage medium storing computer-executable instructions. When a processor executes the computer-executable instructions, it implements the technical solution of the call record processing method in any of the above embodiments. Its implementation principle and beneficial effects are similar to those of the call record processing method. Please refer to the implementation principle and beneficial effects of the call record processing method. It will not be repeated here.

[0138] In the context of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0139] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the technical solution of the call record processing method in any of the above embodiments. Its implementation principle and beneficial effects are similar to those of the call record processing method, and can be found in the implementation principle and beneficial effects of the call record processing method, which will not be repeated here.

[0140] The above description is merely a preferred embodiment of this application and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of disclosure in this application is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features with similar functions disclosed in this application.

[0141] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this application are indicated by the following claims.

[0142] It should be understood that this application is not limited to the precise structure described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this application is limited only by the appended claims.

Claims

1. A method for processing call logs, characterized in that, include: In response to the generation of any call record, the any call record is obtained, wherein the any call record includes the caller's number and the call duration; Read the target call time bitmap corresponding to the call time, wherein the target call time bitmap corresponds to the calling number, and the bits of the target call time bitmap correspond to the time; The bits in the target call time bitmap that have already been written data are identified as the written bits. Based on the call time and the written bits, determine whether any call record is a duplicate call detail record; The step of reading the target call time bitmap corresponding to the call time includes: reading the hour bitmap, minute bitmap and second bitmap corresponding to the call time; the bits in the hour bitmap correspond to the hour, the bits in the minute bitmap correspond to the minute, and the bits in the second bitmap correspond to the second. The step of determining the bits of data already written in the target call time bitmap as written bits includes: in response to any bit in any hour bitmap being a written bit, determining this bit as a first target bit; in response to the minute bitmap corresponding to the first target bit being deleted, or the minute bitmap corresponding to the first target bit not being found, defaulting all bits of the minute bitmap corresponding to the first target bit as written bits; in response to any bit in any minute bitmap being a written bit, determining this bit as a second target bit; in response to the second bitmap corresponding to the second target bit being deleted, or the second bitmap corresponding to the second target bit not being found, defaulting all bits of the second bitmap corresponding to the second target bit as written bits.

2. The method according to claim 1, characterized in that, The step of determining whether any call record is a duplicate call detail record based on the call time and the written bits includes: In response to the hour bitmap or the minute bitmap having at least two written bits corresponding to the same hour or minute as the call time, the call record is determined to be a duplicate call detail record. In response to the second bitmap, if at least one written bit corresponds to the same second as the second corresponding to the call time, the call record is determined to be a duplicate call detail record. In response to the fact that there is a time corresponding to a written bit in the hour bitmap or the minute bitmap that is the same as the time corresponding to the call time, and there is no time corresponding to a written bit in the second bitmap that is the same as the time corresponding to the call time, it is determined that any call record is not a duplicate call detail record. In response to the hour bitmap, minute bitmap and second bitmap, if no written bit corresponds to a time that is the same as the time corresponding to the call time, it is determined that any call record is not a duplicate call detail record.

3. The method according to claim 2, characterized in that, After determining that any of the call records is not a duplicate call detail record, the method further includes: Preset data is written into the bit positions corresponding to the call time in the hour bitmap, minute bitmap, and second bitmap.

4. The method according to any one of claims 1 to 3, characterized in that, Each minute bitmap corresponds to a bit in the hour bitmap, and each second bitmap corresponds to a bit in the minute bitmap. Accordingly, after determining whether any of the call records is a duplicate call detail record, the method further includes: In response to the fact that all bits of any minute bitmap have been written with data, the said minute bitmap is deleted; In response that all bits of any second bitmap have been written with data, the second bitmap is deleted.

5. A call record processing device, characterized in that, The call record processing apparatus is used to implement the call record processing method according to any one of claims 1-4, the apparatus comprising: The record acquisition module is used to acquire any call record in response to its generation, wherein the call record includes the caller's number and the call duration; The bitmap reading module is used to read the target call time bitmap corresponding to the call time, wherein the target call time bitmap corresponds to the calling number, and the bits of the target call time bitmap correspond to the time. A bit determination module is used to determine the bits that have been written data in the target call time bitmap as written bits. The call determination module is used to determine whether any call record is a duplicate call detail record based on the call time and the written bits.

6. An electronic device, characterized in that, include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory, causing the processor to perform the call recording processing method as described in any one of claims 1 to 4.

7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the call record processing method as described in any one of claims 1 to 4.