I would like to announce the availability of an initial test version of a totally software FAX facility, suitable for use with Asterisk. This is a first public test release, so don't expect a solid polished product just yet. People have shown interest in what I am doing, and here is the evidence that it is not vapourware.
If the notion of a software FAX machine is new to you, what I have basically implemented is this. Asterisk contains software to transcode GSM to A-law, A-law to u-law, and so on. These are DSP functions implemented on the server's main CPU(s), with no hardware support from special DSP processors or cards. What I have done is similar. I have implemented the DSP for the key FAX modem standards in software for the server. Without any special DSP hardware, this can send and receive faxes through the PSTN interfaces. It has been tested with an E400P card so far. However, it should work for calls passing through the T100P, T400P, E100P, E400P, TE410P, X100P, or TDM40P cards, using any of the available signalling methods. Don't expect it to work for calls received by VoIP - its a modem, not a miracle worker.
You can find the software at <http://www.opencall.org>. It currently consists of two parts:
The main part is spandsp, a DSP library for telephony at 8000 samples per second. This contains a number of functions. Some are complete, and some are works in progress. The FAX facility is part of this library. The FAX facility consists of implementations of V.21 (complete, but not optimised for speed), V.29 (functional, but not optimised for speed or bad lines), V.27ter (only the tx side is anything like complete), T.30 - the fax protocol (somewhat messy, and still in need of work to make it robust), and T.4 (fax compression). The T.4 handling makes use of libtiff, so you will need libtiff installed on a machine to use spandsp. You will also need libxml2 - the FAX facility doesn't use it, but some other parts of spandsp do.
The other part is a pair of very elementary demonstration apps for Asterisk, similar to the record and play apps, but for fax TIFF files. Why TIFF? TIFF is *the* standard for computer fax. Few other graphics file formats allow for multi-page documents. Apart from some dumb proprietary file formats (e.g. WinFAX) from the early 90s, I've never seen computer fax handled in any other way. If someone would like to adapt the Asterisk voicemail2 app to turn received faxes into attached e-mails, this would be a good thing. :-)
I have only implemented the early features of the FAX standards, where any patents have long since expired. If you look at the ITU's patent declaration database you will see a long list of patent claims against the fax standards. Note these apply to features added during the life of the standards, and most apply to things like colour fax, which few people use. The basic 9600bps V.29 fax spec. is more than 20 years old, so no patents can still be in force for these original features. Is this limiting? Not really. Only a small percentage of fax machines seem to support many of the newer features. Only a few simple to implement things, like super-fine mode, have been added to most machines.
The files for spandsp all say GPL. I have given an additional disclaimer to Digium, so the code can be merged into Asterisk, once it is a bit more polished and stable. In the meantime it is easy to use as an external library.
If it doesn't work for you, don't be too surprised. Feed back anything you find, and lets try to make things better. I suspect, from experience and things I have read on the web, that a lot of fax machines do not follow the standards very well. In that case, a number of tweaks are probably needed before this new software is adequately tolerant of the behaviour of real world machines.
Enjoy, Steve
_______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users