People receive large numbers of communications daily. The communications include multiple mediums, for example voice calls, emails and facsimiles (faxes). Most individuals now have multiple “destinations” for communications within each medium. For example, an individual may have three telephone numbers, three email accounts, and two fax numbers. Communication modes and devices are proliferating. The convenience and utility that was originally intended to result from this communication capability is in danger of being overcome by the complexity of managing this same capability. Voice communication alone can become very complicated.
Traditional voicemail systems, and other systems that record audio messages retrievable by telephone, require a user to have access to a telephone or related device and an appropriate telecommunications network to retrieve messages. Additionally, different voicemail systems require different procedures and inputs to retrieve messages. Voice message systems are designed and deployed based on the requirements of the environment in which they operate. As a result there are numerous voice message systems with a wide range of capabilities.
In the drawings, identical reference numbers identify identical or substantially similar elements or steps. To easily identify the discussion of any particular element or step, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced (e.g., block 103 is first introduced and discussed with respect to
A system for managing communications, described herein, is applicable to various types of communications, such as voice calls, emails and faxes. Embodiments include a method and apparatus for handling voice calls to multiple phone numbers through a single user interface. The user interface also allows access to the user's faxes and emails, and to the user's communication history and contact information. In one embodiment, the user is notified of any voice calls to one of several user devices. The user configures the system to handle incoming calls according to a user-defined configuration. For example, the system is configurable to route calls to various destinations, to access a history of previous communications with a caller, and to log or file the current call in the history. The call is handled based upon a code stored with a unique call source number in a standard contacts management system.
In the following description, numerous specific details are provided, such as specific steps, ordering of steps, user interfaces, and the like, to provide a thorough understanding of, and enabling description for, embodiments of the invention. One skilled in the relevant art, however, will recognize that the invention can be practiced without one or more of the specific details, or with other steps, ordering of steps, interfaces and the like. In other instances, well-known structures or operations are not shown, or are not described in detail, to avoid obscuring aspects of the invention.
Referring to
A registration server 106 is coupled (e.g., via a LAN, WAN, etc.) to the TSPS 102. The registration server 106 may be coupled to a registration information database 107, a contact information database 108, and/or a calendar event database 109. Further information regarding the registration server is provided below.
The registration server 106 is also coupled to a user's computer 111 via a network such as the Internet 110. The user's computer 111 is running various software components, including a communications, registration, and user-interface component 112, an interface component 113, and a contact management software component 114 (described below).
Under one embodiment, the TSPS 103 provides numerous call handling options to users, such as call screening services, the ability to redirect or re-route received calls to another phone location on the PSTN 102, etc. For example, if a caller associated with a caller telephone 115 (which is coupled to the PSTN 102) dials a telephone number associated with the user, that telephone number may be routed by the PSTN to the TSPS 103. (As described herein, such telephones may be any telecommunications devices, including devices configured to handle voice calls.) The TSPS 103 will then consult the user profile database 104 to determine the call handling method that should be used to handle that call. In one example of a call handling method, the call may be routed to a voice mail subsystem of TSPS 103, causing a message to be left in the messages database 105. In another example of a call handling method, the user profile database may contain a forwarding number for the user, and the TSPS 103 may reroute the incoming call through the telephony switch contained within 103, out through the PSTN 102 to the user's phone 101.
Note that the TSPS may also contain a voice response system that, depending on the call handling method selected, may provide various prompts associated with each call handling method. A user may have many pre-defined call handling methods stored in the user profiles database, and may select the call handling method to be used at any moment in time, by selecting for example a numeric code which is associated with that call handling method. Thus, the user may alter or change predefined call handling methods using any known user interface, such as via the user's telephone (landline or mobile phone) using DTMF or speech-recognition, via computer network such as a web interface coupling the user's computer 111 with the registration server 106, via a wireless portable palm top or wearable computer, via a wireless pager, via set-top box or other consumer premises equipment, or any other equipment.
Under one embodiment, the user computer 111 provides the user with access to real-time voice calls and to many voice call management functions, as described herein. The user computer 111 includes contact management software 114, such as an available, off-the-shelf contact management software package or system such as Outlook™ or Lotus Notes™ (although a custom configured contact management system can be partially or entirely employed). An interface component 113 is a software application that communicates with the contact management software 114, a communications, registration, and user interface component 112, and a registration server 106 (described below). The interface component 113 interfaces with the contact management software 114 using open application program interfaces (APIs) published by the manufacturer of the contact management software to permit other software components to interface and exchange data with the contact management software.
In one embodiment, the interface component 113 and the communications, registration, and user interface component 112 enhance the functionality of a telephony service provider system (TSPS) 103 and the registration server 106. Interface Component 113 provides an interface to the standard APIs presented by the Contact Management Software 114. For example, in an embodiment intended for Outlook™, interface component 113 may be a dynamic link library, or “DLL”, which implements the Microsoft “IDTExtensibility2” library for Outlook™, which can be used to provide access to the Microsoft “Outlook™ Object Model”. The Outlook™ Object Model provides methods and properties that allow a program to read and manipulate data in Outlook™, and to manipulate the Outlook™ user interface.
The communications, registration, and user interface component 112 may be implemented using a variety of methods. For example, under the embodiment that is further described with reference to
Under the described embodiment with reference to
As noted above, the TSPS 103, in one embodiment, includes a one-number system that allows a user to give one number to callers that wish to call various devices and send faxes. An example of a telephony service provider system is described in U.S. Pat. No. 5,752,191, entitled “Telephone Control System Which Connects a Caller With a Subscriber at a Telephone Address,” U.S. Pat. No. 5,610,970, entitled “Telephone System With Scheduled Handling of Calls,” U.S. Pat. No. 5,673,299, entitled “Adjunct Controller for a Telephone System” and U.S. patent application Ser. No. 60/223,160, titled System and Method for Universal Access of Messages, such as Voice Mail Messages, filed Aug. 7, 2001.
The user computer 111 communicates with one or more other computers, such as an attendant computer 118, through a network, such as a local area network (LAN) 116. In one embodiment, the attendant computer 118 is a computer used by anyone to whom the user may want to refer certain communications, including voice calls, that are sent to the user (e.g., a secretarial computer).
The TSPS 103 includes software and hardware that communicates with the public switched telephone network (PSTN) 102 to receive voice calls made through the PSTN and manage calls, via the user computer 111, according to the user's wishes. The user may subscribe to the services provided by the TSPS, which the user may access via the user phone 101. The user may also access features of the TSPS via the user computer 111 and the registration server 106.
The registration server 106 transmits data between the user computer 111 (including the interface component 113, the communications, registration, and user interface component 112), the TSPS 103, and the various databaseS 107, 108, and 109. The registration information database 107 stores information about the user, including a current user status. The current user status includes a location of the user (e.g., a network computer the user is currently logged onto) and whether the user is available to answer certain calls. For example, if the user has used her computer 111 to log onto the internet 110, then the communications, registration, and user interface component 112 may send a message via the Internet 110 to the registration server 106 indicating that the user is available and on-line. The registration server 106 will store this information in registration information database 107. This database contains the user's current TCP/IP address on the Internet 110, along with any data or indication that the user may have passed via the user interface component 112 indicating the user's desire for handling of calls (as described below). Under one embodiment, this information may be used to provide a real-time indication to the user via the computer 111 of an incoming call, including the identity of the incoming caller. This information may also be used to modify the call handling of the system, for example, to override or modify the screening instructions provided by the contact info database 108. In one embodiment, the registration information database 107 further stores an identity and location of an attendant to which certain calls are to be forwarded. The communications, registration and user interface component 112 includes a the user interface process which provides a graphical user interface as described in
The contacts information database 108 stores information about the user's contacts. In one embodiment, the contact information is loaded into the database 108 from the contact management system 114, either automatically at intervals, or in response to a user command. The calendar events database 109 stores information about the user's calendar, and the source of calendar information is the contacts management software 114. Thus, the calendar events database 109 may be used to store information regarding the meetings and activities stored in the calendar of the user's contact management software 114. This information is then retrieved from the contacts management software 114 and stored in the calendar events database 109 in the same manner as the contact information database 108 retrieved its data, as described herein. Information in the calendar events database 109 is used to handle calls. For example, all calls or calls from particular callers may be handled differently on different days, or when certain types of meetings are in progress. Alternatively, the information may be used to modify the call handling instructions based on the type of meeting currently in progress, or based upon other attributes associated with the meeting.
In another alternative embodiment, the TSPS 103, the registration server 106, and databaseS 104, 105, and 107-109 are integrated into a single server computer. Thus, the TSPS 103 and registration server 106, and databaseS 104, 105, and 107-109 shown in
While not shown, the computers described herein, including the server 106, TSPS 103 and computer 111, include one or more central processing units or other logical processing circuitry, memory, input devices (e.g., keyboards and pointing devices), output devices (e.g., display devices and printers), and storage devices (e.g., fixed and floppy magnetic disk drives, optical disk drives and card readers), all well known, but not shown. While shown as separate components, databases, such as the database 106, may form part of, or be integrated with, the server computer. The computers may include other program modules not described herein, such as an operating system, one or more application programs (e.g., word processing or spreadsheet applications), a web browser, and the like. Unless described otherwise, the construction and operation of the various blocks shown in the figures are of conventional design. As a result, such blocks need not be described in further detail herein, as they will be readily understood by those skilled in the relevant art.
The invention can also be practiced in distributed computing environments, where tasks or modules are performed by remote processing devices, which are linked through a communications network. In a distributed computing environment, program modules or subroutines may be located in both local and remote memory storage devices. Aspects of the invention described herein may be stored or distributed on computer-readable media, including magnetic and optically readable and removable computer disks, hard-wired or preprogrammed in chips (e.g., EEPROM semiconductor chips), as well as distributed electronically over the Internet or via other networks (including wireless networks). Processes or software components under aspects of the invention may be created under various ways, such as through source code programming, created as microcode or programmed logic arrays, or the like. Those skilled in the relevant art will recognize that portions of the invention reside on a server computer, while corresponding portions may reside on a client computer (such as the user computer 111). Data structures and transmission of data particular to aspects of the invention are also encompassed within the scope of the invention.
Embodiments described herein include the TSPS 103 interfacing with the contact management software 114 through the interface component 113 to provide call handling to the user through the single user interface 112. In one embodiment, the user populates a database associated with the contact management software 114 with contact information. The contact information includes names, addresses, email addresses, phone number, etc. such as the user's contact's name, home and business telephone number, and email address. According to an embodiment, an unused portion of a data field in the contact management software 114 database is populated with a handling code. The handling code is innocuous in the contact management software 114 environment. In one embodiment, a two digit handling code is placed in an unused portion of the phone number field. The handling code is one of a group of codes that each refers to a particular handling method. Handling methods include forwarding a call to another number, notifying the user the call has been received, forwarding the call to voicemail, forwarding the call to a Internet chat session between the user and the caller, sending an instant message, and playing various messages to the caller such as an “unavailable” message, an “out of town” message, a “touch 0” message, many various prompts, etc.
The user associates the handling codes with the handling methods in the TSPS as part of configuration of the TSPS. Thus the user may enter the desired two digit code for selected contacts in the contact management software 114. A user may have many pre-defined call handling methods stored in the user profiles database 104, and may select the call handling method to be used at any time, by selecting for example a numeric code which is associated with that call handling method. Thus, the user may alter or change predefined call handling methods using any known user interface, such as via the user's telephone (landline or mobile phone), via computer network such as a web interface coupling the user's computer with the registration server 106, via a wireless portable palm top or wearable computer, via a wireless pager, via set-top box or other consumer premises equipment, or any other equipment.
The interface component 113, residing on the user's computer 111, will either periodically, or manually as directed by the user via the interface component 112, read the contact information employing well known and published API interfaces to the contact management software's database. This software will then pass the specific numeric code associated with each contact to the communications software component 112, which in turn will pass this data through the Internet 110 to the registration server 106, which will again in turn pass this data to the contact information database 108 for storage.
At block 202, a caller places a call from the phone 115 to the user. The call can be placed to the user's phone 101, or to another user device, such as a cell phone or fax machine. A call placed to any user device that is recognized by the TSPS 103 and associated with the user will be handled according to the embodiment. The TSPS 103 includes a telephony switch for receiving telephone calls from the PSTN 102. The telephony switch may also redirect or re-route those received calls anywhere on the PSTN 102. The incoming call may have a calling line identification (CLI) number or similar identifying data associated with it, where the number is typically the phone number of the calling device (the phone 115). The CLI is a unique identifier for the calling device. Because one person typically uses devices, the CLI usually identifies the caller.
As shown at block 204, the TSPS 103 then instructs the registration server 106 to search the contact information database 108 using the CLI and the user phone number (dialed in digits) to find the handling code associated with the CLI. Alternatively, the registration server identifies and retrieves the user's account using other received information in the call, such as a direct inward dialing (DID) number, dialed number identification service (DNIS) data, or a automatic number identification (ANI) number. At block 206, the registration server 106 finds the current user status in the registration information database 107. At block 208, the registration server 106 searches the calendar events database 109 for any relevant calendar information. At 210, registration server 106 searches the user profile database 104 to find the handling method associated with the handling code. At 212, the TSPS translates the handling code and uses all of the associated information to handle the call.
The flow shown in
Applying an example to the method of
Under one embodiment of the invention, the user may configure and use the TSPS 103 through the user interface of the component 112. One embodiment of this user interface will be described with reference to
Referring to
Referring to
The caller information portion 406 displays information regarding a newly received call, including the time, name of the incoming caller (based on a name associated with the CLI), title of the person, the incoming number, and the caller's associated company. The caller information portion also includes a call counter 408 that identifies a number of calls received by the user since the user last accessed the system. In addition to voice messages, calls answered by the user and fax messages received for the user are also numbered. The call counter may be reset manually. The call counter may alternatively be reset each time the user accesses the screen 401, or according to some other reset criteria.
A lower right-hand portion of the screen 401 identifies call-handling options for the user. An active extension indicator 412 indicates how incoming calls are currently handled. For example, whenever anyone calls the user at the number indicated in the screen, which is 206-621-3520, the call is routed based on call handling code “20 office.” The user has previously defined that the call handling code 20 corresponds to forwarding calls received by the TSPS to the user's office phone. The user may define many differing call handling codes as previously described.
Three configurable call routing buttons 414 allow the user to route incoming calls in real-time. For example, the newly received caller information in window portion 406 describes an incoming call (that “Director of Product Marketing, Mark Sher” is calling). As the user views the information, the user can choose to have the incoming call automatically routed to a message center by selecting button 418. The user can also choose to forward the call, for example to an attendant, by selecting button 420. The user can also select button 416 to have the call forwarded to a home number based on a predefined call routing option defined by the user as “10 home.”
Many handling alternatives are available for incoming calls. For example, the user may right-click a mouse button on any of the buttons 416-420 to configure these buttons for different call handling options. Right-clicking on one of these buttons displays a dialogue box (not shown) that allows the user to select among several predefined options to be assigned to numerical codes and GUI buttons 416-420. In one embodiment, selecting the call forwarding button 420 causes a menu of predefined and configurable call handling options to be displayed to the user so that the user can dynamically route calls to a much larger number of destinations than are represented by the buttons shown in
Referring to
Referring to
Referring to
The user configures the system using setup screens that are displayed by clicking the setup screen button 403. Setup will now be described with respect to
Referring to
Referring to
Referring to
Referring to
One or more call handling codes may not have associated phone numbers. For example, the user may have predefined an “80 hotel” code that defines how calls are to be handled when the user is at a hotel room. In this situation, the user may then enter a phone number in the phone number field 1304 associated with a particular hotel at which the user will be staying. The phone number may be entered before the user travels to the hotel, or the user may enter the phone number while at the hotel, by logging in to the registration server 106 via the Internet 110, and uploading this number for storage in the calendar events database 109.
Traditional communication management systems provide for management of one type of communication on one type of platform. For example, while a voice mail system allows user management of voice mail messages, an electronic contact management system such as Microsoft Outlook™ or Lotus Notes™ allows management of email destined for one email address. An electronic contact management system further provides a configurable user database that stores extensive contact information and history information related to past communications. A cellular phone message service, on the other hand, allows management of all voice calls placed to a particular cellular phone or forwarded to the particular cellular phone. Existing systems do not provide access to communication management capability across devices while simultaneously providing access to contact information and communication history information.
In another alternative embodiment, the above functionality is provided to such existing communication management systems. In this alternative embodiment, the user configures and uses the TSPS 103 through the user interface of the contact management software 114, where the contact management software is a standard, off-the-shelf product (e.g. Lotus Notes™ or Microsoft Outlook™). This user interface will be described with reference to
In one embodiment, the communication management system includes a one-number system.
In one embodiment, the contact management software 114 provides a software event to the communications, registration, and user interface component 112, via interface component 113, whenever a new contact is created. The communications, registration, and user interface component 112, in turn, sends a software message back to the contact management software 114, instructing it to add a new data field associated with this contact, containing a unique contact identification key. The new contact is also transmitted to the contact info database 108. Upon receipt of a new incoming call, the registration server 106 searches the contact info database 108 for a match against the CLI of the incoming call. If a match is found, then the registration server 106 provides to the user computer 111 a TCP/IP message with the called number, callers information (name, title, etc., or just CLI), and the unique identification key to the user's Outlook contact database. In response, the communications, registration, and user interface component 112 causes window 2502 to pop-up, presenting the caller information. The “Open Contact” button on window 2502 is now related to the unique identification key. If the user presses this key, then component 112 sends a message via interface component 113 to contact management software 114 with this unique identification key, causing the corresponding contact window 2700 to appear.
The additional call handling functionality provided through Outlook™ may be provided as client software to be installed on the user computer 111. The user may download and install the client software from a web site associated with the TSPS. Once installed, the client software employs published APIs in Outlook™ to modify Outlook™'s standard user interface to include the buttons, menus and screens described above.
In another embodiment, the user may select an option on the notification window 2502 or 401 (option is not shown in the figure) causing the Telephony Service Provider System to record the subsequent conversation between the caller and the user. When the call is completed, the recorded conversation is automatically transmitted over the Internet 110 to the User's Computer 111 and stored in the Contact Management Software, associated with the contact related to the caller.
Many alternatives are possible under the invention described herein. For example, rather than employing separate fields within screens displayed by the user's contact and calendar management software (such as the fields 1302 and 1304 of
Calls may be routed under numerous user-defined methods. For example, the user may employ existing fields in the contact and calendar management software to define how calls are routed. For example, the user may employ the “Other” field under the contacts portion of Microsoft Outlook™ to define a user number, or client number, for one or more individuals listed in the user's contacts. The system may then store this field within the contact database, together with an associated call routing list. The call routing list is effectively a table listing in a first column client numbers, and in a second column associated assistant phone numbers for that client.
While calls may be routed based on one or more pop-up windows in which users enter data or click options (e.g. window 2502), the system may instead automatically route calls. Alternatively, the window 2502 may omit the “Open Contact” button and instead automatically open an appropriate contact card or other contact information. Thus, any relevant information stored in the contact database may be automatically displayed to a user when an associated incoming call is received. For example the system could be configured in such a way so that as an incoming call is received, the user would be automatically presented with the callers contact information, and a list of all messages to or from this caller, or all calendar events associated with this caller, or all documents associated with this caller, or any combination of these or similar items.
As describe in embodiments above, standard contact management or personal organizer software product, such as Microsoft Outlook or IBM Lotus Notes may be used, without modification to the standard product itself, in conjunction with a Telephony Service Provider System (TSPS), to provide a call handling system. A user may enter an additional piece of information for each of these contacts. This additional information indicates how calls should be handled if received from this contact. An interface software component, residing on the user's computer, reads the contact database from the user's contact management software. A communications, registration, and user interface software component, also residing on the user's computer, obtains the contact data from the interface component, and passes it over the Internet to a registration server system which holds this data in a contact info database to be used by the TSPS when providing call screening information for each user.
Under an alternative embodiment, this additional information may be in the form of an extra character inserted at the end of an appropriate field, for example the business phone number field for the contact. For example, if a “+” is inserted at the end of the phone number, then if a call is received for the user by the TSPS, then the TSPS will automatically route the call directly to the user's current phone number. However if a “−” is inserted at the end of the phone number field, then the call might be routed to voice mail. If there is no extra character inserted in the field, then the call might be handled according to a default call handling method, for example the caller might be prompted to “ . . . touch 0 if the call is important”, and if the caller touches 0 then the call will be routed to the users current phone number, and otherwise the call will be routed to voice mail.
In another embodiment, the additional information may be in the form of a numeric code inserted into an otherwise unused field in the contact database, such as in a “Other Phone Number” field. The numeric code would provide an indication of the appropriate call handling method for calls received from this caller. For example a “1” in this field might indicate to route all calls immediately to the users phone number, a “2” might indicate to route calls to voice mail, a “3” might indicate to route calls to the users secretary, a “4” might indicate that the TSPS should give the caller various menu choices before routing the call, a “5” might indicate to route calls to the user's cell phone, a “6” might indicate to route calls to the user's pager, a “7” might indicate to route calls to a particular predefined extension in a PBX system, and the like. Under a default option where no number is present in this field, the call is handled under a predetermined default method, such as being routed to a receptionist. In general, the system may employ any method of call routing, including those described in detail in U.S. Pat. Nos. 5,752,191, 5,694,453, 5,610,970, 5,588,037, 5,375,161, and 5,841,837.
In yet another embodiment, the additional information may be in the form of a phone number inserted into an available field in the contact database. This phone number would indicate the phone number to route the call, should a call be received from this contact.
In general, user input described herein may be of any form, not necessarily point and click or keyboard interaction with a web page using a computer input device, personal computer and web browser software. For example, user input may be of a graphical form (e.g., bitmapped, vector-based or matrix), or where such user input is provided to the user via an appropriate device, such as a palm top computer having a wireless connection to the system. Of course, dual-tone, multi-frequency (DTMF) or voice command using interactive voice response (IVR) input may be employed. Thus, user input by the user computer may be in any format, such as alphanumeric characters in ASCII or Unicode format, voice commands, graphical input, etc. Graphical input, for example, may represent shapes, or single stroke character input, e.g., drawn by a user on a palm top computer, where such bitmap or vector images are then transmitted to the server as user input.
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “above”, “below” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application.
The above detailed descriptions of embodiments of the invention are not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific embodiments of, and examples for, the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while steps are presented in a given order, alternative embodiments may perform routines having steps in a different order. The teachings of the invention provided herein can be applied to other systems, not necessarily the call routing system described herein. These and other changes can be made to the invention in light of the detailed description.
The elements and acts of the various embodiments described above can be combined to provide further embodiments. All of the above references and U.S. patents and applications are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions and concepts of the various patents and applications described above to provide yet further embodiments of the invention.
These and other changes can be made to the invention in light of the above detailed description. In general, the terms used in the following claims, should not be construed to limit the invention to the specific embodiments disclosed in the specification, unless the above detailed description explicitly defines such terms. Accordingly, the actual scope of the invention encompasses the disclosed embodiments and all equivalent ways of practicing or implementing the invention under the claims.
While certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as embodied in a computer-readable medium, other aspects may likewise be embodied in a computer-readable medium. Accordingly, the inventors reserve the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention.
This application is a continuation of U.S. patent application Ser. No. 09/966,218 filed Sep. 28, 2001, which claims priority from U.S. Provisional Patent Application Ser. No. 60/235,989, titled “Telephone Call Handling System and Method, Such as a Call Screening System Employing Standard Contact Management Software,” filed Sep. 28, 2000, which applications are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60235989 | Sep 2000 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09966218 | Sep 2001 | US |
Child | 10911225 | Aug 2004 | US |