MCE-YAC: a network caller-id add-in for
Media
Center
(c) 2004-2005 David Ethan
Zoller
MCE-YAC
home page -
Media Center blog
Windows XP Media Center Edition 2005
can host managed code applications that can control
Media
Center
and display notifications, among other things. MCE-YAC is an add-in acts that
as a client for called
YAC, a
networked caller-ID application.

MCE-YAC features
-
Receives network messages from a YAC server and
displays them on your
Media
Center
.
-
Supports custom images for each telephone number, area
code and state/province.
-
Displays locations for unrecognized callers (ones
without a picture for its phone number or area code).
No more wondering, “where the heck is 775?”
-
mainly for people with multiple Media Center boxes:
settable image path, so you can keep your pictures in one place (say, on the
YAC server) and have all your Media Centers point to it.
-
Keeps a (relatively boring) call log.
I’d been using YAC for years; it lets
me put a modem & phone line to one computer in my house, and then send
caller-ID notifications everywhere else.
In the
Media
Center
case, this frees me from choosing between caller ID and dual tuners in my
4-PCI-slot Gateway 901x.
(There’s
already another app,
TAPIRex,
for
Media
Center
that does some of this, but I didn’t write it. :)
More Media Center apps! Yay!)
System Requirements
-
Windows XP
Media
Center
Edition 2005
-
A working YAC installation on your network, including
a caller-ID capable modem
Download, version 0.51 (see
version info for details)
Installing
-
Close
Media
Center
-
Copy the zip file your desktop (or somewhere)
-
Extract its contents
-
Run registeryac.cmd; it should return success before
the command window closes.
-
Launch
Media
Center
.
-
SP2 will alert you that
Media
Center
is trying to access the network. You should choose “unblock this program” (if
you don’t see this dialog & you have SP2’s firewall turned on, you may have
to alt-tab to it.)
That’s it! To demonstrate that
MCE-YAC is working:
-
On the machine with your caller-ID modem, install YAC
(from http://sunflowerhead.com/software/yac/).
-
Add your
Media
Center
to the list of listeners in YAC.
-
Receive a caller-ID call or send a test message to
your listeners. You should see a
notification message on the
Media
Center
screen.
Troubleshooting and known issues
-
Ensure caller-ID messages are arriving to the YAC
server. Do you get YAC’s pop-ups with phone numbers on the server, entries in
the server’s log, or notifications on other machines?)
-
Does the log file get generated? (See notes below.)
-
If you want debug messages (lots of them), put "DEBUG"
at the beginning of the Context property in YACAddIn.xml and re-run
registeryac.cmd.
-
In some configurations, this add-in will cause a ~20
second delay on exit of
Media
Center
. It used to happen on
*all* configurations, and I did even a little more than I thought I’d need to
fix it, but at least one machine still has the problem.
I’ll put up a fix once I’ve got one, or I’ll decide that the
problem is only on my upgrade-over-upgrade box.
-
The app doesn’t work for multiple concurrent users
on the same machine (for instance, in a Media Center Extender environment).
Some notes
-
You can install the YAC server & my client on the
same computer, if you want to use my add-in instead of the native caller-ID
feature of MC; just put the name of your computer in YAC’s Listeners dialog.
(Don’t forget to turn
Media
Center
’s native detection off.)
-
I’ve included some sample caller images in the
\windows\ehome\yacpix folder, and you can make your own as well (jpgs only, no
bigger than 120x148 for best display).
-
Look in the nanpa-area-codes.xml file to see what you
should call your state/province pictures.
For the
United
States
, it’s the two-letter abbreviation.
-
To set a path for your images, just change the
currently-null Context property in YACAddIn.xml before you install it (or
change it there and then re-rerun registeryac.cmd). you can put your pictures
on any local, UNC, or http path. (you
need a trailing slash). Note that if you keep your files on a *nix system,
you’ll also need to ensure that your .jpg filenames are all lower case.
-
The call log is stored in the
%ALLUSERSPROFILE%\Application Data\mce-yac directory.
Closing thoughts
This application isn’t really “finished,” but I’m ready to
release it & its source code. If
there’s a lot of interest, I’ll compile other people’s additions in, but it’s
feature-complete enough to leave home.
Hopefully, y’all will help get the rest of these features in:
-
Call log display from inside
Media
Center
. I’ve posted some
proposed XML for the log .
Logging that way, plus some XSLT, and you could see who called from right from
the couch. (You could even use the
SubmitNewForMe API to flag the call log app in More Programs with the number of
new calls since you last looked.) Most
likely, this would be more-properly implemented as a server-side call log, so
even if the client isn’t running, you see the authoritative list of calls as
the server transmitted them.
-
Support for picture types other than .jpg (and
filenames that include the *name* of the caller.
Thank goodness for XP’s thumbnail view for pictures.
GetFiles would work fine for discovering matching files for local &
UNC, but not over http.)
-
Client/agent/server architecture to enable Media
Center Extender support. This app
currently tries to open a TCP port when it starts, and you can’t do that twice
for the same port. Perhaps a YAC listener that runs as a service?
(This implementation would allow Fast User Switching sessions to get the
same benefit, but that’s less of a core scenario.)
-
YAC has built-in support for text messages (“dinner’s
ready!”); it would be neat to be able to reply to those (“ok, dad, I’ll be
right there!”). This is a shift in
YAC’s current notion of “server” and “listener”, so that any server might also
be a listener.
-
if there's running media, mute or attenuate the volume
when the phone rings & then restore it when the dialog goes away.
(Probably needs to be optional, since some folks may be sending digital
output to their receivers, so
Media
Center
’s volume is less-relevant.)
-
allow addin to run from \Program Files instead of the
\ehome directory.
Of course, some clever person might
do entirely different things, or riff on some of my suggestions.
Go crazy. For more
information on building applications for
Media
Center
, see the
SDK.
The fine print
Please see the
license.txt file for licensing information.
The video playing in the screen shot
is one of the “Configure Your TV” videos in
Media
Center
’s Settings area. This
set of videos help you make sure that your television is doing all it can to
provide great picture quality, especially if you’ve got a swank TV with lots of
dials and buttons.
No, the telephone number in the
screen shot isn’t really my number.
It’s the one for Congress. Have
you talked to your Representative lately?
YAC is from Sunflower Software.
Microsoft Windows XP Media Center Edition is from Microsoft.
You probably know that.