Call transfer method based on multi-level double bloom filter and conflict set and application

By employing a multi-level double Bloom filter and conflict set approach, the high SMS sending failure rate in number portability scenarios was resolved, enabling efficient and accurate number attribution query and dynamic updates, thereby improving SMS sending success rate and system resource utilization.

CN122372978APending Publication Date: 2026-07-10FUJIAN FUJITSU COMM SOFTWARE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
FUJIAN FUJITSU COMM SOFTWARE CO LTD
Filing Date
2026-03-27
Publication Date
2026-07-10

AI Technical Summary

Technical Problem

Existing SMS sending systems suffer from insufficient query efficiency and accuracy in number portability scenarios, resulting in high SMS sending failure rates, a lack of dynamic update mechanisms, and significant resource waste.

Method used

A multi-level double Bloom filter and conflict set approach is adopted. By grouping data according to portability status, operator and province/city, a multi-level Bloom filter set is constructed. Double Bloom cross-validation is used to filter number attribution. Combined with the precise storage of conflict sets and the error code-driven dynamic update mechanism, the accuracy of queries and the freshness of data are ensured.

Benefits of technology

It improved the efficiency and accuracy of number attribution lookup, reduced the SMS sending failure rate, enhanced system resource utilization efficiency, and ensured high-concurrency and low-latency SMS routing services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122372978A_ABST
    Figure CN122372978A_ABST
Patent Text Reader

Abstract

This invention discloses a number portability method and its application based on multi-level double Bloom filters and conflict sets. The method first groups number portability data into multiple levels according to portability status, operator, and province / city, and then constructs a Bloom filter for each group. During querying, a two-level cross-validation of the "ported" and "not ported" Bloom filters quickly predicts the number's affiliation. For conflicting numbers where both Bloom filters match, a small, precise conflict set is used for adjudication to ensure accurate results. This method innovatively introduces an error code-driven dynamic update mechanism: when an SMS delivery receipt indicates a routing error, it automatically triggers real-time querying, route correction, and synchronous updates of the local Bloom filter and conflict set, achieving data self-correction. This invention significantly improves addressing speed, success rate, and system resource utilization in large-scale SMS delivery scenarios under number portability conditions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of mobile communication technology, and in particular to a number portability method and application based on multi-level double Bloom filters and collision sets. Background Technology

[0002] Mobile number portability (MNP) allows users to switch basic telecommunications operators without changing their mobile phone number, but it poses a significant challenge to the real-time and accurate routing of communication services such as SMS and voice messages. In SMS sending scenarios, the platform must accurately determine the current operator of each target number in order to select the correct channel for delivery. Incorrect routing will directly lead to SMS delivery failure, affecting user experience and service accessibility.

[0003] In existing SMS sending and carrier addressing services, the identification and routing of number portability (NMP) numbers typically rely on NMP databases and query interfaces provided by carriers or authoritative data sources. Common industry solutions include: establishing dedicated lines or API interfaces with the three major telecom operators or the Ministry of Industry and Information Technology to call the NMP query service in real time before sending SMS messages to obtain the target number's current carrier information; to reduce the latency and interface pressure of real-time queries, platforms generally deploy local caching mechanisms to store recent query results or full NMP data in a high-speed cache system (or relational database), and periodically perform full or incremental updates with authoritative data sources.

[0004] However, traditional caching often relies on a single data structure, which can easily affect query efficiency and accuracy in scenarios with large data volumes and frequent updates. Existing solutions mainly rely on simple retries to handle SMS sending failures, lacking a linkage and update mechanism with number portability data. This results in some numbers still being incorrectly routed after porting, increasing the sending failure rate and wasting resources. Summary of the Invention

[0005] The purpose of this invention is to provide a number portability method and application based on multi-level double Bloom filters and collision sets. The query and verification based on double Bloom filters and precise collision sets offer significant advantages in terms of number lookup efficiency, accuracy, and dynamic adaptability.

[0006] The technical solution adopted in this invention is:

[0007] The number portability method based on multi-level double Bloom filters and collision sets includes the following steps:

