Voice call establishment method and device, and computing device cluster
By constructing multiple number pools and dynamically allocating intermediate numbers and sites, the problem of low utilization of intermediate number resources was solved, resulting in more efficient voice call services and higher customer satisfaction, lowering the threshold for customer use and protecting business secrets.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
- Filing Date
- 2024-10-30
- Publication Date
- 2026-05-01
AI Technical Summary
In existing technologies, the utilization rate of intermediate number resources is low, and each intermediate number is exclusively used by only one customer, resulting in resource waste and low efficiency and satisfaction of voice calls.
By constructing multiple number pools, each containing multiple intermediate numbers, and dynamically allocating intermediate numbers based on customer needs and site information, the most suitable intermediate number and site are selected for voice call connections, thus optimizing the usage strategy of numbers and sites.
It increased the utilization rate of intermediate numbers, improved the efficiency of voice call services and customer satisfaction, lowered the threshold for customer use, and protected business secrets.
Smart Images

Figure CN121967586A_ABST
Abstract
Description
A method, apparatus and computing device cluster for establishing a voice call Technical Field
[0001] This invention relates to the field of voice call technology, and in particular to a voice call establishment method, apparatus, and computing device cluster. Background Technology
[0002] When a customer makes a voice call, the cloud service provider receives the call request, automatically finds the called number corresponding to the intermediate number, and then connects the calling number and the called number to establish a voice call. Currently, when customers purchase voice call services, they purchase an intermediate number to initiate calls. The intermediate number purchased by the customer is generally charged on a monthly fee and is exclusively used by that customer; other customers cannot use it. However, the number of intermediate numbers in the cloud service provider's system is limited. If each intermediate number serves only one customer, it leads to low utilization of each intermediate number and wastes resources. Summary of the Invention
[0003] To address the aforementioned problems, embodiments of this application provide a voice call establishment method that can improve the utilization rate of intermediate numbers and enhance customer voice call service efficiency and satisfaction. Furthermore, this application also provides a voice call establishment apparatus and a computing device cluster corresponding to this voice call establishment method.
[0004] Therefore, the following technical solutions are adopted in the embodiments of this application:
[0005] In a first aspect, embodiments of this application provide a method for establishing a voice call. This method is applied to a voice call platform, which manages infrastructure including at least one node. Each node stores at least one number pool. The method receives a first call request from a first customer; based on the first call request, selects a first intermediate number from the first customer's number pool; the first customer's number pool includes at least one intermediate number, which is used to bind to at least one customer and provide the intermediate number when the at least one customer makes a call. The intermediate number is used to establish a voice call connection between the caller and the called party. The at least one number pool includes the first customer's number pool, and the at least one customer includes the first customer; voice call connections are established with the first customer and the customer called by the first customer based on the first intermediate number.
[0006] In this embodiment, when a customer makes a voice call, the method can select one intermediate number from multiple intermediate numbers in the bound number pool to establish a voice call, avoiding the customer being bound to a single intermediate number, thereby improving the utilization rate of intermediate numbers and enhancing the service efficiency and satisfaction of the customer's voice calls.
[0007] In one implementation, the method acquires multiple intermediate numbers before receiving a first call request from a first customer; allocates the multiple intermediate numbers to at least one number pool according to a set number allocation rule; and allocates the sites to which the multiple intermediate numbers belong to to at least one number pool according to the sites to which the multiple intermediate numbers belong.
[0008] In this embodiment, after obtaining site information from multiple sites provided by the southbound supplier, the method can obtain the intermediate numbers supported by multiple sites from the site information and then allocate them to multiple number pools to construct a number pool that includes at least one intermediate number. This can avoid customers being bound to a single intermediate number and improve the utilization rate of intermediate numbers.
[0009] In one implementation, the method further obtains customer information of a first customer; obtains a customer demand profile of the first customer based on the customer information of the first customer; the customer demand profile indicates the first customer's call demand for intermediate numbers; and determines the number pool of the first customer based on the similarity between the customer demand profile of the first customer and the number pool profile of at least one number pool; the number pool profile is obtained based on at least one intermediate number allocated by the number pool and the site information of at least one site.
[0010] In this implementation, the method can match customer needs with the voice call performance of intermediate numbers in each number pool in the form of a profile, and select the number pool that best matches the customer's needs by means of the similarity of the profile, thereby improving the service efficiency and satisfaction of voice calls.
[0011] In one implementation, the method selects a target site from a pool of numbers belonging to a first customer; and selects a first intermediate number belonging to the target site from the pool of numbers belonging to the first customer.
[0012] In this implementation, the method can select a suitable site based on the performance of the sites in the number pool, and then select a suitable intermediate number from the intermediate numbers supported by the suitable site, so that voice calls can be routed through the most suitable site, thereby improving the service efficiency and satisfaction of voice calls.
[0013] In one implementation, the method selects a set of sites from the number pool of the first customer according to a set of site filtering rules; if the number of sites in the site set is greater than 1, the site with the highest priority and / or the largest weight value is selected from the site set according to the priority and / or weight value of the site set; the priority and / or weight value of the site is obtained based on the site profile, which indicates the call capabilities supported by the site.
[0014] In this embodiment, the method selects a number of suitable sites according to the set site filtering rules. It can select the site whose functions best match the target customer based on the supported functions and the performance of those functions, thereby further improving the service efficiency and satisfaction of voice calls.
[0015] In one implementation, the method further detects the status of sites in the site set; if the status of a site in the site set is abnormal, the priority and / or weight value of the site is reduced.
[0016] In this implementation, after determining that a site is in an abnormal state, the method can reduce the site's priority and / or weight value, thereby reducing the probability that customers will choose the site and thus increasing the success rate of customers establishing voice calls.
[0017] In one implementation, the method further increases the priority and / or weight value of a site when the status of a site in the site set changes from an abnormal state to a normal state.
[0018] In this implementation, after determining that the status of a site has switched from an abnormal state to a normal state, the method can restore the original priority and / or weight value of the site, so that customers can choose the most suitable site to establish a voice call, thereby improving the service efficiency and satisfaction of voice calls.
[0019] In one implementation, the method further receives a status report sent by the target site, the status report including one or more of whether the voice call was successfully established, the current stage, and the status; deletes the first intermediate number in the status report; and sends a status report after deleting the first intermediate number to the first customer.
[0020] In this embodiment, when sending a status report, the method can hide the intermediate number in the status report by means of obfuscation, deletion, etc., so that the customer cannot obtain the intermediate number from the status report and call detail records received by the customer. This can prevent the customer from exposing the status report and allow competitors to reverse-engineer the site information of the site to which the intermediate number belongs based on the intermediate number in the status report, thereby protecting trade secrets.
[0021] In one implementation, the method also receives an error code; the error code indicates that the target site and / or the first intermediate number is unavailable; and a new site and / or a new intermediate number is selected from the number pool of the first customer.
[0022] In this implementation, after receiving an error code indicating that a site cannot establish a voice call for a customer, the method can reselect a site or an intermediate number for the customer to ensure the success of the call, thereby improving the success rate of the customer's voice call.
[0023] In one implementation, the method further receives a second call request from a second customer; selects a second intermediate number from a number pool of the first customer based on the second call request, wherein at least one customer includes the second customer; and establishes voice call connections with the customers of the second customer and the second customer respectively based on the second intermediate number.
[0024] Secondly, this application provides a voice call establishment apparatus, comprising: a first processing unit for receiving a first call request from a first customer; a second processing unit for selecting a first intermediate number from a number pool of the first customer according to the first call request; the number pool of the first customer includes at least one intermediate number, the number pool of the first customer is used to bind to at least one customer and provide the intermediate number when at least one customer makes a call, the intermediate number is used to establish a voice call connection between the caller and the called party, the at least one number pool includes the number pool of the first customer, and the at least one customer includes the first customer; and a third processing unit for establishing voice call connections with the first customer and the customer called by the first customer respectively based on the first intermediate number.
[0025] In one embodiment, before receiving the first call request from the first customer, the first processing unit is further configured to obtain a plurality of intermediate numbers; allocate the plurality of intermediate numbers to at least one number pool according to a set number allocation rule; and allocate the sites to which the plurality of intermediate numbers belong to at least one number pool according to the sites to which the plurality of intermediate numbers belong.
[0026] In one embodiment, the third processing unit is further configured to obtain customer information of the first customer; obtain a customer demand profile of the first customer based on the customer information of the first customer; the customer demand profile indicates the first customer's call demand for intermediate numbers; determine the number pool of the first customer based on the similarity between the customer demand profile of the first customer and the number pool profile of at least one number pool; the number pool profile is obtained based on at least one intermediate number allocated by the number pool and the site information of at least one site.
[0027] In one implementation, the second processing unit is specifically used to select a target site from the number pool of the first customer; and to select a first intermediate number to which the target site belongs from the number pool of the first customer.
[0028] In one implementation, the second processing unit is specifically configured to select a set of sites from the number pool of the first customer according to the set site filtering rules; if the number of sites in the site set is greater than 1, select the site with the highest priority and / or the largest weight value from the site set according to the priority and / or weight value of the site set; the priority and / or weight value of the site is obtained according to the site profile of the site, and the site profile indicates the call capabilities supported by the site.
[0029] In one embodiment, the third processing unit is further configured to detect the status of stations in the station set; if the status of a station in the station set is abnormal, the priority and / or weight value of the station is reduced.
[0030] In one implementation, the third processing unit is further configured to increase the priority and / or weight value of a site when the status of a site in the site set changes from an abnormal state to a normal state.
[0031] In one implementation, the third processing unit is further configured to receive a status report sent by the target site, the status report including any one or more of whether the voice call was successfully established, the current stage, and the status; delete the first intermediate number in the status report; and send a status report after deleting the first intermediate number to the first customer.
[0032] In one implementation, the third processing unit is further configured to receive an error code; the error code indicates that the target site and / or the first intermediate number is unavailable; and to reselect a site and / or reselect an intermediate number from the number pool of the first customer.
[0033] In one embodiment, the first processing unit is further configured to receive a second call request from the second customer; the second processing unit is further configured to select a second intermediate number from the number pool of the first customer according to the second call request, wherein at least one customer includes the second customer; and the third processing unit is further configured to establish voice call connections with the customers of the second customer and the second customer respectively based on the second intermediate number.
[0034] Thirdly, embodiments of this application provide a computing device, including: at least one memory; and at least one processor, the processor being configured to execute instructions stored in the memory to cause the computing device to perform the various possible implementations of the first aspect.
[0035] Fourthly, embodiments of this application provide a computer-readable storage medium including computer program instructions, which, when executed by a computing device, perform the various possible implementations of the first aspect.
[0036] Fifthly, this application provides a computer program product containing instructions, characterized in that the computer program product stores instructions that, when executed by a computing device, cause the computing device to implement various possible implementations of the first aspect.
[0037] In a sixth aspect, embodiments of this application provide a computing device cluster, including at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, such that the computing device cluster performs the various possible implementations of the first aspect.
[0038] In a seventh aspect, embodiments of this application provide a computer-readable storage medium including computer program instructions that, when executed by a cluster of computing devices, perform the various possible implementations of the first aspect.
[0039] Eighthly, this application provides a computer program product containing instructions, characterized in that the computer program product stores instructions that, when executed by a cluster of computing devices, cause the cluster of computing devices to implement various possible implementations of the first aspect. Attached Figure Description
[0040] The accompanying drawings used in the description of the embodiments or prior art are briefly introduced below.
[0041] Figure 1 is a schematic diagram of a scenario for establishing a voice call in related technologies;
[0042] Figure 2 is a flowchart illustrating a voice call establishment method provided in an embodiment of this application;
[0043] Figure 3 is a schematic diagram of the structure of a voice call system provided in an embodiment of this application;
[0044] Figure 4(a) is a schematic diagram of the process of establishing voice communication for customers by the management interface provided in the embodiment of this application;
[0045] Figure 4(b) is a schematic diagram of the process by which the management interface provides a voice communication service for a customer in an embodiment of this application.
[0046] Figure 5 is a schematic diagram of the process of switching sites in the management interface provided in the embodiments of this application;
[0047] Figure 6 is a schematic diagram of a user using a voice call system provided in an embodiment of this application;
[0048] Figure 7 is a schematic diagram of a voice call establishment device provided in an embodiment of this application;
[0049] Figure 8 is a schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0050] Figure 9 is a schematic diagram of the architecture of a computing device cluster provided in an embodiment of this application;
[0051] Figure 10 is a schematic diagram of another computing device cluster architecture provided in the embodiments of this application. Detailed Implementation
[0052] The technical solutions in the embodiments of this application will now be described with reference to the accompanying drawings.
[0053] In this article, the term "and / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, or B existing alone. The symbol " / " in this article indicates that the related objects are in an "or" relationship; for example, A / B means A or B.
[0054] The terms "first" and "second," etc., used in the specification and claims herein are used to distinguish different objects, not to describe a specific order of objects. For example, "first response message" and "second response message," etc., are used to distinguish different response messages, not to describe a specific order of response messages.
[0055] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of the terms "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.
[0056] In the description of the embodiments of this application, unless otherwise stated, "multiple" means two or more, for example, multiple processing units means two or more processing units, multiple elements means two or more elements, etc.
[0057] Before introducing the technical solution protected by this application, several technical terms involved in the technical solution protected by this application will be explained in advance, namely:
[0058] Voice calling, also known as cloud voice service, provides voice communication capabilities through cloud services, without relying on telephone lines. Cloud service providers manage servers, network bandwidth, and communication protocols, allowing customers to use cloud services simply by connecting to the internet. Customers can initiate calls through a voice calling platform. The platform calls the calling party's number (the party initiating the call), and after confirming the caller is ready, it calls the called party's number (the party answering the call). Once both parties have connected, the platform establishes a point-to-point communication connection, allowing them to communicate via voice. This process is usually automated by the platform, requiring no manual intervention from the customer. This means that voice data is transmitted directly from the calling party to the called party, without any third-party involvement, ensuring the security and privacy of the voice call.
[0059] Intermediate numbers, also known as relay numbers or trunk numbers, are telephone numbers provided by a service provider during communication to connect the caller (calling number) and the called party (called number). Intermediate numbers can be used for dynamic routing, directing calls to different called numbers based on different rules (such as time, geographical location, load, etc.). When a customer dials an intermediate number, the service provider's system receives the call request, automatically finds the corresponding called number, and then connects the calling number and the called number to establish a voice call. Intermediate numbers not only improve the flexibility of voice calls but also enhance user privacy protection.
[0060] Frequency control refers to a management measure taken in communication networks to control call frequency and prevent abuse or harassment. When an intermediate number makes a certain number of calls per day in a certain province, that intermediate number will be subject to frequency control to prevent abuse and reduce harassment. The system can implement frequency control through methods such as limiting calls, sending warning notifications, and manual review.
[0061] A number pool refers to a pool of intermediate numbers provided by a supplier. Numbers in the pool can be dynamically assigned to users or services to meet specific communication needs, such as voice calls.
[0062] Southbound sites are sites specifically designed within a communication architecture to interface with southbound providers. These sites offer voice calling capabilities and other related communication services. Southbound sites are technical platforms built to facilitate communication and collaboration with southbound providers, primarily responsible for handling user call requests, routing, recording, and related service functions. In voice calling scenarios, southbound sites can support multiple communication protocols, including the Public Switched Telephone Network (PSTN) and Voice over Internet Protocol (VoIP), ensuring smooth voice communication for users.
[0063] A dead zone site is a site where a caller's attempt to make a call fails to establish or connect due to insufficient signal coverage, network failure, equipment settings problems, or other reasons.
[0064] A caller whitelist is a list of caller ID numbers that are specifically permitted to make calls through designated sites (such as southbound sites) within a communication network. Only caller ID numbers on the whitelist can enjoy this privilege. Caller whitelists can improve call success rates, enhance communication security, and optimize network resource allocation.
[0065] A site profile indicates the features a site supports and the performance of those features. Site profiles can include features such as price and site quality. Price features can be the price of the intermediate numbers supported by the site. Site quality features can include call success rate and service level agreement (SLA) information.
[0066] A number pool profile indicates the voice call performance and capabilities of intermediate numbers within the pool. This profile can include features such as supported industries, price, maximum call time, network resources, supported recording formats, custom playback, and latency. Specifically, supported industries refers to the types of industries supported by the numbers in the pool, such as marketing, ride-hailing, and express delivery. Price refers to the price of the numbers. Maximum call time refers to the maximum call time supported by the number pool. Network resources refer to which operators the number pool supports calling from. Supported recording formats refer to the recording formats the number pool supports. Custom playback refers to whether the number pool supports customized playback. Latency refers to the latency that the number pool can support.
[0067] A customer needs profile indicates a customer's various requirements for voice calls. This profile can include features such as industry type, pricing, maximum call duration, network range, recording format, customized playback, latency requirements, call termination, and number pass-through. Specifically, industry type indicates the scenario in which the customer uses voice calls, such as marketing, ride-hailing, or delivery. Pricing indicates the pricing information obtained by the system from the customer's order. Maximum call duration indicates the maximum length of a call initiated by the customer, such as 60 minutes. Network range indicates the operator of the customer's calling number, such as China Mobile, China Telecom, or China Unicom. Recording format indicates whether the call is recorded and the format of the generated recording file. Customized playback indicates whether customized playback is required. Latency requirements indicate the customer's latency requirements. Call termination indicates whether the customer needs to use the call termination interface. Number pass-through indicates whether the customer needs the caller's number to be passed through.
[0068] Next, the technical solution provided in this application will be introduced.
[0069] Generally, as shown in Figure 1, the process of establishing a voice call between customer A and customer B is as follows: Customer A can initiate a call request to the service provider (SP) to request the establishment of a voice call. After receiving the call request, the SP can invoke the specified application programming interface (API) of the cloud service's voice call platform based on the call request. The voice call platform can automatically select an intermediate number for customer A based on the specified API. The voice call platform can then call customer A based on customer A's intermediate number. After confirming the successful call to customer A, the voice call platform can call customer B based on the called number carried in customer A's call request. After confirming the successful call to customer B, the voice call platform can connect customer A and customer B to establish a voice call.
[0070] However, each intermediate number in the voice call platform is exclusively used by a single customer and cannot be used by other customers, resulting in a relatively low utilization rate for each intermediate number. When the voice call platform uses intermediate numbers to establish voice calls between customer A and customer B, it exposes the site information of the southbound site that provides the voice call capability, thus raising security and privacy issues.
[0071] In view of this, embodiments of this application provide a voice call system that can construct multiple number pools from multiple intermediate numbers, such that each number pool includes multiple intermediate numbers. When a customer makes a voice call, they can use intermediate numbers from the bound number pool to establish the call, avoiding the customer being bound to a single intermediate number, thereby improving the utilization rate of intermediate numbers and enhancing the service efficiency and satisfaction of the customer's voice calls.
[0072] Figure 2 is a flowchart illustrating a voice call establishment method provided in an embodiment of this application. As shown in Figure 2, this method can be executed by a voice call platform. The voice call platform is used to manage infrastructure, which may include at least one node, and at least one number pool is stored on the at least one node. The specific process of the voice call platform executing this method is as follows:
[0073] Step S201: Receive the first call request from the first customer.
[0074] Step S202: Select a first intermediate number from the number pool of the first customer according to the first call request.
[0075] Step S203: Establish voice call connections with the first customer and the customer called by the first customer based on the first intermediate number.
[0076] In this embodiment of the application, when a customer initiates a call request to request a voice call, the method can select a target intermediate number from multiple intermediate numbers in the bound number pool to establish a voice call, thereby avoiding the customer being bound to a single intermediate number, improving the utilization rate of intermediate numbers, and improving the service efficiency and satisfaction of the customer's voice call.
[0077] Figure 3 is a schematic diagram of the structure of a voice call system provided in an embodiment of this application. As shown in Figure 3, the voice call system 300 can be divided into a management plane 310 and a data plane 320 according to the network structure. The voice call system 300 can be deployed on a voice call platform to improve the functionality of the voice call platform.
[0078] The management plane 310 is primarily responsible for the management and control functions of the voice communication system 300, including network device configuration, monitoring, troubleshooting, and performance optimization. The management plane 310 is an indispensable part of the voice communication system 300, helping operators effectively manage and maintain the system, ensuring its stable operation and high performance.
[0079] Data plane 320 is primarily responsible for data transmission and forwarding in the voice call system 300, handling network data traffic, and implementing control functions directly related to customer information flow. Data plane 320 is the core component of data transmission in the voice call system 300, and its performance directly impacts overall network performance and user experience. An efficient data plane 320 ensures that data is transmitted quickly and accurately to its destination.
[0080] In this embodiment of the application, the management plane 310 can build and bind a number pool for the customer based on the customer information, multiple site information and intermediate number information, and select an intermediate number from the number pool to establish voice communication for the customer.
[0081] For example, Figure 4(a) is a schematic diagram of the process by which the management plane establishes voice communication for a customer in an embodiment of this application. As shown in Figure 4(a), the process by which the management plane 310 establishes voice communication for a customer is specifically as follows:
[0082] Step S301: The management interface 310 obtains site information for multiple sites.
[0083] Specifically, the management plane 310 can control the data plane 320 to collect quality data, intermediate numbers, and operator information for each site provided by the southbound supplier, in order to obtain site information for each site. After obtaining site information for multiple sites, the management plane 310 can extract the intermediate numbers supported by each site from the site information, thereby obtaining multiple intermediate numbers.
[0084] In step S302, the management interface 310 constructs site profiles for multiple sites based on the site information of multiple sites.
[0085] Specifically, the management plane 310 can construct a site profile for each site based on the site information of multiple sites, so as to facilitate subsequent site filtering. For example, the management plane 310 can construct site quality features in the site profile based on the site's quality data. The management plane 310 can construct price features in the site profile based on the site's intermediate numbers and their prices. And so on. For example, as shown in Figure 4(b), the site profile can include price features (prices of intermediate numbers supported by the site) and site quality features (the site's call success rate and SLA).
[0086] In step S303, the management interface 310 creates multiple number pools and assigns at least one intermediate number and at least one site to each of the multiple number pools.
[0087] Specifically, the management plane 310 can construct a set number of number pools according to set rules. The management plane 310 can allocate multiple intermediate numbers to different number pools according to set number allocation rules, ensuring that each number pool includes at least one intermediate number. Since the site to which each intermediate number belongs is determined, the management plane 310 can allocate a corresponding site to each number pool based on the intermediate numbers in each pool.
[0088] When allocating intermediate numbers, the management plane 310 can group intermediate numbers belonging to different operators into a single number pool. When a customer initiates a voice call, the management plane 310 can select an intermediate number belonging to the same operator and a southbound site from the customer's bound number pool, based on the operator to which the customer's calling number belongs. Compared to related technologies where customers need to apply for multiple applications from different operators and purchase intermediate numbers from different operators to make calls, this application eliminates the need for customers to apply for multiple operator applications, thus significantly lowering the barrier to entry for customers.
[0089] An intermediate number can be assigned to a number pool. For example, management plane 310 obtains six intermediate numbers: intermediate number 1, intermediate number 2, intermediate number 3, intermediate number 4, intermediate number 5, and intermediate number 6. Management plane 310 constructs three number pools: number pool 1, number pool 2, and number pool 3. When assigning intermediate numbers, management plane 310 can assign intermediate number 1 and intermediate number 2 to number pool 1, intermediate number 3 and intermediate number 4 to number pool 2, and intermediate number 5 and intermediate number 6 to number pool 3.
[0090] An intermediate number can be assigned to multiple numbers. For example, management plane 310 obtains five intermediate numbers: intermediate number 1, intermediate number 2, intermediate number 3, intermediate number 4, and intermediate number 5. Assume intermediate number 1 belongs to China Unicom, intermediate numbers 2 and 3 belong to China Mobile, and intermediate numbers 4 and 5 belong to China Telecom. Management plane 310 constructs five number pools: number pool 1, number pool 2, number pool 3, number pool 4, and number pool 5. Management plane 310 also constructs three number pools: number pool 1, number pool 2, and number pool 3. When assigning intermediate numbers, management plane 310 can assign intermediate numbers 1, 2, and 4 to number pool 1, intermediate numbers 3 and 5 to number pool 2, and intermediate numbers 1, 2, and 5 to number pool 3.
[0091] In step S304, management interface 310 constructs number pool profiles for multiple number pools based on the intermediate numbers and sites in the number pool.
[0092] Specifically, the management plane 310 can construct a number pool profile for each number pool based on the intermediate numbers and sites within each number pool, in order to subsequently select the most suitable number pool for the customer. The management plane 310 can construct the supported industry characteristics of the number pool in the number pool profile based on the operator to which the site belongs. The management plane 310 can construct the price characteristics of the number pool profile based on the intermediate numbers and their prices within the site. The management plane 310 can construct characteristics such as maximum call time and network resources in the number pool profile based on the site's quality data. And so on. For example, as shown in Figure 4(b), the number pool profile can include supported industry characteristics (the types of industries supported by the numbers in the number pool), price (the price of the number), maximum call time characteristics (the maximum call time supported by the number pool), network resource characteristics (which operators the number pool supports calling from), supported recording format characteristics (which recording formats the number pool supports generating), customized playback characteristics (whether the number pool supports customized playback for customers), and latency characteristics (the latency that the number pool can support).
[0093] In step S305, after receiving the customer's customer information, the management interface 310 constructs a customer needs profile based on the customer information.
[0094] Specifically, the management plane 310 can control the data plane 320 to collect customer information, such as the customer's industry type, cost requirements, reliability requirements, caller ID type, called ID type, southbound site, and intermediate number information. The customer's industry type refers to the scenario in which the customer uses voice calls, such as marketing, ride-hailing, or express delivery. The caller ID type and called ID type can be network operators such as China Unicom, China Mobile, and China Telecom. For example, as shown in Figure 4(b), the customer demand profile may include industry type characteristics (the scenarios in which the customer uses voice calls, such as marketing, ride-hailing, express delivery, etc.), business price characteristics (the business price obtained by the system from the customer's order), maximum call time characteristics (the longest time the customer initiates a call using voice calls, such as 60 minutes), network range characteristics (the operator where the customer's calling number is located, such as China Mobile, China Telecom, China Unicom, etc.), recording format characteristics (whether the call is recorded, and the format of the generated recording file), customized playback characteristics (whether customized playback is required), latency requirement characteristics (the customer's requirements for call latency), call termination characteristics (whether the customer needs to use the call termination interface), and number pass-through characteristics (whether the customer needs to pass through the caller's number).
[0095] The management plane 310 can construct a customer demand profile based on the customer's customer information, so as to match the number pool profile and site profile in the future to match the most suitable number pool and an intermediate number from the most suitable number pool. For example, the management plane 310 can construct the industry type feature in the customer demand profile based on the customer's industry type. The management plane 310 can construct the business price feature in the customer demand profile based on cost requirements. And so on. For example, as shown in Figure 4(b), the voice call system 300 has a pre-stored matching strategy. The matching strategy refers to the strategy of configuring the priority of matching items according to the customer's needs. The voice call system 300 also has a pre-stored intelligent allocation strategy, which is used to allocate number pools to customers according to customer needs and the capabilities of the number pool, and to score the number pools by the priority and matching degree of the matching items, while selecting the number pool with the highest score based on the overall quality of the number pool.
[0096] Step S306, Management plane 310 calculates the similarity between the customer and each number pool based on the customer's customer demand profile and the number pool profiles of multiple number pools.
[0097] Step S307, in the management interface 310, select the number pool with the highest similarity and bind it to the customer.
[0098] Specifically, after obtaining the customer's demand profile and the number pool profiles of multiple number pools, the management surface 310 can calculate the similarity between the customer's demand profile and the number pool profiles of each number pool to obtain the similarity between the customer and each number pool. The management surface 310 can then select the number pool with the highest similarity from the multiple number pools and bind it to the customer. For example, before performing the similarity calculation, the management surface 310 can extract features from the customer's demand profile to obtain a vector of the customer's demand profile, and extract features from the number pool profiles of each number pool to obtain vectors of the number pool profiles. Then, the management surface 310 can calculate the similarity between the vector of the customer's demand profile and the vectors of the multiple number pool profiles to obtain the similarity between the customer and each number pool.
[0099] In step S308, the management interface 310 selects a site from the bound number pool according to the set site filtering rules.
[0100] The set site filtering rules can refer to filtering unavailable sites based on site policies, filtering unavailable sites based on enterprise nature, filtering unavailable sites based on number policies, and other filtering rules. Unavailable sites can refer to sites without intermediate numbers, blind spot sites, sites not belonging to calling operators, sites not on the calling whitelist, etc.
[0101] For example, as shown in Figure 4(b), the voice call system 300 has a pre-stored routing policy. The routing policy refers to the policy for prioritizing the selection of sites, such as the set site filtering rules.
[0102] In one embodiment, when the management plane 310 selects a site for a customer, it can obtain multiple sites from the customer's bound number pool and check whether each site is unavailable. That is, it checks whether the site has unused intermediate numbers, whether it is a blind spot site, whether it is a non-calling operator site, or whether it is a non-calling whitelist site, etc. Based on the detection results, the management plane 310 can remove unavailable sites from the multiple sites and retain available sites.
[0103] After the management interface 310 filters out available sites, it can further filter them based on the customer's needs. For example, the management interface 310 can select sites from the available sites that belong to the same operator as the customer's calling number. As another example, the management interface 310 can select sites from the available sites that meet the customer's call latency requirements, i.e., sites with lower traffic volumes.
[0104] Typically, the management plane 310 can assign different priorities, weight values, and other tags to sites based on their site profiles. For example, the higher the quality of a site in its site profile, the higher the priority and weight value that the management plane 310 can assign to that site. Similarly, the higher the site capacity in its site profile, the higher the priority and weight value that the management plane 310 can assign to that site.
[0105] If the number of sites obtained by management plane 310 through two filtering processes is greater than 1, management plane 310 can select the site with the highest priority according to priority order, and use it as the routing site for the customer's voice call. If the number of sites with the highest priority is greater than 1, management plane 310 can select the site with the largest weight value according to weight value order, and use it as the routing site for the customer's voice call. For example, as shown in Figure 4(b), the voice call system 300 has a pre-stored intelligent allocation strategy for allocating priority and weight to sites in the number pool according to site profiles.
[0106] In step S309, the management interface 310 selects an intermediate number from the bound number pool according to the site to which the intermediate number belongs.
[0107] Specifically, after determining the site, the management interface 310 selects intermediate numbers belonging to that site from the number pool based on the intermediate numbers included in the site. If the number of intermediate numbers selected by the management interface 310 is greater than one, the management interface 310 can select the intermediate number with the fewest service visits based on the number of times the selected intermediate numbers have served customers, and establish a voice call with the customer, thereby enabling multiple intermediate numbers in the number pool to provide services to customers in turn.
[0108] In this embodiment, the management plane 310 can construct multiple number pools and allocate multiple intermediate numbers supported by various sites provided by the southbound supplier to the number pools, so that each number pool can include at least one intermediate number. When a customer makes a voice call, they can use an intermediate number from the bound number pool to establish the call, avoiding the customer being bound to a single intermediate number, thereby improving the utilization rate of intermediate numbers and enhancing the service efficiency and satisfaction of the customer's voice calls.
[0109] In this embodiment, the management plane 310 can monitor the status of the site. If the site is in a sub-healthy, faulty, or other abnormal state, the probability of that site serving customers can be reduced, thereby increasing the success rate of establishing voice calls in the voice call system 300. For example, as shown in Figure 5, the site switching process performed by the management plane 310 is as follows:
[0110] In step S501, the management plane 310 detects whether the site is in an abnormal state in real time or periodically. In one case, if the management plane 310 determines that the site is in an abnormal state, it proceeds to step S502. In another case, if the management plane 310 determines that the site is not in an abnormal state, it proceeds to step S503.
[0111] Abnormal status can refer to site unavailability, such as a call connection success rate that remains below a set threshold for a certain period of time. Abnormal status can refer to unstable call latency, such as a call latency that remains above a set threshold or a variance that exceeds a set threshold for a certain period of time. Abnormal status can refer to the failure to report status notifications and call detail records (CDRs) on time, such as not receiving status notifications or CDRs within a set time period.
[0112] Specifically, the management plane 310 can configure failover policies and monitor the call success rate, alarm generation, and other metrics of a site to determine if the site is in an abnormal state. Since the duration of each call is not fixed, if the management plane 310 only performs checks based on time, the accuracy of the checks will be low. Therefore, the management plane 310 uses the number of calls initiated as a cycle, with each k calls constituting one cycle.
[0113] In one embodiment, if the abnormal state is that the site is unavailable, and the management plane 310 detects that the success rate is lower than the set threshold m% for N consecutive (configurable) periods, the site can be considered to be in an abnormal state.
[0114] In another embodiment, if the abnormal state is unstable site call latency, and the management plane 310 detects that the call latency is higher than the set value t milliseconds (configurable) for N consecutive (configurable) periods, or the variance is greater than the set value a milliseconds (configurable), the site can be considered to be in an abnormal state.
[0115] In another embodiment, if the abnormal state is that the status notification and call detail record are not reported on time, and the management plane 310 detects that the proportion of the status notification or call detail record not being reported on time for N (configurable) consecutive periods exceeds n% (configurable), the site can be considered to be in an abnormal state.
[0116] In step S502, the management plane 310 lowers the site's tag value.
[0117] The tag value can be a priority level, a weight value, etc. The following example uses the tag value as a weight value.
[0118] Specifically, after the management plane 310 detects that a site is in an abnormal state, it can reduce the site's weight value to 0 or a set value. After reducing the site's weight value, the management plane 310 can recalculate the weight values of available sites in the customer's bound number pool. After recalculating the weight values of each available site, the management plane 310 can gradually switch the traffic of the current site to other sites, avoiding a surge in traffic pressure on other sites due to the sudden loss of a site in the number pool.
[0119] In one embodiment, it is assumed that the success rate threshold for failures is 90%, and the intolerable success rate threshold is 85% (configurable). The management plane 310 can detect a 1% decrease in the success rate and cut off 20% of the current site's traffic.
[0120] In step S503, the management interface 310 determines that the site has switched from an abnormal state to a normal state and increases the site's marker value.
[0121] Specifically, after the management plane 310 detects that a site has recovered from an abnormal state to a normal state, it can restore the site's weight to its original value. In one embodiment, when the management plane 310 restores the current site, it can pre-restore 20% of the reduced weight value, allowing some traffic to be switched back to the current site. If the management plane 310 detects that the current site remains in a normal state for more than N (configurable) periods, it can again restore 20% of the reduced weight value, again allowing some traffic to be switched back to the current site. This process continues until the current site is restored to its pre-reduction weight value, or the current site becomes abnormal again.
[0122] During the process of a customer establishing a voice call via an intermediate number, the management plane 310 typically sends status reports and call detail records (CDRs) to the customer via the data plane 320, allowing the customer to know in real time whether the voice call was successfully established, its current stage, and its current status. These status reports and CDRs can be sent by a site or generated locally. In this embodiment, when sending status reports or CDRs, the management plane 310 can hide the intermediate number in the status reports or CDRs using methods such as obfuscation or deletion, preventing the customer from obtaining the intermediate number from the received status reports and CDRs. Hiding the intermediate number in the status reports and CDRs by the management plane 310 prevents competitors from using the intermediate number to reverse-engineer the site information of the site to which the intermediate number belongs after the customer exposes the status reports and CDRs, thereby protecting trade secrets.
[0123] If the operator of a site removes a customer's number from the whitelist, the voice call system 300 may be unable to establish a voice call for the customer. In this embodiment, after receiving an error code indicating that a site cannot establish a voice call for a customer, the management plane 310 can select a new site for the customer to ensure the success of the call, thereby improving the success rate of the customer's voice call.
[0124] In one embodiment, consider removing customer number A from the whitelist for reasons related to operator control. When customer number A initiates a call, they can choose one of the available sites: site A, site B, and site C. When management plane 310 selects site A to serve the customer, upon receiving an error code from site A, it indicates that number A is not in site A's whitelist. At this point, management plane 310 can reselect a site from site B and site C and mark number A as not in site A's whitelist, preventing management plane 310 from selecting site A again.
[0125] If the intermediate number selected by the management plane 310 for the customer is subject to frequency control and cannot be connected, the voice call system 300 may be unable to establish a voice call for the customer. In this embodiment, after the management plane 310 determines the error code generated due to the inability to establish a voice call for the customer, it can select a new intermediate number for the customer to ensure the success of the call, thereby improving the success rate of the customer's voice call.
[0126] In one embodiment, if an intermediate number is unreachable due to frequency restrictions, the site sends an error code to the management plane 310. Upon receiving the error code, the management plane 310 indicates that the intermediate number is unusable. The management plane 310 can then mark the intermediate number as unusable and select a new intermediate number.
[0127] The above is a description of the voice call system 300 provided in this application embodiment. It is understood that the voice call system 300 can be configured on a cloud computing platform, for example, deployed on at least one virtual machine or container instance, so that the cloud computing platform can provide voice call services. Of course, the voice call system 300 can also be configured on nodes other than the cloud computing platform, for example, deployed in at least one data center or on at least one server, depending on the actual situation, and is not limited here. The cloud computing platform can provide pages related to public cloud services for users to remotely access public cloud services. In this embodiment, users can pre-purchase the voice call services provided by the voice call system 300 on the cloud computing platform. For ease of understanding, the interaction between the user and the cloud computing platform is described below.
[0128] As shown in Figure 6, the interaction between the user and the cloud computing platform mainly includes: the user logs into the cloud computing platform 600 through a web page on the client side, selects and purchases cloud services (i.e., voice call services) related to the voice call system 300 on the cloud computing platform 600, and after purchase, the user can generate the voice call system 300 on the cloud computing platform 600 based on the functions provided by the voice call service. The cloud computing platform 600 is primarily used to manage the infrastructure for running the voice call service. For example, the infrastructure for the voice call service may include multiple data centers located in different regions, each data center including multiple servers. The data centers can provide basic resources for the voice call service, such as computing resources and storage resources. Therefore, when purchasing and using the voice call service, the user mainly pays for the resources used. When using the voice call service, the user can input their needs for the voice call service through the configuration interface, API, or user interaction interface provided by the cloud computing platform 600. The cloud computing platform 600 can then generate a voice call service matching the user's (or other software / hardware, etc.) input needs.
[0129] Alternatively, some modules in the voice call system 300 can be configured on the cloud side and others on the device side, thereby realizing voice call services through device-cloud collaboration. Furthermore, the voice call system 300 can also be entirely configured on the device side, depending on the specific circumstances; no limitation is made here.
[0130] For example, Figure 7 is a schematic diagram of a voice call establishment device provided in an embodiment of this application. As shown in Figure 7, the voice call establishment device 700 can be divided into a first processing unit 710, a second processing unit 720, and a third processing unit 730 according to its execution function. The voice call establishment device 700 can be an application, software code, etc., deployed on a computing device or a cluster of computing devices composed of multiple computing devices. The computing device can be a server, computer, laptop, tablet, smartphone, etc. The voice call establishment device 700 can be deployed on a cloud server. If the voice call establishment device 700 is deployed on a cloud service, the designer can use a local device to call the cloud server to use the voice call establishment device 700 to complete the corresponding task. The voice call establishment device 700 is implemented as follows: a first processing unit 710 is used to receive a first call request from a first customer; a second processing unit 720 is used to select a first intermediate number from the first customer's number pool according to the first call request; the first customer's number pool includes at least one intermediate number, the first customer's number pool is used to bind with at least one customer, and provides the intermediate number when at least one customer makes a call, the intermediate number is used to establish a voice call connection between the caller and the called party, at least one number pool includes the first customer's number pool, and at least one customer includes the first customer; a third processing unit 730 is used to establish a voice call connection with the first customer and the customer called by the first customer based on the first intermediate number.
[0131] In one embodiment, before receiving the first call request from the first customer, the first processing unit 710 is further configured to obtain a plurality of intermediate numbers; allocate the plurality of intermediate numbers to at least one number pool according to a set number allocation rule; and allocate the sites to which the plurality of intermediate numbers belong to at least one number pool according to the sites to which the plurality of intermediate numbers belong.
[0132] In one embodiment, the third processing unit 730 is further configured to obtain customer information of the first customer; obtain a customer demand profile of the first customer based on the customer information of the first customer; the customer demand profile indicates the first customer's call demand for intermediate numbers; determine the number pool of the first customer based on the similarity between the customer demand profile of the first customer and the number pool profile of at least one number pool; the number pool profile is obtained based on at least one intermediate number allocated by the number pool and the site information of at least one site.
[0133] In one embodiment, the second processing unit 720 is specifically used to select a target site from the number pool of the first customer; and to select a first intermediate number to which the target site belongs from the number pool of the first customer.
[0134] In one embodiment, the second processing unit 720 is specifically used to select a set of sites from the number pool of the first customer according to the set site filtering rules; if the number of sites in the site set is greater than 1, select the site with the highest priority and / or the largest weight value from the site set according to the priority and / or weight value of the site set; the priority and / or weight value of the site is obtained according to the site profile of the site, and the site profile indicates the call capabilities supported by the site.
[0135] In one embodiment, the third processing unit 730 is further configured to detect the status of stations in the station set; if the status of a station in the station set is abnormal, the priority and / or weight value of the station is reduced.
[0136] In one embodiment, the third processing unit 730 is further configured to increase the priority and / or weight value of a site when the status of a site in the site set changes from an abnormal state to a normal state.
[0137] In one embodiment, the third processing unit 730 is further configured to receive a status report sent by the target site, the status report including any one or more of whether the voice call was successfully established, the current stage, and the status; delete the first intermediate number in the status report; and send a status report after deleting the first intermediate number to the first customer.
[0138] In one embodiment, the third processing unit 730 is further configured to receive an error code; the error code indicates that the target site and / or the first intermediate number is unavailable; and to reselect a site and / or reselect an intermediate number from the number pool of the first customer.
[0139] In one embodiment, the first processing unit 710 is further configured to receive a second call request from a second customer; the second processing unit 720 is further configured to select a second intermediate number from the number pool of the first customer according to the second call request, wherein at least one customer includes the second customer; and the third processing unit 730 is further configured to establish a voice call connection with the customers of the second customer and the second customer respectively based on the second intermediate number.
[0140] The first processing unit 710, the second processing unit 720, and the third processing unit 730 can all be implemented in software or in hardware. For example, the implementation of the first processing unit 710 will be described below. Similarly, the implementation of the second processing unit 720 and the third processing unit 730 can refer to the implementation of the first processing unit 710.
[0141] As an example of a software functional unit, the first processing unit 710 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the aforementioned computing instance may be one or more. For example, the first processing unit 710 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.
[0142] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.
[0143] As an example of a hardware functional unit, the first processing unit 710 may include at least one computing device, such as a server. Alternatively, the first processing unit 710 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be implemented using a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), generic array logic (GAL), or any combination thereof.
[0144] The multiple computing devices included in the first processing unit 710 can be distributed in the same region or in different regions. Similarly, the multiple computing devices included in the first processing unit 710 can be distributed in the same Availability Zone (AZ) or in different AZs. Likewise, the multiple computing devices included in the first processing unit 710 can be distributed in the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0145] It should be noted that, in other embodiments, the first processing unit 710 can be used to execute any step in the voice call establishment method, the second processing unit 720 can be used to execute any step in the voice call establishment method, and the third processing unit 730 can be used to execute any step in the voice call establishment method. The steps implemented by the first processing unit 710, the second processing unit 720, and the third processing unit 730 can be specified as needed. The first processing unit 710, the second processing unit 720, and the third processing unit 730 respectively implement different steps in the voice call establishment method to realize all the functions of the voice call establishment device.
[0146] Figure 8 is a schematic diagram of a computing device provided in an embodiment of this application. As shown in Figure 8, the computing device 800 includes a bus 810, a processor 820, a memory 830, and a communication interface 840. The processor 820, the memory 830, and the communication interface 840 communicate with each other via the bus 810. The computing device 800 can be a server, computer, laptop, server rack, etc. It should be understood that this application does not limit the number of processors and memories in the computing device 800.
[0147] Bus 810 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, only one line is used in Figure 8, but this does not imply that there is only one bus or one type of bus. Bus 810 can include pathways for transmitting information between various components of computing device 800 (e.g., processor 820, memory 830, communication interface 840).
[0148] The processor 820 can be any one or more of the following processors: central processing unit (CPU), graphics processing unit (GPU), microprocessor (MP), or digital signal processor (DSP).
[0149] The memory 830 may include volatile memory, such as random access memory (RAM). The memory 830 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).
[0150] The memory 830 stores executable program code, which the processor 820 executes to implement the functions of the aforementioned modules, such as the first processing unit 710, the second processing unit 720, and the third processing unit 730, thereby realizing the voice call establishment method. That is, the memory 830 stores instructions for executing the voice call establishment method.
[0151] Alternatively, the memory 830 may store executable code, which the processor 820 executes to implement the functions of the aforementioned modules, thereby realizing the voice call establishment method. That is, the memory 830 stores instructions for executing the voice call establishment method.
[0152] The communication interface 840 uses transceiver modules, such as, but not limited to, network interface cards and transceivers, to enable communication between the computing device 800 and other devices or communication networks.
[0153] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.
[0154] As shown in Figure 9, the computing device cluster includes at least one computing device 800. The memory 830 of one or more computing devices 800 in the computing device cluster may store the same instructions for executing a voice call establishment method.
[0155] In some possible implementations, the memory 830 of one or more computing devices 800 in the computing device cluster may also store partial instructions for executing the voice call establishment method. In other words, a combination of one or more computing devices 800 can jointly execute the instructions for executing the voice call establishment method.
[0156] It should be noted that the memories 830 in different computing devices 800 within the computing device cluster can store different instructions, which are used to execute parts of the functions of the first processing unit 710, the second processing unit 720, and the third processing unit 730 described above. That is, the instructions stored in the memories 830 of different computing devices 800 can implement the functions of one or more modules of the first processing unit 710, the second processing unit 720, and the third processing unit 730 described above.
[0157] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 10 illustrates one possible implementation. As shown in Figure 10, two computing devices, computing device 800A and computing device 800B, are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this type of possible implementation, the memory 830 in computing device 800A stores instructions for performing the functions of some modules in the first processing unit 710, the second processing unit 720, and the third processing unit 730. Simultaneously, the memory 830 in computing device 800B stores instructions for performing the functions of another portion of the modules in the first processing unit 710, the second processing unit 720, and the third processing unit 730.
[0158] The connection method between the computing device clusters shown in Figure 10 can be considered as follows: taking into account that the voice call establishment method provided in this application requires a large amount of data storage, it is considered that the functions implemented by another part of the modules in the first processing unit 710, the second processing unit 720 and the third processing unit 730 are handed over to the computing device 800B for execution.
[0159] It should be understood that the functions of computing device 800A shown in Figure 10 can also be performed by multiple computing devices 800. Similarly, the functions of computing device 800B can also be performed by multiple computing devices 800.
[0160] This application embodiment also provides another computing device cluster. The connection relationship between the computing devices in this computing device cluster can be similarly referred to the connection method of the computing device cluster described in Figures 8 and 9. The difference is that the memory 830 in one or more computing devices 800 in this computing device cluster can store the same instructions for executing the voice call establishment method.
[0161] In some possible implementations, the memory 830 of one or more computing devices 800 in the computing device cluster may also store partial instructions for executing the voice call establishment method. In other words, a combination of one or more computing devices 800 can jointly execute the instructions for executing the voice call establishment method.
[0162] It should be noted that the memory 830 in different computing devices 800 within the computing device cluster can store different instructions for executing some functions of the computing device 800. That is, the instructions stored in the memory 830 of different computing devices 800 can implement the functions of one or more modules of the first processing unit 710, the second processing unit 720, and the third processing unit 730 described above.
[0163] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing device or stored on any usable medium. When the computer program product is run on at least one computing device, it causes the at least one computing device to perform a voice call establishment method.
[0164] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct a computing device to perform a voice call establishment method.
[0165] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for establishing a voice call, characterized in that, The method is applied to a voice call platform for managing infrastructure, the infrastructure including at least one node, on which at least one number pool is stored. The method includes: receiving a first call request from a first customer; selecting a first intermediate number from the first customer's number pool based on the first call request; the first customer's number pool including at least one intermediate number, the first customer's number pool being bound to at least one customer and providing the intermediate number when the at least one customer makes a call, the intermediate number being used to establish a voice call connection between the caller and the called party, the at least one number pool including the first customer's number pool, the at least one customer including the first customer; and establishing voice call connections with the first customer and the customer called by the first customer based on the first intermediate number.
2. The method according to claim 1, characterized in that, Before receiving the first call request from the first customer, the method further includes: obtaining a plurality of intermediate numbers; allocating the plurality of intermediate numbers to the at least one number pool according to a set number allocation rule; and allocating the sites to which the plurality of intermediate numbers belong to the at least one number pool according to the sites to which the plurality of intermediate numbers belong.
3. The method according to claim 1 or 2, characterized in that, The method further includes: obtaining customer information of the first customer; obtaining a customer demand profile of the first customer based on the customer information of the first customer; the customer demand profile indicating the first customer's call demand for intermediate numbers; determining the number pool of the first customer based on the similarity between the customer demand profile of the first customer and the number pool profile of the at least one number pool; the number pool profile is obtained based on the site information of at least one intermediate number allocated by the number pool and at least one site.
4. The method according to claim 2 or 3, characterized in that, The step of selecting a first intermediate number from the number pool of the first customer according to the first call request specifically includes: selecting a target site from the number pool of the first customer; and selecting the first intermediate number to which the target site belongs from the number pool of the first customer.
5. The method according to claim 4, characterized in that, The step of selecting a target site from the number pool of the first customer specifically includes: selecting a set of sites from the number pool of the first customer according to the set of site filtering rules; if the number of sites in the set of sites is greater than 1, selecting the site with the highest priority and / or the largest weight value from the set of sites according to the priority and / or weight value of the set of sites; the priority and / or weight value of the site is obtained according to the site profile of the site, and the site profile indicates the call capabilities supported by the site.
6. The method according to any one of claims 1-5, characterized in that, The method further includes: detecting the status of sites in the site set; and, if the status of a site in the site set is abnormal, reducing the priority and / or weight value of the site.
7. The method according to claim 6, characterized in that, The method further includes: increasing the priority and / or weight value of a site when the status of a site in the site set changes from the abnormal state to the normal state.
8. The method according to any one of claims 1-7, characterized in that, The method further includes: receiving a status report sent by the target site, the status report including one or more of whether the voice call was successfully established, the current stage, and the status; deleting the first intermediate number from the status report; and sending a status report after deleting the first intermediate number to the first customer.
9. The method according to any one of claims 1-8, characterized in that, The method further includes: receiving an error code; the error code indicating that the target site and / or the first intermediate number is unavailable; and reselecting a site and / or reselecting an intermediate number from the number pool of the first customer.
10. The method according to any one of claims 1-9, characterized in that, The method further includes: receiving a second call request from a second customer; selecting a second intermediate number from the number pool of the first customer according to the second call request, wherein the at least one customer includes the second customer; and establishing voice call connections with the second customer and the customer being called by the second customer based on the second intermediate number.
11. A voice call establishment device, characterized in that, include: The first processing unit is used to receive the first call request from the first customer; The second processing unit is configured to select a first intermediate number from the number pool of the first customer according to the first call request; the number pool of the first customer includes at least one intermediate number, the number pool of the first customer is used to bind to at least one customer and provide the intermediate number when the at least one customer makes a call, the intermediate number is used to establish a voice call connection between the caller and the called party, the at least one number pool includes the number pool of the first customer, and the at least one customer includes the first customer. The third processing unit is used to establish voice call connections with the first customer and the customer called by the first customer based on the first intermediate number.
12. The apparatus according to claim 11, characterized in that, Before receiving the first call request from the first customer, the first processing unit is further configured to: acquire multiple intermediate numbers; allocate the multiple intermediate numbers to the at least one number pool according to a set number allocation rule; and allocate the sites to which the multiple intermediate numbers belong to the at least one number pool according to the sites to which the multiple intermediate numbers belong.
13. The apparatus according to claim 11 or 12, characterized in that, The third processing unit is further configured to acquire customer information of the first customer; obtain a customer demand profile of the first customer based on the customer information of the first customer; the customer demand profile indicates the first customer's call demand for intermediate numbers; determine the number pool of the first customer based on the similarity between the customer demand profile of the first customer and the number pool profile of the at least one number pool; the number pool profile is obtained based on the site information of at least one intermediate number allocated by the number pool and at least one site.
14. The apparatus according to claim 12 or 13, characterized in that, The second processing unit is specifically used to select a target site from the number pool of the first customer; and to select the first intermediate number to which the target site belongs from the number pool of the first customer.
15. The apparatus according to claim 14, characterized in that, The second processing unit is specifically used to select a set of sites from the number pool of the first customer according to the set site filtering rules; if the number of sites in the site set is greater than 1, select the site with the highest priority and / or the largest weight value from the site set according to the priority and / or weight value of the site set; the priority and / or weight value of the site is obtained according to the site profile of the site, and the site profile indicates the call capabilities supported by the site.
16. The apparatus according to any one of claims 11-15, characterized in that, The third processing unit is also used to detect the status of the sites in the site set; if the status of a site in the site set is abnormal, the priority and / or weight value of the site is reduced.
17. The apparatus according to claim 16, characterized in that, The third processing unit is further configured to increase the priority and / or weight value of a site when the status of a site in the site set changes from the abnormal state to the normal state.
18. The apparatus according to any one of claims 11-17, characterized in that, The third processing unit is further configured to receive a status report sent by the target site, the status report including any one or more of whether the voice call was successfully established, the current stage, and the status; delete the first intermediate number in the status report; and send a status report after deleting the first intermediate number to the first customer.
19. The apparatus according to any one of claims 11-18, characterized in that, The third processing unit is further configured to receive an error code; the error code indicating that the target site and / or the first intermediate number is unavailable; and to reselect a site and / or reselect an intermediate number from the number pool of the first customer.
20. The apparatus according to any one of claims 11-19, characterized in that, The first processing unit is further configured to receive a second call request from a second customer; the second processing unit is further configured to select a second intermediate number from the number pool of the first customer according to the second call request, wherein the at least one customer includes the second customer; the third processing unit is further configured to establish voice call connections with the second customer and the customer being called by the second customer respectively based on the second intermediate number.
21. A computing device cluster, characterized in that, include: At least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1-10.
22. A computer-readable storage medium, characterized in that, It includes computer program instructions, which, when executed by a computing device, cause the computing device to perform the method as described in any one of claims 1-10.
23. A computer program product containing instructions, characterized in that, The computer program product stores instructions that, when executed by a computing device, cause the computing device to perform the method according to any one of claims 1-10.