Update: This article is outdated, you can download a pre-packaged Callblocker package based on the code on this page from the Maemo Garage – https://garage.maemo.org/projects/callblocker/ . You can the deb file from the project page and install it on your N900.
Something which I really missed on the N900 was a good call blocking software. After being hounded day after day by credit card sales people and people trying to give me low interest loans, I had to find a way to get this done. A bit of hunting on the web and picking up a little bit of Python, I hacked a working solution to this problem. It’s not a perfect solution, and is a hack job, but it should do till someone writes up a good application to handle unwanted callers.
Step 1: Install Dependencies on your phone
Before we go to the call block script, you’ll need to install a few apps on your phone. First you’ll need to gain root access to your phone, so head over to your App Manager and install rootsh. If you can’t find it in your app manager, head over to this URL and download rootsh – maemo.org/downloads/product/Maemo5/rootsh/
If you haven’t installed a Python application in your phone, you’ll have to install the Python runtimes on your device. If you haven’t installed the extras-devel repositories, check for the Maemo 5 instructions here – pymaemo.garage.maemo.org/installation_device.html. Once you have that repository installed on your phone, search and install maemo-python-device-env to install python.
Step 2: Download and move the Script to your phone
Once that’s installed, download this zip file and extract the python script from the file and save this file your device under Nokia N900/ as callblock.py .
Step 3: Create the Block list with numbers you’d like to block
Before running this script, you’ll need to create a text file with the numbers you need to block. Add as many numbers you’d like to block on a new line. The file contents should like like below:
+918067337555 +918067348300 +918066167590
Save this file as BlockedCallers.txt in the same location you saved the call block script. Please enter the numbers in the format you see when you get the calls, so you needn’t enter it exactly as I’ve put it up.
Step 4: Run the script on your phone
Now to start the call block script, head over to the terminal, get into the root mode by entering the following:
and then start the callblock application and background it:
python /home/user/MyDocs/callblock.py &
Make sure you type the command as is, with the capitalizations in MyDocs typed in, or the command will fail.
Now you’ve got the script running on your phone in the background and you can close the Terminal window. Your phone will block any calls with the numbers you’ve saved in the BlockedCallers.txt file. Anytime you want to change the numbers, you’ll have to edit the BlockedCallers.txt text file and add numbers into it. You’ll have to restart the script to get the latest edits to your block numbers active.
Also when ever you restart the phone, you’ll have to follow the last steps to restart the call block application. So remember when you restart the phone, make sure you go to the terminal and enter the following two lines into it:
root python /home/user/MyDocs/callblock.py &
I’ve been trying to figure out how to auto-start this script, but I haven’t been successful at that yet. I’ll update you as soon as I figure that one out.
If you have more tips on how to improve this script, or know how to autostart the script when the phone boots up, let us know by commenting on this post.
Click to download the script file: Here’s the zip file with the callblock script. Download it and extract callblock.py from the zip file. Edit the number to block in the file by opening it up in a text editor and move the saved file over to your device.
Link to Python Doc (and sources) I went though and borrowed to build this example:
PyMaemo/Phone call and SMS examples
Image Credit: via hoyasmeg on flickr
Disclaimer: We are providing this script as it, without much support. I’ve tested this for a few days on my phone and it worked as expected without any issues. We’re not responsible for any problems you may face using this script.