<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
>Ручная настройка демона ррр...</guibutton
></term>
<listitem>
<para
>При нажатии на эту кнопку появится диалог настройки аргументов демона<application
>ppp</application
>. В этом диалоге вы можете указать желаемые опции, которые &kppp; передаст демону <application
>ppp</application
>. На man-странице демона <application
>ppp</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
>Интернет-провайдер</acronym
> использует динамическую <acronym
>IP</acronym
>-адресацию. В этом случае при каждом соединении с провайдером вашему компьютеру будет присваиваться новый <acronym
>IP</acronym
>-адрес.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Статический IP адрес</guilabel
></term>
<listitem>
<para
>Отметьте этот флажок, если ваш <acronym
>Интернет-провайдер</acronym
> выделил вам статический <acronym
>IP</acronym
>-адрес. В этом случае пропишите этот адрес в поле <guilabel
>IP-адрес</guilabel
> и укажите <guilabel
>Маску подсети</guilabel
>, если таковая необходима. Проконсультируйтесь у вашего <acronym
>Интернет-провайдера</acronym
>, если не знаете точно. Подавляющее большинство <acronym
>Интернет-провайдеров</acronym
> используют динамическое присваивание адресов, и в большинстве случаев правильным будет использование динамического <acronym
>IP</acronym
>-адреса.</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
> нужна, если вам необходимо просто подключиться к Интернету, получить почту, войти в чат или же просмотреть содержимое WWW-страниц. Побочным эффектом использования этой опции является невозможность подключения к Х-серверу, иными словами, вы не сможете запустить ни одно приложение с графическим интерфейсом.</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
>ppp</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
>Интернет-провайдер</acronym
> автоматически назначает адрес сервера <acronym
>DNS</acronym
> при соединении) и <guilabel
>Вручную</guilabel
>. Если вы выберете ручную настройку, становится доступным раздел <guilabel
>IP-адрес сервера DNS</guilabel
>.</para
> 
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>IP-адрес сервера DNS</guilabel
></term>
<listitem>
<para
>Этот раздел доступен в том случае, если вы отметили опцию настройки <guilabel
>Вручную</guilabel
>. Добавьте сервера доменных имен, назначенные вашим <acronym
>Интернет-провайдером</acronym
>. Вам необходимо указать, как минимум, один сервер доменных имен, чтобы ваша <acronym
>ОС</acronym
> могла переводить в <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
>Этот диалог предназначен для создания скрипта дозвона для соединения с вашим <acronym
>Интернет-провайдером</acronym
>. Вы можете использовать мини-терминал и сведения, предоставленные вашим <acronym
>Интернет-провайдером</acronym
>, для создания необходимого скрипта.</para>

<para
>Выберите опцию из раскрывающегося списка слева, а затем укажите параметры для выбранного действия в окне редактирования справа. Используйте кнопку <guibutton
>Добавить</guibutton
> для добавления записи <emphasis
>в конец</emphasis
> скрипта, который отображается в нижней части диалога. Используйте кнопку <guibutton
>Вставить</guibutton
> для вставки записи в любое место скрипта, а также кнопку <guibutton
>Удалить</guibutton
> для удаления строки из скрипта.</para>

<para
>Доступные опции:</para>

