Aidan Van Dyk [Fri, 11 Jan 2008 20:35:55 +0000 (20:35 +0000)]
Rework DSO support
This reworks the DSO support in HylaFAX slightly, bringing improvements:
1) libraries have the form:
libhylafax-${ABI_VERSION}.so.${API_PATCH}
We've never made any attempt at having a stable ABI, even though we
callied it "libfaxutil.so". This makes it explicit.
2) libfaxserver is not longer built as a DSO.
It actually took more room to have libfaxserver.so + binaries then the
plain binaries by them self, mainly do to the fact that almost all of
code in libfaxserver is *not* shared, and has larger representation in
the shared object then directly in the single binary.
3) The make/configure/defs interaction is more straight forward.
Aidan Van Dyk [Fri, 11 Jan 2008 20:15:53 +0000 (20:15 +0000)]
Rename "libfaxutil" to "libhylafax"
Since we've (historically) concidered ourselves important enough to be a
system library, the least we can do is name it such that it reflects what
it is, other than a generic "faxutil" library.
In reality, it's not a system library, really a private library, and
should be installed as such (debian correctly does this), but DSO
support is hairy enough as is without trying to support putting it in a
private space, that we'll live for now just with putting hylafax in the
name to not trounce a global generic name like "faxutil"
Aidan Van Dyk [Tue, 11 Dec 2007 15:48:25 +0000 (15:48 +0000)]
faxq: Don't allow pending jobs with future TTS to block current jobs
Pending jobs to a particular destination are "sleeping", but should not
be accounted as active sleeping jobs. The DestInfo queues track active
jobs for the purpose of batching and concurrent calls.
This keeps "pending" jobs out of the destinfo queues until they have
reached their TTS, and can be considered actively for scheduling.
From Lee:
> commit e987750f6bf20e3f8822cdad936e226441145772
> Author: Lee Howard <faxguy@howardsilvan.com>
> Date: Tue Nov 20 18:29:07 2007 +0000
>
> These are some enhancements/fixups for Mac OS X Leopard (darwin9).
>
> Of import is to note that a "-1" define, as for _POSIX_PRIORITY_SCHEDULING
> indicates that it is unavailable... and thus should mean the same thing as
> leaving it undefined. Our configure "checkForDefined" does not anticipate
> this. (And it probably should.) But for the sake of an easy fix here
> without potential repercussions for other systems that may use a -1 define
> otherwise... we'll just continue to address the issue with darwin9 as we
> did with darwin8. See:
>
> http://lists.apple.com/archives/Unix-porting/2005/Jul/msg00027.html
Aidan Van Dyk [Mon, 26 Nov 2007 14:11:17 +0000 (14:11 +0000)]
Revert the fuser "behaviour reversal"
Lee switched the default behaviour of the fuser usage, and the -f switch:
| commit c4af11737e331521d76aff106e7146078006efc2
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Oct 2 23:19:55 2007 +0000
|
| More full-device-name-path support.
Which was included in our sync... Revert this specific part of the change.
Aidan Van Dyk [Mon, 26 Nov 2007 14:04:19 +0000 (14:04 +0000)]
Add another Samsung NSF
From Lee:
| commit b52da7d79b33cc6b123e7d7948e3a6f568810cd6
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Nov 22 01:41:52 2007 +0000
|
| Steve Underwood contributes another Samsung NSF identification.
Aidan Van Dyk [Mon, 26 Nov 2007 14:04:14 +0000 (14:04 +0000)]
Error codes: E111 more accrurate
From Lee:
| commit 92661a7e758497625950994c6f9f127cda8bdd95
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Nov 19 13:50:42 2007 +0000
|
| This makes the error message more accurate.
Aidan Van Dyk [Mon, 26 Nov 2007 14:04:08 +0000 (14:04 +0000)]
Make fmtTime() always include hours
From Lee:
| commit 640974099533468fbbc4844d9f0f0c88f6310505
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Nov 15 21:31:28 2007 +0000
|
| This causes the fmtTime() time format to always include hours.
|
| Logs like this:
|
| JOB 1086 (sleeping dest +1234 pri 126 tts 4:58 killtime 4:58:00): SLEEP FOR 4:58
|
| Just aren't that intuitive with respect to the "4:58". To some readers that
| may normally mean 4 minutes and 58 seconds... but to others it may look like
| four hours and 58 minutes.
|
| One such "reader" is MySQL where "4:58" will be interpreted as nearly five hours
| instead of nearly five minutes. In order to communicate the proper time one must
| use "0:04:58".
|
| So to interface things one constantly needs to parse the fmtTime()
| output to add the hours (if not present). Let's save everyone a headache and
| simply always include hours to the fmtTime() time format.
|
| JOB 1086 (sleeping dest +1234 pri 126 tts 0:04:58 killtime 4:58:00): SLEEP FOR 0:04:58
|
| That's a lot more clear to understand.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:58 +0000 (14:03 +0000)]
Add variant voice mode with DTMF dectection for some USR modems
From Lee:
| commit 488237c63a03653cb8acb1884d72c8ad582e2d46
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Nov 8 01:28:44 2007 +0000
|
| Some USR modems don't support AT+FCLASS=8 but they do support a variant
| voice mode with DTMF detection. Since they require an ATA instead of an
| ATH1 it means that we've got to look for the VCON indication now.
|
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:50 +0000 (14:03 +0000)]
typerules: Example using pdftk to auto-rotate pages to portrait
From Lee:
| commit 9505aa54a29da4919269a9093de65dfc555eca5d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Nov 7 22:28:50 2007 +0000
|
| Panagiotis Malakoudis points out that pdftk has the ability to auto-rotate
| pages to portrait. This sets up an example typerules entry.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:45 +0000 (14:03 +0000)]
IAXModem config: Enable V.17
From Lee:
| commit 55739aff2976dbd3844ce798fcd18a53fbafd919
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Nov 6 18:44:20 2007 +0000
|
| V.17 in iaxmodem is good now.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:40 +0000 (14:03 +0000)]
faxaddmodem: Default to CountryCode/AreaCode given during faxsetup
From Lee:
| commit 582f23bcf4ec0ce25f27e8dfcdd3e8412ff76a2d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Nov 5 06:03:37 2007 +0000
|
| It seems silly to ask AreaCode and CountryCode in faxsetup, and then in
| faxaddmodem to present defaults that are different from what was provided
| in faxsetup. Use the values given in faxsetup as defaults in faxaddmodem.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:29 +0000 (14:03 +0000)]
Add passive support into libfaxutil for all client programs.
This is based on :
| commit aee4d63ae667f7e60b0013419a35b109883787d0
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Nov 1 05:00:32 2007 +0000
|
| This adds PassiveMode hfaxd support for all of the client programs. It is
| enabled in hyla.conf. There may be some lingering issues yet to discover,
| but this works for the testing that I've done.
and
| commit 055ae429731f64f240b885489353df882840312d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Nov 21 06:04:10 2007 +0000
|
| JPR reports that this is apparently needed for SCO to build.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:21 +0000 (14:03 +0000)]
faxinfo: Improve handling whe FAXDCS not present
From Lee:
| commit 488bce0d7355e3fbc6ea3535e627b19d5adf27fd
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Oct 31 19:01:58 2007 +0000
|
| Mike A. Leonetti reports that faxinfo segfaults when run against a TIFF
| that does not have a FAXRECVPARAMS tag. This fixes that and improves the
| "DataFormat" output.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:15 +0000 (14:03 +0000)]
Class2Params: Fix array index causing faxinfo segfault:
From Lee:
| commit 488bce0d7355e3fbc6ea3535e627b19d5adf27fd
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Oct 31 19:01:58 2007 +0000
|
| Mike A. Leonetti reports that faxinfo segfaults when run against a TIFF
| that does not have a FAXRECVPARAMS tag. This fixes that and improves the
| "DataFormat" output.
Aidan Van Dyk [Mon, 26 Nov 2007 14:03:05 +0000 (14:03 +0000)]
Class2: Handle subparamaters whem modem supports JP but doesn't show it
From Lee:
| commit 81c1f31536a8cd7d999c4548874b73ff2cdf013f
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Oct 26 15:45:36 2007 +0000
|
| Apparently some modems support JP but don't show it sometimes.
Aidan Van Dyk [Mon, 26 Nov 2007 14:02:54 +0000 (14:02 +0000)]
Try to handle Eicon Class2 better
From Lee:
| commit 8fe81361e0f66a83cb8429307c3da2227ccc6812
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Oct 18 23:42:42 2007 +0000
|
| Eicon's proprietary Class 2 is fun.
Aidan Van Dyk [Mon, 26 Nov 2007 14:02:48 +0000 (14:02 +0000)]
Class2: Wait for OK folowing an +FHS
From Lee:
| commit e86aa0764ea2de5479b455606e6dd7d329dfd02a
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Oct 18 06:05:09 2007 +0000
|
| In Class 2 we should wait for the OK following an +FHS.
Aidan Van Dyk [Mon, 26 Nov 2007 14:02:33 +0000 (14:02 +0000)]
Class1: Fix occasional incorrect EOFB formatting on sending MMR data
From Lee:
| commit 6443b26c32748dec0ce045821d694ad3257cc5fb
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Oct 10 23:52:05 2007 +0000
|
| This seems necessary now... didn't seem necessary before... but... who knows.
and
| commit 0bcc521e68c6d031f0d9a6cb2940e06e7ee64770
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sun Nov 4 01:45:29 2007 +0000
|
| This removes all of the "lastbyte" code for sending MMR use as well as removes
| MMR support from correctPhaseCData.
|
| Long ago I had made an incorrect conclusion that all 2D code words ended with a
| "1". And to follow the pattern in the MH and MR contexts sending RTC... in
| order to send a properly-encoded EOFB I therefore used the "lastbyte" code and
| such to determine exactly how many zero bits needed to lead the EOFB signal.
| And because of the incorrect initial conclusion about 2D code words it thus
| meant that whenever an MMR image ended with a 2D code word ending with a "0"
| that the EOFB would be corrupt through sendRTC().
|
| Our MMR encoder puts EOFB correctly at the end of the data stream. There is no
| need to try to second-guess our own MMR encoder. Since we're sticking a tagline
| at the top of every page (virtually, only not when the page is a very, very thin
| strip) it means that EOFB will be properly there because when we do that we must
| reprocess the entire MMR image.
|
| This is different with MH and MR because in those cases we're not re-encoding
| the entire page. And thus a faulty RTC signal (or a duplicate RTC) in the image
| data can creep in from the source TIFF file which supposedly can be corrupt from
| Ghostscript or from the client. So with MH and MMR we are wise to use
| correctPhaseCData to try to ensure a proper RTC; in the case of MMR it's simply
| a waste: there's nothing to correct that hasn't already been corrected by the
| same encoder either in tagline generation or in soft-RTFCC.
|
| So this ultimately will fix a few cases, perhaps rare, where the receiver was
| signalling DCN after PPS.
Aidan Van Dyk [Mon, 26 Nov 2007 14:02:25 +0000 (14:02 +0000)]
Class1: Handle echo of MCF when in non-ECM reception
From Lee:
| commit d6fd406ec871558db7285bcaf8d5fa4ea0b86f79
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Oct 5 21:21:56 2007 +0000
|
| handle MCF echo in non-ECM
Aidan Van Dyk [Mon, 26 Nov 2007 14:02:19 +0000 (14:02 +0000)]
Class1: Fix protocol when we exceed MaxRecvPages
From Lee:
| commit 454b3ce4eda8aae316a34bdd8235b50d3685b410
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Oct 5 16:56:46 2007 +0000
|
| This fixes Class 1 protocol when MaxRecvPages is exceeded.
Aidan Van Dyk [Mon, 26 Nov 2007 14:02:13 +0000 (14:02 +0000)]
Mainpine Class2/2.1 can disable V17
From Lee:
| commit f39f6e7b11a5bc70007c851eb2c904f1a5e2c618
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Oct 4 00:01:52 2007 +0000
|
| these support Class2DisableV17Cmd
Aidan Van Dyk [Mon, 26 Nov 2007 14:01:55 +0000 (14:01 +0000)]
Intel Satisfaxion doesn't support +FRS/+FTS
From Lee:
| commit 8fd647a331fd509ebc26f60c195d65b2d5b35016
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Oct 2 16:52:13 2007 +0000
|
| Christopher Sean Hilton reports that the Intel Satisfaxion modem
doesn't
| support +FRS/+FTS.
Aidan Van Dyk [Mon, 26 Nov 2007 14:01:49 +0000 (14:01 +0000)]
Class1: Attempt to send training at least 3 times
From Lee:
| commit 52769cefcf8f70b9c4c2475e0f2b0e9de6c62e86
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Oct 1 18:14:06 2007 +0000
|
| We need to retry at least a few times... even at 2400 bps.
| commit 098f7daa6e5066ce6fabca1e81c342e8c4866f51
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Sep 18 03:26:53 2007 +0000
|
| This should do it (I think) for all of this previously untested/unrefined
| ECM sync timeout handling.
Aidan Van Dyk [Mon, 26 Nov 2007 14:01:23 +0000 (14:01 +0000)]
Class1: Don't confirm a PPM with no image data
From Lee:
| commit 05dc149d815990c29627dda0efd21990ba2b3e10
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Sep 12 19:03:04 2007 +0000
|
| Enumerate "PPM received with no image data. To continue risks receipt confirmation."
| If the sender resends the same block to us again, just reconfirm and await
| the next block. There seems to have been some off-by-one error in the unexpected
| signal handling portion of this.
| commit ad1e1bdc740284162b022506a16b9cf591976868
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Sep 17 23:17:01 2007 +0000
|
| off by one on this logic
| commit 22e6268893cb193770ceba83a822409eca87bd97
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Oct 5 20:04:18 2007 +0000
|
| Let's try this again....
Aidan Van Dyk [Thu, 1 Nov 2007 20:02:08 +0000 (20:02 +0000)]
Class1: Switching pause only if not doing V.34
Found in:
| commit c3b2ece2929f2382425d6b323b57a19a60d0f6f7
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Oct 3 23:52:10 2007 +0000
|
| add default prototype support for Mainpine IQ modems
Aidan Van Dyk [Thu, 1 Nov 2007 13:54:46 +0000 (13:54 +0000)]
Add default prototype support for Mainpine IQ modems
From Lee:
| commit c3b2ece2929f2382425d6b323b57a19a60d0f6f7
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Oct 3 23:52:10 2007 +0000
|
| add default prototype support for Mainpine IQ modems
Aidan Van Dyk [Wed, 31 Oct 2007 15:52:02 +0000 (15:52 +0000)]
faxmail: use mimeconverters to preprocess/discard mime parts
This adds back in the mimeconverter feature. It is handled slightly
differently yet - individual parts can be processed through mimeconverter
scripts, but their output is still independant and submitted as seperate
documents to HylaFAX.
The mimeconverter is give the filename as it's only argument, and all
output is collected as a new document. The converter can choose to do
whtever it wants with the document, including:
1) "filter" it, and different output that faxmail can submit as a document
2) Suppress it (by not producing any output) so it's not submitted
3) change/subsitute it (by producing any output it wants)
The output of the miemconverter is gathered and submitted as a document
with the Job, as long as it's not empty. The output is *still* a separate
document, and handled through the normal typerules mechanism, so you can
do stuff like "sanitize" html, or "watermark" images, or "choose"
multipart/alternative preferences and still let the normal HylaFAX client
typerules handle any possible needed conversions to PS/PDF/TIFF for the
server submission.
Class1: Be more resiliant handling post-page messages
From Lee's series of commits:
| commit f2402fa4ff48debefd364ca45d06e7afc5136370
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Sep 4 21:00:45 2007 +0000
|
| Some modems will report CONNECT erroniously on high-speed Phase C data.
| Then they will time-out on HDLC data presentation instead of dumping
| garbage or quickly resulting ERROR. So we give instances where CONNECT
| occurs a bit more tolerance here...
and
| commit 675f2a396846fe484cd0fea2375ee2a4ef19da15
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Sep 4 21:06:00 2007 +0000
|
| do it only when wasTimeout()
From Lee:
| commit 89d28398cd4ca1813075b43d67338750006396d1
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Sep 4 19:04:28 2007 +0000
|
| This timer should be T1 and not T2.
Class1: Abort on timeout waiting for carrier drop in ECM
From Lee:
| commit d22b1490d181a6b2afa58becbed2b84bcdab9da7
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Sep 1 01:14:02 2007 +0000
|
| If we have a timeout waiting for the carrier drop then we have to abort
| to get the modem into command mode and abort the fax receive.
From Lee:
| commit da0ec2c14bb934c6806a875bcf9f16635a542640
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 30 20:08:27 2007 +0000
|
| Use switchingPause before sending DCN.
Class1: Handle NO CARRIER result during data transmition
From Lee:
| commit 68cbb0f0c8eb710866377ce45087c72c94014580
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 30 20:00:06 2007 +0000
|
| Handle NO CARRIER result in data transmit.
Class1: Add Class1TCFMinRunECMMod config option to allow higher speeds with ECM
From Lee' commits:
| commit d4dfaeb90a6fbb512d0d05738fb910f67d5c57b0
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Aug 27 19:09:15 2007 +0000
|
| /*
| * When using ECM it may not be wise to fail TCF so easily
| * as retransmissions can compensate for data corruption.
| * For example, if there is a regular disturbance in the
| * audio every second that will cause TCFs to fail, but where
| * the majority of the TCF data is "clean", then it will
| * likely be better to pass TCF more easily at the faster
| * rate rather than letting things slow down where the
| * disturbance will only cause slower retransmissions (and
| * more of them, too).
| */
and
| commit 76d3485e376a854b20ee4ff61d7fffb4c45b790d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Aug 28 16:29:28 2007 +0000
|
| Don't let a divide-by-zero condition happen due to silly configuration.
From Lee:
| commit a5948edf42ea8e6edd1811f85a8a21a1e09c02fc
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Aug 24 23:24:45 2007 +0000
|
| Extend the timeout for the initial ECM frame synchronization.
From Lee:
| commit 10f930e821ae10cdb5b169c5d6047a516a0c6855
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Aug 24 23:10:09 2007 +0000
|
| Handle T.31 protocol properly in this rare circumstance.
Class1: Update lastMCF timer when repeating lastMCF.
From Lee:
| commit 17384aa5efb072e654c3860a6390dbd83f5aa552
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Aug 24 21:25:28 2007 +0000
|
| Update the lastMCF timer if we repeat our MCF.
Add MinAcceptedLineCount to prevent confirming receipt of short pages
From Lee:
| commit 4e1161d2742b07db4b835be31b3999473dc76b82
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Aug 22 23:54:29 2007 +0000
|
| Add MinAcceptedLineCount patch, default to 10, to prevent the receipt confirmation
| of very short fax pages.
|
Add ModemNoAutoAnswerCmdDelay to handle spurious data during initialization
From Lee's commits:
| commit 89d5badd89d8cdd038a508b91c2c86409445a36a
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Aug 21 15:08:18 2007 +0000
|
| Some modems result oddly with ATV1, so don't fail over it.
| commit 4bd681b08e386063abd252e2bd0d8718cffd109f
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 23 17:52:43 2007 +0000
|
| Adds ModemNoAutoAnswerCmdDelay to help flush-out those spurious NO CARRIER
| repsonses following ATS0=0 being reported.
From Lee:
| commit b52dd58869a4008fdbd3dd4c09dfe1a800f42817
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 23 01:35:25 2007 +0000
|
| Handle and echoed CTR message.
From Lee's commits:
| commit b0f50ba093388c949fef29b532dd2984a7a5359f
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Aug 15 00:54:23 2007 +0000
|
| help cope with the echo of FTT or CFR in Class 1 receive
and
| commit d801a297ad70bc58c56374659bc821cb2491c415
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 30 21:17:22 2007 +0000
|
| Another tweak to get it working right.
Eicon: add Call ID pattern defaults in the config templates
From Lee:
| commit 34531c7b8e9096fc247e1cb6463380007f9d9b45
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Aug 15 00:07:39 2007 +0000
|
| Eicon's Caller*ID and DID CallIDPattern entries.
From Lee:
| commit 61ca44d1747a9617df0e64cd130d37d6786b8bed
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Aug 14 02:44:15 2007 +0000
|
| If we get DCN we're done.
Modem: Log NSS, SUB, and PWD signals as we get them.
From Lee:
| commit da237a5af01bdd9756fb934179f27ce5376700d9
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Aug 13 21:57:49 2007 +0000
|
| log SUB, PWD, and NSS
From the series by Lee:
| commit 30742665c14c9e5992394f7d1b8c6e65aeb46740
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 9 16:54:16 2007 +0000
|
| DLE+ETX after dialing is just noise, ignore it
| commit c383d8eb926bfa6949983f5712a41269a1173e05
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Aug 11 22:19:04 2007 +0000
|
| DLE+ETX is detected not as AT_OTHER, but as AT_DLEETX
| commit 71dbd51f0a1a0d88392169210998670e5f665cc3
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Aug 21 20:17:39 2007 +0000
|
| Carol Almquist points finishes off the DLE+ETX-after-ATDT adjustments.
Class1: Stop fast looping while receiving ECM data.
From Lee:
| commit 8da2e1b5597efb7972f58a845f80df8e7f54b5b5
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Aug 11 21:42:36 2007 +0000
|
| Stop fast looping.
From Lee:
| commit f00ae915ed939befdf8938b76989b19d76f97c45
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Aug 4 14:22:38 2007 +0000
|
| handle CRP at Phase C reception
Modem: Handle repeated BUSY in response to commands as error.
From Lee:
| commit ebcf1a661325674bbb0bcd049b0b62d3fbf92ea8
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Aug 3 18:11:03 2007 +0000
|
| <-- ATH0
| --> BUSY
| --> BUSY
| --> BUSY
|
| This can get us stuck in a loop. Treat a BUSY response like other error conditions.
faxgetty: retry answer command if modem doesn't respond
Based on work from Lee:
| commit 1beb05f502f08cc4fb327436140355a0a9d5a29d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 2 20:03:19 2007 +0000
|
| Second, if we do see multiple RINGs after the answer command (i.e. ATA) then
| it means that the modem somehow didn't get the message, and we need to try
| sending the command over again.
|
| Note that there is a risk that between rings the call switched (e.g. the first
| hung up and the second began) and so we could get the wrong CallID information
| on the latter call. Unfortunately, this is an inherant risk in analog
| and analog-simulating environments. Detecting call begins and ends is nearly
| impossible to be completely sure all of the time.
faxgetty: fix units error in ModemAnsweResponseTimeout
From Lee:
| commit 1beb05f502f08cc4fb327436140355a0a9d5a29d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Aug 2 20:03:19 2007 +0000
|
| Basically there were two problems here... first, Sys::now() gives us seconds,
| and conf.answerResponseTimeout is in milliseconds. We can't compare the two
| directly as they're not the same units. Otherwise we'll end up waiting
| through 50 hours of RINGs or whatever other steady stream of responses the
| modem may try to send our way.
Class1: Adjust timing of DCN reception to improve hearing it.
From Lee:
| commit 505e80a4ae8dca3ac1fb040c7a658aa728e7d066
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sun Jul 22 03:51:21 2007 +0000
|
| The document received and fax received syslog notifies would commonly stall
| for a second. That left us with the likelihood that we'd miss hearing DCN.
|
| This just reorganizes the timing of that.
From Lee
| commit 668d547813325248e6c64f1e122560e93a361ceb
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Jul 20 18:14:59 2007 +0000
|
| Antonio Almodovar points out that Eicon recommends initializing with AT+iQ=a1.
From the series of Lee's commits:
| commit 7146de7880370793f3a8fd5a67422eee8be05b76
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Jul 19 19:06:49 2007 +0000
|
| Some modems appear to return ERROR to AT+FRH=3 when the modem is *not* on-hook.
| So to persist through this condition we are setting up the
| Class1HookSensitivity feature which will permit the modem to continue through
| those instances.
|
| I'm only applying it now to the DCS-receive portion now. I'm sure later
| it will get applied to other places where "gotEOT" is handled.
|
| I'm seeing the condition happen with a Zyxel Omni 288S modem when it hears
| persistent CNG after answering and sending prologue:
|
| <-- AT+FRH=3
| (5 seconds or so elapse)
| --> ERROR
|
| This is most likely because the V.21 DSP picks up on the CNG audio, but does
| not issue a CONNECT due to not seeing HDLC. When the CNG audio drops then
| the modem gives ERROR. It probably should not be doing anything of the sort,
| merely waiting until HDLC is detected in a carrier, but if it were to follow
| some interpretations of the T.31 sample sessions, then maybe a NO CARRIER
| result would have been more appropriate than ERROR.
|
| In any case, setting Class1HookSensitivity to some number like 10 should
| prevent the situation from causing the Class 1 driver to give up.
| commit 747ca8412d2b4327dee29c982d55c8889dcad9d3
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Jul 24 22:43:19 2007 +0000
|
| extend Class1HookSensitivity into recvFrame
| commit 5fa1785ea842ebbe169007705fb669e76b7768e9
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Jul 24 22:47:11 2007 +0000
|
| Undo earlier Class1Sensitivity involvement, as our usage in recvFrame
| replaces it.
| commit 0f4aa8eac0ec822825104811a7b912df2478f21d
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Thu Jul 26 15:50:21 2007 +0000
|
| Try again on Class1HookSensitivity...
| commit f174befaa4b730cffae0b3fe01dfdced2cd5ac8b
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Jul 31 16:13:40 2007 +0000
|
| Hrmm... the install path was changed but not the runtime path. Argh.
Class1: Don't repeat DCN if they don't DCN in response to ours
From Lee:
| commit 902f4a22eacdd4c8d81de2b0ae980db5bdeda44e
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Jul 9 22:44:20 2007 +0000
|
| No need to send DCN a bazillion times if they don't DCN in response to ours.
Class 2.0: Implement Phase C debugging and +FDB=1 support for Multitech
From Lee:
| commit cec8c45c447d6b25b3d5c2320e39c69e152958e1
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Jul 6 01:33:43 2007 +0000
|
| This implements support for +FDB=1 Phase C receive debugging for MultiTechs.
|
| There is more to come... send support needs to be done, for example.
and
| commit ab579cecee024ef0ca50e6bc47ed789d9b177848
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Jul 11 00:27:25 2007 +0000
|
| This is the send-portion of the earlier +FDB=1 debugging support work.
|
| This implements ModemDoPhaseCDebug config option which will make HylaFAX
| query the modem during Phase C transmit to check for modem responses. This
| is done at that time so that they can be displayed at roughly the correct
| time in the log, rather than being buffered up for the end.
|
| This is left off by default, although in theory it should be harmless enabled
| all of the time. There is some potential risk if something goes wrong... like,
| say the modem shows NO CARRIER before the DTE signals <DLE><ETX> (i.e. I can
| envision a modem like iaxmodem doing this if there is a premature hangup). And,
| in that case the NO CARRIER response will get taken from the buffer and simply
| logged rather than interpreted... which means that we have some work to do
| in order to make this better... but this should be good for now.
and
| commit bedb9087bb28ce6c58cd77b216b6e89c6b7910ca
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Fri Jul 20 01:44:41 2007 +0000
|
| Final mod to support MultiTech +FDB DCE debugging.
faxaddmodem: Clean up after failure to decude DTE-DCE speed.
From Lee:
| commit daff946a31a13425fde3477c44999807b6f75fc6
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Jun 30 12:54:43 2007 +0000
|
| Clean up if faxaddmodem fails to deduce DTE-DCE speed.
Class1: Imporve handling of DCN in Phase B
From Lee:
| commit c69d7f9043b7a2fcdef37e24227ffb67ced8e938
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Jun 25 17:29:56 2007 +0000
|
| Improves handling of DCN in Phase B, in particular when it's an unexpected
| return to Phase B.
From Lee:
| commit a688967f7bade3f10f88b046cc5c7339d2b42216
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Mon Aug 27 17:29:29 2007 +0000
|
| If it's an EOP then we don't want to go looking for Phase C again.
|
| If we got a CONNECT after AT+FRM=n then we don't want to think that it's
| a quick PPM turnaround thing.
From Lee:
| commit c8d6c001d9ada542742dd7149c5e2b62ad3591c3
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Jun 23 16:59:13 2007 +0000
|
| With everything else that's going on (AT+FRS, AT+FTH) 4 seconds is just too
| short to expect us to get from the previous MCF to here in that time. Test
| cases show that 7 is more reliable.
and
| commit f2d7c15c42d47c11fe94127aca8b69f0b256a337
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Wed Sep 12 19:34:47 2007 +0000
|
| This needs to be just a bit longer.
Add Prototype config support fo ZyXEL Omni56K Plus
From Lee:
| commit 1156916bbeff9d04216fdf396cf6eaa3b9233826
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Jun 23 16:34:16 2007 +0000
|
| Add prototype config support for ZyXEL Omni56K Plus.
| commit 82ece90254d352c6969f28a72130ca252bba3278
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Sat Jun 23 16:14:38 2007 +0000
|
| Craig Haskins points out on hylafax-devel@hylafax.org that EOFB needs to
| take ModemSendFillOrder into consideration.
| commit c8e248aa2da329096e4e549600352cd25fb2aa5a
| Author: Lee Howard <faxguy@howardsilvan.com>
| Date: Tue Jun 19 16:14:05 2007 +0000
|
| Feedback tells us that the Digis have problems sending MMR as well.