About class 1.0 modem and Unix like operating system

What is modem class?

There is two types of fax modem control sequence. One is called class 1 and another is called class 2.

class 1 fax modem

Class 1 only support HDLC control sequence.

Fax communication have several phase of communication as below

Class 1 fax modem require the host computer control every sequence above. Since modem support only primitive HDLC frame signal, control messages on HDLC protocol must be composed with bit-field defined in ITU-T30 specification. The programmer must understand very low level of fax protocol such as TCF, DCS, or NSF signal frame written in ITU-T30.

Not only complexity of the protocol, but also, some sequence of the protocol require to respond in very shot time (almost real-time), making fax software on class 1 fax modem was very difficult.

class 2 fax modem

Class 2 fax modem handle fax communication as fax images(pages).

Class 2 fax modem have ability to control each phase by itself, so that the host computer have only to do is making call or catch up the call, and send encoded fax image data. Negotiation and confirmation of the image is automatically executed almost.

What experts say about class 1.0 modem

As mentioned above, class 1 fax modem, require complex and real-time response. For old type unix, this is really problematic. See what many experts say about class 1 fax modem as messy.

What mgetty+sendfax said

From: Class 1 fax modems

"These do not work. They are not going to be supported (class 1 faxing is a mess, and the timing is extremely critical--nearly impossible in a unix environment--read the comments to the FlexFax package for details)."

mgetty+sendfax does not support class 1 modem and recommend class 2 fax modem

What efax said

From EFAX(1)

"Class 1 operation may fail if the program can't respond to certain data received from the modem within 55 millisecond"

What HylaFax said

From :Class 1 modem support

"If you want to use a Class 1 modem with this software and your system does not provide support for low latency serial line input you are likely to have troubles."

It is seemed that class 2 modem is much better than class 1 modem

Yes, and no.

Theoretically, class 2 is an succeeding of class 1 modem, and must have much better feature - easy to programing with little resource without error.

In reality, strangely, the latest specification is class 1.0 (TIA/EIA-578).

Class 1.0 comes after Class 2.0, and Class 2.0 specification is not seemed to be updated nor maintenance.

Actually, the fax modem protocol was developed in order below;

Since modem vendor can't wait for final releae of the specification, many class 2 fax modem was developed based on draft-specification, so that, there was some incompatibility among modem manufactures. As such, even though class 2 modem have specification for 2D compress mode, there are no modem can handle 2D compress mode. To resolve this situation, the release specification (class 2.0) was developed, however, the implementation in draft-version-of-specification had become de facto standard at that time. The final released version of class 2.0 specification have not implemented commonly. Actually, it have been difficult to find class 2.0 modem in anytime.

If class 2.0 specfication had been implemented widespreadly, class 2.0 modem is much better than class 1.0 modem, however, in reality, it is very difficult to find a modem to implement class 2.0 specification completely, and also there is imcomatibility among class 2 (draftincompatibilityl) modems.

If you want 2D compress mode

Because of historical reason, almost all of the class 2.0 modem dose not support 2D compress mode which is able to compress more compact image and send image in much shoter time (this means reducing teshortere bill)

What should us do, if we want to cut telephone bill? There is only way to use class 1.0 modem and write every T.30 fax transmition procedure on the host. transmit ionore over, recently it is difficult to find a modem other than class 1.0 modem. Probably you must find old-used-parts, if you want purchase 'new' class 2.0 modem.

As you like or not, we must use class 1.0 modem.

The problem is fax protocol requires real-time response, however, recent over GIGA Hz CPU and recent OS is seemed to be enough response.

Recently HylaFax team added one paragraph below to its manual.

Note that for the vast majority of HylaFAX users using systems with new versions of UNIX operating systems and a processer-RAM configuration that keeps system processes from using most of the CPU and memory on the system at all times, this is not likely to ever be a problem for you, and using Class 1 will likely be a better choice than using Class 2 or Class 2.0

Still it is true that Unix like OS is not good at real-time response in serial device. If buffer underflow is happend in the transmitting data, thappenedunication might be failed.

In fact, fax protocol allow a few seconds 0's sequence. And exactly same byte value of the last data will be send when when the buffer-under flow have phappened. This means even if the buffer-under-flow have happend immidiate after the 0 value and paticular timing, there is no problem to be occurred.

To eliminate buffer-under flow might be difficult, however, with carefully design, the buffer-under flow can be happend only in the paticular timing that fax protocol can accept.

I have started write this CommFax project on FreeBSD run on i486(100Mhz) with 32Mbyte RAM, I have never hit across this real-time response problem. (Of course there is no problem with current environment RedHat9 on Pentium4 with 1G byte RAM)

Conclusion

This is the reason I write CommFax work with only class 1.0 modem.


Back to top page

YASUKAWA Takeo

$Id: class1.html,v 1.5 2003/05/18 06:33:05 yasstake Exp $