-
Hintergrund
der Erfindung
-
Gebiet der Erfindung
-
Diese
Erfindung bezieht sich auf ein Verfahren zur Kommunikation zwischen
einem ersten und einem zweiten Knoten in einem Kommunikationsnetzwerk,
wobei jeder der Knoten einen SIP- (Sitzungsaufbau-Protokoll-) Klienten
umfasst. Die Erfindung bezieht sich weiterhin auf einen Kommunikationsnetzwerk-Knoten,
der einen SIP-Klienten
umfasst, der zur Realisierung des Verfahrens ausgebildet ist, ein
Computerprogramm zur Steuerung des Kommunikationsnetzwerk-Knotens,
und ein Kommunikationsnetzwerk, das einen derartigen Knoten beinhaltet.
Die Erfindung bezieht sich auch auf ein Verfahren zum Aufbau einer
Konferenzverbindung zwischen mehr als zwei Teilnehmern unter Verwendung des
Verfahrens zur Kommunikation.
-
Beschreibung
des Standes der Technik
-
Das
Sitzungsaufbau-Protokoll (SIP) wird zum Aufbau von Kommunikationssitzungen,
wie z. B. Daten- oder Sprache-Kommunikationssitzungen zwischen zwei
SIP-Klienten verwendet. SIP ist ein einfaches Signalisierungsprotokoll
für die
Internet-Konferenzschaltung
und Telefonie, und Einzelheiten über SIP
stehen im Internet unter www.cs.columbia.edu\-hgs\sip\ sowie in
dem Dokument „Request for
comments (RFC) 2543 SIP: Session Initiation Protocol", Handley et al.,
März 1999
zur Verfügung,
das von der Internet-Seite erhältlich
ist, die vorstehend angegeben wurde. Genauso wie es zum Aufbau von Kommunikationssitzungen
verwendet wird, wird SIP auch zur Modifikation und zur Beendigung
von Sitzungen mit einem oder mehreren Teilnehmern verwendet. Beispielsweise
können
diese Sitzungen Internet-Multimedien-Konferenzen,
Intemet-Telefonverbindungen und eine Multimedien-Verteilung sein. Die Kommunikation zwischen
Mitgliedern einer Sitzung erfolgt über Sammelsendung oder ein
Maschenwerk von einseitig gerichteten Beziehungen oder eine Kombination
hiervon. Unter Verwendung von SIP können Sitzungs-Beschreibungen, die
es Teilnehmern ermöglichen,
einen Satz von kompatiblen Medientypen zu vereinbaren, verwendet
werden. Weiterhin wird eine Benutzer-Beweglichkeit durch eine Proxy-Bildung
und Umlenkung von Anforderungen an den derzeitigen Ort eines Benutzers
unterstützt.
Außerdem
ist dieses SIP nicht an irgendein bestimmtes Konferenz-Steuerungsprotokoll
gebunden. Das Standard-SIP-Protokoll
unterstützt
jedoch lediglich einen begrenzten Satz von Funktionalitäten, und
dies stellt einen wesentlichen Nachteil dar.
-
Multimedien-Telekonferenz-
und andere Konferenzverbindungen sind hinsichtlich der Verwendung
durch einen Endbenutzer komplizierte Dienste. Aufgrund dieser Kompliziertheit
treten bei vielen Konferenzen Probleme oder Unterbrechungen auf,
wenn verschiedene Benutzer die Verbindung fehlerhaft aufbauen. Zentrale
manuelle Bedienungspersonen sind in vielen Fällen erforderlich, um die Verbindungen
aufzubauen, und dies ist kostspielig.
-
Eine
Java-Erweiterungs-Anwendungs-Programmierschnittstelle (API) für SIP-Server
wurde in dem Internet-Entwurf der Internet Engineering Task Force
IETF mit dem Titel „The
SIP Servlet API" von Kristensen
und Byttner, September 1999 vorgeschlagen. SIP-Servlets (die Java-Programme
sind, die die Verarbeitung von SIP-Mitteilungen steuern) werden zur
Erweiterung der Funktionalität
des SIP-Servers verwendet. Der SIP-Server ist in der Lage, einige
der Entscheidungsfindungen bezüglich
der Art, wie SIP-Anforderungen und Antworten auf die SIP-Servlets
abzuwickeln sind zu verlagern.
-
Das
Dokument „Agent-based
conferencing using mobile IP-telephony" von Kankonen, Sauvola und Ojala, Universität von Oulu,
Finnland, 1999, befasst sich mit Multimedien-Kommunikationen für die mobile
Computer-Telefonie. Es beschreibt eine verteilte Agenten-Netzwerkarchitektur
unter Verwendung von Software-Agenten. Die Software-Agenten werden
so beschrieben, als ob sie in der Lage sind, ihre Verfahren auf
die am besten geeignete Verarbeitungsdomäne zu kopieren, um benötigte Dienste
anzubieten.
-
Es
ist entsprechend ein Ziel der vorliegenden Erfindung, ein Verfahren
zur Kommunikation zwischen einem ersten und einem zweiten Knoten
in einem Kommunikationsnetzwerk zu schaffen, bei dem diese Knoten
jeweils einen SIP-Klienten
umfassen, das ein oder mehrere der vorstehend genannten Probleme überwindet
oder zumindest mildert.
-
Zusammenfassung
der Erfindung
-
Es
werden Modifikationen an dem SIP durchgeführt, die die Funktionalität von SIP
wesentlich erweitern, beispielsweise dadurch, dass sie es einem Dienst
ermöglichen,
automatisch Multimedien-Konferenzen in einfacher Weise aufzubauen.
SIP-Mitteilungen
sind Computer-Software-Code, wie z. B. ein Java-Byte-Code, Java-Applets oder mobile
autonome Software-Agenten zugeordnet. Ein Beispiel eines mobilen
autonomen Agenten ist ein mobiler Java-Agent. Dieser Computer-Software-Code ist in dem Hauptteil
einer SIP-Mitteilung enthalten, oder eine Adresse, die anzeigt,
wo sich der Computer-Software-Code befindet, ist in der SIP-Mitteilung gespeichert.
SIP-Klienten sind so angeordnet, dass bei Empfang einer SIP-Mitteilung,
der Computer-Software-Code zugeordnet wurde, dieser Code von einem
Prozessor ausgeführt
wird, der dem SIP-Klienten zugeordnet ist. Beispielsweise werden in
dem Fall, in dem Java-Applets in einer SIP-Mitteilung enthalten
sind, diese von einer virtuellen Java-Maschine ausgeführt, die
dem SIP-Klienten zugeordnet ist. Wenn ein mobiler Java-Agent in
der SIP-Mitteilung enthalten ist, läuft dieser auf einer virtuellen
mobilen Java-Agent-Maschine ab, die dem SIP-Klienten zugeordnet
ist. Ein derartiger Computer-Software-Code muss immer von dem Prozessor ausgeführt werden,
der dem SIP-Klienten zugeordnet ist, bevor dieser SIP-Klient irgendwelche
anderen Aktionen ausführt,
die sich auf die SIP-Mitteilung beziehen. Vorzugsweise wird eine
Anzeige in das Kopffeld einer SIP-Mitteilung eingefügt, um anzuzeigen, dass
dieser ein Computer-Software-Code zugeordnet wurde, und die SIP-Klienten
sind so ausgebildet, dass sie das Vorhandensein von derartigen Anzeigen feststellen.
Eine Anwendungsprogrammier-Schnittstelle wird erzeugt, damit der
Computer-Software-Code
den SIP-Klienten und/oder irgendeinen Prozessor steuern kann, der
diesem SIP-Klienten zugeordnet ist. In einem Beispiel wird Computer-Software-Code
den SIP-Mitteilungen zugeordnet, damit ein Dienst zum automatischen
Aufbau von Multimedien-Konferenzen bereitgestellt wird.
-
Gemäß einem
Gesichtspunkt der vorliegenden Erfindung wird ein Verfahren zur
Kommunikation zwischen einem ersten und einem zweiten Knoten in einem
Kommunikationsnetz geschaffen, wobei jeder der Knoten einen SIP-Klienten
umfasst und das Verfahren die folgenden Schritte umfasst:
- – Zuordnen
von Computer-Software-Code zu einer SIP-Mitteilung;
- – Senden
der SIP-Mitteilung von dem ersten SIP-Klienten, der dem ersten Knoten
zugeordnet ist, zu dem zweiten SIP-Klienten, der dem zweiten Knoten
zugeordnet ist; und
- – Ausführen der
Computer-Software unter Verwendung des zweiten Knotens.
-
Dies
ergibt den Vorteil, dass die Funktionalität des SIP sehr stark vergrößert wird.
Es ist möglich, Computer-Software-Code,
wie z. B. Java-Applets oder einen mobilen Java-Agenten einer SIP-Mitteilung
derart zuzuordnen, dass der Code von einem empfangenden Kommunikationsnetzwerk-Knoten ausgeführt wird.
Beispielsweise kann der Code zur Steuerung des zweiten Knotens verwendet
werden, um Dienste, wie z. B. einen Dienst zum automatischen Aufbau
einer Multimedien-Konferenzverbindung,
bereitzustellen.
-
Vorzugsweise
wird der Computer-Software-Code der SIP-Mitteilung hinzugefügt. Dies
ermöglicht
es, dass der zweite Knoten einen einfachen Zugriff auf den Code
ausführen
kann.
-
Vorzugsweise
umfasst der Schritt der Zuordnung von Computer-Software-Code zu
der SIP-Mitteilung die Hinzufügung
einer Adresse zu der SIP-Mitteilung, die anzeigt, wo die Computer-Software
gespeichert ist. Dies ergibt den Vorteil, dass die Größe der SIP-Mitteilung
nicht wesentlich erhöht wird,
während
es gleichzeitig ermöglicht
wird, dass der zweite Knoten einen einfachen Zugriff auf den Computer-Software-Code
unter Verwendung der Adresse hat.
-
Vorzugsweise
umfasst das vorstehend beschriebene Verfahren weiterhin den Schritt
des Fortfahrens mit irgendeinem SIP-Prozess, der zu der SIP-Mitteilung
in Beziehung steht. Dies ergibt den Vorteil, dass irgendein SIP-Prozess,
der zu der SIP-Mitteilung in Beziehung steht, nicht durch das Vorhandensein
des Computer-Software-Codes beeinflusst wird, sofern nicht der Code
dazu bestimmt ist, diesen Prozess zu beeinflussen.
-
In
vorteilhafter Weise ist der zweite SIP-Klient so angeordnet, dass
bei Empfang einer SIP-Mitteilung, die eine Anzeige enthält, der
Computer-Software-Code, der der SIP-Mitteilung zugeordnet ist, von dem zweiten
Knoten ausgeführt
wird, bevor der zweite Knoten irgendwelche anderen Prozesse ausführt, die
sich auf die SIP-Mitteilung beziehen. Dies ergibt den Vorteil, dass
wenn der Computer-Software-Code so ausgelegt ist, dass er den der
SIP-Mitteilung zugeordneten SIP-Prozess beeinflusst, dies erzielt
wird.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Kommunikationsnetzwerk-Knoten
geschaffen, der Folgendes umfasst:
- – einen
SIP-Klienten;
- – einen
Eingang, der zum Empfang von SIP-Mitteilungen ausgebildet ist, denen
ein Computer-Software-Code zugeordnet sein kann;
- – einen
Prozessor, der so ausgebildet ist, dass im Gebrauch bei Empfang
einer SIP-Mitteilung
irgendein dieser SIP-Mitteilung zugeordneter Computer-Software-Code
von dem Prozessor ausgeführt
wird.
-
Dies
ergibt den Vorteil, dass SIP-Mitteilungen, denen Computer-Software-Code
zugeordnet wurden, um die Funktionalität des SIP zu erweitern, empfangen
werden und der Computer-Software-Code ausgeführt wird. Dies ermöglicht es,
dass die zusätzliche
Funktionalität,
die von dem Computer-Software-Code bereitgestellt ist, realisiert
wird.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Computer-Programm geschaffen,
das so ausgebildet ist, dass es einen Kommunikationsnetzwerk-Knoten
steuert, wobei der Knoten einen SIP-Klienten und einen Prozessor
umfasst, wobei das Computer-Programm so ausgebildet ist, dass es
den Knoten in einer derartigen Weise steuert, dass wenn eine SIP-Mitteilung
von dem SIP-Klienten empfangen wird, irgendein Computer-Software-Code,
der der empfangenen SIP-Mitteilung zugeordnet ist, von dem Prozessor
ausgeführt
wird.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Kommunikationsnetzwerk
geschaffen, das eine Vielzahl von Kommunikationsnetzwerk-Knoten
umfasst, wobei jeder derartige Knoten Folgendes umfasst:
- – einen
SIP-Klienten;
- – einen
Eingang, der zum Empfang von SIP-Mitteilungen ausgebildet ist, denen
Computer-Software-Code zugeordnet sein kann; und
- – einen
Prozessor, der so ausgebildet ist, dass im Betrieb, bei Empfang
einer SIP-Mitteilung,
irgendein Computer-Software-Code, der dieser SIP-Mitteilung zugeordnet
ist, von dem Prozessor ausgeführt
wird.
-
Dies
ergibt den Vorteil, dass ein Kommunikationsnetzwerk geschaffen wird,
das in der Lage ist, das verbesserte SIP-Protokoll zu realisieren.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Verfahren
zum Aufbau einer Konferenzverbindung zwischen zwei oder mehr Teilnehmern
geschaffen, wobei jeder Teilnehmer einen SIP-Klienten und einen
Host-Prozessor aufweist, wobei das Verfahren die folgenden Schritte umfasst:
- – Zuordnen
von Computer-Software-Codes zu einer SIP-Mitteilung;
- – Senden
der SIP-Mitteilung an jeden der Teilnehmer;
- – Ausführen des
Computer-Software-Codes an jedem der Host-Prozessoren.
-
Dies
ergibt den Vorteil, dass eine Konferenzverbindung schnell und einfach
aufgebaut wird. Für den
Aufbauprozess sorgt die Computer-Software, die den SIP-Mitteilungen
zugeordnet ist.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein System
zu automatischen Aufbau einer Konferenzverbindung zwischen zwei
oder mehr Teilnehmern geschaffen, wobei jeder Teilnehmer einen SIP-Klienten
und einen Host-Prozessor
aufweist, wobei das System Folgendes umfasst: einen Prozessor zur
Zuordnung von Computer-Software-Code zu einer SIP-Mitteilung und
zum Senden dieser SIP-Mitteilung an jeden der Teilnehmer; und wobei
jeder der Host-Prozessoren so ausgebildet ist, dass er den Computer-Software-Code
im Betrieb ausführt,
wenn die SIP-Mitteilung empfangen wird. Das System ergibt eine Möglichkeit
zum automatischen Aufbau von Konferenzverbindungen derart, dass
die Teilnehmer keine komplexen Aktionen ausführen müssen, um die Verbindung aufzubauen.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Verfahren
zur Aufrüsten
oder Ersetzen von miteinander verbundenen SIP-Klienten geschaffen,
wobei jeder SIP-Klient einem Host-Prozessor zugeordnet ist und das
Verfahren die folgenden Schritte umfasst:
- – Zuordnen
von Computer-Software-Code, der für die Aufrustung oder den Ersatz
geeignet ist, zu einer SIP-Mitteilung;
- – Senden
der SIP-Mitteilung an jeden der SIP-Klienten; und
- – Ausführen der
Computer-Software an jedem der Host-Prozessoren.
-
Dies
ergibt den Vorteil, dass eine Vielzahl von SIP-Klienten, die miteinander
beispielsweise in einem Kommunikationsnetzwerk verbunden sind, sehr
schnell und einfach aufgerüstet
und ersetzt werden können.
Der Aufrüstungs-
oder Ersetzungsprozess kann automatisiert werden, und es sind keine Bedienungspersonen
erforderlich, um die Aufrüstung oder
den Ersatz unter Verwendung von CD's oder anderen Medien auszuführen, die
die neue Software zu jedem SIP-Klienten getrennt übertragen.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Verfahren
zum Testen von Mitgliedern einer Gruppe von SIP-Klienten geschaffen,
wobei jeder SIP-Klient einem Host-Prozessor zugeordnet ist, wobei
das Verfahren die folgenden Schritte umfasst:
- – Zuordnen
von Computer-Software-Code, der für das Testen geeignet ist,
zu einer SIP-Mitteilung;
- – Senden
der SIP-Mitteilung an einen der SIP-Klienten;
- – Ausführen der
Computer-Software an dem Host-Prozessor, der diesem SIP-Klienten zugeordnet
ist, um Testergebnisse zu erzielen; und
- – Wiederholen
der Schritte (ii) bis (iii) für
jeden der anderen SIP-Klienten in der Gruppe.
-
Dies
ergibt den Vorteil, dass eine Gruppe von SIP-Klienten, beispielsweise
in einem Kommunikationsnetzwerk, automatisch in einer schnellen
und effizienten Weise getestet werden kann. Wenn beispielsweise
ein Fehler auf einem Netzwerk berichtet wird, und der Ort oder die
Eigenart dieses Fehlers unbekannt ist, so kann das Verfahren zum
Testen zur Untersuchung der Situation verwendet werden.
-
Gemäß einem
weiteren Gesichtspunkt der vorliegenden Erfindung wird ein Verfahren
zur Weiterleitung einer Verbindung von einem ersten SIP-Klienten
zu einem zweiten SIP-Klienten geschaffen, wobei jedem SIP-Klienten
ein Host-Prozessor zugeordnet ist, wobei das Verfahren die folgenden
Schritte umfasst:
- – Empfangen eines Anrufs an
dem ersten SIP-Klienten und wenn dieser Anruf nicht beantwortet wird,
Zuordnen von Computer-Software-Code zu einer SIP-Mitteilung, wobei
der Computer-Software-Code zur Weiterleitung eines Anrufes ausgebildet
ist;
- – Senden
der SIP-Mitteilung von dem ersten SIP-Klienten zu einem festgelegten
zweiten SIP-Klienten; und
- – Ausführen der
Computer-Software unter Verwendung des Host-Prozessors, der dem
zweiten SIP-Klienten zugeordnet ist, derart, dass der Anruf an den
zweiten SIP-Klienten weitergeleitet wird.
-
Dies
ergibt den Vorteil, dass ein Anruf sehr schnell und effizient in
dem Fall weitergeleitet wird, dass der Anruf nicht an einem ersten
SIP-Klienten beantwortet wird. Dieses Verfahren kann für eine größere Anzahl
von verbundenen SIP-Klienten erweitert werden, beispielsweise derart,
dass wenn ein Anruf an eine Person in einem Büro nicht beantwortet wird, dieser
Anruf automatisch zu anderen Endgeräten in dem Büro weitergeleitet
wird, bis der Anruf beantwortet wird.
-
Weitere
nützliche
Eigenschaften und Vorteile der Erfindung werden aus einer Betrachtung
der folgenden ausführlichen
Beschreibung anhand der beigefügten
Zeichnungen ersichtlich, die bevorzugte Ausführungsformen der Erfindung
angeben und zeigen.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist eine schematische
Darstellung eines Kommunikationsnetzwerkes, das Knoten zur Realisierung
eines verbesserten SIP-Protokolls beinhaltet.
-
2 ist ein Ablaufdiagramm
eines Verfahrens zur Kommunikation zwischen zwei SIP-Klienten unter
Verwendung eines verbesserten SIP-Protokolls.
-
3 ist eine schematische
Darstellung der Wechselwirkung zwischen einer Vielzahl von SIP-Klienten
entsprechend dem verbesserten SIP-Protokoll.
-
4 zeigt das Format einer
verbesserten SIP-Protokollmitteilung.
-
5 ist ein Beispiel einer
verbesserten SIP-Protokoll-INVITE-(Einladungs-) Mitteilung.
-
6 ist ein Ablaufdiagramm
eines Verfahrens zum Aufbau einer Konferenzverbindung unter Verwendung
eines Konferenzverbindungs-Dienstsystems.
-
7 ist ein Ablaufdiagramm
eines Verfahrens zum Aufbau einer Konferenzverbindung.
-
8 zeigt ein Verfahren zum
Aufrüsten oder
Ersetzen von miteinander verbundenen SIP-Klienten.
-
9 zeigt ein Verfahren zum
Testen von Mitgliedern einer Gruppe von SIP-Klienten.
-
10 zeigt ein Verfahren zur
Weiterleitung eines Anrufs von einem ersten SIP-Klienten zu einem zweiten
SIP-Klienten.
-
Ausführliche
Beschreibung der Erfindung
-
Ausführungsformen
der vorliegenden Erfindung werden nunmehr lediglich in Form eines
Beispiels beschrieben. Diese Beispiele stellen die besten Möglichkeiten
zur Ausführung
der Erfindung dar, die derzeit dem Anmelder bekannt sind, obwohl
sie nicht die einzigen Möglichkeiten
sind, wie dies erzielt werden könnte.
-
Der
Ausdruck „SIP-Klient" wird dazu verwendet,
um ein Computer-Programm zu bezeichnen, das zur Steuerung eines
Kommunikationsnetzwerk-Knotens derart ausgebildet ist, dass dieser
in der Lage ist, SIP-Mitteilungen, wie z. B. SIP-Anforderungsmitteilungen zu senden.
Die Rechenplattform, auf der der SIP-Klient läuft, wird als ein „Host-System" bezeichnet. Der
Kommunikationsnetzwerk-Knoten umfasst das Host-System, oder er ist
dem Host-System zugeordnet.
-
Der
Ausdruck „virtuelle
Java-Maschine" wird zur
Bezeichnung eines Prozessors verwendet, der zur Ausführung von
Java-Applets oder Java-Byte-Code ausgebildet ist.
-
Der
Ausdruck „mobiler
autonomer Software-Agent" wird
dazu verwendet, ein Computerprogramm zu bezeichnen, das in der Lage
ist, sich selbst anzuhalten und sich von einem ersten Prozessor
zu einem anderen Prozessor zu bewegen, der mit dem ersten Prozessor
beispielsweise über
ein Kommunikationsnetzwerk verbunden ist. Das Computerprogramm wird
als autonom bezeichnet, weil es unabhängig von externen Anforderungen
in der Lage ist, zu „entscheiden", wohin es sich bewegen
soll und was es tun soll. Ein Beispiel eines mobilen autonomen Software-Agenten
ist ein mobiler Java-Agent. Einzelheiten über mobile Java-Agenten sind
in der Veröffentlichung „Under
the Hood: The architecture of aglets" von Bill Venners, JavaWorld, April
1997 angegeben, deren Inhalt durch diese Bezugnahme hier mit aufgenommen
wird.
-
Durch
die Erweiterung des SIP-Protokolls wird eine vergrößerte Funktionalität bereitgestellt. SIP-Mitteilungen
werden so modifiziert, dass sie Computer-Software-Code wie z. B. Java-Applets übertragen,
oder dass sie eine Adresse übertragen, wie
z. B. eine vereinheitlichte Ressourcen-Adresse (URL), die anzeigt,
wo der Computer-Software-Code gespeichert
ist. Eine Anwendungsprogrammier-Schnittstelle (API) wird ebenfalls
definiert, die es dem Computer-Software-Code ermöglicht, mit einem empfangenden
Host-System in Wechselwirkung zu treten. SIP-Klienten werden weiterhin
so modifiziert, dass sie den Computer-Software-Code ausführen, der
den SIP-Mitteilungen zugeordnet ist, bevor irgendwelche anderen
Aktionen als Ergebnis des Empfangs der SIP-Mitteilung vorgenommen
werden.
-
1 zeigt ein Kommunikationsnetzwerk 1, das
eine Vielzahl von Kommunikationsnetzwerk-Knoten 10 umfasst,
wobei jeder derartige Knoten Folgendes umfasst:
- – einen
SIP-Klienten 11;
- – einen
Eingang 12, der zum Empfang von SIP-Mitteilungen ausgebildet
ist, denen Computer-Software-Code zugeordnet sein kann; und
- – einen
Prozessor 13, der derart angeordnet ist, dass im Betrieb
bei Empfang einer SIP-Mitteilung irgendein dieser SIP-Mitteilung
zugeordneter Computer-Software-Code
von dem Prozessor ausgeführt
wird. Der Prozessor wird von dem Host-System bereitgestellt und kann eine
virtuelle Java-Maschine oder irgendeinen anderen geeigneten Prozessor
umfassen. Diese Kommunikationsnetzwerk-Knoten werden als verbesserte SIP-Knoten
bezeichnet, weil sie so angeordnet sind, dass sie es ermöglichen,
dass der verbesserte SIP-Prozess arbeitet.
-
Das
Kommunikationsnetzwerk nach 1 wird
in Verbindung mit dem in 2 gezeigten
Verfahren verwendet, um den verbesserten SIP-Prozess zu realisieren. 2 ist ein Ablaufdiagramm
eines Verfahrens zur Kommunikation zwischen einem ersten und einem
zweiten Knoten in einem Kommunikationsnetzwerk, wobei jeder der
Knoten einen SIP-Klienten umfasst, wobei das Verfahren die folgenden Schritte
umfasst:
- – Zuordnen
eines Computer-Software-Codes zu einer SIP-Mitteilung (Kasten 20 in 2);
- – Senden
der SIP-Mitteilung von dem ersten SIP-Klienten, der dem ersten Knoten
zugeordnet ist, zu dem zweiten SIP-Klienten, der dem zweiten Knoten
zugeordnet ist (Kasten 21 in 2);
und
- – Ausführen der
Computer-Software unter Verwendung des zweiten Knotens (Kasten 22 in 2).
-
Zum
Beispiel zeigt 3 ein
Beispiel, wie eine Vielzahl von verbesserten SIP-Klienten 30, 31, 32, 33, 41 zusammenwirkt.
Jeder SIP-Klient ist auf einem (nicht gezeigten) Kommunikationsnetzwerk-Knoten
unterstützt.
Der SIP-Klient A 30 ist mit dem SIP-Klienten B 31 über eine
Kommunikations-Verbindungsstrecke 34 verbunden, und der SIP-Klient
B 31 ist sowohl mit dem SIP-Klienten C 32 als
auch dem SIP-Klienten
D 33 über
Kommunikations-Verbindungsstrecken 34 verbunden. Der SIP-Klient B 31 hat
ein Host-System, das eine virtuelle Java-Maschine umfasst. Der SIP-Klient D 33 ist
weiterhin mit dem SIP-Klienten E über eine Kommunikations- Verbindungsstrecke
verbunden. Der SIP-Klient D hat ein Host-System 39, das
eine virtuelle mobile Java-Agenten-Maschine umfasst, und der SIP-Klient E 41 hat
ebenfalls ein Host-System 41, das eine virtuelle mobile
Java-Agenten-Maschine 42 umfasst.
-
Unter
Verwendung des verbesserten SIP-Protokolls wird Computer-Software-Code,
wie z. B. Java-Applets, einer SIP-Mitteilung 36 zugeordnet. Das
heißt,
der Computer-Software-Code
kann zu dem Hauptteil der SIP-Mitteilung selbst hinzugefügt werden,
oder er kann getrennt gespeichert werden, und eine Adresse des Speicherplatzes
wird der SIP-Mitteilung hinzugefügt.
Es ist nicht wichtig, Java-Applets oder mobile Java-Agenten zu verwenden; irgendein
anderer geeigneter Computer-Software-Code kann verwendet werden.
Die Mitteilung 36 wird von einem SIP-Klienten A 30 zum
SIP-Klienten B 31 gesandt. Der SIP-Klient B stellt das
Vorhandensein der Java-Applets
(oder anderer Computer-Software-Codes) fest, die der SIP-Mitteilung 36 zugeordnet
sind, und führt
diese Java-Applets unter Verwendung seiner virtuellen Java-Maschine 35 (oder
einer anderen Art von Host-Prozessor) aus.
-
Irgendein
geeignetes Verfahren zur Feststellung des Vorhandenseins von der
SIP-Mitteilung 36 zugeordnetem
Computer-Software-Code kann verwendet werden. Beispielsweise kann
eine Anzeige in das Kopffeld der SIP-Mitteilung 36 eingesetzt
werden, und der SIP-Klient 31 ist so ausgebildet, dass
er die Anzeige feststellt und diese dem Vorhandensein des Computer-Software-Codes
zuordnet. Ein Beispiel einer derartigen Anzeige in einer SIP-Mitteilung wird
weiter unten ausführlicher
beschrieben.
-
Durch
Ausführen
der Java-Applets werden zwei neue SIP-Mitteilungen 37, 38 geschaffen,
von denen eine Mitteilung 37 einen mobilen Java-Agenten
enthält,
während
die andere dies nicht tut. Dies ist nur ein Beispiel von etwas,
was der der SIP-Mitteilung zugeordnete Computer-Software-Code tun konnte.
Beispielsweise könnte
der Computer-Software-Code auch so ausgebildet werden, dass er vorhandene
SIP-Mitteilungen modifiziert, vorhandene SIP-Mitteilungen löscht, SIP-Mitteilungen erzeugt, SIP-Mitteilungen
empfängt
oder den SIP-Klienten und/oder den Host-Prozessor steuert, um irgendeine andere
geeignete Funktion auszuführen.
Der Computer-Software-Code ist so angeordnet, dass er mit dem Host-Prozessor über eine
API zusammenwirkt, wie dies weiter oben beschrieben wurde. Sicherheitsbeschränkungen
können
von dem SIP-Klienten und/oder dem Host-System erzwungen werden, um die Aktionen
zu beschränken,
die irgendein mit der SIP-Mitteilung verbundener Software-Code ausführen kann.
Weitere Einzelheiten über
diese Sicherheitsbeschränkungen
werden weiter unten angegeben.
-
Die
ausgeführten
Java-Applets bewirken dann, dass der SIP-Klient B 31 eine
der erzeugten Mitteilungen 37 an den SIP-Klienten D 33 und
die andere Mitteilung 38 an den SIP-Klienten C 32 sendet. Die
Mitteilung 37, die an den SIP-Klienten D gesandt wird,
enthält
einen mobilen Java-Agenten (oder einen anderen Computer-Software-Code oder eine Adresse
des Computer-Software-Codes). Wenn der SIP-Klient D die Fähigkeit
hat, den mobilen Java-Agenten, der in der Mitteilung 37 enthalten
ist, auszuführen,
so tut der SIP-Klient D dies. Wenn der SIP-Klient D diese Fähigkeit
jedoch nicht hat, beispielsweise weil der SIP-Klient D keine virtuelle
mobile Java-Agenten-Maschine
hat, so folgt der SIP-Klient D einfach dem Standard SIP-Verfahren
für nicht unterstützte erforderliche
Erweiterungen. Dies beinhaltet die Rücklieferung einer Fehlermitteilung
an den SIP-Klienten B, was anzeigt, dass das Java-Applet in der
Mitteilung 37 nicht ausgeführt wurde.
-
In
der Zwischenzeit wird die SIP-Mitteilung 38, der kein Computer-Software-Code
zugeordnet ist, dem SIP-Klienten C 32 zugesandt, und irgendein SIP-Prozess,
der mit dieser Mitteilung 38 verbunden ist, wird unter
Befolgung des Standard-SIP-Protokolls ausgeführt.
-
In
diesem Beispiel hat der SIP-Klient D eine zugehörige virtuelle mobile Java-Agenten-Maschine 39,
so dass, wenn die Mitteilung 37 ankommt, der mobile Java-Agent in der Mitteilung 37 beginnt,
auf diesem Prozessor abzulaufen. An irgendeinem Punkt in der Ausführung setzt
sich der mobile Java-Agent selbst aus und fügt sich selbst in die SIP-Mitteilung 40 ein,
die an den SIP-Klienten E gesandt wird. Dies ist ein Beispiel eines
Prozesses, der durch Einfügen eines
mobilen Java-Agenten in die SIP-Mitteilung auftreten kann.
-
In
dem hier beschriebenen verbesserten SIP-Protokoll werden Standard-SIP-Mitteilungen dadurch
modifiziert, dass diesen Computer-Software-Code zugeordnet wird,
wie dies vorstehend beschrieben wurde. Beispielsweise werden ein
oder mehrere Java-Applets oder mobile Java-Agenten in einem mehrteiligen
MIME-Abschnitt in
dem Hauptteil einer SIP-Mitteilung gespeichert, oder eine URL, die anzeigt,
wo die Java-Applets oder die mobilen Java-Agenten gespeichert sind,
wird der SIP-Mitteilung hinzugefügt.
-
In
manchen Beispielen wird eine Anzeige dem SIP-Mitteilungs-Kopffeld
hinzugefügt,
um anzuzeigen, dass Computer-Software-Code dieser SIP-Mitteilung
zugeordnet ist. Beispielsweise wird ein „Erfordere Anforderungs-Kopffeld" dazu verwendet,
um anzuzeigen, dass ein Java-verbessertes SIP unterstützt werden
muss, um eine SIP-Mitteilung
zu unterstützen,
der Java-Applets oder Java-Byte-Code zugeordnet sind. Dieses „Erfordere
Anforderung"-Kopffeld
ist gleich dem Kopffeld für
eine Standard-SIP-Mitteilung,
mit der Ausnahme, dass das Inhaltsfeld in dem Einheits-Kopffeld
dazu verwendet wird, amzuzeigen, dass der Inhaltstyp ein Java-Applet
ist oder die URL eines Java-Applets, das zurückgewonnen werden muss. Weiterhin
wird das Anforderungsfeld des Anforderungs-Kopffeldes dazu verwendet,
festzulegen, dass das Java-verbesserte SIP unterstützt werden
muss, um die betreffende Mitteilung zu verarbeiten.
-
4 zeigt die Struktur einer üblichen SIP-Mitteilung
und zeigt, wie diese Struktur in dem hier beschriebenen verbesserten
SIP-Protokoll verwendet wird. Die Struktur einer Standard-SIP-Mitteilung
ist bei 40 in 4 gezeigt.
So umfasst eine Standard-SIP-Mitteilung
ein allgemeines Kopffeld (General-Header), ein Anforderungs-Kopffeld
(Request-Header), ein Einheits-Kopffeld (Entity-Header), einen Wagenrücklauf-Zeilenvorschub (CRLF)
und einen Mitteilungs-Hauptteil. Die Struktur des allgemeinen Kopffeldes
ist bei 41 in 4 gezeigt,
und in ähnlicher
Weise sind die Strukturen von jeweils einem Einheits-Kopffeld 42,
einem Anforderungs-Kopffeld 43 und einem Antwort-Kopffeld 44 gezeigt.
Um anzuzeigen, dass das hier beschriebene verbesserte SIP-Protokoll
verwendet wird, sind Marken oder Etiketten in der SIP-Mitteilung
an irgendeiner geeigneten Stelle enthalten. Beispielsweise kann
das Inhalts-Typ(Content-Type-) Feld eines Einheits-Kopffeldes dazu
verwendet, werden, anzuzeigen, dass der Inhalts-Typ ein Java-Applet
oder die URL eines Ortes des Java-Applets ist. In ähnlicher
Weise kann das Inhalts-Typ-Feld eines Einheits-Kopffeldes dazu verwendet
werden, um anzuzeigen, dass der Inhalts-Typ ein mobiler Java-Agent
oder die URL eines Ortes eines mobilen Java-Agenten ist. Weiterhin kann
das Benötige-Feld (Require Field)
eines Anforderungs-Kopffeldes dazu verwendet werden, anzuzeigen,
dass Java-verbessertes SIP unterstützt werden muss, um die betreffende
Mitteilung zu verarbeiten. Es ist jedoch nicht wesentlich, das Inhalts-Typ-Feld oder das benötige-Feld
für diesen Zweck
zu verwenden. Irgendein anderes geeignetes Feld oder geeignete Felder
können
verwendet werden.
-
5 zeigt ein Beispiel einer
Einladungs- (INVITE-) Mitteilung gemäß dem hier beschriebenen verbesserten
SIP-Protokoll. Das Inhalts-Typ-Feld enthält die Worte „Multiport/Mixed" (mehrteilig/gemischt),
was anzeigt, dass der Einladungs-Mitteilungshauptteil
die Form einer mehrteiligen MIME-Mitteilung hat, die ein oder mehrere
Java-Applets oder mobile Java-Agenten enthält. Das Benötige- (require-) Feld enthält die Worte „org.ietf.sip.java-enhanced-sip" die anzeigen, dass
das verbesserte SIP-Protokoll zur Verarbeitung dieser Mitteilung
verwendet werden muss. Ein Teil des Hauptteils der INVITE-Mitteilung,
die das Java-Applet oder die Java-Applets oder die mobilen Java-Agenten
enthält, ist
bei 50 gezeigt.
-
Die
SIP-Klienten, die zur Realisierung des verbesserten SIP-Protokolls
verwendet werden, sind die gleichen wie Standard-SIP-Klienten, mit
der Ausnahme, dass sie ausgebildet sind, dass sie die folgenden
Dinge tun:
- – Sie stellen verbesserte SIP-Mitteilungen
fest, die mit Computer-Software-Code verbunden sind. Beispielsweise
kann dies dadurch erfolgen, dass vorgesehen wird, dass der SIP-Klient
das Vorhandensein der Worte „org.ietf.sip.java-enhanced-sip" oder org.ietf.sip.java-mobile-agent-enhanced-sip" in dem SIP-Mitteilungs-Kopffeld
erkennt.
- – Wenn
eine verbesserte SIP-Mitteilung empfangen und festgestellt wird,
erfolgt ein Zugriff auf den dieser SIP-Mitteilung zugeordneten Software-Code,
der auf dem Host-Prozessor des SIP-Klienten ausgeführt wird.
Vorzugsweise erfolgt diese Ausführung
unmittelbar, bevor die SIP-Mitteilung in irgendeiner Weise weiter
verarbeitet wird. Wenn beispielsweise ein Inhalts-Typ-Feld in einem
SIP-Kopffeld anzeigt, dass eine URL für ein Java-Applet vorhanden
ist, so muss der SIP-Klient unmittelbar das Applet von der URL holen
und das Applet auf einer virtuellen Java-Maschine ausführen, die dem SIP-Klienten
zugeordnet ist. Wenn der SIP-Klient den Software-Code nicht ausführt, so
ist er vorzugsweise so ausgebildet, dass er mit dem Status-Code
420 (falsche Erweiterung) und durch Aufführen von org.ietf.sip.java-enhanced-sip" in einem nicht unterstützten Kopffeld
antwortet. Der SIP-Klient kann gegebenen falls den Software-Code
nicht ausführen, wenn
er hierzu nicht in der Lage ist, beispielsweise wenn keine virtuelle
Java-Maschine vertügbar ist,
oder wenn der SIP-Klient entscheidet, dies nicht zu tun, beispielsweise
aus Sicherheitsgründen.
- – Sie
stellen eine Übereinstimmung
ankommender SIP-Mitteilungen mit Mustern fest und bewirken im Fall
einer Übereinstimmung
das „Aufwecken" irgendeines wartenden
Computer-Software-Codes. Dies wird weiter unten ausführlicher
beschrieben.
-
Der
Host-Prozessor des SIP-Klienten wird gegenüber einem Standard-SIP-Host-Prozessor eines Klienten
modifiziert, weil er einen Prozessor von einem bestimmten Typ umfassen
muss. Beispielsweise eine virtuelle Java-Maschine, in dem Fall,
in dem Java-Applets den verbesserten SIP-Mitteilungen zugeordnet
sind. Wenn mobile Java-Agenten verwendet
werden, so ist eine virtuelle mobile Java-Agenten-Maschine erforderlich.
Weiterhin hat der Host-Prozessor des SIP-Klienten einen Zugriff
auf eine API oder umfasst diese, die es ermöglicht, dass der Computer-Software-Code,
der mit der verbesserten SIP-Mitteilung verbunden ist, mit dem SIP-Klienten
zusammenwirkt. Beispielsweise hat in dem Fall, in dem Java-Applets
verwendet werden, der Host-Prozessor
des SIP-Klienten Zugriff auf einen Satz von Java-Klassen oder Applets,
die in einer Java-verbesserten SIP API definiert sind. Diese API
ermöglicht
einen Zugang in dem SIP-Klienten um den Aufbau von SIP-Mitteilungen
und deren Absendung unter Berücksichtigung
von Sicherheitsbeschränkungen
zu ermöglichen.
Unter Verwendung der API sind empfangene Java-Applets oder mobile
Java-Agenten in der Lage, SIP-Mitteilungen unter Verwendung des
empfangenden SIP-Klienten zu erzeugen und zu empfangen.
-
Übergabe der Steuerung zwischen
dem Computer-Software-Code, der verbesserten SIP-Mitteilungen zugeordnet
ist, und dem betreffenden SIP-Klienten
-
In
dem Fall, dass Standard-SIP-Mitteilungen verwendet werden, werden
diese von SIP-Klienten in der üblichen
Weise verarbeitet, und die Steuerung bleibt bei dem SIP-Klienten. In dem
vorstehend beschriebenen Fall des verbesserten SIP hat jedoch irgendein
Computer-Software-Code, der einer SIP-Mitteilung zugeordnet ist,
Vorrang gegenüber anderen
SIP-Prozessen, die mit der SIP-Mitteilung verbunden sind, oder gegenüber irgendwelchen
anderen SIP-Mitteilungen, die von dem SIP-Klienten während der
Verarbeitung des Computer-Software-Codes empfangen werden.
-
Beispielsweise
kann der Computer-Software-Code, der mit einer SIP-Mitteilung verbunden
ist, so angeordnet sein, dass er eine SIP-Sitzung einleitet und
auf eine SIP-Antwort wartet, bevor er weiterläuft. Während dieser Warteperiode bleibt
die Steuerung bei dem Computer-Software-Code. Der Computer-Software-Code
ist in der Lage, festzulegen, dass er in den Ruhestand geht und
auf die nächste SIP-Mitteilung
wartet, die mit einem bestimmten Muster übereinstimmt. In diesem Fall
führt der
SIP-Klient während des
Wartezustandes keine weiteren Aktionen aus. Alternativ kann der
Computer-Software-Code irgendeine andere ankommende SIP-Mitteilung selbst
während
der Ruheperiode abwickeln. Somit geht die Steuerung nicht zurück an den
SIP-Klienten, bevor nicht der Computer-Software-Code dies wünscht, selbst
wenn andere SIP-Mltteilungen von anderen Sitzungen ankommen.
-
Anwendungsprogrammier-Schnittstelle
(API)
-
Wie
dies weiter oben beschrieben wurde, wird eine API spezifiziert,
damit der Computer-Software-Code, der verbesserten SIP-Mitteilungen
zugeordnet ist, in der Lage ist, den SIP-Klienten zu beeinflussen.
Beispielsweise ermöglicht
es diese API einem empfangenen Java-Applet oder einem mobilen Java-Agenten,
einen Zugang an die SIP-Mitteilungsfunktionen auf dem SIP-Klienten
zu erhalten.
-
Beispiele
von Verfahren, die von der API unterstützt werden, umfassen Folgendes:
- – SendSIPMessage – sendet
eine SIP-Mitteilung und stellt einen Kontext für die Sitzung her, wenn eine
Sitzung noch nicht existiert. Der Aufrufer (der ein Teil des Software-Codes
ist, der diese Funktion aufgerufen hat) kann anzeigen, ob er wünscht, dass
die Mitteilung Teil einer vorhandenen Sitzung ist. Beispielsweise
könnte
der Aufrufer ein Java-Applet oder ein mobiler Java-Agent sein.
- – ReceiveSIPMessage – gewinnt
eine SIP-Mitteilung aus dem Eingangspuffer des Klienten auf einer
FIFO-Basis zurück.
- – ReceivedMessageSummary – liefert
eine Zusammenfassung irgendwelcher empfangener Mitteilungen in dem
Eingangspuffer des Klienten zusammen mit einer Zählung der empfangenen Mitteilung
zurück.
Wenn der Klient keine Pufferung von Eingangsmitteilungen unterstützt, so
wird dies angezeigt.
- – QueryCapabilities – liefert
die Fähigkeiten
des Klienten zurück.
Diese schließen
die Fähigkeit ein,
ankommende Mitteilungen zu puffern, sowie die Puffer-Größe.
- – Querystatus – liefert
den Status irgendwelcher Sitzungen zurück, an denen der Klient derzeit
beteiligt ist.
- – MatchMessageAndWake – prüft ankommende Mitteilungen
gegen ein bestimmtes Muster, und wenn diese übereinstimmen, wird das angezeigte Applet
oder mobile Java-Agent aufgeweckt und die Mitteilungen werden direkt
an das angezeigte Applet geliefert.
- – ProcessMessage – sendet
eine Mitteilung an den Klienten und übergibt die Steuerung an den Klienten,
damit die Mitteilung in Standard-SIP verarbeitet wird. Beispielsweise
kann dies verwendet werden, nachdem ein Applet oder ein mobiler
Java-Agent die Mitteilung betrachtet oder sie in irgendeiner Weise
geändert
hat und dann die Mitteilung zurück
an den Klienten liefern möchte,
damit diese wie in Standard-SIP verarbeitet wird.
- – ProcessMessageAndReturn – wie für ProcessMessage,
jedoch mit der Ausnahme, dass die Steuerung an den Aufrufer zurückgegeben
wird, nachdem die Mitteilung verarbeitet wurde.
- – ProcessFromBufferAndRetum – verarbeitet
die nächste
Mitteilung an dem Eingangspuffer wie im Standard-SIP innerhalb des
Klienten und gibt dann die Steuerung an das aufrufende Applet oder
den mobilen Java-Agenten zurück.
-
Änderungen
an dem SIP-Proxy- und SIP-Server-Verhalten
-
Unter
Befolgung des Standard-SIP, wie es in „Request for comments (RFC)
2543 SIP: Session Initiation Protocol" definiert ist, müssen Proxy- und Umlenkungsserver
Merkmale ignorieren, die sie nicht verstehen. Das heißt dass,
wenn ein SIP-Proxy oder Umlenkungsserver nicht dazu ausgebildet
ist, die hier beschriebenen verbesserten SIP-Mitteilungen zu verstehen,
er Merkmale dieser Mitteilungen ignorieren muss, die nicht mit dem
Standard-SIP gemeinsam sind. Ein SIP-Proxy-Server ist ein Kommunikationsnetzwerk-Knoten,
der unter Verwendung des SIP-Protokolls
stellvertretend für
andere Teilnehmer kommuniziert. Ein SIP-Umlenkungsserver ist ein Kommunikationsnetzwerk-Knoten,
der SIP-Mitteilungen empfängt
und diese zu einem anderen Kommunikationsnetzwerk-Knoten lenkt.
Wenn eine bestimmte Erweiterung des Standard-SIP-Protokolls erfordert,
dass zwischenliegende Geräte
dieses unterstützen,
so muss die Tatsache, dass die Erweiterung verwendet wird, in dem
Proxy-benötigt-Feld
ebenfalls markiert werden (siehe Abschnitt 6.28 des oben genannten
SIP RFC). Somit wird für
das hier beschriebene verbesserte SIP eine Anzeige in das Proxy-Benötigt-Feld
eingefügt,
um anzugeben, dass das verbesserte SIP verwendet wird.
-
Sicherheit
-
Vorzugsweise
sind Sicherheitsmechanismen in das verbesserte SIP-Protokoll eingefügt, obwohl dies
nicht wesentlich ist. Beispielsweise umfasst ein Host-System, das
einen SIP-Klienten unterstützt, vorzugsweise
Sicherheitsmechanismen zur Steuerung der Aktivitäten von Software-Code, wie
z. B. Java-Applets oder mobilen Java-Agenten, die als Ergebnis der
verbesserten SIP-Mitteilungen empfangen werden. Diese Sicherheitsmechanismen
können beispielsweise
von einem Benutzer oder Betreiber konfiguriert werden, um immer
zu ermöglichen
oder zu verhindern, dass bestimmte Operationen von Java-Applets
oder mobilen Java-Agenten ausgeführt werden,
die von verbesserten SIP-Mitteilungen empfangen werden. Der Benutzer
kann eine Matrix von SIP-Operationen gegenüber Sicherheitsmechanismen-Aktionen
mit Daten auffüllen.
Es ist weiterhin möglich,
dass der Sicherheitsmechanismus den Benutzer eine Aufforderung liefert,
eine Genehmigung zum Fortfahren mit bestimmten Aktionen zu erteilen. Die
Sicherheitsmechanismen werden durch eine Sicherheitsverwaltung wirksam
gemacht, die die Form einer Computer-Software-Anwendung aufweist,
die sich an jedem SIP-Klienten befindet. Vorzugsweise sind alle
in der API festgelegten Verfahren so ausgebildet, dass sie eine
Prüfung
mit der Sicherheitsverwaltung an dem betreffenden SIP-Klienten ausführen, bevor
sie den Rest des Verfahrens ausführen.
In dem Fall, dass Java-Byte-Code,
Java-Applets oder mobile Java-Agenten verwendet werden, sind die
Sicherheitsmechanismen vorzugsweise so ausgelegt, dass sie den Standard-Java-Sicherheitspraktiken
gehorchen.
-
Ein
Beispiel eines Algorithmus für
einen Sicherheitsmechanismus ist wie folgt:
- – Indiziere
die Matrix für
Benutzer-definierte Sicherheitsprüfungen gegen diese Operation.
- – Extrahiere
das der Sicherheitsaktion entsprechende Verfahren, das von dem Benutzer
mit Daten gefüllt
wurde.
- – Führe dieses
Sicherheitsmechanismus-Verfahren aus.
- – Wenn
das Ergebnis des Sicherheitmechanismus-Verfahren ein „weitermachen" ist, so setze fort
und rufe das SIP API-Verfahren auf.
- – Anderenfalls
zeige eine Sicherheit-Verweigert-Mitteilung an und kehre ohne Aufruf
des SIP API-Verfahrens zurück.
-
Aktionen,
für die
ein Benutzer Daten für
eine vorgegebene SIP-Operation eingeben kann, schließen Folgendes
ein:
- – Erlaube
immer
- – Verweigere
immer
- – Lasse
bedingt zu
- – Verweigere
bedingt
- – Aufforderung
ja/nein
- – Ermögliche und
zeige Warnung oder Information an
-
Ein
Beispiel der Verwendung des verbesserten SIP-Protokolls zur Schaffung
eines Dienstes zum automatischen Aufbau von Multimedien-Konferenzen
wird nunmehr beschrieben.
-
Konferenzverbindungs-System
-
Unter
Verwendung des verbesserten SIP-Protokolls wird ein Konferenzverbindungs-Dienst geschaffen,
durch den ein einzelner Vorsitzender in der Lage ist, die Konferenz
dadurch aufzubauen, dass er SIP-INVITE- (Einladungs-) Mitteilungen
aussendet. Das Verfahren ist für
Multimedien-Konferenzen geeignet. Den INVITE-Mitteilungen wird Computer-Software-Code
zugeordnet, der auf den Host-Maschinen der eingeladenen Teilnehmer abläuft, um
die Konferenzverbindung aufzubauen. Dies vereinfacht sehr stark
den Prozess des Aufbaus einer Konferenzverbindung, wie z. B. einer
Multimedien-Konferenzverbindung.
-
Beispielsweise
kann der Computer-Software-Code, der den verbesserten SIP-INVITE-Mitteilungen
zugeordnet wird, so ausgebildet werden, dass er Verbindungen von
jeder Teilnehmer-Maschine zu mehreren Video-Quellen und einer elektronischen Bildschirmtafel
aufbaut, die gemeinsam für
das Treffen benutzt wird. Der Computer-Software-Code kann weiterhin so ausgebildet
werden, dass er einen Web-Browser zu einer für das Treffen wesentlichen Seite
auf jeder Teilnehmer-Maschine startet. Außerdem ist dieser Computer-Software-Code
in der Lage, alle Audio-Pfade zwischen allen den Teilnehmern mit allen
mit Ausnahme des Vorsitzenden anfänglich stummzuschalten. Außerdem ist
dieser Computer-Software-Code in der Lage, unterschiedliche Fähigkeiten
der Host-Maschinen der einzelnen Teilnehmer zu berücksichtigen.
Wenn beispielsweise ein bestimmter Teilnehmer, wie z. B. ein mobiler
Teilnehmer lediglich Audio-Fähigkeiten
hat, während
ein vollständig
mit Multimedia-Möglichkeiten
ausgerichteter Anrufer Audio-Video-, Daten- und Web-Fähigkeiten hat. Damit diese
Fähigkeiten
berücksichtigt
werden können,
zeigen, Teilnehmer ihre Fähigkeiten
in SIP-Mitteilungen in der erforderlichen Weise an.
-
Der
Multimedien-Konferenzdienst ist besonders vorteilhaft vom Gesichtspunkt
des Teilnehmers aus. Alles was ein Teilnehmer tun muss, ist den
ankommenden Anruf und die SIP-INVITE-Mitteilung anzunehmen, und
alles Folgende wird für
ihn automatisch erledigt. Alternativ kann der Teilnehmer eine Konferenznummer
anrufen und eine SIP-Mitteilung als Antwort erhalten, der der erforderliche
Computer-Software-Code
zugeordnet ist. Die Konferenznummer kann die Nummer eines bestimmten
Benutzer-Klienten oder eines zentralen Konferenzdienst-Anbieters
sein.
-
Vorzugsweise
werden Sicherheitsmechanismen bei dem Multimedien-Konferenzdienst verwendet,
wie dies weiter oben beschrieben wurde.
-
6 ist ein Ablaufdiagramm
eines Verfahrens, bei dem ein zentrales Konferenzdienst-System verwendet
wird und bei dem Java-Applets den verbesserten SIP-Mitteilungen
zugeordnet werden. Die erste Stufe beinhaltet, dass ein Benutzer,
der einer Konferenzverbindung beitreten möchte, eine SIP-INVITE-Mitteilung
an das Konferenzdienst-System von seinem oder ihrem Endgerät aus (Kasten 60 in 6) sendet. Dieser Anruf
wird von dem Konferenzdienst-System empfangen, das dann eine Bestätigungsmitteilung
ACK zurück
an das Benutzer-Endgerät
(Kasten 61 in 6)
liefert. Diese ACK-Mitteilung ist mit einer oder mehreren Java-Applets
verbunden, die Verfahren von der vorstehend erläuterten API enthalten. Der
SIP-Klient des Benutzers empfängt die
ACK-Mitteilung, verarbeitet das oder die zugehörigen Java-Applets und läßt diese
unter Verwendung seiner zugehörigen
virtuellen Java-Maschine ablaufen (Kasten 62, 6).
-
Das
oder die Java-Applets) fragen die exakten Fähigkeiten des SIP-Klienten
und der Host-Maschine des Benutzers ab und berücksichtigen diese Fähigkeiten,
leiten Sitzungen für
irgendwelche Audio-, Video- und Datenströme ein, die der Konferenz in
passender Weise unter Berücksichtigung
der Fähigkeiten
zugeordnet werden (Kasten 63 nach 6). In Abhängigkeit davon, wie der Benutzer
seine oder ihre Sicherheitsmechanismen eingestellt hat, kann er
oder sie zu einer Eingabe aufgefordert werden, bevor die Sitzungen
für die
verschiedenen Medienströme
aufgebaut werden. Wenn das oder die Java-Applets) die SIP-Sitzungen
einleiten (Kasten 63 nach 6),
können
sie auch so angeordnet werden, dass sie diese SIP-Sitzungen derart
aufbauen, dass alle Teilnehmer mit Ausnahme des Vorsitzenden stummgeschaltet
sind. Dies ist besonders vorteilhaft, weil dann der Vorsitzende
ohne weiteres in der Lage ist, den Beginn des Treffens anzukündigen und
das Treffen in einer organisierten Weise zu leiten.
-
Das
oder die Java-Applets) können
weiterhin so angeordnet sein, dass sie Einzelheiten einer Web-Seite
von jedem Teilnehmer an einen Vorsitzenden oder an das Konferenzdienstsystem
leiten. Beispielsweise kann eine Web-Seite, die biographische Einzelheiten
jedes Teilnehmers angibt, an einen Vorsitzenden weitergeleitet werden,
der diese dann für die
anderen Teilnehmer verfügbar
macht. In ähnlicher
Weise können
die digitalen Photographien jedes Teilnehmers an den Vorsitzenden
durch die Java-Applets weitergeleitet werden. Es ist weiterhin möglich, dass
die Java-Applets eine Beitrittsmitteilung von jedem Teilnehmer anfordern,
die dann automatisch durch die Java-Applets an einen Vorsitzenden
weitergeleitet wird. Die Beitrittsmitteilung kann Sicherheitsanforderungen
enthalten, die für
jeden Teilnehmer spezifisch sind.
-
In
Abhängigkeit
von der Anzahl der Teilnehmer an der Konferenz kann eine Konferenz-Brückeneinrichtung
verwendet werden, wie dies in der Technik bekannt ist. Alternativ
wird eine Software-basierte Technik zur Verbindung der Teilnehmer
an der Konferenz verwendet.
-
Ein
Beispiel eines Algorithmus, der in dem oder den Java-Applets) des
unmittelbar vorstehend beschriebenen Verfahrens kodiert ist, ist
wie folgt:
- – Lese die Mitteilung, der
das Java-Applet zugeordnet war, um die Adressen der verschiedenen Ströme in der
Verbindung zu gewinnen.
- – Frage
die Fähigkeiten
des SIP-Clienten ab.
- – Frage
die Fähigkeiten
des Host-Systems ab.
- – Auf
der Grundlage der vorstehenden Information für jeden Medientyp und jede
Anwendung, die auf der Konferenz-Verbindung zur Verfügung steht:
Wenn
dieser Anwendungs- und Medientyp auf dem SIP-Clienten unterstützt wird,
leite eine SIP-Sitzung zwischen dem SIP-Clienten und dem betreffenden
SIP-Clienten für
diesen Medienstrom ein.
- – Leite
eine SIP-Mitteilung an das zentrale Konferenzdienstsystem ein, das
die Anzahl und Arten der aufgebauten Ströme im einzelnen angibt.
-
7 ist ein Ablaufdiagramm
eines Verfahrens zum Aufbau einer Konferenzverbindung zwischen zwei
oder mehr Teilnehmern, wobei jeder Teilnehmer einen SIP-Clienten
und einen Host-Prozessor umfasst, wobei das Verfahren die folgenden Schritte
umfasst:
- – Zuordnen
von Computer-Software-Code zu einer SIP-Mitteilung (Kasten 70 nach 7);
- – Senden
der SIP-Mitteilung an jeden der Teilnehmer (Kasten 71 nach 7);
- – Ausführen des
Computer-Software-Codes an jedem der Host-Prozessoren (Kasten 72 nach 7).
-
1 zeigt weiterhin ein System
zum automatischen Aufbau einer Konferenzverbindung zwischen zwei
oder mehr Teilnehmern 10, wobei jeder Teilnehmer einen
SIP-Clienten 11 und einen Host-Prozessor 13 umfasst,
wobei das System folgendes umfasst: einen Prozessor 13 zur
Zuordnung von Computer-Software-Code
zu einer SIP-Mitteilung und zum Senden dieser SIP-Mitteilung an
jeden der Teilnehmer 10; wobei jeder der Host-Prozessoren 13 so
angeordnet ist, dass er den verwendeten Computer-Software-Code ausführt, wenn
die SIP-Mitteilung empfangen wird.
-
In
dem Fall, dass ein Konferenzsystem verwendet wird, sendet dieses
System die SIP-Mitteilungen an jeden Teilnehmer als Ergebnis von
Anforderungs-Anrufen von diesen Teilnehmern an das System. Wenn
ein Vorsitzender die Verbindung aufbaut, sendet der Vorsitzende
SIP-Mitteilungen an jeden Teilnehmer.
-
Sammelgruppen-System
-
Ein
Beispiel der Verwendung des verbesserten SIP mit mobilen Java-Agenten
wird nunmehr beschrieben. In diesem Beispiel wird ein Dienst bereitgestellt,
bei dem ein automatisiertes System mehrere Telefone innerhalb einer
definierten Gruppe (wie zum Beispiel ein Team in einem Büro) anruft,
bis an einem dieser Telefone der Hörer abgenommen wird. Beispielsweise
können
die Knoten des Kommunikationsnetzwerkes in 1 jeweils ein Telefon bereitstellen,
das durch Software in den SIP-Clienten 11 realisiert
ist. Jedes Telefon innerhalb der Gruppe 1 umfasst einen
SIP-Clienten 11 und
einen Host-Prozessor 13, wie dies in 1 gezeigt ist, und die Telefone sind
miteinander über
ein Kommunikationsnetzwerk 1 gemäß 1 verbunden. Die Host-Prozessoren umfassen
jeweils eine mobile virtuelle Java-Agenten-Maschine.
-
Ein
Benutzer, der ein automatisierter Dienst oder ein Mensch sein kann,
der ein Endgerät
verwendet, das mit dem Kommunikationsnetzwerk 1 verbunden
ist, ruft eines der Telefone 10 innerhalb der definierten
Gruppe an. Wenn das angerufene Telefon nicht nach einer festgelegten
Anzahl von Ruftönen oder
einem Zeitablauf abgehoben wird, so erzeugt die Software an dem
SIP-Clienten 11 des angerufenen Telefons einen mobilen
Java-Agenten, ordnet diesem eine SIP-Mitteilung zu und sendet die SIP-Mitteilung
an einen vorher definierten zweiten SIP-Clienten. Dieser zweite
SIP-Client ist eines der Telefone innerhalb der definierten Gruppe 1.
-
Der
zweite SIP-Client empfängt
die SIP-Mitteilung, der der mobile Java-Agent zugeordnet ist. Der
mobile Java-Agent führt
sich dann selbst auf der virtuellen mobilen Java-Agent-Maschine
aus, die dem zweiten SIP-Clienten zugeordnet ist. Der mobile Java-Agent
ist so ausgebildet, dass er einen Rufton an das zweite Telefon anlegt
und die Identifikationseinzelheiten des zweiten Telefons abfragt
und diese an den ursprünglichen
Anrufer zurücksendet. Wenn
der Anrufer einen Host-Prozessor verwendet, mit ein Anzeigesystem
verbunden ist, so wird die Information über den Anruf und die Tatsache,
dass er an das zweite Telefon in der definierten Gruppe weitergeleitet
wurde, von dem mobilen Java-Agenten an diese Anzeige gesandt.
-
Wenn
der zweite SIP-Client nicht nach einer festgelegten Anzahl von Ruftönen oder
einer festgelegten Zeit antwortet, so wiederholt der zweite SIP-Client
das Verfahren, das der erste SIP-Client in der vorstehend beschriebenen
Weise ausgeführt
hat. Der zweite SIP-Client fügt
jedoch Information über die
Tatsache ein, dass der Anruf erneut weitergeleitet wurde.
-
Nachdem
das Verfahren eine vorgegebene Anzahl von Malen wiederholt wurde,
und wenn der Anruf nicht beantwortet wurde, so wird der Anruf an den
ersten SIP-Clienten zurückgesandt,
der angerufen wurde. Eine Anzeige der gewählten Route und der Tatsache,
dass der Anruf nicht beantwortet wurde, wird an diesen ersten SIP-Clienten
geliefert, wenn eine Anzeige zur Verfügung steht.
-
Wenn
ein Anruf beantwortet wird, so wird Information über die gewählte Route und die Identität des antwortenden
SIP-Clienten an den Anrufer zurückgesandt,
der ein automatisierter Dienst sein kann.
-
10 zeigt ein Verfahren zur
Weiterleitung eines Anrufes von einem ersten SIP-Clienten zu einem zweiten SIP-Clienten,
wobei jedem SIP-Clienten ein Host-Prozessor zugeordnet ist, wobei das
Verfahren die folgenden Schritte umfasst:
- – Empfangen
eines Anrufs an dem ersten SIP-Clienten und, wenn dieser Anruf nicht
beantwortet wird, Zuordnen von Computer-Software-Code zu einer SIP-Mitteilung, wobei
der Computer-Software-Code so ausgebildet ist, dass er einen Anruf weiterleitet
(Kasten 100, 10);
- – Senden
der SIP-Mitteilung von dem ersten Clienten zu einem festgelegten
zweiten SIP-Clienten (Kasten 101, 10), und
- – Ausführen der
Computer-Software unter Verwendung des Host-Prozessors, der dem
zweiten SIP-Clienten zugeordnet ist, derart, dass der Anruf an den
zweiten SIP-Clienten weitergeleitet wird (Kasten 102, 10).
-
Clienten-Testsystem
-
Ein
weiteres Beispiel der Verwendung von mobilen Java-Agenten mit verbessertem
SIP beinhaltet ein Testsystem für
eine vordefinierte Gruppe von SIP-Clienten. Als Beispiel sei das
Netzwerk von SIP-Clienten nach 1 betrachtet.
Die SIP-Clienten 11 sind miteinander verbunden, um ein
Kommunikationsnetzwerk 1 zu bilden, wie dies in 1 gezeigt ist. Jedem SIP-Clienten 11 ist
ein Host-Prozessor 13 zugeordnet, der eine virtuelle Java-Agenten-Maschine
umfasst.
-
Ein
Testsystem (beispielsweise eine Software, die sich an einem der
Knoten 10 in dem Kommunikationsnetzwerk 1 befindet),
und das ein automatisierter Software-Dienst sein kann, erzeugt einen mobilen
Java-Agenten, ordnet diesen einer SIP-Mitteilung zu und sendet diese SIP-Mitteilung
an einen der SIP-Clienten 11 in der Gruppe. Der mobile
Java-Agent läuft
auf dem empfangenden SIP-Clienten ab und baut ein oder mehrere Testsitzungen
auf. Die Ergebnisse dieser Testsitzungen werden von dem mobilen
Java-Agenten in seinem privaten Bereich zusammen mit irgendwelcher
anderen erforderlichen Information gespeichert. Der mobile Java-Agent
ordnet sich selbst dann einer anderen SIP-Mitteilung zu und sorgt
dafür,
dass diese SIP-Mitteilung zu einem anderen SIP-Clienten in der Gruppe
gesandt wird. Wenn die SIP-Mitteilung einen anderen SIP-Clienten erreicht,
so wird der Prozess der Gewinnung von Information wiederholt, so
dass weitere Information zu den privaten Daten des mobilen Java-Agenten
hinzugefügt
wird. Eine weitere SIP-Mitteilung wird zum Senden des mobilen Java-Agenten
an einen weiteren SIP-Clienten benutzt, usw., bis alle SIP-Clienten in
der Gruppe besucht wurden. Sobald alle SIP-Clienten in der Gruppe
durch den mobilen Java-Agenten besucht wurden, ordnet sich dieser
Agent selbst einer SIP-Mitteilung zu, um zu dem ursprünglichen SIP-Clienten
zurückgesandt
zu werden. Auf diese Weise ist der mobile Java-Agent in der Lage,
die Ergebnisse seiner Tests an den Ursprungs-SIP-Clienten zu berichten.
Der mobile Java-Agent kann weiterhin so angeordnet werden, dass
er weitere Aktionen einleitet, um irgendwelche Fehler zu beseitigen,
die erfindet, während
er sie sucht.
-
9 zeigt ein Verfahren zum
schnellen Testen von Mitgliedern einer Gruppe von SID-Clienten, wobei
jedem Clienten ein Host-Prozessor zugeordnet ist, wobei das Verfahren
die folgenden Schritte umfasst:
- – Zuordnen
von Computer-Software-Code, der für das Testen geeignet ist,
zu einer SIP-Mitteilung (Kasten 90, 9);
- – Senden
der SIP-Mitteilung zu einem der SIP-Clienten (Kasten 91, 9);
- – Ausführen der
Computer-Software an dem Host-Prozessor, der diesem SIP-Clienten zugeordnet
ist, um Testergebnisse zu gewinnen (Kasten 92, 9); und
- – Wiederholen
der Schritte (ii) bis (iii) für
jeden der anderen SIP-Clienten in der Gruppe (Kasten 93, 9).
-
Aufrüstung oder
Ersatz von SIP-Clienten
-
Es
sei ein Fall betrachtet, bei dem es erforderlich ist, SIP-Clienten
aufzurüsten
oder zu ersetzen, die die hier beschriebene verbesserte Version des
SIP unterstützen.
Dies kann automatisch wie folgt ausgeführt werden:
-
Die
Software für
den Ausbau oder den neuen SIP-Clienten wird einer SIP-Mitteilung
zugeordnet, beispielsweise durch Einbauen der Software in ein Java-Applet
und durch Hinzufügen
dieses Applets zu einer SIP-Mitteilung. Diese SIP-Mitteilung wird
dann an alle die SIP-Clienten gesandt, die aufgerüstet oder ersetzt
werden sollen. Bei Empfang der SIP-Mitteilung an einem SIP-Clienten
lässt der
vorhandene SIP-Client den Software-Code ablaufen, um die Aufrüstung oder
den Ersatz zu bewirken. Das Ausmaß, in dem die Aufrüstung oder
der Ersatz bewirkt wird, hängt
von den Sicherheitsspezifikationen und der Art des SIP-Clienten
ab. Unter Verwendung des verbesserten SIP-Protokolls auf diese Weise,
wird eine Aufrüstung
oder ein Ersatz einer Anzahl von SIP-Clienten in schneller und einfacher
Weise erzielt.
-
8 zeigt ein Verfahren zur
Aufrüstung oder
zum Ersatz von miteinander verbundenen SIP-Clienten, wobei jedem
IP-Clienten ein Host-Prozessor zugeordnet ist, und das Verfahren
die folgenden Schritte umfasst:
- – Zuordnen
von Computer-Software-Code, der für die Aufrüstung oder den Ersatz geeignet
ist, zu einer SIP-Mitteilung (Kasten 80, 8);
- – Senden
der SIP-Mitteilung an jeden der SIP-Clienten (Kasten 81, 8); und
- – Ausführen der
Computer-Software an jedem der Host-Prozessoren (Kasten 82, 8).
-
Es
gibt einen Bereich von Anwendungen innerhalb des Schutzumfangs der
Erfindung. Diese schließen
Situationen ein, in denen es erforderlich ist, zwischen Einheiten
unter Verwendung eines verbesserten SIP-Protokolls zu kommunizieren.
Beispielsweise, um es zu ermöglichen,
Multimedien-Konferenzen mit einem Minimum an Eingabe von den Teilnehmern
aufzubauen, um einen automatisierten Test von verschiedenen Knoten
in einem Kommunikationsnetzwerk durchzuführen, oder einen Dienst bereitzustellen,
durch den bei fehlender Beantwortung eines Anrufs der Anruf automatisch
zu anderen Mitgliedern einer bestimmten Gruppe weitergeleitet wird.
Ein weiteres Beispiel betrifft eine Verbindungssteuerung einer dritten
Partei, bei der eine dritte Partei eine Kommunikationssitzung für zwei andere
Parteien aufbaut. Die dritte Partei kann ein automatisierter Dienst,
wie zum Beispiel eine Web-Seite sein. Beispielsweise kann ein Software-Dienst
so angeordnet werden, dass er Aktienpreise überwacht, und er kann so angeordnet
werden, dass wenn ein Schwellenwert-Preis erreicht wird, eine Kommunikationssitzung zwischen
einem Teilnehmer und seinem oder ihrem Börsenmakler-Dienst aufgebaut
wird. In einem derartigen Beispiel können Java-Applets oder anderer Software-Code,
der verbesserten SIP-Mitteilungen zugeordnet wird, dazu verwendet
werden, Formblätter
oder andere Dokumente vorzubereiten, um den Verkauf oder den Kauf
von Aktien anzufordern.