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: 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