How FoIP Works

Okidata 5980 IP-enabled fax machine
Photo courtesy HowStuffWorks Shopper

Fax over Internet Protocol (FoIP), or IP faxing, has been around for years. If you've ever sent a fax from a computer, you've used a form of FoIP. In the past, IP faxing didn't feel like a regular fax session, with the comforting beeps that let you know you're connected to the destination machine and a nice little confirmation for each successful transmission. The latest generation of FoIP systems combines the benefits of traditional faxing with the cost savings of Internet transmission methods.

In this article, we'll find out about the different forms of IP faxing, examine a typical FoIP setup and learn about the challenges facing seamless faxing over the Internet.


The Basics

FoIP, also called IP faxing, is a method of sending faxes over the Internet. FoIP changes the transmission medium of faxing in much the same way that VoIP (Voice over Internet Protocol) changes the transmission medium of a phone call. In both cases, data makes all or most of the trip between sending and receiving devices on a packet-switched network (usually the Internet), avoiding the long-distance phone lines of the circuit-switched telephone network (see How VoIP Works to learn about the differences between circuit switching and packet switching). This reduces the cost of transmission and can be a more efficient setup for a business that already has access to Internet bandwidth.

The "IP" in FoIP stands for Internet Protocol, which is the series of standards and steps used to transmit data over the Internet to the correct destination address. The fax information is transmitted as "IP packets" via the Internet instead of as analog signals via phone lines. An IP packet is simply a chunk of data organized in a way that lets Internet routers and destination machines understand and decode what's inside it. (See What's a packet? and How Routers Work: Transmitting Packets to learn more.)

You don't need to buy a new fax machine to use FoIP. FoIP allows traditional (called 3G) fax machines to transfer data over the Internet using gateways between phone lines and the Internet. If you want to skip the phone lines altogether, you can use an IP fax machine that connects directly to the Internet. When you're transmitting a fax between two IP fax machines, the transmission cost is the same as for e-mail, and it's faster because transmission is entirely via broadband channels.

The FoIP setup is a lot like the VoIP setup, and you can even send IP faxes using a VoIP server. However, since a fax requires more bandwidth than a voice, a VoIP server doesn't automatically work seamlessly for transmitting faxes. It typically requires some modifications, which you can make by installing a piece of software. Some companies also make servers that are optimized for both VoIP and FoIP applications.

There are a lot of ways to implement FoIP. In the next section, we'll find out what a simple IP faxing system looks like.


A Simple FoIP System

In FoIP, there are two primary transmission methods:

  • In the store-and-forward approach, fax information is transferred from fax server (also called a gateway) to fax server as e-mail attachments. This uses a lower-level Internet protocol (like SMTP). If you've been sending faxes from your PC for the last five years, you've probably been using the store-and-forward approach. It's kind of like sending an e-mail who's destination is a fax machine instead of someone's inbox. The drawback here is that the fax machines are not exchanging information in real-time, so it doesn't feel like a traditional fax session. The machines can't discuss their capabilities (if the sender is a color fax machine and the receiver is black and white, somebody is going to be disappointed), and the sender does not receive instant confirmation that each page has been received.
  • In real-time IP faxing, fax information is transferred from fax server to fax server as IP data packets using a high-level Internet Protocol such as TCP or UDP. These protocols allow for real-time connections that let the fax machines exchange information along each step of the way (see How OSI Works to learn about protocol layers). A real-time IP fax feels just like a traditional phone-line fax.

The big thing in FoIP right now is the real-time approach. There are a lot of possible configurations for a real-time IP faxing system. A few of the more common ones include:


  • G3 (traditional) fax machine to G3 fax machine
  • Fax-equipped PC to G3 fax machine
  • IP fax machine to G3 fax machine
  • IP fax machine to IP fax machine

No matter which method you use, IP addresses are involved at least somewhere along the transmission path. An IP address is the identifying code of any device connected to the Internet. If you're transmitting a fax between two IP fax machines, the phone number you're sending the fax to is just an alias. The phone number is immediately converted to the corresponding IP address for the receiving machine. If you're sending a fax from an IP fax machine to a G3 fax machine, the IP fax machine uses the destination phone number to generate the IP address of the fax server located closest to the receiving machine. Proximity matters -- you want a local fax server so there are no expensive long-distance lines involved in the transmission of the fax from the server to the receiving machine.

Here's a more detailed look at a simplified, real-time FoIP session between an IP fax machine (as the sender) and a G3 fax machine (as the receiver):

A real-time IP fax session includes all of the exchanges that take place in a traditional fax session.

On the surface, this is all there is to an IP fax transmission. But behind the scenes, there's a lot going on to make the conversion between phone-line faxing, which is based on a protocol called T.30, and real-time IP faxing, which uses a protocol called T.38. In the next section, we'll take a closer look at the process.


FoIP Protocols

To understand what needs to happen during an IP fax session, it helps to take a closer look at the phases of a fax. If you've read How Fax Machines Work, you know that when you insert a document into a fax machine and dial a phone number, the machine sends a signal over the phone lines to the receiving machine to initiate the fax session. If the receiving machine responds with that series of tones most of us have come to associate with faxing, the sending machine knows the connection is established. At this point, the two machines exchange a series of control signals telling each other stuff like what paper size they can handle, whether they're color or black-and-white and what types of data compression they support.

