<chapter id="dialog-setup">
<title
>Встановлення з’єднання за допомогою діалогових вікон</title>

<para
>Налаштування з’єднання за допомогою діалогових вікон не набагато складніше за використання майстра.</para>

<para
>Відкрити діалогове вікно налаштування можна у той же спосіб, що і вікно майстра. Запустіть &kppp; з вашого <guimenu
>K</guimenu
>-меню. Відповідний пункт можна знайти у підменю <guisubmenu
>Інтернет</guisubmenu
> як <guimenuitem
>Засіб додзвону до Інтернету</guimenuitem
>.</para>

<para
>У відповідь на вибір цього пункту буде відкрито таке діалогове вікно:</para>

<screenshot>
<screeninfo
>Початкове вікно інструмента додзвону &kppp;</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-dialler-tab.png" format="PNG"/>
</imageobject>
<textobject
><phrase
>Початкове вікно інструмента додзвону &kppp;</phrase>
</textobject>
<caption
><para
>Початкове вікно інструмента додзвону &kppp;</para
></caption>
</mediaobject>
</screenshot>

<para
>На початку, ймовірно, у ньому не буде жодних записів, за допомогою яких можна почати з’єднання, отже, спочатку слід створити хоча б один такий запис.</para>

<para
>Щоб почати налаштування нового з’єднання, натисніть кнопку <guibutton
>Налаштувати</guibutton
>.</para>

<para
>Тепер оберіть пункт <guilabel
>Створити</guilabel
>, програма відкриє наступне діалогове вікно:</para>

<screenshot>
<screeninfo
>Діалогове вікно <guilabel
>Новий рахунок</guilabel
></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-dial-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Діалогове вікно <guilabel
>Новий рахунок</guilabel
></phrase>
</textobject>
<caption>
<para
>Діалогове вікно <guilabel
>Новий рахунок</guilabel
></para>
</caption>
</mediaobject>
</screenshot>

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

<para
>Діалогове вікно <guilabel
>Новий рахунок</guilabel
> складається з таких частин:</para>

<itemizedlist>
<listitem>
<para
><link linkend="account-dial"
><guilabel
>Набрати номер</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-ip"
><guilabel
>IP</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-gateway"
><guilabel
>Шлюз</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-dns"
><guilabel
>DNS</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-login-script"
><guilabel
>Скрипт реєстрації</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link linkend="account-execute"
><guilabel
>Виконати</guilabel
></link
></para>
</listitem>
<listitem>
<para
><link
linkend="account-accounting"
><guilabel
>Облік</guilabel
></link
></para>
</listitem>
</itemizedlist>

<para
>Зазвичай, вам не потрібно заповнювати всі поля, але кожне з цих полів буде докладно описано у наступних розділах.</para>

<sect1 id="account-dial">
<title
>Вкладка <guilabel
>Набрати номер</guilabel
></title>

<screenshot>
<screeninfo
>Вкладка <guilabel
>Дзвонити</guilabel
> облікового запису</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-dial-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Вкладка <guilabel
>Дзвонити</guilabel
> облікового запису</phrase>
</textobject>
<caption
><para
>Вкладка <guilabel
>Дзвонити</guilabel
> облікового запису</para>
</caption>
</mediaobject>
</screenshot>

