Some of the ISDN card manufacturers have pushed to adapt the windows Common ISDN API (CAPI) to Linux. This in itself is not bad, but it has a nasty side effect: less energy is invested to provide a useful Fax Class 2 support for the active ISDN cards that can do fax. Some cards don’t have Fax Class 2 at all, and for some cards the Class 2 support is quite broken.
So you might end up with a nice fax-capable card and no ttyI / Fax Class 2 support for it...
mgetty+sendfax will, as of 1.1.31, NOT work with a CAPI
One of the problems with CAPI is that it is the wrong sort of abstraction for the purpose of sending a fax. The call setup part (dialing up) needs far too much attention for ISDN protocol details, and the actual fax transmission part is far too automated - the CAPI doesn’t provide proper feedback about what’s going on in the fax layer, like “the client requested a retransmission of page 2, and the connection was lost in the middle of page 4” - all you get is “success/failure” and the number of pages transmitted (including retransmissions – which makes this figure less than useful).
If you need to use fax with CAPI, take a look at the “capifax” software available on ftp://ftp.isdn4linux.de/pub/capi4linux (not written by me, but it works). The stuff works with a CAPI-specific file format called “SFF”.
Conversion to SFF can be done with recent ghostscripts (cfax driver),
and conversion from SFF to G3 can be done with the
which comes with mgetty. (I needed something like this for a customer
project, and the existing SFF-to-something converters were all much to
heavyweight - requiring tons of additional libraries, C++ converters,
and whatnot. My sff2g3 is 330 lines of code, needs no external libraries
and only an ANSI C compiler. Beat that :-) ).
Chances are good that I will eventually hack
capifax into something
that’s call-compatible to
mgetty (for fax reception) and
sendfax (for fax sending). But this depends somewhat on customer
demand, read: paid-for time.