Fax Modem over IP

Fax Error Correction Mode (ECM) Product TechNote

Document ID: 116011

Updated: Mar 25, 2013

Contributed by David Hanes, Cisco TAC Engineer.



This document describes fax error correction mode (ECM).



There are no specific requirements for this document.

Components Used

This document is not restricted to specific software and hardware versions.


Refer to Cisco Technical Tips Conventions for information on document conventions.

Fax Error Correction Mode (ECM)

The ECM feature in fax communications is optional and is negotiated at the beginning of a fax call during the Digital Information Signal (DIS)/Digital Command Signal (DCS) message exchange. If both the sending and receiving fax devices support ECM, ECM is typically used during the fax call. If either device does not support or agree to ECM, the fax transaction proceeds as a normal G3, non-ECM call. This process allows fax devices that support ECM to be compatible with other fax devices that do not support the feature.

ECM is used to detect and correct errors in the fax page data. In order to detect and correct errors in the fax page data, ECM divides each fax page data into blocks, known as partial pages. These partial pages contain high-level data link control (HDLC) frames that have a Frame Check Sequence (FCS) value that can be checked to ensure the integrity of the data in that partial page. The terminating fax machine will checksum the HDLC frames as an error detection method, and it will request for a frame to be retransmitted if it is corrupt (that is, contains errors). The retransmittion of errored frames for a page that contains many errors can be very time consuming and consequently greatly delay the delivery of a fax or even cause the fax to fail. Most fax machines automatically redial if a fax transmission does not make it through. ECM relies on this automatic redial to try again at another time when there will be an opportunity for a better-quality connection.

The main advantage of ECM is that it guarantees error-free faxes. The principal disadvantage for ECM is that its persistent error correcting behavior can cause faxes to fail or take a long time to successfully deliver a fax when line quality is poor or conditions where there are lots of errors. If this problem is encountered, most fax devices can easily disable the ECM feature. Consequently, another disadvantage of ECM when in an IP environment is that it is less tolerant of packet loss than non-ECM calls.

Cisco gateways that use passthrough as their fax transport method cannot alter the ECM setting as it is negotiated between the fax endpoints in the DISC/DCS negotiation. This is because with passthrough the gateways do not demodulate the T.30 messages, rather they are passed through transparently in a G.711 codec across the IP network. However, if the gateway uses fax relay as the fax transport method, then it does demodulate the T.30 messages and can manipulate the ECM negotiation. On Cisco IOS® voice gateways, the default behavior is to not manipulate or alter the ECM setting that is negotiated by the end fax devices. If you need for ECM to be disabled for a fax call (regardless of the ECM setting decided by the fax endpoints) on Cisco IOS voice gateways, you can use the Cisco IOS fax-relay ecm disable configuration command under the VoIP dial peer or, in the case of MGCP, use the no mgcp fax t38 ecm command. (Note that the no mgcp fax t38 ecm command also works for Cisco fax relay.) In order to allow the gateway to override the ECM setting (bit 27) in the DIS message from the answering fax machine, these commands demodulate the DIS message and flip bit 27 (the bit that signals ECM support by the answering fax machine) to indicate that it does not support ECM. As shown in Figure 1, this process essentially tricks the originating fax machine to think the answering fax machine does not support ECM, so it responds with a no ECM support setting in the DCS message, and the call proceeds as a regular non-ECM fax call.


Figure 1. ECM Feature Disabled by a Cisco Voice Gateway

From a message flow perspective, ECM and non-ECM calls are similar. The main difference is that with ECM the fax page data is broken into partial pages. The partial pages are blocks of data of a fixed size. There might be one or more partial pages that correspond to one physical page.

In Figure 2, the message exchange for a standard, two-page G3 fax transaction using ECM is shown. As illustrated in the image, the first page is broken into two partial pages while the second page is wholly transmitted by a single partial page.


Figure 2. ECM Two-Page Fax Transaction

The different partial page messages that are used in the T.30 signaling of an ECM call are:

  1. A PPS-NULL message follows any partial page block that is not the last block for a page.

  2. The final page block for a particular page is followed by a PPS-MPS message.

  3. A PPS-EOP is sent when the last block of the last page is transmitted to indicate there is no more page data to be sent.

The reception of all three PPS messages above are acknowledged by a Message Confirmation (MCF).

Since the whole point of ECM is to detect and correct any page errors, it has a T.30 message to signal this. The Partial Page Request (PPR) is the T.30 message used by the terminating device to indicate that some portion of the partial page it received contained error(s) and that the originating fax machine must retransmit that data block. The PPR tells the calling fax device specifically where in the partial page errors were detected. This process prevents the originating fax machine from resending the entire partial page again but still maintains the data integrity of the whole page.

Figure 2 shows that the partial page, which makes up the second physical page, contained errors. These errors are known because a PPR is sent by the terminating fax machine to request a retransmission of the corrupted portion of the partial page. The corrupted portion of the partial page is retransmitted by the originating fax machine in another Partial Page Signal (PPS)/End Of Procedure (EOP) message. There are no errors encountered, so the corrected data block is acknowledged with an MCF, and the call disconnects gracefully with a DCN (Disconnect) message.

Related Information

Updated: Mar 25, 2013
Document ID: 116011