Hylafax + IAXmodem en VIVAit Call

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda


Provisionalmente puedes encontrar la documentación de la instalación de la solución de fax para VIVAit Call en el siguiente fichero:

Manual de instalación de Solución fax en VIVAit Call



    EN CONSTRUCCIÓN




1 INTRODUCCIÓN

Mdtel instala con su producto VIVAit Call una solución de fax sencilla basada en dos elementos, un servidor Hylafax, y un cliente YajHFC en cada ordenador de usuario.

El presente documento está referido a la versión del cliente YajHFC para equipos con sistema operativo Windows 32+64 bits, y muestra como Instalar y configurar Hylafax + IAXmodem en VIVAit Call.

2 DISEÑO DE LA SOLUCIÓN

2.1 Esquema de la Solución

ESQUEMA

Para que el sistema funcione con VIVAit Call necesitamos que los PC’s de usuario tengan instalo el cliente YajHFC. A efectos prácticos existe una nueva impresora que envía el fax al exterior. El servidor Hylafax envía el fax a través de sus extensiones IAX modem, dadas de alta en el sistema VIVAit Call utilizan la plantilla para IAX fax

El sistema VIVAit Call constituye la conexión entre el servidor Hylafax y el exterior

3 CONFIGURACIÓN DE VIVAit Call.

Para que IAXmodem funcione es necesario crear tantas extensiones IAX como módem se vayan a usar. Por defecto el sistema lleva configurado un módem (ttyIAX00).


Para crear las extensiones:

  • En el portal en VIVAit Call / Dispositivos / Clases de dispositivos crear una clase como la siguiente (si en el momento de crearla existe la subclase IAX, elegirla, si no elegir cualquiera que no sea SIP, por ejemplo, H323):

ESQUEMA

  • En el portal en VIVAit Call / Dispositivos / Extensiones crear las extensiones IAX. El nodo deberá ser aquel donde esté instalado Hylafax e IAXmodem. Como dispositivo seleccionar la clase creada en el paso anterior.


ESQUEMA

ESQUEMA

Crear las prerutas:

ESQUEMA


Lo redirigiremos a un VDN corporativo para poder así realizar varios dialies a las extensiones IAX. Si solo tenemos una extensión IAX pues la pre-ruta seria con destino extensión y el número de extensión IAX. Mientras no exista un fichero iax_WEB.conf, que se genere desde el portal, las extensiones creadas se deberán crear manualmente en el archivo iax_Estatico.conf → Ver apartado de personalización

4 INSTALACIÓN DEL SERVIDOR HYLAFAX

Situarse en el directorio /usr/src

  • Es necesario instalar los siguientes paquetes. Además, se requiere tener instalado y configurado exim4:
 apt-get install iaxmodem libtiff-tools ghostscript jbigkit-bin hylafax-client
  • Copiar el fichero hylafax-5.5.8.tar.gz a /usr/src
  • Descomprimir: tar -xvzf hylafax-5.5.8.tar.gz
  • Entrar al directorio hylafax-5.5.8
    • Ejecutar el comando “./configure”. A todas las preguntas responder con la respuesta por defecto (basta con pulsar intro) excepto a las siguientes:
      • Are these ok [yes]? no
      • PostScript imager program [/usr/local/bin/gs]? /usr/bin/gs
      • Default page size [North American Letter]? A4
  • Ejecutar los comandos make y make install
  • Si todo ha ido bien (no hay ningún error en pantalla), ejecutar el comando faxsetup. Este comando configurará los aspectos generales de Hylafax. A todas las preguntas responder con la respuesta por defecto. Menos cuando pregunta si queremos que funcione como modem.