[0008] Acquire mobile number portability data and group the data into multiple levels according to portability status, operator, and province / city.

[0009] For each group, a corresponding Bloom filter is constructed to form a multi-level Bloom filter set; and a collision set is initialized to store the numbers that collide after cross-validation by the double Bloom filter and their corresponding attribution information;

[0010] Extract the target number based on the SMS sending request, determine the corresponding province, city and operator dimension based on the number segment information of the target number, query the multi-level Bloom filter set and conflict set of the corresponding province, city and operator dimension based on the target number to determine the operator to which the target number belongs, and send the SMS according to the corresponding operator channel;

[0011] The system monitors SMS delivery receipts. When a preset porting error code is detected, it triggers a real-time query to obtain the latest attribution information of the target number and resends the SMS based on the latest attribution information. Simultaneously, it updates the multi-level Bloom filter set and the associated data of the target number in the conflict set.

[0012] Furthermore, the number portability status includes two categories: "number ported to another network" and "number not ported to another network".

[0013] Furthermore, when constructing a Bloom filter for each group, the size of the bit array and the number of hash functions of the Bloom filter are configured independently based on the amount of data for the corresponding number within the group.

[0014] Furthermore, the conflict set is implemented using the Redis Set data structure.

[0015] Specifically, as a feasible implementation, the present invention is applied to an SMS sending platform, wherein the multi-level Bloom filter set and the precise collision set are deployed in the local memory or high-speed storage of the SMS platform.

[0016] Furthermore, the implementation of determining the carrier of a target number by querying the multi-level Bloom filter set and conflict set corresponding to the province, city, and carrier dimensions includes:

[0017] Based on the target number, perform a first-level query in the "Portable" Bloom filter at the corresponding province / city and operator dimensions in the multi-level Bloom filter set;

[0018] If the first-level query fails to find the target number, it is determined that the target number is a non-portable number, and the SMS is sent through the original operator's channel.

[0019] If the first-level query is hit, then a second-level cross-validation query is performed in the "untransferred" Bloom filter of the corresponding dimension.

[0020] If the second-level cross-validation query fails, the target number is determined to be a ported number, and an SMS is sent through the new operator's channel. If the second-level cross-validation query succeeds, the conflict set is queried or the real-time query interface is called to determine the final operator of the target number, and an SMS is sent through the final operator's channel.

[0021] Furthermore, the implementation of querying the conflict set or calling the real-time query interface to determine the final carrier of the target number includes:

[0022] If the second-level cross-validation query is successful, the conflict set is queried. If the target number is found in the conflict set, the accurate attribution information stored in the conflict set is obtained as the final attribution operator for sending SMS messages to the target number. If the target number is not found in the conflict set, the external real-time query interface is called to confirm the attribution information, the confirmation result is updated to the conflict set, and the updated attribution information is used as the final attribution operator for sending SMS messages to the target number.

[0023] Furthermore, the preset porting error codes include "number attribution error" or "routing failure" error codes.

[0024] Furthermore, the present invention also includes a periodic synchronization step: periodically synchronizing full or incremental number portability data from the data source, and reconstructing a multi-level Bloom filter set based on the synchronized data to replace the old version.

[0025] Furthermore, the present invention also includes a log recording step: recording the Bloom filter hit status, conflict set query status, error code trigger count, and update operations during the number query process, for system analysis and optimization.

[0026] This invention provides a terminal, including a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, it implements the steps of the number portability method based on multi-level double Bloom filters and collision sets.

[0027] Specifically, the terminal is an SMS gateway server or a business server that integrates SMS routing functionality.

[0028] The present invention provides a computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, it implements the steps of the number portability method based on multi-level double Bloom filters and collision sets.

