Call bill duplicate checking method and system

By receiving the phone number object distributed on the server, using the encrypted hash value, phone number type and start time, combined with the Bloom filter and the mapping information table for the reversal checking process, the efficiency of phone number checking in the prior art is solved. The problem of low and large memory usage has achieved efficient and accurate plagiarism checking and reduced network resource consumption.

CN119474141APending Publication Date: 2025-02-18CHINA MOBILE INFORMATION TECHNOLOGY CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411571337.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-05
Publication Date
2025-02-18

AI Technical Summary

Technical Problem

In the prior art, the call-line diversion check method has low query efficiency when the data volume is huge, and as the diversion check fields increase, the memory usage increases, resulting in low diversion check efficiency and large memory usage.

Method used

By receiving the phone number object distributed on the server, determining the encrypted hash value, phone number type and start time based on the phone number object, using the Bloom filter and mapping information table for dilution checking, improving the dilution checking efficiency and reducing the dilution checking efficiency. Consumption of network resources.

Benefits of technology

It has achieved improvement of the accuracy and efficiency of plagiarism checking, reduced the consumption of network resources, and overcomes the problems of low plagiarism checking efficiency and large memory usage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119474141A_ABST
    Figure CN119474141A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of data query, and discloses a call ticket duplicate checking method and system, and the method comprises the steps: receiving a call ticket object distributed by a distribution end, and determining an encrypted hash value, a call ticket type and call ticket starting time based on the call ticket object, the ticket object distributed by the distribution end is generated by the client based on a ticket duplicate checking request; according to the encrypted hash value, the ticket type and the ticket starting time, performing duplicate checking processing on the ticket to be subjected to duplicate checking to obtain a duplicate checking result; and sending the duplicate checking result to the client, so that the client issues the duplicate checking result to each client device. According to the invention, the duplicate checking performance can be improved, the duplicate checking accuracy and efficiency are improved, and the consumption of network resources is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of data query, and in particular to a method and system for checking duplicate calls. Background Art

[0002] In the prior art, in order to perform a unified duplicate check on call slips and avoid duplicate billing or duplicate settlement due to duplicate call slips, causing customer complaints and other problems, it is proposed to save the key field combination for duplicate checking to a relational database, and perform duplicate checking by a data management system, or save the key field combination for duplicate checking to a memory database, and perform duplicate checking in the memory database, or extract the MD5 feature value of the key field combination for duplicate checking, replace the original matching duplicate checking string pattern, and then save it to the memory or database, and perform duplicate checking in the memory or database. However, the efficiency of the relational database query of the existing call slip duplicate checking method will become very low after the amount of data becomes very large, and as the number of duplicate checking fields increases, the memory occupied will increase, resulting in low duplicate checking efficiency and large memory occupation.

[0003] Therefore, how to improve the accuracy and efficiency of duplicate checking and reduce the consumption of network resources is a problem that needs to be solved urgently.

[0004] The above contents are only used to assist in understanding the technical solution of the present application and do not constitute an admission that the above contents are prior art. Summary of the invention

[0005] The main purpose of this application is to provide a method and system for checking duplicate calls, aiming to solve the technical problem of how to improve the accuracy and efficiency of checking duplicate calls and reduce the consumption of network resources.

[0006] To achieve the above purpose, the present application proposes a method for checking duplicate calls, which is applied to a server, and the method includes:

[0007] Receive a call bill object distributed by a distribution end, and determine an encrypted hash value, a call bill type, and a call bill start time based on the call bill object, wherein the call bill object distributed by the distribution end is generated by the client based on a call bill duplicate check request;

[0008] Perform a duplicate check on the call record to be checked for duplicates according to the encrypted hash value, the call record type, and the call record start time, and obtain a duplicate check result;

[0009] The duplicate checking result is sent to the client, so that the client sends the duplicate checking result to each client device.

[0010] In one embodiment, the step of performing duplicate checking processing on the call record to be checked for duplicates according to the encrypted hash value, the call record type, and the call record start time to obtain the duplicate checking result comprises:

[0011] Obtain a first mapping information table of a duplicate checking table, a second mapping information table of a duplicate checking file, and an index table of a duplicate checking file;

[0012] Determine the Bloom filter information of the duplicate call record to be checked based on the encrypted hash value;

[0013] Based on the Bloom filter information, the call record type and the call record start time, the first mapping information table, the second mapping information table and the duplicate checking file index table are queried to perform duplicate checking on the call record to be checked for duplicates, and obtain duplicate checking results.

[0014] In one embodiment, the step of querying the first mapping information table, the second mapping information table, and the duplicate checking file index table based on the Bloom filter information, the call record type, and the call record start time to perform duplicate checking on the call record to be checked for duplicates, and obtaining the duplicate checking result includes:

[0015] Based on the call record type and the call record start time, query the first mapping information table to obtain a first query result, wherein the first mapping information table includes records of different duplicate checking tables;

[0016] When the first query result is that there is a record of a duplicate checking table corresponding to the call record type and the call record start time in the first mapping information table, determining a first duplicate checking result based on the duplicate checking table and the Bloom filter information;

[0017] When the first query result is that there is no record of the duplicate check table corresponding to the call record type and the call record start time in the first mapping information table, query the second mapping information table based on the call record type and the call record start time to obtain a second query result;

[0018] When the second query result is that there is a record of a duplicate checking file corresponding to the call bill type and the call bill start time in the second mapping information table, obtaining a duplicate checking file index table, and determining a second duplicate checking result based on the duplicate checking file index table and the Bloom filter information;

[0019] The plagiarism checking result is determined according to the first plagiarism checking result and the second plagiarism checking result.

[0020] In one embodiment, the step of determining the first duplicate checking result based on the duplicate checking table and the Bloom filter information includes:

[0021] Obtain the duplicate position of the call record to be checked for duplicates in the duplicate checking table;

[0022] Determine the value of each of the duplicate checking bits based on the Bloom filter information;

[0023] When the values ​​of the duplicate checking bits are all first preset values, determining that the first duplicate checking result is that the call order to be checked for duplicates is a duplicate order;

