

modem is a distributed communication package for modems.

It works as follows:
 Each host on the network with one or more modems connected to it, runs
 the modemd server for one or more of those modems.
 
 To use a modem, for example to start a PPP connection, xmmdm broadcasts
 a message on the network. A server who is willing to serve xmmdm,
 replys with it's address. xmmdm 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
 read data from the modem and the tcp connection until either a hangup 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 xmmdm. 

 xmmdm uses the personal phonebook the 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 with STDIN and STDOUT connected to the pseudo terminal. xmmdm also
 creates a new window with information about the modem.
 
 The program executed by xmmdm can be any program. The program can 
 communicate with the modem by reading and writing to STDIN and STDOUT 
 resp. They need not 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 (xmlogin) and starts the pppd server.
 
Advantages:
 -All hosts on the network can use several modems. A modem need not be
  connected to the host itself.
 -The package hides the details of communicating with the modem from the
  clients (like dialing, terminal settings etc.). 
 -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.

Problems:
Although this is beta software, it works fine for me. 
When I started writing this software, I did not have any knowlegde about 
Motif Programming, Serial communication and Pseudo terminals. The software 
could thus have several bugs. I hope you will inform me about bugs, 
recommendations or improvements.

Todo:

-I need a way of verifying a user who is connected to the server. In this
 release a shell script is used which allows everybody to use the modems.
-Implementation of a graphical phonebook using the entrys in the personal 
 phonebook. It should allow users to select and edit entrys in the
 phonebook.
-Several scripts that use the accounting information for making 
 phone bills etc.
-Fax support.
-Implementation of helpsystem.
-Support for XView and Xt.
-Documentation of the software and sources (sorry for this).

I hope you will like this software.

Merijn de Jonge (mdejonge@fwi.uva.nl)


 

