First of all, yes, ZyXELs tend to somewhat non-deterministic behaviour -
most modems work perfectly with
mgetty+sendfax, a few don’t, and I
do not always find out what’s wrong.
If it works first, and then suddenly stops working, it does quite often help do to a full modem reset, that is, switch it off, press the DATA/VOICE key, switch it on again and hold the key for about 20 Seconds. (That’s for the 1496E and E+, for other models, it works differently, check you manual). That cured the problems in many cases.
The same holds true after a firmware change: always do a full modem reset in case you change the ROM version!
Do not use non-plus ZyXELs (the “slower” ones) for faxing with DTE speeds above 38400 bps, I got a report that it won’t work.
Do not use the
S18 register, set it to 0. Its purpose is for dumb
getty programs where the modem has to change its baud rate back to a
certain value if some other program has modified it. Since
will reinitialize the modem anyway if another program has dialed out, the
S18 register cannot improve anything, it can only harm (e.g., if it
is set to
3, the modem will send any
RING with 19200 bps —
imagine what happens if
mgetty sets the port to 38400 …)
If you want to use Caller ID (and have subscribed to it), add S40.2=1 to the modem initialization string [For the ZyXEL 2864, this might be S84.4=0, but check with your modem manual!].
Warning: If you use a very old ZyXEL and try to send some complex graphics (the “tiger.ps” example file in the GhostScript package is known to produce this), it may lock up. This is because the old ZyXEL firmware had lots of bugs concerning hardware flow control—sometimes the ZyXEL just forgot to raise CTS when it can accept data again. The symptoms are that the transmission hangs, no modem LEDs are flashing any more, the logfile won’t grow any more and the receiving machines hangs up after printing a partial page.
This bug has been fixed in ROM release 6.01, so you should consider upgrading your eproms if you run into this. With ROM release 6.01 and 6.11a, it works correctly (a hundred-odd faxes sent without problems).
Rom releases I’ve never been able to make
sendfax work reliably are
6.00 and 6.10 (6.10a works), and various 5.0x releases.
Fax polling (both server and client side) is broken in ROM 6.11a.
The very latest ROM releases, 6.12, 6.13 and 6.15, work perfectly in every possible aspect. I tried fax sending, receiving, polling, data calls, … - and everything simply works!
The latest ZyXEL roms can normally be found on ftp.zyxel.com, in /pub/other/zyxel/r*.
Some models, seemingly only the ‘EG+’ (german telekom approved),
toggle the DCD line during the pre-page handshake, thus causing
sendfax to abort (with a “I/O error” during read/write
operations). You can work around this by defining
ignore-carrier true in sendfax.config.
ZyXEL modems can do security callback (
i > 0).
With ROM releases up to 6.11a, this doesn’t interact very well with
mgetty. If you want to use it anyway, send me a note and I’ll describe
what to change (but be warned, mgetty operation will become somewhat
unreliable by those changes!). With 6.12, it works very good.
Oh, one additional note: ZyXELs can do voice recording and playback. Klaus Weidner and Marc Eberhard have written voice handling tools, to turn your modem into a sophisticated answering machine. Yo can finde this tools in the voice subdirectory. (NOTE: In version 1.0, I haven’t included the stuff, because the docs are heavily lacking and Marc thinks it’s not ready yet. Get 0.99 or 1.1-betas to play with voice).
Josef Wolf (email@example.com) has added some comments about the ZyXEL Eproms (I don’t know whether it’s true or not, ask him or firstname.lastname@example.org):
Most EPROMs require /PGM and Vpp to be Vcc while in ROM-Mode. On ZyXELs these two pins are removed in the socket so the pins are _floating_. This treatment is out of spec for any EPROM. The TI-Types originally used by ZyXEL seem to tolarate this treatment. But most other EPROMS won’t work properly. There are two solutions to this problem:
1.) use the types which zyxel used. (could be troublesome to find some)
2.) take two sockets, solder jumpers between pins 1, 31 and 32 (these are /PGM, Vpp and Vcc) and place them into the original sockets before inserting the EPROMs.
NEWS: ZyXEL has a new modem line out in the market, the ZyXEL COMET 336 modem. This is a fairly standard Rockwell-based junk modem. It can’t do class 2 or class 2.0 fax. Don’t buy it.