-
Hintergrund
der Erfindung
-
Die
vorliegende Erfindung betrifft ein Kommunikationssystem und insbesondere
ein heterogenes System, das eine Anzahl von unterschiedlichen Anrufsteuerungsmechanismen
und unterschiedlichen Adresstypen einsetzt.
-
In
einem herkömmlichen
homogenen Kommunikationsnetzwerk, wie dem öffentlichen Fernsprechnetz (PSTN – public
switched telephony network) haben Kunden nur einen Adressentyp (in
diesem Fall ihre Telefonnummer) und es gibt einen einzigen einheitlichen
Anrufsteuerungsmechanismus, der in dem Netzwerk eingebaut ist. Der
Anrufsteuerungsmechanismus wird verwendet zum Aufbau und zum Beenden
von Anrufen und um zum Beispiel zu erkennen, wenn ein angerufener
Teilnehmer besetzt ist. Zunehmend haben Kunden jedoch Zugang zu
einem Angebot von unterschiedlichen Netzwerktechnologien, jede mit
ihrem eigenen Adressentyp. Zum Beispiel kann ein Kunde zusätzlich zu
einer Telefonnummer eine herkömmliche
IP(Internet protocol)-Adresse, eine Multicast-IP-Adresse und eine
URL (uniform resource locator) aufweisen. Im Allgemeinen gehört zu jedem
dieser unterschiedlichen Adressentypen ein jeweiliges Anrufsteuerungsprotokoll
(wobei der Begriff „Anrufsteuerung" allgemein verwendet
wird, um die Mittel zum Aufbau und zur Beendigung von Verbindungen
zwischen unterschiedlichen Teilnehmern zu bezeichnen). Zum Beispiel
verwendet eine Audiokommunikation oder eine visuelle Kommunikation
zwischen Teilnehmern, die herkömmliche
IP-Adressen verwenden, üblicherweise
das H.323-Protokoll, während
für eine
Kommunikation zwischen Breitband-ATM-Adressen ein anderes Protokoll,
B-ISDN (broadband-integrated services digital network), ver wendet
wird. In der Praxis wird das Anrufsteuerungsprotokoll, das für eine bestimmte
Kommunikationssitzung verwendet wird, meistens von dem Teilnehmer
festgelegt, der die Sitzung initiiert. Wenn andere Teilnehmer später zu einer
Sitzung hinzukommen, sind sie auf die Verwendung der Adressierungs-
und Anrufsteuerungs-Fähigkeiten
beschränkt,
die von dem initiierenden Teilnehmer bestimmt wurden.
-
Mikelaitis
P.: „A
tutorial on ISDN Customer Call Control. I", THE TELECOMMUNICATION JOURNAL OF AUSTRALIA,
Vol. 38, Nr. 1, 1988, Seiten 75–92,
XP002075878, beschreibt die Tätigkeiten
von ISDN, um einen Anruf zwischen zwei Endgeräten aufzubauen, die über ein
ISDN-Netzwerk miteinander verbunden sind. Insbesondere wird beschrieben,
wie jedes zu verbindende Endgerät
Details seiner Anrufsteuerungsfähigkeiten an
die zentrale Netzwerkvermittlung liefert, welche die Anrufsteuerungsfähigkeiten
jedes Endgeräts
untersucht und dann auswählt
und versucht, einen Anruf zwischen den zwei Endgeräten aufzubauen.
Die Auswahl wird gemäß vorgegebener
Kriteria zur Auswahl des bevorzugtesten Anrufsteuerungsmechanismus
getroffen basierend auf der Information, die von den zwei Endgeräten geliefert
wird, in Kombination mit der Kenntnis über die Anrufsteuerungsfähigkeiten
des Netzwerks, das die zwei Endgeräte verbindet.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Betreiben
eines Kommunikationssystems gemäß Anspruch
1 vorgesehen.
-
Die
vorliegende Erfindung ermöglicht,
die Fähigkeiten
von Endgeräten
in einem heterogenen Kommunikationssystem vollständig zu verwenden, indem für gleichberechtigte
Teilnehmer(peer)-Endgeräte
ein Austausch von Daten vorgesehen wird, die ihre Anrufsteuerung
und Adresstypen identifizieren. Dieser Ansatz ermöglicht,
dass das volle Potential eines heterogenen Kommunikationssystem
realisiert werden kann, da die Verwendung dieses Mechanismus es
für Benutzer überflüssig macht,
den „geringsten
gemeinsamen Nenner" bei
Adressierungs- und Anrufsteuerungs-Typen anzunehmen. Dies dient
dazu, die Verwendung von fortgeschrittenen Anrufsteuerungs- und
Adressierungsmechanismen zu fördern,
die eine größere Flexibilität bieten, auch
wenn anfangs diese fortgeschrittenen Anrufsteuerungs- und Adressierungsmechanismen
nur von einer Minderheit von Endgeräten in dem Kommunikationssystem
verwendet werden.
-
Der
Austausch von Daten kann in den Anrufaufbauprozess integriert werden
und den anfänglichen
Teil dieses Prozesses bilden. Für
eine maximale Flexibilität
ist es jedoch vorzuziehen, dass der Austausch unabhängig vor
dem Anrufaufbau ausgeführt
wird. Der Benutzer kann dann wählen,
abhängig
von den Fähigkeiten des
oder jedes anderen Endgeräts
mit dem Aufbau nicht weiterzumachen.
-
Vorzugsweise
initiiert ein erstes Endgerät
den Austausch von Anrufsteuerungs-Fähigkeitsdaten (call control
capability data) durch Übertragen
der Anrufsteuerungs-Fähigkeitsdaten
für das
erste Endgerät
an ein zweites Endgerät
und das zweite Endgerät
sendet eine Bestätigung
auf die Anforderung zurück,
wobei die Bestätigung
Anrufsteuerungs-Fähigkeitsdaten
für das
zweite Endgerät
umfasst.
-
Es
wird als besonders effektiv angesehen, den Austausch von Daten interaktiv
zu implementieren unter Verwendung einer einfachen Anforderung/Antwort.
-
Vorzugsweise
umfasst das Verfahren ein kontinuierliches Überwachen eines Kommunikationsanschlusses
an einem Kommunikations-Endgerät und Durchführen des
Austauschs von Anrufsteuerungs-Fähigkeitsdaten
immer, wenn eine Anforderung an dem Anschluss empfangen wird. Vorzugsweise
besteht der Schritt der Überwachung
weiter, nachdem ein Anruf aufgebaut wurde.
-
Die
bevorzugte Implementierung verbessert weiter die Flexibilität des Kommunikationssystems,
indem sie ermöglicht,
dass der Austausch von Fähigkeitsdaten
zu jeder Zeit ausgeführt
wird. Dies ermöglicht
dem System, zum Beispiel auf die Ankunft eines neuen Mitglieds mit
neuen Kommunikationsfähigkeiten
in einer Kommunikationssitzung mit mehreren Teilnehmern zu antworten
oder auf eine Änderung
der Fähigkeiten
eines der Teilnehmer in einer laufenden Sitzung zu antworten.
-
Andere
bevorzugte Merkmale werden in den abhängigen Ansprüchen dargelegt.
Andere Aspekte der Erfindung werden in den anderen unabhängigen Ansprüchen dargelegt.
-
Verfahren
und Systeme, welche die vorliegende Erfindung verkörpert, werden
nun auf beispielhafte Weise detaillierter beschrieben unter Bezugnahme
auf die beigefügten
Zeichnungen, in denen:
-
1 eine
schematische Darstellung eines ersten Netzwerks ist, das die vorliegende
Erfindung verkörpert;
-
2 den
Austausch von Fähigkeitsdaten
darstellt;
-
3a und 3b Protokollstapel
(stacks) für
Systeme darstellen, welche die Erfindung verkörpern;
-
4a und 4b Nachrichtenflusssequenzen
in Systemen zeigen, welche die Erfindung verkörpern;
-
5 und 6 Diagramme
sind, die Softwareobjekte zeigen, welche die Erfindung implementieren;
-
8 ein
zweites Ausführungsbeispiel
ist; und
-
9 Nachrichtenflüsse in den Netzwerken von 8 zeigt.
-
Ein
Kommunikationssystem 1 umfasst Benutzer-Endgeräte 2, 3,
die mit unterschiedlichen jeweiligen Netzwerk-Domänen 4, 5 verbunden
sind. In diesem Beispiel sind die Benutzer-Endgeräte 2, 3 Computer-Workstations. Die
Netzwerk-Domänen
in diesem Beispiel sind Breitband-Netzwerke, die sowohl ATM(asynchronous transfer
modes)- als auch IP(Internet protocol)-Übertragungsprotokolle unterstützen. Das
Benutzer-Endgerät hat
sowohl eine Benutzeradresse (111.111.1.113) als auch eine ATM-Adresse
(ATM1). Ähnlich
hat das zweite Benutzer-Endgerät eine Internet-Adresse
(123.123.1.124) und eine ATM-Adresse
(ATM2). Die Netzwerk-Domänen
sind über
eine Verbindung 6 verbunden, die auch beide Protokolle
unterstützt.
Jedes der Endgeräte 2, 3 speichert
ein jeweiliges Client-Fähigkeitsobjekt,
das die Adresstypen und Anrufsteuerungstypen speichert, die das
Endgerät
handhaben kann. Die Client-Objekte in den verschiedenen Endgeräten kommunizieren
miteinander unter Verwendung eines vorgegebenen Kommunikationsprotokolls
(in dem vorliegenden Beispiel Internetprotokoll). Der Austausch
von Adress- und Anrufsteuerungsfähigkeiten
zwischen zwei Clients wird unabhängig
von dem Anruf oder den Anrufen, der/die im Gange ist/sind, zwischen
einer Sitzung durchgeführt.
-
Wie
in 2 dargestellt wird, wird der Austauschmechanismus
initiiert, wenn ein ÜBERTRAGUNGS.Anforderungs(TRANSFER.request)-Grundelement (primitive)
von dem Benutzer des abgehenden Clients ausgegeben wird. Die ÜBERTRAGUNGS.Anforderung
von dem initiierenden Client umfasst den Client-Fähigkeiten-Satz
für das
entsprechende Endgerät.
Dieser Client-Fähigkeiten-Satz
zeigt alle Anrufsteuerungs-Technologien und Adressen an, die von
dem Endgerät
unterstützt
werden. Der Benutzer des Empfangs-Clients wird über die Anforderung für den Austausch
von Client-Fähigkeitsdaten
von einem ÜBERTRAGUNGS.Anzeige(TRANSFER.indication)-Grundelement benachrichtigt.
Der Benutzer des Empfangs-Clients initiiert dann die Übertragung
seiner Fähigkeiten
unter Verwendung des ÜBERTRAGUNGS.Antwort(TRANSFER.response)-Grundelements.
Die Fähigkeiten
des Empfangs-Endgeräts,
das ist das Endgerät,
das die Empfangs-Client-Fähigkeits-Austauschanforderung
empfängt,
werden zurück
an das ursprüngliche
Endgerät gesendet
unter Verwendung einer Client-Fähigkeitssatz-Bestätigungsnachricht.
Der Benutzer der Ursprungs-Clients wird durch ein ÜBERTRAGUNGS.Bestätigungs(TRANSFER.confirm)-Grundelement
benachrichtigt, dass der Austausch von Fähigkeitsdaten stattgefunden
hat.
-
Die
Client-Fähigkeitssatz-Daten
in der Nachricht, wie oben beschrieben, identifizieren, welche einer Anzahl
von vorgegebenen Adressentypen und Anrufsteuerungstypen unterstützt werden.
Beispiele von unterschiedlichen Adressentypen, die unterstützt werden
können,
umfassen E-Mail, URL (uniform resource locator), IP-Multicast, IP-Unicast, E.164, AESA.
Beispiele unterschiedlicher Anrufsteuerungstypen umfassen H.225.0, SDP,
B-ISDN Q.2971, B-ISDN ATM-F UNI, N-ISDN Q.931, PSTN BTNR 315.
-
Die
folgende Tabelle 1 enthält
ein vollständiges
Verzeichnis der Adressen- und Anrufsteuerungstypen, die von einer
Implementierung der Erfindung unterstützt werden. Wie in der Tabelle
angezeigt, werden verschiedene ganzzahlige Codes verwendet, um die
unterschiedlichen Anrufsteuerungs- und Adressentypen zu identifizieren.
-
-
-
Wie
in der obigen Tabelle gezeigt wird, können die durch den Fähigkeitsaustauschmechanismus
angezeigten Fähigkeiten
eine URL (uniform resource locator) umfassen. Auf die URL kann durch
das Endgerät, das
die Fähigkeitssatzübertragung
initiiert hat, zugegriffen werden, um Details weiterer Fähigkeiten über die hinaus
zu lesen, die in der obigen Tabelle vorgesehen sind. Auf diese Weise
wird das Fähigkeitsaustauschprotokoll
erweiterbar, um neue Anrufprotokolle zu umfassen. Die URL kann das
Endgerät
auch zu Ressourcen leiten, wie ein Java-Applet, die von dem Endgerät heruntergeladen
werden können,
um seine Kommunikation mit dem Endgerät zu erleichtern, das die URL
geliefert hat. Zum Beispiel kann sich die URL auf eine HTTP-Seite
beziehen, die ein Java-Applet umfasst, das eine „Anrufen"-Schaltfläche anzeigt. Wenn dann die
Schaltfläche gedrückt wird,
wird ein Anruf von dem Endgerät,
dem die URL gehört,
zu dem anderen Endgerät
getätigt.
-
Die 3a und 3b zeigen
die Software-Architektur eines Systems, das die Erfindung verkörpert. Auf
jedem Kommunikations-Endgerät
läuft ein
Kommunikationsprogramm, das eine grafische Kommunikationsbenutzeroberfläche (communications
graphics user interface – GUI 31)
auf einer Kommunikationsanwendung 32 aufweist. Die Kommunikationsanwendung 32 wird
von einer Anzahl von Ressourcen 33 unterstützt, einschließlich einem
Fähigkeitsaustausch-Modul
(CE), unter dem überwacht
ein „Listener-Modul" kontinuierlich einen
vorgegebenen Socket, der von der IP-Adresse des Kommunikations-Endgeräts zusammen
mit einer 16-Bit-Anschlussnummer definiert wird. Die CE- und Listener-Module
können
mit anderen Ressourcen koexistieren, wie dem Sitzungseinladungsprotokoll(SIP – session
Invitation protocol)- und dem H323-Modul, die in 3a gezeigt
werden. Fähigkeitssatznachrichten
werden zwischen der UDP/TCP/IP-Schicht
und einem Fähigkeitsaustausch(CE)-Modul übermittelt.
Das Listener-Modul kommuniziert Übertragungs-Grundelemente
an das und von dem CE-Modul. In dieser bevorzugten Implementierung
wird UDP (unreliable datagram protocol) statt TCP (transport control
protocol) zur Übertragung
der Fähigkeitssatzdaten über das
Netzwerk verwendet. Dies vermeidet die Overheads, die beim Aufbau
eines TCP-Datenstroms beteiligt sind. Jedoch erfordert dieser Ansatz
dann, dass Pakete erneut übertragen
werden, wenn sie nach einer vorgegebenen Zeitdauer nicht bestätigt werden,
um die Möglichkeit
eines Paketverlusts zu berücksichtigen. 3b zeigt
Nachrichtenflüsse über unterschiedliche
APIs (application programmer's
interfaces), wenn Fähigkeitsdaten
zwischen zwei Endgeräten
ausgetauscht werden. Die in 2 gezeigten Übertragungs-Grundelemente
entsprechen der API zwischen der Anwendungsschicht (in diesem Beispiel
unter Verwendung der Java-Sprache implementiert) und den unteren
Schichten des Protokollstapels.
-
Die 4a und 4b zeigen
detaillierter die Sequenz von Nachrichtenflüssen zwischen den Endgeräten A und
B bei verschiedenen Implementierungen der Erfindung. In der Sequenz
von 4a findet der Austausch von Fähigkeitsdaten statt, bevor
eine Sitzung hergestellt wird. Unmittelbar nach dem Austausch von Fähigkeitsdaten
wird ein Anruf aufgebaut unter Verwendung zum Beispiel der Sequenz
von Nachrichten, die für
ein ISDN-Protokoll, wie H.320, definiert ist, in dem Fall, in dem
die Fähigkeitsdaten
anzeigen, dass beide Teilnehmer die Anrufsteuerungsfähigkeit
aufweisen. In dem zweiten Beispiel, das in 4b dargestellt
wird, wird nachfolgend auf den Austausch von Fähigkeitsdaten und vor dem Aufbau
eines Anrufs unter Verwendung von beispielsweise des H.323-Anrufsteuerungsprotokolls,
das SIP (session invitation protocol) verwendet, um die Sitzung
herzustellen.
-
5 und 6 sind
Diagramme, die den rationalen ROSE(Rational Object-oriented Software
Engineering)-Formalismus verwenden, um Software-Objekte zur Implementierung
der oben diskutierten Ausführungsbeispiele
zu definieren. Die gezeigten Strukturen können unter Verwendung des ROSE-Software-Tools kompiliert
werden, das kommerziell von der Rational Software Corp. in Santa
Clara, California, erhältlich
ist, um zum Beispiel einen C++-Code zu erzeugen, um die Basis einer
Implementierung der Erfindung zu bilden. Wie in 6 gezeigt
wird, umfasst ein Client-Objekt, wie auf jedem Endgerät instanzüert, „clientcapabilityset"- und „clientcapabilityreturn"-Verfahren, wobei die Verfahren von einem
Client-Fähigkeits-Objekt
vererbt sind. Die Eigenschaften des Client-Fähigkeits-Objekts sind wiederum
vererbt von Adressen- und Anrufsteuerungs-Objekten, wie in 5 gezeigt.
-
Als
eine Alternative zu der direkten Übertragung von Client-Fähigkeitsdaten kann dies über ein
Verzeichnis bewirkt werden. Die ses Verfahren wird beschrieben in
der ebenfalls anstehenden europäischen
Anmeldung 97309810.6, angemeldet am 4. Dezember 1997 (Referenz des
Agenten A25527), deren Inhalte durch Bezugnahme hier aufgenommen
sind. 7 zeigt ein Ausführungsbeispiel, in dem der
Austausch von Daten von einer Verzeichnisplattform 7 vermittelt
wird. Die Verzeichnisplattform 7 ist mit dem Netzwerk über eine
Verbindung 8 verbunden, die IP-Daten zwischen dem Netzwerk
und der Verzeichnisplattform 7 übermittelt. Die anderen Komponenten
des Netzwerks sind wie oben unter Bezugnahme auf 1 beschrieben
wurde.
-
In
Betrieb registrieren sich Kunden an den Benutzer-Endgeräten 2, 3 bei
einem Verzeichnis-Server, der in diesem Beispiel auf der Verzeichnisplattform 7 läuft. Anschließend wird,
wie im Folgenden weiter beschrieben wird, wenn ein Kunde an dem
Benutzer-Endgerät 2 den
Kunden zu kontaktieren wünscht,
der an dem Benutzer-Endgerät 3 registriert
ist, eine Anforderung an den Verzeichnis-Server gesendet. Die Anforderung
wird an die IP-Adresse der Verzeichnisplattform 7 übertragen.
Die Anforderung umfasst Daten, wie den Kundennamen, die den angerufenen
Kunden identifizieren. Der Verzeichnis-Server verwendet diese Daten, um
ein entsprechendes Benutzerprofil auszuwählen, das erzeugt wurde, als
sich der Kunde an dem Verzeichnis-Server registrierte. Aus dem gewählten Benutzerprofil
sendet der Verzeichnis-Server die Netzwerk-Adressen und Anrufsteuerungsfähigkeiten
des angerufenen Kunden an den anrufenden Kunden. Unter Verwendung dieser
Information baut der anrufende Kunde einen Anruf zu dem anderen
Kunden auf. Zum Beispiel kann der anrufende Kunde in diesem Beispiel
wählen,
eine Verbindung zu der ATM-Adresse
(ATM2) unter Verwendung des ATM-Anrufsteuerungsprotokolls (Q.2931)
herzustellen.
-
8 zeigt
die Nachrichtenflüsse
zwischen einem lokalen Client, der Verzeichnisplattform (oder „Server") 7 und
einem entfernten Client in diesem Ausführungsbeispiel, wenn der lokale
Client seine Anrufsteuerungsfähigkeit
bei dem Verzeichnis registriert, und der entfernte Client liest
anschließend
die Anrufsteuerungsfähigkeitsdaten.