T.38 is an ITU recommendation for allowing transmission of fax over IP networks (FoIP) in real time.

History 
The T.38 fax relay standard was devised in 1998 as a way to permit faxes to be transported across IP networks between existing Group 3 (G3) fax terminals. T.4 and related fax standards were published by the ITU in 1980, before the rise of the Internet. In the late 1990s, VoIP, or Voice over IP, began to gain ground as an alternative to the conventional Public Switched Telephone Network (PSTN). However, because most VoIP systems are optimized (through their use of aggressive lossy bandwidth-saving compression) for voice rather than data calls, conventional fax machines worked poorly or not at all on them due to the network impairments such as delay, jitter, packet loss, and so on. Thus, some way of transmitting fax over IP was needed.

Overview 

In practical scenarios, a T.38 fax call has at least part of the call being carried over PSTN, although this is not required by the T.38 definition, and two T.38 devices can send faxes to each other.  This particular type of device is called Internet-Aware Fax device, or IAF, and it is capable of initiating or completing a fax call towards the IP network.

The typical scenario where T.38 is used is  - T.38 Fax relay - where a T.30 fax device sends a fax over PSTN to a T.38 Fax gateway which converts or encapsulates the T.30 protocol into T.38 data stream. This is then sent either to a T.38 enabled end point such as fax machine or fax server or another T.38 Gateway that converts it back to PSTN PCM or analog signal and terminates the fax on a T.30 device.

The T.38 recommendation defines the use of both TCP and UDP to transport T.38 packets. Implementations tend to use UDP, due to TCP's requirement for acknowledgement packets and resulting retransmission during packet loss, which introduces delays. When using UDP, T.38 copes with packet loss by using redundant data packets.

T.38 is not a call setup protocol, thus the T.38 devices need to use standard call setup protocols to negotiate the T.38 call, e.g.  H.323, SIP & MGCP.

Operation

 
There are two primary ways that fax transactions are conveyed across packet networks.  The T.37 standard specifies how a fax image is encapsulated in e-mail and transported, ultimately, to the recipient using a store-and-forward process through intermediary entities.  T.38, however, defines a protocol that supports the use of the T.30 protocol in both the sender and recipient terminals.  (See diagram above.)   T.38 lets one transmit a fax across an IP network in real time, just as the original G3 fax standards did for the traditional (time-division multiplexed (TDM)) network, also called the public switched telephone network or PSTN.

A special protocol is needed for real-time fax over IP (Internet Protocol) since existing fax terminals only supported PSTN connections, where the information flow was generally smooth and uninterrupted, as opposed to the jittery arrival of  IP  packets.  The trick was to come up with a protocol that makes the  IP  network “invisible” to the endpoint fax terminals, which would mean the user of a legacy fax terminal need not know that the fax call was traversing an IP network.

The network interconnections supported by T.38 are shown above.  The two fax terminals on either side of the figure communicate using the T.30 fax protocol published by the ITU in 1980.  Interconnection of the PSTN with the IP packet network requires a “gateway” between the PSTN and  IP networks.  PSTN-IP Gateways support TDM voice on the PSTN side and VoIP and FoIP on the packet side.

For voice sessions, the gateway will take in voice packets on the IP side, accumulate a few packets to ensure a smooth flow of TDM data upon their release, and then meter them out over TDM where they eventually are heard by a human or stored on a computer for later playback.  The gateway employs packet-management techniques to enhance the quality of the speech in the presence of network errors by taking advantage of the natural ability of a listener to not really hear the occasional missing or repeated packet.

But facsimile data are transmitted by modems, which aren't as forgiving as the human ear is for speech.  Missing packets will often cause a fax session to fail at worst or create one or more image lines in error at best.  So the job of T.38 is to “fool” the terminal into “thinking” that it's communicating directly with another T.30 terminal.  It will also correct for network delays with so-called spoofing techniques, and missing or delayed packets with fax-aware buffer-management techniques.

Spoofing refers to the logic implemented in the protocol engine of a T.38 relay that modifies the protocol commands and responses on the TDM side to keep network delays on the IP side from causing the transaction to fail.  This is done, for example, by padding image lines or deliberately causing a message to be re-transmitted to render network delays transparent to the sending/receiving fax terminals.

