mirror of
https://github.com/cwinfo/envayasms.git
synced 2024-11-14 20:30:26 +00:00
262 lines
10 KiB
Twig
Executable File
262 lines
10 KiB
Twig
Executable File
id: faq
|
|
title: Frequently Asked Questions
|
|
q_alternative: Why not use X as an SMS gateway instead of an Android app? (where X = Twilio, Tropo, Clickatell, FrontlineSMS, RapidSMS, Kannel, etc.)
|
|
q_rate: How fast can EnvayaSMS send SMS messages?
|
|
q_tunnel: EnvayaSMS can't connect to my dev server! What's wrong?
|
|
q_phones: What phones are compatible with EnvayaSMS?
|
|
q_battery: My battery life decreased when I use AMQP to send push notifications! What's wrong?
|
|
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?
|
|
|
|
---
|
|
|
|
<ul class='faq_links'>
|
|
<li>
|
|
<a href='#q_alternative'>{{ this.q_alternative }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_rate'>{{ this.q_rate }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_tunnel'>{{ this.q_tunnel }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_phones'>{{ this.q_phones }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_battery'>{{ this.q_battery }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_servers'>{{ this.q_servers }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_envaya_org'>{{ this.q_envaya_org }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_kalsms'>{{ this.q_kalsms }}</a>
|
|
</li>
|
|
<li>
|
|
<a href='#q_smssync'>{{ this.q_smssync }}</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<h4 id='q_alternative'>
|
|
{{ this.q_alternative }}
|
|
</h4>
|
|
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<p>
|
|
The table below summarizes the major benefits and drawbacks of each of these methods for creating an SMS gateway:
|
|
</p>
|
|
|
|
<table class='comparison_table'>
|
|
<thead>
|
|
<tr>
|
|
<td> </td>
|
|
<th>Benefits</th>
|
|
<th>Drawbacks</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th>Hosted services</th>
|
|
<td>
|
|
<ul><li>High message throughput
|
|
<li>Easy to deploy</ul>
|
|
</td>
|
|
<td>
|
|
<ul><li>No local numbers in many countries
|
|
<li>Usually no MMS support</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Connecting modem<br /> to computer</th>
|
|
<td>
|
|
<ul><li>Can work with inexpensive phone</li></ul>
|
|
</td>
|
|
<td>
|
|
<ul><li>Expensive hardware costs
|
|
<li>Lots of moving parts to keep working
|
|
<li>Very difficult for non-technical users to deploy
|
|
<li>Low message throughput
|
|
<li>No MMS support</ul>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Partnering with<br />mobile operators</th>
|
|
<td>
|
|
<ul>
|
|
<li>High message throughput
|
|
<li>Can provide free service to users via shortcode</ul>
|
|
</td>
|
|
<td>
|
|
<ul><li>Usually very expensive
|
|
<li>Requires operator approval
|
|
<li>Long setup time</li></ul>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<h4 id='q_rate'>{{ this.q_rate }}</h4>
|
|
|
|
<p>
|
|
The rate at which EnvayaSMS can send messages depends on several factors, including your phone, your network, and the length of the SMS messages you're sending.
|
|
</p>
|
|
<p>
|
|
Using an LG 540 with T-Mobile, we were able to send 50 outgoing SMS messages (each 160 characters long)
|
|
in 4 minutes 17 seconds, for an average of 1 message every 5.1 seconds (~12 messages/minute, ~700 messages/hour).
|
|
</p>
|
|
<p>
|
|
In a different test, EnvayaSMS sent 176 outgoing SMS messages (with an average length of 7 characters)
|
|
in 9 minutes 50 seconds (using the same phone), for an average of 1 message every 3.4 seconds (~18 messages/minute, ~1100 messages/hour).
|
|
</p>
|
|
<p>
|
|
To increase the rate at which you can send SMS messages, you can install EnvayaSMS on multiple phones and
|
|
balance outgoing SMS messages between them. EnvayaSMS also allows you to set priority levels on outgoing SMS messages,
|
|
so important transactional messages can be delivered before low-priority notifications.
|
|
</p>
|
|
<p>
|
|
In order to send more than 100 messages per hour with a single phone, it is necessary to install <a href='/install/#expansion'>EnvayaSMS Expansion Packs</a>.
|
|
</p>
|
|
|
|
<h4 id='q_tunnel'>{{ this.q_tunnel }}</h4>
|
|
|
|
<p>
|
|
EnvayaSMS may be unable to connect to your development web server if it is blocked by a firewall on your computer,
|
|
or if your computer has a IP address that's inaccessible from your phone's network.
|
|
</p>
|
|
|
|
<p>
|
|
If your Android phone is on the same Wi-Fi network as your development web server, configure the firewall on
|
|
your development computer to allow incoming connections to your web server, then simply enter your computer's IP address
|
|
in EnvayaSMS as the Server URL.
|
|
</p>
|
|
<p>
|
|
If you're testing with the phone's mobile data connection, or if your phone and development computer are on different
|
|
Wi-Fi networks, the IP address of your development web server is likely inaccessible to the phone.
|
|
</p>
|
|
<p>
|
|
To allow the phone to connect to your development computer, you can set up a reverse SSH tunnel between your
|
|
development computer and a server with a public IP address.
|
|
</p>
|
|
<p>
|
|
To set up a reverse SSH tunnel, you can either:
|
|
|
|
<ul>
|
|
<li>use a hosted service like <a href='http://progrium.com/localtunnel/'>localtunnel</a>, or</li>
|
|
<li>use <code>ssh -R</code> to connect to your own server accessible from the public internet. For example:
|
|
<pre>ssh -R 0.0.0.0:8765:localhost:80 [user]@[host]</pre>
|
|
<p>
|
|
This sets up port 8765 on <code>host</code> to forward to port 80 on your local development computer.
|
|
Then you can use <code>http://[host]:8765/</code> as the Server URL in EnvayaSMS, and it will be
|
|
forwarded to <code>http://localhost</code> on your development server.
|
|
</p>
|
|
<p>
|
|
Note: In order for SSH port forwarding to work, you will need to set <code>GatewayPorts yes</code> in the <code>/etc/sshd_config</code> file
|
|
on the public server.
|
|
</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h4 id='q_phones'>{{ this.q_phones }}</h4>
|
|
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
EnvayaSMS has been tested and is known to work with the following phones:
|
|
|
|
<ul>
|
|
<li><a href="http://www.amazon.com/gp/product/B0041RSFT6/ref=as_li_ss_tl?ie=UTF8&tag=envaya-20&linkCode=as2&camp=217145&creative=399373&creativeASIN=B0041RSFT6">LG GT540 Optimus (Android 2.1)</a></li>
|
|
<li><a href="http://www.amazon.com/dp/B00607JBNO/ref=pe_175190_21431760_cs_sce_dp_1?tag=envaya-20">Samsung Exhibit II 4G (Android 2.3)</a> - note linked phone is locked to T-Mobile</li>
|
|
<li><a href="http://prepaid-phones.t-mobile.com/prepaid-phone/LG-Optimus-T-Black-Prepaid">LG Optimus T (Android 2.2)</a> - note linked phone is locked to T-Mobile</li>
|
|
<li><a href="http://www.amazon.com/gp/product/B004XRJELW/ref=as_li_ss_tl?ie=UTF8&tag=envaya-20&linkCode=as2&camp=217145&creative=399373&creativeASIN=B004XRJELW">Samsung Galaxy Mini S5570</a></li>
|
|
</ul>
|
|
|
|
<h4 id='q_servers'>{{ this.q_servers }}</h4>
|
|
|
|
<p>
|
|
No. When using EnvayaSMS, your phone connects to your own web server.
|
|
The EnvayaSMS Android app does not connect to <a href='http://envaya.org'>envaya.org</a> or any third-party servers.
|
|
In particular, you do not need to register for <a href='http://envaya.org'>envaya.org</a>.
|
|
</p>
|
|
|
|
<p>
|
|
For information about configuring a web server to connect to EnvayaSMS, see the <a href='/serverapi/'>API Reference</a> page.
|
|
</p>
|
|
|
|
<p>
|
|
If you don't want to set up your own server, try <a href='http://telerivet.com'>Telerivet</a> instead, which makes it
|
|
easy to deploy an SMS service without setting up your own server.
|
|
</p>
|
|
|
|
<h4 id='q_battery'>{{ this.q_battery }}</h4>
|
|
|
|
<p>
|
|
The AMQP heartbeat setting has a significant impact on battery life. (The phone's CPU will wake up for 5 seconds in order to send each heartbeat.)
|
|
To increase the battery life, choose a longer AMQP heartbeat interval, such as 300 seconds.
|
|
</p>
|
|
|
|
<h4 id='q_envaya_org'>{{ this.q_envaya_org }}</h4>
|
|
|
|
<p>
|
|
We originally developed EnvayaSMS to enable civil society organizations in East Africa to interact with
|
|
<a href='http://envaya.org'>envaya.org</a> via SMS and MMS, such as by posting news updates and photos
|
|
to their website.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
Development of EnvayaSMS is currently led by the <a href='http://envaya.org'>envaya.org</a> team,
|
|
but anyone is welcome to contribute to improve it.
|
|
</p>
|
|
|
|
<h4 id='q_kalsms'>{{ this.q_kalsms }}</h4>
|
|
|
|
<p>
|
|
The source code for EnvayaSMS was originally based on <a href='https://github.com/niryariv/kalsms/'>KalSMS</a>, an open-source project
|
|
started by Nir Yariv in 2010. KalSMS first introduced the idea of a simple SMS gateway implemented entirely as an Android app.
|
|
</p>
|
|
|
|
<p>
|
|
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 <a href='/history/'>History</a> page.
|
|
</p>
|
|
<p>
|
|
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 <a href='/serverapi/'>API Reference</a> page.
|
|
</p>
|
|
<p>
|
|
As of 2011, KalSMS is no longer actively developed, and new development will occur on the EnvayaSMS project.
|
|
</p>
|
|
|
|
<h4 id='q_smssync'>{{ this.q_smssync }}</h4>
|
|
|
|
<p>
|
|
<a href='http://smssync.ushahidi.com/'>SMSSync SMS Gateway</a> is an alternative Android SMS gateway app developed by Ushahidi.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p> |