<chapter id="callback">
<title
>Podešavanje <application
>KPPP‑a</application
> za povratni poziv</title>

<para
>Ovo poglavlje zasniva se na materijalu koji je obezbedio <personname
><firstname
>Martin</firstname
> <surname
>Hefner</surname
></personname
>, <email
>mh@ap-dec717c.physik.uni-karlsruhe.de</email
>.</para>

<sect1 id="unix-callback-server">
<title
>Server povratnih poziva pod Unixom (Linuxom)</title>

<para
>Ova sekcija pruža uvod u povratne pozive pod Unixom, i kako se <application
>KPPP</application
> može podesiti za povezivanje na server povratnih poziva, naročito na  <link linkend="callback-resources"
>server povratnih poziva</link
> zasnovan na skripti pod Linuxom.</para>

<sect2>
<title
>Uvod u povratne pozive</title>

<para
>Povratni pozivi vam mogu odgovarati iz nekoliko razloga. Neki od njih su:</para>

<itemizedlist>
<listitem>
<para
>povećanje bezbednosti lokalne mreže</para>
</listitem>
<listitem>
<para
>smanjenje troškova spoljnih saradnika</para>
</listitem>
<listitem>
<para
>upravljanje telefonskim troškovima gde pozivi spadaju u troškove poslovanja</para>
</listitem>
</itemizedlist>

<para
>Zamislite da neko pozove broj vašeg servera za primanje poziva, a zatim razbije lozinku. Zašto se mučiti oko održavanja zaštitnog zida za internet vezu, ako se ovako lako može pristupiti vašoj mreži?</para>

<para
>Softver za povratne pozive obično vas pita za ime, pa prekine vezu. Zatim vas pozove nazad, obično na broj uskladišten u bazi podataka <emphasis
>na serveru</emphasis
>. Zatim klijent prihvata telefonsku vezu i nastavlja sa biranjem broja kao da se ništa nije dogodilo. Server sada zahteva vaše korisničko ime i lozinku, znajući da ste ko ste se predstavili po prvom pozivu, ili barem da ste tamo gde ste rekli da jeste. Veza se uspostavlja normalno i pokreće se <command
>pppd</command
>.</para>

<para
>Glavno pitanje je kako naterati klijent da podigne slušalicu kad server pozove. Treba li vam specijalni klijentski program, kao što je <command
>mgetty</command
>? Odgovor je — ne treba vam. Uopšteno, bilo koji klijent se može koristiti za veze preko povratnog poziva, čak i običan terminalski program poput Minicoma.</para>

<para
>Jedino što treba da uradite je da zadate modemu da automatski odgovori kad otkrije signal <literal
>RING</literal
>. Ovo zadaje sledeća modemska naredba:</para>

<screen
><userinput
><command
>AT&amp;SO=1</command
></userinput
>
</screen>

<para
>Ovim se modemu kaže da podigne slušalicu posle prvog <literal
>RING</literal
>.</para>

<para
>Kao mnogi drugi klijentski programi, <application
>KPPP</application
> proverava da vidi da li je server prekinuo vezu, a onda prekida tekuću sesiju ako se otkrije <literal
>NO CARRIER</literal
>. Ovde leži pravi problem za postavljanje povratnih poziva. <literal
>NO CARRIER</literal
> će, naravno, stići u trenutku kad server povratnih poziva prekine vezu. Zato neki serveri koriste specijalni program za prijavljivanje. Kako rešiti ovaj problem? Tako što zadate modemu da stalno prikazuje <literal
>CARRIER UP</literal
> (ovo neće izazvati problem kada klijentu kažete da prekine vezu). Ovo se postiže sledećom modemskom naredbom:</para>

<screen
><userinput
><command
>AT&amp;C0</command
></userinput
>
</screen>

<para
>Ako želite ovo da isprobate, možete prvo pozvati server povratnih poziva običnim terminalskim programom, kao što je Minicom, i videti šta se događa.</para>

</sect2>

<sect2>
<title
>Podešavanje <application
>KPPP‑a</application
></title>

<para
>Pošto ste videli teoriju na delu, kako sada da podesite <application
>KPPP</application
> da rukuje vezom? </para>

<para
>Postupak je prilično jednostavan, kao što sledi.</para>