<para
>На вкладці <guilabel
>Дзвонити</guilabel
> буде показано такі пункти:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Назва з’єднання</guilabel
></term>
<listitem>
<para
>Тут вам слід вказати назву облікового запису. Ви можете обрати будь-яку з тих, які вам подобаються, але якщо у вас буде декілька облікових записів, кожен з них повинен мати власну унікальну назву.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Номер телефону:</guilabel
></term>
<listitem>
<para
>Тут слід вказати номер телефону, за яким слід дзвонити. Ви можете скористатися символами на зразок <quote
>-</quote
> для того, щоб зробити телефон придатнішим для читання. Якщо ви вкажете послідовності цифр, відокремлені двокрапками (наприклад, <userinput
>1111111:2222222:3333333</userinput
>), &kppp; намагатиметься додзвонитися по черзі за кожним з вказаних номерів, якщо отримуватиме після додзвону сигнал «зайнято». Для додавання номера ви можете скористатися кнопкою <guibutton
>Додати</guibutton
>, за допомогою кнопки <guibutton
>Вилучити</guibutton
> можна вилучити номер зі списку, за допомогою кнопок зі стрілками <guiicon
>вгору</guiicon
> і <guiicon
>вниз</guiicon
> можна перевпорядкувати список.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Автентифікація</guilabel
></term>
<listitem>
<para
>Тут можна обрати належний спосіб розпізнавання, який &kppp; слід використовувати під час обміну інформацією з сервером. Відповідні відомості можна отримати у постачальника послуг Інтернет. Використання розпізнавань <acronym
>PAP</acronym
> і <acronym
>CHAP</acronym
> описано у главі <xref linkend="chap-and-pap"/>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Зберегти пароль</guilabel
></term>
<listitem>
<para
>Позначте цей пункт, якщо ви бажаєте, щоб &kppp; запам’ятав ваш пароль.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guibutton
>Налаштувати аргументи pppd...</guibutton
></term>
<listitem>
<para
>За допомогою цієї кнопки можна відкрити діалогове вікно параметрів <application
>pppd</application
>. За допомогою цього діалогового вікна ви можете додати будь-які бажані параметри, які на вашу думку &kppp; маж передати <application
>pppd</application
>. Щоб ознайомитися зі списком можливих параметрів, прочитайте сторінку довідника (man) <application
>pppd</application
>, але, якщо вам достеменно не відомо, що саме змінює той чи інший параметр, вам, ймовірно, слід утриматися від зміни цих параметрів.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-ip">
<title
>Вкладка <guilabel
>IP</guilabel
></title>

<screenshot>
<screeninfo
>Вкладка <guilabel
>IP</guilabel
> облікового запису</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-ip-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Вкладка <guilabel
>IP</guilabel
> облікового запису</phrase>
</textobject>
<caption
><para
>Вкладка <guilabel
>IP</guilabel
> облікового запису</para>
</caption>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term
><guilabel
>Динамічна адреса IP</guilabel
></term>
<listitem>
<para
>Позначте цей варіант, якщо ваш постачальник послуг Інтернет використовує динамічне призначення адрес <acronym
>IP</acronym
>. У такому випадку, адреса <acronym
>IP</acronym
> вашого комп’ютера змінюватиметься після кожного з’єднання.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Статична адреса IP</guilabel
></term>
<listitem>
<para
>Позначте цей пункт, якщо ваш постачальник послуг Інтернет надав вам статичну адресу <acronym
>IP</acronym
>. У цьому випадку вам також слід буде вказати цю адресу у полі <guilabel
>Адреса IP</guilabel
>, разом з будь-якою <guilabel
>Маскою підмережі</guilabel
>, якщо вона потрібна. Запитайте у представників вашого постачальника послуг, якщо не знаєте потрібних даних. Переважна більшість постачальників послуг Інтернет використовують динамічне призначення адрес, отже відсутність позначення цього варіанта, зазвичай, є правильним вибором.</para>
</listitem>
</varlistentry>
<varlistentry id="auto-configure-hostname">
<term
><guilabel
>Автоналаштувати назву вузла, виходячи з цього IP</guilabel
></term>
<listitem>
<para
>Позначте цей пункт, якщо ви бажаєте, щоб програма &kppp; встановила назву вузла і домен для вашого комп’ютера після успішного з’єднання <acronym
>ppp</acronym
>.</para>
<para
>Цю дія виконується за допомогою запиту, надісланого до визначеного сервера назв домену на основі <acronym
>IP</acronym
> призначено для зв’язку <acronym
>ppp</acronym
>.</para>
<para
>Цей пункт буде корисним для тих відокремлених комп’ютерів, на яких потрібно використовувати протоколи на зразок talk, для яких потрібно, щоб назва вузла залишалася однаковою, тією, під якою цей комп’ютер відомий у Інтернет. Цей пункт перевизначає параметр <guilabel
>Назва домену</guilabel
> у розділі <guilabel
>DNS</guilabel
>, типові значення параметрів комп’ютера буде відновлено після закриття з’єднання <acronym
>ppp</acronym
>.</para>
<para
>Цей пункт <emphasis
>не</emphasis
> знадобиться вам, якщо ви просто бажаєте встановити з’єднання з мережею Інтернет для перегляду сайтів, перевірки пошти або балачки. Побічним ефектом позначчення цього пункту буде те, що будь-яке нове з’єднання з вашим сервером X буде заборонено, — іншими словами, ви не зможете відкривати програм з графічним інтерфейсом користувача.</para>
<para
>Позначайте цей пункт, лише якщо впевнені, що він вам насправді потрібен.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-gateway">
<title
>Вкладка <guilabel
>Шлюз</guilabel
></title>

