Abstract:
Uniform control of mixed platforms is provided in telephony by connecting computer-telephony integration (CTI) processors to telephony switching units in a network, and connecting the CTI processors by data links separate from the telephony links connecting the platforms. The switching units may be of different manufacture, type, and function, and may have CTI ports adapted to communicate with auxiliary processors by different CTI protocol. The CTI processors execute server applications that are capable of communicating by the various CTI protocols and with each opther as well, and are adapted also to provide uniform control of the switching units. Switching units may be variously be located in networks, such as publicly switched telephony networks, or in private equipment sets at customer premises.

Description:
CROSS-REFERENCE TO RELATED DOCUMENTS 
     The present patent application is a divisional application of copending application Ser. No. 08/802,660 filed Feb. 19, 1997 which is a Continuation-In-Part of copending patent application Ser. No. 08/797,418. 
    
    
     FIELD OF THE INVENTION 
     The present invention is in the area of telephone call processing and switching, and pertains more particularly to intelligent call-routing systems. 
     BACKGROUND OF THE INVENTION 
     Telephone call processing and switching systems are, at the time of the present patent application, relatively sophisticated, computerized systems, and development and introduction of new systems continues. Much information on the nature of such hardware and software is available in a number of publications accessible to the present inventors and to those with skill in the art in general. For this reason, much minute detail of known systems is not reproduced here, as to do so would obscure the facts of the invention. 
     One document which provides considerable information on intelligent networks is “ITU-T Recommendation Q.1219, Intelligent Network User&#39;s Guide for Capability Set 1”, dated April, 1994. This document is incorporated herein by reference. 
     At the time of filing the present patent application there continues to be remarkable growth in telephone-based information systems. Recently emerging examples are telemarketing operations and technical support operations, among many others, which have grown apace with development and marketing of, for example, sophisticated computer equipment. More traditional are systems for serving customers of large insurance companies and the like. In some cases organizations develop and maintain their own telephony operations with purchased or leased equipment, and in many other cases, companies are outsourcing such operations to firms that specialize in such services. 
     A large technical support operation serves as a good example in this specification of the kind of applications of telephone equipment and functions to which the present invention pertains and applies, and a technical support organization will be used from time to time in the current specification for example purposes. Such a technical support system, as well as other such systems, typically has a country-wide or even world-wide matrix of call centers for serving customer&#39;s needs. Such call center operations are more and more a common practice to provide redundancy and decentralization. 
     In a call center, a relatively large number of agents handle telephone communication with callers. Each agent is typically assigned to a telephone connected to a central switch, which is in turn connected to a public-switched telephone network (PSTN), well-known in the art. The central switch may be one of several types, such as Automatic Call Distributor (ACD), Private Branch Exchange (PBX), or PSTN. 
     An organization having one or more call centers for serving customers typically provides one or more telephone numbers to the public or to their customer base, or both, that may be used to reach the service. The number or numbers may be published oil product packaging, in advertisements, in user manuals, in computerized help files, and the like. There are basically two scenarios. If the organization providing the service has a single call center, the number will be to the call center, and all further routing to an agent will be at the call center. If there are several call centers, the organization may provide several numbers, one for each call center, and the customer may be expected to use the number for the closest center, or for the center advertised to provide specifically the service he or she might need. In some cases the number provided will connect the caller with a first Service Control Point (SCP) which is adapted to pre-process incoming calls and forward the calls to other call centers. 
     Routing of calls, then, may be on several levels. Pre-routing may be done at SCPs and flier routing may be, and almost always is, accomplished at individual call centers. As described above a call center typically involves a central switch, which may be, for example, an Automatic Call Distributor (ACD), Private Branch Exchange (PBX), or PSTN switch. The central switch is connected to the public-switched telephone network (PSTN), well-known in the art. Agents, trained (hopefully) to handle customer service, man telephones connected to the central switch. This arrangement is known in the art as Customer Premises Equipment (CPE). 
     If the call center consists of just a central switch and connected telephone stations, the routing that can be done is very limited. Switches, such as ACD, PBX, PSTN and the like, although increasingly computerized, are limited in the range of computer processes that may be performed. For this reason additional computer capability in the art has been added for such central switches by connecting computer servers adapted to run control routines and to access databases. The processes of incorporating computer enhancement to telephone switches is known in the art as Computer Telephony Integration (CTI), and the hardware used is referred to as CTI equipment. 
     In a CTI system telephone stations connected to the central switch may be equipped also with computer terminals, so agents manning such stations may have access to stored data as well as being linked to incoming callers by a telephone connection. Such stations may be interconnected in a network by any one of several known network protocols, with one or more servers also connected to the network one or more of which may also be connected to a processor providing CTI enhancement, also connected to the central switch of the call center. It is this processor that provides the CTI enhancement for the call center. 
     When a call arrives at a call center, whether or no the call has been pre-processed at a SCP, typically at least the telephone number of the calling line is made available to the receiving switch at the call center by a telephone carrier. This service is available by most PSTNs as caller-ID information in one of several formats. If the call center is computer-enhanced (CTI) the phone number of the calling party may be used to access additional information from a database at a server on the network that connects the agent workstations. In this manner information pertinent to a call may be provided to an agent. 
     Referring now to the example proposed of a technical-service organization, a systems of the sort described herein will handle a large volume of calls from people seeking technical information on installation of certain computer-oriented equipment, and the calls are handled by a finite number of trained agents, which may be distributed over a decentralized matrix of call centers, or at a single cal center. In examples used herein illustrating various aspects of the present invention, the case of a decentralized system of multiple call centers will most often be used, although, in various embodiments the invention will also e applicable to individual call centers. 
     Even with present levels of CTI there are still problems in operating such call centers, or a system of such call centers. There are waiting queues with which to contend, for example, and long waits may be experienced by some callers, while other agents may be available who could handle callers stuck in queues. Other difficulties accrue, for example, when there are hardware or software degradations or failures or overloads in one or more parts of a system. Still other problems accrue due to known latency in conventional equipment. There are many other problems, and it is well recognized in the art, and by the general public who have accessed such call centers, that there is much room for improvement in the entire concept and operation of such call center systems. It is to these problems, pertaining to efficient, effective, timely, and cost-effective service to customers (users) of call center systems that aspects and embodiments of the present invention detailed below are directed. 
     SUMMARY OF THE INVENTION 
     In a preferred embodiment of the present invention an integrated telephony apparatus is provided, comprising a first telephony switching apparatus having a first functionality and a first computer-telephony integration (CTI) port; a second telephony switching apparatus having a second functionality and a second CTI port, and coupled to the first telephony switching apparatus through a telephony network allowing telephony calls to be forwarded between the two telephony switches; a first CTI processor connected to the first CTI port and adapted to monitor activities and direct functions of the first telephony switching apparatus; a second CTI processor connected to the second CTI port and adapted to monitor activities and direct functions of the second telephony switching apparatus; and a data link between the first CTI processor and the second CTI processor. The first CTI processor and the second CTI processor provide uniform control of the first and second telephony switching apparatus via communication over the data link. 
     In some embodiments the first CTI port and the second CTI port are adapted to communicate with CTI processors by a first and a second CTI protocol respectively, and the first CTI processor is adapted to communicate with a CTI port by the first CTI protocol, and the second CTI processor is adapted to communicate with the second CTI port by the second CTI protocol. The first telephony switching apparatus may be in a telephony network, and the second telephony switching apparatus may be in a part of a customer premises equipment set. The network may be of various sorts, such as a publicly switched telephony network (PSTN) made available by a network provider, and the customer equipment set may be equipment maintained and operated by a customer of the network provider. In some embodiments the first and second CTI processors each execute an instance of a CTI-Server application having layered communication ability for the CTI protocols and the data link between the CTI processors. 
     In another aspect a method is provided for providing uniform control of mixed telephony switching platforms, wherein each platform comprises a telephony switching apparatus. The method comprises steps of (a) coupling a first computer-telephony integration (CTI) processor to a first CTI port at a first one of the telephony switching apparatuses; (b) coupling a second computer-telephony integration (CTI) processor to a second CTI port at a second one of the telephony switching apparatuses; (c) connecting the first and the second CTI processors by a data link; and (d) controlling the functionality of the first and the second telephony switching apparatuses uniformly by communication between the CTI processors over the data link, and communication by each CTI processor with its associated telephony switching apparatus. In steps (a) and (b) the CTI ports may employ different communication protocol, and the associated CTI processor may be adapted to communicate with the associated CTI port by the appropriate CTI protocol. The first telephony switching apparatus may be in a telephony network, and the second telephony switching apparatus may be a part of a customer premises equipment set. The network may be a publicly switched telephony network (PSTN) made available by a network provider, and the customer equipment set may be maintained and operated by a customer of the network provider. The first and second CTI processors each can in some embodiments execute an instance of a CTI-Server application having layered communication ability for the CTI protocols and the data link between the CTI processors. 
     In another embodiment of the invention a telephony network is provided comprising mixed multiple platforms each comprising telephony switching units, wherein individual switching units differ in ports and functionality; computer-telephony integration (CTI) processors coupled to individual ones of the telephony switching units by CTI ports; and data links between the CTI processors. In this aspect uniform control of the mixed platforms is accomplished by communication between CTI processors via the data links, and controlling individual ones of the telephony switching units via the CTI ports. The first CTI port and the second CTI port may be adapted to communicate with CTI processors by a first and a second CTI protocol respectively, the first CTI processor may be adapted to communicate with a CTI port by the first CTI protocol, and the second CTI processor may be adapted to communicate with the second CTI port by the second CTI protocol. 
     In this embodiment one of the telephony switching units may be in a telephony network, and another of the telephony switching units may be a part of a customer premises equipment set. The network may be a publicly switched telephony network (PSTN) made available by a network provider, and the customer equipment set may be maintained and operated by a customer of the network provider. 
     The unique structure and combination of equipment, and the unique functionality provided enable for the first time uniform control of mixed platforms in telephony, so that, as computer enhancements become available, they may be applied, without the expedient of replacing switching equipment to achieve uniformity. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING FIGURES 
     FIG. 1 is a system diagram of a call-routing system according to a preferred embodiment of the present invention. 
     FIG. 2A is a block diagram representing communication functionality between equipment groups in embodiments of the present invention. 
     FIG. 2B is a block diagram illustrating a unique call center-level routing system in an embodiment of the present invention. 
     FIG. 3 is a process flow diagram depicting steps in a process according to a preferred embodiment of the present invention. 
     FIG. 4 is another process flow diagram depicting steps in a process according to another preferred embodiment of the present invention. 
     FIG. 5 is yet another process flow diagram depicting steps in yet another preferred embodiment of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     General Description 
     FIG. 1 is a system diagram of a call-routing system according to a preferred embodiment of the present invention, comprising two call centers  121  and  122 . In this embodiment there may be many more than the two call centers shown, but two is considered by the inventors to be sufficient to illustrate embodiments of the invention. Each of call centers  121  and  122  includes a central switch ( 123  for center  121  and  124  for center  122 ) providing routing to individual telephone stations. These switches may be of any of the types described above in the Background section. 
     Call centers  121  and  122  are CTI-enhanced by virtue of a processor connected by a high-speed data link to the associated central switch. At call center  121 , processor  223  is connected by link  212  to central switch  123 , and at call center  122 , processor  224  is connected to central switch  24  by link  213 . Each processor  223  and  224  includes an instance of control routines T-S  207 . Further, each processor  223  and  224  at each call center is in turn connected to a local area network. For example network  301  is shown connected to processor  223  in FIG.  1 . No equivalent network is shown at call center  122  for the sake of simplicity, although the architecture described herein for call center  121  may be presumed t be extant at call center  122  and other call centers as well. 
     Each call-in center  121  and  122  included in this example also includes at least two telephone-equipped workstations, which also each have a user interface (IF) to the associated network. Workstation  131  at center  121  for example has a telephone  136  connected to central switch  123 , and a proximate user interface  331  to network  301 . Interface  331  may be a PC, a network terminal, or other system, and typically provides a video display unit (VDU) and input apparatus (keyboard/pointer for example) allowing an agent to view data and make appropriate inputs. 
     In like manner workstation  132  illustrated has a telephone  138  connected to central switch  123  and a proximate IF  332  providing an agent with display and input capability. For call enter  122  workstations  133  and  134  are shown having respectively telephones  140  and  142  connected to central switch  124 , in turn connected to processor  224  by link  213 . A local area network (LAN) equivalent to LAN  301  at call center  121  is not shown for call center  122  for the sake of simplicity in illustration, and network interfaces for the agents are similarly not shown for call center  122 . 
     As is true with LANs in general, servers of various sorts may be connected to LAN  301  at call center  121 . In FIG. 1 a data server  303  containing a customer database is shown connected to LAN  301 . A similar database server may also be connected to a LAN at call center  122 . The customer database will typically comprise such as the names, addresses, and other information relating to customers for whom the call center is established, and also resource information for agents to access in helping callers with their problems. 
     One of the variables in routing is the skill set of each agent assigned to a workstation. This skill set may include a unique set of skills, resources and knowledge, such as, but not limited to, language capability, access to technical information, and specific training. In routing calls both at the network and at the call center level, the system and/or network needs to know the status of any or all call centers, the availability of each agent, the skill set of each agent, the number of incoming calls, the number of calls waiting to be answered, and so forth. In this example, control routines executable on processor  223  for call center  123  may access algorithms providing call routing at the call center level, and may also access data from data server  303  for use in routing decisions and the like. Similar routines run on processor  224  serving call center  122 . 
     Calls are routed to call-in centers  121  and  122  over conventional telephony lines  105  and  106  respectively from remote origination points (a customer seeking technical aid has placed a call, for example, to an advertised or otherwise provided 1-800 number). Cloud  100  represents the telephone network system, and is referred to herein as a network cloud. This may be, for example purposes, a regional portion of the world-wide network, or may represent the entire world-wide network of connected telephone equipment. All calls routed to call-in centers  121  and  122  originate somewhere in network cloud  100 . 
     In this example an incoming call to be routed to a call-in center is represented by vector  107  into a Service Control Point (SCP)  101 . In some embodiments of the invention calls may go directly to one of the call centers illustrated, but in other embodiments an SCP is accessed first, and network-level routing may also be done. 
     SCP  101  is typically a central telephone switch somewhat more local to the calling party than the switches at call centers  121  and  122  illustrated. SCP  101  is coupled in this example to an adjunct processor  103  associated with a call-distribution processor  104 . Call distribution processor  104  has call statistics describing call distribution between call-in centers  121  and  122  (typically over a larger number of call-in centers than two). 
     An Intelligent Peripheral  102  is provided coupled to SCP  101 , and its function is to provide initial processing of incoming calls. This initial processing may be done by voice recognition, eliciting information from a caller such as type of product and model number, language preference for communication with an agent, and much more, depending on the nature of the service provided by the organization providing the cal centers. 
     A processor  208  including an instance of telephony server T-S  207 , also including an instance of a statistical server (Stat Server)  209  is coupled by two-way data link  214  to the other parts of the system at the initial call processing and routing system associated with SCP  101 . It will be apparent to those with skill in the art that the functions of CD Processor  104 , Adjunct Processor  103 , IP  102 , T-S  207  and Stat Server  209  may be accomplished in a variety of ways in hardware and software mix. There may be, for example, a single hardware computer coupled to central switch  101 , and the various servers may be software implementations running on the one hardware system. There may be as well, more than one hardware system, or more than one CPU providing the various servers. 
     In this embodiment, as described above, calls incoming to SCP  101  are routed to call centers  121  and  122  via PSTN lines  105  and  106 . The convergence of lines  105  and  106  to SCP  101  and divergence to call centers  121  ad  122  is simply to illustrate that there may be considerable switching activity between these points. Processor  208  connects to processor  223  and to processor  224  by digital data links  210  and  211 . Again the convergence is just to illustrate the network nature of these links, which may connect to many SCPs and to many call centers as well. In a preferred embodiment the network protocol is TCP/IP, which is a collection of data protocols which are not discussed in detail here, as these protocols are in use and very well-known in the art. There are other protocols that might be used, new protocols may be developed to provide better and faster communication, and other methods may be used to speed up communication. For example, Urgent Dispatch Protocol (UDP) may be used in some instances, which, for example, allows data packets to bypass routing queues. 
     Processor  208  running an instance of T-S  207  as described above may control routing of calls at the network level, that is, calls received at SCP  101 , in the same manner that processor  223  may control routing at central switch  123 . 
     It is emphasized again that not all embodiments of the present invention require all of the elements and connectivity shown in FIG. 1, although some embodiments will use all of the elements and connectivity shown. Also, functionality in various embodiments of the invention described in enabling detail below will differ not in hardware and connectivity but in application and execution of unique control routines. 
     Uniform Control of Mixed Platforms in Telephony ( 3208 ) 
     In a preferred embodiment of the present invention unique control routines are provided for execution on such as processor  223 , processor  224  and processor  208 , providing communication ability thereby between call centers such as centers  121  and  122 , and between call centers and initial call processing centers such as that represented by SCP  101 . 
     FIG. 2A is a block diagram representing a unique communication capability provided in a preferred embodiment of the present invention. There are, as described above in the Background section and known in the art, several different kinds and manufactures of call switching equipment. Each central switch uses a proprietary communication protocol for CTI applications. In CTI enhancement as known in the art, individual manufacturers provide processors connecting to their own switches and using the communication protocols proprietary to those switches. The computer enhancements, then, can serve a single manufacturer&#39;s switches, and provide communication between those switches. If a user, however, has multiple call center sites, for example, having equipment from different manufacturers, a difficult situation arises. If that user decides on a computer enhancement, depending on which manufacturer provides the enhancement, the equipment at the other site may quickly become obsolete. To communicate with the other site, it may be necessary to purchase all new equipment for the other site to be compatible with the computer-enhanced site. 
     Processors  223 ,  224 , and  208  are shown in FIG. 2A connected by links  210  and  211  as in FIG. 1, with additional detail of both software and hardware illustrated. In each processor there is an instance of T-S  207  executable. To communicate with other devices each processor must have one or more ports configured to accomplish the communication. The implementation of such ports is represented in FIG. 2A by the representation PND  215 . PND  215  in each instance is a physical network adapter for the network to which it is intended to connect, such as microwave, optical, coaxial, ring-network, and the like, as well as the software drivers required to control those adapters. 
     Layered to each instance of T-Server  207  in each processor is a control routine for handling data communication with either an instance of telephony equipment (switch  123  for example) or another T-server. Hence, in FIG. 2A, each instance of T-server  207  is layered with a Telephony Equipment Driver (TED) on one side, and an Inter T-Server Driver (ITD) on the other side. Connectivity of an ITD or a TED to a PND is based on the external connection intended at the PND. For example processor  223  is connected on one side to switch  123  by link  212 , so TED  216  in the instance of processor  223  will be configured to drive communication with switch  223  (according to the make and manufacture of that switch). On the other side processor  223  is connected via link  210  to processors running other instances of T-server  207 . Therefore ITD  217  connects to PND  215  at link  210 . 
     Although not shown explicitly in FIG. 2A, which follows the architecture of FIG. 1, it will be apparent to those with skill that a processor may also be configured with an instance of TED on each side of a instance of T-Server  207 , providing thereby a processor capable of interconnecting two central switches of different type, make, or manufacture directly. In this manner processors may be adapted to interconnect central switches of various manufacturers and processors running instances of T-Server  207 , and, by providing the correct PNDs, the processors thus configured may be adapted to communicate over any known type of data network connection. 
     In this manner, according to embodiments of the present invention, a system is provided for the first time that allows radically different telephony systems to be joined in high-functionality integrated networks. 
     Escalatory Reactive Call Routing ( 3207 ) 
     FIG. 2B is a block diagram depicting a unique escalatory reactive routing system  330  according to a preferred embodiment of the present invention, which may be implemented on a call center or at the network level, such as in call center  121  or such as in network cloud  100  of FIG.  1 . In this routing system, as implemented at the call center level, processor  223  (FIG. 1) is notified when a call is received, and sends information about the call to a routing server  342 . Routing server  342  is typically implemented as a part of T-server  207 , which routes a call to an agent best qualified to answer the call based on predetermined criteria. The T-server having the routing server need not necessarily be implemented on processor  207  as shown in FIG. 1, but could be resident elsewhere in the networked system. Routing server  342  typically directs switch  123  to route the incoming call to the designated agent. 
     Database  344  in FIG. 2B is a customer database typically maintained on such as data file server  303  (FIG.  1 ). Routing server  342  comprises control routines which may be executed on processor  223  (FIG. 1) or there may be a separate processor on network  301  executing the router. A stat server  340  is adapted to track and provide statistical data concerning calls made, completed and the like, and to agent&#39;s activities, and to generate reports. Again, stat server  340  may execute on processor  223 , or on another processor connected to network  301 . Finally, a network manager  352  is also connected on the network, and is adapted to the task of managing aspects of LAN  301 . Agent skills are maintained in database  344 . 
     Routing in this embodiment is typically based on (i) the skills set of the agent (ii) information relating to the calling party, (iii) activities of the call center, and (iiii) legal or other authorization held by an agent. Examples of the skills set of the agent are language, product knowledge, and the like. Examples of calling party information are products purchased, geographical location and the like. Examples of call center activities are number of available agents, calls previously handles by an agent, and the like. 
     At the same time an incoming call is directed to a particular agent, data retrieved from database  344  is directed on LAN  301  to the proximate video display unit (VDU) at the workstation assigned to that agent. The agent is then enabled to deal with the call in the best possible manner. 
     It is apparent to the present inventors that the expeditious functioning of routing system  330  is highly dependent on the expeditious functioning of the various elements of the overall system, including, but not limited to software and hardware elements. These elements include the functions of all of the elements shown in FIG. 1, specifically including all of the communication links, both telephony and digital. If for example, stat server  340  or database  344  experiences a sudden degradation in service, the routing server is going to be delayed as well. As another example, there may be an unexpectedly large number of accesses to database  344  in a short time, overloading a search engine associated with the database, and this circumstance could degrade overall performance in routing. As a further example a partial or total loss of a communication link, such as digital network link  210 , will severely degrade overall system performance. 
     By virtue of network connection and interconnection, network manager  352  is enabled to track and monitor performance and function of all system elements, and to report to database  344  and to routing server  342 , and the routing server also has access to other data and statistics via stat server  340  and database  344 . Routing server  342  also has access in this embodiment to multiple routing algorithms which may be stored at any one of several places in the overall system. An object of the invention in the instant embodiment is to provide for executing different routing algorithms based on system performance as reported by network manager  352  and in accordance with data available from database  344 , stat server  340 , and received via digital network link  210  as described in further detail below. Database  344 , routing server  342 , and stat server  340  communicate through layered protocol as known in the art, including but not limited to layers for network-dependent protocol, Internet protocol (IP), User Datagram Protocol (UDP), Simple Network Management Protocol (SNMP), and manager process. 
     In a preferred embodiment, routing server  342  selects a routing algorithm to be executed based on degradation in performance of part of the call center or components, either hardware or software, in an escalatory manner. The more the system degrades, the more the router reverts to emergency measures. The selected algorithm preferably reduces or eliminates access to or use of the component or resource adduced to be degrading in performance. 
     It will be apparent to those with skill in the art that the invention described to FIGS. 2A and 2B is not limited to monitoring only system and component faults. It has broader application. For example, algorithms may be stored for operating according to load level. Other algorithms may be selected according to specific times-of-day, and such algorithms may be selected based on the time window in a 24-hour period. As another example, algorithms may be stored and selectable based on days of the week. Still other algorithms might be prepared to be accessed with introduction of new products and the like. Statistics may be tracked relative to the percentage of agents free, for example, and a routing algorithm may be accessed for the situation wherein 90% of agents are busy, routing calls only to the next free agent rather than following a skill-based routing algorithm. The invention in this embodiment allows routing algorithms to be selected and executed based upon a very broad congruence of circumstances, so that a call center may be operated at best efficiency even as circumstances alter rapidly, including circumstances of hardware and software functionality, as described in specific embodiments above. 
     In other embodiments of the instant invention escalatory reactive call routing may be implemented at the network level, with a router implemented as a portion of T-S  207  running on processor  208 . In this case stored routing algorithms may be selected and implemented in conjunction with functionality of network level components, both hardware and software, and in accordance with call loading into SCP  101 . 
     Agent Level Call Routing in Telephony Systems ( 3200 ) 
     Referring now back to FIG. 1, associated with SCP  101  in embodiments of the present invention, there is a processor  208  comprising an instance of a Stats-server  209  and an instance of T-Server  207 , which processor communicates with other components via two-way data link  214 . Communication in this embodiment is as illustrated in FIG.  2 A and described in disclosure above relative to FIG.  2 A. 
     In description above reference was made to TCP/IP communication on links  210  and  211 , and that this protocol is merely exemplary. There are other protocols that might be used, new protocols may be developed to provide better and faster communication, and other methods may be used to speed up communication. For example, User Datagram Protocol (UDP) may be used in some instances, which, for example, allows data packets to bypass routing queues. 
     In conventional systems known to the present inventors, routing at the network level, that is, in the network cloud  100  associated with switching equipment receiving incoming calls and routing these calls to call centers, is typically done with reference to statistical history of call center activity, and routing to call centers is to queues at the call centers. In this conventional method, activity at each call center in a network is tracked and provided to service control points, and incoming calls are routed to the calls centers based on the latest available history. As an example of such a history algorithm, if there are two call centers in the system, and the latest statistical history indicates that call center  1  has received twice as many calls as call center  2 , calls will be preferentially routed to call center  2  at a ratio to balance the activity. In this conventional system calls are routed from the network level to queues at the call center level. Once a call is received in a queue at a call center, the caller waits until his call is answered in order. 
     Referring now to FIG. 1, in a unique embodiment of the present invention, termed by the inventors Agent Level Routing, actual transactions at the call center level, rather than historical summaries, are reported from call centers to service control points, and calls are routed to agents rather than to queues or groups. Referring to call center  121  as an example, transactions of central switch  123  are monitored by T-Server  207  executing on processor  223 , and shared on a continuing basis with T-Server  207  running on processor  208  associated with SCP  101 . This activity data is stored and accessible with reference to stat server  209  on processor  208 . Activity of central switch  124  at call center  122  is reported via link  211  also to T-Server  207  in cloud  100  (which represents one instance of possible multiple SCPs and T-Servers in the network. Each T-Server may serve more than one SCP). Actual activity at all call centers is reported to all SCPs in this manner. 
     In addition to this actual call center activity data, data relative to agent skills and the like is also provided and stored at the network level. For example, when an agent logs in at a call center, the availability of this agent is reported to the network level, and the stat-servers at the network level have agent profiles for reference in making routing decisions. 
     In the instant embodiment an incoming call  107  at SCP  101  is processed, for example, with the aid of IP  102 . With information about the needs of the caller, T-S  207  makes reference to the stat-server data of actual agent status at call centers, which is continuously updated via digital network links  210  and  211 , for example, from call centers, and to the available data on agent profiles and the like, which is updated as well, but at perhaps longer time increments. T-Server  207  makes a routing decision to an agent based on the best fit with the latest available data. 
     Once the routing decision has been made at the network level, the destination decision for the call is transferred by T-Server  207  running on processor  208 , for example, at the network level, to T-Server  207  at the call center where the agent to which the call is to go is resident. For exemplary purposes assume the destination is an agent at call center  121  (FIG.  1 ), and the destination information is sent to T-S  207  running on processor  223 . 
     The call is received on line  105  at the call center and matched with the destination data received by T-S  207  on link  210 . T-S  207  on processor  223  now routes the call to the agent. 
     Call-center-level routing in embodiments of the present invention was described above, and may be done in the instant embodiment as well, but is not required in this embodiment. For example, T-S  207  running on processor  223  has received a call on line  105  and matched that call with data received on link  210 , which data includes an agent destination for the call based on the best fit available to T-S  207  running on processor  208  at the network level. In the time since the original routing occurred and the call and data have been received at call center  105 , the situation may have changed. The agent to which the call was routed may have, for example, logged off, and is no longer available. T-S  207  at processor  223 , executing a routing algorithm, may now reroute the call to the agent who is a next best fit and available at call center  121 . 
     As a further example of agent level call routing, consider a call received at SCP  101  from a customer who speaks Spanish, and indicates a preference for a Spanish-speaking agent. In FIG. 1 the pool of Spanish-speaking agents is represented by inclusion area  241 , encompassing workstations  132  at call-in center  121  and workstation  134  at call-in center  122 . An agent profile provided to stat-server  209  at the network level for each of these agents indicates the Spanish skill. The continuously updated transaction information from call centers  121  and  122  indicates the agent at telephone  138  is available, while the agent at telephone  142  is not available. Given this information, the call will be routed to call center  121  on line  105 , and the data as to agent destination will be sent to T-S  207  at call center  121  via digital link  210 . 
     In summary, in the instant embodiment, agent level routing is accomplished by providing actual call center agent status on a continuing basis to Service Control Points along with agent skill profiles and the like. Incoming calls are then routed to agents, rather than to queues at call centers. At the call center to which a call is routed with destination data for an agent, a further opportunity for routing allows such calls to be rerouted at the call center level. 
     Parallel Data Transfer and Synchronization ( 3201 ) 
     In another aspect of the present invention enhanced functionality is provided in routing and processing telephone calls from Service Control Points (SCPs) and other origination points at the network level or at other call centers established for servicing callers seeking service. This enhanced functionality enables agents at such call-in centers to have immediate access to information derived both from callers and from stored data. In descriptions below of the instant embodiment, assumption of SCP  101  in the network cloud and call center  121  is made for principle purposes of illustration. 
     In descriptions above, referring now to FIG. 1, an intelligent peripheral (IP)  102  was described, serving to aid in initial processing of calls from persons seeking services from an organization providing such services from one or more call-in centers. In the above descriptions also, such callers were referred to as customers, following a continuing example utilizing an organizational structure having a technical service call-in operation for such as a computer equipment manufacturer. 
     Following the example of persons calling in to seek technical services in installing and/or configuring computer-related products, when such a caller first connects (FIG. 1, vector  107 , SCP  101 ), initial processing will typically include eliciting information from the caller relative to such as caller preferences and relationship of the caller to the service provider&#39;s customer database. For example, the caller may have just purchased a model of one of the provider&#39;s products, meant to be installed in or connected to a particular make and model computer, and is experiencing difficulty in installing the product and making it function properly with the computer. In another instance such a caller may have had the provider&#39;s product for some time, and is only recently experiencing difficulty. 
     Most manufacturers provide a service whereby a customer may register a product, and in the process of registration a range of information from the customer is solicited, which will typically include the exact nature of the product in question, including model number, and also the characteristics of the computer (in this example) to which the customer has installed or is attempting to install the product. If a customer has registered his/her purchase, that information will typically be recorded in the customer database, which, referring to FIG. 1, may be stored on Data File Server  303  connected to LAN  301 , to which processor  223  running an instance of T-S  207  is also connected. In other instances there may be other information stored in the customer database. For example, in the case of an insurance company, the customer&#39;s name and address, policy number, and the like will be in the database. 
     If there is information about a call in a customer database at a call center, it will be advantageous to both the customer and the service provider to access that information and provide same to the agent who handles the customer&#39;s call. Such information cannot be retrieved, however, until and unless some correlation is made between the incoming call and the database. 
     In the instant embodiment of the invention, which is exemplary only, initial processing is used incorporating IP  102  to elicit information from a customer. This may be done preferably by recorded query and voice recognition. In such a system a call is answered, and a menu system is used to categorize the caller and to elicit and record sufficient information to enable routing (as described above) and hopefully to correlate a customer with an existing database. By recording is meant enrolling the nature of the responses in some form, not necessarily by voice recording. For example, a typical initial processing transaction involves a recorded query to the caller such as “Do you prefer Spanish or English”. In some locales the query might be phrased in a language other than English. The caller is requested to respond typically by selecting a key on the touch-tone pad of his/her telephone. In many instances now as well, voice recognition is built into the initial processing machine intelligence, and the customer is instructed in verbal response, such as: “Say Yes or No”. The IP in this case recognizes the response and codes data accordingly. 
     Information derived from a caller in such initial processing in conventional systems, as has been described herein above, is coded and sent with the routed call, to be dealt with at the call center to which the call is routed after the call is received. In instant embodiments of the present invention, such data, and in some cases other data, is routed to a call center in parallel with the routed call, over a digital network link, allowing the data to precede the call in most cases. The data is re-associated with the call at the call center in a unique fashion described below. This parallel data transfer also makes the transfer switch-independent. 
     Referring again to FIG. 1, an instance of T-Server  207  is running on processor  223  connected to central switch  123  of call center  121 . Processor  223  is connected to digital data link  210 , and switch  123  is connected to the PSTN line  105 . In the exemplary embodiment there is an instance of T-Server  207  also running on processor  208  associated with SCP  101 . In the instant embodiment T-S  207  at processor  208  requests a semaphore from T-S  207  at processor  223  at the call center level. The semaphore is a virtual routing point in the call center, that is associated with the destination of the call, but is not the same as the destination of the call. Also, the semaphore is freed as soon as the call is completed. Once the semaphore is returned, the routed call is forwarded to switch  123  in this example over line  105  to the destination associated with the semaphore. Data associated with the call, which may be data elicited from a caller with the aid of IP  102 , is not coded and sent with the call, however, as in the prior art, but rather transferred to T-S  207  at processor  223  over digital network line  210 . 
     As digital network link  210  is generally a faster link than telephone line  105 , the data associated with a forwarded call will typically arrive before the call. This is not, however, a requirement of the invention. The data sent over link  210  to T-Server  207  on processor  223  includes not only data associated with the call, but the semaphore as described above. The call received on line  105  is not transferred directly to a final destination but to a semaphore routing point. When the call and the data are available, the call center T-Server  207  associates the call with the data by the knowledge of the semaphore to which the call has been associated. From the semaphore routing point the call is routed on to the final destination. 
     The semaphore can be accomplished in a number of ways. For example, the call can be directed to a virtual number and the data may have the virtual number in one field of the data protocol. The semaphore could also be an agent&#39;s extension number, but the call is still routed to a semaphore control point to be associated with the data before being routed on to the agent. Those with skill in the art will recognize that the semaphore association may be made in other ways as well. 
     The data typically in this embodiment is sent via network  301  to a VDU of the network interface at the operator&#39;s workstation to which the call is finally routed. This may be, for example, IF  331  or  332  in FIG.  1 . Moreover, data associated with the call and transferred to T-S  207  at the call center may be used to associate the caller with the customer database in Data File Server  303 , and to retrieve further data which may also be forwarded to the VDU at the agent&#39;s workstation. As described above, it will most usually be the case that the data will arrive before the call, and correlation with a customer database may therefore be done before the call arrives. 
     The re-association (synchronization) of the call and the data at a re-routing point also affords an opportunity for further re-routing. There will be, as described above in the section on agent-based routing, some calls wherein the agent to which a call is originally has become unavailable in the time wherein a call is transferred. In this case T-Server  207  may re-route the call from the semaphore point to another agent, and send the data to the new destination. 
     It is not strictly necessary in the instant embodiment that the data be transferred by another instance of T-Server as described in the preferred embodiment immediately above. The call forwarded and the data transferred may in fact be sent by an originating entity such as another call center (i.e. PBX), an SCP or IP (network IVR), or some other IVR which may or may not be in the network. 
     Statistically-Predictive and Agent-Predictive Call Routing ( 3202 ) 
     In still another embodiment of the present invention predictive routing is incorporated into machine intelligence to expedite routing in a most cost-effective manner. Predictive routing according to embodiments of the present invention is based on knowledge of latency experienced in equipment while implementing certain operations, together with reasonable, but non-obvious assumptions that may be made to expedite operations. It is in implementing the assumptions that the inventions lie in the instant aspects and embodiments of the invention. 
     Referring again to FIG. 1, in the general case T-Server  207  running on processor  208  does call routing for calls incoming at SCP  101 . This routing is done with the aid of data stored at stat-server  209 , which may be data obtained from call centers on some regular basis. 
     In the instant embodiment related to group-predictive routing, incoming calls are routed to groups at call centers (call center  121  for example). In routing calls to groups, the goal is to route an incoming call to the group which has the lowest projected handling time for the call. The algorithm, for example, for handling time may be the present number of calls in the group queue times the historical average call length. 
     In this embodiment the projected handling time is extrapolated on past history and the last action which occurred, and is re-computed each time feedback from the group is received. The predictive nature is derived from the fact that each time a call is routed, an assumption is made that the new call is added to the queue at the group to which it routed, without waiting for the call center to return the information, which involves latency. For example, when a call is received at SCP  101  (FIG.  1 ), there is a finite time involved before a routing decision may be made. Once the call is routed, there is a delay (latency) before the call is received at the call center and added to the group queue (in this example). There is a further delay for T-Server  207  to be cognizant of the arrival of the call. Then there is a delay until the time that T-Server  207  at processor  207  sends updated group queue data to T-Server  207  at processor  208 , which updates the historical data at stat-server  209 . 
     The overall latency and delay until historical data may be updated at the network level may vary, but an exemplary assumption may be made for purposes of illustration. Assume the overall delay between actual updates is twenty seconds. If calls are being received at the SCP at the rate of ten calls per second, two hundred calls will be received to be routed in the time between updates of historical information upon which routing decisions are made. In the group-predictive embodiment described, each time a call is routed at the network level, an assumption is made that the call is actually received at the call enter group queue, and the data (stat server  209 ) is recalculated based on that assumption. The next call received is then immediately routed based on the recalculated data based on the assumption. The update that eventually arrives is used to readjust the database to reality, and call routing continues between updates based on the assumptions made. 
     In the case of routing calls to logical destinations wherein further routing is done at the call center level, as described above for agent-based call routing, wherein agent status is reported to the network level, predictive routing according to an embodiment of the present invention may be done similarly to the predictive group routing described above. In the agent routing case incoming calls are immediately routed with an assumption that the agent to which the call is routed is then busy, and the status is corrected when actual agent state is returned. 
     FIG. 3 is a process flow diagram depicting the decision and action flow for a predictive routing process according to the instant embodiment of the invention. At step  401  action is precipitated on a next call to be routed. Action is typically controlled in this embodiment by an instance of T-Server  207  running on a processor at the network level. At step  403  current statistics are consulted, which, in the case of group level routing comprises an indication of projected handling time for each group in the decision set to which calls may be routed. 
     At step  405  the call is routed based on the statistics available. At step  407  it is determined whether or not a real update to the statistics has been received. If Yes, at step  409  the statistical data is updated to reflect the real information, correcting all assumptions since the last real update, if any correction is necessary. Then control passes to step  411 , where statistics are updated based on the routed call as well. 
     If a real update is not yet received, at step  411  the statistical data is updated based on an assumption that the call just routed was completed, and the call is added to the statistics, which are recalculated based on the assumption. Then a next call is taken to be routed at step  401 . 
     In the case of agent level routing the process flow is much the same as that shown in FIG. 3, except calls are routed at step  405  based on agent status, and updates are based on agent status. That is, when a call is routed, the assumption is that the agent is then busy. Agent status is updated to real data as real data is reported back to network level from call centers. If no real data comes back, an assumption based on statistical call length is used to ‘best-guess’ re-availability of that agent. 
     Group level predictive call routing may be done for conventional call centers that are capable of reporting only historical data to the network level. Predictive call routing based on agent status is only possible in the unique case wherein actual status of call center switches may be reported to network level. 
     Dynamic Re-Routing ( 3203 ) 
     In yet another aspect of the present invention, dual routing is performed. Reference is made again to FIG. 1, wherein a network level system shown in cloud  100  is enabled to perform original routing by virtue of an instance of T-Server  207  running on processor  208 . In the instant embodiment routing is done at the network level by any of the methods discussed above. That is to group level, agent level, logical application, and so on. Original routing, however, is not done to the actual destination. Rather calls are routed to a call-center-level routing point, and data is sent to the call center via the digital data link, such as link  210  to processor  223  running an instance of T-Server  207  and connected to switch  123 . The data sent comprises an indication or instruction of how the call should be treated. 
     Whenever a call is routed to a call center, it is never certain that by the time the actual call arrives, the destination will still be available, or the best fit for the call. There are many reasons for this. For example, because of latency in transmission and so forth, other calls may be routed to the same destination in the interim. Also, in many systems switches at the call center level are also accepting local calls as well as calls routed from the network level. In other instances some equipment malfunction of fault may misroute one or more calls. The uncertainty of availability when the call arrives is the reason for the instant embodiment of the invention. 
     At the call center routing point the call is synchronized with whatever data is sent, and a second routing request is generated. This second request is referred to by the inventors as “double-dipping”. The second routing request is made to a local router running typically as a function of the instance of T-Server  207  executing on such as processor  223  (FIG.  1 ). 
     Because the local router is closer to the requested destination, and because it arbitrates all incoming calls, it can confirm the original routing assuming the original destination is still free, or it can re-route the call if the destination is no longer available, or queue the call, etc. 
     FIG. 4 is a process flow diagram depicting a process flow in the “double-dip” embodiment of the present invention described herein. At step  413  a call is received at the network level. At step  415  initial processing is accomplished, which may include eliciting information from the caller. At step  417  the network-level router is called, and a best fit destination is determined for the call based on the information available at the network level. 
     At step  419  the call is forwarded, but not to the best-fit destination determined. The call is forwarded rather to a routing point at the call center local to the best-fit destination. Data associated with the call, including the best-fit destination determined in step  417  is forwarded to the call center via a digital data link such as link  210  in FIG.  1 . At step  421  the call is received at the call center routing point. 
     At step  423  it is determined whether the originally routed destination is still the best destination according to information at the call center level. If so the call is forwarded to the original destination at step  427 . If not, the call is re-routed based on local information by the local router. 
     External Positivistic Forward Transfer in Call routing Systems ( 3204 ) 
     In yet another embodiment of the present invention calls are routed to call centers and data passed in a switch-independent manner, similar to that described above in the section entitled  Parallel Data Transfer and Synchronization . In the previous description, however, the instance of T-Server running at the network level requests a semaphore from the call center. When the semaphore is returned, the call is routed and data is transferred on the digital network link, the data including the semaphore, which allows the data to be synchronized with the call at the semaphore point at the call center level. 
     In the instant embodiment, time to route and transfer is improved by having the instance of T-Server running at the network level (on processor  208  in FIG. 1, for example) co-opt a semaphore, based on the best available information then at the network level. This presumption by the router in the T-Server at the network level eliminates the time required for negotiation with the T-Server at the call center. The semaphore assumed by the network level T-Server is freed later when CTI information is returned that the call was correctly processed. 
     As in the previous description, when the routed call arrives at the call center semaphore point, the data, by virtue of having an indication of the semaphore included, is synchronized with the call and the call is forwarded to the destination. Data may be provided to a VDU at the agent&#39;s workstation at the destination via LAN connection as shown in FIG.  1 . 
     FIG. 5 is a process flow diagram indicating steps in practicing this embodiment of the invention. At step  501  a call is received. At step  503  initial processing is performed. At step  505  the router at the network level consults a stat-server (see element  209 , FIG. 1) for a best-fit destination. At step  507  the T-Server selects a semaphore based on the information in step  507 . At step  509  the call is routed to the call center semaphore point and associated call data is routed via a separate data link (see link  210 , FIG. 1) to the call center. At step  511  the data and the call are synchronized at the routing point. Further step are as indicated above in the section titled  Parallel Data Transfer and Synchronization.    
     Agent-Initiated Dynamic Requeuing ( 3206 ) 
     In yet another aspect of the present invention a method is provided for rerouting calls from agent level, wherein the agent discovers, having received a call and interacted with the caller, that the call was misrouted, or needs attention by another qualified agent. By misrouted in this context is meant that for whatever reason the agent that received the call is unable to provide the service the caller wants or needs. The call may have been physically misrouted due to some error in hardware or software, so it is handled by a different agent than to whom it was originally routed, or, the call may have gone to the right agent, but the caller gave the wrong information, or insufficient information, for the system to get the call to an agent able and ready to provide the needed service, or, during the call, need arises for an agent with specific skills or knowledge. 
     In this embodiment a first agent has received the call and has discerned from the caller that another agent is required to handle the call. Potentially the agent also has a VDU with the caller&#39;s data displayed and input apparatus (keyboard, pointer) with which to communicate with the local T-Server. 
     In the conventional case the agent would be limited in options. The agent would transfer to or conference a physical phone number on the local or a remote central switch. The Automatic Call Distributor (ACD) on that switch would requeue the call. If the ACD were configured as a network ACD the call could potentially be distributed to other sites, but network ACD products typically work only between switches of the same manufacture. Also, the caller may have to wait again the full queue time. 
     In the instant embodiment of the present invention, by virtue of the presence and interconnectivity of the local instance of T-Server running on a processor ( 223 , FIG. 1) connected to the local switch ( 123 , FIG.  1 ), also connected to the agent&#39;s equipment by LAN  301 , and using unique control routines provided in T-Server  207 , the agent hands the call back to a local or a network routing point, potentially with added data elicited from the caller to better aid in further routing. 
     This operation is essentially agent-initiated double-dipping ala the description above in the section entitled  Dynamic Rerouting.  At the rerouting point rerouting of the call is requested of the local instance of T-Server  207 , and the call is redistributed. The agent does not know who is available where for this transfer, and ACD is not involved. The agent, however, in this embodiment of the invention may have a choice of selecting a cold, warm, or conference transfer, which the agent may do by any convenient input which has been programmed into the control routines in the preferred embodiment. 
     In a cold transfer, the agent simply sends the call back to the re-routing point with whatever new data can be added, and the call is then transferred to a new agent directly without any participation by the first agent. In a warm transfer, the first agent is connected to the next agent to whom the call is re-routed before the caller is connected, allowing the first agent to confer with the next agent before the caller. In a conferenced transfer the first agent and the caller are connected to the next agent at the same time. 
     The Spirit and Scope of the Invention 
     It will be apparent to those with skill in the art that there are many alterations that may be made in the embodiments of the invention herein described without departing from the spirit and scope of the invention. Many individual hardware elements in the invention as described in embodiments above are well-known processors and data links. The connectivity, however, of many of these elements is unique to embodiments of the present invention. Moreover, many of the functional units of the system in embodiments of the invention may be implemented as code routines in more-or-less conventional computerized telephony equipment and computer servers. It is well-known that programmers are highly individualistic, and may implement similar functionality by considerably different routines, so there will be a broad variety of ways in code that unique elements of the invention may be implemented. Also, the invention may be applied to widely varying hardware systems. Further, the links between processors running T-Servers at the call center level and processors running T-Servers at the network level may be done in a variety of ways as well to the associated equipment may be done in a number of ways, and there is a broad variety of equipment that might be adapted to provide the servers  223  and  224 , and other such servers associated with call centers. There are similarly many other alterations inn the embodiments described herein which will fall within the spirit and scope of the present invention in it&#39;s several aspects described. The invention is limited only by the breadth of the claims below.