# Das Handbuch zu &ktalkd;

## Einleitung

&ktalkd; ist ein erweiterter `talk`-Dämon - ein Programm, mit dem eingehende `talk`-Anfragen gemeldet werden und von Ihnen mit einem `talk`-Programm beantwortet werden können.

Ein wichtiger Hinweis: &ktalkd; wurde konzipiert für einen Ein-Benutzerarbeitsplatz und sollte nicht auf einem Mehr-Benutzercomputer verwendet werden: da &ktalkd; die Konfigurationsdateien eines Benutzers einliest, kann man den `talk`-Dämon veranlassen, jeden beliebigen Befehl auszuführen. Man sollte &ktalkd; nicht auf einem Computer verwenden, auf dem Personen Benutzerkonten haben, die nicht vollständig vertrauenswürdig sind.

Bezeichnungskonvention: In diesem Handbuch werde ich Sie als Angetalkter bezeichnen, wenn jemand versucht, mit Ihnen zu talken.

&ktalkd; hat die folgenden Eigenschaften :

Anrufbeantworter

- Wenn der Angetalkte nicht am System angemeldet ist oder nach der zweiten Meldung nicht antwortet, wird ein Anrufbeantworter gestartet, der eine Nachricht entgegen nimmt und diese dem Angetalktem per Email zuschickt.

Klang

- Falls gewünscht, wird die Anfrage zusätzlich mit einem Klang gemeldet.

X Meldung

- Wenn &ktalkd; mit &kde; Unterstützung kompiliert wurde, dann wird zur Meldung `ktalkdlg`, ein KDE Dialog, benutzt. Wenn &ktalk; läuft, wird es gefragt, ob dieses die Anfrage selbst melden will. (Neu seit 0.8.8)

Meldungen auf mehreren Displays

- Wenn Sie von einem entfernten Rechner aus angemeldet sind, (z.B. mit dem Kommando ``export` `DISPLAY`=`...``), wird die Meldung auch auf diesem Display ausgegeben. Antworten Sie auf dem Display, auf dem Sie talken wollen! Wenn sie außerdem in einem Text-Terminal angemeldet sind, und Sie nicht xterm o.ä. (interne Beschränkung) benutzen, dann wird zusätzlich eine Textmeldung ausgegeben, für den Fall, dass Sie gerade das Text-Terminal benutzen.

Weiterleitung (Neu seit 0.8.0)

- Wenn Sie abwesend sind, können Sie eine Weiterleitung zu einem anderen Benutzer oder sogar zu einem anderen Rechner einstellen. Es gibt drei verschiedene Methoden, die Weiterleitung zu benutzen. Lesen Sie dazu das Kapitel Benutzung.

Konfiguration

- Wenn &ktalkd; mit &kde; Unterstützung kompiliert wurde, liest es die Einstellungen aus &kde; Konfigurationsdateien, der globalen (`$`TDEDIR`/share/config/ktalkdrc`) und der benutzerspezifischen im Persönlichen Ordner des Benutzers. Die globale Konfigurationsdatei muss vom Systemadministrator von Hand bearbeitet werden, aber es gibt nun einen Konfigurationsdialog für den Benutzer. Er heisst: `kcmktalkd` und kann, nachdem &ktalkd; installiert ist, in &kcontrol; aufgerufen werden. Auf nicht-&kde; Systemen liest &ktalkd; die Datei `/etc/talkd.conf`.

Internationalisierung

- Unter &kde; wird die Meldung in Ihrer Sprache ausgegeben, vorausgesetzt, dass Sie Ihre Sprache im KDE Kontrollzentrum eingestellt haben und dass jemand `ktalkdlg` in Ihre Sprache übersetzt hat. Das gleiche gilt für den Konfigurationsdialog `kcmktalkd`.

Unterstützung für `otalk` und `ntalk` (Neu seit 0.8.1)

- &ktalkd; unterstützt nun beide Protokolle, auch beim Weiterleiten. &ktalkd; unterstützt diese ebenfalls.

Ich hoffe Sie mögen diesen Talk-Dämonen,

David Faure faure@kde.org

## Benutzung

Um &ktalkd; zu verwenden, benötigt man einen `talk` Client. Der textbasierte Befehl `talk` ist auf den meisten &UNIX; Betriebssystemen verfügbar. Man kann es testen mit ``talk` `Eigener_Benutzername``, um zu sehen, was passiert, wenn man eine `talk`-Anfrage bekommt.

Man kann den Anfragebeantworter auf die gleiche Art testen: stellt man eine `talk`-Anfrage an sich selbst und ignoriert man die Anfrage zweimal, so wird der Anfragebeantworter gestartet.

