id: faq title: Frequently Asked Questions q_alternative: Instead of implementing a SMS gateway as an Android app, why not use X instead? (where X = Twilio, Tropo, Clickatell, FrontlineSMS, RapidSMS, Kannel, etc.) q_phones: What phones are compatible with EnvayaSMS? q_servers: Does EnvayaSMS use envaya.org's servers? q_envaya_org: What is the relationship between EnvayaSMS and envaya.org? q_kalsms: What is the difference between EnvayaSMS and KalSMS? q_smssync: What is the difference between EnvayaSMS and SMSSync? ---

{{ this.q_alternative }}

The existing alternative methods for creating SMS gateways can generally be categorized as hosted services (e.g. Twilio, Tropo, Clickatell), connecting GSM phones/modems to a computer (e.g. FrontlineSMS, RapidSMS, Kannel), and partnering directly with mobile operators.

The table below summarizes the major benefits and drawbacks of each of these methods for creating an SMS gateway:

  Benefits Drawbacks
Hosted services
  • High message throughput
  • Easy to deploy
  • No local numbers in many countries
  • Usually no MMS support
Connecting modem
to computer
  • Can work with inexpensive phone
  • Expensive hardware costs
  • Lots of moving parts to keep working
  • Very difficult for non-technical users to deploy
  • Low message throughput
  • No MMS support
Partnering with
mobile operators
  • High message throughput
  • Can provide free service to users via shortcode
  • Usually very expensive
  • Requires operator approval
  • Long setup time

EnvayaSMS is ideal for situations where no hosted services with local numbers are available in a particular country, or when it is necessary to receive MMS messages.

EnvayaSMS likely has lower throughput than hosted services or partnering with mobile operators, but should be able to forward up to a few thousand messages per phone per day.

{{ this.q_phones }}

EnvayaSMS should work on any phone with Android 1.6 (Donut) or higher. As of 9/23/2011, over 579 different phone models are compatible with EnvayaSMS.

EnvayaSMS has been tested and is known to work with the following phones:

{{ this.q_servers }}

No. When using EnvayaSMS, your phone connects to your own web server. The EnvayaSMS Android app does not connect to envaya.org or any third-party servers. In particular, you do not need to register for envaya.org.

For information about configuring a web server to connect to EnvayaSMS, see the API Reference page.

{{ this.q_envaya_org }}

We originally developed EnvayaSMS to enable civil society organizations in East Africa to interact with envaya.org via SMS and MMS, such as by posting news updates and photos to their website.

We realized that EnvayaSMS would be useful for any web service that needs to send and receive SMS/MMS, and decided to make EnvayaSMS available for anyone building their own applications.

Development of EnvayaSMS is currently led by the envaya.org team, but anyone is welcome to contribute to improve it.

{{ this.q_kalsms }}

The source code for EnvayaSMS was originally based on KalSMS, an open-source project started by Nir Yariv in 2010. KalSMS introduced the idea of a simple SMS gateway implemented entirely as an Android app. EnvayaSMS is a complete rewrite that shares a small amount of code with KalSMS.

EnvayaSMS builds upon the idea of KalSMS by adding many new features that are necessary when deploying an SMS gateway in the field, such as sending more than 100 messages per hour, authenticating the phone to the server, and retrying forwarding messages after transient errors. For a complete list of changes, see the History page.

EnvayaSMS's server API is incompatible with that of KalSMS. Anyone switching from KalSMS to EnvayaSMS must update their server to use the new API described on the API Reference page.

As of 2011, KalSMS is no longer actively developed, and new development will occur on the EnvayaSMS project.

{{ this.q_smssync }}

SMSSync SMS Gateway is an alternative Android SMS gateway app developed by Ushahidi.

EnvayaSMS contains several features not present in the current version of SMSSync, such as receiving MMS messages, sending more than 100 outgoing SMS messages per hour, notifying the server of the status of outgoing messages, and showing log messages to facilitate troubleshooting.