[0024] When the second preset value exists in the value of each of the duplicate checking bits, it is determined that the first duplicate checking result is that the call record to be checked for duplicates is a new call record.

[0025] In one embodiment, the step of obtaining the duplicate checking file index table and determining the second duplicate checking result based on the duplicate checking file index table and the Bloom filter information includes:

[0026] Obtain a duplicate file index table, and perform a consistency check based on the records of the duplicate file index table and the Bloom filter information to obtain a check result;

[0027] When the verification result is consistent, determining the second duplicate checking result is that the call record to be checked for duplicates is a duplicate record;

[0028] When the verification result is inconsistent, determining the duplicate checking file based on the duplicate checking file index table;

[0029] When the record of the call order to be checked for duplicates exists in the duplicate checking file, determining that the second duplicate checking result is that the call order to be checked for duplicates is a duplicate order;

[0030] When the record of the call record to be checked for duplicates does not exist in the duplicate checking file, it is determined that the second duplicate checking result is that the call record to be checked for duplicates is a new call record.

[0031] In addition, to achieve the above purpose, the present application also proposes a call record duplicate checking method, which is applied to a distribution end and includes:

[0032] Receive the call record duplicate check request sent by the client;

[0033] Determine a call record characteristic value based on the call record duplicate check request, and generate a call record object according to the call record characteristic value;

[0034] The call bill object is sent to the server, so that the server performs duplicate checking on the call bill data based on the call bill object.

[0035] In one embodiment, before the step of sending the call record object to the server, the method further includes:

[0036] Get the number information of the duplicate call records to be checked and the total number in the server database;

[0037] Perform a modulo operation on the total number of the server database based on the number information to obtain a modulo operation result;

[0038] The call record object is added to a cache queue based on the modulo operation result.

[0039] In addition, to achieve the above purpose, the present application also proposes a call record duplicate checking method, which is applied to a client and includes:

[0040] Get the call data of the duplicate call to be checked;

[0041] Determine duplicate check request parameter information based on the call list data;

[0042] A call record duplicate check request is generated based on the duplicate check request parameter information, and the call record duplicate check request is sent to the distribution end, so that the distribution end generates a call record object based on the call record duplicate check request.

[0043] In one embodiment, the step of determining duplicate check request parameter information based on the call record data includes:

[0044] Acquire the call sheet type of the call sheet to be checked for duplicates, and determine the duplicate checking field of the call sheet to be checked for duplicates based on the call sheet type;

[0045] Extracting the call bill start time and the encrypted hash value in the call bill data according to the duplicate checking field;

[0046] The duplicate check request parameter information is determined according to the call record type, the call record start time and the encrypted hash value.

[0047] In addition, to achieve the above-mentioned purpose, the present application also proposes a call record duplication checking system, characterized in that the call record duplication checking system includes a server, a distribution end and a client, the call record duplication checking method as described above is executed on the server, the call record duplication checking method as described above is executed on the distribution end, and the call record duplication checking method as described above is executed on the client.

[0048] The present application provides a method for checking duplicate calls, which is applied to a server. The present application first receives a call order object distributed by a distribution terminal, and determines an encrypted hash value, a call order type, and a call order start time based on the call order object, wherein the call order object distributed by the distribution terminal is generated by a client based on a call order checking request; performs a duplicate check on the call order to be checked for duplicates according to the encrypted hash value, the call order type, and the call order start time, and obtains a duplicate check result; and sends the duplicate check result to the client, so that the client sends the duplicate check result to each client device, thereby improving the duplicate check performance, improving the accuracy and efficiency of the duplicate check, and reducing the consumption of network resources.

[0049] In summary, the present application generates a call record object based on a call record duplicate checking request from a client and receives it from a distribution end through a server end, and improves the duplicate checking performance through the interaction among the server end, the distribution end and the client end in the duplicate checking process, thereby reducing the consumption of network resources. Then, the duplicate checking is performed quickly and accurately according to the encrypted hash value, the call record type and the call record start time determined by the call record object, and the duplicate checking results are sent to the client for distribution, thus overcoming the technical defects of low efficiency and large memory usage of call record duplicate checking, and being able to improve the duplicate checking performance, improve the accuracy and efficiency of duplicate checking, and reduce the consumption of network resources. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0051] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0052] Figure 1 A flowchart of a method for checking duplicate calls at a server end according to a first embodiment of the present application;

[0053] Figure 2 A structural diagram of a call record duplicate checking system provided in Embodiment 1 of the call record duplicate checking method applied to a server side of the present application;

[0054] Figure 3 A flow chart of a second embodiment of the method for checking duplicate calls in a server-side call log provided by the present application;

[0055] Figure 4 A schematic diagram of BloomFilter initialization provided in Embodiment 2 of the method for checking duplicate calls in a server side of the present application;

[0056] Figure 5 A schematic diagram of element mapping provided in Embodiment 2 of the method for checking duplicate calls in a server side according to the present application;

[0057] Figure 6 A flowchart of a method for checking duplicate calls in a client according to a first embodiment of the present invention;

[0058] Figure 7 A flowchart of a method for checking duplicate calls at a distribution end is provided in accordance with the present invention.

[0059] The purpose, features and advantages of this application will be further described in conjunction with the embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0060] It should be understood that the specific embodiments described herein are only used to explain the technical solutions of the present application and are not used to limit the present application.

[0061] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.

[0062] The main solution of the embodiment of the present application is: receiving the call bill object distributed by the distribution end, and determining the encrypted hash value, the call bill type and the call bill start time based on the call bill object, wherein the call bill object distributed by the distribution end is generated by the client based on the call bill duplicate check request; performing duplicate check on the call bill to be checked according to the encrypted hash value, the call bill type and the call bill start time to obtain the duplicate check result; sending the duplicate check result to the client, so that the client sends the duplicate check result to each client device.

