HylaFAX The world's most advanced open source fax server

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

Re: [hylafax-users] JobRetryNoAnswer doesn't work?



Thanks! I won't try it now, because I applied my changes and it works very well now. Will this patch make in into the official HylaFAX, or will I have to apply this patch each time when I install a new version of HylaFAX for my Eicon card? I can live with both, but I can imagine more people have this problem.

When I apply this patch, can I just use JobRetryNoFCON in my config files? Right now this setting doesn't exist.

Aidan Van Dyk wrote:

* Mark Hunting <mark@xxxxxxxxxx> [051125 08:34]:


To summarize:

For me the RetryNoAnswer setting works now. In Class2Modem.c++, Class2Modem::dialResponse I changed:

case 11: return (NOFCON); // No answer (T.30 timeout)

into:

case 11: return (NOANSWER); // No answer (T.30 timeout)



Doh! I was even looking here and completely overlooked that... Sory.




Is this an error in Hylafax, or gives my modem the wrong error message?
Then, in FaxSend.c++, FaxServer::sendFax I changed:



[SNIP]




Apparently Hylafax knows it has called my cell phone before. This is a bit strange behaviour. It has called my cell phone before, but of course it can't have delivered any faxes to it. So IMO that's no reason to ignore RetryNoAnswer and call it over and over again?




What is at issue here is that the "Class2" device isn't properly
reporting the real problems.

FHNG: responses of 10-19 are:
	"Transmit Phase A & miscellaneous errors"
A value of 5 means:
	"Ringback detected: Answer with no CED".


So, what we are getting from the device when we get the FHNG:11 is that we are in Transmit Phase A and something went wrong. The only correct assumption for HylaFAX at this point is: - A carrier was seen, but we there was an issue.

This is why 11 is translated as NOFCON, which is:
	NOFCON     = 7,         // carrier established, but phase A failure

The NOFCON is what is setting calledBefore() to true.

That results the behaviour that HylaFAX is giving you.

So, instead of setting JobRetryNoFCON instead of JobRetryNoANSWER work
if you use the following patch:

===== faxd/FaxSend.c++ 1.42 vs edited =====
--- 1.42/faxd/FaxSend.c++       2005-09-27 15:33:19 -04:00
+++ edited/faxd/FaxSend.c++     2005-11-25 08:59:52 -05:00
@@ -331,7 +331,12 @@ FaxServer::sendFax(FaxRequest& fax, FaxM
       case ClassModem::NOCARRIER:     // no carrier detected on remote side
       case ClassModem::BUSY:          // busy signal
       case ClassModem::NOANSWER:      // no answer or ring back
-           if (!clientInfo.getCalledBefore() && fax.ndials > retryMAX[callstat])
+           // If we are NOFCON, then we *know* we've called before, and want
+           // to error out on retryMAX[NOFCON].
+           // If we've actually called before, then we don't want to give up
+           // on BUSY/NOANSWER/NOCARRIER/DATACONN from retryMAX[*]
+           if ((callstat == ClassModem::NOFCON || !clientInfo.getCalledBefore())
+                       && fax.ndials > retryMAX[callstat])
               sendFailed(fax, send_failed, notice);
           else if (fax.retrytime != 0)
               sendFailed(fax, send_retry, notice, fax.retrytime);







____________________ HylaFAX(tm) Users Mailing List _______________________ To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*




Project hosted by iFAX Solutions