<screenshot>
<screeninfo
>Вкладка <guilabel
>Шлюз</guilabel
> облікового запису</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-gateway-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Вкладка <guilabel
>Шлюз</guilabel
> облікового запису</phrase>
</textobject>
<caption
><para
>Вкладка <guilabel
>Шлюз</guilabel
> облікового запису</para>
</caption>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term
><guilabel
>Типовий шлюз</guilabel
></term>
<listitem>
<para
>Позначте цей пункт, якщо ви бажаєте, щоб <application
>pppd</application
> використовував типовий шлюз для вашого комп’ютера. Типово, цей пункт позначено.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Статичний шлюз</guilabel
></term>
<listitem>
<para
>Позначте цей пункт, якщо ви бажаєте вказати шлюз, який буде використано замість типового.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Встановити типовий маршрут через цей шлюз</guilabel
></term>
<listitem>
<para
>Ймовірно, що цей пункт має бути позначено (типова поведінка програми).</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-dns">
<title
>Вкладка <guilabel
>DNS</guilabel
></title>

<screenshot>
<screeninfo
>Вкладка <guilabel
>DNS</guilabel
> облікового запису</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-dns-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Вкладка <guilabel
>DNS</guilabel
> облікового запису</phrase>
</textobject>
<caption
><para
>Вкладка <guilabel
>DNS</guilabel
> облікового запису</para>
</caption>
</mediaobject>
</screenshot>

<variablelist>
<varlistentry>
<term
><guilabel
>Назва домену:</guilabel
></term>
<listitem>
<para
>Тут слід вказати назву домену для вашого комп’ютера. Так само, як і адреси <acronym
>DNS</acronym
>, значення цього параметра буде відновлено до початкового значення, вказаного у файлі <filename
>/etc/resolv.conf</filename
>, після розірвання з’єднання. Якщо не вказувати жодних відомостей у цьому полі, назву домену буде взято з файла <filename
>/etc/resolv.conf</filename
></para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Налаштування:</guilabel
></term>
<listitem>
<para
>Тут ви можете обрати один з варіантів: <guilabel
>Автоматичне</guilabel
> (постачальник послуг інтернету буде автоматично видавати вам адреси серверів <acronym
>DNS</acronym
> після з’єднання) і <guilabel
>Ручне</guilabel
>. Якщо ви оберете ручне налаштування, буде відкрито доступ до розділу <guilabel
>Адреса IP сервера DNS</guilabel
>.</para
> 
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Адреса IP сервера DNS</guilabel
></term>
<listitem>
<para
>Доступ до цього розділу буде відкрито, якщо ви оберете пункт <guilabel
>Ручне</guilabel
> у попередньому пункті. Тут ви зможете додати адреси серверів назв домену вказані вам вашим постачальником послуг інтернету. Вам слід вказати принаймні одну адресу сервена назв домену, щоб ваша операційна система могла визначати адреси <acronym
>IP</acronym
> за адресами, призначеними для читання людиною, на зразок <systemitem
>ftp.kde.org</systemitem
>. Адреси серверів <acronym
>DNS</acronym
> слід вказувати у числовій формі, наприклад, <systemitem
>128.231.231.233</systemitem
>. Під час виконання дій зі з’єднання ці адреси буде додано до адрес з файла <filename
>/etc/resolv.conf</filename
>.</para
> 
<para
>Натисніть кнопку <guibutton
>Додати</guibutton
> для додавання кожної нової адреси <acronym
>DNS</acronym
> до списку, розташованого нижче. За допомогою кнопки <guibutton
>Вилучити</guibutton
> можна вилучити запис зі списку.</para
> 
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Вимкнути існуючі сервери DNS при з’єднанні</guilabel
></term>
<listitem>
<para
>Якщо ви позначите цей пункт, всі сервери <acronym
>DNS</acronym
>, перелічені у <filename
>/etc/resolv.conf</filename
>, буде вимкнено на час існування з’єднання.</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="account-login-script">
<title
>Вкладка <guilabel
>Скрипт реєстрації</guilabel
></title>

