Giter Club home page Giter Club logo

android-sms-relay's Introduction

Android SMS Relay

This is a simple SMS relayer. It essentially turns your Android phone into an SMS modem that will relay messages to an HTTP server of your choice and vice versa.

We use this quite a bit in our work, so we thought we'd open it up to the world. Note that this particular codebase is still pretty Alpha and we've been cleaning it up for the outside world. It very well might break, but we appreciate any and all testing and bug reports.

Things that make it different than other solutions:

  • we are backed by a database for persistence, we think that makes it less likely a message will be dropped in the case of power outages, reboots, or other issues
  • we have a prettier message UI than the other guys
  • we will toggle Wifi on or off in the case of network errors.. this can be useful in places where WiFi is not reliable as the phone will then back down to GSM when it is acting up (and automatically switch back to WiFi when it starts working again)
  • easy integration with our RapidSMS httprouter module. (http://github.com/nyaruka/rapidsms-httprouter)

This is still pretty early stuff, so any feedback or bug reports much appreciated.

INSTALL

You can build this yourself if you'd like, you'll need version 3.* of actionbar-sherlock though. Until we hit the market, I'd recommend using the pre-build APK at:

https://github.com/downloads/nyaruka/android-sms-relay/android-sms-relay.apk

image

TODO

  • Allow user to configure a regex for which messages to handle (ie, only those starting with a particular keyword)
  • Allow configuration of the handset via a file attachment, could make client configuration easier
  • Even more reliability / paranoia updates to make sure a message never gets lost
  • Remove messages from the SMS inbox

LICENSE

Android SMS Relay is licensed under the GPL v3. You are free to modify and distribute this software, and modify it as you see fit. You can even charge for it, but you must make the source code freely available forr anybody to download. Note that you cannot use any part of this software without falling under the license, please refer to LICENSE.txt for details.

CHANGELOG

0.0.5

  • Replaced Sherlockactionbar with Android Actionbarcompatibility
  • Change password through the preferences
  • Use password as preference incoming keyword
  • Set preferred network through preferences
  • Change preferred network using sms e.g "password data|wifi"
  • The preferred network will take effect based on the next update interval
  • Clear messages using sms e.g "password clear"
  • The process to tickle airplane mode and when to do so
  • Always tickle the default APN to make sure that after airplane the Mobile data is perfectly working
  • Removed the airplane hack in the preference
  • Replaced the airplane mode hack with the ability to send sms to reset e.g "password reset"

0.0.4

  • add an empty view when first entering the app, slightly prettier
  • allow separately toggling whether any outgoing messages from the server will be processed
  • fix a bug where refresh intervals > 30 mins wheren't taking effect

0.0.3

  • switch to use ActionBar Sherlock so we can have a consistent 4.0+ look to the app. Doesn't look uber pretty on 2.3 devices, but it is ok and much better than Nyaruka banner
  • new silly icon, better than Nyaruka icon
  • tweak the WiFi/GSM backdown so that it'll work when the phone is tethering to a local IP. We used to check against Google.com, now we strictly start toggling based on IOExceptions to our endpoints. So it'll work in an isolated environment still. (todo, make this configurable?)
  • kick the sync service when we get SENT notifications, causing the server to be up to date more quickly

0.0.2

  • try to ping google.com before accessing server, if it fails, flip our WiFi state (from off to on or vice versa) then try again, restoring the state at the end
  • trim our database to most recent 100 messages which have been handled
  • fix a nasty bug with deliveries
  • add RapidSMS endpoint configuration
  • other little fixes

0.0.1

  • Initial release

android-sms-relay's People

Contributors

nicpottier avatar nyacode avatar reugene avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-sms-relay's Issues

Remove actionbarsherlock dependency.

I was retarded for adding it, it really doesn't add anything of value for an app that nobody will ever look at and the build process is made far more complicated. dumb dumb dumb

Add SMS alerting option

In addition the alerting that takes place through the server it would be nice to add optional alerting via SMS. The user would just have to set the mobile number they want alerts sent to. We could then add outgoing SMS functionality to our alert() method in RelayService.

Add throttling of messages to particular recipient

As we recently found out, it is possible to get in a loop with another automated sender and burn through all our credit. Though the server should be the ultimate arbitrator for this, we should add a failsafe to the relayer.

This is easier said than done though. It isn't necessarily clear how we differentiate real messages which very well might be repeated from others at the relayer level.

Some ideas:

  • if a user has sent more than N of the exact same message in M time to the relayer, ignore it. The trick is knowing what N and M are. This also likely wouldn't work if the automated responders on either side change their message somehow. Maybe 10 messages in the last five minute as a boundary?
  • have a setting in the relayer to automatically ignore numbers from anything that doesn't look like a phone number?

using textit in China

hey there. im a medical student interested in starting an open project in mainland china. google play store is not available here. i managed to sideload the apk to install your android channel but it gets hung up on syncing google account. i do not have vpn access. is there a way to bypass this? i aleady created a textit account but unable to add channel. thanks

Add delivery reports

We currently only tell the server when SMS messages are sent, but not if messages have actually been delivered. This information is available and would be a really nice addition to both the relayer and HTTP router. Enhancing HTTP Router to display outgoing messages different based on whether they have been queued, sent, and delivered would be part of this task.

JS Error

when you receive an SMS I receive an error. java android no peer certificate. And the query occurs. Tried http and https

is this a malware?

I installed this application from the prebuilt apk package. Few days after using it I saw the prompt of SuperSu indicating SMS Relayer did execute the su binary.

Please explain.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.