# &ktalkd; käsiraamat

## Sissejuhatus

&ktalkd; on täiustatud `talk` deemon ehk rakendus, mis haldab sissetulevaid `talk` soove, annab neist teada ja võimaldab neile `talk` kliendi abil vastata.

Arvesta, et &ktalkd; on mõeldud töötama ühe kasutajaga tööjaamal, mitte aga mitme kasutajaga masinal: kuna see loeb kasutaja konfiguratsioonifaile, võivad kasutajad panna `talk` deemoni käivitama suvalist käsku, mis on äärmiselt ohtlik. Ära kasuta &ktalkd;, kui lood oma masinal kontosid isikutele, keda sa jäägitult ei usalda.

Käesolevas käsiraamatus nimetatakse sind juhul, kui keegi soovib sinuga vestelda, vastuvõtjaks.

&ktalkd; pakub järgmisi võimalusi :

Automaatvastaja

- Kui vastuvõtja ei ole end sisse loginud või ei vasta ka teisele kutsele, käivitatakse automaatvastaja, mis võtab teadaande vastu ja meilib selle vastuvõtjale.

Heli

- Soovi korral mängitakse teadaande saabumisel heli.

X-teadaanne

- Kompileerimisel paigaldatud &kde;ga kasutab &ktalkd; teadaanneteks &kde; dialoogi `ktalkdlg`. Kui &ktalk; töötab, palutakse sel endal teadaanne teha (alates versioonist 0.8.8).

Teadaanne mitmel kuval

- Kui oled end sisse loginud võrgust (⪚ käsuga ``export` `DISPLAY`=`...``), on X-teadaanne kättesaadav ka sellel kuval. Vasta kasvõi samalt kuvalt, kui soovid! Kui oled sisse loginud ka tekstiterminali ja ei kasuta xtermsi (sisemine piirang), siis näed ka tekstiteadaannet juhul, kui kasutad tekstiterminali teadaande saabumise ajal.

Edasisuunamine (alates versioonist 0.8.0)

- Enda äraolekul saab edasi suunata mõnele teisele kasutajale isegi muul masinal. Edasisuunamiseks on kolm erinevat meetodit. Täpsemat infot leiab osast Kasutamine.

Seadistamine

- &ktalkd; kompileerimisel &kde; all loeb see oma seadistuse &kde; konfiguratsioonifailidest, nii globaalsest (`$`TDEDIR`/share/config/ktalkdrc`) kui kasutaja omast tema kodukataloogis. Globaalset konfiguratsioonifaili saab käsitsi redigeerida vaid administraator, kuid kasutaja jaoks on nüüd olemas seadistusdialoog. See kannab nimetust `kcmktalkd` ning selle leiab pärast &ktalkd; paigaldamist &juhtimiskeskus;es. &kde;-väliste süsteemide korral loeb &ktalkd; seadistuse failist `/etc/talkd.conf`.

Internatsionaliseerimine

- &kde; puhul ilmub teadaanne kasutaja emakeeles, kui see on määratud &kde; menüüdes ja keegi on võtnud vaevaks tõlkida `ktalkdlg` sellesse keelde. Sama kehtib seadistustedialoogi `kcmktalkd` kohta.

`otalk` ja `ntalk` tugi (alates versioonist 0.8.1)

- &ktalkd; toetab nüüd mõlemat protokolli isegi edasisuunamisel. Mõlemat protokolli toetab ka &ktalk;.

Ma loodan, et sa naudid seda talk deemonit,

David Faure faure@kde.org

## Kasutamine

&ktalkd; kasutamiseks on vajalik `talk` klient. Tekstipõhine `talk` on kättesaadav enamikus &UNIX; süsteemides. Proovi käsku ``talk` `sinu_kasutajanimi``, mis peaks näitama, mis juhtub, kui saad `talk` soovi.

