# Handbok &ktalkd;

David Faure

    faure@kde.org

Stefan Asserhäll

    stefan.asserhall@comhem.se

Översättare
&FDLNotice;
2001 David Faure
2001-05-02
1.05.02

&ktalkd; är en förbättrad `talk`-demon, ett program för att hantera inkommande begäran från `talk`, påminna om dem och låta dig svara på dem med en samtalsklient.

KTALKD talk talkd otalk ntalk ktalkdlg kcmktalkd

## Inledning

&ktalkd; är en förbättrad `talk`-demon, ett program för att hantera inkommande begäran från `talk`, påminna om dem och låta dig svara på dem med en samtalsklient.

Observera att &ktalkd; är avsedd att köra på en arbetsstation med en användare, och ska inte köras på en fleranvändarmaskin: eftersom den läser användarnas konfigurationsfiler, kan användare få `talk`-demonen att köra vilket kommando som helst, något som är ytterst farligt. Använd inte &ktalkd; om du skapar konton på din maskin för personer som du inte litar fullständigt på.

I det här dokumentet kallas du mottagare, om någon vill samtala med dig.

&ktalkd; har följande funktioner:

Telefonsvarare

  Om mottagaren inte är inloggad, eller inte svarar efter den andra påminnelsen, startas automatisk en telefonsvarare som tar emot meddelandet, och e-postar det till mottagaren.

Ljud

  Om så önskas, spelas ett ljud vid påminnelsen.

Påminnelse via X

  Om &ktalkd; kompileras med &kde; installerat, använder det `ktalkdlg`, en &kde;-dialogruta, för påminnelser. Om &ktalk; kör, tillfrågas det om att göra påminnelsen själv (Nytt sedan 0.8.8).

Påminnelse på flera skärmar

  Om du är inloggad från en annan maskin (t.ex. med kommandot ``export` `DISPLAY`=...`), görs påminnelsen via X också på den här skärmen. Svara på vilken du vill! Om du också är inloggad på en textterminal, och om du inte använder xterms (intern begränsning), så ser du också en textpåminnelse, om du använder textterminalen när påminnelsen ska göras.

Vidarebefordran (Nytt sedan 0.8.0)

  Du kan vidarebefordra till en annan användare, eller till och med till en annan värddator om du är borta. Det finns tre olika vidarebefordringsmetoder. Se avsnittet Användning.

Anpassning

  Om &ktalkd; kompilerats för &kde;, läser den inställningarna från &kde;s konfigurationsfil för hela systemet, (`$`KDEDIR`/share/config/ktalkdrc`) och från användarens fil i hemkatalogen. Den för hela systemet måste redigeras för hand av systemadministratören, men nu finns det en inställningsdialogruta för användarens fil. Den heter `kcmktalkd` och finns i inställningscentralen efter &ktalkd; har installerats. På andra system än &kde;, läser &ktalkd; `/etc/talkd.conf`.

Språk

  Med &kde; visas påminnelsen på ditt språk under förutsättning att du ställer in det i &kde;:s menyer, och att någon har översatt `ktalkdlg` till ditt språk. Detsamma gäller inställningsdialogrutan, `kcmktalkd`.

Stöd för `otalk` och `ntalk` (Nytt sedan 0.8.1)

  &ktalkd; stöder nu båda protokollen till och med vid vidarebefordran. &ktalk; stöder också båda protokollen.

Jag hoppas att du trivs med den här talk-demonen.

David Faure faure@kde.org

## Användning

För att använda &ktalkd;, behöver du en samtalsklient. Det textbaserade `talk` finns på de flesta &UNIX;-system. Försök med ``talk` ditt_användarnamn` för att se vad som händer när du tar emot en begäran från `talk`.

Du kan också prova telefonsvararen på samma sätt: starta `talk` till dig själv, ignorera påminnelsen två gånger så ser du telefonsvararen.

Det finns en samtalsklient med ett grafiskt gränssnitt för &kde;, som heter &ktalk;. Den levereras inte med &kde;-paketen, men du kan hitta den på ftp://ftp.kde.org. Den bör finnas i ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

Påminnelsedialogrutan är trivial: svara eller ignorera.

Inställningsdialogrutan bör vara ganska rättfram, utom när det gäller att ställa in vidarebefordran till en annan användare (eller till och med en annan värddator).

### Att välja metod för vidarebefordran

Ingen är perfekt, utan alla har fördelar (+) och nackdelar (-).

FWA - Vidarebefordra bara påminnelser.

  Direktanslutning. Rekommenderas ej.

  - (+) Du vet vem som anropar, men

  - (-) Den som anropar måste svara på en påminnelse från dig. Irriterande.

  - (-) Använd det inte om du har en telefonsvarare på platsen där du är borta. (Telefonsvararen kan få en påminnelse att dyka upp, och det skulle vara förvirrande!)

FWR - Vidarebefordra varje begäran, och ändra information om nödvändigt

  Direktanslutning

  - (+) Den som anropar får inte reda på att du är borta, men

  - (-) Du vet inte egentligen vem den som anropar är, bara användarnamnet (så du kan få se `samtal från Winsamtal@min_värddator`)

FWT - Vidarebefordra varje begäran och acceptera samtalet.

  Ingen direkt anslutning.

  - (+) Samma som ovan, men fungerar också om du och den som anropar inte kan vara i direktkontakt med varandra (t.ex. en brandvägg).

  - (+) Du får veta vem som verkligen samtalar med dig när du accepterar samtalet.

  - (-) Men som med FWR, kommer du inte att se hans datornamn i påminnelsen.