<screenshot>
<screeninfo
>Вкладка <guilabel
>Скрипт реєстрації</guilabel
> облікового запису</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-login-script-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Вкладка <guilabel
>Скрипт реєстрації</guilabel
> облікового запису</phrase>
</textobject>
<caption
><para
>Вкладка <guilabel
>Скрипт реєстрації</guilabel
> облікового запису</para>
</caption>
</mediaobject>
</screenshot>

<para
>Цією сторінкою діалогового вікна можна скористатися для створення скрипту реєстрації у постачальника послуг інтернету під час з’єднання. Ви можете скористатися міні-терміналом і відомостями, які було надано постачальником послуг інтернету, щоб визначити послідовність дій, які слід виконати.</para>

<para
>Оберіть пункт зі спадного списку, розташованого ліворуч, а потім додайте будь-які параметри для дії у полі редагування, розташованому праворуч. Для додавання записів у <emphasis
>кінець</emphasis
> скрипту скористайтеся кнопкою <guibutton
>Додати</guibutton
>, яку буде показано у нижній частині діалогового вікна. Кнопкою <guibutton
>Вставити</guibutton
> можна скористатися для вставки запису у довільне місце скрипту, кнопка <guibutton
>Вилучити</guibutton
> вилучає рядок зі скрипту.</para>

<para
>Серед можливих варіантів:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Expect</guilabel
></term>
<listitem>
<para
>&kppp; очікуватиме на отримання вказаного рядка.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Send</guilabel
></term>
<listitem>
<para
>&kppp; надішле вказаний рядок.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Scan</guilabel
></term>
<listitem>
<para
>&kppp; шукатиме у вхідному потоці вказаних рядок і зберігатиме всі символи від кінця рядка до наступного символу нового рядка у внутрішньому буфері. Кінцеві і початкові пробіли буде вилучено.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Save</guilabel
></term>
<listitem>
<para
>Зберегти попередньо отриманий рядок у вказаному регістрі. У поточній версії єдиним коректним регістром є <varname
>password</varname
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Pause</guilabel
></term>
<listitem>
<para
>Зробити паузу тривалістю у вказану кількість секунд.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Hangup</guilabel
></term>
<listitem>
<para
>&kppp; надішле команду <command
>hangup</command
> (повісити слухавку) модему.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Answer</guilabel
></term>
<listitem>
<para
>&kppp; переведе модем у режим відповіді.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Timeout</guilabel
></term>
<listitem>
<para
>Змінити у динамічному режимі під час виконання скрипту тривалість типового тайм-ауту на вказану у секундах. За потреби, тривалість тайм-ауту можна змінювати декілька раз під час виконання скрипту.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Prompt</guilabel
></term>
<listitem>
<para
>Надіслати запит користувачеві &kppp; на введення рядка, вказавши зазначений рядок як підказку. Користувач бачитиме те, що вводитиме. Якщо у зазначеному рядку буде позначка <userinput
>##</userinput
>, цю позначку буде замінено поточним вмістом внутрішнього буфера, отриманим раніше за допомогою команди <guilabel
>scan</guilabel
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>PWPrompt</guilabel
></term>
<listitem>
<para
>Запросити користувача &kppp; до введення рядка, вказавши зазначений рядок як підказку. У відповідь на кожен введений користувачем символ програма покаже зірочку.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>ID</guilabel
></term>
<listitem>
<para
>Якщо поле <guilabel
>Ім’я користувача</guilabel
> у головному діалоговому вікні &kppp; заповнено, надіслати вказане ім’я користувача. Якщо ж поле <guilabel
>Ім’я користувача</guilabel
> не заповнено, запросити користувача &kppp; до введення імені користувача, показавши вказаний рядок як підказку. Користувач бачитиме символи, які вводитиме. Під час повторного проходу, зокрема другої ітерації циклу або під час реєстрації на сервері зворотного виклику, запрошення буде показано незалежно від того, чи було заповнено поле <guilabel
>Ім’я користувача</guilabel
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Password</guilabel
></term>
<listitem>
<para
>Якщо поле <guilabel
>Пароль</guilabel
> у головному діалоговому вікні &kppp; заповнено, надіслати вказаний пароль. Якщо ж поле <guilabel
>Пароль</guilabel
> не заповнено, запросити користувача &kppp; до введення пароля, показавши вказаний рядок як підказку. Замість кожного введеного користувачем символу буде показано зірочку. Під час повторного проходу, зокрема другої ітерації циклу або під час реєстрації на сервері зворотного виклику, запрошення буде показано незалежно від того, чи було заповнено поле <guilabel
>Пароль</guilabel
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>LoopStart</guilabel
></term>
<listitem>
<para
>&kppp; очікуватиме на отримання вказаного рядка. Програма збереже цей рядок для наступного використання у <varname
>LoopEnd</varname
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>LoopEnd</guilabel
></term>
<listitem>
<para
>&kppp; очікуватиме на отримання вказаного рядка для завершення циклу. Якщо рядок, вказаний у відповідній змінній <varname
>LoopStart</varname
> буде отримано під час першої спроби, буде здійснено перехід до рядка після <varname
>LoopStart</varname
>, таким чином можна вмикати повтор у парних діалогових вікнах у стилі запитів на ім’я користувача і пароль.</para>
</listitem>
</varlistentry>
</variablelist>