[0063] In the prior art, in order to perform a unified duplicate check on the call slips, avoid duplicate billing or duplicate settlement due to duplicate call slips, and cause customer complaints and other problems, it is proposed to save the key field combination of duplicate check to a relational database, and perform duplicate check by a data management system, or save the key field combination of duplicate check to a memory database, and perform duplicate check in the memory database, or extract its MD5 feature value after the key field combination of duplicate check, replace the original matching duplicate check string pattern, and then save it to the memory or database, and perform duplicate check in the memory or database. However, the efficiency of the relational database query of the existing call slip duplicate check method will become very low after the amount of data becomes very large, and with the increase of the duplicate check fields, the memory occupied will become more and more, and there are problems of low duplicate check efficiency and large memory occupancy. Therefore, how to improve the accuracy and efficiency of duplicate check and reduce the consumption of network resources is a problem that needs to be solved urgently.

[0064] The present application generates a call record object based on a call record duplicate checking request from a client and receives it from a distribution end through a server end. Through the interaction among the server end, the distribution end and the client end in the duplicate checking process, the duplicate checking performance is improved, and the consumption of network resources is reduced. Then, the duplicate checking is performed quickly and accurately according to the encrypted hash value, the call record type and the call record start time determined by the call record object, and the duplicate checking result is sent to the client for distribution. The technical defects of low efficiency and large memory usage of call record duplicate checking are overcome, and the duplicate checking performance can be improved, the accuracy and efficiency of duplicate checking can be improved, and the consumption of network resources can be reduced.

[0065] Based on this, the embodiment of the present application provides a method for checking duplicate calls, which is applied to the server. Figure 1 , Figure 1This is a flow chart of the first embodiment of the method for checking duplicate calls in a server side according to the present application.

[0066] In this embodiment, the method for checking duplicate calls applied to the server includes steps S10 to S30:

[0067] Step S10, receiving a bill object distributed by a distribution end, and determining an encrypted hash value, a bill type, and a bill start time based on the bill object, wherein the bill object distributed by the distribution end is generated by the client based on a bill duplicate check request.

[0068] It should be noted that the execution subject of this implementation is the server, which is a server responsible for processing and responding to the client's duplicate check request. The server receives the call record object from the distribution end through the network, and performs duplicate check on the call record to be checked according to the call record object. The distribution end is responsible for generating the call record object according to the client's call record duplicate check request and forwarding the call record object to the server's router. The client is the client device that initiates the call record duplicate check request, such as a smart phone, computer, etc.

[0069] It can be understood that a call bill refers to the original record information of communications, which is the billing basis for users' calls, text messages, traffic usage, etc. During the generation, transmission or collection of call bills, duplicate call bills may be generated due to equipment failure, network disconnection, repeated collection, etc. Therefore, it is necessary to perform record-level deduplication on the call bills through call bill duplication checking.

[0070] It is worth noting that a call record object refers to a data structure containing specific call record information, usually including the call record type, encrypted hash value, and call record start time.

[0071] In the specific implementation, the generation of call record objects is based on the client's request. The client sends a call record duplicate checking request to the distribution end through a specific interface or protocol. The distribution end generates the corresponding call record object based on the request and sends it to the server for duplicate checking.

[0072] Step S20, performing a duplicate check on the call record to be checked for duplicates according to the encrypted hash value, the call record type and the call record start time to obtain a duplicate check result.

[0073] It should be noted that the encrypted hash value, i.e., the MD5 encrypted value, refers to a fixed-length string obtained by encrypting specific information of a call sheet through a specific algorithm. This value is unique and can effectively identify duplicate call sheets. The duplicate check key constructed through the MD5 encrypted value summary can quickly locate duplicate call sheet records. The call sheet type is used to distinguish different types of communication records, such as calls, text messages, data traffic, etc. The call sheet duplicate check system configures digital values ​​for various types of call sheets, such as "PGWxxxxx" call sheets correspond to "100", "CHFxxxxx" call sheets correspond to "200", and this correspondence can be configured in the cache, physical database, file, etc. for program reading. The call sheet start time is the starting time point of the call sheet record, which is used to distinguish different call sheet records in the time dimension. Through the combination of these three parameters, the call sheet to be checked for duplicates can be accurately located and effective duplicate checking can be performed.

[0074] It can be understood that duplicate checking refers to the process of determining whether the call record to be checked for duplicates is a duplicate or a new call record, that is, by comparing the call record to be checked for duplicates with the stored call record to determine whether there is a duplication. If there is a duplication, the call record is marked as a duplicate, otherwise it is marked as a new call record.

[0075] Step S30, sending the duplicate checking result to the client, so that the client sends the duplicate checking result to each client device.

[0076] It should be noted that the process of sending the duplicate check results to the client can be carried out through the network. After the client device receives the duplicate check results, it will process the corresponding call record according to the results. For example, if the duplicate check results show that a call record is a duplicate, the client device can automatically ignore the call record to avoid repeated billing or settlement. If it is a new call record, the client device will add it to the list of call records to be processed and carry out subsequent billing or settlement processes.

[0077] It is understandable that the server receives the duplicate check information, determines whether the received bill information is a duplicate bill, and returns the determination result to the client. At the same time, the server saves the information for later duplicate check.

[0078] like Figure 2 As shown, Figure 2The structure diagram of the call duplicate check system is shown in the figure. The call duplicate check system includes a client layer, a routing layer, and a server layer. The client layer includes multiple clients, for example, client 1, client 2, and client 3. The client layer can send request packets and response packets. The routing layer is used for routing distribution and queue caching. The server layer includes the duplicate check business layer application and the distributed memory database. The client layer extracts and sends the duplicate check information to the routing layer. The routing layer routes the duplicate check information to different cluster servers. The server layer receives the duplicate check information, determines whether the received call sheet information is a duplicate call sheet, and returns the judgment result to the client. At the same time, the server will save the information for future duplicate check.

[0079] It is worth mentioning that the communication between the client and the server can adopt multiple protocols, such as HTTP, HTTPS, TCP / IP, etc., to ensure the reliability and efficiency of data transmission.

