<chapter id="callback">
<title
>Configurer &kppp; pour le rappel automatique</title>

<para
>Ce chapitre est basé sur le travail fournit par Martin H&auml;fner, <email
>mh@ap-dec717c.physik.uni-karlsruhe.de</email
></para>

<sect1 id="unix-callback-server">
<title
>Les serveurs de rappel automatique sous &UNIX; ou &Linux;</title>

<para
>Cette section est une présentation du rappel automatique sous &UNIX; (&Linux;). Elle explique aussi comment &kppp; peut être configuré si l'on veut ce connecter à un serveur &UNIX; de rappel automatique. Spécialement pour un <link linkend="callback-resources"
>serveur de rappel</link
> sous &Linux; se basant des scripts.</para>

<sect2>
<title
>Une introduction au rappel automatique</title>

<para
>Il y a plusieurs raison d'utiliser le rappel automatique. Quelques unes d'entre elles sont&nbsp;:</para>

<itemizedlist
> <listitem
> <para
>Pour augmenter la sécurité de votre réseau local</para
> </listitem
> <listitem
> <para
>Pour réduire les dépenses des collaborateurs travaillant depuis l'extérieur.</para
> </listitem
> <listitem
> <para
>Pour contrôler les dépenses téléphoniques lorsque elles sont déclarées comme étant professionnelle</para
> </listitem
> </itemizedlist>

<para
>Dites-vous que si une personne appelle le numéro de votre serveur de connexion, et qu'il parvient à pirater le mot de passe. Pourquoi vous embêtez vous a configurer un Pare-feu pour sécuriser votre connexion à internet si son accès est aussi simple&nbsp;?</para>

<para
>Les programmes de rappel automatique généralement vous demande votre nom, en suite il raccroche la ligne. Ensuite il vous rappelle, habituellement à un numéro qui est stoqué <emphasis
>sur le serveur</emphasis
> dans une base de donnée. Le client décroche ensuite la ligne et continu comme si rien ne s'était passé. Le serveur vous demande maintenant votre nom d'utilisateur et votre mot de passe. tout en sachant qu'il vous a déjà identifié lors du premier appel. La connexion est établie normalement et le programme <application
>pppd</application
> est lancé.</para>

<para
>Maintenant la question est, comment dire au client de décrocher le téléphone lorsque le serveur vous rappel. Avez vous besoin d'un programme particulier, comme <application
>mgetty</application
>&nbsp;? La réponse est <emphasis
>non</emphasis
>, vous n'avez pas besoin d'une application particulière. En général, n'importe quel client peut être utilisé pour le rappel automatique, vous pourriez même utiliser un terminal ordinaire comme <application
>minicom</application
> pour la connexion.</para>

<para
>La seul chose que vous aillez a faire est dire à votre modem de <command
>Répondre Automatiquement</command
> au téléphone lorsque une<computeroutput
>SONNERIE</computeroutput
> est détectée par le modem. Cela est réalisé grâce à la commande modem suivante&nbsp;:</para>

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

<para
>Cela dit au modem de prendre la ligne après une <computeroutput
>SONNERIE</computeroutput
>.</para>

<para
>Comment de nombreux autres programmes clients, &kppp; contrôle pour voire si la connexion est fermée par le serveur, et ensuite arrête la sessions en cours si un signal <computeroutput
>NO CARRIER</computeroutput
> est détectée. Cela, ensuite, est le réel problème lorsque on configure le rappel. Le signal <computeroutput
>NO CARRIER</computeroutput
> sera bien entendu détecté lorsque le serveur coupera la ligne. Parfois, certain serveur utilise un programme de connexion particulier. Donc comment régler le problème&nbsp;? Dites à votre modem d'afficher <computeroutput
>CARRIER UP</computeroutput
> à chaque fois (ce qui ne pause pas de problème si vous dites au client de raccrocher la ligne.) Vous pouvez utilisez la commande suivante pour réaliser cela&nbsp;:</para>

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

<para
>Si vous voulez tester cela, vous pouvez commencer par utiliser un terminal ordinaire comme <application
>minicom</application
>, et appeler votre serveur de rappel afin de voir ce qui se passe.</para>

</sect2>

<sect2>
<title
>Configuration de &kppp;</title>

<para
>Maintenant que vous avez vu la théorie, comment configurer &kppp; pour contrôler la connexion&nbsp;? </para>

<para
>La procédure est assez simple.</para>