[0029] This invention, employing the above technical solutions, offers the following advantages compared to existing technologies: 1) By constructing Bloom filters based on portability status and provincial / municipal levels, it achieves data partitioning and rapid location. 2) Through cross-validation of ported and non-ported Bloom filters, it quickly filters number affiliation, reducing the false positive rate. 3) For conflicting numbers where both Bloom filters match, a small conflict set (e.g., a Redis Set) is used for precise storage, ensuring 100% accuracy. 4) During SMS sending, if a specific error code is received, the system automatically triggers a resend process and synchronously updates the Bloom filter and conflict set data, achieving dynamic correction of number portability information, thereby improving addressing accuracy, sending success rate, and system resource utilization efficiency. 5) It supports scheduled and real-time updates of full or incremental data, ensuring data freshness and query accuracy. Attached Figure Description

[0030] The present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments;

[0031] Figure 1 This is a flowchart illustrating the number portability method based on multi-level dual Bloom filters and collision sets according to the present invention.

[0032] Figure 2 This is a schematic diagram of the periodic synchronization and log recording process of this invention. Detailed Implementation

[0033] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings.

[0034] like Figure 1 As shown in the figure, a specific embodiment of the present invention discloses a number portability method based on multi-level double Bloom filters and collision sets, including the following steps:

[0035] Acquire mobile number portability data and group the data into multiple levels according to portability status, operator, and province / city.

[0036] For each group, a corresponding Bloom filter is constructed to form a multi-level Bloom filter set; and a collision set is initialized to store the numbers that collide after cross-validation by the double Bloom filter and their corresponding attribution information;

[0037] Extract the target number based on the SMS sending request, determine the corresponding province, city and operator dimension based on the number segment information of the target number, query the multi-level Bloom filter set and conflict set of the corresponding province, city and operator dimension based on the target number to determine the operator to which the target number belongs, and send the SMS according to the corresponding operator channel;

[0038] The system monitors SMS delivery receipts. When a preset porting error code is detected, it triggers a real-time query to obtain the latest attribution information of the target number and resends the SMS based on the latest attribution information. Simultaneously, it updates the multi-level Bloom filter set and the associated data of the target number in the conflict set.

[0039] As one feasible implementation method, the aforementioned number portability data is first initially classified according to portability status, including "number portability already ported" and "number portability not ported". As a further implementation method, based on the portability status classification, the number portability data is further subdivided by operators such as China Mobile, China Unicom, and China Telecom. As a further implementation method, based on the operator subdivision of the number portability data, it is further grouped by province and city, forming multi-level data grouping.

[0040] Furthermore, when constructing a Bloom filter for each group, the size of the Bloom filter's bit array and the number of hash functions are configured independently based on the amount of data for the numbers within the corresponding group. Specifically, as a feasible implementation, a Bloom filter is constructed for each combination of "portability status + operator + province / city," and the corresponding set of numbers is stored.

[0041] Furthermore, as a supplementary implementation, the specific embodiment of the present invention also includes a periodic synchronization step: periodically synchronizing full or incremental number portability data from the data source, and reconstructing a multi-level Bloom filter set based on the synchronized data to replace the old version.

[0042] Furthermore, the aforementioned conflict set is implemented using a Redis Set data structure to store conflict numbers that are hit in both Bloom filters. Specifically, as a feasible implementation, this invention is applied to an SMS sending platform, where the constructed multi-level Bloom filter set and conflict set are deployed in the local memory or high-speed storage of the SMS platform.

[0043] Furthermore, the implementation of determining the carrier of a target number by querying the multi-level Bloom filter set and conflict set corresponding to the province, city, and carrier dimensions includes:

[0044] Based on the target number, perform a first-level query in the "Portable" Bloom filter at the corresponding province / city and operator dimensions in the multi-level Bloom filter set;

[0045] If the first-level query fails to find the target number, it is determined that the target number is a non-portable number, and the SMS is sent through the original operator's channel.

[0046] If the first-level query is hit, then a second-level cross-validation query is performed in the "untransferred" Bloom filter of the corresponding dimension.

[0047] If the second-level cross-validation query fails, the target number is determined to be a ported number, and an SMS is sent through the new operator's channel. If the second-level cross-validation query succeeds, the conflict set is queried or the real-time query interface is called to determine the final operator of the target number, and an SMS is sent through the final operator's channel.

