# Patent

## Title
Dynamic load balancing between multiple locations with different telephony system

## Abstract

An allocation component allocates its received calls among a plurality of telephony systems including a first telephony system and a second telephony system. A first routing protocol (RP) component distributes those of the calls allocated to the first telephony system among a first plurality of call center sites. A second RP component distributes those of the calls allocated to the second telephony system among a second plurality of call center sites. A load-balancing Interactive Voice Response (IVR) system dynamically distributes its received calls between the plurality of telephony systems based on agent availability data associated with the first and second plurality of call center sites and the second plurality of call center sites. A primary IVR receives a plurality of calls and routes a first percentage thereof to the allocation component and a second percentage thereof to the load-balancing IVR system.

## Background
FIELD OF THE DISCLOSURE
The present disclosure relates to systems for distributing calls to call centers.
BACKGROUND
Multiple vendors provide telephone system equipment for distributing calls to different call centers in different locations. Each vendor's telephony system typically uses one of the common standards for its equipment to manage traffic across the various call centers.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is pointed out with particularity in the appended claims. However, other features are described in the following detailed description in conjunction with the accompanying drawings in which:
FIG. 1 is a schematic diagram of a first embodiment of a pre-ICM load balancing system; and
FIG. 2 is a schematic diagram of a second embodiment of a pre-ICM load balancing system which comprises a load-balancing IVR.



