<chapter id="callback">
<title
>Подешавање <application
>КППП‑а</application
> за повратни позив</title>

<para
>Ово поглавље заснива се на материјалу који је обезбедио <personname
><firstname
>Мартин</firstname
> <surname
>Хефнер</surname
></personname
>, <email
>mh@ap-dec717c.physik.uni-karlsruhe.de</email
>.</para>

<sect1 id="unix-callback-server">
<title
>Сервер повратних позива под Униксом (Линуксом)</title>

<para
>Ова секција пружа увод у повратне позиве под Униксом, и како се <application
>КППП</application
> може подесити за повезивање на сервер повратних позива, нарочито на  <link linkend="callback-resources"
>сервер повратних позива</link
> заснован на скрипти под Линуксом.</para>

<sect2>
<title
>Увод у повратне позиве</title>

<para
>Повратни позиви вам могу одговарати из неколико разлога. Неки од њих су:</para>

<itemizedlist>
<listitem>
<para
>повећање безбедности локалне мреже</para>
</listitem>
<listitem>
<para
>смањење трошкова спољних сарадника</para>
</listitem>
<listitem>
<para
>управљање телефонским трошковима где позиви спадају у трошкове пословања</para>
</listitem>
</itemizedlist>

<para
>Замислите да неко позове број вашег сервера за примање позива, а затим разбије лозинку. Зашто се мучити око одржавања заштитног зида за интернет везу, ако се овако лако може приступити вашој мрежи?</para>

<para
>Софтвер за повратне позиве обично вас пита за име, па прекине везу. Затим вас позове назад, обично на број ускладиштен у бази података <emphasis
>на серверу</emphasis
>. Затим клијент прихвата телефонску везу и наставља са бирањем броја као да се ништа није догодило. Сервер сада захтева ваше корисничко име и лозинку, знајући да сте ко сте се представили по првом позиву, или барем да сте тамо где сте рекли да јесте. Веза се успоставља нормално и покреће се <command
>pppd</command
>.</para>

<para
>Главно питање је како натерати клијент да подигне слушалицу кад сервер позове. Треба ли вам специјални клијентски програм, као што је <command
>mgetty</command
>? Одговор је — не треба вам. Уопштено, било који клијент се може користити за везе преко повратног позива, чак и обичан терминалски програм попут Миникома.</para>

<para
>Једино што треба да урадите је да задате модему да аутоматски одговори кад открије сигнал <literal
>RING</literal
>. Ово задаје следећа модемска наредба:</para>

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

<para
>Овим се модему каже да подигне слушалицу после првог <literal
>RING</literal
>.</para>

<para
>Као многи други клијентски програми, <application
>КППП</application
> проверава да види да ли је сервер прекинуо везу, а онда прекида текућу сесију ако се открије <literal
>NO CARRIER</literal
>. Овде лежи прави проблем за постављање повратних позива. <literal
>NO CARRIER</literal
> ће, наравно, стићи у тренутку кад сервер повратних позива прекине везу. Зато неки сервери користе специјални програм за пријављивање. Како решити овај проблем? Тако што задате модему да стално приказује <literal
>CARRIER UP</literal
> (ово неће изазвати проблем када клијенту кажете да прекине везу). Ово се постиже следећом модемском наредбом:</para>

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

<para
>Ако желите ово да испробате, можете прво позвати сервер повратних позива обичним терминалским програмом, као што је Миником, и видети шта се догађа.</para>

</sect2>

<sect2>
<title
>Подешавање <application
>КППП‑а</application
></title>

<para
>Пошто сте видели теорију на делу, како сада да подесите <application
>КППП</application
> да рукује везом? </para>

<para
>Поступак је прилично једноставан, као што следи.</para>

