DE60008483T2 - Telefondiensten in einem Kommunikationsnetzwerk - Google Patents

Telefondiensten in einem Kommunikationsnetzwerk Download PDF

Info

Publication number
DE60008483T2
DE60008483T2 DE60008483T DE60008483T DE60008483T2 DE 60008483 T2 DE60008483 T2 DE 60008483T2 DE 60008483 T DE60008483 T DE 60008483T DE 60008483 T DE60008483 T DE 60008483T DE 60008483 T2 DE60008483 T2 DE 60008483T2
Authority
DE
Germany
Prior art keywords
network
interface
network elements
commands
telephony
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
DE60008483T
Other languages
English (en)
Other versions
DE60008483D1 (de
Inventor
Larry Dolinar
Jinchi Chu
Michel Kallas
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.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
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
Priority claimed from US09/436,562 external-priority patent/US6701366B1/en
Application filed by Nortel Networks Ltd filed Critical Nortel Networks Ltd
Application granted granted Critical
Publication of DE60008483D1 publication Critical patent/DE60008483D1/de
Publication of DE60008483T2 publication Critical patent/DE60008483T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42144Administration or customisation of services by service provider
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • H04Q3/0054Service creation techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Description

  • Die Erfindung bezieht sich auf die Bereitstellung von Telefoniediensten in Kommunikationsnetzen.
  • Datennetze werden in weitem Umfang zur Verbindung verschiedener Arten von Knoten verwendet, wie z. B. Personalcomputern, Servern, Überleiteinrichtungen, Netzwerk-Telefonen, usw. Netzwerke können private Netze, wie z. B. Ortsbereichsnetze und Weitbereichsnetze und öffentliche Netze, wie z. B. das Internet einschließen. Die gestiegene Verfügbarkeit derartiger Datennetze hat die Zugänglichkeit zwischen Knoten verbessert, die mit den Datennetzen verbunden sind. Populäre Formen von Kommunikationen über derartige Datennetze hinweg schließen elektronische Post, Dateiübertragung, die Suche im weltweiten Datennetz und andere Austauschmöglichkeiten von digitalen Daten ein.
  • Mit der zunehmenden Kapazität und Zuverlässigkeit von Datennetzen wurden Sprache- und Multimedia-Kommunikationen über Datennetze möglich. Derartige Formen von Kommunikationen schließen Telefongespräche über die Datennetze, Videokonferenzen und die Verteilung von Multimedia-Daten (beispielsweise durch Sammelsendung) ein.
  • Es wurden verschiedene Normen für Sprache- und Multimedia-Kommunikationen über Datennetze vorgeschlagen. Beispielsweise wurde eine Multimedia-Daten- und Steuerarchitektur von der Internet Engineering Task Force (IETF) entwickelt. Die Protokolle, die einen Teil der IETF-Multimedia-Daten- und Steuerarchitektur bilden, schließen ein Sitzungs-Initialisierungsprotokoll (SIP) zum Aufbau von Gesprächssitzungen, ein Ressourcen-Reservierungsprotokoll (RSVP) zur Reservierung von Netzressourcen; ein Echtzeit-Transportprotokoll (RTP) zum Transport von Echtzeitdaten und zur Lieferung einer Dienstgüte- (QoS-) Rückführung; ein Echtzeit-Datenstromprotokoll (RTSP) zur Steuerung der Zustellung von Medien-Datenströmen; ein Sitzungsankündigungsprotokoll (SAP) zur Ankündigung von Multimedia-Sitzungen durch Sammelsendung; und ein Sitzungsbeschreibungsprotokoll (SDP) zur Beschreibung von Multimedia-Sitzungen ein. In einem Kommunikationssystem, das Sprache- oder andere Datenstrom-Kommunikationen bereitstellt, kann es erforderlich sein, verschiedene Arten Telefonie- oder Gesprächsdiensten zu definieren, um Verbindungs- oder Gesprächsanforderungen zu verarbeiten und auf diese anzusprechen. Ein Kommunikationsnetz kann verschiedene Elemente, wie z. B. ein Sprachpostsystem, ein integriertes Sprachantwort-(IVR-)System, Medien-Überleiteinrichtungen usw. einschließen, die an einer vorgegebenen Gesprächssitzung beteiligt sind. Die Schaffung von Anwendungen zur Abwicklung verschiedener Dienste, die einen Teil einer Gesprächssitzung sein können, muss Wechselwirkungen zwischen den Netzwerkelementen berücksichtigen. Daher besteht ein Bedarf an einem zweckmäßigen und effizienten Verfahren und einer Vorrichtung zur Bereitstellung von Telefoniediensten in einem Kommunikationsnetzwerk.
  • Die WO 99/20058, Alcatel, offenbart ein Verfahren zur Verwendung in einem Kommunikationsnetz, das Netzwerkelemente zur Durchführung von Telefoniediensten aufweist, mit den folgenden Schritten: Bereitstellung einer Schnittstelle zu den Netzwerkelementen; Empfang von Anforderungen durch die Schnittstelle, Festlegen des Betriebsverhaltens von Telefoniediensten; und Senden von Befehlen an eines oder mehrere Netzwerkelemente, die bei der Ausführung der gewünschten Telefoniedienste beteiligt sind, als Antwort auf derartige Anforderungen.
  • Die vorliegende Erfindung ist dadurch gekennzeichnet, dass die Anforderungen von einem Software-Modul empfangen werden, und dass die Befehle über ein Paketbasiertes Netzwerk ausgesandt werden.
  • Einige Ausführungsformen der Erfindung können einen oder mehrere der folgenden Vorteile haben. Es wird ein effizienteres und bequemeres Verfahren und eine effizientere und bequemere Vorrichtung zur Schaffung oder Erzeugung von Telefoniediensten in einem Kommunikationsnetzwerk geschaffen. Eine Technik wird bereitgestellt, um Realisierungseinzelheiten von Bauteilen (beispielsweise in Form von Netzwerkelementen) zu abstrahieren, die verschiedene Telefoniedienste durch Software-Routinen, Module oder Skripten ausführen, die von Benutzern geschaffen werden, um Telefoniedienste bereitzustellen. Eine derartige Abstraktion ermöglicht einen wesentlich effizienteren Mechanismus zur Schaffung von Telefoniediensten.
  • Weitere Merkmale und Vorteile werden aus der folgenden Beschreibung, aus den Zeichnungen und den Ansprüchen ersichtlich.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockschaltbild einer Ausführungsform eines Kommunikationssystems, das paketbasierte Datennetze einschließt.
  • 2 zeigt Schichten, die die Architektur eines Telefoniesystems gemäß einer Ausführungsform darstellen.
  • 3 ist ein Blockschaltbild, das eine alternative Ansicht von Komponenten des Kommunikationssystems nach 1 zeigt.
  • 4 erläutert einen Prozess zur Schaffung und Ausführung von Telefoniediensten in dem Kommunikationssystem nach 1 gemäß einer Ausführungsform.
  • 5A bis 5B bilden ein Zustandsdiagramm eines Ausführungsbeispiels eines Softwaremoduls, das einen Sprachpostabfragedienst bereitstellt.
  • 6 ist ein Blockschaltbild einer weiteren Ausführungsform eines Systems, das CORBA- (Common Object Request Broker Architecture-) Komponenten und ein Software-Modul zur Realisierung von Telefoniediensten enthält.
  • 7 ist ein Blockschaltbild eines integrierten Sprachausgabe- (IVR-) Systems, das einen Objektanforderungs-Vermittler (ORB) gemäß einem Ausführungsbeispiel einschließt.
  • 8 ist ein Blockschaltbild von Komponenten eines Netzwerkelementen-Beispiels in dem Kommunikationssystem nach 1.
  • Ausführliche Beschreibung
  • Gemäß 1 schließt ein Kommunikationssystem 10 verschiedene Knoten oder Netzwerkelemente ein, die in der Lage sind, miteinander zu kommunizieren. Die Beispiele der Netzwerkelemente und die Art und Weise, wie sie miteinander verbunden sind, dienen lediglich zu Erläuterungszwecken. Viele andere Anordnungen und Architekturen sind in weiteren Ausführungsformen möglich.
  • Das Kommunikationssystem 10 kann ein privates Netz 21, das sich in einer Gemeinschaft 20 befindet, und ein öffentliches Netz 12 (beispielsweise das Internet) einschließen. Eine „Gemeinschaft" kann sich auf irgendeine vorgegebene Gruppe von Elementen oder Benutzern beziehen, die über ein Netzwerk miteinander verbunden sind. Ein „privates Netzwerk" bezieht sich auf ein Netzwerk, das gegen einen nicht autorisierten allgemeinen Zugang geschützt ist. Ein „Netzwerk" oder „Netz" kann sich auf ein oder mehrere Kommunikationsnetze, Verbindungsstrecken, Kanäle oder Pfade sowie auf Routen oder Überleiteinrichtungen beziehen, die zur Weiterleitung von Daten zwischen Elementen über derartige Netzwerke, Verbindungsstrecken, Kanäle oder Pfade verwendet werden. Obwohl in dieser Beschreibung auf „private" und „öffentliche" Netze Bezug genommen wird, können weitere Ausführungsformen Netze ohne derartige Bezeichnungen oder Festlegungen einschließen. Beispielsweise kann sich eine Gemeinschaft auf Knoten oder Elemente beziehen, die über ein öffentliches Netz oder eine Kombination von privaten und öffentlichen Netzen miteinander gekoppelt sind.
  • Bei einer Ausführungsform kann das in den verschiedenen Netzen verwendete Protokoll das Internetprotokoll (IP) sein, wie es in der Kommentaraufforderung (RFC) 791 mit dem Titel „Internet Protocol" vom September 1981 beschrieben ist.
  • Andere Versionen von IP, wie z. B. IPv6 oder andere Paket-basierte Normen können ebenfalls in weiteren Ausführungsformen verwendet werden. Eine Version von IPv6 ist im RFC 2460 mit dem Titel „Internet Protocol, Version 6-(IPv6-) Specification) vom Dezember 1998 beschrieben. Paketbasierte Netze, wie z. B. IP-Netze kommunizieren mit Paketen, Datagrammen oder anderen Dateneinheiten, die über die Netze ausgesandt werden. Im Gegensatz zu leitungsvermittelten Netzen, die eine dedizierte Ende-zu-Ende-Verbindung oder einen physikalischen Pfad für die Dauer einer Verbindungssitzung bereitstellen, ist ein Paket-basiertes Netz ein Netz, bei dem der gleiche Pfad von verschiedenen Netzwerkelementen gemeinsam genutzt werden kann.
  • Ein paketbasiertes Netzwerk kann ein paketvermitteltes Netzwerk, wie z. B. ein IP-Netzwerk sein, das auf einer verbindungslosen Verbindungsnetz-Schicht beruht. Pakete oder andere Dateneinheiten, die in ein paketvermitteltes Datennetz eingeleitet werden, können unabhängig über irgendein Netz (und möglicherweise über unterschiedliche Netze) zu einem Ziel-Endgerät wandern. Die Pakete können sogar in einer geänderten Reihenfolge ankommen. Die Leitweglenkung von Paketen beruht auf einer oder mehreren Adressen, die in jedem Paket übertragen werden. Andere Arten von paketbasierten Netzen schließen verbindungsorientierte Netze, wie z. B. asynchrone Übertragungsbetriebsart-(ATM-)Netze oder Frame Relay-Netze ein, die auf einem virtuellen Verbindungsmodell beruhen.
  • Die Gemeinschaft 20 kann Knoten oder Elemente einschließen, die es Benutzern ermöglichen, an Audio-(beispielsweise Sprache-) und Multimedia-(beispielsweise Audio- und Video-)Kommunikationssitzungen teilzunehmen. Beispiele derartiger Kommunikationssitzungen schließen Telefongespräche, Videokonferenzen und andere Sitzungen ein, bei denen Datenströme ohne Unterbrechung ausgetauscht werden. In dieser Beschreibung werden derartige Kommunikationssitzungen als Telefonie- oder Gesprächssitzungen bezeichnet. Verschiedene Telefonie- oder Gesprächsdienste können in einer Telefonie-Sitzung ausgeführt werden. Beispielsweise kann eine Ankündigung abgespielt werden, eine Mitteilung kann aufgezeichnet werden, ein Ton kann abgespielt werden, die Detektion eines Zweiton-Mehrfrequenz-(DTMF-)Signals kann ausgeführt werden, ein Gespräch kann von einem Endgerät zu einem weiteren Endgerät weitergeleitet werden, eine aufgezeichnete Sprache-Mitteilung kann rückgewonnen werden, usw. Ein „Telefoniedienst" kann als irgendeine Aktion oder ein Dienst definiert werden, der einer Telefonie- oder Gesprächssitzung zugeordnet ist.
  • Eine „Telefonie-Sitzung" oder eine „Anruf-Sitzung" bezieht sich allgemein auf entweder eine Audio- (beispielsweise Sprache-) Sitzung, eine Multimediasitzung oder irgendeine andere Art von Sitzung, bei der ununterbrochene Datenströme zwischen zwei oder mehr Netzwerkelementen oder Endgeräten ausgetauscht werden, die mit einem Datennetz gekoppelt sind. Eine „interaktive" Telefonie- oder Anruf-Sitzung bezieht sich auf eine Telefonie- oder Anruf-Sitzung, bei der zwei oder mehr Parteien an einem Austausch von Audio- und/oder Videodaten in einer eingeleiteten Sitzung zwischen zwei oder mehr Netzwerkelementen beteiligt sind. Eine interaktive „Echtzeit"-Telefonie- oder Anruf-Sitzung bezieht sich auf einen Austausch von Daten im Wesentlichen auf Echtzeit-Basis zwischen zwei Endgeräten. Eine Sitzung erfolgt im Wesentlichen in Echtzeit, wenn eine Wechselwirkung zwischen zwei Endpunkten oder Teilnehmern erfolgt, wobei eine Kommunikation von einem Endpunkt relativ schnell von einer Antwort oder einer anderen Kommunikation von dem anderen Endpunkt gefolgt wird, typischerweise innerhalb von Sekunden, um ein Beispiel zu nennen.
  • Interaktive Anruf-Sitzungen stehen beispielsweise im Gegensatz zu elektronischen Post-Mitteilungen, bei denen ein erster Teilnehmer eine Mitteilung über ein Datennetz an einen zweiten Teilnehmer sendet, wobei üblicherweise keine Bestätigungsanzeige zurück an den ersten Teilnehmer dafür geliefert wird, dass der zweite Teilnehmer empfangen hat oder dass sich der zweite Teilnehmer sogar an seinem oder ihrem Endgerät befindet. Im Gegensatz hierzu beinhaltet eine interaktive Sitzung eine Anforderung, auf die eine gewisse Bestätigung folgt, dass ein angerufener Teilnehmer die Anrufaufforderung beantwortet hat, um die Herstellung der interaktiven Sitzung zu ermöglichen, in der die Teilnehmer Daten austauschen (beispielsweise Sprache, Video und/oder Text). Die Ausdrücke „Telefonie-Sitzung" und „Anruf-Sitzung" werden hier austauschbar verwendet.
  • Gemäß einiger Ausführungsformen schließt eine Architektur oder ein Rahmenwerk für die Schaffung von Telefoniediensten und Anwendungen für Telefonie-Sitzungen über paketbasierte Netze, wie z. B. ein IP-Netz, eine untere Schicht, die Netzwerkelemente zur Durchführung von Telefoniediensten einschließt, eine obere Schicht, die Softwaremodule einschließt, in denen Telefoniedienste dargestellt sind, und eine Schnittstellenschicht (oder Middleware-Schicht) zwischen den oberen und unteren Schichten ein. Die Schnittstellenschicht kann zur Abstrahierung der Funktionalität der Netzwerkelemente verwendet werden, die einen Teil des Kommunikationssystems 10 bilden. Dies ermöglicht eine zweckmäßige Technik zur Schaffung von Software-Modulen zur Bereitstellung von Telefoniediensten, weil ein Software-Entwickler Code oder Skripten schaffen kann, um Telefoniedienste bereitzustellen, ohne dass er sich um die Realisierungseinzelheiten (Standort des Gerätes, Programmiersprache, usw.) von Geräten kümmern muss, die den angeforderten Dienst tatsächlich ausführen. Bei der Architektur oder bei dem Rahmenwerk gemäß einiger Ausführungsformen wird eine gemeinsame Schnittstellenschicht zwischen mehrfachen Diensten in der oberen Schicht (Software-Module) und mehrfachen Netzwerkelementen in einer unteren Schicht bereitgestellt.
  • Das Vorhandensein der oberen Schicht zur Bereitstellung von Telefoniediensten erstreckt in Netzelementen verfügbare Merkmale über einfache Anrufdienste hinaus, um eine Rufweiterleitung, eine Konferenzschaltung, eine Weiterleitung und andere Telefoniedienste einzuschließen, die Benutzer wünschen können. Jedes Software-Modul schließt Elemente ein, die verschiedene auszuführende Telefoniedienste darstellen. Derartige Elemente können Subroutinen, Verfahren, Objekte oder irgendein anderes Element sein, die vom Benutzer geschaffen werden können. Beispielsweise kann das Software-Modul allgemein in Form von Zustandsdiagrammen mit kundenspezifisch anpassbaren Flusspfaden und Eigenschaften dargestellt werden. Jeder Zustand kann einem Telefonie-Vorgang oder -dienst zugeordnet werden, und ein Trigger oder Auslöseereignis, der bzw. das einen Übergang zwischen Zuständen hervorruft, kann eine Benutzereingabe oder ein Status einer laufenden Telefonie-Sitzung sein.
  • Beispiele von Kommunikationsgeräten, die in der Lage sind, an Telefonie-Sitzungen über das Netzwerk 21 teilzunehmen, schließen übliche Telefone 34 und Faxmaschinen 35 ein, die mit einer Medien-Überleiteinrichtung 32 gekoppelt sind. Die Medien-Überleiteinrichtung 32 verbindet Nicht-Netzwerk-Endgeräte, wie z. B. die Telefone 34 und die Faxmaschine 35 mit dem Netzwerk 21. Die Medien-Überleiteinrichtung 32 kann in Verbindung mit einer Medien-Überleiteinrichtungs-Steuerung 28 arbeiten, um Daten zwischen dem Netzwerk 21 und dem mit der Medien-Überleiteinrichtung 32 gekoppelten Endgeräten zu lenken. Obwohl sie als getrennte Komponenten gezeigt sind, können die Medien-Überleiteinrichtung 32 und die Medien-Überleiteinrichtungs-Steuerung 28 auf der gleichen Plattform realisiert werden. Die Medien-Überleiteinrichtungs-Steuerung 28 steuert einzelne Aufgaben und Ressourcen der Medien-Überleiteinrichtung 32. Zusätzlich steuert die Medien-Überleiteinrichtungs-Steuerung 28 Kommunikationen mit den mit der Medien-Überleiteinrichtung 32 gekoppelten Endgeräten.
  • Die Gemeinschaft 20 kann weiterhin Netzwerk-Telefone 33 einschließen, die Telefone mit Netzwerk-Schnittstelleneinheiten sind, um Kommunikationen über das Netzwerk 21 zu ermöglichen. Andere Kommunikationseinrichtungen schließen Computer 26 ein, die Sprach- und/oder Bildverarbeitungsfähigkeiten haben. Ein Benutzer an einem der Kommunikationsgeräte kann einen Benutzer an einem anderen Kommunikationsgerät anrufen, wobei Sprache und/oder Videodaten über das Netzwerk 21 übertragen werden. Das Netzwerk 21 kann mit Elementen außerhalb der Gemeinschaft 20 über ein Überleitsystem 30 verbunden sein.
  • Ein Anruf- oder Verbindungsserver 24 kann ebenfalls mit dem Netzwerk 21 gekoppelt sein, um den Aufbau, die Verwaltung und die Beendigung von Kommunikationssitzungen zwischen Endgeräten zu verwalten, die mit dem Netzwerk 21 gekoppelt sind. Der Anrufserver 24 kann mit einem Datenbanksystem 22 (das sich auf einer getrennten Plattform oder auf der gleichen Plattform wie der Anrufserver 24 befinden kann) gekoppelt sein, das ein Teilnehmerverzeichnis und ein Netz-Verzeichnis einschließt. Weiterhin können Richtlinien für ankommende und abgehende Anrufe von dem Anrufserver 24 verwaltet werden.
  • Das Teilnehmerverzeichnis in dem Datenbanksystem 22 speichert statische und dynamische Informationen über Benutzer in der Gemeinschaft 20. Der Anrufserver 24 führt einen Zugriff auf das Teilnehmerverzeichnis aus, um Anrufe an Benutzer zu lokalisieren und diese zu lenken. Der laufende Standort eines Benutzers kann durch Registrieren von einem unterschiedlichen Standort aus geändert werden. Das Netzwerk-Verzeichnis in dem Datenbanksystem führt statische und dynamische Informationen über Netzwerkelemente und bevorzugten Merkmalen. Das Netzwerk-Verzeichnis ermöglicht es dem Anrufserver 24, die am besten geeignete Netzwerk-Ressource oder Ressourcen zu bestimmen, die bei seinen Operationen zu verwenden sind. Andere Netzwerkelemente, die mit dem Netzwerk 21 gekoppelt sein können, schließen einen Web-Server 36 zur Bereitstellung von Web-Seiten ein, die für Benutzer innerhalb und außerhalb der Gemeinschaft 20 zugänglich sind. Ein weiteres System in der Gemeinschaft 20 kann ein Sprache-Speicher-Server 23 sein, in dem Sprachedaten, wie z. B. diejenigen, die einer Sprachpost zugeordnet sind, gespeichert werden können.
  • Von einem Endgerät ausgehende Anrufe zu einem anderen Endgerät werden von dem Anrufserver 24 abgewickelt. Der Anrufserver empfängt einen Anruf, und auf der Grundlage der Identifikationsinformation in dem Anruf (unter Einschluss von Informationen, die die Quellen- und Zielpunkte identifizieren) führt der Anrufserver 24 eine entsprechende Leitweglenkung des Anrufs aus. In anderen Fällen kann eine Peer-zu-Peer-Sitzung zwischen zwei Endgeräten ohne Durchlaufen des Anrufservers 24 ausgebildet werden.
  • Der Anrufserver 24 kann in verschiedene Komponenten aufgeteilt werden, unter Einschluss eines SIP-Proxy, einer Diensteplattform, eines Telefonieservers und anderer Elemente. Die Diensteplattform kann das Netzwerk überwachen, um zu bestimmen, ob ein Telefoniedienst in Gang gesetzt werden muss. Wenn dies der Fall ist, so kann die Diensteplattform die Skript-Maschine aufrufen, um den Telefoniedienst zu starten. Der Telefonieserver kann ein Hauptprogramm sein, das Nebenstellenanlagen-(PBX-)Funktionen in der erforderlichen Weise startet. Bei einer Ausführungsform können der Anrufserver 24 und einige der anderen Netzelemente den Aufbau, die Verwaltung und die Beendigung von Telefonie-Sitzungen gemäß der Multimedia-Daten- und Steuerarchitektur von der Internet Engineering Task Force (IETF) durchführen. Die IETF-Multimedia-Daten- und Steuerarchitektur schließt eine Protokollfamilie oder einen Protokollstapel ein, der das Sitzungs-Initialisierungsprotokoll (SIP) einschließt, wie dies in RFC 2543 mit dem Titel „SIP: Session Initiation Protokoll" vom März 1999 beschrieben ist. SIP kann dazu verwendet werden, Kommunikationssitzungen einzuleiten sowie Mitglieder zu Sitzungen einzuladen, die durch einen anderen Mechanismus, wie z. B. elektronische Post, News-Gruppen, Web-Seiten und anderes angekündigt wurden. SIP ermöglicht die Bestimmung des Endsystems, das für die Telefonie-Sitzung zu verwenden ist. SIP ermöglicht weiterhin die Bestimmung der Medien, und Medien-Parameter, die zu verwenden sind, sowie die Feststellung der Bereitschaft des angerufenen Teilnehmers, an Telefonie-Kommunikationen teilzunehmen.
  • Verschiedene Einheiten können durch das SIP definiert werden. Ein Klient entsprechend dem SIP-Protokoll ist ein Anwendungsprogramm, das SIP-Aufforderungen aussendet, wie z. B. zur Ausführung von Anruf-Aufforderungen. Ein Server kann gemäß SIP ein Anwendungsprogramm sein, das SIP-Anforderungen akzeptiert, um Anrufe mit Diensten zu versorgen und um Antworten auf SIP- Anforderungen zurückzusenden. Ein SIP-Proxy oder Proxy-Server kann ein zwischenliegendes Programm sein, das sowohl als ein Server als auch ein Klient wirkt, um Anforderungen für andere Klienten durchzuführen.
  • Die IETF-Multimedia- und Steuerarchitektur schließt weiterhin ein Ressourcen-Reservierungsprotokoll (RSFP), wie es im RFC 2205 beschrieben ist, zur Reservierung von Netzwerk-Ressourcen; das Echtzeit-Transportprotokoll (RTP), wie es im RFC 1889 beschrieben ist, zum Transport von Echtzeitdaten und zur Lieferung einer Dienstegüte-(QoS-)Rückführung; das Echtzeit-Datenstromprotokoll (RTSP), wie es im RFC 2326 beschrieben ist, um die Zustellung von Datenstrom-Medien zu steuern; das Sitzungsankündigungsprotokoll (SAP) zur Ankündigung von Multimedia-Sitzungen durch Sammelsendung; und das Sitzungsbeschreibungsprotokoll (SDP) ein, wie es in RFC 2327 beschrieben ist, um Multimedia-Sitzungen zu beschreiben.
  • Die beschriebenen Protokolle stellen lediglich Beispiele von Protokollen dar, die für Kommunikationssitzungen zwischen Netzwerkelementen verwendet werden können. In weiteren Ausführungsformen können andere Arten von Protokollen verwendet werden, wie z. B. Protokolle für Kommunikationssitzungen, die anders als Sprache- oder Multimedia-Kommunikationssitzungen sind. Ein anderes Protokoll schließt die H.323-Empfehlung der internationalen Telekommunikationsunion (ITU) ein. In dieser Beschreibung stellt ein Kommunikationssystem, das SIP und andere verwandte Protokolle realisiert, ein Beispiel einer Umgebung dar, in der Module gemäß mancher Ausführungsformen verwendet werden können, um Telefoniedienste zu realisieren. Es wird jedoch in Betracht gezogen, dass in anderen Ausführungsformen Module zur Schaffung von Telefoniediensten verwendet werden können, die mit anderen Protokollen oder Normen arbeiten.
  • Das öffentliche Netz 12 kann mit verschiedenen Elementen unter Einschluss eines Endgerätes 12 gekoppelt sein, das ein Netzwerktelefon oder ein Computer sein kann, der Sprache- und/oder Bildverarbeitungsfähigkeiten hat. Das Netzwerk 12 kann weiterhin über eine Medien-Überleiteinrichtungs-Steuerung 16 mit einer Überleiteinrichtung 18 für ein öffentliches wählvermitteltes Telefonnetz (PSTN) gekoppelt sein, die die Schnittstelle zwischen einem PSTN 40 und einem Paketbasierten Datennetz, wie z. B. dem Netzwerk 12 bildet. Das PSTN 40 ist mit drahtgebundenen Telefonen 42 sowie mit ortsbeweglichen Telefonen oder anderen mobilen Einheiten über Funknetzwerke verbunden.
  • Gemäß 2 schließt eine Darstellung der Architektur oder des Rahmenwerkes gemäß einiger Ausführungsformen drei Schichten ein: eine Telefoniedienst- oder Anwendungsschicht 100, eine Schnittstellenschicht 102 und eine Netzwerkelementen-Schicht 104. Die Netzwerkelementen-Schicht 104 schließt verschiedene Netzelemente ein, die Telefoniedienste bereitstellen. Einige Beispiele für Netzwerkelemente schließen die in 1 gezeigten Elemente sowie andere Elemente ein: eine Bedienungsperson-Konsole (Hardware oder Software), eine Handapparate-Überleiteinrichtung, Stationsgeräte (mit oder ohne eigene Intelligenz), Teilnehmer-Datenbanken (Personen, Beziehungen, usw.), Netzwerk-Datenbanken (Komponenten-Konfiguration und Information) Medienserver (Aufzeichnung, Brücken, usw.), Medienspeicher, eine PSTN-Überleiteinrichtung, ein Firewall-System, eine CDR-Datenbank, einen Webserver, einen E-Mail-Server, eine Anwendungsstation, eine Echtzeit-Statusbox, einen SIP-Proxy-Server, eine SIP-Domänenverwaltung, einen Registrierungsserver, einen Authentifizierungsserver, ein Datenbank-Verwaltungsverzeichnis, eine Server-Entwicklungs-Benutzerschnittstellen-(UI-)Plattform und andere Elemente.
  • Die Schnittstellenschicht 102 schließt verschiedene Komponenten unter Einschluss von Übersetzungskomponenten 110 zur Übersetzung, Interpretation oder Kompilation von Skripten oder Code, Kommunikationskomponenten 112 zur Ermöglichung von Kommunikationen mit Netzwerkelementen; und Darstellungskomponenten ein, die Darstellungen oder Beschreibungen der Netzwerkelemente liefern, so dass die Funktionalität der Netzwerkelemente an höheren Schichten abstrahiert werden kann. Die Schnittstellenschicht 102 kann in einem oder mehreren Elementen in dem Netzwerk realisiert werden. Beispielsweise können viele der Komponenten in einem SIP-Proxy-Server realisiert werden (wie ein Server, der in dem Anruf-Server 24 realisiert ist).
  • Die Übersetzungskomponenten 110 können eine Skript-Maschine (zur Interpretation und Ausführung von Skripten) und/oder Compiler oder andere Übersetzer oder Interpreter einschließen. Die Darstellungskomponenten 114 können Bibliotheks-Dateien einschließen, die die Funktionen, Aufgaben und andere Einzelheiten beschreiben, die mit den Netzwerkelementen verbunden sind.
  • Die Kommunikationskomponenten 112 können Netzwerk-API's (Anwendungsprogramm-Schnittstellen) und Prozeduren einschließen, die es Mechanismen für Netzwerkelemente ermöglichen, andere Netzwerkelemente aufzurufen, wie z. B. das einfache Objekt-Zugangsprotokoll (SOAP), wie es in einem Internet-Entwurf mit dem Titel „SOAP: Simple Object Access Protocol" vom September 1999 beschrieben ist. Die Kommunikationskomponenten 112 können weiterhin eine Common Object Request Broker Architekture (CORBA-) Komponente einschließen, die es Anwendungen ermöglicht, miteinander unabhängig davon zu kommunizieren, wo sie sich befinden oder wer sie entwickelt hat. CORBA ist in der CORBA/IIOP 2.3.1-Spezifikation vom 7. Oktober 1999 beschrieben. Die Kommunikationskomponenten 112 können weiterhin Komponenten-Objekt-Modell-(COM-)Objekte einschließen.
  • Die Dienste- und Anwendungsschicht 100 kann verschiedene Software-Module einschließen, die Elemente (in der Form von Code oder Skripten) enthalten, die Telefoniedienste, die ausgeführt werden sollen, darstellen oder spezifizieren. Telefoniedienste können Sprache-Telefonie, Sprachdienste (beispielsweise Weiterleitung usw.), Sprachpost (Aufzeichnungsteil), vereinheitlichte Mailbox-Dienste (Sprache, Fax, E-Mail, Wiedergabe), Anrufzentralen, integrierte Sprachbeantwortungseinrichtungen (automatische Begrüßung), e-Commerce (auf der Grundlage von Web und Telefonie) Konferenzschaltungen und Gruppenware (Zusammenarbeits-Anwendungen) einschließen, um nur Beispiele zu nennen.
  • In 3 ist eine Darstellung des Kommunikationssystems nach 1 gezeigt, in dem API's realisiert sind. Die mit dem Netzwerk 21 gekoppelten Elemente unter Einschluss der Medien-Überleiteinrichtungs-Steuerung 28, des Anrufservers 24, des Sprache-Speicher-Servers 23, des Datenbanksystems 22, des Web-Servers 36 usw. können eine entsprechende Netzwerk-API 210, 212, 214, 216 und 218 einschließen, die jeweils Funktionen oder Routinen definiert, die die Skript-Maschine 100 aufrufen kann, um Aktionen auszuführen, die während der Ausführung eines Skript-Moduls spezifiziert sind. Telefoniedienste sind als Skript-Module bei dieser Ausführungsform realisiert. Die aufgerufene API-Funktion oder Routine wird dann in dem jeweiligen Element ausgeführt, um die angeforderte Aktion auszuführen. Die in jedem Netzwerkelement residierende API hängt von Aufgaben ab, die von diesem Netzwerkelement auszuführen sind. So kann beispielsweise der Anrufserver 24 eine Art von API einschließen, während das Datenbanksystem 22 eine andere Art von API einschließen kann, wie z. B. die Lightweight Directory Access Protocol-(LDAP-)Spezifikationen von der IETF. Es kann irgendeine Art von API in irgendeinem vorgegebenen Netzwerkelement verwendet werden, vorausgesetzt, dass die Skript-Maschine 200 Kenntnisse über die API hat und Aufrufe von Funktionen oder Routinen in der API machen kann.
  • Die Skript-Module 204, die sich in ein oder mehreren Speichermedien befinden, die für die Dienste-Skript-Maschine 200 zugänglich sind, können durch ein Skript-Erzeugungs-Dienstprogramm 206 und/oder eine Benutzerschnittstelle (UI) 208 geschaffen werden. Bei einer Ausführungsform kann eine Telefonie-Skript-Sprache (TSL) verwendet werden, um die Skript-Module zu erzeugen. Für Dienste, die nicht durch Skripte gemäß TSL realisierbar sind, können andere Module 220, die in einer weiterentwickelten Programmiersprache geschrieben sind, verwendet werden, um diese Dienste zu realisieren. Derartige Programmiersprachen können C++, Java und andere einschließen.
  • Gemäß einer Ausführungsform kann TSL eine textbasierte Sprache entsprechend einer erweiterten Auszeichnungssprache (XML()) sein, wobei eine Version in der „Extensible Markup Language (XML(), 1.0, „World Wide Web Consortium (W3C) Empfehlung vom Februar 1998 beschrieben ist. XML() ermöglicht es, eine kundenspezifische Auszeichnungssprache für viele Klassen von Dokumenten zu definieren. XML kann zur Codierung vieler unterschiedlicher Arten von Informationen unter Einschluss der Skript-Module verwendet werden, wie sie hier zur Schaffung von Telefoniediensten gemäß einiger Ausführungsformen beschrieben werden. Jedes Skript-Modul kann als eine Zustandsmaschine dargestellt werden, die eine Anzahl von Zuständen und Triggern aufweist, die Übergänge zwischen unterschiedlichen Zuständen steuern. In jedem Zustand oder in Übergängen zwischen Zuständen können bestimmte Aktionen, die Telefoniediensten entsprechen, spezifiziert werden. Trigger sind grundsätzlich Testbedingungen, die bewirken, dass die Zustandsmaschine, die ein TSL-Skriptenmodul bildet, von einem Zustand zu einem anderen übergeht. Aktionen sind die Aufgaben, die auszuführen sind, wobei dies Telefonie-Aufgaben sein können.
  • Als Beispiele können Trigger folgendes einschließen: eine Anrufidentifikation (zur Identifikation des anrufenden Teilnehmers oder Endgerätes); eine Identifikation des angerufenen Teilnehmers (um den Teilnehmer oder das Endgerät zu identifizieren, das angerufen wird); eine Zeitanzeige (zur Anzeige der Zeit des Anrufes); einen Anruffortschritts-Zustandsanzeiger (um anzuzeigen, ob ein Anruf belegt ist, die Anzahl von Anrufvorgängen, die abgelaufen sind, ob es eine Antwort gab, usw.); eine Anzeige für die Feststellung von DTMF-Signalen; Informationen, die in Programmnotizen entfernter Telefongeräte gespeichert sind; eine Anzeige für einen Datenbank-Test; eine Anzeige für die Feststellung von Sprache-Daten; und andere Trigger Telefon-Programmnotizen oder Cookies werden zur Speicherung von Informationen über Telefonie-Sitzungen zwischen Endgeräten verwendet.
  • In 4 ist der Prozess der Schaffung und Ausführung von Telefoniediensten gemäß einer Ausführungsform erläutert. Eine grafische Benutzerschnittstelle (GUI) 300 kann an einer Arbeitsstation 302 bereitgestellt werden, die für einen Benutzer zugänglich ist. In der grafischen Benutzerschnittstelle 300 kann eine grafische Darstellung (beispielsweise in Form von Zustandsdiagrammen) von Telefoniediensten oder Anwendungen erzeugt werden. Als Alternative können anstelle einer grafischen Benutzerschnittstelle Dienste als Befehlszeilen oder in einem Dienstprogramm realisiert werden. Die Darstellung des gewünschten Dienstes kann dann in ein Skript (bei 304), beispielsweise gemäß TSL oder einer anderen Skript-Sprache umgewandelt werden. Die grafische Darstellung von Telefoniediensten oder Skripten kann an die Übersetzungskomponente 110 der Schnittstellenschicht 102 (2) übertragen werden, wo sie interpretiert, übersetzt oder kompiliert werden, wie dies passend ist.
  • Das Skript kann dann (bei 306) auf Objekte, wie z. B. Java, Objecte oder C++-Objekte oder andere Elemente, wie z. B. XML, Tcl oder Perl-Elemente in der Schnittstellenschicht 102 interpretiert oder übersetzt werden. Skripte können von einer Skript-Maschine 200 auf verschiedene Objekte oder Elemente interpretiert werden. Eine direkte Übersetzung kann ebenfalls (bei 307) von dem grafisch dargestellten Modul auf ein oder mehrere Objekte durchgeführt werden. Bei der Ausführung der Objekte oder Elemente in der Schnittstellenschicht 102 können Anweisungen, Befehle, Mitteilungen, Anforderungen usw. (die allgemein als „Befehle" bezeichnet werden) an der Schnittstelle 102 erzeugt und an geeignete Netzwerkelemente (bei 308) gesandt werden, um gewünschte Telefoniedienste auszuführen. Die Befehle werden auf der Grundlage der Darstellungen der Netzwerkelemente durch die Darstellungskomponente 114 in der Schnittstellenschicht 102 erzeugt. Die Befehle können in Form von SIP-Mitteilungen, MEGACO-Anweisungen oder anderen Befehlen aufweisen. MEGACO ist in dem IETF-Internet-Entwurf mit dem Titel „Megaco Protocol" vom April 2000 beschrieben und wird auch als das H.248-Protokoll bezeichnet, das von der ITU verbreitet wird.
  • Die SIP-Mitteilungen oder MEGACO-Anweisungen können über Server 312, wie z. B. die Medien-Überleiteinrichtung, die Medien-Überleiteinrichtungs-Steuerung, den Proxy-Server oder den Umlenkungsserver an andere Netzwerkelemente weitergeleitet werden.
  • In den 5A und 5B ist ein Beispiel eines Zustandsdiagramms eines Sprachpost-Mitteilungs-Abfragemoduls angegeben, wobei jeder Zustand verschiedene Eigenschaften einschließt. Die Eigenschaften in einem Ausführungsbeispiel können das Folgende einschließen: eine Zustandidentifikation (ID) kann eine eindeutige Zeichenkette zur Identifikation eines Zustandes einschließen. Eine ActionBefore-Eigenschaft stellt eine Aktion dar, die vor einer Benutzereingabe durchgeführt werden muss (wie z. B. das Öffnen einer Datenbank). Eine MediaBefore-Eigenschaft kann Tonsignale darstellen, die vor einer Benutzereingabe abgespielt werden (wie z. B. eine Begrüßung). Eine MedaAfter-Eigenschaft stellt Audiosignale dar, die nach der Benutzereingabe jedoch vor dem nächsten Zustand abgespielt werden. Eine ActionAfter-Eigenschaft stellt eine Aktion dar, die nach der Benutzereingabe jedoch vor dem nächsten Zustand ausgeführt werden muss (beispielsweise um eine Mitteilung zu speichern). Eine DigitMap-Eigenschaft stellt akzeptable DTMF-(Zweiton-Mehrfrequenz-)Ziffern oder Worte dar. Eine ASR-Eigenschaft ermöglicht oder sperrt eine automatische Spracherkennung. Eine Zeitablauf-Eigenschaft stellt die maximalen Zeitperioden dar, über die vor einer ersten Eingabe und zwischen Eingängen zu warten ist. Eine Restart-State-Eigenschaft stellt den Zustand dar, auf den zurückzukehren ist, wenn irgendeine ungültige Eingabe gemacht wird. Die Vorgabe besteht in der Wiederholung des derzeitigen Zustandes. Derartige Zustandseigenschaften werden lediglich als Beispiele geliefert, weil unterschiedliche Realisierungen unterschiedliche Techniken verwenden können.
  • Wie dies in 5A gezeigt ist, ist die Identifikation ID des Zustandes 400 gleich „Wait for Extension" (warte auf Anschlussnummer). Die MediaBefore-Eigenschaft des Zustandes 400 kann eine Zeichenkette einschließen, die eine Begrüßung „geben Sie Ihre Anschlussnummer ein oder sagen Sie diese" anzeigt. Die DigitMap-Eigenschaft schließt irgendeine vorgegebene DTMF-Ziffer oder ein Wort ein. ASR wird eingeschaltet, um die Spracherkennung zu aktivieren (um das Sprachpost-System zu aktivieren, damit dieses gesprochene Ziffern erkennt). Die Timeouts-Eigenschaft schließt eine maximale Anzahl von Sekunden (beispielsweise 10) bevor einer ersten Eingabe und die maximale Anzahl von Sekunden (beispielsweise 3) zwischen Eingaben ein. Die RestartState-Eigenschaft schließt den Wert („error.wav", 0) ein, worin „error.wav" eine Audio-Datei ist, die eine dem Benutzer angesagte Fehlermitteilung enthält und 0 den Vorgabezustand darstellt (beispielsweise Zustand 900), auf den bei Auftreten eines Fehlers übergegangen wird.
  • Das Modul geht auf den Zustand 402 bei Empfang einer Rufnummer als Benutzer-Eingabe über. Der Zustand 402, der eine ID von „waitForPasscode" (warte auf Zugangscode) hat, ist der Zustand, in dem das System zur Eingabe eines Zugangscodes auffordert und auf diesen wartet. Die MediaBefore-Eigenschaft schließt die Zeichenkette „geben Sie Ihren dreistelligen Zugangscode ein oder sagen Sie diesen" ein. Die ActionAfter-Eigenschaft schließt ein Authenticate-(Authentifizierungs-)Verfahren ein, das zur Authentifizierung des eingegebenen Passwortes verwendet wird. Wenn keine Authentifizierung erfolgt, kehrt die Zustandsmaschine zum Zustand 400 zurück. Wenn die Authentifizierung erfolgt, geht die Zustandsmaschine zum Zustand 404 über, der eine ID von „waitForRead" (warte auf Lesen) hat. Die ActionBefore-Eigenschaft schließt das NumMessage()-Verfahren ein, das die Anzahl von Mitteilungen bestimmt, die an der Rufnummer gespeichert sind. Die MediaBefore-Eigenschaft schließt die Zeichenkette „Sie haben eine neue Mitteilung. Geben Sie 1 ein oder sagen dies, um Sie zu hören" ein. Die ActionAfter-Eigenschaft schließt ein Choose()-(wähle)-Verfahren ein, das die abzuhörende Mitteilung auf der Grundlage der Benutzer-Eingabe wählt. Die DigitMap-Eigenschaft schließt eine Zeichenkette „12" ein, um entweder eine 1 oder eine 2 als die DTMF-Ziffer oder das Wort zu akzeptieren.
  • Wenn entweder eine 1 oder eine 2 empfangen wird, geht die Zustandsmaschine auf den Zustand 406 über, der eine ID von „waitForRead" aufweist. Die ActionBefore- Eigenschaft schließt das GetMedia()(hole Medium)-Verfahren ein, das einen Zugriff auf das Speichermedium ausführt, das zur Speicherung der Mitteilung verwendet wird. Die MediaBefore-Zeichenkette kann „hallo, dies ist Joe" einschließen. Die ActionAfter-Eigenschaft schließt das Choose()-Verfahren ein, und die DigitMap-Eigenschaft schließt „*" ein, was die Annahme eines „*" als eine DTMF-Ziffer darstellt.
  • Wenn „*" empfangen wird, geht die Zustandsmaschine auf den nächsten Zustand 408 über, der eine ID von „waitForSaveDelete" (warte auf Speichern/Löschen) hat. Die MediaBefore-Eigenschaft schließt die Zeichenkette „gebe 1 zum Speichern, 2 zum Löschen, # zum Abhören der nächsten Mitteilung ein" ein. Die ActionAfter-Eigenschaft schließt das Choose()-Verfahren ein, und die DigitMap schließt die Zeichenkette „12 #" ein. Wenn „#" empfangen wird, so geht die Zustandsmaschine zurück zum Zustand 406, um die nächste Mitteilung auszuwählen. Wenn „1" empfangen wird, so wird die Mitteilung im Zustand 410 gespeichert. Wenn „2" empfangen wird, so wird die Mitteilung im Zustand 412 gelöscht.
  • Der Zustand 410 hat die ID „waitForSave" (warte auf Speicherung). Die ActionBefore-Eigenschaft schließt das Save()-(Speichern)-Verfahren zum Speichern der Mitteilung ein. Die MediaAfter-Eigenschaft schließt die Zeichenkette „Mitteilung gespeichert, drücke Rautenzeichen für nächste Mitteilung" ein. Die ActionAfter-Eigenschaft schließt das Choose()-Verfahren ein, und die DigitMap-Eigenschaft schließt den „#"-Wert ein. Wenn „#" im Zustand 410 empfangen wird, so geht die Zustandsmaschine auf einen Zustand zur Rückgewinnung der nächsten Mitteilung über.
  • Der Zustand 412 hat die „waitForDelete" (warte auf Löschen)-Zeichenkette, und die ActionBefore-Eigenschaft schließt ein Delete()-(Löschen-)Verfahren zum Löschen der Mitteilung ein. Die MedaAfter-Eigenschaft schließt die Mitteilungs-Zeichenkette „Mitteilung gelöscht. Drücke Rautenzeichen für nächste Mitteilung" ein, und die ActionAfter-Eigenschaft schließt Choose() ein. Die DigitMap-Eigenschaft schließt den „#"-Wert ein, auf den die Zustandsmaschine wartet, um auf die Verarbeitung der nächsten Mitteilung überzugehen.
  • Das Modul, wie es in den 5A bis 5B erläutert ist, enthält Elemente, die bestimmte Telefoniedienste angeben, die ausgeführt werden sollen. In dem Beispiel sind die Dienste einem IVR-System zugeordnet. Das Modul befasst sich nicht mit der Frage, mit welchem Netzwerkelement tatsächlich ein angegebener Dienst ausgeführt wird, so dass die Aufgabe des Software-Entwicklers wesentlich bequemer gemacht wird.
  • In 6 ist ein Beispiel eines Systems, das CORBA-Komponenten zur Realisierung von Telefoniediensten einschließt, gezeigt. Skript-Module 502, die verschiedene Telefoniedienste bereitstellen, können entsprechend TSL geschrieben werden. Die Skript-Module können in einem Beispiel durch eine Skript-Maschine in JAVA-Objekte 504 interpretiert werden. Die JAVA-Objekte 502 werden als Klienten-Anwendungen betrachtet, die Telefoniedienste auf verschiedenen Netzwerkelementen einleiten können. Die JAVA-Objekte 502 wissen nichts über die physikalischen Positionen der Netzwerkelemente, das Protokoll (beispielsweise die Sprache der Software, die auf dem Netzwerkelement abläuft) und andere Gesichtspunkte des Netzwerkes.
  • Um die Schnittstelle zwischen den Klienten-Objekten 504 und den Netzwerkelementen zu schaffen, sind ein Objekt-Anforderungs-Broker (ORB) 506 und andere CORBA-Elemente in dem System realisiert. Der ORB 506 ist eine Middleware oder ein Emulator, der die Klienten-Server-Beziehungen zwischen den Klienten-Anwendungen (JAVA-Objekte 502) und den Server-Objekten (Netzwerkelementen) festlegt. Unter Verwendung des ORB 506 kann jedes Klienten-Objekt 502 in transparenter Weise ein Verfahren auf einem Server-Objekt aufrufen, das sich auf der gleichen Maschine oder über das Netzwerk hinweg befinden kann. Der ORB 506 fängt einen Verfahrensaufruf von einem Klienten-Objekt 504 auf, findet das passende Server-Objekt, leitet passende Parameter weiter, ruft das Verfahren auf dem Server-Objekt auf und liefert die Ergebnisse an das Klienten-Objekt zurück. Der ORB 506 führt einen Zugriff auf eine Schnittstellen-Bibliothek 512 aus, um Anforderungen auszuführen.
  • Eine dynamische Aufruf-Schnittstelle (DII) 508 ermöglicht es einem Klienten-Objekt 502, einen direkten Zugriff auf die grundlegenden Anforderungsmechanismen auszuführen, die von dem ORB 506 bereitgestellt werden. Klienten-Objekte 504 haben einen Zugriff auf CORBA-Dienste 514 und CORBA-Anwendungen 516 über die DII 508. Eine oder mehrere Datenbanken 518 sind für die Schnittstellen-Bibliothek 512, die CORBA-Dienste 514 und die CORBA-Anwendungen 516 zugänglich. Die Elemente 512, 514 und 516 können sich auf einem oder mehreren Netzwerkservern befinden.
  • Die von den Klienten-Objekten 504 und den CORBA-Komponenten realisierten Telefoniedienste können für eine Gerätestation 520 über verschiedene Protokolle zugänglich sein, wie z. B. SIP (Sitzungs-Initialisierungsprotokoll), RTP (Echtzeitprotokoll) oder HTML (Hypertext-Auszeichnungssprache).
  • In 7 ist ein Beispiel gezeigt, wie ein IVR-Dienst in dem System nach 6 realisiert werden kann. Ein Skript-Modul kann die folgende Codezeile zur Rückgewinnung einer Eingabe von einem Anrufer durch ein IVR-System 602 enthalten: String UserInput = ivrServer.getInput (mediaServer.getAudio („mainMenu"), „#", null). Der Code kann von der Skript-Maschine 501 in ein Klienten-Objekt 504 interpretiert werden. Das Klienten-Objekt 504 ruft das getAudio-Verfahren in einem Medienserver (mediaServer) auf, das in dem IVR-System realisiert ist. Der „mainMenu" (Hauptmenü) Parameter wird an das getAudio-Verfahren weitergeleitet, um die Hauptmenü-Aufzeichnung abzuspielen, die über eine Speicherschnittstelle 604 zurückgewonnen und dem Klienten-Objekt 504 als ein RTP-Wiedergabestrom von einem Gerät 606 zurückgeliefert wird (das sich auf der gleichen Plattform wie die Speicherschnittstelle 604 oder auf einer anderen Plattform befinden kann).
  • Ein weiteres Verfahren, das von dem Klienten-Objekt 504 aufgerufen wird, ist ein getInput-(hole Eingabe-)Verfahren zur Anforderung einer Benutzer-Eingabe. Irgendeine Eingabe, die von dem Benutzer eingegeben wird (von der angenommen wird, dass sie eine Tastatureingabe ist), wird von dem DTMF-Decodierer 608 verarbeitet, wobei der der empfangenen Ziffer entsprechende Ton von einem RTP-Aufzeichnungselement 610 zurückgespielt wird. Eine weitere Verarbeitung kann auf der Grundlage der empfangenen Benutzer-Eingabe ausgeführt werden, wobei beispielsweise das IVR-System auf ein anderes Menü für eine weitere Benutzer-Eingabe oder auf die Weiterleitung des Anrufs zu einer Rufnummer übergeht.
  • Somit wurde ein Verfahren und eine Vorrichtung beschrieben, das bzw. die eine bequemere und effizientere Schaffung von Telefoniediensten ermöglicht. Eine Schnittstellenschicht, die Übersetzungskomponenten, Kommunikationskomponenten und Darstellungskomponenten einschließt, wird zum Zusammenwirken mit vom Benutzer geschaffenen Modulen (beispielsweise Skripten oder anderen Formen von Darstellungen) verwendet, um Telefoniedienste auszuführen. Bei Ausführung der Module werden Befehle geschaffen und an Netzwerkelemente übertragen, um die Telefoniedienste auszuführen. Um die Schaffung von Telefoniediensten zu erleichtern, können Darstellungen von Netzwerkelementen in der Schnittstellenschicht gespeichert werden, wobei ein Zugriff auf derartige Darstellungen erfolgt, um passende Befehle an Netzwerkelemente zu erzeugen, um Telefoniedienste auszuführen.
  • Die verschiedenen Software-Module, Routinen oder andere Schichten (die allgemein als 708 in 8 dargestellt sind), die hier erläutert wurden, können auf Steuereinheiten, wie z. B. der einen oder mehreren Steuereinheiten 712 in einem System 700 ausgeführt werden. Die Steuereinheit oder die Steuereinheiten 712 können einen Mikroprozessor, einen Mikrocontroller, eine Prozessorkarte (die einen oder mehrere Mikroprozessoren oder Mikrocontroller einschließt) oder andere Steuer- oder Recheneinrichtungen einschließen. Die Steuereinheit oder die Steuereinheiten 712 können mit einer oder mehreren Speichereinheiten 514 gekoppelt sein, die eine oder mehrere maschinenlesbare Speichermedien zum Speichern von Daten und Befehlen einschließen können. Die Speichermedien können unterschiedliche Formen von Speicher einschließen, unter Einschluss von Halbleiter-Speicherbauteilen, wie z. B. dynamischen oder statischen Speichern mit wahlfreiem Zugriff (DRAM's oder SRAM's), löschbare und programmierbare Festwertspeicher (EPROM's), elektrisch löschbare und programmierbare Festwertspeicher (EEPROM's) und Flash-Speicher; Magnetplatten, wie z. B. Festplatten, Floppys und auswechselbare Platten; andere magnetische Medien unter Einschluss von Bändern; und optische Medien, wie z. B. Kompaktdisks (CD's) oder digitale Video-Disks (DVD's). Befehle, die die verschiedenen Software-Routinen, Module oder andere Schichten bilden, können in jeweiligen Speichereinheiten gespeichert werden. Die Befehle bewirken bei ihrer Ausführung durch eine jeweilige Steuereinheit, dass der entsprechende Knoten oder das entsprechende Element programmierte Aktionen ausführt.
  • Die Befehle der Software-Routinen oder Module können in einer von vielen unterschiedlichen Arten in dem Knoten oder das Element geladen oder zu diesem transportiert werden. Beispielsweise können Codesegmente, die auf Floppy-Disks, CD- oder DVD-Medien, einer Festplatte gespeicherte Anweisungen oder Anweisungen einschließen, die über eine Netzwerk-Schnittstellenkarte, ein Modem oder anderen Schnittstelleneinrichtungen transportiert werden, in das System geladen und als entsprechende Software-Routinen oder Module ausgeführt werden. Bei dem Lade- oder Transportprozess können Datensignale, die als Trägerschwingungen verwirklicht werden (die über Telefonleitungen, Netzwerkleitungen, drahtlose Verbindungsstrecken, Kabel und dergleichen übertragen werden) die Codesegmente unter Einschluss von Anweisungen und Befehlen an dem Netzknoten oder das Element übertragen. Derartige Trägerschwingungen können die Form von elektrischen, akustischen, elektromagnetischen oder anderen Arten von Signalen aufweisen.
  • Wie dies in 8 gezeigt ist, schließt das System 700 weiterhin eine Netzwerk-Schnittstelle ein, um dem System eine Kommunikation über das Datennetz zu ermöglichen. Oberhalb der Netzwerk-Schnittstelle 702 befinden sich ein Netzwerk-Treiber 704, ein Netzwerk-Protokollstapel 706 (beispielsweise ein TCP/IP- und/oder ein UDP/IP-Stapel) und Protokollstapel 710 (beispielsweise ein SIP-Stapel, ein RTP Stapel usw.).

Claims (21)

  1. Verfahren zur Verwendung in einem Kommunikationsnetzwerk (10) mit Netzwerkelementen (16, 23, 24, 26, 30, 32, 33) zur Durchführung von Telefoniediensten, mit den folgenden Schritten: Bereitstellen einer Schnittstelle (102) an die Netzwerkelemente; Empfang von Anforderungen durch die Schnittstelle, die die Ausführung von Telefoniediensten spezifizieren; und Senden, als Antwort auf die Anforderungen, Befehle an eines oder mehrere Netzwerkelemente, die bei der Ausführung der gewünschten Telefoniedienste beteiligt sind, dadurch gekennzeichnet, dass: die Anforderungen von einem Software-Modul (100) empfangen werden; und die Befehle über ein Paket-basiertes Netzwerk (12, 21) ausgesandt werden.
  2. Verfahren nach Anspruch 1, bei dem die Bereitstellung der Schnittstelle die Bereitstellung von Darstellungen (114) der Netzwerkelemente umfasst, wobei das Verfahren weiterhin einen Zugriff auf die Darstellungen zur Erzeugung der Befehle an das eine oder mehrere Netzwerkelemente umfasst.
  3. Verfahren nach Anspruch 1, bei dem der Empfang der Anforderungen von dem Software-Modul den Empfang von Anforderungen von Skript-Modulen (502, 504) umfasst.
  4. Verfahren nach Anspruch 3, bei dem die Bereitstellung der Schnittstelle die Bereitstellung einer Skript-Maschine (501) umfasst.
  5. Verfahren nach Anspruch 3, bei dem die Bereitstellung der Schnittstelle die Bereitstellung einer Skript-Maschine (501) und einer Anwendungsprogrammierschnittstelle (508) umfasst.
  6. Verfahren nach Anspruch 1, bei dem die Bereitstellung der Schnittstelle die Bereitstellung einer einfachen Objekt-Zugriffsprotokoll-(OAP-)Komponente (112) umfasst.
  7. Verfahren nach Anspruch 1, bei dem die Bereitstellung der Schnittstelle die Bereitstellung einer gemeinsamen Objektanforderungs-Vermittler-(CORBA-) Komponente (112) umfasst.
  8. Verfahren nach Anspruch 1, das weiterhin die Darstellung des Software-Moduls als eine Zustandsmaschine mit einer Vielzahl von Zuständen umfasst, die jeweils eine Aktion darstellen, die einem Telefoniedienst entspricht.
  9. Verfahren nach Anspruch 1, das weiterhin den Empfang einer Benutzereingabe durch das Software-Modul umfasst, aus der die Anforderungen erzeugt werden.
  10. Verfahren nach Anspruch 1, bei dem das Senden der Befehle das Senden der Befehle an eines oder mehrere Netzwerkelemente umfasst, die aus der Gruppe ausgewählt sind, die aus einem integrierten Sprachbeantwortungssystem, einem DTMF-Decodierer, einem Sprachpostsystem und einem Aufzeichnungssystem besteht.
  11. Vorrichtung (16, 23, 24, 26, 30, 32, 33) zur Bereitstellung von Kommunikationsdiensten in einem Kommunikationsnetzwerk, das Netzwerkelemente (16, 23, 24, 26, 30, 32, 33) aufweist, mit: einem Software-Modul (100), das Befehle enthält, die Ausführungen von Telefoniediensten in dem Kommunikationsnetzwerk spezifizieren, gekennzeichnet durch: eine Schnittstellen-Schicht (102), die eine oder mehrere Komponenten umfasst, die auf die Ausführung der Module zur Lieferung von Befehlen über ein paketbasiertes Netzwerk (12, 21) an entsprechende Netzwerkelemente zur Ausführung der Telefoniedienste anspricht, die durch das Software-Modul spezifiziert sind.
  12. Vorrichtung nach Anspruch 11, bei der die Schnittstellen-Schicht Darstellungen (114) der Netzwerkelemente umfasst.
  13. Vorrichtung nach Anspruch 11, bei der die Schnittstellen-Schicht eine Kommunikationskomponente (112) zum Senden der Befehle an die Netzwerkelemente umfasst.
  14. Vorrichtung nach Anspruch 13, bei der die Kommunikationskomponente einen Objektanforderungs-Vermittler (ORB) umfasst.
  15. Vorrichtung nach Anspruch 13, bei der die Kommunikationskomponente eine Anwendungsprogrammier-Schnittstelle umfasst.
  16. Vorrichtung nach Anspruch 13, bei der die Befehle Sitzungsinitialisierungsprotokoll-Mitteilungen einschließen können.
  17. Vorrichtung nach Anspruch 11, bei der das Software-Modul ein Skript umfasst.
  18. Vorrichtung nach Anspruch 11, bei dem das Software-Modul ein JAVA-Objekt (504) umfasst.
  19. Computerprogramm-Produkt, das die Schritte des Verfahrens nach einem der Ansprüche 1 bis 10 ablaufen lassen kann.
  20. Computerprogramm-Produkt nach Anspruch 19, bei dem das Verfahren das Senden von Befehlen gemäß einem gemeinsamen Objektanforderungs-Vermittlungs-Architektur- CORBA-) Protokoll umfasst.
  21. Computerprogramm-Produkt nach Anspruch 19, bei dem das Verfahren die Ausführung einer oder mehrerer der Aufgaben umfasst, die aus der Gruppe ausgewählt sind, die aus dem Abspielen von Aufzeichnungen, dem Empfang von Zweiton-Mehrfrequenzsignalen, dem Empfang von Sprachedaten, dem Zugang an Sprachpost und die Weiterleitung eines Anrufs besteht.
DE60008483T 1999-11-09 2000-10-16 Telefondiensten in einem Kommunikationsnetzwerk Expired - Lifetime DE60008483T2 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US436562 1999-11-09
US09/436,562 US6701366B1 (en) 1999-11-09 1999-11-09 Providing communications services
US16884699P 1999-12-03 1999-12-03
US168846P 1999-12-03
US58892900A 2000-06-07 2000-06-07
US588929 2000-06-07

Publications (2)

Publication Number Publication Date
DE60008483D1 DE60008483D1 (de) 2004-04-01
DE60008483T2 true DE60008483T2 (de) 2004-06-24

Family

ID=27389572

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60008483T Expired - Lifetime DE60008483T2 (de) 1999-11-09 2000-10-16 Telefondiensten in einem Kommunikationsnetzwerk

Country Status (3)

Country Link
US (1) US7433954B2 (de)
EP (1) EP1102498B1 (de)
DE (1) DE60008483T2 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1186144B1 (de) * 1999-06-08 2013-10-23 The Trustees of Columbia University in the City of New York Netztelefongerät und system zur internet/intranet-telefonie
AU2001287177A1 (en) * 2000-08-11 2002-02-25 The Trustees Of Columbia University In The City Of New York System and method for unified messaging in inter/intranet telephony
US7530076B2 (en) * 2001-03-23 2009-05-05 S2 Technologies, Inc. Dynamic interception of calls by a target device
US7237230B2 (en) * 2001-03-23 2007-06-26 S2 Technologies, Inc. System and method for generating data sets for testing embedded systems
DE10129322A1 (de) * 2001-06-19 2003-01-02 Siemens Ag Zentrale Administration eines Callcenters
FR2833792B1 (fr) * 2001-12-17 2004-08-27 France Telecom Procede pour realiser une interface aisement configurable entre un reseau de communication et une offre de services mettant en oeuvre un reseau de type internet
EP1328110A1 (de) * 2002-01-11 2003-07-16 Alcatel Anrufsteuerungsgerät für veschiedene Arten von Anwendungen
US7792973B2 (en) * 2002-03-12 2010-09-07 Verizon Business Global Llc Systems and methods for initiating announcements in a SIP telecommunications network
US20040045007A1 (en) * 2002-08-30 2004-03-04 Bae Systems Information Electronic Systems Integration, Inc. Object oriented component and framework architecture for signal processing
US7184534B2 (en) * 2002-12-19 2007-02-27 International Business Machines Corporation Using a telephony application server for call control with a voice server
JP4710244B2 (ja) * 2004-04-30 2011-06-29 沖電気工業株式会社 サービス提供システムおよびその提供方法
US7881451B2 (en) * 2004-05-18 2011-02-01 At&T Intellectual Property I, L.P. Automated directory assistance system for a hybrid TDM/VoIP network
DE602004008887T2 (de) * 2004-05-18 2008-01-17 Alcatel Lucent Verfahren und Server zur Bereitstellung eines multi-modalen Dialogs
US7746988B2 (en) * 2004-06-10 2010-06-29 International Business Machines Corporation Method, system and telephone answering device for processing control scripts attached to voice messages
US20060050856A1 (en) * 2004-09-03 2006-03-09 Pence Jeffrey W Computer telephony server for scripted call termination
EP1643725A1 (de) * 2004-09-30 2006-04-05 Alcatel Verfahren zur Verwaltung von Medienressourcen durch Bereitstellung von Diensten für eine Anwendung auf Anfrage nach einer bestimmten Menge von Diensten
US7949106B2 (en) * 2005-03-10 2011-05-24 Avaya Inc. Asynchronous event handling for video streams in interactive voice response systems
US20060203975A1 (en) * 2005-03-10 2006-09-14 Avaya Technology Corp. Dynamic content stream delivery to a telecommunications terminal based on the state of the terminal's transducers
WO2006120692A1 (en) * 2005-05-10 2006-11-16 Venkat Srinivas Meenavalli System and an improved method for controlling multimedia features and services in a sip-based phones
JP4945932B2 (ja) * 2005-06-15 2012-06-06 日本電気株式会社 映像配信システム、呼制御−映像配信連携サーバ及びそれらに用いる映像配信方法並びにそのプログラム
CN100411482C (zh) * 2005-07-27 2008-08-13 华为技术有限公司 接入媒体网关过载控制方法
US20070086432A1 (en) * 2005-10-19 2007-04-19 Marco Schneider Methods and apparatus for automated provisioning of voice over internet protocol gateways
US7839988B2 (en) 2005-10-19 2010-11-23 At&T Intellectual Property I, L.P. Methods and apparatus for data structure driven authorization and/or routing of outdial communication services
US8238327B2 (en) * 2005-10-19 2012-08-07 At&T Intellectual Property I, L.P. Apparatus and methods for subscriber and enterprise assignments and resource sharing
US7924987B2 (en) * 2005-10-19 2011-04-12 At&T Intellectual Property I., L.P. Methods, apparatus and data structures for managing distributed communication systems
US20070086433A1 (en) * 2005-10-19 2007-04-19 Cunetto Philip C Methods and apparatus for allocating shared communication resources to outdial communication services
US7643472B2 (en) * 2005-10-19 2010-01-05 At&T Intellectual Property I, Lp Methods and apparatus for authorizing and allocating outdial communication services
US20070116234A1 (en) * 2005-10-19 2007-05-24 Marco Schneider Methods and apparatus for preserving access information during call transfers
CN101222372B (zh) * 2008-01-22 2011-06-22 中兴通讯股份有限公司 一种话务台采用网络管理的方法和系统
JP2011514586A (ja) 2008-02-08 2011-05-06 エクリオ インコーポレイテッド デジタル電子デバイス上の複数のアプリケーションおよびサービスを制御するためのシステム、方法、ならびに装置
WO2011072733A1 (en) * 2009-12-16 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Dynamic application charging identification

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528677A (en) * 1992-05-01 1996-06-18 Sprint Communications Company L.P. System for providing communications services in a telecommunications network
WO1994005111A1 (en) * 1992-08-25 1994-03-03 Bell Communications Research, Inc. An apparatus and method for creating, testing, validating, and provisioning telecommunication services
AU9687198A (en) * 1997-10-09 1999-05-03 Dsc Telecom L.P. System and method for supporting flexible telephony service management

Also Published As

Publication number Publication date
US20050080905A1 (en) 2005-04-14
US7433954B2 (en) 2008-10-07
EP1102498B1 (de) 2004-02-25
EP1102498A2 (de) 2001-05-23
EP1102498A3 (de) 2002-01-23
DE60008483D1 (de) 2004-04-01

Similar Documents

Publication Publication Date Title
DE60008483T2 (de) Telefondiensten in einem Kommunikationsnetzwerk
DE60013227T2 (de) Kommunikationsdienstenanbieten
DE60122487T2 (de) Sprachansagen in anfragen zur herstellung einer anrufsitzung in einem datennetzwerk
US6778653B1 (en) Storing information about a telephony session
DE60015354T2 (de) Vorrichtung und verfahren zur umleitung von informationen in einem paketdatennetzwerk
DE602005002150T2 (de) Verfahren und Vorrichtung zur Bereitstellung von universellen Fernmelderelaisdiensten
US6757732B1 (en) Text-based communications over a data network
DE60131833T2 (de) Verfahren und vorrichtung zum austausch von informationen in einem kommunikationssystem
DE60105378T2 (de) System und Verfahren zur Lieferung von Profilinformationen eines Anrufers
DE69636301T2 (de) Bildbenachrichtigungsanordnung
DE69936624T2 (de) Verfahren und Einrichtung zum automatischen Verbindungsaufbau in verschiedenen Netzen
DE69831650T2 (de) Verfahren und System für Sprachanruf durch Benutzung von Informationen die aus einer ausführenden Anwendung auf einem Rechnersytem abgerufen wurden
DE69731616T2 (de) Kommunikationsaufbau in einem paketdatennetzwerk
DE60214085T2 (de) Hot-linedienst in einem Multimedianetzwerk
DE102011101961B4 (de) SIP-Überwachungs-und Steuerungsankerpunkte
DE60220329T2 (de) Anrufweglenkung mittels Informationen aus sip-Nachrichten
DE60034145T2 (de) Client-server-netz zur behandlung von sprach-datenpaketen nach dem internet-protokoll
DE60307211T2 (de) Graphisches Proxy für weniger fähige Benutzerendgeräte
DE102011101963B4 (de) SIP-Ankerpunkte zum Belegen von gemeinsamen Kommunikationsprotokollen
DE60214084T2 (de) Anklopfdienst in einem Multimedianetzwerk
DE112005000238T5 (de) System und Verfahren zur Ermöglichung der Sendung eines personalisierten Ruftons in Zusammenhang mit einem Anruf
EP3488585B1 (de) Vorrichtung und verfahren zur effizienten realisierung von online- und offline-telefonie in verbindung mit der übertragung und auswertung nutzerspezifischer daten
JP2004500754A (ja) ユーザ対話サービスのための仮想インテリジェントネットワーク
EP2696554A1 (de) Verfahren zum Abruf einer Mediendatei in einem Telekommunikationssystem, ein Computerprogrammprodukt zum Ausführen des Verfahrens und ein Telekommunikationssystem zum Abruf der Mediendatei
DE60038518T2 (de) Anrufsunterschrift in einem Paketnetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition