Retomando el lado tecnico del blog (mucho tiempo sin postear...) y como complemento a los temas de nuestro curso pongo a disposicion este tutorial para utilizar Asterisk como un fax server en conjunto con HylaFAX sin necesidad de un faxmodem, utilizando en su lugar un "modem virtual" basado en el protocolo IAX2 (IAXmodem).
De alguna manera este post es la actualizacion de otro anterior donde utilizabamos HylaFAX con un faxmodem externo serial, dispositivo que ultimamente es dificil de encontrar a la venta de primera mano. Aun asi dicho post puede ser de utilidad porque se detalla el mecanismo para envio de faxes con clientes Windows, en este documento solo tocamos lo concerniente a la recepcion.
Los faxes podrian recibirse por nuestro Asterisk de varias maneras : como una opcion en el IVR ("para fax marcar 1050"), un usuario (tipicamente la recepcionista) podria transferir la llamada a la extension 1050 que brindaria el tono de fax, o mucho mejor, se podria asignar uno de los numeros telefonicos disponibles ("ala" DID) especificamente a dicha extension.
Se asume para este How-To, el tener un sistema base OpenSUSE 10.3 con instalacion de Asterisk/ZAPtel 1.4 mediante RPM con el repositorio "telephony" (http://download.opensuse.org/repositories/network:/telephony/openSUSE_10.3/) y una correcta configuracion para colocar/recibir llamadas a la PSTN.
1) Instalacion del software (IAXmodem y HylaFax) :
# yast sw_single iaxmodem spandsp asterisk-spandsp hylafax libtiff uucp mgetty ghostscript-library
2) Configuracion de Asterisk :
Crear cuenta IAX "1050" asignada al contexto "telefonos"
# vi /etc/asterisk/iax.conf
[1050]
username=1050
type=friend
secret=a83qdasd
host=dynamic
context=telefonos
callerid="Fax" <1050>
allow=all
En el contexto "telefonos" (se asume que este contexto puede ser alcanzado desde una llamada del exterior), agregar la entrada respectiva para la extension 1050 asignada al fax
# vi /etc/asterisk/extensions.conf
exten => 1050,1,Dial(IAX2/1050)
Actualizar los cambios en la configuracion de Asterisk
# asterisk -rvv
CLI> iax2 reload
CLI> dialplan reload
3) Configuracion de IAXmodem :
Crear archivo de configuracion "/etc/iaxmodem/ttyIAX" para dispositivo serial virtual "/dev/ttyIAX" (notese la correspondencia con los valores de "iax.conf")
# mkdir /etc/iaxmodem
# vi /etc/iaxmodem/ttyIAX
device /dev/ttyIAX
port 45699
refresh 300
server localhost
peername 1050
secret a83qdasd
cidname Fax
cidnumber 1050
codec slinear
Probamos el correcto funcionamiento de IAXmodem de manera manual
# iaxmodem ttyIAX
[2008-08-25 02:34:34] Modem started
[2008-08-25 02:34:34] Setting device = '/dev/ttyIAX'
[2008-08-25 02:34:34] Setting port = 45699
[2008-08-25 02:34:34] Setting refresh = 300
[2008-08-25 02:34:34] Setting server = 'localhost'
[2008-08-25 02:34:34] Setting peername = '1050'
[2008-08-25 02:34:34] Setting secret = '123456'
[2008-08-25 02:34:34] Setting cidname = 'Fax'
[2008-08-25 02:34:34] Setting cidnumber = '1050'
[2008-08-25 02:34:34] Setting codec = slinear
[2008-08-25 02:34:34] Error: group unspecified, using root instead
[2008-08-25 02:34:34] Error: user not found in passwd file, using root instead
[2008-08-25 02:34:34] Error: invalid mode string () ? Leaving default modes on /dev/ttyIAX
[2008-08-25 02:34:34] Opened pty, slave device: /dev/pts/0
[2008-08-25 02:34:34] Created /dev/ttyIAX symbolic link
[2008-08-25 02:34:34] Error: mode is 0, leaving default permissions
[2008-08-25 02:34:34] Registration completed successfully.
Como verificacion final, debe de existir el archivo/dispositivo "/dev/ttyIAX"
# ls -l /dev/ttyIAX
lrwxrwxrwx 1 root root 10 Aug 25 04:01 /dev/ttyIAX -> /dev/pts/1
En el CLI de Asterisk se puede verificar que se registre correctamente la nueva extension 1050
# asterisk -rvv
CLI> iax2 show peers like 1050
Name/Username Host Mask Port Status
1050/1050 127.0.0.1 (D) 255.255.255.255 45699 OK (6 ms)
1 iax2 peers [1 online, 0 offline, 0 unmonitored]
4) Configuracion de HylaFAX :
Ejecutar script de configuracion (para mayor detalle ver post anterior), confirmando valores por defecto
# faxsetup
En el punto en que se sugiere ejecutar la deteccion de faxmodem, no proseguir
Do you want to run faxaddmodem to configure a modem [yes]? no
Done verifying system setup.
Se debe de personalizar la configuracion de HylaFAX (en el ejemplo, para Lima/Peru)
# vi /var/spool/fax/etc/config
CountryCode: 51
AreaCode: 1
LongDistancePrefix: 0
InternationalPrefix: 00
El formato por defecto que se genera al recibir el fax es TIFF, lo cambiamos a PDF
# vi /var/spool/fax/bin/faxrcvd
FILETYPE=pdf
Utilizar el archivo de ejemplo "config.ttyIAX" (disponible como parte del tarball del codigo fuente de IAXmodem en "http://iaxmodem.sourceforge.net/download.php") para configurar el modem virtual, los demas parametros del archivo se deben de dejar con los valores por defecto
# vi /var/spool/fax/etc/config.ttyIAX
CountryCode: 51
AreaCode: 1
FAXNumber: 2736769
LongDistancePrefix: 0
InternationalPrefix: 00
RecvFileMode: 0664
LogFileMode: 0664
DeviceMode: 0666
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "IAXmodem"
TagLineFormat: "Desde %%l|%c|Pag %%P de %%T"
MaxRecvPages: 200
Reiniciar daemon de HylaFax y activar el inicio automatico junto con el sistema
# service hylafax restart
# chkconfig hylafax on
Finalmente, configurar IAXmodem y faxgetty (parte de HylaFAX) para que permanentemente esten a la espera de llamadas entrantes
# vi /etc/inittab
iax:2345:respawn:/usr/sbin/iaxmodem ttyIAX &> /var/log/asterisk/iaxmodem-ttyIAX
fax:2345:respawn:/usr/lib/fax/faxgetty ttyIAX
Se recomienda reiniciar el servidor a fin de verificar que todos los servicios levanten correctamente
# init 6
De no poder hacerlo por estar con un sistema en produccion se puede utilizar "init q" para solo refrezcar los cambios de inittab.
Hasta este punto tendremos nuestro sistema preparado para la recepcion de faxes, para el envio es posible utilizar clientes para Windows (como WHFC o WinPrint HylaFAX) que mediante una impresora virtual "imprimen" los documentos que son enviados mediante HylaFAX al exterior. En este post anterior se brinda el procedimiento junto con mayor detalle en el uso de HylaFAX.
Con pequenas adaptaciones esta configuracion es dable para otras distros o con Asterisk compilado desde codigo fuente, hay que tener en cuenta que dependiendo de la version de HylaFax pueden variar las rutas, asi como tambien de no usar RPM se debe de compilar el soporte para IAXmodem junto con las librerias spandsp y libiax.
Espero sea de utilidad este aporte, en estos dias estoy preparando nuevos posts con la configuracion de tarjetas analogicas y digitales Sangoma, hasta la proxima!
25/08/2008
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario en la entrada