|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5761637 Chino 704/231 Jun,1998 |      Your vote accepted [0 after 0 votes] | | 5655006 Cox, Jr. 379/67.1 Aug,1997 |      Your vote accepted [0 after 0 votes] | | 5528670 Elliot 379/88.25 Jun,1996 |      Your vote accepted [0 after 0 votes] | | 5506890 Gupta 379/88.25 Apr,1996 |      Your vote accepted [0 after 0 votes] | | 5436963 Fitzpatrick 379/218.01 Jul,1995 |      Your vote accepted [0 after 0 votes] | | 5408526 McFarland 379/202.01 Apr,1995 |      Your vote accepted [0 after 0 votes] | | 5384771 Isidoro 370/254 Jan,1995 |      Your vote accepted [0 after 0 votes] | | 5357596 Takebayashi 704/275 Oct,1994 |      Your vote accepted [0 after 0 votes] | | 5355403 Richardson, Jr. 379/88.26 Oct,1994 |      Your vote accepted [0 after 0 votes] | | 5333266 Boaz 709/206 Jul,1994 |      Your vote accepted [0 after 0 votes] | | 5329578 Brennan
Jul,1994 |      Your vote accepted [0 after 0 votes] | | 5263084 Chaput 379/215.01 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5260986 Pershan 455/413 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5243645 Bissell 379/211.02 Sep,1993 |      Your vote accepted [0 after 0 votes] | | 5195086 Baumgartner 370/264 Mar,1993 |      Your vote accepted [0 after 0 votes] | | 5131024 Pugh 379/88.24 Jul,1992 |      Your vote accepted [0 after 0 votes] | | 4972462 Shibata 379/88.13 Nov,1990 |      Your vote accepted [0 after 0 votes] | | 4953204 Cuschleg, Jr. 379/266.05 Aug,1990 |      Your vote accepted [0 after 0 votes] | | 4933966 Hird 379/132 Jun,1990 |      Your vote accepted [0 after 0 votes] | | 4873719 Reese 379/215.01 Oct,1989 |      Your vote accepted [0 after 0 votes] | | 4827500 Binkerd 379/88.01 May,1989 |      Your vote accepted [0 after 0 votes] | | 4761807 Matthews 379/88.26 Aug,1988 |      Your vote accepted [0 after 0 votes] | | 4585906 Matthews 379/88.26 Apr,1986 |      Your vote accepted [0 after 0 votes] | | 4313035 Jordan 379/211.02 Jan,1982 |      Your vote accepted [0 after 0 votes] | | 5414754 Pugh 379/88.23 Dec,1969 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
| Add a new Other reference: |
| Post related web sites and other references in this section |
| | Reference | Relevancy | Comments | Copy of International PCT Report dated Mar. 20, 1996, PCT/US95/11737.
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | "WordPerfect Office Telephone Access Server," WordPerfect Office Techbrief, 10:1-3 (1994).
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | "WordPerfect: New Telephony Features Boost Office", WordPerfect Office TechBrief, 1994 Info-World Publishing Company, vol. 10, Issue 2, p.2-3.
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Schmandt et al., "Phone Slave: A Graphical Telecommunications Interface", Proceedings of the SID, vol. 26/1, 1985 pp. 79-82.
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Schmandt et al., "A Conversational Telephone Messaging System", IEEE Transactions on Consumer Electronics, Aug. 1984, vol. CE-30, No. 3, pp.xxi-xxiv.
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Schmandt, "Phoneshell: the Telephone as Computer Terminal" pp.373-382, Proceedings of ACM Multimedia '93 Conference, 1993.
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | "The Electronic Receptionist--A Knowledge-Based Approach to Personal Communications" Bellcore, pp. 1-8 (1994).
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | "The Electronic Receptionist --A Knowledge-Based Approach to Personal Communications" IEEE (1992).
. Dec,2006 |      Your vote accepted [0 after 0 votes] | | Thich Vi Ly, "Chatter: A Conversational Telephone Agent" submitted to Program in Media Arts and Sciences, at the Massachusetts Institute of Technology, Jun. 1993, pp.1-130.. Dec,2006 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The invention relates generally to computer-implemented, voice messaging systems.
Today there are many different commercially available electronic devices which assist people in communicating which each other. In addition to the ubiquitous telephone that has been around for decades, there are also cordless phones for the
home, mobile phones for the car, handheld wireless phones which fit into the user's pocket, pagers, local and wide area computer networks, and facsimile machines just to name a few. The number and variety of such devices continues to grow. Thus, there
is also an growing need to find effective ways to coordinate and handle the electronic communications that such devices make possible.
One system which addresses this growing need is described in U.S. patent application Ser. No. 08/316,635, entitled, "A Network Based Knowledgeable Assistant", filed Sep. 30, 1994, now U.S. Pat. No. 5,652,789, and incorporated herein by
reference. The system described therein is referred to as an electronic assistant. It is a computer-implemented entity that assists a user (referred to as a subscriber) with his or her communications by carrying out certain tasks that are delegated to
it. This electronic assistant, modeled to have human-like qualities, recognizes speech and performs functions within the familiar model of an office.
Each subscriber who has an account is assigned at least one electronic assistant which may be dedicated or shared. The electronic assistant offers services to both the subscriber and to any contacts or other callers trying to reach the
subscriber. A contact is a person, place, or group that the subscriber has described for the electronic assistant. A contact can be another subscriber or an outside caller. Electronic assistants treat both subscribers and contacts as users of the
system.
The electronic assistant offers a wide range of services to its subscribers, among which are the following. The electronic assistant can handle incoming calls from several of the subscriber's personal contacts while at the same time it is doing
any of its tasks, including reviewing messages with the subscriber, managing information, etc. It can make logical decisions about how to manage, whether to forward, and where to forward the incoming calls from the subscriber's contacts. The electronic
assistant can also communicate with the subscriber and the subscriber's contacts using a wide variety of different communication devices, such as telephones, fax machines, pagers, computer terminals, and communications enabled handheld devices (e.g.
Personal Digital Assistants otherwise referred to as PDA's). When the subscriber tries to reach a contact or a contact tries to reach the subscriber, the electronic assistant mediates the connection and then remains available to add value to the
session. The electronic assistant can schedule and manage reminders for its subscriber. When reminders come due, the electronic assistant notifies the subscriber.
Though such systems represent a significant advance in the field and provide great convenience and benefit to the users, there is still substantial room for improvement. The invention described herein represents a further extension of the
technology represented in part by the above-described electronic assistant.
SUMMARY OF THE INVENTION
The invention relates to a virtual intercom method implemented by a computer-based electronic system. The method features the steps of receiving a voice command from a first party, the voice command identifying a user selectable one of a
plurality of subscriber parties, and responding to the voice command by generating a greeting to the first party wherein the greeting is an audio recording in the voice of the identified subscriber. The invention further features receiving a message
generated by the first party for the identified subscriber and storing that received message for later playback to the identified subscriber.
In another aspect, the invention relates to a message handling method implemented by a computer-based electronic assistant. The method features the steps of receiving a voice command from a first party, the voice command identifying a group of
recipients, and responding to the voice command by generating an audio greeting acknowledging the voice command. In this aspect, the method further features receiving a message generated by the first party for the identified group of recipients and
storing the received message for later playback by each member of the group of recipients.
In yet another aspect, the message handling method features the steps of storing a general voice mail message intended for a plurality of recipients, receiving a call from a caller, the caller being one of the plurality of recipients, notifying
the caller that the general voice mail message is available for the caller, and in response to receiving a first command from the caller playing the general voice mail message to the caller. The method further features steps of, in response to receiving
a second command from the caller, recording a reply message from the caller, and appending the reply message to the general voice mail message to generate a modified message. The method then features the step of storing the modified message for later
playback by any of the plurality of recipients.
In another aspect of the invention, the message handling method is implemented by a computer-based electronic assistant and features the steps of storing a voice message that includes a recorded message and stored information describing the voice
message, and wherein the voice message is a reply to a first message; receiving a command of a first command type from a caller; in response to receiving the command of the first command type, playing the recorded message to the caller; and after playing
the recorded contents, receiving a command of a second command type from the caller. The method further features the steps of reporting to the caller the stored information describing the voice message in response to receiving the command of the second
command type; and after reporting the stored information, receiving a further command of the second type and then, in response thereto, playing the first message to which the voice message was a reply.
In yet another aspect, the invention relates to a call handling method implemented by a computer-based electronic assistant. The method features the steps of using the computer-based electronic assistant to monitor a telephone call between a
first person and a second person; and in response to a first command issued by either the first or the second person, causing the electronic assistant to intervene and participate in the telephone call. In this aspect, the method further, in response to
a further command issued by either person, features the step of causing electronic assistant to provide voice mail services to the party issuing the further command, thereby permitting the other party to terminate its participation in the telephone call.
Other advantages and features will become apparent from the following description of the preferred embodiment and from the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an overall block diagram of a system which embodies the invention;
FIG. 2 is a block diagram of the software architecture of the system which embodies the invention;
FIG. 3 is a block diagram showing the basic architecture of a system which embodies the invention;
FIGS. 4a-4c is a dialog which illustrates the relevant functionality that is supported and implemented by the system shown in FIG. 1;
FIG. 5 shows a data structure that is used to store the messages.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
As background we refer the reader to related technology described in U.S. patent application Ser. No. 08/316,635, filed Sep. 30, 1994, and incorporated herein by reference. The functionality described below can be implemented using the
technology and systems described in the above-referenced patent application or in other ways that would be readily known to person of ordinary skill in the art.
Overall Hardware Configuration
FIG. 1 shows the block diagram of a system, including main system components and phone connections, which manages communications to and/or from a user over multiple media. The system consists of a personal computer CPU 100 (e.g. an Intel 486 or
Intel Pentium.TM. processor) and associated therewith, either as a separate add-in board or as capabilities of the CPU board itself, phone line interfaces 102, which handle a number of phone lines 104 and provide for answering of incoming calls, placing
of outgoing calls, signaling through touch tones, detection of voice or data signals on the lines, and transfer of these signals to CPU 100 for further processing by an application program 110 (i.e., a personal assistant), which is running on the
computer and which includes a speech recognition capability. There are also station set interfaces 112 which contain one or more ports for station sets 114. A number of station sets 114 can be connected in parallel to any port. Station set interface
112 provides voice signals to station sets 114 and allows the application program 110 to determine when the phone is placed off or on hook.
There is commercially available hardware which can be used to implement the hardware components that are shown in FIG. 1. For example, one could use a simple cost-effective single-line system that is built around advanced voice, data, and fax
modems (referred to in the industry as "AT+V Modems) provided by a range of vendors, such as for example a Rockwell xxx--xxx modem controller. These configurations provide for one incoming line, and provide the ability to drive one station set.
However, a system that provides two incoming lines has significant advantages though it does add to the cost of the system. A two line system would be important for small businesses as well as for families with high phone traffic.
The described embodiment is a system with at least two independent phone line interfaces, as well as at least one, and preferably two, station set ports. If there are multiple ports, a switching capability will also be required that allows any
station set port to be connected to any line, or just to the speech recognizer and application. Also, the described embodiment has the ability to generate a ring signal on any station set port, which will ring the phone.
Other configurations are envisioned where there are more incoming lines, and more station set ports. This, combined with the switching capability will allow the software application to create a small PBX for an office, thereby handling all phone
tasks in a low cost computer.
Also envisioned are configurations where the hardware capability is external to the computer, and is connected to the computer via a high-speed data connection. This could be a parallel port, a serial port, or the recently announced Serial Bus
architecture from Intel's Architecture labs as defined in Intel's document number xxx-xxxx. These external approaches let users add the hardware capabilities to their system without the need to open the box and install new hardware cards.
Further, we envision that the personal assistant could run from a telephony-enabled set-top box such as those being provided by the cable TV companies. In this case, speech recognition would be performed on the CPU in the set top box, and phone
interfacing would be done through an interface in the box.
Software Configuration
Referring to FIG. 2, the software architecture lets users manage messages 142, lists 144, schedules 146, and contacts 148 through a variety of interfaces. Users can employ a screen interface 150 to access the computer's screen, or users can talk
to the electronic assistant application through a voice interface 158 and a speech recognizer 156. Additionally, they can signal the assistant through a touch tone interface 158. Through voice/data modems (typically, but not limited to these modems)
users can also cause data to be sent over a data interface 154.
Architecture
The basic architecture for the personal assistant is shown in FIG. 3. The architecture includes a data access layer 200 which communicates with data storage 204 and with an engine 206 and one or more assistants 202. The assistants 202 and the
engine 206 communicate with each other through an assistant interface 208. The data access layer 200 and the assistants 202 are implemented as DLLs. The data storage 204 for personal assistant is a file system. The main event loops of the entire
system reside in the engine 206. Through the assistant interface 208, which is simply a defined API for use by the assistant DLLs, the engine 206 coordinates incalls, assistants, and interassistant communications.
In addition to the system shown in FIG. 3, there are two other pieces which are not shown. The first is a recognizer which is implemented as a recognition DLL that is used by the assistants to perform their tasks. The other piece is a desktop.
There are also several GUI tools which integrate into the system.
Data Storage
The fundamental class in the data storage system is the Store Class. Every object which can possibly be stored in the database is derived from the Store class. It is derived from the Object class of the Microsoft Foundation Classes (MFC), which
allows the use of Serialize routines to read and write data to disk. In addition to the Serialize routines, objects derived from the Store class also contain a BrowseData method which allows for browsing of the data store. This routine returns lists of
the data and pointers of the object, along with their values, in string form. The Store object is also where the object ID of every storable object resides. This is simply the pathname from the personal assistant root where the file that is used to
store this object resides.
In order to store pointers to other objects, the store supports fat pointers. Each fat pointer, which itself is derived from the Store class, contains the object ID of the object it is "pointing" to. The Ptr class overloads the necessary
operations to make programmers use of the store as invisible as possible.
In addition to providing storage functionality, this layer also provides a simple locking mechanism. This is a single lock, allowing one process access to the storage layer at a time.
The Engine
The Engine is where the main TAPI (TAPI is Microsoft's and Intel's Telephony API for Windows) and Windows event loops reside. As different assistants activate and deactivate, the engine sends those assistants the events necessary to do their
work. Having the engine drive everything allows assistants to only write handlers for those events which are used by them. For example, if a game assistant is not programmed to handle an incall coming in on the phone line, the engine gets that message
and passes it off to the main assistant which wakes up and handles the call appropriately.
The engine also has some functions which can be called by the assistants. These calls typically return status information (who's on, etc.), but also include calls to transfer control from one assistant to another. For example, if a user wants
to play a game, the base assistant transfers control to the game (and gets it back later).
Assistants
The assistants are where the work really gets done. In this architecture, any "worker" is considered an assistant. The incaller interface, for example, is a separate DLL and therefore an assistan | | |