[0048] Furthermore, the implementation of querying the conflict set or calling the real-time query interface to determine the final carrier of the target number includes:

[0049] If the second-level cross-validation query is successful, the conflict set is queried. If the target number is found in the conflict set, the accurate attribution information stored in the conflict set is obtained as the final attribution operator for sending SMS messages to the target number. If the target number is not found in the conflict set, the external real-time query interface is called to confirm the attribution information, the confirmation result is updated to the conflict set, and the updated attribution information is used as the final attribution operator for sending SMS messages to the target number.

[0050] Specifically, when an SMS sending task arrives, the called number is extracted, and the local query process begins. First, a first-level Bloom check is performed. Based on the number's province / city and carrier region, the query is first performed in the "Portable" Bloom filter. If no match is found, it is directly determined as a non-portable number, and the SMS is sent through the original carrier's channel. If the first-level Bloom check finds a match, the query is then performed in the corresponding "Non-Portable" Bloom filter. If the non-portable Bloom check does not find a match, it is determined as a portable number, and the SMS is sent through the new carrier's channel. If the non-portable Bloom check finds a match, the query proceeds to the conflict set. The number is searched in the Redis Set's conflict set; if it exists, the SMS is sent according to the stored accurate attribution; if it does not exist, the real-time interface is called to confirm and update the conflict set.

[0051] Furthermore, the preset portability error codes include "incorrect number attribution" or "routing failure" error codes. Specifically, as a specific implementation method, SMS messages are sent by calling the SMS gateway API through a determined operator channel. The system monitors error codes in the SMS receipt, especially portability-related errors such as "incorrect number attribution" or "routing failure." If a relevant error code is detected, the system immediately calls the real-time portability query interface to obtain the latest attribution information and resends the SMS message through the correct channel. Simultaneously, the latest query results are updated to the corresponding Bloom filter and conflict set to maintain data real-time performance.

[0052] Furthermore, such as Figure 2 As shown in the figure, as a further supplementary implementation method, the above-mentioned number portability data is obtained from the operator or authoritative data platform, including the full and incremental data of number portability, including the number, the current operator, and the province and city information.

[0053] Furthermore, as a further supplementary implementation, the present invention also includes a log recording step: recording the Bloom filter hit status, conflict set query status, error code trigger count, and update operations during the number query process, for system analysis and optimization.

[0054] This invention provides a terminal, including a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, it implements the steps of the number portability method based on multi-level double Bloom filters and collision sets.

[0055] Specifically, the terminal is an SMS gateway server or a business server that integrates SMS routing functionality.

[0056] The present invention provides a computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, it implements the steps of the number portability method based on multi-level double Bloom filters and collision sets.

[0057] This invention constructs a multi-level Bloom filter based on three dimensions: portability status, operator, and province / city, to achieve refined partitioned storage and rapid location of data; it utilizes double Bloom cross-validation to significantly reduce the probability of false positives; and for conflicting numbers that both Bloom filters hit, it employs a small, precise storage device (such as a Redis Set) for secondary confirmation to ensure 100% accuracy of the results.

[0058] This invention introduces an error code-driven dynamic update mechanism. When specific error codes such as incorrect attribution appear in the SMS delivery receipt, it automatically triggers real-time querying and resending of the SMS, and synchronously updates the Bloom filter and conflict set, achieving immediate correction of forwarding information. Combined with timed batch synchronization and incremental update strategies, this invention significantly improves addressing accuracy, delivery success rate, and system resource utilization while ensuring high concurrency and low latency. It is particularly suitable for SMS sending and routing services in ultra-large-scale user environments in China.

[0059] This invention, employing the above technical solutions, offers the following advantages compared to existing technologies: 1) By constructing Bloom filters based on portability status and provincial / municipal levels, it achieves data partitioning and rapid location. 2) Through cross-validation of ported and non-ported Bloom filters, it quickly filters number affiliation, reducing the false positive rate. 3) For conflicting numbers where both Bloom filters match, a small conflict set (e.g., a Redis Set) is used for precise storage, ensuring 100% accuracy. 4) During SMS sending, if a specific error code is received, the system automatically triggers a retransmission process and synchronously updates the Bloom filter and conflict set data, dynamically correcting number portability information, thereby improving addressing accuracy, sending success rate, and system resource utilization efficiency. 5) It supports scheduled and real-time updates of full or incremental data, ensuring data freshness and query accuracy.