<sect2>
<title
>Приклади скриптів</title>

<example>
<title
>Простий приклад скрипту реєстрації</title>
<para
>Отсь простий приклад скрипту, який використовував автор для з’єднання зі своїм постачальником послуг інтернету</para>

<screen
>Expect      ID:                        <lineannotation
># очікувати на ID: (ідентифікатор)</lineannotation>
 Send        myid                       <lineannotation
># вам слід замінити myid на ваш ідентифікатор</lineannotation>
 Expect      word:                      <lineannotation
># очікувати на рядок 'password'</lineannotation>
 Send        4u3fjkl                    <lineannotation
># надіслати пароль '4u3fjkl'</lineannotation>
 Expect      granted                    <lineannotation
># сервер постачальника відповідає 'Permission granted' за успішного входу.</lineannotation>
 Send        ppp                        <lineannotation
># запустити з’єднання ppp 
                                        # для вашого користувача на стороні постачальника.</lineannotation
>
</screen>

</example>

<example>
<title
>Скрипт реєстрації з запитом на ідентифікатор і пароль і циклами.</title>

<para
>Ось приклад для того самого облікового запису з запитом на ідентифікатор і пароль. Цей скрипт запитуватиме про ідентифікатор і пароль кожного разу, незалежно від тих відомостей, які було введено у поля <guilabel
>Ім’я користувача</guilabel
> і <guilabel
>Пароль</guilabel
> головного вікна &kppp;.</para>

<para
>У цьому скрипті також продемонстровано використання конструкцій на зразок LoopStart/LoopEnd. Якщо під час процедури реєстрації щось піде не так, наприклад, буде введено неправильний пароль, сервер постачальника послуг виведе повідомлення про помилку і перезапуститься цикл введення ідентифікатора і пароля рядком <computeroutput
>ID:</computeroutput
>. Якщо буде виявлено виведення рядка <computeroutput
>ID:</computeroutput
> до обробки інструкції LoopEnd, &kppp; повторно запустить скрипт, починаючи з рядка, який йде після інструкції LoopStart.</para>

