Yesterday I was kind of bored when I noticed I still had an old Nokia 3110C laying around + a simyo (cheap belgian operator) sim card I didn’t use anymore.
I decided it was playtime! Let’s make my homeserver send me some sms’s.
After a bit of research it was time to start testing. My homeserver runs ubuntu-server at the moment, but this tends to change quite often. As does the setup. It will change again soon because I will be getting a soekris :-).
Anyway, on with the fun!
A few easy steps to make your (home)server sms you:
Connect your phone
Take your old nokia phone (in my case the Nokia 3110C) and the included datacable. Connect it to your server choosing the pc suite mode on newer phones, or the "nokia mode" on somewhat older phones.
You can install smstools on ubuntu 8.10 (tested) with:
apt-get install smstools
Or you can download the source at http://smstools3.kekekasvi.com/ and compile the code yourself.
After you did this it is time to configure smstools. Open the file /etc/smsd.conf and add/change the following lines:
devices = GSM1
with this line you specify which device smstools needs to talk to.
loglevel = 7
to set the loglevel to debug, this gives you more information in the logfile: /var/log/smsd.log
[GSM1] device = /dev/ttyACM0 incoming = no
The device parameter needs to point to the serial interface for your phone. Normally this is /dev/ttyACM0, but it could also be /dev/ttyUSB0 for example. If you can’t seem to find the serial interface follow these next steps to make sure your cellphone is recognized:
You should see some entry like:
Bus 001 Device 017: ID 0421:0428 Nokia Mobile Phones
You should see the following modules loaded:
sbcore 112644 7 usbserial,cdc_acm,rt73,usbhid,ehci_hcd,ohci_hcd
The incoming parameter is set to no, this means we will not read incoming text messages on the phone and deliver them to /var/spool/sms/incoming. Sadly enough my too old Nokia 3110C does not support the AT commands for reading text messages over the data connection.
The only list I found of Nokia phones that should be able to read text messages through AT commands is at:
If everything went right you can start the smstools with:
To send an sms you can simply drop a file in /var/spool/sms/outgoing.
Your text file should look like:
To: 32495123456 Hi! This is a test.
If your cellphone supports the AT commands for reading incoming messages over data you can edit the smstools configuration and put incoming=1 in there. Now, all incoming text messages will be available for you/your script or your program to read in:
To test this I created a perl script which fetches an RSS feed, filters out interresting stuff, and drops a file with the description in /var/spool/sms/outgoing when the script hasn’t seen this story before.
Now I get sms updates about that rss feed :-)
That’s all folks!
Oh, 1 note: make sure you also connect the charger to your cellphone. I noticed that when the datacable is connected the battery seems to run flat rather fast…