<procedure>
<step>
<para
>Прво задајте модему да прихвата везе, и да не прекида преговарање кад сервер повратних позива први пут прекине везу. Обе ове опције можете додати под језичком <guilabel
>Модем</guilabel
> у постави <application
>КППП‑а</application
>, додавањем ниске <command
>AT&amp;C0S0=1DT</command
> у поље <guilabel
>Ниска за позивање:</guilabel
>.</para>
<para
>Никакве друге промене у постави <application
>КППП‑а</application
> нису потребне. Ако искусите тешкоће са припремањем и ресетовањем модема, за више информација погледајте секцију <link linkend="callback-troubleshooting"
>о претресању проблема</link
>.</para>
</step>
<step>
<para
>Размислите мало о вашем серверу. Сетите се да оперативни системи Уникс, Виндоуз и МекОС имају различите ставове о томе како се завршава ред у текстуалном фајлу, па зато и различите поступке пријављивања. Ако се повезујете на сервер под Виндоузом, користите <literal
>CR/LF</literal
>; ако је сервер под Униксом користите <literal
>CR</literal
>, а за сервер под МекОС‑ом <literal
>LF</literal
>. </para>
</step>
<step>
<para
>У наредним инструкција претпостављамо да позивате сервер повратних позива под Линуксом, уз једноставно пријављивање (не преко ПАП‑а или тако нечег).</para>
<para
>Под језичком <guilabel
>Позови</guilabel
> у постави налога, у пољу <guilabel
>Аутентификација:</guilabel
> поставите <guilabel
>скриптом</guilabel
>.</para>
</step>
<step>
<para
>Сада треба да саставите пријавну скрипту. Уређивање пријавних скрипти је једна од финих могућности <application
>КППП‑а</application
>. Налази се под језичком <guilabel
>Пријавна скрипта</guilabel
> у дијалогу за уређивање налога.</para>

<para
>У овом примеру, корисник <systemitem
>pperic</systemitem
> захтева покретање следеће скрипте. Сервер повратних позива већ има табелу имена и придружених бројева телефона, тако да, из безбедносних разлога, бирате телефонски број који ће се користити са алијасом.</para>

<para
>За сваки ред, из падајућег списка лево у дијалогу изаберите критеријум, па упишите радњу у поље десно. Кликните на <guibutton
>Додај</guibutton
> за додавање реда у скрипту. Дугметом <guibutton
>Уметни</guibutton
> додајте ред негде у средину скрипте, а дугметом <guibutton
>Уклони</guibutton
> уклањате ред кад нешто погрешите.</para>

