Abstract:
Automated call routing systems and methods are described. In one implementation, a speech recognition directory system facilitates the routing of callers based upon stored results of recent disambiguations, which may be stored in heuristic profiles that are associated with callers. Instead of requiring a caller to process a series of disambiguation attempts, in which secondary information is presented for the caller&#39;s approval, this call routing scheme leverages the fact that the user is likely seeking a person they&#39;ve previously contacted. In large directories, this call routing scheme improves the speed of the transaction and eliminates the frustration of the disambiguation process. Rather than pursuing a disambiguation process with the caller, the call routing system may immediately announce the transfer. The caller may abort the process if the selected call destination is incorrect. In some implementations, if the caller selects a call destination that is not within the caller&#39;s associated heuristic profile, the new selection is added to the caller&#39;s associated heuristic profile in FIFO fashion. The heuristic profile may be configurable, allowing a limited, or more extensive, repository of past caller selections.

Description:
TECHNICAL FIELD  
         [0001]    This invention relates to automated call routing systems and methods.  
         BACKGROUND  
         [0002]    Large enterprises receive numerous telephone calls, each of which must be routed in accordance with callers&#39; instructions. Calls typically are routed by a human operator or an automated call routing system (commonly referred to as an “automated attendant” or “autoattendant”). Human operators typically route calls accurately and efficiently, but at a relatively high cost. Autoattendant systems, on the other hand, typically are cheaper to implement, but tend to be less accurate and efficient than human operators. For example, some autoattendants present a caller with a hierarchical menu consisting of a list of choices through which the caller must navigate. Often, making a choice opens up a menu of further choices. In large organizations, the menu hierarchy may be very complex, requiring several choices by a caller, and requiring a caller to listen to a long menu list in order to understand the available choices. Navigating through such menu hierarchies typically is a frustrating and lengthy process for most callers and not very efficient.  
           [0003]    Traditionally, autoattendants play an announcement to the caller and prompt a caller to make one of multiple selections using a voice response unit. For example, the caller may be prompted to dial the extension of the party being called. The caller also may be given other options, such as leaving a voice message or accessing a directory of names if the extension of the called party is not known. Some early automated telephone directories required the caller to spell the name of the called party using a telephone dual-tone multifrequency (DTMF) keypad. Most recent autoattendant systems are voice-enabled, allowing callers to be routed to a desired call destination simply by speaking the name of the call destination. In these systems, an autoattendant answers an incoming call and asks the caller to speak the name of the party or department being called. The autoattendant includes a speaker-independent speech recognition engine that identifies and translates a received speech signal into name data. The autoattendant obtains a telephone number corresponding to the translated name data from a telephone number directory based on the translated name data, and routes the call to that telephone number.  
           [0004]    When a call destination name search provides an ambiguous result, some conventional autoattendant systems rely on the caller&#39;s ability to distinguish between parties based on telephone numbers or other information. These systems become increasingly more cumbersome as the number of similar names that are maintained in the call destination directory increases. Other autoattendant systems use secondary information that is contained in subscriber listings to disambiguate search results and provide the telephone number and other data that are associated with a desired party.  
         SUMMARY  
         [0005]    The invention features improved call routing systems and methods that retain information from disambiguation sessions with callers to reduce repeated exposure of callers to future disambiguation sessions. In this way, the invention enables a call routing system to learn from interactions with the caller and, thereby, become more efficient over time. The invention also improves caller satisfaction by reducing the amount of caller interaction with the system and by speeding the call routing process.  
           [0006]    In one aspect, the invention features a call routing system that includes a search module and a disambiguation module. The search module is operable to generate a hypothesis list of candidate call destinations based on one or more queries to a call destination directory in response to a call destination request that is received from a caller. The disambiguation module is operable to compare a hypothesis list, which is generated in response to a call destination request by a given caller and contains multiple candidate call destinations, with a heuristic profile that is associated with the given caller and contains one or more records of prior disambiguation selections made by the caller.  
           [0007]    In another aspect, the invention features a call routing method, in accordance with which a hypothesis list of candidate call destinations is generated based on one or more queries to a call destination directory in response to a call destination request received from a caller. A hypothesis list, which is generated in response to a call destination request by a given caller and contains multiple candidate call destinations, is compared with a heuristic profile that is associated with the given caller and contains one or more records of prior disambiguation selections made by the caller.  
           [0008]    In another aspect, the invention features a computer program for implementing the above-described call routing method.  
           [0009]    Other features and advantages of the invention will become apparent from the following description, including the drawings and the claims. 
       
    
    
     DESCRIPTION OF DRAWINGS  
       [0010]    [0010]FIG. 1 is diagrammatic view of a network on which a call routing system is implemented for handling internal and external telephone calls to and from a business enterprise.  
         [0011]    [0011]FIG. 2 is a block diagram of a call routing system.  
         [0012]    [0012]FIGS. 3A and 3B are flow diagrams of a call routing method.  
         [0013]    [0013]FIG. 4 is a diagrammatic view of a disambiguation selection data record of a heuristic profile that is associated with a caller.  
         [0014]    [0014]FIG. 5 is a block diagram of a server computer. 
     
    
     DETAILED DESCRIPTION  
       [0015]    In the following description, like reference numbers are used to identify like elements. Furthermore, the drawings are intended to illustrate major features of exemplary embodiments in a diagrammatic manner. The drawings are not intended to depict every feature of actual embodiments nor relative dimensions of the depicted elements, and are not drawn to scale.  
         [0016]    Referring to FIG. 1, in one embodiment, a call routing system  10  may be implemented in the context of a telephony network  12  that is operable to handle internal and external telephone calls to and from a business enterprise  14 . Telephony network  12  includes a global communication network  16 , which may include a number of different computing platforms and transport facilities, including a voice network, a wireless network, and a computer network. An external caller using a conventional land-line telephone  18  may communicate with call routing system  10  over the public switch telephone network (PSTN), whereas an external caller using a cellular telephone  20  may communicate with call routing system  10  over a conventional wireless network (e.g., an AMPS, GSM, TDMA or CDMA cellular network system). An internal caller using an internet protocol (IP) telephone  22  may communicate with call routing system  10  through an IP private branch exchange (PBX)  24 , and an internal caller using a digital telephone  26  may communicate with call routing system  10  through a conventional PBX.  
         [0017]    Referring to FIGS. 2, 3A and  3 B, in some embodiments, call routing system  10  includes a caller interface  36 , a search module  38 , a disambiguation module  40 , and a routing module  42 .  
         [0018]    Caller interface  36  is operable to receive call destination requests from callers through a network interface  44 . In the illustrated embodiment, network interface  44  is implemented as a trunk group provided by either IP PBX  24  or PBX  28 . In other embodiments, network interface may be in the form of single or multiple POTS (plain old telephone service) or ISDN (integrated services digital network) lines. When a call is received, caller interface  36  may transmit to the caller an announcement (or greeting) and a request for the caller to say a call destination name (step  46 ; FIG. 3A). The announcement and call destination name request may be in the form of synthesized speech that is generated by a voice synthesizer module  48  or one or more pre-recorded audio files (e.g., pulse code modulation files or WAV files) that may be stored in a voice library  49 .  
         [0019]    After the caller says the name of a call destination, network interface  44  transmits the audio signal that is received from the caller to an automatic speaker-independent speech recognition (ASR) module  50 , which is operable to convert audio speech signals into a digital data stream that includes a recognized call destination name (step  52 ; FIG. 3A). This digital data stream may be in the form of ASCII text and, preferably, includes the phonetic equivalents (or phonemes) of the converted speech signals.  
         [0020]    In some embodiments, network interface  44  also is operable to transmit to a caller identification module  54  a subscriber number, telephone number, or both, that may be received from an automatic number identification (ANI) service. Caller identification module  54  may retrieve information about the caller from a subscriber database  55  based on the number received from the ANI service. In other embodiments, caller identification module  54  may determine the identity of the caller by transmitting one or more information requests (e.g., “Please say your name or identification number?”) to the caller. The information requests may be in the form of speech that is synthesized by voice synthesizer module  48  or one or more pre-recorded audio files (e.g., pulse code modulation files or WAV files) that may be stored in voice library  49 .  
         [0021]    Search module  38  is operable to parse the digital data stream that is received from the ASR module  50  for the recognized name of the call destination requested by the caller. Search module  38  then translates the recognized call destination name into all possible spellings of the call destination name, including primary and alternative spellings of the call destination name and any exceptional spellings of the call destination name (step  56 ; FIG. 3A). Search module  38  queries a call destination directory  58  to obtain a hypothesis list of all of the candidate call destinations corresponding to all of the possible spellings of the requested call destination name (step  58 ; FIG. 3A). If the hypothesis list does not contain any candidate call destinations (step  60 ; FIG. 3A), the search module notifies the caller interface  36  to report to the caller that the requested call destination was not found (step  62 ; FIG. 3A). At this point, the caller interface  36  may prompt the caller to say the requested call destination again or prompt the caller to say a different call destination.  
         [0022]    In some embodiments, if the hypothesis list contains one or more candidate call destinations, the caller may be requested to confirm that the recognized call destination name corresponds to the requested candidate call destination.  
         [0023]    If the hypothesis list contains a single candidate call destination (step  64 ; FIG. 3A), search module  38  selects that candidate call destination as the routing destination (step  66 ; FIG. 3A). The routing destination is transmitted to routing module  42 , which notifies the caller interface  36  to report to the caller that the system is connecting the caller to the selected routing destination (step  68 ; FIG. 3B). At this point, the caller has the option of accepting the selected routing destination by simply staying on the line. Alternatively, the caller may say “Cancel” or provide some other indication that the selected routing destination is incorrect or no longer wanted. If the caller accepts the selected routing destination (step  70 ; FIG. 3B), the call is routed to the selected routing destination (step  72 ; FIG. 3B). Otherwise, the hypothesis list is disambiguated by disambiguation module  40  using a conventional disambiguation method (step  74 ; FIG. 3B). After the hypothesis list is disambiguated (step  74 ; FIG. 3B), the caller&#39;s disambiguation selection is stored in a heuristic profile (described in detail below) that is associated with the caller&#39;s identity, which was determined by the caller identification module  54  (step  76 ; FIG. 3B).  
         [0024]    If the hypothesis list contains multiple candidate call destinations (step  64 ; FIG. 3A), the hypothesis list is compared with a heuristic profile  77  that is associated with the caller&#39;s identity, which was determined by caller identification module  54  (step  78 ; FIG. 3A). If there is no heuristic profile associated with the caller&#39;s identity, disambiguation module  40  may compare the hypothesis list with a generic heuristic profile. The generic heuristic profile may contain, for example, a list of call destinations that may be sorted in accordance with one or more associated disambiguation fields (e.g., name, location, or division).  
         [0025]    If there are no matching call destinations in the hypothesis list and the caller&#39;s heuristic profile (step  80 ; FIG. 3A), the hypothesis list is disambiguated by disambiguation module  40  using a conventional disambiguation method (step  82 ; FIG. 3A). After the hypothesis list is disambiguated (step  82 ; FIG. 3A), the caller&#39;s disambiguation selection is stored in a heuristic profile (described in detail below) that is associated with the caller&#39;s identity, which was determined by the caller identification module  54  (step  84 ; FIG. 3A).  
         [0026]    If there is only one matching call destination in the hypothesis list and the caller&#39;s heuristic profile (step  86 ; FIG. 3B), that candidate call destination is selected as the routing destination (step  88 ; FIG. 3B). The routing destination is transmitted to routing module  42 , which notifies the caller interface  36  to report to the caller that the system is connecting the caller to the selected routing destination (step  68 ; FIG. 3B). At this point, the caller has the option of accepting the selected routing destination by simply staying on the line. Alternatively, the caller may say “Cancel” or provide some other indication that the selected routing destination is incorrect. If the caller accepts the selected routing destination (step  70 ; FIG. 3B), the call is routed to the selected routing destination (step  72 ; FIG. 3B). Otherwise, the hypothesis list is disambiguated by disambiguation module  40  using a conventional disambiguation method (step  74 ; FIG. 3B). After the hypothesis list is disambiguated (step  74 ; FIG. 3B), the caller&#39;s disambiguation selection is stored in a heuristic profile (described in detail below) that is associated with the caller&#39;s identity, which was determined by the caller identification module  54  (step  76 ; FIG. 3B).  
         [0027]    If there are multiple matching call destinations in the hypothesis list and the caller&#39;s heuristic profile (step  86 ; FIG. 3B), disambiguation module  40  selects a matching call destination as the routing destination in accordance with a FIFO (first in, first out) ordering of the caller&#39;s heuristic profile (i.e., the most recently called matching call destination is selected) (step  90 ; FIG. 3B). The routing destination is transmitted to routing module  42 , which notifies the caller interface  36  to report to the caller that the system is connecting the caller to the selected routing destination (step  68 ; FIG. 3B). At this point, the caller has the option of accepting the selected routing destination by simply staying on the line. Alternatively, the caller may say “Cancel” or provide some other indication that the selected routing destination is incorrect. If the caller accepts the selected routing destination (step  70 ; FIG. 3B), the call is routed to the selected routing destination (step  72 ; FIG. 3B). Otherwise, the hypothesis list is disambiguated by disambiguation module  40  using a conventional disambiguation method (step  74 ; FIG. 3B). After the hypothesis list is disambiguated (step  74 ; FIG. 3B), the caller&#39;s disambiguation selection is stored in a heuristic profile (described in detail below) that is associated with the caller&#39;s identity, which was determined by the caller identification module  54  (step  76 ; FIG. 3B).  
         [0028]    The following is an exemplary caller interaction with call routing system  10 .  
         [0029]    “Please say the name?” 
         [0030]    User says “John Smith” 
         [0031]    Auto-Accept the following hypothesis:  
                                                                       In Heuristic       Hypo   Interp   Id   Recog Text   d1   Profile                   1   1   11111111   John Smith   Boston   No       1   2   22222222   John Smith   New   Yes                       York       1   3   33333333   John Smith   San   No                       Diego                  
 
         [0032]    The following is another exemplary caller interaction with call routing system  10  when call routing system  10  is configured to confirm the call destination name recognized by search module  38 .  
         [0033]    “Please say the name?” 
         [0034]    User says “John Smith” 
         [0035]    Confirm the following hypothesis:  
                                                                       In Heuristic       Hypo   Interp   Id   Recog Text   d1   List                   1   1   11111111   John Smith   Boston   No       1   2   22222222   John Smith   New York   Yes       1   3   33333333   John Smith   San Diego   No                  
 
         [0036]    Referring to FIG. 4, in some embodiments each disambiguation selection that is made by a caller is stored in the caller&#39;s heuristic profile as a data structure  92  that includes an identification number field  94 , a call destination name field  96 , a first disambiguation field  98 , and a second disambiguation field  100 . The identification number field  94  contains the identification number of a call destination that was selected by the caller during a disambiguation session. The call destination name field contains the name of the selected call destination. This may be the name of a person (e.g., John Smith), a department, or some other call destination. The first and second disambiguation fields  98 ,  100  may contain information that relates to the selected call destination (e.g., location or department) and may be used by disambiguation module  40  to disambiguate the hypothesis list.  
         [0037]    The call routing systems and methods described herein are not limited to any particular hardware or software configuration, but rather they may be implemented in any computing or processing environment, including in digital electronic circuitry or in computer hardware, firmware, or software. In general, the call routing systems may be implemented, in part, in a computer process product tangibly embodied in a machine-readable storage device for execution by a computer processor. In some embodiments, these systems preferably are implemented in a high level procedural or object oriented processing language; however, the algorithms may be implemented in assembly or machine language, if desired. In any case, the processing language may be a compiled or interpreted language. The call routing methods described herein may be performed by a computer processor executing instructions organized, for example, into process modules to carry out these methods by operating on input data and generating output. Suitable processors include, for example, both general and special purpose microprocessors. Generally, a processor receives instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer process instructions include all forms of non-volatile memory, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM. Any of the foregoing technologies may be supplemented by or incorporated in specially designed ASICs (application-specific integrated circuits).  
         [0038]    Referring back to FIG. 1, in the illustrated embodiment, call routing system  10  is implemented as a number of software modules operating on a server computer  102 , which may communicate with a computer workstation  104  and access data contained in a data store  106  over a computer network  108  (e.g., a wide area network or a local area network). Data store  106  may contain the call destination directory  58 , the heuristic profiles  77 , and the subscriber database  55 .  
         [0039]    Referring to FIG. 5, in one exemplary embodiment, server computer  102  includes a processing unit  114 , a system memory  116 , and a system bus  118  that couples processing unit  114  to the various components of server computer  102 . Processing unit  114  may include one or more processors, each of which may be in the form of any one of various commercially available processors. System memory  116  includes a read only memory (ROM)  120  that stores a basic input/output system (BIOS) containing start-up routines for server computer  102 , and a random access memory (RAM)  122 . System bus  118  may be a memory bus, a peripheral bus or a local bus, and may be compatible with any of a variety of bus protocols, including PCI, VESA, Microchannel, ISA, and EISA. Server computer  102  also includes a hard drive  124 , a floppy drive  126 , and CD ROM drive  128  that are connected to system bus  118  by respective interfaces  130 ,  132 ,  134 . Hard drive  124 , floppy drive  126 , and CD ROM drive  128  contain respective computer-readable media disks  136 ,  138 ,  140  that provide non-volatile or persistent storage for data, data structures and computer-executable instructions. Other computer-readable storage devices (e.g., magnetic tape drives, flash memory devices, and digital video disks) also may be used with server computer  102 . A user may interact (e.g., enter commands or data) with server computer  102  using a keyboard  142  and a mouse  144 . Other input devices (e.g., a microphone, joystick, or touch pad) also may be provided. Information may be displayed to the user on a monitor  146 . Server computer  102  also may include peripheral output devices, such as speakers and a printer. One or more remote computers  148  may be connected to server computer  102  over a local area network (LAN)  150 , and one or more remote computers  152  may be connected to server computer  102  over a wide area network (WAN)  154  (e.g., the Internet).  
         [0040]    Other embodiments are within the scope of the claims.