<procedure>
<step>
<para
>Prvo zadajte modemu da prihvata veze, i da ne prekida pregovaranje kad server povratnih poziva prvi put prekine vezu. Obe ove opcije možete dodati pod jezičkom <guilabel
>Modem</guilabel
> u postavi <application
>KPPP‑a</application
>, dodavanjem niske <command
>AT&amp;C0S0=1DT</command
> u polje <guilabel
>Niska za pozivanje:</guilabel
>.</para>
<para
>Nikakve druge promene u postavi <application
>KPPP‑a</application
> nisu potrebne. Ako iskusite teškoće sa pripremanjem i resetovanjem modema, za više informacija pogledajte sekciju <link linkend="callback-troubleshooting"
>o pretresanju problema</link
>.</para>
</step>
<step>
<para
>Razmislite malo o vašem serveru. Setite se da operativni sistemi Unix, Windows i MacOS imaju različite stavove o tome kako se završava red u tekstualnom fajlu, pa zato i različite postupke prijavljivanja. Ako se povezujete na server pod Windowsom, koristite <literal
>CR/LF</literal
>; ako je server pod Unixom koristite <literal
>CR</literal
>, a za server pod MacOS‑om <literal
>LF</literal
>. </para>
</step>
<step>
<para
>U narednim instrukcija pretpostavljamo da pozivate server povratnih poziva pod Linuxom, uz jednostavno prijavljivanje (ne preko PAP‑a ili tako nečeg).</para>
<para
>Pod jezičkom <guilabel
>Pozovi</guilabel
> u postavi naloga, u polju <guilabel
>Autentifikacija:</guilabel
> postavite <guilabel
>skriptom</guilabel
>.</para>
</step>
<step>
<para
>Sada treba da sastavite prijavnu skriptu. Uređivanje prijavnih skripti je jedna od finih mogućnosti <application
>KPPP‑a</application
>. Nalazi se pod jezičkom <guilabel
>Prijavna skripta</guilabel
> u dijalogu za uređivanje naloga.</para>

<para
>U ovom primeru, korisnik <systemitem
>pperic</systemitem
> zahteva pokretanje sledeće skripte. Server povratnih poziva već ima tabelu imena i pridruženih brojeva telefona, tako da, iz bezbednosnih razloga, birate telefonski broj koji će se koristiti sa alijasom.</para>

<para
>Za svaki red, iz padajućeg spiska levo u dijalogu izaberite kriterijum, pa upišite radnju u polje desno. Kliknite na <guibutton
>Dodaj</guibutton
> za dodavanje reda u skriptu. Dugmetom <guibutton
>Umetni</guibutton
> dodajte red negde u sredinu skripte, a dugmetom <guibutton
>Ukloni</guibutton
> uklanjate red kad nešto pogrešite.</para>

