<chapter id="dialog-setup">
<title
>Ręczna konfiguracja połączenia</title>

<para
>Ręczna konfiguracja połączenia nie jest dużo trudniejsze niż z pomocą Asystenta.</para>

<para
>Wywołanie okna dialogowego konfiguracji odbywa się podobnie jak uruchamianie asystenta. Należy uruchomić program &kppp; poprzez wybranie w menu <guimenu
>K</guimenu
> pozycji <guisubmenu
>Internet</guisubmenu
>, a następnie <guimenuitem
>Narzędzie telefonicznego łączenia z Internetem KPPP</guimenuitem
></para>

<para
>Pojawi się następujące okno dialogowe:</para>

<screenshot>
<screeninfo
>Ekran konfiguracji narzędzia do telefonicznego łączenia z Internetem - &kppp;</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-dialler-tab.png" format="PNG"/>
</imageobject>
<textobject
><phrase
>Ekran konfiguracji narzędzia do telefonicznego łączenia z Internetem - &kppp;</phrase>
</textobject>
<caption
><para
>Ekran konfiguracji narzędzia do telefonicznego łączenia z Internetem - &kppp;</para
></caption>
</mediaobject>
</screenshot>

<para
>Prawdopodobnie po pierwszym uruchomieniu brak będzie skonfigurowanych połączeń, poniżej przedstawiony zostanie opis jak to zrobić.</para>

<para
>Click the <guibutton
>Setup</guibutton
> button to begin setting up a new Internet connection.</para>

<para
>This time, choose <guilabel
>Dialog setup</guilabel
> and you'll see the following Dialog appear:</para>

<screenshot>
<screeninfo
>Okno dialogowe <guilabel
>Nowe połączenie</guilabel
></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-dial-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Okno dialogowe <guilabel
>Nowe połączenie</guilabel
></phrase>
</textobject>
<caption>
<para
>Okno dialogowe <guilabel
>Nowe połączenie</guilabel
></para>
</caption>
</mediaobject>
</screenshot>

<!-- Make a screenshot of the actual new Account Dialog with no entries -->

<para
>Okno dialogowe <guilabel
>Nowe połączenie</guilabel
> składa się z następujących kart:</para>

<itemizedlist>
<listitem>
<para
><link linkend="account-dial"
><guilabel
>Dzwonienie</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-ip"
><guilabel
>Adres IP</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-gateway"
><guilabel
>Bramka</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-dns"
><guilabel
>DNS</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-login-script"
><guilabel
>Skrypt</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-execute"
><guilabel
>Uruchom</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link
linkend="account-accounting"
><guilabel
>Koszty</guilabel
></link
></para>
</listitem>
</itemizedlist>

<para
>Zwykle nie trzeba wypełniać wszystkich powyższych informacji, poniżej opisane jednak zostaną wszystkie elementy</para>

<sect1 id="account-dial">
<title
>The <guilabel
>Dial</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>Dzwonienie</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-dial-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>Dzwonienie</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta <guilabel
>Dzwonienie</guilabel
> okna dialogowego Nowe połączenie</para>
</caption>
</mediaobject>
</screenshot>

