8 Tool-Manager

8.1 - Ein neues Multimedia-Tool einrichten
8.2 - Der Toolname
8.3 - Anzahl der UDP-Ports
8.4 - Das Steuersignal
8.5 - Das TCL-Skript anpassen
8.6 - Ein Tool testen
8.7 - Die Beschriftung der Toolwahlknöpfe
8.8 - Ein Multimedia-Tool entfernen
8.9 - Die Tooldefinition ändern
8.10 - Toolliste abspeichern

Confman verwendet externe Multimedia-Tools, die über UDP-Ports kommunizieren, so z.B. die MBone-Tools. Der Tool-Manager ermöglicht es, dem Konferenzsystem ein Multimedia-Tool als verfügbar zu melden. Eine Toolspezifikation besteht aus dem Namen des Tools, der Anzahl benutzter Ports, des Steuerungssignals und des Start-TCL-Skriptes. Dem TCL-Skript stehen Variablen, wie Benutzernamen, Serverhost, Portadressen, Geometriedaten usw. zur Verfügung. Der Tool-Manager generiert ein Standard-TCL-Skript, das nur noch angepaßt werden muß. Nach einer neuen Toolspezifikation kann das Tool direkt über den Tool-Manager getestet werden.

8.1 Ein neues Multimedia-Tool einrichten

Installieren Sie zunächst die Binärdatei des neuen Multimedia-Tools. Das Verzeichnis, in dem Sie die Binärdatei installieren, muß in der Variablen $PATH angegeben sein. Bringen Sie in Erfahrung, wieviele UDP-Ports das Tool nutzt. Nun müssen Sie sich noch für ein Steuersignal entscheiden, das dem Tool gesandt wird, wenn eine Konferenz in den HALTED-Status geht. Geben Sie kein Steuersignal an, wird dem Tool auch keines gesendet. Geben Sie den Toolnamen, die Portanzahl und falls nötig das Steuersignal, durch ein Komma von der Portangabe getrennt, in dem Eingabefeld unter der Toolliste ein. Achten Sie darauf, daß vor einer Neudefinition kein Tool in der Toolliste aktiviert ist. Wollen Sie beispielsweise das Tool sample einrichten, das 2 UDP-Ports belegt und das bei einer Konferenzpause beendet werden soll, müßten Sie folgende Zeile eingeben:

sample 2, TERM

Der genaue Syntax der Tooldefinition lautet wie folgt:

toolname [ nports [ Ports ] [ , TERM | STOP | - ] ]

Standardmäßig werden, falls Sie keine Portanzahl und kein Signal angeben, 2 Ports und kein Signal angenommen. Schließen Sie die Eingabe mit der Enter-Taste ab oder drücken Sie den Plusknopf. Es wird nun ein Standard-TCL-Skript erzeugt, daß Sie ggf. anpassen müssen. Anschließend sollten Sie das Tool testen. Der Test erfolgt durch Drücken des entsprechenden Knopfes in der Auswahlbox rechts unten.

8.2 Der Toolname

Die Bedingung zur Nutzung eines Multimedia-Tools während einer Konferenz ist, daß die Konferenzpartner über das gleiche Tool verfügen. Confman tauscht für alle Toolaktivitäten die Toolnamen aus. Daraus ergibt sich, daß die Konferenzpartner dieselben Toolnamen vergeben müssen. Es ist daher sinnvoll als Toolnamen immer den Namen der Binärdatei zu benutzen. Für die gängigen Tools wäre dies vat, nv, vic, wb, ivs. Der Name, der in den Auswahlboxen erscheint kann dagegen individuell bestimmt werden. Er kann über die X- Ressourcemethode angepaßt werden.

8.3 Anzahl der UDP-Ports

Die Anzahl der von einem Tool genutzten UDP-Ports ist in den Manualpages des Tools beschrieben. Die meisten Tools nutzen maximal 2 UDP-Ports. Nehmen Sie also im Zweifelsfall 2 UDP-Ports an. Ist die Angabe größer als die vom Tool tatsächlich genutzte Portanzahl, wirkt sich dies nicht störend aus, andersherum wird das Tool nicht korrekt arbeiten. Sie können die Portanzahl jederzeit ändern, indem Sie das Tool in der Toolliste auswählen und die Eingabezeile unter der Toolliste editieren.

8.4 Das Steuersignal

Wenn eine Konferenz angehalten wird, z.B. bei einer verdeckten Rückfrage, oder wenn Sie während einer Konferenz eine weitere Konferenzeinladung annehmen, werden die Fenster der Tools entfernt, um ein Chaos auf dem Bildschirm zu vermeiden. Ein Entfernen der Fenster reicht oft nicht aus, da die Tools Ressourcen des Rechners dauerhaft belegen können, was das Starten der Tools in einer weiteren Konferenz stören kann. Um dieses Problem zu beheben, können Sie ein Steuersignal angeben, das dem Tool parallel zum Entfernen der Fenster gesendet wird.

Die möglichen Signale sind:

