
En outre, les 2 parties "serveur" et "cliente" de la distribution ont été utilisées localement sur la même machine. Je n'ai pas testé à ce jour l'utilisation du serveur de fax à partir d'un poste "client" situé sur un réseau local ,.
Cette mini documentation n'a pas vocation à etre
exhaustive, elle ne dispense sutout pas de la lecture du manuel Unix pour
chacune des commandes. Son but est d'apporter une synthèse générale
de l'ensemble du système et d'éviter quelques pièges.
rpm -qi HylaFAX Name : HylaFAX Distribution: (none) Version : 4.0pl1 Vendor: (none) Release : 1 Build Date: Thu Jan 02 16:53:21 1997 Install date: Tue Apr 29 10:41:10 1997 Build Host: hudson.ftlsol.com Group : Applications/Communications Source RPM: HylaFAX-4.0pl1-1.src.rpm Size : 5822308 Summary : HylaFAX fax/paging software Description : This package was made from the binary release of hylafax v4.0pl1. This package can be found at: ftp://ftp.sgi.com/sgi/fax/binary/hylafax-i386-linux-v4.0pl1-1.tar.gz The above binary distribution was created (without patches) from the source distribution found at: ftp://ftp.sgi.com/sgi/fax/source/hylafax-v4.0pl1-tar.gz NOTE: This RPM will only install the software. It will not configure it for you. Please read the documentation for notes on doing so and also consider reading: ftp://ftp.sgi.com/sgi/fax/binary/INSTALL-hylafax-i386-linux-v4.0pl1
La distribution fonctionne en mode client-serveur. Elle se compose :
Attention : HylaFAx nécessite d'autres distributions logicielles pour fonctionner
$ faxsetup <option> (avec <options> : "-server" | "-client")L'option "serveur" suffit pour effectuer d'ailleurs les contrôles nécessaires au fonctionnement des 2 parties serveur ET client sur le même poste
RingsBeforeAnswer: 2 LocalIdentifier: "Maurice Libes - PC Linux Redhat"Il est conseillé de faire lancer le daemon faxq par le process "init" (c'est a dire de prévoir une entrée de paramétrage dans /etc/inittab)
$grep -i fax /etc/inetd.conf hylafax stream tcp nowait fax /usr/sbin/hfaxd hfaxd -I $ grep -i fax /etc/services hylafax 4559/tcp # protocole client-server de HylaFAX
/usr/sbin/faxabort : pour interrompre/annuler la réception d'un fax
/usr/bin/faxrm : pour interrompre/annuler l'émission d'un fax
/usr/sbin/faxaddmodem : shell script pour installer et configurer un modem par HylaFAX. Ce script est a l'installation lancé par faxsetup. N'ayant qu'un seul Modem sur un seul port série, je n'ai pas eu besoin pour l'instant de rajouter une configuration de modem suplémentaire.
/usr/sbin/faxconfig : permet de modifier les paramètres de HylaFAX dynamiquement. faxconfig envoie un message a faxq lui disant de relire les nouveaux paramètre dans /var/spool/fax/etc/config.cua0
/usr/sbin/faxanswer : commande non testée.. peut être une solution pour faire une réponse adaptative au modem. En effet les options de faxanswer sont "fax" "data" "voice" "any" pour indiquer comment on doit répondre a l'appel. Le lecteur aura la gentillesse de me communiquer son expérience ou ses solutions en matière de gestion de réponse adaptative d'un modem.
/usr/bin/faxstat (***) : donne l'état du serveur de Fax (ready, busy, waiting...) ainsi que de la plupart des queues de réception et d'émission des fax (attention c'est dans bin et pas dans sbin, et ne pas confondre avec la commande faxstate)
/usr/sbin/probemodem (***): utilitaire pour tester le fonctionnement du modem. (on peut également pour tester le dialogue et les réponses du modem utiliser la commande Unix cu . Ex : cu -l cua0 si le modem est sur le port série cua0)
Probing for best speed to talk to modem: 38400 OK. This looks like a Class 1+2.0 modem... ATI3 RESULT = "OK" RESPONSE = "USRobotics Sportster Voice 33600 Fax/usr/sbin/faxcron (**) : shell script pouvant être lancé par cron (ou a la main) qui permet de calculer et imprimer des statistiques d'utilisation du fax et de purger tous les vieux fichiers fax envoyés, reçus et de traces des répertoires...etc
/usr/sbin/faxqclean (**) : nettoie les répertoires (doneq docq etc..) de réception des fax. Commande pouvant être lancée interactivement ou par cron
/usr/sbin/faxquit (**) : dézingue la partie serveur... i.e tue le process faxq... pour détruire tous les dameons, il faut aussi tuer le daemon faxgetty par kill -9 <pid_faxgetty>
/usr/sbin/faxinfo (**) : pour obtenir des renseignements sur un Fax recu
/usr/sbin/faxinfo /var/spool/fax/recvq/fax00013.tif /var/spool/fax/recvq/fax00013.tif: Sender: LIBES MAURICE Pages: 1 Quality: Fine Page: ISO A4 Received: 1997:05:27 10:05:31 TimeToRecv: 0:23 SignalRate: 14400 bit/s DataFormat: 1-D MR/usr/sbin/faxmodem (*) : (non testé à ce jour) utilitaire d'installation. Cette commande est, normalement lancée dès l'installation du système par faxsetup pour configurer le modem. PAr la suite elle peut être utilisee pour ajouter un nouveau modem. Faxmodem informe le daemon faxq qu'un nouveau modem est disponible usr/sbin/faxstate (*) : (non utilisé par moi) commande non interactive qui contrôle l'état du modem (ready , busy ....) /usr/sbin/faxmsg (*) : ? (non utilisé) et pas de fichier man trouvé. /usr/sbin/faxwatch (*) : (bof!) non testé
path=/var/spool/var/ if [ -f $path/recvq/$fic ] ; then fax2ps $path/recvq/$fic > $faxrecus/$out ghostview $faxrecus/$out else echo $path/recvq/$fic absent... fi/usr/bin/faxcover : génère une page de garde en postscript. Cette page de garde sera jointe (selon les options de sendfax) a tout envoi de fax. Normalement faxcover est une commande lancée lors de l'envoi de fax par sendfax. On peut l'utiliser pour faire des essais de consitution de pages de garde.
/usr/bin/faxstat (***) : (déjà décrit plus haut) donne l'état du serveur de Fax (ready, busy, waiting...) ainsi que de la plupart des queues de réception et d'émission des fax (attention c'est dans bin et pas dans sbin, et c'est différent de la commande faxstate)
/usr/bin/fax2tiff : convertir un fax postscript en format tiff
/usr/bin/faxmail : (à ce jour non testé) passerelle entre le mail et le fax... faxmail convertit un mail recu en postscript . A priori, faxmail n'émet pas le mail en Fax...il faut enchaîner cette commande avec une commande d'envoi comme sendfax
/usr/bin/faxalter : modifie la priorité de transmission d'un fax
/usr/bin/faxrm : pour détruire un fax du serveur de fax ou un job en cours d'émission. Ce programme lit sa conf dans /usr/share/fax/hyla.conf
commandes de HylaFAX. Les fichiers de config les plus importants sont
(***) /var/spool/fax/config : fichiers de config de HylaFAX
(**) /var/spool/fax/docq : contient les fichiers postscripts des fax "émis" : la page de garde (ex: doc38.cover) ainsi que le fichier postscript du message (ex:doc38.ps)
(**) /var/spool/fax/recvq : répertoire de réception des fax (contenu donné par faxstat -r)
(**) /var/spool//fax/sendq : répertoire d'émission des fax (contenu donné par faxstat -s)
(**) /var/spool/fax/log : intéressant, contient les fichiers de trace des échanges avec le modem. Toutes les commandes AT vers le modem sont notifiées... A consulter en cas de problème de transmission
(**) /var/spool/fax/doneq : fichier de synthèse de certains paramètres issu de l'envoi d'un fax
(**) /var/spool/fax/status : état du modem (ready busy..)
/var/spool/fax/archive :
/var/spool/fax/bin : quelques binaires notamment pour creer page de garde postscript
/var/spool/fax/info : quelques infos sur l'émission vers un numero de fax
/var/spool/fax/pollq : ?
/var/spool/fax/client :
/var/spool/fax/tmp :
fax:C6sXs4itcV5m6:10:14:Fac Simile agent:/var/spool/fax:
Ce compte fax doit avoir le même uid et gid que le compte uucp uucp:*:10:14:uucp:/var/spool/uucp:
NB: ne pas s'amuser a mettre un autre uid et gid car la commande faxsetup le refuse et demande a corriger
config config.cua0 cover.templ dialrules dialrules.europe dialrules.sf-ba dpsprinter.ps hosts lutRS18.pcf setup.cache setup.modem xferlogfaxsetup lance les commandes faxaddmodem et probemodem qui teste et reconnaît et installe automatiquement le modem sur le port série /dev/cua0
et cree les fichiers etc/config et etc/config.cua0
pour connaître les options disponibles dans ce fichier (exemple :
FaxContact: FaxMaster # who gets questions/complaints UserAccessFile: "/etc/hosts" # user+host access control file(***) /var/spool/fax/etc/hosts : définit les CONTROLES D'ACCES au SERVEUR DE FAX pour le
daemon hfaxd. Consulter le man 5 hosts pour connaître
la syntaxe des enregistrements de ce fichier!! (peut
être avais-je mal lu, mais j'ai eu du mal à trouver ca!)
Ce fichier définit quelles machines et quels utilisateurs
peuvent avoir accès au serveur de fax. la syntaxe
des enregistrements est client:uid:passwd:adminwd
localhost 127.0.0.1 libes@compc32.*::: (le user libes sur la machine compc32 sans uid ni passwd) root@compc32.*:::(**) /usr/share/fax/hyla.conf : contient des paramètres utilisés par la comande sendfax qui envoie des fax. Ce qui permet de personnaliser un envoi de fax
$more /usr/share/fax/hfaxd.conf TextFont: "Helvetica" Host: compc32.univ-mrs.fr MailAddr: libes@com.univ-mrs.fr Verbose: Yes FontDir: /usr/share/ghostscript/fonts AutoCoverPage: yes ChopThreshold: 2.0 DateFormat: "%A %d %B %H:%m" (ce qui donnera Monday 05 May 17 :05, je n'ai pas su Franciser la Date:merci si quelqu'un trouve ) From: "Maurice Libes - PC Linux redhat" PageSize: "a4"
dans etc/services hylafax 4559/tcp # HylaFAX client-server protocol dans /etc/inetd.conf hylafax stream tcp nowait fax /usr/sbin/hfaxd hfaxd -I
On peut aussi en mode debug lancer /usr/sbin/faxgetty -D cua0 (-D pour mode detache en daemon)
$ ps -ax |grep fax 2566 ? S 0:00 /usr/sbin/faxq cua0 2624 ? S 0:00 /usr/sbin/faxgetty cua0
ce fichier recence les noms de login des personnes autorisées
a se servir du système de fax la syntaxe est client:uid:passwd:adminwd
HylaFAX scheduler on compc32.univ-mrs.fr: Running
Modem cua0 (0491829325): Running and idle
HylaFAX scheduler on compc32.univ-mrs.fr: Running
Modem cua0 (0491829325): Running and idle
Protect Page Owner Sender/TSI Recvd@ Filename
-rwxr-x 1 10 0491826548 15:52 fax00002.tif
-rwxr-x 1 10 0491826548 15:53 fax00003.tif
ftp localhost 4559 Connected to compc32.univ-mrs.fr. 220 compc32.univ-mrs.fr server (HylaFAX (tm) Version 4.0pl1) ready. Name (compc32:root): 230 User root logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>ls 200 PORT command successful. 150 Opening new data connection for ".". drwxrwx 2 0 1024 Apr 29 17:05 bin drwxrwx 2 0 1024 Apr 29 08:41 config drwxrwx 2 0 1024 Apr 29 16:27 recvq drwxrwx 2 0 1024 Apr 29 16:32 doneq drwxrwx 2 0 1024 Apr 29 16:32 info drwxrwx 2 0 1024 Apr 29 16:31 log drwxrwx 2 0 1024 Apr 29 08:45 pollq drwxrwx 2 0 1024 Apr 29 16:32 sendq drwxrwx 2 0 1024 Apr 29 10:04 status drwxrwx 2 0 1024 Apr 29 16:31 tmp 226 Transfer complete. ftp> dir recvq 200 PORT command successful. 150 Opening new data connection for "recvq". -rwxr-x 1 10 0491826548 15:52 fax00002.tif -rwxr-x 1 10 0491826548 15:53 fax00003.tif ftp> quote jkill 7 (<== pour detruire le job n7 en cours d'émission) ftp> dele docq/doc1.ps (<== detruit le document postscript) ftp> 221 Goodbye.
$tail /var/log/messages May 2 12:15:05 compc32 FaxGetty[6388]: ANSWER: Can not lock modem device May 2 12:15:10 compc32 FaxSend[12372]: MODEM USROBOTICS SPORTSTER V.34+ FAX / May 2 12:15:10 compc32 FaxSend[12372]: SEND FAX: JOB 25 DEST 10491407689 COMMID 00000038 May 2 12:16:11 compc32 FaxGetty[6388]: MODEM USROBOTICS SPORTSTER V.34+ FAX / May 2 12:17:12 compc32 FaxQueuer[6366]: SUBMIT JOB 26 May 2 12:17:17 compc32 FaxGetty[6388]: ANSWER: Can not lock modem device May 2 12:17:22 compc32 FaxSend[12391]: MODEM USROBOTICS SPORTSTER V.34+ FAX / May 2 12:17:22 compc32 FaxSend[12391]: SEND FAX: JOB 26 DEST 10491826548 COMMID 00000039 May 2 12:18:53 compc32 FaxGetty[6388]: MODEM USROBOTICS SPORTSTER V.34+ FAX /
$ sendfax -f libes -x "Labo destinataire" -c "essai
d'envoi de fax depuis linux" -D -m -s a4 -d michele.libes@10491463252
Les options intéressantes sont
-f pour From identifie le nom de l'émetteur : ce champ ira dans le champ From de la page de garde
-x identifie le champ "Company" de la page de garde: c'est l'entreprise (laboratoire) du destinataire. Ce paramètre correspond au champ Cover-company du fichier /usr/share/fax/hyla.conf
-m paramètre un envoi en résolution "fine"
-s a4 format de la page A4 : ce paramètre peut être mis par défaut dans le fichier /usr/share/fax/hyla.conf par l'option PageSize: "a4"
ATTENTION : à ne pas tomber dans le même PIEGE que moi, qui consiste a croire que Hylafax (sendfax) ne fonctionne pas parce que le modem a été paramétré par défaut en mode silencieux (ATM0) dans ~/etc/config.cua0
SpeakerVolume: Quiet ModemSetVolumeCmd: "ATM0 ATM1 ATM1 ATM1 ATM1"Pour avoir le "bruit" de la numérotation (moi ça me rassure..) , il est nécessaire de remplacer ATM0 par ATM1 (enfin du moins sur mon modem USR sportster, mais je pense que ce sont des commandes AT assez standard)
Re-Attention :
#0 ascii x ps %F/textfmt -B -f Courier-Bold\ a été remplacée par 0 ascii x ps %F/textfmt -B \ -p 11 -s %s >%o <%i Après tout cela....CA (devrait) MARCHE (R) !!!!!!!!
$ sendfax -m -c"test" -x "Cabinet de Michou" -d libes@10491463253 je met des lettres accentuées éé èè àà ML <ctrlD> pour sortir /tmp//sndfaxa05404: Can not determine file type
utiliser /usr/sbin/faxinfo fax00005.tif fax00005.tif: Sender: LIBES MAURICE Pages: 1 Quality: Fine Page: ISO A4 Received: 1997:04:29 22:45:17 TimeToRecv: 0:22 SignalRate: 14400 bit/s DataFormat: 1-D MR
fax2ps fax00006.tif > momo6.ps puis le visualiser avec un convertisseur postscript
gs momo6.ps
Ainsi que la commande faxcron
Je cherche (comme sous Windaube par l'application WinTel) a faire gérer le modem de manière a adapter une action au type d'appel qu'il recoit (appel voice ou fax ou data)
ex:
Des pistes....
l'option -h de faxanswer permet de specifier dans quel cas le modem répond automatiquement....
-h Specify exactly how the phone should be answered. By default, the server process is instructed to answer the phone and accept any kind of call (voice, data, fax). Discrimination of the type of call is dependent on a modem's adaptive-answer support. The -h option can be used to force the server to answer the phone for particular type of call: one of fax, data, voice, any, or extern (to force faxgetty to invoke an external application to to handle the call).je ne sais pas ou on peut parametrer cette option..puisque faxanswer est lancé par faxgetty
Autre piste : man 5 config
Par défaut la cover page se trouve dans /usr/share/fax/faxcover.ps
Pour personnaliser cette page qui par defaut comporte le logo de SIlicon Graphics et qui est écrite en Anglais, il faut modifier le code Postscript a la main (c'est pas Palaace)
On peut prendre des modèles sur le site ftp.sgi.com/sgi/fax/contrib/covers
Personnellement , pour ne pas trop me fatiguer, j'ai pris le modèle herber.ps dont j'ai francisé certaines appellation de champs dans le code postscript
< /to (A:) Label < /to-fax-number (numero Fax:) Label < /to-company (Societe:) Label < /from (De:) Label < /regarding (Sujet:) Label < /todays-date (Date:) Label < 84 /page-count (pages suivantes:) LongLabel --- > /to (To:) Label > /to-fax-number (Fax Number:) Label > /to-company (Company:) Label > /from (From:) Label > /regarding (Re:) Label > /todays-date (Today's Date:) Label > 84 /page-count (# of following pages:) LongLabel 144c144 < LabelCol CurrY M (Commentaire:) RS --- > LabelCol CurrY M (Comments:) RS gsave 50 696 translate (C.O.M) <--- mettre ici votre logole package make_faxcover.tar permet de creer une page de garde.. je ne l'ai pas testé. Merci a toi au lecteur, si ayant du succès en utilisant ce package, de m'en indiquer les modalités afin que je mette a jour cette humble documentation
ML 4/06/97