SMSsync is a simple SMS to HTTP sync utility. It turns any Android phone into a local SMS gateway that syncs to the web.
SMSsync supports filtering text messages by keywords and can transmit the text message to a configured callback URL via HTTP POST request. We already used this internally in the Ushahidi Android app, and we decided that it was a valuable enough utility to create a simple app around it for everyone to use.
Instructions
- To start the SMSSync Gateway, you’ll need to specify a callback URL. This URL is where all incoming text messages will be transmitted to.
- For security you can specify at secret at the callback URL. If the secret doesn’t match, the callback URL will ignore the transmission.
- Additionally, you can specify keywords with which to filter incoming messages. Only matching text messages will be sent to the SMSSync Gateway URL.
- The SMSSync sends the following variables via the POST method:
- from
- message
- secret
Genesis
A couple months ago, on one of my trips to the US, David and I were sitting working in a coffeeshop and started talking about how we could make it easy for people without access to computers to easily send SMS messages to Ushahidi. Of course, you still need a phone, but at least in this case it’ll cost you less. Henry Addo, in Ghana, got started on it, and we’ve got the first release to show you now.
The design was to be able to send SMS reports to Ushahidi by just putting the deployment particulars into it. As long as your phone has an internet connection and power, you can just put it in the corner and let it chug away syncing incoming reports to Ushahidi.
Other Uses
Realizing that SMSsync had a lot of value for other use cases beyond Ushahidi, we set simple parameters for it. For instance, you can create your own in-country SMS-to-Twitter app now utilizing SMSsync and the Twitter API. We’re playing around with this in Nairobi right now, and it works great. Another example, imagine a radio station using SMSSync to have users respond to something on air. There are hundreds of use applications for this.
We think there might be a good reason to create SMSsync for other mobile platforms as well. If you’d like to get involved with that, let us know.
We’re looking forward to seeing if everyone else finds this as useful as we do. Let us know what you do with it.
SMSsync is also built in as a plugin for the next release of Ushahidi (v2.0) “Luanda” coming out very soon.

34 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
Very cool. There are so many great possibilities here as you say. I love that you guys are building the tools that will enable larger projects.
As always..very mzuri stuff
Nice! Just released a similar Android SMS gateway about a month ago – http://kalsms.net – ping me at niryariv@gmail.com if you wanna to compare notes
Very very cool. With SMS tariffs as low as they are this could lead some very interesting applications coming up.
@Nir – KalSMS looks great, are you going to add a secure key on it?
Erik
More feature requests
Can this app be configured to send to multiple urls, depending on the keywords? Then a single instance of SMSsync could for example forward to multiple Ushahidi instances.
You’re right, there are hundreds of uses for this. I see a lot of similar apps out there but yours looks very polished. Great work!
I’ll be curious to hear more about how you integrate this in to Ushahidi.
Very cool app! Thanks for this. We’ve been thinking of automating mobile payments for shops powered by DukaPress (www.dukapress.org) and we think this may be achieved nicely using SMSsync. We’re looking into this. Cheers!
Wow, a lot of feature requests for MMS, GPS, 2-way sync, multiple syncing and such… phew! Maybe the next version will be called something like SMSMMSGPSsync.
@Erik, thanks! Didn’t add a secure key so far, expect this to be handled by the server (request IP etc) if needed – but I might be wrong, I guess. Do see consider this a major requirement?
Great! I’d been ‘getting around’ to doing this for close to a month… Now this would revolutionize mobile money/accounts for online trading without a pc. It’s got to be feature phone simple though. Will definitely check it out!
Cheers
Uber cool indeed! I was actually just talking about this very thing with Yofi and she was asking if it was possible to link sms with twitter. Can’t wait 2 try it. Forward ever!
It’s very nice application, need to show response text of submit url after submitting sms text, can u give the prompt to delete the SMS when u get response from the submitted url.
A Symbian S60 alternative: FromSMS http://www.fromsms.net
I was just asking about this on the FrontlineSMS forums and they pointed me here. This is a great alternative as a backup gateway with lots of upside – security, easy monitoring, and you don’t lose a laptop.
Any experimentation using this at scale yet? I wonder if it will perform faster than FSMS?
Any chances of open-sourcing this project?
This is brilliant. And i have just the perfect use for it.
Very interesting post, thanks for the great read!
@Jeremy – all of our code is open sourced by default under an LGPL license.
Update. SMSsync has been upgraded to v1.0.3 http://blog.ushahidi.com/index.php/2011/01/30/smssync-upgrade-v1-0-3/
I love this stuff! nice job
Strangely seems you are going to replicate Kannel (www.kannel.org). Well it has quite some more features and the necessary HW is much more easily available for it.
I am curious how to configure this app to use the twitter api. I can not figure it out, can someone give an example?
Can someone list sms plugin that work with ushahidi
i’ve configured smssync in android with my crowd map, using my site.crowdmap.com/smssync as url to syncronize. but it doesn’t work: i can recive my sms with the tag #stopsfratti but then it is not able to sent it to crowdmap, sayng that there are problem with configuration. can u help my?
Are you planning to enable pushing of tasks such as sending sms by email? How long will SMSSync wait for a reply from the server?
@Patrik Not sure about the callback timeout (I assume this is a configuration variable somewhere) but if you would like to send the SMS as email, you could compile a small script that runs on a web server (PHP would probably be simplest for this task) that will handle the HTTP request and send the mail out. If you would like, I could provide you with some examples of how to do this. You just need the following:
http://php.net/manual/en/reserved.variables.post.php
http://php.net/manual/en/function.mail.php
@Patrik, Yes, we have it in the roadmap to allow task to send SMS as Email. SMSSync scheduler can be configured to start running every 5 minutes. See here for more info http://smssync.ushahidi.com/
@evoltech you will have to look at SMSSync’s doc and the twitter api. http://smssync.ushahidi.com/doc/ and https://dev.twitter.com/docs
aaagneees if you set a value for the secret field make sure its the same for both the phone and crowdmap.
Also, make sure the sync URL is configured with https because crowdmap runs on HTTPS.
I am trying to configure SMSSync to run with Ushahidi installation. Not really sure why it is not working. Have went thought all the guides available. I have following URL to hit
http://something.com/frontlinesms/?key=XXXXXXXX&s=${sender_number}&m=${message_content}
Not really sure about the configuration. Using following:
Sync URL: http://something.com/frontlinesms/
Secret: XXXXXXXX
Unique ID: 55555
Please let me know about how to handle this part: &s=${sender_number}&m=${message_content}
@Henry, @Charl: Sorry, I was unclear. What I meant, was if I could send an email to an account watched by the SMSSync app, and SMSSync would then parse that email for tasks such as sending SMS. Then again, maybe it is simpler to poll an http server every minute rather than an imap server.
@Henry: Could you please consider adding shorter sync intervals in the settings here: https://github.com/ushahidi/SMSSync/blob/master/src/org/addhen/smssync/Settings.java
Thanks a lot!
@ALL, SyncSMS just saved my ass from learning android to create my own because I could not find any app of such kind suitable for what I wanted, syncSMS proved to be just perfect just after using KalSMS(its limitation it is lite weight), EnvayaSMS hich is also up to standards though I fount its JSON response abit complicated for my use. Do check out http://sms.piqcha.com to see whats happening!!!
Thanks Eugene!
This is application is good. I’m using it to pass my SMS to my webserver, this works fine.
The major problem I have is the Import SMS. If you import the imported messages show the incorrect Sender NO. e.g. An MPESA message displays random sender’s numbers from your phone book.
In my callback script, I have allowed on some sender’s number. Any disallowed sender makes the application crash.