Für &kde; existiert ein `talk`-Programm mit einer graphischen Benutzerschnittstelle, &ktalk;. Es ist momentan noch nicht in den &kde;-Paketen enthalten, aber Sie können es von ftp://ftp.kde.org herunter laden. Es sollte unter ftp://ftp.kde.org/pub/kde/stable/latest/apps/network zu finden sein.

Der Meldedialog ist trivial: Anworten Sie oder ignorieren Sie die Anfrage.

Die Einstellungen im Konfigurationsdialog sollten klar sein, außer die Einstellungen für die Weiterleitung zu einem anderen Benutzer (oder einem anderen Rechner).

### Wählen einer Weiterleitungsmethode

Keine Methode ist für alle Situationen geeignet, alle haben Vorteile (+) und Nachteile (-).

FWA - Anfrage lediglich weiterleiten (Forward announcement only).

- Direkte Verbindung. Nicht empfehlenswert.

  - (+) Sie erfahren wer Sie versucht zu erreichen.

  - (-) Derjenige, der die Anfrage macht, muss auf eine Anfrage von Ihnen antworten.

  - (-) Benutzen Sie diese Methode nicht wenn Sie einen Anrufbeantworter eingeschaltet haben. (Der Anrufbeantworter kann kein Fenster öffnen; es wäre verwirrend!)

WLA : Alle Anfragen werden weitergeleitet, wobei die Informationen geändert werden, falls das nötig sein sollte. Direkte Verbindung.

- Direkte Verbindung.

  - (+) Derjenige, der die Anfrage macht, bemerkt nicht, dass die Anfrage weitergeleitet wird.

  - (-) Sie werden nicht genau wissen wer die Anfrage gestellt hat - nur seinen Benutzernamen. (Sie sehen also möglicherweise nur `talk von Wintalk@mein_rechner`)

WLT : Alle Anfragen werden weitergeleitet und die Talk-Verbindung wird angenommen. Keine direkte Verbindung.

- Keine direkte Verbindung.

  - (+) Gleiches wie oben, aber es funktioniert auch, wenn Sie und der Talkinitiator keine direkte Verbindung aufbauen können (z.B. wegen eines Firewalls).

  - (+) Sie erfahren den richtigen Namen desjenigen, der mit Ihnen talken will, wenn Sie die Verbindung annehmen.

  - (-) Aber wie bei FWR sehen Sie in der Meldung nicht seinen Rechnernamen.

Kurz gesagt, benutzen Sie WLT wenn Sie die Weiterleitung hinter einem Firewall benutzen wollen (und wenn &ktalkd; beide Netzwerke erreichen kann), und ansonsten WLA.

## Fragen und Antworten

Warum erreichen `root` keine &kde; Ankündigungen?

Dies wäre im Zusammenhang mit der momentanen Benutzererkennung ein Sicherheitsloch. Sie können diese Einschränkung umgehen indem Sie zwei Zeilen zu den `xdm` Konfigurationsdateien (die die gleichen wie die von &tdm; sind) hinzufügen.

Die S.u.S.E &Linux;-Distribution enthält diese Zeilen standardmäßig.

Diese Konfigurationsdateien befinden sich normalerweise in einem Ordner wie `/etc/X11/xdm` oder `/usr/X11R6/lib/X11/xdm`. Die folgende Beschreibung geht davon aus, dass sie sich in `/etc/X11/xdm` befinden.

Man muss folgendes tun:

1. Folgendes müssen Sie tun: Ändern oder erstellen Sie die Datei `Xstartup` im `xdm` Konfigurationsordner so, dass sie folgendermaßen aussieht:

       #!/bin/sh
       /etc/X11/xdm/GiveConsole
       sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER

2. und die Datei `Xreset` so:

       #!/bin/sh
       /etc/X11/xdm/TakeConsole
       sessreg -d -l $DISPLAY $USER

3. Stellen Sie sicher, dass in `xdm-config` auf diese beiden Dateien verwiesen wird:

       DisplayManager._0.startup:      /etc/X11/xdm/Xstartup
       DisplayManager._0.reset:        /etc/X11/xdm/Xreset

Diese Zeilen veranlassen &tdm; (oder `xdm`) dazu, den Benutzer im utmp zu registrieren. Es ist meiner Meinung nach nicht die Aufgabe von &konsole;, oder `xterm`, den Benutzer zu registrieren, sondern die Aufgabe von &tdm; oder `xdm`. Wie auch immer, der Benutzer wird nicht als X-Benutzer registriert wenn er zum Starten von X-Windows `startx` benutzt ... Haben Sie eine Idee dazu?

Warum bekomme ich als normaler Benutzer keine &kde;-Meldungen?

Wenn Sie ein &Linux;-System (mit aktiviertem `/proc`) benutzen, ist dieses Verhalten ein Fehler. Bitte senden Sie mir eine Beschreibung davon damit ich diesen Fehler beheben kann.

