Le Serveur de Fax facile !

ArticleCategory:

Applications

AuthorImage:

HackLinux

AuthorName:

HackLinux

AboutTheAuthor:

Cela fait bien longtemps que je n'utilise plus windows
et je m'en porte pas plus mal...

Abstract:

Cette article montre une manière de configurer sa machine Linux comme serveur de fax !

ArticleIllustration:[This is the title picture for your article]

www.hylafax.org

ArticleBody:

1. Introduction

Voici une configuration pour un serveur de fax sous Hylafax 4.0pl2.rjc11 et sur une Mandrake 7.1

Sur le serveur, Hylafax se compose de trois démons :

Sur les stations clientes, il y a les utilitaires suivants (qui peuvent être sur le serveur) :

Les fichiers de configuration intéressants se trouvent dans le répertoire /var/spool/fax/etc/

2. Installation

Je conseille vivement d'ajouter les packages suivants (fournis avec la Mandrake 7.1) :

Ces ressources sont disponibles sur le site officiel http://www.hylafax.org/links.html

Si Hylafax n'est pas installé par défaut, il suffit de le faire :

rpm -ivh hylafax-common-4.0pl2.rjc11-3mdk
rpm -ivh hylafax-client-4.0pl2.rjc11-3mdk
rpm -ivh hylafax-server-4.0pl2.rjc11-3mdk

3. Configuration de Hylafax

Pour configurer le serveur Hylafax, exécutez la commande :

faxsetup -server (en tant que root)

Pour la plupart des questions, il suffit de valider le choix par défaut, sauf pour :

  • Country code [1]? entrez 33 pour la France
  • Area code []? entrez 1 pour Paris
  • Long distance dialing prefix [1]? entrez 0
  • International dialing prefix [011]? entrez 00
  • Dial string rules file [etc/dialrules]? entrez etc/dialrules.europe
  • Serial port that modem is connected to []? entrez ttyS0 (pour COM1) ou ttyS1 (pour COM2)

Hylafax ne lance pas le démon faxgetty par défaut, il faut donc le faire manuellement :

1 - Éditez le fichier /etc/inittab et insérez la ligne suivante à la fin du fichier :

mo:2345:respawn:/usr/sbin/faxgetty -D ttyS0

cela nécessite la commande kill -HUP 1 pour démarrer faxgetty

Ou

Si vous voulez passer par le fichier rc.local :

2 - Ajoutez à votre /etc/rc.d/rc.local la ligne suivante :
/usr/sbin/faxgetty -D /dev/ttyS0

et lancez la commande :

faxgetty -D /dev/ttyS0

Note : La commande faxaddmodem vous permet d'ajouter un ou plusieurs modems a posteriori

Après ces manipulations, le fichier /var/spool/fax/etc/config.ttyS0 (pour com1) a été crée pour faxgetty,
il contient la configuration de votre modem sur /dev/ttyS0
Le fichier /usr/share/fax/hfaxd.conf contient la configuration du démon hfaxd, je n'y ai pas touché !

En cas de problèmes

Pour détecter son modem, il y a la commande probemodem

De plus, il existe des configurations types dans le répertoire /var/spool/fax/config/

Pour mon 3Com US Robotics 56k, j'ai recupéré le fichier usr-2.0 que j'ai copié dans le répertoire /var/spool/fax/etc/
en le renommant config.ttyS0 et en le modifiant un peu :

# Configuration for using the Class 2.0 command interface
# with a USR v.34 Courier or Sporster modem.
#
# CONFIG: CLASS2.0: USRobotics*-*
#
CountryCode:         33
AreaCode:            1
#FAXNumber:          votrenumrero genre: 0134123412
LongDistancePrefix:  0
InternationalPrefix: 00
DiadStringRules:     etc/dialrules.europe (surtout .europe !)
ServerTracing:       1
SessionTracing:      11
RecvFileMode:        0600
LogFileMode:         0600
DeviceMode:          0600
RingsBeforeAnswer:   1
SpeakerVolume:       off
GettyArgs:           "-h %l dx_%s"
#LocalIdentifier:    "votre societe"   (a decommenter si vous voulez le voir sur le fax)
#TagLineFont:        etc/lutRS18.pcf    (idem)
#TagLineFormat:      "De %%l|%c|Page %%p sur %%t"  (idem)
#MaxRecvPages:       25
ModemType:           Class2.0    # use class 2.0 interface
ModemRate:           57600        # 38400 DCE-DTE communication rate
ModemFlowControl:    rtscts        # XON/XOFF flow control assumed
ModemDialCmd:        ATDT0%s # j'ai ajoute un 0 car je passe par un PABX !!!!!
#ModemNoFlowCmd:     AT&H0&I0&R1    # setup modem for no flow control
ModemHardFlowCmd:    AT&H1&I0&R2    # setup modem for hardware flow control
#ModemSoftFlowCmd:   AT&H2&I2&R1    # setup modem for software flow control
#ModemSetupDTRCmd:   ATS13=1&D2    # setup so DTR drop resets modem
#ModemSetupDCDCmd:   AT&C1        # setup so DCD reflects carrier (or not)
ModemResultCodesCmd: ATQ0X4        # enable extended result codes
#ModemSetupAACmd:    AT+FAA=1
#ModemSetVolumeCmd:  "ATM0 ATM1 ATM1 ATM1 ATM1"
Class2BUGCmd:        AT+FBU=0
Class2CQQueryCmd:    !(0),(0)    # override modem response
Class2NRCmd:         AT+FNR=1,1,1,0

