Hylafax en Ubuntu

De GALPon WiKi

Documento creado por capri99 (Carlos Rodríguez). Cualquier aportación será bienvenida :-)

Después de haber configurado el módem SmartLink PCI que tengo, me decido a configurar el hylafax para poder enviar faxes por la línea de teléfono convencional.

Aunque este COMO está hecho desde Ubuntu, se puede extrapolar a cualquier distribución de GNU/Linux fácilmente.

Instalo los paquetes necesarios con sus correspondientes dependencias

sudo apt-get install hylafax-server hylafax-client hylafax-doc

Después de la instalación de los paquetes necesarios, comienza automáticamente la configuración del hylafax-server:

Configurando hylafax-server (4.2.5-1) ...
Adding system user `faxmaster'...
Adding new group `faxmaster' (114).
Adding new user `faxmaster' (114) with group `faxmaster'.
Not creating home directory `/var/spool/hylafax'.
Setup program for HylaFAX (tm) 4.2.5.
Created for i686-pc-linux-gnu on Mon Jan 16 17:09:50 UTC 2006.
Looks like /usr/bin/base64-encode supports base64 encoding.
Checking system for proper server configuration.
Warning: /etc/hylafax/getty-link does not exist or is not an executable program!
The file:
    /etc/hylafax/getty-link
does not exist or this file is not an executable program.  The
HylaFAX software optionally uses this program and the fact that
it does not exist on the system is not a fatal error.  If the
program resides in a different location and you do not want to
install a symbolic link for /etc/hylafax/getty-link that points to your program
then you must reconfigure and rebuild HylaFAX from source code.

Warning: /etc/hylafax/vgetty-link does not exist or is not an executable program!
The file:
    /etc/hylafax/vgetty-link
does not exist or this file is not an executable program.  The
HylaFAX software optionally uses this program and the fact that
it does not exist on the system is not a fatal error.  If the
program resides in a different location and you do not want to
install a symbolic link for /etc/hylafax/vgetty-link that points to your program
then you must reconfigure and rebuild HylaFAX from source code.
Warning: /etc/hylafax/egetty-link does not exist or is not an executable program!
The file:
    /etc/hylafax/egetty-link
does not exist or this file is not an executable program.  The
HylaFAX software optionally uses this program and the fact that
it does not exist on the system is not a fatal error.  If the
program resides in a different location and you do not want to
install a symbolic link for /etc/hylafax/egetty-link that points to your program
then you must reconfigure and rebuild HylaFAX from source code.
Make /var/spool/hylafax/bin/ps2fax a link to /var/spool/hylafax/bin/ps2fax.gs.
Make /var/spool/hylafax/bin/pdf2fax a link to /var/spool/hylafax/bin/pdf2fax.gs.
Update /var/spool/hylafax/status/any.info.
        HylaFAX configuration parameters are:
        [1] Init script starts faxq:            yes
        [2] Init script starts hfaxd            yes
        [3] Start old protocol:                 no
        [4] Start paging protocol:              no
Are these ok [yes]?
Modem support functions written to /var/spool/hylafax/etc/setup.modem.
Configuration parameters written to /var/spool/hylafax/etc/setup.cache.
Restarting HylaFAX server processes.
You do not appear to have any modems configured for use.  Modems are
configured for use with HylaFAX with the faxaddmodem(8) command.
Do you want to run faxaddmodem to configure a modem [yes]?
Done verifying system setup.
Creating /etc/hylafax/setup.cache from /var/spool/hylafax/etc/setup.cache.
Creating /etc/hylafax/setup.modem from /var/spool/hylafax/etc/setup.modem.
/var/spool/hylafax
Stopping HylaFAX daemons: faxq(not running) hfaxd(not running) faxgetty.
+ /bin/cp -a "/etc/hylafax/setup.cache" "/var/spool/hylafax/etc/setup.cache"
Starting HylaFAX daemons: faxq hfaxd faxgetty.

Tal y como nos indica, no hemos configurado aún nuestro módem. Para ello nos comenta que empleemos el comando faxaddmodem.

sudo faxaddmodem

Y nos pregunta en qué puerto está el modem escuchando (en mi caso es el ttySL0):

Serial port that modem is connected to [ttyS0]? ttySL0

Ya en este momento nos preguntará diferentes datos necesarios para poder enviar faxes como prefijos, número nuestro, algún código que identifique nuestro fax, etc. En aquellas preguntas en las que no modifico la opción por defecto (la que está entre corchetes) simplemente le doy al Intro o Return para aceptar.

Ok, time to setup a configuration file for the modem.  The manual
page config(5) may be useful during this process.  Also be aware
that at any time you can safely interrupt this procedure.
Reading scheduler config file /var/spool/hylafax/etc/config.
No existing configuration, let's do this from scratch.
Country code [1]? 34
Area code [415]? 91
Phone number of fax modem [+1.999.555.1212]? +34.91.234.5678
Local identification string (for TSI/CIG) ["NothingSetup"]? Pepito-de-los-palotes
Long distance dialing prefix [1]? 0 
International dialing prefix [011]? 00
Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]?
Tracing during normal server operation [1]?
Tracing during send and receive sessions [11]? 
Protection mode for received facsimile [0600]?
Protection mode for session logs [0600]?
Protection mode for ttySL0 [0600]?
Rings to wait before answering [1]? 10
Modem speaker volume [off]?
Command line arguments to getty program ["-h %l dx_%s"]?
Pathname of TSI access control list file (relative to /var/spool/hylafax) [""]?
Pathname of Caller-ID access control list file (relative to /var/spool/hylafax) [""]?
Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]?
Tag line format string ["From %%l|%c|Page %%P of %%T"]?
Time before purging a stale UUCP lock file (secs) [30]?
Hold UUCP lockfile during inbound data calls [Yes]?
Hold UUCP lockfile during inbound voice calls [Yes]?
Percent good lines to accept during copy quality checking [95]?
Max consecutive bad lines to accept during copy quality checking [5]?
Max number of pages to accept in a received facsimile [25]?
Syslog facility name for ServerTracing messages [daemon]?
Set UID to 0 to manipulate CLOCAL [""]?
Use available priority job scheduling mechanism [""]? 
The non-default server configuration parameters are:
CountryCode:            34
AreaCode:               91
FAXNumber:              +34.91.234.5678
LongDistancePrefix:     0
InternationalPrefix:    00
DialStringRules:        etc/dialrules
SessionTracing:         11
RingsBeforeAnswer:      10
SpeakerVolume:          off
GettyArgs:              "-h %l dx_%s"
LocalIdentifier:        Pepito-de-los-palotes
TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From %%l|%c|Page %%P of %%T"
MaxRecvPages:           25
Are these ok [yes]? yes

Ahora procederá a ponerse en contacto con el módem para ver qué capacidades tiene:

Now we are going to probe the tty port to figure out the type
of modem that is attached.  This takes a few seconds, so be patient.
Note that if you do not have the modem cabled to the port, or the
modem is turned off, this may hang (just go and cable up the modem
or turn it on, or whatever).
Probing for best speed to talk to modem: 38400 OK.
About fax classes:
The difference between fax classes has to do with how HylaFAX interacts
with the modem and the fax protocol features that are used when sending
or receiving faxes.  One class isn't inherently better than another;
however, one probably will suit a user's needs better than others.
Class 1 relies on HylaFAX to perform the bulk of the fax protocol.
Class 2 relies on the modem to perform the bulk of the fax protocol.
Class 2.0 is similar to Class 2 but may include more features.
Class 1.0 is similar to Class 1 but may add V.34-fax capability.
Class 2.1 is similar to Class 2.0 but adds V.34-fax capability.
HylaFAX generally will have more features when using Class 1/1.0 than
when using most modems' Class 2 or Class 2.0 implementations.  Generally
any problems encountered in Class 1/1.0 can be resolved by modifications
to HylaFAX, but usually any problems encountered in Class 2/2.0/2.1 will
require the modem manufacturer to resolve it.
If you're unsure and your modem supports it, use Class 1.
Hmm, this looks like a Class 1 modem.
Product code (ATI0) is "SmartLink Soft Modem".
Other information (ATI3) is "/dev/slamr0".
DTE-DCE flow control scheme [default]?
Modem manufacturer is "Unknown".
Modem model is "Unknown".
Using prototype configuration file class1...

A pesar de que ha detectado el módem correctamente, no encuentra una configuración "prototipo" para controlarlo. En principio nuestro módem debería cumplir con los comandos típicos de Hayes, por lo que le damos a aceptar en todas las preguntas. Lo ideal es configurar este apartado con el manual del módem.

There is no prototype configuration file for your modem, so we will
have to fill in the appropriate parameters by hand.  You will need the
manual for how to program your modem to do this task.  In case you are
uncertain of the meaning of a configuration parameter you should
consult the config(5) manual page for an explanation.
Note that modem commands must be specified exactly as they are to be
sent to the modem.  Note also that quote marks (") will not be displayed
and will automatically be deleted.  You can use this facility to supply
null parameters as "".
Finally, beware that the set of parameters is long.  If you prefer to
use your favorite editor instead of this script you should fill things
in here as best you can and then edit the configuration file
"/var/spool/hylafax/etc/config.ttySL0"
after completing this procedure.
Command to enter Class 1 [AT+FCLASS=1]?
Command to stop and wait prior to sending PPM [AT+FTS=7]?
Command to stop and wait prior to sending TCF [AT+FTS=7]?
Command to stop and wait prior to sending EOP [AT+FTS=9]?
Extra bytes in a received HDLC frame [4]?
Maximum time to wait for OK after aborting a receive (ms) [200]?
Maximum wait for initial identification frame (ms) [40000]?
Delay after completing training (ms) [200]?
Command to ensure silence after receiving HDLC and before sending [AT+FRS=7]?
Delay after failed training (ms) [1500]?
The modem configuration parameters are:
Class1Cmd:              AT+FCLASS=1
Class1PPMWaitCmd:       AT+FTS=7
Class1TCFWaitCmd:       AT+FTS=7
Class1EOPWaitCmd:       AT+FTS=9
Class1FrameOverhead:    4
Class1RecvAbortOK:      200
Class1RecvIdentTimer:   40000
Class1SendMsgDelay:     200
Class1SwitchingCmd:     AT+FRS=7
Class1TCFMaxNonZero:    10
Class1TCFMinRun:        1000
Class1TrainingRecovery: 1500

Are these ok [yes]?

Aceptando la configuración por defecto, nos crea los archivos correspondientes:

Creating new configuration file /var/spool/hylafax/etc/config.ttySL0...
Creating fifo /var/spool/hylafax/FIFO.ttySL0 for faxgetty... done.
Done setting up the modem configuration.
Checking /var/spool/hylafax/etc/config for consistency...
...everything looks ok; leaving existing file unchanged.
Don't forget to run faxmodem(8) (if you have a send-only environment)
or configure init to run faxgetty on ttySL0.
Creating /etc/hylafax/config.ttySL0 from /var/spool/hylafax/etc/config.ttySL0.
/var/spool/hylafax/config

Finalmente nos indica que ejecutemos faxmodem ttySL0 para que hylafax pueda enviar faxes a través de él.