Hylafax
Par Dani Pardo
Adaptation française : Éric Jacoboni
Précédent Suivant Table des matières
2. Hylafax
2.1 Introduction
Notre réseau local est composé de quelques serveurs SPARCs et Linux et des clients Windows (3.11 et 95) qui se connectent en telnet au serveur pour utiliser un programme de comptabilité écrit en Cobol. Après être passé de NFS à Samba (imaginez le plaisir des utilisateurs lorsqu'ils virent les fenêtres apparaître), on décida d'essayer un logiciel de télé-copie. Nous avions plusieurs possibilités : un logiciel commercial Un*x (très cher), la solution NT et la solution des logiciels libres.
NT était une solution froide et peu souple, fondée sur des licences par utilisateur, et nous ne voulions pas dépenser des milliers de dollars pour acheter un serveur de télé-copie Unix. Ayant apprécié l'expérience Samba, on décida d'essayer Hylafax.
2.2 Installation
HylaFax (à l'origine flexfax) est fait par Silicon Graphics, distribué avec le code source, et disponible à www.vix.com. La dernière version est 4.0pl1. Récupérez aussi la bibliothèque
tiff
. Si vous récupérez le code source, vous devrez d'abord compiler et installer la bibliothèquetiff
afin de convertir les fichiers tiff au format de télécopie.g3
. Vous devez aussi disposer de Ghostscript et l'invoquer pour convertir le Postscript en g3. Utilisez la dernière version de Ghostscript que vous pouvez récupérer (à moins que vous ne souhaitiez que votre destinataire recoive les messages d'erreurs de Ghostscript par télécopie).Après avoir installé la bibliothèque
tiff
, Hylafax se compile sans problème avec une distribution Linux standard, plaçant les binaires sous/usr/local
, et les travaux en attente dans/var/spool/fax
.L'installation terminée, configurez le système en lançant la commande
/usr/local/sbin/faxsetup
. Cela ajoutera l'utilisateurfax
, modifiera/etc/services
et/etc/inetd.conf
(Hylafax scrute les ports 4559 et 444). En plus d'effectuer un peu de configuration supplémentaire,faxsetup
lancerafaxaddmodem
afin de configurer le(s) modem(s) à utiliser.faxaddmodem
établira un dialogue avec les modems que vous avez spécifié afin d'obtenir leurs paramètres, et vous permettra de configurer d'autres choses.2.3 La partie serveur
Hylafax est constitué de deux démons :
hfaxd
(le serveur), ethfaxq
(ordonnanceur de tâches gérées en tourniquet). Vous devez lancerfaxmodem
pour indiquer au scheduler le(s) modem(s) qu'il peut utiliser. Si vous avez aussi prévu de recevoir des appels, vous devez configurerfaxgetty
qui placera les fac-similés entrants dans/var/spool/fax/incoming
, en respectant aussi les appels de données (en passant le contrôle àgetty/mgetty
). Ajoutez ces démons dans/etc/rc.d
. Vous pouvez maintenant vérifier que le serveur fonctionne en vous connectant à vous-même en telnet sur le port 4559.Les programmes qui vous seront utiles sont :
sendfax
(fichiers),faxtstat
(pour vérifier la file d'attente) etfaxrm
pour supprimer les travaux en attente.sendfax
appellefaxq
,sendpage
, etc. Il invoque aussighostscript
pour la traduction des formats d'image, vous enverrez donc normalement du postscript ou de l'ascii. Si vous voulez envoyer d'autres formats, vérifiez/usr/local/lib/fax/typerules
. D'autres fichiers de configuration intéressants se trouvent dans/var/spool/fax/etc
 : Si vous avez des problèmes avec votre modem, vous devrez probablement les vérifier.Pour finir avec la partie serveur, ce n'est pas une mauvaise idée de modifier
crontab
pour qu'il invoquefaxclean
afin de supprimer les télécopies expédiées.2.4 La partie client
Lorsque Hylafax est configuré et qu'il tourne, il faut configurer les clients : ce sont
MacFlex
pour les utilisateurs de Macintosh etWinFlex
pour les utilisateurs de MS-Windows. AvecWinflex
(etMacflex
, aussi), vous installerez une imprimante postscript générique (j'utilise habituellement le pilote MS-Windows de la Laserwriter Pro600 Apple). Lorsque quelque chose est envoyé à cette imprimante, une fenêtre apparaît demandant le numéro de téléphone. Vous pouvez aussi vérifier la file d'attente, supprimer des travaux, etc. Lorsque la télécopie a été envoyée, l'utilisateur reçoit un message confirmant que le travail a été effectué ainsi que d'autres informations utiles. Les concepteurs d'Hylafax prétendent que « vous ne perdrez jamais une télécopie », et je dois dire que cet aspect a été traité très sérieusement.Bien que ce soit une bonne solution,
WinFlex
n'est pas parfait (l'interface avec le driver imprimante est un peu pauvre), et n'utilise pas encore toutes les fonctionnalités d'Hylafax (un volontaire ?).Une autre caractéristique, du serveur cette fois, peut encore être améliorée : il s'agit de la génération automatique de page de garde. J'ai déjà eu des soucis en créant la page de garde, une bonne connaissance de PostScript est nécessaire. Dans notre société, nous avons finalement écrit la page de garde comme un document normal à l'aide d'un traitement de texte et nous l'avons copié dans la zone partagée de Samba.
2.5 Amusons-nous
Le travail réel commença lorsqu'on me parla des besoins particuliers du département de la comptabilité. Ils avaient besoin d'envoyer automatiquement la facturation par télé-copie. Cette facturation était générée par le programme Cobol sous la forme d'un fichier ASCII de 20 pages. Toutes les pages devaient conporter le logo de la société en entête, et un peu de texte sur la partie gauche. Cela semblait plus dur à faire que la page de garde, mais après quelques scripts, un peu de C, et en remerciant Hylafax pour sa flexibilité, j'ai pu écrire un filtre d'impression qui :
- récupère le numéro de téléphone à partir d'un fichier ASCII ;
- divise le fichier ASCII en pages (les pages sont séparées par EOP) ;
- convertit chaque page au format
pbm
(portable bitmap) à l'aide du paquetagepbmplus
;- ajoute le logo
pbm
à chaque page ;- convertit ces pages en PostScript (avec
ghostscript
) ;- réunit toutes les pages PostScript en une seule ;
- appelle
sendfax
.Je n'ose même pas essayer d'imaginer la mise en oeuvre d'une solution équivalente sur un serveur MS-Windows.
2.6 Conclusion
HylaFax est un logiciel de télé-copie universel, puissant et flexible bien que certaines caractéristiques fassent défaut. Il est très configurable, fournit beaucoup d'informations de débuggage, est sécurisé, et c'est un logiciel libre.
Il existe aussi une liste de diffusion où l'on peut récupérer des patches et résoudre certains problèmes. Une fois encore, le logiciel libre m'a prouvé sa force.
Précédent Suivant Table des matières
Copyright © 1998, Dani Pardo. Publié dans le n°25 de la « Linux Gazette », Février 1998.
Adaptation française : Éric Jacoboni.