Installation instructions for PyGCID - The CallerID application. To run PyGCID you need Python 1.5.2 with PyGTK 0.6.3 or greater. Python is available at http://www.python.org and PyGTK can be found at http://www.daa.com.au/~james/pygtk/. Uncompress the archive and place all the files in one directory. Adjust the first line of cid.py to point to the correct location of your python binary. Now run cid.py . Hopefully, a small icon will appear on your desktop. Click on it. A window where you can view and edit all your numbers will appear. Right clicking it will cause the program to exit. In this version, the program does have a quite primitive way of configuration. That means there's no nice way of telling it how to retrieve numbers from your CID hardware. You have to edit the file $HOME/.cid/config . It should look something like this: ---begin example--- cidProgram = ["/usr/bin/cidread", "-n"] callProgram = "/usr/bin/dtmfdial" ---end example--- The program defined by the variable 'cidProgram' should block until there is a number to read and put that number on standard input followed by a newline. After that it should exit, PyGCID will restart it. Note the syntax of cidProgram. It should be one or more strings enclosed into []. The first string is always the full path to the program. The second and following strings are arguments to the program. The program defined by the callProgram parameter is a program that calls numbers in some way. It will get the number as it's first parameter. Note that it's not a list, it's a string. Restart the program after editing config.py. Try calling yourself. If everything works another window will popup with the number of the incoming calls other end. A note about the external program: I use a slightly patched version of cidread that's included in the project found at http://www.flashback.net/~hermann/ (Swedish page). My version differs in that it has an option to output a newline after the number and is available as http://www.lysator.liu.se/~forsberg/hacks/pygcid/cidread.c One of the strenghts of PyGCID is that is doesn't include any hardware-specific code. That way it can be used with many different numberfetchers. Have fun! :-)