I korthet, använd FWT om du vill använda det bakom en brandvägg (och om &ktalkd; kan komma åt båda nätverken), eller använd annars FWR.

## Vanliga frågor

Varför tar inte root emot &kde;-påminnelser?

Eftersom det skulle vara en säkerhetslucka med den nuvarande användaridentifieringen. Du kan gå förbi den här begränsningen genom att lägga till två rader i konfigurationsfilerna för `xdm` (som är samma för &kdm;).

S.u.S.E &Linux;-distributionen inkluderar de här raderna från början.

De här konfigurationsfilerna finns normalt i en katalog som `/etc/X11/xdm`, eller `/usr/X11R6/lib/X11/xdm` på andra system. Det följande antar att de finns i `/etc/X11/xdm`, så du kan behöva översätta det till en annan katalog.

Här är vad du måste göra:

- Redigera filen `Xstartup`, eller skapa den (i `xdm` konfigurationskatalogen) så att den lyder:

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

- och filen `Xreset` så att den lyder:

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

- Försäkra dig om att `xdm-config` refererar till följande två filer:

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

Det här gör att &kdm; (eller `xdm`) loggar användaren i utmp, som är rätt åtgärd. Det är inte &konsole;s eller `xterm`s sak att logga användaren, utan `xdm`s eller &kdm;s sak, enligt min mening. Det här loggar dock inte användaren som en X-användare när `startx` används... Något tips om detta?

Varför kan inte jag, som normal användare, ta emot &kde;-påminnelser?

Om du kör ett &Linux;-system (med `/proc` aktiverat), är det här beteendet ett fel. Skicka en beskrivning till mig så att jag kan rätta det.

Om du kör &Linux; 2.0.35, är detta ett känt fel i kärnan, som inte låter root läsa `/proc`. Lösningen är samma som i föregående fråga, under förutsättning att du kör &kdm; eller `xdm` för att logga in till X. Eller uppgradera!

Annars är detta normalt. &ktalkd; kan inte hitta användaren, eftersom &kde; inte loggar användaren i utmp och den &Linux;-baserade (`/proc`) identifieringen är avstängd. Lösningen är samma som i föregående fråga, under förutsättning att du kör kdm eller xdm för att logga in till X. En annan lösning är att försäkra dig om att du alltid har en xterm igång.

Hur får jag avlusningsutskrifter från &ktalkd;?

Eftersom den är en demon, finns det ingen avlusningsutmatning på standardutmatningen. För att få avlusningsutmatning (till exempel innan du skickar in en felrapport), uppdatera raderna i `inetd.conf` som startar &ktalkd; och &kotalkd; till:

    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

Observera väljaren `-d`.

Redigera sedan `/etc/syslog.conf` för att lägga till följande rad:

    *.*         /var/log/all_messages

För att få det att fungera, måste du sedan starta om `inetd` och `syslogd`:

    % killall -HUP inetd
    % killall -HUP syslogd

Kör till sist en `talk`-session och se resultatet i `/var/log/all_messages`

När du skickar in en felrapport, glöm aldrig att infoga felsökningsutmatningen, men också versionsnumret för &ktalkd; och utmatningen från `./configure`. Tack.

## Copyright och licens

&ktalkd; underhålls och förbättras av David Faure, faure@kde.org

Originalprogrammet skrevs av Robert Cimrman, cimrman3@students.zcu.cz

Översättning Stefan Asserhäll stefan.asserhall@comhem.se

&underFDL; &underGPL;

## Installation

### Hur man skaffar &ktalkd;

&ktalkd; är nu ett av kärnprogrammen i &kde;-projektet http://www.kde.org, och en del av kdenetwork-paketet.

Du kan alltid ladda ner den senaste &ktalkd; från &kde;-projektets huvudsakliga &FTP;-plats, ftp://ftp.kde.org/pub/kde och från spegelplatser. Den finns oftast på ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

### Krav

För att kunna kompilera &ktalkd; med lyckat resultat, behöver du den senaste versionen av &kde;-biblioteken samt &Qt; C++ bibliotek. Alla bibliotek som krävs samt ktalkd själv finns på ftp://ftp.kde.org/pub/kde/.

### Kompilering och installation

För att kompilera och installera &ktalkd; på ditt system, skriv följande i baskatalogen i distributionen av &ktalkd;:

    % ./configure
    % make
    % make install

Eftersom &ktalkd; är en demon, kräver ``make` `install`` root-rättighet.

Glöm inte att uppdatera `/etc/inetd.conf`. På till exempel ett &Linux;-system, om &kde; finns i `/opt/kde`, ändra raderna som berör `talk` och `ntalk` till:

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

Det finns ett skript för att göra de nödvändiga ändringarna automatiskt. Uppdatera filen `inetd.conf` genom att bara köra

    % ./post-install.sh

Hur som helst måste du starta om inetd efter det här. På de flesta &Linux;-system, skriv:

    % killall -HUP inetd

På nyare system som använder `xinetd`, finns inte filen `/etc/inetd.conf` längre, och du måste redigera eller skapa `/etc/xinetd.d/talk` istället, med följande rader:

    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
    }

och sedan starta om `xinetd`.

Informera mig gärna om eventuella ändringar som du behövde införa för att få &ktalkd; att kompilera eller fungera på din plattform.