[0080] The present embodiment provides a method for checking duplicate calls, which is applied to a server. The present embodiment first receives a call order object distributed by a distribution end, and determines an encrypted hash value, a call order type, and a call order start time based on the call order object, wherein the call order object distributed by the distribution end is generated by a client based on a call order checking request; performs a duplicate check on the call order to be checked according to the encrypted hash value, the call order type, and the call order start time to obtain a duplicate check result; sends the duplicate check result to the client, so that the client sends the duplicate check result to each client device, thereby improving the duplicate check performance, improving the accuracy and efficiency of the duplicate check, and reducing the consumption of network resources.

[0081] In summary, in this embodiment, the server receives the call record object generated by the distribution end based on the call record duplicate checking request of the client, and through the interaction among the server, the distribution end and the client in the duplicate checking process, the duplicate checking performance is improved, and the consumption of network resources is reduced. Then, the duplicate checking is performed quickly and accurately according to the encrypted hash value, the call record type and the call record start time determined by the call record object, and the duplicate checking result is sent to the client for distribution, thus overcoming the technical defects of low efficiency and large memory usage of call record duplicate checking, and being able to improve the duplicate checking performance, improve the accuracy and efficiency of duplicate checking, and reduce the consumption of network resources.

[0082] Based on the first embodiment of the present application applied to the server, in the second embodiment of the present application, the same or similar contents as those in the above-mentioned embodiment 1 can be referred to the above introduction, and will not be repeated in the following. Figure 3 , the step S20 further includes steps S201-S202:

[0083] Step S201, obtain the first mapping information table of the duplicate checking table, the second mapping information table of the duplicate checking file, and the duplicate checking file index table.

[0084] It should be noted that the first mapping information table is the mapping information table of the duplicate check table, and the second mapping information table is the mapping information table of the duplicate check file. The duplicate check file index table is used to quickly locate the specific duplicate check file, which contains information such as file name, start time of the time window, end time of the time window, and Bloom algorithm vector bits. Through these mapping information tables and index tables, the system can efficiently perform duplicate check operations, avoiding traversing the entire file system, thereby improving the duplicate check efficiency.

[0085] In the specific implementation, in the distributed memory database, a mapping information table of the duplicate check table and the duplicate check table are established. Each duplicate check table has a corresponding record in the duplicate check table mapping information table. Each record in the duplicate check table mapping information table corresponds to a time window [m_lStartTime, m_lEndTime). If the call record type of a call record = m_llDrType, and the start time of the call record satisfies the condition m_lStartTime <= start_time < m_lEndTime, then this call record is checked for duplicates through the duplicate check table information with the table name m_szTableName. m_lStartTime, m_lEndTime, m_llDrType, and m_szTableName are all fields of the duplicate check table mapping information table. Each duplicate check table stores the Bloom filter algorithm values of the MD5 encrypted values of the partial key fields of the call records whose start times are within the time window. When performing duplicate checks, if all the bits of all hash function values according to the Bloom filter algorithm are 1, it means it is a duplicate call record. If it is not a duplicate call record, the corresponding bits are set to 1, indicating that this call record is a new call record.

[0086] It can be understood that the duplicate check table is used to save the configuration information related to duplicate checks. The m_bloo m0 to m_bloom5 of the duplicate check table together form a vector bit of 192 bits (32X6), which is equivalent to the length m of the bit vector being 192. In this embodiment, the number of hash functions k is 10, and the values of the vector bits corresponding to these 10 hash values are all 1, indicating a duplicate call record. The name format of the duplicate check table is %dr_type%_%start_time%_%end_time%, where dr_type, start_time, and end_time respectively correspond to m_llDrType, m_lStartTime, and m_lEndTime of the duplicate check table mapping information table.

[0087] It is worth noting that the start time and end time of the mapping information table of the duplicate check table are obtained through comprehensive calculation of the call record generation time, time window measurement unit, and time window time span. After the duplicate check table expires, the duplicate check table in memory is converted into a duplicate check file and saved in the specified path.

[0088] Step S202: Determine the Bloom filter information of the call record to be checked for duplicates based on the encrypted hash value.

[0089] It should be noted that the Bloom filter information is generated according to the Bloom filter algorithm and is used to quickly determine whether the call record to be checked for duplicates is a duplicate call record. The Bloom filter information in this embodiment includes 10 hash function values. A Bloom filter is a probabilistic data structure with high space efficiency and is used to determine whether an element is in a set. Its basic principle is to map the element to be judged to a bit array through multiple hash functions. If the values of all mapped positions are 1, it is considered that the element may exist in the set, otherwise it must not exist. In the call record duplicate check system, the Bloom filter can greatly reduce the number of call records that need to be accurately compared, thereby improving the duplicate check efficiency.

[0090] It can be understood that the overall idea of BloomFilter is mainly to use k hash functions to map an element to k positions in the bit vector and set these k positions to 1. When checking whether a certain element exists, it is only necessary to check whether the k bits corresponding to the element are all 1 to indicate whether the element exists.

[0091] It is worth noting that the overall algorithm process of BloomFilter includes: BloomFilter is initialized as a bit vector with a length of m bits, and each bit is initialized to 0, as Figure 4 shown, Figure 4 which is a schematic diagram of BloomFilter initialization; use k mutually independent hash functions, k < m, and each hash function maps the element to the range of {1, m} and sets the corresponding position to 1, as Figure 5 shown, Figure 5 which is a schematic diagram of element mapping. The element x is mapped to three positions 8, 1, and 14 by three hash functions respectively, and these three positions are changed from 0 to 1; if checking whether an element y exists, first step is to use k hash functions to map the element y to k bits, and check whether each bit is 0. If a certain bit is 0, then the element y must not exist. If all are 1, then it may exist.

[0092] Step S203: Query the first mapping information table, the second mapping information table, and the duplicate check file index table based on the Bloom filter information, the call record type, and the call record start time to perform duplicate check processing on the call record to be checked for duplicates, and obtain a duplicate check result.

[0093] It should be noted that the accuracy of duplicate checking can be further improved by utilizing the flow process of Bloom filter information, call record type and call record start time in the mapping information table of the duplicate checking table, the duplicate checking table, the duplicate checking file, the mapping table information of the duplicate checking file and the duplicate checking index table to check the duplicate call records.