DETAILED DESCRIPTION OF THE DRAWINGS
In some cases, two or more different telephony systems (e.g. from two or more different vendors) may receive the same call types from a single Interactive Voice Response (IVR) or Voice Response Unit (VRU). The allocation of calls between the two or more different telephony systems needs to be varied due to staffing issues at the multiple call centers and the unpredictable nature of call traffic.
Embodiments of the present invention use a secondary Interactive Voice Response (IVR) application to facilitate dynamic load balancing between two or more call centers that use different systems to manage their own traffic. Traffic is balanced prior to committing a call to a particular vendor's traffic management component, such as an Intelligent Call Management (ICM) component or another vendor's component, to provide a pre-ICM load-balancing approach. The application corrects service level shifts and provides real-time alerts and statistics to one or more businesses associated with the call centers.
FIG. 1 is a schematic diagram of a first embodiment of a pre-ICM load balancing system that is absent the aforementioned IVR application. This embodiment is described to contrast with FIG. 2, which shows a particular preferred embodiment that includes the secondary IVR application.
A primary IVR 10 receives calls that are processed by routing logic 12. The routing logic 12 includes an allocation component 14 to allocate a first percentage of the calls for a first telephony system 16 and a second percentage of the calls for a second telephony system 20. In the case of the two telephony systems 16 and 20, the sum of the first percentage and the second percentage is 100%. Those having ordinary skill will appreciate that the routing logic 12 may support more than two telephony systems in general.
The first telephony system 16 and the second telephony system 20 may be different types of telephony systems provided by different vendors. Examples of the different vendors include, but are not limited to, CISCO Systems, Inc. and GENESYS.
The routing logic 12 comprises a first routing protocol (RP) component 22 to route each of the calls allocated to the first telephony system 16 to a corresponding one of multiple call centers 24 and 26. The call centers 24 and 26 typically are disposed at different geographical locations. Agents at the call centers 24 and 26 receive the calls and service the calling parties. A first traffic management component 30 is in communication with the call centers 24 and 26 via peripheral gateway lines 32 and 34, respectively. The first traffic management component 30 determines call center information such as agent availability and service levels at the call centers 24 and 26. The first RP component 22 is responsive to the call center information from the first traffic management component 30 to vary how subsequent calls are to be allocated between the call centers 24 and 26
The routing logic 12 further comprises a second routing protocol (RP) component 42 to route each of the calls allocated to the second telephony system 20 to a corresponding one of multiple call centers 44 and 46. The call centers 44 and 46 typically are disposed at different geographical locations. Agents at the call centers 44 and 46 receive the calls and service the calling parties. A second traffic management component 50 is in communication with the call centers 44 and 46 via peripheral gateway lines 52 and 54, respectively. The second traffic management component 50 determines call center information such as agent availability and service levels at the call centers 44 and 46. The second RP component 42 is responsive to the call center information from the second traffic management component 50 to vary how subsequent calls are to be allocated between the call centers 44 and 46.
The allocation split between the first telephony system 16 and the second telephony system 20 produced by the allocation component 14 is manually changed by individual(s) 56 managing the system. The allocation of calls between the telephony systems 16 and 20 needs to be varied from initial percentages due to changes in staffing at the call centers 24, 26, 44 and 46 and the unpredictable nature of call traffic received by the primary IVR 10. The manual changes performed by the individual(s) 56 are reactive in nature and typically take minutes or hours of time to occur. Undesirable service levels and additional expenses may result using the manual approach.
FIG. 2 is a schematic diagram of a second embodiment of a pre-ICM load balancing system that includes a load-balancing IVR system 100. A first percentage of calls received by a primary IVR 110 is routed to routing logic 112, and a second percentage of the calls received by the primary IVR 110 is routed to the load-balancing IVR 100. In general, the second percentage is about equal to or otherwise based on a maximum shift in allocation percentages between a first telephony system 116 and a second telephony system 120 which would occur if the manual approach in FIG. 1 was used. Thus, depending on the capacity and performance of call centers in the telephony systems 116 and 120, the first/second percentages may be 95%/5% or 90%/10% or 85%/20% or 80%/20%, for example. Preferably, the first percentage is greater than the second percentage so that most of the traffic is routed through the most inexpensive path possible while a small percentage of the traffic is routed through the load-balancing IVR 100 to dynamically balance telephony system loads. In practice, the load-balancing IVR 100 can initially receive 100% of the calls, and make a recommendation based on a sample of calls as to where to set the first/second percentage split. The recommendation can be outputted to a user via a user interface or an alert message such as an e-mail message.
The routing logic 112 includes an allocation component 114 to allocate a first percentage of its calls for the first telephony system 116 and a second percentage of its calls for the second telephony system 120. In the case of the two telephony systems 116 and 120, the sum of the first percentage and the second percentage is 100%. These percentages may be substantially fixed percentages. Those having ordinary skill will appreciate that the routing logic 112 may support more than two telephony systems in general.
The first telephony system 116 and the second telephony system 120 may be different types of telephony systems provided by different vendors. Examples of the different vendors include, but are not limited to, CISCO Systems, Inc. and GENESYS.
The load-balancing IVR 100 dynamically distributes its calls between the first and second telephony systems 116 and 120 based on agent availability data. A full description of the dynamic distribution follows a recitation of other components in the system.
The routing logic 112 comprises a first routing protocol (RP) component 122 to route each of the calls allocated to the first telephony system 116 to a corresponding one of multiple call centers 124 and 126. The call centers 124 and 126 typically are disposed at different geographical locations. Agents at the call centers 124 and 126 receive the calls and service the calling parties.
A first traffic management component 130 is in communication with the call centers 124 and 126 via peripheral gateway lines 132 and 134, respectively. The first traffic management component 130 determines call center information which includes first agent availability data for the call centers 124 and 126 of the first telephony system 116. The call center information may further comprise one or more Automatic Call Distribution (ACD) statistics such as a number of calls in queue, a service level, Average Holding Time (AHT), and/or Average Speed of Answer (ASA). The first RP component 122 is responsive to the call center information from the first traffic management component 130 to vary how subsequent calls are to be allocated between the call centers 124 and 126.
The routing logic 112 further comprises a second routing protocol (RP) component 142 to route each of the calls allocated to the second telephony system 116 to a corresponding one of multiple call centers 144 and 146. The call centers 144 and 146 typically are disposed at different geographical locations. Agents at the call centers 144 and 146 receive the calls and service the calling parties.
A second traffic management component 150 is in communication with the call centers 144 and 146 via peripheral gateway lines 152 and 154, respectively. The second traffic management component 150 determines call center information which includes second agent availability data for the call centers 144 and 146 of the second telephony system 120. The call center information may further comprise one or more ACD statistics such as a number of calls in queue, a service level, AHT, and/or ASA. The second RP component 142 is responsive to the call center information from the second traffic management component 150 to vary how subsequent calls are to be allocated between the call centers 144 and 146.
Each of the first and the second traffic management components 130 and 150 makes its call center information accessible to the load-balancing IVR 100. In one embodiment, the first traffic management component 130 comprises a Web-accessible application program interface (API) 160 to provide remote visibility of the first call center information, including first agent availability data, to the load-balancing IVR 100. Similarly, the second traffic management component 150 comprises a Web-accessible application program interface (API) 162 to provide remote visibility of the second call center information, including first agent availability data, to the load-balancing IVR 100.
In one embodiment, a call received by the primary IVR 110 and routed to the load-balancing IVR 100 is processed as follows. The load-balancing IvR 100 determines which of the telephony systems has a highest overall agent availability, and routes the received call to the telephony system having the highest overall agent availability.
To determine which telephony system the call is to be routed to, the load-balancing IVR 100 requests and receives the first call center information, including the first agent availability data, from the API 160 of the first traffic management component 130 and the second call center information, including the second agent availability data, from the API 162 of the second traffic management component 150. Additional first and second call center information that may be passed to the load-balancing IVR 100 includes the number of calls in queue, the service level, AHT, ASA, and/or other ACD statistics. The first and second call center information is communicated from the traffic management components 130 and 150 to the load-balancing IVR 100 over Web-based hook via a computer network using a communication protocol such as hypertext transfer protocol (HTTP). Although HTTP is preferred for purposes of portability and flexibility, alternatives such as dedicated frame relay or virtual private network (VPN) may be used.
Optionally, while determining which of the telephony systems has the highest overall agent availability, the load-balancing IVR 100 plays a message to the calling party within the call. The message may have a duration of about five to ten seconds, for example. The message may include a script advising the caller of an estimated hold time or his/her place in the queue based on the responses from the APIs 160 and 162.
Beneficially, the load-balancing IVR 100 can be remotely used by any other IVR over a standard voice path (e.g. a dedicated voice path or a plain old telephone service voice path). Thus, no data integration to other IVRs in the call centers 124, 126, 144 or 146 is required by the load-balancing IVR 100. In one embodiment, the load-balancing IVR 100 routes the call by performing a Dual Tone Multiple Frequency (DTMF) release transfer using a routing configuration of the telephony system having the highest overall agent availability. Any carrier's DTMF transfer function can be used, keeping inbound capacity requirements and call durations at or near a minimum.
In general, the scope of this disclosure is broadly inclusive of alternative criteria used by the load-balancing IVR 100 to determine which telephony system is to receive the call. Optionally, a graphical user interface 170 or another user interface receives user-specified routing criteria. The load-balancing IVR 100 processes its received calls based on the user-specified routing criteria. For example, the user-specified routing criteria may cause the load-balancing IVR 100 to favor a particular vendor's telephony system.
The load-balancing IVR 100 may be operative to generate an alert signal based on a trend or a surge defined by the agent availability data or other call center information received from the traffic management components 130 and 150. A particular business that offers the call centers to its customers may define its own alert conditions using the graphical user interface 170 or another user interface.
The acts performed by each of the herein-disclosed components can be directed by respective computer program code embodied in a computer-readable form on a computer-readable medium. Each of the herein-disclosed components may comprise a respective computer processor responsive to the computer program code to perform the acts.
It will be apparent to those skilled in the art that the disclosed embodiments may be modified in numerous ways and may assume many embodiments other than the particular forms specifically set out and described herein.
The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.