<screen
>LoopStart   ID:                        <lineannotation
># зачекати на рядок ID:</lineannotation>
 Prompt      Enter ID:                  <lineannotation
># запросити користувача до введення ідентифікатора і надіслати введені дані.</lineannotation>
 Expect      word:                      <lineannotation
># зачекати на рядок 'password'</lineannotation>
 PWPrompt    Enter Password:            <lineannotation
># запросити користувача до введення пароля і надіслати введені дані.</lineannotation>
 LoopEnd     granted                    <lineannotation
># сервер постачальника автора повідомляє про успішну реєстрацію рядком 'Permission granted'.</lineannotation>
 Send        ppp                        <lineannotation
># цей рядок має запустити з’єднання ppp</lineannotation
>
</screen>
</example>

<example>
<title
>Скрипт, що надсилає запит на відомості, не вказані у головному діалоговому вікні.</title>

<para
>Ось скрипт, яким користується автор цього підручника для з’єднань зі своїм постачальником послуг інтернету. Цей скрипт запитає користувача про ім’я і пароль, лише якщо ці дані не було вказано у відповідних полях головного діалогового вікна &kppp;.</para>

<screen
>LoopStart   ID:                        <lineannotation
># зачекати на ім’я користувача:</lineannotation>
 ID          Enter ID:                  <lineannotation
># запитати користувача про ім’я і відіслати його.</lineannotation>
 Expect      word:                      <lineannotation
># зачекати на рядок 'password'</lineannotation>
 Password    Enter Password             <lineannotation
># запитати користувача про пароль і відіслати отримані дані.</lineannotation>
 LoopEnd     granted                    <lineannotation
># постачальник автора повідомляє про успішну реєстрацію рядком 'Permission granted'.</lineannotation>
 Send        ppp                        <lineannotation
># запустити для користувача з’єднання ppp</lineannotation>
                                        <lineannotation
># на стороні постачальника послуг</lineannotation
>
</screen>

</example>

<example>
<title
>Скрипт для серверів постачальників послуг інтернету, які використовують реєстрацію у режимі запит-відповідь.</title>

<para
>Ось скрипт, який автор використовує для з’єднання зі своїм постачальником послуг інтернету, у цьому скрипті використано певний різновид розпізнавання за схемою «запит-відповідь». Зазвичай, ви отримуєте апаратний ключ (smartcard з дисплеєм і клавіатурою, схожою на клавіатуру калькулятора) від свого постачальника послуг інтернету. Для користування ключем вам слід знати пароль. Після додзвону до сервера вашого постачальника послуг інтернету сервер покаже вам виклик. Вам слід ввести цей виклик у ключ і отримати у відповідь динамічний пароль. Після цього вам слід ввести цей пароль.</para>

<screen
>LoopStart   ID:                        <lineannotation
># зачекати на рядок ID:</lineannotation>
 ID          Enter ID:                  <lineannotation
># запросити користувача до введення ідентифікатора і надіслати отримані дані.</lineannotation>
 Scan        Challenge:                 <lineannotation
># знайти рядок 'Challenge' і зберегти всі дані, що йдуть за ним аж до символу нового рядка.</lineannotation>
 Expect      Password:                  <lineannotation
># зачекати на рядок 'password'</lineannotation>
 Prompt      Your token is ## - Enter Password  # запросити користувача до введення пароля і надіслати отримані дані.
 LoopEnd     granted                    <lineannotation
># сервер постачальника автора повідомляє про успішну реєстрацію рядком 'Permission granted'.</lineannotation>
 Send        ppp                        <lineannotation
># цей рядок має запустити з’єднання ppp
                                        # на стороні постачальника послуг</lineannotation
>
</screen>
</example>

<example>
<title
>Використання інструкцій Scan і Save у скриптах</title>

<para
>Нижче наведено журнал повідомлень, у якому показано процедуру реєстрації на уявному сервері постачальника послуг, який видає новий пароль під час кожного з’єднання. Цей новий пароль слід перевірити і записати для наступного сеансу. </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
>Для виконання цього обтяжливого завдання можна скористатися &kppp;, програма усуне ризик втрати невеличкого папірця, на якому ви могли записати поточний пароль. Основною частиною наведеного нижче скрипту є комбінація інструкцій Scan/Save.</para>

