Day By Day

Finance, Technology, Whatever - Musings by Jason Keirstead

Blocking Rogers Voicemail SMS Notifications on S60 with mShell

Posted in Development, Technology by admin on the February 2nd, 2008

Anyone who lives in Canada and has Rogers as their cell phone provider knows what a pain it can be to receive a voice mail message. Let me explain…

Any halfway modern cell phone is capable of receiving the "unread voice mail" notification off the network and display a notification. Most phones do this by first popping up a message on the screen, along with (some phones) a blinking status light.

This is all well and good. Rogers however, in their infinite wisdom, has decided that they need to also support users of cell phones from a decade ago who do not have this feature, by also sending out an SMS message. This in and of itself if great - I applaud them of their thoughtfulness! However, for people who DON’T have old phones, these messages are nothing but a royal pain in the butt, because every time you get a voice mail you will receive not one, but TWO notification popups on your mobile!

Any calls to Rogers to ask them to disable this functionality will be met with a "we can not disable the text messages without also disabling the status notification".

So what to do? Well, I have discovered the answer (at least for Nokia users!) using a nifty program called mShell. mShell is a simple scripting language that allows you to script various aspects of your phone without having to go into the nitty-gritty of programming Symbian using C++. It is highly flexible and runs quite fast, and is able to run scripts in the background as well.

Using mShell I have cooked up the below script that blocks the Rogers voice mail SMS messages from showing up in your inbox. Make sure you set the script’s encoding to UTF-8 after you upload it to the "C:\Documents\mShell" directory on your phone. I called it "BlockMessage.m"

Now I can finally not be afraid to receive voice mail!

—– BEGIN SCRIPT —–

use sms, msg;
while true do
	nr = sms.receive(); // wait for a new message
	msg = sms.get(nr); // get the message

	if index(msg["sender"],"Ð") > -1 then // Rogers Voicemail SMS has this weird char instead of a phone number
		sms.delete(nr);
		print "Blocked voicemail text message at ", date()
	else
		print "Did not block text message from ", msg["sender"]
	end
end;

—– END SCRIPT —–