Migración de los fax

FreePBX no cuenta con un módulo de fax. La solución que ofrece es instalar el módulo Fax Pro, pero el mismo es un módulo comercial, por lo cuál instalarlo tendría un costo.

En su defecto, podemos instalar Hylafax + iaxmodem para tener una máquina de fax virtual.

IAXmodem

"IAXmodem es un módem de software escrito en C que usa un canal IAX (comúnmente proporcionado por un sistema Asterisk PBX) en lugar de una línea telefónica tradicional y usa una biblioteca DSP en lugar de conjuntos de chips de hardware DSP."

Instalación de IAXmodem
0- Lo primero que debemos hacer es instalar lo siguiente:

dnf install automake
dnf install gcc
dnf install libtool

1- Descargamos IAXmodem desde http://iaxmodem.sourceforge.net en /usr/src

2- Descomprimimos el paquete

3- Entramos a la carpeta iaxmodem-version

4- Compilamos con los siguientes comandos:

./configure
make

5- Copiamos el programa en la siguiente carpeta:

cp iaxmodem-versión/iaxmodem /usr/local/sbin

6- Creamos el siguiente directorio:

mkdir /etc/iaxmodem

7- Creamos el siguiente archivo:

touch /var/log/iaxmodem/ttyIAX0

8- Modificamos el archivo de configuración:

nano iaxmodem-cfg.ttyIAX

El archivo queda de la siguiente manera:

device          /dev/ttyIAX0
owner uucp:uucp
mode 660
port 4569
refresh 300
server [ip. de nuestro servidor]
peername [interno]
secret [secret del interno]
cidname [nombre del interno]
cidnumber [número de interno]
codec slinear

9- Guardamos las modificaciones y copiamos el archivo en la carpeta /etc/iaxmodem que creamos previamente:

cp iaxmodem-cfg.ttyIAX /etc/iaxmodem/ttyIAX

10- Luego desde la GUI de FreePBX, editamos la configuración avanzada del interno y cambiamos los siguientes ítems:

transfer: si
context: from-internal
host: dynamic
type: friend
port: 4569 (puerto UDP estándar en el que trabaja IAX)
qualify: yes
allow: alaw
dial: IAX2/[número de interno]
deny: 0.0.0.0/0.0.0.0
permit: [ip del servidor]/255.255.255.255
requirecalltoken: No

El resto de las configuraciones dejarlas vacías o con lo que viene por defecto.

11- Con todos los pasos anteriores ya configurados, estamos en condiciones de probar que funciona.

cd /usr/local/sbin

./iaxmodem ttyIAX

Cuando ejecutamos el comando anterior deberíamos tener una respuesta de este estilo:

[2019-11-27 18:20:07.020032] Modem started
[2019-11-27 18:20:07.020664] Setting device = '/dev/ttyIAX'
[2019-11-27 18:20:07.020732] Setting owner = 'uucp:uucp'
[2019-11-27 18:20:07.020769] Setting mode = '660'
[2019-11-27 18:20:07.020807] Setting port = 4569
[2019-11-27 18:20:07.020842] Setting refresh = 300
[2019-11-27 18:20:07.020910] Setting server = 'X.X.X.X'
[2019-11-27 18:20:07.020970] Setting peername = 'xxxx'
[2019-11-27 18:20:07.021025] Setting secret = 'xxxxxxxxxx'
[2019-11-27 18:20:07.021074] Setting cidname = 'nombre de la extensión'
[2019-11-27 18:20:07.021102] Setting cidnumber = 'número de la extensión'
[2019-11-27 18:20:07.021140] Setting codec = alaw
[2019-11-27 18:20:07.021347] Opened pty, slave device: /dev/pts/2
[2019-11-27 18:20:07.021368] Created /dev/ttyIAX symbolic link
[2019-11-27 18:20:07.023917] Registration completed successfully.

Para pararlo presionamos CTRL + C

[2019-11-27 18:20:22.725009] Terminating on signal 2...

12- En el caso que el registro no se haga correctamente, podemos ingresar a la consola de asterisk desde otra consola con el comando

asterisk -rvvvvvvvvvvv

y en esta consola nos aparecen algunos de los errores que pudimos haber cometido en la configuración.

13- Ahora tenemos que instalar el script presente en la carpeta de las fuentes de IAXmodem para que éste arranque al boot de Linux:

cd iaxmodem-1.3.0

mv iaxmodem.init.fedora /etc/init.d/iaxmodem

14- Lo volvemos ejecutable:

chmod +x /etc/init.d/iaxmodem

15- Lo configuramos para que arranque automáticamente:

chkconfig --add iaxmodem

chkconfig iaxmodem on

15- Por último lo ponemos a funcionar:

systemctl start iaxmodem.service

Hylafax

1- Instalamos Hylafax utilizando dnf, el cual ya nos instala las dependencias:

dnf install hylafax

2- Desinstale mgetty-sendfax si está instalado mediante el comando:

dnf uninstall mgetty-sendfax

3- Ejecutamos:
/usr/sbin/faxsetup

y luego:
/usr/sbin/faxaddmodem

y respondemos las preguntas acorde a los datos de nuestro país y de nuestro módem.

4- Agreguamos la siguiente línea a /etc/inittab:

mo:2345:respawn:/usr/sbin/faxgetty ttyIAX0

5- Por último debemos hacer ejecutable a faxgetty agregando la siguiente línea de código en /etc/rc.local:

/usr/sbin/faxgetty ttyIAX0

Y le damos los permisos correspondientes:

chmod +x /etc/rc.d/rc.local

Para hacer este manual se consultaron las siguientes páginas:

1- https://www.voztovoice.org/?q=node/191
2- http://iaxmodem.sourceforge.net/howto.php
3- https://www.hylafax.org/hylafax-handbook/binary-package-install/