NAME
telco, faxreceive, faxsend, fax, telcofax, telcodata – telephone dialer network

SYNOPSIS
telco [ –p ] [ –i source–id ] [ –v ] dialer–devs

aux/faxsend address page1 ...

aux/faxreceive [ –s spool–dir ] [ –v ]

fax [ –v ] telno recipient [ files ]

service/telcofax

service/telcodata

DESCRIPTION
Telco is a file server that provides a network interface to Hayes telephone dialers. The interface is the same as that provided by ip(3) and can be used by any program that makes network connections using dial(2). The network addresses used by telco are telephone numbers.

The options are
p    use pulse dialing
v    verbose: write to the log file all communications with the dialer.
i    specify a source–id to be used during FAX transfers

Some control of outgoing calls can be encoded in the address. Normally, addresses are of the form telco!number, where number is a decimal telephone number. However, commas in the telephone number can be used to insert pauses in the dialing process. Dialing options can be added to the end of the address, separated by !'s. The dialing options are
compress   turn on compression (default off)
baudrate     a decimal number representing the highest baud rate with which to make the call
fax        to make a Class 2 facsimile call (used by programs such as faxsend)

Telco also answers incoming calls. Upon receiving a facsimile call, telco starts the script /rc/bin/service/telcofax. For data calls it starts /rc/bin/service/telcodata. Each is started with the network connection as both standard input and standard output and with two arguments, the file name of the network connection, e.g., /net/telco/0/data, and the type of modem. Currently, the only modem types supported are:
MT1432     Multitech's 14400 baud modem
MT2834     Multitech's 28800 baud modem
ATT14400   the 14400 baud modem in Safaris
VOCAL      the 14400 baud Vocal modem

All other modems are assumed to be compatible with the standard Hayes command subset.

Faxreceive is normally started by /rc/bin/service/telcofax. It reads and spools a CCITT Group 3 (G3) encoded FAX, and then starts the script /sys/lib/fax/receiverc, passing it four arguments: the spool file name, Y (for success) or N, the number of pages, and the id string passed by the caller. This script sends by mail(1) notification to a list of recipients kept in the file /mail/faxqueue/faxrecipients; the script and the list should be edited to match local needs. Faxreceive's options are:
s    specify a different spool directory; the default is /mail/faxqueue.
v    verbose: write to the log file all communications with the modem.

Faxsend transmits a FAX to address. Page1 and all arguments that follow are names of files containing G3 encoded FAX images, one per page.

Fax is a shell script that converts to G3 format PostScript, G3, text, or other files acceptable to lp(1) and queues the result to be transmitted to a FAX machine. A standard cover sheet, derived from /sys/lib/fax/h.ps, is sent before the message. Telno is the destination telephone number. Recipient is the name of the recipient to be placed on the cover sheet. If no files are specified, standard input is converted and sent. The –v option invokes page(1) on the generated G3 files instead of transmitting them via FAX machine.

EXAMPLE
Start the dialer on a PC, then use con to phone out.
telco /dev/eia1
con –l telco!18005551212

The connection will be made at the highest negotiable baud rate. To use the best negotiable compression scheme as well:
con –l telco!18005551212!compress

FILES
/mail/faxqueue/*
/rc/bin/service/telcodata
/rc/bin/service/telcofax
/sys/log/telco
/sys/lib/fax/receiverc
/mail/faxqueue/faxrecipients
/sys/lib/fax/h.ps
/sys/log/fax

SOURCE
/sys/src/cmd/telco/*
/sys/src/cmd/fax/*

SEE ALSO
con(1), ip(3)

BUGS

These programs require the Class 2 facsimile interface. This means that faxsend and faxreceive will not work on most portable computers since they have Class 1 interfaces.

The modem specific information is currently built into the source. This should be in a user modifiable file.