The slave program is the passive component of the PhoneNet protocol package. The active component is the phone channel (see phone(8)). Typically, slave is the login shell for an account which is reserved for picking up mail on a particular channel. When invoked, slave asks for the channel name of a pobox channel defined in the runtime tailoring file. The user= field in that channel's definition must match the username of the account running slave.
If a valid channel specification has been given, slave starts up the PhoneNet link-level protocol (dial package). The dial package uses the default illegal character sets configured in conf_dial.c and (possibly) overridden by DBADIN, DBADOUT, or DBAD in the runtime tailoring file. See section 3.13 of the ``Installing and Operating MMDF II'' document for more information regarding illegal character sets. The dial package defaults to a packet window size of 1. It is the master's responsibility to override that default if desired (see the ``window'' command documented in script(5)).
Slave responds to three commands from the master: pickup, submit, and end. In pickup mode, slave passes messages which have been queued up locally on the specified pobox channel out to the remote machine. It does this by invoking deliver in pickup mode (-p) on the specified channel. The pobox program manages the interface between the slave (i.e. the dial package) and deliver (i.e. the mail queue).
In submit mode, slave passes messages to the local submit program which queues messages on the local machine. The messages are submitted just as if a pickup were being done with the phone channel. The source channel and host are set according to the values defined for the specified pobox channel.
The end command causes slave to drop the link-level connection with the remote machine. Slave then exits.