<procedure
> <step
> <para
>Premièrement, dites au modem d'accepter les connexions, et de ne pas arrêter les négotiation lorsque le serveur de rappel déccroche pour la première fois. Vous pouvez ajouter ces options dans l'onglet <guilabel
>Modem</guilabel
> u menu de configuration de &kppp; en ajoutant les paramètres <command
>AT&amp;C0S0=1DT</command
> au champ <guilabel
>Chaîne de numérotation</guilabel
>.</para
> <para
>Ils n'y a pas d'autre modification des réglages de &kppp; à faire. Si vous rencontrez des problèmes avec l'initialisation et la réinitialisation du modem, consulté la section <link linkend="callback-troubleshooting"
>Problèmes</link
> .</para
> </step
> <step
> <para
>Pensez à votre serveur quelques instant. Souvenez-vous que les systèmes d'exploitations &UNIX;, &Windows; et Macintosh ont différentes façon pour signaler la fin d'une ligne dans un fichier texte, et de la même façon dans la procédure d'authentification. Si vous êtes connecté à un serveur &Windows; utilisé <userinput
>CR/LF</userinput
>, si vous êtes connectez à un serveur &UNIX;, utilisé <userinput
>CR</userinput
> et enfin si vous êtes connecté a un serveur Macintosh, utilisé <userinput
>LF</userinput
> </para
> </step
> <step
> <para
>Pour ces instructions, nous partons du principe que vous appellez un paquetage de rappel sous &Linux; qui utilise une procédure d'authentification ordinaire. (pas de<acronym
>PAP</acronym
> ou équivalent).</para
> <para
>Configure le mode <guilabel
>Authentification</guilabel
> de l'onglet <guilabel
>Numérotation</guilabel
> dans le configurateur de compte sur <guilabel
>Basé sur un script</guilabel
></para
> </step
> <step
> <para
>Maintenant vous devez concevoir le script d'authentification. L'édition des scripts est l'une des options très agréables de &kppp;. Vous pouvez la trouver sur l'onglet <guilabel
>Script de connexion</guilabel
> de la boîte de dialogue <guilabel
>Modifier le compte</guilabel
>.</para
> <para
>Dans cet exemple, l'utilisateur <systemitem
>userxyz</systemitem
> a besoin du script suivant pour être appelé. Le serveur de rappel connaît déjà le numéro de téléphone utilisé pour l'appel, donc vous choisirez un nom d'emprunt pour des raisons de sécurité.</para
> <para
>Pour chaque ligne, choisissez les critères dans le menu déroulant en haut à gauche de la boîte de dialogue, ensuite saisissez l'action dans la boîte texte à ça droite. Choisissez le bouton <guibutton
>Ajouter</guibutton
> pour chaque ligne du script. Vous pouvez utilisez <guibutton
>Insérer</guibutton
> pour introduire une ligne au milieu du script, et <guibutton
>Supprimer</guibutton
> pour retirer une ligne si vous faites une erreur.</para
> <para
>Le script dans son ensemble doit ressembler à ça (sans les commentaires, qui commence ici par un #)</para
> <screen
> 
Expect       ogin:           <lineannotation
># souvenez vous que l'on fait une authentification ordinaire dans un terminal</lineannotation>
ID           ""              <lineannotation
># kppp envoit le nom d'utilisateur que vous lui avez donné dans
la boîte principale</lineannotation>
Expect       for userxyz:    <lineannotation
># une liste des numéro disponible est
affiché ici, l'utilisateur peut en choisir une</lineannotation
> 
Send         userxyz-home    <lineannotation
># l'utilisateur désire être appelé en retour
sur son numéro personnel</lineannotation>
Expect       ogin:           <lineannotation
># La procédure de rappel commence ici
lancant une nouvelle procédure de connexion, et donc un nouveau nom d'utilisateur.</lineannotation>
ID
Expect       assword:        <lineannotation
># Maintenant envoi de votre nom d'utilisateur</lineannotation>
Expect       &gt;            <lineannotation
># Attente du prompt (il
risque de varier)</lineannotation>
Send         start_ppp       <lineannotation
># cette commande lance pppd</lineannotation>
</screen
> <para
>Après l'attente de la réponse pour l'authentification, l'utilisateur envoie son identifiant et attend la liste des numéros de téléphone disponible son nom d'utilisateur. En suite il indique au serveur sur quel numéro listé il désire être appelé en retour. &kppp; peut ouvrir une boîte de dialogue pour ça, si votre localisation change souvent, par exemple si vous êtes un représentant et que vous vous déplacez d'hôtel en hôtel. Maintenant le serveur attend le nom d'utilisateur et le mot de passe pour l'authentification, mais dans le même temps le serveur raccroche et appelle l'utilisateur en retour. Les informations pour l'authentification son envoyé, et &kppp; attend une demande de commande, ensuite il lance un petit script (ici appelé <filename
>start_ppp</filename
>) qui lance <application
>pppd</application
> sur le serveur.</para
> <para
>Le script <filename
>start_ppp</filename
> doit correspondre à quelque chose proche de cela&nbsp;:</para
> <programlisting>
#!/bin/sh
stty -echo
exec /usr/sbin/pppd -detach silent modem
</programlisting
> <para
>Bien sûr, configurer un serveur <acronym
>PPP</acronym
> ne fait pas partie de l'objectif de ce document. Pour plus de détails, consultez la page de man de <application
>pppd</application
>. Une excellente description d'un serveur callback peut être trouvé à <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
> http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback</ulink
>.</para
> </step
> </procedure>