[0094] In the specific implementation, when creating the mapping information table and the duplicate checking index table of the duplicate checking file, the expired duplicate checking table information will be backed up to the duplicate checking file, and the records of the duplicate checking table mapping information table corresponding to the duplicate checking table will be deleted, and the deleted and expired records of the mapping information table of the duplicate checking table will be converted into mapping information table records of the duplicate checking file and inserted into the mapping information table of the duplicate checking file, where the duplicate checking index table mainly includes the file name, the start time of the time window, the end time of the time window and the Bloom algorithm vector bit.

[0095] In a feasible implementation manner, in order to improve the accuracy of the duplicate checking results, step S203 may include: querying the first mapping information table based on the call record type and the call record start time to obtain a first query result, wherein the first mapping information table includes records of different duplicate checking tables; when the first query result is that there is a record of the duplicate checking table corresponding to the call record type and the call record start time in the first mapping information table, determining the first duplicate checking result based on the duplicate checking table and the Bloom filter information; when the first query result is that there is no record of the duplicate checking table corresponding to the call record type and the call record start time in the first mapping information table, querying the second mapping information table based on the call record type and the call record start time to obtain a second query result; when the second query result is that there is a record of the duplicate checking file corresponding to the call record type and the call record start time in the second mapping information table, obtaining the duplicate checking file index table, and determining the second duplicate checking result based on the duplicate checking file index table and the Bloom filter information; determining the duplicate checking result according to the first duplicate checking result and the second duplicate checking result.

[0096] It should be noted that before using the call record start time to query the mapping information table, it is necessary to convert the start time parameter of the duplicate call record to be checked, that is, convert the call record start time into the YYYMMDDHHMIS format.

[0097] It can be understood that the mapping information table of the duplicate check table is queried through the call record type and the converted call record start time, and whether the call record to be checked for duplicates is in a certain duplicate check table is determined based on the duplicate check table record in the mapping information table of the duplicate check table. The call record start time is compared with the time window of the mapping information table of the duplicate check table. If start_time≤call record start time<end_time and the call record type of the call record to be queried is consistent with the call record type in the mapping information table of the duplicate check table, it is determined that there is a corresponding duplicate check table record in the mapping information table of the duplicate check table, where start_time is the start time of the time window of the duplicate check table, and end_time is the end time of the time window of the duplicate check table.

[0098] It is worth noting that the start time and end time of the time information window are saved in seconds. For example, 2011 / 10 / 17 00:00:00 is saved in the form of 1321459200 (saving format).

[0099] It is worth noting that if the start time of the call record is not in the time window of the duplicate checking table mapping information table, the duplicate checking file mapping information table is queried to determine whether the start time of the call record is in the time window of the duplicate checking file mapping information table, and then determine whether there is a corresponding record in the duplicate checking file mapping information table. If so, the duplicate checking index table is used to determine whether it is a duplicate order. If the duplicate checking index table cannot determine whether it is a duplicate order, the duplicate checking file is used to determine whether it is a duplicate order.

[0100] In a feasible implementation manner, in order to improve the accuracy of the duplicate checking results, the step of determining the first duplicate checking result based on the duplicate checking table and the Bloom filter information includes: obtaining the duplicate checking position of the call order to be checked for duplicates in the duplicate checking table; determining the value of each of the duplicate checking positions based on the Bloom filter information; when the value of each of the duplicate checking positions is a first preset value, determining that the first duplicate checking result is that the call order to be checked for duplicates is a duplicate order; when there is a second preset value in the value of each of the duplicate checking positions, determining that the first duplicate checking result is that the call order to be checked for duplicates is a new call order.

[0101] It should be noted that the first preset value may be 1, and the second preset value may be 0, which is not specifically limited in this embodiment.

[0102] It can be understood that the Bloom filter information includes 10 hash function values. The 10 hash values ​​are traversed to obtain the offset and duplicate bit of the call order to be checked in the duplicate check table, and check whether the hash values ​​corresponding to all duplicate bits in the Bloom bit vector are 1. If they are all 1, it means that the call order to be checked is a duplicate. If a bit is 0, it means that the call order to be checked is a new call order, and the bit needs to be set to 1.

[0103] In a feasible implementation manner, in order to improve the accuracy of duplicate checking results, the step of obtaining a duplicate checking file index table and determining a second duplicate checking result based on the duplicate checking file index table and the Bloom filter information includes: obtaining a duplicate checking file index table, and performing a consistency check based on the records of the duplicate checking file index table and the Bloom filter information to obtain a check result; when the check result is consistent, determining that the second duplicate checking result is that the call order to be checked for duplicates is a duplicate order; when the check result is inconsistent, determining the duplicate checking file based on the duplicate checking file index table; when there is a record of the call order to be checked for duplicates in the duplicate checking file, determining that the second duplicate checking result is that the call order to be checked for duplicates is a duplicate order; when there is no record of the call order to be checked for duplicates in the duplicate checking file, determining that the second duplicate checking result is that the call order to be checked for duplicates is a new call order.

[0104] It should be noted that the duplicate check index table mainly includes the file name, time window start time, time window end time and Bloom algorithm vector position. The expired data of the duplicate check table will be exported as a duplicate check file regularly. The record of the duplicate check index table is an index query of the duplicate check file. When the mapping information table of the duplicate check table cannot find the record information, the mapping table information table of the duplicate check file will be queried. The duplicate check file index table is found through the duplicate check file mapping table information table. The duplicate check file is found through the duplicate check file index table. The duplicate check file also retains the value calculated by the Bloom algorithm. The judgment method of duplicate checking is the same as that of the duplicate check table, except that one is effective data and the other is expired data.

[0105] It is understandable that for the records of the mapping information table of the expired duplicate check table, the system regularly backs up the corresponding duplicate check table records to the duplicate check file, converts the records into the mapping information table records of the duplicate check file, and inserts them into the mapping information table of the duplicate check file. The mapping information table records of expired duplicate check files and the corresponding duplicate check index table will be deleted regularly. Specify the maximum number of time windows that can be used. If the saturation state is reached, the server will swap out the infrequently used call list information from the memory.

