![]() |
Greg wrote: 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 pager identifier specified with the "-p pid" in sendpage(1) is send via SNPP in the PAGEr directive to the SNPP-server (e.g. to hfaxd(1M)). The PAGEr directive in RFC 1861 has no room for a specification of the IXO/TAP service provider. That's why the hfaxd(1M) uses a file pagermap(4F) to map the pager identifier to a service provider phone number. IMHO this mapping should be a privilege part of the server daemon and not in the hand of a user also. 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.. I'll put this on my list of bugs but I'm not sure about this solution (see also the comment in SNPPServer.c++ at line 1094). Thanks anyway. matthias *** 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