![]() |
guill.net
-
La page des réseaux
|
![]() ![]() |
Introduction
Dans cette partie, je vais décrire l’installation du serveur de fax hylafax. Du point de vue du client, le service se comporte exactement comme une impression en réseau. L’installation de ce serveur de fax suppose l’utilisation d’une distribution SUSE mais ceci est probablement applicable à toutes les distributions en changeant simplement les répertoires de configuration. Les normes de communication pour envoyer les fax sont fournies en Annexe 4 ainsi que des explications sur les classes de modem.
Installation du serveur
Configuration de hylafax
Le modem est configuré sur le port COM1 sous DOS soit ttyS0 sous Linux. Un lien a été créé de /dev/modem vers /dev/ttyS0 pour des questions de commodités. La première partie de l’installation consiste à réussir à envoyer des fax à partir du serveur. La configuration du serveur de fax hylafax se fait grâce à l’utilitaire faxsetup.
Utiliser faxsetup pour configurer le serveur
Pour pouvoir utiliser le logiciel hylafax, il faut au préalable exécuter le script faxsetup. Ce script interactif vérifie l’installation du logiciel hylafax et apporte une variété de petites questions qui préparent le système à l’utilisation. Il écrit les informations de configuration dans deux fichiers : config et config.modem dans la zone de spool /var/spool/fax/ de hylafax. Le fichier /etc/setup.cache de la zone de spool contient les paramètres d’installation utilisés par les scripts de commande d’hylafax alors que le fichier /etc/setup.modem contient les scripts de commande pour communiquer avec les modems.
Les fichiers setup.cache et setup.modem doivent être présents pour que hylafax fonctionne correctement. Si ces fichiers n’existent pas, les applications du serveur hylafax se termineront avec un message d’erreur.
En suivant les renseignements
qui lui sont fournis, faxsetup crée un fichier de configuration
pour le lancement de certains processus en tache de fond tel que faxqclean
et faxcron mais crée aussi un fichier de configuration pour chaque
modem installé sur le serveur.
Enfin, les processus du
serveur hylafax sont démarrés ou redémarrés
si une installation précédente avait déjà été
effectuée.
Utiliser faxaddmodem pour configurer les modems
Le script interactif faxaddmodem permet de configurer les nouveaux modems ou de reconfigurer ceux dont l’installation n’était pas correcte. Il peut être lancé directement dans une fenêtre shell ou via faxsetup.
Configuration des paramètres d’envoi et de réception de fax
Dans une fenêtre shell, à l'invite de commande, j’ai tapé faxaddmodem modem où modem correspond à un lien vers le modem. Le fichier de configuration du scheduler d’hylafax : /var/spool/fax/etc/config est automatiquement lu pour récupérer les paramètres par défaut notamment le code de région. Le script pose alors à l’utilisateur une série de questions tel que décrit ci-après. Les réponses par défaut du script sont placées entre les crochets. Les paramètres que j’ai saisis manuellement se situent après le point d’interrogation. Les explications sur la signifcation des questions sont précédées d’un dièse (#).
# Code du pays (code
1 par défaut)
Country code [1]?
# Le code de zone ne
peut être vide (code 510 par défaut)
Area code [510]?
# C’est le numéro
de téléphone associé au modem. Ce numéro peut
aussi apparaître sur les pages de
# garde.
Phone number of fax
modem [+1.999.555.1212]? 0549726387
# La chaîne d’identification
de la machine locale. Si ce champ est vide, le serveur utilise le numéro
de # téléphone
du modem.
Local identification
string (for TSI/CIG) [""]?GUILL
# Ces deux paramètres
précisent les numéros à composer pour les appels internationaux
et longues
# distances.
Long distance dialing
prefix [1]?
International dialing
prefix [011]?
# Le fichier de string
rules maintient les règles utilisées pour convertir les chaînes
de connexions des
# utilisateurs (i.e. numéro de téléphone) dans un
format canonique et prépare les chaînes de caractères
à # passer au modem.
Dial string rules file
(relative to /var/spool/fax) [etc/dialrules.sf-ba]?
# Les deux paramètres
contrôlent les log des processus du serveur.
Tracing during normal
server operation [1]?
Tracing during send
and receive sessions [11]?
# Le paramètre
par défaut sélectionné ici rend accessible les fax
reçus uniquement à l’utilisateur. Il peut être # intéressant
de mettre ce paramètre à 644 pour que tout le monde puisse
voir les fax reçus.
Protection mode for
received facsimile [0600]?
# Ces paramètres
spécifient les permissions du fichier de log des utilisateurs.
Protection mode for
session logs [0600]?
# Si des informations
sensibles telles que les codes de carte de crédit sont fournies
par les utilisateurs, ils # seront visibles dans le fichier
de log enregistré sur le serveur. Pour cette raison, le code de
protection par # défaut du fichier de log le protège des
accès publics.
Protection mode for
ttym2 [0600]?
# Ce paramètre
spécifie le nombre de sonneries avant de se mettre en réception
de fax.
Rings to wait before
answering [1]?
# Désactive le
haut parleur du modem.
Modem speaker volume
[off]?
# Ce paramètre
est utile pour les appels entrants. Les paramètres précisés
manuellement sont spécifiques à # la distribution SUSE.
Command line arguments
to getty program ["-h %l -x %s"]? –r –b –s %s %l
# Le fichier TSI de contrôle
d’accès peut être utilisé pour interdire certains numéros
de fax entrants. Le # paramètre
par défaut accepte tous les appels entrants.
Pathname of TSI access
control list file (relative to /var/spool/fax) [""]?
# Définit la police
à utiliser pour les « tag line » (lignes qui sont insérées
en haut du fax)
Tag line font file (relative
to /var/spool/fax) [etc/lutRS18.pcf]?
# Les Tag lines sont
optionnelles. Elles permettent de mettre une ligne de texte en haut des
fax sortants. # L’option %%l précise
de qui provient le fax, %c précise l’heure et la date d’envoi, %%p
donne le numéro # de la page en cours alors que
%%t donne le nombre total de pages
Tag line format string
["From %%l|%c|Page %%p of %%t"]?
# Ce paramètre
contrôle le temps mis par le serveur HylaFAX avant de déplacer
un fichier UUCP bloqué.
Time before purging
a stale UUCP lock file (secs) [30]?
# Pourcentage de lignes
correctes pour accepter le fax durant la vérification de la qualité
de la télécopie.
Percent good lines to
accept during copy quality checking [95]?
# Nombre de mauvaises
lignes à accepter pendant la vérification de la télécopie
Max consecutive bad
lines to accept during copy quality checking [5]?
# Nombre maximal de pages
lors de la réception d’un fax.
Max number of pages
to accept in a received facsimile [25]?
# Ces paramètres
sont relatifs aux fax entrants.
Syslog facility name
for ServerTracing messages ["daemon"]?
# Ce paramètre
est uniquement valable si vous installez le modem sur un système
Silicon Graphics.
Set UID to 0 to manipulate
CLOCAL [""]? No.
Un résumé de ces différents paramètres permet de vérifier la configuration de l’envoi et la réception de fax puis d’enregistrer celle-ci.
Configuration des caractéristiques du modem
faxaddmodem recherche ensuite le type et les fonctionnalités du modem. Il va parcourir le bloc tty pour configurer le type de modem qui y est attaché. Le modem doit être câblé et allumé.
Probing for best speed
to talk to modem: 38400 OK.
Hmm, this looks like
a Class 1 modem.
Product code (ATI0)
is "56000".
Other information (ATI3)
is "V1.120HY-K56_DLS".
Le protocole de contrôle
de flux est xonxoff au niveau logiciel ou rtscts au niveau logiciel. Le
paramètre default permet l’installation appropriée au modem.
DTE-DCE flow control
scheme [default]?
Command to enter Class
1 [AT+FCLASS=1]?
Extra bytes in a received
HDLC frame [4]?
Maximum time to wait
for OK after aborting a receive (ms) [200]?
Maximum wait for initial
identification frame (ms) [40000]?
Delay before sending
post-page message (ms) [75]?
Delay between sending
TCF and ack/nak (ms) [75]?
Delay before sending
DCS and TCF (ms) [75]?
Delay after failed training
(ms) [1500]?
Un petit résumé est alors affiché pour valider les paramètres du modem.
The modem configuration parameters are:
Class1Cmd:
AT+FCLASS=1
Class1FrameOverhead:
4
Class1RecvAbortOK:
200
Class1RecvIdentTimer:
40000
Class1SendPPMDelay:
75
Class1SendTCFDelay:
75
Class1TCFMaxNonZero:
10
Class1TCFMinRun:
1000
Class1TCFResponseDelay:
75
Class1TrainingRecovery:
1500
Are these ok [yes]?
Dès qu’un modem a été installé avec faxaddmodem, l’ordonnanceur d’hylafax doit être informé de sa présence. Ceci peut être effectué de deux manières. Si un système est utilisé uniquement pour transmettre des fax alors l’ordonnanceur est informé en lançant la commande « faxmodem modem ». Sinon, si un modem est utilisé pour les fax entrants et sortants, le programme faxgetty doit alors être réinstallé pour contrôler le modem. Si un modem était précédemment configuré, le processus du serveur hylafax remarquera le nouveau fichier de configuration, et utilisera automatiquement son contenu. Si faxaddmodem a été démarré à partir de faxsetup, alors faxsetup finit la configuration sur le serveur automatiquement.
Démarrage du service d'envoi
L'envoi des fax est effectué grâce au programme faxq. Il y a un processus faxq pour chaque modem configuré sur la machine. Le programme faxq écoute les messages qui arrivent dans le fichier FIFO qui se trouve dans le répertoire de spool du serveur. Ces messages peuvent provenir de deux sources : du programme faxmodem qui est utilisé pour activer manuellement le modem ou du processus faxgetty qui est configuré pour chaque bloc tty où un modem fax est installé.
faxmodem est utilisé lorsque hylafax doit fonctionner en envoi uniquement. Dans le cadre de mon stage, c’est cette fonctionnalité qui a été retenue car il existait une machine fax connectée sur la ligne spécifique au fax. Un modem spécifié par faxmodem est identifié par le bloc tty auquel il est attaché.
Installer l’accès au client
Les applications clientes d’hylafax telles que sendfax, respond, w2hfax ne communiquent pas directement avec les processus du serveur tels que faxq ou faxgetty. Elles communiquent avec le programme hfaxd gérant le protocole client serveur. Cette architecture isole les applications clientes de la structure interne du serveur, en leur fournissant un environnement plus solide.
Hfaxd est normalement démarré
lorsque le programme faxsetup est lancé. Faxsetup s’arrange aussi
pour que hfaxd soit démarré chaque fois que le serveur est
redémarré. Hfaxd peut être démarré en
mode autonome ou à partir du programme inetd. Quand hfaxd est démarré,
les arguments de la ligne de commande spécifient quel type de protocole
client serveur sera offert. Habituellement, hfaxd peut supporter trois
protocoles :
- La version 4.0 du protocole
client serveur d’hylafax,
- Les versions du protocole
client serveur d’hylafax antérieur à 4.0,
- le Simple Network Pager
Protocol (SNPP) qui est utilisé pour soumettre une requête
alphanumérique.
Quand il fonctionne en mode
autonome, les options de la ligne de commande spécifient le protocole
supporté et les ports sur lesquels les services sont fournis. Le
port pour le nouveau protocole est spécifié dans le fichier
/etc/services avec la ligne : hylafax 5555/tcp #HylaFAX client-server protocol.
Le port 5555 avec le protocole
TCP sera utilisé pour la communication client-serveur. Une autre
ligne précise le port pour le protocole SNPP. Elle est inutile car
à chaque démarrage, hfaxd force hylafax à communiquer
sur le port 444. Les processus du serveur peuvent être démarrés
à chaque redémarrage de la machine. Il faut pour cela mettre
la variable START_HYLAFAX = yes dans le fichier /etc/rc.config. Si le serveur
fonctionne uniquement en réception, il faut taper « faxmodem
modem » à chaque redémarrage de la machine.
Il est nécessaire
de spécifier quelles machines clientes et quels utilisateurs vont
avoir accès au serveur hylafax. Ceci est spécifié
par le contenu du fichier /var/spool/fax/etc/hosts du serveur. Ce fichier
qui est installé avec hylafax, permet à n’importe qui d’avoir
un accès à travers l’interface réseau de localhost.
Le fichier des hôtes contient :
localhost
127.0.0.1
Le fichier /etc/hosts de la zone de spool doit appartenir à l’utilisateur fax et doit avoir le code d’accès 0600 sinon hfaxd ne permettra pas l’accès des clients au serveur. Avec ces deux lignes, tous les utilisateurs se connectant avec un nom de la forme moi1@localhost auront accès au serveur de fax. Chaque fois que le fichier des hôtes est modifié, il faut relancer les processus du serveur.
Les différents clients WINDOWS
Après avoir installé et configuré hylafax pour pouvoir envoyer des fax depuis le serveur, il fallait donner accès aux clients Windows de mon réseau local. J’ai donc fait une étude de plusieurs outils pour voir lequel pouvait le mieux convenir aux utilisateurs de l’entreprise.
Le logiciel respond pour les clients Windows
Pour que le service de fax puisse être utilisé, il est nécessaire de configurer correctement les stations clientes qui veulent pouvoir utiliser ce service. Concrètement, il est nécessaire d’installer une nouvelle imprimante et le programme respond qui se charge d’écouter les connexions du serveur pour obtenir de l’utilisateur les informations supplémentaires. Ce programme doit être exécuté automatiquement au démarrage de la session sur la machine cliente pour que le service soit disponible. La nouvelle imprimante s’appellera « serveurfax ».
Installation
du programme respond
Une fois que le document
a été envoyé à « serveurfax »,
il faut connaître le numéro de fax du destinataire du document.
Pour cela, j’utilise le programme respond. Ce programme s’exécute
sur les stations clientes et, quand elles envoient un fax à l’imprimante
fax, le service de fax se met en contact avec la station cliente grâce
à ce programme pour obtenir les informations supplémentaires
nécessaires. Pour installer le programme, il suffit de copier l’exécutable
sur la machine cliente. Pour que le programme respond s’exécute
au démarrage de la session, il faut placer un raccourci dans le
groupe de démarrage de Windows. La configuration du programme respond
s’effectue avec le programme appelé config. Cet autre programme
permet de spécifier le numéro de port sur lequel la communication
avec le serveur va s’établir. Le protocole client-serveur s’établit
par exemple sur le port 5555. Le délai d’envoi est nul, c’est-à-dire
que l’envoi du fax se fait aussitôt après l’appui sur le bouton
« OK ».
L’interface graphique de ce programme est montrée ci-contre. |
![]() |
Pour que le service de fax
soit le plus transparent possible pour tous les utilisateurs, il faut créer
une imprimante partagée avec Samba, à laquelle les utilisateurs
pourront envoyer leurs documents qu’ils veulent envoyer en tant que fax.
Pour créer une telle
ressource partagée, j’ai ajouté les lignes suivantes dans
le fichier de configuration de samba (/etc/smb.conf) :
[fax]
printable = yes
writable = yes
postscript = yes
comment = Serveur
de Fax
print command
= (/usr/bin/printfax-1_5_0.pl %I %s %U %m; rm %s)
path = /mnt/fax
Les paramètres relatifs à ce service sont les suivants :
print command
Spécifie la commande
à exécuter lorsque le serveur reçoit le fichier à
imprimer (à faxer). Il est possible que Samba n’efface pas le fichier
à imprimer après avoir exécuté l’envoi. Il
est donc nécessaire de le faire manuellement avec la commande «
rm %s » où %s est le fichier à envoyer.
path
Indique le répertoire
dans lequel les fichiers à envoyer sont stockés lorsqu’un
client Windows veut envoyer un fax. Ce répertoire doit avoir les
droits d’écriture pour tous les utilisateurs.
Le programme printfax.pl se charge de se mettre en contact avec le client Windows, pour solliciter les informations nécessaires pour envoyer le fax (numéro de fax du destinataire, adresse de courrier électronique pour envoyer la confirmation d’envoi, etc.). Dès que toutes ces informations sont obtenues, le fax est envoyé (spoolé) dans la file d’attente en attendant l’activation du démon d’envoi. printfax.pl est un script développé en langage perl qui doit se personnaliser pour indiquer les répertoires de travail.
Installation du service fax comme une impression locale
Le service de fax se comporte comme une impression PostScript. Pour cela, il est nécessaire d’installer une nouvelle imprimante. Quand le client désire envoyer un fax, il imprime alors le document sur l’imprimante définie précédemment. Le serveur Samba n’est pas configuré pour proposer le driver d’impression nécessaire directement depuis le serveur. Il est donc nécessaire d’installer le driver manuellement grâce au CD du système d’exploitation. Pour installer l’imprimante, il faut aller dans le voisinage réseau, entrer sur le serveur Linux (ici server2) et faire un double clique sur l’imprimante « fax ». Dans la fenêtre de dialogue qui s’ouvre, donner un nom au serveur de fax. Ensuite, il faut installer le driver pour l’imprimante PostScript, une LaserWriter du constructeur Apple fait parfaitement l’affaire.
Installation des messages de retour
Les notifications d’envoi et d’erreur sur le service de fax sont réalisées grâce aux messages provenant de Windows. Sur Windows 9x, il faut que le programme winpopup soit exécuté au démarrage de la session. Dans le cas de Windows NT ceci n’est pas nécessaire, car les messages sont directement gérés par le système.
Utilisation du service
Comme je l’ai dit précédemment, pour envoyer un fax, il faut imprimer le document sur l’imprimante créée dans la première partie de l’installation. Il apparaît sur la station cliente la fenêtre de dialogue suivante (le programme respond doit être en train de s’exécuter) :
Dans ce formulaire, le champ fax-number doit obligatoirement être renseigné. Les champs Sender-User et Sender-Name sont optionnels, ils sont seulement utilisés pour la comptabilité du service et pour les messages de confirmation. Lorsque le champ fax-number n’est pas renseigné ou lorsque l’utilisateur annule l’envoi, le fax est détruit.
Le logiciel W2HFAX
Introduction
Ce client fonctionne grâce à une librairie Active-X écrite dans le langage Python. Cette librairie peut aussi être utilisée pour envoyer des fax à travers les logiciels de la suite Microsoft Office, Acrobat Reader et bien d’autres. Le client Windows en lui-même est développé en Visual Basic.
Installation
du programme
L’installation de ce programme
se fait de la même manière que n’importe quelle installation
de logiciel sous Windows. Pour que le programme fonctionne correctement,
il faut installer le logiciel Python 1.52 ainsi que le logiciel Python
Win32 Extensions.
Pour minimiser la place prise par le logiciel sur le disque dur, j’ai choisi d’installer uniquement le composant « Python interpreter and library » comme le montre la figure ci-contre. Ce composant est amplement suffisant pour l’utilisation que nous allons faire de ce logiciel Dès que l’installation de python est terminée, il nous faut réaliser l’installation des extensions 32 bits pour ce logiciel. On prendra soin de l’installer dans le même répertoire pour ne pas être ennuyé lors de la désinstallation. Il faut enfin installer un redirecteur de port qui nous permettra de rediriger les fax vers le serveur de fax. Le logiciel que nous utilisons est Redmon dans sa version 1.3. L’utilisation de ce redirecteur de port sera vue dans la section paramétrage de l’imprimante pour le fax. |
![]() |
Installation
du service
Pour installer le service
sur le client Windows, il faut enregistrer l’objet de communication grâce
au fichier hfaxcom.py qui se trouve dans le répertoire d’installation
de W2HFAX. Dans le cadre de l’utilisation dans l’entreprise, j’ai effectué
quelques modifications sur ce fichier, notamment le numéro de port
sur lequel la communication entre le client et le serveur va s’établir
ainsi que le nom de l’utilisateur et son mot de passe. Le fichier de configuration
se trouve en Annexe de ce document.
J’ai ensuite enregistré de la même manière le fichier hfaxcom.py. Il n’y avait aucune modification à faire sur celui-ci car sa fonction principale était d’enregistrer l’objet de communication dans la base de registre. L’exécution de ces deux fichiers a créé deux nouveaux fichiers avec des extensions.pyc : hfaxcom.pyc et hfaxlib.pyc. Le logiciel d’envoi de fax peut maintenant fonctionner, nous pouvons envoyer des fax à partir de celui-ci. L’interface graphique de la page principal de ce nouveau client est ci-contre. |
![]() |
Par défaut lors de l’ouverture, la page affichée est celle donnant les indications sur la liste des fax contenus dans la file d’attente. Mais là où l’installation d’un système comme celui-ci est intéressant lorsque les utilisateurs peuvent envoyer des fax de n’importe quelles applications. Pour ce faire, nous allons installer une imprimante sur chaque poste client.
Installer une nouvelle imprimante
J’ai installé une nouvelle imprimante en local sur le poste Windows. J’ai choisi les mêmes pilotes que pour l’installation du programme respond.exe. En fait, l’imprimante installée est une laserWriter du constructeur Apple. Pour finir de configurer le logiciel, il faut rediriger les envois de documents à l’imprimante vers le serveur. Pour ceci, j’ai utilisé le redirecteur de port Redmon.
Lorsque la redirection a été effectuée, il suffit de préciser au port créé le logiciel qu’il doit exécuter. Dans le cadre de notre application cliente, le logiciel W2HFAX se trouve dans le répertoire précisé ci-dessous. L’argument “printdialog” affiche une fenêtre permettant à l’utilisateur de saisir le numéro de télécopie du destinataire.
Lorsque tous ces logiciels sont mis en place, l’utilisateur peut imprimer à partir de n’importe quelle application Windows en envoyant ses documents sur la nouvelle imprimante.
Conclusion
D’autres clients Windows
existent mais le client W2HFAX était amplement suffisant pour l’utilisation
au sein de l’entreprise. J’ai été ennuyé avec le logiciel
Respond car il ne me donnait pas d’accusé d’envoi de fax. Le logiciel
Hylafax permettait l’envoi par mail d’accusé d’envoi mais un mauvais
paramétrage de l’outil procmail m’a causé quelques soucis
que j’ai réussi à résoudre dans les derniers jours
de mon stage. J’ai aussi eu quelques problèmes car je devais passer
par un PABX et composer le 0 pour appeler à l’extérieur de
l’entreprise. En étudiant les pages de manuel d’hylafax, je me suis
aperçu qu’il y avait la possibilité de paramétrer
ce numéro et qu’il attendait alors d’obtenir la tonalité.
Avec le logiciel W2HFAX, j’avais en plus la possibilité de visualiser
si des télécopies étaient arrivées en réception