Wenn Sie &Linux; 2.0.35 benutzen, ist dies ein bekannter Fehler im Kernel, der `root` nicht `/proc` lesen lässt. Vorausgesetzt Sie verwenden &tdm; oder `xdm` können Sie die Lösung aus dem letzten Abschnitt benutzen, um das Problem zu lösen, oder Sie können einen neueren Kernel installieren.

In allen anderen Fällen ist das normal: &ktalkd; kann den Benutzer nicht finden da &kde; ihn nicht im utmp registriert und die &Linux;-basierte (`/proc`) Erkennung deaktiviert ist. Benutzen Sie die Lösung des letzten Abschnitts wenn Sie `tdm` oder `xdm` benutzen, um X-Windows zu starten. Oder lassen Sie immer einen xterm laufen.

Wie bekomme ich Debug-Informationen von &ktalkd;?

Da &ktalkd; ein Dämon ist gibt er keine Debug-Informationen auf der Standardausgabe aus. Um trotzdem Debug-Informationen zu bekommen (z.B. bevor Sie einen Fehlerbericht senden!), ändern Sie die Zeilen in `inetd.conf`, die ktalkd; und &kotalkd; starten, folgendermaßen:

    talk   dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd -d
    ntalk  dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd -d

Wichtig ist die Option `-d`.

Fügen Sie dann folgende Zeile in `/etc/syslog.conf` ein:

    *.*         /var/log/all_messages

Damit die Änderung funktioniert, muss man als nächstes `inetd` und `syslogd` neu starten:

    % killall -HUP inetd
    % killall -HUP syslogd

Startet man nun eine `talk`-Sitzung, so kann man das Resultat in `/var/log/all_messages` sehen.

Wenn Sie einen Fehlerbericht übermitteln, senden Sie bitte die Debug-Informationen, die Versionsnummer von &ktalkd; und die Ausgabe von `./configure` mit. Danke.

## Mitwirkende und Lizenzen

&ktalkd; wird betreut und verbessert von David Faure faure@kde.org

Das Originalprogramm wurde von Robert Cimrman cimrman3@students.zcu.cz geschrieben

Deutsche Uebersetzung Matthias Kiefer matthias.kiefer@gmx.de

&underFDL; &underGPL;

## Installation

### Wie man &ktalkd; erhält

&ktalkd; ist nun im Paket tdenetwork von &kde; unter http://www.kde.org enthalten.

Aber Sie können die neueste Version von &ktalkd; immer von der Haupt-&FTP;-Seite des &kde;-Projekts ftp://ftp.kde.org/pub/kde und seinen Spiegelservern herunter laden. Sie finden es normalerweise in ftp://ftp.kde.org/pub/kde/stable/latest/apps/network.

### Anforderungen

Um &ktalkd; erfolgreich zu kompilieren, brauchen Sie die neueste Version der &kde; Bibliotheken und die &Qt; C++ Bibliothek. Alle benötigten Bibliotheken sowie auch &ktalkd; selbst finden Sie auf ftp://ftp.kde.org/pub/kde/.

### Übersetzung und Installation

Um &ktalkd; auf Ihrem System zu kompilieren und zu installieren, geben Sie bitte folgendes im Basisordner der &ktalkd;-Distribution ein:

    % ./configure
    % make
    % make install

Da &ktalkd; ein Dämon ist, erfordert der Befehl ``make` `install`` `root`-Berechtigungen.

Wichtig ist, die Datei `/etc/inetd.conf` anzupassen. Zum Beispiel müssen für ein &Linux;-System mit &kde; in `/opt/kde` die Zeilen, die `talk` und `ntalk` betreffen, folgendermaßen geändert werden:

    talk   dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd
    ntalk  dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd

Es gibt ein Skript, das die Änderungen automatisch vornimmt. Damit kann man `inetd.conf` durch folgenden Befehl anpassen:

    % ./post-install.sh

In jedem Fall muss inetd danach neugestartet werden. Dazu reicht auf den meisten &Linux;-Systemen der Befehl:

    % killall -HUP inetd

Auf neueren Systemen, die `xinetd` verwenden, gibt es keine Datei `inetd.conf` mehr. Stattdessen muss die Datei `/etc/xinetd.d/talk` mit folgenden Zeilen geändert oder erzeugt werden:

    service talk
    {
            socket_type = dgram
            wait = yes
            user = root
            server = /usr/bin/ktalkd
    }

    service ntalk
    {
            socket_type = dgram
            wait = yes
            user = root
            server = /usr/bin/ktalkd
    }

Dann muss `xinetd` neu gestartet werden.

Bitte informieren Sie mich über jede Änderung, die Sie machen mussten, um &ktalkd; auf Ihrer Plattform kompilieren zu können.