TERM
TERM steht für TERMINATE. Das Tool wird beendet, dadurch ist sichergestellt, das alle vom Tool belegten Ressourcen freigegeben werden. Der Nachteil dieses Signals ist, daß das Tool beim Wiederaktivieren der Konferenz neu gestartet werden muß, was das Umschalten stark verzögern kann.

STOP
Wird das STOP-Signal gesendet, behält das Tool seine belegten Ressourcen, es wird aber angehalten, so daß keine Daten mehr ausgetauscht werden können.

-
Ein Minuszeichen bedeutet, daß kein Signal gesendet werden soll. Das Programm bleibt also aktiv. Es werden nur die Fenster des Tools entfernt.

Die sicherste Methode ist sicherlich das TERM-Signal zu senden, sie ist aber nicht die schnellste.

8.5 Das TCL-Skript anpassen

TCL steht für Tool-Command-Language, es ist eine Interpretersprache. Sie wird bei Confman für den Start der Multimedia-Tools benötigt. Confman übergibt dem Interpreter die für den Toolstart erforderlichen Parameter. Im einzelnen sind dies:

Die Konferenzdaten:

title
Die Titelzeichenfolge der Konferenz

ttl
Der Time-To-Live-Wert -- er bestimmt bei einer Multicast-Konferenz wieviele Router eine gesandtes Paket passieren darf. ttl ist immer der Wert, den der Konferenzleiter in seinem Konfigurationsdialog des Konferenz-Managers eingestellt hat.

key
Der Sitzungsschlüssel -- unterstützt ein Multimedia-Tool die Verschlüsselung der Datenströme, kann key übergeben werden. key ist immer der Schlüssel, den der Konferenzleiter in seinem Konfigurationsdialog des Konferenz-Managers eingestellt hat.

user
Die eigene Mail-Adresse -- sie kann z.B. als Sitzungsname verwendet werden.

host
Der Host des Konferenzpartners im Falle einer Zweierkonferenz, der Server-Host, falls die Konferenz mehr als zwei Teilnehmer hat, bzw. die Multicast-Adresse. Die Multicast-Adresse bestimmt der Konferenzleiter über den Konfigurationsdialog des Konferenz-Managers.

Die Tooldaten:

geometry
Falls das Tool in einer Konferenz schon einmal lief, enthält die Variable geometry Position und Größe des Toolfensters vor dem Beenden.

port
Die UDP-Portbasisadresse, über die das Tool (mit einem anderen bzw. dem Server) kommuniziert.

Auf die Variablen können Sie zugreifen, indem Sie den Variablennamen den globalen Variablenfeldern conf_data bzw. tool_data als Parameter übergeben.

Richten Sie z.B. ein Tool mit Namen sample ein, wird das folgende Standard-TCL-Skript erzeugt:

proc start_sample {} {
global conf_data tool_data

set tool sample
set dest [format "%s/%s" $conf_data(host) $tool_data(port)]
set title $conf_data(title)
set user $conf_data(user)
set ttl $conf_data(ttl)
set key $conf_data(key)
set geo $tool_data(geometry)

if {[llength $key] >0} {
if {[llength $geo] >0} {
exec $tool -N $user -C $title -t $ttl -K $key -g $geo $dest &
} else {
exec $tool -N $user -C $title -t $ttl -K $key $dest & }
} else {
if {[llength $geo] >0} {
exec $tool -N $user -C $title -t $ttl -g $geo $dest &
} else {
exec $tool -N $user -C $title -t $ttl $dest & }
}
}

Die erste Zeile leitet die Prozedurdefinition ein. Der Prozedurname ergibt sich aus der Zeichenfolge start_ gefolgt von dem Toolnamen.

Die zweite Zeile definiert die globalen Variablenfelder conf_data und tool_data, über die Sie auf die einzelnen Variablen, die Confman übergibt, zugreifen können.

Die nachfolgenden Zeilen, die mit set beginnen, sind Zuweisungen aller von Confman übergebenen Variablen zu internen Variablen.

Die meisten Tools benötigen die Zieladresse in der Form host/port. Dafür wird die interne Variable mit Namen dest definiert und die Zeichenfolge über die format Anweisung generiert.

Anschließend wird geprüft, ob Confman einen Sitzungsschlüssel in der Variablen key übergeben hat. Ist dies der Fall, wird Sie dem Tool als Parameter -K key weitergereicht. Wurde kein Sitzungsschlüssel übergeben, wird das Tool ohne Verschlüsselungsparameter gestartet. Gleiches gilt für den Parameter geometry. Der Geometrieparameter ermöglicht das Plazieren des Tool-Fensters an der selben Position, falls es während einer Konferenz beendet und erneut gestartet wird. Der Geometrieparameter wird bei den einzelnen Tools sehr unterschiedlich übergeben. Voreingestellt ist -g. Sollte die Geometrie bei einem Tool nicht übergeben werden können, sind alle Zeilen, die die Übergabe des Parameters $geo betreffen, zu löschen. Das Skript würde dann wie folgt aussehen:

