This is version 0.97e of the masqdialer protocol. It is implemented by
cmserver-0.3.3.

Version 0.90e of the masqdialer protocol is the first version that I have made,
the main goal of this version is to increase the ability of the client and
server to appear more integrated.

The masqdialer system is only half duplex, that is only one side can talk at a
time.  A dialog will follow the following model:

1. The server acknowledges the client with "READY"
2. The client asks the server something, this command is restricted to a
   single line.  The main command is separated from arguments by a colon (':').
3. The server will respond to the client's request, it will either send a
   single line, or a BEGIN/END block.  A BEGIN/END block starts with the line
   "BEGIN" and ends with the line "END".  The server will report errors with
   "ERROR:".
4. Loop to step 1

Implemented commands

CYCLE		Does nothing but give you a ready.
QUIT		Exits the server.
VERSION		Returns a single line containing version information for the
		server.
AUTHOR		Returns a single line containing the author of the server.
LICENSE		Will use a BEGIN/END block to send the client the server's
		LICENSE file.
HISTORY		Will use a BEGIN/END block to send the client the server's
		HISTORY file.
STAT		Will return a single line starting with UP or DOWN.  The second
		field (delimited by a colon), will have a connection name, and
		the third will have a speed.  If the connection is down there
		will be no second and third fields.
LIST		Will return a list of connections using a BEGIN/END block.
KILL		Will disconnect from the current ISP.
DIAL		Takes an argument of the connection you want to dial, this must
		match a connection returned from LIST exactly (this is case
		sensitive), and then executes the appropriate command to dial
		out the connection.
CINFO		Takes a connection as the argument, then spits out what it knows
		about the connection.  This is useful for debugging and
		eventually when the clients take advantage of it it will really
		increase the friendliness of the masqdialer system.
CIP		Return what the server thinks your IP address is, this is
		useful for debugging connections.
HALT		Make the server go down in a nice and friendly manner.
USER		Set the username to validate to this string.
PASS		Authorized the current user.
AUTH		Print out AUTHORIZED:username or NOT AUTHORIZED.
TIME		Returns the time that the connection was established.
CTIME		Returns the current time according to the server.
CCOUNT		Returns the number of clients.
WHO		Returns the names of the machines logged or ERROR:
NETLOAD		Returns the number of packets and bytes that have been
		transferred through the current connection.  The output is
		inside a begin/end block with the following format:
		INPUT: [in bytes] [in packets]
		OUTPUT: [out bytes] [out packets]
LOCK		Lock a connection against an activity. LOCK:DIAL prevents a
		client from dialing, LOCK:KILL prevents a client from killing
		the connection.
UNLOCK		Unlock a connection against an activity. LOCK:DIAL allows
		clients to dial, LOCK:KILL allows clients to killing the
		connection.
LINFO		Returns lock information in the form of DIAL:KILL, 0:0 would
		mean no locks.
CAPTURE		Takes an argument of what is capturing the modem.  Returns
		CAPTURED if sucessful.
RELEASE		Release the modem from a capture.
