Licensed under the GNU General Public License. See LICENSE. (c) 2004-06, Brett A. Taylor
WebCID is a caller ID application for analog phone service. It consists of a daemon script (in Perl) that listens for caller ID from a modem, and a web interface for viewing caller ID logs. Caller ID information is logged to a MySQL database. WebCID is useful for retrieving caller ID information remotely when away from home.
It was originally written for Linux, but should theoretically work on any platform meeting the requirements.
Download from SourceForge
Create a MySQL database, and grant some user access to it. Run the database creation script in the installation package: db/create.sql.
Put bin/webcid and bin/webcid.pl in a local bin path, probably /usr/local/bin. Modify any path information in webcid, and insert appropriate database values in webcid.pl from step a. This should be self-explanatory in the files themselves.
Put the web/ directory in a web-accessible path. Modify web/inc/webcid.php to include appropriate database parameters from step a.
There is a sample init script located at init/webcid. This can be used to start and stop the webcid daemon. This may need customising for your platform. It was written for and is known to work on Debian Sarge.
No security mechanism is built into to stop anonymous people from using WebCID via the web. It is recommended to use password authentication through your web server (using htaccess on Apache).
While most of this package is quite trivial, it has proven to be quite useful. The Perl script that waits on the modem may need customising depending on your telephone companies caller ID and/or your modem. It was written to be as generic as possible for Telus (in western Canada) given the limited information I have available about caller ID standards. My modem (USR Sportster) was unable to fully parse the information, which is why it is ripped off the line manually. Admittedly, this should be done in hex by considering each bit on the wire. The method I used was easier to debug and works great.
You will probably want to have a web server running locally, otherwise you will need to log to a MySQL server over the Internet, which is likely problematic.
Additional improvements could include searching of names/numbers, automated e-mails/pages when specific calls are logged, and capturing distinctive ring (sometimes called smart ring) from your telco, though this is hardware dependant.