Networks that do not have packet loss or excessive delay can exhibit acceptable fax performance without T.38, provided the PCM clocks in all gateways are of very high accuracy (explained below).  T.38 not only removes the effect of PCM clocks not being synchronized, but also reduces the required network bandwidth by a factor of 10, while it corrects for packet loss and delay.

Bandwidth reduction
As shown in the diagram below, a T.38 gateway is composed of two primary elements: the fax modems and the T.38 subsystem.  The fax modems modulate and demodulate the PCM samples of the analog data, turning the sampled-data representation of the fax terminal's analog signal to its binary translation, and vice versa.  The PSTN network samples the analog signal of a voice or modem signal (it doesn't know the difference) 8,000 times per second (SPS), and encodes them as 8-bit data bytes.  This means 8000 samples-per-second times 8-bits per sample, or 64,000 bits per second (bit/s) to represent the modem (or voice) data in one direction.  For both directions the modem transaction consumes 128,000 bits of network bandwidth.

However, the typical modem in a fax terminal transmits the image data at 33,600 bit/s, so if the analog data are first converted to the digital content they represent, only 33,600 bits (plus network overhead of a few bytes) are needed.  And since T.30 fax is a half-duplex protocol, the network is only needed for one direction at a time.

Refer to RFC 3261

PCM clock synchronization
In the diagram above, there is a sample-rate clock in the fax terminal and one in the  gateway's modems that is used to trigger the sampling of the analog line 8,000 times per second.  These clocks are usually quite accurate, but in some low-cost terminal adapters (a one or two-line gateway) the PCM clock can be surprisingly inaccurate.  If the terminal is sending data to the gateway, and the gateway's clock is too slow, the buffers (jitter buffers) in the gateway will eventually overflow, causing the transaction to fail.  Since the difference is often quite small, this problem occurs on long, detailed fax images giving the clocks more time to cause the jitter buffer in  gateway to either underflow or overflow, which is just the same as missing or duplicated packets.

Packet loss
T.38 provides facilities to eliminate the effects of packet loss through data redundancy.  When a packet is sent, either zero, one, two, three, or even more of the previously sent packets are repeated.  (The specification does not impose a limit.)  This increases the network bandwidth required (it's still much less than not using T.38) but it allows the receiving gateway to reconstruct the complete packet sequence, even with a fairly high level of packet loss.

Related standards
 T.4 is the umbrella specification for fax.  It specifies the standard image sizes, two forms of image-data compression (encoding), the image-data format, and references, T.30 and the various modem standards.
 T.6 specifies a compression scheme that reduces the time required to transmit an image by roughly 50-percent.
 T.30 specifies the procedures that a sending and receiving terminal use to set up a fax call, determine the image size, encoding, and transfer speed, the demarcation between pages, and the termination of the call.  T.30 also references the various modem standards.
 V.21, V.27ter, V.29, V.17, V.34: ITU modem standards used in facsimile.  The first three were ratified prior to 1980, and were specified in the original T.4 and T.30 standards.  V.34 was published for fax in 1994.
 T.37 The  ITU standard for sending a fax-image file via e-mail to the intended recipient of a fax.
 G.711 pass through - this is where the T.30 fax call is carried in a VoIP call encoded as audio. This is sensitive to network packet loss, jitter and clock synchronization. When using voice high-compression encoding techniques such as, but not limited to, G.729, some fax tonal signals may not get correctly transported across the packet network.
  defines the image/t38 media type (formerly known as MIME type) for use with the Session Description Protocol.

Related software
 Asterisk (PBX) open source pbx support T.38 faxing
 Freeswitch Softswitch / pbx also support T.38
 ICTFax Web fax / Email to fax gateway with support T.38

See also
 Internet fax
 Telephony

References

External links
 ITU-T T.38 page
 spandsp author's science paper on FoIP

Telecommunications
Internet protocols
Internet Standards
VoIP protocols
ITU-T recommendations
ITU-T T Series Recommendations