We just got caller ID at my house. One of my roommates doesn't have a cell phone, so eventually everyone else stopped answering the house phone because it was always for him. But then he would come home and not know who called. Now of course, caller ID solves this problem by logging who called on the phone handset, but being me, that is not enough!
My plan is to hook up a computer to the phone system, so that when a call comes through, it will send the caller ID information to a list of subscribed AIM screennames, that way I and he and anyone else will be instantly notified of who is calling without having to run to the phone.
So far, I've found a great guide for a simple setup of a linux answering machine, which I will adapt to use as this caller ID notifier. A $10 Linux Answering Machine.
I'm installing the zaptel driver at the moment, on a Fedora Core 6 box. Here is the process so far:
cd /usr/src
wget http://ftp.digium.com/pub/zaptel/zaptel-1.4.2.1.tar.gz
tar -xzf zaptel-1.4.2.1.tar.gz
cd zaptel-1.4.2.1
I got an error the first time I tried to run make:
xbus-core.c:171: error: 'struct inode' has no member named 'u'
Because I am using FC6, I needed to make a small tweak to the source code, according to this message.
edit this file: xpp/xbus-core.c and search for u.generic_ip change the line above that from 2,6,19 to 2,6,18
Now continue the normal build process: make, make install
The location of the zapata library has moved to: http://ftp.digium.com/pub/zaptel/releases/
When I tried to run 'make', I got a bunch of errors about undeclared constants, starting with
zap.c:571:26: error: linux/zaptel.h: No such file or directory
It looks like the zap.c and goertzel.c files are looking for the zaptel.h file in linux/zaptel.h, but not finding it. I have no idea why, but I change the include lines to look for /usr/include/zaptel/zaptel.h, and it works.
Continuing with Bob's instructions, I got down to where I need to compile his program. I got some errors like:
answering_machine.c:77: warning: incompatible implicit declaration of built-in function 'exit'
answering_machine.c:87: warning: incompatible implicit declaration of built-in function 'strncpy'
I found that it is necessary to add a couple of include lines:
#include <stdlib.h>
#include <string.h>
I also disabled SElinux before I could run this program.
vi /etc/sysconfig/selinux
SELINUX=disabled
echo 0 > /selinux/enforce
This will disable SElinux from ever starting again, and disable it in the current boot