Contador estandar

31. Julio 2008

Cómo configurar un fax virtual T38 en Asterisk

Partiendo que no lo he probado aún (a ver si durante estas necesarias vacaciones puedo dedicarle un ratito), he visto un artículo muy interesante sobre el T38modem, una especie de IAXmodem pero con soporte para enviar faxes mediante T38 con Asterisk.

Asterisk soporta T38 en modo passthrough en SIP, esto es, lo deja pasar, pero no iniciar ni acabar una llamada.

Justamente, el T38modem se basa en la misma filosofía que el IAXmodem por lo que sería posible disponer de esta ventaja tal y como comentan utilizando Hylafax como servidor de faxes de la misma manera que podríamos tenerlo con el IAXmodem pero con T38 en lugar de T30. Suena bien, ¿verdad? :D

Vamos a ver cómo se hace:

cd ~
cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co ptlib_unix
cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co -D “5/21/2007 23:59:59″ opal
cvs -z9 -d :pserver:anonymous@openh323.cvs.sourceforge.net:/cvsroot/openh323 co t38modem

Con esto habremos descargado las librerías y la aplicación t38modem.
Ahora vamos a compilar:

cd ~/pwlib
./configure
make
sudo make install

cd ~/opal
./configure
make
sudo make install
sudo ldconfig

cd ~/t38modem
make USE_OPAL=1 USE_UNIX98_PTY=1 opt
make USE_OPAL=1 USE_UNIX98_PTY=1 install

Vamos a probar que realmente se ha instalado y funciona…

/usr/local/bin/t38modem -tt -o /var/log/t38modem.log –no-h323 -u T38modem –sip-listen udp\$127.0.0.1:6060 –sip-redundancy 3 –ptty +/dev/ttyT38-1,+/dev/ttyT38-2,+/dev/ttyT38-3 –route “modem:.*=sip:<dn>@127.0.0.1″ –route “sip:.*=modem:<dn>”

Ahora vamos a preparar la configuración para 3 módems, para lo que supondremos que hemos instalado previamente el servidor Hylafax como indica Julian en su web y continuaremos:

cp ~/t38modem/HylaFAX/config.ttyx /var/spool/hylafax/etc/config.ttyT38-1
ln -s /var/spool/hylafax/etc/config.ttyT38-1 /var/spool/hylafax/etc/config.ttyT38-2
ln -s /var/spool/hylafax/etc/config.ttyT38-1 /var/spool/hylafax/etc/config.ttyT38-3

Como en el IAXmodem, vamos a modificar el archivo inittab para que esté siempre activa esta aplicación:

echo “t1:2345:respawn:/usr/sbin/faxgetty ttyT38-1″ >> /etc/inittab
echo “t2:2345:respawn:/usr/sbin/faxgetty ttyT38-2″ >> /etc/inittab
echo “t3:2345:respawn:/usr/sbin/faxgetty ttyT38-3″ >> /etc/inittab
kill -HUP 1

Reiniciamos el servidor Hylafax:

/etc/init.d/hylafax restart

Y chequeamos que todo está funcionando corréctamente:

cat /var/spool/hylafax/status/ttyT38-1

Lo que nos debería mostrar un mensaje como este: Running and idle

Ahora vamos a ver cómo conectamos el T38modem a Asterisk, para lo que crearemos un usuario SIP propio en /etc/asterisk/sip.conf

[T38modem]
type=friend
host=127.0.0.1
permit=127.0.0.1
context=outgoing
port=6060
allow=all
canreinvite=no

y en este mismo archivo, en el contexto [general]:

t38pt_udptl=yes

Para enviar faxes, tan solo hay que utilizar algún cliente Hylafax y será el usuario T38modem el que se encargue de hacer la llamada mediante T38 por SIP. :)
Para recibir faxes, como siempre, enviando el fax entrante a SIP/${EXTEN}@T38modem.

Si a alguien le funciona, se agradece un comentario.
Si teneis problemas, lo que he dicho antes… a pelearse y googlear un poco. :P

Enlace: http://voip-info.org/wiki/view/T38modem+configuration+with+Asterisk



3 comentarios to "Cómo configurar un fax virtual T38 en Asterisk"

  • Julian J. M. escribió el dia

    Acabo de probarlo y ha funcionado en loopback (de un modem a otro pasando por asterisk)… Lo que no he conseguido es enviar o recibir un fax a través de un trunk SIP (voztele.com).

    Seguiremos intentándolo ;)

     Vote: Add rating 0  Subtract rating 0  
  • Carlos escribió el dia

    Hola Julián tengo un problema y quisiera saber que es lo que está pasando y como resolverlo, pues he guscado en google.com y no encuentro ningún tipo de soporte ni sugerencia de como resolver este problema.

    debian:/t38modem# make USE_OPAL=1 USE_UNIX98_PTY=1 opt
    g++ -DUSE_OPAL -D_REENTRANT -fno-exceptions -Wall -DNDEBUG -I/root/opal/../pwlib/include -DPTRACING -I/root/opal/include -DUSE_UNIX98_PTY -Os -felide-constructors -Wreorder -c opal/sipep.cxx -o obj_linux_x86_opal_r/sipep.o
    opal/sipep.cxx: In member function âBOOL MySIPConnection::RequestModeChangeT38()â:
    opal/sipep.cxx:341: error: âinvitationsMutexâ was not declared in this scope
    opal/sipep.cxx:342: error: âinvitationsâ was not declared in this scope
    opal/sipep.cxx: In member function âvirtual void MySIPConnection::OnReceivedOK(SIPTransaction&, SIP_PDU&)â:
    opal/sipep.cxx:356: error: âstreamsMutexâ was not declared in this scope
    opal/sipep.cxx: In constructor âMySIPInvite::MySIPInvite(SIPConnection&, OpalTransport&, RTP_SessionManager&)â:
    opal/sipep.cxx:370: error: no matching function for call to âSIPMIMEInfo::SetUserAgent(SIPEndPoint&)â
    /root/opal/include/sip/sippdu.h:477: note: candidates are: void SIPMIMEInfo::SetUserAgent(const PString&)
    opal/sipep.cxx: In member function âvirtual BOOL MySIPInvite::OnReceivedResponse(SIP_PDU&)â:
    opal/sipep.cxx:380: error: âmutexâ was not declared in this scope
    make: *** [obj_linux_x86_opal_r/sipep.o] Error 1

     Vote: Add rating 0  Subtract rating 0  
  • Martin escribió el dia

    YO tengo el mismo problema que carlos!, no logro compilar el T38modem!!!
    gracias!

     Vote: Add rating 0  Subtract rating 0  

Deja tu comentario


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word