Page Under Construction
VM-100 Project
This code is a small test/library for using
the Reveal(tm) VM100 phone/soundcard MUX. The VM100
is a small dongle-type device that hooks to:
- Your phone line.
- Your sound card's linein/lineout jacks.
- Your computers serial port.
This product is available for around $50 from stores such as Best-Buy,
Comp-USA, etc. It is officially called the Voice Mail for PC with
SpeakerPhones.
Wire the VM100 as follows:
tty pin vm100 pin
2 2
3 3
4 4
7 7
8 5 <- NOTE: vm100 CTS wired to tty DCD
20 20
Be aware that the state of DCD on powerup of your computer may take your
phoneline OFF-HOOK until the code starts running. I haven't
had time to figure out a solution for this 'feature' yet.
See the code itself for details on why I did what I did
with the flow control lines.
Now if I only had time to write a nice X11 based answering machine....
The interface provided by the lib functions looks like this:
/******************************************************************************
* public interface to vm100
*****************************************************************************/
/*
* start a vm100 handler daemon (ie, process)
*
* if ringStartCallback is not NULL, arrange for it to catch SIGUSR1
* if ringStopCallback is not NULL, arrange for it to catch SIGUSR2
*
* returns the pid of the daemon process to the caller (parent)
*/
int vm100Daemon( char* port,
void (*ringStartCallback)(),
void (*ringStopCallback)() );
/*
* cause the vm100 daemon to go off-hook
*/
int vm100OffHook( int daemon );
/*
* cause the vm100 daemon to go on-hook
*/
int vm100OnHook( int daemon );
/*
* Note: this is a user provided function!
* handle a vm100 generated 'start of ring' signal
*
* if used, it's address is passed to vm100Daemon(), see above
*
* void ringStartCallback(void);
*/
/*
* Note: this is a user provided function!
* handle a vm100 generated 'end of ring' signal
*
* if used, it's address is passed to vm100Daemon(), see above
*
* void ringStopCallback(void);
*/
You can reach me:
smp@csn.net