[0060] Obviously, the described embodiments are only a part of the embodiments of this application, not all of them. Without conflict, the embodiments and features in the embodiments of this application can be combined with each other. The components of the embodiments of this application described and illustrated herein can generally be arranged and designed in various different configurations. Therefore, the detailed description of the embodiments of this application is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

Claims

1. A number portability method based on multi-level double Bloom filters and collision sets, characterized in that, Includes the following steps: Acquire mobile number portability data and group the data into multiple levels according to portability status, operator, and province / city. A corresponding Bloom filter is constructed for each group to form a multi-level Bloom filter set; It also initializes a collision set to store the numbers that collide after cross-validation using a double Bloom filter and their corresponding attribution information; Extract the target number based on the SMS sending request, determine the corresponding province / city and operator dimension based on the number segment information of the target number, query the multi-level Bloom filter set and conflict set of the corresponding province / city and operator dimension based on the target number to determine the operator to which the target number belongs, and send the SMS according to the corresponding operator channel; The system monitors SMS delivery receipts. When a preset porting error code is detected, it triggers a real-time query to obtain the latest attribution information of the target number and resends the SMS based on the latest attribution information. Simultaneously, it updates the multi-level Bloom filter set and the associated data of the target number in the conflict set.

2. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 1, characterized in that, The number portability status includes two categories: "number ported" and "number not ported".

3. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 1, characterized in that, When constructing a Bloom filter for each group, the size of the bit array and the number of hash functions of the Bloom filter are configured independently based on the amount of data for the corresponding number within the group.

4. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 1, characterized in that, The implementation of determining the carrier of a target number based on a multi-level Bloom filter set and conflict set at the level of province, city, and carrier includes: Based on the target number, perform a first-level query in the "Portable" Bloom filter at the corresponding province / city and operator dimensions in the multi-level Bloom filter set; If the first-level query fails to find the target number, it is determined that the target number is a non-portable number, and the SMS is sent through the original operator's channel. If the first-level query is hit, then a second-level cross-validation query is performed in the "untransferred" Bloom filter of the corresponding dimension. If the second-level cross-validation query fails, the target number is determined to be a ported number, and an SMS is sent through the new operator's channel. If the second-level cross-validation query succeeds, the conflict set is queried or the real-time query interface is called to determine the final operator of the target number, and an SMS is sent through the final operator's channel.

5. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 4, characterized in that, The implementation of querying conflict sets or calling real-time query interfaces to determine the final carrier of a target number includes: If the second-level cross-validation query is successful, the conflict set is queried. If the target number is found in the conflict set, the accurate attribution information stored in the conflict set is obtained as the final attribution operator for sending SMS messages to the target number. If the target number is not found in the conflict set, the external real-time query interface is called to confirm the attribution information, the confirmation result is updated to the conflict set, and the updated attribution information is used as the final attribution operator for sending SMS messages to the target number.

6. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 1, characterized in that, The preset porting error codes include "incorrect number attribution" or "routing failure".

7. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 1, characterized in that, It also includes a periodic synchronization step: periodically synchronizing full or incremental number portability data from the data source, and rebuilding a multi-level Bloom filter set based on the synchronized data to replace the old version.

8. The number portability method based on multi-level dual Bloom filters and collision sets according to claim 1, characterized in that, It also includes logging steps: recording the Bloom filter hit status, conflict set query status, error code trigger count, and update operations during the number query process, for system analysis and optimization.

9. A terminal, comprising a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps of the number portability method based on a multi-level double Bloom filter and a collision set as described in any one of claims 1 to 8.

10. A computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the steps of the number portability method based on a multi-level double Bloom filter and a collision set according to any one of claims 1 to 8.