WO2012094873A1 - Call center and implementing method thereof - Google Patents
- ️Thu Jul 19 2012
WO2012094873A1 - Call center and implementing method thereof - Google Patents
Call center and implementing method thereof Download PDFInfo
-
Publication number
- WO2012094873A1 WO2012094873A1 PCT/CN2011/076150 CN2011076150W WO2012094873A1 WO 2012094873 A1 WO2012094873 A1 WO 2012094873A1 CN 2011076150 W CN2011076150 W CN 2011076150W WO 2012094873 A1 WO2012094873 A1 WO 2012094873A1 Authority
- WO
- WIPO (PCT) Prior art keywords
- agent
- routing
- module
- subtask processing
- main control Prior art date
- 2011-01-14
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/51—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
- H04M3/5166—Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing in combination with interactive voice response systems or voice portals, e.g. as front-ends
Definitions
- the present invention relates to the field of data communications, and in particular, to a call center and a method for implementing the same.
- Call center also known as customer service system, is an information system used to provide users with various access methods such as telephone, video, fax, and e-mail. It is mainly used to handle user requests, questions, complaints, suggestions, and questions. , such as 1860 in the telecommunications industry, 95555 in the financial industry, etc.
- Figure 1 shows the typical architecture of the current call center, where Route and CTK Computer
- Telephony Integration a computer telephony integration technology module
- a CTI a set of platforms including an IVVR (Interactive Voice and Video Response), a CTI, a Route and an Agent (Agent module).
- IVVR Interactive Voice and Video Response
- CTI a CTI
- Route a Route and an Agent
- the Agent is the tool for the operator (agent) to use the customer service system, and it is responsible for completing the routing and calling of the user together with the modules such as CTI and IVVR.
- CTI is responsible for agent check-in, check-out, busy, idle, status management, call event notification, call request processing, and so on.
- the IVVR service provides automatic voice and video services and submits manual service requests to the Route, and establishes a call between the user and the agent based on the agent phone selected by the Route.
- the Route is responsible for selecting the logically optimal attendant (seat) to serve the user (call) according to various predefined policies and rules. This highly intelligent process is implemented by a variety of complex algorithms. Route is a highly intensive computing application relative to other modules in the call center. As the size of the call center grows larger, R 0u te has become a performance bottleneck in the call center.
- the present invention proposes a defect suitable for a large-scale call center and its implementation method to avoid performance bottlenecks in a large-scale call center.
- the present invention provides a method for implementing a call center, where the call center uses one or more distributed routing subtask processing modules; the method includes:
- the routing subtask processing module that receives the queuing request finds a local optimal agent from the idle agent under its jurisdiction and informs the main control module;
- the master control module searches for the global optimal agent from all the local optimal agents that are known. When the search succeeds, the IVVR is notified to establish a call between the user and the global optimal agent.
- the above method has the following characteristics:
- the queuing request is a request for calling in a virtual call center (VC) and transferring a manual service; in a step of the main control module transmitting the queuing request to all or part of the routing subtask processing module, the main control module The queuing request is sent to all routing subtask processing modules associated with the VC.
- VC virtual call center
- the above method has the following characteristics:
- the main control module further notifies the related routing subtask processing module that the global optimal agent has been selected
- the main control module selects the user as a user waiting for service, selects a routing subtask processing module associated with the VC to administer the user, or selects a standby module as the VC.
- An associated routing subtask processing module that governs the user.
- the above method further comprises:
- the main control module When the main control module receives the idle request sent by the agent through the agent module and the CTI, the main control module sends the idle request to all or part of the routing subtask processing module;
- the routing subtask processing module that receives the idle request searches for a local optimal user from the user waiting for the service under its jurisdiction and informs the main control module;
- the master control module searches for the global optimal user from all the local optimal users, and when the search succeeds, notifies the IVVR to establish a call between the agent and the global optimal user.
- the above method has the following characteristics:
- the main control module sends the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
- the above method has the following characteristics:
- the main control module further notifies the relevant routing subtask processing module that the global optimal user has been selected
- the main control module uses the agent as a free agent, selects a routing subtask processing module associated with the VC corresponding to the agent to govern the agent, or selects a spare module as the idle
- the routing subtask processing module associated with the VC corresponding to the agent controls the agent.
- the above method further comprises:
- the main control module When the main control module receives the check-in request sent by the agent and the CTI, the main control module selects the agent that sends the check-in request as a free agent, and selects a route associated with the VC corresponding to the agent.
- the subtask processing module governs the agent, or selects an alternate module
- the above method further comprises:
- the main control module learns that the routing subtask processing module is crashing, according to the capacity of the corrupted routing subtask processing module, one or more of the standby modules are selected as the routing subtask processing module instead of the crashed routing subtask. Processing module.
- the present invention provides a call center, including a CTI, an IVVR, and an agent module, and further includes a parallel distributed routing system including a main control module and one or more distributed routing subtasks.
- the main control module is configured to: when receiving a queuing request sent by the user via the IVVR, send the queuing request to all or part of the routing subtask processing module; and learn from the one or more routing subtask processing modules
- the global optimal agent is searched from all the local optimal agents, and when the search is successful, the IVVR is notified to establish a call between the user and the global optimal agent.
- the routing subtask processing module is configured to: after receiving the queuing request, find a local optimal agent from the free agent under its jurisdiction and notify the main control module.
- the queuing request is a request to call in to the VC and transfer the human service
- the master module is arranged to send the queued request to all or a portion of the routing subtask processing module in the following manner:
- the queuing request is sent to all routing subtask processing modules associated with the VC.
- the above call center further includes more than one standby module
- the main control module is further configured to: when searching for the global optimal agent from all the local optimal agents, when the search is successful, cancel the related routing subtask processing module to govern the global optimal agent; when the search fails, The user, as a user waiting for service, selects a routing subtask processing module associated with the VC to administer the user, or selects a standby module as
- the VC associated routing subtask processing module governs the user.
- the main control module is further configured to: when receiving the idle request sent by the agent and the CTI, send the idle request to all or part of the routing subtask processing module; and, from more than one routing sub After the task processing module learns the local optimal user, the global optimal user is searched from all the local optimal users, and when the search succeeds, the IVVR is notified to establish a call between the agent and the global optimal user.
- the routing subtask processing module is further configured to: after receiving the idle request, search for a local optimal user from the user waiting for the service under its jurisdiction and notify the main control module.
- the main control module is configured to send the idle request sent by the agent to the whole in the following manner
- the partial or partial routing subtask processing module sending the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
- the above call center further includes more than one standby module
- the main control module is further configured to: when searching for a global optimal user from all local optimal users, when the search is successful, cancel the related routing subtask processing module to govern the global optimal user; when the search fails,
- the agent acts as a free agent, and selects a routing subtask processing module associated with the VC corresponding to the agent to manage the agent, or selects a standby module as a routing subtask processing associated with the VC corresponding to the agent. Module, governing the agent.
- the main control module is further configured to: when receiving a check-in request sent by the agent and the CTI, the agent that sends the check-in request is used as a free agent, and select one associated with the VC corresponding to the agent.
- the routing subtask processing module administers the agent, or selects a standby module to preferentially.
- the above call center has the following characteristics:
- the main control module is further configured to: determine a survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules; and when the routing subtask processing module crashes through the heartbeat message, according to the crash
- the capacity of the routing subtask processing module is selected from the standby module as one of the routing subtask processing modules instead of the corrupted routing subtask processing module.
- the main control module includes a scheduling module, a resource balancing module, and one or more result specification modules, where
- the scheduling module is configured to: when receiving an incoming VC sent by the IVVR and forwarding the queuing request of the manual service, selecting a result specification module, and sending a queuing request carrying the information of the selected result protocol module to the All the routing subtask processing modules associated with the VC; and, when learning the global optimal agent from the result specification module, notifying the IVVR to establish a call between the user and the global optimal agent, and notifying the related routing subtask processing module
- the global optimal agent is selected; when the result specification module learns that the search fails, the user is regarded as a user waiting for service, Selecting a routing subtask processing module associated with the VC to administer the user, or selecting, by the resource balancing module, a standby module as a routing subtask processing module associated with the VC, to administer the user;
- the routing subtask processing module is configured to: after receiving the information queuing request carrying the result specification module, search for a local optimal agent from the idle agent under its jurisdiction and notify the corresponding result specification module;
- the result specification module is configured to: after obtaining the local optimal agent from more than one routing subtask processing module, searching for the global optimal agent from all the obtained local optimal agents, and when the search is successful, the global optimal is obtained.
- the agent informs the scheduling module that when the search fails, the search result is notified to the scheduling module.
- the scheduling module is further configured to: when receiving the idle request sent by the agent through the agent module and the CTI, select a result specification module, and learn the idleness of the information carrying the selected result specification module from the result specification module.
- the IVVR is notified to establish a call between the agent and the global optimal user, and the related routing subtask processing module is notified that the global optimal user has been selected; when the result specification module learns that the search fails, the As an idle agent, the agent selects a routing subtask processing module associated with the VC corresponding to the agent to manage the agent, or selects a standby module by using the resource balancing module as a VC associated with the agent. a routing subtask processing module that governs the agent;
- the routing subtask processing module is further configured to: after receiving the idle request, search for a local optimal user from the user waiting for the service under its jurisdiction and notify the scheduling module of the result specification module selected by the scheduling module;
- the result specification module is further configured to: after obtaining the local optimal user from more than one routing subtask processing module, searching for the global optimal user from all the local optimal users obtained, and when the search is successful, the global maximum is obtained.
- the superior user informs the scheduling module that when the search fails, the search result is notified to the scheduling module.
- Figure 1 is a schematic diagram of an architectural mode commonly used in current call centers
- FIG. 2 is a schematic diagram of a call center of a parallel distributed routing architecture according to an application example of the present invention
- FIG. 3 is a schematic diagram of a routing system of an application example of the present invention distributed on different hardware nodes;
- FIG. 4 is a process in which a new node of the application example of the present invention joins the routing system and a heartbeat process after normal operation;
- FIG. 5 is a schematic diagram of a process in which a Balancer selects a suitable spare module and replaces it when a RouteTask of the application example of the present invention collapses;
- FIG. 6 is a schematic diagram of an agent login process according to an application example of the present invention.
- FIG. 7 is a schematic flow chart of finding a suitable seat for a user according to an application example of the present invention.
- FIG. 8 is a schematic diagram of a user enqueue flow of an application example of the present invention.
- FIG. 9 is a schematic diagram of a process for finding a suitable user for a free agent according to an application example of the present invention.
- FIG. 10 is a schematic diagram of an agent enqueue flow according to an application example of the present invention.
- Figure 11 is a schematic diagram of a variable form of an application example of the present invention. detailed description
- some lightweight computing modules such as IVVR, also occupy a set of hardware nodes. On these hardware nodes, the CPU and memory resources are not high, and these idle resources are waste.
- the present invention proposes to use parallel distribution.
- the method of routing is suitable for large-scale call centers.
- the parallel distributed routing system can be used to replace the original Route.
- the parallel distributed routing system includes a main control module and one or more distributed routing subtask processing modules (RouteTask), and each routing subtask processing module can manage a part of the routing. Free agents and users waiting for service.
- the main control module When the main control module receives the queuing request sent by the user via the IVVR, the queuing request is sent to all or part of the routing subtask processing module; the routing subtask processing module that receives the queuing request is from the free agent under its jurisdiction Finding a local optimal agent and informing the main control module; the main control module searches for the global optimal agent from all the local optimal agents that are known, and when the search is successful, notifies the IVVR to establish the user and the global optimal agent. call.
- the call center can usually include multiple vc (Virtual Call Center). Each VC can process one or more access codes.
- the above queuing request is a request to call in a VC and transfer the human service
- the master module sends the queued request to all routing subtask processing modules associated with the VC.
- the main control module searches for the global optimal agent from all the known local optimal agents, when the search is successful, the main control module also notifies the relevant routing subtask processing module that the global optimal agent has been selected, that is, the The global optimal agent is no longer a free agent; when the search fails, the main control module selects the user as a user waiting for service, and selects a routing subtask processing module associated with the VC to administer the user, or And selecting an alternate module as a routing subtask processing module associated with the VC to administer the user.
- a routing subtask processing module associated with the VC is preferentially selected to govern the user, when there is no routing subtask processing module associated with the VC, or an existing VC and the VC If the associated routing subtask processing module has reached or exceeded the capacity threshold, the standby module may be upgraded to a routing subtask processing module to govern the user.
- the main control module When the main control module receives the idle request sent by the agent through the agent module and the CTI, the idle request is sent to all or part of the routing subtask processing module; and the routing subtask processing module that receives the idle request is from Finding a local optimal user and informing the main control module among the users waiting for the service under its own jurisdiction; the main control module searches for the global optimal user from all the local optimal users that are known, and when the search is successful, notifies the IVVR to establish the agent. A call with the global optimal user.
- the master module may send the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
- the main control module searches for the global optimal user from all the local optimal users, when the search is successful, the main control module also notifies the relevant routing subtask processing module that the global optimal user has been selected, that is, the global The optimal user is no longer the user waiting for the queuing; when the search fails, the main control module uses the agent as a free agent, and selects a routing subtask processing module associated with the VC corresponding to the agent to govern the agent. Or, selecting a standby module as a routing subtask processing module associated with the VC corresponding to the agent, and managing the agent.
- the routing subtask processing module associated with the VC corresponding to the agent is preferentially controlled by the agent, when there is no routing subtask processing module associated with the VC corresponding to the agent, or existing If the routing subtask processing module associated with the VC corresponding to the agent has reached or exceeded the capacity threshold, the standby module may be upgraded to a routing subtask processing module to govern the agent.
- the main control module When the main control module receives the check-in request sent by the agent and the CTI, the main control module selects the agent that sends the check-in request as a free agent, and selects a route associated with the VC corresponding to the agent.
- the subtask processing module governs the agent, or, selects an alternate module, and the routing subtask processing module crashes:
- the main control module learns that the routing subtask processing module crashes through the heartbeat message, according to the capacity of the corrupted routing subtask processing module, one or more of the standby modules are selected as the routing subtask processing module instead of the crash. Routing subtask processing module.
- the main control module determines the survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules.
- the routing subtask processing module searches for a local optimal agent from the idle agent under its jurisdiction, and searches for a local optimal user from the user waiting for service under its own jurisdiction, and can distribute the complex operation to multiple routing subtask processing modules. Instead of a centralized processing of a module. When a routing subtask processing module crashes, it does not affect other routing subtask processing modules that work normally, thus avoiding a complete interruption of services.
- the distributed routing subtask processing module can be located at multiple nodes, such as a lightweight computing module such as IVVR to take advantage of redundant resources.
- the present invention has various embodiments, for example, the above main control module may include a scheduling module.
- the scheduling module and the resource balancing module are usually located at one node, and the result specification module can be scheduled with Modules and resource balancing modules are located on one node and can also be distributed across other nodes.
- Step 1 When the scheduling module receives the incoming VC sent by the IVVR and forwards the queue request of the manual service, select a result specification module, which will carry the letter of the selected result protocol module.
- Step 2 After receiving the information queuing request carrying the result specification module, the routing subtask processing module searches for a local optimal agent from the free agent under its jurisdiction and informs the corresponding result specification module;
- Step 3 After obtaining the local optimal agent from more than one routing subtask processing module, the result specification module searches for the global optimal agent from all the obtained local optimal agents. When the search is successful, the global optimal agent is notified. The scheduling module, when the search fails, notifying the scheduling module of the search result;
- Step 4 When the scheduling module learns the global optimal agent from the result specification module, the IVVR is notified to establish a call between the user and the global optimal agent, and the related routing subtask processing module is notified that the global optimal agent has been selected.
- the result specification module learns that the search fails the user is selected as a user waiting for service, and a routing subtask processing module associated with the VC is selected to govern the user, or a standby module is selected by the resource balancing module as The VC associated routing subtask processing module governs the user.
- Step 1 When the scheduling module receives the idle request sent by the agent through the agent module and the CTI, selecting a result specification module, and sending the idle request carrying the information of the selected result specification module
- Step 2 After receiving the idle request, the routing subtask processing module searches for a local optimal user from the user to be served by the user and informs the scheduling module of the selected result specification module;
- Step 3 The result specification module learns the local optimum from more than one routing subtask processing module After the user finds the global optimal user from all the local optimal users, when the search is successful, the global optimal user is informed to the scheduling module, and when the search fails, the search result is notified to the scheduling module;
- Step 4 When the scheduling module learns the global optimal user from the result specification module, the IVVR is notified to establish a call between the agent and the global optimal user, and notifies the related routing subtask processing module that the global optimal user has been selected;
- the agent When the result specification module learns that the search fails, the agent is used as a free agent, and a routing subtask processing module associated with the VC corresponding to the agent is selected to govern the agent, or a spare module is selected by the resource balancing module.
- a routing subtask processing module associated with the VC corresponding to the agent administers the agent.
- the agent that sends the check-in request is used as a free agent, and selects a routing sub-task processing module associated with the VC corresponding to the agent.
- the agent, or a resource balancing module selects a standby module as a routing subtask processing module associated with the VC corresponding to the agent, and administers the agent.
- the scheduling module determines the survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules.
- the resource balancing module selects one or more of the standby modules as the routing subtask processing module instead of the collapsed routing subtask processing module.
- the routing subtask processing module can also be divided into two modules, one module governs the idle agent and is used to find the local optimal agent, and one module governs the user waiting for the service to find the local optimal user.
- the present invention will be further described in detail below with application examples in which the main control module includes a Scheduler, Balancer and more than one Resulter.
- FIG. 2 a schematic diagram of a call center of a parallel distributed routing architecture according to an application example of the present invention, wherein:
- Scheduler assumes the main control role in the system.
- the Scheduler receives the user queuing request from the IVVR, and then returns the result of the parallel distributed routing system calculation (ie, the global optimal agent, that is, the logically optimal agent) to the IVVR, and then the IVVR establishes a call between the user and the agent.
- the Scheduler is also responsible for distributing users and agents to the appropriate RouteTask.
- the scheduler distributes the rules of users and agents based on the capacity of Veld (virtual call center number) and alternate RouteTask and with reference to the specified load distribution policy. .
- RouteTask calculates the route of the part of the free agent and the user waiting for service.
- the RouteTask registers with the Scheduler and has a heartbeat relationship with the Scheduler.
- the RouteTask provides its own capacity information when it registers.
- the Scheduler When the Scheduler receives the registration request, it will assign Vcld to the RouteTask.
- RouteTask uses a distributed lock mechanism to maintain data consistency and correctness. RouteTask sends the result of the route to Resulter for further protocol processing.
- Balancer and Scheduler are closely related. They can be placed on the same process or on the same hardware node, and work together in a shared storage manner.
- the Balancer arranges a part of the RouteTask as a standby module according to the specified policy. When the size of a VC expands, the Balancer selects the appropriate RouteTask from these spare modules and then deploys the expanded capacity to the selected alternate RouteTask.
- the available resources on the hardware node where a RouteTask is located drops (for example, the resources occupied by other processes on this node suddenly become larger, or a new process is started on this node, resulting in less available resources), ⁇ Use the above capacity allocation method to ensure the stability of the system.
- Balancer can select the appropriate RouteTask from the alternative module instead of the crashed RouteTask, thus reducing the time for the agent to re-sign in, thus reducing the time for this part of the business interruption.
- the Resulter can be thought of as a special RouteTask.
- the Resulter is responsible for receiving the routing result from the relevant RouteTask, using the same algorithm and strategy as the general RouteTask, selecting the global optimal agent or user, and sending the result to the Scheduler and RouteTask.
- the Resulter also registers with the Scheduler, provides its own capacity information, and keeps in touch with the Scheduler through heartbeats.
- the Scheduler maintains a resource registry with the following contents: ⁇ identity, Veld, number of agents, number of users, address, ... ⁇ ;
- the new module maintains its own capacity information: ⁇ The number of seats that can be accommodated, can accommodate Number of users ⁇ .
- 1 new module B first sends a registration request message to the Scheduler ⁇ the number of seats that can be accommodated, the number of users that can be accommodated ⁇ ;
- Scheduler determines the identity of the new module B (that is, the new module B as a RouteTask, or a Resulter, or a standby module), assigns Veld, and then returns ⁇ identity, Veld ⁇ to the new module B, and then counts the number of agents and the number of users into the registry. Form a new record ⁇ identity, Veld, number of agents, number of users, address of module B, ... ⁇ .
- 3 new module B enters the working state after login.
- the Scheduler periodically sends heartbeat messages to RouteTask and Resulter in all working states to determine the survival status of each module.
- step 2 the Scheduler determines the identity of B.
- B acts as a RouteTask or Resulter, it needs to allocate Veld to B, so B only participates in the routing processing related to the Veld; if B acts as a standby module, Veld is 0.
- the Scheduler determines the identity of B and the associated VC based on the current size and distribution of each VC, combined with a load balancing policy (such as a weight partitioning algorithm). Specifically, the following weight division algorithm can be used:
- each VC sets a set of capacity parameters ⁇ number of seats, number of users ⁇ ; for each RouteTask/Resulter, a set of capacity parameters ⁇ number of seats, number of seats, number of users, number of users ⁇ is set.
- the number of agents in the Resulter's capacity parameter refers to the sum of the number of seats governed by the RouteTask associated with it, and the number of users refers to the sum of the number of users governed by the RouteTask associated with it.
- Collection X A collection of seats or users that reach a threshold
- the set Y is a complement of the set X
- the Scheduler divides all VCs into sets N and sets M accordingly:
- the VCs in the set N have at least one RouteTask/Resulter located in the set X; the set M is a complement of the set N;
- the Scheduler When the new module B joins, the Scheduler first checks that the set N is an empty set, and if so, the new module B as a standby module; otherwise, selects a VC from the set N, and then uses the new module B as the VC's RouteTask/Resulter, Then move the excess agent and user on the extra-wide value RouteTask/Resulter to the new module B.
- the scheduler When the user manually lowers the capacity threshold or the Balancer dynamically lowers the capacity threshold, the scheduler also uses the above method to migrate the excess agent and user on the extra-wide value RouteTask/Resulter to the appropriate RouteTask/Resulter or standby module. on.
- the Balancer selects the module C with the smallest capacity under the VC to check whether the capacity of the C module can be completely migrated to the module A. If so, the migration is performed, and then Module C is set to an idle module (alternate module); otherwise no migration action is taken.
- Balancer will also dynamically allocate resources to make the calculations reasonably distributed among the RouteTask/Resulter.
- Balancer sets a set of global resource dynamic adjustment parameters ⁇ adjustment period, maximum number of spare modules, number of expected spare modules, minimum number of spare modules ⁇
- Balancer checks whether the current number of spare modules exceeds the maximum number of spare modules. If it exceeds, select one VC and one standby module, and lower the number of seats for each RouteTask/Resulter under the VC. , the number of users is wide ⁇ , and then the agents and users on the excess of these RouteTask/Resulter are migrated to the standby module, so that the standby module becomes a RouteTask or Resulter; then the next VC and the next standby module are selected. Capacity migration; repeat the above actions until the current number of spare modules reaches the expected number of spare modules.
- Balancer checks whether the current number of spare modules is lower than the minimum number of spare modules. If yes, select a VC and increase the number of seats of multiple RouteTask/Resulters under the VC. Width ⁇ , then select the RouteTask/Resulter with the smallest capacity under the VC, and then transfer all the capacity on the RouteTask to other RouteTask/Resulter, so that the RouteTask/Resulter becomes the standby module; then select the next A VC performs capacity migration; the above actions are repeated until the current number of spare modules reaches the expected number of spare modules.
- the Scheduler heartbeat message check detects that the module has crashed. Since the Balancer is on the same node as the Scheduler, the module's crash is also known. According to the capacity of the crashed RouteTask in the registry, Balancer selects one or more modules from the standby module and assigns them to the corresponding VCs, so that these standby modules are promoted to RouteTask. When the agents on the original crashed RouteTask log in again, the Scheduler assigns them. On the newly upgraded RouteTask.
- the agent checks in to the CTI, and the CTI notifies the Scheduler agent to check in.
- the check-in parameters are ⁇ VcId, AgtId (agent number) ⁇ ;
- Scheduler finds all RouteTasks bound to the VC from the registry according to Veld. If found, find the RouteTask with the lowest value of the current seat/number of seats from the result set, and replace it with RouteTaskX.
- step 2 if the RouteTask bound to the VC is not found, a module is selected from the pool of spare modules to be promoted to RouteTask, and the RouteTask is specifically served as the RouteTaskX for the VC;
- step 3 if the number of current seats of RouteTaskX is greater than or equal to the number of seats, the module selected from the pool of spare modules is promoted to RouteTask, which serves as the RouteTaskX for the VC;
- the user dials the access code to enter the IVVR, and then selects to switch to the manual service.
- the IVVR sends a queuing request to the Scheduler ⁇ VcId, Dl g Id (session number), session parameters, ... ⁇ ;
- RouteTask/Resulter Set the collection name to Set .
- Scheduler selects a Resulter from the Resulter according to the load balancing algorithm for the current route (4)
- the Resulter name is ResulterX.
- Scheduler sends the queue request ⁇ ResulterX address, Dlgld, session parameter, ... ⁇ to each RouteTask in the set Set;
- ResulterX collects the routing results returned by all RouteTasks on the Set, according to various routing strategies (same as the routing policy used by each RouteTask on the Set Set), and selects the logically optimal agent (ie, the global optimal) Agent). Then ResulterX returns the queued result to the Scheduler ⁇ agent call, ... ⁇ ;
- the Scheduler returns the queuing result ⁇ agent call, ... ⁇ to the IVVR, and then the IVVR establishes a call between the user and the agent. The process ends.
- step 6 if ResulterX eventually fails to find a suitable call for the user, the process proceeds to the "user enqueue phase", which will be described later.
- the Resulter requests the user to enter the queue ⁇ VcId, Dl g Id, session parameters.. ⁇ ;
- Scheduler finds all RouteTasks bound to the VC from the registry according to Veld, and then finds the RouteTask with the smallest value of the current user/user threshold from the result set, which may be replaced by RouteTaskX;
- RouteTaskX If the "current user number" of RouteTaskX is less than the "user number threshold", then the user enqueue request ⁇ VcId, Dl g Id, session parameter.. ⁇ is sent to RouteTaskX, thus completing the user's enqueue and the process ends.
- step 2 if the RouteTask bound to the VC is not found, a module is selected from the pool of spare modules to be promoted to RouteTask, and the RouteTask is specifically served as the RouteTaskX for the VC;
- step 3 if the number of current users of RouteTaskX is greater than or equal to the number of users, the module selected from the pool of spare modules is promoted to RouteTask, which serves as the RouteTaskX for the VC;
- Scheduler finds all RouteTask/Resulter bound to the VC from the registry according to Veld (set the set name to Set).
- Scheduler selects a Resulter from Resulter according to the load balancing algorithm for use in this queue (assuming the Resulter name is ResulterX )
- Scheduler sends the idle request ⁇ Agtld, session parameter, ... ⁇ to each RouteTask in the set Set;
- ResulterX collects the queuing results returned by all RouteTasks on the Set Set, according to various queuing strategies (same as the queuing strategy used by each RouteTask on the Set Set), from which the logically optimal users are selected (ie, global optimal) User). Then ResulterX returns the queued result to the Scheduler ⁇ agent call, user Dlgld, ... ⁇ ;
- the Scheduler returns the queuing result ⁇ agent call, user Dlgld, ... ⁇ to the IVVR, and then the IVVR establishes a call between the user and the agent. The process ends.
- step 6 if ResulterX eventually fails to find the right user for the agent, the process proceeds to the "agent enqueue phase", which will be described later.
- the Resulter requests the agent to enqueue the agent ⁇ VcId, AgtId, session parameters, one ⁇ ;
- Scheduler finds all RouteTasks bound to the VC from the registry according to Veld, and then finds the RouteTask with the smallest value of the current number of seats/number of seats from the result set, which may be replaced by RouteTaskX;
- step 2 if the RouteTask bound to the VC is not found, a module is selected from the pool of spare modules to be promoted to RouteTask, and the RouteTask is specifically served as the RouteTaskX for the VC;
- step 3 if the number of current seats of RouteTaskX is greater than or equal to the number of seats, the module selected from the pool of spare modules is promoted to RouteTask, which serves as the RouteTaskX for the VC;
- the embodiment of the present invention has various variable forms, such as shown in FIG. 11, which is one of the variable forms of the embodiment of the present invention, and further divides the RouteTask into a RouteTask and a QueueTask (queue subtask processing module).
- RouteTask is responsible for agent queue management and finding logically optimal seats for users;
- QueuTask is responsible for user queue management and finding logically optimal calls for agents.
- the Scheduler is responsible for scheduling and is responsible for the result specification.
- each module/unit in the foregoing embodiment may be implemented in the form of hardware, or may use software functions.
- the form of the module is implemented. The invention is not limited to any specific form of combination of hardware and software.
Landscapes
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
A call center and implementing method thereof is provided. More than one distributed RouterTask modules are used in said call center; when a main control module in the call center receives a queue request sent by a user via Interactive Voice and Video Response (IVVR), the main control module sends the queue request to all or part of the RouterTask modules; the RouterTask modules which received said queue request search for local optimal agents among the idle agents which are managed by the RouterTask modules themselves and inform the main control module; said main control module searches for a global optimal agent among all the informed local optimal agents, and informs IVVR of building a conversation between said user and said global optimal agent when the search succeeds.
Description
一种呼叫中心及其实现方法 Call center and implementation method thereof
技术领域 Technical field
本发明涉及数据通信领域, 尤其涉及一种呼叫中心及其实现方法。 The present invention relates to the field of data communications, and in particular, to a call center and a method for implementing the same.
背景技术 Background technique
呼叫中心又称为客服系统, 是用于向用户提供电话、 视频、 传真、 电子 邮件等多种接入手段的信息系统, 主要用来处理用户对企业提出的要求、 质 疑、 投诉、 建议和质询, 如电信业中的 1860, 金融业中的 95555等。 Call center, also known as customer service system, is an information system used to provide users with various access methods such as telephone, video, fax, and e-mail. It is mainly used to handle user requests, questions, complaints, suggestions, and questions. , such as 1860 in the telecommunications industry, 95555 in the financial industry, etc.
图 1是当前呼叫中心的典型架构,其中 Route(排队模块)和 CTK Computer Figure 1 shows the typical architecture of the current call center, where Route and CTK Computer
Telephony Integration, 计算机电话集成技术模块)——对应, 或者作为 CTI 的一部分, 一套平台包括一个 IVVR ( Interactive Voice and Video Response, 交互式语音及视频自动应答模块) 、 一个 CTI、 一个 Route和一个 Agent (座 席模块) 。 Telephony Integration, a computer telephony integration technology module), or as part of a CTI, a set of platforms including an IVVR (Interactive Voice and Video Response), a CTI, a Route and an Agent (Agent module).
其中, Agent是话务员(座席)使用客服系统的工具,它负责和 CTI、 IVVR 等模块共同完成用户的路由和通话。 Among them, the Agent is the tool for the operator (agent) to use the customer service system, and it is responsible for completing the routing and calling of the user together with the modules such as CTI and IVVR.
CTI 负责座席的签入、 签出、 示忙、 示闲、 状态管理、 呼叫事件通知、 呼叫请求处理等。 CTI is responsible for agent check-in, check-out, busy, idle, status management, call event notification, call request processing, and so on.
IVVR 服务提供语音及视频的自动服务以及把人工服务请求提交给 Route, 并且根据 Route选出的座席电话, 建立用户和座席之间的通话。 The IVVR service provides automatic voice and video services and submits manual service requests to the Route, and establishes a call between the user and the agent based on the agent phone selected by the Route.
Route负责根据各种预定义的策略、规则, 选出逻辑上最优的话务员 (坐 席) 为用户 (呼叫)服务。 这种高度的智能化的过程, 是通过各种复杂的算 法实现的。相对于呼叫中心其他模块而言, Route是高密集运算的应用。 随着 呼叫中心的规模越来越大, R0ute已经成为呼叫中心的性能瓶颈。 The Route is responsible for selecting the logically optimal attendant (seat) to serve the user (call) according to various predefined policies and rules. This highly intelligent process is implemented by a variety of complex algorithms. Route is a highly intensive computing application relative to other modules in the call center. As the size of the call center grows larger, R 0u te has become a performance bottleneck in the call center.
发明内容 Summary of the invention
本发明要解决的技术问题提出一种适用于大规模呼叫中心及其实现方 法, 以避免大规模呼叫中心出现性能瓶颈的缺陷。 为了解决上述问题, 本发明提供一种呼叫中心的实现方法, 所述呼叫中 心釆用一个以上分布式的路由子任务处理模块; 所述方法包括: The technical problem to be solved by the present invention proposes a defect suitable for a large-scale call center and its implementation method to avoid performance bottlenecks in a large-scale call center. In order to solve the above problem, the present invention provides a method for implementing a call center, where the call center uses one or more distributed routing subtask processing modules; the method includes:
当呼叫中心的主控模块接收到用户经交互式语音及视频自动应答模块 When the call center's main control module receives the user's interactive voice and video auto answer module
( IVVR )发送的排队请求时, 将所述排队请求发送给全部或部分路由子任务 处理模块; (IVVR) when the queued request is sent, the queuing request is sent to all or part of the routing subtask processing module;
接收到所述排队请求的路由子任务处理模块从自身管辖的空闲座席中查 找局部最优座席并告知主控模块; The routing subtask processing module that receives the queuing request finds a local optimal agent from the idle agent under its jurisdiction and informs the main control module;
所述主控模块从获知的所有局部最优座席中查找全局最优座席, 当查找 成功时, 通知 IVVR建立所述用户与所述全局最优座席的通话。 The master control module searches for the global optimal agent from all the local optimal agents that are known. When the search succeeds, the IVVR is notified to establish a call between the user and the global optimal agent.
优先地, 上述方法具有以下特点: Preferably, the above method has the following characteristics:
所述排队请求为呼入虚拟呼叫中心 (VC )并转接人工服务的请求; 在主控模块将所述排队请求发送给全部或部分路由子任务处理模块的步 骤中, 所述主控模块将所述排队请求发送给与所述 VC相关联的所有路由子 任务处理模块。 The queuing request is a request for calling in a virtual call center (VC) and transferring a manual service; in a step of the main control module transmitting the queuing request to all or part of the routing subtask processing module, the main control module The queuing request is sent to all routing subtask processing modules associated with the VC.
优先地, 上述方法具有以下特点: Preferably, the above method has the following characteristics:
在所述主控模块从获知的所有局部最优座席中查找全局最优座席的步骤 中, In the step of the main control module searching for the global optimal agent from all the local optimal agents learned,
当查找成功时, 所述主控模块还通知相关路由子任务处理模块所述全局 最优座席已选定; When the search is successful, the main control module further notifies the related routing subtask processing module that the global optimal agent has been selected;
当查找失败时, 所述主控模块将所述用户作为等待服务的用户, 选择与 所述 VC相关联的一个路由子任务处理模块管辖所述用户, 或者, 选择一个 备用模块作为与所述 VC相关联的路由子任务处理模块, 管辖所述用户。 When the search fails, the main control module selects the user as a user waiting for service, selects a routing subtask processing module associated with the VC to administer the user, or selects a standby module as the VC. An associated routing subtask processing module that governs the user.
优先地, 上述方法还包括: Preferably, the above method further comprises:
当主控模块接收到座席经座席模块和 CTI发送的示闲请求时, 将所述示 闲请求发送给全部或部分路由子任务处理模块; When the main control module receives the idle request sent by the agent through the agent module and the CTI, the main control module sends the idle request to all or part of the routing subtask processing module;
接收到所述示闲请求的路由子任务处理模块从自身管辖的等待服务的用 户中查找局部最优用户并告知主控模块; 所述主控模块从获知的所有局部最优用户中查找全局最优用户, 当查找 成功时, 通知 IVVR建立所述座席与所述全局最优用户的通话。 The routing subtask processing module that receives the idle request searches for a local optimal user from the user waiting for the service under its jurisdiction and informs the main control module; The master control module searches for the global optimal user from all the local optimal users, and when the search succeeds, notifies the IVVR to establish a call between the agent and the global optimal user.
优先地, 上述方法具有以下特点: Preferably, the above method has the following characteristics:
在主控模块将所述座席发送的示闲请求发送给全部或部分路由子任务处 理模块的步骤中, In the step of the main control module sending the idle request sent by the agent to all or part of the routing subtask processing module,
所述主控模块将所述示闲请求发送给与所述座席对应的 VC相关联的所 有路由子任务处理模块。 The main control module sends the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
优先地, 上述方法具有以下特点: Preferably, the above method has the following characteristics:
在所述主控模块从获知的所有局部最优用户中查找全局最优用户的步骤 中, In the step of the master control module searching for a global optimal user from all known local optimal users,
当查找成功时, 所述主控模块还通知相关路由子任务处理模块所述全局 最优用户已选定; When the search is successful, the main control module further notifies the relevant routing subtask processing module that the global optimal user has been selected;
当查找失败时, 所述主控模块将所述座席作为空闲座席, 选择与所述座 席对应的 VC相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择 一个备用模块作为与所述座席对应的 VC相关联的路由子任务处理模块, 管 辖所述座席。 When the search fails, the main control module uses the agent as a free agent, selects a routing subtask processing module associated with the VC corresponding to the agent to govern the agent, or selects a spare module as the idle The routing subtask processing module associated with the VC corresponding to the agent controls the agent.
优先地, 上述方法还包括: Preferably, the above method further comprises:
当主控模块接收到座席经座席模块和 CTI发送的签入请求时, 所述主控 模块将发送所述签入请求的座席作为空闲座席, 选择与所述座席对应的 VC 相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块 When the main control module receives the check-in request sent by the agent and the CTI, the main control module selects the agent that sends the check-in request as a free agent, and selects a route associated with the VC corresponding to the agent. The subtask processing module governs the agent, or selects an alternate module
优先地, 上述方法还包括: Preferably, the above method further comprises:
当所述主控模块获知有路由子任务处理模块崩溃时, 则根据崩溃的路由 子任务处理模块的容量, 从备用模块中选择一个或多个作为路由子任务处理 模块, 代替崩溃的路由子任务处理模块。 When the main control module learns that the routing subtask processing module is crashing, according to the capacity of the corrupted routing subtask processing module, one or more of the standby modules are selected as the routing subtask processing module instead of the crashed routing subtask. Processing module.
为了解决上述问题, 本发明提供一种呼叫中心, 包括 CTI、 IVVR和座席 模块, 还包括并行分布式路由系统, 所述并行分布式路由系统包括主控模块 和一个以上分布式的路由子任务处理模块, 其中, 所述主控模块设置为: 当接收到用户经 IVVR发送的排队请求时, 将所 述排队请求发送给全部或部分路由子任务处理模块; 以及, 从一个以上的路 由子任务处理模块获知局部最优座席后, 从获知的所有局部最优座席中查找 全局最优座席, 当查找成功时, 通知 IVVR建立所述用户与所述全局最优座 席的通话; In order to solve the above problems, the present invention provides a call center, including a CTI, an IVVR, and an agent module, and further includes a parallel distributed routing system including a main control module and one or more distributed routing subtasks. Module, where The main control module is configured to: when receiving a queuing request sent by the user via the IVVR, send the queuing request to all or part of the routing subtask processing module; and learn from the one or more routing subtask processing modules After the agent is seated, the global optimal agent is searched from all the local optimal agents, and when the search is successful, the IVVR is notified to establish a call between the user and the global optimal agent.
所述路由子任务处理模块设置为: 接收到所述排队请求后, 从自身管辖 的空闲座席中查找局部最优座席并告知主控模块。 The routing subtask processing module is configured to: after receiving the queuing request, find a local optimal agent from the free agent under its jurisdiction and notify the main control module.
优先地, 上述呼叫中心具有以下特点: Priorityly, the above call center has the following characteristics:
所述排队请求为呼入 VC并转接人工服务的请求; The queuing request is a request to call in to the VC and transfer the human service;
所述主控模块是设置为以如下方式将所述排队请求发送给全部或部分路 由子任务处理模块: 将所述排队请求发送给与所述 VC相关联的所有路由子 任务处理模块。 The master module is arranged to send the queued request to all or a portion of the routing subtask processing module in the following manner: The queuing request is sent to all routing subtask processing modules associated with the VC.
优先地, 上述呼叫中心还包括一个以上的备用模块; Preferentially, the above call center further includes more than one standby module;
所述主控模块还设置为: 从所有局部最优座席中查找全局最优座席时, 当查找成功时, 还取消相关路由子任务处理模块管辖所述全局最优座席; 当 查找失败时, 将所述用户作为等待服务的用户, 选择与所述 VC相关联的一 个路由子任务处理模块管辖所述用户, 或者, 选择一个备用模块作为与所述 The main control module is further configured to: when searching for the global optimal agent from all the local optimal agents, when the search is successful, cancel the related routing subtask processing module to govern the global optimal agent; when the search fails, The user, as a user waiting for service, selects a routing subtask processing module associated with the VC to administer the user, or selects a standby module as
VC相关联的路由子任务处理模块, 管辖所述用户。 The VC associated routing subtask processing module governs the user.
优先地, 上述呼叫中心具有以下特点: Priorityly, the above call center has the following characteristics:
所述主控模块还设置为: 当接收到座席经座席模块和 CTI发送的示闲请 求时, 将所述示闲请求发送给全部或部分路由子任务处理模块; 以及, 从一 个以上的路由子任务处理模块获知局部最优用户后, 从获知的所有局部最优 用户中查找全局最优用户, 当查找成功时, 通知 IVVR建立所述座席与所述 全局最优用户的通话; The main control module is further configured to: when receiving the idle request sent by the agent and the CTI, send the idle request to all or part of the routing subtask processing module; and, from more than one routing sub After the task processing module learns the local optimal user, the global optimal user is searched from all the local optimal users, and when the search succeeds, the IVVR is notified to establish a call between the agent and the global optimal user.
路由子任务处理模块还设置为: 接收到所述示闲请求后, 从自身管辖的 等待服务的用户中查找局部最优用户并告知主控模块。 The routing subtask processing module is further configured to: after receiving the idle request, search for a local optimal user from the user waiting for the service under its jurisdiction and notify the main control module.
优先地, 上述呼叫中心具有以下特点: Priorityly, the above call center has the following characteristics:
所述主控模块是设置为以如下方式将所述座席发送的示闲请求发送给全 部或部分路由子任务处理模块:将所述示闲请求发送给与所述座席对应的 VC 相关联的所有路由子任务处理模块。 The main control module is configured to send the idle request sent by the agent to the whole in the following manner The partial or partial routing subtask processing module: sending the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
优先地, 上述呼叫中心还包括一个以上的备用模块; Preferentially, the above call center further includes more than one standby module;
所述主控模块还设置为: 从所有局部最优用户中查找全局最优用户时, 当查找成功时, 还取消相关路由子任务处理模块管辖所述全局最优用户; 当 查找失败时, 将所述座席作为空闲座席, 选择与所述座席对应的 VC相关联 的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块作为与 所述座席对应的 VC相关联的路由子任务处理模块, 管辖所述座席。 The main control module is further configured to: when searching for a global optimal user from all local optimal users, when the search is successful, cancel the related routing subtask processing module to govern the global optimal user; when the search fails, The agent acts as a free agent, and selects a routing subtask processing module associated with the VC corresponding to the agent to manage the agent, or selects a standby module as a routing subtask processing associated with the VC corresponding to the agent. Module, governing the agent.
优先地, 上述呼叫中心具有以下特点: Priorityly, the above call center has the following characteristics:
所述主控模块还设置为: 当接收到座席经座席模块和 CTI发送的签入请 求时,将发送所述签入请求的座席作为空闲座席,选择与所述座席对应的 VC 相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块 优先地, 上述呼叫中心具有以下特点: The main control module is further configured to: when receiving a check-in request sent by the agent and the CTI, the agent that sends the check-in request is used as a free agent, and select one associated with the VC corresponding to the agent. The routing subtask processing module administers the agent, or selects a standby module to preferentially. The above call center has the following characteristics:
所述主控模块还设置为: 通过向所有的路由子任务处理模块发送心跳消 息, 确定路由子任务处理模块的存活状态; 当通过心跳消息获知有路由子任 务处理模块崩溃时, 则根据崩溃的路由子任务处理模块的容量, 从备用模块 中选择一个或多个作为路由子任务处理模块, 代替崩溃的路由子任务处理模 块。 The main control module is further configured to: determine a survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules; and when the routing subtask processing module crashes through the heartbeat message, according to the crash The capacity of the routing subtask processing module is selected from the standby module as one of the routing subtask processing modules instead of the corrupted routing subtask processing module.
优先地, 上述呼叫中心具有以下特点: Priorityly, the above call center has the following characteristics:
所述主控模块包括调度模块、资源平衡模块和一个以上的结果规约模块, 其中, The main control module includes a scheduling module, a resource balancing module, and one or more result specification modules, where
所述调度模块设置为: 当接收到用户经 IVVR发送的呼入 VC并转接人 工服务的排队请求时, 选择一个结果规约模块, 将携带所选择的结果规约模 块的信息的排队请求发送给与所述 VC相关联的所有路由子任务处理模块; 以及, 从结果规约模块获知全局最优座席时, 通知 IVVR建立所述用户与所 述全局最优座席的通话, 并通知相关路由子任务处理模块所述全局最优座席 已选定; 从结果规约模块获知查找失败时, 将所述用户作为等待服务的用户, 选择与所述 VC相关联的一个路由子任务处理模块管辖所述用户, 或者, 通 过所述资源平衡模块选择一个备用模块作为与所述 VC相关联的路由子任务 处理模块, 管辖所述用户; The scheduling module is configured to: when receiving an incoming VC sent by the IVVR and forwarding the queuing request of the manual service, selecting a result specification module, and sending a queuing request carrying the information of the selected result protocol module to the All the routing subtask processing modules associated with the VC; and, when learning the global optimal agent from the result specification module, notifying the IVVR to establish a call between the user and the global optimal agent, and notifying the related routing subtask processing module The global optimal agent is selected; when the result specification module learns that the search fails, the user is regarded as a user waiting for service, Selecting a routing subtask processing module associated with the VC to administer the user, or selecting, by the resource balancing module, a standby module as a routing subtask processing module associated with the VC, to administer the user;
所述路由子任务处理模块是设置为: 接收到携带所述结果规约模块的信 息排队请求后, 从自身管辖的空闲座席中查找局部最优座席并告知相应的结 果规约模块; The routing subtask processing module is configured to: after receiving the information queuing request carrying the result specification module, search for a local optimal agent from the idle agent under its jurisdiction and notify the corresponding result specification module;
所述结果规约模块设置为: 从一个以上的路由子任务处理模块获知局部 最优座席后, 从获知的所有局部最优座席中查找全局最优座席, 当查找成功 时, 将所述全局最优座席告知所述调度模块, 当查找失败时, 将查找结果告 知所述调度模块。 The result specification module is configured to: after obtaining the local optimal agent from more than one routing subtask processing module, searching for the global optimal agent from all the obtained local optimal agents, and when the search is successful, the global optimal is obtained. The agent informs the scheduling module that when the search fails, the search result is notified to the scheduling module.
优先地, 上述呼叫中心具有以下特点: Priorityly, the above call center has the following characteristics:
所述调度模块还设置为: 当接收到座席经座席模块和 CTI发送的示闲请 求时, 选择一个结果规约模块, 将携带所选择的结果规约模块的信息的示闲 从结果规约模块获知全局最优用户时, 通知 IVVR建立所述座席与所述全局 最优用户的通话,并通知相关路由子任务处理模块所述全局最优用户已选定; 从结果规约模块获知查找失败时, 将所述座席作为空闲座席, 选择与所述座 席对应的 VC相关联的一个路由子任务处理模块管辖所述座席, 或者, 通过 所述资源平衡模块选择一个备用模块作为与所述座席对应的 VC相关联的路 由子任务处理模块, 管辖所述座席; The scheduling module is further configured to: when receiving the idle request sent by the agent through the agent module and the CTI, select a result specification module, and learn the idleness of the information carrying the selected result specification module from the result specification module. When the user is a good user, the IVVR is notified to establish a call between the agent and the global optimal user, and the related routing subtask processing module is notified that the global optimal user has been selected; when the result specification module learns that the search fails, the As an idle agent, the agent selects a routing subtask processing module associated with the VC corresponding to the agent to manage the agent, or selects a standby module by using the resource balancing module as a VC associated with the agent. a routing subtask processing module that governs the agent;
路由子任务处理模块还设置为: 接收到所述示闲请求后, 从自身管辖的 等待服务的用户中查找局部最优用户并告知所述调度模块所选择的结果规约 模块; The routing subtask processing module is further configured to: after receiving the idle request, search for a local optimal user from the user waiting for the service under its jurisdiction and notify the scheduling module of the result specification module selected by the scheduling module;
所述结果规约模块还设置为: 从一个以上的路由子任务处理模块获知局 部最优用户后, 从获知的所有局部最优用户中查找全局最优用户, 当查找成 功时, 将所述全局最优用户告知所述调度模块, 当查找失败时, 将查找结果 告知所述调度模块。 通过上述方法和系统可以解决建设大规模呼叫中心时面临性能瓶颈的问 题, 并且, 在大规模呼叫中心中通过资源的动态调配实现冗余资源的充分利 用; 通过分布式动态资源管理, 保证当某一路由子任务处理模块崩溃时, 只 影响和该路由子任务处理模块相关的部分业务, 避免业务的全面中断, 进而 提高大规模呼叫中心的可用性和稳定性, 降低呼叫中心的建设成本。 附图概述 The result specification module is further configured to: after obtaining the local optimal user from more than one routing subtask processing module, searching for the global optimal user from all the local optimal users obtained, and when the search is successful, the global maximum is obtained. The superior user informs the scheduling module that when the search fails, the search result is notified to the scheduling module. Through the above methods and systems, the problem of performance bottlenecks when constructing a large-scale call center can be solved, and the redundant use of resources can be fully utilized in the large-scale call center through dynamic allocation of resources; When a routing subtask processing module crashes, it only affects some services related to the routing subtask processing module, avoiding the overall interruption of services, thereby improving the availability and stability of the large-scale call center, and reducing the construction cost of the call center. BRIEF abstract
图 1是当前呼叫中心普遍使用的架构模式示意图; Figure 1 is a schematic diagram of an architectural mode commonly used in current call centers;
图 2 于本发明应用示例的并行分布式路由架构的呼叫中心示意图; 图 3 ^^于本发明应用示例的路由系统分布在不同的硬件节点上的示意 图; 2 is a schematic diagram of a call center of a parallel distributed routing architecture according to an application example of the present invention; FIG. 3 is a schematic diagram of a routing system of an application example of the present invention distributed on different hardware nodes;
图 4是本发明应用示例的新节点加入所述路由系统的过程和正常运行后 的心跳过程; 4 is a process in which a new node of the application example of the present invention joins the routing system and a heartbeat process after normal operation;
图 5 是本发明应用示例的某 RouteTask崩溃时, Balancer选出合适的备 用模块取而代之的过程示意图; FIG. 5 is a schematic diagram of a process in which a Balancer selects a suitable spare module and replaces it when a RouteTask of the application example of the present invention collapses;
图 6 是本发明应用示例的座席登录流程示意图; 6 is a schematic diagram of an agent login process according to an application example of the present invention;
图 7 是本发明应用示例的为用户寻找合适座席的流程示意图; 7 is a schematic flow chart of finding a suitable seat for a user according to an application example of the present invention;
图 8 是本发明应用示例的用户入队流程示意图; 8 is a schematic diagram of a user enqueue flow of an application example of the present invention;
图 9 是本发明应用示例的为空闲座席寻找合适用户的流程示意图; 图 10 是本发明应用示例的座席入队流程示意图; 9 is a schematic diagram of a process for finding a suitable user for a free agent according to an application example of the present invention; FIG. 10 is a schematic diagram of an agent enqueue flow according to an application example of the present invention;
图 11 本发明应用示例的可变形式示意图。 具体实施方式 Figure 11 is a schematic diagram of a variable form of an application example of the present invention. detailed description
下文中将结合附图对本发明的实施例进行详细说明。 需要说明的是, 在 不冲突的情况下, 本申请中的实施例及实施例中的特征可以相互任意组合。 Embodiments of the present invention will be described in detail below with reference to the accompanying drawings. It should be noted that, in the case of no conflict, the features in the embodiments and the embodiments in the present application may be arbitrarily combined with each other.
在现有技术中, 由于 Route承担着大部分运算, 当呼叫中心规模扩大时, Route率先成为瓶颈。 另外, 当 Route崩溃时, 在釆用双机模式下, 业务切换 到备机, 意味着当前在线等待服务的用户通话突然中断, 而且所有空闲座席 都要重新登陆, 业务被迫中断。 这种情况造成的直接和间接经济损失是非常 严重的。 In the prior art, since Route is responsible for most of the operations, when the call center scales up, Route becomes the bottleneck first. In addition, when Route crashes, in the dual-machine mode, business switching To the standby machine, it means that the user who is currently waiting for the service is suddenly interrupted, and all the free agents have to log in again, and the business is forced to be interrupted. The direct and indirect economic losses caused by this situation are very serious.
再者, 在现有技术的架构中, 一些轻量级计算的模块, 比如 IVVR, 也 独占一套硬件节点, 在这些硬件节点上, CPU和内存等资源占用率不高, 这 些空闲的资源被浪费。 Furthermore, in the prior art architecture, some lightweight computing modules, such as IVVR, also occupy a set of hardware nodes. On these hardware nodes, the CPU and memory resources are not high, and these idle resources are waste.
根据上述特点, 随着呼叫中心的规模越来越大, 釆用 Route和 CTI—— 对应的架构模式面临的挑战越来越大, 釆用分布式并行排队架构是一种解决 问题的方法。 According to the above characteristics, as the size of the call center is getting larger and larger, the use of Route and CTI – the corresponding architectural model is facing more and more challenges. The use of distributed parallel queuing architecture is a solution to the problem.
另一方面, 如果现有冗余硬件资源、 陈旧设备能够被利用起来, 呼叫中 心的成本会大大降低, 带来更好的经济效益。 On the other hand, if existing redundant hardware resources and obsolete equipment can be utilized, the cost of the call center will be greatly reduced, resulting in better economic benefits.
同时, 我们也需要找到一种方法使得在 Route进程崩溃时, 将业务中断 的影响范围和时间降到最小。 At the same time, we also need to find a way to minimize the impact and time of business disruption when the Route process crashes.
针对现有呼叫中心架构在大规模呼叫中心建设中面临的性能瓶颈、 以及 Route进程崩溃时导致业务全面中断、以及在资源使用上不能充分利用冗余资 源等问题, 本发明提出, 釆用并行分布式路由的方法以适用于大规模呼叫中 心。 In view of the performance bottleneck faced by the existing call center architecture in the construction of a large-scale call center, and the overall disruption of services caused by the collapse of the Route process, and the inability to fully utilize redundant resources in resource utilization, the present invention proposes to use parallel distribution. The method of routing is suitable for large-scale call centers.
具体地,可釆用并行分布式路由系统取代原来的 Route,并行分布式路由 系统包括主控模块和一个以上分布式的路由子任务处理模块(RouteTask ) , 每个路由子任务处理模块可管辖一部分空闲座席和等待服务的用户。 Specifically, the parallel distributed routing system can be used to replace the original Route. The parallel distributed routing system includes a main control module and one or more distributed routing subtask processing modules (RouteTask), and each routing subtask processing module can manage a part of the routing. Free agents and users waiting for service.
下面对呼叫中心的实现方式进行具体介绍: The following describes the implementation of the call center:
一、 用户呼入呼叫中心的情况: First, the user calls into the call center:
当主控模块接收到用户经 IVVR发送的排队请求时, 将所述排队请求发 送给全部或部分路由子任务处理模块; 接收到所述排队请求的路由子任务处 理模块从自身管辖的空闲座席中查找局部最优座席并告知主控模块; 所述主 控模块从获知的所有局部最优座席中查找全局最优座席, 当查找成功时, 通 知 IVVR建立所述用户与所述全局最优座席的通话。 When the main control module receives the queuing request sent by the user via the IVVR, the queuing request is sent to all or part of the routing subtask processing module; the routing subtask processing module that receives the queuing request is from the free agent under its jurisdiction Finding a local optimal agent and informing the main control module; the main control module searches for the global optimal agent from all the local optimal agents that are known, and when the search is successful, notifies the IVVR to establish the user and the global optimal agent. call.
其中,呼叫中心通常可包含多个 vc( Virtual Call Center,虚拟呼叫中心), 每个 VC可处理一至多个接入码。 The call center can usually include multiple vc (Virtual Call Center). Each VC can process one or more access codes.
上述排队请求为呼入一 VC并转接人工服务的请求; The above queuing request is a request to call in a VC and transfer the human service;
主控模块将该排队请求发送给与所述 VC相关联的所有路由子任务处理 模块。 The master module sends the queued request to all routing subtask processing modules associated with the VC.
主控模块从获知的所有局部最优座席中查找全局最优座席时, 当查找成 功时, 所述主控模块还通知相关路由子任务处理模块所述全局最优座席已选 定, 即所述全局最优座席不再是空闲座席; 当查找失败时, 所述主控模块将 所述用户作为等待服务的用户, 选择与所述 VC相关联的一个路由子任务处 理模块管辖所述用户, 或者, 选择一个备用模块作为与所述 VC相关联的路 由子任务处理模块, 管辖所述用户。 When the main control module searches for the global optimal agent from all the known local optimal agents, when the search is successful, the main control module also notifies the relevant routing subtask processing module that the global optimal agent has been selected, that is, the The global optimal agent is no longer a free agent; when the search fails, the main control module selects the user as a user waiting for service, and selects a routing subtask processing module associated with the VC to administer the user, or And selecting an alternate module as a routing subtask processing module associated with the VC to administer the user.
其中, 当查找失败时, 优先选择与所述 VC相关联的一个路由子任务处 理模块管辖所述用户, 当没有与所述 VC相关联的路由子任务处理模块, 或 者现有的与所述 VC相关联的路由子任务处理模块已经达到或超过容量阔值, 则可选择备用模块升级为路由子任务处理模块, 管辖所述用户。 Wherein, when the lookup fails, a routing subtask processing module associated with the VC is preferentially selected to govern the user, when there is no routing subtask processing module associated with the VC, or an existing VC and the VC If the associated routing subtask processing module has reached or exceeded the capacity threshold, the standby module may be upgraded to a routing subtask processing module to govern the user.
二、 座席出现空闲的情况: Second, the seat is idle:
当主控模块接收到座席经座席模块和 CTI发送的示闲请求时, 将所述示 闲请求发送给全部或部分路由子任务处理模块; 接收到所述示闲请求的路由 子任务处理模块从自身管辖的等待服务的用户中查找局部最优用户并告知主 控模块; 所述主控模块从获知的所有局部最优用户中查找全局最优用户, 当 查找成功时, 通知 IVVR建立所述座席与所述全局最优用户的通话。 When the main control module receives the idle request sent by the agent through the agent module and the CTI, the idle request is sent to all or part of the routing subtask processing module; and the routing subtask processing module that receives the idle request is from Finding a local optimal user and informing the main control module among the users waiting for the service under its own jurisdiction; the main control module searches for the global optimal user from all the local optimal users that are known, and when the search is successful, notifies the IVVR to establish the agent. A call with the global optimal user.
具体地, 可以主控模块可将所述示闲请求发送给与所述座席对应的 VC 相关联的所有路由子任务处理模块。 Specifically, the master module may send the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
主控模块从获知的所有局部最优用户中查找全局最优用户时, 当查找成 功时, 所述主控模块还通知相关路由子任务处理模块所述全局最优用户已选 定, 即该全局最优用户不再是等待排队的用户; 当查找失败时, 所述主控模 块将所述座席作为空闲座席, 选择与所述座席对应的 VC相关联的一个路由 子任务处理模块管辖所述座席, 或者, 选择一个备用模块作为与所述座席对 应的 VC相关联的路由子任务处理模块, 管辖所述座席。 其中, 当查找失败时, 优先选择与所述座席对应的 VC相关联的路由子 任务处理模块管辖所述座席, 当没有与所述座席对应的 VC相关联的路由子 任务处理模块, 或者现有的与所述座席对应的 VC相关联的路由子任务处理 模块已经达到或超过容量阔值, 则可选择备用模块升级为路由子任务处理模 块, 管辖所述座席。 When the main control module searches for the global optimal user from all the local optimal users, when the search is successful, the main control module also notifies the relevant routing subtask processing module that the global optimal user has been selected, that is, the global The optimal user is no longer the user waiting for the queuing; when the search fails, the main control module uses the agent as a free agent, and selects a routing subtask processing module associated with the VC corresponding to the agent to govern the agent. Or, selecting a standby module as a routing subtask processing module associated with the VC corresponding to the agent, and managing the agent. When the search fails, the routing subtask processing module associated with the VC corresponding to the agent is preferentially controlled by the agent, when there is no routing subtask processing module associated with the VC corresponding to the agent, or existing If the routing subtask processing module associated with the VC corresponding to the agent has reached or exceeded the capacity threshold, the standby module may be upgraded to a routing subtask processing module to govern the agent.
三、 座席签入的情况: Third, the situation of the agent check-in:
当主控模块接收到座席经座席模块和 CTI发送的签入请求时, 所述主控 模块将发送所述签入请求的座席作为空闲座席, 选择与所述座席对应的 VC 相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块 四、 路由子任务处理模块崩溃的情况: When the main control module receives the check-in request sent by the agent and the CTI, the main control module selects the agent that sends the check-in request as a free agent, and selects a route associated with the VC corresponding to the agent. The subtask processing module governs the agent, or, selects an alternate module, and the routing subtask processing module crashes:
当所述主控模块通过心跳消息获知有路由子任务处理模块崩溃时, 则根 据崩溃的路由子任务处理模块的容量, 从备用模块中选择一个或多个作为路 由子任务处理模块, 代替崩溃的路由子任务处理模块。 When the main control module learns that the routing subtask processing module crashes through the heartbeat message, according to the capacity of the corrupted routing subtask processing module, one or more of the standby modules are selected as the routing subtask processing module instead of the crash. Routing subtask processing module.
其中, 所述主控模块通过向所有的路由子任务处理模块发送心跳消息, 确定路由子任务处理模块的存活状态。 The main control module determines the survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules.
上述由路由子任务处理模块从自身管辖的空闲座席中查找局部最优座 席, 从自身管辖的等待服务的用户中查找局部最优用户, 可将复杂的运算分 散到多个路由子任务处理模块, 而不是一个模块集中处理。 当一路由子任务 处理模块崩溃时, 不会影响其它正常工作的路由子任务处理模块, 从而避免 了业务全面中断。 另外, 分布式的路由子任务处理模块可位于多个节点, 比 如, 可以位于象 IVVR这种轻量级计算模块, 以充分利用冗余资源。 The routing subtask processing module searches for a local optimal agent from the idle agent under its jurisdiction, and searches for a local optimal user from the user waiting for service under its own jurisdiction, and can distribute the complex operation to multiple routing subtask processing modules. Instead of a centralized processing of a module. When a routing subtask processing module crashes, it does not affect other routing subtask processing modules that work normally, thus avoiding a complete interruption of services. In addition, the distributed routing subtask processing module can be located at multiple nodes, such as a lightweight computing module such as IVVR to take advantage of redundant resources.
本发明有多种实施方式, 比如, 上述主控模块可包括调度模块The present invention has various embodiments, for example, the above main control module may include a scheduling module.
( Scheduler ) 、 资源平衡模块 (Balancer ) 和一个以上的结果规约模块 ( Resulter ) 。 (Scheduler), Resource Balancing Module (Balancer) and more than one Result Specification Module ( Resulter ).
调度模块和资源平衡模块通常位于一个节点, 而结果规约模块可与调度 模块和资源平衡模块位于一个节点, 也可以分布于其它节点。 The scheduling module and the resource balancing module are usually located at one node, and the result specification module can be scheduled with Modules and resource balancing modules are located on one node and can also be distributed across other nodes.
釆用上述实施方式时, 针对上述用户呼入呼叫中心的情况, 可釆用如下 实现方式: When the above embodiment is used, the following implementation manner can be adopted for the case where the above-mentioned user calls into the call center:
步骤 1 ,当调度模块接收到用户经 IVVR发送的呼入 VC并转接人工服务 的排队请求时, 选择一个结果规约模块, 将携带所选择的结果规约模块的信 Step 1: When the scheduling module receives the incoming VC sent by the IVVR and forwards the queue request of the manual service, select a result specification module, which will carry the letter of the selected result protocol module.
步骤 2 , 路由子任务处理模块接收到携带所述结果规约模块的信息排队 请求后, 从自身管辖的空闲座席中查找局部最优座席并告知相应的结果规约 模块; Step 2: After receiving the information queuing request carrying the result specification module, the routing subtask processing module searches for a local optimal agent from the free agent under its jurisdiction and informs the corresponding result specification module;
步骤 3 , 结果规约模块从一个以上的路由子任务处理模块获知局部最优 座席后, 从获知的所有局部最优座席中查找全局最优座席, 当查找成功时, 将所述全局最优座席告知所述调度模块, 当查找失败时, 将查找结果告知所 述调度模块; Step 3: After obtaining the local optimal agent from more than one routing subtask processing module, the result specification module searches for the global optimal agent from all the obtained local optimal agents. When the search is successful, the global optimal agent is notified. The scheduling module, when the search fails, notifying the scheduling module of the search result;
步骤 4,调度模块从结果规约模块获知全局最优座席时,通知 IVVR建立 所述用户与所述全局最优座席的通话, 并通知相关路由子任务处理模块所述 全局最优座席已选定; 从结果规约模块获知查找失败时, 将所述用户作为等 待服务的用户, 选择与所述 VC相关联的一个路由子任务处理模块管辖所述 用户, 或者, 通过资源平衡模块选择一个备用模块作为与所述 VC相关联的 路由子任务处理模块, 管辖所述用户。 Step 4: When the scheduling module learns the global optimal agent from the result specification module, the IVVR is notified to establish a call between the user and the global optimal agent, and the related routing subtask processing module is notified that the global optimal agent has been selected. When the result specification module learns that the search fails, the user is selected as a user waiting for service, and a routing subtask processing module associated with the VC is selected to govern the user, or a standby module is selected by the resource balancing module as The VC associated routing subtask processing module governs the user.
针对上述座席出现空闲的情况, 可釆用如下方式: In view of the fact that the above agents are idle, the following methods can be used:
步骤 1 , 当调度模块接收到座席经座席模块和 CTI发送的示闲请求时, 选择一个结果规约模块, 将携带所选择的结果规约模块的信息的示闲请求发 Step 1: When the scheduling module receives the idle request sent by the agent through the agent module and the CTI, selecting a result specification module, and sending the idle request carrying the information of the selected result specification module
步骤 2, 路由子任务处理模块接收到所述示闲请求后, 从自身管辖的等 待服务的用户中查找局部最优用户并告知所述调度模块所选择的结果规约模 块; Step 2: After receiving the idle request, the routing subtask processing module searches for a local optimal user from the user to be served by the user and informs the scheduling module of the selected result specification module;
步骤 3 , 结果规约模块从一个以上的路由子任务处理模块获知局部最优 用户后, 从获知的所有局部最优用户中查找全局最优用户, 当查找成功时, 将所述全局最优用户告知所述调度模块, 当查找失败时, 将查找结果告知所 述调度模块; Step 3: The result specification module learns the local optimum from more than one routing subtask processing module After the user finds the global optimal user from all the local optimal users, when the search is successful, the global optimal user is informed to the scheduling module, and when the search fails, the search result is notified to the scheduling module;
步骤 4,调度模块从结果规约模块获知全局最优用户时,通知 IVVR建立 所述座席与所述全局最优用户的通话, 并通知相关路由子任务处理模块所述 全局最优用户已选定; 从结果规约模块获知查找失败时, 将所述座席作为空 闲座席, 选择与所述座席对应的 VC相关联的一个路由子任务处理模块管辖 所述座席, 或者, 通过资源平衡模块选择一个备用模块作为与所述座席对应 的 VC相关联的路由子任务处理模块, 管辖所述座席。 Step 4: When the scheduling module learns the global optimal user from the result specification module, the IVVR is notified to establish a call between the agent and the global optimal user, and notifies the related routing subtask processing module that the global optimal user has been selected; When the result specification module learns that the search fails, the agent is used as a free agent, and a routing subtask processing module associated with the VC corresponding to the agent is selected to govern the agent, or a spare module is selected by the resource balancing module. A routing subtask processing module associated with the VC corresponding to the agent, administers the agent.
针对上述座席签入的情况, 可釆用如下方式: For the above-mentioned agent check-in, the following methods can be used:
当调度模块接收到座席经座席模块和 CTI发送的签入请求时, 将发送所 述签入请求的座席作为空闲座席, 选择与所述座席对应的 VC相关联的一个 路由子任务处理模块管辖所述座席, 或者, 通过资源平衡模块选择一个备用 模块作为与所述座席对应的 VC相关联的路由子任务处理模块, 管辖所述座 席。 When the scheduling module receives the check-in request sent by the agent through the agent module and the CTI, the agent that sends the check-in request is used as a free agent, and selects a routing sub-task processing module associated with the VC corresponding to the agent. The agent, or a resource balancing module selects a standby module as a routing subtask processing module associated with the VC corresponding to the agent, and administers the agent.
针对上述路由子任务处理模块崩溃的情况, 可釆用如下方式: For the above situation where the routing subtask processing module crashes, the following methods can be used:
调度模块通过向所有的路由子任务处理模块发送心跳消息, 确定路由子 任务处理模块的存活状态; The scheduling module determines the survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules.
当调度模块通过心跳消息获知有路由子任务处理模块崩溃时, 则通过资 源平衡模块从备用模块中选择一个或多个作为路由子任务处理模块, 代替崩 溃的路由子任务处理模块。 When the scheduling module learns that the routing subtask processing module crashes through the heartbeat message, the resource balancing module selects one or more of the standby modules as the routing subtask processing module instead of the collapsed routing subtask processing module.
另外, 为避免调度模块和资源平衡模块崩溃, 也可以釆用主备的方式进 行备份。 路由子任务处理模块也可以划分为两个模块, 一个模块管辖空闲座 席, 用来查找局部最优座席, 一个模块管辖等待服务的用户, 用来查找局部 最优用户。 下面以主控模块包括 Scheduler, Balancer和一个以上的 Resulter的应用 示例进一步对本发明进行详述。 In addition, in order to avoid the collapse of the scheduling module and the resource balancing module, you can also use the primary and backup methods for backup. The routing subtask processing module can also be divided into two modules, one module governs the idle agent and is used to find the local optimal agent, and one module governs the user waiting for the service to find the local optimal user. The present invention will be further described in detail below with application examples in which the main control module includes a Scheduler, Balancer and more than one Resulter.
如图 2所示, 为本发明应用示例的并行分布式路由架构的呼叫中心的示 意图, 其中: As shown in FIG. 2, a schematic diagram of a call center of a parallel distributed routing architecture according to an application example of the present invention, wherein:
Scheduler作为整个并行分布式路由系统的对外输入输出接口, 承担着系 统中的主控角色。 Scheduler接收来自 IVVR的用户排队请求, 然后把并行分 布式路由系统计算的结果(即全局最优座席, 也即逻辑上最优的座席)返回 给 IVVR , 然后 IVVR再建立用户和座席之间的通话。 另夕卜, Scheduler还负 责把用户和座席分发到合适的 RouteTask上, Scheduler分发用户和座席的规 则是以 Veld (虚拟呼叫中心号)和备选 RouteTask的容量并且参照规定的负 载分配策略来完成的。 As the external input and output interface of the entire parallel distributed routing system, Scheduler assumes the main control role in the system. The Scheduler receives the user queuing request from the IVVR, and then returns the result of the parallel distributed routing system calculation (ie, the global optimal agent, that is, the logically optimal agent) to the IVVR, and then the IVVR establishes a call between the user and the agent. . In addition, the Scheduler is also responsible for distributing users and agents to the appropriate RouteTask. The scheduler distributes the rules of users and agents based on the capacity of Veld (virtual call center number) and alternate RouteTask and with reference to the specified load distribution policy. .
RouteTask 计算所管辖的那部分空闲座席和等待服务的用户的路由。 RouteTask向 Scheduler注册, 并且和 Scheduler之间有心跳关系。 RouteTask 注册时提供自身的容量信息, Scheduler收到注册请求后, 会为该 RouteTask 分配 Vcld。 RouteTask釆用分布式锁机制来维持数据的一致性和正确性。 RouteTask把路由的结果送给 Resulter做进一步规约处理。 RouteTask calculates the route of the part of the free agent and the user waiting for service. The RouteTask registers with the Scheduler and has a heartbeat relationship with the Scheduler. The RouteTask provides its own capacity information when it registers. When the Scheduler receives the registration request, it will assign Vcld to the RouteTask. RouteTask uses a distributed lock mechanism to maintain data consistency and correctness. RouteTask sends the result of the route to Resulter for further protocol processing.
Balancer和 Scheduler关系紧密, 实现时可以放在同一个进程、 或同一台 硬件节点上, 釆用共享存储的方式协同工作。 Balancer根据规定的策略, 安 排一部分 RouteTask作为备用模块。 当某 VC的规模出现扩张时, Balancer从 这些备用模块中选择合适的 RouteTask,然后把扩张的容量调配到选出的备用 RouteTask上。 另一方面, 如果某 RouteTask所在硬件节点上可用资源下降时 (如: 此节点上其他进程占用的资源突发性变大, 或此节点上启动了新的进 程, 导致可用资源变少) , 也釆用上述容量调配方法, 保证系统的稳定性。 恶劣情况下, 某个正在工作的 RouteTask突然崩溃, 此时 Balancer可以从备 选模块上选择合适的 RouteTask代替崩溃的 RouteTask,从而减少座席重新签 入的时间 , 进而减少这部分业务中断的时间。 Balancer and Scheduler are closely related. They can be placed on the same process or on the same hardware node, and work together in a shared storage manner. The Balancer arranges a part of the RouteTask as a standby module according to the specified policy. When the size of a VC expands, the Balancer selects the appropriate RouteTask from these spare modules and then deploys the expanded capacity to the selected alternate RouteTask. On the other hand, if the available resources on the hardware node where a RouteTask is located drops (for example, the resources occupied by other processes on this node suddenly become larger, or a new process is started on this node, resulting in less available resources),上述 Use the above capacity allocation method to ensure the stability of the system. In the worst case, a working RouteTask suddenly crashes. At this time, Balancer can select the appropriate RouteTask from the alternative module instead of the crashed RouteTask, thus reducing the time for the agent to re-sign in, thus reducing the time for this part of the business interruption.
Resulter 可认为是一种特殊的 RouteTask。 Resulter 负责接收相关 RouteTask送来的路由结果, 釆用和一般 RouteTask相同的算法和策略, 从中 选出全局最优的座席或用户, 并把结果发给 Scheduler 和 RouteTask—样, Resulter也要向 Scheduler注册、提供自己的容量信息并且和 Scheduler之间也 要通过心跳保持联系。 The Resulter can be thought of as a special RouteTask. The Resulter is responsible for receiving the routing result from the relevant RouteTask, using the same algorithm and strategy as the general RouteTask, selecting the global optimal agent or user, and sending the result to the Scheduler and RouteTask. The Resulter also registers with the Scheduler, provides its own capacity information, and keeps in touch with the Scheduler through heartbeats.
下面以建立或改造一呼叫中心及该呼叫中心运行中的各个阶段分别详细 介绍。 The following is a detailed introduction of establishing or modifying a call center and various stages in the operation of the call center.
1. 规划阶段 Planning stage
在新建呼叫中心或改造现有呼叫中心时, 先对当前可用硬件资源进行规 划, 根据每台可用硬件节点上当前可用内存、 CPU状况, 计划每个节点上几 个 RouteTask进程, 每个进程的容量(可容纳的座席个数、 可容纳的用户个 数) 。 规划结果如图 3所示。 When you create a new call center or rebuild an existing call center, plan the currently available hardware resources. According to the current available memory and CPU status on each available hardware node, plan several RouteTask processes on each node, and the capacity of each process. (The number of seats that can be accommodated, the number of users that can be accommodated). The planning results are shown in Figure 3.
2. 新模块注册阶段 2. New module registration phase
系统运行过程中, 动态添加新模块过程如图 4所示。 Scheduler上维护一 张资源注册表, 注册表内容为: {身份, Veld, 座席数, 用户数, 地址, ... } ; 新模块维护自己的容量信息: {可容纳的座席个数, 可容纳的用户个数 }。 The process of dynamically adding new modules during system operation is shown in Figure 4. The Scheduler maintains a resource registry with the following contents: {identity, Veld, number of agents, number of users, address, ... } ; The new module maintains its own capacity information: {The number of seats that can be accommodated, can accommodate Number of users}.
①新模块 B首先向 Scheduler发出注册请求消息 {可容纳的座席个数, 可 容纳的用户个数} ; 1 new module B first sends a registration request message to the Scheduler {the number of seats that can be accommodated, the number of users that can be accommodated};
② Scheduler为新模块 B确定身份(即新模块 B作为 RouteTask, 还是 Resulter, 还是备用模块) 、 分配 Veld, 然后向新模块 B返回 {身份, Veld } , 然后把座席数和用户数记入注册表,形成一条新的记录 {身份, Veld,座席数, 用户数, 模块 B的地址, ... }。 2 Scheduler determines the identity of the new module B (that is, the new module B as a RouteTask, or a Resulter, or a standby module), assigns Veld, and then returns {identity, Veld } to the new module B, and then counts the number of agents and the number of users into the registry. Form a new record {identity, Veld, number of agents, number of users, address of module B, ... }.
③新模块 B登录完成后进入工作状态。 Scheduler会周期性地向所有工作 状态的 RouteTask和 Resulter发心跳消息, 确定每个模块的存活状态。 3 new module B enters the working state after login. The Scheduler periodically sends heartbeat messages to RouteTask and Resulter in all working states to determine the survival status of each module.
在步骤②中, Scheduler确定 B的身份, 当 B充当 RouteTask或 Resulter 时, 需要为 B分配 Veld, 这样 B就只参与和该 Veld相关的路由处理; 如果 B充当备用模块, 则 Veld为 0。 In step 2, the Scheduler determines the identity of B. When B acts as a RouteTask or Resulter, it needs to allocate Veld to B, so B only participates in the routing processing related to the Veld; if B acts as a standby module, Veld is 0.
Scheduler是根据当前各 VC的规模和分布情况, 结合负载均衡策略(如 权重划分算法 ) , 来确定 B的身份和关联的 VC。 具体可釆用如下的权重划分算法: The Scheduler determines the identity of B and the associated VC based on the current size and distribution of each VC, combined with a load balancing policy (such as a weight partitioning algorithm). Specifically, the following weight division algorithm can be used:
首先每个 VC 设定一组容量参数 {座席数, 用户数 } ; 为每个 RouteTask/Resulter分别设定一组容量参数{座席数, 座席数阔值, 用户数, 用 户数阔值}。 First, each VC sets a set of capacity parameters {number of seats, number of users}; for each RouteTask/Resulter, a set of capacity parameters {number of seats, number of seats, number of users, number of users} is set.
其中, Resulter的容量参数中的座席数是指与其相关联的 RouteTask管辖 的席数之和, 用户数是指与其相关联的 RouteTask管辖的用户数之和。 The number of agents in the Resulter's capacity parameter refers to the sum of the number of seats governed by the RouteTask associated with it, and the number of users refers to the sum of the number of users governed by the RouteTask associated with it.
集合 X: 座席数或用户数达到阔值的集合; Collection X: A collection of seats or users that reach a threshold;
集合 Y是集合 X的补集; The set Y is a complement of the set X;
Scheduler据此把所有 VC划分成集合 N和集合 M: The Scheduler divides all VCs into sets N and sets M accordingly:
集合 N中的 VC都存在至少一个位于集合 X的 RouteTask/Resulter; 集合 M是集合 N的补集; The VCs in the set N have at least one RouteTask/Resulter located in the set X; the set M is a complement of the set N;
当新模块 B加入时, Scheduler首先检查集合 N为空集, 如果是则把新模 块 B作为备用模块; 否则从集合 N中任选一个 VC, 然后把新模块 B作为该 VC的 RouteTask/Resulter, 然后把超阔值 RouteTask/Resulter上的超出部分的 座席和用户迁移到新模块 B上。 When the new module B joins, the Scheduler first checks that the set N is an empty set, and if so, the new module B as a standby module; otherwise, selects a VC from the set N, and then uses the new module B as the VC's RouteTask/Resulter, Then move the excess agent and user on the extra-wide value RouteTask/Resulter to the new module B.
当用户手工调低容量阔值或 Balancer动态调低容量阔值时, Scheduler也 釆用上述方法,把超阔值 RouteTask/Resulter上的超出部分的座席和用户迁移 到适当的 RouteTask/Resulter或备用模块上。 When the user manually lowers the capacity threshold or the Balancer dynamically lowers the capacity threshold, the scheduler also uses the above method to migrate the excess agent and user on the extra-wide value RouteTask/Resulter to the appropriate RouteTask/Resulter or standby module. on.
当用户手工或 Balancer动态调高某模块 A的容量阔值时, Balancer选取 该 VC下容量最小的模块 C, 检查是否能够把 C模块的容量全部迁移到模块 A, 如果可以则进行迁移, 然后把模块 C置为空闲模块(备用模块) ; 否则 不做迁移动作。 When the user manually or Balanter dynamically increases the capacity threshold of a module A, the Balancer selects the module C with the smallest capacity under the VC to check whether the capacity of the C module can be completely migrated to the module A. If so, the migration is performed, and then Module C is set to an idle module (alternate module); otherwise no migration action is taken.
3. 资源动态调配阶段 3. Resource dynamic allocation stage
用户可以通过手工调整模块的容量阔值来实现资源的调配。 系统运行过 程中 Balancer 也会动态的调配资源, 使计算量合理的分散在各 RouteTask/Resulter。 Users can adjust the capacity of the module by hand to adjust the resource. The system has been running In the process, Balancer will also dynamically allocate resources to make the calculations reasonably distributed among the RouteTask/Resulter.
① Balancer设定一组全局资源动态调整参数 {调整周期, 最大备用模块 数, 期望备用模块数, 最小备用模块数} 1 Balancer sets a set of global resource dynamic adjustment parameters {adjustment period, maximum number of spare modules, number of expected spare modules, minimum number of spare modules}
② 当调整周期到时, Balancer检查当前备用模块的数量是否超过最大备 用模块数, 如果超过, 则选出一个 VC和一个备用模块, 调低该 VC下每个 RouteTask/Resulter 的 {座席数阔值, 用户数阔值 } , 然后把这些 RouteTask/Resulter上超出部分的座席和用户迁移到该备用模块上, 这样该备 用模块就成为 RouteTask或 Resulter; 然后再选出下一个 VC和下一个备用模 块进行容量迁移; 不断重复上述动作, 直到当前备用模块的数量达到期望备 用模块数为止。 2 When the adjustment period expires, Balancer checks whether the current number of spare modules exceeds the maximum number of spare modules. If it exceeds, select one VC and one standby module, and lower the number of seats for each RouteTask/Resulter under the VC. , the number of users is wide}, and then the agents and users on the excess of these RouteTask/Resulter are migrated to the standby module, so that the standby module becomes a RouteTask or Resulter; then the next VC and the next standby module are selected. Capacity migration; repeat the above actions until the current number of spare modules reaches the expected number of spare modules.
③ 当调整周期到时, Balancer检查当前备用模块的数量是否低于最小备 用模块数, 如果是, 则选出一个 VC, 调高该 VC下多个 RouteTask/Resulter 的 {座席数阔值, 用户数阔值 } , 然后选择该 VC 下容量最小的 RouteTask/Resulter , 然后 4巴该 RouteTask 上的全部容量迁移到其他 RouteTask/Resulter中, 这样该 RouteTask/Resulter就变成了备用模块; 然后再 选出下一个 VC进行容量迁移; 不断重复上述动作, 直到当前备用模块的数 量达到期望备用模块数为止。 3 When the adjustment period expires, Balancer checks whether the current number of spare modules is lower than the minimum number of spare modules. If yes, select a VC and increase the number of seats of multiple RouteTask/Resulters under the VC. Width }, then select the RouteTask/Resulter with the smallest capacity under the VC, and then transfer all the capacity on the RouteTask to other RouteTask/Resulter, so that the RouteTask/Resulter becomes the standby module; then select the next A VC performs capacity migration; the above actions are repeated until the current number of spare modules reaches the expected number of spare modules.
4. 容量替换阶段 4. Capacity replacement phase
如图 5所示, 系统运行过程中当某个 RouteTask崩溃时, Scheduler心跳 消息检查感知到该模块已崩溃。 因 Balancer与 Scheduler位于同一节点, 同样 可获知该模块的崩溃情况。 Balancer根据注册表中崩溃 RouteTask的容量,从 备用模块中选择一个或多个模块,分配给对应的 VC,这样这些备用模块被提 升为 RouteTask ,原崩溃 RouteTask上的座席重新登录时, Scheduler把他们分 配到刚提升的 RouteTask上。 As shown in Figure 5, when a RouteTask crashes during system operation, the Scheduler heartbeat message check detects that the module has crashed. Since the Balancer is on the same node as the Scheduler, the module's crash is also known. According to the capacity of the crashed RouteTask in the registry, Balancer selects one or more modules from the standby module and assigns them to the corresponding VCs, so that these standby modules are promoted to RouteTask. When the agents on the original crashed RouteTask log in again, the Scheduler assigns them. On the newly upgraded RouteTask.
Resulter崩溃时釆用和 RouteTask崩溃类似的处理方式, 只是不存在座席 重新登录的问题。 5. 座席签入阶段 When the Resulter crashes, it uses a similar processing method as the RouteTask crash, except that there is no problem of the agent re-login. 5. Agent check-in stage
①如图 6所示, 座席签入到 CTI, CTI通知 Scheduler座席签入, 签入参 数为 { VcId,AgtId (座席号) } ; 1 As shown in Figure 6, the agent checks in to the CTI, and the CTI notifies the Scheduler agent to check in. The check-in parameters are { VcId, AgtId (agent number) };
② Scheduler根据 Veld从注册表中找出绑定到该 VC的所有 RouteTask。 如果找到了, 则从结果集中找出 (当前座席数 /座席数阔值) 值最小的 RouteTask, 不妨以 RouteTaskX代替; 2 Scheduler finds all RouteTasks bound to the VC from the registry according to Veld. If found, find the RouteTask with the lowest value of the current seat/number of seats from the result set, and replace it with RouteTaskX.
③如果 RouteTaskX的"当前座席数"小于"座席数阔值",则向 RouteTaskX 发座席签入请求 {Agtld,... } , 这样就完成了座席的签入, 流程结束。 3 If the "current seat number" of RouteTaskX is less than the "number of seats", then the agent is checked in to the RouteTaskX {Agtld,... }, thus completing the check-in of the agent and the process ends.
在步骤②, 如果没找到绑定到该 VC的 RouteTask, 则从备用模块池中选 择一个模块提升为 RouteTask, 该 RouteTask作为 RouteTaskX专门为该 VC 服务; In step 2, if the RouteTask bound to the VC is not found, a module is selected from the pool of spare modules to be promoted to RouteTask, and the RouteTask is specifically served as the RouteTaskX for the VC;
在步骤③如果 RouteTaskX的"当前座席数,,大于等于"座席数阔值", 则从 备用模块池中选择一个模块提升为 RouteTask,该 RouteTask作为 RouteTaskX 专门为该 VC服务; In step 3, if the number of current seats of RouteTaskX is greater than or equal to the number of seats, the module selected from the pool of spare modules is promoted to RouteTask, which serves as the RouteTaskX for the VC;
6. 路由阶段 6. Routing phase
①如图 7所示, 用户拨接入码进入 IVVR, 然后选择转人工服务, 此时 IVVR向 Scheduler发排队请求 {VcId,DlgId (会话号),会话参数 ,... } ; 1 As shown in Figure 7, the user dials the access code to enter the IVVR, and then selects to switch to the manual service. At this time, the IVVR sends a queuing request to the Scheduler {VcId, Dl g Id (session number), session parameters, ... };
② Scheduler 根据 Veld 从注册表中找出绑定到该 VC 的所有 2 Scheduler finds all bound to the VC from the registry based on Veld
RouteTask/Resulter ( 叚设该集合名叫 Set ) 。 RouteTask/Resulter (Set the collection name to Set ).
③ Scheduler根据负载均衡算法从 Resulter中选出一个 Resulter供本次路 由使用 ( 4叚设该 Resulter名叫 ResulterX ) 3 Scheduler selects a Resulter from the Resulter according to the load balancing algorithm for the current route (4) The Resulter name is ResulterX.
④ Scheduler把排队请求 {ResulterX 的地址, Dlgld, 会话参数, ... }发给 集合 Set中每个 RouteTask; 4 Scheduler sends the queue request {ResulterX address, Dlgld, session parameter, ... } to each RouteTask in the set Set;
⑤每个 RouteTask上根据排队请求, 在其管辖的座席中, 根据各种路由 策略,寻找逻辑上最优的座席(即局部最优座席),如果找到, 则向 ResulterX 返回 Agtld, 否则返回 0; 5 On each RouteTask, according to the queuing request, in the agent under its jurisdiction, according to various routing strategies, find the logically optimal agent (ie, the local optimal agent), and if found, to ResulterX Return to Agtld, otherwise return 0;
⑥ ResulterX收齐集合 Set上所有 RouteTask返回的路由结果时, 根据各 种路由策略(和集合 Set上每个 RouteTask釆用的路由策略相同), 从中选出 逻辑上最优的座席 (即全局最优座席 ) 。 然后 ResulterX把该向 Scheduler返 回排队结果 {座席电话, ... } ; 6 ResulterX collects the routing results returned by all RouteTasks on the Set, according to various routing strategies (same as the routing policy used by each RouteTask on the Set Set), and selects the logically optimal agent (ie, the global optimal) Agent). Then ResulterX returns the queued result to the Scheduler {agent call, ... } ;
⑦ Scheduler把排队结果 {座席电话, ... }返回给 IVVR, 然后 IVVR建立 用户和该座席的通话。 流程结束。 7 The Scheduler returns the queuing result {agent call, ... } to the IVVR, and then the IVVR establishes a call between the user and the agent. The process ends.
在步骤⑥中, 如果 ResulterX最终未能为用户找到合适的呼叫, 则流程进 入 "用户入队阶段" , 这将在后面介绍。 In step 6, if ResulterX eventually fails to find a suitable call for the user, the process proceeds to the "user enqueue phase", which will be described later.
5. 用户入队阶段 5. User enrollment stage
①如图 8 所示, 当路由失败时, Resulter 向 Scheduler请求用户入队 {VcId,DlgId,会话参数.. } ; 1 As shown in Figure 8, when the route fails, the Resulter requests the user to enter the queue {VcId, Dl g Id, session parameters.. };
② Scheduler根据 Veld从注册表中找出绑定到该 VC的所有 RouteTask, 然后从结果集中找出 (当前用户数 /用户数阔值)值最小的 RouteTask, 不妨 以 RouteTaskX代替; 2 Scheduler finds all RouteTasks bound to the VC from the registry according to Veld, and then finds the RouteTask with the smallest value of the current user/user threshold from the result set, which may be replaced by RouteTaskX;
③如果 RouteTaskX的"当前用户数"小于"用户数阔值",则向 RouteTaskX 发用户入队请求 {VcId,DlgId,会话参数..} , 这样就完成了用户的入队, 流程结 束。 3 If the "current user number" of RouteTaskX is less than the "user number threshold", then the user enqueue request {VcId, Dl g Id, session parameter..} is sent to RouteTaskX, thus completing the user's enqueue and the process ends.
在步骤②, 如果没找到绑定到该 VC的 RouteTask, 则从备用模块池中选 择一个模块提升为 RouteTask, 该 RouteTask作为 RouteTaskX专门为该 VC 服务; In step 2, if the RouteTask bound to the VC is not found, a module is selected from the pool of spare modules to be promoted to RouteTask, and the RouteTask is specifically served as the RouteTaskX for the VC;
在步骤③如果 RouteTaskX的"当前用户数,,大于等于"用户数阔值", 则从 备用模块池中选择一个模块提升为 RouteTask,该 RouteTask作为 RouteTaskX 专门为该 VC服务; In step 3, if the number of current users of RouteTaskX is greater than or equal to the number of users, the module selected from the pool of spare modules is promoted to RouteTask, which serves as the RouteTaskX for the VC;
6. 排队阶段 ①如图 9所示, 座席空闲并且做好接听准备时, 向 CTI请求示闲。 CTI 向 Scheduler发座席示闲请求 { VcId,AgtId,会话参数 ... }; 6. Queue phase 1 As shown in Figure 9, when the agent is idle and ready to answer, the CTI is requested to show up. CTI sends an idle request to the Scheduler { VcId, AgtId, session parameters... };
② Scheduler 根据 Veld 从注册表中找出绑定到该 VC 的所有 RouteTask/Resulter ( 叚设该集合名叫 Set ) 。 2 Scheduler finds all RouteTask/Resulter bound to the VC from the registry according to Veld (set the set name to Set).
③ Scheduler根据负载均衡算法从 Resulter中选出一个 Resulter供本次排 队使用 (假设该 Resulter名叫 ResulterX ) 3 Scheduler selects a Resulter from Resulter according to the load balancing algorithm for use in this queue (assuming the Resulter name is ResulterX )
④ Scheduler把示闲请求 { Agtld, 会话参数, ... }发给集合 Set 中每个 RouteTask; 4 Scheduler sends the idle request {Agtld, session parameter, ... } to each RouteTask in the set Set;
⑤每个 RouteTask上根据示闲请求, 在其管辖的等待服务的用户中, 根 据各种排队策略, 寻找逻辑上最优的用户 (即局部最优用户) 。 如果找到, 则向 ResulterX返回排队结果 { 用户 Dlgld} , 否则返回 0; 5 On each RouteTask, according to the idle request, among the users waiting for service under its jurisdiction, according to various queuing strategies, the logically optimal users (ie, local optimal users) are sought. If found, returns the queued result {user Dlgld} to ResulterX, otherwise returns 0;
⑥ ResulterX收齐集合 Set上所有 RouteTask返回的排队结果时, 根据各 种排队策略(和集合 Set上每个 RouteTask釆用的排队策略相同 ) , 从中选出 逻辑上最优的用户 (即全局最优用户) 。 然后 ResulterX把该向 Scheduler返 回排队结果 {座席电话, 用户 Dlgld, ... } ; 6 ResulterX collects the queuing results returned by all RouteTasks on the Set Set, according to various queuing strategies (same as the queuing strategy used by each RouteTask on the Set Set), from which the logically optimal users are selected (ie, global optimal) User). Then ResulterX returns the queued result to the Scheduler {agent call, user Dlgld, ... } ;
⑦ Scheduler把排队结果 {座席电话, 用户 Dlgld, ... }返回给 IVVR, 然后 IVVR建立用户和该座席的通话。 流程结束。 7 The Scheduler returns the queuing result {agent call, user Dlgld, ... } to the IVVR, and then the IVVR establishes a call between the user and the agent. The process ends.
在步骤⑥中, 如果 ResulterX最终未能为座席找到合适的用户, 则流程进 入 "座席入队阶段" , 这将在后面介绍。 In step 6, if ResulterX eventually fails to find the right user for the agent, the process proceeds to the "agent enqueue phase", which will be described later.
7. 座席入队阶段 7. Agent enrollment stage
①如图 10 所示, 当排队失败时, Resulter 向 Scheduler请求座席入队 { VcId,AgtId,会话参数, 一} ; 1 As shown in Figure 10, when the queuing fails, the Resulter requests the agent to enqueue the agent {VcId, AgtId, session parameters, one};
② Scheduler根据 Veld从注册表中找出绑定到该 VC的所有 RouteTask, 然后从结果集中找出 (当前座席数 /座席数阔值)值最小的 RouteTask, 不妨 以 RouteTaskX代替; 2 Scheduler finds all RouteTasks bound to the VC from the registry according to Veld, and then finds the RouteTask with the smallest value of the current number of seats/number of seats from the result set, which may be replaced by RouteTaskX;
③如果 RouteTaskX的"当前座席数"小于"座席数阔值",则向 RouteTaskX 发座席入队请求{ Agtld,会话参数, ... } , 这样就完成了座席的入队, 流程结 束。 3 If the "current seat number" of RouteTaskX is less than the "number of seats", then the agent enters the queue request to the RouteTaskX {Agtld, session parameter, ... }, thus completing the enqueue of the agent, the process is completed. Bunch.
在步骤②, 如果没找到绑定到该 VC的 RouteTask, 则从备用模块池中选 择一个模块提升为 RouteTask, 该 RouteTask作为 RouteTaskX专门为该 VC 服务; In step 2, if the RouteTask bound to the VC is not found, a module is selected from the pool of spare modules to be promoted to RouteTask, and the RouteTask is specifically served as the RouteTaskX for the VC;
在步骤③如果 RouteTaskX的"当前座席数,,大于等于"座席数阔值", 则从 备用模块池中选择一个模块提升为 RouteTask,该 RouteTask作为 RouteTaskX 专门为该 VC服务; In step 3, if the number of current seats of RouteTaskX is greater than or equal to the number of seats, the module selected from the pool of spare modules is promoted to RouteTask, which serves as the RouteTaskX for the VC;
如前所述, 本发明的实施方式有多种可变形式, 比如图 11所示, 为本发 明实施方式的可变形式之一, 把 RouteTask 进一步分成 RouteTask 和 QueueTask (队列子任务处理模块) , 其中 RouteTask专门负责座席队列管理 和为用户寻找逻辑最优的座席; QueuTask专门负责用户队列管理和为座席寻 找逻辑最优的呼叫。 As described above, the embodiment of the present invention has various variable forms, such as shown in FIG. 11, which is one of the variable forms of the embodiment of the present invention, and further divides the RouteTask into a RouteTask and a QueueTask (queue subtask processing module). RouteTask is responsible for agent queue management and finding logically optimal seats for users; QueuTask is responsible for user queue management and finding logically optimal calls for agents.
另外,也可以把 Resulter和 Scheduler合设。这样 Scheduler即负责调度又 负责结果规约。 Alternatively, you can combine Resulter and Scheduler. In this way, the Scheduler is responsible for scheduling and is responsible for the result specification.
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序 来指令相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读 存储器、 磁盘或光盘等。 可选地, 上述实施例的全部或部分步骤也可以使用 一个或多个集成电路来实现, 相应地, 上述实施例中的各模块 /单元可以釆用 硬件的形式实现, 也可以釆用软件功能模块的形式实现。 本发明不限制于任 何特定形式的硬件和软件的结合。 One of ordinary skill in the art will appreciate that all or a portion of the above steps may be accomplished by a program instructing the associated hardware, such as a read-only memory, a magnetic disk, or an optical disk. Optionally, all or part of the steps of the foregoing embodiments may also be implemented by using one or more integrated circuits. Accordingly, each module/unit in the foregoing embodiment may be implemented in the form of hardware, or may use software functions. The form of the module is implemented. The invention is not limited to any specific form of combination of hardware and software.
以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。 The above description is only the preferred embodiment of the present invention, and is not intended to limit the present invention, and various modifications and changes can be made to the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and scope of the present invention are intended to be included within the scope of the present invention.
工业实用性 Industrial applicability
通过本发明的上述实施方式可以解决建设大规模呼叫中心时面临性能瓶 颈的问题, 并且, 在大规模呼叫中心中通过资源的动态调配实现冗余资源的 充分利用; 通过分布式动态资源管理, 保证当某一路由子任务处理模块崩溃 时, 只影响和该路由子任务处理模块相关的部分业务, 避免业务的全面中断, 进而提高大规模呼叫中心的可用性和稳定性, 降低呼叫中心的建设成本。 Through the above embodiments of the present invention, it is possible to solve the performance bottle when constructing a large-scale call center The problem of the neck, and the full utilization of redundant resources through the dynamic allocation of resources in a large-scale call center; through distributed dynamic resource management, to ensure that when a routing sub-task processing module crashes, only affect the routing sub- Part of the service related to the task processing module avoids the overall interruption of the service, thereby improving the availability and stability of the large-scale call center and reducing the construction cost of the call center.
Claims
1、 一种呼叫中心的实现方法, 其特征在于, 所述呼叫中心釆用一个以上 分布式的路由子任务处理模块; 所述方法包括: A method for implementing a call center, wherein the call center uses one or more distributed routing subtask processing modules; the method includes:
当呼叫中心的主控模块接收到用户经交互式语音及视频自动应答模块 ( IVVR )发送的排队请求时, 将所述排队请求发送给全部或部分路由子任务 处理模块; When the main control module of the call center receives the queuing request sent by the user via the interactive voice and video automatic answering module (IVVR), the queuing request is sent to all or part of the routing subtask processing module;
接收到所述排队请求的路由子任务处理模块从自身管辖的空闲座席中查 找局部最优座席并告知所述主控模块; The routing subtask processing module that receives the queuing request finds a local optimal agent from the idle agent under its jurisdiction and informs the main control module;
所述主控模块从获知的所有局部最优座席中查找全局最优座席, 当查找 成功时, 通知所述 IVVR建立所述用户与所述全局最优座席的通话。 The master control module searches for the global optimal agent from all the local optimal agents that are known. When the search succeeds, the IVVR is notified to establish a call between the user and the global optimal agent.
2、 如权利要求 1所述的方法, 其中, 2. The method of claim 1 wherein
所述排队请求为呼入虚拟呼叫中心 (VC )并转接人工服务的请求; 在主控模块将所述排队请求发送给全部或部分路由子任务处理模块的步 骤中, 所述主控模块将所述排队请求发送给与所述 VC相关联的所有路由子 任务处理模块。 The queuing request is a request for calling in a virtual call center (VC) and transferring a manual service; in a step of the main control module transmitting the queuing request to all or part of the routing subtask processing module, the main control module The queuing request is sent to all routing subtask processing modules associated with the VC.
3、 如权利要求 2所述的方法, 其中, 3. The method of claim 2, wherein
在所述主控模块从获知的所有局部最优座席中查找全局最优座席的步骤 中, In the step of the main control module searching for the global optimal agent from all the local optimal agents learned,
当查找成功时, 所述主控模块还通知相关路由子任务处理模块所述全局 最优座席已选定; When the search is successful, the main control module further notifies the related routing subtask processing module that the global optimal agent has been selected;
当查找失败时, 所述主控模块将所述用户作为等待服务的用户, 选择与 所述 VC相关联的一个路由子任务处理模块管辖所述用户, 或者, 选择一个 备用模块作为与所述 VC相关联的路由子任务处理模块, 管辖所述用户。 When the search fails, the main control module selects the user as a user waiting for service, selects a routing subtask processing module associated with the VC to administer the user, or selects a standby module as the VC. An associated routing subtask processing module that governs the user.
4、 如权利要求 1所述的方法, 所述方法还包括: 4. The method of claim 1, the method further comprising:
当主控模块接收到座席经座席模块和计算机电话集成技术模块( CTI )发 送的示闲请求时, 将所述示闲请求发送给全部或部分路由子任务处理模块; 接收到所述示闲请求的路由子任务处理模块从自身管辖的等待服务的用 户中查找局部最优用户并告知主控模块; When the main control module receives the idle request sent by the agent through the agent module and the computer telephony integration technology module (CTI), the idle request is sent to all or part of the routing subtask processing module; and the idle request is received. Routing subtask processing module from its own jurisdiction waiting for service Find the local optimal user in the household and inform the main control module;
所述主控模块从获知的所有局部最优用户中查找全局最优用户, 当查找 成功时, 通知所述 IVVR建立所述座席与所述全局最优用户的通话。 The master control module searches for the global optimal user from all the local optimal users, and when the search succeeds, notifies the IVVR to establish a call between the agent and the global optimal user.
5、 如权利要求 4所述的方法, 其中, 5. The method of claim 4, wherein
在主控模块将所述座席发送的示闲请求发送给全部或部分路由子任务处 理模块的步骤中, In the step of the main control module sending the idle request sent by the agent to all or part of the routing subtask processing module,
所述主控模块将所述示闲请求发送给与所述座席对应的 VC相关联的所 有路由子任务处理模块。 The main control module sends the idle request to all routing subtask processing modules associated with the VC corresponding to the agent.
6、 如权利要求 5所述的方法, 其中, 6. The method of claim 5, wherein
在所述主控模块从获知的所有局部最优用户中查找全局最优用户的步骤 中, In the step of the master control module searching for a global optimal user from all known local optimal users,
当查找成功时, 所述主控模块还通知相关路由子任务处理模块所述全局 最优用户已选定; When the search is successful, the main control module further notifies the relevant routing subtask processing module that the global optimal user has been selected;
当查找失败时, 所述主控模块将所述座席作为空闲座席, 选择与所述座 席对应的 VC相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择 一个备用模块作为与所述座席对应的 VC相关联的路由子任务处理模块, 管 辖所述座席。 When the search fails, the main control module uses the agent as a free agent, selects a routing subtask processing module associated with the VC corresponding to the agent to govern the agent, or selects a spare module as the idle The routing subtask processing module associated with the VC corresponding to the agent controls the agent.
7、 如权利要求 6所述的方法, 所述方法还包括: 7. The method of claim 6, the method further comprising:
当主控模块接收到座席经座席模块和 CTI发送的签入请求时, 所述主控 模块将发送所述签入请求的座席作为空闲座席, 选择与所述座席对应的 VC 相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块 When the main control module receives the check-in request sent by the agent and the CTI, the main control module selects the agent that sends the check-in request as a free agent, and selects a route associated with the VC corresponding to the agent. The subtask processing module governs the agent, or selects an alternate module
8、 如权利要求 1 ~ 7中任意一项所述的方法, 所述方法还包括: 当所述主控模块获知有路由子任务处理模块崩溃时, 则根据崩溃的路由 子任务处理模块的容量, 从备用模块中选择一个或多个作为路由子任务处理 模块, 代替崩溃的路由子任务处理模块。 The method according to any one of claims 1 to 7, the method further comprising: when the main control module learns that the routing subtask processing module is crashing, processing the capacity of the module according to the broken routing subtask Select one or more of the standby modules as the routing subtask processing module instead of the crashed routing subtask processing module.
9、 一种呼叫中心, 包括计算机电话集成技术模块(CTI ) 、 交互式语音 及视频自动应答模块(IVVR )和座席模块, 还包括并行分布式路由系统, 所 述并行分布式路由系统包括主控模块和一个以上分布式的路由子任务处理模 块, 其中, 9. A call center, including computer telephony integration technology module (CTI), interactive voice And a video automatic answering module (IVVR) and an agent module, further comprising a parallel distributed routing system, the parallel distributed routing system comprising a main control module and one or more distributed routing subtask processing modules, wherein
所述主控模块设置为: 当接收到用户经所述 IVVR发送的排队请求时, 将所述排队请求发送给全部或部分路由子任务处理模块; 以及, 从一个以上 的路由子任务处理模块获知局部最优座席后, 从获知的所有局部最优座席中 查找全局最优座席, 当查找成功时, 通知所述 IVVR建立所述用户与所述全 局最优座席的通话; The main control module is configured to: when receiving a queuing request sent by the user via the IVVR, send the queuing request to all or part of the routing subtask processing module; and learn from more than one routing subtask processing module After the local optimal agent, the global optimal agent is searched from all the local optimal agents, and when the search is successful, the IVVR is notified to establish a call between the user and the global optimal agent.
所述路由子任务处理模块设置为: 接收到所述排队请求后, 从自身管辖 的空闲座席中查找局部最优座席并告知所述主控模块。 The routing subtask processing module is configured to: after receiving the queuing request, find a local optimal agent from the idle agent under its jurisdiction and notify the main control module.
10、 如权利要求 9所述的呼叫中心, 其中, 10. The call center according to claim 9, wherein
所述排队请求为呼入虚拟呼叫中心 (VC )并转接人工服务的请求; 所述主控模块是设置为以如下方式将所述排队请求发送给全部或部分路 由子任务处理模块: 将所述排队请求发送给与所述 VC相关联的所有路由子 任务处理模块。 The queuing request is a request for invoking a virtual call center (VC) and transferring a manual service; the main control module is configured to send the queuing request to all or part of a routing subtask processing module in the following manner: The queuing request is sent to all routing subtask processing modules associated with the VC.
11、如权利要求 10所述的呼叫中心, 所述呼叫中心还包括一个以上的备 用模块; 11. The call center of claim 10, said call center further comprising one or more spare modules;
所述主控模块还设置为: 从所有局部最优座席中查找全局最优座席时, 当查找成功时, 还取消相关路由子任务处理模块管辖所述全局最优座席; 当 查找失败时, 将所述用户作为等待服务的用户, 选择与所述 VC相关联的一 个路由子任务处理模块管辖所述用户, 或者, 选择一个备用模块作为与所述 VC相关联的路由子任务处理模块, 管辖所述用户。 The main control module is further configured to: when searching for the global optimal agent from all the local optimal agents, when the search is successful, cancel the related routing subtask processing module to govern the global optimal agent; when the search fails, The user, as a user waiting for service, selects a routing subtask processing module associated with the VC to administer the user, or selects a standby module as a routing subtask processing module associated with the VC, User.
12、 如权利要求 9所述的呼叫中心, 其中, 12. The call center according to claim 9, wherein
所述主控模块还设置为: 当接收到座席经座席模块和 CTI发送的示闲请 求时, 将所述示闲请求发送给全部或部分路由子任务处理模块; 以及, 从一 个以上的路由子任务处理模块获知局部最优用户后, 从获知的所有局部最优 用户中查找全局最优用户, 当查找成功时, 通知 IVVR建立所述座席与所述 全局最优用户的通话; 所述路由子任务处理模块还设置为: 接收到所述示闲请求后, 从自身管 辖的等待服务的用户中查找局部最优用户并告知主控模块。 The main control module is further configured to: when receiving the idle request sent by the agent and the CTI, send the idle request to all or part of the routing subtask processing module; and, from more than one routing sub After the task processing module learns the local optimal user, the global optimal user is searched from all the local optimal users, and when the search succeeds, the IVVR is notified to establish a call between the agent and the global optimal user. The routing subtask processing module is further configured to: after receiving the idle request, search for a local optimal user from the user waiting for the service under its jurisdiction and notify the main control module.
13、 如权利要求 12所述的呼叫中心, 其中, 13. The call center according to claim 12, wherein
所述主控模块是设置为以如下方式将所述示闲请求发送给全部或部分路 由子任务处理模块: 将所述示闲请求发送给与所述座席对应的 VC相关联的 所有路由子任务处理模块。 The main control module is configured to send the idle request to all or part of the routing subtask processing module in the following manner: sending the idle request to all routing subtasks associated with the VC corresponding to the agent Processing module.
14、如权利要求 13所述的呼叫中心, 所述呼叫中心还包括一个以上的备 用模块; 14. The call center of claim 13 wherein said call center further comprises one or more spare modules;
所述主控模块还设置为: 从所有局部最优用户中查找全局最优用户时, 当查找成功时, 还取消相关路由子任务处理模块管辖所述全局最优用户; 当 查找失败时, 将所述座席作为空闲座席, 选择与所述座席对应的 VC相关联 的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块作为与 所述座席对应的 VC相关联的路由子任务处理模块, 管辖所述座席。 The main control module is further configured to: when searching for a global optimal user from all local optimal users, when the search is successful, cancel the related routing subtask processing module to govern the global optimal user; when the search fails, The agent acts as a free agent, and selects a routing subtask processing module associated with the VC corresponding to the agent to manage the agent, or selects a standby module as a routing subtask processing associated with the VC corresponding to the agent. Module, governing the agent.
15、 如权利要求 14所述的呼叫中心, 其中, 15. The call center according to claim 14, wherein
所述主控模块还设置为, 当接收到座席经座席模块和 CTI发送的签入请 求时,将发送所述签入请求的座席作为空闲座席,选择与所述座席对应的 VC 相关联的一个路由子任务处理模块管辖所述座席, 或者, 选择一个备用模块 The main control module is further configured to: when receiving the check-in request sent by the agent and the CTI, the agent that sends the check-in request is used as a free agent, and select one associated with the VC corresponding to the agent. The routing subtask processing module governs the agent, or selects an alternate module
16、 如权利要求 9 ~ 15所述的呼叫中心, 其中, 16. The call center according to any one of claims 9 to 15, wherein
所述主控模块还设置为: 通过向所有的路由子任务处理模块发送心跳消 息, 确定路由子任务处理模块的存活状态; 当通过心跳消息获知有路由子任 务处理模块崩溃时, 则根据崩溃的路由子任务处理模块的容量, 从备用模块 中选择一个或多个作为路由子任务处理模块, 代替崩溃的路由子任务处理模 块。 The main control module is further configured to: determine a survival state of the routing subtask processing module by sending a heartbeat message to all routing subtask processing modules; and when the routing subtask processing module crashes through the heartbeat message, according to the crash The capacity of the routing subtask processing module is selected from the standby module as one of the routing subtask processing modules instead of the corrupted routing subtask processing module.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110008509.7 | 2011-01-14 | ||
CN201110008509.7A CN102595003B (en) | 2011-01-14 | 2011-01-14 | Calling center and realization method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012094873A1 true WO2012094873A1 (en) | 2012-07-19 |
Family
ID=46483189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2011/076150 WO2012094873A1 (en) | 2011-01-14 | 2011-06-22 | Call center and implementing method thereof |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102595003B (en) |
WO (1) | WO2012094873A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140079207A1 (en) * | 2012-09-12 | 2014-03-20 | Genesys Telecommunications Laboratories, Inc. | System and method for providing dynamic elasticity of contact center resources |
CN110278334A (en) * | 2018-03-14 | 2019-09-24 | 北京京东尚科信息技术有限公司 | Assign the method and apparatus of call request |
CN115065757A (en) * | 2022-06-07 | 2022-09-16 | 中国电信股份有限公司 | Telephone traffic processing method, system, device, electronic equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7321657B2 (en) * | 2003-12-19 | 2008-01-22 | At&T Delaware Intellectual Property, Inc. | Dynamic force management system |
CN101197881A (en) * | 2006-12-05 | 2008-06-11 | 中兴通讯股份有限公司 | Wide area central control call centre system |
CN101924841A (en) * | 2010-08-13 | 2010-12-22 | 厦门雅迅网络股份有限公司 | Building and control method of call center and data center distributed structure |
CN101924842A (en) * | 2009-06-10 | 2010-12-22 | 中兴通讯股份有限公司 | Computer telecommunication integration equipment and resource managing and incoming call controlling method |
-
2011
- 2011-01-14 CN CN201110008509.7A patent/CN102595003B/en active Active
- 2011-06-22 WO PCT/CN2011/076150 patent/WO2012094873A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7321657B2 (en) * | 2003-12-19 | 2008-01-22 | At&T Delaware Intellectual Property, Inc. | Dynamic force management system |
CN101197881A (en) * | 2006-12-05 | 2008-06-11 | 中兴通讯股份有限公司 | Wide area central control call centre system |
CN101924842A (en) * | 2009-06-10 | 2010-12-22 | 中兴通讯股份有限公司 | Computer telecommunication integration equipment and resource managing and incoming call controlling method |
CN101924841A (en) * | 2010-08-13 | 2010-12-22 | 厦门雅迅网络股份有限公司 | Building and control method of call center and data center distributed structure |
Also Published As
Publication number | Publication date |
---|---|
CN102595003B (en) | 2015-03-25 |
CN102595003A (en) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113364850B (en) | 2023-02-14 | Software-defined cloud-edge collaborative network energy consumption optimization method and system |
RU2641477C1 (en) | 2018-01-17 | Method and device for configuration of providing solution in cloud protection computing architecture |
CN103583063B (en) | 2017-03-01 | System and method for the fault recovery of geographic redundancy gateway |
RU2507703C2 (en) | 2014-02-20 | Resource pooling in electronic board cluster switching centre server |
US8010607B2 (en) | 2011-08-30 | Management of queues in contact centres |
US8731181B2 (en) | 2014-05-20 | Computer telephony integration device and resource management method and incoming call control method |
CN103067291B (en) | 2016-08-17 | A kind of method and apparatus of up-down link correlation |
CN109196828A (en) | 2019-01-11 | A kind of method for managing resource and device of network slice |
US20180199239A1 (en) | 2018-07-12 | Management of resource allocation in a mobile telecommunication network |
US8023637B2 (en) | 2011-09-20 | Method and system for hierarchy based contact routing |
JPWO2016121973A1 (en) | 2017-11-09 | Node system, server device, scale ring control method and program |
JPH07282013A (en) | 1995-10-27 | Distributed processing system |
JP2003229965A (en) | 2003-08-15 | Computer-telephony integration using feature of automatic call distribution system |
US9451089B2 (en) | 2016-09-20 | Calling center system and calling processing method thereof |
CN102137197B (en) | 2014-04-09 | Seat and working method thereof |
CN103516759B (en) | 2018-11-09 | Cloud system method for managing resource, cloud call center are attended a banquet management method and cloud system |
WO2012083669A1 (en) | 2012-06-28 | Method and apparatus for switching between primary-standby devices based on access gateway |
WO2012094873A1 (en) | 2012-07-19 | Call center and implementing method thereof |
US20240345874A1 (en) | 2024-10-17 | Computing native network and related devices |
CN102143000B (en) | 2015-06-03 | Method for controlling data recovery, node, control device and disaster-recovery system |
CN111200518B (en) | 2022-10-18 | Decentralized HPC computing cluster management method and system based on paxos algorithm |
WO2010127625A2 (en) | 2010-11-11 | Seats processing method, exchange and call center |
CN104049916B (en) | 2017-08-04 | A self-organizing distributed storage system and method based on node role switching mechanism |
US7519626B2 (en) | 2009-04-14 | Management of contacts in a network of contact centers |
JPH04234240A (en) | 1992-08-21 | Method and apparatus for auditing communication session |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
2012-09-05 | 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11855874 Country of ref document: EP Kind code of ref document: A1 |
2013-07-15 | NENP | Non-entry into the national phase |
Ref country code: DE |
2014-02-05 | 122 | Ep: pct application non-entry in european phase |
Ref document number: 11855874 Country of ref document: EP Kind code of ref document: A1 |