Ensuite on ajoute au fichier /var/spool/fax/etc/host les lignes suivantes :

   localhost
   192.168.1
  

On autorise ainsi toutes les machines du domaine 192.168.1.0 à faxer !

4. Lancement de Hylafax

Pour lancer Hylafax automatiquement au démarrage utilisez la commande drakxservices (sur Mandrake) ou setup (sur Red Hat),
ensuite lancez le manuellement par la commande :

/etc/rc.d/init.d/hylafax start 

Si faxgetty n'est pas présent dans les processus (ps -e) lancez le par :

/usr/sbin/faxgetty -D /dev/ttyS0

5. Utilisation de Hylafax

Pour envoyer un fax :

sendfax -n -d number fichier1 fichier2 ..

Pour en verifier l'envoi :

faxstat -s (montre les fax en attente d'envoi)
faxstat -d (montre ceux qui ont été envoyé)
faxstat -r (ceux reçus)
 

Pour supprimer un fax :

faxrm numero_du_job

Pour nettoyer le spool :

faxqclean

Pour effectuer des statistiques :

faxcron

6. Utilisation de Hylafax en réseau

Configuration du serveur

Pour une utilisation en réseau, j'ai choisi une des ressources disponible sur http://www.hylafax.org/links.html

En particulier Printfax et Repond, disponible sur le site http://www.boerde.de/~horstf/ :

Récupérez ces trois fichiers :

Copiez le script printfax.pl dans le repertoire /usr/bin/ et modifiez le pour qu'il fonctionne avec hylafax :

### Format of commandline
#    $cmdlinefmt='mgetty';
    $cmdlinefmt='hylafax';

### The faxspoolprogram
###   for mgetty+sendfax:
#    $faxspool = '/usr/bin/faxspool';
###   for hylafax:
    $faxspool = '/usr/bin/sendfax';

### Additional faxspool args (e.g. header, coverpage)
###   empty:
    @faxspool_args = qw(-n);
###   for mgetty+sendfax with a special header:
#    @faxspool_args = qw( -h /usr/local/etc/mgetty+sendfax/faxheader.smb );
###   for hylafax with send email when job is done or requeued and use
###   a4 sized paper:
#    @faxspool_args = qw(-D -R -s a4);

Note : Verifiez aussi votre version du script printfax.pl, des modifications peuvent avoir eu lieu !

Ajoutez dans /etc/smb.conf le module smb_conf.add par copier/coller :

  [Fax] comment = Imprimante Fax
  public = yes
  postscript = yes
  print command = ( /usr/bin/printfax.pl %I %s %U %m; rm %s ) &
  printable = yes
  writable = no
  path = /var/spool/samba

Verifiez la ligne print command surtout pour windows2000

Il ne reste plus qu'à redémarrer samba,

/etc/rc.d/init.d/smb restart

Configuration du client

Configuration typique d'un client sous WINDOWS 95,98,NT,2000

Il faut installer Respond.zip, qui contient les fichiers config.exe et respond.exe :

Il faut ensuite créer une imprimante distante :

Vous voilà au bout du chemin, ouvrez Wordpad, tapez un texte et imprimez le sur l'imprimante fax !

La boîte de dialogue de respond apparaît alors (si vous avez démarré respond.exe) vous demandant le
numéro de fax, entrez juste le numéro et validez, votre fax va être envoyé au serveur hylafax

Pour vérifier le bon fonctionnement, allez sur le serveur et tapez faxstat -s, il doit apparaître.

Configuration typique d'un client sous Linux :

Utilisez les utilitaires disponibles sur le site d'Hylafax !

7. Le mailing Fax

Le mailing-Fax se fait en local sur le serveur avec StarOffice.

En revanche votre base de données peut être n'importe où sur le réseau, on y accède avec StarOffice(ODBC,JDBC,...)

Pour cela utilisez l'utilitaire spadmin et configurez la sortie telefax : faxspool (PHONE) (TMP)

Dans le document à faxer mettre @@#num_tel_fax@@ en transparent et avec un champ de base de données pour num_tel_fax

Consultez l'aide de StarOffice, tout y est expliqué !

L'inconvénient de cette méthode est que vous devez installer StarOffice sur le serveur de Fax :-(

Pour faire du mailing-Fax via le réseau, la solution par Respond n'est pas pratique si on utilise StarOffice car on doit entrer le numéro de Fax pour chaque destinataire !

J'étudie actuellement une solution alternative pour les mailings importants !

8. Ressources

http://www-phase.c-strasbourg.fr/inform/faxdoc/expose_fax/fonctionnement.html
http://www.hylafax.org

9. Notes de l'auteur

Si ce document vous semble incomplet ou que vous y trouviez quelques fautes, merci d'écrire à contact@hacklinux.org

Et si vous avez un peu de temps, pensez à signer les pétitions du libre (brevets logiciels,...) !