<para
>Karta <guilabel
>Dzwonienie</guilabel
> zawiera następujące opcje:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Nazwa połączenia:</guilabel
></term>
<listitem>
<para
>Należy tu wprowadzić nazwę połączenia. Może to być dowolnie wybrany tekst, jednak w przypadku korzystania z wielu połączeń, nazwy nie mogą się powtarzać.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Numer telefonu</guilabel
></term>
<listitem>
<para
>Tutaj należy określić numer telefonu, na który ma dzwonić modem. Dla zwiększenia czytelności numeru, można wykorzystać znak<quote
>-</quote
>. Jeżeli oddzielisz od siebie kilka numerów znakiem dwukropka ((&eg; <userinput
>1111111:2222222:3333333</userinput
>, program &kppp; będzie próbował dodzwonić się po kolei na każdy z nich, jeżeli otrzyma sygnał zajętości. Można używać przycisków <guibutton
>Dodaj</guibutton
> w celu dodania kolejnego numeru do listy, <guibutton
>Usuń</guibutton
> w celu jego usunięcia, oraz ikon <guiicon
>do góry</guiicon
> i <guiicon
>do dołu</guiicon
> w celu zmiany kolejności na liście.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Uwierzytelnianie</guilabel
></term>
<listitem>
<para
>W tej pozycji należy wybrać metodę uwierzytelniania dla konfigurowanego połączenia. Informację o wymaganej metodzie uwierzytelniania, można uzyskać od dostawcy internetowego. Wykorzystanie metod <acronym
>PAP</acronym
> i <acronym
>CHAP</acronym
> zostało opisane w rozdziale: <xref linkend="chap-and-pap"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Zapamiętaj hasło</guilabel
></term>
<listitem>
<para
>Zaznaczenie tej opcji, spowoduje, że program &kppp; będzie przechowywał wprowadzone hasło pomiędzy kolejnymi połączeniami.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guibutton
>Dostosuj argumenty pppd...</guibutton
></term>
<listitem>
<para
>Wybranie tej opcji wywołuje okno parametrów demona <application
>pppd</application
>. Należy wprowadzić tu parametry i opcje, które &kppp; powinno przekazać przy wywoływaniu demona <application
>pppd</application
>. Ich lista i opis dostępna jest w podręczniku programu <application
>pppd</application
>. Należy unikać manipulowania tymi parametrami, jeżeli nie jest to konieczne.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-ip">
<title
>The <guilabel
>IP</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>Adres IP</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-ip-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>Adres IP</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta <guilabel
>Adres IP</guilabel
> okna dialogowego Nowe połączenie</para>
</caption>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term
><guilabel
>Zmienny adres IP</guilabel
></term>
<listitem>
<para
>Należy zdobyć informację od swojego dostawcy Internetu (<acronym
>ISP</acronym
>) czy wykorzystywane jest dynamiczne przydzielanie adresów <acronym
>IP</acronym
>. Jeżeli tak jest, to adres <acronym
>IP</acronym
> będzie się zmieniał przy każdym połączeniu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Stały adres IP</guilabel
></term>
<listitem>
<para
>Opcja ta powinna być zaznaczona, w przypadku gdy dostawca Internetu <acronym
>ISP</acronym
> przydziela użytkownikowi stały adres <acronym
>IP</acronym
>. W takim wypadku, należy ten adres wprowadzić w polu <guilabel
>Adres IP</guilabel
>, a także wypełnić Pole <guilabel
>Maska podsieci</guilabel
>. Informacje te można otrzymać od swojego dostawcy Internetu. Dynamicznie przydzielane zmienne adresy IP, są wykorzystywane przez większość dostawców Internetu, dlatego najczęściej należy pozostawić to pole nie zaznaczone.</para>
</listitem>
</varlistentry>
<varlistentry id="auto-configure-hostname">
<term
><guilabel
>Skonfiguruj automatycznie nazwę komputera z tego IP</guilabel
></term>
<listitem>
<para
>Wybranie tej opcji, spowoduje iż &kppp; ustawi nazwę komputera i domenę dla Twojego komputera po nawiązaniu połączenia <acronym
>ppp</acronym
>.</para>
<para
>Ustawianie nazwy następuje po odpytaniu serwera DNS o nazwę hosta dla numeru <acronym
>IP</acronym
> przydzielonego dla połączenia <acronym
>ppp</acronym
>.</para>
<para
>Opcja, ta może być użyteczna dla użytkowników korzystających z protokołu "talk", wymagającego aby nazwa komputera była identyczna, z nazwą zdefiniowaną dla danego numeru IP. Opcja ta powoduje ignorowanie ustawienia <guilabel
>Nazwa domeny</guilabel
> w sekcji <guilabel
>DNS</guilabel
>. Ustawienia domyślne są przywracane do wartości pierwotnych po zakończeniu połączenia <acronym
>ppp</acronym
>.</para>
<para
>Wykorzystanie tej opcji <emphasis
>nie</emphasis
> jest konieczne, jeżeli użytkownik wykorzystuje połączenie do przeglądania Internetu, czytania e-maili lub pogawędek internetowych. Ma też ona niepożądany skutek uboczny w postaci zablokowania nowych połączeń do X serwera, innymi słowy zablokowana jest możliwość otwierania jakichkolwiek nowych programów wykorzystujących interfejs graficzny.</para>
<para
>Opcja ta powinna być włączana tylko gdy jest naprawdę potrzebna.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-gateway">
<title
>The <guilabel
>Gateway</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>Bramka</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-gateway-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>Bramka</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta <guilabel
>Bramka</guilabel
> okna dialogowego Nowe połączenie</para>
</caption>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term
><guilabel
>Domyślna bramka</guilabel
></term>
<listitem>
<para
>Opcja domyślnie włączona. Powoduje, iż program demona <application
>pppd</application
> konfiguruje domyślną bramkę dla połączenia.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Stała Bramka</guilabel
></term>
<listitem>
<para
>Opcję należy wybrać, jeżeli niezbędne jest podanie adresu bramki innego niż domyślny.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Przypisz domyślny routing dla tej bramki</guilabel
></term>
<listitem>
<para
>Ustawienie domyślnej bramki. Jest prawie pewne, iż ta opcja powinna być zaznaczona (i jest to ustawienie domyślne).</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-dns">
<title
>The <guilabel
>DNS</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>DNS</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-dns-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>DNS</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta <guilabel
>DNS</guilabel
> okna dialogowego Nowe połączenie</para>
</caption>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term
><guilabel
>Domena:</guilabel
></term>
<listitem>
<para
>Należy tu wprowadzić nazwę domeny wykorzystywaną dla komputera. Analogicznie jak w przypadku opcji <acronym
>DNS</acronym
>, nazwa domeny powraca do wartości bieżącej zdefiniowanej w pliku <filename
>/etc/resolv.conf</filename
> po zakończeniu połączenia. Jeżeli pole pozostawiono niewypełnione, to program nie ingeruje w nazwę domeny ustawioną w pliku <filename
>/etc/resolv.conf</filename
></para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Konfiguracja:</guilabel
></term>
<listitem>
<para
>Należy wybrać pomiędzy opcją: <guilabel
>Automatyczna</guilabel
> (dostawca Internetu <acronym
>ISP</acronym
> automatycznie przydziela adresy serwerów <acronym
>DNS</acronym
> po nawiązaniu połączenia) oraz <guilabel
>Ręczna</guilabel
>. Po wybraniu drugiej opcji, dostępna staje się sekcja <guilabel
>Adres IP dla DNS</guilabel
>.</para
> 
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Adres IP dla DNS</guilabel
></term>
<listitem>
<para
>Ta część okna staje się aktywna, w chwili wybrania opcji <guilabel
>Ręczna</guilabel
>. Należy podać tutaj listę serwerów DNS przydzielonych przez dostawcę Internetu (<acronym
>ISP</acronym
>). Niezbędne jest podanie co najmniej jednego adresu serwera DNS, aby system operacyjny mógł przetłumaczyć czytelne dla człowieka adresy serwerów (np.: <systemitem
>ftp.kde.org</systemitem
>) na odpowiadające im numery <acronym
>IP</acronym
>. Adresy serwerów  <acronym
>DNS</acronym
> muszą być wprowadzone w ich postaci liczbowej (np. <systemitem
>128.231.231.233</systemitem
>). Zostają one dodane w trakcie działania programu do pliku  <filename
>/etc/resolv.conf</filename
>.</para
> 
<para
>Naciśnięcie przycisku <guibutton
>Dodaj</guibutton
> spowoduje dodanie nowego adresu serwera <acronym
>DNS</acronym
> do listy. Przycisk <guibutton
>Usuń</guibutton
> usuwa pojedynczy adres serwera z listy.</para
> 
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Wyłącz istniejące DNS w trakcie połączenia</guilabel
></term>
<listitem>
<para
>Po zaznaczeniu tej opcji, wszystkie wpisane w pliku <filename
>/etc/resolv.conf</filename
> serwery DNS zostaną wyłączone w trakcie trwania połączenia.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-login-script">
<title
>The <guilabel
>Login Script</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>Skrypt</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-login-script-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>Skrypt</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta <guilabel
>Skrypt</guilabel
> okna dialogowego Nowe połączenie</para>
</caption>
</mediaobject>
</screenshot>

<para
>W karcie <guilabel
>Skrypt</guilabel
> możliwe jest stworzenie skryptu logowania, specyficznego dla dostawcy Internetu do którego realizowane jest połączenie. Przed stworzeniem skryptu można skorzystać z terminala oraz informacji uzyskanych od dostawcy internetowego <acronym
>ISP</acronym
>, aby przeanalizować jaka sekwencja poleceń jest wykonywana przy nawiązywaniu połączenia.</para>

<para
>Po lewej stronie okna znajduje się lista wyboru, służąca do wybierania kolejno wykonywanych poleceń skryptu. W polu po prawej stronie należy wprowadzić wymagane dla danego polecenia parametry. Naciśnięcie przycisku <guibutton
>Dodaj</guibutton
> spowoduje dodanie wpisu <emphasis
>na końcu</emphasis
> edytowanego skryptu, widocznego w dolnej części okna dialogowego. Przycisk <guibutton
>Wstaw</guibutton
> powoduje umieszczenie polecenia w dowolnej części skryptu, zaś przycisk <guibutton
>Usuń</guibutton
> usuwa wybraną linię ze skryptu.</para>

<para
>Lista wyboru zawiera następujące polecenia:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Expect</guilabel
></term>
<listitem>
<para
>&kppp; będzie oczekiwał pojawienia się zdefiniowanego ciągu znaków.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Send</guilabel
></term>
<listitem>
<para
>&kppp; wyśle zdefiniowany ciąg znaków.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Scan</guilabel
></term>
<listitem>
<para
>&kppp; będzie przeszukiwać wejściowy ciąg znaków, w poszukiwaniu zdefiniowanej sekwencji, a następnie przechowa ciąg znaków następujący po tej sekwencji (do napotkania znaku końca linii) w wewnętrznym buforze. Spacje rozpoczynające i kończące ten ciąg są pomijane.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Save</guilabel
></term>
<listitem>
<para
>Program przechowuje wprowadzony do bufora tekst do określonego rejestru. Jedynym dostępnym rejestrem jest w chwili obecnej rejestr <varname
>password</varname
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Pause</guilabel
></term>
<listitem>
<para
>Powoduje przerwanie działania skryptu i oczekiwanie przez zdefiniowaną liczbę sekund.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Hangup</guilabel
></term>
<listitem>
<para
>&kppp; wysyła do modemu polecenie <command
>hangup</command
> (rozłączenia).</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Answer</guilabel
></term>
<listitem>
<para
>&kppp; ustawia tryb pracy modemu na odpowiadanie na połączenia przychodzące.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Timeout</guilabel
></term>
<listitem>
<para
>Zmienia domyślny czas oczekiwania na określoną liczbę sekund w trakcie wykonywania skryptu. W razie potrzeby, można to polecenie wykonywać dowolną liczbę razy w trakcie wykonywania skryptu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Prompt</guilabel
></term>
<listitem>
<para
>Program &kppp; poprosi użytkownika o podanie ciągu znaków, wyświetlając wpisany tekst jako podpowiedź. Użytkownik zobaczy wprowadzany tekst. Jeżeli tekst podpowiedzi, zawierać będzie znacznik <userinput
>##</userinput
>, to ten fragment zostanie zastąpiony, aktualną zawartością bufora, zapisaną przez polecenie <guilabel
>scan</guilabel
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>PWPrompt</guilabel
></term>
<listitem>
<para
>Program &kppp; prosi użytkownika o wprowadzenie ciągu znaków, wyświetlając podany tekst w pytaniu. Przy wprowadzaniu, zamiast znaków pojawi się gwiazdka "*".</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>ID</guilabel
></term>
<listitem>
<para
>Jeżeli pole <guilabel
>Nazwa użytkownika</guilabel
> w głównym oknie programu &kppp; jest wypełnione, to jego zawartość jest wysyłana jako <acronym
>ID</acronym
>. Jeżeli pole <guilabel
>Nazwa użytkownika</guilabel
> nie jest wypełnione, to program &kppp; zapyta użytkownika, prosząc o podanie nazwy <acronym
>ID</acronym
>, wyświetlając wprowadzony tekst jako podpowiedź. Użytkownik, zobaczy wprowadzany przez siebie tekst. Przy kolejnym wykonaniu tego fragmentu skryptu (np. przy wykonywaniu go w pętli lub połączenia zwrotnego) pytanie zostanie wyświetlone niezależnie od tego, czy pole <guilabel
>Nazwa użytkownika</guilabel
> zostało wypełnione.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Password</guilabel
></term>
<listitem>
<para
>Jeżeli pole <guilabel
>Hasło</guilabel
> w głównym oknie programu &kppp; jest wypełnione, to wyślij to hasło. Jeżeli nie, to poproś użytkownika o wprowadzenie hasła, wyświetlając ustawiony tekst jako podpowiedź. Zamiast wprowadzanego tekstu, będą widoczne gwiazdki "*". Przy kolejnym wykonaniu tego fragmentu skryptu (np. przy wykonywaniu go w pętli lub połączenia zwrotnego) pytanie zostanie wyświetlone niezależnie od tego, czy pole <guilabel
>Nazwa użytkownika</guilabel
> zostało wypełnione.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>LoopStart</guilabel
></term>
<listitem>
<para
>&kppp; oczekuje na otrzymanie określonego tekstu. Tekst ten zostanie zapamiętany do wykorzystania w poleceniu <varname
>LoopEnd</varname
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>LoopEnd</guilabel
></term>
<listitem>
<para
>Program &kppp; będzie czekać na pojawienie się określonego ciągu znaków, przed zakończeniem pętli. Jeżeli ciąg znaków będący parametrem polecenia <varname
>LoopStart</varname
> pojawi się, spowoduje to skok do linii następującej po poleceniu <varname
>LoopStart</varname
>. Pozwala to na powtarzanie wyświetlania pytań o nazwę użytkownika i hasło.</para>
</listitem>
</varlistentry>
</variablelist>

<sect2>
<title
>Przykładowe skrypty</title>

<example>
<title
>Przykład prostego skryptu logowania</title>
<para
>Przykładowy skrypt połączeniowy wykorzystywany przez autora programu: </para>

<screen
>Expect      ID:                        <lineannotation
># czekaj na ciąg:</lineannotation>
 Send        myid                       <lineannotation
># wyślij swoją nazwę użytkownika (zamień myid na rzeczywistą nazwę)</lineannotation>
 Expect      word:                      <lineannotation
># czekaj na  'password'</lineannotation>
 Send        4u3fjkl                    <lineannotation
># wyślij hasło (tutaj przykładowo '4u3fjkl')</lineannotation>
 Expect      granted                    <lineannotation
># Oczekuj na tekst 'Permission granted' po poprawnym zalogowaniu.</lineannotation>
 Send        ppp                        <lineannotation
># uruchom sesję ppp po stronie dostawcy Internetu.</lineannotation
>
</screen>

</example>

<example>
<title
>Skrypt logowania, zadający pytanie o nazwę użytkownika i hasło i wykorzystujący pętle</title>

<para
>Poniżej widoczny jest skrypt zawierający pytanie o nazwę użytkownika i hasło. Pytanie pojawi się niezależnie od tego co zostało wprowadzone w polach <guilabel
>Nazwa użytkownika</guilabel
> oraz <guilabel
>Hasło</guilabel
> w głównym oknie dialogowym programu &kppp;.</para>

<para
>Skrypt ten ilustruje sposób wykorzystania zestawu poleceń LoopStart/LoopEnd. Jeżeli procedura logowania nie powiedzie się (np. z powodu źle wpisanego hasła) dostawca Internetu zwróci komunikat błędu, ponawiając pytanie o nazwę użytkownika i hasło. Jeżeli ciąg znaków <computeroutput
>ID:</computeroutput
> zostanie wykryty przed wykonaniem polecenia LoopEnd, program &kppp; wróci do linii następującej po poleceniu LoopStart.</para>

<screen
>LoopStart   ID:                        <lineannotation
># oczekuje na nazwę użytkownika:</lineannotation>
 Prompt      Enter ID:                  <lineannotation
># Pyta o nazwę użytkownika i wysyła ją.</lineannotation>
 Expect      word:                      <lineannotation
># oczekuje na hasło'</lineannotation>
 PWPrompt    Enter Password:            <lineannotation
># Pyta o hasło i wysyła je.</lineannotation>
 LoopEnd     granted                    <lineannotation
># Dostawca wysyła tekst 'Permission granted' w przypadku pomyślnego logowania.</lineannotation>
 Send        ppp                        <lineannotation
># Uruchamia połączenie ppp po stronie dostawcy Internetu</lineannotation
>
</screen>
</example>

<example>
<title
>Pytanie o informacje nie wprowadzone w głównym oknie</title>

<para
>Widoczny poniżej skrypt, pyta od nazwę użytkownika i hasło w przypadku, ale tylko wtedy, gdy odpowiednie pola w głównym oknie programu  &kppp; nie zostały wypełnione.</para>

<screen
>LoopStart   ID:                        <lineannotation
># oczekuje na tekst ID:</lineannotation>
 ID          Enter ID:                  <lineannotation
># pyta o nazwę użytkownika i wysyła ją.</lineannotation>
 Expect      word:                      <lineannotation
># oczekuje na tekst 'password'</lineannotation>
 Password    Enter Password             <lineannotation
># Pyta o hasło i wysyła je.</lineannotation>
 LoopEnd     granted                    <lineannotation
># dostawca wysyła tekst 'Permission granted' po pomyślnym zalogowaniu.</lineannotation>
 Send        ppp                        <lineannotation
># Uruchamia połączenie ppp po stronie dostawcy Internetu</lineannotation
>
</screen>

</example>

<example>
<title
>Skrypt do połączenia z dostawcą Internetu <acronym
>ISP</acronym
>, który używa algorytmu challenge/response do uwierzytelniania</title>

<para
>Widoczny poniżej skrypt, stosowany jest gdy dostawca Internetu stosuje algorytm challenge/response do uwierzytelniania. Zwykle, wykorzystywany jest sprzętowy klucz (token, coś w rodzaju kalkulatora z wyświetlaczem). Użycie tokenu wymaga znajomości hasła. Po zadzwonieniu na numer dostawcy Internetu, pojawia się ciąg znaków (challenge) który należy wprowadzić do sprzętowego klucza (tokenu). Pojawiające się na wyświetlaczu tokenu dynamicznie przydzielone hasło, należy wprowadzić w celu uzyskania połączenia.</para>

<screen
>LoopStart   ID:                        <lineannotation
># czekaj na nazwę użytkownika ID:</lineannotation>
 ID          Enter ID:                  <lineannotation
># pytanie o nazwę i wysłanie.</lineannotation>
 Scan        Challenge:                 <lineannotation
># oczekuj na 'Challenge' i zapamiętaj tekst do napotkania znaku nowej linii.</lineannotation>
 Expect      Password:                  <lineannotation
># czekaj na 'password'</lineannotation>
 Prompt      Twój token to ## - Wprowadź hasło  # Pytanie o hasło i przesłanie go.
 LoopEnd     granted                    <lineannotation
># Dostawca Internetu wysyła tekst "granted" informujący o sukcesie.</lineannotation>
 Send        ppp                        <lineannotation
># uruchamia połączenie ppp po stronie dostawcy Internetu.</lineannotation
>
</screen>
</example>

<example>
<title
>Wykorzystanie rozkazów "Scan" i "Save" w skryptach</title>

<para
>Poniższy skrypt, przedstawia procedurę logowania do fikcyjnego dostawcy Internetu <acronym
>ISP</acronym
>, który wymaga nowego hasła przy każdym nowym połączeniu. Nowe hasło musi zostać zweryfikowane i zapisane przed następną sesją połączenia. </para>

<screen
>University of Lummerland
 
 Login:mylogin
 Password: 
 The password for your next session is: YLeLfkZb
 Please record and enter it for verification.
 Verification:YLeLfkZb
 
 1 = telnet
 2 = SLIP
 3 = PPP
 
 Your choice:
</screen>

<para
>Program &kppp; może zrealizować to uciążliwe zadania, za użytkownika, eliminując ryzyko zagubienia kawałka papieru na którym zapisane zostało aktualne hasło. Kluczowym elementem tego skryptu jest kombinacja poleceń: Scan/Save.</para>

<screen
>7 Expect      Login:                     <lineannotation
># czekaj na pytanie o nazwę użytkownika</lineannotation>
 ID                                     <lineannotation
># wyślij nazwę użytkownika</lineannotation>
 Expect      Password:                  <lineannotation
># czekaj na pytanie o hasło</lineannotation>
 Password                               <lineannotation
># wyślij hasło</lineannotation>
 Scan        is:                        <lineannotation
># czekaj na tekst '... next session is:' a następnie
                                        # odczytaj przekazane hasło</lineannotation>
 Save        password                   <lineannotation
># zapisz hasło do potrzeb kolejnego logowania</lineannotation>
 Expect      Verification:              <lineannotation
># czekaj na tekst 'Verification:'</lineannotation>
 Password                               <lineannotation
># prześlij nowe hasło do weryfikacji</lineannotation>
 Expect      choice:                    <lineannotation
># poczekaj na pytanie dotyczące wyboru opcji połączenia</lineannotation>
                                        <lineannotation
># (telnet, SLIP, PPP)</lineannotation>
 Send        3                          <lineannotation
># wybierz opcję 3, np.: PPP</lineannotation
>
</screen>
</example>

</sect2>

</sect1>

<sect1 id="account-execute">
<title
>The <guilabel
>Execute</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>Uruchom</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-execute-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>Uruchom</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta konta <guilabel
>Uruchom</guilabel
></para>
</caption>
</mediaobject>
</screenshot>

<para
>Można tu wybrać polecenia jakie mają zostać wykonane na pewnych etapach połączenia. Polecenia są wykonywane z Twoim prawdziwym identyfikatorem użytkownika, zatem nie można wykonać programów wymagających uprawnień administratora (o ile sam nim w danym momencie nie jesteś)</para>

<para
>Należy podać pełną ścieżkę dostępu do programu, w przeciwnym wypadku &kppp; może go nie znaleźć.</para>

<para
>Można tu ustawić polecenia wykonywane na pewnych etapach połączenia modemowego.</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Przed połączeniem</guilabel
></term>
<listitem>
<para
>Wykonuje polecenie przez rozpoczęciem dzwonienia do dostawcy internetowego <acronym
>ISP</acronym
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Po połączeniu</guilabel
></term>
<listitem>
<para
>Polecenie wykonywane tylko po zakończonym sukcesem połączeniu do Internetu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Przed rozłączeniem</guilabel
></term>
<listitem>
<para
>Polecenie wykonywane w czasie trwania połączenia, tuż przed rozłączeniem się modemu.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Po rozłączeniu</guilabel
></term>
<listitem>
<para
>Polecenie wykonywane po zamknięciu połączenia.</para>
</listitem>
</varlistentry>
</variablelist>

<para
>Można tutaj uruchamiać na przykład program <application
>leafnode</application
> tuż po połączeniu, do sprawdzania poczty. Można sprawdzać kolejkę poczty wychodzącej tuż przed rozłączeniem. Można też wykorzystać ze skryptu <quote
>czyszczącego</quote
> do usunięcia dzienników (logów) oraz pamięci podręcznej po rozłączeniu.</para>

</sect1>

<sect1 id="account-accounting">
<title
>The <guilabel
>Accounting</guilabel
> tab</title>

<screenshot>
<screeninfo
>Karta <guilabel
>Koszty</guilabel
> okna dialogowego Nowe połączenie</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-accounting-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Karta <guilabel
>Koszty</guilabel
> okna dialogowego Nowe połączenie</phrase>
</textobject>
<caption
><para
>Karta <guilabel
>Koszty</guilabel
> okna dialogowego Nowe połączenie</para>
</caption>
</mediaobject>
</screenshot>

<para
>Zaznaczenie opcji <guilabel
>Włącz obliczanie kosztów połączenia</guilabel
> włącza lub wyłącza funkcję liczenia kosztów.</para>

<para
>Z listy należy wybrać sposób liczenia kosztów uzależniony od kraju i dostawcy internetowego.</para>

<para
>Jeżeli na liście nie ma żądanego dostawcy Internetu, możliwe jest zdefiniowanie własnego zestawu zasad liczenia kosztów poprzez skopiowanie dostarczonego szablonu. Więcej informacji jako to zrobić znajduje się w <link linkend="appendix-accounting-template"
>dodatku do dokumentacji</link
>.</para>

<para
>Ostatnią opcją w tym oknie, jest <guilabel
>Podczas połączenia zliczaj</guilabel
>, opisana poniżej.</para>

<sect2>
<title
>Zliczanie przesłanych danych</title>

<sect3>
<title
>Na czym polega funkcja zliczania przesłanych danych?</title>

<para
>Zlicza ona po prostu liczbę bajtów przesłanych do i z Internetu przez program &kppp;. Zliczane mogą być bajty wysyłane, odbierane lub wysyłane i odbierane jednocześnie, w zależności od wyboru użytkownika.</para>

</sect3>

<sect3>
<title
>Do czego mogę wykorzystywać tę funkcję?</title>

<para
>Wielu dostawców internetowych, obciąża użytkowników kosztami połączenia w zależności od przesłanych danych. Czasami dostawca Internetu <acronym
>ISP</acronym
> oferuje stałą kwotę do wysokości pewnego limitu, a następnie obciąża kosztami przesłania za każdy kolejny megabajt ponad ten limit. Program &kppp; pokazuje użytkownikowi aktualny stan przesłanych danych, co pozwala na dokładną kontrolę kosztów korzystania z Internetu. Nawet jeśli użytkownik nie jest obciążany kosztami dostępu w zależności od przesłanych danych, to może skorzystać z tej opcji dla zaspokojenia własnej ciekawości.</para>

</sect3>

<sect3>
<title
>Który rodzaj zliczania wybrać?</title>

<para
>W dużej części uzależnione jest to od dostawcy Internetu. Wielu z nich, oblicza jedynie liczbę megabajtów pobranych z Internetu, ignorując ilość danych wysyłanych. W takim wypadku należy wybrać <guilabel
>bajty WE</guilabel
>. Jeżeli koszty uzależniane są od ruchu w obie strony należy wybrać <guilabel
>bajty WE i WY</guilabel
>. Pozycja <guilabel
>bajty WY</guilabel
>  umieszczona została raczej w celu zachowania kompletności listy, jako że nie jest autorom znany żaden dostawca Internetu, który wykorzystuje ruch wyjściowy do naliczania kosztów. Z tej opcji mogą jednak korzystać osoby, uruchamiające serwer WWW lub &FTP; na komputerze domowym.</para>

</sect3>

<sect3>
<title
>Niedogodności</title>

<para
>Wykorzystanie opcji zliczania wysłanych i odebranych bajtów nie jest narzędziem doskonałym. Zliczanie dokonywane jest niezależnie od źródła danych, a wielu dostawców ustawia swoje limity przesyłania na dane wysyłane/odbierane poza ich wewnętrzną sieć. Inni ustalają różne poziomy limitów, w zależności od tego czy dane są z sieci dostawcy, w kraju czy z zagranicy. Może się okazać, że jeżeli Internet nie jest intensywnie wykorzystywany do przeglądania sieci, zaś większość stron pobierana jest z serwera pośredniczącego dostawcy Internetu, to dostawca nie pobiera żadnych kosztów za takie połączenie. Program  &kppp; nie jest w stanie kategoryzować pakietów <acronym
>IP</acronym
> w zależności od źródła ich pochodzenia, tak więc wszystkie będą wliczane do ruchu wychodzącego/przychodzącego. Innym przykładem może być stosowanie przez dostawcę internetowego serwera pośredniczącego dla grup dyskusyjnych, jak np.: <application
>nntpcached</application
>, wtedy jest pewne iż wartość przesyłania danych wykazana przez &kppp; będzie wyższa od wartości, za którą naliczone będą koszty dostępu do sieci. Z drugiej jednak strony, program &kppp; nigdy nie spowoduje, iż rachunek będzie wyższy niż to wynika z wyliczeń.</para>

</sect3>

</sect2>

</sect1>

</chapter>