Samal moel võid proovida ka automaatvastajat: käivita `talk` iseendale, eira kahel korral teadaannet ja peaksid nägema automaatvastajat.

&kde; jaoks on olemas ka graafiline `talk` liides &ktalk;. See ei ole veel ühegi &kde; paketi osa, kuid selle leiab aadressilt ftp://ftp.kde.org. See peaks asuma kataloogis ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

Teadaandedialoog on päris lihtne: vasta või eira.

Ka seadistustedialoog on suhteliselt lihtne, välja arvatud vahest edasisuunamine teisele kasutajale (või isegi teisele masinale).

### Edasisuunamise meetodi valimine

Ükski neist ei ole veatu, kõigil on oma head (+) ja vead (-).

FWA - Ainult teadaanne saadetakse edasi.

- Otseühendus. Pole soovitatav.

  - (+) Sa tead, kes on helistaja, kuid

  - (-) helistaja peab vastama sinult pärit teadaandele. Tülikas.

  - (-) Ära seda kasuta, kui sul on automaatvastaja enda äraoleku asukohas. (Automaatvastaja ei suuda teadaannet hüpikaknana esitada, mis võib segadusse ajada!)

FWR - Kõik soovid saadetakse edasi, vajadusel muudetakse infot

- Otseühendus.

  - (+) Helistaja ei tea, et oled ära, kuid

  - (-) sa ei saa tegelikult teada, kes on helistaja, vaid ainult tema kasutajanime (näiteks võid näha `talk järgnevalt: Wintalk@minu_masin`)

FWT - Kõik soovid saadetakse edasi ja võetakse kõne.

- Otseühenduseta.

  - (+) Sama, mis eespool, aga see töötab ka siis, kui sina ja helistaja ei saa olla otsekontaktis (⪚ tulemüüri tõttu).

  - (+) Saad teada, kellega tegelikult kõneled, kui võtad kõne vastu

  - (-) Kuid nagu FWR puhul, ei saa sa teadaandest teada vastaspoole masinanime

Lühidalt: kasuta FWT-d, kui sa asud tulemüüri taga (ja kui &ktalkd; pääseb ligi mõlemale võrgule), vastasel juhul FWR-i.

## Küsimused ja vastused

Miks administraator (`root`) ei saa &kde; teadaandeid?

Sest see kujutaks endast turvaauku. Sellest piirangust saab mööda hiilida, kui lisada kaks rida `xdm` konfiguratsioonifaili (mis on õigupoolest samad &tdm; omadega).

S.u.S.E &Linux; on need read juba vaikimisi sisse pannud.

Mainitud konfiguratsioonifailid asuvad tavaliselt kataloogis `/etc/X11/xdm` või `/usr/X11R6/lib/X11/xdm`. Järgnevalt on eeldatud, et tegemist on kataloogiga `/etc/X11/xdm`, nii et vajaduse korral tuleb siin kataloogi asukoht muuta.

Teha tuleb järgmist:

1. Redigeerida faili `Xstartup` või see luua (`xdm` konfiguratsioonikataloogis), nii et see näeks välja selline:

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

2. ja faili `Xreset`, et see näeks välja selline:

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

3. Kontrolli, et `xdm-config` viitaks neile kahele failile:

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

See paneb &tdm; (või `xdm`) logima kasutajat utmp-sse, mis on ka igati õige. Minu arvates ei pea mitte &konsole; või `xterm` kasutajat sisse logima, vaid ikka `xdm` ja &tdm;. Kuid see ei logi kasutajat sisse X-i kasutajana käsu `startx` korral...

Miks ma tavalise kasutajana ei saa &kde; teadaandeid?

Kui kasutad &Linux; süsteemi (milles `/proc` on lubatud), on tegemist veaga. Palun saada mulle vea võimalikult täpne kirjeldus, et seda saaks parandada.