[0106] It is worth mentioning that by querying the duplicate search index table, it is determined whether the duplicate search index table record is consistent with the Bloom filter information of the duplicate search call order. If they are consistent, it is a duplicate order. If not, then check whether the Bloom filter information corresponding to the duplicate search file is a duplicate order. If it is a duplicate order, the duplicate order information is written into the duplicate search index table to facilitate subsequent duplicate order queries.

[0107] It is worth noting that for each duplicate check, the server needs to save the previous duplicate check information in order to determine whether the duplicate check information is a duplicate call. For a new call, the information returned to the client is that the duplicate check is successful, and the error code is 0. The duplicate check server can process multiple call check information at a time. Determine whether the service saves the previous duplicate check information to determine whether the duplicate check information sent this time is a duplicate call. The duplicate check information is saved in the duplicate check table, and the necessary attribute information of the duplicate check table is saved in the duplicate check table mapping information table. Create a duplicate check table based on the call record generation time accompanied by the duplicate check information.

[0108] In this embodiment, the Bloom filter information of the call record to be checked for duplicates is determined by using an encrypted hash value, and then the Bloom filter information, call record type, and call record start time are used to perform duplicate checking on the call record to be checked for duplicates through the flow process in the mapping information table of the duplicate checking table, the duplicate checking table, the duplicate checking file, the mapping table information of the duplicate checking file, and the duplicate checking index table, thereby further improving the accuracy of duplicate checking.

[0109] It should be noted that the above examples are only used to understand the present application and do not constitute a limitation on the call record duplicate checking method of the present application. More simple transformations based on this technical concept are all within the protection scope of the present application.

[0110] The present application also provides a method for checking duplicate calls. The method is applied to a client. Figure 6 , Figure 6 This is a flow chart of the first embodiment of the method for checking duplicate calls in a client terminal according to the present application.

[0111] In this embodiment, the method for checking duplicate calls applied to a client includes steps S01 to S03:

[0112] Step S01, obtaining the call record data of the duplicate call record to be checked.

[0113] It should be noted that the execution subject of this embodiment is the client, and the client is configured with multiple duplicate checking applications. A single duplicate checking application adopts multi-threaded control, and two threads are allocated to each replica set for call record processing. Multiple duplicate checking programs can be deployed on each business process to increase concurrency capabilities. The client is responsible for initiating duplicate checking requests.

[0114] It is understandable that after the client receives the call record duplicate check request after the upstream business link has completed the processing, the call record data of the call record to be checked for duplicates is collected. The call record data includes but is not limited to the unique identifier of the call record, the calling party number, the called party number, the call duration, the call start time, the call end time and other information. This embodiment does not impose specific restrictions on this.

[0115] Step S02: determining duplicate check request parameter information based on the call record data.

[0116] It should be noted that the duplicate check request parameter information refers to the necessary information carried when sending a duplicate check request to the server, including but not limited to the call record type, encrypted hash value, and call record start time of the call record to be checked for duplicates. The client generates the duplicate check request parameter information based on the call record data to ensure that the server can accurately perform duplicate check processing.

[0117] In a feasible implementation manner, in order to ensure that the duplicate checking process is more accurate and efficient, step S02 may include: obtaining the call record type of the call record to be checked for duplicates, and determining the duplicate checking field of the call record to be checked for duplicates based on the call record type; extracting the call record start time and the encrypted hash value in the call record data according to the duplicate checking field; determining the duplicate checking request parameter information according to the call record type, the call record start time and the encrypted hash value.

[0118] It should be noted that call records include but are not limited to voice calls, video calls, text messages and other communication methods. The call record type is the digital value configured by the system for each type of call record. For example, "PGWxxxxx" call records correspond to "100", "CHFxxxxx" call records correspond to "200". This correspondence can be configured in cache, physical database, file, etc. for program reading, and reading the duplicate checking field in the call record according to the call record type. By accurately defining the call record type, the duplicate checking process can be ensured to be more accurate and efficient.

[0119] It can be understood that the encrypted hash value, namely the MD5 encrypted value, refers to a string of fixed length obtained by encrypting the specific information of the call sheet through a specific algorithm. This value is unique and can effectively identify duplicate call sheets. The duplicate check key constructed through the MD5 encrypted value summary can quickly locate duplicate call sheet records.

[0120] In a specific implementation, extracting the call start time and the encrypted hash value in the call bill data according to the duplicate check field means extracting the field corresponding to the call bill type from the call bill data. For example, for a call bill of type "PGWxxxxx", the call start time and the corresponding MD5 encrypted hash value are extracted, and then, the duplicate check request parameter information is generated in combination with the call bill type, call start time and encrypted hash value to ensure that the server can perform accurate duplicate check processing based on these parameter information.

[0121] Step S03: Generate a call record duplicate check request based on the duplicate check request parameter information, and send the call record duplicate check request to the distribution end, so that the distribution end generates a call record object based on the call record duplicate check request.

[0122] It should be noted that the client constructs a duplicate call request based on the duplicate call request parameter information such as the call record type, call record start time, and encrypted hash value, and sends it to the distribution end. Sending the duplicate call request to the distribution end can be achieved in many ways, such as through a network interface, a message queue, etc. After receiving the duplicate call request, the distribution end is responsible for distributing the request to the corresponding server for processing.

[0123] It is understandable that a call record object refers to a data structure containing specific call record information, usually including the call record type, encrypted hash value, and call record start time. After receiving the call record duplicate check request, the distribution end generates a call record object and is responsible for distributing the call record object to the corresponding server for duplicate check processing. During the distribution process, the distribution end will route the request to the appropriate duplicate check service node based on the call record type, call record start time, and encrypted hash value in the call record object, so as to ensure that the call record duplicate check request is processed efficiently while avoiding unnecessary network transmission and resource waste.

[0124] It is worth noting that after sending the duplicate check request to the distribution end, the client will wait for the response from the server. After receiving the call order object, the server will perform a matching query based on the data tables of the call order object in the distributed memory database. If the duplicate check result shows that the call order is a duplicate call order, the server will return an error code, such as "1", indicating that the duplicate check failed. After receiving the error code, the client will mark the call order as a duplicate order.