<para
>Cela skripta trebalo bi da izgleda otprilike ovako (bez ovde prikazanih komentara, koji počinju sa #):</para>

<screen
>Expect       ogin:           <lineannotation
># setite se, koristimo obično terminalsko prijavljivanje</lineannotation>
ID           ""              <lineannotation
># KPPP šalje ID
koji ste podesili u glavnom dijalogu</lineannotation>
Expect       for pperic:    <lineannotation
># prikazuje se spisak dostupnih
brojeva; korisnik treba da izabere jedan</lineannotation
> 
Send         pperic-home    <lineannotation
># korisnik želi povratni poziv
na svoj kućni broj</lineannotation>
Expect       ogin:           <lineannotation
># povratni poziv je započet,
sledi nova veza, te i novo prijavljivanje</lineannotation>
ID
Expect       assword:        <lineannotation
># šaljete svoju lozinku</lineannotation>
Expect       &gt;            <lineannotation
># čeka na komandni odzivnik
(koji može da varira)</lineannotation>
Send         start_ppp       <lineannotation
># ova naredba pokreće pppd</lineannotation
>
</screen>

<para
>Posle čekanja na zahtev za prijavu, korisnik šalje svoj ID i čeka na spisak dostupnih brojeva telefona za to korisničko ime. Zatim saopštava serveru na koji bi od ponuđenih brojeva hteo da bude pozvan. <application
>KPPP</application
> može da otvori dijalog za ovo ako često menjate lokaciju, npr. ako ste trgovački putnik i krećete se od hotela do hotela. Sad server očekuje korisničko ime i lozinku za autentifikaciju, ali u međuvremenu prekida vezu i zove vas nazad. Šalju se podaci za autentifikaciju i <application
>KPPP</application
> čeka na komandni odzivnik, a zatim pokreće malu skriptu (ovde po imenu <filename
>start_ppp</filename
>) koja izvršava <command
>pppd</command
> na serveru.</para>
					      
<para
>Skripta <filename
>start_ppp</filename
> mogla bi izgledati ovako:</para>
					      
<programlisting
>#!/bin/sh
stty -echo
exec /usr/sbin/pppd -detach silent modem
</programlisting>
					      
<para
>Postavljanje PPP servera naravno ne spada u opseg ovog dokumenta. Za detaljnije informacije pogledajte uputnu stranicu za <command
>pppd</command
>. Izvrstan opis servera povratnih poziva može se naći na <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
>http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback</ulink
>.</para>
</step>
</procedure>

<para
>Sva ostala pitanja oko podešavanja, kao što je postava za <command
>pppd</command
> ili IP postavke, rade kao i obično, i nije potreban nikakav poseban softver za prihvatanje linije.</para>

<note>
<para
><application
>KPPP</application
> s povratnim pozivom i drugi programi poput <command
>mgetty</command
> mogu se izvršavati na istom serijskom portu. Nema problema sa pozivanjem modemom, pošto <application
>KPPP</application
> stvara fajl za zaključavanje koji drugim programima kaže da trenutno <application
>KPPP</application
> koristi liniju.</para>
</note>

</sect2>

<sect2 id="callback-troubleshooting">
<title
>Pretresanje problema</title>

<para
>Postoje neki poznati problemi s <application
>KPPP‑om</application
> u režimu povratnog poziva:</para>

<itemizedlist>
<listitem>
<para
>Kao što pripremite modem za automatsko odgovaranje, tako treba i da ga resetujete kad se veza prekine. U suprotnom će modem nastaviti da prihvata vezu mesto vas, što nije dobra ideja ako vam je ta veza glavna telefonska linija.</para>
</listitem>
<listitem>
<para
><application
>KPPP</application
> ima sitnih problema pri deljenju linije sa drugim programima, kao što je <command
>mgetty</command
>. Ako se <command
>mgetty</command
> izvršava na istoj modemskoj liniji, <application
>KPPP</application
> ne može pravilno da pripremi modem. </para>
</listitem>
<listitem>
<para
><application
>KPPP</application
> ne može da traži ulaz od korisnika tokom prijavljivanja zasnovanog na skripti. Nažalost, kad koristite skriptu po prethodnom primeru, <application
>KPPP</application
> pita za korisničko ime i drugi put kad ga server povratnog poziva zatraži. Ovog se možete otarasiti neposrednim upisivanjem korisničkog imena u skriptu, što nije ni mnogo prenosivo ni fino, ali radi.</para>
</listitem>
</itemizedlist>

</sect2>

<sect2 id="callback-resources">
<title
>Internet resursi za serverski softver</title>

<para
>Softverski paketi za server povratnih poziva pod Linuxom dostupni su na mnogim mestima.</para>

<para
>Dobro poznati <command
>mgetty</command
> je moćan program, i može da rukuje vezama preko povratnih poziva. Instrukcije kako postaviti <command
>mgetty</command
> u ovu svrhu održava <personname
><firstname
>Kolin</firstname
> <surname
>Makinon</surname
></personname
> <email
>colin@wew.co.uk</email
> na <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm"
>http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink
>.</para>

<para
>Postoji i gotov paket za Linux na <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html"
>http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink
>, koji održava <personname
><firstname
>Frank</firstname
> <othername
>B.</othername
> <surname
>Broken</surname
></personname
> <email
>frank@icce.rug.nl</email
>. Pošto postavljanje ovog paketa nije baš lako (iako je neproblematično) napisao sam kratak uvod na <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
>http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink
> (takođe daje opštiji uvod u povratne pozive).</para>

</sect2>
</sect1>

<sect1 id="nt-callback">
<title
>RAS povratni pozivi pod Windowsom NT</title>

<para
>Windows NT koristi potpuno drugačiji prilaz od prethodno opisanog. NT zahteva proširenje samog protokola PPP, zvano CBCP. <command
>pppd</command
> nazivno ima podršku za ovaj protokol, ali se mora uključiti pri kompilovanju. Ako neko uspe da se poveže na server povratnih poziva pod NT‑om, molimo da nas obavesti.</para>

</sect1>
</chapter>
