GAZETTE N°25: Hylafax

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èque tiff 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'utilisateur fax, 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 lancera faxaddmodem 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), et hfaxq (ordonnanceur de tâches gérées en tourniquet). Vous devez lancer faxmodem pour indiquer au scheduler le(s) modem(s) qu'il peut utiliser. Si vous avez aussi prévu de recevoir des appels, vous devez configurer faxgetty 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) et faxrm pour supprimer les travaux en attente. sendfax appelle faxq, sendpage, etc. Il invoque aussi ghostscript 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 invoque faxclean 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 et WinFlex pour les utilisateurs de MS-Windows. Avec Winflex (et Macflex, 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 paquetage pbmplus ;
  • 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.