jueves, 16 de julio de 2009

HylaFAX How-To

HylaFAX+ sobre SLES
Guía de implementación de un servicio para la recepción digital de faxes y el ruteo de los mismos a destinatarios de email.

Arrancamos por descargar el rpm de la última versión de HylaFAX+ desde aquí.
Nótese el "+".


The "+" means that it is better.

Lo instalamos ejecutando en una consola con permisos de root


# rpm –Uvh hylafax-5.2.9-4.1.i586.rpm


Una vez finalizado ejecutamos


# faxsetup.


Hasta ahí la parte fácil. Ahora hay que configurar el o los módems que recibirán los faxes. Si no te queres complicar la vida conseguite un modem externo. Ejecutamos


# faxaddmodem


Lo primero que hacemos es elegir el modem que queremos configurar. Generalmente en SLES y openSUSE un modem externo conectado al COM1 se mapea como ttyS0.
Esta info se puede ver en Yast.


Continuar con el asistente y escribir los siguientes valores cuando sean solicitados:


RingsBeforeAnswer: 0
RecvFileMode: 0644
LogFileMode: 0644
DeviceMode: 0666


Con esta configuración establecemos que los faxes recibidos y los logs queden con permisos más que suficientes para que los puedan ver todos los usuarios.


Finalizado el asistente editá /etc/inittab y agregale la siguiente línea


mo:35:respawn:/usr/sbin/faxgetty /dev/ttyS0


También editá /var/spool/hylafax/etc/config.ttyS0 para configurar el modem, esto varía mucho de un modem a otro y es muy probable que tengas que leer algo sobre comandos AT. En mi caso modifiqué lo siguiente


ModemRingsBeforeResponse: 1
ModemRingResponse: “AT+FCLASS=8\nAT+VLS=1\nAT+VTS=[933,,50]”
CallIDPattern: SHIELDED_DTMF
CallIDAnswerLength: 4
ModemAnswerCmd: “AT+FCLASS=1;A”


Esto quiere decir que se espera un ring antes de atender en modo VOZ, se reproduce un tono, se espera hasta escuchar 4 DTMF que indican la extensión del remitente y luego se pasa a modo FAX.
Si no se digita la extensión rutearemos a un remitente por defecto.
El tono que se reproduce se puede sustituir por un mensaje de bienvenida, cosa que no es trivial ya que el archivo se debe comprimir usando los mismos codecs que el modem disponga para reproducirlo.
En mi caso es un IVR el que atiende la llamada y la transfiere al servidor de faxes enviándole los DTMF de la extensión que el usuario digitó.


Ahora vamos a usar los DTMF para rutear el fax hasta el destinatario, editá /var/spool/hylafax/etc/FaxDispatch así


SENDTO=defaultUser@tuDominio.com;
FILETYPE=pdf;
case "$CALLID1" in
1234) SENDTO=usuario1@dominio.com;;
4321) SENDTO=usuario2@dominio.com;;
****) SENDTO=xxxxxx@xxxx.xxx.xx;;
esac


De esta manera el fax se adjunta en formato pdf al mail y se rutea a defaultUser@dominio.com si no se escucharon los DTMF, usuario1@dominio.com si se digita 1234, usuario2@dominio.com si se digita 4321, etc.


Listo! Facilísimo.

1 comentario:

Gabriel Budiño dijo...

Que buen aporte!!!

y además está bueno que el blog reviva...

abrazo,
gb