DE69531160T2 - Netzwerkbasierter kundiger assistent - Google Patents

Netzwerkbasierter kundiger assistent Download PDF

Info

Publication number
DE69531160T2
DE69531160T2 DE69531160T DE69531160T DE69531160T2 DE 69531160 T2 DE69531160 T2 DE 69531160T2 DE 69531160 T DE69531160 T DE 69531160T DE 69531160 T DE69531160 T DE 69531160T DE 69531160 T2 DE69531160 T2 DE 69531160T2
Authority
DE
Germany
Prior art keywords
subscriber
caller
call
participant
electronic assistant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69531160T
Other languages
English (en)
Other versions
DE69531160D1 (de
Inventor
A. Richard MINER
J. William WARNER
M. Anthony LOVELL
R. Eric SHIENBROOD
Keith Gabryelski
C.R.C. Kenneth ARNOLD
C. Nicholas D'ARBELOFF
Kee Hinckley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Wildfire Communications Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wildfire Communications Inc filed Critical Wildfire Communications Inc
Publication of DE69531160D1 publication Critical patent/DE69531160D1/de
Application granted granted Critical
Publication of DE69531160T2 publication Critical patent/DE69531160T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/436Arrangements for screening incoming calls, i.e. evaluating the characteristics of a call before deciding whether to answer it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/432Arrangements for calling a subscriber at a specific time, e.g. morning call service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/527Centralised call answering arrangements not requiring operator intervention
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/533Voice mail systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/40Electronic components, circuits, software, systems or apparatus used in telephone systems using speech recognition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/20Aspects of automatic or semi-automatic exchanges related to features of supplementary services
    • H04M2203/2011Service processing based on information specified by a party before or during a call, e.g. information, tone or routing selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42204Arrangements at the exchange for service or number selection by voice
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42229Personal communication services, i.e. services related to one subscriber independent of his terminal and/or location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42314Systems providing special services or facilities to subscribers in private branch exchanges
    • H04M3/42323PBX's with CTI arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/428Arrangements for placing incoming calls on hold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/5108Secretarial services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/533Voice mail systems
    • H04M3/53308Message originator indirectly connected to the message centre, e.g. after detection of busy or absent state of a called party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/533Voice mail systems
    • H04M3/53366Message disposing or creating aspects
    • H04M3/53383Message registering commands or announcements; Greetings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities

Description

  • Die vorliegende Erfindung bezieht sich auf ein auf einem Computer umgesetztes Verfahren zur Verwaltung des Dialogs zu und/oder von einem Benutzer, insbesondere, aber nicht ausschließlich, durch Verwendung von Spracherkennung, wobei die Benutzer durch ein gemeinsames Netzwerk verbunden sind und Multimedia-Schnittstelleneinrichtungen verwendet werden.
  • Heutzutage gibt es viele unterschiedliche kommerziell verfügbare Einrichtungen, die Leute in die Lage versetzen, miteinander elektronisch zu kommunizieren. Zusätzlich zu dem allgegenwärtigen Telefon, das über Jahrzehnte vorhanden ist, gibt es nun schnurlose Telefone für das Heim, mobile Telefone für das Auto, in der Hand gehaltene, drahtlose Telefone, die in die Jackentasche einer Person passen, Pager, lokale und Weitbereichs-Computernetzwerke und Faksimilegeräte, um einige wenige zu nennen. Unzweifelhaft wird sich die Anzahl und die Art der Einrichtungen und ihr Einfallsreichtum kontinuierlich vergrößern. Tatsächlich ist es wahrscheinlich, dass bald ein Tag kommen wird, an dem es für jedermann möglich sein wird, auf eine für ihn geeignete Weise und billig in der Reichweite irgendeiner Kommunikationseinrichtung zu sein, die ihn in die Lage versetzt, elektronisch mit anderen zu kommunizieren.
  • Die Ausbreitung unterschiedlicher Arten von Dialogeinrichtungen und die wachsende Vielfalt von Kommunikationsmedien stellen neue Herausforderungen dar. Wie wird der Dialog zwischen unterschiedlichen Einrichtungen und über unterschiedliche Dialogmedien koordiniert und verwaltet, so dass Leute tatsächlich einen wirksamen Zugang zueinander besitzen? Eine Herausforderung hängt mit dem Dialog von Information zwischen und über unterschiedliche Dialogmedien zusammen. Eine andere Herausforderung besteht in der Handhabung des unvermeidlichen Anwachsens von Anrufen, so dass der Zugriff auf die Benutzer aufrecht erhalten wird. Wenn sich z. B. immer mehr Leute auf ihre drahtlosen Telefone verlassen, um Geschäfte auszuführen, während sie sich auf der Straße oder außerhalb ihrer Büros befinden, werden ihre Telefone wahrscheinlich über einen größeren Prozentsatz der Zeit belegt sein. Infolgedessen wird, obgleich ein drahtloses Telefon überall mit seinem Besitzer hingehen kann, für die Leute, die diesen Besitzer zu erreichen versuchen, wenn sich das Telefon in Benutzung befindet, der Besitzer so unerreichbar bleiben, als wenn er kein drahtloses Telefon mit sich tragen würde. Je mehr der Besitzer eines solchen Gerätes es verwendet, umso wahrscheinlicher wird es sein, dass er nicht wissen wird, dass irgendjemand sonst ihn zu erreichen versucht hat, und somit wird er wichtige Anrufe verfehlen.
  • Ein augenscheinlicher Vorteil von vielen der neuen kommerziell erhältlichen Dialogeinrichtungen ist der, dass sie die Möglichkeit der größeren Mobilität für den Anwender bieten. Leider ist es jedoch nicht immer in der Nähe des Bürotelefons, das eine Geschäftsperson an das Büro anbindet. Das Büro liefert andere Dienstleistungen, die ebenfalls wichtig sind und nicht so mobil sein können. Um somit vollständig die größere Mobilität zu verwirklichen, die durch die neuen Dialogeinrichtungen und Medien geboten werden, müssen diese neuen Technologien in einer Weise vorgegeben werden, die der Abhängigkeit der Geschäftsperson von anderen Dienstleistungen neben der Kommunikation Rechnung tragen.
  • Die internationale Patentanmeldung mit der Veröffentlichungsnummer WO 91/07838 ist auf ein Telefon-Steuersystem gerichtet, das für die Teilnehmer eine Vielzahl von Anruf-Beantwortungsfunktionen vorgibt. Wenn einmal eine Verbindung zwischen dem Teilnehmer und dem Anrufer errichtet worden ist, so liefert es Anruf-Behandlungsfunktionen nur aufgrund von Zahleneingaben des Teilnehmers.
  • Die internationale Patentanmeldung mit der Veröffentlichungsnummer WO 91/18466 beschreibt ein System zur Vorgabe von Anruf-Dienstleistungen nach der Beendigung eines Anrufes. Das System erfordert, dass der Teilnehmer einen vorbestimmten Dienstleistungs-Zugriffscode eingibt, damit Anruf-Dienstleistungen nach Beendigung vorgegeben werden.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren vorgegeben, das durch einen auf einem Computer beruhenden elektronischen Assistenten zum Verwalten von Informations- und Verbindungsressourcen für mindestens einen Teilnehmer verwirklicht wird und das gekennzeichnet ist durch: Herstellung einer ersten Verbindung zwischen dem elektronischen Assistenten und dem Teilnehmer, Identifizieren des Teilnehmers, Starten einer ersten Sitzung zwischen dem elektronischen Assistenten und dem Teilnehmer, wobei die erste Sitzung eine Folge von Code-Ausführungen zum Verwalten von Daten und zum Ausführen von Funktionen seitens des Teilnehmers ist; Empfang eines ersten Befehls innerhalb der ersten Sitzung, der vom Teilnehmer über die erste Verbindung an den elektronischen Assistenten gesendet wird, wobei der erste Befehl den elektronischen Assistenten anweist, eine Funktion auszuführen; Reagieren auf den ersten Befehl innerhalb der ersten Sitzung durch Ausführen der Funktion, wobei die Funktion das Verwalten der Informations- und Verbindungsressourcen wie vom Teilnehmer angegeben umfasst; und Umschalten des elektronischen Assistenten zwischen einem Vordergrund-Betriebsmodus, in dem der Teilnehmer den elektronischen Assistenten interaktiv anweist Funktionen auszuführen, und einem Hintergrund-Betriebsmodus, in dem der elektronische Assistent die Teilnehmerverbindung überwacht und auf einen eingeschränkten, kleineren Satz von Befehlen reagiert.
  • Die hier beschriebene Erfindung bezieht sich auf einen elektronischen Assistenten. Sie ist eine auf einem Computer verwirklichte Einheit, die einen Teilnehmer bei seinem Dialog unterstützt, indem sie Aufgaben ausführt, die ihr delegiert wurden. Der elektronische Assistent, der so gestaltet ist, dass er menschliche Eigenschaften besitzt, erkennt Sprache und führt Funktionen innerhalb des üblichen Modells eines Büros aus.
  • Jedem Teilnehmer, der ein Konto besitzt, ist wenigstens ein elektronischer Assistent zugeordnet, der ihm gewidmet sein kann oder gemeinsam benutzt wird. Der elektronische Assistent liefert sowohl dem Teilnehmer als auch irgendwelchen Kontakten oder anderen Anrufern, die den Teilnehmer zu erreichen versuchen, Dienstleistungen. Ein Kontakt ist eine Person, ein Ort oder eine Gruppe, die der Teilnehmer für den elektronischen Assistenten beschrieben hat. Ein Kontakt kann ein anderer Teilnehmer oder ein Anrufer von außerhalb sein. Elektronische Assistenten behandeln sowohl die Teilnehmer als auch die Kontakte als Anwender des Systems.
  • Der elektronische Assistent bietet seinem Teilnehmer einen breiten Bereich von Dienstleistungen, unter denen sich die folgenden befinden. Der elektronische Assistent kann eingehende Anrufe von verschiedenen persönlichen Kontakten des Teilnehmers handhaben, während er zur gleichen Zeit irgendeine seiner Aufgaben erfüllt, einschließlich der Durchsicht von Nachrichten mit dem Teilnehmer, der Verwaltung von Information usw. Er kann logische Entscheidungen darüber treffen, wie eingehende Anrufe von den Kontakten des Teilnehmers zu verwalten sind, ob sie weiterzuleiten sind und wohin sie weiterzuleiten sind. Der elektronische Assistent kann ebenfalls mit dem Teilnehmer und den Kontakten des Teilnehmers unter Verwendung einer großen Vielfalt unterschiedlicher Dialogeinrichtungen kommunizieren, wie z. B. Telefonen, Faxgeräten, Pager, Computer-Terminals und durch den Dialog frei gegebene, in der Hand gehaltene Einrichtungen (z. B. persönliche digitale Assistenten, die anderweitig als PDAs bezeichnet werden). Wenn der Teilnehmer einen Kontakt zu erreichen versucht oder ein Kontakt den Teilnehmer zu erreichen versucht, so vermittelt der elektronische Assistent die Verbindung und bleibt sodann verfügbar, um die Sitzung zu unterstützen. Der elektronische Assistent kann Erinnerungen für seinen Teilnehmer planen und verwalten. Wenn Erinnerungen fällig werden, macht der elektronische Assistent den Teilnehmer darauf aufmerksam.
  • In bevorzugten Ausführungsbeispielen gestattet der elektronische Assistent der Einzelperson, seine Verfügbarkeit für Freunde, die Familie, Geschäftspartner, Kunden und Fremde, in Abhängigkeit von der Tageszeit, dem Wochentag und seinen Bedürfnissen zu verwalten. Zusätzlich besitzt der elektronische Assistent den Terminplan des Teilnehmers und weiß daher, wo sich der Teilnehmer befindet, was er macht, wie er verfügbar ist und wie er zu erreichen ist (z. B. über welche Dialogeinrichtung). Der Terminplan wird verwendet, um die Zugänglichkeit des Teilnehmers für andere und seine Sichtbarkeit für andere Teilnehmer des Systems zu verwalten.
  • Andere Vorteile und Merkmale gehen aus der folgenden Beschreibung des bevorzugten Ausführungsbeispiels und aus den Ansprüchen hervor.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt den elektronischen Assistenten und Büroelemente; 2 zeigt die Hardware-Plattform;
  • 3 ist eine Funktionsübersicht der Software-Architektur; 4 ist eine Prozessübersicht der Software-Architektur;
  • 5 ist ein Funktions-Blockdiagramm des Systems, das die Hardware-Schnittstelle mit den Dialogkanälen hervorhebt,
  • 6AH veranschaulichen den Prozess der Vervollständigung einer Aufgabe und der beteiligten Objekte;
  • 7 veranschaulicht die Verwendung der Box, der Hand und des Fingers bei der Handhabung von Gegenständen;
  • 8 ein Beispiel eines MMUI-Menüs;
  • 9 zeigt ein Beispiel eines MMUI-Menüs mit Mogulen;
  • 10AD zeigen die Beziehung zwischen Vermerken, Menüs und Mogulen; 11 veranschaulicht den Prozess der Niederlage und Abgabe einer Nachricht und der beteiligten Objekte;
  • 12 veranschaulicht den Prozess der Abgabe von Erinnerungen und der beteiligten Objekte;
  • 13 zeigt den Inhalt einer Box;
  • 14 zeigt den Inhalt eines Benutzerobjektes;
  • 15 zeigt die Beziehung zwischen Benutzerobjekten und Kontakten;
  • 16 zeigt den Fluss von Ereignissen zwischen der VM und den Agentensitzungen und der Hardware,
  • 17 zeigt die internen Objekte der VM und ihre Beziehung zueinander;
  • 18AB veranschaulichen den Prozess der Bildung eines Kanals und die daran beteiligten Objekte;
  • 19 veranschaulicht den Betrieb zur Vorlage von Vermerken und Menüs an Anschlüssen;
  • 20 zeigt die Funktionsbeziehung zwischen den Agenten und den Anwendungs-Dienstleistungen;
  • 21 zeigt den Datenfluss in einer Sitzung des Assistenten;
  • 22 zeigt die Klassenhierarchie des Agenten;
  • 23AD stellen ein Beispiel eines Handschlags mit drei Teilen dar;
  • 24AB sind ein Flussdiagramm der Anruf-Antwort-Aufgabe;
  • 25AD veranschaulichen die Verwendung eines Konferenzobjektes bei der Errichtung eines Anrufs zwischen Teilnehmern;
  • 26 ist ein Flussdiagramm der Lokalisier- und Vermerkaufgabe;
  • 27 ist ein Flussdiagramm der Vermerkaufgabe;
  • 28 zeigt einen „Bilde einen Kontakt"-Dialog mit dem elektronischen Assistenten;
  • 29 zeigt einen „Erinnere mich"-Dialog mit dem elektronischen Assistenten;
  • 30 zeigt einen „Erinnere mich an einen Anruf"-Dialog mit dem elektronischen Assistenten;
  • 31 ist ein Flussdiagramm der Erinnerungs-Handhabungsaufgabe;
  • 32 zeigt einen „Auffinde"-Anweisungsdialog;
  • 33 zeigt einen „Ich bin es"-Dialog und
  • 34 zeigt einen „Bilde eine Route"-Dialog.
  • Beschreibung der bevorzugten Ausführungsbeispiele
  • Das virtuelle Büro:
  • Wie in 1 veranschaulicht, arbeitet ein Teilnehmer mit einem elektronischen Assistenten 10 unter Verwendung eines „virtuellen Büros" als einem Modell. Der elektronische Assistent 10 arbeitet in einem Büro, das die Objekte des Teilnehmers enthält, die als „Elemente" bezeichnet werden. Ein Element ist ein Stück Information, das der elektronische Assistent in einer Datenbank speichert und das für den Teilnehmer arbeitet. Der Teilnehmer kann gesprochene oder Tasten-Anweisungen verwenden, um den elektronischen Assistenten mit verschiedenen Assistenten arbeiten zu lassen, und der elektronische Assistent verwendet dann einen Dialog, um die Information zu sammeln, die er vom Teilnehmer benötigt, um die Aufgabe zu vervollständigen.
  • Ein Element kann irgendeines der folgenden Elemente sein: ein Terminplan 12, ein Kontakt 16 (z. B. eine Person 18, ein Ort 22 oder eine Gruppe 20), eine Nachricht 14, eine Erinnerung 24, ein Telefonbuch 26 oder Abfall 28. Nachrichten können andere Elemente umfassen, z. B. einen Kontakt, eine Erinnerung, eine Seite usw. In abgeleiteten Verwirklichungen kann eine Nachricht irgendeine Art von Multimedia- oder zusammengesetzte Information sein.
  • Ein „Terminplan" listet auf, wo der Teilnehmer zu erreichen ist und zu welcher Zeit. Es gibt einen Default-Terminplan und eine Übersteuer-Terminplan. Der Default-Terminplan ist der tägliche oder wöchentliche Terminplan des Teilnehmers; er wird durch einen System-Administrator eingegeben. Teilnehmer können den Default-Terminplan mit einer „Ich bin hier"- oder „Bilde eine Route"-Anweisung übersteuern, um einen Übersteuer-Terminplan zu bilden (siehe Anhang A am Ende der Beschreibung für eine Liste von gesprochenen und Tasten-Anweisungen, die ein elektronischer Assistent verwirklicht). Die „Ich bin hier"-Anweisung gestattet dem Teilnehmer anzuzeigen, wann und wo er erreicht werden kann und seine Verfügbarkeit zu jenen Zeiten.
  • Ein „Kontakt" ist die Betrachtung des Teilnehmers einer Person, eines Ortes oder einer Gruppe. Der Teilnehmer kann einen Kontakt als Empfänger einer Anweisung verwenden, wie z. B. das Vornehmen eines Anrufes oder das Senden einer Voice-Mail. Ein Kontakt ist analog zu einem Eintrag in einer Adressbuch-Datei. Ein „Außenkontakt" ist ein Kontakt, der nicht durch einen Teilnehmer vorgegeben ist.
  • Eine „Person" ist eine Darstellung einer Person, die einen anderen Teilnehmer beschreibt oder jemanden außerhalb des Systems. Die Beschreibung umfasst den gesprochenen Namen, den buchstabierten Namen, die Priorität, das Geschlecht und eine Liste der Orte, an denen die Person erreicht werden kann.
  • Ein „Ort" ist ein Ort mit einer einzigen Adresse (z. B. eine Telefonnummer, Faxnummer, Netzwerkidentifizierung usw.), die ihm zugeordnet ist. Jede Person kann eine Standardgruppe von Orten umfassen: Arbeit, Heim, Auto, Mobil und andere. Ein Unternehmen, eine Abteilung oder eine andere Organisation wird ebenfalls als Ort angesehen und kann eine Telefon- und Faxnummer umfassen.
  • Eine „Gruppe" ist eine durch den Benutzer definierte Gruppe von Personen, Orten und/oder Gruppen.
  • Eine „Nachricht" ist ein Stück Information, das an eine Person oder Gruppe adressiert ist. Die üblichste Art von Nachricht ist eine Voice-Mail.
  • Eine „Erinnerung" ist ein Vermerk, der zu einem zukünftigen Zeitpunkt abzugeben ist. Die Erinnerung kann ein Vermerk sein, einen Kontakt über einen bestimmten Gegenstand anzurufen („Anruf-Erinnerung"), oder ein Vermerk, der eine aufgezeichnete Hörnachricht über einen anderen Gegenstand enthält („aufgezeichnete Erinnerung").
  • Ein „Telefonbuch" ist eine Liste von Benutzern eines anderen Systems, das zum leichten Zugriff veröffentlicht ist.
  • Der Abfall" ist eine Sammlung aller Elemente, die der Teilnehmer weggeworfen hat.
  • In dem beschriebenen Ausführungsbeispiel kann der elektronische Assistent spezifische Wörter oder Sätze erkennen, die als Sprachelemente bezeichnet werden. Um die Sprache eines Teilnehmers zu erkennen, sammelt der elektronische Assistent Trainings-Sprachelemente vom Teilnehmer, die Aufzeichnungen in der Art und Weise sind, wie der Teilnehmer ein Wort oder einen Satz ausspricht. Der Prozess der Sammlung dieser Trainings-Sprachelemente wird manchmal als „Training" bezeichnet, insofern, als der Teilnehmer den elektronischen Assistenten trainiert, seine Stimme zu erkennen. Zum Beispiel kann der elektronische Assistent den Teilnehmer bitten, seinen vollständigen Namen oder den Namen einer Anweisung mehrere Male zu sagen. Diese Sprachelemente werden sodann in ein komprimiertes Format umgesetzt, das als Wörterbuch bekannt ist. Ein „Wörterbuch" ist eine endgültige Gruppe von aufgezeichneten Wörtern und Sätzen, die direkt durch die Spracherkennungs-Hardware des Systems verwendet werden können, um die Sprache des Teilnehmers zu erkennen.
  • Der elektronische Assistent verwendet zwei unterschiedliche Arten von Wörterbüchern, nämlich ein vom Sprecher abhängiges und ein vom Sprecher unabhängiges Wörterbuch. Das vom Sprecher abhängige Wörterbuch wird verwendet, um die Sprache von Benutzern zu erkennen, die den elektronischen Assistenten explizit mit ihrer eigenen Aussprache trainiert haben. Das vom Sprecher unabhängige Wörterbuch wird verwendet, um mehrere unterschiedliche Stimmen zu erkennen, ohne dass es erforderlich ist, dass jeder Benutzer das System trainiert.
  • Zusätzlich zu diesen unterschiedlichen Arten von Wörterbüchern benutzt der elektronische Assistent zwei unterschiedliche Verfahren, um Sprache zu erkennen, nämlich eine kontinuierliche Erkennung und eine diskrete Erkennung. Die kontinuierliche Erkennung erkennt natürlich gesprochene Wörter oder Folgen von Wörtern, d. h. Wörter ohne künstliche Pause dazwischen. In dem beschriebenen Ausführungsbeispiel gibt es zwei Wörterbücher mit kontinuierlicher Erkennung: Zahlen (die Ziffern „1" bis „9", „0" und „O" und ja/nein („ja" und „nein"). Die kontinuierliche Erkennung unterscheidet ebenfalls zwischen Wörtern wie „ähm" und „ah". Die diskrete Erkennung erkennt diskrete, getrennte Wörter oder Sätze oder Folgen von unterschiedlich gesprochenen Wörtern, die durch Pausen getrennt sind.
  • Der elektronische Assistent antwortet auf eine Vielzahl von Anweisungen (s. Anhang A). Einige Anweisungen arbeiten mit dem laufenden Zusammenhang zur Hand (später beschrieben), während andere dies nicht tun. Einige Anweisungen beginnen einen Dialog zwischen dem elektronischen Assistenten und dem Teilnehmer, so dass der Assistent die Information sammeln kann, die er benötigt, um die Aufgabe auszuführen. Zum Beispiel kann der Teilnehmer, um einen Kontakt anzurufen, die „Anruf"-Anweisung verwenden:
    Teilnehmer Assistent
    Anrufen Wen anrufen?
    Bill Bishop Wo?
    Arbeit Wählen ...
  • Funktionsbeschreibung der Benutzer-Schnittstelle
  • Bevor in die Einzelheiten der Hardware und Software-Architektur des Systems gegangen wird, sei eine Beschreibung gegeben, wie das System einen eingehenden Anruf an einen Teilnehmer handhabt. Dies wird den Zusammenhang vorgeben, um sodann die zugrunde liegenden Mechanismen zu beschreiben, die in dem System umgesetzt sind, um ihre Funktion zu erfüllen.
  • Während des Restes dieser Beschreibung wird, mit Ausnahme, wenn es anders vermerkt ist, angenommen, dass der Teilnehmer John Smith heißt und der Anrufer Bill Bishop.
  • Wenn ein Anrufer in dem System einen Anruf in einem Versuch macht, einen bestimmten Teilnehmer zu erreichen (d. h. durch Anruf einer Telefonnummer, die diesem Teilnehmer zugeordnet ist), so beantwortet das System den Anruf. Durch Abspielen von Hörsignalen, die in der Datenbank des Systems gespeichert sind, gibt das System dem Anrufer an:
    Guten Morgen, ich bin der elektronische Assistent für John Smith. Bitte sagen Sie Ihren vollen Namen.
  • Der Anrufer antwortet durch Angabe seines Namens:
    Bill Bishop
  • Das System zeichnet die Sprachelemente des Anrufers auf und benutzt ein vom Sprecher abhängiges Wörterbuch, das in der Datenbank des Systems gespeichert ist, wobei es versucht, den Anrufer zu erkennen. Wenn das System den Namen des Anrufers nicht erkennen kann, antwortet es durch Abspielen der folgenden Nachricht:
    Verwenden Sie die Tasten, geben Sie Ihre Vorwahl und Telefonnummer ein, gefolgt durch die Taste #.
  • Der Benutzter gibt seine Telefonnummer wie gefordert ein. Das System decodiert die Tastenwahl und sucht sodann eine Kontaktliste für den Teilnehmer ab, um einen Kontakt mit dieser Telefonnummer zu finden. Wenn das System erfolgreich ist bei der Erkennung des Anrufers auf der Basis seiner Telefonnummer, so spielt es die folgende Nachricht an den Anrufer ab:
    Würden Sie sich einen Moment Zeit nehmen, mir anzugeben, wie ich Ihren Namen besser erkennen kann?
  • Der Anrufer kann dieses Angebot annehmen, indem er „9" auf seiner Tastatur drückt.
  • Das System antwortet dann durch Abspielen der folgenden Nachricht:
    Bitte wiederholen Sie Ihren vollen Namen.
  • Nach nochmaliger Wiederholung dieser Operation speichert das System die Aussprachen mit der Identität des Kontaktes. Beim nächsten Mal, wenn der Anrufer das System kontaktiert, wird es die gespeicherte Aussprache des Namens verwenden, um den Anrufer zu erkennen.
  • Wenn der Assistent den Anrufer einmal erkannt hat, entweder durch eine Übereinstimmung mit einer gespeicherten Aussprache oder durch die Telefonnummer des Anrufers oder wenn er den Anrufer als unbekannt bezeichnet, versucht er, den Teilnehmer zu lokalisieren. Er tut dies durch Ausführen einer Folge von Operationen, von denen die Erste darin besteht, den Status des Teilnehmers zu überprüfen. Wenn der Teilnehmer momentan eine mit seinem Assistenten errichtete Verbindung besitzt (und er eine „Nicht Stören"-Funktion nicht frei gegeben hat), ist sein Status „verfügbar". Wenn der Teilnehmer nicht verbunden ist, kann der Assistent eine sekundäre Informationsquelle (wie z. B. ein Zellennetzwerk) überprüfen, um die Verfügbarkeit des Teilnehmers festzustellen. Schließlich wird der Assistent den Terminplan des Teilnehmers überprüfen. Der Teilnehmer kann seine Verfügbarkeit einstellen, um anzuzeigen, dass er alle Anrufe annimmt, dass er keine Anrufe annimmt oder dass er nur wichtige Anrufe annimmt.
  • Wenn der Teilnehmer keine Anrufe annimmt, so spielt das System dem Anrufer die folgende Nachricht ab:
    Tut mir Leid, er ist nicht verfügbar. Bitte hinterlassen Sie eine Nachricht und legen Sie dann auf oder drücken Sie die Taste „#". Aufzeichnung.
  • Nachdem der Anrufer geendet hat, kann das System einen nicht-interaktiven Vermerk an den Teilnehmer senden, dass ihn der Anrufer gerade versucht hat zu erreichen. Es tut dies z. B. durch Senden einer Seite über seine Pager-Schnittstelle oder Senden einer E-Mail-Nachricht an die Arbeitsstation des Teilnehmers. Der Vermerk identifiziert den Anrufer und zeigt an, ob eine Voice-Mail hinterlassen wurde.
  • Wenn der Teilnehmer nur wichtige Anrufe annimmt, überprüft das System die Kontaktliste des Teilnehmers, um festzustellen, welches die Priorität des Teilnehmers ist. Der Teilnehmer kann den Kontakt entweder mit hoher Priorität oder mit normaler Priorität festlegen, und diese Information wird mit anderen Informationen über den Kontakt gespeichert. Wenn der Anrufer nur normale Priorität besitzt, so berichtet das System, dass der Teilnehmer nicht verfügbar ist und bietet dem Anrufer die Optionen an, eine Voice-Mail zu hinterlassen wie zuvor beschrieben. Wenn andererseits der Anrufer eine hohe Priorität besitzt, so fährt das System fort mit seinem Versuch, den Teilnehmer zu lokalisieren und ihre von dem Anruf zu berichten.
  • In dem Fall, in dem der Teilnehmer alle Anrufe annimmt, fährt das System mit dem Versuch fort, den Teilnehmer zu lokalisieren und ihm von dem Anruf zu berichten, ohne Rücksicht auf die Prioritätsfestelegung des Anrufers.
  • Als erster Schritt bei der Lokalisierung des Teilnehmers stellt das System fest, ob der Teilnehmer bereits mit dem System verbunden ist, entweder über einen anderen Anruf oder über irgendein anderes Dialogmedium (z. B. in seinem Computer protokolliert). Wenn sich der Teilnehmer bei einem anderen Anruf befindet, der durch das System gehandhabt wird, so unterbricht das System kurz diesen Anruf, um dem Teilnehmer mitzuteilen, dass er einen wartenden Anruf hat, und es identifiziert den Namen des Anrufers. Wenn der Anrufer ebenfalls in dem System durch seinen Computer protokolliert ist, kann das System ebenfalls eine visuelle Nachricht an die Arbeitsstation senden, um dem Teilnehmer den Anruf mitzuteilen und den Anrufer zu identifizieren.
  • Der Teilnehmer hat sodann die Möglichkeit, den Anruf anzunehmen, das System zu bitten, den Anrufer auf Warteschleife zu halten, während er seinen momentanen Anruf vervollständigt, oder das System zu bitten, eine Nachricht anzunehmen.
  • Wenn der Teilnehmer den Anruf annimmt, antwortet der elektronische Assistent, indem er unmittelbar eine Verbindung zwischen dem Anrufer und dem Teilnehmer herstellt. Wenn der Teilnehmer das System instruiert, eine Nachricht aufzunehmen, so bietet das System dem Anrufer die zuvor erwähnte Option der Voice-Mail. Wenn der Teilnehmer das System instruiert, den eingehenden Anruf auf Warteschleife zu nehmen, so informiert das System den Anrufer, dass der Teilnehmer in kurzer Zeit bereit ist. Wenn der Teilnehmer seinen anderen Anruf beendet hat, instruiert er unter Verwendung von gesprochenen Anweisungen das System, sodann eine direkte Verbindung mit dem neuen Anrufer zu errichten.
  • Wenn das System feststellt, dass der Teilnehmer sich gegenwärtig nicht bei einem Anruf befindet, aber mit dem System verbunden ist oder durch seine Arbeitsstation oder durch eine andere Zweiweg-Dateneinrichtung erreichbar ist, so kann es eine Nachricht senden, die auf dem Anzeigeschirm der Einrichtung dargestellt wird. Die Nachricht umfasst ein Menü, das dem Teilnehmer die Möglichkeit anbietet, den Anruf anzunehmen oder nicht anzunehmen. Wenn der Teilnehmer den Anruf annimmt, so teilt das System dem Anrufer mit, dass der Teilnehmer in Kürze mit ihm verbunden ist. In der Zwischenzeit ruft der Teilnehmer über ein anderes Telefon im System an, und das System verbindet ihn mit dem Anrufer.
  • Wenn der Teilnehmer den Anruf nicht annimmt oder nicht innerhalb einer vorbestimmten Zeitperiode antwortet, teilt das System dem Anrufer mit, dass es nicht in der Lage war, den Teilnehmer zu lokalisieren, und es bietet dem Anrufer die Möglichkeit an, eine Voice-Mail zu hinterlassen.
  • Wenn der elektronische Assistent das Vorliegen eines Teilnehmers im System nicht feststellen kann, prüft er, ob dessen Adresse in einem oder mehreren Plänen angezeigt ist, die das System für den Teilnehmer bereithält. Wenn es einen Plan gibt, der den Teilnehmer an einer bestimmten Adresse zu diesem Moment vorgibt und wenn es Telefonnummern gibt, die diese Adresse identifizieren, so gibt der elektronische Assistent einen Anruf zu einer der Telefonnummern. Zusätzlich kann der Assistent eine oder mehrere zusätzliche Quellen von Teilnehmer-Adressinformationen überprüfen (wie z. B. Datenbanken eines Zellennetzwerkes).
  • Wenn eine Partei den Anruf beantwortet, so spielt der elektronische Assistent die folgende Nachricht an die antwortende Partei ab:
    Hallo, ich versuche Jim Smith zu erreichen. Wenn er verfügbar ist, drücken Sie die Taste „9". Wenn er nicht verfügbar ist, drücken Sie die Taste „6" oder hängen Sie auf.
  • Wenn die den Anruf beantwortende Partei anzeigt, dass Jim Smith verfügbar ist, so sagt der elektronische Assistent:
    Hier ist ein Anruf von Bill Bishop. Wünschen Sie den Anruf anzunehmen?
    Zeigen Sie Ja durch Drücken der Taste „9" an, zeigen Sie Nein durch Drücken der Taste „6" an.
  • Wenn die Partei anzeigt, dass sie den Anruf annehmen will, verbindet der elektronische Assistent den Anrufer mit dem Teilnehmer.
  • In dem Fall, in dem der elektronische Assistent nicht in der Lage ist, eine Verbindung mit dem Teilnehmer herzustellen, kann er einen nicht-interaktiven Vermerk an den Teilnehmer senden, der anzeigt, dass Bill Bishop ihn zu einer bestimmten Zeit angerufen hat.
  • Hardware-Architektur
  • 2 die grundlegenden Hardware-Komponenten des beschriebenen Ausführungsbeispiels. Das System besteht aus einem Computer der Serie 486 mit hoher Leistung, der mit einem ISA-Bus 40 mit einer passiven Hintergrundplatine ausgerüstet ist. Der Computer umfasst eine CPU-Karte 42 und Anzeigeadapter (nicht gezeigt). Die passive Hintergrundplatine ist ein separater Bus, der kein Teil der CPU-Karte ist (d. h. der Trägerplatine). Eine Gruppe ISA-Adapter (nicht gezeigt) ist in die passive Rückwandplatine eingelassen, um das 486er Computersystem zu bilden. Schnittstellenkarten 44 und die CPU-Karte sind direkt mit dem ISA-Bus verbunden. Die passive Rückwandplatine kann bis zu 20 Schnittstellenkarten aufnehmen.
  • Die Schnittstellenkarten sind Karten für spezielle Zwecke, um viele unterschiedliche Formen der Verbindung und des Dialogs zu unterstützen. Sie umfassen Netzwerkkarten zur Verbindung mit digitalen Standard-Telefonleitungen sowie Adapter für spezielle Zwecke zur Spracherkennung, zur Herstellung von Telefonanrufen und zum Senden und Empfangen von Faxmitteilungen usw.
  • Ein Multi-Vendor Integration Protocol (= MVIP)-Bus, bestehend aus einem Bandkabel mit 40 Stiften ist mit allen Schnittstellenkarten verbunden und gibt Telefondienstleistungen vor. Der MVIP-Bus ist ein Hochgeschwindigkeits-Dialogkanal, der den gesamten Hörverkehr zwischen den Schnittstellenkarten und den Telefonleitungen ausführt.
  • Schließlich besitzt das System auch fest angeordnete und entfernbare Speicher, die eine Gruppe von Plattenantrieben 48 mit hoher Kapazität und hoher Geschwindigkeit und einen Antrieb 50 für eine Floppy-Disk umfassen.
  • Ein Grundsystem, das acht Anschlüsse unterstützt, besitzt einen Plattenspeicherraum von 2 GB und einen Speicher mit 32 MB mit einem zusätzlichen Plattenspeicherraum von 1 GB und einem Speicher mit 8 MB für jede zusätzliche Gruppe von acht Anschlüssen. Das beschriebene Ausführungsbeispiel unterstützt maximal 24 Anschlüsse.
  • In dem beschriebenen Ausführungsbeispiel wird die folgende, spezifische Hardware verwendet. Die Leitungs-Schnittstellenkarten sind entweder Natura) MicroSystems-DTI-48 T1-Karten, welche die Verbindung von zwei T1-Kanälen unterstützen oder Voice Technology Group Voice Brigde PC PBX-Karten, die acht Leitungen der Gruppenemulation einer PBX-Station unterstützen. Die Leitungs-Verarbeitungskarten sind Natura) MicroSystems-AG-8-Karten, die jeweils acht Telefonkanäle unterstützen. Die ASR-Tochterkarten sind DB-31-Karten von Natura) MicroSystems, und es gibt eine DB-31-Karte für jede AG-8-Leitungs-Verarbeitungskarte. Die Tochterkarte führt Spracherkennung nur für Namen aus. Eine weitere vorgesehene ASR-Karte ist eine VPro-84-Karte der Firma Voice Processing Corporation. Es gibt eine VPro-84-Karte für jede AG-8-Leitungs-Verarbeitungskarte. Die VPro-84-Karte führt eine Spracherkennung von Anweisungen und Ziffern aus und unterstützt bis zu acht diskrete Spracherkenner oder vier kontinuierliche Spracherkenner.
  • Der MVIP-Bus unterstützt bis zu 256 Voll-Duplex-Telefonverbindungen. Die 256 Voll-Duplex-Verbindungen werden im Zeitmultiplex (TDM) betrieben, so dass nur 32 getrennte Signale übertragen werden, von denen jedes in acht Zeitschlitze unterteilt ist. Verbindungen zwischen zwei Dialogkanälen werden verwirklicht durch Softwaresteuerung eines jeden der Kanäle, um Zugriff zu den Zeitschlitzen des anderen Kanals zu besitzen. Das heißt, dem Eingang eines jeden Kanals wird gestattet, auf den Ausgang des anderen Kanals zu hören.
  • Andere mögliche Hardware-Konfigurationen
  • Die Beschreibung zuvor stellt eine mögliche Architektur dar, die eine Anzahl von Hardware-Elementen innerhalb eines einzigen Computer-Chassis konzentriert, einschließlich mehrerer Spezialzweck-Schnittstellenkarten, die über einen Spezialzweck-Bus miteinander verbunden sind. Viele andere Hardware-Organisationen können ebenfalls verwendet werden, um die beschriebene Funktion zu unterstützen. Die grundlegenden benötigten Elemente sind: 1) ein oder mehrere Basis-Computersystemmittel zur Unterstützung des Programms und der Daten wie beschrieben, 2) Unterstützung eines oder mehrerer eingehender Dialogkanäle und Unterstützung für den Empfang und die Erzeugung von Verbindungen auf den entsprechenden Kanälen und 3) ein schaltendes Systemmittel, um mehrere Dialogkanäle zusammenzuschalten.
  • Es ist möglich, dass diese Systemmittel über mehrere Systeme verteilt sind. Zum Beispiel kann in einer möglichen Verwirklichung ein getrenntes Schalt-Systemmittel an Computer angeschlossen sein, die Hardware für die Verwaltung der Dialogkanäle enthalten. Diese Computer, welche die Dialogkanäle verwalten, sind dann über ein Netzwerk an größere Systeme angeschlossen, auf denen die Anwendungen laufen und die Datenbank-Dienstleistungen vorgeben. Die Anwendungen und die Datenbank-Dienstleistungen können weiterhin über mehrere Systeme aufgespalten sein.
  • In noch anderen Hardware-Konfigurationen kann es erwünscht sein, die Systemmittel noch mehr zu konsolidieren, als es bei dem vorliegenden Ausführungsbeispiel beschrieben ist. Zum Beispiel kann ein einziger Computer eine eingesetzte Karte besitzen oder eine Karte auf der Trägerplatine unterstützen, um die Dialogkanäle zu handhaben. Die Umschaltung zwischen diesen Kanälen kann durch Hard- oder Software erfolgen. Auf diese Weise laufen die Anwendungen und die Datenbank auf einem einzigen Computer mit der notwendigen Hardware-Unterstützung, um alle notwendigen Dialogkanäle zu verwalten.
  • Software Architektur
  • Die folgende Beschreibung stellt zwei unterschiedliche Betrachtungsweisen der Software-Architektur des Systems dar: eine, die die funktionellen Komponenten betont und eine andere, die die Prozesse und Ereignisse betont.
  • Funktionelle Betrachtung:
  • 3 zeigt die high-level Software-Architektur des Systems. Bei dieser und folgenden Veranschaulichungen der Prozesse sind die Strukturobjekte symbolisch durch Icons dargestellt, die ein auf die Funktion der dargestellten Einheit bezogenes Auftreten besitzen.
  • Das System umfasst vier primäre Komponenten. Eine primäre Komponente umfasst Assistenten 60 und Agenten 62. Die Assistenten führen Aufgaben mittels Anwender aus, und die Agenten führen Aufgaben mittels Assistenten aus. Eine andere primäre Komponente ist ein Dialogmechanismus, der eine Multimedia-Benutzerschnittstelle (MMUI) 64 und einen Paketmechanismus 66 umfasst. Diese gestatten den Assistenten und Agenten den Dialog mit anderen Systemkomponenten. Eine dritte primäre Komponente ist eine Objekt-Datenbank 68, die Benutzerinformationen speichert, wie z. B. Kontakte und Nachrichten, und Systeminformationen, wie z. B. Aufforderungen. Die vierte primäre Komponente ist eine virtuelle Maschine (VM) 70, die Anforderungen von Assistenten und Agenten sowie von Hardware-Einrichtungen behandelt. Die Pfeile in 3 zeigen die primären Wege für den Fluss der Wirkungen zwischen den verschiedenen Komponenten.
  • Das beschriebene Ausführungsbeispiel verwendet das Univell UnixwareTM-Betriebssystem 72, das auf dem Betriebssystem des Unix-Systems V, Release 4.2, beruht. Die Objekt-Datenbank ist die objektorientierte Datenbank ObjectStoreTM von Object Design, Inc.
  • Andere mögliche Software-Konfigurationen
  • In dem beschriebenen Ausführungsbeispiel befinden sich die VM, die Assistenten, die Agenten und die Datenbank alle in einem Zentralcomputer. Es gibt jedoch nichts in der Architektur, was dieses erfordert. Andere Verwirklichungen können diese Komponenten voneinander trennen, und sie können auf getrennten Computern ablaufen, wobei die zuvor erwähnte externe Prozedur den Dialog zwischen den unterschiedlichen Prozessen aufruft.
  • Prozessbetrachtung
  • 4 fasst die Prozess-Architektur des Systems zusammen. Das System besteht aus einem virtuellem Maschinen-Serviceprozess 80 (VM-Server) und einem Prozess 82 für jeden Fall eines elektronischen Assistenten oder Agenten. Jeder Prozess einer Sitzung steht mit dem VM-Server unter Verwendung von externen Prozeduraufrufen (remote procedure calls, RPCs) 84 in Dialog. Der VM-Server behandelt diese RPCs der Sitzungsprozesse und er behandelt ebenfalls Ereignisse 86 von Hardware-Einrichtungen 88.
  • Die Schnittstellen zu den Dialogmedien
  • 5 ist eine Blockdiagrammansicht des Systems, das die Hardware-Schnittstelle mit verschiedenen Dialogkanälen hervorhebt. Ein zentrales Büro 90, das eingehende Anrufe von Telefonen 92 und Faxgeräten 94 empfängt, leitet diese über eine T1-Leitung zu einer T1-Schnittstellenkarte 96 im System weiter. Die T1-Schnittstellenkarten sind mit dem MVIP-Bus 46, zusammen mit anderen Karten, verbunden, die eine Leitungs-Prozessorkarte 98, eine Spracherkennungskarte 100 und eine Faxplatinenkarte 102 umfassen. Die Leitungsverarbeitungskarte codiert und decodiert Sprache, d. h., sie spielt Audiosignale ab, die in der Datenbank gespeichert sind, und zeichnet Audiosignale zur Speicherung in der Datenbank auf. Sie decodiert ebenfalls Tastensignale (DTMF). Die Spracherkennungskarte führt die Spracherkennungsfunktion unter Verwendung eines Wörterbuchs aus, das ihr von der Datenbank geliefert wird. Das Vokabular kann ein vom Sprecher abhängiges sein, das durch den Benutzer oder eine vom Sprecher unabhängige Bibliothek erzeugt wird.
  • Es kann eine oder mehrere T1-Leitungen geben, die im System ankommen. Es ist jedoch wahrscheinlich, dass dem System viel mehr Telefonnummern zugeordnet sind, als es T1-Leitungen gibt. Nummern sind nicht auf bestimmten Leitungen abgebildet. Stattdessen wird, wenn das zentrale Büro einen Anruf empfängt, der für eine dieser Nummern beabsichtigt ist, einfach unter Leitungen ausgewählt, die zu der Zeit verfügbar sind, und über die ausgewählte Leitung ein Klingelsignal an das System gesendet. Wenn die Schnittstellenkarte für diese Leitungen den eingehenden Anruf beantwortet (d. h. an die Leitung angeschlossen wird), so empfängt sie von dem zentralen Büro eine Folge von Tastentöne (vier Ziffern), die den Anschluss identifizieren, der angerufen wird. Unter Verwendung dieser Folge von vier Ziffern, die den Anschluss und die Nummer der Teilnehmer identifizieren, die in seiner Datenbank gespeichert sind, ist das System in der Lage, den Teilnehmer zu identifizieren, für den der Anruf bestimmt ist.
  • In dem beschriebenen Ausführungsbeispiel kann das System auch Verbindungen zu einem Weitbereichsnetzwerk (WAN) oder einem lokalen Bereichsnetzwerk (LAN) 104 über eine Ethernet-Karte 106 errichten. Zusätzlich kann es Verbindungen zu verschiedenen anderen Dialogeinrichtungen über eine oder mehrere serielle Schnittstellenkarten 108 errichten. In 5 besitzt die serielle Karte 108 zwei serielle Anschlüsse, von denen einer mit einem SkyTelTM-System 110 über eine serielle Leitung und der andere mit einem Zweiweg-Modem 112 über eine andere serielle Leitung verbunden ist. Das SkyTelTM-System 110 überträgt Einweg-Verbindungen zu Pagern 114. Das Zweiweg-Modem 112 führt eine Zweiweg-Verbindung mit drahtlosen Einrichtungen 116, wie z. B. PTAs (Persönliche digitale Assistenten) aus.
  • 5 präsentiert ebenfalls eine logische Betrachtung des Mechanismus', den das System verwendet, um Dialogkanäle über die Schnittstellenkarten zu verbinden. Um das System mit unterschiedlichen Dialogmedien zu verbinden, errichtet das System verschiedene Kanäle oder Dialogwege einschließlich eines Telefon-Leitungskanals 120, eines Faxkanals 122, eines TTY-Leitungskanals 124, eines Zweiweg-Datenleitungskanals 126 und eines Stapel-Pager-Kanals 128. Für jeden Kanal gibt es eine Gruppe von Anschlüssen, die mit ihm verbunden werden können. Die Anschlüsse, die in der Software durch Anschlussobjekte repräsentiert werden, beziehen sich auf Ein-/Ausgangsgeräte, die durch die Schnittstellenkarten unterstützt werden.
  • In der Software wird jeder der Leitungskanäle durch ein Objekt repräsentiert, d. h. eine Datenstruktur, welche die physikalische Leitung identifiziert, die dem speziellen Kanal zugeordnet ist. Die Datenstruktur umfasst ebenfalls eine Liste der Anschlüsse, die an den Kanal angeschlossen werden können. Jeder Anschluss wird durch ein Anschlussobjekt repräsentiert und die Funktion unterstützt, die auf den mit dem System verbundenen Schnittstellenkarten angetroffen wird. Das heißt, jeder Anschluss repräsentiert einen logischen, digitalen Signalprozessor auf der speziellen Schnittstellenkarte, die die Funktion verwirklicht, die dem Anschluss zugeordnet ist.
  • 5 zeigt die Anschlüsse, die den verschiedenen Kanälen zugeordnet werden können. Der Telefon-Leitungskanal kann einen DTMF-Anschluss 130, einen Audio-Eingangsanschluss 132, einen Audio-Ausgangsanschluss 134 und einen ASR (automatische Spracherkennung)-Anschluss 136 besitzen. Ein Faxkanal kann einen Fax-Eingangsanschluss 138 und einen Fax-Ausgangsanschluss 140 besitzen. Sowohl der TTY-Leitungskanal als auch der Zweiweg-Datenleitungskanal können einen Text-Eingangsanschluss 142 und einen Text-Ausgangsanschluss 144 besitzen. Der Stapel-Pager-Kanal kann einen Text-Ausgangsanschluss 144 besitzen.
  • Für den Telefon-Leitungskanal repräsentiert der DTMF-Anschluss die Fähigkeit, DTMF-Signale zu empfangen und zu interpretieren, die an das System über die T1-Leitung durch den Anrufer gesendet werden. Die Audio-Ausgangs- und Audi-Eingangsanschlüsse repräsentieren die Fähigkeit der Leitungsprozessorkarten, Audiosignale über den Dialogkanal sowohl zu erzeugen als auch aufzuzeichnen. Der ASR-Anschluss, der durch die Spracherkennungskarte verwirklicht wird, führt die automatische Spracherkennung mit den Audiosignalen aus.
  • Es sei vermerkt, dass in dieser Beschreibung der Ausdruck „Anruf" in seinem allgemeinsten Sinn verwendet wird. Er umfasst nicht nur einen Anruf, der über die Telefonleitungen ankommt, sondern auch die Auslösung irgendeines Kontaktes über irgendeines der anderen Dialogmedien einschließlich der drahtlosen Dialogkanäle, Computernetzwerke, Faxkanäle usw. Daher ist das Konzept eines Anrufes nicht nur auf einen Telefonanruf begrenzt.
  • Während das beschriebene Ausführungsbeispiel eine begrenzte Anzahl von Kanälen und Anschlüssen umfasst, kann die Architektur erweitert werden, um neue Kanäle oder Anschlüsse zu handhaben, die für zukünftige Formen der Verbindung und Fähigkeiten vorgesehen sind.
  • Die vier primären Software-Komponenten seien nun in größeren Einzelheiten beschrieben.
  • Assistenten und Agenten
  • Das System ist ausgelegt, um viele unterschiedliche Arten von Agenten zu unterstützen. Alle Agenten und Assistenten basieren auf einem Gattungs-Agentenobjekt. Bevor die spezifischen Agenten dargestellt werden, die in dem System verwendet werden, sei zunächst dieser Gattungsagent beschrieben.
  • Agenten, Sitzungen und Gadgets
  • Ein Agent ist ein Software-Element, das eine Aktion ausführt oder ein bestimmtes Resultat durch einen Benutzer oder einen anderen Agenten hervorbringt. Um mit Benutzern einen Dialog zu führen, beteiligt sich ein Agent unter Verwendung von Gadgets an Dialogen. Ein Gadget ist eine Darstellung einer Dialogeinrichtung, wie z. B. Telefon, Faxgerät oder Pager. Ein Gadget umfasst eine Beschreibung der Dialogeinrichtung sowie seine Adresse. Zum Beispiel enthält ein Telefon-Gadget die Vorwahl, die Telefonnummer und den Anschluss für ein bestimmtes Telefon. Um mit einem bestimmten Benutzer über das Telefon zu kommunizieren, verwendet ein Agent das Telefon-Gadget für diesen Benutzer.
  • Um ein Gadget zu benutzen, fügt der Agent dieses einer Sitzung hinzu. Im Falle eines Telefon-Gadgets wählt die VM die Telefonnummer und führt ein aktives Gadget zu der Sitzung des Agenten zurück. Ein aktives Gadget repräsentiert die Verbindung von einer Sitzung des Agenten über ein Dialognetzwerk zu einer Kommunikationseinrichtung. Das aktive Gadget repräsentiert eine Übergangsverbindung zum ständigen Gadget. Ein aktives Gadget kann für den Dialog mit Benutzern verwendet werden, während ein Gadget selbst dies nicht kann, da es nur die Adresse und die Fähigkeiten des Gerätes speichert. Zum Beispiel spezifiziert ein Telefon-Gadget die Nummer 617-555-1212, während das aktive Gadget eine aktive Telefonleitung repräsentiert, auf der die Nummer bereits gewählt worden ist. Eine Sitzung besteht aus einer Sammlung von 0 oder mehreren aktiven Gadgets, die miteinander verbunden sind.
  • Um mit Benutzern zu kommunizieren, kann es erforderlich sein, dass Agenten aktiven Gadgets Fähigkeiten hinzufügen. Eine Fähigkeit ist eine Darstellung einer Fähigkeit oder eines Merkmals einer Einrichtung, wie z. B. die Fähigkeit, Sprache oder gespielte Audiosignale zu erkennen. Wenn z. B. ein Agent einem Benutzer Materialien zufaxen muss, so fügt er die Fax-Fähigkeit dem aktiven Gadget hinzu. Eine Erläuterung, wie die VM Fähigkeitsanforderungen von Agenten handhabt, wird später bei der Erläuterung der VM präsentiert. Für andere Ausführungsbeispiele, die eine grafische Schnittstelle umfassen, ist eine Fähigkeit vorgesehen, die Grafiken ausgibt und Grafiken eingibt, wenn welche dem Fokus des Benutzers (d. h. Maus, Auge usw.) folgen, und Eingänge von dem Benutzer sammelt.
  • Agenten können mit vielen unterschiedlichen Arten von aktiven Gadgets gleichzeitig arbeiten. Zum Beispiel kann ein Agent gleichzeitig einen ausgehenden Anruf tätigen, eine Nachricht zu einem Pager senden und eine Nachricht zu einem Faxgerät senden.
  • Benutzeragenten, Aufgaben und Moderatoren:
  • Ein Benutzeragent ist ein Agent, der in der Lage ist, sowohl mit Menschen als auch mit Gadgets einen Dialog zu führen. Benutzeragenten verwenden medienunabhängige Dialoge, um mit den Benutzern zu kommunizieren. Diese Dialoge bestehen aus einer Aufforderung des Benutzeragenten und einer Antwort des Benutzers. Wenn ein Benutzeragent mit einem Benutzer einen Dialog führt, so richtet er seine Dialoge an ein aktives Gadget, das als Fokus-Gadget bekannt ist.
  • Wenn z. B. ein Benutzeragent einen Anruf für den Benutzer mit einem aktiven Gadget tätigt und mit dem Benutzer mit einem anderen aktiven Gadget spricht, so ist das letztere Gadget das Fokus-Gadget. Andere Ausführungsbeispiele können eine Gruppe zu benutzenden Gadgets als Fokus-Gadget gruppieren. Dies würde dem Assistenten gestatten, auf die Gadget-Gruppe einzuwirken und die Einwirkung alle Gadgets der Gruppe umfassen zu lassen.
  • Benutzeragenten können auch aktive Gadgets miteinander für Telefonunterhaltungen verbinden. Wenn der Benutzeragent einen ausgehenden Anruf für den Benutzer tätigt und die angerufene Partei das Telefonat beantwortet, verbindet der Benutzeragent die zwei aktiven Gadgets miteinander und zieht sich sodann zurück. Wenn sich der Benutzeragent im Hintergrund befindet, ist er untätig; um zusätzliche Aufgaben an den Benutzeragenten zu delegieren, muss der Benutzer den Benutzeragenten zurück in den Vordergrund bringen.
  • Ein einmaliges Merkmal von Benutzeragenten ist ihre Fähigkeit Aufgaben zu handhaben. Eine Aufgabe ist eine durch einen Benutzeragenten mittels eines Benutzers auszuführende Aktion. Eine Aufgabe kann aus einer Form voller Felder bestehen, die der Agent einem Moderator gibt. Ein Moderator ist ein Objekt, das weiß, wie es in einen Dialog mit einem Benutzer über ein vorgegebenes Medium als Teil des Eintrags in die Felder einer Aufgabe eingreifen kann. Ein Agent gibt jede Aufgabe einem Moderator. Der Moderator sammelt Information für ein Feld und reicht dann die Aufgabe zurück an den Agenten. Der Agent schaut, ob ein Feld sich kürzlich verändert hat und prüft es. Zum Beispiel kann der Agent Informationen von der Datenbank anfordern und das nächste Feld in der Form einstellen. Sodann reicht der Agent die Aufgabe zurück zum Moderator und sammelt Information für das veränderte Feld. Diese Aktivität des Rück- und Hinreichens der Aufgabe zwischen dem Agenten und dem Moderator setzt sich fort, bis der Agent befriedigt ist, wenn alle geforderten Felder vollständig sind. Dann führt der Agent die Aufgabe aus.
  • 6AH veranschaulichen den Prozess der Zuordnung einer Aufgabe und der Überwachung ihres Fortschrittes. In diesem Beispiel hat ein Benutzeragent 150 für seine Sitzung 154 ein aktives Fokus-Gadget 152 erhalten, und ein Benutzer 156 hat die „Anruf"-Stimmanweisung ausgegeben (6A). In Beantwortung ordnet der Agent eine Anrufaufgabe 158 einem Telefonmoderator 160 (6B) zu. Der Moderator wirkt mit dem Benutzer über das Fokus-Gadget zusammen, um die Felder der Aufgabe (6C) auszufüllen. Der Moderator sammelt den Namen des anzurufenden Kontaktes und legt ihn im ersten Feld ab, bevor er es zurück zum Agenten reicht (6D). Der Agent vermerkt, dass dieses Feld verändert ist und sucht den Kontakt in der Objekt-Datenbank 68 auf (6E). Der Agent stellt das zweite Feld der Form ein, um die gültigen Orte, die für diesen Kontakt definiert sind, zu umfassen und reicht die Aufgabe zurück zum Moderator. Der Moderator stellt den Ort fest, an dem der Kontakt aufzurufen ist und legt ihn im zweiten Feld ab, bevor er es zurückreicht zum Agenten (6E6F). Wenn die Felder der Aufgabe einmal ausgefüllt sind, tätigt der Benutzeragent den Anruf (6H).
  • Ein Benutzeragent erhält die Liste der von einem Objekt auszuführenden Aufgaben, was als „Aufgabenstapel" bekannt ist. Wenn der Agent Pakete empfängt (kurz zu beschreiben), kann der entscheiden, Aufgaben im Aufgabenstapel als Ergebnis der Verarbeitung des Paketinhalts abzulegen. Der Benutzeragent erhält die nächste Aufgabe des Stapels und führt sie aus. Er wiederholt diesen Prozess, bis es keine Aufgaben im Stapel mehr gibt und verlässt sodann den Prozess. Beim Prozess der Ausführung einer Aufgabe kann eine andere Aufgabe auf dem Stapel abgelegt werden.
  • Eine Aufgabe ist nicht der einzige Weg, in der ein Agent mit einem Benutzer zusammenwirkt. Für ein einfaches Zusammenwirken benutzt der Agent ein C++-Verfahren. Aufgaben werden primär für komplexe Verbindungen verwendet.
  • Assistenten und elektronische Assistenten.
  • Ein Assistent ist ein Benutzeragent, der in der Lage ist, logische Entscheidungen zu treffen und komplexe Aufgaben seiner Benutzer auszuführen. Das Element, das nachstehend als elektronischer Assistent bezeichnet wird, ist ein Assistent, der Benutzer bei ihren Anrufen, Nachrichten, Kontakten und Terminplänen unterstützt. Jeder Teilnehmer besitzt einen elektronischen Assistenten. Als Beispiel einer komplexen Aufgabe, die den elektronischen Assistenten von einem gewöhnlichen Benutzeragenten unterscheidet, kann der elektronische Assistent einen Benutzer lokalisieren, indem er den Terminplan des Benutzer konsultiert und entscheidet, welche Nummern anzurufen sind.
  • Bis zu diesen Punkt sind drei unterschiedliche Klassen von Agenten diskutiert worden: Agenten, Benutzeragenten und Assistenten. Die Tabelle 1 umfasst die Unterschiede zwischen ihnen.
  • Unterschiede zwischen Agenten und Assistenten
    Figure 00250001
    Tabelle 1
  • Irgendein Agent kann logischerweise verschiedene Sitzungen gleichzeitig behandeln. Jedes Mal, wenn ein Agent eine Sitzung handhabt, gibt es einen getrennten Prozess, der für jede Sitzung abläuft. Die Meistersitzung ist die Sitzung, bei der der elektronische Assistent zu seinem Teilnehmer spricht oder versucht, seinen Teilnehmer zu lokalisieren. Es kann nie mehr als eine Meistersitzung geben, die pro Teilnehmer abläuft.
  • Schachtel, Hand und Finger
  • Bezugnehmend auf 7 verwendet der elektronische Assistent drei unterschiedliche Objekte, um die Merkmale des Benutzers zu manipulieren, nämlich eine Schachtel 170, eine Hand 180 und einen Finger 182. Die Schachtel ist ein Objekt, das alle Merkmale enthält, die zu einem Benutzer gehören. Die Hand ist ein Objekt, das die Merkmale aufweist, die der Benutzer manipuliert. Der Finger ist ein Software-Hinweis, der das momentan ausgewählte Merkmal in der Hand markiert.
  • Wenn der Teilnehmer den elektronischen Assistenten bittet, Merkmale zu „finden", wie z. B. Kontakte, dann schaut der elektronische Assistent in der Schachtel nach den Merkmalen und greift sie sodann in seiner Hand auf. Die Hand kann eine Untergruppe der Merkmale in einer Schachtel gemäß bestimmten Kriterien aufgreifen. Wenn z. B. der Teilnehmer den elektronischen Assistenten bittet, gesicherte Nachrichten aufzufinden, so findet er nur die Nachrichten, die mit einem Sicherungshinweis markiert sind.
  • Wenn der Benutzer nach dem ersten Merkmal fragt, bewegt der elektronische Assistent seinen Finger auf dieses Merkmal und wählt es aus. Wenn der Benutzer nach dem nächsten Merkmal fragt, bewegt der elektronische Assistent seinen Finger zum nächsten Merkmal in seiner Hand. Auf die Merkmale in der Hand kann in einem Ringmodus zugegriffen werden. Wenn der Finger zum letzten Merkmal in der Hand deutet und der Benutzer nach dem nächsten Merkmal fragt, so bewegt sich der Finger herum zum ersten Merkmal in der Hand.
  • Sequenzieller gegenüber wahlfreiem Zugriff auf Informationslisten
  • Die Verwendung des ersten und nächsten Merkmals gibt die Fähigkeit vor, eine Gruppe von Merkmalen in einem Reihenmodus zu überprüfen. Wenn also ein Teilnehmer seinen Assistenten instruiert, eine neue Nachricht zu finden, dann gibt die Verwendung des nächsten Merkmals und des vorangegangenen Merkmals die Möglichkeit, durch die neuen Nachrichten in Vorwärts- oder Rückwärtsbewegung zu verlaufen. Das erste Merkmal würde den Finger zurückführen, um auf den Beginn der Liste zu verweisen.
  • Zusätzlich zu dieser Form der sequenziellen Navigation durch Merkmale in einer Liste gibt das System auch Fähigkeiten vor, um auf eine Information wahlweise oder basierend auf mehreren komplexen Anfragen zuzugreifen. Zum Beispiel kann ein Teilnehmer darum bitten, die gesamte neue Nachricht eines bestimmten Kontaktes zu sehen. Der folgende Dialog:
    Finden <Was finden>
    Neue Nachrichten von <Neue Nachricht von wem>
    Bill Bishop
    würde in der Hand alle Nachrichten ablegen, die von dem Kontakt mit dem Namen Bill Bishop empfangen worden sind. Dieses Element kann auch auf die Gruppe von Merkmalen erweitert werden, die ein Teilnehmer bilden kann. Wenn ein Teilnehmer infolgedessen eine Gruppe besitzt, die „Heiße Aussichten" genannt wird, so kann der obige Dialog wiederholt werden als
    Finden <Was finden>
    Neue Nachrichten von <Neue Nachricht von wem>
    Heiße Aussichten
    und das Ergebnis wäre eine Liste von Merkmalen, die neue Nachrichten von Mitgliedern der Gruppe „Heiße Aussichten" umfasst. Zusätzlich zum Suchen nach Merkmalen eines bestimmten Kontaktes kann diese Technik verwendet werden, um Merkmale abzurufen, die als vorrangig oder dringend usw. gestempelt sind. Schließlich können alle hier beschriebenen Merkmale wahlfrei aufgesucht werde und basierend auf unterschiedlichen Attributen in der Hand gesammelt werden.
  • Kontext:
  • Die Fähigkeit, Merkmale zu finden und sie in der Hand zu sammeln, führt in das System einen Konzeptzustand ein. Dieser Zustand umfasst die laufenden Inhalte der Hand und das, worauf hingewiesen wird. Da irgendeine Anzahl von Anweisungen ausgegeben werden muss, um den Zustand zu verändern und es oft erwünscht ist, zurück zu einem der vorangegangenen Zustände zu gehen, unterstützt das System die Fähigkeit „zurückzugehen" zu den vorangegangenen Zuständen. Jedes Mal, wenn eine Veränderung im Zustand des Assistenten auftritt, wird der neue Zustand auf den vorangegangenen Zustand aufgestapelt. Die Ausgabe der Geh-zurück-Anweisung löscht den vorangegangenen Zustand des Stapels.
  • Zum Beispiel sei angenommen, dass der Assistent einen Kontakt speichert und zu demjenigen verweist, der den Namen Bill Bishop besitzt, und der Teilnehmer die folgenden Anweisungen ausgibt:
    Finden <Was finden>
    Neue Nachricht <Eine neue Nachricht von Bill Bishop>
    Was besagt sie
    Geh zurück
  • In diesem Beispiel ersetzte der Teilnehmer den Inhalt der Hand (welche einen Kontakt für Bill Bishop gehalten hat) mit einer neuen Nachricht von Bill Bishop. Nach dem Abhören der Nachricht (infolge der Ausgabe der „Was besagt sie"-Anweisung) sagt der Teilnehmer „Geh zurück". Das Ergebnis dieser Anweisung ist, dass der vorangegangene Zustand der Hand (der einzige Kontakt für Bill Bishop) erneut gespeichert wird. Der Teilnehmer kann nun diesen Kontakt für Bill Bishop manipulieren.
  • Ein anderes nützliches Werkzeug zur Verwaltung des Zustandes ist die Fähigkeit, sich auf das laufende Merkmal zu beziehen, auf das in Dialogen hingewiesen wird. Der Ausdruck „Dieses eine" wird verwendet, um auf ein Objekt zu verweisen, auf das momentan durch den Assistenten in der Hand hingewiesen wird. Das Merkmal wird ebenfalls „es" bezeichnet, so dass Anweisungen wie z. B. „Beschreibe es", „Ergänze es", „Wirf es weg", sich ebenfalls auf das laufende Merkmal beziehen. Schließlich sind die Anweisungen „Sende eine Kopie", „Sende eine Erwiderung" und „Rufe sie an" Operationen mit den laufenden Merkmalen, auf die der Finger des Assistenten verweist. Diese beziehen den Kontext und die Kraft auf ein gemeinsames Verständnis zwischen dem Teilnehmer und dem Assistenten des Kontextes. Das Ergebnis ist eine Gruppe von verdichteten Dialogen, die sich nicht explizit auf Objekte beziehen müssen, die beteiligt sein können. Andere Ausführungsbeispiele können Vorteil aus Pronomen ziehen, wie z. B. „ihn", „ihr" und „ihnen", um auf Objekte zu verweisen, auf die jüngst Bezug genommen worden ist.
  • Pakete
  • Agenten können unter Verwendung von Paketen miteinander einen Dialog führen. Ein Paket enthält die Adresse des Absenders (von), die Adresse des Empfängers (an) und Inhalte (ein vorliegendes Objekt). Der Inhalt eines Paketes kann auch ein anderes Paket sein.
  • Die VM gewährleistet die Abgabe von Paketen. Irgendwelche Pakete, die an einen Benutzer adressiert sind, werden zu der Meistersitzung für diesen Benutzer abgeliefert. Wenn keine Meistersitzung vorliegt, startet die VM eine. Sodann versucht der elektronische Assistent, den Benutzer aus der Meistersitzung zu lokalisieren. In anderen Ausführungsbeispielen können Paketadressen verteilte Schachteln und den Dialog zwischen externen Agenten unterstützen.
  • Dialog von Agent zu Agent
  • Die Tatsache, dass die VM als Verzweigungs- und Abgabemechanismus für Pakete wirkt, erlaubt eine hohe Leistung. Sie gestattet die Vermittlung von Dialogen von Agent zu Agent durch einen Mechanismus, der das Verhalten gewährleistet, dass ein Empfänger eines Paketes entweder lokalisiert oder darauf vorbereitet wird, das Paket zu empfangen. In dem beschriebenen Ausführungsbeispiel liegt der Dialog von Agent zu Agent als Dialog zwischen zwei Agenten in einer einzigen Schachtel vor. In anderen Ausführungsbeispielen, die verteilte Systeme unterstützen, kann die VM die in der (zu) Adresse eingebettete Verzweigungsinformation benutzen, um das Paket zu dem geeigneten externen oder gebündelten System zu verzweigen. Ein Agent, der an einer Küste arbeitet, kann prüfen, ob ein Agent für einen Benutzer innerhalb des Landes einen Anruf anzunehmen wünscht, und die gesamte Nachrichtenübermittlung kann über SS7 (Signalisiersystem 7 – ein Telefonnetzwerk) oder irgendein anderes Weitbereichsnetzwerk erfolgen, ohne dass ein Anruf hergestellt werden muss.
  • MMUI:
  • Die MMUI ist eine vom Medium unabhängige Schnittstelle für den Dialog mit Benutzern. Die MMUI gestattet Agenten, sich auf den Inhalt zu konzentrieren, der zu übertragen ist, anstatt auf das Format des Inhaltes und die Einzelheiten der Verwendung spezieller Einrichtungen zur Darstellung des Inhalts.
  • Der fundamentale Bildungsblock der MMUI ist ein Objekt, das hier als Meme bezeichnet ist. Eine Meme ist eine medienunabhängige Bezugnahme auf ein Informationsstück. Die Meme besteht aus einer Gruppe von Medienobjekten, die die Information in einer Vielzahl unterschiedlicher Formate speichern. Ein Media-Objekt ist ein Informationsstück, wie z. B. ein Klang, eine Textfolge oder DTMF-Folge, die einer bestimmten Art von Dialogeinrichtung dargeboten werden kann.
  • Agenten benutzen Meme und Menüs als Teil ihres Dialogs mit Benutzern. Diese Dialoge können Teil einer Aufgabe sein oder außerhalb einer Aufgabe liegen, wie z. B. von einem C++-Verfahren. Zum Beispiel muss als Teil einer Anrufaufgabe ein elektronischer Assistent den Benutzer fragen, wer anzurufen ist. Innerhalb eines Feldes der Anrufaufgabe gibt es eine "Wen anrufen"-Meme, die der Moderator an das aktive Gadget gibt. Die „Wen anrufen"-Meme besteht aus verschiedenen unterschiedlichen Medienobjekten: z. B. eine Audioaufzeichnung zur Verwendung auf dem Telefon oder eine Textfolge zur Darstellung auf dem Computermonitor. Das aktive Gadget reicht die Meme zu der VM, die basierend auf den Fähigkeiten des aktiven Gadgets die Art des Mediums auswählt. Wenn z. B. das aktive Gadget ein Telefon ist, dann wählt die VM die Audioaufzeichnung in der Meme aus, und der Benutzer hört irgendetwas wie „Wen anrufen?".
  • Die Art von Gadget ist der primäre Faktor, aber nicht der einzige, der beeinflusst, welche Art von Medium von einer vorgegebenen Meme benutzt wird. Benutzer können Präferenzen für ihre elektronischen Assistenten einstellen und Systemadministratoren und Systemintegratoren können systemweite Präferenzen einstellen, die für alle elektronischen Assistenten gelten. Zum Beispiel kann ein Benutzer verbale Ausdrücke und eine männliche Stimme für einen elektronischen Assistenten auswählen. Der Systemintegrator kann das System auf Spanisch als Default-Sprache einstellen. Diese Präferenzen sind als Attribute in der MMUI bekannt. Ein Attribut ist ein Name/Wert-Paar. Typischerweise wird ein Attribut verwendet, um das Verhalten eines aktiven Gadgets und aller MMUI-Elemente anzupassen.
  • Wenn ein elektronischer Assistent ein aktives Gadget von der VM erhält, dann stellt er die Attribute an diesem ein. Später in der Sitzung, wenn der elektronische Assistent Meme zu dem Gadget sendet (in diesem Beispiel als Teil einer Aufgabe) legen die Attribute und die Art des Gadgets fest, welches Medienobjekt in einer Meme verwendet wird. Zum Beispiel können in einem zweisprachigen Stimmensystem die Meme zwei Audiomedien-Objekte besitzen: eines mit der in Französisch aufgezeichneten Information und ein anderes mit der in Englisch aufgezeichneten Information. Wenn der Benutzer in dem vorangegangenen Beispiel das Sprachattribut auf Französisch eingestellt hat und das Geschlechtsattribut auf Männlich, wird die sich ergebende Aufforderung in Französisch mit männlicher Stimme gesprochen.
  • Ein weiterer wichtiger Bildungsblock in der MMUI ist das Mitget. Ein Midget ist ein Objekt, das für den Aufbau eines Multimedia-Dialogs verwendet wird. Ein Mitget in einer Multimedia-Benutzerschnittstelle ist analog zu einem Witget in einer grafischen Benutzerschnittstelle. Die üblichste Art eines Mitgets ist ein Menü. Bezugnehmend auf 8 ist ein Menü 180 eine Gruppe von Wahlmöglichkeiten, die einem Benutzer geboten werden können, der mehrere Medien verwendet. Ein Menü besteht aus Zeilen, die jede Auswahl beschreiben (eine Meme 182) und Spalten, die die Medien 184 beschreiben, die verwendet werden können, um die Meme in jeder Zeile darzubieten. Eine zusätzliche Spalte speichert wahlweise einen Hinweis 186 auf das entsprechende Objekt in der Datenbank, z. B. ein Kontaktobjekt. In einigen Fällen sind Spalten leer, wenn es nicht möglich oder ungeeignet ist, die Meme unter Verwendung dieser Art von Medium vorzugeben.
  • In einem typischen Dialog reicht der elektronische Assistent eine Meme und ein Menü zu dem aktiven Gadget. Die Meme wird dem Benutzer präsentiert, die Antwort des Benutzers ist an die Zeilen im Menü angepasst, und die ausgewählte Menüzeile (bekannt als Menüaufruf) und der Datenhinweis (falls vorliegend) werden zu dem elektronischen Assistenten zurückgeführt. Im Fall der Anrufaufgabe reicht z. B. der elektronische Assistent eine Meme weiter, um die Frage „Wen anrufen?" und ein Menü zu präsentieren, das die Kontaktliste des Benutzers enthält. In diesem Beispiel besitzt das MMUI-Menü vier Spalten. Die erste Spalte enthält die Textbuchstabierung des Kontaktnamens; die zweite Spalte enthält eine Zeichenkette, die die DTMF-Folge beschreibt, die als Kürzel für den Kontaktnamen verwendet werden kann; die dritte Spalte enthält das Wörterbuch, das für die Erkennung des gesprochenen Kontaktnamens verwendet wird; und die vierte Spalte enthält einen Hinweis zu der Information des Kontaktes in der Datenbank.
  • Obgleich dieses Menübeispiel vier Spalten besitzt, können Menüs mehr Spalten haben, um sich an unterschiedliche Attribute anzupassen. Zum Beispiel können in einem Anweisungsmenü wortreiche und bündige Versionen der gesprochenen Anweisung vorliegen oder Versionen, die in unterschiedlichen Sprachen gesprochen werden.
  • Einige Menüs enthalten zusätzliche Objekte, die Mogule genannt werden und ihnen hinzugefügt sind, um komplexe Medienarten zu handhaben. Ein Mogul ist ein Objekt, das eine bestimmte Art von Medium verwaltet. Ein Mogul kann medienspezifische Information speichern. Zum Beispiel ist ein Audio-Mogul der Audiomedium-Spalte eines Menüs zugefügt und speichert das Spracherkennungsvokabular, das in der Erkennungs-Hardware geladen ist. Ein Mogul kann den Inhalt bestimmter Medien in den Memen in einem Menü fortschreiben, wenn Fortschreibungen bei anderen Medien in den Memen auftreten. Zum Beispiel schreibt ein DTMF-Mogul DTMF-Medienobjekte immer dann fort, wenn sich ihre Textmedien-Gegenstücke verändern. Wenn in 8 der Teilnehmer die Aussprache von Susan Schmidt in Susan Smith verändert, so wird der DTMF-Mogul „773" in der zweiten Spalte des Menüs in „776" verändern. Medien, die durch einen Mogul fortgeschrieben anstatt durch den Benutzer gebildet zu werden, werden als Mogul-erzeugte Medien bezeichnet. DTMF-Medien sind ein Beispiel für Mogul-erzeugte Medien.
  • Der Algorithmus zum Erzeugen von DTMF für einen Namen oder eine Anweisung ist Folgender: DTMF-Anweisungen umfassen gewöhnlich wenigstens drei Ziffern. Wenn ein Wort vorliegt, werden die ersten drei Buchstaben auf den entsprechenden Telefontasten abgebildet, die diese Buchstaben besitzen. Wenn zwei Wörter vorliegen, wird der erste Buchstabe des ersten Wortes abgebildet und die zwei ersten Buchstaben des zweiten Wortes benutzt. Wenn drei Wörter vorliegen, wird der erste Buchstabe eines jeden Wortes genommen. In dem Fall, in dem drei Buchstaben nicht genug sind, da die Anweisung noch nicht eindeutig ist, wird fortgefahren, den ersten Buchstaben der nachfolgenden Wörter zu nehmen, bis sich eine eindeutige Folge ergibt.
  • 9 zeigt das Kontaktmenü, wobei der DTMF-Mogul 188 und der Audio-Mogul 190 mit ihm verbunden sind. Mogule bilden eine Art dritte Dimension für Menüs; man kann sie sich als die Tiefe eines Menüs vorstellen.
  • Die 10AD zeigen das zuvor erläuterte „Wen anrufen?"-Beispiel. Zunächst reicht der Moderator 160 eine Meme 182 und ein Menü 194 zum aktiven Gadget 152 (10A). Das Menü besitzt zwei mit ihm verbundene Mogule: einen DTMF-Mogul 196 und einen Audio-Mogul 198). Wenn die VM das Menü empfängt, entpackt sie das in dem Audio-Mogul gespeicherte Vokabular und lädt es in die Erkennungs-Hardware. Da das aktive Gadget ein Telefon mit Spracherkennungsfähigkeiten ist, hört der Teilnehmer den elektronischen Assistenten sagen: „Wen anrufen" (10B). Wenn der Teilnehmer mit „Susan Schmidt" antwortet (10C), benutzt die Erkennungs-Hardware das Vokabular, um eine Übereinstimmung im Kontaktmenü zu finden, und führt den Menüaufruf zum elektronischen Assistenten zurück (10D).
  • Meme sind oftmals miteinander in einer Meme-Liste verkettet, um eine vollständige Feststellung zu bilden. Der Agent oder der Moderator kann eine einzelne Meme oder eine Meme-Liste dem aktiven Gadget weiterreichen. Wenn eine Meme-Liste dem aktiven Gadget weitergereicht wird, werden die Meme in der Reihenfolge wiedergegeben, in der sie aufgelistet sind.
  • Nützlichkeitsagenten.
  • Der Paketmechanismus liefert eine Kommunikationsweise zwischen Agenten und Sitzungen. Nützlichkeitsagenten führen Aktionen mittels des elektronischen Assistenten aus, wie z. B. die Zustellung von Nachrichten, das Planen von Erinnerungen und die Beantwortung von nicht zugeordneten Telefonleitungen. Es gibt verschiedene unterschiedliche Arten von Nützlichkeitsagenten, die einen Postmeister-Agenten, verschiedene Kurier-Agenten, einen Cron-Agenten und einen Geheimnis-Agenten umfassen.
  • Der Postmeister-Agent ist ein Agent, der Nachrichten von elektronischen Assistenten empfängt und sie an geeignete Kurier-Agenten für die Zustellung verteilt. Die Kurier- Agenten sind Agenten, die Nachrichten vom Postmeister-Agenten empfangen und sie an ihr Ziel bringen. Der Nachrichtenspeicher ist ein Teil der Objektdatenbank, die die ein- und ausgehenden Nachrichten für alle Personen enthält.
  • Wenn unter Bezugnahme auf 11 der elektronische Assistent 156 von Susan eine Nachricht 200 für die Ablieferung hinterlegt, packt der Paketmechanismus eine Referenz zu der Nachricht in ein Paket 202 und sendet es zu dem Postmeister-Agenten 204. Der Paketmechanismus setzt ebenfalls die Nachricht im Nachrichtenspeicher 206 in den geeigneten Abschnitt des Benutzers. Der Postmeister-Agent 204 packt seinerseits einen Keim 208 in ein Paket 210 und sendet es zu dem elektronischen Assistenten. Ein Keim ist eine Quittung, die durch den Postmeister-Agenten ausgegeben wird und die von einem elektronischen Assistenten verwendet werden kann, um den Zustellstatus der Nachricht zu überprüfen.
  • Wenn der Postmeister-Agent Nachrichten zur Abgabe empfängt, wählt er den geeigneten Kurier-Agenten 212 aus, der sie abliefern soll. Unterschiedliche Gadgets erfordern unterschiedliche Kurier-Agenten. Zum Beispiel liefert der System-Kurier-Agent Nachrichten für elektronische Assistenten ab, und ein SkyTelTM-Kurier-Agent liefert Nachrichten an SkyTel-Pager ab. Wenn der Postmeister-Agent eine Nachricht zum System-Kurier-Agenten gibt, so sendet er ein „Aufweck"-Paket 214 an den elektronischen Assistenten 216 von John, um ihn über die neue Nachricht zu informieren. Der elektronische Assistent des Benutzers sucht die Nachricht aus dem Nachrichtenspeicher wieder auf.
  • Wenn der Kurier-Agent die Nachricht nicht abliefern konnte, holt er das die Referenz auf die Nachricht enthaltende Paket zum Postmeister zurück. In Abhängigkeit von der Anzahl der für die Nachricht erlaubten Versuche kann der Postmeister den Kurier-Agenten bitten, die Ablieferung zu versuchen oder sie als fehlgeschlagen zu markieren.
  • Cron Agent:
  • Der Cron-Agent ist ein Agent, der Erinnerungen von Agenten empfängt, sie verfolgt, bis sie für die Abgabe geplant sind, und dann an die Agenten abliefert. Der Cron-Agent kann auch andere Merkmale verfolgen. Daher kann das Paket tatsächlich irgendein Datenbankobjekt enthalten und nicht nur eine Erinnerung.
  • Wenn unter Bezugnahme auf 12 ein elektronischer Assistent 150 eine Erinnerung für die Ablieferung ablegt, so bildet er ein Paket 220, das eine Erinnerung 222 enthält, und das Paket ist sowohl vom als auch für den Benutzer. Als Nächstes nimmt er dieses Paket und legt es in einem anderen Paket 224 ab, das von dem Benutzer an den Cron-Agenten adressiert ist. Dieses letztere Paket wird an einen Cron-Agenten 226 abgegeben. Wenn der Cron-Agent dieses Paket empfängt, entpackt er das Paket innerhalb von sich selbst. Er legt dann das Paket in einer Warteschlange 228 in einer zeitlich sortierten Reihenfolge mit anderen Paketen ab und verfolgt, wann diese Erinnerung abgeliefert werden soll. Wenn die Zeit kommt, sendet er dieses innere Paket zurück zum elektronischen Assistenten.
  • Objektdatenbank
  • Die Objektdatenbank ist eine objektorientierte Datenbank, d. h. eine Datenbank, die Objektstrukturen und direkte Beziehungen enthält, anstatt diese zu glätten und zu rekonstruieren. Die Objektdatenbank speichert alle Informationen, die sowohl die Benutzer als auch das System während der Sitzungen benötigen. Wenn z. B. ein Benutzer einen neuen Kontakt aufbaut, so speichert der elektronische Assistent diesen in der Objektdatenbank. Wenn der elektronische Assistent zu einem Benutzer spricht, verwendet er im Voraus aufgezeichnete Medienobjekte, die in der Objektdatenbank gespeichert sind.
  • Die Objektdatenbank speichert die Informationen eines Benutzers unter Verwendung von drei unterschiedlichen Objekten: einem Schachtelobjekt, einem Nachrichtenspeicher-Objekt und einem Benutzerobjekt. Das Schachtelobjekt und der Nachrichtenspeicher wurden zuvor erwähnt. Das Benutzerobjekt beschreibt einen Teilnehmer oder eine Person.
  • Bezugnehmend auf 13 speichert die Objektdatenbank für jeden Assistenten des Teilnehmers eine Schachtel 230, die enthält: einen Hinweis 232 zum Benutzerobjekt 234, das den Teilnehmer beschreibt; eine Kontaktliste 236, die ein MMUI-Menü ist, das alle Kontakte des Benutzers enthält; und einen Hinweis 238 zu dem Abschnitt des Nachrichtenspeichers 206, der die Nachrichten des Benutzers enthält. Die Kontaktliste wird mit Anweisungen des elektronischen Assistenten, wie z. B. „Anrufen" und „Sende Voice-Mail" verwendet, wobei vom Benutzer erwartet wird, dass er einen Kontakt spezifiziert.
  • Ein gespeicherter Kontakt kann ebenfalls einen Hinweis zu einer Notiz (z. B. eine gesprochene Nachricht) umfassen, die der Teilnehmer erzeugen und dem Kontakt hinzufügen kann. Wenn der Teilnehmer seinen elektronischen Assistenten instruiert, den Kontakt aufzurufen, kann er den elektronischen Assistenten auch die Nachricht zurückspielen lassen, während der elektronische Assistent die Verbindung zu errichten versucht. Die Notiz kann Informationen über den Kontakt umfassen, an die der Teilnehmer immer dann erinnert werden will, wenn er diesen Kontakt aufruft. Zum Beispiel kann er den Namen der Sekretärin des Kontaktes zu kennen wünschen, so dass er sie mit dem Namen ansprechen kann, wenn er am Telefon antwortet.
  • Bezugnehmend auf 14 enthält die Datenbank eine einzige Definition für jeden Benutzer im System, der als Benutzerobjekt 234 bekannt ist. Das Benutzerobjekt legt das Passwort, das Geschlecht und den Terminplan des Benutzers fest. Es enthält auch einen Hinweis 240 auf die Kontaktliste 236 in der Schachtel 230, eine Liste von Orten 242 (d. h. Heim, Arbeit, Auto, mobil, andere Orte, Pager), eine Liste von Gruppen 244 und eine Liste von irgendwelchen Erinnerungen 246, die der Teilnehmer erzeugt hat.
  • In der Datenbank besteht ein Personenkontakt aus einer Bezugnahme auf ein Benutzerobjekt plus lokale Informationen, z. B. die Art und Weise, wie der Benutzer den Namen des Kontaktes ausspricht und eine Priorität. Daher verweist nicht nur die Schachtel zu einem Benutzerobjekt, sondern jeder Personenkontakt in der Kontaktliste in einer Schachtel verweist zu einem Benutzerobjekt. Ein Gruppenkontakt besteht aus einer Gruppe von Objekt-IDs für Benutzerobjekte. Ein Ortskontakt besteht aus einem Telefon-Gadget und einem Fax-Gadget.
  • Bezugnehmend auf 15 enthält die Objektdatenbank auch Telefonbuchobjekte 250. Ein Telefonbuch ist eine Liste anderer Teilnehmer des Systems und besteht aus einer Gruppe von Hinweisen 252 zu Benutzerobjekten. Es kann eines oder mehrere Telefonbücher geben, aber jeder Teilnehmer kann nur auf ein Telefonbuch zugreifen. Jeder Eintrag in einem Telefonbuch ist eine Bezugnahme auf eines der Benutzerobjekte. In gleicher Weise besteht ein Kontakt 254 des Benutzers aus einer Bezugnahme 256 zu einem Benutzerobjekt plus irgendeine lokale Information.
  • Wenn ein Benutzer den Teil eines Kontaktes verändert, der im Benutzerobjekt gespeichert ist, wie z. B. die Telefonnummer bei der Arbeit oder zu Hause, dann zeigen alle Telefonbücher und Kontakte, die auf dieses Benutzerobjekt Bezug nehmen, die neue Information. Für jedes Benutzermerkmal weist die Objektdatenbank ebenfalls allgemeine Informationen auf, die für den Zugriff auf dieses Merkmal erforderlich sind. Diese Informationen umfassen die Objekt-ID, die Objektbezeichnung, den Besitzer, den Zeitpunkt der letzten Modifikation, den Zeitpunkt des letzten Zugriffs und den Zeitpunkt der letzten Änderung der Eigentümerschaft. Die Objektbezeichnung ist eine Meme, die die gesprochenen und buchstabierten Namen des Merkmals umfassen kann. Jedes Merkmal besitzt auch eine Gruppe von zugeordneten Hinweisen, wie z. B. „gelesen", „nicht gelesen", „wichtig" und „nicht wichtig".
  • Virtuelle Maschine
  • Die virtuelle Maschine ist das Betriebssystem des Systems und ein Prozess, der Systemressourcen für Agenten und Assistenten zuteilt und verwaltet. Die VM antwortet auf Anforderungen von Agentensitzungen (ebenso wie ein Betriebssystem auf Systemanrufe antwortet) und auf Ereignisse, die durch die Hardware erzeugt werden. Im Wesentlichen ist die VM ein großer Ereignisprozessor. Die VM initiiert alle E/A-Operationen einschließlich des Eingangs (Aufzeichnung von Memen), des Ausgangs (Abspielen von Memen) und der Erkennung (Spracherkennung oder DTMF). Zusätzlich initiiert die VM Verbindungen zu Gadgets, trennt Verbindungen zu Gadgets und handhabt eingehende Verbindungen.
  • Handhabung von Ereignissen:
  • Bezugnehmend auf 16 antwortet die VM 70 auf drei Arten von Ereignissen: Interprozess-Dialog (IPC)-Nachrichten 260 von Agentensitzungen 262; Hardware-Ereignisse 264 von den Dialogkarten und anderer Hardware 266 und Zeitgeberereignisse 268 von ihrer internen Zeitgeber-Warteschlange. Jede durch einen Agenten getätigte Aktion führt zu einer IPC-Nachricht an die VM. Die VM empfängt dieses „Ereignis" und führt die Anforderung aus. Die VM kann IPC-Nachrichten zurück zur Agentensitzung lenken, um mit ihr zu kommunizieren. Die VM überträgt Pakete unter Verwendung von IPC-Nachrichten. Wenn z. B. ein Agent ein Paket zu einem anderen Agenten sendet, dann sendet der erste Agent eine IPC-Nachricht an die VM, und infolgedessen richtet die VM die IPC-Nachricht an den zweiten Agenten.
  • Ein Ausgang zu und ein Eingang von der Hardware ruft ein Hardware-Ereignis hervor. Wenn z. B. ein Anrufer mit dem Sprechen beginnt, tritt ein Hardware-Ereignis auf.
  • Objekte innerhalb der VM können Zeitabläufe als Teil der Behandlung anderer Ereignisse vorgeben. Diese Ereignisse werden in einer Zeit-Warteschlange abgelegt, und wenn die Zeit abgelaufen ist, tritt ein Zeitgeber-Ereignis auf, das die VM wie irgendein anderes Ereignis behandelt. Wenn z. B. ein Benutzer DTMF-Töne niederdrückt, läuft der Zeitgeber aus, wenn eine lange Pause zwischen den Tönen vorliegt.
  • Die VM muss Ereignisse rasch und effizient handhaben, um eine schnelle Antwortzeit auf Agentenanforderungen vorzugeben. Die VM hört auf Ereignisse, und wenn eines auftritt, blockiert sie jegliche andere Aktivität und antwortet auf dieses. Wenn sie die Handhabung eines Ereignisses beendet hat, horcht sie nach dem nächsten Ereignis.
  • Nachdem die VM eine Sitzung gebildet hat, sendet die Sitzung eine IPC-Verbindungsanforderung an die VM. Ein VMHörer-Objekt 310 in der VM empfängt diese Verbindungsanforderung, und die VM bildet ein VMServer-Objekt 312 für diese Sitzung zur Verwendung im Dialog mit der VM. Es ist das VMServer-Objekt, das die IPC-Nachrichten von der Sitzung des Agenten empfängt, wie dies in 17 gezeigt ist. Das VMServer-Objekt nimmt die Objekt-ID und führt eine Algorithmus mit ihr aus, um das geeignete RPC-Ziel (VM-Sitzung 314 oder VM-Kanal 280) in der VM zu erhalten. Das VMServer-Objekt reicht sodann die Nachricht zu der richtigen VM-Sitzung oder dem richtigen VM-Kanal. Um dies zu tun, ruft der VMServer die virtuelle Mitgliedsfunktion do_rpc des RPC-Zieles auf, und das RPC-Ziel verarbeitet die Nachricht und führt die Operation aus.
  • Jede Agentensitzung besitzt ein entsprechendes VM-Sitzungsobjekt 314 in der VM. Das VM-Sitzungsobjekt speichert den laufenden Status der Sitzung. Dieses Objekt bringt auch Pakete in eine Warteschlange, die für den Agenten bestimmt sind, wenn für den Agenten keine Sitzung abläuft. Wenn eine Sitzung erneut abläuft, sendet es die Pakete.
  • Irgendein VM-Objekt kann ein Zeitgeber-Objekt bilden, um einen Zeitablauf einzustellen. Die VM speichert Zeitgeber-Objekte in ihrer Zeitgeber-Warteschlange 288, und wenn der Zeitgeber abgelaufen ist, tritt ein Zeitgeber-Ereignis auf, das die VM wie irgendein anderes Ereignis behandelt.
  • Verwaltung von Ressourcen
  • Die VM verwaltet verschiedene Arten von Ressourcen: jene, die direkt durch Agenten manipuliert werden können, jene, die indirekt durch Agenten manipuliert werden können, und jene, die sich innerhalb der VM befinden. 17 zeigt diese Ressourcen in der VM, wobei es zwei aktive Agentensitzungen und eine Konferenz zwischen den Sitzungen gibt.
  • Agenten können direkt Sitzungen, Kanäle, Konferenzen und Pakete manipulieren. Für jede Agentensitzung besitzt die VM einen Dialogkanal für IPC-Nachrichten und ein Objekt, das den Zustand der Sitzung verfolgt.
  • Jedes aktive Gadget in einer Agentensitzung entspricht einem Kanal 280 in der VM. Wie zuvor vermerkt, kann ein Kanal eine Gruppe mit ihm verbundener Anschlüsse 282 besitzen, wobei jeder Anschluss eine oder mehrere Fähigkeiten vorgibt. Eine Fähigkeit ist eine Darstellung einer Fähigkeit oder eines Merkmals oder eines Kanals, wie z. B. die Fähigkeit, Sprache zu erkennen oder Audiosignale abzuspielen. Agenten fordern Fähigkeiten von der VM an, um mit ihren Benutzern einen Dialog zu führen. Als Antwort fügt der Kanal einen oder mehrere Anschlüsse hinzu, wobei jede Fähigkeit einem oder mehreren Anschlüssen entspricht.
  • Eine Konferenz 284 ist ein Objekt, das mehrere Kanäle in einer einzigen Sitzung oder mehreren Sitzungen verwenden kann. Um r. B. eine Konferenzschaltung einzurichten, führt ein elektronischer Assistent Anrufe zu jedem Teilnehmer und verwendet sodann ein Konferenz-Objekt, um die Kanäle der Teilnehmer in einer einzigen Sitzung zu verbinden.
  • Für jedes durch einen Agenten gesendete Paket überträgt die VM dieses und verbindet es, falls erforderlich, in einer Warteschlange.
  • Durch die Manipulation von Fähigkeiten können Agenten indirekt Anschlüsse manipulieren. Ein Anschluss ist ein Objekt, das sich auf eine Ein-/Ausgangseinrichtung bezieht. Ein Kanal bildet einen oder mehrere Anschlüsse für jede durch den elektronischen Assistenten geforderte Fähigkeit und verwaltet die Anschlüsse durch die Verbindung. Der Anschluss ist an die Hardware-Einrichtung 286 angeschlossen, die tatsächlich die Fähigkeit besitzt. Anschlüsse kann man sich auch als Filter vorstellen. Zum Beispiel ist ein Spracherkennungsanschluss kein Audioanschluss; er nimmt Audiosignale auf und wandelt sie dann (d. h., filtert sie) in einer Menü-Auswahl.
  • Die VM besitzt ebenfalls interne Ressourcen einschließlich Zeitgeber 288, einen Bus 300 und Benutzer-Informationsobjekte 302. Ein Zeitgeber ist ein Objekt, das einen Zeitablauf darstellt. Zum Beispiel wird ein Zeitgeber-Objekt eingestellt für die Zeit zwischen DTMF-Tasten und der Zeit zwischen dem Wiederaufsuchen eines Paketes und seinem tatsächlichen Empfang. Ein Bus ist ein Objekt, das einen Daten- und Steuer-Hardware-Bus darstellt, wie z. B. MVIP-Bus oder ein TCP/IP-Bus. Alle an den Bus angeschlossenen Objekte können miteinander einen Dialog ausführen, wobei das gleiche Protokoll verwendet wird. Ein Benutzer-Informationsobjekt ist ein gepufferter Hinweis zu dem Benutzerobjekt in der Objektdatenbank. Ein Benutzer-Informationsobjekt wird für jeden Benutzer gebildet, der seine Assistenten aufruft und verriegelt einloggt.
  • Die VM teilt Sitzungen zu und trennt diese, wie es benötigt wird. Wenn ein eingehender Anruf ankommt oder ein Paket an einen Benutzer abgeliefert wird, der nicht bereits eine Meistersitzung aufweist, startet die VM eine neue Sitzung.
  • Ein Ressourcen-Manager in der VM führt Ressourcen-Verwaltungsfunktionen aus. Zum Beispiel hält er einen Pool von freien und verfügbaren Kenntnisnehmern und ein- und ausgehenden interaktiven Ressourcen 304. Er verwaltet die Zuordnung und Abtrennung dieser Ressourcen und teilt Anforderern mit, wenn Ressourcen (z. B. Kanäle) nicht verfügbar sind. Er hält auch Reservierungen für Ressourcen bereit, wenn sie momentan nicht verfügbar sind, und sobald eine angeforderte Ressource frei wird, ordnet er sie der anfordernden Sitzung zu. Er trennt auch die ein- und ausgehenden interaktiven Anschlüsse und die Erkennungsanschlüsse ab, wenn sie nicht mehr für einen Kanal benötigt werden, wodurch sie für die Verwendung durch andere Kanäle frei werden.
  • Konferenz-Objekte:
  • Konferenz-Objekte werden durch einen Agenten und die VM benutzt, um mehrere Gadgets und ihre entsprechenden Kanäle miteinander zu verbinden. Der Agent und die VM besitzen geringfügig unterschiedliche Betrachtungen eines Konferenz-Objektes. Die Agenten sehen nur die aktiven Gadgets, die der Agent steuert, während die VM alle aktiven Gadgets und ihre entsprechenden Kanäle sieht, die in einer Konferenz verbunden sind.
  • Die Verfahren mit Konferenz-Objekten sind in der folgenden Tabelle aufgelistet und beschrieben.
  • Figure 00420001
  • In dem beschriebenen Ausführungsbeispiel sind aktive Gadgets immer mit einem Konferenz-Objekt verbunden. In dem Fall, in dem es nur ein aktives Gadget gibt, z. B. wenn ein Teilnehmer oder ein Anrufer sich mit einem elektronischen Assistenten unterhält, ist das aktive Gadget mit einer speziellen Form der Konferenz verbunden, die als „untätige Konferenz" bezeichnet wird.
  • Zuteilung von Kanälen und Anschlüssen.
  • Um die Zuteilung von Sitzungen zu beschleunigen, hält die VM einen Sitzungspool 308, der Sitzungen enthält, die noch nicht Benutzern zugeteilt sind. Wie bereits vermerkt, handhabt der elektronische Assistent einen ankommenden Anrufer unter Verwendung einer neuen Sitzung. Die VM teilt diese Sitzung aus ihrem Sitzungspool zu. Die VM bildet den Sitzungspool bei der System-Anlaufzeit und füllt ihn neu aus falls ertorderlich. Jede Sitzung im Pool ist für einen spezifischen Typ von Agenten.
  • Die VM enthält ebenfalls Kanalressourcen, die Pools von Kanälen oder Anschlüssen sind, die die VM aktiven Gadgets zuteilen kann. Die Kanalressource oder Anschlussressource ist verantwortlich für die Verwaltung der Zuteilungen und Trennungen von und aus dem Pool.
  • Bei dem beschriebenen Ausführungsbeispiel bildet beim Start des Systems die VM die Kanäle, die erforderlich sind, um Dialoge über die durch das System gestützten Schnittstellen zu handhaben. Die aufgebauten Kanäle besitzen drei mögliche Betriebsweisen: eine Hörmodus, einen Leerlaufmodus oder einen abgehenden Anruf-Modus. Im Hörmodus überwacht die zugeordnete Schnittstellenkarte die eingehende Leitung (z. B. die T1-Leitung) auf eingehende Anrufe. Im Abgangsmodus ist die Schnittstellenkarte eingestellt, um eine Verbindung zu ihrem Dialogkanal zu initiieren. Der Leerlaufmodus wird während Umschaltungen verwendet. Beim Start werden alle aufgebauten Kanälen in einen Hörmodus versetzt, um für den Empfang eines eingehenden Anrufes bereit zu sein.
  • Wie in den 18AB veranschaulicht, erhält, wenn ein Agent 150 ein Gadget 336 zu einer Sitzung hinzufügt, die VM einen Kanal 280 (18A). Sie stellt eine Verbindung auf dem Kanal her und bildet ein aktives Gadget 152 (18B), das dem Kanal zugeordnet ist. Der Kanal repräsentiert die aktuelle Verbindung, die verwendet wird, um mit dem Benutzer einen Dialog zu führen.
  • Agenten können den Gadgets Eingangs-, Ausgangs- und Erkennungsfähigkeiten hinzufügen, und die VM fügt dem Kanal Anschlüsse mit diesen Fähigkeiten hinzu. Es gibt drei Arten von Anschlüssen: Eingangsanschlüsse, Ausgangsanschlüsse und Erkennungsanschlüsse. Ein Eingangsanschluss zeichnet Audiosignale in einer Meme auf. Ein Ausgangsanschluss spielt Audiosignale von einer Meme ab. Ein Erkennungsanschluss benutzt einen Eingang des Benutzers, um eine Auswahl aus einem Menü zu treffen.
  • Jeder Anschluss repräsentiert eine Fähigkeit einer physikalischen Einrichtung, wie z. B. einer Leitungsverarbeitungs-Karte oder einer Stimmerkennungs-Schnittstellenkarte. Wenn die VM Anschlüsse für eine vorgegebene Fähigkeit hinzufügt, fügt sie gewöhnlich mehr als einen Anschluss hinzu. Wenn z. B. in dem beschriebenen Ausführungsbeispiel ein Agent die Erkennungsfähigkeit anfordert, fügt die VM einen Stimmerkennungsanschluss für die Spracherkennung und einen DTMF-Erkennungsanschluss für die Erkennung von DTMF-Tönen hinzu. Wenn der Agent die Ausgangsfähigkeit anfordert, fügt die VM mehrere Ausgangsanschlüsse hinzu, wobei jeder Anschluss ein unterschiedliches Audioformat handhabt. Dies gestattet eine transparente Unterstützung für Hardware, die verschiedene Audioformate verwendet.
  • Darstellung von Memen und Menüs:
  • Wenn der Agent den Benutzer mit Memen und Menüs anspricht, antwortet jeder Anschluss dem Medium oder Mogul, von dem es weiß, wie es abzuspielen oder zu erkennen ist. Zum Beispiel spielt der Ausgangsanschluss irgendwelche Audiomedien für Systemaufforderungen ab, während der Erkennungsanschluss Spracherkennung ausführt, um die Auswahl des Benutzers aus einem Menü festzustellen. Für jeden Kanal wird nur eine Art von Medium von jeder Meme dargeboten. Wenn Meme dargeboten werden, kann nur ein Ausgangsanschluss eine Meme zu einem bestimmten Zeitpunkt vorgeben. Beim Analysieren einer Antwort können jedoch mehrere Erkennungsanschlüsse zur gleichen Zeit hören; z. B. kann einer auf Sprache horchen und der andere auf DTMF-Töne. Wenn DTMF-Töne auftreten, hebt der DTMF-Erkennungsanschluss den Spracherkennungsanschluss auf, der nach Sprache horchte. Ebenso hebt er, wenn Sprache zuerst auftritt, den DTMF-Erkennungsanschluss auf.
  • Zum Beispiel sei das zuvor erläuterte Meme „Wen anrufen?" betrachtet. Wenn unter Bezugnahme auf 19 der Moderator 160 das Meme „Wen anrufen?" 192 und das Kontaktmenü 194 zum aktiven Gadget 152 weiterreicht, präsentiert die VM das Meme sämtlichen Anschlüssen 282, die mit dem Kanal 280 verbunden sind. Der Audio-Ausgangsanschluss weiß, wie dieses Meme abzuspielen ist, so dass er das Meme nimmt und abspielt. Als Nächstes präsentiert die VM das Menü sämtlicher Anschlüsse, die mit dem Kanal verbunden sind. Sowohl die DTMF- als auch die VPC-Erkennungsanschlüsse wissen, wie dieses Menü zu benutzen ist, so dass sie es nehmen und auf DTMF-Töne oder Sprache (je nachdem) zu hören beginnen. Wenn der VPC-Erkennungsanschluss einmal Sprache feststellt, so hebt er den DTMF-Erkennungsanschluss auf, passt die Sprache an das Menü an und führt den Menüaufruf an den Moderator zurück.
  • Wenn die VM eine Memenliste einer Auswahl von Anschlüssen präsentiert, schaut jeder Ausgangsanschluss nach dem ersten Meme in der Liste und nach irgendwelchen nachfolgenden Memen, die das gleiche Audioformat besitzen. Wenn ein Ausgangsanschluss die Meme abspielen kann, entfernt er sie von der Memenliste, spielt die Memen der Reihe nach ab und führt den Rest der Liste zur VM zurück. Die VM präsentiert den Rest der Liste erneut den Anschlüssen, und der Prozess setzt sich fort, bis keine Meme mehr auf der Memenliste verbleibt.
  • Schaltkanäle
  • Die VM ist auch verantwortlich für das Verbinden und Schalten von Anrufen. Sie verfolgt alle Verbindungen zwischen Gadgets und benutzt das Konferenz-Objekt, um Anrufe zu verbinden und zu schalten. Ein Konferenz-Objekt kann mehrere Kanäle in einer einzigen Sitzung verbinden. Um z. B. einen Konferenzanruf zu arrangieren, stellt ein elektronischer Assistent Anrufe zu jedem Teilnehmer durch und verwendet sodann das Konferenz-Objekt, um die Kanäle der Teilnehmer in einer einzigen Sitzung zu verbinden.
  • Detaillierte Architektur und interner Entwurt von Agenten
  • Dies Systemagenten benutzen eine Vielzahl von Anwendungs-Dienstleistungen, um ihre Pflichten auszuführen. 20 zeigt die Funktionsbeziehungen zwischen den Agenten und dieser Anwendungs-Dienstleistungen.
  • Aufgaben 350 sind Teil einer Assistenten-Ebene 352, aber sie werden nicht durch die Einrichtungsagenten 354 benutzt. Der Assistent benutzt die MMUI 356, Pakete 358, Datenbankeinrichtungen 360 und verschiedene Einrichtungen 362, welche ihrerseits von der VM 364 und der Objektdatenbank 366 abhängen. Datenbankeinrichtungen sind eine Gruppe von Makros für den Zugriff auf die Datenbank, während verschiedene Einrichtungen eine Gruppe von Standard-Datenstrukturen und -behältern sind (z. B. Zeichenketten und Bit-Anordnungen). Die Einrichtungsagenten benutzen Pakete und Datenbankeinrichtungen und andere VM-Dienstleistungen (z. B. Zugriff zu Kanälen, Gadgets und aktive Gadgets), um ihre Pflichten auszuführen. Der Paketmechanismus ist sowohl auf die VM als auch auf die Datenbankeinrichtungen aufgeschichtet. Obgleich das Funktionsdiagramm die Beziehung der Agenten mit der restlichen Architektur zeigt, zeigt es nicht die Dynamik einer Life-Sitzung.
  • 21 zeigt ein Beispiel einer Assistentensitzung. Am Boden der Sitzung werden die MMUI-, die VM- und Paket-Bibliotheken 368, 370 und 372 hereinverbunden. Das aktive Gadget 374, das der Assistent verwendet, um mit dem Benutzer einen Dialog zu führen, ist direkt auf die Oberseite des Kanals 376 aufgeschichtet. Wenn der Assistent eine Aufgabe 377 von der Aufgabenliste 378 nimmt, können die Aufgabe und der Moderator 380 Menüs 382 und Memen 384 an den aktiven Kanal weiterreichen oder Pakete senden. In jedem Fall sendet die VM-Bibliothek eine IPC-Nachricht 386 an die VM, und die VM führt die Aktion aus. Als Teil der Ausführung der Aktionen des Assistenten kann die VM IPC-Nachrichten zurück zur Sitzung senden. Die VM-Bibliothek wandelt diese Nachrichten in Objekte zurück, mit denen der Assistent vertraut ist. Die Aufgabe kann Menüaufrufe, Memen und Pakete zum Assistenten zurückführen.
  • Wie zuvor vermerkt, gibt es konzeptionell drei Arten von Agenten, nämlich Agenten, Benutzeragenten und Assistenten. In der Klassenhierarchie besitzen jedoch nur Agenten und Assistenten Klassen; Benutzeragenten besitzen keine Klasse.
  • Die Agentenklasse 198 ist die Basisklasse für alle Agenten und Assistenten. 22 zeigt die Agentenklasse und andere eng verwandte Klassen einschließlich Sitzungs-, aktives-Gadget-, Paket- und Aufgabenklassen. Es gibt ebenfalls eine Klasse „beständiger Agent", welche die beständigen Daten für einen Agenten speichert. (In 22 repräsentieren durchgezogene Linien Unterklassen, und gestrichelte Linien repräsentieren Freund-Klassen.) Allgemein werden die wichtigsten Operationen, die von einem Agenten ausgeführt werden, durch die Sitzung, den Agenten oder das aktive Gadget ausgeführt, wie dies in Tab. 3 wiedergegeben wird.
  • Figure 00470001
    Tabelle 3
  • Die folgenden Unterabschnitte beschreiben die Klassen des Sitzungsagenten, des aktiven Gadgets, des beständigen Agenten, der Aufgabe, des Paketes und des Paketinhaltes in näheren Einzelheiten.
  • Die Sitzungsklasse:
  • Die Sitzungsklasse ist eine Unterklasse der Client-Klasse, die sie mit der Fähigkeit versieht, ein RPC-Client in der VM zu sein. Die Sitzung liefert den Ausführungsfaden für den Agenten und verfolgt die Interprozess-Kommunikations (IPC)-Verbindung zu dem VM-Server-Prozess.
  • Die Sitzungsklasse besteht aus den folgenden Datenelementen:
    • – eine Buchse, welche für eine Dialog mit dem VM-Server-Prozess (von der Client-Klasse geerbt) verwendet wird
    • – eine Objekt-ID (von der Client-Klasse geerbt)
    • – ein Hinweis auf sich selbst (von der Client-Klasse geerbt)
    • – eine Referenz zu dem Benutzerobjekt
    • – ein Hinweis auf den Fokus-Gadget
    • – eine Liste von Gadgets
    • – eine Liste von Paketen
  • Die Sitzungsklasse enthält Mitgliedsfunktionen für:
    • – Verwaltung von Gadgets. Die Gruppe umfasst Funktionen zum Hinzufügen, Entfernen und Verbinden von Gadgets und Holen und Einstellen des Fokus-Gadgets.
    • – Handhabung von Paketen. Die Gruppe umfasst Funktionen zum Senden von Paketen, Wiederaufsuchen von Paketen, Antworten auf Pakete und Bildung von Warteschlangen für Pakete.
    • – Die Bildung einer Meistersitzung aus der laufenden Sitrung.
  • Die Agentenklasse:
  • Die Agentenklasse ist eine Unterklasse sowohl der getippten als auch der Pakethandhabungs-Klassen. Die getippte Klasse ist die primäre Basisklasse. Sie liefert eine Laufzeitüberprüfung und Mitgliedsfunktionen für das Verwerten von Objekten. Die Pakethandhabungs-Klasse ist eine Basis-Verteilerklasse für die Handhabung von Paketen und gibt Agenten die Fähigkeit, miteinander unter Verwendung von Paketen zu kommunizieren.
  • Die Agentenklasse besteht aus den folgenden Datenmitgliedern:
    • – ein Name (geerbt von getippt)
    • – eine Typ-ID (geerbt von getippt)
    • – ein Hinweis zu der Sitrung (geerbt von Pakethandhabung)
    • – ein Zeitablauf (geerbt von Pakethandhabung)
    • – ein Aufgabenstapel, der eine verbundene Liste von Aufgabenobjekten enthält, die durch den Agenten auszuführen sind
    • – ein Hinweis zum aktiven Gadget
    • – ein Hinweis zum beständigen Agenten
  • Die Agentenklasse enthält Mitgliedsfunktionen für:
    • – Handhabung von Aufgaben. Diese Gruppe umfasst Funktionen zum Hinzufügen von Aufgaben, Entfernen von Aufgaben, Holen der nächsten Aufgabe vom Aufgabenstapel, Ausführen einer Aufgabe, Bearbeitung einer Aufgabe und Streichen einer Aufgabe.
    • – Rückführung des aktiven Gadgets und des beständigen Agenten.
    • – Handhabung von jeder Art von Paketinhalt (Paketinhalts-Klasse). Diese Mitgliedsfunktionen werden von der Pakethandhabungs-Klasse geerbt.
  • Jede Unterklasse des Agenten enthält irgendwelche Objekte, die zu dieser Art von Agent gehören. Zum Beispiel enthält die Unterklasse für den Assistenten die Hand und die Handgeschichte, während die Unterklasse für den Kurieragenten die Liste der abzuliefernden Pakete enthält. Zusätzlich enthält jede Unterklasse des Agenten Verfahren für alle Aktionen, die durch den Agenten ausgeführt werden und die keine Aufgaben sind.
  • Atle Agenten folgen dem gleichen grundlegenden Gerüst von Operationen. Speziell führt ein Agent die folgenden Operationen in seiner Hauptverarbeitungsschleife aus:
    • – Bilden einer Sitzung
    • – Bilden einer Agentensitzung innerhalb der Sitzung
    • – Eingabe des Ausführungsverfahrens zum Ausführen von Aufgaben
    • – Fortfahren mit der Ausführung von Aufgaben, bis keine Aufgaben mehr vorliegen oder eine Ausnahme empfangen wird
    • – Streichen seiner Sitzung
    • – Austritt
  • Das Agenten-::-Ausführungs-()-Verfahren holt die nächste Aufgabe vom Aufgabenstapel und führt sie aus, bis sich keine Aufgabe mehr im Stapel befindet. Einrichtungsagenten wie z. B. der Cron-Agent und der Postmeister-Agent benutzen jedoch nicht den Aufgabenstapel oder Aufgaben. Jeder Einrichtungsagent weiß, wie eine einzige Art von Paket zu handhaben ist, so dass er sein eigenes Ausführungs-()-Verfahren vorgibt, das darauf wartet, ein Paket zu empfangen, und es dann bedient.
  • Die Hauptroutine für einen komplexen Agenten, wie z. B. der elektronische Assistent, besitzt die grundlegenden Operationen, die gerade dargestellt wurden, umfasst aber viele zusätzlich Operationen, wie z. B. solche für die Initialisierung der Memen in der Datenbank, das Aufsuchen des Slots vom VM-Server-Prozess, das Aufsuchen des Teilnehmers, dem er gehört, das Holen des Fokus-Gadgets usw.
  • Die aktive Gadget-Klasse:
  • Die aktive Gadget-Klasse ist von der DB-Klasse hergeleitet, obgleich sie nicht tatsächlich in der laufenden Datenbank gespeichert ist. Die DB-Klasse ist die primäre Unterklasse von getippt und enthält alle Objekte, die in der Datenbank gespeichert sind. Die aktive Gadget-Klasse besteht aus den folgenden Datenelementen:
    • – einem Hinweis zu dem Kanal in der VM
    • – einem Hinweis zu der Meme-Liste
    • – einem Hinweis zu einem Menü
  • Die aktive Gadget-Klasse enthält Mitgliedsfunktionen für:
    • – Darbietung einer Meme und Sammeln einer Antwort von einem Menü
    • – Hinzufügen und Entfernen von Fähigkeiten
    • – Training von äußersten Möglichkeiten. Die Gruppe umfasst Funktionen für das Starten des Trainings, das Sammeln von äußersten Möglichkeiten, das Hinzufügen von Training, die Beendigung des Trainings und den Abbruch des Trainings.
  • Die aktive Gadget-Klasse definiert Operatoren für:
    • – Darbietung von Information an den Benutzer («)
    • – Aufzeichnung von Information vom Benutzer (»)
  • Gadgetes speichern die „Adresse", unter der ein Benutzer erreicht werden kann. Es gibt die folgenden Gadget-Arten:
    • – Telefon-Gadget, das die Adresse eines Telefons beschreibt – die Vorwahl, den Länder-Code, den Städte-Code, den Bereichs-Code, die Nummer und den Anschluss
    • – Agenten-Gadget, das die Adresse eines Assistenten beschreibt – ein Hinweis zum Benutzerobjekt seines Teilnehmers
    • – Ardis-Gadget, das die Adresse eines Ardis-Pagers beschreibt
    • – SkyTel-Pager-Gadget, das die Adresse eines SkyTel-Pagers beschreibt – Pager-ID und eine Sicherheits-ID
    • – numerisches Pager-Gadget, das die Adresse eines numerischen Pagers beschreibt – eine Telefonnummer
    • – Buchsen-Gadget, das die Adresse eines Datennetzwerkes beschreibt – einen Host-Namen, einen Service und einen Service-Typ
  • Theoretisch kann ein Agent irgendeine Art von Gadget benutzen. Bestimmte Agenten, wie z. B. die Kurier-Agenten sind spezialisiert, um sich mit bestimmten Gadget-Arten zu befassen. Zum Beispiel weiß der System-Kurier-Agent, wie das Agenten-Gadget zu behandeln ist, während der SkyTel-Kurier-Agent und der numerische Pager-Kurier-Agent weiß, wie das SkyTel-Pager-Gadget und das numerische Pager-Gadget jeweils zu behandeln ist.
  • Um ein Gadget zum Dialog mit einem Benutzer zu verwenden, fügt ein Agent es der Sitzung hinzu, um ein aktives Gadget zu erhalten. Sodann kann der Agent Information über das aktive Gadget senden und empfangen.
  • Die beständige Agenten-Klasse:
  • Die beständige Agenten-Klasse besitzt keine Datenelemente oder Mitgliedsfunktionen. Jede Unterklasse des beständigen Agenten liefert Datenelemente für beständige Daten seines Agenten und Mitgliedsfunktionen zum Zugriff auf die Daten. Zum Beispiel enthält der beständige Assistent die Schachtel des Teilnehmers, während der beständige Cron-Agent eine Liste von Cron-Ereignissen enthält.
  • Die Aufgabenklasse:
  • Die Aufgabenklasse ist sowohl von der DB-Klasse als auch der Feld-Elternklasse hergeleitet. Die Feld-Elternklasse gibt einer Aufgabe einen Weg vor, damit sie weiß, ob sie verändert, vervollständigt oder gestrichen ist.
  • Die Aufgabenklasse besteht aus den folgenden Datenelementen:
    • – Was hat sich verändert? (Geerbt von den Feld-Eltern)
    • – Ist die Aufgabe vollständig? (Geerbt von den Feld-Eltern)
    • – Wurde die Aufgabe gestrichen? (Geerbt von den Feld-Eltern)
    • – einen Verweis zum Agenten
    • – einen Verweis zum aktiven Gadget
    • – einen Verweis zur Sitzung
  • Die Aufgabenklasse enthält Mitgliedsfunktionen für:
    • – Verarbeitung, Ausführung und Streichen von Aufgaben. Diese Funktionen sind geschützt, und es wird nur durch die Agentenklasse auf sie zugegriffen.
    • – Rückführen und Einstellen des aktiven Gadgets
    • – Rückführen und Einstellen des Agenten
    • – Rückführen und Einstellen der Sitzung
  • Jede Subklasse der Aufgabe enthält geschützte Mitgliedsfunktionen für die Verarbeitung und Ausführung dieser Aufgabe.
  • Die Paketklasse:
  • Die Paketklasse ist von der DB-Klasse hergeleitet und besitzt die folgenden Datenelemente:
    • – die Adresse des Empfängers
    • – die Adresse des Senders
    • – eine Paket-ID
    • – eine Nachrichten-ID
    • – eine Bezugnahme auf den Inhalt des Paketes
  • Die Paketklasse besitzt Mitgliedsfunktionen für den Zugriff auf Datenelemente der Klasse. Sie besitzt auch Operatoren für:
    • – Auffüllen eines RPC-Ausgangspuffers mit dem Paket («)
    • – Entfernen eines Paketes von einem RPC-Eingangspuffer (»)
  • Die Paketinhalts-Klasse:
  • Die Paketinhalts-Klasse ist hergeleitet von der DB-Klasse und ist eine abstrakte Klasse. Die Paketinhalts-Klasse enthält keine Datenelemente und eine einzige Mitgliedsfurktion zur Verarbeitung des Inhaltes eines Paketes.
  • Jede Unterklasse der Paketinhalts-Klasse enthält Datenelemente, die für den Pakettyp geeignet sind, z. B. eine Erinnerung oder sogar ein anderes Paket. Jede Unterklasse besitzt auch eine Mitgliedsfunktion zur Verarbeitung seines speziellen lnhaltes.
  • Errichten des Fokus-Gadgets:
  • Das Fokus-Gadget ist ein spezifisches aktives Gadget, das ein Assistent verwenden muss, um einen Dialog mit einem Benutzer zu führen. Im Falle eines Telefon-Gadgets besitzt das Fokus-Gadget Spracherkennungs-Ressourcen, die ihm zugeordnet sind.
  • Wenn die VM eine Sitzung für einen eingehenden Anruf startet, so stattet sie die Sitzung mit einem Fokus-Gadget aus, wobei der Fokus ein Datenelement der Sitzung ist. Für Telefonanrufe ist dieses Fokus-Gadget vom Typ Telefon-Gadget. Der Assistent verwendet dieses Fokus-Gadget, um einen Dialog mit dem Teilnehmer zu führen und Kontakt oder keinen Kontakt mit diesem Anruf aufzunehmen. Bevor der Assistent das Fokus-Gadget verwenden kann, das mit der Sitzung geliefert wird, muss er die folgenden Maßnahmen treffen, um es zu errichten:
    • 1. Erhalten des Fokus-Gadgets mit der Get Fokus-Mitgliedsfunktion
    • 2. Einstellung von irgendwelchen Eigenschaften, die bei dem Fokus-Gadget benötigt werden
    • 3. Hinzufügen von irgendwelchen notwendigen Fähigkeiten zu dem Fokus-Gadget
    • 4. Beantworten des Anrufes mit dem Fokus-Gadget
  • In dem Fall, in dem eine Sitzung gestartet wird aufgrund einer Paketabgabe, bildet die VM kein Fokus-Gadget. In diesem Fall versucht der Assistent den Teilnehmer zu lokalisieren, indem er einen ausgehenden Anruf tätigt. Bevor der Assistent mit der angerufenen Person einen Dialog führen kann, muss er die folgenden Aktionen vornehmen, um ein Fokus-Gadget zu errichten:
    • 1. Feststellen des Gadgets, das dem Ort des Teilnehmers entspricht
    • 2. Erhalten eines Fokus-Gadgets durch Hinzufügen des Gadgets zu der Sitzung
    • 3. Einstellung irgendwelcher Eigenschaften, die bei dem Fokus-Gadget benötigt werden
    • 4. Hinzufügen irgendwelcher notwendigen Fähigkeiten zum Fokus-Gadget
  • Nachdem das Fokus-Gadget einmal errichtet ist, kann der Assistent mit dem Benutzer unter Verwendung von Memen und Menüs einen Dialog führen, und er kann die Gadgets gegebenenfalls manipulieren, um zusätzliche Anrufe zu tätigen, Benutzer in der Warteschleife zu halten und Benutzer zu verbinden.
  • Erhalten von zusätzlichen aktiven Gadgets:
  • Theoretisch können Agenten irgendein Gadget zu einer Sitzung mit der Sitzung : Add (Gadget)-Mitgliedsfunktion hinzufügen. Wenn der Agent das Gadget hinzufügt, erhält er ein aktives Gadget zurück, und der Fokus ist bereits auf dieses aktive Gadget eingestellt, wodurch es zum Fokus-Gadget wird.
  • Jeder Standard-Ort (Heim, Arbeit, Auto, mobil, andere) für jeden Kontakt wird durch ein adressierbares Gadget-Objekt (z. B. ein Telefon-Gadget-Objekt) repräsentiert, das einer Sitzung hinzugefügt werden kann. Wenn z. B. ein Teilnehmer den Assistenten bittet, einen abgehenden Telefonanruf mit einem Kontakt zu verbinden, so erhält der Assistent das Telefon-Gadget für den korrekten Ort (wie z. B. Arbeit) und fügt es der Sitzung hinzu.
  • Wenn der Agent ein Gadget einer Sitzung hinzufügt, erhält die VM eine Telefonleitung und wählt die in dem Gadget festgelegte Nummer. Die VM schafft kein aktives Gadget und gibt es zu dem Agenten, bis der Anruf erfolgreich verbunden ist. Das Kriterium für eine erfolgreiche Verbindung ist veränderbar; es kann bedeuten, dass das Telefon einige Male geläutet hat oder dass irgendjemand den Anruf beantwortet hat. Wenn der Anruf keine Verbindung findet, bildet die VM kein aktives Gadget und fügt die fehlgeschlagene Operation für den Agenten hinzu.
  • Einstellung von Eigenschaften und Fähigkeiten:
  • Bevor der Agent über das aktive Gadget einen Dialog führt, muss er irgendwelche Eigenschaften und Fähigkeiten einstellen, die für den Dialog mit dem Benutzer benötigt werden.
  • Eigenschaften legen fest, welche Medien in einer Meme dargeboten werden, und man kann sie sich als Eigenschaften von MMUI-Objekten vorstellen. Die Sprache und die Art der Aufforderungen (kurz, Dialog, instruktiv), die durch den Assistenten verwendet werden, sind Beispiele für Eigenschaften. Die meisten Eigenschaften werden als Teil der Präferenzen des Benutzers im Assistenten eingestellt. Wenn der Assistent anläuft, stellt er Eigenschaften für jede Präferenz des Benutzers im Fokus-Gadget ein. Immer wenn der Benutzer eine Präferenz verändert, stellt der Assistent die geeignete Eigenschaft ein.
  • Die VM liefert momentan den folgenden Satz an Fähigkeiten:
    • – WflnterOutCap, das einen Audio-Ausgang vorgibt
    • – WflnterlnCap, das einen Audio-Eingang vorgibt
    • – WfRecognizerCap, das Sprach- und DTMF-Erkennung vorgibt
    • – WfFaxInCap, das einen Faxeingang vorgibt
    • – WfFaxOutCap, das einen Faxausgang vorgibt
    • – WfAIICaps, das alle Fähigkeiten vorgibt
  • Der Assistent kann Fähigkeiten einstellen, wenn er das Fokus-Gadget errichtet oder zu irgendeiner Zeit der Sitzung mit dem Benutzer. Wenn z. B. der Benutzer darum bittet, irgendeine Information zu faxen, so kann der Agent die Fax-Fähigkeit dem aktiven Gadget hinzufügen, um diese Benutzeranforderung auszuführen.
  • Beantwortung des Fokus-Gadgets:
  • Für eingehende Anrufe muss der Assistent das Fokus-Gadget mit der Aktiv-Gadget::Antwort-Mitgliedsfunktion beantworten, welche den Anruf annimmt und den Klingelton anhält. Nachdem der Assistent den Anruf beantwortet hat, kann er den Dialog mit dem Benutzer oder dem Angerufenen beginnen (z. B. könnte es ein Faxgerät sein, das angerufen hat).
  • Verbindung von Gadgets:
  • Agenten können Gadgets verbinden, trennen und wiederverbinden, wie dies während einer Sitzung erforderlich ist. Um Gadgets zu verbinden, die in getrennten Sitzungen angeordnet sind, benutzen Agenten ein getrenntes Objekt, nämlich das Konferenz-Objekt. Nachdem eine Verbindung hergestellt wurde, können Agenten Gadgets trennen und wiederverbinden, um Benutzer in die Warteschleife zu bringen oder sie zurückzuverbinden.
  • Pakete:
  • Agenten benutzen Pakete, um miteinander einen Dialog zu führen. Ein Paket besteht aus einem Ziel (Adressat), welches ein Benutzer oder eine Sitzung sein kann, und aus einem Inhalt (Paketinhalts-Klasse). Pakete werden an die Sitzung des Adressaten geliefert. Wenn der Adressat ein Agent ist, bei dem mehr als eine Sitzung abläuft, so wird das Paket immer an die Meistersitzung geliefert.
  • Tabelle 5 beschreibt die Pakete, die durch Agenten benutzt werden.
  • Paket-/Inhaltstypen
    Figure 00570001
  • Figure 00580001
  • Zusammensetzung von Paketen
  • Um ein Paket zusammenzusetzen, benutzt der Agent den Paket-Konstruktor und legt die Paketinhalts-Klasse als Argument fest. Der Agent kann dann die geeigneten Felder im Inhalt des Paketes ausfüllen.
  • Senden und Empfangen von Paketen
  • Um ein Paket zu senden, auf ein Paket zu antworten oder ein Paket wieder aufzufinden, bildet die Sitzungsklasse die folgenden Mitgliedsfunktionen:
    Paket Senden
    Antwort auf Paket
    Paket Wiederaufsuchen
  • Wenn auf ein Paket geantwortet wird, richtet die VM automatisch das Paket an eine spezifische Sitzung anstatt an einen spezifischen Adressaten.
  • Hin- und Zurückreichen des gleichen Paketes:
  • Agenten können ein Paket hin- und zurückreichen und seinen Inhalt jedes Mal als Verhandlungsmittel ergänzen. Als Beispiel für die Verwendung von Paketen in dieser Weise sei betrachtet, wie der Assistent Anrufe handhabt. Wenn ein Teilnehmer einen Kontakt anruft, so ist keine Verhandlung bei der Verbindung des Telefonates beteiligt. Es gibt eine dreiteilige Bestätigung, die bei der Verbindung eines Kontaktes mit einem Teilnehmer in den folgenden zwei Situationen beteiligt ist:
    Ein Kontakt außerhalb ruft einen Teilnehmer an.
    Ein Kontakt, der sich als Teilnehmer herausstellt, ruft einen anderen
    Teilnehmer an, der in das System eingebucht ist.
  • Bezugnehmend auf die 23AD beinhaltet die dreiteilige Bestätigung folgende Schritte:
    • 1. Wenn ein Kontakt einen Teilnehmer anruft, sendet der elektronische Assistent 400 für die Sitzung des Kontaktes 402 ein Verbindungspaket 404 zu der Meistersitzung 406 (23A). Das Paket zeigt an, dass der Anrufer eine Verbindung mit dem Teilnehmer anfordert, und es enthält einen Bezug zu dem Kontakt (oder einen Leerkontakt, wenn der Anrufer kein bekannter Kontakt ist). Wenn keine Meistersitzung vorliegt, startet die VM eine solche.
    • 2. Wenn der elektronische Assistent für die Meistersitzung 406 das Verbindungspaket 404 empfängt, prüft er es, um zu sehen, ob es das Fokus-Gadget 408 besitzt, welches anzeigt, dass bereits eine Sitzung mit dem Teilnehmer läuft. Wenn der elektronische Assistent das Fokus-Gadget nicht besitzt, bedeutet dies, dass die Sitzung gestartet wurde und dass sie ein Paket empfing, und es ist erforderlich zu versuchen, den Teilnehmer zu lokalisieren, um das Fokus-Gadget zu bekommen. Wenn der elektronische Assistent einmal das Fokus-Gadget besitzt, so fragt er den Teilnehmer, ob er mit dem Kontakt zu verbinden ist oder nicht. Wenn der Teilnehmer „ja" sagt, sendet der elektronische Assistent für die Meistersitzung das Verbindungspaket 404 zurück und zeigt in ihm an, dass die Verbindungsanforderung angenommen worden ist (23B).
    • 3. Wenn der elektronische Assistent für die Sitzung des Kontaktes das Verbindungspaket empfängt, sendet er es mit dem Hinweis zurück, fortzufahren und die Verbindung herzustellen (23C). Wenn der elektronische Assistent für die Meistersitzung das Verbindungspaket empfängt, verbindet er die zwei Gadgets und verschiebt das aktive Gadget des Kontaktes in die Meistersitzung (23D).
  • Die Art und Weise, in der Konferenz-Objekte bei der Behandlung von Dialogen benutzt werden, ist in den 25AD veranschaulicht, welche die Schritte darstellen zur Bildung eines Konferenz-Objektes für die Errichtung eines Anrufes von einem Teilnehmer zu einem anderen Teilnehmer. In diesem Beispiel wird angenommen, dass beide Teilnehmer anfänglich nur mir ihrem elektronischen Assistenten zusammenwirken und somit mit untätigen Konferenz-Objekten verbunden sind. Dies wird in der Sitzung A durch ein Fokus-Gadget 401a veranschaulicht, das mit einem untätigen Konferenz-Objekt 403a verbunden ist, und in der Sitzung B durch ein Fokus-Gadget 401b, das mit einem untätigen Konferenz-Objekt 403b verbunden ist.
  • Der Teilnehmer A initiiert den Anruf durch Instruieren seines elektronischen Assistenten, eine Verbindung zu dem Teilnehmer B herzustellen. Als Antwort darauf prüft die VM, ob der Teilnehmer B sich in einer Sitzung befindet, d. h., ob eine Meistersitzung für den Teilnehmer B abläuft. Wenn sich der Teilnehmer B in einer Sitzung befindet, so teilt die VM dem elektronischen Assistenten des Teilnehmers A mit, dass sich der Teilnehmer B in einer Sitzung des Systems befindet. Diese Information wird dem Teilnehmer A mitgeteilt, dem sodann die Gelegenheit gegeben wird, seine Verbindungsanforderung zu bestätigen. Wenn der Teilnehmer A seine Verbindungsanforderung bestätigt, sendet sein elektronischer Assistent eine Konferenzanforderung 405 an den elektronischen Assistenten des Teilnehmers B, und die VM bildet ein Konferenz-Objekt 407 für die angeforderte Verbindung ( 24A).
  • Wenn der Teilnehmer B seinem elektronischen Assistenten anzeigt, dass er die angeforderte Verbindung annehmen will, sendet sein elektronischer Assistent eine Bestätigung (ACK) zurück zu dem elektronischen Assistenten für den Teilnehmer A (24B). In Beantwortung des Empfangs der ACK vom Teilnehmer B bildet der elektronische Assistent des Teilnehmers A ein Konferenz-Paket 409, das das für die Verbindung gebildetet Konferenz-Objekt 407 identifiziert, verbindet sich selbst mit dem Konferenz-Objekt 407 und sendet das Konferenz-Paket 409 zum elektronischen Assistenten des Teilnehmers B (24C).
  • Wenn der elektronische Assistent des Teilnehmers B das Konferenz-Paket vom Teilnehmer A empfängt, zieht er die Identität des Konferenz-Objektes aus dem Paket heraus, entfernt sein aktives Gadget aus seinem untätigen Konferenz-Objekt und fügt es zu dem neu empfangenen Konferenz-Objekt 407 hinzu (24D). An diesem Punkt sind die Teilnehmer A und B zusammengeschaltet, und ihre elektronischen Assistenten lassen sie wissen, dass sie verbunden sind, indem sie sagen „Mach weiter".
  • Die Funktionalität des elektronischen Assistenten
  • Die Anweisungsgruppe, auf die der Teilnehmer zugreifen kann, ist im Anhang A dargestellt. Die verschiedenen Aufgaben, die der elektronische Assistent ausführen kann, verwirklichen die Funktionalität, die diesen Anweisungen zugeordnet ist.
  • Das Folgende ist eine detailliertere Beschreibung der verschiedenen Funktionen, die der elektronische Assistent für seinen Teilnehmer unter Verwendung der zuvor beschriebenen Mechanismen ausführt. Die beschriebenen Funktionen umfassen u. a.: (1) Handhabung eines eingehenden Anrufes zu einem Teilnehmer, (2) Herstellung eines Kontaktes, (3) Bildung einer Erinnerung und (4) Mitteilung einer Erinnerung an den Teilnehmer.
  • Handhabung eines eingehenden Anrufes:
  • Zunächst beschreiben wir, wie das System einen eingehenden Anruf eines Anrufers (d. h. Bill Bishop) zu einem Teilnehmer (d. h. Jim Smith) handhabt. Die Anruf-Handhabungsfunktionen des Systems werden aufgerufen, wenn ein Anrufer einen Anruf an die Telefonnummer des Teilnehmers abgibt. Das zentrale Büro teilt dem System einen eingehenden Anruf mit, indem es ein Klingelsignal auf einer T1-Leitung im System abgibt. Die Schnittstellenkarte, die diese T1-Leitung überwacht, antwortet auf das Klingelsignal durch Aufgreifen der Leitung und Annahme einer 4-Ziffern- Folge von Tastentönen, die den angerufenen Anschluss identifizieren. Die Schnittstellenkarte erzeugt ein Ereignis für die virtuelle Maschine. Die virtuelle Maschine stellt durch die Hardware fest, welche Nummer angerufen wurde, und stellt daraus die Identität des angerufenen Teilnehmers fest.
  • Beim Empfang eines Hinweises auf einen eingehenden Anruf startet die VM eine Sitzung, d. h. eine einzige Bearbeitungsfolge, die zugeordnet wird, um diesen Anruf zu handhaben. Wenn der VM-Server die Sitzung hervorbringt, tritt eine Bestätigung zwischen der Sitzung und dem VM-Server auf, um den zwei Einheiten den Dialog miteinander zu ermöglichen. Als Teil der Bestätigung reicht der Server-Prozess zu der Sitzung eine ID des Teilnehmers weiter, für den die Sitzung begonnen wird. Somit ist die Sitzung in der Lage, unmittelbar eine Referenz zu einem Benutzerobjekt in der Datenbank zu errichten, die die gespeicherte Information für den Teilnehmer enthält.
  • Zusätzlich zum Empfang der ID des Benutzers, für den die Sitzung gestartet worden ist, reicht die VM auch die Identität des Kanals weiter, aus dem sie ein aktives Gadget aufgebaut hat. Das aktive Gadget repräsentiert den Dialogweg zu dem ankommenden Anrufer. Das aktive Gadget repräsentiert die spezielle Dialogleitung, über die der Anruf hereinkam, in diesem Fall eine Telefonleitung. Bis die Fähigkeiten hinzugefügt werden, repräsentiert das aktive Gadget einfach einen Kanal ohne Eingangs- oder Ausgangsfähigkeiten. Um daher das System in die Lage zu versetzen, Aufforderungen abzugeben, eingehende Signale aufzuzeichnen und Stimm- und DTMF-Erkennung mit dem Kanal auszuführen, fügt der Assistent dem aktiven Gadget Fähigkeiten hinzu. Zum Beispiel fügt er eine interaktive Ausgangsfähigkeit, eine interaktive Eingangsfähigkeit und eine Erkennungsfähigkeit hinzu. Die Fähigkeiten, die dem aktiven Gadget hinzugefügt werden, werden auf die Anschlüsse abgebildet, welche die VM dem Kanal hinzufügt. Zum Beispiel bildet die interaktive Ausgangsfähigkeit einen Audio-Ausgangsanschluss für das Abspielen von Audio-Signalen ab, die interaktive Eingangsfähigkeit bildet einen Audio-Eingangsanschluss zum Aufzeichnen von Sprache ab, und die Erkennungsfähigkeiten bilden die Spracherkennungs- und DTMF-Anschlüsse ab.
  • Wenn die Fähigkeiten einmal errichtet sind, ruft der elektronische Assistent eine Anruf-Beantwortungsaufgabe auf, um den eingehenden Anruf zu handhaben. Bezugnehmend auf die 24AB beteiligt sich die Anruf-Beantwortungsaufgabe an einem Dialog mit dem Anrufer, um bestimmte Informationen zu sammeln, die beim Beginn der Ausführung der Aufgabe erforderlich ist. Allgemein ausgedrückt besitzt die Anruf-Beantwortungsaufgabe anfänglich zwei Informationsfelder, die ausgefüllt werden müssen: WER ruft an und WAS wünscht der Anrufer von dem elektronischen Assistenten?
  • Wenn ein eingehender Anruf für einen vorgegebenen Teilnehmer ankommt, gibt es verschiedene Arten, auf die der Assistent den Anruf handhaben kann, in Abhängigkeit von den Präferenzen, die der Teilnehmer zuvor ausgewählt hat. Der Assistent kann den Anruf direkt an ein Telefon auf dem Tisch des Teilnehmers richten, er kann einfach anbieten, eine Nachricht von dem eingehenden Anruf anzunehmen, oder er kann den Teilnehmer zu lokalisieren versuchen und ihm anbieten, mit dem eingehenden Anruf verbunden zu werden, sobald er lokalisiert ist. Bei der Behandlung des Anrufes prüft zunächst die Anruf-Beantwortungsaufgabe den Status des Teilnehmers, um festzustellen, welche Präferenzen er ausgewählt hat (Schritt 500).
  • In dem beschriebenen Ausführungsbeispiel wird angenommen, dass der Anrufer eine Verbindung mit dem Teilnehmer herzustellen wünscht, so dass dem Anrufer keine Wahlmöglichkeiten zur Beantwortung der zweiten Frage geboten werden. In alternativen Ausführungsbeispielen kann jedoch die Anruf-Beantwortungsaufgabe modifiziert werden, um dem Anrufer die Wahlmöglichkeit anzubieten, eine Nachricht zu hinterlassen, die Priorität des Anrufes festzulegen oder u. a eine Seite zu senden.
  • Ebenso sei vermerkt, dass wenn eine ANI (Automatische Nummeridentifizierung) unterstützt wird, die Schnittstellenkarte das ANI-Signal abstreifen kann, das von dem zentralen Büro empfangen wird, und es an den elektronischen Assistenten für die Sitzung liefern kann. Wenn diese Nummer auf einen Kontakt in der Kontaktliste des Teilnehmers abgebildet ist, kann der elektronische Assistent den Eintrag „Wer?" automatisch liefern, ohne in einen Dialog mit dem Anrufer einzutreten. Auch in diesem Fall kann es jedoch erwünscht sein, in einen Dialog mit dem Anrufer einzutreten, um seine Identität zu bestätigen.
  • Nachdem die Anruf-Beantwortungsaufgabe festgestellt hat, dass der Teilnehmer die Anrufe zu sichten wünscht, versucht sie, den Anrufer zu identifizieren (Schritt 504). Der elektronische Assistent reicht ein Objekt (d. h. ein Meme-Objekt) zu dem aktiven Gadget und instruiert es zu sagen „Bitte sagen Sie Ihren Namen". Er reicht auch das Kontaktmenü des Teilnehmers zum Gadget, so dass die Antwort die Anrufers mit den Kontakten des Teilnehmers abgeglichen werden kann, um festzustellen, ob der Anrufer ein bekannter Kontakt ist oder nicht. Der elektronische Assistent bittet das Gadget, den identifizierten Namen zurückzuführen.
  • Das Gadget präsentiert das Meme „Bitte sagen Sie Ihren Namen" dem Kanal. Der Kanal präsentiert das Meme der Sammlung von angeschlossenen Anschlüssen, und der geeignete Anschluss spielt das Meme ab, indem er die gespeicherte Audio-Version in der System-Datenbank aufsucht.
  • Beim Empfang der gesprochenen Antwort des Anrufers versucht der Kanal, die Antwort gegen Antworten abzugleichen, die für bekannte Kontakte im Kontaktmenü gespeichert sind. Das Ergebnis, das zum elektronischen Assistent gereicht wird, wird entweder die Identität eines bekannten Kontaktes sein oder ein Hinweis, dass es ein unbekannter Kontakt ist. Wenn es ein unbekannter Kontakt ist, ruft die Anruf-Beantwortungsaufgabe eine Nachrichten-Aufnahme-Aufgabe auf, die dem Anrufer die Wahlmöglichkeit bietet, eine Voice-Mail für den Teilnehmer zu hinterlassen (Schritt 506). Wenn der Anrufer ein bekannter Kontakt ist, stellt der elektronische Assistent fest, ob der bekannte Kontakt tatsächlich der Teilnehmer ist, für den der elektronische Assistent arbeitet (Schritt 508). Wenn der elektronische Assistent feststellt, dass der Anrufer der Teilnehmer ist, authentisiert der elektronische Assistent den Teilnehmer durch Abfragen eines Passwortes, bevor er ihm den Zugriff auf die Systemanweisungen gestattet (Schritt 510). Nachdem die Identität des Teilnehmers überprüft ist, teilt der elektronische Assistent dem Teilnehmer alle Nachrichten mit, die gespeichert worden sind, nachdem er sie zuletzt gelesen hat, und er beginnt mit der Anweisungsaufgabe, die dem Teilnehmer Zugriff auf den Anweisungssatz für die Steuerung des elektronischen Assistenten gibt (Schritt 512).
  • Wenn der Anrufer nicht der Teilnehmer ist, prüft der elektronische Assistent die Kontaktliste des Teilnehmers, um die Priorität des Anrufers festzustellen (Schritt 516). Es sei in Erinnerung gerufen, dass die Kontaktliste des Teilnehmers die Prioritätenfestlegung eines jeden Kontaktes des Teilnehmers umfasst (d. h. normal oder hoch). Die Priorität zeigt die Wichtigkeit von Anrufen an, die vom Anrufer empfangen werden.
  • Während die Priorität des Anrufers überprüft wird, überprüft der elektronische Assistent ebenfalls die Datenstruktur für den Kontakt, um festzustellen, ob irgendwelche Stimmnachrichten für den Anrufer durch den Teilnehmer hinterlassen wurden (Schritt 518). Wenn Stimmnachrichten vorliegen, ruft der elektronische Assistent eine Nachrichten-Abliefer-Aufgabe auf, die den Anrufer fragt, ob er die vom Teilnehmer hinterlassenen Stimmnachrichten zu hören wünscht oder nicht (Schritt 520).
  • Die Nachrichten-Abliefer-Aufgabe führt die folgende Ereignisfolge aus. Zunächst sendet der elektronische Assistent eine Meme zu dem Kanal, die ihn instruiert, dem Anrufer zu sagen „Ich besitze eine Nachricht, möchten Sie sie empfangen?". Er gibt auch einen Hinweis zu der gespeicherten Stimmnachricht in seiner Nachrichten-Datenbank. Der Anrufer antwortet durch Niederdrücken der geeigneten Tasten am Tastentelefon. Wenn der Anrufer „9" für „ja" drückt, sucht der Audio-Ausgangsanschluss die geeignete Mediendarstellung der gespeicherten Nachricht auf und spielt diese ab. Nachdem die Nachricht abgespielt worden ist, prüft der elektronische Assistent, ob es irgendwelche anderen, nicht abgespielten Nachrichten gibt, und wenn es welche gibt, geht er durch die gleiche Operationsfolge, um dem Anrufer die anderen Nachrichten zu präsentieren. Es sei vermerkt, dass die Nachrichten-Ablieferungsaufgabe des beschriebenen Ausführungsbeispiels keine wie auch immer geartete Überprüfung der Identität des Anrufers ausführt. Es kann jedoch wünschenswert sein, dies zu tun. Dies kann leicht geschehen durch Modifizieren der Aufgabe, um eine Überprüfung, wie z. B. ein Passwort, anzufordern.
  • Nachdem die Nachrichten-Ablieferungsaufgabe vervollständigt ist oder wenn es keine Stimmnachrichten für den Anrufer gibt, prüft der elektronische Assistent die Verfügbarkeit des Teilnehmers (Schritt 522). Der Teilnehmer hat die Möglichkeit, seine Verfügbarkeit durch die Anweisung „Ich bin hier" festzulegen (an anderer Stelle beschrieben). Diese Information ist in der Datenbank als Teil des Benutzerobjektes des Teilnehmers gespeichert.
  • Nach der Identifizierung der Verfügbarkeit des Teilnehmers stellt der elektronische Assistent fest, ob eine Verbindung zum Teilnehmer versucht werden soll oder nicht (Schritt 524). In dem beschriebenen Ausführungsbeispiel basiert die Feststellung darauf, ob der Anrufer eine ausreichende Priorität besitzt, um die Verfügbarkeitskriterien zu erfüllen, die durch den Teilnehmer festgelegt wurden. Wenn z. B. der Anrufer in der Datenbank als Kontakt mit normaler Priorität identifiziert ist und der Teilnehmer seine Verfügbarkeit mit „Annahme wichtiger Anrufe" angezeigt hat, versucht der elektronische Assistent, keine Verbindung zu dem Teilnehmer für diesen speziellen Fall herzustellen. Wenn andererseits die Priorität des Kontaktes mit „hoch" festgelegt ist, führt der elektronische Assistent die Operationen aus, die erforderlich sind, um eine Verbindung mit dem Teilnehmer herzustellen.
  • Der Entscheidungsalgorithmus in dem beschriebenen Ausführungsbeispiel ist ein sehr einfacher Algorithmus. Alternative Ausführungsbeispiele können ausgefeiltere Algorithmen verwenden, um die Anforderung des Anrufers für eine Verbindung mit dem Teilnehmer herauszufiltern. Zum Beispiel kann die Entscheidung anderen Informationen über den Anrufer Rechnung tragen, wie z. B. seine Jobbeschreibung oder die Identität der Firma, aus der er anruft. Ebenso ist es eine einfache Angelegenheit, die Priorität des Anrufers zu verändern, um die Anzahl der Anrufe wiederzugeben, die der Teilnehmer zu diesem Anrufer innerhalb einer ausgewählten Zeitspanne getätigt hat. Ein Kontakt, den der Teilnehmer häufig anruft, wird eine höhere Priorität besitzen als ein Kontakt, an den der Teilnehmer kaum einen Anruf richtet.
  • Wenn die Entscheidung getroffen ist, keine Verbindung mit dem Teilnehmer zu versuchen, ruft der elektronische Assistent eine Nachrichten-Aufnahme-Aufgabe auf (Schritt 526). Allgemein berichtet die Nachrichten-Aufnahme-Aufgabe dem Anrufer, dass der Teilnehmer in diesem Moment nicht verfügbar ist, und fragt den Anrufer, ob er eine Voice-Mail für den Teilnehmer hinterlassen will oder nicht. Nachdem die Nachrichten-Aufnahme-Aufgabe vervollständigt ist, führt der elektronische Assistent irgendwelche Operationen aus, die erforderlich sind, um ihn von dem Kanal abzutrennen und die Sitzung für diesen Anrufer zu beenden. Dies umfasst z. B. die Freigabe der Ressourcen, die erforderlich waren, um die Verbindung von einem Anrufer zu unterstützen, durch Abstreifen der dem aktiven Gadget zugeordneten Fähigkeiten und die Abtrennung der Audio-Eingangs-, Audi-Ausgangs- und der Erkennungsanschlüsse von dem Kanal, so dass sie durch andere Sitzungen verwendet werden können.
  • Wenn der Teilnehmer angezeigt hat, dass er verfügbar ist, um Anrufe von diesem Kontakt zu empfangen, führt die Anruf-Beantwortungsaufgabe die Schritte aus, die erforderlich sind, um die Verbindung herzustellen (Schritt 528). Um den Betrieb des Paketmechanismus ferner zu veranschaulichen, sei der Austausch von Paketen, der stattfindet, um die Errichtung der Verbindung zu unterstützen, ebenfalls beschrieben. Die Anruf-Beantwortungsaufgabe in der Sitzung des Anrufers sendet ein an den Teilnehmer adressiertes Verbindungspaket. Das Verbindungspaket fordert, dass eine Verbindung mit dem Teilnehmer hergestellt wird, und identifiziert die Sitzung des Anrufers. Die VM handhabt die Abgabe des Paketes. Wenn die VM feststellt, dass momentan keine Meistersitzung vorliegt, bringt sie eine neue Sitzung hervor, die sie als Meistersitzung festlegt, und liefert sodann das Verbindungspaket an die Meistersitzung.
  • Wenn die Meistersitzung einmal vorliegt, prüft sie unmittelbar, ob irgendwelche Pakete an sie abgeliefert worden sind. An dieser Stelle wird sie das Verbindungspaket entdecken, das durch die Sitzung des Anrufers gesendet wurde. Als Antwort auf das Verbindungspaket prüft die Meistersitzung, ob sie das Fokus-Gadget besitzt. Wenn sie dieses nicht besitzt, ruft sie eine Lokalisier- und Mitteilungsaufgabe auf, deren Zweck es ist, eine Verbindung mit dem Teilnehmer herzustellen zu versuchen.
  • Bezugnehmend auf 26 versucht die Lokalisier- und Mitteilungsaufgabe zunächst festzustellen, ob der Teilnehmer erreicht werden kann (Schritt 600). In dem beschriebenen Ausführungsbeispiel sucht der Assistent das Benutzerobjekt des Teilnehmers nach gespeicherten Terminplänen ab. Es gibt zwei Terminplan- Datenstrukturen, die verwendet werden, um den Terminplan für einen Benutzer aufzulisten: ein Default-Terminplan und ein Übersteuer-Terminplan. Der Default-Terminplan zeigt an, wo der Teilnehmer typischerweise während eines normalen Tages oder während der Tage einer normalen Woche angetroffen werden kann. Der Übersteuerungs-Terminplan, den der Teilnehmer durch die Anweisungen „Ich bin da" oder „Bilde einen Reiseplan" erzeugen kann, übersteuert den Default-Terminplan für die relevanten Zeitabschnitte. Zum Beispiel kann der Teilnehmer gewöhnlich an Montagen in seinem Büro sein, und sein Default-Terminplan gibt dies wieder. An einem bestimmten Montag kann er jedoch irgendwohin fahren, um einen Kunden zu besuchen. Er kann einen Übersteuerungs-Terminplan erzeugen, um diese Änderung von der normalen Routine wiederzugeben. Der Übersteuerungs-Zeitplan wird anzeigen, dass er über sein mobiles Telefon in der Zeitperiode erreichbar ist, in der er mit dem Auto fährt, und dass er danach an dem Geschäftsort des Kunden während einer weiteren Zeitperiode erreichbar ist.
  • Der Teilnehmer kann auch seinen Ort bei einem zweiten Teilnehmer vorgeben, dessen Terminplan und Sonstiges dem elektronischen Assistenten für den zweiten Teilnehmer bekannt ist. Wenn dies erfolgt ist, folgt der Zeitplan des ersten Teilnehmers dem Zeitplan des zweiten Teilnehmers, bei dem sich der erste Teilnehmer befindet.
  • Die Lokalisier- und Mitteilungsaufgabe prüft den Übersteuerungs-Terminplan des Teilnehmers, um festzustellen, ob der Teilnehmer für diese Zeit eine Übersteuerung aufweist. Wenn keine Übersteuerung vorliegt, prüft der elektronische Assistent den Default-Terminplan. Wenn der Default-Terminplan einen Ort für diese Zeit identifiziert, kann der elektronische Assistent die Telefonnummer für diesen Ort in der im Benutzerobjekt des Teilnehmers gespeicherten Information finden. Wenn z. B. der Default-Terminplan anzeigt, dass sich der Teilnehmer zu dieser Zeit zu Hause befinden sollte, schaut der Assistent im Benutzerobjekt nach, um die dem Haus zugeordnete Telefonnummer zu finden, wobei natürlich angenommen wird, dass der Teilnehmer eine angegeben hat.
  • Sobald die geeignete Dialogeinrichtung und ihre Nummer (oder Adresse) identifiziert ist, fügt der elektronische Assistent ein Gadget hinzu, das diese Einrichtung der Sitzung repräsentiert (Schritt 604). Wenn die Dialogeinrichtung das Heimtelefon des Teilnehmers ist, ist das der Sitzung hinzugefügte Gadget ein Telefon-Gadget, das die Telefonnummer für das Heimtelefon des Teilnehmers enthält.
  • Aufgrund des Empfangs eines Gadgets von der Meistersitzung teilt die VM diesem Gadget einen Kanal zu. Da das Gadget ein Telefon ist, veranlasst die VM die geeignete Schnittstellenkarte zur Zuteilung eines Telefonleitungs-Kanals, der an eine T1-Leitung angeschlossen ist. Die VM reicht auch die Telefonnummer zu der Schnittstellenkarte weiter, und die Schnittstellenkarte wählt diese Nummer. Wenn die angerufene Nummer belegt ist, berichtet der Kanal zurück zur Meistersitzung, dass der Verbindungsversuch fehlgeschlagen ist. Wenn das Telefon zu läuten beginnt, führt der Kanal ein aktives Fokus-Gadget zur Meistersitzung zurück. Das aktive Gadget repräsentiert eine tatsächliche Verbindung mit dem Heimtelefon des Teilnehmers.
  • Beim Empfang des aktiven Gadgets ordnet der elektronische Assistent dem aktiven Gadget unmittelbar Fähigkeiten zu, um es in die Lage zu versetzen, durch das Gadget einen Dialog zu führen, und wartet darauf, dass irgendjemand das Telefon abnimmt (Schritt 606). Wenn eine Partei antwortet, stellt der elektronische Assistent fest, ob der Benutzer verfügbar ist (Schritt 608). Er tut dies durch einen Dialog, während dessen die antwortende Partei anzeigen kann, ob der Teilnehmer da ist, um den Anruf entgegen zu nehmen. In dem beschriebenen Ausführungsbeispiel veranlasst der Audio-Ausgangsanschluss die Wiedergabe der zuvor beschriebenen gespeicherten Nachricht:
    Hallo, ich versuche, Jim Smith zu erreichen. Wenn er verfügbar ist, drücken Sie die Taste 9. Wenn er nicht verfügbar ist, drücken Sie die Taste 6 oder legen Sie auf.
  • Es kann wünschenswert sein, den Dialog anzupassen, um dem Ort des gerade angerufenen Telefons Rechnung zu tragen. Zum Beispiel mag es erwünscht sein, Telefone als in freundschaftlichem Umfeld, fraglichem Umfeld oder feindlichem Umfeld liegend festzulegen. Ein Telefon, das sich in einem freundschaftlichen Gebiet befindet, kann irgendein Telefon sein, bei dem es wahrscheinlich ist, dass die antwortende Person mit dem Zusammenwirken mit dem elektronischen Assistenten vertraut ist. Ein Telefon in einem fraglichen Gebiet kann irgendein Telefon sein, für das eine 50/50-Wahrscheinlichkeit besteht, dass die antwortende Partei mit der Zusammenarbeit mit dem elektronischen Assistenten keine Erfahrung hat. Telefone in feindlichem Gebiet können irgendein Telefon sein, für das vernünftig hohe Wahrscheinlichkeit besteht, dass die antwortende Partei mit der Zusammenarbeit mit dem elektronischen Assistenten nicht vertraut ist. Durch Identifizieren der Verbindungseinrichtungen in dieser Weise kann ein geeigneter Dialog für das Zusammenarbeiten mit der antwortenden Partei ausgewählt werden. Für den unerfahrenen Benutzer kann der elektronischen Assistent einen ausführlichen Dialog verwenden, der erläutert, wie mit ihm umfassender zu arbeiten ist. Für den erfahrenen Benutzer kann stattdessen ein grober Dialog verwendet werden, der annimmt, dass die Person weiß, wie zu antworten ist, ohne dass es ihr mitgeteilt wird.
  • Wenn die antwortende Partei anzeigt, dass der Teilnehmer nicht verfügbar ist, wird dies der Meistersitzung berichtet, die sodann ein Antwortpaket zurück zur Sitzung des Anrufers sendet, das anzeigt, dass der Verbindungsversuch fehlgeschlagen ist (Schritt 610). Die Meistersitzung geht sodann durch die Schrittfolge, die erforderlich ist, um die Sitzung zu beenden. Dies umfasst das Abstreifen der Fähigkeiten von dem aktiven Gadget.
  • Wenn die antwortende Partei anzeigt, dass der Teilnehmer verfügbar ist, dann kündigt der elektronische Assistent dem Teilnehmer die Identität des Anrufers an (Schritt 612):
    Es liegt ein Anruf von Bill Bishop vor. Möchten Sie diesen Anruf annehmen?
    Zeigen Sie „ja" durch Drücken der Taste 9 an, zeigen Sie „nein" durch Drücken der Taste 6 an.
  • Er fragt sodann den Teilnehmer, ob er den Anruf anzunehmen wünscht (Schritt 614).
  • Wenn der Teilnehmer den Anruf ablehnt, sendet die Lokalisier- und Mitteilungsaufgabe ein Antwortpaket für eine fehlgeschlagene Verbindung zur Sitzung des Anrufers zurück (Schritt 616). Als Antwort auf die fehlgeschlagene Erwiderung informiert die Sitzung des Anrufers den Anrufer, dass der Teilnehmer nicht gefunden werden konnte, und bietet dem Anrufer die Wahlmöglichkeit an, eine aufgezeichnete gesprochene Nachricht für den Teilnehmer zu hinterlassen. Wenn der Anrufer die Wahlmöglichkeit der Nachricht akzeptiert, zeichnet der elektronische Assistent die gesprochene Nachricht des Anrufers auf und speichert sie für den Teilnehmer, um sie zu einem späteren Zeitpunkt zurückzuspielen.
  • Während die Verbindung zu dem Teilnehmer noch vorliegt, fragt die Lokalisier- und Mitteilungsaufgabe den Teilnehmer, ob es irgendetwas gibt, was sie für den Teilnehmer zu diesem Zeitpunkt tun kann (Schritt 618). Wenn der Teilnehmer „nein" sagt oder die Taste 6 drückt, sagt die Lokalisier- und Mitteilungsaufgabe „Auf Wiedersehen" zum Teilnehmer, sendet eine Aufleganweisung an den Kanal und beendet sodann den Vorgang. Wenn andererseits der Teilnehmer anzeigt, dass er Zugriff zu den Anweisungen seines elektronischen Assistenten wünscht, muss er zunächst eine zusätzliche Authentisierung vornehmen, und dann startet der elektronische Assistent eine Anweisungsaufgabe, die den Teilnehmer in die Lage versetzt, auf jene Fähigkeiten entweder über die Stimmen- oder DTMF-Anweisungen Zugriff zu nehmen (Schritt 620). Die im Anhang A identifizierten Anweisungen sind sodann für den Teilnehmer verfügbar.
  • Wenn der Teilnehmer den Anruf annimmt, sendet die Lokalisier- und Mitteilungsaufgabe ein Verbindungs-Antwortpaket zu der Sitzung des Anrufers. Bezugnehmend auf 24B entfernt die Sitzung des Anrufers aufgrund des Empfangs des Verbindungs-Antwortpaketes von ihrem aktiven Gadget einige Fähigkeiten, die nicht mehr erforderlich sind (z. B. interaktive Eingangs-, interaktive Ausgangs- und Erkennungsfähigkeiten) (Schritt 536), und sendet das Gadget unter Verwendung des Paketmechanismus zum Teilnehmer (Schritt 540). Beim Empfang des aktiven Gadgets von der Sitzung des Anrufers fügt der elektronische Assistent für die Meistersitzung dieses aktive Gadget zu seiner Sitzung hinzu und verbindet sowohl das aktive Gadget als auch das Fokus-Gadget, um hierdurch den Teilnehmer und den Anrufer in die Lage zu versetzen, miteinander einen Dialog zu führen (Schritt 622 in 26). Die Schnittstellenkarten führen die Umschaltfunktion aus, die die zwei Gadgets miteinander verbindet, indem jedem Gadget gestattet wird, auf den Ausgang des anderen Kanals zu hören (d. h., indem jedem Kanal gestattet wird, Zugriff zu dem geeigneten Zeitschlitz auf der MVIP-Busleitung zu bekommen, die das Signal der anderen Partei führt).
  • Wenn die Verbindung zwischen dem Anrufer und dem Teilnehmer hergestellt ist, schaltet der elektronische Assistent in einen Hintergrundmodus, in dem er den Ausgang des Teilnehmers auf eine Anweisung (d. h. „Wildfire") überwacht, die ihn zurück in den Vordergrundmodus bringt (Schritt 624). Während sich der elektronische Assistent im Hintergrundmodus befindet, antwortet er nur auf die einzige Anweisung, die ihn in den Vordergrundmodus zurückbringt, und er ignoriert alle Anweisungen in seinem Anweisungssatz.
  • Es sei in Erinnerung gerufen, dass in der obigen Erläuterung angenommen wurde, dass keine Meistersitzung ablief, wenn die VM das Anforderungs-Verbindungspaket von der Sitzung des Anrufers abzuliefern wünschte. Wenn jedoch eine Meistersitzung abläuft, liefert die VM das Paket zu dieser.
  • Wenn eine bereits vorliegende Meistersitzung eine Anforderung empfängt, das Paket von der Sitzung eines anderen Anrufers zu verbinden, wird es in einer Warteschlange gespeichert. Die Meistersitzung überprüft wiederholt diese Warteschlange auf empfangene Pakete. Wenn sie das Vorliegen eines neuen Paketes feststellt, wirkt sie unmittelbar auf dieses ein. Im Falle der Anforderung, ein Paket zu verbinden, initiiert die Meistersitzung eine Mitteilungsaufgabe (s. 27). Die Mitteilungsaufgabe prüft, ob der Teilnehmer mit der Meistersitzung über einen Telefonkanal zusammenarbeitet (Schritt 630). Wenn der Teilnehmer mit der Sitzung über einen anderen Dialogkanal als ein Telefonkanal zusammenarbeitet, sendet er einen Vermerk zum Teilnehmer, der den Anrufer identifiziert, und teilt dem Teilnehmer mit, dass er gerade einen Anruf von dieser Person empfangen hat (Schritt 632). Die Meistersitzung sendet sodann eine Antwort auf die Anforderung, das Paket mit der Anrufersitzung zurückzuverbinden, was anzeigt, dass der Verbindungsversuch fehlgeschlagen ist (Schritt 634).
  • Wenn der Anrufer mit der Meistersitzung über einen Telefonkanal einen Dialog führt, stellt die Mitteilungsaufgabe zunächst fest, ob der Teilnehmer angezeigt, dass er bereit ist, eine Unterbrechung seines Anrufes zu akzeptieren (Schritt 636). Wenn z. B. der mit dem Anrufer verbundene Teilnehmer eine Anweisung „Halte alle Anrufe" benutzt, so zeigt er seine Präferenz an, nicht unterbrochen zu werden. Die Anweisung „Halte alle Anrufe" stellt temporär den Status des Teilnehmers als nicht verfügbar ein, während ein Anruf durch die Meistersitzung gehandhabt wird.
  • Wenn der Teilnehmer angezeigt hat, dass er nicht wünscht, unterbrochen zu werden, sendet die Mitteilungsaufgabe eine nicht-interaktive Mitteilung über den Versuch des Anrufers, ihn zu erreichen, zum Teilnehmer und berichtet sodann der Sitzung des Anrufers, dass der Verbindungsversuch fehlgeschlagen ist (Schritt 634).
  • Wenn der Teilnehmer seinen Status so festgelegt hat, dass Unterbrechungen nicht blockiert werden, teilt die Mitteilungsaufgabe dem Teilnehmer mit, dass der Anrufer wartet (Schritt 638). Das System besitzt eine Form der Anruferwartung, bei dem es zunächst einen kurzen Ton spielt, der sowohl durch den Teilnehmer als auch durch die Partei, zu der er spricht, gehört werden kann, und es gibt sodann unter Verwendung der gesprochenen Selbstidentifizierung des Anrufers den Namen des Anrufers wieder. Die Unterbrechung wird gehandhabt, um den Anrufer, mit dem der Teilnehmer sprechen möchte, in diesem Moment daran zu hindern, die Nachricht zu hören (allgemein als Smart-Call-Warte-Merkmal bezeichnet). Bei einigen Telefonen geschieht dies dadurch, dass der Anrufer für einen kurzen Zeitraum in die Wartestellung gebracht wird, während die Ankündigung erfolgt. Bei anderen Telefonen ist es möglich, die Nachricht zur Hörmuschel des Teilnehmer-Telefons zu senden, ohne dass der Anrufer es hört.
  • Der elektronische Assistent gibt sodann dem Teilnehmer die Wahlmöglichkeit, den Anruf zurückzuweisen oder ihn anzunehmen. Momentan gültige Anweisungen sind „Nimm eine Nachricht an" und „Ich nehme ihn an". Wenn der Teilnehmer den Anruf zurückweist oder nicht innerhalb einer im Voraus festgelegten Zeitperiode antwortet, sendet der elektronische Assistent eine „Fehlgeschlagen"-Antwort an die Sitzung des Anrufers (Schritt 642). Aufgrund der „Fehlgeschlagen"-Antwort kann die Sitzung des Anrufers einfach den Anrufer informieren, dass der Teilnehmer nicht gefunden werden kann, oder sie kann anbieten, eine Nachricht von dem Anrufer anzunehmen. Wenn der Anrufer die Nachrichten-Option akzeptiert, zeichnet der elektronische Assistent die gesprochene Nachricht des Anrufers auf und speichert sie für den Teilnehmer, um sie zu einem späteren Zeitpunkt wiederzugeben.
  • Wenn der Teilnehmer den neuen Anruf annimmt, mischt der elektronische Assistent das Gadget des Anrufers in die Meistersitzung (Schritt 644) und lässt den ersten Anrufer warten.
  • Während der Teilnehmer mit dem neuen Anrufer verbunden ist, handhabt, wenn noch ein andere Anruf kommt, der elektronische Assistent den neuen Anruf in der gleichen Weise. Somit ist es für mehr als einen Anrufer möglich, zur gleichen Zeit zu warten.
  • Um zu dem ersten Anrufer zurückzuschalten, gibt der Teilnehmer eine Anweisung „Drücke den Warteknopf" aus. Wenn nur ein Anruf wartet, lässt der elektronische Assistent den zweiten Anrufer warten und schaltet zum ersten Anrufer. Durch Verwendung des „Drücke den Warteknopf" kann somit der Teilnehmer zwischen zwei Parteien hin- und herschalten. Wenn jedoch mehr als ein Anruf wartet, antwortet der elektronische Assistent auf „Drücke den Warteknopf", indem er den Anrufer, mit dem der Teilnehmer momentan spricht, in die Wartestellung bringt und sagt „Soll ich Sie mit (Name des Anrufers) verbinden?" Wenn der Teilnehmer mit „ja" antwortet, verbindet ihn der elektronische Assistent mit dem identifizierten Anrufer. Wenn der Teilnehmer mit „nein" antwortet, sagt der elektronische Assistent erneut „Soll ich Sie mit (Name des nächsten Anrufers) verbinden?" Auf diese Weise schaltet der elektronische Assistent durch die Gruppe von Parteien, die in der Wartestellung sind, bis der Teilnehmer anzeigt, dass er eine Verbindung mit einer der Parteien zu errichten wünscht.
  • Erstelle einen Kontakt
  • Unter den anderen, für den Teilnehmer verfügbaren Anweisungen gibt es bestimmte Nicht-Nachrichtenobjektbildungs-Anweisungen. Diese werden benutzt, um Kontakte zu bilden, die zu der Kontaktliste der Teilnehmer hinzugefügt werden, und um einen Anruf und aufgezeichnete Erinnerungen zu bilden, die beide durch den Cron-Agenten zur Abgabe an den Teilnehmer zur geeigneten Zeit gehalten werden. Über eine Telefonunterhaltung ruft der Teilnehmer diese Anweisungen auf, indem er sagt: „Erstelle einen Kontakt", Erinnere mich anzurufen" und „Erinnere mich". Ein beispielhafter Dialog, der sich durch Aufruf der Anweisung „Erstelle einen Kontakt" ergibt, ist in 28 gezeigt. Die Mechanismen zur Verwirklichung dieses Dialogs (und andere Dialoge, die unten beschrieben werden) über den Kanal sind die Gleichen wie die zuvor Beschriebenen und werden in den folgenden Erläuterungen nicht wiederholt.
  • Aufgrund des Empfangs einer Anweisung „Erstelle einen Kontakt" fragt der elektronische Assistent den Teilnehmer „Welche Art – Person, Ort oder Gruppe?". Der Teilnehmer antwortet, indem er eine dieser Arten identifiziert. In dem dargestellten Dialog von 28 antwortet der Teilnehmer, indem er sagt: „Person". Der elektronische Assistent fragt dann nach dem Namen der Person. Da der elektronische Assistent für den Namen des Kontaktes die Vokalisierung des Teilnehmers verwenden wird, bittet er den Teilnehmer, den Namen des Kontaktes ein zweites Mal zu wiederholen, um die Qualität der gespeicherten Vokalisierung zu verbessern.
  • Nachdem der Teilnehmer den Namen des Kontaktes identifiziert hat, fordert der elektronische Assistent vom Teilnehmer, eine Telefonnummer hinzuzufügen, indem er fragt: „Welche Telefonnummer?". Als Antwort kann der Teilnehmer sein Heim, die Arbeit, das Mobiltelefon oder etwas anderes identifizieren. In dem veranschaulichten Beispiel antwortet der Teilnehmer, indem er „Arbeit" sagt. Der elektronische Assistent fragt sodann nach der Telefonnummer, und der Teilnehmer gibt die Nummer, gefolgt von der Taste # ein. Der elektronische Assistent bestätigt den Empfang der Nummer, indem er sagt: „Habe es. Was nun?"
  • Wenn der Teilnehmer zusätzliche Informationen für diesen Kontakt einzugeben wünscht, verwendet er die Anweisung „Ergänze es". Der elektronische Assistent antwortet mit der Frage „Was?". Hierzu antwortet der Teilnehmer durch Identifizierung des speziellen Informationsgegenstandes, den er hinzufügen oder ergänzen möchte. Wenn der Teilnehmer sagt „Priorität", fragt der elektronische Assistent „Normal oder hoch?". Nachdem der Teilnehmer eine der verfügbaren Prioritäten ausgewählt hat, zeigt der elektronische Assistent an, dass er bereit ist für eine andere Anweisung, indem er sagt: „Habe es". Wenn der Teilnehmer weitere Informationen für diesen Kontakt hinzufügen und modifizieren möchte, nutzt er erneut die Anweisung „Ergänze es", gefolgt durch einen Hinweis, welche Information hinzuzufügen oder zu ändern ist. In dem dargestellten Beispiel ist das nächste für die Ergänzung durch den Teilnehmer ausgewählte Element die Buchstabierung des Namens des Kontaktes. In Beantwortung teilt der elektronische Assistent dem Teilnehmer mit, dass er bereit ist, die neue Information anzunehmen, indem er sagt: „Beginne nun mit dem Buchstabieren".
  • Nachdem die Buchstabierung eingegeben worden ist, zeigt der elektronische Assistent seine Bereitschaft für die nächste Anweisung des Teilnehmers an. Wenn keine Anweisung innerhalb einer vorbestimmten Zeitperiode folgt, fordert der elektronische Assistent den Teilnehmer zu einer Anweisung auf. Wenn der Teilnehmer anzeigt, dass er momentan keine weiteren Ergänzungen oder Veränderungen hat, zeigt der elektronische Assistent an, dass das „Erstellen eines Kontaktes" vorüber ist, indem er sagt: „Erledigt".
  • Der Teilnehmer kann ebenfalls neue Kontakte bilden, indem er diese aus dem Telefonbuch kopiert. Telefonbucheinträge besitzen jedoch keine ihnen zugeordnete Stimmenidentifikationen. Wenn daher der Teilnehmer einen Eintrag aus dem Telefonbuch kopiert, muss er eine Stimmenidentifizierung hinzufügen, um ihn zum Teil seiner Kontaktliste zu machen.
  • Schließlich kann ein Kontakt als Folge des Empfangs einer Nachricht mit eingeschlossenem Kontakt gebildet werden. Beim Betrachten einer Nachricht, die einen Kontakt enthält, fragt der Assistent den Teilnehmer, ob er den Kontakt aus der Nachricht in die Kontaktliste übertragen möchte. Wenn der Teilnehmer antwortet, indem er „ja" sagt, dann wird eine Prozedur ausgeführt, die ähnlich der ist, bei der Telefonbuchlisten gesichert werden.
  • Es sei vermerkt, dass das System in der Lage ist, Telefonnummern unter anderen Umständen aufzunehmen und diese aufgenommene Information später zu benutzen, um den Teilnehmer zu unterstützen. Wenn z. B. der Assistent auf einen Anruf antwortet und dem Anrufer die Wahlmöglichkeit anbietet, eine Nachricht für den Teilnehmer zu hinterlassen, so bittet er den Anrufer zunächst, seine Telefonnummer einzugeben. Nachdem die Telefonnummer eingegeben wurde, zeichnet der elektronische Assistent die gesprochene Nachricht des Anrufers auf. Ebenso wird, wenn der Teilnehmer eine andere Nummer durch den elektronischen Assistenten wählt, diese gewählte Nummer im Gedächtnis behalten. Diese in Erinnerung behaltene Information kann später bei der Antwort auf eine Anweisung „Rufe sie an" verwendet werden oder um einen Kontakt für die Person oder den Ort zu bilden, die oder der durch die erinnerte Telefonnummer repräsentiert wird.
  • Erinnere mich
  • Wie zuvor angezeigt, kann ein Teilnehmer die Anweisungen „Erinnere mich" und „Erinnere mich anzurufen" verwenden, um Erinnerungen zu bilden. Die diesen Aufgaben zugeordneten Dialoge sind in den 29 und 30 entsprechend gezeigt.
  • Um eine Erinnerung zu bilden, gibt der Teilnehmer die Anweisung „Erinnere mich" aus. Dies veranlasst den Assistenten, die Erinnerungsaufgabe mit einer Eigenschaft aufzurufen, um die Bildung einer aufgezeichneten Erinnerung anzuzeigen. An dieser Stelle fordert der Assistent die Information an, woran der Benutzer erinnert werden möchte. An dieser Stelle beginnt er, was immer der Teilnehmer ins Telefon sagt, als Nachricht zu speichern, damit es abgespielt werden kann, wenn die Erinnerung fällig wird. Der Teilnehmer zeigt das Ende der Nachricht durch Drücken der Taste # an, und der elektronische Assistent speichert die aufgezeichnete Nachricht in seiner Datenbank.
  • Nachdem die Aufzeichnung vollständig ist, beteiligt sich der elektronische Assistent am weiteren Dialog mit dem Teilnehmer, um einen Termin zu erstellen, an dem die Erinnerung abzuliefern ist. Der elektronische Assistent fragt: „Wann?". Der Teilnehmer antwortet unter Verwendung von einer von verschiedenen Konventionen, die im System für das Festlegen eines Termins verfügbar sind. Die Konventionen sind unter der Tab. III gezeigt. In dem beschriebenen Beispiel antwortet der Moderator, indem er sagt: „heute". Der elektronische Assistent fragt dann den Teilnehmer nach einer Zeit. Unter Verwendung der Tastensignale DTMF gibt der Teilnehmer eine bestimmte Zeit ein (z. B. 530 für 5 Uhr 30). Der elektronische Assistent antwortet durch Bestätigen der Zeit, die der Teilnehmer angegeben hat und bittet um eine Bestätigung durch den Teilnehmer. Wenn der Teilnehmer die Zeit bestätigt, zeigt der elektronische Assistent an, dass der Dialog erfolgreich beendet wurde, indem er sagt: „Habe es, ich werde meinen Wecker einstellen." Wenn der Teilnehmer die Zeit nicht bestätigt (entweder weil der elektronische Assistent einen Erkennungsfehler gemacht hat oder weil er es sich anders überlegt hat) wiederholt der elektronische Assistent die oben beschriebene Operationsfolge, um eine neue Zeit zu erhalten.
  • Wenn der Teilnehmer die Anweisung „Erinnere mich anzurufen" ausgibt (s. 30), so fragt die „Bilde-Erinnerung"-Aufgabe den Teilnehmer „Wen anrufen?". Die Antwort des Teilnehmers „John Smith" wird durch die Stimm-Erkennungsfähigkeiten der ASR-Karte erkannt und mit den Sprachgewohnheiten abgeglichen, die mit der Kontaktliste des Teilnehmers gespeichert sind und die Kontakte des Teilnehmers identifizieren. Wenn eine Übereinstimmung gefunden wird (d. h. wenn ein Kontakt aus der Kontaktliste des Teilnehmers identifiziert wird), wird ein Verweis auf diesen Kontakt als Teil dieser Anruferinnerung gesichert.
  • Der elektronische Assistent beteiligt sich sodann bei dem zuvor beschriebenen Dialog mit dem Teilnehmer, um eine Abgabezeit für die Erinnerung zu erhalten. Nachdem die Abgabezeit eingegeben worden ist, fragt der elektronische Assistent den Teilnehmer: „Sollte ich das Thema für den Anruf kennen?". Wenn der Teilnehmer das bestätigt, sagt der elektronische Assistent „Aufzeichnung ...", um dem Teilnehmer mitzuteilen, dass er mit der Aufzeichnung beginnen kann. Wie zuvor, beendet der Teilnehmer die Aufzeichnung mit der Taste #. Als Antwort bestätigt der elektronische Assistent, dass die Anweisung empfangen wurde, indem er sagt: „Habe es. Ich werde meinen Wecker stellen."
  • Der elektronische Assistent sendet die vollständige Erinnerung über den Paketmechanismus an den Cron-Agenten. Zunächst packt er die Erinnerung in ein Paket, das an den Teilnehmer adressiert ist und seine gewünschte Ablieferzeit enthält. Er ordnet dann dieses Paket in einem zweiten Paket an, das durch den Cron-Agenten adressiert wird. Die VM liefert das äußere Paket an den Cron-Agenten. Beim Empfang öffnet der Cron-Agent das Paket und zieht das darin befindliche Paket heraus; er prüft die Abgabezeit für dieses Paket und legt es in einer zeitlich geordneten Warteschlange ab. Der Cron-Agent verfolgt die Abgabezeit des äußeren Paketes.
  • Behandlung der Erinnerungsaufgabe:
  • Zur Abgabezeit wacht der Cron-Agent auf und sendet das Erinnerungspaket an die angezeigte Adresse. Wie zuvor beschrieben, handhabt die VM die Abgabe des Erinnerungspaketes. Wenn keine Meistersitzung abläuft, startet die VM eine Sitzung und liefert das Paket an diese neue Sitzung. Wenn eine Meistersitzung abläuft, liefert die VM das Paket an die Meistersitzung ab.
  • Wenn, unter Bezugnahme auf 31, die Sitzung, die das Paket empfängt, feststellt, dass sie ein Erinnerungspaket erhalten hat, startet sie eine Erinnerungsbehandlungs-Aufgabe. Die Erinnerungsbehandlungs-Aufgabe prüft, ob die laufende Sitzung eine Meistersitzung ist (d. h. ob die Sitzung das Fokus-Gadget besitzt) (Schritt 700). Wenn die Sitzung mit dem Teilnehmer einen Dialog führt, teilt der elektronische Assistent dem Teilnehmer unter Verwendung des vorliegenden Fokus-Gadgets die Erinnerung mit (Schritt 702). Das Verfahren, das für die Mitteilung an den Teilnehmer verwendet wird, hängt von dem Kanal ab, über den der Teilnehmer mit der Sitzung verbunden ist. Wenn der Teilnehmer über einen Telefonkanal verbunden ist, unterbricht der elektronische Assistent kurz seinen Anruf und berichtet ihm, dass eine Erinnerung fällig geworden ist. Nach der Mitteilung der Erinnerung an den Teilnehmer legt der elektronische Assistent die Erinnerung in einer aktiven Erinnerungsliste in der Schachtel ab, wo sie der Teilnehmer während der laufenden oder irgendwelchen nachfolgenden Sitzungen betrachten kann (Schritt 703). Der Benutzer kann sodann eine Anweisung „Finde aktive Erinnerungen" aufrufen, um die jüngst empfangene Erinnerung zu behandeln.
  • Wenn der Teilnehmer nicht mit der Sitzung verbunden ist, initiiert die Erinnerungsbehandlungs-Aufgabe eine Lokalisier- und Mitteilungsaufgabe. Die Lokalisier- und Mitteilungsaufgabe arbeitet in der zuvor beschriebenen Weise, außer dass anstelle der Mitteilung an den Teilnehmer, dass ein Anrufer ihn zu erreichen versucht, sie dem Teilnehmer die Erinnerung mitteilt. Wenn die Lokalisier- und Mitteilungsaufgabe nicht in der Lage ist, eine Verbindung mit dem Teilnehmer herzustellen, sendet sie eine Antwort über eine fehlgeschlagene Verbindung an die Erinnerungshandhabungs-Aufgabe. In Beantwortung dieser prüft die Erinnerungshandhabungs-Aufgabe, ob der Teilnehmer durch eine nicht-aktive Einrichtung erreicht werden kann, z. B. durch Überprüfung eines Pagers, der dem Teilnehmer zugeordnet ist. Wenn keine alternative Einrichtung für die Mitteilung an den Teilnehmer vorliegt, legt der elektronische Assistent die Erinnerung auf dem Stapel nicht geplanter Erinnerungen ab (Schritt 710). Wenn eine alternative Einrichtung zur Mitteilung an den Teilnehmer vorliegt, sendet der elektronische Assistent eine Mitteilung an das alternative Gadget (Schritt 708), bevor er sie auf dem Stapel für die nicht geplante Erinnerung ablegt.
  • Wenn die Lokalisier- und Mitteilungsaufgabe eine Verbindung mit dem Teilnehmer errichtet, wird die Erinnerung zum Teilnehmer zurückgespielt (Schritt 720). Danach fragt der elektronische Assistent den Teilnehmer, ob er die Erinnerung neu planen möchte (Schritt 722). Wenn er sie neu planen möchte, wird eine Neuplanungsaufgabe ausgeführt, die den Teilnehmer in die Lage versetzt, die Abgabezeit für die Erinnerung zu verändern (Schritt 724). Die modifiziert Erinnerung wird sodann für die Abgabe zu der neu geplanten Zeit zurück zum Cron-Agenten gesendet. Die Erinnerungshandhabungs-Aufgabe startet sodann den Anweisungsaufgaben-Schleifenablauf, der dem Teilnehmer gestattet, auf den vollen Anweisungssatz zuzugreifen (Schritt 726). Außerdem kann ein Teilnehmer zu jeder Zeit während einer Sitzung anhängige Erinnerungen unter Verwendung der „Ergänze es"-Aufgabe auffinden und neu planen (s. Anhang A).
  • Wenn der Teilnehmer entscheidet, die Erinnerung nicht neu zu planen, wird sie auf einem Stapel für nicht geplante Erinnerungen abgelegt (Schritt 725), und die Erinnerungshandhabungs-Aufgabe startet die Anweisungsaufgaben-Schleife (Schritt 724). Wenn die Anruferinnerung einen Kontakt identifiziert, kann an dieser Stelle der Teilnehmer die Anweisung „Rufe sie an" benutzen. Da die Anruferinnerung einen Verweis auf den Kontakt in der Kontaktliste des Teilnehmers umfasst, interpretiert der elektronische Assistent die Anweisung „Rufe sie an", als ob sie äquivalent zu einer Anweisung „Anrufen" wäre, bei der der Kontakt der einzige in der Hand ist. Der elektronische Assistent verwendet das Gadget, das in dem Objekt des Kontaktes identifiziert ist, um den Anruf zu tätigen.
  • Wenn die Lokalisier- und Mitteilungsaufgabe das Gadget des Teilnehmers erreicht, aber die Verbindung zum Teilnehmer nicht angenommen wird, legt der elektronische Assistent die Erinnerung in dem Stapel der aktiven Erinnerungen ab (Schritt 703).
  • Andere Aufgaben, die durch das System umgesetzt werden, werden am besten durch Beispiele der Anweisungen und Dialoge beschrieben, die das System unterstützt, wenn es mit dem Teilnehmer zusammenwirkt. Eine Zusammenfassung der Anweisungen wird im Anhang A am Ende dieser Beschreibung gegeben.
  • Finde Anweisung:
  • Bezugnehmend auf 32 kann der Teilnehmer auf verschiedene Informationsgegenstände, die für ihn durch die Verwendung der Anweisung „Finden" gespeichert sind, zugreifen und sie wieder aufsuchen und betrachten. Wenn der Teilnehmer „Finden" sagt, während der elektronische Assistent die Anweisungsaufgaben-Schleife bearbeitet, erwidert der elektronische Assistent durch die Frage „Was finden?". An dieser Stelle kann der Teilnehmer einen von sieben unterschiedlichen Gegenständen identifizieren, nämlich einen Kontakt, alle Kontakte, Telefonbuchlisten, Nachrichten, neue Nachrichten, Nachrichten von, gesicherte Nachrichten, Erinnerungen und Abfall. Die Operation der Anweisung „Finden" wird veranschaulicht durch die Verwendung der Kontakte als den Gegenstand, mit dem der Teilnehmer etwas tun möchte.
  • Wenn der Teilnehmer gefragt wird, was erfinden möchte, antwortet er durch die Feststellung „Alle Kontakte". Der elektronische Assistent greift sodann auf die Kontaktliste zu und berichtet dem Teilnehmer, wie viele Kontakte auf der Liste sind. Dann wartet der elektronische Assistent auf eine Anweisung vom Teilnehmer. Der Teilnehmer kann die Kontaktliste nach einem gegebenen Namen absuchen, indem er die Anweisung ausgibt „Finde Kontakt". Daraufhin fragt der elektronische Assistent „Kontaktname?". Der Teilnehmer antwortet mit einem Namen, z. B. John Smith. Der elektronische Assistent zeigt durch die Erwiderung „Kontaktname: John Smith" an, dass er das Benutzerobjekt für diesen Kontakt in seiner Hand hat. Der Teilnehmer kann dann den elektronischen Assistenten instruieren: (1) Beschreibe es durch Ausgabe der Beschreibungsanweisung; (2) ergänze es durch Ausgabe der Ergänzungsanweisung; (3) streiche es durch Ausgabe der „Wirf es weg"-Anweisung oder (4) rufe sie an durch Verwendung der Anweisung „Rufe sie an".
  • Wenn der Teilnehmer die Beschreibungsanweisung ausgibt, antwortet der elektronische Assistent durch Bericht der für diesen Kontakt gespeicherten Information an den Teilnehmer.
  • Wenn der Teilnehmer die Ergänzungsanweisung ausgibt, initiiert der elektronische Assistent einen Dialog ähnlich zu dem zuvor beschriebenen mit der Bildungsanweisung, die dem Teilnehmer gestattet, die für diesen Kontakt gespeicherte Information zu modifizieren oder zu ergänzen.
  • Der Teilnehmer kann den elektronischen Assistenten instruieren, eine Nummer zu wählen, indem er sagt „Anrufen", was den elektronischen Assistenten veranlasst, die Anrufaufgabe aufzurufen. Die Anrufaufgabe bittet den Teilnehmer, die Nummer vorzugeben. Diese kann entweder als Bezugnahme auf einen Kontakt vorgegeben werden durch Eingabe einer bestimmten Nummer oder durch die Mitteilung „Diese eine", was sich auf eine Kontaktnachricht oder eine Anruferinnerung bezieht, auf die verwiesen wird. Sodann wählt er die Nummer. Sobald das Läuten beginnt, errichtet der elektronische Assistent eine Verbindung zwischen der Leitung des Teilnehmers und der abgehenden Anrufleitung, so dass der Teilnehmer den Anruf vervollständigen kann. Wenn diese Verbindung erfolgt, schaltet der elektronische Assistent automatisch in seinen Hintergrundmodus, in dem er nur auf eine bestimmte Anweisung antwortet (z. B. „Wildfire"), die ihn veranlasst, zurückzuschalten in den Vordergrundmodus. In seinem Hintergrundmodus sperrt der elektronische Assistent seinen vollen Anweisungssatz, so dass die Aussprache der Anweisungsworte während des Konversationsverlaufes nicht unbeabsichtigt eine Anweisungsaufgabe aufrufen wird.
  • Immer, wenn der elektronische Assistent seine Anweisungsaufgabe bearbeitet, die dem Teilnehmer vollen Zugriff zu seinem Anweisungssatz gibt, kann der Teilnehmer den elektronischen Assistenten instruieren, in seinen Hintergrundmodus zu gehen. Er tut dies, indem er sagt: „Das ist alles im Moment." Als Antwort erwidert der elektronische Assistent: „Sag ,Wildfire", wenn du mich benötigst", und schaltet in seinen Hintergrundmodus. Wenn der Teilnehmer Zugriff auf den vollen Anweisungssatz seines elektronischen Assistenten benötigt, sagt er „Wildfire". Als Antwort bewegt sich der elektronische Assistent zurück in seinen Vordergrundmodus und antwortet: „Hier bin ich", womit bestätigt wird, dass der elektronische Assistent vollständig aktiv ist und der Teilnehmer nun auf den vollen Anweisungssatz zugreifen kann, der durch den elektronischen Assistenten unterstützt wird.
  • Erzeugen eines Übersteuerungsplanes:
  • Wie zuvor angezeigt, gestatten die Anweisungen „Ich bin da" und „Erstelle einen Reiseplan" dem Teilnehmer, einen Übersteuerungsplan zu erzeugen. Ein typischer Dialog für jede dieser Anweisungen ist in den 33 und 34 gezeigt. Der Dialog für jede dieser Anweisungen ist sehr einfach. Die Anweisung „Ich bin da" wird verwendet, um eine einzige Modifikation für den Terminplan des Teilnehmers zu erzeugen; die Anweisung „Erstelle einen Reiseplan" wird zur Erzeugung von komplexeren Übersteuerungsplänen verwendet.
  • Wenn der Teilnehmer äußert „Ich bin da", antwortet der elektronische Assistent mit der Frage: „Was tust du?". In dem beschriebenen Ausführungsbeispiel kann der Teilnehmer auf eine der vier folgenden Arten antworten:
    Anrufe entgegennehmen
    Nur wichtige Anrufe entgegennehmen
    Nicht verfügbar
    Verfolge Terminplan
  • „Anrufe entgegennehmen" zeigt dem elektronischen Assistenten an, dass alle Anrufe an den Teilnehmer geleitet werden sollen, „Nur wichtige Anrufe annehmen" zeigt an, dass nur Anrufe von Kontakten, die mit hoher Priorität ausgewiesen sind, weitergeleitet werden sollen; „Nicht verfügbar" zeigt an, dass keine Anrufe weitergeleitet werden sollen; und „Verfolge Terminplan" zeigt an, dass der Übersteuerungsplan zugunsten des Default-Terminplans aufgehoben werden soll.
  • In dem veranschaulichten Beispiel antwortet der Teilnehmer, indem er sagt: „Nimm Anrufe entgegen." Als Nächstes fragt der elektronische Assistent: „Wo?". Hierauf kann der Teilnehmer mit einer der folgenden Angaben antworten: Arbeit, Heim, Auto, Mobil oder etwas anderes, wobei bei jedem angenommenen wird, dass eine entsprechende Adresse oder Telefonnummer vorliegt.
  • Nachdem der Teilnehmer angezeigt hat, wie er erreichbar ist, fordert der elektronische Assistent ihn auf, anzugeben, für wie viele Stunden, worauf der Teilnehmer mit einer Nummer antwortet. Nachdem der Teilnehmer die Zeit angegeben hat, bestätigt der elektronische Assistent seine Antwort, indem er sagt: „Erledigt."
  • Die Anweisung „Erstelle einen Reiseplan", von der ein Beispieldialog in 34 gezeigt ist, arbeitet in einer ähnlichen Weise, außer dass sie dem Teilnehmer gestattet, gesprochene Anweisungen zu verwenden, um einen Übersteuerungsplan in gewünschter Größe aufzubauen. Mit anderen Worten: Der elektronische Assistent fragt, nachdem die erste Eingabe abgeschlossen worden ist: „Und dann wirst du da sein?". Als Antwort kann der Teilnehmer mehr Informationen in den Terminplan eingeben oder die Anweisungsroutine beenden, indem er sagt: „Zurück zum Terminplan".
  • Anruf-Anweisungen:
  • Ein Teilnehmer kann seinen elektronischen Assistenten bitten, einen Telefonanruf in einer von drei Arten zu tätigen. Wenn die anzurufende Partei ein bekannter Kontakt ist, kann der Teilnehmer den Namen des Kontaktes identifizieren, und der elektronische Assistent wird die erforderliche Information erhalten, um den Anruf von der Kontaktliste des Teilnehmers zu tätigen. Wenn die Partei kein bekannter Kontakt ist, kann der Teilnehmer die Partei identifizieren und entweder durch Stimme oder durch DTMF eine anzurufende Telefonnummer vorgeben. Die dritte Art ist durch eine Information vorgegeben, die sich aus dem Kontext ergibt. Das heißt, wenn der elektronische Assistent gerade eine Voice-Mail-Nachricht für den Teilnehmer aufgesucht hat, kann der Teilnehmer sagen: „Rufe sie an.", und der elektronische Assistent wird die Partei anrufen, die die Voice-Mail hinterlassen hat. Zusätzlich könnte sie sagen: „Anrufen" „diesen". Dies ist möglich, weil die gespeicherte Nachricht den Anrufer entweder als Kontakt oder als Telefon identifiziert, von dem der Anrufer gebeten wurde, etwas zu hinterlassen.
  • Die gespeicherten Objekte für die Kontakte umfassen ebenfalls einen Hinweis zu einer Notiz (z. B. eine Stimmnachricht), die der Teilnehmer erzeugen und dem Objekt hinzufügen kann. Wenn der Teilnehmer seinen elektronischen Assistenten instruiert, den Kontakt anzurufen, spielt der elektronische Assistent die gespeicherte Nachricht für den Teilnehmer ab, während er versucht, die Verbindung mit dem Kontakt aufzubauen. Die Notiz kann Information über den Kontakt umfassen, an die der Teilnehmer jedes Mal erinnert werden möchte, wenn er diesen Kontakt anruft. Zum Beispiel kann er wünschen, den Namen der Sekretärin des Kontaktes zu kennen, so dass er sie mit dem Namen ansprechen kann, wenn er den Anruf beantwortet.
  • Verbindungsanforderung:
  • Es ist einem Teilnehmer möglich, sich auf seinen Assistenten zu beziehen, wenn er mit einem anderen Teilnehmer zu sprechen wünscht, ohne ihn tatsächlich anzurufen. Dies wird als „Anforderung einer Verbindung mit einem anderen Benutzer" bezeichnet. Ein Mechanismus, um dies umzusetzen, liegt für den Teilnehmer darin, explizit eine Verbindung anzufordern. Dies veranlasst den Assistenten des Teilnehmers, den elektronischen Assistenten, an den die Anforderung erfolgt, zu informieren, dass eine Verbindung an irgendeiner Stelle gewünscht ist. Wenn diese Forderung empfangen wird, speichert der empfangende Assistent die Anforderung, bis sie seinem Teilnehmer mitgeteilt wird. Während der nächsten Sitzung mit dem Teilnehmer informiert der empfangende Assistent seinen Teilnehmer über die angeforderte Verbindung und die Verfügbarkeit der Partei, die die Verbindung anfordert. Der Teilnehmer kann sodann entscheiden, sich mit der anderen Partei in Verbindung zu setzen oder die Anforderung zu ignorieren.
  • Telefonmerkmal:
  • Das Merkmal „Telefon" ist ein Objekt innerhalb des Systems, das eine intelligente telefonähnliche Funktionalität auf der Spitze des Konferenzobjektes bildet. Das Merkmal „Telefon" gestattet dem Benutzer, mehrere Anrufe zu verwalten. Der Benutzer kann verlangen, dass sein Assistent verschiedene Anrufe warten lässt, bei bestimmten Anrufen auflegt und Anrufe zu anderen Kontakten über das Telefonmerkmal weiterschaltet. Wenn ein Teilnehmer unter Verwendung der intelligenten Anruferwartung des Systems einen Anruf empfängt, wird der Anruf durch das Merkmal „Telefon" verwaltet. Die derzeit verwirklichte Funktionalität umfasst die Benutzeranweisungen: Anrufen, Auflegen und „Drücke den Warteknopf".
  • Diese Anweisungen werden verwendet, um eine unbegrenzte Anzahl gleichzeitiger Anrufe zu handhaben.
  • Virtueller Korridor.
  • Wie zuvor angezeigt, kann der Teilnehmer seinen elektronischen Assistenten fragen, was sich in dem virtuellen Büro befindet, was er in seiner Hand hält oder worauf er verweist, was sich im „Papierkorb" befindet, welche Nachrichten eingetroffen sind usw. Ein Konzept eines virtuellen Korridors wird jedoch ebenfalls durch das beschriebene Ausführungsbeispiel unterstützt. Der virtuelle Korridor besteht aus einer Gruppe von virtuellen Büros. Der Teilnehmer kann seinen elektronischen Assistenten fragen, welche anderen Teilnehmer gegenwärtig mit ihren elektronischen Assistenten einen Dialog führen, indem er die Anweisung „Wer ist sonst da?" verwendet. Dieses Merkmal kann „gefiltert" werden, so dass der Teilnehmer nur Leute sieht, die sich in seiner Kontaktliste befinden oder Mitglieder bestimmter, festgelegter Gruppen oder Teil eines bestimmten Telefonbuches sind.
  • In dem beschriebenen Ausführungsbeispiel, das die interne Umschaltung unterstützt, und bei der Vorgabe, dass das Merkmal des virtuellen Korridors dem Teilnehmer ermöglicht, andere Teilnehmer zu sehen, die sich in dem System befinden, bietet das System auch die Möglichkeit, Informationen zwischen verteilten oder wandernden Gruppen oder Teilnehmern rascher zu verbinden und gemeinsam zu benutzen, als es durch die Nachrichtenübermittlung möglich ist. Zusätzlich kann die „Sichtbarkeit" im Korridor ebenfalls die Fähigkeit umfassen, zu sehen, was die andere Person tut (z. B. am Telefon, Lesen einer Nachricht usw.). In Abhängigkeit davon, was der Teilnehmer seinem Assistenten über seine Verfügbarkeit und Zugänglichkeit erzählt hat, wird der elektronische Assistent steuern, wie sichtbar der Teilnehmer im virtuellen Korridor ist (oder wie sichtbar er sein wird).
  • Verwirklichte Assistenten
  • Das beschriebene Ausführungsbeispiel verwirklicht zwei Arten von Assistenten, nämlich den zuvor beschriebenen elektronischen Assistenten und einen Empfangsassistenten. Der Empfangsassistent ist sehr viel einfacher als der elektronische Assistent. Sein Job besteht darin, Anrufe an eine zentrale Telefonnummer entgegenzunehmen (für alle Teilnehmer eines bestimmten Systems) und die Anrufe weiterzuleiten zum Assistenten eines bestimmten Teilnehmers. Dies vermeidet die Verwendung der DID-Leitung und gestattet einer Nummer, eine große Anzahl von Teilnehmern zu handhaben. Die grundlegende Operation dieses Assistenten liegt im Fragen nach dem Anschluss des Teilnehmers, der gewählt wurde, und sodann im Ansteuern des Assistenten des Teilnehmers, um den restlichen Anruf zu handhaben. An dieser Stelle kann der Anruf in einer ähnlichen Weise gehandhabt werden wie die zuvor beschriebene Anruf-Antwortaufgabe. In dem beschriebenen Ausführungsbeispiel wird angenommen, dass nur Teilnehmer (nicht ihre Kontakte) den Empfangsassistenten benutzen. Als solches fragt der Assistent des Teilnehmers nach dem Passcode des Teilnehmers, sobald der Anschluss für den Teilnehmer eingegeben ist. Da der Assistent annehmen kann, dass es der Teilnehmer ist, muss er nicht nach dem Namen der anrufenden Person fragen, wie dies zuvor beschrieben wurde.
  • Es ist auch möglich, elektronische Assistenten mit unterschiedlicher „Persönlichkeit" zu integrieren, d. h. Assistenten, deren Funktionalität auf den speziellen Teilnehmer zugeschnitten ist, für den dieser Assistent Dienstleistungen liefert. Zum Beispiel kann ein elektronischer Assistent für Kundendienst-Vertreter vorgegeben sein. Dieser elektronische Assistent wird einen Anweisungssatz und Aufgaben verwirklichen, die geeigneter sind für die Rolle eines Kundendienst-Vertreters oder gar für eine Gruppe von Kundendienst-Vertretern. Er kann einen eingehenden Anruf behandeln, indem er dem Anrufer eine Reihe von Fragen stellt, die ausgelegt sind, um Informationen bezüglich des speziellen Problems des Kundendienstes zu sammeln. Diese Information kann durch den elektronischen Assistenten verwendet werden, um die geeignetste Person für den Empfang des Anrufes festzustellen, und sie kann auch verwendet werden, um den Kundenvertreter bei der Lösung der Probleme des Kunden zu unterstützen, indem relevante gespeicherte Daten aus einer Datenbank aufgesucht werden. Der elektronische Assistent kann den Anrufer in einer Warteschlange mit anderen Anrufern ablegen, die Kundendienstfragen haben, und sie verbinden, wenn die Systemmittel verfügbar werden.
  • Zusätzlich zu der „Kundenbindung" der Persönlichkeit und der Erfahrungen eines elektronischen Assistenten des Teilnehmers können andere, spezialisierte elektronische Assistenten dem System hinzugefügt werden. Zum Beispiel kann ein System mit einem Aktienhändler-Assistenten verbunden werden, um bestimmte Investments zu überprüfen.
  • Andere Ausführungsbeispiele liegen in den folgenden Ansprüchen.
  • Was beansprucht wird, ist:
  • Anhang A
    Figure 00890001

Claims (20)

  1. Verfahren ausgeführt von einem computergestützten elektronischen Assistenten zum Verwalten von Information- und Verbindungsressourcen für mindestens einen Teilnehmer, umfassend: Herstellen einer ersten Verbindung zwischen dem elektronischen Assistenten und dem Teilnehmer (500, 504, 510, 512); Identifizieren des Teilnehmers (504); Starten einer ersten Sitzung zwischen dem elektronischen Assistenten und dem Teilnehmer, wobei die erste Sitzung eine Folge von Ausführungen von Code zum Verwalten von Daten und zum Ausführen von Funktionen für den Teilnehmer ist (512); innerhalb der ersten Sitzung, Erhalten eines ersten Befehls, der vom Teilnehmer über die erste Verbindung an den elektronischen Assistenten wird, wobei der erste Befehl den elektronischen Assistenten anweist, eine Funktion auszuführen (512); innerhalb der ersten Sitzung, Reagieren auf den ersten Befehl durch Ausführen der Funktion (512), wobei die Funktion das Verwalten der Informations- und Verbindungsressourcen, wie vom Teilnehmer angewiesen, umfasst; und Umschalten des elektronischen Assistenten zwischen einem Vordergrundbetriebsmodus, in dem der Teilnehmer den elektronischen Assistenten interaktiv anweist, Funktionen auszuführen, und einem Hintergrundmodus, in dem der elektronische Assistent die Teilnehmer verbindung überwacht und auf einen eingeschränkten, kleineren Satz von Befehlen reagiert (512).
  2. Verfahren nach Anspruch 1, umfassend folgende Schritte: Empfangen eines Anrufs vom Teilnehmer an den elektronischen Assistenten über ein Kommunikationsmittel (500); und als Reaktion auf das Empfangen des Anrufs vom Teilnehmer, Herstellen der ersten Verbindung (500, 504, 510, 512).
  3. Verfahren nach Anspruch 1 oder 2, umfassend die Schritte: Empfangen eines hereinkommenden Anrufs an den Teilnehmer von einem Anrufer; als Reaktion auf das Empfangen des hereinkommenden Anrufs, Herstellen einer zweiten Verbindung zwischen dem elektronischen Assistenten und dem Anrufer (500, 504, 516); elektronisches Ankündigen des hereinkommenden Anrufs beim Teilnehmer über die erste Verbindung (600, 604, 606, 608, 612); als Reaktion auf das Empfangen eines Anrufannahmebefehls vom Teilnehmer über die erste Verbindung (614), Verbinden des Anrufers mit dem Teilnehmer, so dass diese miteinander kommunizieren können (622); nach dem Verbinden des Teilnehmers mit dem Anrufer, Umschalten des elektronischen Assistenten in den Hintergrundmodus (624), in dem der elektronische Assistent den Teilnehmer weiterhin über die zweite Verbindung überwacht, während der Teilnehmer mit dem Anrufer verbunden ist; und als Reaktion auf das Empfangen eines Aufrufbefehls, Umschalten des elektronischen Assistenten in den Vordergrundmodus (620).
  4. Verfahren nach irgendeinem der vorangehenden Ansprüche, wobei der Schritt des Herstellens der Verbindung als Reaktion auf den Schritt des Erkennens der Notwendigkeit, die erste Verbindung herzustellen, erfolgt; und umfassend folgende Schritte: Ausgeben einer elektronischen Anfrage durch den elektronischen Assistenten an den Teilnehmer (510); und Erkennen der, und entsprechendes Reagieren auf die Antwort des Teilnehmers auf die elektronischen Anfrage (510).
  5. Verfahren nach irgendeinem der vorangehenden Ansprüche, wobei der Schritt des Herstellens der Verbindung folgende Schritte umfasst: Ausführen eines Lokatoralgorithmus zum Bestimmen des wahrscheinlichen Aufenthaltsortes des Teilnehmers zu einem bestimmten Zeitpunkt; und wenn der Lokatoralgorithmus (600) einen Ort bestimmt, an dem sich der Teilnehmer wahrscheinlich aufhält, das Identifizieren eines Kommunikationsgeräts (604), das zu diesem Ort gehört, wobei das zu diesem Ort gehörige Kommunikationsgerät das Kommunikationsgerät ist, zu dem die erste Verbindung hergestellt worden ist.
  6. Verfahren nach irgendeinem der vorangehenden Ansprüche, umfassend folgende Schritte: Speichern einer elektronischen Erinnerung in einer elektronischen Datenbank, die für den elektronischen Assistenten zugänglich ist, wobei die elektronische Erinnerung an den Teilnehmer adressiert ist, und die elektronische Erinnerung vom Teilnehmer angegebenen Inhalt und einen bestimmte Zeitpunkt enthält, zu der sie an den Teilnehmer geschickt werden soll; sobald die aktuelle Zeit dem bestimmten Zeitpunkt entspricht, Erkennen, dass die gespeicherte elektronische Erinnerung fällig geworden ist; als Reaktion auf das Erkennen, dass die gespeicherte elektronische Erinnerung fällig geworden ist, das Identifizieren eines Kommunikationsgeräts, durch das der Teilnehmer zum bestimmten Zeitpunkt erreicht werden kann (704); und Herstellen einer Verbindung zum Kommunikationsgerät (704) im Schritt des Herstellens einer Verbindung.
  7. Verfahren nach Anspruch 6, umfassend folgende Schritte: nach Erreichen der antwortenden Partei über das Kommunikationsgerät, elektronisches Benachrichtigen der antwortenden Partei, dass der Anruf an den Teilnehmer gerichtet ist (704); elektronisches Verständigen der antwortenden Partei, dass die antwortende Partei den Anruf annehmen kann, indem sie eine Annahmeantwort gibt (704); und falls der Anruf von der antwortenden Partei angenommen wird, elektronisches Zustellen der Inhalte der elektronischen Erinnerung an die antwortende Partei über das Kommunikationsgerät (720).
  8. Verfahren nach Anspruch 6 oder 7, umfassend folgende Schritte: Zustellen der Inhalte der elektronischen Erinnerung an die antwortende Partei (720); Aufrechterhalten der Verbindung zum Kommunikationsgerät, so dass der Teilnehmer dem elektronischen Assistenten Befehle erteilen kann (726); Überwachen der Verbindung für nachfolgende vom Teilnehmer erteilte Befehle (726); und als Reaktion auf das Empfangen nachfolgender vom Teilnehmer erteilter Befehle, Ausführen anderer Vorgänge für den Teilnehmer (726).
  9. Verfahren nach Anspruch 1, umfassend folgende Schritte: Empfangen eines hereinkommenden Anrufs eines Anrufers an den Teilnehmer (500); als Reaktion auf das Empfangen des hereinkommenden Anrufs, Herstellen einer zweiten Verbindung zwischen dem elektronischen Assistenten und dem Anrufer (500); über den Dialog zwischen dem elektronischen Assistenten und dem Anrufer über die zweite Verbindung, Bestimmen der Identität des Anrufers (504); elektronisches Warnen des Teilnehmers über die erste Verbindung, dass es einen hereinkommenden Anruf für den Teilnehmer gibt (612); elektronisches Weitergeben der Identität des Anrufers an den Teilnehmer (612); und Überwachen der ersten Verbindung auf eine vom Teilnehmer geschickte Antwort an den elektronischen Assistenten, die den elektronischen Assistenten anweist, wie er mit dem hereinkommenden Anruf verfahren soll (614).
  10. Verfahren nach irgendeinem der vorangehenden Ansprüche, wobei der Schritt des Ausführens der Funktion eine Funktion ist, die aus der Gruppe ausgewählt wird, die die folgenden Punktionen umfasst: CREATE-A-CONTACT (Verbindung herstellen), REMIND-METO-CALL (Erinnere mich anzurufen), REMIND-ME (Erinnere mich), TAKE-A-MESSAGE (Nimm eine Nachricht auf), I'LL TAKE-IT (Ich nehme den Anruf an), HOLD-ALL CALLS (Alle Anrufe halten), CALL (Anrufen), FIND (Finden), I-WILLBE (Ich werde ... sein), NEVERMIND (Außer Acht lassen), SEND-A-MESSAGE (Sende eine Nachricht), SEND A PAGE (Sende eine Seite), SEND-A REPLY (Sende eine Antwort), TELL-ME (Gib mir Bescheid), THAT-WILL-BE-ALL-FOR-NOW (Das ist alles für den Augenblick), WHAT-ARE MY-OPTIONS (Was sind meine Wahlmöglichkeiten), WHAT'S-IT-SAY (Wie lautet die Nachricht/Antwort), WHERE-WERE-WE (Wo waren wir), WHAT-ARE-YOU-HOLDING (Was hältst du bereit), DATE-IT (Datieren), GO-BACK (Gehe zurück), THROW-IT-AWAY (Verwerfen), SEND-A-COPY (Sende eine Kopie), PREVIOUS-ITEM (Vorheriger Eintrag), NEXT-ITEM (Nächster Eintrag), GIVE-THEM-A-CALL (Rufe sie an), FIRST-ITEM (Erster Eintrag), FILE-IT (Archivieren), DESCRIBE-IT (Beschreiben), FIND CONTACT (Finde Kontakt), FIND ALL-THE-CONTACTS (Finde alle Kontakte), FIND NEW-MESSAGES (Finde neue Nachrichten), FIND NEW-MESSAGES-FROM (Finde neue Nachrichten von), FIND MESSAGES (Finde Nachrichten), FIND MESSAGES-FROM (Finde Nachrichten von), FIND FILED-MESSAGES (Finde archivierte Nachrichten), FIND PHONE-BOOK-LISTING (Finde Telefonbucheintrag), FIND REMINDERS (Finde Erinnerungen), FIND TUTORIALS (Finde Hilfsanweisen), GOOD-BY (Auf Wiedersehen), IT'S ME (Ich bin es), UPDATE-IT (Aktualisieren), TRANSFER (Übertragen), CREATE-A CONFERENCE (Schaltung herstellen).
  11. Verfahren nach Anspruch 1, umfassend folgende Schritte: Empfangen eines hereinkommenden Anrufs eines Anrufers an den Teilnehmer (500); als Reaktion auf das Empfangen des hereinkommenden Anrufs (500), Herstellen einer zweiten Verbindung zwischen dem elektronischen Assistenten und dem Anrufer (500); über den Dialog zwischen dem elektronischen Assistenten und den Anrufer über die zweite Verbindung, Bestimmen der Identität des Anrufers (504); elektronisches Warnen des Teilnehmers über die erste Verbindung, dass es einen hereinkommenden Anruf für den Teilnehmer gibt (612); elektronisches Aufzeichnen der Identität des Anrufers für den Teilnehmer (504); und Überwachen der ersten Verbindung auf eine Antwort, die der Teilnehmer an den elektronischen Assistenten sendet, die den elektronischen Assistenten anweist, wie er mit dem hereinkommenden Anruf verfahren soll (614).
  12. Verfahren nach Anspruch 11, umfassend den Schritt: Erkennen der elektronisch aufgezeichneten Identität des Anrufers (504).
  13. Verfahren nach Anspruch 12, umfassend folgende Schritte: Bestimmen, ob der erkannte Anrufer gespeicherten Kriterien entspricht; Ankündigen des erkannten Anrufers, wenn die Kriterien erfüllt sind; und Ausschließen des erkannten Anrufers, wenn die Kriterien nicht erfüllt sind (516, 504).
  14. Verfahren nach Anspruch 1, umfassend folgende Schritte: Empfangen eines hereinkommenden Anrufs eines Anrufers an den Teilnehmer (504); als Reaktion auf das Empfangen des hereinkommenden Anrufs, Herstellen einer zweiten Verbindung zwischen dem elektronischen Assistenten und dem Anrufer, wobei sich der elektronische Assistent im Vordergrundmodus befindet (504); elektronisches Benachrichtigen des Teilnehmers vom hereinkommenden Anruf (612) über die erste Verbindung; als Reaktion auf das Empfangen eines Anrufannahmebefehls vom Teilnehmer über die zweite Verbindung (614), Verbinden des Anrufers mit dem Teilnehmer, so dass diese miteinander kommunizieren können (622); nach dem Verbinden des Teilnehmers mit dem Anrufer, Umschalten des elektronischen Assistenten in einen Hintergrundmodus, in dem der elektronische Assistent den Teilnehmer weiterhin über die zweite Verbindung überwacht, während der Teilnehmer mit dem Anrufer verbunden ist (624); und als Reaktion auf das Empfangen eines Aufrufbefehls, Umschalten des elektronischen Assistenten in den Vordergrundmodus.
  15. Verfahren nach Anspruch 14, wobei der zweite Befehlssatz einen Befehl einschließt, der den elektronischen Assistenten anweist, die erste Verbindung zu beenden, wobei dieser Befehl im ersten Befehlssatz nicht verfügbar ist.
  16. Verfahren nach Anspruch 14 oder Anspruch 15, wobei der zweite Befehlssatz einen Befehl einschließt, der den elektronischen Assistenten veranlasst, eine Verbindung zwischen dem Teilnehmer und einer anderen Partei herzustellen, wobei dieser Befehl im ersten Befehlssatz nicht verfügbar ist.
  17. Verfahren nach irgendeinem der Ansprüche 14 bis 16, wobei der zweite Befehlssatz einen Befehl einschließt, der den elektronischen Assistenten veranlasst, eine Nachricht an eine andere Partei zu senden, wobei dieser Befehl im ersten Befehlssatz nicht verfügbar ist.
  18. Verfahren nach irgendeinem der vorangehenden Ansprüche, wobei der Schritt des Empfangens das Verwenden von Spracherkennung zur Ausführung umfasst.
  19. Verfahren nach irgendeinem der vorangehenden Ansprüche, zum Verwalten der Ressourcen von mehreren Teilnehmern, das das Verbinden der Teilnehmer durch ein gemeinsames Netzwerk umfasst.
  20. Verfahren nach irgendeinem der vorangehenden Ansprüche, wobei das Reagieren auf den Schritt das Verwenden von mehreren Multimediainterfacegeräten umfasst.
DE69531160T 1994-09-30 1995-09-13 Netzwerkbasierter kundiger assistent Expired - Lifetime DE69531160T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US316635 1989-02-28
US08/316,635 US5652789A (en) 1994-09-30 1994-09-30 Network based knowledgeable assistant
PCT/US1995/011737 WO1996011542A2 (en) 1994-09-30 1995-09-13 A network based knowledgeable assistant

Publications (2)

Publication Number Publication Date
DE69531160D1 DE69531160D1 (de) 2003-07-31
DE69531160T2 true DE69531160T2 (de) 2004-05-06

Family

ID=23229941

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69531160T Expired - Lifetime DE69531160T2 (de) 1994-09-30 1995-09-13 Netzwerkbasierter kundiger assistent

Country Status (6)

Country Link
US (2) US5652789A (de)
EP (2) EP0788704B1 (de)
JP (2) JPH10509847A (de)
CA (1) CA2201298C (de)
DE (1) DE69531160T2 (de)
WO (1) WO1996011542A2 (de)

Families Citing this family (488)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0542628B1 (de) * 1991-11-12 2001-10-10 Fujitsu Limited Vorrichtung zur Sprachsynthese
US7168084B1 (en) 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
US9286294B2 (en) 1992-12-09 2016-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content suggestion engine
US6459910B1 (en) * 1995-06-07 2002-10-01 Texas Instruments Incorporated Use of speech recognition in pager and mobile telephone applications
FI99072C (fi) * 1995-06-08 1997-09-25 Nokia Telecommunications Oy Menetelmä toimitusvahvistusten antamiseksi puhelinverkossa suoritetuista sanomatoimituksista
US6411682B1 (en) * 1995-09-21 2002-06-25 Aspect Telecommunications Corporation Computer controlled paging and telephone communication system and method
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
FI101661B (fi) 1996-01-08 1998-07-31 Nokia Mobile Phones Ltd Puhelimen oman puhelinvastaajan aktivointi soittajan numeron mukaan
US7092494B1 (en) * 1996-01-16 2006-08-15 Global Tel★Link Corporation Telephone system
US7035914B1 (en) 1996-01-26 2006-04-25 Simpleair Holdings, Inc. System and method for transmission of data
US7136475B1 (en) * 1999-07-27 2006-11-14 Aspect Communications Corporation Call Management system with call control from user workstation computers
US5946386A (en) * 1996-03-11 1999-08-31 Xantel Corporation Call management system with call control from user workstation computers
CA2171802C (en) * 1996-03-14 2001-06-05 Richard Denison Mcdonald Comparative performance modeling for distributed object oriented applications
US6430281B1 (en) * 1996-03-14 2002-08-06 British Telecommunications Public Limited Company Intelligent telecommunications network providing automated call booking, call reconnection and diary booking services
US6578044B1 (en) * 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US5768347A (en) * 1996-05-31 1998-06-16 Siemens Business Communication Systems, Inc. Method of providing limited access to preserve privacy within a message system
US20030195848A1 (en) * 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US6108688A (en) * 1996-06-12 2000-08-22 Sun Microsystems, Inc. System for reminding a sender of an email if recipient of the email does not respond by a selected time set by the sender
US6157640A (en) * 1996-06-25 2000-12-05 Ericsson Inc Providing feature logic control in parallel with voice over a single subscriber access
WO1998000958A1 (en) * 1996-06-28 1998-01-08 Advanced Micro Devices, Inc. Telephone calling party announcement system and method
US5970133A (en) * 1996-07-12 1999-10-19 At&T Corp Call branding system
US5729592A (en) * 1996-07-25 1998-03-17 Lucent Technologies Inc. Calling party identification announcement service
IL119364A (en) * 1996-10-06 2000-11-21 Icq Inc Communications system
US5896544A (en) * 1996-12-26 1999-04-20 Intel Corporation Software device for supporting a new class of PC peripherals
SE9604805L (sv) * 1996-12-27 1998-06-28 Ericsson Telefon Ab L M En mobil kommunikationsenhet
US6411696B1 (en) * 1996-12-31 2002-06-25 Intel Corporation System for finding a user with a preferred communication mechanism
WO1998032269A1 (en) * 1997-01-15 1998-07-23 Stenger Robert J Automated call programming system and method of operation
US6058474A (en) * 1997-01-24 2000-05-02 Texas Instruments Incorporated Method and apparatus for DMA boot loading a microprocessor without an internal ROM
US6104802A (en) 1997-02-10 2000-08-15 Genesys Telecommunications Laboratories, Inc. In-band signaling for routing
US7031442B1 (en) 1997-02-10 2006-04-18 Genesys Telecommunications Laboratories, Inc. Methods and apparatus for personal routing in computer-simulated telephony
US6480600B1 (en) 1997-02-10 2002-11-12 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
EP1012765A4 (de) * 1997-02-24 2003-01-15 Wildfire Communications Inc Verfahren zur vermehrung von systemmitteln verfügbar für einen benutzer
US6750881B1 (en) 1997-02-24 2004-06-15 America Online, Inc. User definable on-line co-user lists
US6563914B2 (en) * 1997-02-26 2003-05-13 Call Sciences Limited Personal web-based teleconferencing method and system
US7076044B2 (en) * 1997-02-26 2006-07-11 Qwest Communications International, Inc. Call queuing notification
US6775264B1 (en) * 1997-03-03 2004-08-10 Webley Systems, Inc. Computer, internet and telecommunications based network
US5995596A (en) * 1997-03-12 1999-11-30 Siemens Information And Communication Networks, Inc. System and method for coordination of multimedia messages across multiple systems
GB2324175B (en) * 1997-04-10 2002-07-31 Ibm Personal conferencing system
US6240405B1 (en) * 1997-04-17 2001-05-29 Casio Computer Co., Ltd. Information processors having an agent function and storage mediums which contain processing programs for use in the information processor
US6337898B1 (en) * 1997-04-22 2002-01-08 Nortel Networks Limited Method for monitoring voicemail calls using ADSI capable CPE
US6526129B1 (en) * 1997-05-02 2003-02-25 Nortel Networks Limited System and method for communication media management
US6173266B1 (en) 1997-05-06 2001-01-09 Speechworks International, Inc. System and method for developing interactive speech applications
US6163596A (en) * 1997-05-23 2000-12-19 Hotas Holdings Ltd. Phonebook
IL133477A0 (en) * 1997-06-16 2001-04-30 Deutsche Telekom Ag Conversational prompting method for voice-controlled information and inquiry services involving computer telephony
JPH1117796A (ja) * 1997-06-19 1999-01-22 Matsushita Electric Ind Co Ltd 音声認識電話装置
US6473610B1 (en) 1997-06-19 2002-10-29 Byard G. Nilsson Wireless prepaid telephone system with dispensable instruments
US6049710A (en) 1997-06-19 2000-04-11 Kimberley Nanette Engen Wireless prepaid telephone system with dispensable instruments
US6751482B1 (en) 1997-06-19 2004-06-15 Byard G. Nilsson Wireless mobile telephone system with alternative power instruments and DTMF Capability
US6993321B1 (en) 1997-06-19 2006-01-31 Nilsson Byard G Wireless telephone system with mobile instruments for outgoing calls
US6298250B1 (en) 1997-06-19 2001-10-02 Kimberly Nanette Engen Wireless prepaid telephone system with extended capability
US6862463B1 (en) 1997-06-19 2005-03-01 Byard G. Nilsson Wireless telephone system with information service
US6122632A (en) * 1997-07-21 2000-09-19 Convergys Customer Management Group Inc. Electronic message management system
US6219413B1 (en) * 1997-08-07 2001-04-17 At&T Corp. Apparatus and method for called-party telephone messaging while interconnected to a data network
IL121501A (en) * 1997-08-08 2003-04-10 Icq Inc Telephone-status notification system
US6870909B2 (en) 1997-09-08 2005-03-22 Mci, Inc. Single telephone number access to multiple communications services
US7088801B1 (en) 1997-09-08 2006-08-08 Mci, Inc. Single telephone number access to multiple communications services
US6826407B1 (en) * 1999-03-29 2004-11-30 Richard J. Helferich System and method for integrating audio and visual messaging
US7003304B1 (en) 1997-09-19 2006-02-21 Thompson Investment Group, Llc Paging transceivers and methods for selectively retrieving messages
US6253061B1 (en) 1997-09-19 2001-06-26 Richard J. Helferich Systems and methods for delivering information to a transmitting and receiving device
US6636733B1 (en) 1997-09-19 2003-10-21 Thompson Trust Wireless messaging method
US6404876B1 (en) * 1997-09-25 2002-06-11 Gte Intelligent Network Services Incorporated System and method for voice activated dialing and routing under open access network control
US6122509A (en) * 1997-09-29 2000-09-19 Telefonaktiebolaget L M Ericsson (Publ) Method and system for automatically connecting a call at a selected time in a radio telecommunications network
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
US6711611B2 (en) 1998-09-11 2004-03-23 Genesis Telecommunications Laboratories, Inc. Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure
US6215859B1 (en) 1997-10-02 2001-04-10 At&T Corp. Delivery of urgent messages by integrated forced delivery and voice mailbox
US6807256B1 (en) 1997-11-04 2004-10-19 Bellsouth Intellectual Property Corporation Call screening method and apparatus
US7280821B2 (en) * 1998-10-27 2007-10-09 At&T Bls Intellectual Property, Inc. Outgoing call handling system and method
US6871064B1 (en) 1997-11-04 2005-03-22 Bellsouth Intellectual Property Corporation Outgoing call handling system and method
US6178458B1 (en) * 1997-11-07 2001-01-23 Tenx Technology, Inc. Communication interface for an electronic organizer and a personal computer
US6173041B1 (en) 1997-11-13 2001-01-09 Advanced Micro Devices, Inc. System and method for reducing call interruptions on a telephone
US6385303B1 (en) * 1997-11-13 2002-05-07 Legerity, Inc. System and method for identifying and announcing a caller and a callee of an incoming telephone call
US6178230B1 (en) 1997-11-13 2001-01-23 Advanced Micro Devices, Inc. System and method for identifying a callee of an incoming telephone call
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
US6400808B1 (en) * 1997-11-26 2002-06-04 At&T Corp System and method for providing call subject information to a called party
US6069946A (en) * 1997-12-02 2000-05-30 Lucent Technologies Inc. Telecommunications system for providing a calling party control service
US6072867A (en) * 1997-12-02 2000-06-06 Lucent Technologies Inc. Method and apparatus for providing calling party control
US6157709A (en) * 1997-12-11 2000-12-05 At&T Corp. Method and apparatus for branding delivered calls
US6983138B1 (en) 1997-12-12 2006-01-03 Richard J. Helferich User interface for message access
JP3082845B2 (ja) * 1997-12-16 2000-08-28 日本電気株式会社 伝言メッセージ録音再生装置
GB2332540B (en) * 1997-12-18 2002-12-04 Ibm An improved parcel trace system
US6496501B1 (en) * 1997-12-29 2002-12-17 At&T Corp. Method and apparatus for screening computer-telephony calls
KR100241790B1 (ko) * 1997-12-31 2000-02-01 윤종용 교환기 음성안내장치 및 그 제어방법
GB9800590D0 (en) * 1998-01-13 1998-03-11 Bae Sema Ltd Intelligent human computer interface system
US6366651B1 (en) * 1998-01-21 2002-04-02 Avaya Technology Corp. Communication device having capability to convert between voice and text message
EP0936827A1 (de) * 1998-02-17 1999-08-18 Koninklijke Philips Electronics N.V. Telefonsystem mit einem Basisstation und mindestens einem Endgerät, mit Rückrufvorrichtung, und Rückrufverfahren
US7907598B2 (en) 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US6874119B2 (en) * 1998-09-11 2005-03-29 Genesys Telecommunications Laboratories, Inc. Stored-media interface engine providing an abstract record of stored multimedia files within a multimedia communication center
US6332154B2 (en) 1998-09-11 2001-12-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface
US6212436B1 (en) * 1998-02-24 2001-04-03 Microsoft Corporation Dynamic inheritance of software object services
US6049805A (en) * 1998-02-24 2000-04-11 Microsoft Corporation Dynamic event mechanism for objects with associational relationships
EP0942574A1 (de) * 1998-03-09 1999-09-15 Koninklijke KPN N.V. Elektronischer Anrufassistent
EP0942575A3 (de) * 1998-03-12 2001-11-14 Novcom N.V. Adaptives Fernsprechbeantwortungssystem
US6219414B1 (en) * 1998-03-19 2001-04-17 Ameritech Corporation Method and system for providing enhanced call waiting
US6498841B2 (en) 1998-03-19 2002-12-24 Ameritech Corporation Method and system for providing enhanced call waiting and caller identification
US8126132B2 (en) * 1998-03-19 2012-02-28 At&T Intellectual Property I, L.P. Method and system for providing enhanced call waiting
US6704394B1 (en) * 1998-03-25 2004-03-09 International Business Machines Corporation System and method for accessing voice mail from a remote server
US6498791B2 (en) 1998-04-03 2002-12-24 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6181694B1 (en) 1998-04-03 2001-01-30 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communciations using intelligently bridged TDM and packet buses
US6208658B1 (en) * 1998-09-25 2001-03-27 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
WO1999052237A1 (en) 1998-04-03 1999-10-14 Vertical Networks Inc. System and method for transmitting voice and data using intelligent bridged tdm and packet buses
US20090059818A1 (en) * 1998-04-03 2009-03-05 Pickett Scott K Systems and methods for providing configurable caller id iformation
US6343074B1 (en) * 1998-09-29 2002-01-29 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6154465A (en) 1998-10-06 2000-11-28 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6714641B2 (en) * 1998-04-03 2004-03-30 Nortel Networks, Ltd Web based personal directory
US6266340B1 (en) 1998-04-03 2001-07-24 Vertical Networks, Inc. Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus
US6389009B1 (en) * 2000-12-28 2002-05-14 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses
US7072330B2 (en) * 1998-04-03 2006-07-04 Consolidated Ip Holdings, Inc. Systems for voice and data communications having TDM and packet buses and telephony station cards including voltage generators
US6144938A (en) * 1998-05-01 2000-11-07 Sun Microsystems, Inc. Voice user interface with personality
US6549612B2 (en) * 1998-05-06 2003-04-15 Telecommunications Premium Services, Inc. Unified communication services via e-mail
US6229880B1 (en) * 1998-05-21 2001-05-08 Bell Atlantic Network Services, Inc. Methods and apparatus for efficiently providing a communication system with speech recognition capabilities
US6343318B1 (en) 1998-05-29 2002-01-29 Palm, Inc. Method and apparatus for communicating information over low bandwidth communications networks
JPH11341187A (ja) * 1998-05-29 1999-12-10 Sharp Corp ショート・メッセージ送信先番号の自動生成装置
EP0964565A1 (de) * 1998-06-10 1999-12-15 Sun Microsystems, Inc. System zur Anrufbearbeitung
EP0964562A1 (de) 1998-06-10 1999-12-15 Sun Microsystems, Inc. Anrufkontrollsystem
DE69831857T2 (de) * 1998-06-10 2006-06-14 Sun Microsystems Inc Verfahren und Vorrichtung zum Zeitplanen von Prozessen für Betriebsmittelzuteilung
EP0964333A1 (de) 1998-06-10 1999-12-15 Sun Microsystems, Inc. Betriebsmittelverwaltung
US6757360B1 (en) * 1998-07-07 2004-06-29 Intel Corporation Method and apparatus for filtering incoming telephone calls
US7177910B1 (en) * 1998-07-21 2007-02-13 Globespanvirata, Inc. System and method for communicating in a point-to-multipoint DSL network
US6631182B1 (en) * 1998-07-29 2003-10-07 Ameritech Corporation Call screening apparatus and method
US6463130B1 (en) * 1998-07-31 2002-10-08 Bellsouth Intellectual Property Corporation Method and system for creating automated voice response menus for telecommunications services
US6658103B2 (en) * 1998-08-31 2003-12-02 Sbc Properties, L.P. Method and system for generating a call processing control record
US7197534B2 (en) * 1998-09-01 2007-03-27 Big Fix, Inc. Method and apparatus for inspecting the properties of a computer
US8914507B2 (en) * 1998-09-01 2014-12-16 International Business Machines Corporation Advice provided for offering highly targeted advice without compromising individual privacy
US6263362B1 (en) * 1998-09-01 2001-07-17 Bigfix, Inc. Inspector for computed relevance messaging
US6256664B1 (en) * 1998-09-01 2001-07-03 Bigfix, Inc. Method and apparatus for computed relevance messaging
US6308281B1 (en) * 1998-09-02 2001-10-23 International Business Machines Corporation Virtual client to gateway connection over multiple physical connections
USRE46153E1 (en) 1998-09-11 2016-09-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment
US6792082B1 (en) * 1998-09-11 2004-09-14 Comverse Ltd. Voice mail system with personal assistant provisioning
US6480580B1 (en) * 1998-09-24 2002-11-12 Ericsson Inc. User addressable computer telephony system
WO2000018100A2 (en) * 1998-09-24 2000-03-30 Crossmedia Networks Corporation Interactive voice dialog application platform and methods for using the same
US6445682B1 (en) 1998-10-06 2002-09-03 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6338089B1 (en) 1998-10-06 2002-01-08 Bull Hn Information Systems Inc. Method and system for providing session pools for high performance web browser and server communications
US6724867B1 (en) * 1998-10-06 2004-04-20 Daniel A. Henderson Method and apparatus for automatic message transfer from a remote messaging system to a local communication device
US6182041B1 (en) 1998-10-13 2001-01-30 Nortel Networks Limited Text-to-speech based reminder system
US8175904B2 (en) 1998-10-14 2012-05-08 Templeton Bradley S Method and apparatus for intermediation of meetings and calls
GB2342734A (en) * 1998-10-17 2000-04-19 Ibm Managing timer objects in an event-driven system
US8050387B1 (en) * 1998-10-19 2011-11-01 Siemens Aktiengesellschaft Method and system for providing customized audio responses to incoming phone calls
US6163794A (en) 1998-10-23 2000-12-19 General Magic Network system extensible by users
US6341270B1 (en) 1998-11-10 2002-01-22 Aether Systems, Inc. Method for providing vendor notification marketing in an electronic commerce network environment
US6546374B1 (en) 1998-11-10 2003-04-08 Aether Systems, Inc. Apparatus for providing instant vendor notification in an electronic commerce network environment
US6868140B2 (en) * 1998-12-28 2005-03-15 Nortel Networks Limited Telephony call control using a data network and a graphical user interface and exchanging datagrams between parties to a telephone call
US6650739B1 (en) * 1998-12-28 2003-11-18 Pitney Bowes Inc. Method of providing personal messaging using a virtual messaging assistant
FR2789252A1 (fr) * 1998-12-31 2000-08-04 Sion Serge Samama Installation telematique associee a un reseau telephonique distinct et comprenant des representations graphiques
US6851115B1 (en) * 1999-01-05 2005-02-01 Sri International Software-based architecture for communication and cooperation among distributed electronic agents
US6587838B1 (en) 1999-01-25 2003-07-01 Aether Systems, Inc. Method and system for conducting real time electronic commerce
US6584178B2 (en) * 1999-01-28 2003-06-24 Sbc Properties, L.P. Method and system for termination blocking of message delivery service in a switch-based telecommunication system
US6411704B1 (en) 1999-02-18 2002-06-25 Ameritech Corporation System and method for providing telephony services to remote subscribers
US6321198B1 (en) * 1999-02-23 2001-11-20 Unisys Corporation Apparatus for design and simulation of dialogue
US6453019B1 (en) * 1999-03-02 2002-09-17 Ameritech Corp. Method and system for canceling unwanted telephone calls
NO991343L (no) * 1999-03-10 2000-09-11 Ericsson Telefon Ab L M Anordning i forbindelse med supplementære tjenester
US6438217B1 (en) * 1999-03-11 2002-08-20 Microsoft Corporation Apparatus and method for future transmission of device-independent messages
US7277919B1 (en) 1999-03-19 2007-10-02 Bigfix, Inc. Relevance clause for computed relevance messaging
US8321411B2 (en) 1999-03-23 2012-11-27 Microstrategy, Incorporated System and method for management of an automatic OLAP report broadcast system
US6567796B1 (en) * 1999-03-23 2003-05-20 Microstrategy, Incorporated System and method for management of an automatic OLAP report broadcast system
US6778642B1 (en) * 1999-03-23 2004-08-17 Verizon Laboratories Inc. Unified messaging system
US6574599B1 (en) * 1999-03-31 2003-06-03 Microsoft Corporation Voice-recognition-based methods for establishing outbound communication through a unified messaging system including intelligent calendar interface
US6477240B1 (en) * 1999-03-31 2002-11-05 Microsoft Corporation Computer-implemented voice-based command structure for establishing outbound communication through a unified messaging system
US6842505B1 (en) * 1999-04-05 2005-01-11 Estech Systems, Inc. Communications system enhanced with human presence sensing capabilities
US6408272B1 (en) 1999-04-12 2002-06-18 General Magic, Inc. Distributed voice user interface
US20050261907A1 (en) 1999-04-12 2005-11-24 Ben Franklin Patent Holding Llc Voice integration platform
US6463143B2 (en) * 1999-04-16 2002-10-08 Ameritech Corporation Method system and article for audibly identifying a called party
US6434527B1 (en) * 1999-05-17 2002-08-13 Microsoft Corporation Signalling and controlling the status of an automatic speech recognition system for use in handsfree conversational dialogue
US6584439B1 (en) 1999-05-21 2003-06-24 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
US7283964B1 (en) 1999-05-21 2007-10-16 Winbond Electronics Corporation Method and apparatus for voice controlled devices with improved phrase storage, use, conversion, transfer, and recognition
CA2272739C (en) * 1999-05-25 2003-10-07 Suhayya Abu-Hakima Apparatus and method for interpreting and intelligently managing electronic messages
US9208213B2 (en) 1999-05-28 2015-12-08 Microstrategy, Incorporated System and method for network user interface OLAP report formatting
US8607138B2 (en) * 1999-05-28 2013-12-10 Microstrategy, Incorporated System and method for OLAP report generation with spreadsheet report within the network user interface
US6853651B1 (en) 1999-06-17 2005-02-08 Cingular Wireless Ii, Inc. System and method for outbox-capable wireless transmission
GB2351875B (en) * 1999-06-18 2001-08-15 Samsung Electronics Co Ltd Method of recording and reproducing voice memos
US6731725B1 (en) * 1999-06-28 2004-05-04 Keith A. Merwin Computerized system for the receipt, recordation, scheduling and redelivery of telephone messages
US6327354B1 (en) * 1999-08-17 2001-12-04 Ameritech Corporation Methods, systems, and articles for providing a family telecommunication service
US6678366B1 (en) * 1999-08-31 2004-01-13 Ulysses Esd, Inc. System and method for locating subscribers using a best guess location algorithm
EP1081929A3 (de) * 1999-08-31 2003-12-03 Tenovis GmbH & Co. KG Verfahren und Schaltungsanordnung zum Betreiben eines Call-Centers
US8130918B1 (en) 1999-09-13 2012-03-06 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with closed loop transaction processing
US7266181B1 (en) 1999-09-13 2007-09-04 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized dynamic and interactive voice services with integrated inbound and outbound voice services
US7197461B1 (en) * 1999-09-13 2007-03-27 Microstrategy, Incorporated System and method for voice-enabled input for use in the creation and automatic deployment of personalized, dynamic, and interactive voice services
US6587547B1 (en) 1999-09-13 2003-07-01 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, with real-time drilling via telephone
US7340040B1 (en) 1999-09-13 2008-03-04 Microstrategy, Incorporated System and method for real-time, personalized, dynamic, interactive voice services for corporate-analysis related information
US6836537B1 (en) 1999-09-13 2004-12-28 Microstrategy Incorporated System and method for real-time, personalized, dynamic, interactive voice services for information related to existing travel schedule
US6964012B1 (en) 1999-09-13 2005-11-08 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized, dynamic and interactive voice services, including deployment through personalized broadcasts
US6850603B1 (en) * 1999-09-13 2005-02-01 Microstrategy, Incorporated System and method for the creation and automatic deployment of personalized dynamic and interactive voice services
US6891942B1 (en) * 1999-09-16 2005-05-10 Mci, Inc. Method and system for using caller preferences to direct special call handling
US6963759B1 (en) 1999-10-05 2005-11-08 Fastmobile, Inc. Speech recognition technique based on local interrupt detection
US6937977B2 (en) 1999-10-05 2005-08-30 Fastmobile, Inc. Method and apparatus for processing an input speech signal during presentation of an output audio signal
US6868385B1 (en) 1999-10-05 2005-03-15 Yomobile, Inc. Method and apparatus for the provision of information signals based upon speech recognition
US6404884B1 (en) * 1999-10-08 2002-06-11 Grape Technology Group, Inc. Personalized assistance system and method
US20040151300A1 (en) 2002-05-29 2004-08-05 Evan Marwell Personalized assistance system and method
US7606358B2 (en) * 1999-10-08 2009-10-20 Mcgary Faith System and method for providing personal directory assistance services
US6823524B1 (en) * 1999-10-13 2004-11-23 Avaya Technology Corp. System and method for managing the distribution of events in a data processing system
US6854114B1 (en) * 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
US20020055351A1 (en) * 1999-11-12 2002-05-09 Elsey Nicholas J. Technique for providing personalized information and communications services
US9076448B2 (en) 1999-11-12 2015-07-07 Nuance Communications, Inc. Distributed real time speech recognition system
US6539079B1 (en) * 1999-11-12 2003-03-25 Ameritech Corporation Method and system for providing enhanced call waiting
US7050977B1 (en) 1999-11-12 2006-05-23 Phoenix Solutions, Inc. Speech-enabled server for internet website and method
US7392185B2 (en) * 1999-11-12 2008-06-24 Phoenix Solutions, Inc. Speech based learning/training system using semantic decoding
US7725307B2 (en) 1999-11-12 2010-05-25 Phoenix Solutions, Inc. Query engine for processing voice based queries including semantic decoding
US6493431B1 (en) * 1999-11-17 2002-12-10 Genuity Inc. Method and system for capturing telephone calls
US6608887B1 (en) * 1999-11-30 2003-08-19 Unisys Corporation Voice messaging system with ability to prevent hung calls
US7929978B2 (en) 1999-12-01 2011-04-19 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network
US7325012B2 (en) * 1999-12-06 2008-01-29 Interface Software, Inc. Relationship management system determining contact pathways in a contact relational database
US7613695B1 (en) * 1999-12-06 2009-11-03 Reed Elsevier Inc. Relationship management system that provides an indication of users having a relationship with a specified contact
US6628759B1 (en) * 1999-12-10 2003-09-30 Agere Systems, Inc. Alert signal during telephone conversation
US7359938B1 (en) 1999-12-14 2008-04-15 Nortel Networks Limited System indicating the presence of an individual or group of individuals
US7603411B1 (en) 1999-12-14 2009-10-13 Nortel Networks Limited Presence management system
US6721397B1 (en) * 1999-12-20 2004-04-13 Bellsouth Intellectual Property Corporation System and method for message exchange over a public-switched telephone network
US6760412B1 (en) * 1999-12-21 2004-07-06 Nortel Networks Limited Remote reminder of scheduled events
US7136458B1 (en) * 1999-12-23 2006-11-14 Bellsouth Intellectual Property Corporation Voice recognition for filtering and announcing message
US6625258B1 (en) * 1999-12-27 2003-09-23 Nortel Networks Ltd System and method for providing unified communication services support
EP1247392A1 (de) * 1999-12-29 2002-10-09 Koninklijke KPN N.V. Elektronische aufrufassistenten mit gemeinsamer datenbank
US6678265B1 (en) 1999-12-30 2004-01-13 At&T Corp. Local number portability database for on-net IP call
US6889321B1 (en) 1999-12-30 2005-05-03 At&T Corp. Protected IP telephony calls using encryption
US7180889B1 (en) 1999-12-30 2007-02-20 At&T Corp. Personal control of address assignment and greeting options for multiple BRG ports
US6826173B1 (en) 1999-12-30 2004-11-30 At&T Corp. Enhanced subscriber IP alerting
US6680935B1 (en) 1999-12-30 2004-01-20 At&T Corp. Anonymous call rejection
US6775267B1 (en) 1999-12-30 2004-08-10 At&T Corp Method for billing IP broadband subscribers
US6728239B1 (en) 1999-12-30 2004-04-27 At&T Corp. Scaleable network server for low cost PBX
US7075918B1 (en) 1999-12-30 2006-07-11 At&T Corp. BRG with PBX capabilities
US6816469B1 (en) 1999-12-30 2004-11-09 At&T Corp. IP conference call waiting
US6687360B2 (en) 1999-12-30 2004-02-03 At&T Corp. Personal IP follow-me service
US6775273B1 (en) 1999-12-30 2004-08-10 At&T Corp. Simplified IP service control
US6633635B2 (en) * 1999-12-30 2003-10-14 At&T Corp. Multiple call waiting in a packetized communication system
US7120139B1 (en) 1999-12-30 2006-10-10 At&T Corp. Broadband cable telephony network architecture IP ITN network architecture reference model
US6917610B1 (en) 1999-12-30 2005-07-12 At&T Corp. Activity log for improved call efficiency
US6937713B1 (en) 1999-12-30 2005-08-30 At&T Corp. IP call forward profile
US6671262B1 (en) 1999-12-30 2003-12-30 At&T Corp. Conference server for automatic x-way call port expansion feature
US6690675B1 (en) 1999-12-30 2004-02-10 At&T Corp. User programmable fail-proof IP hotline/warm-line
US6820237B1 (en) 2000-01-21 2004-11-16 Amikanow! Corporation Apparatus and method for context-based highlighting of an electronic document
US6493432B1 (en) * 2000-01-24 2002-12-10 Avaya Technology Corp. System for ensuring calling party privacy in a call screening system
NZ520441A (en) 2000-01-31 2005-12-23 Grape Technology Group Inc Communication assistance system and method
US6721705B2 (en) 2000-02-04 2004-04-13 Webley Systems, Inc. Robust voice browser system and voice activated device controller
US7516190B2 (en) * 2000-02-04 2009-04-07 Parus Holdings, Inc. Personal voice-based information retrieval system
US6640098B1 (en) * 2000-02-14 2003-10-28 Action Engine Corporation System for obtaining service-related information for local interactive wireless devices
WO2001061975A1 (en) * 2000-02-18 2001-08-23 A-Vision Group, Inc. System and method for connecting a system user through a telephone system to a selected forwarding location
US7073033B2 (en) * 2000-02-25 2006-07-04 Oracle International Corporation Memory model for a run-time environment
US6853714B2 (en) * 2000-02-25 2005-02-08 Keith A. Liljestrand Apparatus and method for providing enhanced telecommunications services
US6438215B1 (en) * 2000-02-29 2002-08-20 Ameritech Corporation Method and system for filter based message processing in a unified messaging system
US6487278B1 (en) * 2000-02-29 2002-11-26 Ameritech Corporation Method and system for interfacing systems unified messaging with legacy systems located behind corporate firewalls
US6498835B1 (en) * 2000-02-29 2002-12-24 Ameritech Corporation Method and system for providing visual notification in a unified messaging system
US6466654B1 (en) 2000-03-06 2002-10-15 Avaya Technology Corp. Personal virtual assistant with semantic tagging
US6757362B1 (en) 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
WO2001075555A2 (en) * 2000-03-06 2001-10-11 Conita Technologies, Inc. Personal virtual assistant
JP3895092B2 (ja) * 2000-03-24 2007-03-22 富士通株式会社 通信システム
US6442247B1 (en) * 2000-03-29 2002-08-27 Genesys Telecommunications Laboratories, Inc. Method and apparatus for recording and automated playback of personal agent greetings in a communication-center environment
US7085257B1 (en) * 2000-04-06 2006-08-01 Nokia Corporation Method and system for making accessible wirelessly a network phonebook and journal database
US6577712B2 (en) * 2000-04-07 2003-06-10 Telefonaktiebolaget Lm Ericsson (Publ) Distributed voice mail system
NL1015165C2 (nl) 2000-05-12 2001-11-13 Koninkl Kpn Nv Communicatiesysteem.
JP2001326706A (ja) * 2000-05-18 2001-11-22 Nec Eng Ltd 電話機及びそれに用いる着信応答方法
GB2362537A (en) * 2000-05-19 2001-11-21 Darien Sharif Personal assistant,eg for telephone calls
DE10029753A1 (de) * 2000-06-16 2001-12-20 Alcatel Sa Verfahren zur Behandlung der auf einen Teilnehmer eines Fernsprechnetzes gerichteten Anrufe sowie Fernsprechnetz, Steuerrechner und Computerprogramm hierfür
FR2810487B1 (fr) * 2000-06-19 2002-10-25 France Telecom Systeme d'accueil telephonique de correspondants en cas d'indisponibilite d'un souscripteur
US6735295B1 (en) 2000-06-27 2004-05-11 Nortel Networks Limited Call waiting messaging
US7046769B2 (en) * 2000-06-28 2006-05-16 Ringminder, Inc. Computerized system for the receipt, recordation, scheduling and redelivery of telephone messages to predetermined telephone numbers
CA2313974A1 (en) * 2000-07-07 2002-01-07 Daniel Wilk Method and system for call answering
JP2002041276A (ja) * 2000-07-24 2002-02-08 Sony Corp 対話型操作支援システム及び対話型操作支援方法、並びに記憶媒体
US7206768B1 (en) * 2000-08-14 2007-04-17 Jpmorgan Chase Bank, N.A. Electronic multiparty accounts receivable and accounts payable system
US7933387B1 (en) 2000-08-15 2011-04-26 Baker Iv Forest S Voice transition script caller
US20020025819A1 (en) * 2000-08-24 2002-02-28 Zoran Cetusic Wireless communication techniques
US6823331B1 (en) 2000-08-28 2004-11-23 Entrust Limited Concept identification system and method for use in reducing and/or representing text content of an electronic document
US7653190B1 (en) 2000-08-31 2010-01-26 At&T Knowledge Ventures, L.P. Methods, system and article for providing a family telecommunication service using an originating dual-tone multi-frequency trigger
EP1328926A4 (de) * 2000-09-01 2004-09-29 Eliza Corp Spracherkennungsverfahren und -system zur bestimmung des status einer abgehenden fernsprechverbindung
US20020029203A1 (en) * 2000-09-01 2002-03-07 Pelland David M. Electronic personal assistant with personality adaptation
US6868070B1 (en) 2000-10-06 2005-03-15 Vertical Networks, Inc. Systems and methods for providing voice/data communication systems and voice/data communications
US7076275B1 (en) * 2000-10-13 2006-07-11 Palmsource, Inc. Method and system for single-step enablement of telephony functionality for a portable computer system
EP1332605A4 (de) * 2000-10-16 2004-10-06 Eliza Corp Verfahren und system zur bereitstellung eines adaptiven respondent-training in einer spracherkennungsanwendung
US6661886B1 (en) 2000-10-31 2003-12-09 Cisco Technology, Inc. Method and system for real-time monitoring of voice mail during active call
US7023971B1 (en) 2000-10-31 2006-04-04 Cisco Technology, Inc. Method and system for call answer while connected to voice mail
WO2002037812A2 (en) * 2000-11-03 2002-05-10 Vocaltec Communications Ltd. Communications availability
US6714519B2 (en) 2000-11-03 2004-03-30 Vocaltec Communications Limited Communications availability
US7606864B2 (en) * 2000-11-10 2009-10-20 At&T Intellectual Property I, L.P. Setting and display of communication receipt preferences by users of multiple communication devices
US6823306B2 (en) 2000-11-30 2004-11-23 Telesector Resources Group, Inc. Methods and apparatus for generating, updating and distributing speech recognition models
US6915262B2 (en) 2000-11-30 2005-07-05 Telesector Resources Group, Inc. Methods and apparatus for performing speech recognition and using speech recognition results
US8135589B1 (en) 2000-11-30 2012-03-13 Google Inc. Performing speech recognition over a network and using speech recognition results
US6763093B2 (en) * 2000-12-14 2004-07-13 Nortel Networks Limited Application based queuing via an H.323/SIP interface
GB2370192A (en) * 2000-12-15 2002-06-19 Nokia Mobile Phones Ltd Mobile phone with electronic trash can
US7466805B2 (en) * 2001-05-25 2008-12-16 Grape Technology Group, Inc. Technique for effectively providing a personalized information assistance service
US6785363B2 (en) 2001-01-02 2004-08-31 Soundbite Communications, Inc. Voice message delivery method and system
US6829331B2 (en) * 2001-01-02 2004-12-07 Soundbite Communications, Inc. Address book for a voice message delivery method and system
US7054419B2 (en) * 2001-01-02 2006-05-30 Soundbite Communications, Inc. Answering machine detection for voice message delivery method and system
US7319744B1 (en) * 2001-01-31 2008-01-15 Palmsource, Inc. Unified messaging/call routing configuration using palmtop computer
JP2002230341A (ja) * 2001-02-06 2002-08-16 Ntt Docomo Inc 仲介装置及び仲介方法
US8472428B2 (en) * 2001-02-27 2013-06-25 Verizon Data Services Llc Methods and systems for line management
US8761363B2 (en) 2001-02-27 2014-06-24 Verizon Data Services Llc Methods and systems for automatic forwarding of communications to a preferred device
US7912193B2 (en) * 2001-02-27 2011-03-22 Verizon Data Services Llc Methods and systems for call management with user intervention
US6976017B1 (en) 2001-02-27 2005-12-13 Verizon Data Services Inc. Method and apparatus for context based querying
US8472606B2 (en) 2001-02-27 2013-06-25 Verizon Data Services Llc Methods and systems for directory information lookup
US7142646B2 (en) * 2001-02-27 2006-11-28 Verizon Data Services Inc. Voice mail integration with instant messenger
US8873730B2 (en) 2001-02-27 2014-10-28 Verizon Patent And Licensing Inc. Method and apparatus for calendared communications flow control
US8774380B2 (en) * 2001-02-27 2014-07-08 Verizon Patent And Licensing Inc. Methods and systems for call management with user intervention
US8503639B2 (en) 2001-02-27 2013-08-06 Verizon Data Services Llc Method and apparatus for adaptive message and call notification
US6731737B2 (en) * 2001-02-27 2004-05-04 International Business Machines Corporation Directory assistance system
US20050220286A1 (en) * 2001-02-27 2005-10-06 John Valdez Method and apparatus for facilitating integrated access to communications services in a communication device
US7158623B1 (en) 2001-02-27 2007-01-02 Verizon Data Services Inc. Method and apparatus for dial stream analysis
US8488766B2 (en) * 2001-02-27 2013-07-16 Verizon Data Services Llc Methods and systems for multiuser selective notification
US8467502B2 (en) 2001-02-27 2013-06-18 Verizon Data Services Llc Interactive assistant for managing telephone communications
US7912199B2 (en) * 2002-11-25 2011-03-22 Telesector Resources Group, Inc. Methods and systems for remote cell establishment
US8503650B2 (en) * 2001-02-27 2013-08-06 Verizon Data Services Llc Methods and systems for configuring and providing conference calls
US7190773B1 (en) 2001-02-27 2007-03-13 Verizon Data Services Inc. Device independent caller ID
US8488761B2 (en) 2001-02-27 2013-07-16 Verizon Data Services Llc Methods and systems for a call log
US8750482B2 (en) 2001-02-27 2014-06-10 Verizon Data Services Llc Methods and systems for preemptive rejection of calls
US7903796B1 (en) 2001-02-27 2011-03-08 Verizon Data Services Llc Method and apparatus for unified communication management via instant messaging
US8798251B2 (en) 2001-02-27 2014-08-05 Verizon Data Services Llc Methods and systems for computer enhanced conference calling
US8494135B2 (en) 2001-02-27 2013-07-23 Verizon Data Services Llc Methods and systems for contact management
US8751571B2 (en) 2001-02-27 2014-06-10 Verizon Data Services Llc Methods and systems for CPN triggered collaboration
JP2002261909A (ja) * 2001-02-28 2002-09-13 Sanyo Electric Co Ltd 電話機及び通知方法
US6771756B1 (en) * 2001-03-01 2004-08-03 International Business Machines Corporation System and method to facilitate team communication
US7296066B2 (en) * 2001-03-04 2007-11-13 Adomo, Inc. Mobile communication system for a network
US7400879B2 (en) * 2001-03-04 2008-07-15 Adomo, Inc. Method for conducting mobile communications for a network
ATE311717T1 (de) * 2001-03-21 2005-12-15 Swisscom Ag Verfahren und vorrichtung, um einem benutzer personalisierbare sprachdienste in einem sprachtelekommunikationsnetzwerk anzubieten
US6967947B1 (en) * 2001-03-29 2005-11-22 At&T Corp. Method and system for providing controllable enhanced call service features at mobile locations
US7162474B1 (en) 2001-05-10 2007-01-09 Nortel Networks Limited Recipient controlled contact directories
US20020173333A1 (en) * 2001-05-18 2002-11-21 Buchholz Dale R. Method and apparatus for processing barge-in requests
US20040029567A1 (en) * 2001-05-25 2004-02-12 Timmins Timothy A. Technique for effectively providing personalized communications and information assistance services
US7724878B2 (en) * 2001-05-25 2010-05-25 Timmins Timothy A Technique for assisting a user with information services at an information/call center
US6697624B2 (en) * 2001-06-11 2004-02-24 Nokia Mobile Phones Ltd. Apparatus, and associated method, for effectuating a data service designated by a service delivery mode
US20050198379A1 (en) 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7562146B2 (en) 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US7023989B1 (en) * 2001-06-19 2006-04-04 Cisco Technology, Inc. Arrangement for delivering applications to a network enabled telephony device
US6889065B2 (en) * 2001-06-25 2005-05-03 Cingular Wireless Ii, Llc System and method for providing an adapter module
US6892051B2 (en) * 2001-06-25 2005-05-10 Cingular Wireless Ii, Llc System and method for providing an adapter module
US6876728B2 (en) 2001-07-02 2005-04-05 Nortel Networks Limited Instant messaging using a wireless interface
US6970696B1 (en) * 2001-07-03 2005-11-29 At&T Corp. Method and apparatus for controlling a network device
US7174163B2 (en) * 2001-07-17 2007-02-06 Comverse, Inc. Method and apparatus for providing images for caller identification over a mobile network
US7177627B2 (en) * 2001-07-17 2007-02-13 Comverse, Inc. Method and apparatus for providing images for caller identification over a mobile network
US7573986B2 (en) * 2001-07-18 2009-08-11 Enterprise Integration Group, Inc. Method and system for interjecting comments to improve information presentation in spoken user interfaces
JP2003045042A (ja) * 2001-07-31 2003-02-14 Toshiba Corp 情報記録媒体の厚みムラ補正方法および厚みムラ補正方法を用いた情報記録再生装置
US7908628B2 (en) 2001-08-03 2011-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content coding and formatting
US7793326B2 (en) 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
US6750897B1 (en) 2001-08-16 2004-06-15 Verizon Data Services Inc. Systems and methods for implementing internet video conferencing using standard phone calls
US7920682B2 (en) 2001-08-21 2011-04-05 Byrne William J Dynamic interactive voice interface
US7068769B1 (en) * 2001-09-04 2006-06-27 Sprint Spectrum L.P. Method and system for communication processing based on physical presence
CA2408560A1 (en) * 2001-09-18 2003-03-18 Bell Net Corp. Service system for providing by confirming caller telephone number, service method and medium
WO2003028348A2 (de) * 2001-09-20 2003-04-03 Ip2H Ag Informationsübertragung in einem telekommunikationsnetz
US20030059002A1 (en) * 2001-09-24 2003-03-27 Teleware, Inc. Multi-media communication management system for routing incoming calls to a subscriber device that is served by a subscriber station
US7099453B2 (en) * 2001-09-26 2006-08-29 Sbc Properties, L.P. Method and apparatus for enhanced call routing in a telecommunication system
US6650735B2 (en) * 2001-09-27 2003-11-18 Microsoft Corporation Integrated voice access to a variety of personal information services
US7113572B2 (en) * 2001-10-03 2006-09-26 Cingular Wireless Ii, Llc System and method for recognition of and automatic connection using spoken address information received in voice mails and live telephone conversations
US8644475B1 (en) 2001-10-16 2014-02-04 Rockstar Consortium Us Lp Telephony usage derived presence information
JP2003152856A (ja) * 2001-11-15 2003-05-23 Nec Corp 通信端末装置、通信方法、およびそのプログラム
US6735287B2 (en) * 2001-11-16 2004-05-11 Sbc Technology Resources, Inc. Method and system for multimodal presence detection
US7415502B2 (en) 2001-11-16 2008-08-19 Sbc Technology Resources, Inc. Method and system for intelligent routing based on presence detection
JP2003178006A (ja) * 2001-12-07 2003-06-27 Nec Corp 通信システム、通信方法、アクション実行装置及びアクション実行装置のプログラム
US9088645B2 (en) * 2001-12-12 2015-07-21 International Business Machines Corporation Intermediary device initiated caller identification
US7245716B2 (en) 2001-12-12 2007-07-17 International Business Machines Corporation Controlling hold queue position adjustment
US7167551B2 (en) * 2001-12-12 2007-01-23 International Business Machines Corporation Intermediary device based callee identification
US20030108159A1 (en) * 2001-12-12 2003-06-12 International Business Machines Corporation Destination device based callee identification
US7443970B2 (en) 2001-12-17 2008-10-28 International Business Machines Corporation Logging calls according to call context
US7130405B2 (en) * 2001-12-17 2006-10-31 International Business Machines Corporation Identifying a call made or received on behalf of another
US20030135624A1 (en) * 2001-12-27 2003-07-17 Mckinnon Steve J. Dynamic presence management
US7460654B1 (en) 2001-12-28 2008-12-02 Vocada, Inc. Processing of enterprise messages integrating voice messaging and data systems
US6778644B1 (en) 2001-12-28 2004-08-17 Vocada, Inc. Integration of voice messaging and data systems
US7313229B1 (en) * 2001-12-28 2007-12-25 At&T Bls Intellectual Property, Inc. System and method for delayed or repeated message delivery
FI114957B (fi) 2001-12-31 2005-01-31 Nokia Corp Menetelmä ja järjestelmä matkaviestintään
US6619545B2 (en) 2002-01-15 2003-09-16 International Business Machines Corporation Kiosk having a people presence detector to determine if a kiosk item is to be presented to a customer
US7661129B2 (en) 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7984157B2 (en) 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US9392120B2 (en) 2002-02-27 2016-07-12 Verizon Patent And Licensing Inc. Methods and systems for call management with user intervention
US7746996B1 (en) * 2002-03-01 2010-06-29 At&T Intellectual Property, I,L.P. Telephone hold feature
US7305483B2 (en) * 2002-04-25 2007-12-04 Yahoo! Inc. Method for the real-time distribution of streaming data on a network
US20040203637A1 (en) * 2002-04-30 2004-10-14 Uday Dodla Method and apparatus for remotely accessing three-party calling functions
US20030210770A1 (en) * 2002-05-10 2003-11-13 Brian Krejcarek Method and apparatus for peer-to-peer voice communication using voice recognition and proper noun identification
US6771746B2 (en) * 2002-05-16 2004-08-03 Rockwell Electronic Commerce Technologies, Llc Method and apparatus for agent optimization using speech synthesis and recognition
JP3702867B2 (ja) * 2002-06-25 2005-10-05 株式会社デンソー 音声制御装置
US7869424B2 (en) * 2002-07-01 2011-01-11 Converged Data Solutions Inc. Systems and methods for voice and data communications including a scalable TDM switch/multiplexer
US7706359B2 (en) * 2002-07-01 2010-04-27 Converged Data Solutions, Inc. Systems and methods for voice and data communications including a network drop and insert interface for an external data routing resource
US6687338B2 (en) * 2002-07-01 2004-02-03 Avaya Technology Corp. Call waiting notification
US6950502B1 (en) * 2002-08-23 2005-09-27 Bellsouth Intellectual Property Corp. Enhanced scheduled messaging system
US8392609B2 (en) * 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US20040198329A1 (en) * 2002-09-30 2004-10-07 Yojak Vasa Mobile-initiated number information query and delivery
US7383303B1 (en) * 2002-09-30 2008-06-03 Danger, Inc. System and method for integrating personal information management and messaging applications
US7221739B1 (en) * 2002-11-14 2007-05-22 Bellsouth Intellectual Property Corporation Callback function for messaging platform in public telephone system
CA2507095C (en) * 2002-11-25 2012-05-01 Telesector Resources Group, Inc. Methods and systems for line management
US7103156B2 (en) * 2002-12-04 2006-09-05 International Business Machines Corporation Telephony voice server
US7260189B2 (en) * 2003-01-03 2007-08-21 Bellsouth Intellectual Property Corp. Systems and methods for information provision
US7184524B2 (en) * 2003-02-14 2007-02-27 Convoq, Inc. Rules based real-time communication system
US7149288B2 (en) * 2003-02-14 2006-12-12 Convoq, Inc. Rules based real-time communication system
US7200594B2 (en) * 2003-03-14 2007-04-03 Firestop Specialty Contractors, Llc Method of providing online database containing proprietary information
GB0308189D0 (en) * 2003-04-09 2003-05-14 Mitel Networks Corp Remote policy assistant with PSTN/internet inter-working for QOS and enabled services
US20040208296A1 (en) * 2003-04-16 2004-10-21 Aboujaoude Roger B. Automatic telecommunications service notification
US20080019487A1 (en) * 2003-04-24 2008-01-24 At&T Knowledge Ventures, L.P. Method and system for termination blocking of message delivery service in a swtich-based telecommunication system
US7533126B2 (en) * 2003-05-05 2009-05-12 Cisco Technology, Inc. Managing contacts in a communication network
US7433455B1 (en) 2003-05-05 2008-10-07 Cisco Technology, Inc. Processing a communication session using a rules engine
US7219303B2 (en) 2003-05-20 2007-05-15 Aol Llc Presence and geographic location notification based on a setting
EP1632932B1 (de) * 2003-06-02 2007-12-19 International Business Machines Corporation Sprach-antwortsystem, sprach-antwortverfahren, sprach-server, sprach-datei-verarbeitungsverfahren, programm und aufzeichnungsmedium
US7809794B2 (en) * 2003-06-05 2010-10-05 International Business Machines Corporation Method and system for notification of electronic message reply requirements
US7243072B2 (en) * 2003-06-27 2007-07-10 Motorola, Inc. Providing assistance to a subscriber device over a network
US7117445B2 (en) 2003-06-30 2006-10-03 Danger, Inc. Multi-mode communication apparatus and interface for contacting a user
US20040267887A1 (en) * 2003-06-30 2004-12-30 Berger Kelly D. System and method for dynamically managing presence and contact information
EP1511330A1 (de) * 2003-08-26 2005-03-02 Alcatel Das Steuern und Organisieren von Telekommunikationsaktivitäten
US7460652B2 (en) 2003-09-26 2008-12-02 At&T Intellectual Property I, L.P. VoiceXML and rule engine based switchboard for interactive voice response (IVR) services
US9118574B1 (en) 2003-11-26 2015-08-25 RPX Clearinghouse, LLC Presence reporting using wireless messaging
CA2552706A1 (en) * 2003-12-29 2005-07-28 Grape Technology Group, Inc System and method for processing and routing incoming calls to a communication assistance system
US7567661B1 (en) 2003-12-31 2009-07-28 Nortel-Networks Limited Telephony service information management system
US7356475B2 (en) 2004-01-05 2008-04-08 Sbc Knowledge Ventures, L.P. System and method for providing access to an interactive service offering
US7177404B2 (en) * 2004-02-03 2007-02-13 T-Tag Corporation System for computer-based, calendar-controlled message creation and delivery
US20050201534A1 (en) * 2004-03-10 2005-09-15 Ignatin Gary R. Method for call screening in a voice mail system
US7653195B2 (en) * 2004-03-17 2010-01-26 Noguar, L.C. Apparatus, system, and method for disposing of a call
US7570746B2 (en) * 2004-03-18 2009-08-04 Sony Corporation Method and apparatus for voice interactive messaging
WO2005094350A2 (en) 2004-03-27 2005-10-13 Nogar, Lc Apparatus, system, and method for presenting scripts to a contact
US7532877B2 (en) 2004-05-21 2009-05-12 Cisco Technology, Inc. System and method for voice scheduling and multimedia alerting
US7386448B1 (en) 2004-06-24 2008-06-10 T-Netix, Inc. Biometric voice authentication
US7305069B1 (en) 2004-07-20 2007-12-04 Cisco Technology, Inc. Multi-copy, multi-media, non-redundant messaging
US7936861B2 (en) 2004-07-23 2011-05-03 At&T Intellectual Property I, L.P. Announcement system and method of use
US8165281B2 (en) 2004-07-28 2012-04-24 At&T Intellectual Property I, L.P. Method and system for mapping caller information to call center agent transactions
US7580837B2 (en) 2004-08-12 2009-08-25 At&T Intellectual Property I, L.P. System and method for targeted tuning module of a speech recognition system
US7602898B2 (en) 2004-08-18 2009-10-13 At&T Intellectual Property I, L.P. System and method for providing computer assisted user support
US7940746B2 (en) 2004-08-24 2011-05-10 Comcast Cable Holdings, Llc Method and system for locating a voice over internet protocol (VoIP) device connected to a network
US8495023B1 (en) * 2004-09-01 2013-07-23 Symantec Operating Corporation Delta catalogs in a backup system
US20060047770A1 (en) * 2004-09-02 2006-03-02 International Business Machines Corporation Direct information copy and transfer between real-time messaging applications
US7197130B2 (en) 2004-10-05 2007-03-27 Sbc Knowledge Ventures, L.P. Dynamic load balancing between multiple locations with different telephony system
US9049289B1 (en) 2004-10-22 2015-06-02 RPX Clearinghouse LLP Remote telephony service management
US7668889B2 (en) 2004-10-27 2010-02-23 At&T Intellectual Property I, Lp Method and system to combine keyword and natural language search results
US7657005B2 (en) * 2004-11-02 2010-02-02 At&T Intellectual Property I, L.P. System and method for identifying telephone callers
US7724889B2 (en) 2004-11-29 2010-05-25 At&T Intellectual Property I, L.P. System and method for utilizing confidence levels in automated call routing
US20060122834A1 (en) * 2004-12-03 2006-06-08 Bennett Ian M Emotion detection device & method for use in distributed systems
US7242751B2 (en) 2004-12-06 2007-07-10 Sbc Knowledge Ventures, L.P. System and method for speech recognition-enabled automatic call routing
US7864942B2 (en) 2004-12-06 2011-01-04 At&T Intellectual Property I, L.P. System and method for routing calls
US7809569B2 (en) * 2004-12-22 2010-10-05 Enterprise Integration Group, Inc. Turn-taking confidence
US20060154654A1 (en) * 2005-01-07 2006-07-13 Cisco Technology, Inc. Method and system for the automated answering and holding of a call
US7751551B2 (en) 2005-01-10 2010-07-06 At&T Intellectual Property I, L.P. System and method for speech-enabled call routing
US7450698B2 (en) 2005-01-14 2008-11-11 At&T Intellectual Property 1, L.P. System and method of utilizing a hybrid semantic model for speech recognition
US7627096B2 (en) 2005-01-14 2009-12-01 At&T Intellectual Property I, L.P. System and method for independently recognizing and selecting actions and objects in a speech recognition system
US7664861B2 (en) 2005-02-02 2010-02-16 Verizon Laboratories Inc. Managed peer-to-peer file sharing
US8964965B1 (en) 2005-02-03 2015-02-24 Microsoft Technology Licensing, Llc Smart capture
US8300780B1 (en) 2005-02-03 2012-10-30 Tellme Networks, Inc. Smart capture for populating an address book with entries
US7627109B2 (en) 2005-02-04 2009-12-01 At&T Intellectual Property I, Lp Call center system for multiple transaction selections
US7321655B2 (en) * 2005-02-07 2008-01-22 Adomo, Inc. Caching user information in an integrated communication system
US8233594B2 (en) * 2005-02-07 2012-07-31 Avaya Inc. Caching message information in an integrated communication system
US7330537B2 (en) * 2005-02-07 2008-02-12 Adomo, Inc. Integrating messaging server directory service with a communication system voice mail message interface
US8059793B2 (en) * 2005-02-07 2011-11-15 Avaya Inc. System and method for voicemail privacy
US20060177011A1 (en) * 2005-02-07 2006-08-10 Jens Skakkebaek System and method for providing code on voicemail appliance
US7808980B2 (en) * 2005-02-07 2010-10-05 Avaya Inc. Integrated multi-media communication system
US7724880B2 (en) * 2005-02-07 2010-05-25 Avaya Inc. Networked voicemail
US8175233B2 (en) * 2005-02-07 2012-05-08 Avaya Inc. Distributed cache system
US20060177014A1 (en) * 2005-02-07 2006-08-10 Jens Skakkebaek System and method for providing data on voicemail appliance
US7346150B2 (en) * 2005-02-07 2008-03-18 Adomo, Inc. Controlling messaging actions using form-based user interface
US8559605B2 (en) * 2005-02-07 2013-10-15 Avaya Inc. Extensible diagnostic tool
US7564954B2 (en) * 2005-02-07 2009-07-21 Adomo, Inc. Form-based user interface for controlling messaging
US20080069327A1 (en) * 2005-02-08 2008-03-20 Kingsley Christopher G Apparatus and method for providing enhanced telecommunications services
US8223954B2 (en) * 2005-03-22 2012-07-17 At&T Intellectual Property I, L.P. System and method for automating customer relations in a communications environment
GB2425686B (en) * 2005-04-29 2007-05-30 Motorola Inc Method and apparatus for notification in a cellular communication system
US7715540B1 (en) 2005-05-05 2010-05-11 Verizon Data Services Llc Keyboard controlled telephony features
US7636432B2 (en) 2005-05-13 2009-12-22 At&T Intellectual Property I, L.P. System and method of determining call treatment of repeat calls
US7657020B2 (en) 2005-06-03 2010-02-02 At&T Intellectual Property I, Lp Call routing system and method of using the same
US8005204B2 (en) 2005-06-03 2011-08-23 At&T Intellectual Property I, L.P. Call routing system and method of using the same
US8503641B2 (en) 2005-07-01 2013-08-06 At&T Intellectual Property I, L.P. System and method of automated order status retrieval
US20070064883A1 (en) * 2005-07-21 2007-03-22 Lawrence Rosenthal Techniques for suspended delivery of messages
US8150416B2 (en) 2005-08-08 2012-04-03 Jambo Networks, Inc. System and method for providing communication services to mobile device users incorporating proximity determination
US8000462B2 (en) * 2005-08-12 2011-08-16 Hewlett-Packard Development Company, L.P. Screening of calls in a packet-based network
US8526577B2 (en) 2005-08-25 2013-09-03 At&T Intellectual Property I, L.P. System and method to access content from a speech-enabled automated system
US8548157B2 (en) 2005-08-29 2013-10-01 At&T Intellectual Property I, L.P. System and method of managing incoming telephone calls at a call center
US20070127652A1 (en) * 2005-12-01 2007-06-07 Divine Abha S Method and system for processing calls
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US7590229B2 (en) * 2005-12-27 2009-09-15 At&T Intellectual Property I, L.P. System for prompting the caller before and after voice-over-internet-protocol call connection
US7933391B1 (en) 2005-12-29 2011-04-26 Avaya Inc. Apparatus and method for providing priority voice messaging from an emergency center
US20070206747A1 (en) * 2006-03-01 2007-09-06 Carol Gruchala System and method for performing call screening
US8625749B2 (en) * 2006-03-23 2014-01-07 Cisco Technology, Inc. Content sensitive do-not-disturb (DND) option for a communication system
DE102006030986B4 (de) * 2006-07-03 2012-01-19 Edscha Engineering Gmbh Vorrichtung und Verfahren zur Steuerung einer Fahrzeugklappe oder einer Fahrzeugtür
WO2008033943A2 (en) * 2006-09-12 2008-03-20 T-Tag Corporation Conference calling servies
US8068602B1 (en) * 2006-09-29 2011-11-29 Verint Americas, Inc. Systems and methods for recording using virtual machines
US20080147793A1 (en) * 2006-10-31 2008-06-19 Singh Munindar P Method And System For Coordinating A Synchronous Activity
US8065080B2 (en) 2006-10-31 2011-11-22 At&T Intellectual Property I, Lp Location stamping and logging of electronic events and habitat generation
US8099084B2 (en) 2006-12-31 2012-01-17 Ektimisi Semiotics Holdings, Llc Method, system, and computer program product for creating smart services
US8160212B2 (en) 2007-02-21 2012-04-17 Avaya Inc. Voicemail filtering and transcription
US8107598B2 (en) * 2007-02-21 2012-01-31 Avaya Inc. Voicemail filtering and transcription
US8064576B2 (en) 2007-02-21 2011-11-22 Avaya Inc. Voicemail filtering and transcription
US8488751B2 (en) 2007-05-11 2013-07-16 Avaya Inc. Unified messenging system and method
US8041765B1 (en) 2007-05-17 2011-10-18 Avaya Inc. Method and apparatus providing sender information by way of a personal virtual assistant (PVA)
US8311204B2 (en) * 2007-10-10 2012-11-13 First Orion Corp. Automatic complaint registration for violations of telephonic communication regulations with call rejection
US20090279534A1 (en) * 2008-05-09 2009-11-12 Mobivox Corporation Method and System for Placing a VOIP Call
US20090279535A1 (en) * 2008-05-09 2009-11-12 Mobivox Corporation Providing Dynamic Services During a VOIP Call
JP4557064B2 (ja) * 2008-07-30 2010-10-06 日本電気株式会社 通話制御サーバ装置、通話中継方法、通話中継プログラム及び音声通話システム
WO2010045332A1 (en) * 2008-10-14 2010-04-22 Grape Technology Group, Inc. System and method for directory assistance including sms supported privacy features
US8060563B2 (en) * 2008-12-29 2011-11-15 Nortel Networks Limited Collaboration agent
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
US20110188645A1 (en) * 2010-02-04 2011-08-04 Christopher Guy Williams Telephone call handling system
US9691377B2 (en) 2013-07-23 2017-06-27 Google Technology Holdings LLC Method and device for voice recognition training
US9275638B2 (en) 2013-03-12 2016-03-01 Google Technology Holdings LLC Method and apparatus for training a voice recognition model database
US10564815B2 (en) 2013-04-12 2020-02-18 Nant Holdings Ip, Llc Virtual teller systems and methods
US9548047B2 (en) 2013-07-31 2017-01-17 Google Technology Holdings LLC Method and apparatus for evaluating trigger phrase enrollment
US9571644B2 (en) * 2013-11-20 2017-02-14 Avaya Inc. Contact advocate
US9128779B1 (en) 2014-07-31 2015-09-08 Splunk Inc. Distributed tasks for retrieving supplemental job information
JP6729193B2 (ja) * 2016-08-31 2020-07-22 沖電気工業株式会社 情報処理サーバ、情報処理システム、端末装置、及びプログラム
US10311875B2 (en) 2016-12-22 2019-06-04 Soundhound, Inc. Full-duplex utterance processing in a natural language virtual assistant
US10574825B2 (en) 2017-02-15 2020-02-25 Microsoft Technology Licensing, Llc Assisted-communication with intelligent personal assistant
US10127227B1 (en) 2017-05-15 2018-11-13 Google Llc Providing access to user-controlled resources by automated assistants
US11436417B2 (en) 2017-05-15 2022-09-06 Google Llc Providing access to user-controlled resources by automated assistants
EP3682345B1 (de) 2018-08-07 2021-11-24 Google LLC Zusammenstellung und auswertung der antworten eines automatisierten assistenten für datenschutzrechtliche bedenken
US10944867B1 (en) 2020-07-06 2021-03-09 Google Llc Reducing telephone network traffic through automated telephone calls

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4371752A (en) * 1979-11-26 1983-02-01 Ecs Telecommunications, Inc. Electronic audio communication system
US4313035A (en) * 1980-01-18 1982-01-26 Bell Telephone Laboratories, Incorporated Method of providing person locator service
US4761807A (en) * 1982-09-29 1988-08-02 Vmx, Inc. Electronic audio communications system with voice authentication features
US5375161A (en) * 1984-09-14 1994-12-20 Accessline Technologies, Inc. Telephone control system with branch routing
JP2602847B2 (ja) * 1987-09-29 1997-04-23 株式会社日立製作所 マルチメディアメールシステム
US5029196A (en) * 1988-07-11 1991-07-02 Dytel Corporation Automated call screening
US4873719A (en) * 1988-11-18 1989-10-10 Morris Reese Enhanced calling number delivery service system
US4933966A (en) * 1989-01-23 1990-06-12 Intellicall, Inc. Method and apparatus for performing an automated collect call
US4953204A (en) * 1989-10-17 1990-08-28 At&T Bell Laboratories Multilocation queuing for telephone calls
GB9002069D0 (en) * 1990-01-30 1990-03-28 British Telecomm Telephone call interception system
US5195086A (en) * 1990-04-12 1993-03-16 At&T Bell Laboratories Multiple call control method in a multimedia conferencing system
US5131024A (en) * 1990-05-16 1992-07-14 Messager Partners Method and apparatus for providing proactive call services following call completion
US5113430A (en) * 1990-10-01 1992-05-12 United States Advanced Network, Inc. Enhanced wide area audio response network
US5243645A (en) * 1990-11-01 1993-09-07 At&T Bell Laboratories Automatic system for forwarding of calls
US5263084A (en) * 1991-07-22 1993-11-16 Northern Telecom Limited Spontaneous caller identification with call-waiting
US5333266A (en) * 1992-03-27 1994-07-26 International Business Machines Corporation Method and apparatus for message handling in computer systems
US5329578A (en) * 1992-05-26 1994-07-12 Northern Telecom Limited Personal communication service with mobility manager
WO1994006236A2 (en) * 1992-08-26 1994-03-17 Bellsouth Corporation Personal number communications system
US5408526A (en) * 1992-10-29 1995-04-18 At&T Corp. Conference calling system
US5436963A (en) * 1992-12-30 1995-07-25 International Business Machines Corporation Telephone answering method and apparatus
US5327486A (en) * 1993-03-22 1994-07-05 Bell Communications Research, Inc. Method and system for managing telecommunications such as telephone calls
US5384771A (en) * 1993-08-27 1995-01-24 At&T Corp. Multimedia call configuration system
US5463684A (en) * 1993-11-03 1995-10-31 Microlog Corporation Telecommunications system for transferring calls without a private branch exchange
US5862208A (en) * 1994-02-16 1999-01-19 Priority Call Management, Inc. Method and system for enabling a party to change terminals during a call
US5724409A (en) * 1994-06-30 1998-03-03 Bellsouth Corporation Speed forwarding system for personal number communications system

Also Published As

Publication number Publication date
WO1996011542A2 (en) 1996-04-18
DE69531160D1 (de) 2003-07-31
US6047053A (en) 2000-04-04
CA2201298A1 (en) 1996-04-18
US5652789A (en) 1997-07-29
EP0788704B1 (de) 2003-06-25
EP0788704A2 (de) 1997-08-13
JP2006191647A (ja) 2006-07-20
WO1996011542A3 (en) 1996-06-13
JP4036879B2 (ja) 2008-01-23
EP1357728A2 (de) 2003-10-29
EP0788704A4 (de) 1998-05-13
JPH10509847A (ja) 1998-09-22
CA2201298C (en) 2006-05-02

Similar Documents

Publication Publication Date Title
DE69531160T2 (de) Netzwerkbasierter kundiger assistent
DE69836725T2 (de) Elektronisches sprachpostnachrichtenverarbeitungssystem
US6804332B1 (en) Network based knowledgeable assistant
DE19622969B4 (de) Telefon-Server
DE69637221T2 (de) Universelles Nachrichtenablieferungssystem
DE69535395T2 (de) Nachrichtenfiltertechniken
DE69533776T2 (de) Netzwerkbasierte multimediakommunikationen und verzeichnissystem sowie betriebssystem dazu
DE69936873T2 (de) Verfahren und System zur Vemittlung von Sitzungen und Anrufen
DE69432803T2 (de) Anrufdetektion und Anrufbearbeitung in einem Multimedia Kollaborationssystem
DE69730929T2 (de) System zur Verwaltung der Mitanwesenheit innerhalb Gemeinschaften
DE60305458T2 (de) System und verfahren zur bereitstellung einer nachrichtengestützten kommunikationsinfrastruktur für einen automatisierten anrufzentralenbetrieb
DE69632121T2 (de) Universelles Nachrichtenspeichersystem
DE69932571T2 (de) Automatisches Anrufverteil- und Trainings-System
DE69433643T2 (de) Multimedien-kommunikationsnetzwerk
DE102018207872A1 (de) Echtzeit-Spracheingabe zur Agentenbegrüssung
DE112010003363T5 (de) Mehrfache anwenderidentität und brückendarstellung
DE102009031304B4 (de) Zuordnung von Sytemanfragen zu SMS-Anwenderantworten
DE102005056928A1 (de) Automatisches Erzeugen von gemischten Übertragungsmedien-Nachrichten
EP2135436B1 (de) Verbindungsaufbau über ein kommunikationsnetz zu einem teilnehmer einer besprechung ohne dass dessen rufnummer bekannt ist
EP1370995A1 (de) Verfahren und kommunikationssystem zur generierung von antwortmeldungen
DE60023166T2 (de) Persönliches sofortiges kommunikationssystem
EP1858239B1 (de) Verfahren zum Verwalten von Abläufen auf einem mobilen Endgerät und entsprechendes Verwaltungssystem
DE60312651T2 (de) Vorrichtung und verfahren zur integrierten computergesteurten anrufverarbeitung in pakettelefonnetzen
DE60126487T2 (de) Verfahren und vorrichtung zum herstellen von verbindungen ohne verbreitung der rufnummer
EP3603041B1 (de) Verfahren zum betreiben eines kommunikationssystems, telekommunikationsvorrichtung sowie computerprogrammprodukt

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: ORANGE S.A., PARIS, FR

8328 Change in the person/name/address of the agent

Representative=s name: BEETZ & PARTNER PATENTANWAELTE, 80538 MUENCHEN