<para
>Цела скрипта требало би да изгледа отприлике овако (без овде приказаних коментара, који почињу са #):</para>

<screen
>Expect       ogin:           <lineannotation
># сетите се, користимо обично терминалско пријављивање</lineannotation>
ID           ""              <lineannotation
># КППП шаље ИД
који сте подесили у главном дијалогу</lineannotation>
Expect       for pperic:    <lineannotation
># приказује се списак доступних
бројева; корисник треба да изабере један</lineannotation
> 
Send         pperic-home    <lineannotation
># корисник жели повратни позив
на свој кућни број</lineannotation>
Expect       ogin:           <lineannotation
># повратни позив је започет,
следи нова веза, те и ново пријављивање</lineannotation>
ID
Expect       assword:        <lineannotation
># шаљете своју лозинку</lineannotation>
Expect       &gt;            <lineannotation
># чека на командни одзивник
(који може да варира)</lineannotation>
Send         start_ppp       <lineannotation
># ова наредба покреће pppd</lineannotation
>
</screen>

<para
>После чекања на захтев за пријаву, корисник шаље свој ИД и чека на списак доступних бројева телефона за то корисничко име. Затим саопштава серверу на који би од понуђених бројева хтео да буде позван. <application
>КППП</application
> може да отвори дијалог за ово ако често мењате локацију, нпр. ако сте трговачки путник и крећете се од хотела до хотела. Сад сервер очекује корисничко име и лозинку за аутентификацију, али у међувремену прекида везу и зове вас назад. Шаљу се подаци за аутентификацију и <application
>КППП</application
> чека на командни одзивник, а затим покреће малу скрипту (овде по имену <filename
>start_ppp</filename
>) која извршава <command
>pppd</command
> на серверу.</para>
					      
<para
>Скрипта <filename
>start_ppp</filename
> могла би изгледати овако:</para>
					      
<programlisting
>#!/bin/sh
stty -echo
exec /usr/sbin/pppd -detach silent modem
</programlisting>
					      
<para
>Постављање ППП сервера наравно не спада у опсег овог документа. За детаљније информације погледајте упутну страницу за <command
>pppd</command
>. Изврстан опис сервера повратних позива може се наћи на <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
>Сва остала питања око подешавања, као што је постава за <command
>pppd</command
> или ИП поставке, раде као и обично, и није потребан никакав посебан софтвер за прихватање линије.</para>

<note>
<para
><application
>КППП</application
> с повратним позивом и други програми попут <command
>mgetty</command
> могу се извршавати на истом серијском порту. Нема проблема са позивањем модемом, пошто <application
>КППП</application
> ствара фајл за закључавање који другим програмима каже да тренутно <application
>КППП</application
> користи линију.</para>
</note>

</sect2>

<sect2 id="callback-troubleshooting">
<title
>Претресање проблема</title>

<para
>Постоје неки познати проблеми с <application
>КППП‑ом</application
> у режиму повратног позива:</para>

<itemizedlist>
<listitem>
<para
>Као што припремите модем за аутоматско одговарање, тако треба и да га ресетујете кад се веза прекине. У супротном ће модем наставити да прихвата везу место вас, што није добра идеја ако вам је та веза главна телефонска линија.</para>
</listitem>
<listitem>
<para
><application
>КППП</application
> има ситних проблема при дељењу линије са другим програмима, као што је <command
>mgetty</command
>. Ако се <command
>mgetty</command
> извршава на истој модемској линији, <application
>КППП</application
> не може правилно да припреми модем. </para>
</listitem>
<listitem>
<para
><application
>КППП</application
> не може да тражи улаз од корисника током пријављивања заснованог на скрипти. Нажалост, кад користите скрипту по претходном примеру, <application
>КППП</application
> пита за корисничко име и други пут кад га сервер повратног позива затражи. Овог се можете отарасити непосредним уписивањем корисничког имена у скрипту, што није ни много преносиво ни фино, али ради.</para>
</listitem>
</itemizedlist>

</sect2>

<sect2 id="callback-resources">
<title
>Интернет ресурси за серверски софтвер</title>

<para
>Софтверски пакети за сервер повратних позива под Линуксом доступни су на многим местима.</para>

<para
>Добро познати <command
>mgetty</command
> је моћан програм, и може да рукује везама преко повратних позива. Инструкције како поставити <command
>mgetty</command
> у ову сврху одржава <personname
><firstname
>Колин</firstname
> <surname
>Макинон</surname
></personname
> <email
>colin@wew.co.uk</email
> на <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm"
>http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink
>.</para>

<para
>Постоји и готов пакет за Линукс на <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html"
>http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink
>, који одржава <personname
><firstname
>Франк</firstname
> <othername
>Б.</othername
> <surname
>Брокен</surname
></personname
> <email
>frank@icce.rug.nl</email
>. Пошто постављање овог пакета није баш лако (иако је непроблематично) написао сам кратак увод на <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
>http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink
> (такође даје општији увод у повратне позиве).</para>

</sect2>
</sect1>

<sect1 id="nt-callback">
<title
>РАС повратни позиви под Виндоузом НТ</title>

<para
>Виндоуз НТ користи потпуно другачији прилаз од претходно описаног. НТ захтева проширење самог протокола ППП, звано ЦБЦП. <command
>pppd</command
> називно има подршку за овај протокол, али се мора укључити при компиловању. Ако неко успе да се повеже на сервер повратних позива под НТ‑ом, молимо да нас обавести.</para>

</sect1>
</chapter>
