Sunday, March 7, 2010

Network Caller ID Broadcaster and Receiver

As I mentioned in an earlier post back in December I had FIOS installed. One of the benefits of this was that my telephone service was upgraded to include caller id. While our cordless telephones were all caller id capable there is not a telephone located by every PC in our house and when not in use the telephones normally sit in their charging cradles. This got me started on a project to broadcast caller id across our home network so that we could determine who was calling before we got up to get the phone.

As with many projects the start of this one found me sitting at my computer running Google searches to see what others had done in this area. I found several but couldn’t get any to work with the modem sitting in my PC. This led me down the path of developing my own.

I had run across Qt a while ago and had wanted to do a project to try it out. For anyone who doesn’t know what Qt is it is a “Qt is a cross-platform application and UI framework” for c++. Qt had recently come under the control of Nokia after Nokia had purchased Trolltech which originally developed the library. One notable result of the acquisition were changes to Qt Licensing which is now available under Commercial, LGPL and GPL licenses. Qt comes with it’s own IDE Qt Creator as well as an extensive number of examples.

My project consists of a Windows Service that monitors a Conexant D850 modem in my Dell PC running Windows 7. The modem is monitored by a Windows service that reads the caller id information and then broadcasts it across the network. All of the PCs in my house are running a client that picks up the broadcast and generates a tool tray icon message.

While I have over 30 years of experience working and tinkering with computers my c++ experience is just slightly above basic level. Even at that level the Qt framework was very easy to use and within a couple of evenings and weekend afternoon or two I had the project to the point where it could be deployed.

The biggest problem I had was that in the middle of developing the software I replaced the PC I was using and found that after transferring the modem I was not receiving caller id. After much troubleshooting I found out that I needed to downgrade the driver. For anyone running a Coexant D850 PCI V.92 Modem if you want Caller ID information be sure and use version dated 5/27/2008.

At this time I haven't come up with any place to post the code but if you are interested in a copy let me know in the comments section and I will be happy to provide it to you.

Tuesday, March 2, 2010

Time Flies – January and February 2010

Wow, my last post was back in December.

Since my last post I have worked on the projects below. I will try and get some details posted.

1) Program in c++ to read Caller ID off the modem in my PC and broadcast it to a client that is now installed on all PCs in the house. That way if you are on a PC when the phone rings you can see who is calling.

2) Started putting together a PVR using an old Windows XP PC and a Hauppauge card. I tried various open source packages but for now am using the WinTV package that came with the card.

3) To beat the winter blues of having to ride inside I worked at interfacing my bicycle to an Ardunio. I used an old Cat-Eye rear wheel and cadence sensor and I have it to the point where it is doing MPH and cadence back to the Arduino IDE.