<variablelist>
<varlistentry>
<term
><guilabel
>Ожидать</guilabel
></term>
<listitem>
<para
>&kppp; будет ожидать получения заданной строки.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Отправить</guilabel
></term>
<listitem>
<para
>&kppp; отправит заданную строку.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Сканировать</guilabel
></term>
<listitem>
<para
>&kppp; будет сканировать входящий поток данных на предмет наличия заданной строки и сохранит все символы, начиная от конца строки и до начала новой, во внутреннем буфере. Символы пробелов как в начале строки, так и в конце будут игнорированы.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Сохранить</guilabel
></term>
<listitem>
<para
>Постоянно хранить заранее просканированную строку в заданном регистре. На данный момент единственным доступным является регистр <varname
>password</varname
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Приостановить</guilabel
></term>
<listitem>
<para
>Приостановить на заданное число секунд.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Повесить трубку</guilabel
></term>
<listitem>
<para
>&kppp; отдаст модему команду <command
>повесить трубку</command
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Ответ</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
>Имя пользователя</guilabel
></term>
<listitem>
<para
>Если поле <guilabel
>Имя пользователя</guilabel
> на главном экране &kppp; заполнено, -- отправить <acronym
>имя пользователя</acronym
>. Если поле <guilabel
>Имя пользователя</guilabel
> не заполнено, -- запросить пользователя &kppp; ввести <acronym
>имя пользователя</acronym
> в ответ на заданную строку- подсказку. Набранные символы будут отображены. На следующем шаге, например, в цикле повторения или же при авторизации в режиме обратного звонка, запрос будет выводиться вне зависимости от заполнения поля <guilabel
>Имя пользователя</guilabel
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Пароль</guilabel
></term>
<listitem>
<para
>Если поле <guilabel
>Пароль</guilabel
> на главном экране &kppp; заполнено, -- отправить пароль. Если поле <guilabel
>Пароль</guilabel
> не заполнено, -- запросить пользователя &kppp; ввести пароль в ответ на заданную строку- подсказку. Каждый набранный символ будет отображён символом Звездочка. На следующем шаге, например, в цикле повторения или же при авторизации в режиме обратного звонка, запрос будет выводиться вне зависимости от заполнения поля <guilabel
>Пароль</guilabel
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Начало цикла</guilabel
></term>
<listitem>
<para
>&kppp; будет ожидать получения заданной строки и сохранит ее для использования переменной <varname
>Конец цикла</varname
>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term
><guilabel
>Конец цикла</guilabel
></term>
<listitem>
<para
>&kppp; будет ожидать получения заданной строки для выхода из цикла. Если сперва будет получена строка, заданная как <varname
>Начало цикла</varname
>, это вызовет переход к к строке после <varname
>Начала цикла</varname
> и повторение парного диалога имя_пользователя/пароль.</para>
</listitem>
</varlistentry>
</variablelist>

<sect2>
<title
>Примеры скриптов</title>

<example>
<title
>Пример простого скрипта логина</title>
<para
>Ниже приведен пример простого скрипта, который можно использовать для подключения к <acronym
>Интернет-провайдеру</acronym
></para>

<screen
>Expect      ID:                        <lineannotation
># ожидать имя пользователя:</lineannotation>
 Send        myid                       <lineannotation
># замените myid на ваше имя пользователя</lineannotation>
 Expect      word:                      <lineannotation
># ожидать пароль</lineannotation>
 Send        4u3fjkl                    <lineannotation
># отправить пароль '4u3fjkl'</lineannotation>
 Expect      granted                    <lineannotation
># Интернет-провайдер при успешном логине сообщает 'Permission granted'.</lineannotation>
 Send        ppp                        <lineannotation
># Эта команда запускает ppp-соединение 
                                        # на удаленном компьютере Интернет- провайдера.</lineannotation
>
</screen>

</example>

<example>
<title
>Скрипт логина, запрашивающий имя пользователя и пароль, а затем зацикливающийся.</title>

<para
>Ниже приведен пример скрипта с запросом <acronym
>имени пользователя</acronym
> и пароля. Этот скрипт каждый раз запрашивает <acronym
>имя пользователя</acronym
> и пароль, вне зависимости от заполнения полей <guilabel
>Имя пользователя</guilabel
> и <guilabel
>пароль</guilabel
> на главном экране &kppp;.</para>

<para
>Этот скрипт также поясняет применение структуры Начало цикла/Конец цикла. Если при процедуре логина происходит сбой, к примеру, при наборе пароля допущена ошибка, <acronym
>Интернет-провайдер</acronym
> выдаст сообщение об ошибке и повторно начнет цикл имя_пользователя/пароль, отправив строку <computeroutput
>ID:</computeroutput
>. Если строка <computeroutput
>ID:</computeroutput
> будет получена до обработки параметра Конец цикла, &kppp; начнет выполнение скрипта со строки с параметром Начало цикла.</para>

<screen
>LoopStart   ID:                        <lineannotation
># ожидать имя пользователя:</lineannotation>
 Prompt      Enter ID:                  <lineannotation
># запрос на ввод имени пользователя с последующей отправкой.</lineannotation>
 Expect      word:                      <lineannotation
># ожидать пароль</lineannotation>
 PWPrompt    Enter Password:            <lineannotation
># запрос на ввод пароля с последующей отправкой.</lineannotation>
 LoopEnd     granted                    <lineannotation
># Интернет-провайдер при успешном логине сообщает 'Permission granted'.</lineannotation>
 Send        ppp                        <lineannotation
># Запуск ppp-соединения на удаленном компьютере</lineannotation
>
</screen>
</example>

<example>
<title
>Запрашивает сведения, не указанные в основном диалоге.</title>