proc start_sample {} {
global conf_data tool_data

set tool sample
set dest [format "%s/%s" $conf_data(host) $tool_data(port)]
set title $conf_data(title)
set user $conf_data(user)
set ttl $conf_data(ttl)
set key $conf_data(key)
set geo $tool_data(geometry)

if {[llength $key] >0} {
exec $tool -N $user -C $title -t $ttl -K $key $dest & }
} else {
exec $tool -N $user -C $title -t $ttl $dest & }
}
}

Der Befehl exec, gefolgt vom Toolnamen nebst Parametern, leitet den Toolstart ein. Das letzte Zeichen der Befehlszeile muß immer ein & sein. Das & veranlaßt den Interpreter, das Tool in den Hintergrund zu starten. Andernfalls würde Confman nicht weiter arbeiten, bis das Tool wieder beendet wird.

Die Parameter, die dem Tool übergeben werden müssen, können Sie den zugehörigen Manualpages entnehmen. Oft gibt ein parameterloser Aufruf des Tools aus einer Shell Auskunft über die erforderlichen Parameter.

Ein \ unterdrückt den Zeilenvorschub des Texteditors. Dies Zeichen müssen sie am Zeilenende setzten, wenn Sie überlange Befehlszeilen über mehrere Zeilen setzen wollen. Haben Sie alle Anpassungen vorgenommen, müssen Sie den Knopf Test & Apply drücken.

Haben Sie einen Syntaxfehler in Ihrem TCL-Skript, wird eine Fehlermeldung generiert. Außerdem ist dann der zum Tool gehörende Zustandschalter inaktiv. Bei fehlerfreiem Skript wird der zum Tool gehörende Zustandsschalter aktiv.

8.6 Ein Tool testen

Ist das TCL-Skript fehlerfrei, können Sie das Tool testen. Dazu drücken Sie einmal den zum Tool gehörenden Zustandschalter rechts unten. Das Tool wird gestartet. Achten Sie auf etwaige Fehlermeldungen, die im Standard-Output oder in der Console ausgegeben werden. Wurde das Tool erfolgreich gestartet, drücken Sie den Zustandschalter ein weiteres mal. Es wird nun das angegebene Signal gesendet und die Fenster werden entfernt. Ein abermaliges Drücken des Zustandsschalters startet das Tool wieder. An dieser Stelle können Sie testen, ob die Geometriedaten korrekt ausgewertet werden, falls Sie dem Tool ein TERM-Signal senden. Um zu testen, ob es zu Konflikten kommt, wenn ein Tool kein Signal oder das STOP-Signal erhält und es in einer weiteren Konferenz benutzt wird, müßten Sie das Tool entweder per Hand aus einer Shell starten oder über einen zweiten Confman. Der verfügbare Test kann nicht die Funktionssicherheit des Tools während einer Konferenz gewährleisten, Sie sollten immer eine Testkonferenz mit neuen Tools durchführen.

8.7 Die Beschriftung der Toolwahlknöpfe

Die Beschriftung der Toolwahlknöpfe kann nach Belieben verändert werden. Dazu müssen Sie lediglich eine X- Ressourcedatei erstellen. Der Resource-Eintrag eines Tools lautet dann:

*toolname.labelString: Zeichenfolge

Eine Anpassung für ein Tool mit dem Namen sample könnte wie folgt aussehen:

*sample.labelString: Beispiel-Tool

Die Ressourcedatei muß den Klassennamen von Confman tragen, er lautet Confman. Legen Sie die Ressourcedatei in einem der Suchpfade des Resource-Managers ab.

8.8 Ein Multimedia-Tool entfernen

Ein Multimedia-Tool wird entfernt, indem Sie das gewünschte Tool aus der Toolliste auswählen und anschließend den Minusknopf betätigen. Mit Hilfe des Plusknopfes können Sie das Entfernen rückgängig machen.

8.9 Die Tooldefinition ändern

Die Tooldefinition können Sie jederzeit ändern, indem Sie das betreffende Tool aus der Toolliste auswählen und die Angaben im Textfeld unter der Toolliste oder im TCL-Skriptfenster edieren. Änderungen im Textfeld unter der Toolliste müssen Sie durch Drücken der Enter-Taste oder Anklicken des Plusknopfes bestätigen. Änderungen des TCL-Skriptes müssen Sie durch Drücken des Knopfes Test & Apply bestätigen. Alle Änderungen werden erst gültig, wenn Sie die Toolliste abspeichern. Wählen Sie dazu den Menüpunkt Save aus dem Filemenü.

8.10 Toolliste abspeichern

Erst wenn die Toolliste abgespeichert wird, werden alle Änderungen oder Erweiterungen gültig. Zum Abspeichern der Toolliste wählen Sie den Menüpunkt Save aus dem File-Menü. Achten Sie darauf, daß Änderungen der Tooldefinitionen sich auch auf die Tools einer laufenden Konferenz auswirken. Entfernen Sie beispielsweise während einer Konferenz ein Tool aus der Toolliste wird das Tool auch aus einer laufenden Konferenz entfernt.


(C) 1995 Lehrgebiet Rechnernetze und Verteilte Systeme, Universität Hannover, Germany