Number determination method and device for outbound call, medium, equipment and product
By obtaining the query rate parameters of the number, dynamically adjusting the time granularity to solve the problem of inaccurate number concurrency control, the stability and accuracy of the robot call system are achieved, and the normal operation of the call is ensured.
Patent Information
- Application Number
- CN202510589273.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-07
- Publication Date
- 2025-07-18
AI Technical Summary
In the prior art, the number concurrency control of the robot is inaccurate when calling, resulting in the call service being affected. Especially when the hang-up event is delayed or malfunctioned, the number concurrency cannot be reduced in time, resulting in waste of resources and call failure.
By obtaining the query rate parameters of the number, the number selection when the concurrent number is updated abnormally is automatically switched to ensure the accuracy and stability of the selection process. The query rate parameters are used for number selection, and the total number of concurrent and the average call time is dynamically adjusted to achieve fine control.
It improves the accuracy of number selection and the stability of the call system, ensures the normal operation of the call initiator, reduces the failure rate of number selection, and improves the overall stability of the outbound call system.
Smart Images

Figure CN120343157A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technologies, and in particular, to a method, apparatus, medium, device, and product for determining a number for outbound calls. Background Art
[0002] Robot calls can accurately identify the intent of a conversation based on voice dialogue technology and scenario operation requirements to build a natural and smooth voice service experience. For example, in business scenarios such as marketing, food delivery, and taxi-hailing, communication with users can be achieved through robot calls.
[0003] When a robot makes a call, it needs to select a calling number to make a call to a user, and the calling number can be displayed on the user side. However, each calling number has resource limitations, and the same calling number cannot be used for too many outbound calls at the same time. It is necessary to control the outbound call concurrency of the number.
[0004] In related technologies, in order to implement concurrency control of the calling number, usually an increment operation is performed on the concurrency when the calling number is selected, and a decrement operation is performed on the concurrency of the number in response to receiving a hang-up event. However, when the occurrence of the hang-up event is delayed or there is an event failure, it will cause the concurrency of the number not to be decremented after the user hangs up, resulting in an incorrect concurrency of the number and affecting the online call service. Summary of the Invention
[0005] This Summary of the Invention section is provided to introduce concepts in a brief form, which will be described in detail in the subsequent Detailed Description section. This Summary of the Invention section is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to be used to limit the scope of the claimed technical solution.
[0006] In a first aspect, the present disclosure provides a method for determining a number for outbound calls, the method including: Receiving a first number selection request for obtaining a number used by a call initiator corresponding to the first number selection request to make an outbound call; If the update of the concurrency number of the number is abnormal, obtaining query rate parameters of multiple numbers; Based on the query rate parameters of the multiple numbers, determining a first number corresponding to the first number selection request from the multiple numbers.
[0007] In a second aspect, the present disclosure provides a device for determining a number for outbound calls, the device including: A receiving module, configured to receive a first number selection request for obtaining a number used by a call initiator corresponding to the first number selection request to make an outbound call; An acquisition module, configured to obtain query rate parameters of multiple numbers if the update of the concurrent number of numbers is abnormal; A first determination module, configured to determine a first number corresponding to the first number selection request from the multiple numbers based on the query rate parameters of the multiple numbers.
[0008] In a third aspect, the present disclosure provides a computer-readable medium, on which a computer program is stored, and when the computer program is executed by a processing device, the steps of the method described in the first aspect are implemented.
[0009] In a fourth aspect, the present disclosure provides an electronic device, including: A storage device, on which a computer program is stored; A processing device, configured to execute the computer program in the storage device to implement the steps of the method described in the first aspect.
[0010] In a fifth aspect, the present disclosure provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of the method described in the first aspect are implemented.
[0011] Thus, through the above technical solution, when it is found that the update of the concurrent number of numbers is abnormal during the number determination process, it is possible to automatically switch to select numbers based on the query rate parameters of the numbers, so as to ensure the accuracy and stability during the number selection process, thereby ensuring the normal operation of the online call of the call initiator and improving the stability of the outbound call system of the call initiator.
[0012] Other features and advantages of the present disclosure will be described in detail in the subsequent specific implementation section. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Combined with the drawings and referring to the following specific implementation manners, the above and other features, advantages and aspects of the embodiments of the present disclosure will become more obvious. Throughout the drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic, and the original and elements are not necessarily drawn to scale. In the drawings: Figure 1 is a flowchart of a method for determining a number for outbound calls according to an embodiment of the present disclosure.
[0014] Figure 2 is a schematic diagram of an outbound call interaction based on an embodiment of the present disclosure.
[0015] Figure 3 is a block diagram of a device for determining a number for outbound calls according to an embodiment of the present disclosure.
[0016] Figure 4 shows a schematic structural diagram of an electronic device suitable for implementing the embodiments of the present disclosure. Detailed Implementation Modes
[0017] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Instead, these embodiments are provided to more thoroughly and completely understand the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not used to limit the protection scope of the present disclosure.
[0018] It should be understood that the various steps recited in the method embodiments of the present disclosure can be executed in a different order and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this regard.
[0019] The term "including" and its variants used herein are open-ended, that is, "including but not limited to". The term "based on" is "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description.
[0020] It should be noted that the concepts such as "first" and "second" mentioned in the present disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependent relationships.
[0021] It should be noted that the modifications of "one" and "multiple" mentioned in the present disclosure are illustrative rather than restrictive. Those skilled in the art should understand that, unless otherwise clearly specified in the context, it should be understood as "one or more".
[0022] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only for illustrative purposes and are not used to limit the scope of these messages or information.
[0023] It can be understood that before using the technical solutions disclosed in the embodiments of the present disclosure, the types, usage scopes, usage scenarios, etc. of the personal information involved in the present disclosure should be informed to users and the authorization of users should be obtained in an appropriate manner in accordance with relevant laws and regulations.
[0024] For example, when responding to an active request from a user, a prompt message is sent to the user to clearly prompt the user that the operation requested by the user will require obtaining and using the user's personal information. Thus, the user can autonomously choose whether to provide personal information to software or hardware such as an electronic device, an application program, a server, or a storage medium that performs the operations of the present disclosed technical solution based on the prompt message.
[0025] As an optional but non-limiting implementation manner, the manner of sending a prompt message to the user in response to receiving an active request from the user may be, for example, in the form of a pop-up window, and the prompt message may be presented in text in the pop-up window. In addition, the pop-up window may also carry a selection control for the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0026] It can be understood that the above process of notifying and obtaining user authorization is only illustrative and does not constitute a limitation on the implementation manner of the present disclosure. Other manners that comply with relevant laws and regulations can also be applied to the implementation manner of the present disclosure.
[0027] At the same time, it can be understood that the data involved in the present technical solution (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of the corresponding laws, regulations, and related regulations.
[0028] Figure 1 As shown, it is a flowchart of a method for determining a number for outbound calls provided according to an embodiment of the present disclosure. The method may include: In step 11, a first number selection request is received. The first number selection request is used to obtain the target number used by the call initiator corresponding to the first number selection request for making an outbound call.
[0029] Among them, the call initiator may be a robot. When the call initiator determines to execute a call task, it is necessary to determine the number used for making an outbound call to the user. At this time, the call initiator may send a number selection request to the number pool service so that the number pool service can process the number selection request to determine the number used by the call initiator. After that, the call initiator can initiate an outbound call by calling the corresponding underlying interface based on the determined target number. For example, the method may be applied to a robot call scenario, or a dual-call scenario or a voice notification scenario. The implementation manner of the call initiator making an outbound call may be based on the implementation manner in the prior art and will not be elaborated here.
[0030] In step 12, if the concurrency quantity update of the number is abnormal, query rate parameters of multiple numbers are obtained.
[0031] For example, in the related art, the subtraction operation of the concurrent quantity is usually triggered based on an event service. For example, a hang-up event is added to an event queue, and then the number pool service consumes the hang-up event in the event queue to perform the subtraction operation on the concurrent quantity of the corresponding number. As an example, the event service and the event queue can be monitored, and when an exception occurs in the event service or the event queue, it can be determined that the update of the concurrent quantity of the number is abnormal, and at this time, it is difficult to implement the update of the subtraction operation of the concurrent quantity.
[0032] Among them, when the calling party initiates an outbound call based on a number, the longer the call duration of this outbound call, the longer the concurrent time of the number it occupies. In the present disclosure, the query rate parameter of the number is used to represent the number of outbound calls initiated based on this number per unit time, and it can be statistically determined within the unit time. Based on the applicant's analysis and the analysis of historical calls, it is found that overall, there is a certain relationship between the concurrent quantity of the number and the number of outbound calls initiated based on this number per unit time, that is, there is a positive correlation between the concurrent quantity and the number of outbound calls initiated based on this number per unit time, and it can approximately satisfy that the concurrent quantity of the number is the product of the average call duration and the number of outbound calls initiated based on this number per unit time.
[0033] Therefore, in the case where the update of the concurrent quantity of the number is abnormal, if the number used by the calling party to initiate an outbound call is selected based on the concurrent quantity, the number selection may fail. In the embodiments of the present disclosure, if the update of the concurrent quantity of the number is abnormal, the query rate parameters of multiple numbers are obtained, so that the number selection can be performed based on the query rate parameter. Among them, it can be a scheme that automatically switches to obtaining the query rate parameter of the number when it is determined that the update of the concurrent quantity of the number is abnormal, such as switching to obtaining the query rate parameter through dynamic configuration. Another example is that a notification message is output when it is determined that the update of the concurrent quantity of the number is abnormal, and this notification message is used to notify the corresponding operating user that the concurrent quantity update is abnormal. After that, the scheme of obtaining the query rate parameter of the number can be switched based on the configuration operation of this operating user.
[0034] As an example, the exemplary implementation manner of obtaining the query rate parameters of multiple numbers may include: For each of the numbers, determine the total concurrent quantity of the number. Among them, the total concurrent quantity that can initiate an outbound call based on this number can be determined through the configuration information of the number, and it can be pre-configured by the relevant task configurator.
[0035] According to the total concurrent quantity, determine the time parameter corresponding to the query rate parameter of the number.
[0036] As an example, the time granularity of the query rate parameter can be determined based on the magnitude of the total concurrent quantity. If the total concurrent quantity is large, the query rate parameter can be statistically counted in seconds. If the total concurrent quantity is small, the query rate parameter can be statistically counted in minutes.
[0037] Correspondingly, the corresponding relationship between the range of the total concurrent quantity and the time parameter can be preset. For example, it can be preconfigured that the time parameter corresponding to the total concurrent quantity greater than or equal to 400 is seconds, and the time parameter corresponding to the total concurrent quantity less than 400 is minutes.
[0038] For the number X1, if its total concurrent quantity is determined to be 100, then its corresponding time parameter can be determined to be minutes. For the number X2, its corresponding time parameter can be determined to be seconds.
[0039] After that, obtain the query rate parameter of the number under the time parameter.
[0040] As an example, the average call duration can be determined based on the historical call duration of the outbound calls made by the call initiator. If the average call duration is 40s, for the number X1, whose time parameter is minutes, the query rate per minute corresponding to the number X1 can be obtained, that is, the number of outbound calls initiated by the number X1 within one minute. For the number X2, whose time parameter is seconds, the query rate per second corresponding to the number X2 can be obtained, that is, the number of outbound calls initiated by the number X2 within one second.
[0041] Thus, through the above technical solution, the time granularity corresponding to the query rate parameter can be determined based on the total concurrent quantity of the number, so as to perform distributed flow limiting based on the time window matched by the total concurrent quantity, improving the accuracy and fineness of the concurrent control of the number.
[0042] In step 13, based on the query rate parameters of multiple numbers, determine the first number corresponding to the first number selection request from the multiple numbers.
[0043] Thus, through the above technical solution, when it is found that the concurrent quantity update of the number is abnormal during the number determination process, the number selection can be automatically switched based on the query rate parameter of the number, thereby ensuring the accuracy and stability during the number selection process, and thus ensuring the normal operation of the online call of the call initiator and improving the stability of the outbound call system of the call initiator.
[0044] In some possible embodiments, the determining the first number corresponding to the first number selection request from the multiple numbers based on the query rate parameters of the multiple numbers may include: If the query rate parameter of the number in the number set is less than the query rate parameter threshold of the number, determine the number as a candidate number, where the query rate parameter threshold is determined based on the total number of concurrent outbound calls that can be initiated by the number, and the number set contains at least one number among the multiple numbers.
[0045] As an example, the numbers in the number set can include multiple preset numbers, so that selection can be made from these multiple numbers.
[0046] As another example, the number set can also be determined in the following way: Match the number selection strategy corresponding to the target task of the call initiator with the multiple numbers, and obtain the number set based on the numbers matched by the number selection strategy, where the target task is the task executed by the call initiator based on the first number.
[0047] Among them, business personnel can perform task configuration in advance, so that corresponding tasks can be generated. Then the tasks can be distributed to the call initiator for execution by the call initiator. When the call initiator executes the corresponding task, it is necessary to determine the number used when initiating an outbound call. As an example, the number selection strategy corresponding to the task can be configured during task configuration.
[0048] As an example, multiple number selection strategies supported by the number pool service can be displayed in the configuration interface, and business personnel can select and determine based on their actual needs. Then when the call initiator executes the task, the number selection strategy configured for the task can be matched with the multiple numbers to perform a preliminary screening based on the number selection strategy.
[0049] As an example, the number selection strategy can be the number of the target destination, or a specified part of the numbers, or a specified number pool selection, or the selection of the called destination. For example, if the number selection strategy corresponding to the target task is the selection of the called destination, then when selecting a number, the destination of the called number can be determined based on the target task. For example, if it is G1, then the destination G1 can be matched with the multiple numbers, and the numbers with the destination G1 among the multiple numbers can be used as the matched numbers to obtain the number set. Then, further number selection can be made from the number set. Thus, the numbers can be preliminarily screened based on the number selection strategy configured for the task, which can be applicable to multiple scenarios, meet the usage requirements of the actual scenario, and at the same time can provide an effective candidate range for the selection of the numbers used by the subsequent call initiator.
[0050] After determining the number set, further selection can be made from the number set based on the query rate parameter. Among them, as described above, there is an association relationship between the query rate parameter of the number and the total number of concurrency. Therefore, the query rate parameter threshold of each number can be determined based on this association relationship.
[0051] As shown above, the concurrent quantity approximately meeting the numbers is the product of the average call duration and the number of outbound calls initiated based on the number per unit time, that is, the concurrent quantity = average call duration × query rate parameter. Then, the query rate parameter threshold can be determined based on the ratio of the total concurrent quantity and the average call duration.
[0052] Exemplarily, for number X2, its total concurrent quantity is 1200, and its corresponding time parameter is in seconds. If the average call duration is 40s and the two time units are the same, the query rate parameter threshold = 1200 / 40 = 30. That is, it is considered that theoretically, making 30 outbound calls to number X2 within 1 second will not exceed the total concurrent quantity of number X2.
[0053] Exemplarily, for number X1, its total concurrent quantity is 20, and its corresponding time parameter is in minutes. If the average call duration is 40s and the two time units are different, then unified processing can be performed based on this time parameter, that is, determining the query rate parameter threshold under this time parameter. That is, the query rate parameter threshold of number X1 = 20 / 40 × 60 = 0.5 × 60 = 30. That is, it is considered that theoretically, making 30 outbound calls to number X1 within 1 minute will not exceed the total concurrent quantity of number X1.
[0054] Thus, the query rate parameter threshold corresponding to each number can be determined through the above method. Then, the query rate parameter of the number can be compared with the query rate parameter threshold of this number. If the query rate parameter is less than the query rate parameter threshold, it is considered that an outbound call can be initiated based on this number. At this time, this number can be determined as a candidate number.
[0055] Thus, through the above technical solution, the number that can be selected when the call initiator executes a task can be determined based on the query rate parameter of the number, ensuring the accuracy and effectiveness of number selection in the scenario of abnormal update of the concurrent quantity, and effectively reducing the failure rate of number selection.
[0056] After determining the candidate numbers, the first number can be determined from the candidate numbers. For example, one of the candidate numbers can be randomly selected as the first number. Then, the first number can be fed back to the call initiator so that the call initiator initiates an outbound call based on the first number to realize a call with the corresponding user. Thus, the number selection when the call initiator initiates an outbound call can be realized through the query rate parameter, ensuring the stability of the call initiator's online call and improving the efficiency of the call initiator's task execution at the same time.
[0057] In some embodiments, the method further includes: After determining that the call initiator initiates an outbound call based on the first number, update the query rate parameter of the first number.
[0058] For example, the query rate parameter of the first number can be incremented to achieve real-time statistics of the query rate parameter of the first number, providing effective data support for subsequent concurrent control and selection of numbers.
[0059] In some embodiments, the method further includes: If the update of the concurrent quantity of the number recovers from an abnormality, determine the concurrent quantity of the multiple numbers.
[0060] Among them, when the update of the concurrent quantity of the number recovers from an abnormality, that is, a subtraction operation on the concurrent quantity can be implemented through an event service and an event queue. At this time, the effectiveness of the concurrent quantity can be ensured, so in this embodiment, numbers can be selected based on the concurrent quantity.
[0061] For example, when it is monitored that the event service and the event queue are normal, it can be determined that the update of the concurrent quantity of the number recovers from an abnormality. Another example is that when a notification message of abnormality recovery is received, it can be determined that the update of the concurrent quantity of the number recovers from an abnormality. For example, when the corresponding user confirms after performing abnormality handling on the event service and the event queue, the notification message is triggered.
[0062] As an example, when the update of the concurrent quantity of the number is abnormal, numbers are selected based on the query rate parameter. During this process, the concurrent quantity is not updated. Therefore, after the abnormality recovers, obtaining the current concurrent quantity can be to control the concurrent quantity to start from zero.
[0063] In response to receiving a second number selection request, based on the current concurrent quantity of the multiple numbers, determine the second number corresponding to the second number selection request from the multiple numbers.
[0064] Then, when a number selection request is received after the update of the concurrent quantity of the number recovers from an abnormality, numbers can be directly selected based on the concurrent quantity. For example, one number whose current concurrent quantity does not reach the total concurrent quantity can be selected as the number corresponding to this number selection request. Another example is that first, the number selection strategy of the task corresponding to this number selection request is matched with the multiple numbers, and then one number that is matched and whose current concurrent quantity does not reach the total concurrent quantity is selected as the number corresponding to this number selection request.
[0065] Thus, through the above technical solution, when the update of the concurrent quantity of the number recovers from an abnormality, the scheme of selecting numbers based on the concurrent quantity can be automatically switched, ensuring effective control of the number of outbound calls initiated based on numbers.
[0066] As an example, after it is determined that the call initiator makes an outbound call based on the second number, update the concurrent quantity of the second number. For example, the concurrent quantity of the second number can be incremented to achieve real-time and accurate recording of the concurrent quantity, providing effective data support for subsequent concurrent control and selection of numbers.
[0067] In some scenarios, if the concurrent quantity update of a number is abnormal, it is difficult to accurately record the concurrent quantity of the number. In this embodiment, if the total concurrent quantity of the number is large, when the abnormal recovery of the concurrent quantity update of the number directly starts from zero for controlling the concurrent quantity, there may be a situation of over-concurrent outbound calls for the number. When the concurrent quantity update of the number is abnormal, the record of the query rate parameter of the number is accurate and effective. Therefore, it is possible to determine whether to calibrate the concurrent quantity of the number after the abnormal recovery of the concurrent quantity update of the number.
[0068] As an example, it is possible to determine whether calibration processing is required based on the total concurrent quantity of the number. If the total concurrent quantity of the number exceeds a preset threshold, it can be determined that the concurrent quantity of the number needs to be calibrated. As another example, when configuring multiple numbers, it is possible to select whether to perform calibration of the concurrent quantity based on user requirements, and then determine whether to calibrate the concurrent quantity after the abnormal recovery of the concurrent quantity update of the number based on the configured information. As another example, it is also possible to perform pre-configuration based on the service corresponding to the number. For example, in the case of the voice notification service, the total concurrent quantity of the corresponding number is usually set to be small, so it can be configured that the numbers under the voice notification service do not need to be calibrated for the concurrent quantity. Another example is that in the case of the intelligent outbound call scenario, the total concurrent quantity of the number is set to be large, so it can be configured that the numbers corresponding to the intelligent outbound call need to be calibrated for the concurrent quantity.
[0069] In some embodiments, the method may further include: If the abnormal recovery of the concurrent quantity update of the number occurs, calibrate the concurrent quantity of the number based on the query rate parameter of the number.
[0070] Among them, when the total concurrent quantity of the number is large, in order to further improve the accuracy of concurrent quantity control, it is possible to calibrate the current concurrent quantity of the number before switching to selecting numbers based on the concurrent quantity.
[0071] For example, based on the association relationship described above, the product of the query rate parameter and the average call duration under the preset time parameter corresponding to the number can be used as the calibrated concurrent quantity. For example, the preset time parameter is in seconds. For example, the query rate parameter of number X2 is 10, and the average call duration is 40s, then the calibrated concurrent quantity of number X2 can be obtained as 400.
[0072] As an example, when calibrating the concurrent quantities of multiple numbers, the calibration logic can be executed asynchronously. In a distributed architecture, a node can be randomly selected to execute this calibration logic, such as Figure 2As shown, the selected node can preempt the distributed lock, and then select numbers in batches from the indexes of multiple numbers, and perform batch calibration based on multiple threads. For example, if multiple batches of numbers can be obtained by batch for multiple numbers based on the index, the concurrent quantity of these multiple batches of numbers can be calibrated by multiple threads, thereby improving the efficiency of the calibration process.
[0073] If a second number selection request is received during the process of calibrating the concurrent quantity of the multiple numbers, based on the query rate parameter of the multiple numbers, determine the second number corresponding to the second number selection request from the multiple numbers.
[0074] Among them, as described above, the calibration of the concurrent quantity of the multiple numbers is usually asynchronous and requires a certain processing time. Some numbers may not have concurrent quantity records during this calibration process. Therefore, when a number selection request is received during this process, the number selection is still based on the query rate parameter of the number. Among them, the implementation method of this step is the same as the implementation method of determining the first number corresponding to the first number selection request from the multiple numbers based on the query rate parameter of the multiple numbers described above, and will not be elaborated here. Correspondingly, after determining that the call initiator makes an outbound call based on the second number, update the query rate parameter of the second number. If the concurrent quantity calibration of the second number is completed, update the concurrent quantity of the second number. In this step, the query rate parameter and the concurrent quantity can be updated synchronously after the call initiator makes an outbound call. For example, in the above example, the query rate parameter is updated to 11 and the concurrent quantity is updated to 401, so as to realize the synchronous update of the query rate parameter and the concurrent quantity.
[0075] After the calibration process of the concurrent quantity of the multiple numbers is completed, in response to receiving a third number selection request, based on the current concurrent quantity of the multiple numbers, determine the third number corresponding to the third number selection request from the multiple numbers. Correspondingly, after determining that the call initiator makes an outbound call based on the third number, update the concurrent quantity of the third number to achieve real-time and accurate recording of the concurrent quantity.
[0076] After the calibration process of the concurrent quantity of the multiple numbers is completed, each number is associated with its corresponding calibrated concurrent quantity. Then, the number selection requests received later can select numbers based on the concurrent quantity to determine the number corresponding to the current number selection request. The determination method has been described in detail above and will not be elaborated here.
[0077] Thus, through the above technical solution, after the abnormal recovery of the update of the concurrent quantity of the number, the real-time concurrent quantity can be determined according to the query rate parameter, so that the real-time concurrency of the number can be calculated more accurately after the abnormal recovery, ensuring the accuracy of the concurrent data and avoiding call loss caused by over-concurrency when sending to the number provider.
[0078] As Figure 2 shown, it is an interaction schematic diagram provided based on an implementation manner of the present disclosure. As Figure 2 shown, when the robot executes a task, it can first send a number selection request to the number pool service. In response to the number selection request, matching can be performed based on the number selection policy corresponding to the task. For example, the number selection policy can be any one of A1 - A4 to determine a number set. If it is determined that the update of the concurrent number of numbers is abnormal, candidate numbers can be determined based on the query rate parameter of the numbers and the query rate parameter threshold, and one of the candidate numbers is selected. After that, the query rate parameter of the selected number is updated. If it is determined that the abnormal update of the concurrent number of numbers is restored, during the calibration process, candidate numbers can be determined based on the query rate parameter of the numbers and the query rate parameter threshold, and one of the candidate numbers is selected. After that, the query rate parameter and the concurrent number of the selected number are updated. After the calibration is completed, candidate numbers can be determined based on the concurrent number of numbers and the total concurrent number, and one of the candidate numbers is selected. After that, the concurrent number of the selected number is updated. Then the robot can initiate an outbound call based on the selected number by calling the underlying interface.
[0079] Based on the same inventive concept, the present disclosure also provides a number determination device for outbound calls. As Figure 3 shown, the device 10 includes: A receiving module 100, configured to receive a first number selection request, where the first number selection request is used to obtain the number used by the call initiator corresponding to the first number selection request to initiate an outbound call; An obtaining module 200, configured to obtain the query rate parameters of multiple numbers if the update of the concurrent number of numbers is abnormal; A first determination module 300, configured to determine a first number corresponding to the first number selection request from the multiple numbers based on the query rate parameters of the multiple numbers.
[0080] Optionally, the first determination module includes: A first determination sub - module, configured to determine the number as a candidate number if the query rate parameter of the number in the number set is less than the query rate parameter threshold, where the query rate parameter threshold is determined based on the total concurrent number of outbound calls that can be initiated by the number, and the number set includes at least one number among the multiple numbers; A second determination sub - module, configured to determine the first number from the candidate numbers.
[0081] Optionally, the number set is determined by the following method: Match the selected number strategy corresponding to the target task of the call initiator with the multiple numbers, and obtain the number set based on the number matched by the selected number strategy, where the target task is the task executed by the call initiator based on the first number.
[0082] Optionally, the device further includes: An update module, configured to update the query rate parameter of the first number after determining that the call initiator makes an outbound call based on the first number.
[0083] Optionally, the obtaining module includes: A third determination sub-module, configured to determine the total concurrent quantity of each number. A fourth determination sub-module, configured to determine the time parameter corresponding to the query rate parameter of the number according to the total concurrent quantity. An obtaining sub-module, configured to obtain the query rate parameter of the number under the time parameter.
[0084] Optionally, the device further includes: A second determination module, configured to determine the concurrent quantity of the multiple numbers if the update of the concurrent quantity of the number is abnormally recovered. A third determination module, configured to, in response to receiving a second selected number request, determine a second number corresponding to the second selected number request from the multiple numbers based on the current concurrent quantity of the multiple numbers.
[0085] Optionally, the device further includes: A fourth determination module, configured to calibrate the concurrent quantity of the number based on the query rate parameter of the number if the update of the concurrent quantity of the number is abnormally recovered. A fifth determination module, configured to, if a second selected number request is received during the calibration process of the concurrent quantity of the multiple numbers, determine a second number corresponding to the second selected number request from the multiple numbers based on the query rate parameter of the multiple numbers. A sixth determination module, configured to, after the calibration process of the concurrent quantity of the multiple numbers is completed, in response to receiving a third selected number request, determine a third number corresponding to the third selected number request from the multiple numbers based on the current concurrent quantity of the multiple numbers.
[0086] Next, refer to Figure 4, which shows a schematic structural diagram of an electronic device (such as a terminal device or a server) 600 suitable for implementing the embodiments of the present disclosure. The terminal devices in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Tablet Computers), PMPs (Portable Multimedia Players), in-vehicle terminals (such as in-vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 4 The electronic device shown is merely an example and should not impose any limitations on the functions and usage scope of the embodiments of the present disclosure.
[0087] As Figure 4 shown, the electronic device 600 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) 601, which may perform various appropriate actions and processes according to the programs stored in the read-only memory (ROM) 602 or the programs loaded from the storage device 608 into the random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the electronic device 600 are also stored. The processing device 601, the ROM 602, and the RAM 603 are connected to each other through a bus 604. The input / output (I / O) interface 605 is also connected to the bus 604.
[0088] Generally, the following devices may be connected to the I / O interface 605: an input device 606 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 607 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 608 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 609. The communication device 609 may allow the electronic device 600 to communicate with other devices wirelessly or wiredly to exchange data. Although Figure 4 the electronic device 600 with various devices is shown, it should be understood that it is not required to implement or have all the shown devices. Instead, more or fewer devices may be implemented or had.
[0089] Particularly, according to the embodiments of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, the embodiments of the present disclosure include a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program contains program codes for executing the methods shown in the flowcharts. In such an embodiment, the computer program may be downloaded and installed from the network through the communication device 609, or installed from the storage device 608, or installed from the ROM 602. When the computer program is executed by the processing device 601, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are executed.
[0090] It should be noted that the above-mentioned computer-readable medium in the present disclosure can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the two. The 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 of the above. More specific examples of the computer-readable storage medium can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, the computer-readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or in conjunction with an instruction execution system, apparatus, or device. In the present disclosure, the computer-readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer-readable signal medium can also be any computer-readable medium other than the computer-readable storage medium, and this computer-readable signal medium can send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted by any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0091] In some embodiments, the client and the server can communicate using any currently known or future-developed network protocol such as HTTP (HyperText Transfer Protocol), and can be interconnected with digital data communication in any form or medium (e.g., a communication network). Examples of communication networks include local area networks ("LAN"), wide area networks ("WAN"), the Internet (e.g., the Internet), and end-to-end networks (e.g., ad hoc end-to-end networks), as well as any currently known or future-developed networks.
[0092] The above-mentioned computer-readable medium can be included in the above-mentioned electronic device; it can also exist separately and not be assembled into the electronic device.
[0093] The above computer-readable medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to: receive a first number selection request for obtaining a number used by a calling party corresponding to the first number selection request to initiate an outgoing call; if the update of the concurrency count of numbers is abnormal, obtain query rate parameters of multiple numbers; and determine a first number corresponding to the first number selection request from the multiple numbers based on the query rate parameters of the multiple numbers.
[0094] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages or combinations thereof. The programming languages include, but are not limited to, object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code may execute entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (for example, by connecting through the Internet using an Internet service provider).
[0095] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of code that contains one or more executable instructions for implementing a specified logical function. It should also be noted that, in some alternative implementations, the functions marked in the blocks may occur in a different order than marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, may be implemented by a dedicated hardware-based system for performing the specified functions or operations, or may be implemented by a combination of dedicated hardware and computer instructions.
[0096] The modules described in the embodiments of the present disclosure may be implemented in software or in hardware. Among them, the name of the module does not constitute a limitation on the module itself in some cases. For example, the receiving module may also be described as "the module for receiving the first number selection request".
[0097] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that can be used include: Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), Systems on Chip (SOCs), Complex Programmable Logic Devices (CPLDs), and so on.
[0098] In the context of this disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media would include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0099] According to one or more embodiments of the present disclosure, Example 1 provides a method for determining a number for outbound calls, wherein the method includes: Receiving a first number selection request for obtaining the number used by the call initiator corresponding to the first number selection request for making an outbound call; If the update of the concurrent number of numbers is abnormal, obtaining the query rate parameters of multiple numbers; Based on the query rate parameters of the multiple numbers, determining a first number corresponding to the first number selection request from the multiple numbers.
[0100] According to one or more embodiments of the present disclosure, Example 2 provides the method of Example 1, wherein the determining, based on the query rate parameters of the multiple numbers, a first number corresponding to the first number selection request from the multiple numbers includes: If the query rate parameter of the number in the number set is less than the query rate parameter threshold, determining the number as a candidate number, wherein the query rate parameter threshold is determined based on the total concurrent number of outbound calls that can be initiated by the number, and the number set includes at least one number among the multiple numbers; Determining the first number from the candidate numbers.
[0101] According to one or more embodiments of the present disclosure, Example 3 provides the method of Example 2, wherein the number set is determined by the following method: Match the selected number strategy corresponding to the target task of the call initiator with the multiple numbers, and obtain the number set based on the numbers matched by the selected number strategy, where the target task is the task executed by the call initiator based on the first number.
[0102] According to one or more embodiments of the present disclosure, Example 4 provides the method of Example 2 or 3, where the method further includes: After determining that the call initiator makes an outbound call based on the first number, update the query rate parameter of the first number.
[0103] According to one or more embodiments of the present disclosure, Example 5 provides the method of Example 1, where obtaining the query rate parameters of the multiple numbers includes: For each of the numbers, determine the total concurrent quantity of the number; According to the total concurrent quantity, determine the time parameter corresponding to the query rate parameter of the number; Obtain the query rate parameter of the number under the time parameter.
[0104] According to one or more embodiments of the present disclosure, Example 6 provides the method of Example 1, where the method further includes: If the abnormal update recovery of the concurrent quantity of the number is determined, determine the concurrent quantity of the multiple numbers; In response to receiving a second selected number request, based on the current concurrent quantity of the multiple numbers, determine the second number corresponding to the second selected number request from the multiple numbers.
[0105] According to one or more embodiments of the present disclosure, Example 7 provides the method of Example 1, where the method further includes: If the abnormal update recovery of the concurrent quantity of the number is determined, perform a calibration process on the concurrent quantity of the number based on the query rate parameter of the number; If a second selected number request is received during the calibration process of the concurrent quantity of the multiple numbers, based on the query rate parameters of the multiple numbers, determine the second number corresponding to the second selected number request from the multiple numbers; After the calibration process of the concurrent quantity of the multiple numbers is completed, in response to receiving a third selected number request, based on the current concurrent quantity of the multiple numbers, determine the third number corresponding to the third selected number request from the multiple numbers.
[0106] According to one or more embodiments of the present disclosure, Example 8 provides a number determination device for outbound calls, the device includes: A receiving module, configured to receive a first number selection request for obtaining a number used by a calling party corresponding to the first number selection request to initiate an outbound call; An obtaining module, configured to obtain query rate parameters of multiple numbers if the concurrent quantity update of the numbers is abnormal; A first determination module, configured to determine a first number corresponding to the first number selection request from the multiple numbers based on the query rate parameters of the multiple numbers.
[0107] According to one or more embodiments of the present disclosure, Example 9 provides a computer-readable medium, on which a computer program is stored. When the computer program is executed by a processing device, the steps of the method described in any one of Examples 1-7 are implemented.
[0108] According to one or more embodiments of the present disclosure, Example 10 provides an electronic device, including: A storage device, on which a computer program is stored; A processing device, configured to execute the computer program in the storage device to implement the steps of the method described in any one of Examples 1-7.
[0109] According to one or more embodiments of the present disclosure, Example 11 provides a computer program product, including a computer program. When the computer program is executed by a processor, the steps of the method described in any one of Examples 1-7 are implemented.
[0110] The above description is only a preferred embodiment of the present disclosure and an explanation of the applied technical principles. Those skilled in the art should understand that the scope of the disclosure involved in the present disclosure is not limited to the technical solutions formed by the specific combination of the above technical features, and should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosure concept. For example, the technical solutions formed by mutually replacing the above features with the technical features (but not limited to) having similar functions disclosed in the present disclosure.
[0111] In addition, although the operations are depicted in a particular order, this should not be construed as requiring that the operations be performed in the particular order shown or in sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented separately or in any suitable sub-combination in multiple embodiments.
[0112] Although the subject matter has been described in language specific to structural features and / or methodological logical acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. On the contrary, the specific features and acts described above are merely example forms for implementing the claims. Regarding the apparatus in the above embodiments, the specific manner in which each module performs operations has been described in detail in the embodiments related to the method, and will not be elaborated herein.
Claims
1. A method for determining a number for outbound calls, characterized in that, The method includes: Receiving a first number selection request for obtaining a number used by a calling party corresponding to the first number selection request to initiate an outbound call; If the update of the concurrency quantity of the number is abnormal, obtaining query rate parameters of multiple numbers; Based on the query rate parameters of the multiple numbers, determining a first number corresponding to the first number selection request from the multiple numbers.
2. The method according to claim 1, wherein The determining, based on the query rate parameters of the multiple numbers, a first number corresponding to the first number selection request from the multiple numbers includes: If the query rate parameter of the number in the number set is less than the query rate parameter threshold, determining the number as a candidate number, where the query rate parameter threshold is determined based on the total concurrency quantity that can initiate an outbound call by the number, and the number set includes at least one number among the multiple numbers; Determining the first number from the candidate numbers.
3. The method according to claim 2, wherein, The number set is determined by the following method: Matching a number selection strategy corresponding to a target task of the calling party with the multiple numbers, and obtaining the number set based on the numbers matched by the number selection strategy, where the target task is a task executed by the calling party based on the first number.
4. The method according to claim 2 or 3, characterized in that, The method further includes: After determining that the calling party initiates an outbound call based on the first number, updating the query rate parameter of the first number.
5. The method according to claim 1, wherein The obtaining query rate parameters of multiple numbers includes: For each of the numbers, determining the total concurrency quantity of the number; According to the total concurrency quantity, determining a time parameter corresponding to the query rate parameter of the number; Obtaining the query rate parameter of the number under the time parameter.
6. The method according to claim 1, characterized in that The method further includes: If the abnormal update of the concurrency quantity of the number is restored, determining the concurrency quantities of the multiple numbers; In response to receiving a second number selection request, based on the current concurrency quantities of the multiple numbers, determining a second number corresponding to the second number selection request from the multiple numbers.
7. The method according to claim 1, wherein The method further includes: If the abnormal update of the concurrency quantity of the number is restored, performing a calibration process on the concurrency quantity of the number based on the query rate parameter of the number; If a second number selection request is received during the calibration process of the concurrency quantities of the multiple numbers, based on the query rate parameters of the multiple numbers, determining a second number corresponding to the second number selection request from the multiple numbers; After the calibration process of the concurrency quantities of the multiple numbers is completed, in response to receiving a third number selection request, based on the current concurrency quantities of the multiple numbers, determining a third number corresponding to the third number selection request from the multiple numbers.
8. A number determination device for outbound calls, characterized in that, The apparatus includes: A receiving module, configured to receive a first number selection request for obtaining a number used by a calling party corresponding to the first number selection request to initiate an outbound call; An obtaining module, configured to obtain query rate parameters of multiple numbers if the update of the concurrency quantity of the number is abnormal; A first determining module, configured to determine a first number corresponding to the first number selection request from the multiple numbers based on the query rate parameters of the multiple numbers.
9. A computer-readable medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processing device, the steps of the method according to any one of claims 1-7 are implemented.
10. An electronic device, characterized in that, Comprising: A storage device on which a computer program is stored; A processing device for executing the computer program in the storage device to implement the steps of the method according to any one of claims 1-7.
11. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, the steps of the method according to any one of claims 1-7 are implemented.