Instalar y configurar un servidor de faxes utilizando ‘Hylafax’ en Karmic

16 02 2010

¿Qué es el hylafax y por qué instalarlo?

Hylafax es un software destinado a empresas y que permite enviar y recibir faxes. Está implementado con una arquitectura cliente-servidor por lo que los fax-módems pueden estar en un equipo de la red que puede recibir los faxes que se han de enviar desde el resto de clientes de la red.
La mayoría de usuarios de Hylafax lo utilizan como un servidor para enviar y recibir faxes para un grupo de trabajo. Esto ahorra tiempo ya que no hay que esperar a que el fax esté disponible ni que acabe de enviar/recibir. Los administradores pueden sacar partido de los mecanismos de generación de reportes que ofrece, pudiendo realizar resúmenes de los historiales de faxes enviados y recibidos.

Entre las capacidades de Hylafax se encuentran:

– Fax broadcasting: Enviar un fax a múltiples destinos.
– Fax-to-Email Gateway: Recepción de faxes vía ficheros adjuntos en el correo electrónico.
– Email-to-Fax Gateway: Enviar faxes vía ficheros adjuntos en el correo electrónico.
– Distribución y routing automático de faxes.
– Impresión automática de faxes.

La integración con nuestro entorno de trabajo se puede realizar mediante clientes específicos para cada sistema operativo. Pero, para entornos Windows incorpora la capacidad de integrarse con Samba publicando una impresora que recibe las peticiones de envío de faxes. Desde cualquier editor de textos se puede enviar un fax imprimiendo en la impresora adecuada.

¿Por qué instalarlo?

Es un producto que tiene muchos beneficios. Por tratar algunos:
– Ahorro de papel
– No se pierden los faxes: quedan almacenados en el servidor, por lo que aunque se pierda la copia impresa (en caso de sacarla) no pasa nada, tenemos el original guardado.
– Ahorro de tiempo, no hay que desplazarse hasta el fax manual para mandar , recibir los faxes.

Instalar hylafax

A la hora de instalar hylafax hemos de tener en cuenta que cada módem tiene una configuración y unos parámetros distintos, por lo que la instalación y posterior configuración que vamos a explicar aquí corresponde al módem que nosotros hemos utilizado. En éste caso el módem es un ‘US Robotics 5637’ e hylafax ha sido instalado bajo un Ubuntu Karmic (9.10).
Actualmente, en la distribución ubuntu, podemos encontrar el paquete hylafax-server en los repositorios, y será el propio ubuntu quién se ocupará de resolver las dependencias necesarias.
Instalamos el paquete necesario:
$ sudo su
Password: ******
# aptitude install hylafax-server
Después de éste paquete comienza automáticamente la configuración de 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/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:
# faxaddmodem

Y nos pregunta en qué puerto está el modem escuchando (en mi caso es el ttyACM0):
Serial port that modem is connected to [ttyS0]? ttyACM0

En este momento nos preguntará diferentes datos necesarios para poder enviar los faxes, como prefijos, nuestro número, 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]? 96
Phone number of fax modem [+1.999.555.1212]? +34.96.123.4567
Local identification string (for TSI/CIG) ["NothingSetup"]? Prueba
Long distance dialing prefix [1]? 0
International dialing prefix [011]? 00
Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]? etc/dialrules.europe
Tracing during normal server operation [1]? 0xFFF
Tracing during send and receive sessions [11]? 0xFFF
Protection mode for received facsimile [0600]? 0777
Protection mode for session logs [0600]? 077
Protection mode for ttySL0 [0600]? 0777
Rings to wait before answering [1]?
Modem speaker volume [off]? low
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: 96
FAXNumber: +34.96.123.4567
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules.europe
SessionTracing: 0xFFF
RingsBeforeAnswer: 1
SpeakerVolume: high
GettyArgs: "-h %l dx_%s"
LocalIdentifier: Prueba
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.
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.

Use Class 1 unless you have a good reason not to.

Hmm, this looks like a Class 1 modem.
Product code (ATI0) is "5601".

Other information (ATI3) is "U.S. Robotics 56K FAX USB V1.1.0".

DTE-DCE flow control scheme [default]?

Aceptamos la configuración por defecto.

Modem model is "3CP5610".

Using prototype configuration file usr-xon...

The modem configuration parameters are:

ModemAnswerCmd:		AT+FCLASS=1A
ModemFlowControl:	xonxoff
ModemHardFlowCmd:	AT&H1&I0&R2
ModemMfrQueryCmd:	!USR
ModemModelQueryCmd:	ATI3
ModemNoFlowCmd:		AT&H0&I0&R1
ModemRate:		19200
ModemResultCodesCmd:	ATQ0X4
ModemRevQueryCmd:	ATI7
ModemSetupAACmd:	AT+FCLASS=0
ModemSetupDCDCmd:	AT&C1
ModemSetupDTRCmd:	ATS13=1&D2
ModemSoftFlowCmd:	AT&H2&I2&R1
Class1NFLOCmd:		AT&H0&I0&R1
Class1HFLOCmd:		AT&H1&I0&R2
Class1SFLOCmd:		""
Class1ResponseWaitCmd:	AT+FRS=1
Class1SwitchingCmd:	""

Are these ok [yes]?

