Actualización Asterisk 1.6.0.21 - SIP faxdetect

El otro día estaba actualizando el Asterisk (de la versión 1.6.0.17 a la 1.6.0.21) y me encontré con dos gratas sorpresas:

  • La detección de fax en canales SIP
  • Una actualización al soporte T.38 (fax sobre VoIP)

La primera es representada por un nuevo parámetro presente en el sip.conf:

faxdetect=yes

Con este parámetro configurado en yes, al recibir una llamada en un canal SIP podremos configurar el plan de llamadas para que gire la llamada al fax si se trata de un fax, a una teléfono IP si se trata de un “humano”.

Algunos ejemplos:

  • Una empresa con distintas sedes interconectadas a través de troncales SIP, pueden enviarse FAX usando canales SIP
  • Una empresa con distintos departamentos puede usar extensiones SIP para enviar FAX
  • Llamadas en entrada desde un numero geográfico que tenemos configurado en Asterisk

El ultimo caso es el mío y haciendo unas pruebas he comprobado que efectivamente viene detectada la maquina FAX

Mi dialplan ahora es así:

[from-eutelia]

exten => s,1,Answer
exten => s,n,Wait(2)
exten => s,n,Dial(${AND},30,r)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
exten => s,n(unavail),Voicemail(2000@default,u)
exten => s,n,Hangup()
exten => s,n(busy),VoiceMail(2000@default,b)
exten => s,n,Hangup()
exten => fax,1,Dial(IAX2/iaxmodem)
exten => fax,n,Dial(IAX2/iaxmodem1)
exten => fax,n,Hangup

Antes no usaba el answer para que no se cobrara la llamada si no contestaba… pero para que venga detectado el fax correctamente hay que ponerlo y añadir la línea del Wait(2) para que Asterisk tenga el tiempo suficiente para detectar el fax.

Si viene detectado el fax el canal SIP llamante viene enviado a la extensión fax y de ahí a mi servidor HylaFax (usando iaxmodem). En el caso que el primer modem IAX falle, el dialplan sigue con el segundo

Esta es una prueba de una llamada fax entrante:

      Executing [s@from-eutelia:1] NoOp("SIP/eutelia3-0000002a", " Call from Eutelia ") in new stack
   -- Executing [s@from-eutelia:2] Set("SIP/eutelia3-0000002a", "FECHA=21/01/10-09:33") in new stack
   -- Executing [s@from-eutelia:3] Set("SIP/eutelia3-0000002a", "ID=XXXXXXXXXXX") in new stack
   -- Executing [s@from-eutelia:4] NoOp("SIP/eutelia3-0000002a", "21/01/10-09:33,573126814740") in new stack
   -- Executing [s@from-eutelia:5] Answer("SIP/eutelia3-0000002a", "") in new stack
   -- Executing [s@from-eutelia:6] Wait("SIP/eutelia3-0000002a", "2") in new stack
   -- SIP/justvoip2-00000029 answered IAX2/iaxmodem2-473
== Redirecting 'SIP/eutelia3-0000002a' to fax extension
== Spawn extension (from-eutelia, fax, 1) exited non-zero on 'SIP/eutelia3-0000002a'
   -- Executing [fax@from-eutelia:1] Dial("SIP/eutelia3-0000002a", "IAX2/iaxmodem") in new stack
   -- Called iaxmodem
   -- Call accepted by 127.0.0.1 (format ulaw)
   -- Format for call is ulaw
   -- IAX2/iaxmodem-14652 is ringing
   -- IAX2/iaxmodem-14652 answered SIP/eutelia3-0000002a

Siendo un FAX Asterisk pasa llamada a la extensión fax y de ahí sigue con el dialplan.

La otra novedad, que quizás pueda parecer solamente un retoque estético, es un cambio en la configuración del protocolo T38.  Ahora la corrección de error y el parámetro FaxMaxDatadagram se configuran directamente en el sip.conf y no, como era antes, en el udptl.conf

En el caso de la corrección de error FEC y con un FaxMaxDatagram de 400 (indica el tamaño máximo de un paquete udptl que puede ser aceptado), la línea en el sip.conf quedaría:

t38pt_udptl = yes,fec,maxdatagram=400

Para terminar el en archivo udptl.conf hay que comentar tres parámetros que ya no son soportados:

T38FaxUdpEC = t38UDPFEC
T38FaxMaxDatagram = 400
T38FaxUdpEC = t38UDPRedundancy

Para que queden:

;T38FaxUdpEC = t38UDPFEC
;T38FaxMaxDatagram = 400
;T38FaxUdpEC = t38UDPRedundancy

De esto me enteré en en log de Asterisk porque me aparecía el siguiente WARNING:

[Jan 15 16:39:48] WARNING[20859] udptl.c: T38FaxUdpEC in udptl.conf is no longer supported
[Jan 15 16:39:48] WARNING[20859] udptl.c: T38FaxMaxDatagram in udptl.conf is no longer supported

Como decía, aunque la segunda novedad parezca más un retoque estético que otra cosa, personalmente creo que el soporte del protocolo T38 representa una prioridad para los desarrolladores de Asterisk. Esperemos la versión 1.8 para ver que pasa.

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Actualización Asterisk 1.6.0.21 - SIP faxdetect" Suscribirse a VozToVoice - Todos los comentarios