Recevoir des "fac similés" (fax) avec efax.
ArticleCategory:
SystemAdministration
AuthorImage:
TranslationInfo:
original in en Mark Nielsen
en to fr Paul Delannoy
AboutTheAuthor:
Mark Nielsen travaille à AudioBoomerang.com, société
qui crée, expédie et assure le suivi de courrier multimédia personnalisé, de
sites web et de campagnes de presse.
Il travaille comme consultant et propose des produits finis aux
clients d'AudioBoomerang.com, tels que des rapports statistiques
personnalisés utilisés à des fins de profils démographiques ou
psychologiques pour des campagnes à venir.
Pendant son temps libre, il écrit des articles relatifs aux
logiciels libres (GPL) ou aux documents libres (FDL). Il est également
impliqué dans le centre de formation à but non lucratif eastmont.net.
Abstract:
Comment configurer Efax pour recevoir et envoyer des fax sous RedHat 7.2.
ArticleIllustration:[This is the title picture for your article]
ArticleBody:
Le but
Je voulais installer un serveur de fax. J'ai pensé utiliser HylaFax,
mais mon système RedHat intégrait déjà mgetty
qui est entré en conflit avec l'installation de HylaFax par la
commande rpm. Aussi, je ne crois pas me tromper en pensant que je pourrais établir
des sessions de connexion, des sessions vocales ou
des transactions par fax, uniquement avec mgetty. Pour l'instant,
je me contente de recevoir des fax avec l'installation par défaut
de RedHat 7.2, sans ajout de logiciel supplémentaire.
Efax et fax sont une seule et même chose. 'fax' est un script
d'appel d'Efax.
Fichiers de configuration
Pour que cela fonctionne, vous devez configurer deux fichiers :
/usr/bin/fax et /etc/inittab.
Copiez /usr/bin/fax vers /usr/bin/fax_custom ; j'y ai changé
les lignes suivantes :
FAXDIR=/var/spool/fax/incoming
NAME="AudioBoomerang.com Computer Fax Server"
FROM="+1 111 222 3333"
ANSFNAME="fax_%Y%m%d_%H%M%S"
Dans /etc/inittab, j'ai changé :
S0:2345:respawn:/bin/sh /usr/bin/fax_custom answer
Efax et fax -- réception d'un seul fax
Pour recevoir un fax de quelqu'un dont vous savez qu'il vous envoie
ce fax, exécutez cette commande :
efax -d /dev/ttyS0 -l "268 1162" -c 1,5 -r reply
ou
fax answer
Si vous ne désirez pas que le logiciel fax attende en tâche de fond
le prochain appel, ne modifiez pas /etc/inittab comme mentionné dans la partie
"fichiers de configuration".
Efax et fax -- réception de plusieurs fax
avec inittab
Si vous avez modifié le fichier /etc/inittab comme indiqué dans
le paragraphe "Fichiers de configuration", redémarrez
l'ordinateur : votre modem va alors recevoir les fax et les stocker dans
le répertoire /var/spool/fax/incoming.
Si vous tapez la commande :
ps auxw | grep efax
vous obtiendrez la preuve que efax fonctionne en tâche de fond,
grâce à une ligne ressemblant à :
root 1698 0.0 0.4 1576 616 ? S< 21:47 0:00 /usr/bin/efax -v
-v chewmainrxtf -d/dev/modem -iZ -i&FE&D2S7=120 -i&
La bonne chose, c'est que, si vous tuez le processus numéro
"1698", il va être réactivé et je crois qu'en plus, il relira le fichier
/usr/bin/fax_custom file. Ainsi, si vous modifiez ce
fichier, il vous suffit de tuer le processus correspondant avant tout nouvel
essai de fax, afin de tester votre nouvelle configuration.
Que doit-on faire après la réception d'un
fax ?
Le mieux est de lancer une tâche cron
qui trie les fichiers dans /var/spool/fax/incoming, crée
un verrou pour chaque groupe de fax, puis, soit les convertit en pdf pour
permettre de les visualiser sur le web, soit les imprime.
Pour les imprimer, utilisez par exemple efix, ainsi :
efix -ops fax_20020606_014847.001 | lpr
Je vous conseille d'imprimer le fichier puis de l'archiver dans un répertoire
de sauvegarde.
Envoyer des fax
Configurer le service d'impression a été plus complexe que je ne le pensais.
D'abord, suivez les indications des pages de manuel (avec quelques différences)
:
-
ln /usr/bin/fax /usr/bin/faxlpr
-
Dans le fichier/etc/printcap.local
fax:lp=/dev/null:sd=/var/spool/fax:if=/usr/bin/faxlpr_perl:
-
mkdir /var/spool/lpd/fax
touch /var/spool/lpd/fax/lock
-
/etc/rc.d/init.d/lpd restart
Voici les modifications effectuées :
-
Dans /usr/bin/faxlpr, j'ai changé
l=`$FAX send "$num" fax$$`
en
`gs -q -sDEVICE=tiffg3 -dNOPAUSE -sOutputFile=fax_out fax$$ </dev/null`
l=`efax -t $num fax_out`
`rm fax_out`
et aussi modifié ces trois lignes de la section faxlpr :
num=` echo "$cfile" | sed -e /^[^J]/d -e s/..//`
host=`echo "$cfile" | sed -e /^[^H]/d -e s/..//`
user=`echo "$cfile" | sed -e /^[^P]/d -e s/..//`
-
Ce script perl a été enregistré sous le nom /usr/bin/faxlpr_perl
puis les droits ont été corrigés par un chmod 755 /usr/bin/faxlpr_perl:
#!/usr/bin/perl
my $String = "";
foreach my $Arg (@ARGV)
{
if ($Arg =~ /\-j/)
{
my $Copy = $Arg;
$Copy =~ s/\-j//;
open(FILE,">lock"); print FILE "hfA$Copy"; close FILE;
}
}
my $Command = "/usr/bin/faxlpr";
system ($Command, @ARGV);
print 1;
-
Là, je n'ai pas du tout apprécié, mais j'ai dû taper
"chmod 666 /dev/ttyS1" pour que l'utilisateur lpr qui contrôle les tâches
d'impression puisse se servir du modem.
Ce script perl permet à faxlpr de connaître le numéro du
processus et de changer la commande "fax" en "efax"; ceci a été nécessaire
parce qu'il essayait de créer des verrous que je ne voulais pas.
Je pense que ma méthode d'envoi altère ces verrous, ça peut poser des
problèmes si vous essayez d'envoyer un fax pendant la réception d'un autre.
Après toutes ces peines et souffrances, votre programme d'impression
doit aussi supporter l'option "-J" pour que vous puissiez taper une commande
'lpr -P fax -J "555 1212" file.ps'. Sinon, redirigez l'impression vers un fichier puis
imprimez celui-ci à partir de la ligne de commande.
Vous pourriez également utiliser la commade efax directement pour envoyer un
fax, sans passer par le service d'impression. Vous devez alors utiliser gs
pour le convertir avant de l'envoyer, ce qui reste une contrainte.
Conclusion
Dès que je pourrai, j'essaierai de voir si je peux :
-
Envoyer des fax avec samba et mgetty. Je remplacerai /usr/bin/fax_custom
par mgetty dans inittab afin de recevoir et d'envoyer des fax
sans tous ces désagréments. La réception de fax et l'envoi manuel par efax
fonctionnent, la seule difficulté vient de l'envoi par le
service d'impression.
-
Utiliser mgetty non seulement pour les fax, mais aussi pour la voix et
les connexions.
Efax est une solution temporaire, jusqu'à ce que j'arrive à
faire fonctionner mgetty (je n'ai pas encore réussi). Ma
seule raison de ne pas utiliser hylafax est le conflit avec mgetty
rencontré lors de l'installation par rpm, ce qui m'a
poussé à m'intéresser à mgetty, puis à choisir
efax. Je vais essayer d'utiliser mgetty dans l'avenir parce que je
voudrais établir des connexions et des sessions vocales avec le même modem.
Cela semble tout à fait possible -- mais il se pourrait que certains modems
éprouvent des difficultés à distinguer les fax de la voix, la voix
des connexions. Je n'aime pas vraiment envoyer et recevoir des fax avec
efax et le service d'impression. J'espère que mgetty
résoudra une partie des problèmes rencontrés.
Références
-
Le serveur de fax facile !
-
Un serveur de fax Linux
pour un réseau Windows
-
Linux Fax pour les nuls
-
Hylafax