Abstract:
Apparatus includes a communications processor to receive and route communications from a plurality of communications mediums. A plurality of program generators is coupled to the communications processor. The plurality of program generators is further automatically to generate a plurality of media-specific control programs corresponding to each of a plurality of communication mediums in accordance with a media-independent portion of a source communications control file.

Description:
FIELD OF THE INVENTION  
       [0001]     This invention relates to the field of multimedia call prompts. In particular, this invention is drawn to methods and apparatus for multimedia call prompts for multiple communication mediums.  
       BACKGROUND OF THE INVENTION  
       [0002]     Transaction processing environments such as call centers enable routing of customer transactions (e.g., telephone calls) to agents for handling the customer&#39;s request. An automatic call distributor (ACD) is typically used to queue the calls and subsequently route them to agents subject to implementation specific rules when availability permits. For example, an ACD may route telephone calls to agents based on information about the originating telephone number in accordance with a set of rules.  
         [0003]     The ACD may incorporate other components such as touch tone menu or interactive voice response (IVR) systems to enable callers to direct themselves to the appropriate agent by proceeding through a series of selection menus in response to voice or touch tone commands. The prompts, selections, and routing rules for telephone callers are typically defined through a script or call control table in the ACD.  
         [0004]     Numerous other mediums are available for communication including electronic mail, facsimile transmissions, cellular telephones, and internet and intranet web browsing. ACDs and other communications systems may similarly incorporate media-specific components for handling routing of communications for one or more of these other types of communication mediums. Each type of media is often handled by its own system. Accordingly, each type of communication medium typically has a unique method for configuring and delivering the prompt and collecting the caller&#39;s response. Thus a communication system capable of handling multimedia communications may have a variety of media-specific applications for configuring the prompts, selections, and routing rules.  
         [0005]     One disadvantage of having distinct applications for configuring and delivering the prompts is with respect to modification and maintenance of the prompts and routing rules consistently across multiple communication mediums. Modifications may not be promulgated to provide a consistent user interface across all mediums at the same time. Manually maintaining each media-specific component with a separate application typically also increases the exposure to implementation errors. Thus the use of distinct media-specific applications to independently handle the routing and menu system for each communication medium may result in errors or inconsistencies in implementation across the different mediums.  
       SUMMARY OF THE INVENTION  
       [0006]     In view of limitations of known systems and methods, methods and apparatus for generating media-specific scripts for a plurality of multimedia communications systems. A method includes the step of receiving a transaction routing script. A media-specific script is generated for a plurality of communications media in accordance with the transaction routing script. In one embodiment, the transaction routing script includes at least one prompt, at least one selectable option and a routing destination for each selectable option. In various embodiments a media-specific script may correspond to an electronic mail communications medium, a touch tone telephone communications medium, or an interactive voice response telephone system communications medium. In one embodiment, a media-specific script defines at least one web page. In another embodiment, a media-specific script defines a plurality of hyperlinked web pages.  
         [0007]     An apparatus includes a transaction processor for receiving and routing communications from a plurality of communications mediums. A script generator generates a plurality of transaction routing scripts specific to selected communications mediums in accordance with a media-independent portion of a predetermined transaction routing script. In one embodiment, the pre-determined transaction routing script includes at least one prompt, at least one selectable option and a routing destination for each selectable option. In various embodiments, a media-specific script may correspond to electronic mail, touch tone telephone, or interactive voice response telephone communications medium. In one embodiment, a media-specific script defines at least one web page. In another embodiment, a media-specific script defines a plurality of hyperlinked web pages. In one embodiment, the transaction processor is an automatic call distributor.  
         [0008]     Other features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description that follows.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]     The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:  
         [0010]      FIG. 1  illustrates one embodiment of a transaction processing system.  
         [0011]      FIG. 2  illustrates one embodiment of a method of generating a plurality of media-specific scripts from a media-independent call control script.  
         [0012]      FIG. 3  illustrates one embodiment of a media-independent call control script including prompts, selectable options, and routing destinations corresponding to the selectable options.  
         [0013]      FIG. 4  illustrates the application of the method of  FIG. 2  to the call control script of  FIG. 3  for an internet or intranet application.  
         [0014]      FIG. 5  illustrates the application of the method of  FIG. 2  to the call control script of  FIG. 3  for a telephonic application.  
     
    
     DETAILED DESCRIPTION  
       [0015]     The following detailed description sets forth numerous specific details to provide a thorough understanding of the invention. However, those of ordinary skill in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, protocols, components, algorithms, and circuits have not been described in detail so as not to obscure the invention.  
         [0016]     Particular embodiments are described below as used in a transaction processing environment such as an automatic call distributor for handling communication transactions from a variety of communication mediums. However, the teachings may be used in other communication environments.  
         [0017]     Exemplary transactions in a transaction processing environment include telephone calls, facsimile transmissions, electronic mail (e-mail), video sessions, or network sessions (such as an Internet session). A particular transaction can be either inbound (e.g., received by a transaction processing system) or outbound (e.g., transmitted from a transaction processing system).  
         [0018]     A transaction processing system is any device capable of receiving, transmitting, queuing, routing, or otherwise processing a transaction. A transaction processing system may also handle mixed-medium transactions (e.g., receive a telephone call and respond to the telephone call using e-mail or facsimile). Example transaction processing systems include automatic call distributors (ACDs), call centers, and other telephone call processing devices as well as e-mail routing systems and web servers.  
         [0019]      FIG. 1  illustrates one embodiment of a transaction processing environment  100 . The transaction processing environment of  FIG. 1  allows transaction initiators (e.g., callers) to contact a handler (e.g., a customer service agent) using various communication mediums. Similarly, the transaction processing environment allows an agent to respond to a received transaction or to initiate a new transaction.  
         [0020]     Transaction processing system  110  is coupled to a server  150 , a public switched telephone network (PSTN)  140  and a local area network (LAN)  160 . Transaction processing system  110  is capable of processing various types of transactions, such as telephone calls, electronic mail (e-mail), voice mail, and facsimiles. Transaction processing system  110  is capable of receiving transactions from PSTN  140 , LAN  160 , and server  150 . Similarly, transaction processing system  110  is capable of transmitting transactions to PSTN  140 , LAN  160 , and server  150 . For example, transaction processing system  110  can receive an incoming telephone call directly via PSTN  140 . Another incoming telephone call may be received by server  150  (e.g., an Internet telephone call received across Internet  180 ) and provided to transaction processing system  110  across a communication link  112  or across LAN  160 . In other situations, transaction processing system  110  may receive an incoming e-mail from server  150  or LAN  160 .  
         [0021]      FIG. 1  illustrates a single server  150  capable of interacting with various components in the transaction processing environment  100 . For example, server  150  may operate as a web server, an e-mail server, a fax server, and a video server. Additionally, server  150  can perform the functions of a control server, as discussed below. In alternate embodiments of the invention, the transaction processing environment may include multiple servers, in which each server is responsible for one or more types of transactions. For example, a web server processes all web-based transactions, an e-mail/fax server processes all e-mail and facsimile transactions, and a control server controls and manages various transactions and communication sessions in the transaction processing environment.  
         [0022]     LAN  160  can be any type of network, including an intranet network, capable of communicating information between various nodes in the network. As shown in  FIG. 1 , multiple agents  120  are coupled to LAN  160 . In one embodiment, hundreds or thousands of agents may be coupled to one or more LANs  160 , which are coupled to transaction processing system  110 . Alternatively, some or all of the agents  120  may be coupled directly to transaction processing system  110 , rather than coupled through LAN  160 .  
         [0023]     Although agents  120  are represented in  FIG. 1  by a computer, a particular agent  120  may utilize any type of device or system that allows interaction between the agent and another person or device (such as a customer or a customer&#39;s computer). For example, an agent handling only telephone call transactions might only use a telephone system, without requiring a computer.  
         [0024]     Similarly, an agent handling only e-mail messages may require a computer system, but not a telephone. In a particular embodiment of the invention, each agent has a computer system and a telephone (which may be integrated into the computer system), such that the agent is capable of handling and responding to multiple types of transactions (e.g., telephone calls, e-mail, voice mail, and facsimiles).  
         [0025]     Agent  142  is coupled to PSTN  140 . Agents  120 , discussed above, are located locally to transaction processing system  110  or include an access mechanism allowing agents  120  to establish a connection to LAN  160 . Agent  142  is a remote agent or otherwise unable to directly connect to LAN  160 . For example, agent  142  may be working at a location geographically distant from transaction processing system  110 , such as working at home or traveling. Agent  142  establishes a connection with transaction processing system  110  across PSTN  140 . Alternatively, agent  142  may connect with LAN  160  or transaction processing system  110  through Internet  180  or any other network or communication system.  
         [0026]     A database  130  is coupled to LAN  160  and is used by transaction processing system  110 , agents  120  and  142 , and server  150  to store and retrieve various types of information. For example, database  130  may contain information about the transaction processing system, the performance of the system, and the agents and customers that use transaction processing system  110 . In one embodiment, all agent computers, servers, and other devices coupled to LAN  160  are capable of storing and retrieving information from database  130 .  
         [0027]     As shown in  FIG. 1 , Internet  180  is coupled to server  150  and customer computers  182  and  184 . Customer computer  182  may include an Internet phone for establishing voice communications between the customer and an agent across Internet  180 . The customer using computer  184  has a telephone  188  and a fax machine  186  coupled to PSTN  140  and located near computer  184 . Thus, the user of computer  184  may communicate with an agent of the transaction processing system using Internet  180  (e.g., using an Internet phone or e-mail application), fax machine  186 , telephone  188 , or any combination thereof.  
         [0028]     For example, customer  184  may generate and transmit an e-mail message across Internet  180  to server  150 . Server  150  then communicates the e-mail to transaction processing system  110 , which provides the e-mail to a particular agent or group of agents for response.  
         [0029]     Agents may be grouped together based on area of expertise, company department, or type of support provided (e.g., sales or technical support). The agent responding to the e-mail can respond with another e-mail message or may respond by telephone, facsimile, or any other type of transaction supported by the transaction processing system and the transaction initiator. In particular embodiments of the invention, the transaction initiator may specify the type of transaction used by the responding agent.  
         [0030]     For example, a transaction initiator may generate an e-mail transaction, but request that an agent respond with a telephone call. Although customer computers  182  and  184  are shown coupled directly to Internet  180 , it will be appreciated that any communication mechanism can be used to couple computers  182  and  184  to Internet  180 , such as PSTN  140  and an Internet Service Provider (ISP). In alternate embodiments, Internet  180  may be replaced with any communication network using any communication protocol.  
         [0031]     The environment illustrated in  FIG. 1  includes a separate LAN  160  and Internet  180 . In alternate environments, LAN  160  and Internet  180  are merged into a single communication network capable of communicating information between any two or more devices coupled to the communication network.  
         [0032]     Each transaction server described with respect to  FIG. 1  typically requires some type of control script or routing script to control the routing of calls to a handler or agent. Generally these routing scripts are independently generated and maintained. One disadvantage of de-centralized generation and maintenance is the risk of implementation inconsistencies across the “zone of customer contact.” Another disadvantage is the need to “reconstruct” the customer interface over and over in order to generate a media-specific control script for each medium of communication. For example, scripts must be created for a web server, a fax server, an email server, an interactive voice response server, etc.  
         [0033]     In order to have consistency across communication medium, each communication medium should have a media-specific script incorporating the media-independent aspects of a generalized script.  
         [0034]     In contrast,  FIG. 2  illustrates a method of generating a media-specific script for a plurality of communications mediums from a single transaction routing control script  280 . Transaction routing control script  280  may include information for configuring the interface particular to a specific communications medium. In one embodiment, the transaction routing script is a call control script.  
         [0035]     The transaction routing script  280  is received in step  210 . In step  220 , a plurality of media-specific scripts is generated from transaction routing script  280 . In various embodiments, a call control script  232 , a web page script  234 , an email session script  236 , an interactive voice response (IVR) script  238 , a facsimile script  240 , or scripts specific to other mediums  242  are generated. Transaction routing script  280  may be referred to as the media-independent script or source script from which the media-specific scripts are generated. In various embodiments, the media-specific scripts may define routing for communications mediums including telephone, email, intranet, or internet communications.  
         [0036]     Generally, there may still be a plurality of media-specific generators for generating the media-specific control scripts, but they can share a common transaction routing script (e.g.,  280 ) or description as the input for creating the media-specific scripts. In step  230 , the media-specific scripts are propagated to the transaction server handling the corresponding communication medium.  
         [0037]      FIG. 3  illustrates one embodiment of a media-independent script that is used to construct applicable media-specific scripts for the various communication mediums that the ACD interfaces with. In one embodiment, the media-independent script is a file containing tags or tokens that guide media-specific script generators in building media-specific scripts for a plurality of communication mediums.  
         [0038]     Media-independent script  300  consists of a plurality of menus, each of which is associated with a prompt and one or more selectable options. Depending upon the media the prompt must be conveyed on, the prompt may be constructed a number of different ways. The media-specific script generators may analyze a given menu to construct the prompt in a manner best suited for a particular media.  
         [0039]     In this example the script defines the prompts and the selections as well as the routing commands corresponding to the selections. In the illustrated embodiment, the script defines three levels of menus. One menu selection may result in routing the caller to another menu such that a caller may proceed through multiple levels of the menu before being directed to the appropriate agent.  
         [0040]     Menu  310  includes a prompt identifier  112  to distinguish the menu and therefore its associated prompt from other menus and prompts in the script. Menu  310  contains a prompt preamble  314  that is used to construct a portion of the prompt presented to the user. In one embodiment, the prompt preamble is configured separately from the transaction routing script. The prompt preamble  314  is illustrated as is in  FIG. 3  for simplicity.  
         [0041]     In one embodiment, the prompt preamble is assigned a voice file and a text string. The voice file is used for audio communications such as touch tone or IVR. For text-based communications media such as web access, the text string or variations of it may be used. In one embodiment, a plurality of media specific prompts, each corresponding to a different type of communications medium, may be assigned to the prompt preamble.  
         [0042]     Menu  310  also includes a plurality of selectable options  322 . Each option has an option identifier (e.g.,  316 ) to distinguish it from other options for this menu. The option identifier corresponds to one of the choices a user or caller is presented with. Each option identifier is associated with an option prompt  318  that may be used in creating the media-specific prompt.  
         [0043]     Each option includes a command  320  that is performed whenever that option is selected. In one embodiment, the command may route the call to a particular agent or groups of agents or to another menu of the menu system. For example, if the value assigned in the collection step  324  to the variable “LANGUAGE” is “1”, then the “GOTO P1-1” command is executed. The call routing script indicates that the script should continue with prompt P1-1 (menu  330 ), if “LANGUAGE” is “1” (i.e., if “ENGLISH” is selected).  
         [0044]     Menu  310  defines a prompt for the language that subsequent prompts should be presented in. Menu  330  defines a prompt for types of banking transactions to be performed. Menus  350  and  370  are used to prompt the caller or user for an account number when certain types of transactions are selected before proceeding. The ACD may pass this information to the yet-to-be-determined destination or use this information to look the customer up in order to provide the subsequently assigned agent information about the customer.  
         [0045]     Based on the prompt definition, different media-specific script generators may present the prompt in ways suited for a particular medium. The prompt, for example, may be presented in one manner for visual applications and another manner for audio applications.  
         [0046]     For example, one application used to access resources available on the Internet and intranets is referred to as a browser. Browsers enable users to navigate and access hypertext documents and other resources residing on the same host or other networked hosts. Internet resources are identified by a uniform resource locator (URL) that identifies the host computer and the location of the desired resource on the host computer. These resources may include audio files, video clips, executable files, or virtually any other type of data.  
         [0047]     Hypertext resources are resources that contain links to different locations within the same resource or other resources. These links can be visualized as webs linking files to other files on the same or different hosts. In one embodiment, these hypertext resources are stored as Hypertext Markup Language (HTML) files. HTML defines the links to other resources. When accessed from the internet or an intranet using a browser, an HTML file is often referred to as a page of the “web” or simply a web page. A web page, for example, may provide the user with visual, audio, or other multimedia data.  
         [0048]     In one embodiment, an internet or intranet script generator (e.g., a web page editor) may generate one or more HTML file suitable for viewing with a browser.  FIG. 4 , for example, illustrates the web pages and hyperlinks as they might be constructed from the media-independent script of  FIG. 3 .  
         [0049]     The internet or intranet script generator creates one or more HTML files that result in the web pages linked as illustrated in  FIG. 4 . In one embodiment, HTML code is generated to create a web page ( 410 ,  420 ,  430 ,  440 ) for each menu ( 310 ,  330 ,  350 ,  370 ).  
         [0050]     The prompt of web page  410  has been constructed from the preamble  314  and the options  322  of menu  310 . The underlined words represent a user-selectable hyperlink to another location. The arrows indicate the manner in which the web pages are linked. For example, the underlining of “ENGLISH” in menu  410  indicates that “ENGLISH” may be selected such as by a pointing device (e.g., mouse) or the keyboard. The arrows indicate that the user will be routed to web page  420  if option  412  (“ENGLISH”) is selected.  
         [0051]     Once on web page  420 , the selection of items  422  or  428  route the transaction to AGENT GROUP X  450  for handling. If option is selected, the user is prompted for his account number using web page  430 . Once “SUBMIT”  434  is selected, the transaction is routed to AGENT GROUP Y  460  for handling. If option  426  is selected on web page  420 , the user is prompted for his account number using web page  440 . Once “SUBMIT”  444  is selected, the transaction is routed to AGENT GROUP Z  470 .  
         [0052]     In one embodiment, the information collected from menu  430  and  440  may be used to identify the customer to the agent. Alternatively, the information is used to access database  130  to provide the agent with customer-specific issues such as outstanding orders, sales, etc.  
         [0053]      FIG. 5  illustrates the result of generating a call control script to handle telephone callers from the transaction routing control script of  FIG. 3 . In step  510 , the caller is provided with a prompt. Step  512  collects the response to this prompt.  
         [0054]     Processing continues with step  520  if the user selected English as the desired language. The user is then presented with prompt  520  and a number of choices. The response is collected again in step  522 . Consistent with transaction routing control script  300 , if the caller selects options “1” or “4” he is routed to agent group X in step  550 . If the caller selects “2” or “3”, he is presented with a corresponding prompt for an account number ( 530 ,  540 ). Once the account number is collected ( 532 ,  542 ), the caller is routed to agent group Y in step  560  or agent group Z  570  depending on the particular transaction the caller indicated in step  522 .  
         [0055]     Implementation of the collection steps  512 ,  522 ,  532 , and  542  may vary between applications. For example, one application might accept only touch tone (i.e., dual tone multi-frequency (DTMF)) signals. Another application may only accept voice commands. The media-specific script generators can implement the collection step in a manner suitable for the corresponding communications medium. Accordingly, the collection steps  512 ,  522 ,  532 , and  542  are media-specific collection steps. A single collection step could also handle multiple communications mediums. For example, an IVR system can use a single collection step to handle both voice and DTMF input. In one embodiment, the media-independent call control list may also include tags or tokens directing the collection step for a particular communications medium.  
         [0056]     The prompt generated by the media-specific script generators may also vary somewhat between different communications mediums. Referring to  FIGS. 3-5 , the prompt appearing in web page  410  is constructed from prompt preamble  314  and options  322 . The prompts for web pages 420-440 are similarly constructed from the prompt preambles and options of menus  330 - 350 . The prompts of  FIG. 5 , however, are different because the medium is an audio rather than a visual medium. Accordingly, the prompts of  FIG. 5  include the options defined in transaction routing control script  300 , but the prompts use only portions of the corresponding prompt preamble when applicable. In one embodiment, the media-independent call control list contains tags or tokens to help indicate how the prompt should be constructed for a particular communications medium.  
         [0057]     In one embodiment, the prompts and selections are substantially the same across the plurality of communications mediums, but the prompt presentation and response collection mechanisms are media-specific. Thus for example, a telephone-specific routing script may provide the caller with audio prompts and selections and then collect the response through touch tone detection or voice recognition. An internet or intranet communication routing script may provide the caller with a web page displaying the same prompts and selections. The user is then able to make a selection using the keyboard or a pointing device such as a mouse.  
         [0058]     In order to have consistency across communication mediums, each communication medium should have a media-specific script incorporating the media-independent aspects of a generalized script as described above. The use of the source script consolidates the specification of the prompts and the call routing rules for multimedia calls into a centralized script to reduce the number of implementation errors otherwise introduced when attempting to independently maintain each media-specific call control script using media-specific applications.  
         [0059]     Specific prompt, collection, and routing commands have been provided as exemplary transaction processing commands or scripting commands. Similarly, specific mediums such as facsimile, e-mail, and telephone calls have been provided as exemplary communication mediums. These specific mediums and commands are provided merely as examples. The methods and apparatus for providing consolidated specification and handling of multimedia call prompts may be applied to other communication mediums and other transaction processing or scripting commands as well.  
         [0060]     In the preceding detailed description, the invention is described with reference to specific exemplary embodiments thereof. Various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.