Creating new configuration file /var/spool/hylafax/etc/config.ttyACM0...
...saving current file as /var/spool/hylafax/etc/config.ttyACM0.sav.
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 restart hylafax in order to run faxgetty on this new modem
line.
/var/spool/hylafax/config

A pesar de que ha detectado el módem correctamente, la configuración por defecto no interactúa bien con el módem, por lo que resulta necesario hacer algunas modificaciones. La configuración final queda así:

# Configuration for using the Class 1 command interface with
# a USR Courier or Sportster modem and XON/XOFF flow control.
#
CountryCode: 34
AreaCode: 96
FAXNumber: +34.96.123.456
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules.europe
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0777
LogFileMode: 0777
DeviceMode: 0777
RingsBeforeAnswer: 1
SpeakerVolume: high
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "Prueba"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 25
# Modem-related stuff: should reflect modem command interface
# and hardware connection/cabling (e.g. flow control).
#
ModemType: Class1 # use class 1 interface
ModemRate: 19200 # rate for DCE-DTE communication
ModemFlowControl: rtscts # software flow control
#
ModemSetupDTRCmd: ATS13=1&D2 # setup so DTR drop resets modem
ModemSetupDCDCmd: AT&C1 # setup so DCD reflects carrier (or not)
ModemNoFlowCmd: AT&H0 # setup modem for no flow control
ModemHardFlowCmd: AT&H1 # setup modem for hardware flow control
ModemSoftFlowCmd: AT&H2 # setup modem for software flow control
ModemResultCodesCmd: ATQ0X3 # enable result codes
#ModemDialCmd: ATDT%s@
#
ModemMfrQueryCmd: !USR5637
ModemModelQueryCmd: ATI3
ModemRevQueryCmd: ATI7 # XXX returns a multi-line result
#
# When AT+FCLASS=1 is issued the modem automatically switches
# to software flow control; these parameters let the fax software
# reset flow control as needed after entering Class 1.
#
Class1NFLOCmd: AT+FLO=1 # setup modem for no flow control
Class1HFLOCmd: AT+FLO=2 # setup modem for hardware flow control
Class1SFLOCmd: AT+FLO=0 # modem does this automatically
#
# This should resolve "DIS/DTC received 3 times" errors:
#
Class1ResponseWaitCmd: AT+FRS=1 # wait after sending TCF for response
#
# The remainder of this configuration is included so that the
# modem "idles" in Class 0 while not sending or receiving facsimile.
#
ModemSetupAACmd: AT+FCLASS=0 # leave modem idling in class 0
ModemAnswerCmd: AT+FCLASS=1;A # answer in Class 1
ModemAnsweFaxCmd: ATA
#
# When using AT+FRS=n we see USR modems reset themselves in the middle of sessions
# this is not good. So, we seem to work-around that problem by not using the
# command. Unfortunately, this isn't an ideal thing.
#
Class1SwitchingCmd: ""

Clientes Hylafax:

A la hora de interactuar con el servidor Hylafax es muy conveniente instalar una aplicación cliente para manejar tanto el envío como la recepción de faxes, ya que hacerlo via comando no es práctico. Igualmente, y por si fuera necesario, para enviar un fax desde el terminal deberiamos ejectuar la siguiente orden:

# sendfax -n -d 'número de fax' 'ruta del documento (pdf o postcript) a enviar'

En el caso de los faxes recibidos los podremos encontrar en la siguiente ruta y estarán en formato *.tif.:

'/var/spool/hylafax/recq'

Clientes Linux:

En caso de ser usuario de GNU/Linux, encontraremos un gran número de proyectos libres (no todos mantenidos) para éste cometido. Yo he probado el proyecto web ‘faxy’. Se trata de un cliente muy intuitivo y no encontrareis grandes dificultades para instalarlo.

El proyecto, como suele ser habitual, viene comprimido en un tar.gz, que podéis encontrar aquí, tan sólo hemos de descomprimirlo y moverlo a la ruta ‘/var/www’ para poder empezar a utilizarlo. Deberemos modificar algún fichero de configuración para indicarle donde se encuentran las rutas del hylafax y otros parámetros, pero nada muy complicado (si tenéis cualquier duda podéis consultarme utilizando los comentarios).
También he probado el cliente Gfax, que se instala vía repositorios ejecutando la siguiente orden:
# aptitude install gfax
Tendremos un nuevo programa en el menú principal, en “Aplicaciones > Oficina > Gfax”. Al igual que con Faxy, debereis modificar algunos parámetros en “Editar > Preferencias”, pero no debería suponeros ningún problema.

Clientes Windows:

Como en Linux podemos encontrar multitud de proyectos que interactúan con hylafax para el envío y la recepción de faxes. En mi caso he utilizado el cliente ‘yajhfc’. La instalación es muy sencilla y sólo hemos de seguir los pasos que se nos vayan indicando. La configuración es muy similar a Gfax, deberemos indicarle la dirección IP donde se encuentra el servidor Hylafax. Una vez configurado el programa es muy intuitivo y no encontrareis mayores problemas.

Fuentes:

1) http://www.imh.es/dokumentazio-irekia/manuales/hylafax-servidor-de-faxes-en-software-libre
2) http://galpon.org/wiki/index.php/Hylafax_en_Ubuntu

Anuncios

Acciones

Información

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s




A %d blogueros les gusta esto: