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? 😀

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. 😛

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

6 Comentarios

  • 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 😉

  • 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

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

  • Hola buenas, estoy tratando de instalarlo, pero a mi tambien me aparece el mismo error que a Carlos.

    Porque puede deberse?
    Que habria que hacer para solucionarlo?

    Muchas gracias

  • Pues que suerte yo me quedo justo antes con el opal.

    Alguna sugerencia?

    make[1]: se ingresa al directorio `/usr/src/opal’
    g++ -D_REENTRANT -fno-exceptions -Wall -fPIC -DPIC -DNDEBUG -DPTRACING -I/usr/src/opal/include -DPTRACING -I/usr/src/opal/../pwlib/include -Os -felide-constructors -Wreorder -c /usr/src/opal/src/sip/handlers.cxx -o /usr/src/opal/lib/obj_linux_x86_r/handlers.o
    /usr/src/opal/src/sip/handlers.cxx: In member function ‘BOOL SIPSubscribeHandler::OnReceivedPresenceNOTIFY(SIP_PDU&)’:
    /usr/src/opal/src/sip/handlers.cxx:547: error: ‘PXML’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:547: error: expected `;’ before ‘xmlPresence’
    /usr/src/opal/src/sip/handlers.cxx:548: error: ‘PXMLElement’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:548: error: ‘rootElement’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:549: error: ‘tupleElement’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:550: error: ‘statusElement’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:551: error: ‘basicElement’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:552: error: ‘noteElement’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:554: error: ‘xmlPresence’ was not declared in this scope
    /usr/src/opal/src/sip/handlers.cxx:557: error: ‘xmlPresence’ was not declared in this scope
    make[1]: *** [/usr/src/opal/lib/obj_linux_x86_r/handlers.o] Error 1
    make[1]: se sale del directorio `/usr/src/opal’
    make: *** [optshared] Error 2
    vpbx_3:/usr/src/opal$ vi /usr/src/opal/src/sip/handlers.cxx
    vpbx_3:/usr/src/opal$

  • Pues yo al final logré instalarlo.
    Las instrucciones están en:

    http://groups.google.es/group/asterisk-es/browse_thread/thread/9e749ccc9bb8d06e

    El faxaddmodem lo reconoce pero no he podido ponerlo a hablar con un CISCO 2800 el esquema es el siguiente:

    Fax T.30 PSTN Provedor Cisco 2800 Asterisk T38modem Hylafax

Archivos

© 2014 Sinologic, inc. All rights reserved.

Menú

Redes sociales