<para
>Toutes les autres configurations, comme le réglage de <application
>pppd</application
> ou de <acronym
>IP</acronym
> sont les même que d'habitude, aucun programme supplémentaire n'est utile.</para>

<note
> <para
>Le rappel de &kppp; et d'autre programme comme <application
>mgetty</application
> ou autre faxgetty peuvent être lancé sur le même port série. Il n'y a pas de problème avec les appels entrant, puisque &kppp; réalise un fichier de verrouillage qui prévient le programme getty qu'une autre application (dans ce cas &kppp; biensur,) utilise la ligne à ce moment.</para
> </note>

</sect2>

<sect2 id="callback-troubleshooting">
<title
>Problème</title>

<para
>Il existe quelques problèmes connu avec &kppp; en mode rappel&nbsp;:</para>

<itemizedlist
> <listitem
> <para
>Vue que vous initialisez le modem dans le mode réponse automatique vous devrez redémarrer le modem après que la ligne est été coupé. Sinon, votre modem prendra la ligne pour vous, ce qui n'est pas une bonne idée si la ligne en question est celle de votre téléphone.</para
> </listitem
> <listitem
> <para
>&kppp; a des petits problèmes lorsque il partage une ligne avec une autre application comme <application
>mgetty</application
>. Si <application
>mgetty</application
> est lancé sur la même ligne que le modem, &kppp; n'est pas capable d'initialiser le modem correctement. </para
> </listitem
> <listitem
> <para
>&kppp; n'est pas capable de demander le nom utilisateur durant la procédure de connexion. Malheureusement, lorsque il utilise le script décrit précédament, &kppp; redemande le nom d'utilisateur une seconde fois durant le rappel. Vous pouvez régler ce problème en inscrivant votre nom d'utilisateur directement dans le script (pas vraiment propre, mais ça marche).</para
> </listitem
> </itemizedlist>

</sect2>

<sect2 id="callback-resources">
<title
>Information sur Internet pour le serveur</title>

<para
>Des serveur de rappel pour &Linux; sontdisponibles dans beaucoup d'endroits.</para>

<para
>L'application bien connu <application
>mgetty</application
> est un programme extrêmement puissant, il permet aussi de répondre au rappel de connexion. Des informations permettant de configurer <application
>mgetty</application
> dans ce but maintenu par Colin McKinnon, <email
>colin@wew.co.uk</email
>.et disponible sur <ulink url="http://www.dyer.demon.co.uk/slug/tipscrip.htm"
> http://www.dyer.demon.co.uk/slug/tipscrip.htm</ulink
>.</para>

<para
>Il y a aussi un paquetage prêt à l'usage pour &Linux; à l'adresse <ulink url="http://www.icce.rug.nl/docs/programs/callback/callback.html"
> http://www.icce.rug.nl/docs/programs/callback/callback.html</ulink
>. Ce paquetage est maintenu par Frank B. Brokken, <email
>frank@icce.rug.nl</email
>. Comme la configuration, bien que naturelle, n'est pas très facile, j'ai écrit une courte intrioduction à ce sujet à l'adresse <ulink url="http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback"
>http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/</ulink
>, qui contient également une introduction plus générale au rappel automatique.</para>

</sect2>
</sect1>

<sect1 id="nt-callback">
<title
>rappel sous &Windows; NT <acronym
>RAS</acronym
></title>

<para
>&Windows; NT utilise une approche complètement différente de celle décrite précédament. NT demande une extension particulière au protocole <acronym
>PPP</acronym
> lui-même, appelé <acronym
>CBCP</acronym
> (<foreignphrase
>Call Back Control Protocol</foreignphrase
>). L'application <application
>pppd</application
> supporte ce protocole mais <application
>pppd</application
> doit être recompilé pour cela. Si vous avez des connaissances si les serveurs de rappel sur NT, faites vous connaître.</para>

</sect1>
</chapter>

