diff options
Diffstat (limited to 'comms')
-rw-r--r-- | comms/mgetty+sendfax/Makefile | 5 | ||||
-rw-r--r-- | comms/mgetty+sendfax/pkg-comment | 1 | ||||
-rw-r--r-- | comms/mgetty+sendfax/pkg-descr | 10 | ||||
-rw-r--r-- | comms/mgetty+sendfax/pkg-plist | 41 | ||||
-rw-r--r-- | comms/mgetty+sendfax/scripts/configure | 373 |
5 files changed, 430 insertions, 0 deletions
diff --git a/comms/mgetty+sendfax/Makefile b/comms/mgetty+sendfax/Makefile new file mode 100644 index 000000000000..ccc23cfb2cfd --- /dev/null +++ b/comms/mgetty+sendfax/Makefile @@ -0,0 +1,5 @@ +DISTNAME= mgetty-0.21 +DISTFILES= mgetty021-Aug21.tar.gz +MASTER_SITES= ftp://hpsystem2.informatik.tu-muenchen.de:/pub/comp/networking/communication/modem/mgetty/ +MAKE_FLAGS= FAX_SPOOL=/var/spool/fax +.include <bsd.port.mk> diff --git a/comms/mgetty+sendfax/pkg-comment b/comms/mgetty+sendfax/pkg-comment new file mode 100644 index 000000000000..30dca611f590 --- /dev/null +++ b/comms/mgetty+sendfax/pkg-comment @@ -0,0 +1 @@ +mgetty+sendfax version 0.21 - handle external logins, send and receive faxes diff --git a/comms/mgetty+sendfax/pkg-descr b/comms/mgetty+sendfax/pkg-descr new file mode 100644 index 000000000000..875438a23762 --- /dev/null +++ b/comms/mgetty+sendfax/pkg-descr @@ -0,0 +1,10 @@ +Mgetty is a ``smart'' getty replacement, designed to be used with hayes +compatible data and data/fax modems. +Mgetty knows about modem initialization, manual modem answering (so your +modem doesn't answer if the machine isn't ready), UUCP locking (so you can +use the same device for dial-in and dial-out). +Mgetty provides very extensive logging facilities. + +Sendfax send the named g3 fax files to the fax machine at "phone number". +The g3 files can be created with pbmtog3(1) or GNU's GhostScript with the +"digifax" driver. diff --git a/comms/mgetty+sendfax/pkg-plist b/comms/mgetty+sendfax/pkg-plist new file mode 100644 index 000000000000..77824a1509cd --- /dev/null +++ b/comms/mgetty+sendfax/pkg-plist @@ -0,0 +1,41 @@ +@cd /usr/local +@owner bin +@group bin +bin/faxspool +bin/faxq +bin/faxrm +bin/g3topbm +bin/pbmtog3 +bin/g3cat +@mode 700 +bin/faxrunq +sbin/mgetty +sbin/sendfax +@owner root +@mode 600 +lib/mgetty+sendfax/dialin.config +lib/mgetty+sendfax/login.config +@owner bin +@mode 644 +lib/mgetty+sendfax/faxheader +lib/mgetty+sendfax/cour24i.pbm +man/man1/g3topbm.1 +man/man1/pbmtog3.1 +man/man1/g3cat.1 +man/man1/faxspool.1 +man/man1/faxrunq.1 +man/man1/faxq.1 +man/man1/faxrm.1 +man/man4/mgettydefs.4 +man/man5/faxqueue.5 +man/man8/sendfax.8 +man/man8/mgetty.8 +info/mgetty.info +info/mgetty.info-1 +info/mgetty.info-2 +info/mgetty.info-3 +@cd /var/spool +@exec mkdir -p %D/fax/incoming +@exec mkdir -p %D/fax/outging +@exec chmod -R 775 %D/fax +@unexec rm -r %D/fax diff --git a/comms/mgetty+sendfax/scripts/configure b/comms/mgetty+sendfax/scripts/configure new file mode 100644 index 000000000000..801eb311c938 --- /dev/null +++ b/comms/mgetty+sendfax/scripts/configure @@ -0,0 +1,373 @@ +#!/bin/sh + + +H=$3/policy.h +trap "rm -f $H; exit 1" 1 2 3 +cp $3/policy.h-dist $H || exit 1 + + +ww () { + echo "#undef $1" >>$H + echo "#define $1 $2" >>$H +} +wq () { + echo -n "$1 [$2] " + read answ; if [ "$answ" = "" ]; then answ=$2; fi + ww $3 "\"$answ\"" + echo "---------------------------------------------------------------------" ; echo +} +wd () { + echo -n "$1 [$2] " + read answ; if [ "$answ" = "" ]; then answ=$2; fi + ww $3 "$answ" + echo "---------------------------------------------------------------------" ; echo +} +wb () { + echo -n "$1 [$2] " + read answ; if [ "$answ" = "" ]; then answ=$2; fi + ww $3 $4$answ + echo "---------------------------------------------------------------------" ; echo +} +wa () { + echo -n "$1 [$2] " + read answ; if [ "$answ" = "" ]; then answ=$2; fi + if [ $answ = "y" ]; then + echo "#define $3 $4" >>$H + fi + echo "---------------------------------------------------------------------" ; echo +} +wn () { + echo -n "$1 " + read answ; if [ "$answ" != "" ]; then + echo "#define $2 \""$answ"\"" >>$H + fi + echo "---------------------------------------------------------------------" ; echo +} + + + +cat <<END + + + login dispatcher config file + + In this file, you can configure which "login" program (default /bin/login) + to call for what user name. + + You could use it to call "uucico" for all users starting with "U*" + (works only with Taylor UUCP 1.04 with my patch), or to call a fido + mailer for fido calls (only if -DFIDO defined)... + See the samples in the example mgetty.login file. + + WARNING: make sure that this file isn't world-accessable (SECURITY!) + + If you want to call /bin/login in any case, do not define this +END +wn "config file:" LOGIN_CFG_FILE + +ww DEFAULT_LOGIN_PROGRAM \"/usr/bin/login\" + + +cat <<END + user id of the "uucp" user. The tty device will be owned by this user, + so parallel dial-out of uucico will be possible +END +wq "uucp user:" uucp UUCPID + +cat <<END + access mode for the line while getty has it - it should be accessible + by uucp / uucp, but not by others (imagine someone dialing into your + system and using another modem to dial to another country...) +END +wd "access mode:" 0660 FILE_MODE + +cat <<END + Name of the mgetty log file + e.g. "/usr/spool/log/mgetty.log.%s" + a "%s" will be replaced by the device name, e.g. "tty2a" +END +wq "log file:" /tmp/log_mg.%s LOG_PATH + +cat <<END + Default log error level threshold. Possible error levels are + L_FATAL, L_ERROR, L_WARN, L_AUDIT, L_MESG, L_NOISE, L_JUNK (see mgetty.h) +END +wd level: L_MESG LOG_LEVEL + +cat <<END + System administrator - if a severe error happens (lprintf called + with log_level L_FATAL) and writing to CONSOLE is not possible, + the logfile will be mailed to him +END +wq "system administrator:" root ADMIN + +cat <<END + Syslog + + If you want logging messages of type L_AUDIT, L_ERROR and L_FATAL + to go to the "syslog", define this. + mgetty will use the facility "LOG_AUTH", and the priorities + LOG_NOTICE, LOG_ERR and LOG_ALERT, respectively. +END +wa "do you want logging messages?" n SYSLOG "" + +cat <<END + System name - printed at login prompt + If you do not define this, the uname() call will be used +END +wn "system name:" SYSTEM + +cat <<END + Login prompt + The "@", "\\D" and "\\T" escapes will be replaced by SYSTEM, the + current date and time, respectively. + override with "-p <prompt>" switch +END +wq "login prompt:" "@!login: " LOGIN_PROMPT + +cat <<END + Maximum time before login name has to be entered (in seconds) + (after that time a warning will be issued, after that, the call is + dropped). +END +wd "max login time:" 240 MAX_LOGIN_TIME + +cat <<END + nologin file + + If that file exists, a ringing phone won't be answered (see manual). + "%s" will be replaced by the device name. +END +wq "login file:" /etc/nologin.%s NOLOGIN_FILE + +ww LOCK \"/usr/spool/lock/LCK..%s\" + +cat <<END + Set this to "1" if your system uses binary lock files (i.e., the pid + as four byte integer in host byte order written to the lock file) + If it is "0", HDB locking will be used - the PID will be written as + 10 byte ascii, with a trailing newline + (Just check "LOCK" while uucico or pcomm or ... are running to find + out what lock files are used on your system) +END +wd "blocks binary:" 0 LOCKS_BINARY + +cat <<END + the default speed used by mgetty - override it with "-s <speed>" + + WARNING: ZyXELs *can* do faxreceive with 38400, but a lot other modems, + especially such based on the rockwell chipset can *not*. So, if + your fax receive fails mysteriously, timing out waiting for "OK", try + setting this to 19200 +END + +wb speed: 38400 DEFAULT_PORTSPEED B + +cat <<END + the modem initialization string + + this sample string is for ZyXELs, for other modems you'll have to + replace &H3 (rts/cts flow control), &K4 (enable v42bis) and &N0 + (answer with all known protocols). + For instructions how to setup various other modems, look into + mgetty.texi ("modems" section) and check your modem manual + For some modems, an initial "\d" is needed. + If you need a "\" in the modem command, give it as "\\\\". + If you wish to use ZyXEL callerid, add "S40.2=1" + The modem must answer with "OK" (!!!) - otherwise, change mgetty.c +END +wq "initialization string:" "ATS0=0Q0&D3&H3&N0&K4" MODEM_INIT_STRING + +cat <<END + command termination string + + for most modems, terminating the AT... command with "\r" is + sufficient and "\r\n" also works without doing harm. + Unfortunately, for the Courier HST, you've to use *only* \r, + otherwise ATA won't work (immediate NO CARRIER), and for some + ZyXELs, you have to use \r\n (no OK otherwise). + So, try one, and if it doesn't work, try the other. +END +wq "suffix:" "\r" MODEM_CMD_SUFFIX + +cat <<END + "keep alive" + + mgetty can periodically check whether the modem is still alive + by issueing an "AT\r" command and checking for the "OK" + Define here, in seconds, how often mgetty should check. For normal + reliable modems, once an hour should be sufficient... + If you use "-1", mgetty won't check. +END +wd "check time" 3600 MODEM_CHECK_TIME + + +cat <<END + modem mode + + specify the default way mgetty+sendfax handle a faxmodem. + You have four choices: + "data" - data only, no faxing available (for sendfax, equal to "auto") + "cls2" - use AT+FCLASS=2 + "c2.0" - use AT+FCLASS=2.0 + "auto" - try "2.0", then "2", then fall to "data". + + Normally, you can leave this to "auto", but if you have a modem that + can do class 2.0 and class 2, and 2.0 doesn't work, then you could try + setting it to "cls2". + You can override this define with the "-C <mode>" switch. +END +wq "modem mode:" auto DEFAULT_MODEMTYPE + + +cat <<END + some modems are a little bit slow - after sending a response (OK) + to the host, it will take some time before they can accept the next + command - specify the amount needed in data mode here (in + milliseconds). Normally, 50 ms should be sufficient. (On a slow + machine it may even work without any delay at all) + + Be warned: if your machine isn't able to sleep for less than one + second, this may cause problems. + and this is the delay before sending each command while in fax mode +END +wd delay: 50 DO_CHAT_SEND_DELAY + +cat <<END + incoming faxes will be chmod()ed to this mode + (if you do not define this, the file mode will be controlled by + mgetty's umask) +END +wd "fax file mode:" 0660 FAX_FILE_MODE + +cat <<END + if your faxmodem switches to 19200 bps just after sending the "+FCON" + message to the host, define this. (Not important if you have the + portspeed set to 19200 anyway). + Some Tornado and Supra modems are know to do this. + ZyXELs do *not* do this, except if explicitely told to do so. + + You can see if this happens if mgetty gets the "+FCON" response, + starts the fax receiver, and times out waiting for OK, receiving + nothing or just junk. +END +wa "do your faxmodem switches to 19200?" n FAX_RECEIVE_USE_B19200 + +wa "do you have a US Robotics?" n FAX_USRobotics "" + +cat <<END +local station ID + + 20 character string, most faxmodem allow all ascii characters 32..127, + but some do only allow digits and blank + AT+FLID=? should tell you what's allowed and what not. +END +wq "station id:" "00 00 0000000" FAX_STATION_ID + +cat <<END + ------ sendfax-specific stuff follows here -------- + --------------------------------------------------- + + the baudrate used for *sending* faxes. ZyXELs can handle 38400, + SUPRAs (and other rockwell-based faxmodems) do not + I recommend 38400, since 19200 may be to slow for 14400 bps faxmodems! +END +wb "baud rate:" 38400 FAX_SEND_BAUD B + +cat <<END + switch baud rate after +FCLASS=2 + + some weird modems require that you initialize the modem with one + baud rate (e.g. 2400 or 9600 for cheap 2400+fax modems, or "smart" + modems that insist on staying locked to 38400 (ELSA!)), but switch + to another baud rate, typically 19200, immediately after receiving + the "AT+FCLASS=2" command. + + If the following is defined, sendfax will switch to the speed given + here after sending AT+FCLASS=2. + + Only try fiddling with this if sendfax times out during modem + initialization, receiving junk instead of "OK" or "ERROR" (logfile!) +END +wa "switch to 19200?" n FAX_SEND_SWITCHBD B19200 + +cat <<END +this is the command to set the modem to use the desired flow control. + For hardware handshake, this could be &H3 for the ZyXEL, &K3 for + Rockwell-Based modems or \\Q3&S0 for Exar-Based Modems (i.e. some GVC's) +END +wq command: "&H3" FAX_MODEM_HANDSHAKE + +cat <<END + When sending a fax, if the other side says "page bad, retrain + requested", sendfax will retry the page. Specifiy here the maximum + number of retries (I recommend 3) before hanging up. + + If you set it to "0", sendfax will *never* retransmit a page (only + do this if you know that your modem returns +FPTS:2 even if the + page arrived properly, but be warned - you wont' be able to react + properly to transmission errors!) +END +wd "max tries:" 3 FAX_SEND_MAX_TRIES + +cat <<END + the device(s) used for faxing + multiple devices can be separated by ":", e.g. "tty1a:tty2a" + (without (!) leading /dev/) +END +wq devices: cua01 FAX_MODEM_TTYS + +cat <<END + some modems, notably some GVC modems and the german telecom approved + ZyXEL EG+ have the annoying behaviour of lowering and raising the + DCD line during the pre- and post-page handshake (when sending). + + If your modem does this, sendfax will terminate immediately after + starting to send the first page, or between the first and second + page, and the fax log file will show something like + "read failed, I/O error". + + If you define this, sendfax will (try to) ignore that line +END +wa define? n FAX_SEND_IGNORE_CARRIER "" + +cat <<END + Xon or not? + + the first issues of the class 2 drafts required that the program waits + for an Xon character before sending the page data. Later versions + removed that. Sendfax can do both, default is to wait for it. + + If you get an error message "... waiting for XON" when trying to + send a fax, try this one. Some ELSA modems are know to need it. +END +wa "Xon ?" n FAXSEND_NO_XON "" + +cat <<END + where to send notify mail about incoming faxes to + (remember to create an mail alias if no such user exists!) +END +wq "send to:" faxadmin MAIL_TO + +cat <<END + after a fax has arrived, mgetty can call a program for further + processing of this fax. + + (e.g.: printing of the fax, sending as MIME mail, displaying in an X + window (the latter one could be tricky) ...) + + It will be called as: + <program> <result code> "<sender_id>" <#pgs> <pg1> <pg2>... + + Define the name of this program here + If you don't want this type of service, do not define it at all +END +wn "program name (eg /usr/local/lib/mgetty+sendfax/new_fax): " FAX_NOTIFY_PROGRAM + +cat <<END + if this file exists, it can be used to control what callers + are allowed in. If undefined, the functionality is omitted. +END +wn "file (eg /usr/local/lib/mgetty+sendfax/dialin.config):" CNDFILE + +exit 0 |