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)