Version 1.0.0.0
Copyright © 2007 Michael F Coyle, Blue Toque Software
YAC.NET was written over a period of 7 days in April 2007, however it is entirely inspired by YAC (Yet Another Caller ID Program) by Jensen Harris. YAC is a great program, very simple and effective. It extracts Caller ID information from a phone call, and sends Caller ID events to other computers on a network. If those other computer have a listener installed (Such as YAC or MCE-YAC by David Ethan Zoller), then that machine will display the Caller ID information to the user.
So, out of the sheer joy of programming I decided to write my own version. The result was quite a bit of fun perfecting what I believe is a useful program, and in the spirit of YAC and open source software I decided to release the result.
YAC.NET has most of the features of YAC, but the approach I use is slightly different. While YAC makes use of the TAPI SDK, YAC.NET reads driectly from the COM port that the modem is attached to. This means that you have to go through the small effort of configuring the modem with an initialization string to turn on detection of the Caller ID.
In addition, I replicated the call log feature to record a log of all calls received, and the phone book feature to show you friendly names for the phone numbers that calls are made from. I added the ability to take a call log entry and add it to the phone book, and to print the call log (although the printing is fairly primitive). YAC.NET can also run as a listener, which means it just waits for an event to be sent to it from a YAC.NET, or YAC instance configured as a server. YAC.NET uses the same mesage format as YAC, so they are interchangable as servers or listeners.
Finally I put in a new feature: the ability to run the program as a Windows service. This means that you when you install the program, configure it, and set it to run as a service it will start automatically every time windows bots. You do not have to log in to that computer, and you do not have to remember to run YAC.NET, it just runs in the background, silently monitoring and logging calls and sending Caller ID events to configured listeners.
The idea here is that you install YAC.NET on one computer and run it as a service. The Caller ID events are sent to other machines on your network, each of which can have it's own call log, and phone book (if you like). For your Windows Media Center, use MCE-YAC (so when I'm watching TV I can see who is calling. I also installed listeners on my girlfriend's machine, and my own desktop so I get notified whenever a call comes in.