Abstract:
A method and system for organizing and managing information to be used by a voice mail system to facilitate call handling based on information contained in an address book having a database with entries corresponding to information about callers and a user interface. The method comprising the steps of automatically or manually creating an entry in the address book associated with the information about a caller, maintaining the address book based on a set of options provided by the user interface, and managing the voice mail system corresponding to the address book by interacting with the user interface. Calls can be initiated and different calls can be treated differently using the information in the address books.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a nonprovisional application of U.S. provisional patent application “VOICE MAIL SYSTEM AND METHOD WITH SUBSCRIBER SELECTION OF AGENT PERSONALITIES,” U.S. Ser. No. 60/060,812, filed Oct. 1, 1997, having Will Castagna as the inventor. The Ser. No. 60/060,812 application is hereby incorporated by reference in its entirety. 
    
    
     BACKGROUND OF THE INVENTION 
     Telephone voice mail systems are well known. Some voice mail systems include a call screening feature which, after the extension is designated by the caller, asks the caller “Who is calling?,” records any response by the caller, and plays the recording to the called party so the called party can decide what action(s) to take thereof. The called party then presses a key to take the call or presses another key to instruct the voice mail system to play a recording like “Mr. Jones is not available, please leave a message . . . ,” possibly followed by a further prompt to the calling parties proving them with more options. 
     Some voice mail systems include an auto forward feature. This feature is enabled by the extension owner, before leaving the extension. In the event a call is received, the auto forward feature instructs the voice mail system to ring another extension that has been specified by the extension owner or to dial back out and connect the caller to the dialed line outside of the called party&#39;s telephone system. In some voice mail systems, the extension owner may record a message to be played to callers before the call is forwarded. 
     Some voice mail systems include a call blocking feature which allows the extension owner to instruct the voice mail system to play a message to the caller, stating that the called party is not available, or to connect the caller to a voice mail system to leave a message. Some voice mail systems include a call holding feature which operates if the designated extension is busy. This feature gives the caller the option to be placed on hold and subsequently put through to the called party if the extension becomes available. 
     Voice mail systems in the prior art give the user/extension owner several options for handling incoming calls. However, they do not provide the user with the capability of compiling a set of information for the most-frequently called or calling parties and handling each incoming call individually according to the compiled information for a particular party. 
     Therefore, there is a need for a system and method having an address book that the user/subscriber can store information individually for each party in the address book. The information can then be used by the voice mail system to automatically handle calls to or from each party. 
     There is also a need to provide a system and method having an address book for handling the messages stored in the voice mail system for the subscriber and treating each message individually according to the information stored in the address book for the calling party. It is desirable to provide a user interface to maintain and manage the information in the address book. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a method and apparatus for an address book used by a user of a voice mail system to facilitate handling of calls and voice messages. The new methodology involves creating entries associated with information about a caller to the voice system in a database. The database entries can be maintained and changed by interacting with a user interface to the address book. The address book is then used by the user to initiate calls or handle an incoming call or manage a stored message in the voice mail system. 
     In the preferred embodiment, the information can automatically be added to the address book from a stored message or from an e-mail message using a menu containing user options for adding, deleting, changing, and reviewing the information. In a further embodiment, information can be added to or selected from the address book using voice recognition technology. According to another embodiment, the menu is a voice-based menu responsive to user&#39;s selected option. Information for a phone number, a caller-spoken name utterance, a subscriber-spoken utterance, a fax number, an e-mail address, a voice recognition template are stored in the database to facilitate the call handling features. 
     Still other embodiments of the present invention will become readily apparent to those skilled in the art from the following detailed description, wherein is shown and described only embodiments of the invention by way of illustration of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other and different embodiments and its several details are capable of modification in various obvious respects, all without departing from the spirit and scope of the present invention. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the telecommunications application hardware platform according to a preferred embodiment of the invention. 
     FIG. 2 is a flow chart of the process used by a subscriber in conjunction with the preferred embodiment of selecting an agent for that subscriber. 
     FIG. 3 is a flow chart of the process used by the system for automatically selecting an agent using a combination of ANI and voice recognition methods for caller identification. 
     FIG. 4 is a flow chart of a process for storing caller information based on a message left in the system. 
    
    
     DETAILED DESCRIPTION 
     A block diagram of the telecommunications application hardware platform  10  used with the preferred embodiment is shown in FIG.  1 . The typical telecommunications applications run on the platform include call answering (including voice, fax and data processing), multimedia messaging, voice recognition and call management. Despite having functionality beyond handling voice calls, for convenience, the telecommunications application hardware platform together with its various telecommunications applications will be referred to herein as the “voice mail system.” The platform has three main elements, a series of media modules  12 , a series of application modules  14  and a series of management modules  16 . These three series of modules are interconnected using a dual high speed Ethernet backbones, centered around Ethernet Hub A  18  and Ethernet Hub B  20 . Both Ethernet hubs are connected to an Intranet  22 , which allows the platform to communicate to and receive commands from subscribers through their desktop computers and through the Intranet. Alternatively, any network other than traditional Intranets may be employed, including the Internet. A principle kept in mind in the design of the platform is the ability to offer extremely high operational availability of the platform and applications running on it. 
     The media modules  12  provide media storage, media flow (play/record), media transformation (Digital Signal Processing—DSP) resources and the telephony interfaces for the platform. The media module is capable of playing and recording multimedia messages (voice, fax, e-mail) from/to disk as well as supplying tone detection/generation, voice recognition, text to speech and fax modem services. 
     Each media module  12  uses N+1 power and RAID disk technologies to enhance its reliability and availability. Additionally, media modules are clustered to allow failover between modules in the event one of them should fail. Preferably, the operating system for the media module host CPU is Solaris. 
     Application modules are NT servers hosting Microsoft&#39;s Windows NT Server software. They host the applications and database services for the platform. Communication with media modules is via the media module API and remote procedure calls. Like the media modules, the application modules make use of N+1 power and RAID disks  28  and are themselves clustered for high availability operation. 
     The management module  16  is a specialized version of an application module. The management module is responsible for hosting the cluster management services and call manager application and is central point for the collection and control of the platform fault management and alarming. To support all of this, the management module contains extra hardware for connection to media module consoles (not shown), application module maintenance ports, and the system monitor. The system monitor provides fault monitoring for each of the elements of the platform as well as providing critical, major and minor relay connections to the facility alarm grid. It communicates with each management module across an RS232 link. In some configurations, the platform management services and applications may reside on the same NT servers. 
     The Ethernet hubs  18 ,  20  tie all of the media, application, and management modules together. Each module has dual 100 Base-T Ethernet connections  29  that terminate at two separate Ethernet hubs  18 ,  20 . There is a third 10 Base-T Ethernet connection  24  between the media modules that is used for a heartbeat for a failover mechanism. 
     A media module  12  consists of a 20 slot VME enclosure, common control, T1 or E1 telephony interface cards, fax service circuit cards (optional), and a storage subsystem. All of these components are packaged in a NEBs compliant cabinet enclosure. 
     The media module  12  has four main components: media module enclosure power &amp; package; common control; telephony/DSP/service circuits/module; and media storage. 
     The preferred embodiments includes a pair of media modules each of which can host up to a maximum of 240 telephony and 240 fax ports. However, alternative embodiments include additional media modules. 
     The media module common control consists of the host CPU, SCSI host interfaces, Ethernet controllers and the environmental monitor. 
     The media module host CPU is packaged in a three slot, 6U VME bus module. The CPU requires a fourth backplane slot when Sbus modules are installed. The Sbus module carrier is used in the preferred embodiment. For the preferred embodiment the media module host CPU supports: Processor: Dual Hyper SPARC; Memory: 64 to 512 MB ECC DRAM; Sbus: Two standard Sbus slots; SCSI: Two fast/narrow SCSI-2 ports; Ethernet: Two 10 Base-T Ethernet ports; and Serial I/O: Four RS 232 ports 
     The host CPU can support several daughter board processor modules. The preferred embodiment will use processor modules with speeds of either 125 MHz, 150 MHz, 166 MHz or 200 MHz depending on performance requirements. Single, dual and quad processor configurations are possible in alternate embodiments. 
     The host CPU can accommodate up to 512 MB of error correcting [ECC] memory in increments of 64 MB. The ECC provides single bit error correction and multiple bit error detection on a per byte basis. The amount of memory populated will depend on performance requirements. 
     The media module includes a 100 Base-T Ethernet controller that connects to the 100 Base-T Ethernet hub designated as network B. This network serves as the backup network for network A. 
     Each media module has an environmental monitor [EM] to monitor and report on the system&#39;s condition and operating environment. The controller is a single slot VME card which the CPU interrogates across the VME bus. 
     The environmental monitor provides: RAID power and fan status for up to 3 RAID shelves; Media Modules cabinet temperature; VME enclosure temperature; VME backplane voltage monitor (software readable): +5 volts, +12 volts, −12 volts; Cabinet fan status; VME enclosure power and fan status; Control of the display panel fault LED; Signaling of media module faults to a management module; Remote VME bus reset (to reset the buddy media module); Signaling a fault to a management module for the buddy media module; Voltage test points for VME backplane voltages; LED indicators for VME backplane voltages; and 16 LED indicators for media module fault conditions. 
     Telephone network and service circuit interface modules provide the telephony, DSP and service circuit resources for a media module. The modules are made up of a base board and one or more daughter cards combined into a single 6U VME64 module. 
     The T1/Voice interface card consists of four T1 spans and the DSP resources to support basis voice functionality for 96 channels. The configuration as described below occupies a single VME backplane slot. VME base board with an Intel i960 processor, 4 MB of DRAM and two T1 spans; Dual span T1 daughter board; and Signal processor daughter board with six Motorola 66 MHz 56303 DSPs. 
     The E1/Voice interface card consists of four E1 spans and the DSP resources to support basis voice functionality for 90 channels. The forth span, allowing 120 channels, will be enabled with in a future version of the hardware. The configuration as described below occupies a single VME backplane slot. VME base board with an Intel i960 processor, 4 MB of DRAM and two E1 spans; Dual span T1 daughter board; and Signal processor daughter board with six Motorola 66 MHz 56303 DSPs. 
     The fax module has the processing resources to provide 24 channels of fax transmit and receive functionality in a single VME slot. 
     A fax module consists of: VME base board with an Intel i960 processor, 8 MB of DRAM; Signal processor daughter board with six Motorola 66 MHz 56303 DSPs. 
     Media storage is accomplished using a dual controller RAID system. The RAID configuration is 0+1 (mirrored and stripped). 
     The specifics of the RAID system described here are unique to the Artecon product. Alternatively, RAID systems from other manufacturers may be used. SCSI bus termination is done externally to the RAID controllers so that the controllers may be hot swapped without interfering with the SCSI bus termination. 
     An application module consists of an industrial grade PC, common control, and a storage subsystem. 
     The preferred embodiment supports two pairs of application modules and their storage subsystems packaged in a NEBs compliant cabinet enclosure. Each pair of application modules shares a single shelf dual controller RAID system. 
     Common control of an application module includes the host CPU, a video controller, a SCSI controller, two Ethernet controllers and an environmental monitor. 
     The host CPU is a passive backplane single board computer with an ISA and PCI bus interface. It is designed to plug into a PICMG compatible passive backplane that provides both ISA and PCI card slots. For the preferred embodiment the application module host CPU supports: Pentium Pro processor; custom BIOS; 128 MB ECC DRAM; floppy controller port; IDE interface; and two RS232 ports. 
     The processor in the application module of the preferred embodiment is a Pentium Pro operating at a core speed of 200 MHz and a bus speed of 66.67 MHz. 
     The BIOS contains custom extensions to allow remote serial communications with the host when the operating system is not loaded. Communication is supported across comm port 1. This remote preboot access permits maintenance personnel to interrogate/modify the BIOS CMOS settings and to run diagnostics when a system is off line. 
     The host CPU can support up to 512 MB of error correcting [ECC] memory. The preferred embodiment provides 128 MB of ECC memory. The ECC provides single bit error correction and multiple bit error detection on a per byte basis. 
     Application modules are designed to operate without a keyboard or monitor; however, a video controller is still required by the Windows NT operating system to allow the system to boot. All application modules are equipped with a generic video controller. Depending on a particular system, they may be either PCI or ISA cards. The video controller&#39;s I/O is not routed to the bulkhead, but it is accessible from the rear of the application module chassis. 
     Each application module has two PCI bus 100 MB Ethernet interface cards. The Ethernet interface is 100 Base-T. 
     Each application module has an environmental monitor [EM] to monitor and report on the system&#39;s condition and operating environment. The controller is a single slot ISA bus card which the CPU interrogates across the ISA bus. 
     The EM has a ISA slave interface that occupies 4 bytes in the ISA I/O address space. 
     The environmental monitor provides: RAID power and fan status; application module cabinet temperature; application module cabinet fan status; PC enclosure temperature; PC enclosure fan status; PC enclosure power status; host processor (Pentium Pro) temperature; ISA/PCI backplane voltage monitor: +5, −5 volts, +12 volts, −12 volts; control of the cabinet&#39;s display panel fault LED; control of the PC enclosure&#39;s thermal warning LED; signaling of application module faults to a management module; CPU reset (to reset itself) Note: a CPU reset resets all boards in the AM; remote CPU reset (to reset the buddy application module); and signaling a fault to the management module for the buddy application module. 
     The application module has a PCI, differential, fast/wide SCSI-2 host controller for connection to the RAID system. For compatibility with NT clustering, the controller&#39;s SCSI ID can be changed programmatically. 
     Storage is accomplished using a dual controller RAID system. The RAID configuration is 0+1 (mirrored and stripped). 
     Again, SCSI bus termination is done externally to the RAID controllers so that the controllers may be hot swapped without interfering with SCSI bus termination. 
     The management module uses the same components as an application module. In addition, it has peripheral storage devices and expansion serial ports to accommodate console/maintenance port connections and alarming. 
     The preferred embodiment was one pair of management modules and their storage sub-system packaged in a NEDs compliant cabinet enclosure. 
     A second PCI SCSI host controller that interfaces to the tape drive is provided in management module 2  16   b . This controller has a single ended, fast/wide SCSI-2 interface. 
     A tape drive and CDROM are equipped in one of the management modules. Failover/redundancy is not provided for in these peripheral devices. 
     For doing database back ups, a four millimeter SCSI, DAT tape drive is installed in management module 2  16   b . The tape is connected to a SCSI host controller separate from the one used for the RAID system. The tape storage capacity is 4 GB. 
     For media distribution, installation and upgrade a 12× speed CDROM is installed in management module  16   a . The CDROM interfaces to the host CPU&#39;s on board IDE bus. 
     The preferred embodiment uses dual IEEE 802.3 compliant 100 MB Ethernet networks to connect all of the internal modules. Both networks are built around 12 port 100 MB repeater hubs that connect to each of the networked modules. 
     Each hub has a single power supply. The hubs are connected to separate input power feeds to allow maintenance to be performed on one of them without disturbing the other. 
     Two ports from each hub are routed to the management module&#39;s I/O bulkhead. These provide the external network access to the cluster. 
     Each medial module can support a maximum of 240 telephony ports. The ports can be either T1 or E1, but both may not be mixed within the same backplane. 
     For a T1 system a maximum of three 4 span line cards may be installed in each media module. In this configuration only two of the four spans are usable on the third line card. 
     For an E1 system a maximum of three 3 span line cards may be installed in each media module. In this configuration only two of the three spans are usable on the third line card. 
     The preferred embodiment supports a 24 port fax card. Each media module can accommodate a maximum of 10 fax cards for a total of 240 fax ports. 
     The minimum number of disks allowed in any RAID configuration is 3. In the media module the maximum number of RAID disks allowed is 15 with 14 available for storage and 1 reserved for a global spare. In the application and management modules the maximum number of RAID disks allowed is 7 with 6 available for storage and 1 reserved for a global spare. In each RAID system two slots are reserved for building new RAID sets when performing disk upgrades. 
     The platform is designed for modular hardware serviceability. The following components support live insertion/removal and may be added or replaced with no impact on system operation: media module (including RAID disk drives and controllers; VME &amp; RAID power supplies &amp; fans; telephone network interface modules; fax service circuits; and CDROM drive); and application module/management module (including RAID disk drives and controllers; AM/MGM &amp; RAID power supplies &amp; fans; and AB switch power). 
     If the need arises to replace a component that does not support hot swap, redundancy allows failing over to another resource during the maintenance period. 
     The platform provides the hardware capability to perform software upgrades without shutting the entire platform down. Upgrades are performed incrementally on each module until all modules are at the new software level. There may be some degradation in the level of service during the time a module is being upgraded. 
     For upgrade purposes, a single media module may be removed from service, upgraded and returned to service with the only result being reduced port capacity during the down time interval. 
     An individual media module must be removed from service to upgrade any of the common control components. 
     Network interface modules are hot-plug and may be added or removed from a media module without service interruption. 
     Fax cards are hot-plug and may be added or removed from a media module with service interruption. 
     Increased storage upgrades are expected to occur with each advancement made in disk drive storage capacities. The platform architecture provides a transparent upgrade path that requires no down time to the media module being upgraded. Requirements for the upgrade are as follows: two open slots in the RAID subsystem; and all disk drives in a logical unit must be upgraded at the same time. 
     The upgrade capabilities for the application and management modules are identical. 
     The application modules are configured in redundant pairs. One application module may be removed from service and upgraded without interrupting service to the cluster. 
     Application and management modules must be removed from service to service any of the common control components. 
     In the preferred embodiment there is no present need to upgrade the Ethernet networks exists, however, the platform Architecture allows for network upgrades to accommodate expansion in future releases. As the cluster grows, the network structure can be migrated to higher speed Ethernet, ATM of other network technologies. 
     In the preferred embodiment, the application modules include the applications that supply the functionality of voice mail system that is apparent to a user of the voice mail system. As stated above, the applications typically include the functionality of call answering (including voice, fax and data processing), multimedia messaging, voice recognition and call management, it can include any telecommunications functions. In the preferred embodiment, the application includes several sets of pre-recorded messages. All of the messages of a particular set of pre-recorded messages are recorded by the same voice talent. However, different sets of pre-recorded messages may be recorded by different voice talents. Additionally, each set of pre-recorded messages is recorded by the voice talent using the same basic speed, dialect, pitch and personality. Of these different voice qualities used in recording a set of messages, personality is of importance. The same voice talent can record messages using any of a variety of distinct personalities and emotional qualities, such as happy, serious, verbose and terse. When multiple voice talents are also used, the number and variety of different voice/personality combinations is considerable. 
     The preferred embodiment then allows the user to select one from the various sets of pre-recorded messages stored in the application module. Once a set of pre-recorded messages is chosen, that set represents the subscriber&#39;s chosen “agent” for interacting with the voice mail system. The selected pre-recorded message can be further personalized by varying the speed, dialect, and/or pitch of the message using digital signal processing techniques. 
     The preferred embodiment employs a brief interview process shown in FIG. 2 to allow the user to select the agent with the personality preferred by the user. When a subscriber first uses the voice mail system, or decides to change their agent, the selection process begins at entry point  30 . In block  32 , the system begins waiting for a voice selection response from the subscriber. At the same time, a Sample Introduction, which introduces the agents to the subscriber, is played. In one embodiment the Sample Introduction follows the following script. In the following script, Agent #1 is the default agent in the case of a new subscriber, or the currently selected agent for an existing subscriber who is changing their agent. 
     Agent #1: You may select among &lt;number of voices available (n)&gt; assistants. This is what we sound like . . . 
     Agent #1: It&#39;s either my voice, the one you&#39;ve heard before . . . 
     Agent #2: . . . or it&#39;s me. You can hear my voice . . . 
     . . . 
     Agent #n: . . . or you and your callers can hear my voice. 
     Agent #1: For my voice, press 1. 
     Agent #2: For my voice, press 2. 
     Agent #n: For my voice, press &lt;n&gt;. 
     It is noted that the phrase used to introduce each new voice (the “personality signature phrase”), such as Agent #2&#39;s “. . . or it&#39;s me. You can hear my voice . . . ” usually contains slightly different words to make up the introduction. The words used are chosen to be consistent with the agent&#39;s personality. 
     If the user responds to the Sample Introduction by pressing a key on their telephone between 1 and n, indicating a valid choice of an agent, the branch to block  34  is taken. In block  34 , a message, spoken by the just-chosen agent, states, “OK, I&#39;ll be your assistant from now on.” Of course, the words used by the chosen agent to communicate the choice of that agent may be different for each agent, reflecting that agent&#39;s personality. After block  34 , the agent selection process exits at block  38 . 
     If the user does not respond to the Sample Introduction or responds with an inappropriate key (not a number between  1  and n), the path from block  32  to block  36  is taken. In block  36 , a message, spoken by the prior agent (Agent #1 in the case of a new subscriber), states, “OK, I&#39;ll continue to be your assistant.” Again, the words used by the chosen agent to communicate the retention of the prior agent may be different for each agent, reflecting that agent&#39;s personality. After block  36 , the agent selection process exits at block  38 . 
     With respect to the pre-recorded messages needed to implement the agent selection process, the voice for each agent must record each of the numbers from 1 to n and each of the following phrases: 
     You may select among &lt;number of voices available (n)&gt; assistants. This is what we sound like . . . 
     It&#39;s either my voice, the one you&#39;ve heard before . . . ; 
     [“middle of list” intonation] &lt;personality signature&gt;; 
     [“end of list” intonation] &lt;personality signature&gt;; 
     For my voice, press . . . ; 
     OK, I&#39;ll be your assistant from now on; and 
     OK, I&#39;ll continue to be your assistant. 
     Each of these phrases is needed for each agent because the current choice of agent, which could be any of the agents for a particular subscriber, determines which agent&#39;s recordings are used for each of the phrases. Again, the specific wording used by a particular agent to convey the message of each of the phrases can vary with the personality of the agent. 
     It has been found that even the short exposure to a voice and personality that is given in the agent selection process shown in FIG. 2 supplies subscribers with a sufficient amount of information from which to choose a favorite agent. In particular, most subscribers can immediately choose their favorite voice/personality after listening to the short personality signatures provided to them. Alternatively, though, longer exposure to the different agents can be provided. In another alternative, the system can conduct an interview process to try to determine for the subscriber which agent is most likely to appeal to them. 
     As voice mail system subscribers use a particular voice mail system more often than outside callers, the choosing of a personal agent is more important for subscribers than callers. However, using Automatic Number Identification (ANI) information contained in the data the voice mail system receives with each incoming call that identifies the calling stations phone number, the voice mail system can automatically use a selected agent for all calls received from a particular phone number. Alternatively, Caller ID information or any other method of determining the calling parties number can be used in place of or in addition to ANI information. In this way, the time involved in selecting an agent by a caller can be worthwhile for callers who call the particular voice mail system often from the same phone number. Alternatively, known voice recognition technology can be used to identify incoming callers by analyzing the spoken response to a system generated prompt, such as, “Hello, you&#39;ve reached the office of Joe Smith, whom may I say is calling?” The response is then processed by the voice recognition software and if the caller is recognized, the caller&#39;s choice of agent is then used. 
     FIG. 3 illustrates a flow chart for a combination of the ANI and voice recognition methods of caller identification, in which a database is provided to store associations and correlations between callers identified by the voice recognition software and the number from which they have called, according to the ANI information. Thus, when a call comes into the system, the database is first checked to determine if there are any entries corresponding to the ANI information for the incoming call as shown by blocks  41  and  42 . If there is only one entry for the calling number, the system answers the call, “Hello, is this Joe Smith?” using the agent that Joe Smith has chosen before. Then, analyzing the response to this prompt, the voice recognition software can verify that the caller&#39;s voice matches the systems records for Joe Smith&#39;s voice as depicted by block  43  and  44 . If the response is a “yes” and the voice matches a record in the database, i.e., a positive verification is confirmed according to block  44 , the system selects a pre-determined recorded message for the caller as shown is block  46 . If the voice does not match, or says “No”, i.e., not verified according to block  44 , the system first checks to determine if the voice of the response matches any other records in the database as depicted by block  45 . As illustrated by block  45 , if there is a match, the system asks if the caller is the person in the database for the matching voice to verify their identity according to block  44 . If there are more than one voice entry for the calling number, the system searches the database for the given calling number to find a match for the voice, shown by block  45 , and then proceeds to the verification step (block  44 ) as described above. If the system does not find a match in the database for the calling number or the voice, or if the caller does not verify their identity as match and selected from the database, the system proceeds to add a new entry for the caller, with both the ANI information and voice pattern information as demonstrated by block  47 . 
     Using the same methods, a subscriber can be identified when they call into the system from an outside telephone. In this instance, the subscriber himself or herself has an entry in the database. This database includes the subscriber&#39;s various telephone numbers, such as home, office and mobile numbers. Thus, if the system receives a call with ANI information matching any of the subscriber&#39;s various telephone numbers, there is a high likelihood that the caller is the subscriber. When an outside caller is identified by the system as a subscriber, that subscriber&#39;s agent is used to handle to call. 
     The identification methods also allow a subscriber to select an agent for anyone in their address book. This is of particular usefulness when the subscriber knows that a person in the database is more comfortable with a language different than the language used by the system&#39;s default agent. In an example of this situation where a particular caller prefers to speak French, the subscriber can have the voice mail system always use a French language agent once it has identified that caller. 
     Additionally, the voice mail system can be set up to allow outside callers who are frequent users of the voice mail system to choose an agent that is preferable to them. Again, as with the caller who prefers a different language, once the caller is identified by the voice mail system, the database is accessed and the caller&#39;s chosen agent is used for the duration of the call. In this case, though, no subscriber involvement is necessary in the selection of the preferred agent for that caller. 
     In an alternative embodiment, using known weaving technology (voice patterns of someone reading a sentence or paragraph are taken and the words/phonemes in the sample are used to make new sentences) the system can create an agent based upon the user&#39;s own voice and speech patterns. Thus, a user reads a paragraph (or however much sample is needed) and the recording of that reading is used to automatically create the pre-recorded messages for that user&#39;s agent. 
     The database that stores information about callers based on ANI information, voice recognition or a combination of these techniques allows further functionality to the voice mail system apart from the selection of a preferred agent personality. This additional functionality centers around the concept of a personal assistant, enabled by expanding the incoming caller database into a telephone user interface (TUI) address book. The address book contains phone numbers, fax numbers, other numbers, e-mail addresses and other information that will facilitate intelligent handling of calls to and from the people in the address book. 
     Each entry in the address book contains an entry number, a caller-spoken name utterance, a subscriber-spoken utterance of the entry&#39;s name, the entry&#39;s phone number, and the entry&#39;s fax number (optional). Referring to FIG. 4, as caller messages are left for the subscriber with the voice mail system, as shown in step  51 , the caller-spoken names, ANI and keyed-in phone numbers are saved with the message, as shown in step  53  (if requested by the greeting option selected and given by the caller, as shown in step  52 ). When the subscriber has listened to a message for which at least some phone number information is available, as shown in step  54 , one option that becomes available is to add this caller to the address book, as shown in step  55 . If this option is selected, the voice mail system will prompt the subscriber to say the spoken name of the caller, as shown in step  56 , verify the phone number to be stored, as shown in step  57 , and enter the fax number if available and not already entered by the caller. 
     Names may also be added manually by selecting the appropriate option under a “Setup/Address Book” menu of the voice mail application. After selecting the slot into which the entry will be placed, the subscriber-spoken utterance of the entry&#39;s name, the phone number and the fax number are entered manually. 
     Each slot in the address book is numbered, starting with one. When a person is assigned to a slot, they stay there with that number until manually deleted or replaced via the address book maintenance options (Add, Change, Delete, Review One, Review All) in the “Setup/Address Book” menu. Deletions do not reorder the list, and additions are placed in the slot number specified by the subscriber (the first available slot is suggested by the system). Any information in a slot may be replaced (Change command). 
     One function available to the system with TUI address book is calling people from the information in the address book. To call a person in the address book the subscriber presses a number associated the person. If there are 10 or more entries, the selection of the entry to dial is considered complete when the “#” key is pressed or a timeout occurs. If the number of entries is less than 10, the attempted outdial occurs immediately upon receipt of the single-digit keypress, without waiting for a timeout. The phone number from the address book is then used to dial the desired person. 
     Alternatively, the phone number for a person in the address book can be dialed when the subscriber speaks the person&#39;s name to the voice mail system, using voice recognition. In one embodiment, the voice recognition relies on the subscriber having spoken the person&#39;s name to the voice mail system when the person&#39;s address book record was created. In another embodiment, a voice recognition name template is created from the text representation of the person&#39;s name and stored as an entry in the address book. The person is then dialed by a voice command matching the voice recognition name template. 
     Another feature is automatically adding an entry to the subscriber&#39;s address book from the information stored in an incoming voice message to the subscriber. Particularly if the voice mail application prompts the caller to say their phone number at a particular point in the call, the phone number is converted into digits which are automatically stored in the caller&#39;s entry in the address book should the subscriber add the person to the address book. The address book also allows the automatic addition of a person to the subscriber&#39;s address book from the information stored in an incoming e-mail message to the subscriber. 
     The system stores extensive information about the subscriber&#39;s use of a particular entry in the Address Book as part of the entry. Thus, for example, when there is a question by the voice recognition software whether the subscriber said “John Smith” or “Joe Smith,” the system can make an intelligent guess that the subscriber intended to dial Joe Smith because that subscriber calls Joe Smith once a week on average and that subscriber hasn&#39;t called John Smith in over six months. 
     The system also stores information about the number and frequency of calls from a particular entry in the address book as part of the entry, as well as storing information about how the subscriber treats this caller and/or messages from this caller. With this information, the system can predict how the subscriber will want to treat a particular call/message. For example, if the subscriber always immediately returns calls from their mother, the voice mail system presents the message from the subscriber&#39;s mother and automatically asks if the subscriber would like the system to place a return call immediately. Alternatively, if a subscriber routinely sends calls from a particular caller to be answered by the voice messaging function, the system will present the call with a statement such as, “Mr. X is calling, I will route the call to voice mail unless you press the star key . . . ” The same information can be used by the voice mail system to make an internal decision to promote an address book entry to a VIP list based on subscriber&#39;s treatment of calls and messages from entry. 
     In an alternative embodiment, a visual graphic based computer interface is used to communicate between the voice mail system and the subscribers in all of the functions described above instead of using voice based menus used over the subscriber&#39;s phone as described above. 
     Another feature of the preferred embodiment is automatically adjusting which pre-recorded messages are played at different points in user interaction based upon the user&#39;s competence in interacting with the system, as perceived by the voice mail system. In almost any particular point in the interaction with a voice mail system, while there is one particular piece of information that needs to be communicated to the user, the manner of communicating this information can range greatly along the spectrum from terse to verbose. Generally, experienced users prefer more terse messages while inexperienced users appreciate more verbose messages. In a preferred embodiment, the system monitors various parameters such as the frequency at which the user reaches a particular point in the system where a message is played, errors made by the user (determined by hangups followed by immediate return calls, backups in a menu hierarchy, etc.), multiple long pauses without user input at the same point in the system on consecutive calls (as opposed to singular pauses which may be the result of the user being distracted/interrupted while using the system), and how quickly a user interrupts a message with a selection (e.g., DTMF tone). 
     A preferred embodiment allows the use of these detection criteria to be used both for changing the message played at a local point in the system or for making global changes in the level of message played to a particular user. This process is called flexing the prompt levels and the specific way the various parameter are programmed to affect the flexing of prompt levels is called the flex behavior of the system. Of course, the user is allowed to override the system and manually select the terseness of messages either locally or globally. Last, as with the selectable agent personalities, while mostly applicable to internal users of the system, the invention may also be applied to incoming callers, identified by the ANI information received with the call or any other manner of identifying the caller, including voice recognition as discussed above. 
     The system also allows the fine-tuning of the flex behavior by individually setting all of these “flex-triggers” on a state-by-state basis, allowing the application designer very precise control over flex behavior throughout the application. For example, items on the main menu, used more frequently, might flex after 5 correct uses, whereas the selection of a greeting style (which includes a long preamble before the menu at the beginner level) might flex after only two uses. 
     Further, this would also allow an entire set of flex settings to be associated with a “language,” allowing the designer to adjust flex behavior to be appropriate for various languages/personalities provided with the application. 
     In a preferred embodiment, there are three levels of prompting and four possible settings of a subscriber&#39;s prompt level: 
     Flex—this setting automatically adjusts prompts among the three available levels to accommodate the subscriber&#39;s experience level at a number of pre-defined states in the user interface, adjusting the level up (or down) as appropriate. 
     Training—these are explanatory prompts that provide all of the information a subscriber might require to understand what the next appropriate response on their part needs to be. 
     Standard—these are concise prompts, asking for the subscriber&#39;s response directly, with little or no explanation; they assume the subscriber has progressed beyond the “training” stage. 
     Advanced—these are tightly edited prompts, using as little verbiage as possible to prompt for the desired response. 
     When the Flex level is selected, at pre-defined states in the user interface, the preferred embodiment adjusts its prompts among the three available levels to match the subscriber&#39;s level of experience with a particular activity. In any state within which prompt level is not tracked, prompt level is inherited from its parent state. 
     In order to adjust prompt levels appropriately, the system tracks the subscriber&#39;s experience at each of the predefined states within the call flow, adjusting in either direction based on both usage and the length of time since the last use of the function. For example, if the subscriber successfully completes a given action (based on valid keypresses and/or error tones received) a certain number of times, the prompts are abbreviated by one level. If, on the other hand, they fail a certain number of times, or if they have not attempted this particular action for more than “n” calendar days, the prompts are lengthened by one level. 
     The flex level is also adjusted based upon a combination of the total number of times a particular menu item has been used by a subscriber and the number of uses in a recent time period by the subscriber. Thus a subscriber who has used a menu item many times in the past, but has not used it in the last three months may be given a lower flex level than a subscriber who has not use the menu item nearly as many times total, but has used the menu item ten times in the last week. On the other hand, the subscriber who has used the menu item many times in the past, but has not used it in the last three months should probably be placed at more advanced flex level than a subscriber who has used the menu item only two times, but both uses were in the last month. 
     Whenever the subscriber responds to a particular prompt with silence, the Training level&#39;s version of that prompt is played next, providing more information about the response expected (no permanent adjustments are made to prompt level; this is isolated behavior on a prompt-by-prompt basis). 
     The subscriber has the option to lock all interaction at a certain level, regardless of experience. (In areas where lack of instruction could result in loss of information or other undesirable result, verbose prompts are given, even at the Advanced level). 
     Although the invention has been described with reference to specific embodiments, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiments as well as alternative embodiments of the invention will become apparent to one skilled in the art upon reference to the description of the invention. It is therefore contemplated that the appended claims will cover any such modifications of the embodiments that fall within the true scope of the invention.