Method and apparatus for intelligent voice outbound
Patent Information
- Application Number
- CN202510406273.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-01
- Publication Date
- 2026-10-16
AI Technical Summary
[0004]有鉴于此,本发明实施例提供一种智能语音外呼的方法和装置,能够根据路由前缀来按路由分发规则对外呼请求进行分流,使得线路并发负载均衡,在高并发大流量的外呼场景下,拥有更高的可用性,并且解决了线路共享、资源复用的问题
[0022]上述发明中的一个实施例具有如下优点或有益效果:通过获取租户的外呼请求,外呼请求具有路由前缀,路由前缀是基于所述租户的外呼请求的路由分发规则生成的;基于预设的路由前缀与线路池的映射关系,根据路由前缀确定所述请求对应的目标线路池,并获取目标线路池的实时并发请求数量;响应于目标线路池的实时并发请求数量小于目标线路池的并发请求阈值,通过目标线路池对外呼请求进行处理以进行智能语音外呼的技术方案,可以根据路由前缀来按路由分发规则对外呼请求进行分流,使得线路并发负载均衡,在高并发大流量的外呼场景下,拥有更高的可用性,并且解决了线路共享、资源复用的问题。
Smart Images

Figure CN122933824A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of voice outbound calling technology, and in particular to a method and apparatus for intelligent voice outbound calling. Background Technology
[0002] Intelligent voice outbound calling can create a voice interaction experience comparable to that of a real person, replacing manual calls and proactively making outbound calls to reach customers at low cost and with high precision. The line system is the core platform supporting the intelligent outbound calling system, and the efficiency and scalability of the call lines are the core elements of the entire line system. Currently, the main methods for implementing call line reuse are, for example: establishing a mapping relationship between real callers and virtual callers provided by the line operator, and initiating outbound calls through virtual callers to achieve line reuse; or establishing a correspondence between real callers and the connecting gateway, and configuring caller rewriting rules to enable real callers to initiate outbound calls through the connecting gateway to achieve line reuse.
[0003] However, in the process of implementing this invention, the inventors discovered that under the multi-tenant high-concurrency outbound call requirements, both implementation methods still have problems such as the outbound call lines not being reusable or not being used efficiently. Summary of the Invention
[0004] In view of this, embodiments of the present invention provide a method and apparatus for intelligent voice outbound calling, which can distribute outbound call requests according to routing rules based on routing prefixes, thereby balancing line concurrent load and achieving higher availability in high-concurrency, high-volume outbound call scenarios, while also solving the problems of line sharing and resource reuse.
[0005] To achieve the above objectives, according to one aspect of the present invention, a method for intelligent voice outbound calling is provided, comprising:
[0006] Obtain the tenant's outbound call request, the outbound call request having a routing prefix, the routing prefix being generated based on the routing distribution rules of the tenant's outbound call request;
[0007] Based on the preset mapping relationship between routing prefixes and line pools, the target line pool corresponding to the outbound call request is determined according to the routing prefix, and the real-time concurrent request count of the target line pool is obtained.
[0008] In response to the fact that the number of real-time concurrent requests to the target line pool is less than the concurrent request threshold of the target line pool, the outbound call request is processed through the target line pool to perform intelligent voice outbound calls.
[0009] Optionally, the method further includes: issuing an early warning message in response to the number of real-time concurrent requests to the target line pool being greater than or equal to the concurrent request threshold of the target line pool, and adjusting the proportion of the tenant's outbound call requests being distributed to different line pools.
[0010] Optionally, each line pool includes multiple line nodes, and each line node has a distribution weight; processing the outbound call request through the target line pool includes: determining a target line node according to the distribution weight of each line node in the target line pool, and processing the outbound call request through the target line node.
[0011] Optionally, after processing the outbound call request through the target line node, the method further includes: updating the distribution weight of each line node in the target line pool.
[0012] Optionally, each line node also has a default weight; updating the distribution weight of each line node in the target line pool includes: obtaining an intermediate distribution weight of the target line node by subtracting the sum of the default weights of each line node in the target line pool from the distribution weight of the target line node; obtaining an updated distribution weight of the target line node by summing the intermediate distribution weight of the target line node with the default weight of the target line node; and obtaining an updated distribution weight of each non-target line node in the target line pool by summing the distribution weight of the non-target line node with the default weight of the non-target line node.
[0013] Optionally, the method further includes: real-time monitoring of the line status of each line pool; and adjusting the concurrent request threshold of the line pool with abnormal line status in response to the detection of abnormal line status.
[0014] Optionally, each line pool includes multiple line nodes, and each line node has a priority; the method further includes: in response to detecting an abnormal line status, determining a replacement line node based on the priority of each line node in the line pool with the abnormal line status, and assigning outbound call requests on the line node with the abnormal line status to the replacement line node.
[0015] According to another aspect of the present invention, an intelligent voice outbound calling device is provided, comprising:
[0016] The request acquisition module is used to acquire outbound call requests from tenants. The outbound call requests have a routing prefix, which is generated based on the routing distribution rules of the tenant's outbound call requests.
[0017] The line pool determination module is used to determine the target line pool corresponding to the outbound call request based on the preset mapping relationship between the routing prefix and the line pool, and to obtain the real-time concurrent request count of the target line pool.
[0018] The request processing module is used to process the outbound call request through the target line pool to perform intelligent voice outbound calls when the number of real-time concurrent requests in the target line pool is less than the concurrent request threshold of the target line pool.
[0019] According to another aspect of the present invention, an electronic device is provided, comprising: one or more processors; and a storage device for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement the intelligent voice outbound calling method provided in the embodiments of the present invention.
[0020] According to another aspect of the present invention, a computer-readable medium is provided having a computer program stored thereon, which, when executed by a processor, implements the intelligent voice outbound calling method provided in the embodiments of the present invention.
[0021] According to another aspect of the present invention, a computer program product is provided, including a computer program that, when executed by a processor, implements the intelligent voice outbound calling method provided in the embodiments of the present invention.
[0022] One embodiment of the above invention has the following advantages or beneficial effects: by obtaining a tenant's outbound call request, which has a routing prefix, the routing prefix is generated based on the routing distribution rules of the tenant's outbound call request; based on the preset mapping relationship between the routing prefix and the line pool, the target line pool corresponding to the request is determined according to the routing prefix, and the real-time concurrent request count of the target line pool is obtained; in response to the real-time concurrent request count of the target line pool being less than the concurrent request threshold of the target line pool, the technical solution of processing the outbound call request through the target line pool for intelligent voice outbound calls can distribute outbound call requests according to the routing prefix and routing distribution rules, thereby balancing the concurrent load of the lines, achieving higher availability in high-concurrency, high-volume outbound call scenarios, and solving the problems of line sharing and resource reuse.
[0023] The further effects of the aforementioned unconventional alternative methods will be explained below in conjunction with specific implementation methods. Attached Figure Description
[0024] The accompanying drawings are provided to better understand the invention and are not intended to unduly limit the scope of the invention. Wherein:
[0025] Figure 1This is a schematic diagram of the main steps of the intelligent voice outbound calling method according to an embodiment of the present invention;
[0026] Figure 2 This is a schematic diagram of the architecture of an intelligent voice outbound calling system according to an embodiment of the present invention;
[0027] Figure 3 This is a schematic diagram of the routing principle of a line pool according to an embodiment of the present invention;
[0028] Figure 4 This is a schematic diagram illustrating the principle of line node selection according to an embodiment of the present invention;
[0029] Figure 5 This is a schematic diagram of the main modules of an intelligent voice outbound calling device according to an embodiment of the present invention;
[0030] Figure 6 This is an exemplary system architecture diagram in which embodiments of the present invention can be applied;
[0031] Figure 7 This is a schematic diagram of the structure of a computer system suitable for implementing terminal devices or servers of the present invention. Detailed Implementation
[0032] The following description, in conjunction with the accompanying drawings, illustrates exemplary embodiments of the present invention, including various details to aid understanding. These details should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the invention. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.
[0033] It should be noted that the technical solutions disclosed in this invention, regarding the collection, updating, analysis, processing, use, transmission, and storage of user personal information, all comply with relevant laws and regulations, are used for legitimate purposes, and do not violate public order and good morals. Necessary measures are taken to prevent unauthorized access to user personal information data and to safeguard user personal information security, network security, and national security.
[0034] Currently, when making intelligent voice outbound calls, before a tenant makes a call, they need to communicate with the line operator regarding their outbound call list size, call connection rate, call script, and whether to make a redial. Then, the line operator will contact the line provider to provide concurrent lines that meet the tenant's needs. After aggregating the line provider resources, the line operator will create a caller ID number and return it to the tenant so that the tenant can initiate outbound calls using that number. Currently, the main methods for call line multiplexing in intelligent outbound calling systems are as follows:
[0035] Method 1: The tenant generates a virtual calling number based on the line operation and establishes a mapping between the virtual calling number and the real calling number. When initiating an outbound call, the virtual calling number is replaced with the real calling number through this mapping relationship to initiate the outbound call, so that the call is made through the calling line via the docking gateway. This achieves multi-tenant line reuse.
[0036] Method 2: The project side applies for caller information (i.e., real caller number) separately for each project. The line operation side establishes the correspondence between the real caller number and the connected gateway and configures caller rewriting rules to route outbound calls initiated by tenants to the same group of call lines. In this way, the line operation side can support the outbound call needs of multiple tenants at the same time through a group of line resources, realizing multi-tenant line reuse.
[0037] However, in the process of realizing this invention, the inventors discovered that current methods of line reuse all have some problems and shortcomings, especially under the requirements of multi-tenant high-concurrency outbound calls, where outbound call lines may not be reused or may not be used efficiently. A detailed analysis follows:
[0038] (1) Method 1: The tenant side establishes a virtual caller, which essentially still uses a set of outbound call line resources. If the outbound call application is 1000 concurrent, the three virtual callers established can only share these 1000 concurrent line resources. If outbound calls need to be initiated at the same time, the line resources need to be re-applied for. Furthermore, if a line resource has a problem, it will affect all tenants.
[0039] (2) Method 2: By introducing caller ID rewriting rules, the problem of insufficient line resources in Method 1 is solved. All projects share the line resources in the total line pool. However, Method 2 is still a dedicated line mode, that is, the line information is configured in one tenant. Other tenants route outbound calls to the configuration of that tenant through caller ID rewriting. The line information cannot be effectively managed, and there is also a line disaster recovery problem. If there is a problem with the total line pool, all tenants will be affected.
[0040] To address the technical problems existing in the prior art, this invention provides a method for intelligent voice outbound calling, which mainly solves the problem of efficient reuse of outbound calling lines in multi-tenant high-concurrency outbound calling scenarios.
[0041] In the description of the embodiments of the present invention, the technical terms involved and their definitions are as follows:
[0042] Redis: An open-source key-value cache;
[0043] CTI: A call center system generally includes telephone lines, agent equipment, CTI server, CTI call center middleware, call center application software, etc. Currently, companies such as Hengtian, Jiaxin, and Honglian exist.
[0044] SIP: Session Initiation Protocol;
[0045] SIP Relay: Session Initiation Protocol (SIP) relay is a digital method for making and receiving telephone calls and other digital communications over the Internet.
[0046] Relay platform software: including SVOS, VOS, etc.
[0047] Figure 1 This is a schematic diagram illustrating the main steps of an intelligent voice outbound calling method according to an embodiment of the present invention. Figure 1 As shown, the intelligent voice outbound calling method of this invention mainly includes the following steps S101 to S103.
[0048] Step S101: Obtain the tenant's outbound call request, wherein the outbound call request has a routing prefix, and the routing prefix is generated based on the routing distribution rules of the tenant's outbound call request.
[0049] According to an embodiment of the present invention, for each tenant, its corresponding outbound call requests can be distributed to different line pools according to a set routing distribution rule. The routing distribution rule, for example, is the proportion of a tenant's outbound call requests distributed to different line pools. This allows for proportional distribution of outbound call requests based on routing prefixes, resulting in balanced line concurrency load and higher availability in high-concurrency, high-traffic outbound call scenarios. It also solves the problems of line sharing and resource reuse. Specifically, the tenant's routing distribution rule can be pre-set, including the proportion of requests distributed to each line pool. For example, for line pool 1, line pool 2, and line pool 3, the tenant's outbound call requests can be distributed to these three line pools in a 1:2:3 ratio. To facilitate determining which line pool a tenant's outbound call request should be distributed to, different routing prefixes can be added to the outbound call requests to be distributed to different line pools, allowing for outbound call request distribution based on the routing prefixes.
[0050] Specifically, when a tenant's outbound call request passes through the interfacing gateway, the interfacing gateway determines the route prefix to be added based on the distribution ratio. When the interfacing gateway sends the tenant's outbound call request to the corresponding line pool, it determines the target line pool to be distributed to based on the route prefix.
[0051] In other embodiments of the present invention, the routing distribution rule may also be a threshold for the number of outbound call requests distributed to different line pools, etc. In specific implementation, the routing distribution rule can be flexibly set according to the needs of the business scenario.
[0052] In addition, in other embodiments of the present invention, basic line information configuration for tenants can also be performed, such as line calling number, concurrency, caps (Connect per sec, the number of connections established per second for outbound lines), etc.
[0053] Figure 2 This is a schematic diagram of the architecture of an intelligent voice outbound calling system according to an embodiment of the present invention. Figure 2 As shown, in one embodiment of the present invention, when the intelligent voice outbound calling system makes an intelligent voice outbound call, the tenant's outbound call request is sent to the interfacing gateway. The interfacing gateway adds a routing prefix to each outbound call request according to the routing distribution rules, and then sends it to the intelligent voice outbound call management module. The intelligent voice outbound call management module then distributes the outbound call request to the corresponding line pool according to the routing prefix of the outbound call request. A line pool may include multiple line nodes.
[0054] Figure 3 This is a schematic diagram illustrating the routing principle of a line pool according to an embodiment of the present invention. Figure 3 As shown, in this embodiment of the invention, outbound call requests from four tenants need to be distributed to three line pools for processing. Tenant 1 has an outbound call demand of 300 concurrent requests, configured to be distributed across the three line pools in a 2:3:1 ratio; Tenant 2 has an outbound call demand of 1200 concurrent requests, configured to be distributed across the three line pools in a 1:1:1 ratio; Tenant 3 has an outbound call demand of 1000 concurrent requests, configured to be distributed across line pool 1 and line pool 2 in a 1:1 ratio; and Tenant 4 has an outbound call demand of 800 concurrent requests, configured to be distributed across line pool 2 and line pool 3 in a 1:1 ratio. By using the routing rules for each tenant's outbound call requests, the proportion of each tenant's outbound call requests distributed to different line pools can be obtained.
[0055] Step S102: Based on the preset mapping relationship between routing prefixes and line pools, determine the target line pool corresponding to the outbound call request according to the routing prefix, and obtain the real-time concurrent request count of the target line pool.
[0056] According to embodiments of the present invention, when establishing line pool resources, basic information configuration of the line pool and line configuration can be performed, etc. The basic information configuration of the line pool includes, for example, the routing prefix, service type configuration, general call script configuration, and external number segment configuration corresponding to the line pool, etc.; the line configuration includes, for example, the number of lines included in the line pool, the concurrency of each line, the priority of each line, the default weight, etc. In addition, each line pool can also correspond to different SIP trunk clusters, configured in a 1:n ratio, that is, each line pool can be configured with multiple SIP trunk clusters as primary and backup.
[0057] According to an embodiment of the present invention, during the outbound call request processing, the number of concurrent requests in each line pool is monitored in real time to facilitate the distribution and processing of outbound call requests.
[0058] Based on the routing prefix of the tenant's outbound call request, the target line pool corresponding to the outbound call request can be determined according to the preset mapping relationship between the routing prefix and the line pool. Then, based on the real-time concurrent request count of the target line pool, it can be determined whether the outbound call request should be distributed to the target line pool.
[0059] During intelligent voice outbound calls, the call center system's CTI reports the number of concurrent requests for each line to the line management platform in real time. Simultaneously, it generates a hash structure in the Redis cache. The key of this hash structure has the value `cluster:line-pool-id`, where the field mapped to the key contains all line pool records corresponding to `line-pool-id` (line pool ID). The field `line-id:init-concurrent` represents the line ID information and the number of concurrent requests at line initialization. The value is the real-time concurrent request count for the line, and `cluster` identifies the server cluster it belongs to. The real-time concurrent request count of the line pool is obtained by summing the real-time concurrent request counts of all lines in the line pool.
[0060] Step S103: In response to the fact that the number of real-time concurrent requests in the target line pool is less than the concurrent request threshold of the target line pool, the outbound call request is processed through the target line pool to perform intelligent voice outbound calls. The concurrent request threshold of the target line pool can be obtained based on the number of lines included in the line pool in the line configuration and the concurrency of each line. Accordingly, the concurrent request threshold of each line pool can be calculated.
[0061] When the number of concurrent requests in the target line pool is less than the concurrent request threshold of the target line pool, that is, the target line pool has not been over-issued and there are still remaining lines to process outbound call requests, outbound call requests can be processed through the target line pool.
[0062] According to another embodiment of the present invention, the method further includes: issuing an early warning message in response to the number of real-time concurrent requests to the target line pool being greater than or equal to the concurrent request threshold of the target line pool, and adjusting the proportion of the tenant's outbound call requests distributed to different line pools. When the number of real-time concurrent requests to the target line pool is greater than or equal to the concurrent request threshold of the target line pool, if the outbound call request is distributed to the target line pool at this time, the target line pool will exceed the concurrency limit (i.e., exceed the concurrent request threshold), therefore an early warning message will be issued, and the proportion of the tenant's outbound call requests distributed to different line pools will be immediately adjusted to distribute the tenant's outbound call requests to line pools with available slots.
[0063] According to one embodiment of the present invention, each line pool includes multiple line nodes, and each line node has a distribution weight. Processing the outbound call request through the target line pool includes: determining a target line node based on the distribution weight of each line node in the target line pool, and processing the outbound call request through the target line node. Specifically, after distributing the outbound call request to the target line pool for processing, a target line node is selected from the target line pool to process the outbound call request. The selection of the target line node can be based on the distribution weight of each line node. Here, the distribution weight refers to the current distribution weight of each line node.
[0064] According to one embodiment of the present invention, after processing the outbound call request through the target line node, the method further includes: updating the distribution weight of each line node in the target line pool.
[0065] In embodiments of the present invention, in order to ensure that each line node can be polled, the distribution weight of each line node can be updated and adjusted. Specific rules for updating and adjusting the weight include, for example, subtracting a fixed value from the weight of a line node after each outbound call request is distributed; or increasing the weight of a line node that has not received an outbound call request by a fixed value, and so on.
[0066] According to a specific embodiment of the present invention, each line node also has a default weight; updating the distribution weight of each line node in the target line pool specifically includes: obtaining the intermediate distribution weight of the target line node by subtracting the sum of the default weights of each line node in the target line pool from the distribution weight of the target line node; obtaining the updated distribution weight of the target line node by summing the intermediate distribution weight of the target line node with the default weight of the target line node; and for each non-target line node in the target line pool, obtaining the updated distribution weight of the non-target line node by summing the distribution weight of the non-target line node with the default weight of the non-target line node. That is, for each line node, its distribution weight can be updated according to a weighted average algorithm, based on its default weight. The default weight is a weight pre-set for each line node before the intelligent outbound voice system runs. Generally, outbound call requests are preferentially assigned to line nodes with higher weights.
[0067] Figure 4 This is a schematic diagram illustrating the principle of line node selection according to an embodiment of the present invention. Figure 4 As shown, according to an embodiment of the present invention, outbound call requests are routed to each line node proportionally according to a weighted average algorithm.
[0068] Suppose there are (n+1) lines L = {L0, L1, L2, ..., Ln}, and the default weight of each line is W = {W0, W1, W2, ..., Wn} (e.g., a pre-configured concurrency ratio). The current distribution weight of each line is CW = {CW0, CW1, CW2, ..., CWn}. This algorithm uses two weights: the default weight (representing the original weight of the line) and the current distribution weight (representing the weight recalculated after each access). The initial value of the current distribution weight is the default weight value. The line with the largest current distribution weight is maxWeightLine. The sum of all selected default weights is weightSum, and the line list is lineList. The algorithm for selecting line nodes can be described as follows:
[0069] 1. Find the line with the highest current distribution weight value, maxWeightLine;
[0070] 2. Calculate the sum of the default weights W0, W1, W2, ..., Wn for each line: weightSum;
[0071] 3. After the outbound call request is distributed to the line maxWeightLine (i.e., the target line) with the largest current distribution weight value, the intermediate distribution weight of the target line is calculated as: maxWeightLine.CW = maxWeightLine.CW – weightSum, and this is used as the current distribution weight of the target line for step 4 calculation.
[0072] 4. Recalculate the current distribution weight CW for each line {L0,L1,L2,…,Ln}. The calculation formula is: Ln.CW=Ln.CW+Ln.Wn, where Ln.CW is the current distribution weight of line Ln, and Ln.Wn is the default weight of line Ln.
[0073] 5. Return maxWeightLine to distribute the next outbound call request to this line.
[0074] According to one embodiment of the present invention, each line pool includes multiple line nodes, and each line node has a priority; the method further includes: in response to detecting an abnormal line status, determining a replacement line node based on the priority of each line node in the line pool with the abnormal line status, and allocating outbound call requests on the line node with the abnormal line status to the replacement line node. In embodiments of the present invention, a priority can also be set for each line node in the line pool to distribute outbound call requests by combining priority and distribution weight. Here, the distribution weight is the distribution weight among line nodes with the same priority. For each line pool, its multiple line nodes can be set with different priorities. A first set of line nodes for distribution is initially determined based on the priority, and then outbound call requests are distributed based on the weight of each line node in the first set of line nodes. At this time, if a line node with priority 1 (e.g., the highest priority) fails and cannot meet the concurrency requirements, a line node with priority 2 will be automatically activated as a replacement line node to process outbound call requests. When determining which line node with priority 2 will be activated as the replacement line node, the weight values of each line node with priority 2 can be used to determine this. It should be noted that once a replacement line node is identified, its priority can be adjusted from 2 to 1 to handle outbound call requests on the faulty line node.
[0075] According to one embodiment of the present invention, the method further includes: real-time monitoring of the line status of each line pool; and adjusting the concurrent request threshold of the line pool with the abnormal line status in response to the detected abnormal line status. According to an embodiment of the present invention, when a line node in a line pool itself fails, disaster recovery can also be achieved by adjusting the proportion of outbound call requests allocated to that line pool. For example, assuming that line pool 2 can handle a total of 1400 concurrent requests (i.e., the concurrent request threshold is 1400), if multiple lines in line pool 2 fail, the allocation ratio of line pool 2 can be adjusted immediately, reducing the concurrent request threshold of line pool 2 to 600. This reduces the amount of outbound call requests allocated to line pool 2, thereby ensuring the high availability of the outbound call processing line pool.
[0076] Figure 5 This is a schematic diagram of the main modules of an intelligent voice outbound calling device according to an embodiment of the present invention. Figure 5 As shown, the intelligent voice outbound calling device 500 of this embodiment mainly includes a request acquisition module 501, a line pool determination module 502, and a request processing module 503.
[0077] The request acquisition module 501 is used to acquire the outbound call request of the tenant. The outbound call request has a routing prefix, which is generated based on the routing distribution rules of the tenant's outbound call request.
[0078] The line pool determination module 502 is used to determine the target line pool corresponding to the outbound call request based on the preset mapping relationship between the routing prefix and the line pool, and to obtain the real-time concurrent request count of the target line pool.
[0079] The request processing module 503 is used to process the outbound call request through the target line pool to perform intelligent voice outbound calls when the number of real-time concurrent requests of the target line pool is less than the concurrent request threshold of the target line pool.
[0080] According to an embodiment of the present invention, the request processing module 503 can also be used to: issue an early warning message in response to the number of real-time concurrent requests of the target line pool being greater than or equal to the concurrent request threshold of the target line pool, and adjust the proportion of the tenant's outbound call requests being distributed to different line pools.
[0081] According to another embodiment of the present invention, each line pool includes multiple line nodes, and each line node has a distribution weight; the request processing module 503 can also be used to: determine a target line node according to the distribution weight of each line node in the target line pool, and process the outbound call request through the target line node.
[0082] According to another embodiment of the present invention, the intelligent voice outbound calling device 500 may further include a line weight update module (not shown in the figure), which is used to update the distribution weight of each line node in the target line pool after the outbound call request is processed through the target line node.
[0083] According to another embodiment of the present invention, each line node also has a default weight; the line weight update module (not shown in the figure) can be specifically used to: obtain the intermediate distribution weight of the target line node by subtracting the sum of the default weights of each line node in the target line pool from the distribution weight of the target line node; obtain the updated distribution weight of the target line node by summing the intermediate distribution weight of the target line node with the default weight of the target line node; and obtain the updated distribution weight of the non-target line node by summing the distribution weight of the non-target line node with the default weight of the non-target line node for each non-target line node in the target line pool.
[0084] According to another embodiment of the present invention, the intelligent voice outbound calling device 500 may further include a concurrent request threshold adjustment module (not shown in the figure), used for: real-time monitoring of the line status of each line pool; and adjusting the concurrent request threshold of the line pool with abnormal line status in response to the detection of abnormal line status.
[0085] According to another embodiment of the present invention, each line pool includes multiple line nodes, and each line node has a priority; the intelligent voice outbound call device 500 may further include a disaster recovery processing module (not shown in the figure), used to: in response to monitoring an abnormal line status, determine a replacement line node according to the priority of each line node in the line pool with the abnormal line status, and allocate outbound call requests on the line node with the abnormal line status to the replacement line node.
[0086] According to another embodiment of the present invention, the routing distribution rule includes the proportion of outbound call requests from the tenant being distributed to different line pools.
[0087] According to the technical solution of this invention, by obtaining a tenant's outbound call request, which has a routing prefix generated based on the routing distribution rules of the tenant's outbound call request; based on a preset mapping relationship between the routing prefix and the line pool, the target line pool corresponding to the request is determined according to the routing prefix, and the real-time concurrent request count of the target line pool is obtained; in response to the real-time concurrent request count of the target line pool being less than the concurrent request threshold of the target line pool, the outbound call request is processed through the target line pool to perform intelligent voice outbound calls. This technical solution can distribute outbound call requests according to the routing prefix and routing distribution rules, thereby balancing the concurrent load of the lines. In high-concurrency, high-volume outbound call scenarios, it has higher availability and solves the problems of line sharing and resource reuse.
[0088] Figure 6 An exemplary system architecture 600 is shown, which can be applied to the intelligent voice outbound calling method or the intelligent voice outbound calling apparatus according to embodiments of the present invention.
[0089] like Figure 6 As shown, system architecture 600 may include terminal devices 601, 602, and 603, a network 604, and a server 605. Network 604 serves as the medium for providing communication links between terminal devices 601, 602, and 603 and server 605. Network 604 may include various connection types, such as wired or wireless communication links or fiber optic cables, etc.
[0090] Users can use terminal devices 601, 602, and 603 to interact with server 605 via network 604 to receive or send messages, etc. Various communication client applications can be installed on terminal devices 601, 602, and 603, such as shopping applications, customer service applications, intelligent voice outbound calling applications, instant messaging tools, email clients, social media platform software, etc. (for example only).
[0091] Terminal devices 601, 602, and 603 can be various electronic devices with displays and web browsing capabilities, including but not limited to smartphones, tablets, laptops, and desktop computers.
[0092] Server 605 can be a server providing various services, such as a backend management server supporting websites browsed by users using terminal devices 601, 602, and 603 (for example only). The backend management server can process received data such as intelligent voice outbound call requests to obtain tenant outbound call requests. These outbound call requests have routing prefixes generated based on routing distribution rules for the tenant's outbound call requests. Based on a preset mapping relationship between routing prefixes and line pools, the server determines the target line pool corresponding to the outbound call request and obtains the real-time concurrent request count of the target line pool. In response to the real-time concurrent request count of the target line pool being less than the concurrent request threshold of the target line pool, the server processes the outbound call request through the target line pool to perform intelligent voice outbound call processing, and feeds back the processing result (e.g., the target line pool – for example only) to the terminal device.
[0093] It should be noted that the intelligent voice outbound calling method provided in this embodiment of the invention is generally executed by server 605, and correspondingly, the intelligent voice outbound calling device is generally set in server 605.
[0094] It should be understood that Figure 6 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.
[0095] The following is for reference. Figure 7 It shows a schematic diagram of the structure of a computer system 700 suitable for implementing terminal devices or servers of the present invention. Figure 7 The terminal device or server shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of the present invention.
[0096] like Figure 7 As shown, the computer system 700 includes a central processing unit (CPU) 701, which can perform various appropriate actions and processes based on programs stored in read-only memory (ROM) 702 or programs loaded from storage section 708 into random access memory (RAM) 703. The RAM 703 also stores various programs and data required for the operation of the system 700. The CPU 701, ROM 702, and RAM 703 are interconnected via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.
[0097] The following components are connected to the I / O interface 705: an input section 706 including a keyboard, mouse, etc.; an output section 707 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 708 including a hard disk, etc.; and a communication section 709 including a network interface card such as a LAN card, modem, etc. The communication section 709 performs communication processing via a network such as the Internet. A drive 710 is also connected to the I / O interface 705 as needed. A removable medium 711, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 710 as needed so that computer programs read from it can be installed into the storage section 708 as needed.
[0098] In particular, according to the embodiments disclosed in this invention, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments disclosed in this invention include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 709, and / or installed from removable medium 711. When the computer program is executed by central processing unit (CPU) 701, it performs the functions defined above in the system of this invention.
[0099] It should be noted that the computer-readable medium shown in this invention can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this invention, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this invention, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media can also be any computer-readable medium other than computer-readable storage media, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wireless, wire, optical fiber, RF, etc., or any suitable combination thereof.
[0100] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0101] The units or modules described in the embodiments of the present invention can be implemented in software or hardware. The described units or modules can also be housed in a processor; for example, a processor can be described as including a request acquisition module, a line pool determination module, and a request processing module. The names of these units or modules do not necessarily limit the specific unit or module itself. For example, the request processing module can also be described as "a module for processing outbound call requests through the target line pool to perform intelligent voice outbound calls in response to a real-time concurrent request number in the target line pool being less than the concurrent request threshold of the target line pool."
[0102] In another aspect, the present invention also provides a computer-readable medium, which may be included in the device described in the above embodiments; or it may exist independently and not assembled into the device. The computer-readable medium carries one or more programs, which, when executed by the device, cause the device to include: acquiring a tenant's outbound call request, the outbound call request having a routing prefix generated based on routing distribution rules for the tenant's outbound call request; determining a target line pool corresponding to the outbound call request based on a preset mapping relationship between the routing prefix and a line pool, and acquiring the real-time concurrent request count of the target line pool; and, in response to the real-time concurrent request count of the target line pool being less than a concurrent request threshold of the target line pool, processing the outbound call request through the target line pool to perform intelligent voice outbound calling.
[0103] According to the technical solution of this invention, by obtaining a tenant's outbound call request, which has a routing prefix generated based on the routing distribution rules of the tenant's outbound call request; based on a preset mapping relationship between the routing prefix and the line pool, the target line pool corresponding to the request is determined according to the routing prefix, and the real-time concurrent request count of the target line pool is obtained; in response to the real-time concurrent request count of the target line pool being less than the concurrent request threshold of the target line pool, the outbound call request is processed through the target line pool to perform intelligent voice outbound calls. This technical solution can distribute outbound call requests according to the routing prefix and routing distribution rules, thereby balancing the concurrent load of the lines. In high-concurrency, high-volume outbound call scenarios, it has higher availability and solves the problems of line sharing and resource reuse.
[0104] The specific embodiments described above do not constitute a limitation on the scope of protection of this invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can occur depending on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this invention should be included within the scope of protection of this invention.
Claims
1. A method for intelligent voice outbound calling, characterized in that, include: Obtain the tenant's outbound call request, the outbound call request having a routing prefix, the routing prefix being generated based on the routing distribution rules of the tenant's outbound call request; Based on the preset mapping relationship between routing prefixes and line pools, the target line pool corresponding to the outbound call request is determined according to the routing prefix, and the real-time concurrent request count of the target line pool is obtained. In response to the fact that the number of real-time concurrent requests to the target line pool is less than the concurrent request threshold of the target line pool, the outbound call request is processed through the target line pool to perform intelligent voice outbound calls.
2. The method according to claim 1, characterized in that, The method further includes: In response to the number of real-time concurrent requests to the target line pool being greater than or equal to the concurrent request threshold of the target line pool, an early warning message is issued, and the proportion of the tenant's outbound call requests being distributed to different line pools is adjusted.
3. The method according to claim 1, characterized in that, Each line pool consists of multiple line nodes, and each line node has a distribution weight; Processing the outbound call request through the target line pool includes: The target line node is determined based on the distribution weight of each line node in the target line pool, and the outbound call request is processed through the target line node.
4. The method according to claim 3, characterized in that, After processing the outbound call request through the target line node, the process further includes: Update the distribution weight of each line node in the target line pool.
5. The method according to claim 4, characterized in that, Each line node also has a default weight; Updating the distribution weight of each line node in the target line pool includes: The intermediate distribution weight of the target line node is obtained by subtracting the sum of the default weights of each line node in the target line pool from the distribution weight of the target line node. The updated distribution weight of the target line node is obtained by summing the intermediate distribution weight of the target line node with the default weight of the target line node. For each non-target line node in the target line pool, the distribution weight of the non-target line node is summed with its default weight to obtain the updated distribution weight of the non-target line node.
6. The method according to claim 1, characterized in that, The method further includes: Real-time monitoring of the line status of each line pool; In response to the detection of abnormal line status, adjust the concurrent request threshold of the line pool with abnormal line status.
7. The method according to claim 1, characterized in that, Each line pool comprises multiple line nodes, and each line node has a priority; the method further includes: In response to the detection of abnormal line status, a replacement line node is determined based on the priority of each line node in the line pool with abnormal line status, and outbound call requests on the line node with abnormal line status are assigned to the replacement line node.
8. The method according to claim 1, characterized in that, The routing distribution rules include the proportion of outbound call requests from the tenant that are distributed to different line pools.
9. A device for intelligent voice outbound calling, characterized in that, include: The request acquisition module is used to acquire outbound call requests from tenants. The outbound call requests have a routing prefix, which is generated based on the routing distribution rules of the tenant's outbound call requests. The line pool determination module is used to determine the target line pool corresponding to the outbound call request based on the preset mapping relationship between the routing prefix and the line pool, and to obtain the real-time concurrent request count of the target line pool. The request processing module is used to process the outbound call request through the target line pool to perform intelligent voice outbound calls when the number of real-time concurrent requests in the target line pool is less than the concurrent request threshold of the target line pool.
10. An electronic device, characterized in that, include: One or more processors; Storage device for storing one or more programs. When the one or more programs are executed by the one or more processors, the one or more processors implement the method as described in any one of claims 1-8.
11. A computer-readable medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1-8.
12. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1-8.