HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Some Hylafax SNPP patches



Hi,
    I've recently started using hylafax for outbound paging.  (IXO/TAP).
It is well suited for a high volume environment we plan to use it in, as
it supports queueing and multiple modems. Anyway, in my travels I have
encountered some problems and include my solutions. The first problem I
ran into was that I could not specify the TAP dialup number when sending
a page request. Hylafax supports a regular expression maching and
substitution on the PIN, but not the Number. The first section of the
patch enables the use of things such as  111111@18005551212 to be sent
to pin number 111111 at TAP dialup 18005551212 (using the rule
"(.*)\@(.*) \2/\1"). The second problem I encountered was the use of
this software on a solaris Autoclient system. Solaris supports what it
calls an autoclient, which is basicly a diskless workstation which uses
its local drive as a cache. I suspect the problem I encountered was
possibly due to this, perhaps a file updating on nfs and not in cache,
or vice versa. The symtoms are that faxes work properly, however when
sending a page you get an error message (if you use the -v -d flags in
sendpage) "scheduler NAK'd request", furthermore, your syslog will have
messages from FaxQueuer stating:"null or missing number in job request".
The second patch included seems to aleviate this problem by updating the
job request   after the tap number and pin have been filled into the job
request. These patches were made on 4.0-pl1, on a Solaris-x86 2.5.1
machine, using GCC as the compiler. The patches are to be applied to
SNPPServer.c++, located in the hfaxd source subdirectory. I hope you
find this information usefull..

- Greg


*** SNPPServer.c++      Tue Nov 26 15:21:51 1996
--- SNPPServer.c++.new  Fri Sep 26 15:18:44 1997
***************
*** 300,305 ****
--- 300,306 ----
                            pin = cp;
                            if (re)                     // do
substitutions
                                subRHS(pin, *re, pagerID);
+                               subRHS(number, *re, pagerID);
                        } else {                        // <dialstring>
                            number = np;
                            pin = pagerID;
***************
*** 1118,1123 ****
--- 1119,1125 ----
            , (const char*) curJob->jobid
        );
        msgs.append(curJob->jobid);
+         updateJobOnDisk(*curJob, emsg);
      } else
        reply(554, "%s.", (const char*) emsg);
      initSNPPJob();                            // reset job-related
state




Project hosted by iFAX Solutions