Un serveur d'impression de fax est une installation de quelques programmes: efax, et le serveur d'impression, de telle manière qu'envoyer un fax à partir de l'ordinateur est aussi simple qu'envoyer une impression à l'imprimante.
Installer efax comme serveur d'impression de fax comporte peu
de problème. Comme j'ai travaillé dessus quelque fois, j'ai décidé
de réunir ces connaissances dans ce petit mini-HOWTO, les commentaires
sont les bienvenus à erez@newplaces.com.
Je les décrits ici ainsi que les solutions, et toutes les instructions en quelques étapes:
Assurez-vous que vous avez le progiciel efax.
Sur les systèmes qui reposent sur RPM utilisez la commande 'rpm -qv efax'
.
Vous pouvez obtenir les sources d'efax en format tar.gz chez sunsite:
ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm/fax/efax08a.tar.gz
ou le progiciel binaire en rpm:
ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/efax-0.8a-3.i386.rpm
.
Le documentation d'efax a oublié le : à la fin de l'entrée printcap.
Solution: ajouter ce qui suit à l'entrée /etc/printcap
:
fax:\
:lp=/dev/null:\
:sd=/var/spool/fax:\
:if=/usr/bin/faxlpr:
fax
Uilisez des liens physique et non des liens symboliques à la commande fax.
Exécuter la commande:
ln /usr/bin/fax /usr/bin/faxlpr
/usr/bin/fax
. Editez /usr/bin/fax
à votre convenance.
Choisir la bonne classe de votre modem:
CLASS=2.0
Positionner le champ FROM="votre numéro de téléphone international"
NAME="votre nom"
Ajouter la ligne de conversion du numéro de téléphone international en local, par exemple pour Israël vous pourriez utiliser:
TELCVT='sed -e s/+972/0/ -e s/+/00/' # Israel
Il y a un problème dans le fichier à la ligne 586, changer le cfile=... avec les deux lignes suivantes:
cfile=`/usr/bin/tail -1 lock`
cfile=`cat $cfile`
Aux lignes 586,587 il ne devriez pas y avoir le signe '-', les lignes sont
0) echo "$l" | mail -s "fax to $num succeeded" $user@$host ;;
*) echo "$l" | mail -s "fax to $num failed " $user@$host ;;
/var/spool/fax
Créer le répertoire /var/spool/fax
mkdir /var/spool/fax
chmod 777 /var/spool/fax
lock
. Le fichier lock (/var/spool/fax/lock
) est créé avec des permissions
incorrectes, utiliser les commandes suivantes pour les positionner
correctement:
touch /var/spool/fax/lock ; chmod 644 /var/spool/fax/lock
/dev/modem
Le programme efax s'attend à un fichier device /dev/modem
réél et
ne fonctionnera pas avec des liens symobliques, donc créer un fichier
device avec le même nombre majeur et le même mineur que /dev/cua?
qui est connecté au modem. Le fichier devra avoir les permissions
rw-rw-rw-
pour autoriser n'importe quel utilisateur à utiliser le
logiciel de fax.
ls -lL /dev/modem
rm /dev/modem
mknod /dev/modem c Mj Mi
chmod 666 /dev/modem
Mj est 5, et Mi est 64 pour cua0, 65 pour cua1 et ainsi de suite. Par exemple (pour cua1) :
mknod /dev/modem c 5 65
/var/lock
. chmod 1777 /var/lock
Vous devez utiliser l'imprimante fax en utilisant l'option -P et l'option -J avec le numéro de fax.
Utiliser une des commandes lpr suivantes :
lpr -Pfax -J <Numéro-De-Fax> [nom-de-fichiers]
toute commande | lpr -Pfax -J <Numéro-De-Fax>
Après l'option -J.
Ajouter les entrées suivantes dans le fichier /etc/printcap
et
le système client Linux, créer le répertoire de spool, et ainsi
de suite...
fax:\
:sd=/var/spool/fax:\
:mx#0:\
:sh:\
:rm=host.domain:\
:rp=fax:
ajouter le nom de l'hôte client dans /etc/hosts.lpd
sur la
machine serveur de fax.
Utiliser comme précédemment.
Note:
La chaîne de caractère d'entête qu'efax ajoute aux pages des fax n'est pas effectué par l'utilisateur qui envoi le fax. (peut être mis à jour).
Le logiciel de contrôle d'impression LPRng utilise une méthode différente pour prendre en charge le fichier de contrôle.
Merci à Luca Montecchiani
m.luca@usa.net
,
qui a trouvé le problème et la solution. Voici une mise à jour du fichier
/usr/bin/fax
. Les lignes suivantes remplacent les deux simples
lignes de cfile=... aux lignes 586,587
# Modified to work also with the LPRng package
# Luca Montecchiani (08/11/97 m.luca@usa.net)
if [ !-z "$CONTROL_FILE" ]
then
cfile=`cat tail -1 lock`
cfile=`cat $cfile`
else
cfile=$CONTROL_FILE
fi