Description
Modem is a distributed communication package for modems.
The system works as follows:
Each host on a network with one or more modems attached to it, runs
the modemd server to make one or more of these modems available on
that network.
To use a modem, for example to establish a PPP connection,
modemcontrol broadcasts a message on the network. A server who is
willing to serve modemcontrol, replies with it's address.
modemcontrol then connects to that server using tcp. The server
forks and restarts listening for new requests. The new child opens
and locks one of the available modems and will try to establish a
connection by dialing the remote site. After a connection is
established, the child will read data from the modem and the tcp
connection until either a hangup from the modem is detected or the
network connection is broken. All data read from the tcp connection
will be copied to the modem, all data read from the modem will be
copied to modemcontrol.
modemcontrol uses the personal phone book to get the number to dial.
After dialing it allocates a pseudo terminal and let the environment
variable MODEM point to it. It then executes the program as given on
the command line. Modemcontrol also creates a new window with
information about the modem.
The program executed by modemcontrol can be any program. The program
can communicate with the modem by reading and writing to ${MODEM}.
The program does not need to worry about the type of the modem or
about things like dialing and terminal settings. The ppp script
included in this package for example, just pops up a login window
(modemlogin) and starts the pppd server.
Advantages:
-
All hosts on the network can use several modems. A modem need not
be attached to the host itself.
-
The package hides the details of communicating with the modem (like
dialing, terminal settings etc.) from the clients.
-
The client does not need to know the internals of all different
modems. In fact, it can use them all.
-
Just one interface to communicate with modems. No need for several
different configuration files for each program that uses the modem.
-
Clients can concentrate on what they are designed for.
-
You can choose from a textual, Motif, Xt or Tcl/Tk interface for
the several clients that are included. the textual interface does
not provide dialogs nor does it provide the help facility.
Identification:
The identd server is used by modemd to identify the remote user of
modemcontrol. This server needs therefore to be running on your
system.
Context sensitive help
If you have netscape installed on your system, you can use the
context sensitive help system from within the several tools
included. Unfortunately this system is not as helpful as it should
be.
Platforms
Currently the modem software is known to run on both Linux and
Solaris 2.x (at least the x86 version) platforms. The Solaris 2.x
sparc and HP-UX platforms have been tested using the virtual modem
device that is included in the package (see the file ./tests/README
in the source tree of the package).
Problems:
Although this is the first non-beta release, the software still may
(and probably will) have several bugs. Please inform me about any
bugs, recommendations or improvements.
To do:
-
Implementation of a graphical phone book using the entries in the
personal phone book. It should allow users to select and edit
entries in the phone book.
-
Several scripts that use the accounting information for making phone
bills etc.
-
Fax support.
Enjoy!
Author: Merijn de Jonge
(mdejonge@wins.uva.nl)