I use Vonage and I like it. I don't want to pay monthly for the soft phone, but the hardware POTS gateway still uses the SIP protocol. This protocol brings network signals including caller ID onto my LAN and it makes sense to me to do more things with that data.
My other project, VOIP Recorder, is an all in one recorder, caller-id popup generator (and blocker) and call filterer - you can use it on mac, linux, and windows witthout any special hardware.
The project on this page is for those willing to get their hands a lot more dirty than the plug-n-play VOIP Recorder gets them. Itallows the display of that data in the notification area of Linux KDE4, Gnome 2, or on Mac OS X with Growl. You need to make a few network topology changes to use the code found here.
The Gnome applet is new in February 2010.
I wrote a blog post about it which describes how to setup the hardware are software, found here, to make it happen. The network topology is important, so be sure to read the blog post.
The software package - callerid-bridge.tgz is written by me, available here, and is GPL v2'd.
It contains 4 important pieces:
The SIP NFQUEUE Listener and Broadcaster
The producer-nfqueue module listens on the linux netlink socket queue number 5061 for potential SIP invites. It parses the packets and when it finds caller id information it broadcasts it to the local lan over UDP. An iptables rule of the form iptables -A FORWARD --protocol udp --dport 10000 -j NFQUEUE --queue-num 5061 -d 192.168.16.0/24 can be used to push the incoming SIP data into the queue.
The C implementaion of netGrowl
growl.c and growl.h form an easy C binding of the Growl network client protocol. Growl is commonly run on Mac OS X machines to display real time notification information. The producer-nfqueue module uses netGrowl to broadcast caller id information to any computer that may be running Growl.
A KDE4 Applet for Display of Caller ID information
This applet is the KDE counterpart to Growl. It listens for broadcasts from the producer-nfqueue module and displays them as popup bubbles in the system tray.
A Gnome Applet for display for Caller ID Information
This applet is the Gnome counterpart to the KDE4 and Growl applets. It listens for broadcasts from the producer-nfqueue module and then uses the Linux notification framework to display the results in real time to your Gnome console.