FaxMan SDK Version 4.7
FaxMan Architecture

FaxMan Architecture

FaxMan Fax Server

At the heart of this system is the fax engine, Faxman4.exe. This program is responsible for all communications with the fax modems in a given machine. The engine also sends various notifications to each of the client applications during fax send and receive events. In addition, the engine maintains all fax logs for a given fax system. Each client application must register itself with the engine before calling any fax functions (for ActiveX and .Net control users this is handled automatically). It is critical that the engine (Faxman4.exe) be located on the path, since its services may be required at any time by any application. The engine can be configured through the use of several command-line parameters and configuration settings .


Interface Layer

The interface layer resides between your application and FaxMan. It actually consists of one or more pieces, depending on which interface your application is using (i.e., direct DLL function calls, ActiveX or the .Net Controls). At the most basic level, the interface consists solely of the faxman4d.dll library. This is the only interface that is required in every configuration, and in fact the other available interfaces communicate with FaxMan through the DLL library. The server and print drivers also make calls into this library, so it will be loaded for pretty much every conceivable FaxMan function.


Print Drivers

The FaxMan print drivers allows your users to create faxes from virtually every Windows application by simply printing. The drivers create the faxable file and then notify your application when printing is completed.


Since each operating system requires different drivers it's important to install the proper printer drivers for the O/S when you install your FaxMan application which use the drivers. To simplify this task, we include a batch file called Faxinstall that will automatically install the proper drivers and files for the O/S. You can also use the InstallPrinter method of the ActiveX or .Net controls to install the FaxMan printer driver.


Finally, you should note that the application which receives print notifications does not necessarily have to be the same application which sends the faxes; it is entirely conceivable that you could have several applications communicating with FaxMan (and each other) simultaneously. The neat thing about FaxMan’s server architecture is that it makes all of this extremely easy from an application programmer’s (that’s you) point of view, since you never need to be concerned with which ports are currently in use or which have fax modems installed.


ImageMan (a shameless plug)

Although not technically a part of the FaxMan system, and certainly not a requirement for sending and receiving faxes, using ImageMan in conjunction with FaxMan makes it a snap to perform the high-speed image manipulation that is the hallmark of a good faxing application. The idea to produce FaxMan was inspired by our many ImageMan customers who are using ImageMan for document processing systems that just cried out for good fax support also, so the two products are really designed to be extremely complementary. ImageMan provides the capabilities to:


Display images in all popular raster formats and some vector formats

Scale images (with optional antialiasing, what WinFax calls "Image Enhancement")

Rotate images (because a lot of faxes are sent upside down)

Pan and zoom images

Store images (in 35+ Raster file formats including the FaxMan fax format)

Convert between different file formats

And much, much more.


Your Application

So, what does your application have to do to exist in this world? As it turns out, remarkably little. Here are the things you’re responsible for doing:


Making sure your application is installed correctly for FaxMan operations

Scheduling faxes

Displaying any desired status information during send/receive events

Displaying a list of installed fax devices (if desired)

Determining the name of any files generated by the FaxMan print driver

Displaying faxes (if desired)

Displaying the fax logs in your application (if desired)


Fax Files

The fax files used by FaxMan are multi-page files (i.e., a single file can contain an unlimited number of fax pages) which are stored in a TIFF Group 3 file. This format uses two default extensions: FMF for temporary fax files, and FMP for permanent fax files. The only difference between the two as far as FaxMan is concerned is that when a log entry is deleted from the fax logs, all the FMF files associated with it are also deleted from the system. This helps to keep such transitory things as temporary fax files, etc., from clogging up the system. If you want to create permanent attachment files, on the other hand, they can simply be given an FMP file extension, and they will remain on disk until you (or your user!) intentionally removes them.



© 2013 Data Techniques, Inc. All Rights Reserved.

Send comments on this topic.