[0125] The present embodiment provides a method for checking duplicate calls, which is applied to a client. The present embodiment first obtains call bill data of a call bill to be checked for duplicates; determines duplicate check request parameter information based on the call bill data; generates a call bill duplicate check request based on the duplicate check request parameter information, and sends the call bill duplicate check request to a distribution end, so that the distribution end generates a call bill object based on the call bill duplicate check request, thereby effectively improving the efficiency of duplicate checking and reducing the consumption of network resources.

[0126] In summary, in this embodiment, the client determines the duplicate check request parameter information and generates a call bill duplicate check request based on the call bill data to be checked for duplicates, and the client sends the call bill duplicate check request to the distribution end to generate a call bill object, which can effectively improve the duplicate check efficiency, reduce unnecessary data processing and storage through multi-terminal information interaction, and effectively reduce the load of network transmission.

[0127] The present application also provides a method for checking duplicate calls. The method is applied to a distribution end. Figure 7 , Figure 7 This is a flow chart of the first embodiment of the method for checking duplicate calls at a distribution end of the present application.

[0128] In this embodiment, the method for checking duplicate calls applied to the distribution end includes steps S04 to S06:

[0129] Step S04: receiving a call record duplicate checking request sent by the client.

[0130] It should be noted that the execution subject in this embodiment is the distribution end, which is responsible for generating a call bill object according to the client's call bill duplicate check request and forwarding the call bill object to the router of the server.

[0131] It is understandable that the call record duplicate check request is usually sent to the distribution end through a network interface or a message queue. After receiving the call record duplicate check request, the distribution end will perform preliminary verification and analysis to ensure the validity and integrity of the request. Once the request is confirmed to be valid, the distribution end will make a routing decision based on the information in the call record object, such as the call record type, call record start time, and encrypted hash value, and forward the request to the appropriate duplicate check service node.

[0132] Step S05: determining a call record characteristic value based on the call record duplicate check request, and generating a call record object according to the call record characteristic value.

[0133] It should be noted that the call record feature value refers to a numerical value or string that can reflect the key information of the call record, for example, it can be the MD5 encrypted hash value of the call record, the call start time, the call record type, etc. Through these feature values, different call record records can be quickly identified and distinguished.

[0134] It is understood that a call record object refers to a data structure containing specific call record information. When generating a call record object, the distribution end will integrate these call record feature values ​​into the call record object to ensure that the server can accurately identify and match the corresponding record when processing the call record object.

[0135] Step S06: sending the call bill object to the server, so that the server performs duplicate checking on the call bill data based on the call bill object.

[0136] It should be noted that sending the call order object to the server can be achieved in many ways, such as through a network interface, a message queue, etc. After receiving the call order object, the server will perform a matching query based on the data tables of the call order object in the distributed memory database. If the duplicate check result shows that the call order is a duplicate call order, the server will return an error code, such as "1", indicating that the duplicate check failed. After receiving the error code, the client will mark the call order as a duplicate order.

[0137] In a feasible implementation, in order to improve the resource utilization of the application cluster and the data center, before step S06, it can also include: obtaining the number information of the call record to be checked for duplicates and the total number of the server library; performing a modulo operation on the total number of the server library based on the number information to obtain a modulo operation result; and adding the call record object to the cache queue based on the modulo operation result.

[0138] It should be noted that the number information of the call sheet to be checked for duplicates refers to the unique identifier of the call sheet, that is, the mobile phone number of the call sheet. The total number of server libraries refers to the number of duplicate checking applications in the server cluster. Through modulo operations, the call sheet objects can be evenly distributed to different server nodes, thereby achieving load balancing and avoiding bottlenecks caused by a certain node processing too many requests. The cache queue is used to temporarily store the call sheet objects to be processed, ensuring that the call sheet objects will not be lost in high concurrency situations and can be processed in order.

[0139] It is understandable that the result of the modulo operation can determine to which cache queue of the duplicate checking application the call record object is added. For example, if the result of the modulo operation is 0, the call record object is added to cache queue A; if the result is 1, it is added to cache queue B, and so on. In this way, it can be ensured that the number of call record objects in each cache queue is roughly the same, thereby achieving a balanced allocation of resources. Adding call record objects to the cache queue is asynchronous with writing data nodes to the cache queue, and is processed in different threads respectively, which can improve the resource utilization of the application cluster and the data center.

[0140] It is worth noting that by performing preliminary processing and routing decisions on call record duplicate checking requests at the distribution end, and achieving load balancing through modulo operations, the efficiency of call record duplicate checking and the resource utilization of the system are effectively improved, ensuring the efficient, stable and reliable operation of the call record duplicate checking service.

[0141] The present embodiment provides a method for checking duplicate calls, which is applied to a distribution end. The present embodiment first receives a call record duplicate checking request sent by a client; determines a call record feature value based on the call record duplicate checking request, and generates a call record object according to the call record feature value; and sends the call record object to a server end, so that the server end performs duplicate checking on the call record data based on the call record object, thereby effectively improving the accuracy of duplicate checking and reducing the consumption of network resources.

[0142] In summary, this embodiment determines the call record characteristic value through the call record duplicate check request sent by the distribution end client, and then integrates the single characteristic value into the call record object and sends it to the server for duplicate checking of the call record data, which can effectively improve the accuracy of duplicate checking and effectively reduce the load of network transmission through multi-terminal information interaction.

[0143] In addition, to achieve the above-mentioned purpose, the present application also proposes a call record duplication checking system, characterized in that the call record duplication checking system includes a server, a distribution end and a client, the call record duplication checking method as described above is executed on the server, the call record duplication checking method as described above is executed on the distribution end, and the call record duplication checking method as described above is executed on the client.