<screen
>7 Expect      Login:                     <lineannotation
># зачекати на запрошення до реєстрації</lineannotation>
 ID                                     <lineannotation
># надіслати ідентифікатор</lineannotation>
 Expect      Password:                  <lineannotation
># зачекати на запрошення до введення пароля</lineannotation>
 Password                               <lineannotation
># надіслати пароль</lineannotation>
 Scan        is:                        <lineannotation
># зачекати на рядок '... next session is:' і
                                        # отримати наведений далі пароль</lineannotation>
 Save        password                   <lineannotation
># зберегти новий пароль для наступної реєстрації</lineannotation>
 Expect      Verification:              <lineannotation
># зачекати на рядок 'Verification:'</lineannotation>
 Password                               <lineannotation
># надіслати новий пароль</lineannotation>
 Expect      choice:                    <lineannotation
># зачекати на запрошення, яке надасть вам можливість вибору</lineannotation>
                                        <lineannotation
># між різними варіантами (telnet, SLIP, PPP)</lineannotation>
 Send        3                          <lineannotation
># обрати варіант 3, тобто PPP</lineannotation
>
</screen>
</example>

</sect2>

</sect1>

<sect1 id="account-execute">
<title
>Вкладка <guilabel
>Виконати</guilabel
></title>

<screenshot>
<screeninfo
>Вкладка <guilabel
>Виконати</guilabel
> облікового запису</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-execute-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Вкладка <guilabel
>Виконати</guilabel
> облікового запису</phrase>
</textobject>
<caption
><para
>Вкладка <guilabel
>Виконати</guilabel
> облікового запису</para>
</caption>
</mediaobject>
</screenshot>

<para
>Тут ви можете обрати команди, які буде запущено на різних стадіях з’єднання. Ці команди буде запущено від імені вашого користувача, отже ви не можете виконувати жодних команд, які потребують дозволів адміністратора, хіба що ви виконуєте з’єднання з облікового запису адміністратора (root) (не робіть цього, на це є багато причин!)</para>

<para
>На забудьте вказати шлях до програми повністю, інакше &kppp; може не знайти цю програму.</para>

<para
>Ви можете додати команди, які слід виконати у чотири певні моменти у ході з’єднання:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Перед з’єднанням</guilabel
></term>
<listitem>
<para
>Виконати цю команду перед початком набору номера, так, щоб відповідну програму було вже запущено, коли модем з’єднуватиметься з постачальником інтернет-послуг.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Після з’єднання</guilabel
></term>
<listitem>
<para
>Виконати цю команду після успішного встановлення з’єднання.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Перед роз’єднанням</guilabel
></term>
<listitem>
<para
>Виконати цю команду, коли з’єднання ще не розірвано, перед тим, як модемом буде покладено трубку.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Після роз’єднання</guilabel
></term>
<listitem>
<para
>Виконати цю команду після того, як з’єднання буде розірвано.</para>
</listitem>
</varlistentry>
</variablelist>

<para
>Ви, наприклад можете запустити <application
>leafnode</application
> одразу після з’єднання або перевірити наявність нових повідомлень електронної пошти. У вас також може виникнути потреба у перевірці того, чи надіслано всі ваші листи з черги, перш ніж з’єднання буде розірвано. Крім того, ви можете скористатися скриптом <quote
>clean-up</quote
>, призначеним для спорожнення ваших журналів і кешу даних після розриву з’єднання.</para>

</sect1>

<sect1 id="account-accounting">
<title
>Вкладка <guilabel
>Облік</guilabel
></title>

<screenshot>
<screeninfo
>Облікові записи на вкладці <guilabel
>Облік</guilabel
></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kppp-account-accounting-tab.png" format="PNG"/>
</imageobject>
<textobject>
<phrase
>Облікові записи на вкладці <guilabel
>Облік</guilabel
></phrase>
</textobject>
<caption
><para
>Облікові записи на вкладці <guilabel
>Облік</guilabel
></para>
</caption>
</mediaobject>
</screenshot>