Kui kasutad &Linux; 2.0.35, on tegemist kerneli veaga, mis ei võimalda administraatoril (`root`) lugeda `/proc`-süsteemi. Lahendus on sama, mis eelmise küsimuse puhul - eeldusel muidugi, et X-i sisselogimisel on kasutusel &tdm; või `xdm`. Või võta ette süsteemi uuendamine!

Muudel juhtudel peabki kõik nii olema. &ktalkd; ei leia kasutajat, sest &kde; ei logi teda utmp-sse ning &Linux;-põhine (`/proc`) tuvastus on keelatud. Lahendus on sama, mis eelmise küsimuse puhul - eeldusel muidugi, et X-i sisselogimisel on kasutusel tdm või xdm. Teine lahendus on tagada, et alati töötaks xterm.

Kuidas saada &ktalkd; silumisväljundit?

Et tegemist on deemoniga, ei ole standardväljundis silumisväljundit. Silumisväljundi saamiseks (näiteks enne mulle vea teatamisest!) uuenda ridu failis `inetd.conf`, mis käivitab &ktalkd; ja &kotalkd;, et need näeks välja nii:

    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

Pane tähele võtit `-d`.

Seejärel redigeeri `/etc/syslog.conf`, lisades järgmise rea:

    *.*         /var/log/all_messages

Et kõik toimiks, tuleb `inetd` ja `syslogd` taaskäivitada:

    % killall -HUP inetd
    % killall -HUP syslogd

Lõpuks käivita `talk` seanss ja vaata tulemust `/var/log/all_messages`

Veateadet saates ära kunagi unusta kaasa panemast silumisväljundit, samuti &ktalkd; versiooni numbrit ja `./configure` väljundit. Tänan juba ette.

## Autoriõigus ja litsents

&ktalkd; hooldaja ja arendaja on David Faure faure@kde.org

Originaalrakenduse kirjutas Robert Cimrman cimrman3@students.zcu.cz

Tõlge eesti keelde: Marek Laane bald@online.ee

&underFDL; &underGPL;

## Paigaldamine

### &ktalkd; hankimine

&ktalkd; on nüüd &kde; projekti http://www.kde.org tuumikrakendus, osa paketist tdenetwork.

Uusima &ktalkd; võib alla tõmmata &kde; projekti peamiselt &FTP; saidilt ftp://ftp.kde.org/pub/kde ja selle peegelsaitidelt. Tavaliselt asub see kataloogis ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

### Nõuded

&ktalkd; edukaks kompileerimiseks on vajalik &kde; teekide uusim versioon, samuti &Qt; C++ teek. Kõik nõutavad teegid, samuti ktalkd enda leiab aadressilt ftp://ftp.kde.org/pub/kde/.

### Kompileerimine ja paigaldamine

&ktalkd; kompileerimiseks ja paigaldamiseks anna järgmised käsud &ktalkd; baaskataloogis:

    % ./configure
    % make
    % make install

Et &ktalkd; on deemon, nõuab ``make` `install`` administraatori (`root`) privileege.

Ära unusta uuendamast `/etc/inetd.conf`. Näiteks kui &Linux; süsteemis asub &kde; `/opt/kde`, muuda `talk` ja `ntalk` puudutavaid ridu:

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

Vajalike muutuste automaatseks tegemiseks on olemas ka skript. Uuenda `inetd.conf` käsuga

    % ./post-install.sh

Igatahes tuleb pärast seda inetd taaskäivitada. Enamikus &Linux; süsteemides käib see nii:

    % killall -HUP inetd

Uuemates süsteemides, kus on kasutusel `xinetd`, pole enam `/etc/inetd.conf` ning selle asemel tuleb luua või redigeerida `/etc/xinetd.d/talk` vastavate ridadega:

    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
    }

seejärel taaskäivitada `xinetd`

Palun anna ka mulle teada kõigist muutustest, mida pidid tegema, et &ktalkd; hakkaks tööle sinu platvormil.