<para
>Я использую этот скрипт для подключения к своему <acronym
>Интернет-провайдеру</acronym
>. Скрипт запрашивает <acronym
>имя пользователя</acronym
> и пароль только в том случае, если я не заполнил соответствующие графы в главном диалоге &kppp;.</para>

<screen
>LoopStart   ID:                        <lineannotation
># ожидать имя пользователя:</lineannotation>
 ID          Enter ID:                  <lineannotation
># запрос на ввод имени пользователя с последующей отправкой.</lineannotation>
 Expect      word:                      <lineannotation
># ожидать пароль</lineannotation>
 Password    Enter Password             <lineannotation
># запрос на ввод пароля с последующей отправкой.</lineannotation>
 LoopEnd     granted                    <lineannotation
># Интернет-провайдер при успешном логине сообщает 'Permission granted'.</lineannotation>
 Send        ppp                        <lineannotation
># Эта команда запускает ppp-соединение на</lineannotation>
                                        <lineannotation
># удаленном компьютере Интернет- провайдера</lineannotation
>
</screen>

</example>

<example>
<title
>Скрипт для соединения с <acronym
>Интернет-провайдером</acronym
>, использующим авторизацию с ответами на запросы.</title>

<para
>Вот скрипт, который я использую для подключения к Интернет-провайдеру, который требует авторизации с ответами на запросы. Обычно у вас есть устройство типа смарт-карты с дисплеем и калькулятором, предоставленное вам вашим провайдером. Чтобы использовать его, вам необходимо знать пароль. Дозвонившись до провайдера, вы увидите запрос, который нужно будет ввести в устройство и получить динамический пароль на вход. Его вам и надо будет ввести.</para>

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

<example>
<title
>Использование опций сканирования и сохранения в скриптах</title>

<para
>В следующем логе приводится пример подключения к несуществующему <acronym
>Интернет-провайдеру</acronym
>, который изменяет пароль при каждом новом соединении. Новый пароль должен быть проверен и сохранен для использования при следующем соединении. </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:' and
                                        # сканировать значение пароля</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-привилегиями, разумеется, если не работаете в системе как 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
>очистки</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
>Многие Интернет-провайдеры выставляют счет за свои услуги на основе количества использованного трафика. Причем, чаще всего, <acronym
>Интернет-провайдеры</acronym
> предлагают фиксированную оплату до определённого значения трафика, каждый же последующий мегабайт должен быть оплачен. &kppp; отображает текущее состояние трафика и поможет вам минимизировать счета за услуги. И, конечно же, если счет за услуги не зависит от трафика, вы можете использовать его для удовлетворения собственного любопытства.</para>

</sect3>

<sect3>
<title
>Какой тип учета трафика я должен выбрать?</title>

<para
>Это зависит от вашего провайдера. Большинство провайдеров ведут учет полученных из Интернета данных и игнорируют исходящий трафик. В таком случае вы должны использовать <guilabel
>Входящий трафик</guilabel
>. Если вы оплачиваете весь трафик, выберите <guilabel
>Входящий и исходящий трафик</guilabel
>. <guilabel
>Исходящий трафик</guilabel
> приведен в программе для полноты, так как провайдер с таким типом учета пока не известен. Эта опция может оказаться полезной, если вы используете WWW- или &FTP;-сервер дома.</para>

</sect3>

<sect3>
<title
>Недостатки</title>

<para
>К сожалению, учет трафика имеет и свои недостатки. &kppp; считает только количество трафика, вне зависимости от его происхождения. Многие провайдеры устанавливают ограничения только на доступ в Интернет, а не для трафика в их собственной сети. У некоторых провайдеров существуют различные ограничения на трафик в собственной сети, трафик по стране и весь остальной трафик. Если вы мало путешествуете по сети, по большей части используя страницы из кэша прокси-сервера вашего <acronym
>Интернет-провайдера</acronym
>, в таком случае, скорее всего ваш провайдер не выставляет счет за это. &kppp; не определяет принадлежность <acronym
>IP</acronym
>-пакетов к прокси-серверу, поэтому они будут учтены. Если эта ситуация похожа на вашу или, другой пример, если ваш провайдер использует кэширование сервера новостей <application
>nntpcached</application
>, -- в таком случае, учтенный в &kppp; трафик может оказаться больше реального объема, подлежащего оплате. С другой стороны, &kppp; никогда не преуменьшит ваши счета.</para>

</sect3>

</sect2>

</sect1>

</chapter>
