Skip to content


Launching SMSsync: An Android Phone as SMS Gateway

SMSsync - a simple SMS to HTTP sync utility from Ushahidi

SMSsync - a simple SMS to HTTP sync utility from Ushahidi

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

qrcode

  • 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

[Download SMSsync here]

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

SMSsync logoRealizing 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.

Posted in Development, Mobile, Ushahidi. Tagged with , , , , , , , .

34 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. 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.

  2. As always..very mzuri stuff

  3. 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 :)

  4. Very very cool. With SMS tariffs as low as they are this could lead some very interesting applications coming up.

  5. @Nir – KalSMS looks great, are you going to add a secure key on it?

  6. 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.

  7. 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.

  8. 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!

  9. 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. :)

  10. @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?

  11. 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

  12. Zawadi said

    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!

  13. anil said

    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.

  14. giohappy said

    A Symbian S60 alternative: FromSMS http://www.fromsms.net

  15. 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?

  16. Jeremy Gordon said

    Any chances of open-sourcing this project?

  17. This is brilliant. And i have just the perfect use for it.

  18. Very interesting post, thanks for the great read!

  19. @Jeremy – all of our code is open sourced by default under an LGPL license.

  20. I love this stuff! nice job

  21. 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.

  22. I am curious how to configure this app to use the twitter api. I can not figure it out, can someone give an example?

  23. Can someone list sms plugin that work with ushahidi

  24. aaagneees said

    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?

  25. Patrik Hirvinen said

    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?

  26. @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

  27. @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/

  28. @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.

  29. Omer said

    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}

  30. Patrik Hirvinen said

    @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!

  31. @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!!!

  32. hleson said

    Thanks Eugene!

  33. 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.

Some HTML is OK

(required)

(required, but never shared)

or, reply to this post via trackback.