Caller ID laziness

At my house, we have a VoIP line provided by Xnet. In my house, I have a small QoS router that has two POTS plug that allow my to plug my normal phones into the VoIP line. What is even better is that the Caller ID that comes with the line also gets displayed on the phones I have.

As I’m incredibly lazy, I set about finding a way for my computer to tell me who was calling when the phone rang instead of having to find the cordless phone (or run to the corded one if it was flat) to check who was calling. I have set an option in the control panel at Xnet that sends me an email whenever someone rings my home, which includes the Caller ID but alas, it still takes the email about 30 seconds to arrive in my inbox (I check my email every 1 minute) so it didn’t really help to know who it was before I picked it up.

It turns out that the router’s status page displays the state of the VoIP line and also the last number that called it. Bingo! I whipped up a little PHP CLI script that polled the router’s status page for when the status was “Ringing” and captured the phone number displayed there.

I then added a piece of AppleScript that interfaces with Address Book on MacOS X which could translate a phone number into a name if that number was in the Address Book.

The last piece of the puzzle was to utilise the command line program called growlnotify to send out a Growl notification and made it send out to the two laptops in the house.

I placed this script on the Mac Mini I have connected in the lounge and set it running. A few bug fixes later and I now have Growl alerts show up on my laptop screen within about 3 seconds of my home phone ringing saying exactly who is ringing.

All in the name of laziness.

If anyone is interested, I can post the utility. The VoIP router I designed it for is the Linksys SPA-2102.


Leave a Reply

Comments will be sent to the moderation queue.

Note: This post is over 10 months old. You may want to check later in this blog to see if there is new information relevant to your comment.