Something important to note here is that fax machines are digital in nature. Digital is what they initially produce and what they ultimately understand. But phone lines are analog. So G3 fax machines use a protocol called T.30 to encode digital information into analog signals on the sending end and decode those analog signals back into digital information on the receiving end.


Once each machine knows the other's capabilities, the sending machine scans the page and produces a series of bits (1s or 0s) that represent the black and white areas of the page in digital form. It then converts those bits into analog signals for transmission over the phone line. On the other end, the receiving machine decodes the page data back into digital form, reads the bits and prints out the page based on the instructions provided by those bits.

In a fax session, timing is everything. Phone lines are really good in this regard because they provide constant timing for each phase of the fax session -- establishing the connection, exchanging control signals, sending and confirming receipt of page data, sending and confirming multipage alerts, and terminating the session. At each step along the way, the machines are talking to each other to make sure everything is going okay. As you saw in the last section, a real-time fax session over the Internet includes all of these phases and confirmations. FoIP uses the same method of compressing and interpreting image data as G3 does, but it uses a different protocol for transmitting that data. The protocol that enables real-time faxing over the Internet is the T.38 protocol.

T.38 converts traditional fax data into an Internet-friendly format. It's basically a method of packaging T.30 fax signals and data as IP packets on the sending end and turning those IP packets back into T.30 signals and data on the receiving end. Here's a look at the conversion process that happens during a single phase of an FoIP session between two G3 fax machines:

As you can see, faxing over the Internet can require a lot of data conversion. From an efficiency standpoint, it would make a lot more sense to just discard the old T.30 protocol in favor of one that's digital and packet-based from end to end. But since faxing evolved as a phone-line technology, T.30 is the only language that every fax machine out there understands -- FoIP can't just throw it out. But a successful real-time session with all of the traditional T.30 phases requires a stability in timing that the Internet just can't provide. This is only one of the challenges facing FoIP. In the next section, we'll take a look at some of the obstacles to a seamless IP faxing session.


FoIP Challenges

There are several operating issues affecting the successful transmission of a fax via the Internet. One of them is protocol conversion. Since there are about 250 million fax machines out there that only understand T.30, FoIP has to convert T.30 data into T.38 data for transmission and then convert T.38 data back into T.30 data for reception. This translation happens at the fax server/gateway.

A software bundle in the fax server acts as a bridge between the two protocols. The fax/modem component converts analog fax signals into digital data on the sending end and digital data into fax signals on the receiving end. The fax/network component puts digital data into IP data packets on the sending end and takes those packets apart on the receiving end. The fax/protocol component coordinates the T.38 actual timing with the T.30 expected timing -- for instance, the software will send a signal to stop the receiving fax machine from timing out when a packet is delayed.


This brings us to another issue with IP faxing: network timing. Transmission time through the various nodes of an Internet network is not nearly as standardized as timing on phone lines. If the timing is off in a fax session, the machines might not be able to understand each other, and the transmission of information can end up corrupted or just fail entirely. In IP faxing, there are delays caused by:

  • Processing - It takes time for the fax gateway to perform T.30/T.38 conversions and gather the fax data into IP packets for transmission.
  • Network hold-ups - If any particular leg of a network is experiencing abnormally high traffic, a packet can arrive later than expected.
  • Jitter buffers - The fax gateway may delay packets on the receiving end for a period of time to compensate for variable timing in packet arrival. It wants to send everything to the receiving fax machine in the right order and at the right intervals.

In the case of jitter buffers, a method of compensating for timing problems actually causes some additional delay. In most cases of poor timing, the gateway can negotiate with the receiving fax machine to keep the connection open until the transmission is complete. If a packet arrives out of order at the gateway, it can put it back into the right sequence by reading the sequence number included in each packet.

Of course, if a packet is lost, there's no sequence number to read. And when you're dealing with a network like the Internet, packets do sometimes get lost. FoIP compensates for lost packets using various error-correction methods. One is redundant packets, which is used when transmitting faxes via the UDP/IP protocol layer. Each packet includes its own data along with the data from the previous packet, so two consecutive packets would have to disappear in order for the data to be lost. Another error-correction scheme is one that's built into the TCP/IP protocol layer. TCP requires a receipt confirmation for each packet it sends, and it resends the packet if there's no confirmation. (See searchNetworking: TCP/IP and searchNetworking: UDP to learn about these protocols.)

FoIP has a ways to go before it's as reliable as traditional phone-line faxing, but the implementation of a real-time IP faxing scheme has made it a very attractive option for anybody who sends a lot of long-distance faxes. In most cases, the cost savings and network integration of FoIP far outweigh the downside of having to occasionally resend a fax that doesn't go through.

For more information on FoIP and related topics, check out the links on the next page.


Lots More Information

Related HowStuffWorks Articles
More Great Links


  • "Faxing over IP Networks."
  • "IP Fax." System Solutions.
  • "IP faxing."
  • "IP Fax Machine." SPIRIT DSP.
  • "Understanding IP Faxing." Lanier.
  • "Voice and Fax over Internet Protocol." International Engineering Consortium.