mirror of
https://github.com/cwinfo/envayasms.git
synced 2024-11-15 04:40:26 +00:00
244 lines
9.1 KiB
Twig
Executable File
244 lines
9.1 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_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_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>LG GT540 Optimus</li>
|
|
<li>Samsung Galaxy Mini S5570</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>
|
|
|
|
<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> |