Como recibir Fax en Asterisk

Imagen de RazaMetaL

Siguiendo con el envio de fax, me puse a investigar acerca de como hacerlo con asterisk y este es el resultado. Se puede implementar Hylafax + Asterisk para tener una sencilla y funcional maquina de fax virtual. Que ganamos? no tenemos que comprar un fax ni tarjetas o modulos fxs adicionales :) en fin ahorramos y de paso aprendemos algo nuevo.

Vamos a requerir de las siguientes aplicaciones:

- [url=http://www.hylafax.org]Hylafax[/url]
- [url=http://iaxmodem.sourceforge.net/]IAXModem[/url]

Las instrucciones para instalar Hylafax en Debian las pueden encontrar en este [url=http://www.ecualug.org/?q=2007/02/26/comos/como_instalar_un_servidor_de_fax_en_debian]link[/url]. Para CentOS 4.4 lo pueden descargar desde:
[url]ftp://ftp.hylafax.org/binary/linux/redhat/RPMS/i386/hylafax-4.3.2-3rhel4.i386.rpm[/url]

Para esta ultima distribucion dependiendo del caso puede pedir un par de dependencias que podemos instalar con yum:

yum install ghostscript sharutils

Y finalmente:

rpm -ivh hylafax-4.3.2-3rhel4.i386.rpm

[b]Configurar ASTERISK[/b]:
Agregamos en iax.conf la extension para nuestro fax:

[300]
username=300
type=friend
secret=300
qualify=yes
notransfer=yes
host=dynamic
context=from-internal
callerid="Fax" <300>
allow=all

Agregamos en zapata.conf :

faxdetect=incoming

En extensions.conf buscamos el contexto para las llamadas entrantes y agregamos:

exten => fax,1,Dial(IAX2/300)

En Freepbx este proceso es mucho mas sencillo, se crea una extension IAX para el fax y en la opcion de configuracion general se configura para que las llamadas de fax sean dirigidas a esa extension recien creada, en este ejemplo es 300.

[b]Configurar IAXModem[/b]
Tanto Debian y CentOS (en el repositorio de Trixbox) tienen iaxmodem disponibles en sus repositorios, es recomendable utilizar estos paquetes para obtener y gozar de beneficios de las actualizaciones de la distribucion que estemos usando :)

Descargamos IAXModem:

cd /usr/src
wget http://ufpr.dl.sourceforge.net/sourceforge/iaxmodem/iaxmodem-0.2.1.tar.gz
tar zvxf iaxmodem-0.2.1.tar.gz
cd tar zvxf iaxmodem-0.2.1

Lo instalamos:

cd lib/libiax2
./configure
make && make install
cd ../spandsp
./configure
make && make install
cd ../../
./configure
make

Copiamos el binario iaxmodem en /usr/bin:

cp iaxmodem /usr/bin

Creamos un directorio en /etc/iaxmodem en donde guaradermos la configuracion del modem IAX archivo de configuracion para el modem IAX2 en /etc/iaxmodem/ttyIAX :

device /dev/ttyIAX
port 45699
refresh 300
server localhost
peername 300
secret 300
cidname Fax
cidnumber 300
codec slinear

Debemos verificar si el modem se registra en nuestro asterisk:

# iaxmodem ttyIAX
[2007-02-27 12:56:51] Modem started
[2007-02-27 12:56:51] Setting device = '/dev/ttyIAX'
[2007-02-27 12:56:51] Setting port = 45699
[2007-02-27 12:56:51] Setting refresh = 300
[2007-02-27 12:56:51] Setting server = 'localhost'
[2007-02-27 12:56:51] Setting peername = '300'
[2007-02-27 12:56:51] Setting secret = '300'
[2007-02-27 12:56:51] Setting cidname = 'Fax'
[2007-02-27 12:56:51] Setting cidnumber = '300'
[2007-02-27 12:56:51] Setting codec = slinear
[2007-02-27 12:56:51] Error: group unspecified, using root instead
[2007-02-27 12:56:51] Error: user not found in passwd file, using root instead
[2007-02-27 12:56:51] Error: invalid mode string () ? Leaving default modes on /dev/ttyIAX
[2007-02-27 12:56:51] Opened pty, slave device: /dev/pts/1
[2007-02-27 12:56:51] Created /dev/ttyIAX symbolic link
[2007-02-27 12:56:51] Error: mode is 0, leaving default permissions
Restart 0
[2007-02-27 12:56:51] Registration completed successfully.

En asterisk:

sip*CLI> iax2 show peers like 300
Name/Username Host Mask Port Status
300/300 127.0.0.1 (D) 255.255.255.255 45699 OK (3 ms)
1 iax2 peers [1 online, 0 offline, 0 unmonitored]

En vista de que esta registrado vamos a agregarlo en /etc/inittab para que el modem este disponible todo el tiempo:

iax:2345:respawn:/usr/bin/iaxmodem ttyIAX &> /var/log/asterisk/iaxmodem-ttyIAX

Indicamos a init que lea inittab nuevamente con:

telinit q

[b]Configurar Hylafax[/b]
Hasta ahora tenemos iaxmodem registrado como extension en asterisk y hemos configurado el dialplan para que los faxes sean enviados a esta extension. Necesitamos entonces configurar hylafax para que acepte los faxes.

Lo primero es configurar hylafax como ya lo vimos en este [url=http://www.ecualug.org/?q=2007/02/26/comos/como_instalar_un_servidor_de_fax_en_debian]link[/url]:

faxsetup

Cuando nos pida un modem debemos detenernos y agregarlo a mano. En la ruta en la que descomprimimos iaxmodem hay un archivo llamado config.ttyIAX el cual copiaremos a /var/spool/hylafax/etc y luego modificaremos para que la seccion informativa de nuestro fax luzca de la siguiente manera, todo lo demas del archivo queda intacto:

cp config.ttyIAX /var/spool/hylafax/etc/
vi /var/spool/hylafax/etc/config.ttyIAX


CountryCode: 593
AreaCode: 5
FAXNumber: +593-5-262-2621
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules
ServerTracing: 0xFFF
SessionTracing: 0xFFF
RecvFileMode: 0664
LogFileMode: 0664
DeviceMode: 0666
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "MI EMPRESA"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "De %%l|%c|Pag %%P de %%T"
MaxRecvPages: 150

Igual que con iaxmodem, anadimos en inittab lo siguiente:

fax:2345:respawn:/usr/sbin/faxgetty ttyIAX

Y ejecutamos:

telinit q

Si marcamos a la extension 300 vamos a tener tono de fax :)

Ahora necesitamos especificar quienes recibiran los e-mails conteniendo el fax como adjunto. Para esto modificamos /var/spool/hylafax/etc/FaxDispatch para que contenga la direccion de e-mail a la que deberan llegar los faxes y el formato:

SENDTO=FaxMaster;
FILETYPE=pdf;

case "$DEVICE" in
ttyIAX) SENDTO=usuario@midominio.com;; # all faxes received on ttyS1
esac

Riniciamos hylafax y enviamos un fax a la extension 300, luego revisamos nuestro fax en el casillero de usuario@midominio.com.

Comentarios

Tengo el mismo problema

hola
soy nuevo en la comunidad y segui las instrucciones del tema para recibir faxes en Asterisk.
Llege al mismo punto, al parecer se registra mi extension IAX, pero cuando el marcar solo da ringback pero no tono de fax.
que sigue ... que podemos hacer.

Asterisk 1.6

Imagen de Mirrortech

Buenas
Amigos tengo este problema con la deteccion del Modem...

The HylaFAX software thinks that there is a problem with the modem
on device /dev/ttyIAX that needs attention; repeated attempts to
initialize the modem have failed.

Consult the server trace logs for more information on what is happening.

Ademas en el CLI de ASTERISK e sale esto..

[Apr 11 17:57:25] ERROR[2644]: chan_iax2.c:4474 handle_call_token: Call rejected, CallToken Support required. If unexpected, resolve by placing address 127.0.0.1 in the calltokenignore list or setting user iaxmodem requirecalltoken=no
firewall*CLI>

Tengo ASTERISK 1.6 Pero NO he logrado configurar completamente el HYLAFAX pues en la parte /dev/ttyIAX me dice que el dispositivo NO existe..
Agradesco los comentarios al respecto a ver en que estoy fallando..

Quedo pendiente..

Páginas