Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated using 4PSA automated script


Note

Applies to VoipNow 3 and higher!

The T38FaxMaxDatagram session parameter is interpreted in different ways by various implementations of T.38. If VoipNow sends or receives faxes from/to an external device over T.38, then it is possible to have fax failures due to wrong interpretation of the T.38 parameter. 

This article will help you solve the failures caused by the T.38 parameter.

Example

The failures caused by the T.38 parameter can be identified in the Asterisk log, where you will see multiple lines similar to the ones below:

"[2010-07-12 10:42:57] WARNING[15878]: udptl.c:1087 ast_udptl_write: (SIP/faxsend-0003*002-0003*001): UDPTL asked to send 59 bytes of IFP when far end only prepared to accept 58 bytes; data loss will occur. You may need to override the T38FaxMaxDatagram value for this endpoint in the channel driver configuration."

Different specifications may give you some clues about this option.

"This option indicates the maximum size of a UDPTL packet or the maximum size of the payload within an RTP packet that can be accepted by the remote device."

"The maximum size of the payload within an RTP packet that can be accepted by the remote device."
"This parameter signals the largest acceptable datagram for the offering endpoint and the answering endpoint (i.e. the maximum size of the RTP payload). The answering endpoint may accept a larger or smaller datagram than the offering endpoint. Each endpoint should consider the maximum datagram size of the opposite endpoint."

In practice, some systems define T38FaxMaxDatagram as the maximum IFP length, others treat it as the maximum UDPTL length. VoipNow considers this value as the maximum UDPTL size.

Step-by-step guide

The t38pt_udptl configuration option from the sip.conf configuration file will be modified to reflect the remote endpoint interpretation.

The expression maxdatagram=value will override the provided value of the other endpoint.

Example:

t38pt_udptl = yes,maxdatagram=400

This setting is global, meaning that it will modify the behavior for all T.38 fax sessions regardless of the device type. Asterisk must be restarted once this change is applied.

Content by Label
showLabelsfalse
max5
spacesKB
showSpacefalse
typepage
cqllabel in ("fax","t38","asterisk") and type = "page" messages","failure") and space = "KB"currentSpace()
labelsfax t38 asterisk

Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution 4.0 International.