I'm doing another SCO to Linux conversion and this one used Vsifax. That's hardly a show stopper, but this customer wanted to use Centos and Vsifax says they don't currently support using Centos. We figured we'd try it anyway because they do support Red Hat, so not supporting Centos makes no sense. However, I couldn't make it work. It would queue up the faxes, but when it tried to send, it would always fail. So I downloaded a current tar-ball for Hylafax and did the ./configure as usual.
Unfortunately that failed pretty quickly. Unfortunately it also gave a dumb error explanation that sent me in circles for a while. Here's what it said:
... checking TIFF library version
Missing TIFF Library.
Compilation of the following test program failed:
printf( "header_ver=%d lib_ver=%s", TIFFLIB_VERSION, TIFFGetVersion() );
Verify that you have the TIFFINC and LIBTIFF configuration parameters
set correctly for your system (see above) and that any environment
variables are setup that are needed to locate a libtiff DSO at runtime
(e.g. LD_LIBRARY_PATH). Also be sure that any relative pathnames are
made relative to the top of the build area.
Unrecoverable error! Once you've corrected the problem rerun this script.
You'd naturally think that something was wrong with libtiff or that you need to set an environment variable. Nope, you need libtiff-devel.
After that, ./configure and "make && make install" ran without problems.
What's next? Having (*cough*) glossed over the documentation, I just tried "/etc/rc.d/init.d/hylafax start". That informed me that I'd missed a step:
/var/spool/hylafax/etc/setup.cache is missing!
The file /var/spool/hylafax/etc/setup.cache is not present. This
probably means the machine has not been setup using the faxsetup(8C)
command. Read the documentation on setting up HylaFAX before you
startup a server system.
Read the documentation? Why? I just ran faxsetup and was immediately able to start the init.d script and to run
"sendfax" to queue my first fax. Wonderful! This is going to be easy.
The Hylafax documentation gods laughed at my optimism. I had queued the fax, but it just sat there in "faxstat -s", going nowhere, What did I miss now?
Honestly, I'm still not sure. I did find references to "vgetty", but we only need outbound faxes, so I'm not using that. Eventually I found that faxmodem ttyS0 would cause the fax or faxes to be sent, so I changed my scripts to always run that after "sendfax". I would have thought that this was a daemon and had seen it run during "faxsetup":
Should I run faxmodem for each configured modem [yes]?
But apparently it isn't a daemon? Very confusing - the answer is probably in the docs somewhere but as everything here happens through scripts I control, I can use this method for now. Chances are good someone will point out a better way minutes after I post this anyway.
The next problem involves some custom reporting that I'd done on SCO with the use of Vsifax "tags". For example, if we are faxing a Purchase Order, we use the PO number for the tag. This makes it easier to identify and resend any failed faxes.
Hylafax doesn't seem to have a similar capability, but it does have an "identification" string that can be added with a -i argument to sendfax. As I only need one tag, that will do, but at first I was at a loss to figure out how. I couldn't find the strings I had added in log files. Also, the log files have much more than I need - I wanted something like Vsifax's "vfxolog". Fortunately, I found that in "/var/spool/hylafax/etc/xferfaxlog". That has exactly what I need, including the identification string.
So, I have a little bit of work to rewrite my scripts, but it won't be a large effort. I've put that on hold temporarily as the main application vendor is having trouble with the non-fax modems used for backup credit card processing, and we may end up switching to Red Hat anyway, which would mean they could use Vsifax and I wouldn't need to rewrite my scripts. So I'm in "wait" mode.