Known Fax Problems

This section lists major known incompatibility problems. Workarounds for many of these problems involve specifying one more fax entries (for example, ResetCommand). These entries are documented in REG.DOC, under the FAX section.

Modem Initialization

The most common initialization problem is that fax uses the wrong command for S/W flow control. The process fax uses for determining the reset and setup commands is described under the documentation of the fax registry keys, and in particular the ResetCommand and SetupCommand entries, in REG.DOC.

Windows 95 and NT-SUR issue the ResetCommand string before every answer. This causes problems with certain modems, because these modems return ERROR in response to ATA if they have a zero internal ring count (which they do immediately after issuing the default reset string). Microsoft will fix this in the next version of NT and Nashville.

Most of these problems can be fixed on a per-modem basis by appropriately overriding the ResetCommand and SetupCommand entries via the modem's INF file.

Choosing Modem Class

Some modems advertise, but do not properly support, Class1. You can fix this using the FixModemClass INF item, as documented in REG.DOC under the section FAX.

Class 1: FCS Checking

All HDLC frames end in a 2 byte CRC Frame Check Sequence (FCS). The modem calculates the CRC of the packet and compares it with the value of the FCS received to determine if the packet was received correctly. According to the T30 specification the received FCS is passed on to the communications software at the end of the frame, followed by an OK or an error message. The software can theoretically ignore the FCS, as the modem checks it before reporting OK.

In reality, modems handle the FCS and status reporting differently. Some modems act according to the specification, some pass an invalid FCS, some do not pass on the FCS, and some report errors even on good packets.

Windows 95 fax requires the modem to supply a valid FCS bytes, or no FCS bytes. If the modem supplies incorrect FCS bytes, fax will still work in most cases. However, for the Non-Standard Facilities (NSF, or NSX) frames, inclusion of the additional bytes can cause the frame to be rejected. The NSF functions are written to assume that 2 FCS bytes are appended to the data and removes them before parsing the NSF frames. If parsing fails, it adds the removed bytes back on and attempts to parse again. If this fails, then the NSF frame is considered invalid. The net effect of this is that BFT capability does not work for this modem.

The fix for this problem requires a Windows 95 QFE fix for components AWFXIO32.DLL and AWCL1_32.DLL (Version 4.0.0.951). This problem will be fixed in NT-SUR and in the next version of Windows 9x.

Class 1 NSF frame transmission

Some modems do not transmit 0x11 and 0x13 if present in V.21 frame FIF. Some modems truncate long frames (>20 byte FIF). These problems cannot be fixed in the software - modem manufacturers need to fix these problems via firmware revisions and in their newer models.

Class 2: Byte-order

Different modems interpret AT+FBOR differently. The Class2 driver utilizes an internal table, but the behavior can also be controlled by using the Cl2SendBOR, RecvBOR and Cl2SWBOR INF items, as documented in REG.DOC in the FAX section.

Class 2: Answer Time-out

Windows 95 shipped with a answer time out (time out waiting for a response to the ATA command) of 16 seconds. This is too small.

The QFE fix requires version 4.0.0.951 of file AWCL2_32.DLL. The fix changes the time out to 35 seconds. This problem will be fixed in the NT-SUR and in future versions of Windows 9x.