You do not appear to have any modems configured for use.  Modems are configured for use with HylaFAX with the faxaddmodem(8C) command. Do you want to run faxaddmodem to configure a modem [yes]? > no
  • Subir a /home/sat la carpeta config y el script que nos aporta desarrollo.
  • Dar permisos de ejecución.
  • Modificar archivos en carpeta config para personalizar instalación (duplicar archivos para más de un modem)
 #!/bin/bash
 echo "Copiando archivos de configuración a sus ubicaciones."
 echo "Copiando archivos de iaxmodem a /etc/iaxmodem."
 cp config/iaxmodem/ttyIAX* /etc/iaxmodem/
 echo "......................................"
 echo "Copiando script de inicio de hylafax"
 chmod 755 /etc/init.d/hylafax
 echo "......................................"
 echo "Copiando configuración de HylaFAX a /var/spool/hylafax/etc"
 cp config/hylafax/etc/* /var/spool/hylafax/etc/
 chmod 755 /var/spool/hylafax/etc/FaxAccounting
 chmod 755 /var/spool/hylafax/etc/FaxDispatch
 echo "......................................"
 echo "Parando HylaFAX"
 /etc/init.d/hylafax stop
 echo "Parando IAXmodem”
 /etc/init.d/iaxmodem stop
 echo "Iniciando IAXmodem"
 /etc/init.d/iaxmodem start
 echo "Iniciando HylaFAX"
 /etc/init.d/hylafax start


Es necesario modificar los siguientes archivos (se pueden modificar después por si nos equivocamos poder empezar de nuevo):

 /home/sat/config/hylafax/etc/config.ttyIAXnn → estos son exactamente iguales, define parámetros modem
 /home/satconfig//iaxmodem/ttyIAXnn
 /home/sat/config/hylafax/etc/FaxDispatch
 /home/sat/config/hylafax/etc/hosts.hfaxd
  • Ejecutar el script Instalar.sh. Este script copiará los archivos de configuración personalizados a sus ubicaciones definitivas y reiniciará IAXmodem e Hylafax.


4.1 Añadir usuario

4.1.1 Crear un usuario para que se conecte el cliente Hylafax

Añadimos un usuario para usarlo posteriormente en la configuración del "cliente":

Comando faxadduser -p clave usuario

faxadduser -p usuario1 usuario1
faxadduser -p usuario2 usuario2

Para comprobar que los usuarios se han creado correctamente deberían aparecer en el fichero /var/spool/hylafax/etc/hosts.hfaxd

^usuario2@::$1$J9..z2ie$0NJwrUV8yLZeZ/0dufYCf/
^usuario1@::$1$J9..pfIH$PyiLtme649QbcNdVSsKkf.

4.1.2 Dahdi

En /etc/asterisk/chan_dahdi.conf:

ERROR: [Feb 9 12:29:46] WARNING[22718][C-0000015c]: sig_pri.c:8291 sig_pri_call: Unrecognized prilocaldialplan NPI modifier: a

Oh, right, priLOCALdialplan. What's in CALLERID(num) ? Legitimate characters for the PSTN are numbers (and ABCD) only, so other characters are invalid, making them candidates for usage in modifying prilocaldialplan.

Para que no ocurra: Añadir en el /etc/asterisk/chan_dahdi.conf cuando configuremos DAHDI:

faxdetect=both  ← No añadir en instalaciones de Vodafone porque los faxes ni entran ni salen.
pridialplan=unknown
priLOCALdialplan=unknownAÑADIR ESTA LÍNEA
Core stop now, /etc/init.d/dahdi stop / start, , /etc/init.d/asterisk start


4.2 Personalización

Los archivos contienen una configuración básica. Para personalizarlos conforme a las características del cliente será necesario cambiar los siguientes ficheros (algunos o todos):

/var/spool/hylafax/etc/FaxDispatch

Este archivo es el encargado de distribuir los faxes recibidos siguiendo unas reglas. Los parámetros configurables son:

  • SENDTO: El primer sendto indica la dirección de correo electrónico por defecto (si no se cumple ninguna regla) a la que enviar los faxes.
  • case “$DNIS” …: Este apartado tiene dos partes, el número marcado y la dirección de correo electrónico.
    • Número marcado: Es el número indicado delante del paréntesis. Si el cliente dispone de varios faxes, se puede discriminar dependiendo del número de fax entrante. DDI reservado para el fax
    • SENDTO: Dirección de correo electrónico a la que se enviará el fax en el caso de que haya entrado por el número indicado en el campo Número marcado.
SENDTO=ivan.matarrubias@mdtel.es
FROMADDR=centralitafax@mdtel.es
FILETYPE=pdf
LANG=es_ES

CAMPOS=$CALLID4
POSSEPA=$(expr index "$CAMPOS" -)

if [ $POSSEPA -gt 0 ]; then
       DNIS=${CAMPOS:0:$POSSEPA-1}
fi

case "${DNIS}" in
9001)
       SENDTO=viva.postventa@mdtel.es;
       ;;

9002)
       SENDTO=viva.preventa@mdtel.es;
       ;;
esac


El DNIS puede ser un DDI o un VDN.

De esta forma no se bloquean tanto los modem y pueden entrar varios. Ya hay que analizar que es necesita cada empresa. Si van a correos distintos, etc.


;-----------------------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------
[Cen_VDN_9001]
;-----------------------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------

;----------------------------------------------------------------------------------------------------------------
;----------------------- VDN 9001 ----------------------------------
;----------------------------------------------------------------------------------------------------------------
exten => _X.,1,NoOp(MDVDN_9001*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)

 same =>     n,Dial(IAX2/2002/${EXTEN}-${UCID},10,eort)
 same =>     n,Dial(IAX2/2003/${EXTEN}-${UCID},10,eort)

 same =>     n,Hangup(17)
include => Cen_finLlamada

;-----------------------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------
[Cen_VDN_9002]
;-----------------------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------

;----------------------------------------------------------------------------------------------------------------
;----------------------- VDN 9002 ----------------------------------
;----------------------------------------------------------------------------------------------------------------
exten => _X.,1,NoOp(MDVDN_9002*****EXTEN=${EXTEN}**CID=${CALLERID(NUM)}**UCID=${UCID}*)

same =>     n,Dial(IAX2/2003/${EXTEN}-${UCID},10,eort)

same =>     n,Hangup(17)

include => Cen_finLlamada


/etc/init/iaxmodem.conf -> Crearlo

Encargado de arrancar los iaxmodem en el inicio, donde nn es cada iaxmodem creado

start on startup
respawn
exec /usr/bin/iaxmodem ttyIAXnn


/etc/init/ttyIAXnn.conf

Encargado de asociar los iaxmodem al fax en el inicio, donde nn es cada ttyIAX creado

start on startup
respawn
exec /usr/local/sbin/faxgetty ttyIAXnn


/var/spool/hylafax/etc/config.ttyIAX00


Contiene la configuración del módem para Hylafax. Los parámetros que se cambiarán más habitualmente son:

  • CountryCode: Contiene el código telefónico del país. Habitualmente será el 34
  • AreaCode: Es el antiguo prefijo provincial
  • FAXNumber: Número identificativo del fax ante otros faxes
  • LocalIdentifier: Cadena que se usará para conformar el campo TSI. Suele contener el nombre de la empresa o departamento.


Para que los cambios sean efectivos es necesario reiniciar Hylafax ( “/etc/init.d/hylafax stop” y “/etc/init.d/hylafax start”)

Modificaremos solo una parte del fichero:

AreaCode: 93

FAXNumber: 93xxxxxxx

LocalIdentifier: Nombre-EmpresaEsta información aparece en la cabecera del fax (a la izquierda).


/var/spool/hylafax/etc/hosts.hfaxd

Este fichero indica los puestos desde los que está permitido enviar faxes. Para personalizarlo basta con cambiar la última entrada para adecuarlo a la red de datos (donde están los PC's) del cliente. Por ejemplo: 172.25.[128-129].[0-9]+ Permitiría a las redes 172.25.128.0 y 172.25.129.0. localhost 127.0.0.1 172.25.[128-129].[0-9]+


/etc/iaxmodem/ttyIAXnn

Los iaxmodem no son más que softphones que se registran contra Asterisk. Los parámetros configurables son los siguientes:

  • device: Nombre del dispositivo físico (/dev/ttyIAX00, /dev/ttyIAX01, /dev/ttyIAX02, etc.). Sólo se cambiará en el caso de que se esté añadiendo un nuevo módem.
  • server: Dirección IP del servidor Asterisk
  • peername: Nombre de la extensión a la que se conectará. Tiene que coincidir con el campo username de la extensión definida en iax.conf
  • secret: Clave de la extensión. Tiene que coincidir con el campo secret de la extensión definida en iax.conf.

Ejemplo

device /dev/ttyIAXnn
owner asterisk:asterisk
mode 660
port 45690   Puertos diferentes del 4569 de IAX
refresh 7200   Ojo si dejas 60, cada 60s se registra de nuevo…
server 172.25.11.222
peername 7630
secret loqiesea
cidname Cliente Fax
cidnumber 7630  Extensión
codec slinear

root@hylafax:/etc/asterisk# cat /etc/iaxmodem/ttyIAX00
device /dev/ttyIAX00
owner asterisk:asterisk
mode 660
port 45690
refresh 7200
server 172.25.129.107
peername 2002
secret 1111
cidname IAX Modem 0
cidnumber 2002
codec slinear

root@hylafax:/etc/asterisk# cat /etc/iaxmodem/ttyIAX01
device /dev/ttyIAX01
owner asterisk:asterisk
mode 660
port 45691
refresh 7200
server 172.25.129.107
peername 2003
secret 1111
cidname IAX Modem 0
cidnumber 2003
codec slinear


Si va a existir tarificador TARGET-WEB es VITAL: En callerid=2003 (Solo nº extensión) en el archivo iax_Estatico.conf y en /etc/iaxmodem/ttyIAX00 cidnumber 2003


/etc/asterisk/iax.conf

Contiene las extensiones dadas de alta en la instalación en el paso 1.3. Al final del fichero se encuentra la extensión de ejemplo. Los parámetros a cambiar son:

[general]
bindport=4569
bindaddr=172.25.129.107
minregexpire = 7200    Valores superiores a 60s, no para de des/registrarse.
maxregexpire = 7200   Valores superiores a 60s, no para de des/registrarse.
calltokenoptional = 0.0.0.0/0.0.0.0 Valores correctos de cada empresa
permit=0.0.0.0/0.0.0.0  Valores correctos de cada empresa
 

[2002]
username=2002
type=friend
secret=1111
qualify=no
transfer=no
host=dynamic
maxregexpire=3600
minregexpire=3600
context=Cen_Inicio_FAX
callerid=2002
allow=all
requirecalltoken=no
setvar=ID_DISPOSITIVO=8
directmedia=no

[2003]
username=2003
type=friend
secret=1111
qualify=no
transfer=no
host=dynamic
maxregexpire=3600
minregexpire=3600
context=Cen_Inicio_FAX
callerid=2002
allow=all
requirecalltoken=no
setvar=ID_DISPOSITIVO=9
directmedia=no

Para actualizar los cambios es necesario ejecutar: asterisk -rx “iax2 reload”

Revisar que iax.conf tenga el include: #include "ext_InicioLlamada_ExtIAX.conf"

*requirecalltoken=no → Rebaja la seguridad de IAX para la extensión si no lo ponemos no funciona IAXmodem.


4.2.1 Añadir más módems

El sistema viene preparado con un sólo módem. Para añadir más necesitamos:

  1. Crear tantas extensiones (paso 1.3 de la instalación) como módems se vayan a añadir.
  2. Editar el fichero /etc/asterisk/iax.conf añadiendo las nuevas extensiones. Bastará con copiar la existente y cambiar los parámetros de extensión ([XXXX]), username, secret y setvar.
  3. Crear tantos ficheros /etc/iaxmodem/ttyIAXnn como módems se vayan a añadir, copiando el fichero existente, siendo nn un número correlativo (00, 01, 02, etc.). En estos ficheros se deberán cambiar los parámetros indicados en el apartado dedicado a este fichero.
  4. Crear tantos ficheros /var/spool/hylafax/etc/config.ttyIAXnn como módems se vayan a añadir, copiando el fichero existente, siendo nn un número correlativo (00, 01, 02, etc.). Normalmente los ficheros son iguales en contenido, cambiando sólo el nombre.


 ***************************************************************************

Para que los cambios sean efectivos es necesario:

  • asterisk -rx “iax2 reload”
  • /etc/init.d/hylafax stop
  • /etc/init.d/iaxmodem stop
  • /etc/init.d/iaxmodem start
  • /etc/init.d/hylafax start