speakcid is a perl script that logs the caller id information to a database and also uses the festival TTS engine to announce who is calling. speakcid can be configured to map a number to a name and also spell out a name phonetically before it is passed on to festival. speakcid was forked from version 1.0.12 of basic_callerid_logger.

speakcid is hosted on Savannah. Here is the link to speakcid's project page.

Required Components


    Perl Modules
  • DBI
      Currently speakcid supports mysql without modification. Other DBs could be added.
    • Mysql DBD
  • Time::Period



The options of speakcid are grouped at the top of the perl script. Here is a list of configuration items that are listed in speakcid:

$run_festivalFlag to determine if the number should be spoken
$festival_serverName of the festival server
$festival_portPort number of the festival server
%name_translationHash used to change from one name to another. This is useful for rommates
%number_translationHash used to map a number to a name. This is useful for work numbers or cell phone numbers
%name_transHash used to change names to phonetic names. These values are not logged to the database they are just used for the TTS
$PERIODThe times that TTS will run. You can setup speakcid to only announce the caller name during certain times. See the Time::Period perl module for more details.

Speackcid will try and connect to the running festival server using a TCP/IP socket. To get the TTS to work properly just make sure that the festival server is up and running. You can test the festival server using the festival_client application that comes with festival. Just run festival_server and then type (SayText "Testing 1 2 3") and then ctrl-c. If everything is working properly you should hear the festival say back Testing 1 2 3.

Once festival is up and running all you need to do is to invoke speakcid. A log file will be created in /var/log/callerid.log. Because of this the user that runs speakcid will need write acces to /var/log.

Web Interface

speakcid comes with a web interface that allows you to query your caller id database. cid.pl is perl script that can be setup in a cgi area. Here is what the query interface looks like and here is an example of the search results.


You can download the latest version speakcid here.

Basic Caller Id Script

Speakcid was forked from the basic_callerid_logger script. Hopefully one day speakcid will be merged into basic_callerid_logger. Specifically speakcid was forked from version 1.0.12 version of the basic_callerid_logger.

Contact Info

If you have any comments/bugs/suggestions feel free to send them to troy@smith.net