[0144] The call duplicate checking system provided by the present application adopts the call duplicate checking method in the above embodiment, which can solve the technical problem of how to improve the accuracy and efficiency of duplicate checking and reduce the consumption of network resources, and can achieve the improvement of duplicate checking performance, improve the accuracy and efficiency of duplicate checking, and reduce the consumption of network resources. Compared with the prior art, the beneficial effects of the call duplicate checking system provided by the present application are the same as the beneficial effects of the call duplicate checking method provided by the above embodiment, and the other technical features of the call duplicate checking system are the same as the features disclosed in the above embodiment method, which will not be repeated here.

[0145] The above descriptions are only some embodiments of the present application, and are not intended to limit the patent scope of the present application. All equivalent structural changes made using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect applications in other related technical fields are included in the patent protection scope of the present application.

Claims

1. A method for checking duplicate calls, characterized in that: The method for checking duplicate calls is applied to a server, and the method comprises: Receive a call bill object distributed by a distribution end, and determine an encrypted hash value, a call bill type, and a call bill start time based on the call bill object, wherein the call bill object distributed by the distribution end is generated by the client based on a call bill duplicate check request; Perform a duplicate check on the call record to be checked for duplicates according to the encrypted hash value, the call record type, and the call record start time, and obtain a duplicate check result; The duplicate checking result is sent to the client, so that the client sends the duplicate checking result to each client device.

2. The method according to claim 1, characterized in that The step of performing duplicate checking processing on the call record to be checked for duplicates according to the encrypted hash value, the call record type and the call record start time to obtain the duplicate checking result comprises: Obtain a first mapping information table of a duplicate checking table, a second mapping information table of a duplicate checking file, and an index table of a duplicate checking file; Determine the Bloom filter information of the duplicate call record to be checked based on the encrypted hash value; Based on the Bloom filter information, the call record type and the call record start time, the first mapping information table, the second mapping information table and the duplicate checking file index table are queried to perform duplicate checking on the call record to be checked for duplicates, and obtain duplicate checking results.

3. The method according to claim 2, characterized in that The step of querying the first mapping information table, the second mapping information table, and the duplicate checking file index table to perform duplicate checking on the call record to be checked based on the Bloom filter information, the call record type, and the call record start time, and obtaining the duplicate checking result comprises: Based on the call record type and the call record start time, query the first mapping information table to obtain a first query result, wherein the first mapping information table includes records of different duplicate checking tables; When the first query result is that there is a record of a duplicate checking table corresponding to the call record type and the call record start time in the first mapping information table, determining a first duplicate checking result based on the duplicate checking table and the Bloom filter information; When the first query result is that there is no record of the duplicate check table corresponding to the call record type and the call record start time in the first mapping information table, query the second mapping information table based on the call record type and the call record start time to obtain a second query result; When the second query result is that there is a record of a duplicate checking file corresponding to the call bill type and the call bill start time in the second mapping information table, obtaining a duplicate checking file index table, and determining a second duplicate checking result based on the duplicate checking file index table and the Bloom filter information; The plagiarism checking result is determined according to the first plagiarism checking result and the second plagiarism checking result.

4. The method according to claim 3, characterized in that The step of determining the first duplicate checking result based on the duplicate checking table and the Bloom filter information comprises: Obtain the duplicate position of the call record to be checked for duplicates in the duplicate checking table; Determine the value of each of the duplicate checking bits based on the Bloom filter information; When the values ​​of the duplicate checking bits are all first preset values, determining that the first duplicate checking result is that the call order to be checked for duplicates is a duplicate order; When the second preset value exists in the value of each of the duplicate checking bits, it is determined that the first duplicate checking result is that the call record to be checked for duplicates is a new call record.

5. The method according to claim 3, characterized in that The step of obtaining the duplicate checking file index table and determining the second duplicate checking result based on the duplicate checking file index table and the Bloom filter information includes: Obtain a duplicate file index table, and perform a consistency check based on the records of the duplicate file index table and the Bloom filter information to obtain a check result; When the verification result is consistent, determining the second duplicate checking result is that the call record to be checked for duplicates is a duplicate record; When the verification result is inconsistent, determining the duplicate checking file based on the duplicate checking file index table; When the record of the call order to be checked for duplicates exists in the duplicate checking file, determining that the second duplicate checking result is that the call order to be checked for duplicates is a duplicate order; When the record of the call record to be checked for duplicates does not exist in the duplicate checking file, it is determined that the second duplicate checking result is that the call record to be checked for duplicates is a new call record.

6. A method for checking duplicate calls, characterized in that: The method for checking duplicate calls is applied to a distribution end, and the method comprises: Receive the call record duplicate check request sent by the client; Determine a call record characteristic value based on the call record duplicate check request, and generate a call record object according to the call record characteristic value; The call bill object is sent to the server, so that the server performs duplicate checking on the call bill data based on the call bill object.

7. The method according to claim 6, characterized in that Before the step of sending the call record object to the server, the method further includes: Get the number information of the duplicate call records to be checked and the total number in the server database; Perform a modulo operation on the total number of the server database based on the number information to obtain a modulo operation result; The call record object is added to a cache queue based on the modulo operation result.

8. A method for checking duplicate calls, characterized in that: The method for checking duplicate calls is applied to a client, and the method comprises: Get the call data of the duplicate call to be checked; Determine duplicate check request parameter information based on the call list data; A call record duplicate check request is generated based on the duplicate check request parameter information, and the call record duplicate check request is sent to the distribution end, so that the distribution end generates a call record object based on the call record duplicate check request.

9. The method according to claim 8, characterized in that The step of determining duplicate check request parameter information based on the call list data comprises: Acquire the call sheet type of the call sheet to be checked for duplicates, and determine the duplicate checking field of the call sheet to be checked for duplicates based on the call sheet type; Extracting the call bill start time and the encrypted hash value in the call bill data according to the duplicate checking field; The duplicate check request parameter information is determined according to the call record type, the call record start time and the encrypted hash value.

10. A call record duplicate checking system, characterized in that: The call record duplication checking system includes a server, a distribution end and a client end. The server end executes the call record duplication checking method as described in any one of claims 1 to 5, the distribution end executes the call record duplication checking method as described in claim 6 or 7, and the client end executes the call record duplication checking method as described in claim 8 or 9.