## Claims

1. A system comprising:
routing logic which comprises an allocation component to allocate its received calls among a plurality of telephony systems including a first telephony system and a second telephony system, the routing logic comprising a first routing protocol (RP) component to distribute those of the calls allocated to the first telephony system among a first plurality of call center sites of the first telephopy system, the routing logic further comprising a second RP component to distribute those of the calls allocated to the second telephony system among a second plurality of call center sites of the second telephony system;
a load-balancing Interactive Voice Response (IVR) system which dynamically distributes its received calls between the plurality of telephony systems based on agent availability data associated with the first plurality of call center sites and the second plurality of call center sites; and
a primary IVR system to receive a plurality of calls and to route a first percentage thereof to the routing logic and a second percentage thereof to the load-balancing IVR system.

2. The system of claim 1 wherein the load-balancing IVR system is responsive to a received call to determine which of the telephony systems has a highest overall agent availability, and to route the received call to the telephony system having the highest overall agent availability.

3. The system of claim 2 wherein the load-balancing IVR system is responsive to the received call to play a message to the received call while determining which of the telephony systems has the highest overall agent availability.

4. The system of claim 2 wherein the load-balancing IVR system is responsive to the received call to perform a DTMF release transfer using a routing configuration of the telephony system having the highest overall agent availability.

