COMMUNICATIONS SYSTEM AND METHOD FOR OPERATING SAME

Abstract: A communications system (10, 200, 400, 500) and method for operating same are provided. One embodiment of the present invention permits call routing decisions to be made with "global authority" based upon information gathered in real time from the entire communications system and global optimization criteria. This permits unified central control, ACD features, and management for the entire system.

Description: COMMUNICATIONS SYSTEM AND METHOD FOR OPERATING SAME The present invention relates generally to a communications system and method for operating same. More specifically, the present invention relates to a distributed, fault-tolerant communications system and method for operating same that makes real-time, call routing decisions based upon system-wide resource utilization preferences and information. Particular utility for the present is found in the area of call distribution through a public network (e.g. a public telephone network) to and through agent systems having a plurality of diverse individual workgroups and caller services (e.g. interactive voice response and/or voice mail systems), although other utilities are also contemplated. Systems for routing calls through public or private communications networks are known in the art. Conventional automatic call distribution (ACD) systems route calls to agents in telemarketing and service inquiry centers, and provide limited real-time call management and reporting capabilities. A typical ACD system will monitor the status of the agent and, when an incoming call is received, selects the agent to handle a particular service request. Reporting and performance data from the agents are also generated by the ACD. One particular type of scheme for distributing calls to agents is disclosed in Frauenthal et al., U.S. Patent No. 4,737,983. According to Frauenthal et al, data representing the present call congestion of each of the ACD systems is accumulated in a data base. Using the data in the data base, the percentage of calls made to the ACD systems, as a group, is determined. The information is then used to generate call routing information. When a new call is made to the central office, the routing information is queried to determine which of the ACD systems is to receive the call, so as to balance the call traffic load across the ACD systems. Another call distribution scheme is provided in Gechter et al., U.S. Patent No. 5,036,535. This patent discloses a system for automatically distributing telephone calls placed over a network to one of a plurality of agent stations connected to the network via service interfaces, and providing status messages to the network. Gechter et al's disclosed system includes means for receiving the agent status messages and call arrival messages from the network, which means are connected via a network service interface to the network. Routing means responsive to the receiving means is provided for generating a routing signal provided to the network to connect the incoming call to an agent station through the network. In the system disclosed in Gechter et al, when an incoming call is made to the call router, it decides which agent station should receive the call, establishes a call with that agent station, and then transfers the original call onto the second call to connect the incoming caller directly to the agent station and then drops out of the connection. (See, Gechter et al., column 1 1 , lines 45-51 ) . U.S. Patent No. 5, 1 93, 1 1 0 issued to Jones et al discloses an integrated services platform for a telephone communications system which platform includes a plurality of application processing ports for providing different types of information services to callers. In Jones et al's disclosed system, a master control unit and a high speed digital switch are used to control processing of incoming phone calls by recognizing the type of service requested by the caller and then routing the call to the appropriate processing port. The Jones et al system is disclosed as an adjunct to current switching technology in public and private networks. Another call routing system is the Enhanced 800 Service provided by AT&T. Enhanced 800 Service allow calling customers to split calls and direct them to multiple call centers. Unfortunately, among its many disadvantages, this system is predicated upon the notion that system dynamics are relatively static (i.e., that call volumes do not change drastically and that proper system functioning is a "given") . However, given the dynamics of the modern telecommunications market, this notion is often very strong. Unfortunately, none of the aforesaid prior art systems discloses integrated means for controlling both the routing of calls to the agent and/or caller service systems, operation of the agent and/or caller service systems themselves, and the various management and administration functions (e.g. compilation and updating of call management, preferences, and status information databases, and inputting of user control preferences) since no single ("global") controller completely controls processing and distribution of all calls throughout the system, and administrative functions. Thus, disadvantageously, the prior art fails to provide means for optimally utilizing system resources according to unified optimization criteria. Additionally, the prior art fails to provide adequate means for preventing catastrophic system failure in the event of controller malfunction and/or failure of other important elements of the system. Accordingly, one preferred embodiment of the present invention provides a communications system (and method for operating same) having integrated central control of both the routing of calls to the agent and/or caller service systems, the operation of the agent and/or caller service system themselves, and administrative functions. Advantageously, the system and method of this embodiment of the present invention permit a single central controller to completely control all distribution of calls throughout the entire network (i.e. even in and through separate agent and caller service systems). This permits all of the resources of the system to be allocated according to unified optimization criteria so as to permit optimal system resource utilization. Also advantageously, this embodiment of the present invention permits truly global (i.e. system-wide) administration and control. Additionally, in preferred embodiments of the present invention, the system provides enhanced routing capabilities by collecting from the network caller information such as dialed number, calling line ID, and caller entered digits. In such preferred embodiments, prior to connection of the call to its ultimate termination point, the system uses the caller- entered digits, calling line ID and other system information to formulate a routing command back to the public network. The routing command may cause the network to deliver the physical call to the call termination point along with DNIS or system information carried in the user-to-user field of the ISDN setup message. Advantageously, this permits explicit control of the interchange carriers connecting the call to the target termination, based upon a diverse set of criteria, including caller accounts and personal ID numbers. Another preferred embodiment of the system of the present invention essentially comprises a plurality of public networks for interconnecting a plurality of calls to a plurality of respective agent systems. Each of the agent systems includes a plurality of workgroups. This embodiment also comprises up to two central controllers for generating control signals to control the public networks and the agent systems to optimally route the calls through the networks and the agent systems to certain of the workgroups. The central controllers are adapted to generate the control signals based upon status messages received from the agent systems, requested service data from the network, and optimization parameters. The central controllers include two controllers configured in a redundant manner for controlling the system in the event of failure of one of the controllers. The central controllers may be geographically separated from each other. This embodiment also includes synchronizer means for virtually synchronizing respective internal states of the central controllers, and interfacing means for interfacing the central controllers to the public networks and gateway means for interfacing the central controllers to the agent systems. A third preferred embodiment of the system of the present invention essentially comprises at least one telephone network for interconnecting at least one telephone call to at least one telephone call service, and at least one Internet network for connecting an Internet call to at least one Internet service. The telephone network and call services are controlled by control signals supplied thereto from a primary central controller for generating the control signals so as to optimally route said telephone call between the telephone network and the telephone call service, and also so as to optimally connect the Internet call and the Internet call service, based upon status messages received from the call services, requested service data from the networks, and optimization parameters. Preferably, in this third embodiment, each of the call services comprise at least one agent workstation, which may or may not be associated with an ACD or PBX. Also preferably, the telephone call service includes an IVR or similar system, and the Internet call service includes at least one Internet multimedia service provider. In this embodiment, at least one workstation is networked to a caller information database. A fourth preferred embodiment of the present invention essentially comprises at least one public network for interconnecting a plurality of voice calls to at least one caller service and/or agents via a switching system. The switching system and at least one network are controlled by a central controller so as to optimally route the calls to the caller services and/or agents, which are also controlled by the central controller. Preferably, the caller service comprises an IVR connected to the switching system. The switching system may be connected to the agents via the at least one network or via an appropriate interface. It will be appreciated by those skilled in the art that although the following Detailed Description will proceed with reference being made to preferred embodiments and methods of use, the present invention is not intended to be limited to these preferred embodiments and methods of use. Rather, the present invention is of broad scope and is intended to be limited as only set forth in the accompanying claims. Other features and advantages of the present invention will become apparent as the following Detailed Description proceeds, and upon reference to the Drawings, wherein like numerals depict like parts, and wherein: Figure 1 is a functional block diagram of one preferred embodiment of the present invention. Figure 2 is a functional block diagram of the primary central controller of the preferred embodiment of Figure 1 . Figure 3 is a functional block diagram of an agent system of the preferred embodiment of Figure 1 . Figure 4 is a functional block diagram of the administrative means of the preferred embodiment of Figure 1 . Figure 5 is a functional block diagram of another preferred embodiment of the present invention, in which figure the interconnection lines between the public networks and the agent systems have been omitted for purposes of clarity, but should be understood to exist nonetheless. Figure 6A is a functional block diagram of the primary central controller of the preferred embodiment of Figure 5. Figure 6B is a functional block diagram of the redundant central controller of the embodiment of Figure 5. Figure 7 is a flowchart illustrating the operational flow of the preferred embodiment of Figure 5. Figure 8 is a functional block diagram of an agent system of the preferred embodiment of Figure 5. Figure 9 is a functional level block diagram of a third preferred embodiment of the present invention, in which figure the interconnection lines between the public networks and agent systems have been omitted, but should be understood to exist nonetheless. Figure 10 is a functional block diagram of an agent system of the preferred embodiment of Figure 9. Figure 1 1 is a functional block diagram of an individual agent workstation of the agent system of Figure 10. Figure 1 2 is a functional block diagram of a fourth preferred embodiment of the present invention. Figure 1 3 is a functional block diagram of a variation of the fourth preferred embodiment shown in Figure 1 2. Figure 1 4 is a functional block diagram of a variation of the agent system shown in Figure 8. Figure 1 5 is a functional block diagram of a variation of the individual agent workstation of Figure 1 1 . Figure 1 is an architectural-level block diagram of the various functional components of one preferred embodiment 1 0 of the system of the present invention. System 10 includes at least one 24, and preferably a plurality of agent systems 24, 26, 28 connected to a primary central controller 30 and at least one 1 2, and preferably a plurality of conventional public telephone and/or long distance carrier networks (e.g. MCI, Sprint, AT&T) 1 2, 14, 1 6. Callers 1 8, 20, 22 place calls to the agent systems 24, 26, 28 via public networks 1 2, 14, 1 6. As will be explained more fully below, primary central controller 30 generates control signals for controlling distribution of calls through the long distance carriers to the agent systems, and through the agent systems themselves to individual workgroups, customer agents and/or caller services, based upon requested service data (e.g. telephone numbers and other information) supplied by callers through the public networks, status messages (i.e. availability of resources for use by callers, loading of system resources, etc.) supplied by the agent systems, and optimization parameters (i.e. user supplied criteria for how the system is to balance competing concerning for use of system resources) stored in controller 30. Administration means 32 permits user access and control of the system 1 0 by, for example, permitting dynamic changing of optimization parameters, system configuration data, etc. stored in controller 30. Monitoring means 31 monitors the various elements of the system (i.e. the agent systems 24, 26, 28, administration means 32, etc.) to determining whether these elements are functioning properly. If a malfunction is detected, that fact is signaled to the central controller 30, so that it can undertake appropriate action to correct and/or eliminate the malfunction and/or any resulting problems to the system 10 from the malfunction. It is important to note at the outset that, although not shown in the Figures, each of the conventional long distance carriers 1 2, 1 4, 1 6 includes a long distance control network (e.g. AT&T's Signaling System 7 (SS7) control network, MCI's TCP/IP-based control network, Sprint's X.25-based control network and/or foreign telecommunication's CCITT SS7-based control network) and local exchange carriers. The long distance control networks control routing of calls through the long distance network serviced by the exchange carriers. When a long distance call request is received (e.g. a caller dials a long distance telephone number) by the exchange carrier, it forwards the call to the long distance network, which routes the call to its intended destination. In accordance with this embodiment of the present invention, the long distance control network is programmed such that when the long distance control network receives a request for long distance connection to one of the agent systems 24, 26, 28 (or, as will be explained more fully below, to one of the agent's systems workgroups or caller services), the long distance control network forwards the long distance routing request to the central controller 30. The central controller then processes the request and controls the system 10 to optimally utilize the system's resources (i.e. to minimize calling cost by routing the call along the lowest cost route, to balance system loading by routing the call to the resource with the lowest current load, to maximize call localization by routing the call to the resource closest to its origination point, or to use a combination of the foregoing and such other techniques), in the manner described more fully below. As used herein, the system's "resources" include its agent systems, caller services and/or individual agent workgroups. As will be seen, the system accomplishes call routing by, inter alia, translating the routing request message into a route response message for addressing the desired agent system. It is also important to note that system 1 0 also supports routing of calls across local exchange carriers and international PTT's by utilizing substantially the same call control and distribution techniques discussed above. Figure 2 is a schematic block diagram of the various functional components of the central controller 30. Controller 30 includes means 33 for receiving status messages and caller service requests, and for supplying control signals generating by the controller 30 to the public networks and the agent systems. Receiving and supplying means 33 includes long distance carrier interfaces 38, 40, 42 for interfacing the controller 30 to the public networks 1 2, 1 4, 1 6, respectively, each of which interfaces is appropriately adapted to permit transmission of control signals and receipt of caller service requests from the respective network to which it is connected. For example, if carrier interface 42 is connected to an AT&T SS7 network, then it is appropriately configured to permit transfer of control signals and service requests between the controller 30 and the SS7 network. Other types of carriers must also be similarly accommodated by appropriately configuring the other interfaces 40, 38 to permit exchange of such data between these networks and the controller 32. Receiving and supplying means 33 also includes agent gateway (interface) means 34 for interfacing the controller 30 to the agent systems 24, 26, 28. Preferably, interface means 34 includes agent systems interfaces 46 connected to conventional wide area network means 44. Wide area network 44 connects the controller to the interface means whereby to permit transmission of status messages from the agent systems to the controller, and to permit transmission of control signals to the agent systems. It should be understood that the particular types of interfaces 46 used will depend upon the particular constructions of the agent systems, the wide area network, and the controller. Wide area network 44 preferably is of the TCP/IP (Transmission Control Protocol/Internet Protocol) type, although if system 10 is appropriately modified other types of conventional network means may be used to construct network 44 without departing from this embodiment of the instant invention. Also shown in Figure 2 is the control signal generator means 36, which is connected to the receiving and supplying means 33, monitoring means 31 , and administrative means 32. Control signal generating means 36 comprises routing engine 48, database logger/retrieving means 50, database manager means 52, database storage means 54. Preferably, routing engine 48 determines how to optimally route calls in the system 1 0 (i.e., through the public networks to the agent systems, and in the agent systems themselves), and transmits this routing information (in the form of appropriate control signals, such as routing response messages for addressing the desired end-termination (i.e. workgroup/caller service) in the system to interface means 34 and receiving/supplying means 33 for transmission to the agent system and long distance control networks, respectively. In order to determine how best to route calls in the system, routing engine 48 takes into consideration real-time requested service data supplied to it by the receiving and supplying means 33, historical (i.e. previously stored) requested service data retrieved by logger/retriever means 50 at the command of the routing engine 48 from the system's historical database (comprising database manager 52 and storage means 54), real-time status messages from the agent systems supplied to it from the interface means 34, historical status messages retrieved from the system's database, information from the monitoring means concerning what components (if any) of the system are currently unavailable because they are malfunctioning or inoperative, and optimization criteria and/or rules stored in the database via the administration means. Routine engine 48 uses this data to calculate the optimal way to route calls in the system by applying to this data conventional optimization algorithms and/or strategies known to those skilled in the art, including but not limited to routing the call to the highest skilled and longest available (i.e. longest inactive ) agent in a workgroup. After making its decision on how best to route a particular call, generating appropriate control signals to implement this decision, and transmitting the control signals to the interface means 34 and receiving/supplying means 33, routing engine 48 instructs logger means 50 to store the real-time information presented above in the database for use in determining how to route later calls. Logger means 50 in turn, commands database manager 50 to store this information in database storage means 54. It should be appreciated that manager 52, and database storage means 54 may also be of conventional construction. Database 54 may also contain corporate and/or customer profile routing preference information for use by router 48 in determining how best to route calls through the system. Such information may include services previously or most commonly used by certain callers identified by calling line information data, personal identification numbers, etc. and may be used by the routing engine to route such calls to services most likely to be used and/or specifically tailored for use by the callers. Figure 4 is a functional block diagram of administration means 32. Administration means 32 preferably comprises user input/output interface means 78 connected to central controller interface means 76. User interface means 78 preferably comprises one or more IBM-type, Intel 80486, Pentium™ or RISC-based workstations programmed to have graphical-type user interfaces (running e.g. in a Microsoft Windows™ environment) for permitting users to change call routing optimization parameters, system configuration data, etc. stored in the database of the central controller. The database interface means 76 is adapted to change the user's graphically input data into a form usable by the central controller to update and/or otherwise change system information stored in the central controller's database. Administration means 32 comprises a user-accessible database means 75 for storing real-time information and configuration information and for permitting such information to be communicated to users via the user interface means 78. Also preferably, administration means 32 permits a user to monitor various system activities and current system information, such as, call routing, system configuration, etc. Optionally, the system may comprise distribution or repeater means 77. Distribution means 77 replicates data received from the central controller and distributes the data to the administration means 32, 97, 99. Advantageously, this permits the system to comprise multiple administration means 32, 97, 99 distributed (and preferably geographically separated) throughout the system. Thus, the system may be administrated from multiple geographically separated locations. Figure 3 is a functional block diagram of an agent system 26 according to this embodiment of the instant invention. Agent system 26 preferably comprises wide area network interface means 72 for interfacing the agent system's location controller/router 70 to the controller's wide area network 44, so as to permit transfer of control signals from controller 30 to local controller 70 and status message from the local controller 70 to controller 30. In response to control signals received by local router 70 from controller 30, local router 70 issues commands to the ACD/IVR or PBX System causing the public network interfaces 68 in the ACD, PBX or IVR to connect calls received thereat from the public networks to appropriate conventional caller services (e.g. interactive voice response system 74) or individual agents (e.g. private branch exchange (PBX) 56 or ACD 60). Types of PBX's and ACD's that may be included in the agent systems of this embodiment of the instant invention include those made by the following companies: Rockwell, Aspect, AT&T, Northern Telecom, ROLM, NEC and Infoswitch. It should be noted that the particular type and number of caller services and individual agents shown in Figure 3 are merely for illustrative purposes, and may be modified as desired without departing from this embodiment of the instant invention. Local router 70 issues commands via the conventional local network means 58 to the caller service or individual agent system to which the call is connected, as to how the individual agent or caller service is to distribute or process the call. For example, depending upon the control signals transmitted by the controller 30 to controller 70, controller 70 may instruct the call to be forwarded directly to the interactive voice response system 74 which is connected as an answering resource to ACD 60, and instruct the interactive voice response system to store information from the call for later retrieval and transmission to a workstation (not shown) connected to the PBX 56, or to connect the call to the ACD 60 and instruct the ACD to forward the call to one of its workgroups 62, 64, 66. Of course, it will be appreciated that if appropriately modified, the interface 68 may be comprised within the public networks or may comprise a separate, stand- alone interface distinct from the agent systems. Likewise, if the PBX, IVR, and/or ACD are appropriately modified so as to include other of the various functional components of the agents (e.g. router 70), they may be eliminated, or comprised as separate functional components from the agent system. Local controller 70 also queries the individual agents and caller services for status information (i.e. whether they are active, what resources are available for use by callers, etc.), gathers this status information via the local network 58, and transmits this information to the central controller 30 via interface 72 for use in the central controller's routing decisions. In this way, the central controller 30 may automatically control routing of calls not only through the public networks, but also in the agent systems, according to status information gathered from the entire system, using global call distribution criteria. It should be understood that local router 70 is of similar construction to control signal generator means 36, except that local router 70 is adapted to control distribution of all only within its agent system and in accordance with routing commands issued by the central controller 30. Agent system 26 may also comprise local administration means 73 for permitting user control of the local router 70, and remote administration means 71 for permitting remote control of central controller 30. Both administration means 73, 71 are of similar construction to administration means 32. Local administration means 73 may be adapted to as to be limited in its control of local router 70 only to matters not being controlled by central controller 30. Likewise, remote administration means 71 may be limited in its authority over system 10 such that administration means 32 may override commands issued by administration means 71 . Figure 5 is an architectural-level block diagram of another preferred embodiment 200 of the system of the instant invention. Unless otherwise stated, the functional components and operation of the system 200 are substantially similar to those of system 10. System 200 includes at least one 24', and preferably a plurality of agent systems 24', 26', 28' connected to a primary central controller 30A and a redundant central controller 30B, and at least one 1 2, and preferably a plurality of conventional public telephone and/or long distance carrier networks 1 2, 14, 1 6. Callers 1 8, 20, 22 place calls to the agent systems 24', 26', 28' via public networks 1 2, 1 4, 1 6 which, although not shown explicitly in Figure 5 as being connected to the agent systems, are in fact so connected. The central controllers 30A, 30B are connected to monitoring means 31 '. Central controllers 30A, 30B are connected to each other by a synchronizer link (which preferably comprises a suitable wide area network connection means), the purpose of which will be described more fully below. Also, for reasons that will become apparent below primary central controller 30A and administration means 32A are physically located at a primary control center. Likewise, redundant central controller 30B and administration means 32B are physically located at a redundant control center. The redundant control center and the primary control center may be geographically separated from each other. For purposes of the following discussion, connections made from the primary central controller 30A to the other components of system 200 are designed as active (i.e. with the letter "A"), while connections made from the redundant controller 30B are designated inactive (i.e. with the letter "I"). With reference now being made specifically to Figures 5, 6A, 6B, 7 and 8, the operation of the primary and redundant controllers 30A, 30B in system 200 will now be discussed. Advantageously, use of primary and redundant controllers in system 200 permit system 200 to exhibit a high- degree of fault-tolerance and help prevent catastrophic system failures. In order to add fault-tolerance to the system 200, all critical functions of the system are duplicated on geographically-separated controllers 30A, 30B, which are connected in parallel to various other components of the system 200. As is known to those skilled in the art, two basic approaches exist to achieve fault-tolerance through duplication of system functions: the "hot-standby approach" and the "synchronized execution approach". In the hot-standby approach, one set of redundant functions is termed the "primary" functions, while the other set is termed the "backup" or "redundant" functions. Under normal conditions (i.e. in the absence of a failure condition), the primary functions perform the system's tasks while the redundant functions are idle. In the synchronized approach, neither the primary nor the redundant functions are idle under normal conditions, they both operate simultaneously to process duplicate inputs and produce duplicate outputs. System 200 utilizes both approaches. At any given time one synchronizer is enabled (or "master" ) while the other synchronizer is disabled (or "slave") . In the System 200, synchronizer 100A of primary controller 30A is enabled, while synchronizer 1 00B of redundant controller 30B is disabled. The enabled synchronizer 1 00 is responsible for determining the order of data provided to the routers 48 A, 48B of the central controllers 30A, respectively, and transmitted therefrom. This is necessary so as to virtually synchronize the internal states of the routers in both central controllers, so as to permit the redundant central controller 30B to take over control functions in the system should the primary central controller 30A fail. As used herein, "virtual synchronization" is intended to mean that the control signal generating means of both central controllers receive and process status messages and service requests in the same order, and both central controllers transmit control signals in the same order. It is unlikely that the synchronizers produce actual synchronization (rather than virtual synchronization), due to the time delays and differences between the two controllers of transmission of status messages, service requests, and control signals resulting from their geographical separation. All data being sent to the routers pass through the synchronizers. Each synchronizer forwards arriving data to the other synchronizer via the synchronizer link. The enabled synchronizer transmits ordering messages to the disabled synchronizer via this link to permit the disabled synchronizer to place the data in appropriate sequence. Ordering of data transmissions to the routers is determined by the enabled synchronizer according to the interleaving of the arriving messages. Once ordering has been determined by the enabled synchronizer and confirmed, the synchronizers transmit the properly ordered data to their respective routing engines. In addition to virtually synchronizing operation of the two controllers, the synchronizers also determine when failure of a central controller has occurred, in order to permit control functions for the system 200 to be switched to the operational controller (i.e. the one that has not failed). The synchronizers do this by sending "heartbeat" messages to each other across the synchronizer link at predetermined time intervals, in order to determine whether they are both still functioning properly. If heartbeat messages from one of the synchronizers stops being received by the other, there are two possible reasons for this phenomenon. The first possibility is that the synchronizer not sending the messages may have failed (along with its central controller). The second possibility is that the synchronizer link connection has failed. In either event, the disabled synchronizer generates appropriate control signals and causes them to be transmitted to the agent systems. These control signals command the agent systems to send query messages to the primary central controller. If the primary central controller is functioning properly, the primary central controller acknowledges this by sending an appropriate reply message to the agent systems, which then transmit this reply to the disabled synchronizer. The disabled synchronizer then periodically attempts to re-establish communications with the enabled synchronizer, periodically retests the proper functioning of the other controller, and/or signals appropriate personnel via the administration means that a problem may exist with the heatbeat line. If the majority of agent systems report that the enabled synchronizer is not functioning, then the disabled synchronizer becomes enabled. The newly enabled synchronizer then periodically attempts to re- establish communications with the other synchronizer, periodically retests the proper functioning of the other controller, and/or signals appropriate personnel via the administration means that a problem exists with the other controller. Once the failed synchronizer has recovered, it initiates by default as the disabled synchronizer. It re-establishes communication with the enabled synchronizer, synchronizes the internal states of the generating means of the now redundant controller and begins normal functioning as the disabled synchronizer. If the disabled synchronizer is found to have failed, the enabled synchronizer continues normal operation, periodically attempts to re- establish communication with the failed synchronizer, and attempts to notify appropriate personnel of the failure. Once the failed synchronizer has recovered, it initializes by default as the disabled synchronizer. It re- establishes communication with the enabled synchronizer, synchronizes the internal states of the generating means of the redundant controller and begins normal functioning as the disabled synchronizer. It should be appreciated, however, that unless a failure condition exists in one of the two central controllers, appropriate functional components in both central controllers may operate simultaneously so as to provide a single "logical" central controller comprised of functional components from both of the central controllers. Unless such a failure condition is present, the system 200 may be adapted to accept control signals from active functional components of the two central controllers, regardless of whether those components are contained within the primary or redundant central controller. At its most basic level, operation of system 200 begins by storing system configuration data, optimization parameters, and other system information in the databases of the central controllers (block 302) . The synchronizers monitor whether the two controllers are functioning properly, as shown at block 304, in the manner discussed previously. Additionally, the monitoring means monitors proper functioning of the system 200 and informs the controllers as to any change in operation of the system. If it is determined that the active (i.e. primary) controller is not functioning properly (block 306), control of the system is shifted essentially seamlessly (from the point of view of the system) to the redundant controller (block 308). In any case, each controller receives requested service data and status messages from the public networks and agent systems at block 31 0 and generates control signals for routing the call through the system (as shown at block 31 2) . The synchronizers virtually synchronize the internal states of the two controllers (as shown at block 314). The control signals are supplied to the public networks and the agent systems to route calls through the system (as shown at block 31 6 and 31 8, respectively, of Figure 7). This process then repeats itself as newly acquired system information is stored in the databases. Figure 8 is a functional block diagram of an agent system 26' according to this embodiment 200 of the system of the instant invention. Its elements and operation are essentially the same as those of agent system 26 of the first embodiment 10. Additionally, however, agent system 26' includes connections from WAN interface 72 to the two controllers 30A, 30B, respectively. Also, to accommodate the differences in operation of the system 200 that result from use of a redundant central controller, the local controller 70' is adapted to act on control signals transmitted via the active link from the central controller. Figure 9 is an architectural-level block diagram of a third preferred embodiment 400 of the present invention. Unless otherwise specifically stated to the contrary, the functional components and operation of the system 400 are substantially similar to those of system 200. System 400 includes at least one agent system 402, and preferably a plurality of agent systems 402, 404, 406 connected to a primary central controller 30A' and redundant central controller 30B', at least one 1 2, and preferably a plurality of conventional public telephone and/or long distance carrier networks 1 2, 14, 1 6, and an Internet network 408. Telephone callers 1 8, 20, 22 place telephone calls to the agent systems 402, 404, 406 via telephone networks 1 2, 14, 1 6, respectively, which although not explicitly shown in Figure 9, should be understood as being connected to agent systems 402, 404, 406. Internet callers 41 0, 41 2 place Internet calls to the agent systems 402, 404, 406 via Internet network 408. The central controllers 30A', 30B' are connected to monitoring means 31 '. Central controllers 30A', 30B' operate, and optimally control operation of networks 1 2, 1 4, 1 6, and agent systems 402, 404, 406, in a substantially similar manner to that of controllers 30A and 30B. Additionally, the central controllers also control the individual Internet servers (not shown) comprised within the Internet 408 to optimally route Internet calls through the Internet 408 to the agent systems 402, 404, 406, in a manner that is functionally substantially similar to that used by the central controllers to optimally route telephone calls through the networks 1 2, 14, 1 6 to the agent systems 402, 404, 406. Figure 1 0 is a functional block diagram of an agent system 402 according to this embodiment 400 of the present invention. Its elements and operation are substantially similar to those of agent system 26' of embodiment 200. Additionally, however, WAN interface 472 passes routing control signals from the central controller to the local telephone call router 470. Router 470 controls routing to and through the workgroups 62, 64 of the ACD 60 and/or IVR system 74 of telephone calls connected to the network interface 68 via the networks 1 2, 14, 1 6, based upon the control signals received from the central controller. Router 470 controls routing to and through the Internet agents 482 and/or multimedia services 484 (e.g., text, audio, graphical, and/or video information stored on a conventional system adapted for permitting such information to be transmitted via the Internet network to the Internet callers) of Internet calls connected to the Internet server 480 via the Internet network 408, based upon the control signals received from the central controller. Preferably, the server 480 comprises a conventional Internet packet switch. Preferably, the type of multimedia information supplied from the server 484 to the Internet callers is based upon control signals supplied thereto by the active central controller generated based upon service requests from the Internet callers. Such information may be related to the type of service requested by the Internet caller, product or transaction information, the caller's customer accounts, if any, etc. Agent system 402 also comprises a database of caller-related information 476 (e.g., previous caller transactions, profile, and/or account information indexed by caller-identifying information, such as caller telephone number, Internet address, and the like). Preferably, the active central controller is adapted to generate control signals for causing specific caller information (i.e., information specifically related to the caller being connected to the agent system) to be automatically transmitted from the database 476 to the individual agent or agents 62, 64, and 482 to be connected to the call based upon caller-identifying information received from the call (e.g., telephone number, customer account number, Internet address, etc.), so as to permit the individual agent to be better able to handle the call. The active central controller may be adapted to cause the system 400 to prompt the caller to supply such caller- identifying information. Likewise, updated information received from the call by the individual agents may be transmitted from the agents and stored in the database 476 for later recall. Agent system 402 also comprises telephony/Internet interface means 486 for permitting remote telephone and/or Internet-based access to the agent system 402. In other words, a remote individual agent (e.g., home-based "dial-up" or ISDN agent, not shown) may be connected to the local area network 58 of agent system 402 via the interface 486 and the networks 12, 14, 1 6, 408, whereby to permit the remote agent to act as a "virtual" agent within the agent system. Alternatively, calls from the Internet network 408 may be routed via Internet telephone gateway 486 and interface 68 into the ACD 60. Preferably, in this embodiment 400, the Internet agents 482 and telephone workgroups 62, 64 comprise at least one 482A individual agent computer/telephonic workstation having the construction shown in Figure 1 1 . Workstation 482A comprises means 460 for interfacing tone/voice processing means 458 to the local area network 58. Preferably, means 460 comprises a TCP/IP and/or Internet handler interface means and permits the processing means 458 to be able to exchange voice, Internet packet, tonal, facsimile, and/or other types of data between the callers and the user (not shown) of the agent workstation 482A. It is important to note in this regard that processing means 458 is also adapted to permit exchange of voice data via the Internet network between the Internet callers 410, 41 2 and the user of the workstation (via, e.g., Voice Over Internet ™ software protocol by Microsoft). Voice processor 458 also includes means for compressing and decompressing voice data transmitted and received by said processor 458. Processing means 458 receives recorded verbal instructions and/or greetings from the storage means 462 and transmits same to the caller when the caller is initially connected to the workstation 482A. Such verbal information may be stored in the storage means 462 via user voice interface 464, which interface 464 also permits the user of the workstation to be able to verbally communicate with callers placing voice calls over the networks 1 2, 14, 1 6 and 408. The storage means 462 may also be adapted to supply a voice message to the interface means 464 upon connection of the call to the workstation indicative of the type of service being requested by the caller based upon caller-identifying information supplied by the call. Various functional components of workstation 482A are controlled by the user of the workstation 482A by a graphical user interface means 452 which transmits appropriate control signals to the means 458 via status/control slave process 451 , conventional telephony applications programming interface means 454 and service provider interface 456, to the means 460, and to the integration means 450. Means 452 also permits the user of the workstation to request that the central controller forward the call connected to the workstation to another node of the system 400 (e.g., another agent workstation, Internet address, telephone number, IVR, etc.), and to request that the central controller connect the workstation to a requested caller via any one of the networks 1 2, 1 4, 1 6, 408. Interface means 452 also permits the user of the workstation to view, edit, and update information stored and retrieved from the database 476, and to merge that data via integration means (which utilizes conventional object linking and embedding, and dynamic data exchange technology) into conventional word-processing and/or other data processing computer applications (not shown) whereby to permit further processing of said data via such applications. The interface 452 also permits the user of the workstation to request that the active central controller change the call availability status of the workstation to permit the workstation to place an outgoing call, although it is important to note that the control and service request functions permitted by the graphical interface 452 are subject to the control of the active central controller. In other words, although the workstation may request that its call availability status be changed, unless permitted by the active central controller, the user workstation may not change the availability of the workstation to receive an outside call. Of course, it should be understood that if appropriately modified, the slave process 451 could be adapted to communicate directly with the central controller via one or more public, private, or wide area networks, so as to permit the central controller to be able to control the agent workstation directly (i.e., without having to go through the agent system), as shown in ghost in Figure 1 1 . In such a modification, the slave process 451 may be connected to means (not shown in Figure 1 1 ) for providing a multiplexing interface of the workstation 482A and other components of the system 400 (i.e., other workstations) to the central controller for gathering status messages, connection requests, etc. from the workstation 482A and/or other component and transmitting them to the central controller, and for transmitting control signals from the central controller to the workstation 482A and/or other components connected to the multiplexing interface means. A fourth preferred embodiment 500 of the present invention is shown in Figure 1 2. Unless specifically stated to the contrary, it should be understood that that functional components of embodiment 500 in common with those of embodiment 200 operate in substantially the same way as those of embodiment 200. It should also be noted that although not specifically shown in Figure 1 2, embodiment 500 comprises monitoring and administrative means that are substantially similar to those in embodiment 200. The central controllers 30A", 30B" utilize status messages from the network 1 2 and virtual caller service center 501 , service requests from the callers 1 8, 20 placing voice calls to the system 500, and optimization parameters to generate control signals for controlling the network 1 2 and service center 501 so as to optimally route the calls therethrough to the call service/IVR 74 and/or agent workstations 482' (whose preferred construction will be described more fully below). Caller service center 501 includes WAN interface means 472 for interfacing status/control process means 504 to central controllers 30A", 30B" . Slave process 504 transmits control signals to the telephony interfaces 68, 68', conventional open switching matrix 506, and caller service/IVR system based upon control signals received from the central controllers, and also gathers and transmits status messages from these components to the central controllers via the WAN interface. In this embodiment 500, agents 482' are connected to the switching matrix 506 via telephony interface means 68' and public network 14, which are controlled by the central controllers. Voice agent stations 482' receive control signals from and transmit status messages to the central controllers via the multiplexing interface means 502 (the operation of which has been described previously). It should be understood that although they are shown as being separate networks in Figure 1 2, networks 1 2, 14 may comprise the same physical network in this embodiment 500. Advantageously, in this embodiment, substantially all of the call routing "intelligence" resides in the central controllers rather than various other system components (e.g., PBX's, ACD's, etc.) . Thus, by appropriately modifying the programming of the central controllers, the central controllers may be used to optimally control many different types of call routing and/or switching hardware without requiring substantial modification and/or adaptation of those components. Figure 1 3 is a variation 500' of the system 500 of Figure 1 2, and unless specifically stated to the contrary, the operation and functional components of embodiment 500' should be understood to be substantially the same as those of embodiment 500. Substantially the only difference between embodiments 500 and 500' is that network 14 is omitted from the caller servicer 501 ' of embodiment 500'. As a result of this difference, interface means 68' in embodiment 500' is adapted to permit means 68' to optimally route calls directly to appropriate ones of the agent workstations 482' based upon control signals generated by the central controllers. Figure 1 5 shown the functional components of a preferred construction of the voice agent workstations 482' shown in Figures 1 2 and 1 3. Unless otherwise specifically indicated to the contrary, it should be understood that the functional components and operation of workstation 482 are substantially the same as those of workstation 482A. In workstation 482', however, the voice processing means 458 is connected directly to the either the public network 14 or to the interface means 68', and the voice processing means 458 is adapted to interact directly with these components, and to permit exchange of voice communication directly with callers via these components. Figure 14 illustrates a variation 26" of the agent system 26' shown in Figure 8. In agent system 26", the PBX 56 is adapted to be interfaced directly with the telephone networks 1 2, 1 4, 1 6. PBX 56 is adapted to forward all calls received from the networks 1 2, 1 4, 1 6 to the IVR 74 which is controlled directly by the central controllers via control signals received therefrom via the interface means 502. Control signals transmitted from the central controllers cause the IVR 74 to optimally route and queue calls from the networks 1 2, 14, 1 6 to the agent workstations 482'. Additionally, status messages from the workstations 482' and IVR 74 are transmitted to and control signals received from the central controllers via interface means 502. Thus, it is evident that there has been provided a communications systems and method for operating same that fully satisfy both the aims and objectives hereinbefore set forth. It will be appreciated that although specific embodiments and methods of use have been presented, many modifications, alternatives and equivalents will be apparent to those skilled in the art. For example, preferably, the above-presented functional components (with the exception of the networks 1 2, 14, 1 6, 408) of the preferred embodiments of the system of the present invention are embodied as one or more distributed computer program processes running on one or more conventional general purpose computers networked together by conventional computer networking means. Most preferably, each of these functional components is embodied by running distributed computer program processes on IBM-type, Intel 80486, Pentium™ or RISC microprocessor-based personal computers networked together by conventional networking means and including such additional conventional computer and telephonic communications hardware (e.g. modems) and software as is appropriate to enable performance of the stated function. Also, preferably, these personal computers run the Microsoft Windows™, Windows NT™, Windows 95™, or DOS™ operating systems. However, the various functional components of the embodiments of the system of the present invention may alternatively be constructed solely out of custom, dedicated electronic hardware and software, without departing from the present invention. Further alternatively, rather than use IBM-type PC's, the system may instead utilize SUN™ and/or conventional RISC- based workstations. Many other modifications are also possible. For example, although the monitoring means 31 , 31 ' of the preferred embodiments 10, 200, 400, of the system of the present invention may be thought of in a functional sense as comprising a single, centralized process, it may also comprise a plurality of distributed computer processes (not shown), at least one of which is located at each agent system 24, 26, 28, 24', 26', 28', 402, 404, 406, central controller 30, 30A, 30B, 30A', 30B' and administration means 32, 32A, 32B for monitoring the functioning of the functional components of the embodiments 1 0, 200, 400. In either case, the monitoring means monitors proper functioning of the components of the system by systematically receiving from the components status messages via monitor repeaters or distributors (similar in function to the distributor means 77) which copy the messages and distribute them to the monitoring means. The functional components intended to be monitored by the monitoring means are programmed to generate periodic status messages which are gathered by the monitor distributors and transmitted to the monitoring means. The monitoring means then may determine if the system behavior is within bounds and notify attendant personnel and/or initiate diagnostics on the failed system. Further alternatively, although the agent systems 26, 26' shown in Figures 3 and 8 utilize a local controller 70 or 71 ' to control distribution of calls within individual PBX 56 and ACD 60, if PBX 56 and/or ACD 60 are equipped with conventional Switch to Computer Applications Interface (SCAD means 1 03 and 1 05, the central controller 30, 30A may be used to directly control distribution of calls within the systems so equipped. In such an agent system, when a call is to be routed in a PBX 56 or ACD 60 equipped with SCAI means, the central controller transmits appropriate control signals for controlling a system equipped with SCAI means to the local controller 70, 70' which has been modified to permit transmission of these signals directly to the local area network 58 to the SCAI means of the PBX or ACD to be controlled. The PBX or ACD equipped with SCAI means may thus be controlled essentially directly by the primary central controller. It will be appreciated that although SCAI means 103, 1 05 are shown in Figures 3 and 8, means 103, 105 may instead be of any industry standard proprietary type, or may be adapted to utilize some other type of conventional industry standard control protocol. Other modifications are also possible. For example, although the foregoing description has proceeded upon the assumption that calls are routed from outside the public networks to the agent systems, if appropriately modified in ways apparent to those skilled in the art, the system may also permit and control routing of calls from the agent systems through the public network to outside call receivers. Additionally, although in the preferred embodiments of the system of the present invention, only the central controller is made redundant, other functional elements may also be made redundant by modifying them in ways apparent to those skilled in the art and/or utilizing the fault- tolerance principles discussed above. Advantageously, this permits even greater system-wide fault-tolerance to be obtained. Further alternatively, the various functional components of the embodiments 10, 200, 400 may be programmed or otherwise adapted to permit third party intra-system call routing or forwarding. For example, in the event that a workgroup to which a caller wishes to be connected by the system is busy or otherwise unable to accept the call at the time requested, the central controller may be programmed to forward the call to an interactive voice response (IVR) system or other such node appropriately provisioned (within the agent system or stand-alone), and to record appropriate data to enable the central controller to later connect the IVR to the workgroup to which connection was initially desired. The IVR may then prompt the caller to furnish appropriate information for later processing of the call (e.g. purpose of call, caller's name, telephone number, etc.). When the workgroup becomes available, the central controller connects the IVR to the workgroup, and commands the IVR to transmit the information stored from the caller to the workgroup via the public network. The members of the workgroup may then undertake further action, such as placing a call to the caller. Alternatively, upon notifying the caller that the workgroup is busy, the central controller or IVR may prompt the user to indicate whether the caller wishes to be called back by the workgroup. If the caller indicates that such is desirable, the central controller may record this and other information useful for later processing of the call, and terminate the call. Once the workgroup again becomes available, the central controller may then telephone the caller through the public network, prompt the caller when the caller wishes to be connected to the workgroup, and connect the caller to the workgroup. Additionally, if appropriately modified at least one of the public networks may be replaced by a private network suitable for being controlled by the central controller. In yet another modification, the system may be adapted to permit so-called "translation routing" using a conventional DNIS-number routing scheme. In such an appropriately modified system, the system directs the public interexchange carrier to route the call to a specific agent system using a specific DNIS number. When that call arrives at the agent system, the local router is adapted to direct the connection of the call to the desired service. As will be appreciated, the desired service may have been selected by the caller entering an account number, personal ID number or other type of direction information in response to a network- generated caller prompt. Further alternatively, the system may be adapted to permit caller and/or workgroup call routing and/or forwarding by permitting the caller and/or workgroup to enter a desired termination extension and then optimally routing the call to that extension. The active central controller may also be adapted to generate appropriate control signals for controlling at least one node (e.g., network 1 2, 1 4, 1 6, agent system, IVR, workstation, caller service, etc.) of the system to hold a call thereat before connection of the call to its ultimate destination. While the call is being held at the node, the central controller may cause the node (if the node is capable of this function) to prompt the caller to supply information for facilitating further processing of the call in the system. Alternatively, the central controller may cause another to be conferenced with the call while the call is being held at the node, or to prompt the caller to record a voice message if the node comprises a voice response unit. Also, if the node is appropriately provisioned for same, the central controller may cause the node to supply music to the call while the call is being queued at the node. Advantageously, such call queuing in the system may permit call routing and/or forwarding to anywhere in the system. Other modifications are also possible. For example, in embodiment 400, if the central controllers and agent systems are adapted in ways apparent to those skilled in the art, the local router of the agent systems may be eliminated, and the central controllers may control directly the workgroups, workstations, IVR systems, and multimedia services of the agent systems. Furthermore, if appropriately modified, the Internet and telephone agent workgroups may comprise separate, geographically remote, agent systems. In yet another modification, the system of the present invention may include Advanced Intelligent Network (AIN) platform means (e.g. , comprised within the telephone networks) for requesting an alternate termination (e.g., a remote agent or caller service) from the central controller in response to an AIN trigger from an original termination (e.g., a nearby agent system or caller service) requested by the caller. In such modification, the system includes at least one network switch for being controlled by the central controller to connect the call to the alternate termination. Accordingly, the present invention is intended to cover all such alternatives, modifications, and equivalents as may be included within the spirit and broad scope of the invention as defined only by the hereafter appended claims. Thus, advantageously, the present invention permits automatic telephone routing decisions to be made with "global authority" based upon information gathered in real time from the entire communications system. The present invention permits unified central control and management for the entire system. The present invention also uses a distributed client/server network structure that enables efficient use and transmission of system data, as well as fault tolerance through replicated system functions. A system-wide distributed diagnostic monitoring and servicing network permits reaction to and recovery from system component failure in real time. None of these features of the present invention are disclosed anywhere in the prior art.

Claims: CLAIMS 1 . A communications system, and comprising, at least one network ( 1 2) for interconnecting a call and at least one agent system (26, 26'), said agent system including a plurality of workgroups (62, 64), and a primary central controller 30A for generating control signals to control said network and said agent system to optimally route and interconnect said call between said network and one workgroup of said agent system, said central controller being adapted to generate said control signals based upon status messages received from said agent systems, requested service data from said network, and optimization parameters. 2. A communications system according to claim 1 , wherein said network comprises at least one long distance carrier. 3. A communications system according to claim 2, wherein said long distance carrier comprises a SS7 long distance control network and said central controller comprises means for interfacing to said control network. 4. A communications system according to claim 1 , wherein said network comprises a plurality of different long distance carriers and said central controller comprises means (42A) for interfacing to said different carriers whereby to supply pertinent control signals to said different carriers. 5. A communications system according to claim 1 , wherein said agent system includes an ACD (60) having a plurality of workgroups (62, 64) and said control signals permit said call to be optimally routed to one of said workgroups of said ACD. 6. A communications system according to claim 1 , wherein said agent system comprises an interactive voice response system (74) and said control signals permit said call to be optimally routed to said interactive voice response system. 7. A communications system according to claim 1 , wherein said agent system comprises a private branch exchange system (56) having a plurality of workgroups and said control signals permit said call to be optimally routed to one of said workgroups. 8. A communications system according to claim 1 , wherein said requested service data comprises a telephone number. 9. A communications system according to claim 1 , wherein said agent system control means comprises means (34) for interfacing said central controller with said plurality of agent systems. 1 0. A communications system according to claim 9, wherein said interface means comprises wide area network means (44). 1 1 . A communications system according to claim 1 , wherein said central controller comprises routing means (36) for generating control signals for controlling said at least one agent system based upon said status messages, said service data, and a set of optimizing parameters, said routing means comprising database means (54) for dynamically storing, updating, and retrieving said status messages, service data and optimizing parameters. 1 2. A communications system according to claim 1 1 , and further comprising, administration means (32) for permitting a user to control operation of said system. 1 3. A communications system according to claim 1 2, wherein said administration means comprises means ( 1 8) for inputting said optimizing parameters. 14. A communications system according to claim 1 , and further comprising a redundant central controller (30B) for controlling said system in event of failure of said primary central controller. 1 5. A communications system according to claim 14, wherein said redundant central controller is geographically remote from said primary central controller. 1 6. A communications system according to claim 14, and further comprising means ( 1 00A, 100B) for synchronizing respective internal states of said primary and redundant central controllers to permit said redundant central controller to essentially seamlessly begin controlling said system upon failure of said primary controller. 1 7. A communications system according to claim 1 , and further comprising monitoring means (31 ) for monitoring operation of said system. 1 8. A communications system according to claim 1 7, wherein said central controller includes means (50) for logging system information to a database. 1 9. A communications system according to claim 1 , wherein said agent systems are connected to said central controller via wide area network means (72). 20. A communications system according to claim 1 9, wherein said wide area network means comprises TCP/IP means. 21 . A communications systems, and comprising: (a) a plurality of public networks (1 2, 14) for interconnecting a plurality of calls to a plurality of respective agent systems (24, 26), each said agent system includes a plurality of workgroups (62, 64); (b) at least two central controllers (30A, 30B) for generating control signals to control said public networks and said agent systems to optimally route said calls through said networks and said agent systems to certain of said workgroups, said central controllers being adapted to generate said control signals based upon status messages received from said agent systems, requested service data from said network, and optimization parameters, said central controllers including a primary central controller (30A) and a redundant central controller (30B), said redundant central controller being for controlling said system in event of failure of said primary central controller, said central controllers being geographically separated from each other; (c) synchronizer means ( 1 00A, 1 00B) for virtually synchronizing respective internal states of said central controllers; (d) interfacing means (38A, 38B, 40A, 40B) for interfacing said central controllers to said public networks whereby to permit supply of said pertinent control signals to each of said public networks; and (e) gateway means (34A, 34B) for interfacing said central controllers to said plurality of agent systems. 22. A communications system according to claim 21 , and further comprising monitoring means (31 ') for monitoring said operation of said system. 23. A communications system according to claim 21 , wherein said control signals are also for controlling said agent systems. 24. A communications system according to claim 21 , and further comprising administration means (32A, 32B) for permitting a user to control operation of said communications system. 25. A communications system according to claim 24, wherein said administration means permits input of said optimization parameters. 26. A communications system according to claim 24, wherein said gateway means comprise wide area network means(44B) . 27. A communications system according to claim 26, wherein said central controllers each comprise database means (54A, 54B) for storing and retrieving said status messages, requested service data, and optimization parameters. 28. A communications system according to claim 1 , wherein said control signals are adapted to permit call load among said agent systems to be balanced. 29. A communications system according to claim 1 , wherein said control signals are adapted to permit cost of operating said communications system to be minimized. 30. A communications system according to claim 1 , wherein said control signals are adapted to permit call distribution to the longest available agent. 31 . A communications system, and comprising: (a) a public network (1 2) for interconnecting a plurality of calls ( 1 8, 20) to a plurality of agent systems (24', 26'); (b) a primary controller (30A) for controlling said communications system during normal operation thereof, said controller having means for receiving status messages from said agent systems and requested service data from said callers, said controller also having means for generating and supplying said control signals to said network and said agent systems whereby to optimally route said calls to said agent systems; and (c) a redundant controller (30B) for controlling said communications system in event of failure of said primary controller, said redundant controller including means for permitting shifting of control functions from said primary controller to said redundant controller upon said failure of said primary controller. 32. A method for optimally routing a call through a communications system (200) having at least one public network ( 1 2) for interconnecting said call to a workgroup (62) of an agent system (26'), said workgroup being one of a plurality of workgroups (62 64, 66), said method comprising the steps of: (a) transmitting requested service data from said call to said central controller; (b) transmitting status messages from said agent system to said controller; (c) generating control signals in said controller based in response to said requested service data, said status messages and a set of optimizing parameters; and (d) supplying said control signals to said network and said agent system whereby to optimally route said call through said network and said agent system to said one workgroup. 33. A method according to claim 32, and further comprising monitoring whether said controller is functioning properly whereby to determine whether a failure condition of said controller exists. 34. A method according to claim 32, and further comprising controlling said agent system with said control signals. 35. A method according to claim 32, and further comprising synchronizing respective internal states of said central controller and a redundant controller for controlling said system in event of failure of said central controller. 36. A method according to claim 35, and further comprising, upon failure of central controller, permitting said redundant controller to control said system. 37. A communications system according to claim 32, and further comprising means (31 ') for checking operation of said controller whereby to ascertain whether said at least one controller is functioning properly. 38. A method according to claim 32, and further comprising storing said requested service data, said status messages, and a set of optimization parameters in a database (54A). 39. A method according to claim 32, and further comprising monitoring elements of said system whereby to determine whether said elements are functioning properly. 40. A method according to claim 38, and further comprising storing system configuration information in said database. 41 . A method according to claim 40, and further comprising automatically updating entries in said database when said entries change. 42. A method according to claim 38, wherein said parameters include call routing parameters. 43. A method according to claim 32, and further comprising interfacing a user (80) to said system whereby to permit said user to administer said system. 44. A method according to claim 35, and further comprising geographically separating said central and redundant controllers. 45. A method according to claim 35, wherein said synchronization is virtual. 46. A system according to claim 1 , and further comprising a redundant controller (30B) for controlling said system in event of malfunctioning of said primary controller (30A), and means ( 100A, 1 00B) for virtually synchronizing receipt of status messages and service data by said controllers. 47. A method according to claim 39, wherein said monitoring comprises periodically querying said elements for proper response. 48. A system according to claim 1 , wherein said agent system also includes at least one caller service and said primary central controller is also for generating control signals for optimally routing said call to said caller service. 49. A system according to claim 48, wherein said caller service comprises an interactive voice response system (74). 50. A system according to claim 1 , wherein said agent system also includes a local controller (70') for routing said call through said agent system in response to said control signals. 51 . A system according to claim 50, wherein said local controller is connected to said primary central controller via a wide area network (72). 52. A system according to claim 1 , wherein said agent system comprises a conventional Switch-To-Computer-Applications Interface (SCAI) ( 103) for permitting said primary central controller to control distribution of calls in said agent system. 53. A system according to claim 1 , wherein said agent system comprises a conventional industry standard interface. 54. A call-forwarding method for use in the system of claim 1 , and comprising the steps of: (a) supplying said controller with data related to said call and representative of a desired forwarding termination for said call; (b) generating in said controller additional control signals for causing said network and said agent system to connect said call to said desired termination; and (c) supplying said additional control signals to said network and said agent system to cause said network and said agent system to connect said call to said desired termination, thereby forwarding said call to said desired forwarding termination. 55. A call forwarding method according to claim 54, wherein said desired termination comprises an interactive voice response unit for recording information said call. 56. A system according to claim 1 , wherein said control signals include translation routing messages for aiding in routing said call through said system. 57. A system according to claim 1 , wherein said network is a private network. 58. A system according to claim 1 , wherein said routing is also based upon a desired termination supplied to said system. 59. A system according to claim 1 , wherein said requested service data comprises calling line identification data. 60. A system according to claim 1 , wherein said requested service data comprises a sequence of digits entered by a caller. 61 . A system according to claim 1 , wherein said controller generates said control signals based upon, at least in part, caller-entered digits. 62. A call-forwarding method for use in the system of claim 1 , and comprising the steps of recording appropriate data from the call to permit transferring of said call to an appropriate termination. 63. A system according to claim 1 , and further comprising means for distributing information concerning said system to a plurality of means (32A, 32B) for administering said system. 64. A system according to claim 63, wherein said distribution means also gathers information concerning said system for use by monitoring means (31 '). 65. A system according to claim 1 , wherein said agent system includes a control interface 34A, 34B) for permitting control of said agent system by said central controller. 66. A communications system, and comprising, at least one network (1 2) for interconnecting a call and at least one caller service, a primary central controller (30, 30A) for generating control signals for supply to said network and said at least one caller service to control said network and said at least one caller service so as to optimally route and interconnect said call between said network and said at least one caller service, said central controller being adapted to generate said control signals for controlling said network and said at least one caller service based upon status messages received from said at least one caller service, requested service data from said network, and optimization parameters. 67. A system according to claim 66, wherein said central controller is also adapted to generate said control signals based upon status messages received from at least one agent system. 68. A system according to claim 66, wherein said at least one caller service comprises a stand-alone interactive voice response system. 69. A system according to claim 66, wherein said at least one caller service comprises an interactive voice response system (IVR) (74) and the control signals generated by said central controller cause said IVR to record appropriate data from said call for facilitating a transaction with an individual making said call. 70. A system according to claim 66, wherein said at least one caller service comprises an interactive voice response system (74) for recording data from said call for facilitating a transaction with an individual making said call. 71 . A method for controlling a communications system including at least one network (1 2) for interconnecting a call and an interactive voice response system (IVR) (74), a primary central controller (30A) for generating control signals for supply to said network and said IVR to control said network and said IVR so as to optimally route and interconnect said call between said network and said IVR, said central controller being adapted to generate said control signals for controlling said network and said at least one caller service based upon status messages received from said IVR, requested service data from said network, and optimization parameters, said method comprising the steps of: (a) transmitting to said network control signals generated in said central controller for causing said network to interconnect said call and said IVR; and (b) transmitting to said IVR control signals generated in said central controller for causing said IVR to record data from said call for facilitating a transaction with an individual making said call. 72. A method according to claim 71 , wherein said system further comprises at least one agent system (26') and said method further comprises transmitting to said network control signals generated in said central controller using data recorded from said call for causing said call to be connected to said at least one agent system after having been connected to said IVR. 73. A method according to claim 71 , wherein said system also comprises at least one agent system (26'), said call is placed by a caller, and said method further comprises terminating said call and using data recorded from said call to generate control signals in said central controller for causing said network to automatically initiate connecting of another call from said caller to said agent system. 74. A method according to claim 73, said method further comprising, prior to connecting said another call from said caller to said agent system, prompting said caller to indicate whether said caller wishes to be connected to said agent system. 75. A method according to claim 71 , wherein said network is a private network. 76. A system according to claim 66, wherein said network is a private network. 77. A system according to claim 71 , wherein said data is for permitting a workgroup to undertake further action concerning said call and said method further comprises transmitting to said IVR control signals generated in said controller for causing said IVR to transmit at least a portion of said data to said workgroup. 78. A communications system according to claim 1 , and further comprising, a database (476) of caller-related information for being interfaced with said at least one agent (482) whereby to permit data exchange between said database and said at least one agent. 79. A communications system according to claim 78, and further comprising, a local area network (58) for interfacing said database with said at least one agent system. 80. A communications system according to claim 78, wherein said central controller is adapted to generate control signals for controlling said data exchange between said at least one agent system and said database. 81 . A communications system according to claim 1 , wherein said workgroups comprise a plurality of individual computer workstations (482A, 482') connected together and to a database (476) of caller-related information via a local area network (58) for permitting data exchange among said workstations and said database. 82. A communications system according to claim 78, wherein said database includes transaction-related information associated with a caller placing said call. 83. A communications system according to claim 78, wherein said data exchange includes transmission of stored caller-related information from said database to said at least one agent system and transmission of updated caller-related information to database from said at least one agent system. 84. A communications system according to claim 1 , wherein said at least one agent system includes means (462) for transmitting to a caller placing said call a recorded voice message greeting. 85. A communications system according to claim 1 , wherein said at least one agent system includes a computer workstation (482A, 482') adapted to transmit to a user of said workstation a voice message in response to said call. 86. A communications system according to claim 1 , wherein said communications system is adapted to permit a caller (410) placing said call to make a voiceless transaction with said at least one agent system via said call. 87. A communications system according to claim 78, wherein said central controller is adapted to generate control signals for causing said communications system to prompt a caller ( 1 8) placing said call for caller-identifying information, to cause said call to be interconnected to said one workgroup based upon said caller-identifying information, and to cause said database to transmit to said one workgroup said caller-related information based upon said caller-identifying information. 88. A communications system according to claim 1 , wherein at least one of said workgroups includes a computer workstation (482', 482A) for being connected to said call, said workstation includes a graphical user interface (452) for permitting a user of said workstation to control, at least in part, processing of said call in said communications system and for displaying specific caller-related information from a database (476) of said information. 89. A communications system according to claim 1 , wherein said central controller is also for controlling at least one node in said communications system so as to queue said call at said at least one node before completing connection of said call to an ultimate destination. 90. A communications system according to claim 89, wherein said at least one node includes a caller service (74). 91 . A communications system according to claim 89, wherein said at least one node includes said at least one agent system (26'). 92. A communications system according to claim 89, wherein said at least one node includes said at least one network ( 1 2). 93. A communications system according to claim 89, wherein said queue controller is adapted to cause a caller ( 1 8) placing said call to be prompted to provide information while said call is being held at said at least one node. 94. A communications system according to claim 90, wherein said caller service includes a voice response unit (74), and said queue controller is adapted to cause said voice response unit to prompt a caller ( 1 8) placing said call to record a voice message in said voice response unit. 95. A communications system according to claim 1 , wherein said central controller is adapted to control at least one node in said communications system so as to conference said call with at least one other call. 96. A communications system according to claim 89, wherein said queue controller is adapted to cause said communications system to supply music to said call while said call is being held at said node. 97. A communications system according to claim 1 , wherein said at least one agent system includes individual agent workstations (482' , 482A) and means for indicating (502) to said central controller availability of said individual workstations to be connected to said call. 98. A communications system according to claim 97, wherein said indicating means includes means for preventing said agent workstations from changing their availability status. 99. A communications system, and comprising, at least one Internet network (408) for interconnecting an Internet caller (410) and at least one Internet agent system (406), said agent system including a plurality of workgroups (482) and being controlled by control signals supplied to said agent system, and a primary central controller (30A') for generating control signals for being supplied to said at least one agent system to control said at least one agent system so as to optimally route said call between said network and a workgroup of said at least one agent system, said central controller being adapted to generate said control signals for controlling said at least one agent system based upon status messages received from said at least one agent system, requested service data, and optimization parameters stored at said central controller. 100. A communications system according to claim 99, wherein said at least one agent system includes an Internet server (480) and at least one individual agent workstation (482A) connected together via a data exchange network. 1 01 . A communications system according to claim 1 00, wherein said least one agent system also includes means (68) for interfacing said at least one agent system to at least one telephone network ( 1 2) so as to permit a telephone call made via said telephone network to be connected to said at least one agent system. 1 02. A communications system according to claim 100, wherein said data exchange network includes said Internet network and at least one of said workgroups comprises an agent workstation (482A) connected to said server via said Internet network. 103. A communications system according to claim 1 00, wherein said data exchange network includes a local area network (58) connecting said workgroups to said server. 104. A communications system according to claim 100, wherein at least one of said workgroups comprises an agent workstation (482A) adapted for exchange of voice communication data with a caller placing said call via said Internet network. 1 05. A communications system according to claim 104, wherein said at least one agent system also includes means for interfacing said at least one agent system to at least one telephone network so as to permit a voice telephone call made via said telephone network to be connected to said at least one agent system, and said agent workstation is also adapted for voice communication with said voice call. 1 06. A communications system according to claim 101 , wherein said telephone call includes a facsimile call and at least one agent system includes at least one agent workstation (482A, 482') adapted for facsimile communication with said facsimile call. 107. A communications system according to claim 1 , wherein said at least one agent system includes an open switching system (506) controlled by said central controller for interfacing said network to said at least one agent system. 1 08. A communications system according to claim 99, and further comprising, at least one Internet service provider (484) for being connected via said Internet network to said call so as to provide information of at least one type to a caller placing said call, and said central controller is adapted to supply control signals to said service provider to control interconnection of said service provider and said call and the at least one type of information provided to said caller based upon said requested service data and status messages supplied to said central controller from said service provider. 1 09. A communications system according to claim 108, wherein said multi-media service provider includes at least one Internet multimedia service provider. 1 1 0. A communications system according to claim 1 08, wherein said at least one type of information is selected from the group consisting of: graphical, video, textual, and audio information. 1 1 1 . A communications system according to claim 1 08, wherein said central controller is adapted to generate control signals in response to status messages from said at least one agent system and said requested service data for causing said call to be disconnected from said service provider and to be connected to said at least one agent system. 1 1 2. A communications system according to claim 108, wherein said central controller is adapted to generate control signals in response to status messages from said service provider and requested service data for causing said call to be disconnected from said at least one agent system and to be connected to said service provider. 1 1 3. A communications system, and comprising, at least one telephone network (1 2) for interconnecting at least one telephone call to at least one telephone call service (60, 74), at least one Internet network (408) for connecting an Internet call to at least one Internet call service (482, 484), said caller services and said telephone network being controlled by control signals supplied thereto from a primary central controller for generating said control signals so as to optimally route said telephone call between said telephone network and said telephone call service, and also so as to optimally connect said Internet call and said Internet call service, based upon status message received from said call services, requested service data from said networks, and optimization parameters. 1 14. A communications system according to claim 1 1 3, wherein said call services comprise at least one telephone agent system, at least one Internet agent system, and at least one Internet multimedia service provider. 1 1 5. A communications system according to claim 1 1 3, wherein said call services are connected together via said Internet network and a telephone network/Internet network switching interface (486). 1 1 6. A communications system according to claim 1 1 3, wherein said caller services comprise at least one agent system including at least one agent workstation including voice processing means for permitting a user of said workstation to be able to verbally communicate with telephone and Internet callers placing said calls via said networks. 1 1 7. A communications system according to claim 1 1 6, wherein said voice processing means includes voice data compression/decompression means. 1 1 8. A communications system according to claim 1 , and further comprising, an Advanced Intelligent Network (AIN) Platform for requesting an alternate termination from said central controller in response to an AIN trigger from an original termination requested by said call. 1 1 9. A communications system according to claim 1 1 8, wherein said system further includes at least one network switch for being 50 controlled by said central controller to connect said call to said alternate termination. 1 20. A communications system, and comprising, at least one network ( 1 2) for interconnecting a call and at least one open switching matrix (506), said matrix and network being controlled by control signals generated by a central controller (30A") so as to optimally route said call through said network and switching matrix to at least one end termination (482', 74), said central controller generating said control signals based upon status messages from said network, switching matrix, and end termination, requested service data from said call, and optimization criteria. 1 21 . A communications system according to claim 1 20, wherein said at least one end termination includes a caller service and an agent workstation. 1 22. A communications system according to claim 1 20, wherein said switching matrix is connected to said end termination via said network. 1 23. A communications system according to claim 1 20, and further comprising, means (504, 502) for interfacing said matrix and said end termination to said central controller whereby to permit transmission of control signals from said central controller to said matrix and end termination, and to gather status messages from said network, matrix, and end termination for transmission to said central controller. 1 24. A communications system according to claim 1 , wherein said agent system includes at least one PBX (56) for being controlled by said central controller to connect said call to an individual agent (482'). 1 25. A communications system according to claim 1 , wherein said agent system includes at least one PBX for being controlled by said central controller to connect said call to an IVR (74) . 1 26. A communications system according to claim 1 24, wherein said agent system also includes an IVR (74) and said PBX is adapted to transfer said call between said agent and said IVR. 1 27. A communications system according to claim 1 25, wherein said IVR is adapted to receive from, transmit to, and process multiple calls from said PBX.

Inventors: ANDREWS G WAYNE, DAVIS CHARLES R, JOHNSON LAWRENCE E, KELLY JAMES P, MILANO VINCENT J JR, STERN JERRY A, WEBBER STEVEN H, ANDREWS, G., WAYNE, DAVIS, CHARLES, R., JOHNSON, LAWRENCE, E., KELLY, JAMES, P., MILANO, VINCENT, J., JR., STERN, JERRY, A., WEBBER, STEVEN, H.
Applicants: ANDREWS G WAYNE, DAVIS CHARLES R, GEOTEL COMMUNICATIONS CORP, JOHNSON LAWRENCE E, KELLY JAMES P, MILANO VINCENT J JR, STERN JERRY A, WEBBER STEVEN H, ANDREWS, G., WAYNE, DAVIS, CHARLES, R., GEOTEL COMMUNICATIONS CORP., JOHNSON, LAWRENCE, E., KELLY, JAMES, P., MILANO, VINCENT, J., JR., STERN, JERRY, A., WEBBER, STEVEN, H.
Application year: 1996
Main classification: H04M3
IPC codes: H04M3, H04M7, H04Q3