AU5038500A - Enterprise contact server with enhanced routing features - Google Patents

Enterprise contact server with enhanced routing features Download PDF

Info

Publication number
AU5038500A
AU5038500A AU50385/00A AU5038500A AU5038500A AU 5038500 A AU5038500 A AU 5038500A AU 50385/00 A AU50385/00 A AU 50385/00A AU 5038500 A AU5038500 A AU 5038500A AU 5038500 A AU5038500 A AU 5038500A
Authority
AU
Australia
Prior art keywords
call
customer
agent
communications
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
AU50385/00A
Other versions
AU771695B2 (en
Inventor
Raymond G. Goss
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Verizon Business Global LLC
Original Assignee
MCI Worldcom Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/317,561 external-priority patent/US6687241B1/en
Application filed by MCI Worldcom Inc filed Critical MCI Worldcom Inc
Publication of AU5038500A publication Critical patent/AU5038500A/en
Application granted granted Critical
Publication of AU771695B2 publication Critical patent/AU771695B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/5183Call or contact centers with computer-telephony arrangements
    • H04M3/5191Call or contact centers with computer-telephony arrangements interacting with the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • H04M3/5237Interconnection arrangements between ACD systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0024Services and arrangements where telephone services are combined with data services
    • H04M7/0027Collaboration services where a computer is used for data transfer and the telephone is used for telephonic communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • H04M3/5231Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing with call back arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • H04M3/5232Call distribution algorithms
    • H04M3/5233Operator skill based call distribution

Description

WO 00/72535 PCT/US0O/14058 ENTERPRISE CONTACT SERVER WITH ENHANCED ROUTING FEATURES 5 10 The present invention relates to data communications, and more particularly, to an enhanced customer to company call center communications system in 15 the telecommunications industry. In the telecommunications industry, call centers 20 are used to provide customer and operator services for business clients. Traditionally, customers of these business clients place a phone call to a toll-free telephone number to reach a call center customer service agent. They are then served over the phone. Often, 25 because of the limited number of agents at a call center and the large number of calls, a customer's call is placed in a queue until an agent becomes available. COS-98-0ll -1- WO 00/72535 PCT/USOO/14058 Many customers in the telecommunications industry interact with the Internet and World Wide Web, and use the Web for a variety of business services. -This presents a business opportunity to interact with customers who are 5 familiar with browsing the Web, by presenting to the customer a Web site and an opportunity to interact with the telecommunications company. However, the World Wide Web is not an interactive media, and is primarily composed of many static HTML pages at any given Web site. 10 The customers browsing the Web site may have a need to speak with a customer service agent, either with respect to the Web site and information posted there, or with respect to their transactions with the telecommunications company. 15 Many companies, including telecommunications companies, maintain call centers to interact with their customers. These call centers may provide order entry clerks for new orders, billing services for resolving problems with invoices, shipments or returns, technical 20 support, and trouble ticketing for customers having a high volume of transactions with the company. However, given the volume of customer calls, and the company resources available to respond to the calls; most calls to the call center are placed on hold by an 25 automatic call director ("ACD") , and the initial customer interaction is with an interactive voice response unit ("VRU") , which is primarily intended to direct the call to COS-98-011 -2- WO 00/72535 PCT/USOO/14058 the proper agent, and is not programmed to answer a customer's questions. This frequently leads to aggravated customers who are unable to resolve their concerns in a timely manner. 5 The only means presently available to contact a company call center agent and not be placed on hold, is to place a telephone call and submit a call-back request via the telephone, or to send an e-mail request to the "web master" of the Web site. Current Web services do not allow 10 call-back requests to be submitted via the Web or other interactive means. 15 The present invention is directed to a call routing system for a Network/enterprise that enables routing of messages, calls, and data between call centers distributed throughout a Network/enterprise. The call routing system for a Network/enterprise particularly 20 invokes a method of locating and reserving skilled agents in one of a plurality of remote centers before initiating a call transfer or conference. Routing of messages, calls, and data between call centers distributed throughout the Network/enterprise is particularly enabled by implementing 25 routing algorithms based on agent skills, agent availability, workflow states, and load balancing to determine the route path, The call routing system may be COS-98-011 -3- WO 00/72535 PCT/USOO/14058 readily integrated with existing ACDs, as well as email, Voice/video over IP, the H.323 Gateways/Gatekeepers, URL push services, and other distributed communication systems. Particularly, the present invention is directed 5 to improvements to the telecommunications call center architecture described in co-pending U.S. Patent application Serial No. 08/976,162 assigned to the assignee of the present invention, and incorporated by reference herein. In the telecommunications call center 10 architecture, an Enterprise Contact Server is provided which enables enterprise-level processing and routing of both contact requests and inbound calls originating from any communications source, e.g., standard PSTN telephony, IP telephony, the Web, and other HTTP means. 15 "Enterprise-level processing and routing" means that agents at any of a plurality of call centers having a Center Contact Server, may receive a contact request from a customer, and fulfill that request by placing a contact to the customer. A single means for placing contact requests, 20 such as a Web page link or a telephone number, can be used to place contact requests that are supported by the plurality of call centers. Particularly, each Enterprise Contact Server performs the following functions: 1) it communicates with 25 each call center Contact Server; and, 2) it tracks the states and availabilities of resources (e.g., agents) at each of a plurality of call centers. Specifically, each COS-96-011 -4- WO 00/72535 PCT/USOO/14058 Center Contact Server sends event messages to the Enterprise Contact Server to continuouSly update the Enterprise Contact Server with current states and availability data. When a contact request is received, the 5 Enterprise Contact Server determines and selects an available qualified agent among the agents at the plurality of call centers, and then sends the contact request to the Center Contact Server that supports the selected agent. Advantageously, the present invention can also 10 be used to route inbound calls, i.e., those calls made to a call center via the PSTN, the Internet or other IP telephony network, or virtually any communications means, throughout the network, with the same systems architecture as used on processing and routing contact requests. That 15 is, contact requests are treated as inbound calls, and the same systems architecture, including the Enterprise Contact Server and plurality of call center Contact Servers, it used to process and route both. COS-98-011 -5- WO 00/72535 PCT/USOO/14058 Figure 1 is a diagrammatic illustration of the logical communications network architecture implementing 5 the enterprise contact server of the present invention. Figure 2 is a diagrammatic illustration of a physical network architecture, illustrating one possible implementation of the logical architecture of Figure 1. Figures 3(a)-3(c) together comprise a flowchart 10 illustrating a process for performing enterprise-level routing of a contact request using the Enterprise Contact Server of the invention. Figures 4 (a) -4 (b) illustrate the process for placing, processing, and routing inbound calls via the 15 PSTN, or other similar communications means for placing an inbound call. Figure 5 is a diagrammatic illustration of the Enterprise Contact Server of the present invention and the components with which it interacts. 20 Figure 6(a) illustrates an exemplary architecture of an enterprise "Click-'n-Connect" system 440. Figure 7 is a representative illustration of a sample HTML web page which enables a call back request. COS-98-011 -6- WO 00/72535 PCT/USOO/14058 Commonly owned and co-pending U.S. Patent No. 5 08/976,162, describes a computer system called a Contact Server, integrated within a novel telecommunications system architecture, that allows customers to place contact requests to a call center by any available communications means, including the Internet, and to receive contacts from 10 an agent by any available communications means. By the reason that requests can be placed by means other than via a telephone network, these requests are interchangeably referred to herein as "contact requests" or "call-back requests." For instance, the methodology described captures 15 contacts by an agent other than a call, but rather a contact such as an HTTP session, for example. The Contact Server described in U.S. Patent No. 08/976,162 is used t6 provide "contact services" for customers separate from, in addition to and in conjunction with any call back services 20 provided by ACD and VRUs. The Contact Server may also receive contact requests directly from customers over an IP network from web server, and distribute requests to qualified agents at agent work stations at the call center. The contact server may also reserve qualified agents fo'r 25 specific types of problems in order to fulfill the call back request. In the manner described in U.S. Patent No. 08/976,162, customers submit call-back requests via the COS-98-011 -7- WO 00/72535 PCTIUSOO/14058 Internet, an Intranet or other comparable IP network, and agents may fulfill those requests by placing outbound calls to the customers via the ACD and PSTN. However, the Contact Server is designed to manage call-back services in S a manner that is independent of the communications networks used. These call back services may include other methods of receiving and fulfilling call-back requests such as Internet voice telephony, Internet video, chat or e-mail communications. 10 The call center contact server also facilitates communications with other data sources, such as a data base server, or other data resources, such as a company main frame. These data sources include components such as database servers that store and serve data specific to 15 whatever applications and services are provided by the call center. For example, one implementation of the Contact Server and call-back service is to enhance a service that enables external customers of the company to view any trouble tickets over the Internet or IP network by 20 accessing a trouble ticket database. Alternately, the Contact Server may access a company main frame system which provides problem identification services for customers. The present invention is directed to communications systems architecture employing an Enterprise 25 Contact Server that enables the routing of messages, calls, and data between and among multiple call centers distributed throughout a network/enterprise. As will be COS-98-011- WO 00/72535 PCT/USOO/14058 described, the Enterprise Contact Server 100 in conjunction with a communications systems architecture 101 provides contact services to customers over virtually any communications means, e.g., PSTN and the Internet. To 5 place a contact request or an inbound call, a customer may use the standard telephone connected to the PSTN, a PC with an 12 telephony application connected to the Internet for placing IP calls, or a PC with a Web Browser for interfacing with the Web. The Internet is another 10 communications means for providing contact requests, and for providing contacts such as described in the patent U.S. Patent No. 08/976,162. However, the exception is that contact requests that are collected by an Intranet Web Server are sent to the Enterprise Contact Server, rather 15 than a call center contact server. The figurative diagram of Figure 1 and the corresponding preferred physical architecture diagram of Figure 2 both illustrate the communications system architecture 101 employing the Enterprise Contact server 20 100 of the invention. Such a communications system architecture 101 and enterprise contact server 100 provides enhanced enterprise-level call routing and contact request service for calls initiated from the public Internet 32 or public switched telephone network 20 to any of a plurality 25 of call centers lla, 1lb,..,lln. As shown in Figure 1, there is illustrated 'a single call center 10 having the following components: 1) COS-98-011 -9- WO 00/72535 PCT/USOO/14058 an Automatic Call Distributor 12 ("ACD") which provides a telephony switching means that interfaces with a public switched telephone network ("PSTN") 20 via voice trunks 22 for inbound and outbound telephone calls, queues inbound 5 calls, and distributes inbound calls among the plurality of agents; 2) a call center Contact Server 28 that supports resources (e.g., agents) at the call center in the manner such as described in above-mentioned, co-pending U.S. Patent Application No. 08/976,162; 3) one or more agent 10 workstations 14 including a Personal Computer (PC) running customized communications and browser software and capable of receiving call data from the Contact Server 28, and interfacing with the Internet for IP telephony sessions and collaborative HTTP sessions over the Web; 4) one or more 15 agent telesets 13 used for telephone calls over the PSTN 20 via the ACD 12; 5) a Computer/Telephony Interface ("CTI") Server 18, such as the "TServer" product offered by Genesys Corporation, that is connected to a CTI port of the ACD 12 via link 26 and which provides event data received at ACD 20 to computers such as the agent workstations, VRUs, and the call center Contact Server 28; and 6) a LAN 11 (corresponding to the labeled "Call Center A") that provides data connectivity among the various components of the call center 10. Data interfaces to the ACD are provided 25 by the CTI server. Additionally, associated with the call center 10 is an Enterprise Voice Response Unit ("VRU") 16 that runs COS-98-011 -10- WO 00/72535 PCT/USOO/14058 specialized interactive voice response ("IVR") applications for providing automated customer and operator services for callers. As shown in.Figure 1, the VRU 16~has a separate voice link 24 to the PSTN 20 to enable direct connection to 5 the call center LAN 11a to forward call data to the Center Contact Server 28. In this configuration, any calls received over the PSTN 20 can be routed to any ACD at any call center. Although Figure 1 depicts a single Enterprise VRU 16 associated with a single call center, it is 10 understood that one Enterprise VRU can be used for the plurality of other call centers. If the architecture is such that an Enterprise VRU is located with each call center, then the Enterprise VRU is directly connected to the call center LAN; otherwise, a WAN can be used. 15 Furthermore, there is provided a database server 34 representing and embodying all databases related to the contact or call-back service at the local call center level including: call-back request database in which call-back requests are stored and queued, agent state tables, and 20 agent skills tables at the call center level. As shown in Figure 1, each respective call center LAN Ila, llb,..,lln is connected by a respective WAN 34a, 34b, .. , 34n to a centralized Data Center LAN 31 to enable data transactions with the Enterprise Contact Server 100 of 25 the invention. As a consequence, each Enterprise VRU 16 is also connected to the Data Center 31 via the WAN. In the embodiment shown in Figure 1 in which there is one COS-98-011 WO 00/72535 PCT/USOO/14058 Enterprise VRU 16 per call center, a call to a particular Enterprise VRU 16 can be routed to any call center to reach an available qualified agent via the data center LAN 31. In the preferred embodiment, the Enterprise 5 Contact Server 100 is a computer running specialized software to enable enterprise-level routing of contact requests, so that agents at a plurality of call centers can fulfill customers' contact requests from a single source (e.g., Web page) or to a single telephone number. In 10 accordance with the invention, each center Contact Server 28 constantly sends event messages to the Enterprise Contact Server 100 which event messages are used by the Enterprise Contact Server 100 to track the current states and availability of each resource (agent) across the 15 enterprise. As shown in Figures 2 and 3, the Enterprise Contact Server 100 interfaces with a database 134 that includes: skill tables that identify the particular skill profile of each agent; and state tables that identify the current state of each agent. When a contact request is 20 placed by a customer, it is sent to the Enterprise Contact Server 100 which first queries its skills tables to determine a qualified agent. When a qualified agent is found, the Enterprise Contact Server 100 then queries the state tables with the qualified agent i.d. to determine if 25 that agent is currently available. If the qualified agent is not available, the Enterprise Contact Server finds another qualified agent. It then sends the contact request COS-98-011 -12- WO 00/72535 PCT/USOO/14058 data to the appropriate center Contact Server 28 that supports the call center at which the selected agent is located. Preferably, standard mid-range computers, such as 5 DEC Alpha 4100 or 8400 servers, can be used for the Enterprise Contact Server 100, Database Server 134, as well as Intranet Web Server 130, Firewall Server 140, and other data sources 136 as will be described. To enable the enhanced enterprise-level routing 10 functionality, the communications system architecture 101 is further provided with an Enterprise Router 105 functioning as an intelligent call router ("ICR") which is a computer application that provides intelligent routing of inbound calls, e.g., in the manner as described in commonly 15 assigned, co-pending U.S. Patent Application No. 08/796,840. Particularly, the Enterprise Router 105 receives call routing requests, i.e., data messagesI generated for an inbound call received on a PSTN switch, and processes the request to determine where to route the 20 call. Based on real-time state and availability data received by call centers, the ICR selects an available qualified destination (e.g., agent) to which to route the call. In the preferred embodiment, the Enterprise Router 105 is an application distinct from the Enterprise Contact 25 Server, such as shown in Figure 2, and is embodied as a distinct software application and database that resides on another computer (different than the Enterprise Contact COS-98-011 -13- WO 00/72535 PCT/USO0/14058 Server 100). In this embodiment, the Enterprise Contact Server interfaces with the Enterprise Router via an API 110 to enable the use of different types and vendors' offerings of an Enterprise Router. Alternately, the Enterprise 5 router 105 may be a distinct software application and database that resides on the same computer as the Enterprise Contact Server or, it can be integrated with the Enterprise Contact Server application as a process or sub-system. As will be described, the Enterprise Router 10 105 provides enhanced functionality by enabling a call to be first routed to a VRU using only the DAP which routes all calls for a single number to the VRU. At the VRU an IVR application collects information from the caller which is used by the Enterprise router to further resolve 15 routing. In this manner, an enterprise can use the same telephone number for multiple services and differs from the prior art implementations in which calls are first routed by an ICR based only on the data generated by the call', e.g., DNIS, ANI, time of day, day of week, etc., and 20 wherein the call is only sent to a VRU if it needs to be queued. As further shown in Figure 2, a Web/Intranet Server 130 is also provided to support each of the business' Web sites, along with Java applications for use 25 with the present invention. As described herein, at least one process is provided, embodied by a Java application on the Web Server, that receives contact requests submitted by COS-98-011 -14- WO 00/72535 PCT/USOO/14058 a customer over the Web and sends these contact requests to the Enterprise Contact Server 100 for processing. The Firewall. server 140, is a collection of components comprising a Data Management Zone ("DMZ") that 5 provides a secured interface to the Data Center LAN 31 for public Internet users. It has an identical Web/Intranet Server process running on it; and it is from this Web Server (on the Firewall Server 140) that the Java applets are downloaded to the customer PC and web browser 42. 10 Identical Java applets are downloaded to agent workstations 14 from the Web Server 130. A Network CTI Server (such as Genesys' Network TServer) 118 is similar to a call center's CTI Server 18, except that its application is extended to the enterprise 15 level. As shown in Figure 1, unlike the call center CTI Server 18, the Network CTI Server 118 receives call routing requests from a data access point 125 ("DAP") via a 600 Gateway interface component 130 and distributes these requests among a plurality of call center CTI Servers. The 20 800 Gateway component 130 particularly provides a data interface to the DAP for external call. processing systems such as described in co-pending U.S. Patent Application No. 08/796,246, the contents and disclosure of which is incorporated by reference as fully set forth herein. More 25 particularly, for routing inbound calls, the PSTN uses the DAP 125 which provides for basic call routing for special service numbers. When a PSTN switch receives a call, it COS-98-011 -15- WO 00/72535 PCT/USOO/14058 issues to the DAP a service request message which the DAP processes to determine a destination to which to route the call. Typically, the number is based on at least the dialed number and other data, e.g., ANI, time of day, day 5 of week, etc.. The enterprise router 105, which is a form of an ICR, provides more enhanced call routing based on real-time data received from the call centers. The Data Center 31 is a LAN that provides data connectivity among the Web Server 130 and Internet 32 (via 10 the DMZ), Enterprise Contact Server 100, Network CTI Server 118, and the plurality of Call Centers "a"-"n". Specifically, the data center LAN 31 is connected to each call center ila, 1lb,..,lln by respective call center WANs 34a, 34b,..,34n to provide a physical interface among the 15 Enterprise Contact Server 100 and each Center Contact Server 28. Figure 2 illustrates one possible physical implementation of the logical architecture of Figure 1 having a first Ethernet LAN Ila and a second Ethernet LAN 31 which provides data connectivity among the various 20 computer components of the call center 10 described with respect to Figure 1. The intranet server 166 embodied as a Web Server 130, supports the Web site and TCP/IP communications for whatever services are being supported by the call center, 25 such as the Web site that allows customers access to a trouble ticket database maintained on data base server 37. COS-98-011 -16- WO 00/72535 PCTIUS0O/14058 A customer, generically illustrated at 42 in Figures 1 and 2, who desires to make use of the invention will normally have a Personal Computer TPC) 44 running customized communications and browser software, e.g., 5 Microsoft Explorer@ or Netscape Navigator( or Communicator@ for IP communications, and a Lelephone 46. Each agent workstation 14 also runs a Web browser for IP communications, and customer service workflow software, such as ClarifyO, for providing customer services. 10 Java applets may be used in the practice of the invention to support the call-back service and the applets and other features that are stored on and may be downloaded within the company LAN or WAN from the Web Server 130. As mentioned, it is from the firewall server 140 having a Web 15 server process that downloads Java applets to the customer PC 44 and web browser. Identical Java applets are downloaded to agent workstations 14 from the Web Server 130 that runs on the Intranet. As mentioned, the enterprise contact server 100, 20 in conjunction with the communications system architecture 101 of Figure 1: supports additional communication means IP telephony, HTTP sessions, etc.; enables use of the same platform for contact requests and inbound calls; and, enables use a single telephone number for multiple services 25 by enabling the data access point ("DAP") to route all calls for a single number to a VRU implementing an IVR COS-98-011 -17- WO 00/72535 PCTIUSOO/14058 application to collect information from the caller which can be used to further resolve call routing. These scenarios are exemplifieil in the flow diagrams depicted in Figures 3(a) -3(c) and 4(a) - 4 (b). 5 Figures 3(a)-3(c) together comprise a flowchart illustrating a process for performing enterprise-level routing of a contact request using the Enterprise Contact Server. This shows a specific embodiment of the present invention, in which the call-back service is implemented 10 for a secured Web site that requires user authentication. At the company, the Enterprise Contact Server will be used with a Web site running an application that enables customers to access the company's trouble ticket system and view the status of their tickets. Therefore, each customer 15 has a user profile setup in a profile database on the Database Server. It is from this database that skills designators are obtained. A similar type of call-back service can be implemented with the Enterprise Contact Server for other 20 applications, not all of which require user login. Additionally, the Enterprise Contact Server can be used to accept call-back requests from sources other than the Internet. As shown in Figure 3(a), at step 210, a customer 25 logs into a Web site. The Web Server authenticates the customer's user i.d. and password against the customer's user profile, which is stored in a database on the Database COS-98-011 -18- WO 00/72535 PCT/USOO/14058 Server. If the customer is authenticated, the Web Server sends to the customer browser the HTML file that includes the Web site's home page. Embedded in this file are the Java applets that will be used to establish communications 5 between the agent workstation and the customer PC. The Java applets perform other functions, such as providing a dialog box for initiating a contact request in step 210. The Web Server 130 maintains a session with the customer browser over the Internet using cookies or other 10 session maintenance technology. This way, when the customer submits a contact request, the Web Server can identify that customer for the purpose of matching the contact request to a qualified agent. The customer can now browse the Web site. 15 In the exemplary embodiment described, a customer is operating within a trouble ticketing system to view the status of his/her trouble tickets. During the course of reviewing trouble tickets, the need arises which requires a customer to communicate with a service rep 20 (call center agent), e.g., to ask a question or some other reason. In step 212, the customer selects the contact request (call-back) feature, which is typically an HTML button on a Web page. This causes a dialog box 25 to be presented to the customer to prompt him/her for their'name and call-back telephone number. The call back telephone number can also include an extension, so COS-98-011 -19- WO 00/72535 PCT/USOO/14058 that if the customer is calling from a PBX and an operator (live or automated) answers the phone on the call-back, the call center agent will know the extension needed to reach the customer. 5 Additional information can be soLicited here as well, such as a customer identifier that can be used as a skills designator to match the call-back request to a qualified agent. A call-back time can be solicited, to state when the customer would like to be 10 called back. Call-back time can be entered either as a specific clock time (i.e, 3:00 pm est), or as a duration (i.e., 20 minutes from now). Without a call back time entered, it is assumed the customer is requesting a call-back as soon as possible. 15 In step 214, when the customer has selected the contact request and has completed the contact request dialog box and hits enter, the customer browser sends the call-back request to the call center Web Server, via the Internet, as indicated at step 216. 20 At step 218, the Web Server 130 receives the call-back request and forwards it to the Enterprise Contact Server via the Data Center LAN 31. In addition to the information provided by the customer in step 210, the Web Server includes in the contact request 25 message that it forwards to the Enterprise Contact Server: the IP address of the customer, the URL of Web page from which the call-back request was selected, and, the customer identifier of the customer. The customer identifier is obtained from the customer's 30 user profile when the customer logs on in step 210. Thus, the customer's IP address and the URL will be provided to the agent workstation. COS-98-011 -20- WO 00/72535 PCT/USOO/14058 In step 220, the Enterprise Contact Server queries the skills database with the skills designator (i.e., the customer identifier) to find a qualified agent; that is, an agent listed with that particular 5 skills designator. The Enterprise Contact Server actually identifies all agents with that skill, so that if one agent is not currently available, another agent can be used. In step 222, the Contact Server queries the 10 state table to find an available agent with the highest skill level of the needed skill. These state tables are constantly updated with data that the Enterprise contact Server receives in event messages from each center contact server. 15 In step 224, a determination is made as to whether a qualified agent is available. If at step 224 it is determined that a qualified agent is not available, then the Enterprise Contact Server proceeds back to step 222 to query the state table until a 20 qualified agent is available. Alternately, a queuing/monitoring method may be established comprising the steps of: placing the contact request on a call back queue on the Database Server 134; monitoring the call-back request queue and state tables; and 25 determining if a qualified agent is available to take a call-back request in queue, as described in co pending U.S. Patent Application No. 08/976,162. It should be understood that this queuing/monitoring step may include the step of applying business rules. 30 If at step 224 it is determined that a qualified agent is available, then the Enterprise Contact Server will send the contact request to the COS-98-011 -21- WO 00/72535 PCT/USOO/14058 call Center Contact Server 28 of the call center having the qualified agent, e.g. Call Center A, as indicated at step 228. Then, at step 230, Figure 3(b), the Contact Server sends the contact request to the select 5 agent workstation 14 via the call center LAN, e.g., LAN lla. This request includes all information entered by the customer, as well as the customer's IP address and the URL of the Web page from which the contact request was placed. The selected agent workstation, when it 10 receives the contact request, screen-pops the contact request in a window displaying the customer's name, call-back number, and perhaps other information entered by the customer. The selected agent workstation then 15 processes the contact request, in the manner such as described in co-pending U.S. Patent Application No. 08/976,162. For example, as shown at step 234, Figure 3(b), this processing may entail: downloading a Common Gateway Interface ("CGI") script from the Web Server 20 for execution on the agent workstation to launch the agent's browser. In this step, the URL is passed as a parameter to the CGI script which can then be used to build the same Web page that the customer was at when the contact request was placed. In reference to Figure 25 2, the agent browser retrieves Web pages from a Web Server on the Intranet/Web Server 30, while the customer retrieves identical Web pages from an identical Web Server on the Firewall Server. Then, at step 238, a Java applet is downloaded to the agent 30 browser from the Web Server on the Intranet Server. The customer's IP address is passed as a parameter by COS-98-011 -22- WO 00/72535 PCT/USOO/14058 the CGI script. The agent browser displays the same Web page as the customer browser. In step 240,. the Java applet that was downloaded in step 136 establishes and maintains TCP/IP 5 communications between the agent browse, and the customer browser, using the customer's IP address that was included in the call-back request sent to the agent workstation, and, at step 242, the Contact Server 28 sends a message to the CTI Server to cause the ACD to 10 place an outbound call to the customer's call-back number. As noted in reference to Eigures 1 and 2, this can occur in any of a number of ways and at any of a number of points in the process. In the preferred embodiment, the Contact Server will send this message 15 at the same time it sends the contact request to the agent workstation, in step 234. Alternately, the Contact Server can set a timer in step 234. When the timer expires, step 242 is triggered. In step 244 and in response to the message 20 sent by the Contact Server in step 242, the ACD places an outbound call to the customer's call-back number. The call is placed from the agent's telephone station, so that the agent's telephone line to the ACD is seized during this process. The customer may or may not 25 answer, as determined in step 246. If the customer answers, then in step 248a, both telephony and TCP/IP communications sessions proceed between the agent and the customer. In step 250, the call completes and the 30 customer and agent each hangup. Referring back to step 246, if the customer does not answer, then i.n step 248b, a TCP/IP COS-98-011 -23- WO 00/72535 PCT/USOO/14058 communications session can still proceed between the customer and agent. In fact, an on-line chat session can replace a telephone call. In step 252, the agent terminates the TCP/IP 5 session. In step 254, the Contact Server updates the state tables to show the agent is now available. The Enterprise Contact Server could also select only a call center that had an available qualified agent, without selecting the actual agent. 10 The Enterprise Contact Server would then send the contact request to the selected call center's Center Contact Server, and the Center Contact Server would then select the actual agent. Referring back to Figure 3(a), in an 15 alternate embodiment, when the Enterprise Contact Server 100 receives a contact request at step 218, it may select a call center that has qualified agents. Certain other criteria may be used to select one from many call centers with qualified agents, such as the 20 call center with the most qualified agents. The Enterprise contact server may then send a status query to the call center Contact Server for that selected call center. That Center Contact Server 28 returns a response indicating if a qualified agent is available. 25 If so, that Center Contact Server receives the contact request. If not, the Enterprise Contact Server selects another call center. As yet another alternate embodiment, when the Enterprise Contact Server 100 receives the contact 30 request at step 218, it may select all call centers having qualified agents. The ECS then sends a status query to the Center Contact Servers for all selected COS-98-011 -24- WO 00/72535 PCT/USOO/14058 call centers. The first Center Contact Server to return a positive response indicating that a qualified agent is available will-receive the contact requesL. Figures 4(a)-4(b) illustrate the process for 5 placing, processing, and routing inbound calls via the PSTN, or other similar communications means for placing an inbound call. In the described process, it is assumed that the received call is an 1-800 toll free call. 10 As shown at step 310, Figure 4(a), the customer first places a call to a call center. The call is carried by the PSTN switch which, in response, queries the DAP to determine where to route the call. The DAP performs a call processing application to 15 resolve routing to an Enterprise VRU. If a plurality of Enterprise VRUs are used, routing may be resolved to a single VRU, or even a single port or port group on a VRU, based on any of a number of criteria; for example, dialed number, ANI, time of day, day of week, load 20 balancing algorithms, etc. Then, as indicated at step 316 the call is routed by PSTN to the Enterprise VRU, and, as indicated at step 318, an interactive voice response application on the VRU is executed to collect information from the caller. This information is used 25 to determine an appropriate destination for the call. As indicated at step 320, the VRU then sends a query message, including information collected from the caller, to the Enterprise Contact Server which then queries the Enterprise Router, as indicated at step 30 322, As mentioned, the Enterprise Router may be a sub-system integrated with the Enterprise Contact Server, or, preferably, is a distinct process that can COS-98-011 -25- WO 00/72535 PCT/USOO/14058 run on the same or different computer than the Enterprise Contact Server. As indicated at step 324, the Enterprise Router then determines an appropriate destination for 5 the call, based on services needed, skills of agents, and availability of agents. A destination may be a call center, a group of agents at a call center, or a particular agent at a call center. In the preferred embodiment, resolution of routing down to a particular 10 agent is a process that can be distributed between the Enterprise Router and a Center Contact Server. That is, routing parameters (used to determine where to send each inbound call or contact request) could be the same on both the Enterprise Router and each Center Contact 15 Server, or could be distributed among them. For instance, the Enterprise Router can perform high-level routing (e.g., only to a call center) based on certain parameters, while the Center Contact Server 28 resolves routing at a more detailed level (e.g., to a particular 20 agent) based on certain other parameters. For example, the Enterprise Router could determine an agent skillset needed and a call center that has agents with that skillset, and have the call routed to that center. The Center Contact Server at that center then determines an 25 available qualified agent to handle the call. Next, as indicated at step 326, the Enterprise Contact Server returns a response to the VRU comprising the call data provided by the Enterprise Router. The type of data returned includes, but is not 30 limited to, the following: data for routing the call (e.g., type or skillset of agent needed to handle call, which call center has such agent available), and data COS-98-011 -26- WO 00/72535 PCT/USOO/14058 pertaining to the caller or service (e.g., billpayer i.d., customer account data, caller-selected options). Next, as indicated at. step 328, Figure 8 (b) , the Enterprise VRU attaches data to the call and routes the 5 call to the ACD of the selected call center destination. Concurrently, the VRU sends data for the call to the destination call center Contact Server. It should be understood that steps 322-324 provides a distinct advantage over prior art in inbound 10 call routing. Since the VRU collects information from the caller to determine an appropriate destination for the call, the same telephone number can be used for multiple services. Resolution of routing to a particular service is made by the Enterprise Contact 15 server and Enterprise Router, based on the information collected by the VRU, as opposed to first routing a call to its appropriate destination, based on processing by the DAP and/or an ICR which is limited only to information provided in call-generated data, 20 such as dialed number and ANI. Thus, a single number cannot be used for multiple services. Additionally, in view of Figure 8 (b), at step 332, the ACD receives the call, and, at step 334, the ACD sends call data to the call center's CTI 25 Server, which passes data to the call center Contact Server. It should be understood that this is not data that the VRU sent to Center Contact Server in step 328, but data received with a call over the PSTN, i.e., dialed number, ANI, CIC, etc.. In the manner such as 30 described in co-pending U.S. Patent Application No. 08/976,162, the call center Contact Server resolves routing down to a single destination, i.e., a selected COS-98-011 -27- WO 00/72535 PCT/US0O/14058 agent, as indicated at step 336. The Center Contact Server also reserves that agent, and updates its state tables accordingly (to designate the agent as reserved). 5 Finally, as indicated at step 338, the call is routed to the selected agent's teleset. At the same time, the T-server sends an event established message identifying to which agent the call was sent. The Contact Server receives the notification, and at 10 step 338 additionally routes the data that the Center Contact Server received from the VRU (at step 328) to the selected agent's workstation, which now has all the information necessary to process the request. The Center Contact Server updates its state tables 15 accordingly (to designate the agent as unavailable) as indicated at step 340, and sends an event message to the Enterprise Contact Server at step 342 regarding the unavailable status of the selected agent. Figure 5 illustrates the process interfaces 20 to the Enterprise Contact Server 100 within the communications system architecture. The fundamental software architecture is similar between the Enterprise Contact Server 100 and the Center Contact Server. Differences are implemented as new API function calls 25 for messaging included within the Agent Collection module 90, and routing rules, which are embodied in a configuration file and software code within the Event Processor and Router module 95. For instance, each time an event is 30 processed by a Contact Server, e.g., routing a call to an agent, the Contact Server sends out an event message which is routed over a call center LAN lla,..,lln and COS-98-011 -28- WO 00/72535 PCT/USO0/14058 over the corresponding WAN 34a,..,3 4 n to any "client" who has registered for receipt of this type of message. Particularly, the Enterprise Contact Server 100 registers itself with each call center Contact Server 5 for receipt of event messages. In this- way, the Enterprise Contact Server can keep track of current states and availabilities of each call center resource, in order to do enterprise-level routing of contact requests and inbound calls. Additionally, Contact 10 Servers may register with each other to communicate certain messages. While most of the API function calls between the Center Contact Servers are the same as described in co-pending U.S. Patent Application No. 08/976,162, 15 messaging between each Center Contact Server and the Enterprise Contact Server makes use of additional API function calls. Additionally, since the Enterprise Contact Server performs enterprise routing among the multiple Center Contact Servers, i.e., the Enterprise 20 Contact Server sends contact requests to a call center Contact Server, and API function calls are added to enable this. Appendix A provides Agent/Client API tables listing the events, possible sources of each event, and actions taken by the Contact Server and 25 Enterprise Contact Server in updating the above state table. Unlike the call center Contact Server, the Enterprise Contact Server 100 is able to route contact requests to other Contact Servers by implementing both 30 the routing rules employed by the Event Processor and Router module 95, as well as the parameters used to perform routing. For instance, in the above-described COS-98-011 -29- WO 00/72535 PCT/USOO/14058 inbound call routing scenario, at step 324 in Figure 8(b), the parameters used for routing by the Enterprise Contact Server differ .from those used by a Center Contact Server. Depending on a specific 5 implementation, the Enterprise Contact Server can route a contact request or inbound call to a call center only, to a group of agents at a call center, or to a specific agent at a call center. The Center Contact Server must ensure the routing is resolved all the way 10 down to a specific agent, so it picks up where the Enterprise Contact Server leaves off. Even in an example case where the Enterprise Contact Server 100 routes down to a specific agent, e.g., step 324, (Figure 4(a)), the Center Contact Server still gets 15 queried by the ACD (via the TServer) at step 334 under Figure 4 (b). This is because the Center Contact Server knows to which agent the call is to be routed, based on information received at step 328, Figure 4(b) which the ACD does not know. The Center Contact Server is what 20 actually sends the instructions to the ACD to route the call to the selected agent. Also, the Center Contact Server needs to first ensure the selected agent is available, prior to updating its state tables and sending out an event message. 25 (Please verify this and confirm steps of Figure 4a-4b) Based on the parameters used for routing, the Enterprise Contact Server 100 employs different routing rules embodied in a configuration file that is read by the Event Processor and Router module 95. The 30 configuration file may be stored as a table in the ECS Database 134. Rules can also be embodied in this module's source code, such as by a switch statement or COS-98-011 -30- WO 00/72535 PCT/USOO/14058 a nested if tree. Preferably, it is the combination of source code and the configuration file that determines how the routing rules a-re implemented, i.e., how the Enterprise Contact Server 100 is to route a contact 5 request. Thus, these rules determine whether the Enterprise Contact Server 100 is to route the call to a call center with qualified agents, or, to an actual qualified agent who is currently available based on a query to state tables. 10 The communications system architecture implementing the enterprise contact server 100 of the invention, can be used to provide telephone call-backs. Specifically, the customer visits the specified web site, which causes the callback applet to be downloaded 15 to the customer browser. The customer enters the phone number that they desire to receive a callback on and then clicks on a "Call Me" button on the web page (html) display. This action sends a request to the Enterprise Contact Server 100 to insert the callback 20 into a queue. The Enterprise Contact Server then sends a request to insert the callback to the appropriate Premise Contact Server. The Premise Contact Server responds with the average handling time for the calls in its queue, which the Enterprise Contact Server 100 25 sends back to the customer. When an agent with the appropriate skills becomes available, the callback is sent to the agent at the selected call center and a screen-pop is triggered so that the available agent may preview the request prior to processing the callback. 30 This results in a notification to the customer that the call is being processed. It also results in requesting the T-Server to connect an outbound call COS-98-011 -31- WO 00/72535 PCTIUSOO/14058 between the agents teleset and the customer entered phone number through the ACD. Furthermore, . the communications system architecture implementing the enterprise contact server 5 100 of the invention, can be used to provide telephone call-backs. For instance, when the agent is on line with a customer the agent's Screen Pop application displays the customer information. The agent may determine the need to transfer the call to another Call 10 Center. To accomplish this, the agent depresses a transfer button (not shown) on the Screen Pop application and enters a number, e.g., an 8XX number, of the Call Center to which the call is to be transferred. The agent additionally initiates the 15 attachment of data to the call. Via the screen pop application, an event transfer is performed whereby the call is sent to the premise Contact Server, which, in turn, sends the request to transfer to the premise
T
Server. The premise T-Server then transfers the call 20 to the requested extension. The premise Contact Server additionally sends a transfer call to the Enterprise Contact Server with an identifier for the Call Center that the phone call is being transferred to. The transfer event will also contain the customer 25 identifier. The Enterprise Contact Server 100 then sends the transfer event to the appropriate premise Contact Server, which preferably, will have received the transferred call. The new premise Contact Server will deliver the transfer event to an agent with the 30 appropriate skills and availability, along with the customer identifier. When the agent's Screen Pop receives the transfer event, the customer display COS-98-01 I -32- WO 00/72535 PCT/USOO/14058 information will be displayed to the agent, as well as a message informing the agent they are receiving a transferred call. The uew premise T-Server will also deliver the transferred call to the same agent's tele 5 set. As shown in Figure 5 there is provided additional interfaces to the Enterprise Contact Server 100. These interfaces include: an Event Tracker 96 for receiving and logging all events into database 134 or 10 data warehouse, primarily for the purpose of historical data tracking and statistics generation; a Click-'n-Connect Gateway interface 88 enabling IP traffic to be converted into PSTN traffic; and, an H.323 Gateway 89 used to support video calls, as 15 defined by the H.323 industry standard. This H.323 Gateway is for the purpose of enabling a customer to request a contact by an agent via a video conference, i.e., over the Internet via an H.323 gateway. Since the Click-'n-Connect Gateway 88 and H.323 Gateway 89 20 are to support enhanced telephony communications for contacts, their interfaces are processed by the Enterprise Contact Server's Telephony processor 136. Further interfacing with the Enterprise Contact Server is an agent/call monitor 113 ("Monitor") 25 which provides displays of current and historical agent and call states, and various other statistics from the event tracker/logging server 96; and, an interface to an agent workstation "Agent Client." While in the preferred embodiment, the Enterprise Contact Server 30 does not interface directly to any agent workstations, the Enterprise Contact Server is based on the software architecture of the Center Contact Server, and COS-98-011 -33- WO 00/72535 PCT/USOO/14058 consequently, supports such an interface. In fact, the Agent/Call Monitor can interface to the Enterprise Contact Server as an Agent Client. Figure 6(a) illustrates an exemplary logical 5 architecture of an enterprise "Click-'n-ConnEct" system 440. The Click-'n-Connect system 440 enables a customer 42 browsing a Web site to select an option to contact a call center agent with an IP telephone call. When this option is selected, the Click-'n-Connect Web 10 Server 160 captures the customer's IP address, sets up an IP telephony session with an IP Gateway 145, e.g., Netspeak, and initiates a telephone call over the PSTN to a call center ACD using a pre-programmed 1-800 routing number. The call is routed to a qualified 15 agent, who then engages in a PSTN-to-Internet telephone call with the customer. If no qualified agent is available, the call is held in a queue on the ACD 12. In the architecture depicted in Figure 6(a), only a voice telephony session can be established, and no 20 synchronized HTTP sessions or multi-media collaboration such as URL push are supported. Furthermore, a customer cannot place a call-back request. Figure 6(b) illustrates the logical architecture for Click-'n-Connect using the Enterprise 25 Contact Server 100 and call center Contact Server 28. Though this service can be supported with a single call center Contact Server as described in co-pending U.S. Patent Application No. 08/976,162, the Enterprise Contact Server 100 adds to this service the features 30 and benefits previously described. Specifically, when a customer selects the Click-'n-Connect option from a Web page, the Web Server 130 sends a message to the COS-98-011 -34- WO 00/72535 PCT/USOO/14058 Enterprise Contact Server ("Network Contact Server") 100. The Enterprise Contact Server selects an available qualified agent (or a call center with a qualified agent available) , and sends a message to that 5 agent's center Contact Server 28 to reserve (or select and reserve) an agent.' The Enterprise Contact Server 100 also establishes an IP telephony session with the IP gateway 145, and initiates a call to the ACD 12. The call is routed to the selected agent, who then 10 engages in a telephone call with the customer. Likewise, the agent can engage in other sessions, such as synchronized HTTP over the Web. If no qualified agent is available, then the Enterprise Contact Server 100 submits a contact request 15 to itself, and routes that request to a selected call center Contact Server. The advantages that the Enterprise Contact Server 100 introduces for this application are: sessions other than voice telephone call are supported; a customer's call is not held in 20 queue at the ACD if no agent is available; and, multiple call centers can' be used to take calls or contact requests It should be understood that the enterprise contact server and communications architecture of the 25 invention can be used as a Web Dispatch service 400 which allows customers of the enterprise to view trouble ticket information via a Web site. Specifically, if a customer has a question concerning a trouble ticket, they click an option on a Web page, 30 which issues a contact request to a call center agent who supports the system for which the trouble ticket was submitted. With the Enterprise Contact Server 100 COS-98-011 -35- WO 00/72535 PCT/USO0/14058 and systems architecture of the invention, contact requests can be distributed among multiple call centers. Thus, when ,a contact request option is selected by a customer, a Customer Callback Applet 5 (Java) executes on the customer's computer, as described in co-pending U.S. Patent Application No. 08/976,162. A contact request is sent to the Java Callback Server on the Web Server 130, which forwards the contact request to the Enterprise Contact Server 10 100. The Enterprise Contact Server 100 queries its skills and states tables, in the manner described herein, and selects a call center or call center agent to which to send the contact request. It sends the contact request to the center Contact Server that 15 supports the selected call center. The Center Contact Server assigns an agent and routes the contact request data to that agent's workstation. The agent can then initiate a synchronized HTTP session with the customer, via the Java Data Server, as described in co-pending 20 U.S. Patent Application No. 08/976,162. Figure 7 is a representative illustration of a sample HTML web page 408. Typically, a web browser such as Microsoft Explorer$ or Netscape Navigator& or Communicator@ displays a HTML web page such as the one 25 shown in Figure 7 by downloading a HTML file from a Web Server specified in URL. Additional pages may be displayed on top of the HTML web page 408 by Java applets that are also downloaded from the Web Server and running on a client browser. Shown in Figure 7 are 30 two separate frames overlaid on the html web page 408: a "Trouble ticket" frame 410; and a "Contact Me" frame 458, which enables a call back request. Both of these COS-98-011 -36- WO 00/72535 PCT/USOO/14058 frames are controlled by the Java applets downloaded from the Web Server. "Trouble ticket" frame 410 is an example of what a customer may be viewing on their web page before 5 a call back request is made. This frame 410 also illustrates an example of how a customer may request to be synchronized with an agent by pushing on the "Sync With Agent" button 412. Sync, Push, and Pull mechanism is explained in detail in reference to co-pending U.S. 10 Patent Application No. 08/976,162. "Contact Me" frame 458 is controlled by a Java applet running on the Client browser. This Java applet handles call back screen interface with the user and at the same time handles communications with the 15 CallBack Server in the Web Server. The following paragraphs describe a detailed example of how a CallBack Java Applet may function in interfacing with the user and a Server. Description of CallBack Java Applet running 20 on Client Browser: 1. Initialize all data parameters. 2. Get I/O connection from host (i.e., CallBack Server). 3. Get host parameters and port address 25 for communication over socket. 4. Construct "Contact Me" screen and display it on Client's current screen. 5. Handle input events from the Client's screen; i.e., mouse input, keyboard input. 30 5.1 If input event is a mouse click on a Name field, display message, "enter your name." 5.2 If input event is a mouse click COS-98-011 -37- WO 00/72535 PCT/USO0/14058 on a Phone Number field, display message, "enter your phone number". 5.3 If input event is on a Contact Method field and the Contact Method chosen is 5 "Tel.ephone," enable phone number and extension fields on the Client's screen; for all other Contact Method chosen, disable phone number and extension fields. 5.4 If CallMeButton click event, then check if all the input parameters are entered. 10 5.4.1 If input parameters are missing, display message "Not enough information to complete call;" and return to step 5, and handle more input. 5.4.2 If all the input 15 parameters are entered, proceed to step 6. 6. Parse input parameters. 7. If Contact Method chosen is "Agent/Customer On Line Chat," include CGI script name in the URL path to be sent over a socket to CallBack 20 Server; package input parameters into a buffer and write buffer over the socket connection to CallBack Server. 8. If Contact Method chosen is "E-Mail," include Customer's e-mail address in a send buffer; 25 write buffer over the socket. 9. If Contact Method chosen is "Telephone," include Customer's telephone number in a send buffer; write over the socket. 9.1 Wait for CallBack Server to send 30 confirmation that call has been placed. 9.1.1 If no confirmation arrives from the CallBack Server in a definite time-out COS-98-011 -38- WO 00/72535 PCT/USOO/14058 period,. displaY message, "There has been an error in receiving confirmation that your call has been placed," on Client's screen. 10. Listen over the socket for messages 5 from the CallBack Server. (A new thread) 10.1 If message received from the CallBack Server is "Contact Server Down," display message on the Client's screen, "Call me back function is not available." 10 10.2 If message received from the CallBack Server is "Contact Server Up", display message, "To speak with an agent, please click on the Contact Me button. We will be happy to call you regarding your service inquiries." 15 10.3 If message received is "Event," parse the message received and compare even types. 10.3.1 If event type is "Insert Call Back," display message, "Thank you for using MCI Web Callback Service. Your call has been 20 placed and an MCI Technical Specialist is contacting you now." 10.3.2 If event type is "Delete Call Back", display message, "Your call has been canceled." 25 10.4 Proceed to step 10. Description of CallBack Server running in Web Server: One of the functions of this CallBack Server 30 is to interact with the above CallBack applet. 1. Open connection with Contact Server. COS-98-011 -39- WO 00/72535 PCT/USOO/1 4058 2. If no connection, set a parameter "Contact Server Down," package message into a buffer and send to CallBack applet. 3. If connection exists, set a parameter 5 "Contact Server Up," package message into a-buffer and send to CallBack applet. 4. Open connection with CallBack applet. (A new thread) 5. Accept data from CallBack applet. 10 6. Parse message from CallBack applet. 6.1. If Callback service was requested, call JContactClient class with event type set to "InsertCallBack." 6.2. If cancellation of callback 15 service was requested, call JContactClient class with event type set to "DeleteCallBack." The foregoing merely illustrates the principles of the present invention. Those skilled in the art will be able to devise various modifications, 20 which although not explicitly described or shown herein, embody the principles of the invention and are thus within its spirit and scope. COS-98-011 -40- WO 00/72535 PCTIUSOO/14058 APPENDIX A CContactEvent Class: The CContactEvent class is a wrapper class 5 that wraps socket and TServer data. The ciass includes of 25 protected member variables: m_AgentID CString Unique identifier for a particular agent. m Ani Cstring Telephone number for the requested callback. m CollectedDigits CString Caller entered digits on a VRU. m DefaultData CString Data attached to every call. mDnis CString Dial number identification service. m ErrorMessage CString Description of error that has occurred. motherDN CString Destination number (DN) a call was transferred from m OtherQueue CString Queue a call was transferred from m TeleEvent CString Description of request/event correlating to TMessageType enum located in Ttypes.h. mThisDN CString Current DN. m ThisQueue CString Current queue. m UserData CString Data specific to this event MIp CString URL related to specific callback. m CallID long Switch's unique identifier for a call. mCallType long Refers to Web Phone, Telephone, See You See Me m ConnID long T-Server's unique identifier for a call. mErrorCode long Numeric code for error that has occurred. m FileHandle long Voice mailbox file. mOtherTrunk long Trunk a call was transferred from. m UserRefNumber long Number of requests related to this event. COS-98-011 -41- WO 00/72535 PCT/USOO/14058 m ThisTrunk long Current trunk. m TimelnQueue long Amount of time a call/callback has waited in queue mEvent short Numeric code correlating to TMessageType enum from Ttypes.h. mLastcollectedDi short Last caller digit entered on VRU. git m_LoginType short Type of login used: DN, PCLogin, ACDLogin, other CContactEvent Functions: Constructors: The class includes two constructors. The first is a standard default 5 constructor taking no parameters and performing no additional tasks. The second constructor takes one CString parameter which is pipe ("I") deliminated. This constructor sets the member variables by calling the GetKeyValue(...) function to parse out the data from 10 the CString parameter passed to it. void SetVariableName(...): The CContactEvent class includes 25 functions to set, or assign, the value of each member variable, one function per variable. Each 15 function takes one parameter of the same type as the member variable that it corresponds to, sets the variable, and has a returns void. type GetVariableName(): The CContactEvent class also 20 includes 25 functions to get, or return, the value of each member variable, one functions corresponding to each variable. These functions do not take any COS-98-011 -42- WO 00/72535 PCT/USOO/14058 parameters, and returns the value stored within the corresponding member variable. CString GetSocketString(): 5 This function returns a Cstring of "I" eliminated key value pairs to send on a socket to a listener/server. The key-value pairs that the function deliminates are the member variables of the CContactEvent class. The function will test each member variable to determine it 10 is populated. If populated, it will add the variable key and its data to the CString it returns. void ClearEvent(: This function will clear out any data that is stored in 15 any of the object's member variables, with the exception of mThisDN. mThisDN is kept because the destination number will remain the same while the agent is connected to the server. The return value is void. 20 short DeleteUserData(long lParam, LPCTSTR dn, LPCTSTR szlnKey): This function takes three parameters, however, it does not use the first two (lParam & dn). The function is designed to delete a portion of the mUserData 25 variable, which must be a "," deliminated string. The szInKey parameter is the key of the data the function will delete, and the function will delete the data in the string that resides between the two commas following the key. 30 short DeleteAllUserData (long lParam, LPCTSTR dn): COS-98-011 -43- WO 00/72535 PCT/USOO/14058 The function does not use the two parameters passed. The function will set the m UserData member variable to an empty string ("") 5 ccontactlient Class: The CContactClient class is an API designed to facilitate the communications between the Agent application and the CServer via TCP/IP sockets by 10 establishing/terminating the server connection and sending/receiving data. Additionally, the CContactClient class functions as a wrapper for the CContactEvent class. 15 Variables: Variable names followed by (.cpp) are declared within the .cpp file rather than the .h file. This is so the ReceiveThread function, a statically declared function, can use these variables. m ServerName CString Stores the IP address of the server connected to. pEventSocket CContactSocket Pointer to a ccontactsocket object. ConnectionStatus SocketStatus Enum type defined in the CContactSocket class. Refers to the status of the socket connection to the server. CurrentEvent CContactEvent Inbound CContactEvent object from the socket. TMessagestring CString array String representation of the (86] TMessageType enum from Ttypes.h. ErrMsg (3] CString array Error string message associated with COS-98-011 -44- WO 00/72535 PCT/USOO/14058 #h define constants listed in the previous section pListenerSocket CContactsocket Pointer to CContactSocket object the (.cpp)receive thread uses. (cpp) EVNTOBET trc Structure for a single linked list EVENT OBJECT st-ruct (.cpp) -b ec (.cpp)containing a CContactEveflt object and a pointer to the next link. pEventHead (.cpp) EVENTOBJECT Pointer to the head of the linked list.-I outboundEvent CContactEvent CcontactEvent object to be sent toj (cpp)CServer. th hWindO# (.cpp) clWND 'talWindow (.cpp) long TM_Mqg (.app) UINT hListefder HANDlLE H.andle for receive thread. Functions: Constructor: The constructor initializes the pointers pEventHead, pEventSocketc and pListenerSocket to null; 5 initializes the string messages for the ErrMSg array; and initializes the string descriptions for the TMessagestrilg array. Destructo: Calls CContactEvent's member function ClearEvent( to clear data stored in CurrentEvent and 10 OutboundEvent. Deletes all elements that may exist in the EVENTOBJECT linked list, including pEventHead. Closes the receive thread and sets pListenerSocket to null. Disconnects from CServer and sets pEventSocket to null. 15 short open (LPCTST Cn szServerName) short Open(LPCTSTR szServerName, ClientType client): COS-98-011I -45- WO 00/72535 PCT/USOO/14058 This overloaded function takes one or two parameters. szServerName refers to the IP address of the server to connect to and client refers to the type of client logging in (i.e., monitor client, agent client, or web 5 client). The function checks pEventSocket for a null value. If null, it allocates and CContactSocket object with the new keyword. Next, the function checks 10 ConnectionStatus for a connected state. If connected, it sets an error message advising a server connection already exists and returns a false, or 0, value. If no connection exists, the function sets the client type for the CContactSocket with client, or a default of 15 AGENTCLIENT if the function does not receive a client parameter; sets CContactClient's inServerName with szServerName; and calls CContactSocket's connect function to make a connection to the server. 20 If the connection fails, the function sets an error message with the error received from the CContactSocket object, deletes pEventSocket, and the function will exit with a false value. 25 If a successful connection occurs, a second thread is started for receiving events from CServer. short CloseServer(): Calls CContactEvent's member function ClearEvent() to 30 clear data stored in CurrentEvent and OutboundEvent. Deletes all elements that may exist in the EVENTOBJECT linked list, including pEventHead. Closes COS-98-011 -46- WO 00/72535 PCT/USOO/14058 the receive thread and sets pListenerSocket to null. Disconnects from CServer and sets pEventSocket to null. 5 short isEventReady() short NextEvent (: These two functions have the same functionality. These functions will remove the first element in the 10 EVENTOBJECT linked list and shift the second link to the head. When called, if pEventHead is null, the function(s) clear any data that CurrentEvent has stored in its member variables and sets the return value to false, or 0. 15 If the first element in the list is the only element, the function removes the element and sets pEventHead to null. Otherwise, the function removes the first element and the second link becomes the first. 20 CString GetSocketString() This function calls CContactEvent's GetSocketString function to format CurrentEvent's member variables into a single, pipe ("I") deliminated string. The function 25 returns the formatted string. void CreateEvent(CContactEvent NewEvent): This function will add a received event to the end of the EVENTOBJECT linked list. If an empty list exists, 30 it adds NewEvent as the first link. Otherwise, the function will add NewEvent to the end of the list. COS-98-011 -47- WO 00/72535 PCT/USOO/14058 BOOL StartThread(LPCTSTR ServerName, ClientType Client): This function calls CreateThread (MFC) to start the receive thread. 5 static DWORD WINAPI ReceiveThread(LPVOID socket): This is the second thread designed to receive incoming events from CServer. The thread loop will block on the socket until an event is received. When received, the 10 function will pass the event to CreateEvent(CContactSocket NewEvent) for addition to the linked list. If the received event is EventRegisterMachine, the function sets OutboundEvent's m ThisDN variable with the m ThisDN variable of the J5 CContactEvent object received. Additionally, the function will post a message to the window if one is received. Wrapper functions for CContactEvent: 20 void SetVariableName(type) : The following functions act as a wrapper for the CContactEvent class. Each function is operating on the OutboundEvent object to set its member variables prior to sending the object to 25 CServer. They accomplished by calling the object's member function(s) that correspond to setting the desired member variable. Each function takes a single parameter of the same type as the CContactEvent member variable to set and has a return value of void. 30 type GetVariableName() Again, the following functions act as a wrapper for the CContactEvent class. Each COS-98-011 -48- WO 00/72535 PCT/USOO/14058 function is operating on the CurrentEvent object to get the data stored in its member variables. This is accomplished by calling- the object's member functions that correspond to retrieving the desired member 5 variable. Each function takes no parameters and returns a value of the same type as the CContactEvent member variable to retrieve. short Callback~n(LPCTSTR dn, short logType): 10 this function requests CServer set the agent's ability to handle callbacks on. It sets the OutboundEvent's mEvent to EventCallbackOn, and sets mThisDN and mLoginType with the parameters passed. 15 The function will check pEventSocket for a null value. If null, the function sets an error message advising no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's mThisDN for an empty string. If empty, it sets an 20 error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If not connected, it sets an error message advising no server connection exists and will return a false value. 25 If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. 30 short AgentLogout(long lParam, LPCTSTR dn): COS-98-011 -49- WO 00/72535 PCT/US0O/14058 This function requests CServer log the agent out. It sets OutboundEvent's mEvent with RequestAgentLogout and m ThisDN with dn. 5 The function will check pEventSocket for a-null value. If null, the function sets an error message advising no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's m ThisDN for an empty string. If empty, it sets an 10 error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If not connected, it sets an error message advising no server connection exists and will return a false value. 15 If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. 20 short MakeCall(long lParam, LPCTSTR dn, LPCTSTR szPhoneNumber) : This function requests CServer place a call. It sets OutboundEvent's mEvent with RequestMakeCall, mAni 25 with szPhoneNumber, and mThisDN with dn. The function does not use IParam. The function will check pEventSocket for a null value. If null, the function sets an error message advising 30 no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's mThisDN for an empty string. If empty, it sets an COS-98-01 I -50- WO 00/72535 PCT/USOO/14058 error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If not connected, it sets an error message advising no 5 server connection exists and will return a false value. If these three tests 'pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function calls CContactEvent's ClearEvent function to clear data 10 stored in the OutboundEvent's member variables. short CallAnswer(long lParam, LPCTSTR dn): This function requests CServer answer a call. It sets OutboundEvent's mEvent with RequestAnswerCall and 15 m ThisDN with dn. The function does not use lParam. The function will check pEventSocket for a null value. If null, the function sets an error message advising no server connection exists and will return a false, or 20 0, value. Next, the function will test OutboundEvent's m ThisDN for an empty string. If empty, it sets an error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If 25 not connected, it sets an error message advising no server connection exists and will return a false value. If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function 30 calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. COS-98-011 -51- WO 00/72535 PCT/USOO/14058 short AgentReady(long lParanr LPCTSTR dn): This function requests CServer set an agent's status to ready. The function sets OutboundEvent's mEvent to RequestAgentReady and mThisDN with dn. The function 5 does not use lParam. The function will check pEventSocket for a null value. If null, the function sets an error message advising no server connection exists and will return a false, or 10 0, value. Next, the function will test OutboundEvent's m ThisDN for an empty string. If empty, it sets an error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If 15 not connected, it sets an error message advising no server connection exists and will return a false value. If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function 20 calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. short AgentNotReady(long lParam, LPCTSTR dn): This function requests CServer set an agent's status to 25 not ready. The function sets OutboundEvent's mEvent to RequestAgentNotReady and mThisDN with dn. The function does not use lParam. The function will check pEventSocket for a null value. 30 If null, the function sets an error message advising no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's COS-98-011 -52- WO 00/72535 PCT/USOO/14058 m ThisDN for an empty string. If empty, it sets an error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStaLus variable for a connected state. If 5 not connected, it sets an error message advising no server connection exists and will return a false value. If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function 10 calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. short AgentBusy(long lParam, LPCTSTR dn): This function requests CServer set an agent's status to 15 busy. The function sets OutboundEvent's mEvent to RequestAgentBusy and mThisDN with dn. The function does not use lParam. The function will check pEventSocket for a null value. 20 If null, the function sets an error message advising no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's m ThisDN for an empty string. If empty, it sets an error message advising no DN registered and will return 25 a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If not connected, it sets an error message advising no server connection exists and will return a false value. If these three tests pass, the function will send the 30 OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function COS-98-011 -53- WO 00/72535 PCT/USOO/14058 calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. short AgentNotBusy (long lParam, LPCTSTR dn): 5 This function requests CServer set an agent's status to not busy. The function sets OutboundEvent's mEvent to RequestAgentNotBusy and mThisDN with dn. The function does not use lParam. 10 The function will check pEventSocket for a null value. If null, the function sets an error message advising no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's m ThisDN for an empty string. If empty, it sets an 15 error message advising no DN registered and will return a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If not connected, it sets an error message advising no server connection exists and will return a false value. 20 If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. 25 short DeleteCallback(CString ANI, CString IP): This function requests CServer delete a callback. It sets OutboundEvent's mEvent to RequestDeleteCallback, mAni with ANI, and mIP with IP. 30 The function will check pEventSocket for a null value. If null, the function sets an error message advising COS-98-011 -54- WO 00/72535 PCT/USOO/14058 no server connection exists and will return a false, or 0, value. Next, the function will test OutboundEvent's m ThisDN for an empty string. If empty, it sets an error message advising no DN registered and will return 5 a false value. Lastly, the function wilL check the ConnectionStatus variable for a connected state. If not connected, it sets an error message advising no server connection exists and will return a false value. If these three tests pass, the function will send the 10 OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. 15 short UpdateCallback(CString appldata, CString origination, CString method, CString IP, CString ANI, CString NaspID, CString ContactTime, int ContactResult): 20 This function requests CServer update an existing callback. It sets OutboundEvent's mEvent to RequestUpdateCallback, mIP with ID, and mAni with ANI. The remaining parameters are formatted into a "^" deliminated string and set to OutboundEvent's 25 mUserData variable. The function will check pEventSocket for a null value. If null, the function sets an error message advising no server connection exists and will return a false, or 30 0, value. Next, the function will test OutboundEvent's mThisDN for an empty string. If empty, it sets an error message advising no DN registered and will return COS-98-011 -55- WO 00/72535 PCT/USOO/14058 a false value. Lastly, the function will check the ConnectionStatus variable for a connected state. If not connected, it sets ,an error message advising no server connection exists and will return a false value. 5 If these three tests pass, the function will send the OutboundEvent to the CServer over the socket and return a true, or 1, value. Prior to exiting, the function calls CContactEvent's ClearEvent function to clear data stored in the OutboundEvent's member variables. COS-98-011 -56-

Claims (34)

1. In a communications network, a system 2 for establishing and maintaining communications between 3 a customer and a business having a plurality of call 4 centers over a plurality of communications media, said 5 system including: 6 (a) a first means for establishing a first 7 communications link between a customer and a company 8 web server; 9 (b) a second means for tracking available 10 resources at each of said plurality of call centers, 11 said resources including a call center agent having a 12 particular skill set and availability status, said 13 second means further selecting a call center having a 14 qualified agent available to communicate with said 15 customer; 16 (c) a third means for establishing a second 17 communications link between said selected call center 18 and said customer; and 19 (d) a premises contact server located at 20 each of said plurality of call centers having means for 21 managing and synchronizing simultaneous IP 22 communications between said web server and said 23 selected call center, and between said web server and 24 said customer, 25 whereby said agent at said selected call 26 center and said customer may each view said first 27 communications links while communicating with each 28 other over said second communications link: COS-98-011 -57- WO 00/72535 PCT/USOO/14058 1
2. In a communications network, a system 2 as claimed in Claim 2, wherein said first 3 communications link is an IF communications link.
3. In a communications network, a system 2 as claimed in claim 1, wherein each said premise 3 contact server further includes means for communicating 4 call center event messages including resource 5 availability status to said second means. 1
4. In a communications network, a system 2 as claimed in claim 1, wherein said third means 3 includes a telephony automatic call director and a 4 telephony server. 1
5. In a communications network, a system 2 as claimed in claim 2, wherein said premises contact 3 server communicates with said automatic call director 4 through said telephony server. 1
6. In a communications network, a system 2 as claimed in claim 2, wherein said IP communications 3 link includes a link which enables a customer to 4 request a call back if an agent is not available. 1
7. In a communications network, a system 2 as claimed in claim 1, wherein said third means enables 3 communication with said customer with a communications 4 protocol selected from the group of broadband 5 telephony, TCP/IP, SMTP, chat, internet telephony or 6 internet video. COS-98-011 -58- WO 00/72535 PCT/USOO/14058
8. In a communications network, a system 2 as claimed in claim 1, wherein said system includes a 3 data base server to authenticate a customers 4 entitlements at said call center. 1
9. In a communications network, a system 2 as claimed in claim 6, wherein said second means 3 includes a data base server to match the qualifications 4 of a call center agent to a customers call back 5 request.
10. In a communications network, a system 2 as claimed in claim 1, wherein said system further 3 includes a data base server for providing access to 4 data relating to services provided by the business to 5 the customer 1
11. In a communications network, a system 2 as claimed in claim 2, wherein said system further 3 includes first and second linked web servers separated 4 by a security means, with said first web server 5 communicating with said agent, and said second web 6 server communicating with said customer, said second 7 web server providing at least one Java applet to said 8 customer over said IP communications link. 1
12. In a communications network, a system as 2 claimed in claim 1, wherein said second means further 3 selects a qualified agent for communication with said 4 customer. COS-98-011 -59- WO 00/72535 PCTIUSOO/14058
13. In a communications network, a system 2 as claimed in claim 1, further including means for 3 generating a status query message to a selected call 4 center to ascertain availability of call center 5 agents having desired skill set, said contact server 6 of said selected call center generating a response to 7 indicate presence of. a qualified call agent. 1
14. In a communications network, a system 2 as claimed in claim 13, further including means for 3 selecting another one of said plurality of call 4 centers if a qualified agent is not available at said 5 selected call center. 1
15. In a communications network, a method 2 for establishing and maintaining communications between 3 a customer and one of a plurality of call centers over 4 a plurality of communications media, said method 5 comprising the steps of: 6 (a) establishing a html communications link 7 between a customer and a company web server which 8 enables the customer to request a call back; 9 (b) determining resource availability at 10 each one of said plurality of call centers for said 11 customer, and selecting a call center having a 12 qualified agent available to communicate with said 13 customer; 14 (c) establishing a second communications 15 link between said selected call center and said 16 customer; and 17 (d) managing and synchronizing simultaneous 18 html communications between: COS-98-011 -60- WO 00/72535 PCT/USOO/14058 19 20 (i) said web server and said selected 21 call center, .and; 22 (ii) said web server and said customer; 23 whereby said agent may communicate with said customer 24 over said second communications link while each views 25 said simultaneous html communications links. 1
16. In a communications network, a method 2 as claimed in claim 15, wherein said step of 3 establishing said second communications link includes 4 establishing a telephony link with said customer. 1
17. In a communications network, a method 2 as claimed in claim 15, further including the step of 3 enabling the customer to request a call back from an 4 agent if an agent is not available. 1
18. In a communications network, a method 2 as claimed in claim 15, wherein said step of 3 establishing a second communication link enables 4 communication with said customer with a 5 communications protocol selected from the group of 6 broadband telephony, TCP/IP, SMTP, chat, internet 7 telephony or internet video. 1
19. In a communications network, a method 2 as claimed in claim 15, further including the step of 3 authenticating a customers entitlements at said 4 selected call center. COS-98-011 -61- WO 00/72535 PCT/USOO/14058 1
20. In a communications network, a method 2 as claimed in claim 15, wherein said step of selecting 3 said call center having qualified agent available 4 further includes the step of matching the 5 qualifications of a call center agent to a customers 6 call back request. 1
21. In a communications network, a method 2 as claimed in claim 15, further including the step of 3 providing customer and agent access to data relating to 4 services provided by the company to the customer. 1
22. In a communications network, a method 2 as claimed in claim 21, further including the step of 3 providing access to data relating to trouble tickets on 4 services provided by the company to the customer. 1
23. In a communications network, a method 2 as claimed in claim 15, further including the step of 3 synchronizing first and second web servers with fixed 4 IP addresses to provide security for company data, with 5 said first web server communicating with said agent, 6 and said second web server communicating with said 7 customer. 1
24. In a communications network, a method 2 as claimed in claim 23, further including the step of 3 communicating at least one Java applet from said second 4 web server to said customer over said IP communications 5 link. COS-98-O 1 -62- WO 00/72535 PCT/USOO/14058 1
25. In a communications network, a system 2 for distributing inbound telephone call events received 3 at a telecommunications, network switch over a public 4 switched telephone network to one of a plurality of 5 call centers owned by a business enterprise, each said 6 event having a first set of call data associated 7 therewith, said system comprising: 8 (a) a means for routing said call to a 9 voice response unit capable of obtaining information 10 from the caller; 11 (b) a means for tracking available 12 resources at each of said plurality of call centers, 13 said resources including one or more call center agents 14 each having a particular skill set and availability 15 status, said tracking means further selecting one of a 16 call center and call center agent based on said 17 information from the caller, and communicating a second 18 set of call data relating to said selected call center 19 to said voice response means; 20 (c) an automatic call distributor means 21 associated with each of said plurality of call centers 22 for routing calls for transmission over said public 23 switched telephone network, said voice response unit 24 routing said call to a first said automatic call 25 distributor means for forwarding said call over said 26 public switched telephone network to a second automatic 27 call distributor means associated with said selected 28 call center, said voice response uni t additionally 29 routing said second set of call data to said selected 30 call center; 31 (d) a premises contact server means located 32 at said selected call center for receiving said first COS-98-011 -63- WO 00/72535 PCT/USOO/14058 33 set of call data from said second automatic call 34 distributor means and said second set of call data from 35 said voice response unit and managing distribution of 36 said call to an agent at said selected call center 37 while sending said second set of data to aworkstation 38 associated with said agent, 39 whereby said agent at said selected call 40 center and said customer communicate with each other 41 over said public switched telephone network, while said 42 agent has updated data available to him at said 43 workstation. 1
26. In a communications network, a system 2 for distributing inbound telephone call events as 3 claimed in Claim 25, wherein said second set of call 4 data is routed to said selected call center over one of 5 a local area network and wide area network. 1
27. In a communications network, a system 2 for distributing inbound telephone call events as 3 claimed in Claim 25, wherein said routing means 4 includes a data access point for determining a 5 destination for said call based on said first set of 6 data. 1
28. In a communications network, a system 2 for distributing inbound telephone call events as 3 claimed in Claim 27, wherein said first set of data 4 includes data relating to an automatic number 5 identifier. COS-98-011 -64- WO 00/72535 PCT/USOO/14058 1
29. In a communications network, a system 2 for distributing inbound telephone call events as 3 claimed in Claim 27, wherein said second set of data 4 includes data for routing the call to a particular 5 destination.
30. In a communications network, a system 2 for distributing inbound telephone call events as 3 claimed in Claim 27, wherein said second set of data 4 includes data pertaining to a caller requesting a 5 particular service.
31. In a communications network, a system 2 for distributing inbound telephone call events as 3 claimed in Claim 25, wherein each said call center 4 includes a telephony server means to facilitate routing 5 of calls from said automatic call distributor to said 6 premises contact server means. 1
32. In a communications network having a 2 plurality of call centers for receiving service 3 requests from customers, a system for continuing 4 communication between a customer and one of a plurality 5 of call centers on a call back basis, said 6 communication enabled over a plurality of 7 communications media, said system including: 8 (a) a first means for establishing a html 9 communications link between a customer and a company 10 web server and enabling a call back request by the 11 customer; 12 (b) a second means for determining resource 13 availability at each of said call centers for said COS-98-011 -65- WO 00/72535 PCT/US0O/14058 14 customer and said call back request, and identifying an 15 agent at a said call center available to communicate 16 with said customer; 17 (c) a third means for establishing a call 18 back communications link between said selected call 19 center and said customer; and 20 (d) a contacL server at said selected call 21 center for managing and synchronizing simultaneous html 22 communications between: 23 (i)said web server and said selected call 24 center, and; 25 (ii) said web server and said customer, 26 whereby said agent establishes a call back 27 communications link with said customer while said 28 contact server synchronizes said simultaneous html 29 communications links between said web server and 30 customer, and said web server and said agent. 1
33. In a communications network having a 2 plurality of call centers for receiving service 3 requests from customers, a method for continuing 4 communication between a customer and one of said 5 plurality of call centers on a call back basis, said 6 call back communications enabled over a plurality of 7 communications media, said method comprising the steps 8 of: 9 (a) establishing a html communications link 10 between a customer and a company web server which 11 enables the customer to request a call back; 12 (b) determining resource availability at each 13 of said plurality of call centers for said customer and COS-98-011 -66- WO 00/72535 PCT/USOO/14058 14 selecting a call center having an available qualified 15 agent; 16 (c) identifying an agent at said call center 17 available for call back communication with said 18 customer; 19 (d) establishing a second communications 20 link between call center and said customer; 21 (e) managing and synchronizing simultaneous 22 html communications between: 23 (i) said web server and said selected 24 call center, and; 25 (ii) said web server and said customer; 26 whereby said agent may communicate with said 27 customer over said second communications link while 28 each views said simultaneous html communications links. 1
34. In a communications network, a method 2 as claimed in claim 33, further comprising the step of 3 triggering said customer call back request by running 4 a Java applet embedded in an html communication 5 received by the customer. -67-
AU50385/00A 1999-05-24 2000-05-22 Enterprise contact server with enhanced routing features Ceased AU771695B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/317561 1999-05-24
US09/317,561 US6687241B1 (en) 1997-11-21 1999-05-24 Enterprise contact server with enhanced routing features
PCT/US2000/014058 WO2000072535A1 (en) 1999-05-24 2000-05-22 Enterprise contact server with enhanced routing features

Publications (2)

Publication Number Publication Date
AU5038500A true AU5038500A (en) 2000-12-12
AU771695B2 AU771695B2 (en) 2004-04-01

Family

ID=23234238

Family Applications (1)

Application Number Title Priority Date Filing Date
AU50385/00A Ceased AU771695B2 (en) 1999-05-24 2000-05-22 Enterprise contact server with enhanced routing features

Country Status (7)

Country Link
EP (1) EP1180288A4 (en)
JP (1) JP2003500929A (en)
AU (1) AU771695B2 (en)
BR (1) BR0010933A (en)
CA (1) CA2374329A1 (en)
MX (1) MXPA01012024A (en)
WO (1) WO2000072535A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6958994B2 (en) 1998-09-24 2005-10-25 Genesys Telecommunications Laboratories, Inc. Call transfer using session initiation protocol (SIP)
US7120141B2 (en) 1998-09-24 2006-10-10 Genesys Telecommunications Laboratories, Inc. Integrating SIP control messaging into existing communication center routing infrastructure
US6934380B2 (en) * 2003-05-02 2005-08-23 Cisco Technology, Inc. Method and system for automatic contact distribution utilizing presence detection
CA2529897C (en) * 2003-06-19 2013-01-08 Nortel Networks Limited Convergence of circuit-switched voice and packet-based media services
US7899164B2 (en) 2003-06-19 2011-03-01 Nortel Networks Limited Convergence of circuit-switched voice and packet-based media services
US7894581B2 (en) 2003-06-19 2011-02-22 Nortel Networks Limited Convergence of circuit-switched voice and packet-based media services
US7729479B2 (en) * 2004-11-30 2010-06-01 Aspect Software, Inc. Automatic generation of mixed media messages
KR101169045B1 (en) * 2010-08-24 2012-07-26 (주) 콜게이트 System, method and computer readable medium for providing voice and visual ARS service

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590188A (en) * 1992-11-09 1996-12-31 Iex Corporation Rules-based call routing
DE69636239T2 (en) * 1995-04-24 2007-05-10 International Business Machines Corp. A method and apparatus for skill-based routing in a call center
US5884032A (en) * 1995-09-25 1999-03-16 The New Brunswick Telephone Company, Limited System for coordinating communications via customer contact channel changing system using call centre for setting up the call between customer and an available help agent
US6058435A (en) * 1997-02-04 2000-05-02 Siemens Information And Communications Networks, Inc. Apparatus and methods for responding to multimedia communications based on content analysis
US5940496A (en) * 1997-02-10 1999-08-17 Gewesys Telecommunications Laboratories, Inc. Apparatus and methods enhancing call routing within and between call-centers

Also Published As

Publication number Publication date
EP1180288A1 (en) 2002-02-20
JP2003500929A (en) 2003-01-07
CA2374329A1 (en) 2000-11-30
EP1180288A4 (en) 2003-06-11
AU771695B2 (en) 2004-04-01
BR0010933A (en) 2002-04-23
MXPA01012024A (en) 2002-06-21
WO2000072535A1 (en) 2000-11-30

Similar Documents

Publication Publication Date Title
US6687241B1 (en) Enterprise contact server with enhanced routing features
US6381329B1 (en) Point-of-presence call center management system
EP1514400B1 (en) Customer communication service system
US6324276B1 (en) Point-of-presence call center management system
US6597685B2 (en) Method and apparatus for determining and using multiple object states in an intelligent internet protocol telephony network
US6373836B1 (en) Apparatus and methods in routing internet protocol network telephony calls in a centrally-managed call center system
US7376227B2 (en) Method and apparatus for integrating agent status between a customer relations management system and a multiple channel communications center
US20020001300A1 (en) Internet protocol call-in centers and establishing remote agents
US20030035532A1 (en) Web-based distributed call center architecture
EP1774760B1 (en) Method and apparatus for integrating agent status between a customer relations management system and a multiple channel communications center
AU771695B2 (en) Enterprise contact server with enhanced routing features

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)