I have installed Prowl on my iPhone and hooked up a modem that supports CallerID to my Ubuntu Linux PC and I’ve got it working so that when someone calls my home phone line I now get a message sent to my iPhone. This comes in handy when I’m waiting for a call at home but I can’t be there all the time and when the phone rings at home and I’m not close to the land line I can see on my iPhone if it’s for me or the rest of the family.
I’ve documented how I set it up here… If you are comfortable with Linux and the command line this should be straight forward.
I updated the bash script with examples of how to add more personalized names based on the phone number called and added Richard Dansereau’s method of displaying the messages, also added call logging too…
- First install the Prowl app (cool Growl for OS-X and Growl for Windows notification app) on your iPhone – $2.99
- Login into the Prowl website and get an API key for your iPhone, you will need this in the ncid-prowl module (I’ll explain later)
- Install the ncid software by opening a terminal on your Ubuntu PC and typing
- $ sudo apt-get install ncid
- Enter the sudo password and “Y” when asked if you want to continue (to install).
- Install the curl software on your Ubuntu PC, typing
- $ sudo apt-get install curl
- If you do this soon after the ncid apt-get install you wont need to enter the sudo password again.
- Press “Y” when asked if you want to continue to install.
- I have an external USRobotics modem that I plug into the serial port on the back of my PC. It uses device dev/ttyS0 (I/O 0x3f8 ,irq =4) so I had to change the ncidd.config file to use this port. The default modem config didn’t work. So make sure you have serial port enabled in your BIOS then tweak the ncidd.conf file (make sure it has two d’s “ncidd.config” and not “ncid.config”).
- I used $ sudo nano /etc/ncid/ncidd.conf and changed the line “# set ttyport = /dev/ttyS0″ to “set ttyport = /dev/ttyS0″ removing the “#” at the beginning, and setting it to my serial port (ctrl-x to save and exit the nano editor)
- Test your modem is working with ncid by starting up the ncid server
- $ sudo invoke-rc.d ncidd start
- Try the standard ncid client
- $ ncid
- Call your landline from your iPhone and hopefully you see your number show up in the ncid displaybox on your pc
- (If not read up on the ncid website to get it working)
- Once it’s working close the ncid program
- Next we need to modify the ncid-skel shell script to work with ‘Curl’ to send our CallerID message to the prowl server.
- Using nano again copy the following script into the /usr/share/ncid directory calling the file “ncid-prowl”.
# ncid-prowl Output Module
# Modify as needed for new module
# keep “ncid-” in the name
# input is 5 lines obtained from ncid
# input: DATEnTIMEnNUMBERnNAMEnLINEn
# input is 5 lines if a message was sent
# input: nnnMESSAGEnn
# Message will be in $CIDNAME
# ncid usage:
# ncid –no-gui [--message] –program ncid-prowl
[ -f $ConfigFile ] && . $ConfigFile
# Paste your apikey from the prowl website in the following line
#Personalize the call message name for specific numbers
#Add as many numbers and names you want copying the format of the two examples below
if [ "$CIDNMBR" = "555-555-1234" ]; then
if [ "$CIDNMBR" = "555-555-1111" ]; then
DESCMSG=”$CIDNMBRnTIME: $CIDTIMEnDATE: $CIDDATE”
echo $DESCMSG | curl https://prowl.weks.net/publicapi/add -F apikey=$apikey -F priority=2 -F application=”$T1″ -F description=”<-”
#Add call to phone log /phonelog.txt
INFO=”$CIDDATE – $CIDTIME # $CIDNMBR NAME: $CIDNAME – $T1″
echo “$INFO” > /temp.txt
cat /temp.txt /phonelog.txt > /temp3.txt
mv /temp3.txt /phonelog.txt
- You can copy and paste everything except for the apikey = 00000… to be your apikey from the prowl website
- (it will be a long hex-decimal string)
- ctrl-x to save and exit
- Make the ncid-prowl executable
- $ sudo chmod 777 ncid-prowl
- Run it as a background process by using
- $ ncid –no-gui -P ncid-prowl &
- Call your landline from your iPhone and you should see the Prowl message on your iPhone.
- If all is good you are done
- If you want to start ncid up automatically when you boot your Ubuntu PC do the following
- Make startup script (copy and paste the following into a file called start-ncid.sh)
- $ nano start-ncid.sh
# Script to start ncidd server and ncid client at boot-up
# Start the ncidd server as a daemon
# Start the ncid client with the ncid-prowl module as output in the background
ncid –no-gui -P ncid-prowl &
- Make it executable
- $ chmod +x start-ncid.sh
- Add the script to /etc/init.d
- $ sudo cp start-ncid.sh /etc/init.d/start-ncid.sh
- Add it to the system startup scripts for the different run levels
- $ sudo update-rc.d start-ncid.sh defaults
- Reboot and test it… Good Luck.