Subject: Mgetty+Sendfax with Vgetty Extensions (FAQ) Newsgroups: comp.dcom.fax,comp.dcom.modems,comp.answers,news.answers From: steve@work.bellingham.wa.us (Steven Work) Date: Sun, 6 Nov 1994 14:20:11 GMT Archive-name: fax-faq/mgetty+sendfax+vgetty Last-modified: 20 July 1994 ``mgetty+sendfax'' Answers to Frequently-Asked Questions regarding Gert Doering's Fax-enabled getty replacement, with Klaus Weidner's voice extensions Steven Work steve@work.bellingham.wa.us ------------------------------ Subject: Introduction This document attempts to answer the most frequently asked questions about mgetty+sendfax/vgetty, Gert Doering's fax-enabled getty replacement with Klaus Weidner's voice processing extensions. ------------------------------ Subject: Table of Contents Part I: "Deciding whether to use it" questions What is it? What does it look like when it runs? What do I need to use mgetty+sendfax/vgetty? What other software do I need? What terms cover my use of mgetty+sendfax/vgetty? Where can I get mgetty+sendfax? Part 2: Other questions What image file formats can sendfax send? Why doesn't mgetty accept other file formats besides G3? Why doesn't mgetty use the modem's autoanswer capabilities? Why mgetty ignores /dev/tty* dialin, /dev/cua* dialout conventions: Troubleshooting questions & answers My ZyXEL doesn't work right after a ROM upgrade: What's wrong? Part 3: Compatibility Issues modems.db -- modem compatibility list Suspicious fax machines --------------------------- Subject: Part I: "Deciding whether to use it" questions ------------------------------ Subject: What is it? From: steve@work.bellingham.wa.us (Steve Work) Mgetty+sendfax is a collection of programs to send and receive faxes in a unix environment using a class 2 faxmodem. vgetty is an extension to mgetty, distributed with it, that implements incoming voice call handling for certain voice-capable modems, notably the ZyXEL. More specifically, the program `mgetty' allows you to use a class 2 fax modem for receiving faxes and handling external logins without interfering with outgoing calls. `sendfax' is a standalone program which sends fax files. `vgetty' is an extended version of mgetty that can answer the telephone like an answering machine and record a voice-mail message (if it finds one), or perform `mgetty's fax or data call handling otherwise. The mgetty+sendfax distribution includes vgetty and a good-sized gob of utility programs that help you manage faxes and voice messages. ------------------------------ Subject: What does it look like when it runs? From: steve@work.bellingham.wa.us (Steven Work) and the distribution CC: clewis@ferret.ocunix.on.ca (Chris Lewis) Like a smarter `getty'. getty is the program that manages the first step of the login procedure on a Unix computer; when used with a modem, it watches for an incoming call and (ordinarily) prints the "login:" prompt (and reads the username, and passes off to "login"). Unlike traditional versions of getty or uugetty, which will put a modem into auto-answer mode, mgetty does not. When an incoming call occurs, mgetty sees the "RING"s when they occur. When they do occur, mgetty tells the modem to answer, and the modem will tell mgetty what kind of connection happens. If it is FAX, mgetty will receive the FAX. If data, mgetty prompts for a userid, then hands the open line off to login for a normal data login. Note that it's the modem's job to distinguish a FAX call from a data call. Not all fax modems can do this, and if yours _can't_ there is no way for mgetty to do this for it. mgetty can be used with modems that cannot distinguish a fax call from a data call, but you must tell it ahead of time what type of call to expect. mgetty is also configurable to select programs other than login for special connections (eg: uucico, fido or other programs) depending on the login userid. mgetty also supports caller-id and can deny connections based on originating telephone number. vgetty is an extension to mgetty that works with voice-capable modems to provide additional call-handling capabilities. When the modem reports a RING, vgetty has the modem pick up the line and play a voice message (the greeting). Then, as for mgetty, the modem reports the connection type. If it hears "noises" it can't identify (like your mother's voice) it reports a voice connection and vgetty records the noise as an incoming voice message. If the modem reports that it identifies a fax tone, vgetty acts like mgetty and receives a fax (or answers a poll). If instead the modem hears nothing following the greeting (a certain level of silence that continues for a certain number of seconds) it assumes the caller is a data modem and attempts a data connection. vgetty implements the normal answering-machine functions of remote message playback as well; its operation is driven from shell scripts, so you can extend it to a full voice-mail jail if you wish. (This description of voice modem behavior applies to the ZyXELs; I [steve@work.bellingham.wa.us] assume other voice modems are similar.) vgetty is intended for people who want to share a phone line for data and voice use, with the main focus being voice calls. It is *NOT* intended for a dialup system that occasionally gets a voice call, since some modems are confused by hearing a recorded voice message and won't connect. Note that the voice extensions are maintained by Klaus Weidner (klaus@snarc.greenie.muc.de), so direct questions about them to that address. More from the distribution (some edits): This is what you can do with `sendfax' if you have a standard class 2 fax modem: * send faxes directly or using shell scripts (easily integrated into other applications). * do "fax polling", this means you can call the weather station and get them to send you a fax containing the current weather map. (Not all modem manufacturers implement this feature in their modems!) * create a "fax queue", outgoing faxes get sent automatically, the user is informed by mail about the result. `mgetty' allows you to use a single modem line for receiving calls and dialing out. * `mgetty' knows about "smart" modems, and will make sure that the modem is always in a defined state (specific modem initialization possible) * Incoming calls are answered manually (`RING' -> `ATA' -> `CONNECT') instead of using auto-answer (`ATS0=1'), this way the modem won't pick up the phone when the machine is down or logins are not allowed. * mgetty completely replaces getty and/or uugetty. Like uugetty, supports lock files in a fashion compatible with almost all known versions of UUCP (HDB/BNU, SVR4, V7, Taylor in various flavours). uugetty has some features mgetty doesn't support; see "How does mgetty differ from uugetty?" below. * mgetty supports System V style gettydefs terminal configurations. * mgetty can receive class 2 faxes (if your modem supports it). * mgetty knows about incoming FidoNet calls. * mgetty has extensive logging / debugging features * do "fax poll sending", that is, you can setup your machine as fax poll server, to send some fax pages to "fax poll" callers. (Send informations about your system, the current wheather map, ...). Be warned, even less modems support this feature. * mgetty can selectively refuse calls based upon CallerID, if your modem supports it, and you're subscribed to the service. CallerID is also logged. * mgetty has facilities to allow you to refuse incoming FAXes when available disk space is low. vgetty inherits most of mgettys features, and offers some additional ones: * behaves like a normal answering machine for human callers * automatic fax reception when a T.30 calling tone is detected * If the caller isn't a human or fax, a data connect is attempted, if this is successful, the caller will get a normal login * does not interfere with dialouts * remote playback of messages via a DTMF code * toll saver -- if there are new messages, pick up the phone earlier, this way you can hang up in time to avoid a useless call * message light - the autoanswer LED of your modem (if it has one) is turned on if there are new messages * easy playback - on some modems, you can play back the new messages just by pressing DATA/VOICE * speech synthesizer support - add the date and time to messages (not included by default) * voice conversion utilities - play messages on /dev/audio ------------------------------ Subject: What do I need to use mgetty+sendfax/vgetty? From: steve@work.bellingham.wa.us (Steve Work), and distribution CC: clewis@ferret.ocunix.on.ca (Chris Lewis) Several things. A computer running some (most) variants of the Unix operating system. (The operating system must support termio.h or termios.h; this generally rules out "pure BSD" systems.) For support of dial-in data connections (a la "getty"), you need a modem (probably one somewhat compatable with the H*yes "AT" command set). For sending and receiving faxes, you need a modem that understands the Class 2 (or 2.0) fax command set. For voice processing, you need a modem that is capable of doing voice. The ZyXEL family of modems is fully supported; the Dolphin and Zoom modems are supported less completely. In particular, the voice data format used by the Dolphin and Zoom modems is considered proprietary by Rockwell, the manufacturer of the chipset used in these modems. Gaining access to the internal format of the voice files used and created by the Rockwell-chip voice modems would require signing a non-disclosure agreement, and that in turn would prevent the source code from being freely-distributable. A patch exists that makes it possible for zplay and vgetty to playback and record voice on a Rockwell-based modem. Mgetty has been successfully installed and run on the following systems: SCO Unix 3.2.1 (ODT 1.0) (very well tested) SCO Unix 3.2.4 (ODT 2.0 + 3.0) (very well tested) Linux 0.99pl1 .. 1.0 (very well tested) ISC Unix 3.0 (tested) SVR4 Unix (well tested) AT&T 3B1 3.51m (well tested) HP-UX 8.x (well tested) AIX (mgetty, not vgetty) SunOS 4.1.1 (well tested) NetBSD / FreeBSD (works) BSDI v1.1 (under work, not done -- greg@wwa.com) It should be possible to run mgetty on any other Unix with `termio.h' or `termios.h'. For best results, `select(S)' or `poll(S)' are recommended, but there's a workaround. (Warning: for Unix SVR3.1 or earlier, *do not use poll()*, it will not work on tty devices.) Up to now, it has been successfully used with the following modems (no exhaustive list): ZyXEL U1496 (very well tested. With some ROM versions, one or another function is not working. ROM 6.12 works great) SupraFAX v32bis (tested, works well, no fax polling available, no voice) GVC FM144/+ (tested, works well, no fax polling available, no voice) TKR DM-24VF+ (Deltafax) (tested, works quite well, dunno about polling, no voice) Mgetty *should* work with all class 2 faxmodems. Maybe the DC2 character sent at the beginning of a page by `faxrec.c' must be changed to XON, for old class 2 modems (implementing very old drafts of the standard). Unfortunately, each class 2 modem can be a tiny bit different. Gert says, however: "Most modems worked "more-or-less", found only one that didn't work *at all*. [...] `Class 2.0' is the official standard [and all "class 2.0" modems should work well with mgetty.] The only ``modem difference'' so far is that USR implemented it in a broken fashion, to behave similarily to all the (broken! all of them are!) class 2 modems. ("REVERSE") The rest of this section is a more complete list of modems together with comments and the policy.h settings required to make them work: Modem brand/model: "Dynalink 9624AP" at+fmfr? EXAR at+fmdl? 9648,2,E,290X at+frev? 10, 10, 92 REVISION X 2.0 ati3 ADN-06 ati4 MARROW 2900KSX V2.0B 11-05-1992 tested on: linux 0.99p10 working: sendfax, mgetty(?) remarks: avoid this cheap and nasty modem if you possibly can. It needs: delay(500) at the end of fax_open_device(), sendfax.c line 111 delay(500) after the call to fax_send_page(), sendfax.c line 533 "\d\d\d" in all the AT-commands in init_chat_seq, mgetty.c contributor: a.j.scholl@durham.ac.uk #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "" #define FAX_SET_CSTOPB 1 /* for when you've added this option :-) */ ---------------------------------------------------- Modem brand/model: "Zoltrix Platinum Series 14.4" at+fmfr? ROCKWELL at+fmdl? RC32ACL at+frev? V1.410-AP39 ati3 ati6 RCV144DP; Rev CA tested on: linux 0.99p7 working: mgetty, sendfax remarks: great modem! In my uucp network of 16 machines, this modem averages at 1700 bps, while other brand name modems such as the Trailblazer PEP maxes out at about 1570. contributor: whome!light-house!las@planix.com #define DATA_FLOW FLOW_HARD #define FAX_COMMAND_DELAY 50 #define FAXREC_FLOW FLOW_SOFT #define FAXSEND_FLOW FLOW_SOFT #define FAX_SEND_BAUD B38400 #define FAX_MODEM_HANDSHAKE "&K3" #define MODEM_INIT_STRING "ATS0=0V1Q0&D3&K3%C1W1" ---------------------------------------------------- Modem brand/model: PCMCIA Modem HOTLINE 960 CC HL9672CC AT+FMFR? HOTLINE AT+FMDL? Handy 9672 CC AT+FREV? Version 1.03H ATI3 V1.03DP ATI4 Handy 9672 CC H1_103 AT+FDCC=? (0,1),(0-3),(0-2),(0-2),(0,1),0,0,(0-7) tested on: OS: Linux, Kernel: 1.0, Distribution: Slackware 1.2.0 Computer: Toshiba T4700C Notebook working: sendfax, mgetty contributor: lauther@zfe.siemens.de remarks: can only do 9600 bps #define DEFAULT_PORTSPEED B19200 #define MODEM_INIT_STRING "ATS0=0Q0&D3&K3" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "&K3" ---------------------------------------------------- Modem brand/model: Creatix (1&1) Polimedia 14400 voice / fax modem AT+FMFR? ??? AT+FMDL? ??? AT+FREV? ??? ATI0 14400 ATI1 007 ATI3 V1.400/T4-DS29F ATI4 Creatix Polymedia GmbH V1.41 29/11/93 ATI6 RCV144DPi Rev CA AT+FDCC=? (0,1),(0-5),(0-2),(0-2),(0,1),0,0,(0-7) tested on: ??? working: sendfax, mgetty contributor: andreas@malcolm.in-chemnitz.de #define DEFAULT_PORTSPEED B38400 #define MODEM_INIT_STRING "ATS0=0Q0&D3&K6" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_RECEIVE_USE_B19200 #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "&K6" ---------------------------------------------------- ------------------------------ Subject: What other software do I need? From: clewis@ferret.ocunix.on.ca (Chris Lewis) CC: gert@greenie.muc.de (Gert Doering) For data only, no other software is needed. mgetty itself can only send or receive G3 (raster) format. However, the distribution includes tools to convert raw G3 files to or from the format used by "pbmplus", the Portable Bitmap Toolkit. The pbmplus formats support (or are supported by) most raster-image programs and file formats generally used in the Unix world. pbmplus is available at this URL (among others): ftp:// ?? The mgetty+sendfax distribution contains a patch to fix pbmplus's broken pbmtog3 converter -- using the unpatched pbmtog3 can cause errors during transmission. GhostScript, the free Postscript page description language interpreter, can convert PostScript to G3. Ghostscript is available at this URL (among others): ftp:// ?? Hp2pbm, available from ftp:// ??, can convert text and PCL (HP Laserjet language) to G3 or PBM. It also contains programs for converting PBM to PostScript, PCL and Epson printers. PBMPLUS has converters from most existing raster formats or ASCII to PBM, and from PBM to most raster formats. You'd use the pbmtog3 and g3topbm utilities in mgetty to convert between PBM and G3. In essence, you can run with hp2pbm or PBMPLUS alone. With GhostScript, you also need PBMPLUS or hp2pbm to convert ASCII (used for page headers etc.) to G3. For voice you need no other software, although utilities to convert to and from the ZyXEL voice format can be handy. This is especially true if you have audio output available besides the modem itself. mgetty+sendfax includes some ZyXEL voice processing utilities in the voice/ subdirectory. These can translate ZyXEL voice files to and from Sun-AU (/dev/audio), Soundblaster, some other formats. ------------------------------ Subject: What terms cover my use of mgetty+sendfax/vgetty? >From the distribution: "The mgetty+sendfax package is Copyright (c) 1993 Gert Doering. You are permitted to do anything you want with this program - redistribute it, use parts of the code in your own programs, ..., but you have to give me credit - do not remove my name. "If the program works for you, and you want to honour my efforts, you are invited to donate as much as you want. "If you make money with mgetty, I want a share. What I mean by that is: it's perfectly OK with me to get paid for mgetty installation or support, but if you want to actually sell mgetty, or pack mgetty with a modem and sell it as "unix fax package", contact me first. "*WARNING:* This package is still BETA software. Use it at your own risk, there is *no* warranty. If it erases all the data on your hard disk, damages your hardware, or kills your dog, that is entirely your problem. Anyway, the program works for me and quite a lot of other people." ------------------------------ Subject: Where can I get mgetty+sendfax? The official release sites are these URLs: ftp://sunsite.unc.edu/pub/Linux/system/Serial/mgetty+sendfax* ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/... (or so) You can certainly find them elsewhere. The last time this paragraph was updated, the most recent full release was 0.20. The most recent _test_ release is generally available at this URL: ftp://ftp.informatik.tu-muenchen.de:/tmp/mgetty*.tar.gz ------------------------------ Subject: Part 2: Other questions ------------------------------ Subject: What image file formats can sendfax send? From: gert@greenie.muc.de (Gert Doering) Fax input format: raw G3 data (according to CCITT standard T.4, 1-dimensionally compressed). Can be created by GhostScript's "dfaxhigh" or "dfaxlow" drivers (they will create raw G3 data with a 64 byte header, that sendfax + g3cat + g3topbm will recognize and skip) or by the "pbmtog3" program. Warning: the pbmtog3 program from the "pbmplus" distribution does *not* create valid G3 data according to T.4, to be precise, the lines are shorter than 1728 pixels and the leading EOL code is missing. To fix it, use the patch that is provided in "patches/pbmtog3.p1". Even better, use my own utility. (The patch is *NOT* needed for my pbmtog3 program!). Use of a unpatched pbmtog3 will most likely cause +FHNG:50 or +FHNG:54 error codes. Do not use "tiff-G3" data as input. Though the data itself is G3 encoded, it's wrapped into a very complex layer of TIFF headers that would require non-trivial parsing that's simply not needed for sendfax. Faxing a TIFF file will result in a warning message from sendfax, and, most likely, in a failed transmission... Fax output format: The files that mgetty places into FAX_SPOOL_IN are in the same format as the files that sendfax wants to send, raw G3 data as of CCITT T.4. To convert them to "pbm", use the g3topbm program. To convert them to X-Windows xwd format, use the "contrib/g3toxwd" program. If the files are received without transmission errors, it is possibly to send received fax files without any additional conversion. Since some modems insert filling zero-bits, a run through "g3cat" is recommended anyway, this will remove any surplus stuff, and clean up garbled lines. ------------------------------ Subject: Why doesn't mgetty accept other file formats besides G3? Why does mgetty only send raw G3 fax files, instead of converting arbitrary image files (like TIFF) on the fly? >From Chris Lewis: "As I understand it, in addition to its own formats, TIFF can encapsulate some number of other formats. Put another way, TIFF is, at least to some extent, simply a way of getting magic numbers into other formats so that TIFF-capable converters can handle multiple formats transparently. "Yes, you certainly can have TIFF encapsulate a G3, and mgetty wouldn't have much trouble with that. However, that leaves you with the question - what does mgetty do if it's not a G3 that's been encapsulated? It would have to convert it. And then we would encounter situations where mgetty's conversion speeds couldn't meet the class II FAX transmission timeouts, and you've wasted telephone time... Ditto on reception. Indeed, there is a real possibility that mgetty would not be able to keep up if the input or output file was anything other than a G3. "Approaching this from another viewpoint, we should also remember that mgetty is a transfer protocol and implementation. *Not* conversion software. mgetty needs to read and write G3s, and that's all. Leave conversions to other software." And from Gert Doering: "Well, TIFF is a very complex file format, that can support dozens of different page data encodings, different byte / bit orderings, multiple pages per file, ... -> parsing it is very complex, look at Sam Leffler's TIFF-Library, which is quite huge. "On the contrary, mgetty's "g3" files are raw G3 data. No headers, no formating, no "digging around" in the file to find the actual page data, one page per file, simplest possible. "Not using TIFF simplifies mgetty and sendfax enormously, but doesn't complicate the user interface much, as long as "faxspool" or similar tools are used that will hide the internals, that is, how the fax backend expect its data, from the user. To be precise, to not use TIFF *simplifies* using mgetty, because nearly every Unix program can read pbm and converting g3 -> pbm is very easy, while I haven't seen a good *multipage*-Tiff - to - PBM converter yet." ------------------------------ Subject: Why doesn't mgetty use the modem's autoanswer capabilities? 1. Because it isn't possible to distinguish a fax from a data call if you don't have full modem control. Besides, it will make sure that the modem doesn't answer the phone while the host isn't ready for it. 2. And callerid won't work without extreme difficulty. ------------------------------ Subject: Why mgetty ignores /dev/tty* dialin, /dev/cua* dialout conventions: >From gert@greenie.muc.de (Gert Doering): The two-device scheme is meant to prevent multiple processes from accessing the same physical device at the same time. Since mgetty opens the port with O_NDELAY, the kernel sees a process on tty* (mgetty) and prevents any open() on cua* (uucico, cu, ...). So, you have to use the same device for both program types; under Linux, that's tty*, and under SunOS & Solaris that's cua*. >From rj@rainbow.in-berlin.de (Robert Joop): Under Sun's OS, if the computer is down or /dev/ttya isn't opened, DTR isn't asserted and the modem won't pick up. The kernel lets an open(2) call to /dev/ttya return only when DCD becomes active and cua0 isn't being used. For the reason explained by Gert, mgetty takes over the task of the sun kernel and has to use /dev/cua?. To avoid collisions with dial-out programs, it follows uucp locking conventions. The relevant lines from a Sun /etc/ttytab: #ttya "/usr/etc/getty zyxel.38400" vt100 on # modem line cua0 "/usr/local/bin/vgetty -n 6 -x 9 cua0" vt100 off # modem line This all applies to sunos4/solaris1, sunos5/solaris2 probably differs substantially. ------------------------------ Subject: Troubleshooting questions & answers From: gert@greenie.muc.de Q: I keep getting the error code +FHNG:50 or +FHNG:54 after sending a page. Sometimes it says "page bad, retrain requested" and infinitely resends the page. A: This error means that something went wrong between the two machines, while your end was sending the page data. In the case of +FHNG:50 or +FHNG:54, the other end most likely simply hung up (so your modem couldn't get any page transfer status at all), in the other case, the receiver complained that it didn't like the data on the page. The most common reason for this behaviour is that you used a copy of ``pbmtog3'' that came from the ``pbmplus'' distribution and doesn't have my patch included (Mind you, the pbmtog3 program is required for the page headers that faxspool puts on top of each page!). If that is not the reason, there may be flow control problems, or the line have simply has been very noisy, or so. Get in touch with the receiver, and find out whether the page looks good or whether there are lines missing, others corrupted, ... - if there are errors, check your flow control setting. If there are no errors whatsoever, and you're sure that you use my version of pbmtog3 or a patched version of pbmplus', then I'm out of wits - something's broken in the modem. Maybe you should upgrade your ROM version. Q: When receiving faxes, I get the +FCON message logged, then mgetty says "starting fax receiver". fax_wait_for(OK) is called, logs some random junk bytes, and gives up after a minute, complaining about "timeout". A: Most likely, you have a modem that switches baud rate to 19200 bps right after sending the +FCON message to the host, and the normal port speed is something else. Check policy.h whether FAX_RECEIVE_USE_B19200 is defined, and change the setting (if the modem does *not* change speed, but the define is *set*, the effect will be similar). Q: I keep changing values in policy.h, but nothing changes. A: maybe you've had an older version of mgetty installed to /usr/local/bin/mgetty and are calling this from /etc/init? Newer versions are installed in /usr/local/sbin/mgetty. Check the time stamp on the mgetty you just compiled vs. the mgetty listed in /etc/inittab. Q: Half of the faxes that I receive are too short, they look as if every second pixel line is missing. A: Well, they *are* short: most likely, they are received in normal resolution (204x98 dpi) instead of fine resolution (204x196 dpi). You can see it in the filename, if it starts with "ff*", it's fine, if it starts with "fn*", it's normal resolution. To ``stretch'' a normal resolution fax to proper proportions, use ``g3topbm -stretch fn...'' Q: when upgrading from mgetty 0.19 (or before) to mgetty 0.20, my ``mgetty.login'' configuration file doesn't work anymore. A: Yes, the format has changed. Because of this, and to avoid confusions, I'v renamed the LOGIN_CFG_FILE to ``login.config''. Read the sample file that I provide for explantations how the configuration works. Do not fiddle with the ``uid'' and ``utmp'' fields unless you understand what they're for. Q: login complains with ``no utmp entry, must execute login from the lowest level sh'' A: I *told* you not to fiddle with the ``utmp'' field... - most likely, in your ``login.config'' file, the utmp field for the entry calling /bin/login isn't "-". Another reason could be a faulty /etc/init (hits only Linux users) or a corrupted /etc/utmp file. In that case, reboot your machine. Q: When mgetty is running and I dial out, I do not get "CONNECT" but only junk, as "+FCO", "+FTI:", "+FHS:20" A: Well, yes, that's a problem with the 2.0 implementation in mgetty. That is: while mgetty is running, the modem is in "AT+FCLASS=2.0" mode and expects to connect to a fax on the remote side. (With class 2, we worked around this by setting +FCLASS=0;+FAA=1, but that will make the modem answer in class 2, not 2.0 [subject to further testing!]) Solution: in the program dialing out, initialize the modem with "AT+FCLASS=0". Most likely, a modem reset (ATZ) will also help. Q: vgetty and zplay don't work, I can't record or play back messages. I'm using mgetty 0.20 and ZyXEL 6.10 ROMs, the log file shows that `+VIT=60' produces `no carrier'. A: (Klaus Weidner, klaus@snarc.greenie.muc.de): My fault, I'm sorry. `+VIT=60' is only supported by ROMs >=6.11. Please remove it from the two places it occurs in voclib.c, or get the latest test release from ftp.informatik.tu-muenchen.de:/tmp, or get 6.12 ROMs. Q: every time mgetty starts up, the permissions of my tty device get changed and I have to issue "chmod +w /dev/ttySx" to be able to dial out. A: that's not a bug, that's a feature. You don't *want* to allow anybody using your machine to be able to dial out (think of your phone costs!), so it's a security issue. If you *want* to allow dialout for everyone, #define FILE_MODE 0666 in policy.h. I would not recommend it, I would give access to a special group, and put every one that may dial out into this group. ------------------------------ Subject: My ZyXEL doesn't work right after a ROM upgrade: What's wrong? From: felix@escape.vsse.in-berlin.de Do a full modem reset after upgrading the firmware. This is not described in the German ZyXEL manual (is it described in the English one?) but should be done in any case. ------------------------------ Subject: Part 3: Compatibility Issues ------------------------------ Subject: modems.db -- modem compatibility list From: gert@greenie.muc.de OK, here's the current (22 June 1994) modems.db: ---------------------------------------------------- Modem brand/model: "Dynalink 9624AP" at+fmfr? EXAR at+fmdl? 9648,2,E,290X at+frev? 10, 10, 92 REVISION X 2.0 ati3 ADN-06 ati4 MARROW 2900KSX V2.0B 11-05-1992 tested on: linux 0.99p10 working: sendfax, mgetty(?) remarks: avoid this cheap and nasty modem if you possibly can. It needs: delay(500) at the end of fax_open_device(), sendfax.c line 111 delay(500) after the call to fax_send_page(), sendfax.c line 533 "\d\d\d" in all the AT-commands in init_chat_seq, mgetty.c contributor: a.j.scholl@durham.ac.uk #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "" #define FAX_SET_CSTOPB 1 /* for when you've added this option :-) */ ---------------------------------------------------- Modem brand/model: "Zoltrix Platinum Series 14.4" at+fmfr? ROCKWELL at+fmdl? RC32ACL at+frev? V1.410-AP39 ati3 ati6 RCV144DP; Rev CA tested on: linux 0.99p7 working: mgetty, sendfax remarks: great modem! In my uucp network of 16 machines, this modem averages at 1700 bps, while other brand name modems such as the Trailblazer PEP maxes out at about 1570. contributor: whome!light-house!las@planix.com #define DATA_FLOW FLOW_HARD #define FAX_COMMAND_DELAY 50 #define FAXREC_FLOW FLOW_SOFT #define FAXSEND_FLOW FLOW_SOFT #define FAX_SEND_BAUD B38400 #define FAX_MODEM_HANDSHAKE "&K3" #define MODEM_INIT_STRING "ATS0=0V1Q0&D3&K3%C1W1" ---------------------------------------------------- Modem brand/model: PCMCIA Modem HOTLINE 960 CC HL9672CC AT+FMFR? HOTLINE AT+FMDL? Handy 9672 CC AT+FREV? Version 1.03H ATI3 V1.03DP ATI4 Handy 9672 CC H1_103 AT+FDCC=? (0,1),(0-3),(0-2),(0-2),(0,1),0,0,(0-7) tested on: OS: Linux, Kernel: 1.0, Distribution: Slackware 1.2.0 Computer: Toshiba T4700C Notebook working: sendfax, mgetty contributor: lauther@zfe.siemens.de remarks: can only do 9600 bps #define DEFAULT_PORTSPEED B19200 #define MODEM_INIT_STRING "ATS0=0Q0&D3&K3" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "&K3" ---------------------------------------------------- Modem brand/model: Creatix (1&1) Polimedia 14400 voice / fax modem AT+FMFR? ??? AT+FMDL? ??? AT+FREV? ??? ATI0 14400 ATI1 007 ATI3 V1.400/T4-DS29F ATI4 Creatix Polymedia GmbH V1.41 29/11/93 ATI6 RCV144DPi Rev CA AT+FDCC=? (0,1),(0-5),(0-2),(0-2),(0,1),0,0,(0-7) tested on: ??? working: sendfax, mgetty contributor: andreas@malcolm.in-chemnitz.de #define DEFAULT_PORTSPEED B38400 #define MODEM_INIT_STRING "ATS0=0Q0&D3&K6" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_RECEIVE_USE_B19200 #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "&K6" ---------------------------------------------------- Modem brand/model: Practical Peripherals PM14400FXMT at+fmfr? 2.42 (c) Practical Peripherals Inc. 1993. at+fmdl? PM14400FMXT [6R4] 2.42 at+frev? Version 2.42 ati3 PM14400FMXT [6R4] Version 2.42 (c) Practical Peripherals Inc. 1993. ati4 a097840F284C6703F bC60004000 r1001111171012000 r3000111010000000 tested on: Linux 1.0 (Slackware 1.2.0) working: sendfax, mgetty remarks: Good modem; can handle ALL incoming data calls at all speeds, plus *MOST* incoming FAXes (some paper machines give +FHNG:100 @ 2400 baud). Good manual, but (like others, no +F commands listed. My guess is about 75% Class 2 commands implemented. contributor: paul@edgewood.portland.or.us #define DEFAULT_PORTSPEED B38400 /* 57600 w/ 'setserial spd_hi' */ #define FAX_RECEIVE_USE_19200 #define FAX_SEND_BAUD B19200 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_MODEM_HANDSHAKE "" #define MODEM_INIT_STRING "\\dATM0S0=0Q0&C1&D2&K3&Q5" --------------------------------------------------- Modem brand/model: "ZyXEL 1496 E+" at+fmfr? ZyXEL at+fmdl? U1496E V 6.12 P at+frev? U1496E V 6.12 P ati 1496 tested on: DEC OSF/1 v1.2-hybrid SCO Unix ODT 3.0 Linux (various) working: sendfax, mgetty, vgetty contributor: Marc@Synergytics.Com #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_SEND_BAUD B38400 #define FAX_MODEM_HANDSHAKE "&H3" #define MODEM_INIT_STRING "ATS0=0Q0&D3&H3&N0&K4" --------------------------------------------------- Modem brand/model: ZyXEL U1496EG+ AT+FMFR? ZyXEL AT+FMDL? U1496EG V 6.12 P AT+FREV? U1496EG V 6.12 P ATI3 (OK) ATI4 (OK) AT+FDCC=? (0,1),(0-5),(0-2),(0-2),(0-1),(0),(0),(0-7) tested on: AIX 3.2.5 working: sendfax, mgetty (both 0.20) contributor: hm@ix.de remarks: #define DEFAULT_PORTSPEED B38400 #define MODEM_INIT_STRING "ATL0S0=0Q0&D3&H3&N0&K4" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_SOFT #define FAX_SEND_BAUD B38400 #define FAX_MODEM_HANDSHAKE "&K3" --------------------------------------------------- Modem brand/model: GVC GM-144VBIS+ AT+FMFR? EXAR AT+FMDL? 9648,2,E,290X AT+FREV? GM-144VBIS+; RC9696/14 ATI3 170 ATI4 GM-144VBIS+; RC9696/14 AT+FDCC=? (0-1),(0-3),(0-3),(0-2),(0-2),(0),(0),(0-7) tested on: AIX 3.2.5 working: mgetty-0.20 contributor: hm@ix.de remarks: (sendfax is not tested and not intended to) #define DEFAULT_PORTSPEED B38400 #define MODEM_INIT_STRING "ATL0S0=0Q0&D3\\\\Q3&S0%C\\\\N6" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_SOFT #define FAX_SEND_BAUD B38400 #define FAX_MODEM_HANDSHAKE "\\\\Q3&S0" ---------------------------------------------------- Modem brand/model: "Aceex 1496" at+fmfr? EXAR at+fmdl? 9624,2,E,290E at+frev? Sep-24-1991 ati3 ati6 V.110 APR-30-1993 (ROCKWELL CHIP SET) DM1414/2A/RC144DP-21/PCB:490-09636-xx BZT POSTZULASSUNG-FIRMWARE VERSION:V.105 tested on: SVR4.2 (UnixWare 1.1.1) working: mgetty, sendfax remarks: fax send / receive with max. 19200 bd This german telekom approved modem doesn't allow ATA without an incoming call (real RING). So kill -USR1 doesn't work. contributor: 100272.3376@compuserve.com (Achim Buerger) #define DATA_FLOW FLOW_HARD #define FAX_COMMAND_DELAY 50 #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define DEFAULT_PORTSPEED B19200 #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "\\Q3&S0" #define MODEM_INIT_STRING "ATS0=0Q0&D3\\\\Q3%C1&N0&K3" ---------------------------------------------------- Modem brand/model: "Dago Speed" from Speedy Technology, Koenigstein at+fmfr? ROCKWELL at+fmdl? RC32AC-W at+frev? V1.15 ati3 V1.15 ati4 RC144DP tested on: linux 0.99p15, 486DX50, UART 16550A mgetty version: 0.21 working: sendfax, mgetty remarks: sendfax: works perfectly (about 50 multi-page faxes sent without problems) mgetty: my Dago does not always recognize fax calls correctly, especially from some fax machines, but fax calls from a Creatix modem are *almost* always recognized correctly. When a fax call is recognized correctly, mgetty has no problems. Defining FAX_RECEIVE_USE_B19200 is necessary with my modem version. Data calls are always recognized correctly (tested with Creatix and Zyxel). contributor: schaefer@dfki.uni-sb.de (Ulrich Schaefer) #define DEFAULT_PORTSPEED B38400 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD #define FAXSEND_FLOW FLOW_HARD #define DO_CHAT_SEND_DELAY 100 #define FAX_COMMAND_DELAY 100 #define FAX_RECEIVE_USE_B19200 #define FAX_SEND_BAUD B38400 #define FAX_MODEM_HANDSHAKE "&K3" #define MODEM_INIT_STRING "ATS0=0V1Q0&D3&K3" mgetty.c: int toggle_dtr_waittime = 2000; /* otherwise reset may fail */ ----------------------------------------------------------------------- Modem: SupraFax v.32bis System Decstation 5000/200 OS: Ultrix V4.2 (Rev. 96) #define DEFAULT_PORTSPEED B38400 #define MODEM_INIT_STRING "AT&F2M0L0S0=0V1Q0&D3&K3%C1W1" #define DEFAULT_MODEMTYPE "auto" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_SOFT #define FAXSEND_FLOW FLOW_SOFT #define FAX_RECEIVE_USE_B19200 #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "&K4" #define FAX_SEND_IGNORE_CARRIER at+fmfr? ROCKWELL at+fmdl? V.32AC at+frev? V1.71-02 TR14-Jxxx-001 ati3 V1.71-02 TR14-Jxxx-001 225 ati5 (c) 1992,93 Supra Corporation ----------------------------------------------------------------------- Modem brand/model: Holmes Fax'em 96/24 AT+FMFR? EXAR AT+FMDL? 9648,2,E,290X AT+FREV? 9/30/91 9.10 E + V.23 REVISION 2.1D3 ATI3 9/30/91 9.10 E + V.23 REVISION 2.1D3 ATI4 9/30/91 9.10 E + V.23 REVISION 2.1D3 AT+FDCC=? (0,1),(0-3),(0-3),(0-2),(0-2),(0),(0),(0-7) tested on: OS: Linux, Kernel: 0.99pl13, Distribution: Slackware 1.1.2 Computer: Compaq LTE Lite/25c Notebook remarks: introduce additional delays as mentioned in the mgetty-documentation working: sendfax, mgetty contributor: lauther@zfe.siemens.de #define DEFAULT_PORTSPEED B19200 #define MODEM_INIT_STRING "ATS0=0Q0&D3&H3&N0&K4" #define MODEM_CMD_SUFFIX "\r" #define DO_CHAT_SEND_DELAY 50 #define FAX_COMMAND_DELAY 50 #define DATA_FLOW FLOW_HARD #define FAXREC_FLOW FLOW_HARD | FLOW_SOFT #define FAXSEND_FLOW FLOW_HARD | FLOW_SOFT #define FAX_SEND_BAUD B19200 #define FAX_MODEM_HANDSHAKE "" ----------------------------------------------------------------------- ------------------------------ Subject: Suspicious fax machines From: hm@ix.de (Harald Milz) I'm collecting all data concerning suspective fax machines, i.e. those which made problems in cooperating with sendfax. The main reason is to find out whether there are specific fax machines that refuse to work with sendfax and/or your fax modem. As a goal, we will be able to track down the bug(s). To contribute, please fill in the following template and send it to me (hm@ix.de): 1. 2. (optional) 3. 4. # tbd from ATI1 5. # tbd from Faxlog 6. # tbd from Faxlog 7. If you encounter problems with a fax machine, please call the receiving party and ask them for their fax machine's brand & model and if they are willing to offer their machine for some (limited) testing. The more exact your data is (the first 3 entries aren't too good :-} ), the better the result will be, hopefully. This list is posted once a month (automatically) and if five new entries were added to it (manually). Thank you much. hm --------------------------------- snip --------------------------------- Here's what's already in the list: 1. Panasonic Panafax UF311 2. +49 89 74824899 3. ZyXEL U1496EG+ 4. U1496EG V 6.10g P 5. +FDCS:1,3,0,2,0,0,0,4 6. +FHNG:50 (Unspecified Transmit Phase D error) 7. when sending 15 pg, connection broke after 6 pg. 1. NEC Nefax 17 2. +49 2242 82114 3. ZyXEL U1496EG+ 4. U1496EG V 6.10g P 5. +FDCS:1,3,0,2,1,0,0,4 6. +FHNG:50 (Unspecified Transmit Phase D error) 7. machine didn't refuse when sending only 3 pages earlier. This time, 15 pg were sent. 1. Telekom AF-310 2. +49 7231 560851 3. ZyXEL U1496 E / 6.10a, E+ / 6.01, E+ / 6.11a 4. 5. +FDCS:1,3,0,2,0,0,0,4 6. +FTPS:2 -> page bad, retrain requested 7. sendfax hangs up after three tries. received fax shows black and white boxes at the footer, such as, ### ### ### ### ### ### ### ### ### ### ... ### ### ### ### ### -- Chris Lewis: _Una confibula non sat est_ Phone: Canada 613 832-0541 Ferret list: ferret-request@ferret.ocunix.on.ca Latest psroff: FTP://ftp.uunet.ca/distrib/chris_lewis/psroff3.0pl17/* Latest hp2pbm: FTP://ftp.uunet.ca/distrib/chris_lewis/hp2pbm/*