5. The system of claim 1 further comprising:
a first traffic management component to determine first agent availability data for the first plurality of call center sites of the first telephony system, and to provide the first agent availability data to the load-balancing IVR system; and
a second traffic management component to determine second agent availability data for the second plurality of call center sites of the second telephony system, and to provide the second agent availability data to the load-balancing IVR system.

6. The system of claim 5 wherein the first traffic management component comprises a first Web-accessible application program interface to provide remote visibility of the first agent availability data to the load-balancing IVR system, and wherein the second traffic management component comprises a second Web-accessible application program interface to provide remote visibility of the second agent availability data to the load-balancing IVR system.

7. The system of claim 1 wherein the second percentage is based on a maximum shift in allocation percentages between the first telephony system and the second telephony system.

8. The system of claim 1 wherein the first percentage is about 85% and the second percentage is about 15%.

9. The system of claim 1 wherein the load-balancing IVR system is to generate an alert signal based on a trend or a surge defined by the agent availability data.

10. The system of claim 1 further comprising a us a interface to receive user-specified routing criteria, wherein the load-balancing IVR system is to process its received calls based on the user-specified routing criteria.

11. A method comprising:
distributing a first percentage of calls received by a primary Interactive Voice Response (IVR) system to a routing logic component and a second percentage of the calls to a load-balancing IVR system;
allocating the calls received by the routing logic component among a plurality of telephony systems including a first telephony system and a second telephony system, the first telephony system having a first plurality of call center sites, the second telephony system having a second plurality of call center sites;
dynamically distributing the calls received by the load-balancing IVR system between the plurality of telephony systems based on agent availability data associated with the first plurality of call center sites and the second plurality of call center sites;
distributing those of the calls allocated to the first telephony system among a first plurality of call center sites of the first telephony system by a first routing protocol (RP) component; and
distributing those of the calls allocated to the second telephony system among a second plurality of call center sites of the second telephony system by a second RP component.

12. The method of claim 11 wherein said dynamically distributing the calls received by the load-balancing IVR system comprises determining which of the telephony systems has a highest overall agent availability for a received call, and routing the received call to the telephony system having the highest overall agent availability.

13. The meted of claim 12 further comprising playing a message to a caller of the received call while determining which of the telephony systems has the highest overall agent availability.

14. The method of claim 12 wherein said dynamically distributing the calls received by the load-balancing IVR system comprises performing a DTMF release transfer using a routing configuration of the telephony system having the highest overall agent availability.

15. The method of claim 11 further comprising:
determining first agent availability data for the first plurality of call center sites of the first telephony system and providing the first agent availability data to the load-balancing IVR system by a first traffic management component; and
determining second agent availability data for the second plurality of call center sites of the second telephony system and providing the second agent availability data to the load-balancing IVR system by a second traffic management component.

16. The method of claim 15 wherein the first traffic management component comprises a first Web-accessible application program interface to provide remote visibility of the first agent availability data to the load-balancing IVR system, and wherein the second traffic management component comprises a second Web-accessible application program interface to provide remote visibility of the second agent availability data to the load-balancing IVR system.

17. The method of claim 11 wherein the second percentage is based on a maximum shift in allocation percentages between the first telephony system and the second telephony system.

18. The method of claim 11 wherein the first percentage is about 85% and the second percentage is about 15%.

19. The method of claim 11 further comprising generating an alert signal, by the load-balancing IVR system, based on a trend or a surge defined by the agent availability data.

20. The method of claim 11 further comprising receiving user-specified routing criteria via a user interface, wherein the load-balancing IVR system is to process its received calls based on the user-specified routing criteria.