<para
>Позначте пункт <guilabel
>Увімкнути облік</guilabel
>, щоб увімкнути облік рахунку на телефонні розмови для цього облікового запису.</para>

<para
>Оберіть зі списку правила обліку для вашого постачальника телекомунікаційних послуг.</para>

<para
>Якщо вашого постачальника немає у списку, ви можете самі написати правила на основі шаблону, який можна знайти у <link linkend="appendix-accounting-template"
>додатку</link
>.</para>

<para
>Останній пункт на цій сторінці, <guilabel
>Облік переданих даних</guilabel
>, описано нижче.</para>

<sect2>
<title
>Облік переданих даних</title>

<sect3>
<title
>Що таке облік переданих даних?</title>

<para
>Загалом кажучи, облік переданих даних — це облік об’єму даних переданих у інтернет та з інтернету на ваш комп’ютер. &kppp; може рахувати вхідні байти, вихідні байти або обидва цих параметри. Ви можете обрати той спосіб обліку, який бажаєте (або мусите) використовувати.</para>

</sect3>

<sect3>
<title
>Чому мені слід використовувати облік переданих даних?</title>

<para
>Значна кількість постачальників послуг Інтернет створюють рахунки за послуги на основі об’єму переданих даних. Ще поширенішою є ситуація, коли постачальник послуг застосовує одну ціну на кожну одиницю об’єму інформації, якщо загальний об’єм переданих даних не перевищує визначеного значення, і іншу ціну за кожен мегабайт понад визначене значення. &kppp; покаже вам поточний обсяг переданих даних і допоможе зменшити ваші витрати за рахунками. Звичайно ж, навіть якщо ваші рахунки не залежать від обсягу переданих даних, ви можете увімкнути облік цього параметра, просто щоб задовольнити власну цікавість.</para>

</sect3>

<sect3>
<title
>Який тип обліку переданих даних мені слід обрати?</title>

<para
>Це головним чином залежить від вашого постачальника послуг інтернету. Значна кількість постачальників ведуть облік кількості мегабайтів даних, які ви звантажуєте з мережі Інтернет, а всі надіслані дані ігнорують. У такому випадку вам слід обрати варіант <guilabel
>Вхідних байтів</guilabel
>. Якщо ви сплачуєте за вхідні і вихідні дані, вам слід обрати варіант <guilabel
>Вхідні та вихідні байти</guilabel
>. Варіант <guilabel
>Вихідні байти</guilabel
> додано лише для повноти, авторові невідомі постачальники послуг, які ведуть облік лише вихідних даних. Хоча, цей варіант може бути корисним для тих з користувачів, домашні комп’ютери яких працюють у режимі веб- або &FTP;-сервера.</para>

</sect3>

<sect3>
<title
>Недоліки</title>

<para
>На жаль, у описаного вище способу обліку існує недолік. &kppp; просто лічить кількість байтів, незалежно від їх джерела. Значна кількість постачальників послуг встановлюють свої обмеження лише на доступ до даних мережі Інтернет, а не до даних зі своєї власної мережі. Деякі постачальники встановлюють різні обмеження на дані з власної мережі постачальника, дані з країни постачальника і дані з інших країн. Отже, якщо ви не переглядаєте мережу аж занадто активно і отримуєте більшу частину даних, які переглядаєте з кешу сервера вашого постачальника послуг, ймовірно, ваш постачальник послуг не стягуватиме з вас плати за ці дані. &kppp; нічого не відомо про те, що ці пакети даних прийшли з проксі-сервера постачальника послуг, отже програма вестиме облік цих даних. Отже, якщо описана ситуація відповідає тій, у якій ви опинилися, або якщо, наприклад, ваш постачальник послуг використовує сервер кешування новин, на зразок <application
>nntpcached</application
>, об’єм даних, про який повідомлятиме &kppp; буде перевищувати той об’єм, за який ви маєте сплатити. З іншого боку, принаймні &kppp; ніколи не надасть вам занижених рахунків.</para>

</sect3>

</sect2>

</sect1>

</chapter>
