rename to EnvayaSMS
@ -55,10 +55,10 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS is ideal for situations where no hosted services with local numbers are available in
|
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.
|
a particular country, or when it is necessary to receive MMS messages.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
KalSMS likely has lower throughput than hosted services or partnering with mobile operators, but should
|
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.
|
be able to forward up to a few thousand messages per phone per day.
|
||||||
</p>
|
</p>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<h2>History</h2>
|
<h2>History</h2>
|
||||||
|
|
||||||
Version 2.0-beta (2011/09/19)
|
Version 2.0-beta (2011/09/22)
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@ -54,11 +54,14 @@ Version 2.0-beta (2011/09/19)
|
|||||||
Add server library and example code for PHP
|
Add server library and example code for PHP
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Create KalSMS website
|
Create EnvayaSMS website
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
Rename from KalSMS to EnvayaSMS
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Version 1a (2011/01/18)
|
<a href='https://github.com/niryariv/kalsms/tree/polling'>KalSMS Version 1a</a> (2011/01/18)
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@ -66,7 +69,7 @@ Version 1a (2011/01/18)
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Version 1 (2010/10/04)
|
<a href='https://github.com/niryariv/kalsms'>KalSMS version 1</a> (2010/10/04)
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<h2>How it Works</h2>
|
<h2>How it Works</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In the simplest configuration, KalSMS only needs to be installed on one phone.
|
In the simplest configuration, EnvayaSMS only needs to be installed on one phone.
|
||||||
Suppose that you have installed KalSMS on an Android phone in Dar es Salaam,
|
Suppose that you have installed EnvayaSMS on an Android phone in Dar es Salaam,
|
||||||
Tanzania, with phone number <code>+255987654321</code> (local number <code>0987654321</code>),
|
Tanzania, with phone number <code>+255987654321</code> (local number <code>0987654321</code>),
|
||||||
with GSM service from Zantel.
|
with GSM service from Zantel.
|
||||||
</p>
|
</p>
|
||||||
@ -13,7 +13,7 @@ Suppose also that your web server is <code>example.com</code>, and its servers a
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
In Dar es Salaam, you would put the Android phone in an office with internet access and a Wi-Fi router,
|
In Dar es Salaam, you would put the Android phone in an office with internet access and a Wi-Fi router,
|
||||||
and connect the phone to the Wi-Fi network. (Wi-Fi is not strictly necessary, since KalSMS will also
|
and connect the phone to the Wi-Fi network. (Wi-Fi is not strictly necessary, since EnvayaSMS will also
|
||||||
work over the phone's mobile data connection, but Wi-Fi is likely to be more reliable and cheaper.)
|
work over the phone's mobile data connection, but Wi-Fi is likely to be more reliable and cheaper.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -26,21 +26,21 @@ TODO
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Typically your organization will need only one phone running KalSMS in a
|
Typically your organization will need only one phone running EnvayaSMS in a
|
||||||
particular country. However, it is possible to use multiple phones to load-balance requests
|
particular country. However, it is possible to use multiple phones to load-balance requests
|
||||||
for higher throughput, to offer different user services, or to serve different mobile networks.
|
for higher throughput, to offer different user services, or to serve different mobile networks.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Receiving incoming SMS and sending replies</h3>
|
<h3>Receiving incoming SMS and sending replies</h3>
|
||||||
|
|
||||||
<p>Here is an example of how KalSMS would forward an incoming SMS to your server, and send a SMS back as a reply:</p>
|
<p>Here is an example of how EnvayaSMS would forward an incoming SMS to your server, and send a SMS back as a reply:</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>User in Tanzania, using Nokia phone with phone number <code>0555551234</code>, sends SMS message to <code>0987654321</code></li>
|
<li>User in Tanzania, using Nokia phone with phone number <code>0555551234</code>, sends SMS message to <code>0987654321</code></li>
|
||||||
<li>Your Android phone at <code>0987654321</code> receives SMS</li>
|
<li>Your Android phone at <code>0987654321</code> receives SMS</li>
|
||||||
<li>KalSMS sends SMS to <code>example.com</code> via HTTP</li>
|
<li>EnvayaSMS sends SMS to <code>example.com</code> via HTTP</li>
|
||||||
<li>example.com processes the message and returns SMS reply in HTTP response</li>
|
<li>example.com processes the message and returns SMS reply in HTTP response</li>
|
||||||
<li>KalSMS forwards SMS reply to <code>0555551234</code></li>
|
<li>EnvayaSMS forwards SMS reply to <code>0555551234</code></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -50,9 +50,9 @@ for sending one local SMS message, and your phone would also be charged for send
|
|||||||
|
|
||||||
<h3>Sending outgoing SMS notifications</h3>
|
<h3>Sending outgoing SMS notifications</h3>
|
||||||
|
|
||||||
<p>KalSMS uses a different process to send SMS notifications that were not in response to an incoming message.</p>
|
<p>EnvayaSMS uses a different process to send SMS notifications that were not in response to an incoming message.</p>
|
||||||
|
|
||||||
<p>Assume now that <code>example.com</code> has multiple phones using KalSMS in different countries,
|
<p>Assume now that <code>example.com</code> has multiple phones using EnvayaSMS in different countries,
|
||||||
and it is configured to send all messages to phone numbers with a <code>255</code> prefix (Tanzania's country code)
|
and it is configured to send all messages to phone numbers with a <code>255</code> prefix (Tanzania's country code)
|
||||||
via the cell phone with number <code>+255987654321</code>.
|
via the cell phone with number <code>+255987654321</code>.
|
||||||
|
|
||||||
@ -60,12 +60,12 @@ via the cell phone with number <code>+255987654321</code>.
|
|||||||
<li><code>example.com</code> wants to send an SMS message to <code>+255555551234</code></li>
|
<li><code>example.com</code> wants to send an SMS message to <code>+255555551234</code></li>
|
||||||
<li><code>example.com</code> identifies that the recipient number has a <code>255</code>
|
<li><code>example.com</code> identifies that the recipient number has a <code>255</code>
|
||||||
prefix, and chooses sender phone number <code>+255987654321</code></li>
|
prefix, and chooses sender phone number <code>+255987654321</code></li>
|
||||||
<li>The next time KalSMS polls <code>example.com</code> for queued outgoing messages
|
<li>The next time EnvayaSMS polls <code>example.com</code> for queued outgoing messages
|
||||||
for its phone number <code>+255987654321</code>, the server responds with
|
for its phone number <code>+255987654321</code>, the server responds with
|
||||||
the message to send
|
the message to send
|
||||||
</li>
|
</li>
|
||||||
<li>KalSMS forwards the message to <code>0555551234</code></li>
|
<li>EnvayaSMS forwards the message to <code>0555551234</code></li>
|
||||||
<li>KalSMS notifies <code>example.com</code> via HTTP that message was sent</li>
|
<li>EnvayaSMS notifies <code>example.com</code> via HTTP that message was sent</li>
|
||||||
<li><code>example.com</code> removes the SMS message from its queue of outgoing messages.</li>
|
<li><code>example.com</code> removes the SMS message from its queue of outgoing messages.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
|
@ -3,13 +3,13 @@ layout: default.twig
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
<div style='float:right;padding-left:10px;padding-bottom:10px'>
|
<div style='float:right;padding-left:10px;padding-bottom:10px'>
|
||||||
<img src='media/screenshot-main.png' width='211' height='347' />
|
<img src='media/screenshot-main.png' width='212' height='350' />
|
||||||
<br />
|
<br />
|
||||||
<img src='media/screenshot-settings.png' width='211' height='347' />
|
<img src='media/screenshot-settings.png' width='212' height='350' />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
KalSMS is a SMS/MMS gateway running entirely as an Android app.
|
EnvayaSMS is a SMS and MMS gateway running entirely as an Android app.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
It forwards incoming SMS and MMS messages to a web server on the Internet, and sends
|
It forwards incoming SMS and MMS messages to a web server on the Internet, and sends
|
||||||
@ -18,7 +18,7 @@ outgoing messages from the web server to other phones.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
People with any type of mobile phone can send SMS and MMS to a phone
|
People with any type of mobile phone can send SMS and MMS to a phone
|
||||||
running KalSMS, without needing their own Android phone.
|
running EnvayaSMS, without needing their own Android phone.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -26,34 +26,34 @@ It works wherever the phone can receive SMS messages and access the Internet
|
|||||||
(via Wi-Fi or mobile data connection).
|
(via Wi-Fi or mobile data connection).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Why KalSMS?</h2>
|
<h2>Why EnvayaSMS?</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS can be used to enable a web service to send and receive SMS and MMS messages
|
EnvayaSMS can be used to enable a web service to send and receive SMS and MMS messages
|
||||||
nearly anywhere in the world.
|
nearly anywhere in the world.
|
||||||
</p>
|
</p>
|
||||||
<p> In particular, it is useful in countries where obtaining a local virtual phone number
|
<p> In particular, it is useful in countries where obtaining a local virtual phone number
|
||||||
or SMS shortcode is difficult, expensive, or impossible. A phone running KalSMS
|
or SMS shortcode is difficult, expensive, or impossible. A phone running EnvayaSMS
|
||||||
connects to the phone network in the same way as any other mobile phone,
|
connects to the phone network in the same way as any other mobile phone,
|
||||||
so it can be set up without needing approval from anyone else.
|
so it can be set up without needing approval from anyone else.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS is designed to to be maintainable even when deployed in remote locations
|
EnvayaSMS is designed to to be maintainable even when deployed in remote locations
|
||||||
that cannot easily be accessed by your organization's technical staff. KalSMS is simple
|
that cannot easily be accessed by your organization's technical staff. EnvayaSMS is simple
|
||||||
enough for non-technical users to do all setup and maintenance of deployed phones.
|
enough for non-technical users to do all setup and maintenance of deployed phones.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Price</h2>
|
<h2>Price</h2>
|
||||||
<p>
|
<p>
|
||||||
KalSMS is free to install on as many phones as you'd like.
|
EnvayaSMS is free to install on as many phones as you'd like.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
In order to deploy KalSMS, you will need a messaging plan for your phone, and the phone itself.
|
In order to deploy EnvayaSMS, you will need a messaging plan for your phone, and the phone itself.
|
||||||
KalSMS is compatible with many old or inexpensive Android phones, e.g. the LG GT540, currently $120 on Amazon.com.
|
EnvayaSMS is compatible with many old or inexpensive Android phones, e.g. the LG GT540, currently $120 on Amazon.com.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<a href='install.html' class='button'>
|
<a href='install.html' class='button'>
|
||||||
Install KalSMS Now
|
Install EnvayaSMS Now
|
||||||
</a>
|
</a>
|
@ -1,8 +1,8 @@
|
|||||||
layout: default.twig
|
layout: default.twig
|
||||||
---
|
---
|
||||||
<h2>Installing KalSMS</h2>
|
<h2>Installing EnvayaSMS</h2>
|
||||||
|
|
||||||
Before installing KalSMS, ensure that you have the following prerequisites:
|
Before installing EnvayaSMS, ensure that you have the following prerequisites:
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>One or more Android phones (1.6 Donut or higher) that are
|
<li>One or more Android phones (1.6 Donut or higher) that are
|
||||||
@ -14,7 +14,7 @@ Before installing KalSMS, ensure that you have the following prerequisites:
|
|||||||
<li> A web server accessible from the public internet </li>
|
<li> A web server accessible from the public internet </li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
To install the current release version of KalSMS on an Android phone,
|
To install the current release version of EnvayaSMS on an Android phone,
|
||||||
either scan the barcode below with a QR code app,
|
either scan the barcode below with a QR code app,
|
||||||
or click the link from your phone's browser. <br />
|
or click the link from your phone's browser. <br />
|
||||||
|
|
||||||
@ -22,17 +22,17 @@ or click the link from your phone's browser. <br />
|
|||||||
<img src='media/qr.png' width='175' height='175' style='vertical-align:middle' />
|
<img src='media/qr.png' width='175' height='175' style='vertical-align:middle' />
|
||||||
<em>or</em>
|
<em>or</em>
|
||||||
<span style='font-size:20px;font-weight:bold'>
|
<span style='font-size:20px;font-weight:bold'>
|
||||||
<a href="https://github.com/downloads/youngj/KalSMS/kalsms.apk">Install KalSMS</a>
|
<a href="https://github.com/downloads/youngj/EnvayaSMS/envayasms.apk">Install EnvayaSMS</a>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Alternatively, software developers may <a href="https://github.com/youngj/KalSMS">download the source code from GitHub</a>
|
Alternatively, software developers may <a href="https://github.com/youngj/EnvayaSMS">download the source code from GitHub</a>
|
||||||
and build KalSMS themselves.
|
and build EnvayaSMS themselves.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Configuring KalSMS</h2>
|
<h2>Configuring EnvayaSMS</h2>
|
||||||
|
|
||||||
<h3>Server Configuration</h3>
|
<h3>Server Configuration</h3>
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ It is assumed that your organization already has an HTTP server, or has the tech
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Follow the instructions in the <a href='serverapi.html'>API Reference</a> page to learn how to construct a
|
Follow the instructions in the <a href='serverapi.html'>API Reference</a> page to learn how to construct a
|
||||||
resource on your HTTP server that can communicate with KalSMS.
|
resource on your HTTP server that can communicate with EnvayaSMS.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Phone Configuration</h3>
|
<h3>Phone Configuration</h3>
|
||||||
@ -53,14 +53,14 @@ resource on your HTTP server that can communicate with KalSMS.
|
|||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
After your server is configured, configure KalSMS on your phone to connect to your server as follows:
|
After your server is configured, configure EnvayaSMS on your phone to connect to your server as follows:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
|
|
||||||
<li>Open the KalSMS app</li>
|
<li>Open the EnvayaSMS app</li>
|
||||||
<li>Click the Menu button, then "Settings"</li>
|
<li>Click the Menu button, then "Settings"</li>
|
||||||
<li>Configure KalSMS to work with your server by entering:</li>
|
<li>Configure EnvayaSMS to work with your server by entering:</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li>your server URL</li>
|
<li>your server URL</li>
|
||||||
<li>your phone number</li>
|
<li>your phone number</li>
|
||||||
@ -68,41 +68,40 @@ After your server is configured, configure KalSMS on your phone to connect to yo
|
|||||||
</ul>
|
</ul>
|
||||||
<li>Choose an interval to poll for new outgoing messages</li>
|
<li>Choose an interval to poll for new outgoing messages</li>
|
||||||
<li><em>Recommended:</em> under Wi-Fi sleep policy, select "always stay connected".
|
<li><em>Recommended:</em> under Wi-Fi sleep policy, select "always stay connected".
|
||||||
(Otherwise, KalSMS will be unable to forward messages after the phone goes to sleep.)
|
(Otherwise, EnvayaSMS will be unable to forward messages after the phone goes to sleep.)
|
||||||
</li>
|
</li>
|
||||||
<li>Check "Enable KalSMS"</li>
|
<li>Check "Enable EnvayaSMS"</li>
|
||||||
<li>Click the Back button to return to the main screen</li>
|
<li>Click the Back button to return to the main screen</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To test if KalSMS has been configured properly and can connect
|
To test if EnvayaSMS has been configured properly and can connect
|
||||||
to your server, open the KalSMS app, click the Menu button,
|
to your server, open the EnvayaSMS app, click the Menu button,
|
||||||
then click "Test Connection".
|
then click "Test Connection".
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<strong>Important:</strong> After KalSMS is enabled, it will forward all SMS messages regardless of whether the
|
<strong>Important:</strong> After EnvayaSMS is enabled, it will forward all SMS messages regardless of whether the
|
||||||
KalSMS app is open. If you want to use SMS normally again, return to KalSMS' settings screen
|
EnvayaSMS app is open. If you want to use SMS normally again, return to EnvayaSMS' settings screen
|
||||||
and uncheck "Enable KalSMS".
|
and uncheck "Enable EnvayaSMS".
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Installing Expansion Packs</h3>
|
<h3>Installing Expansion Packs</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
By default, Android prevents KalSMS from sending more than 100 outgoing SMS messages per hour.
|
By default, Android prevents EnvayaSMS from sending more than 100 outgoing SMS messages per hour.
|
||||||
However, that limit can be increased by installing KalSMS Expansion Packs.
|
However, that limit can be increased by installing EnvayaSMS Expansion Packs.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Each Expansion Pack allows KalSMS to increase its sending limit by an additional 100 outgoing SMS messages
|
Each Expansion Pack allows EnvayaSMS to increase its sending limit by an additional 100 outgoing SMS messages
|
||||||
per hour. For example, if you install 14 expansion packs, KalSMS will be able to send up to 1500 outgoing SMS messages
|
per hour. For example, if you install 14 expansion packs, EnvayaSMS will be able to send up to 1500 outgoing SMS messages
|
||||||
per hour.
|
per hour.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a href='http://envaya.org/_media/kalsms-pack01.apk'>KalSMS Expansion Pack 01</a><br />
|
TODO add download links
|
||||||
<a href='http://envaya.org/_media/kalsms-pack02.apk'>KalSMS Expansion Pack 02</a>
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
With Expansion Packs, KalSMS is limited only by how fast your phone can send and receive SMS,
|
With Expansion Packs, EnvayaSMS is limited only by how fast your phone can send and receive SMS,
|
||||||
and by your mobile provider's usage limits and terms of service.
|
and by your mobile provider's usage limits and terms of service.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -3,18 +3,18 @@ layout: default.twig
|
|||||||
<h2>Server API Reference</h2>
|
<h2>Server API Reference</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS communicates with the server via HTTP POST requests that expect an XML response.
|
EnvayaSMS communicates with the server via HTTP POST requests that expect an XML response.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
For convenience, KalSMS includes <a href='https://github.com/youngj/KalSMS/tree/master/server'>server libraries and example code</a>
|
For convenience, EnvayaSMS includes <a href='https://github.com/youngj/EnvayaSMS/tree/master/server'>server libraries and example code</a>
|
||||||
for certain languages to simplify handling its POST requests and generating response XML.
|
for certain languages to simplify handling its POST requests and generating response XML.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If a server library is not yet available for your programming language, you can still use
|
If a server library is not yet available for your programming language, you can still use
|
||||||
KalSMS by implementing code in accordance with the API reference below.
|
EnvayaSMS by implementing code in accordance with the API reference below.
|
||||||
We encourage you to contribute new libraries and example code back to the KalSMS project!
|
We encourage you to contribute new libraries and example code back to the EnvayaSMS project!
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
@ -24,15 +24,15 @@ HTTP Request Format
|
|||||||
<h4>Example requests</h4>
|
<h4>Example requests</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In each of the example requests below, the Server URL is <code style='white-space:nowrap'>http://192.168.70.1:3000/sg/kalsms</code>
|
In each of the example requests below, the Server URL is <code style='white-space:nowrap'>http://192.168.70.1:3000/sg/EnvayaSMS</code>
|
||||||
and the phone number of the phone with KalSMS is <code>16505551212</code>.
|
and the phone number of the phone with EnvayaSMS is <code>16505551212</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>An incoming SMS from <code>6505551234</code> with message body "test":</p>
|
<p>An incoming SMS from <code>6505551234</code> with message body "test":</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: sAemG31uRllk/K9xck2WRNaF/WI=
|
X-EnvayaSMS-Signature: sAemG31uRllk/K9xck2WRNaF/WI=
|
||||||
Content-Length: 96
|
Content-Length: 96
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -44,8 +44,8 @@ from=6505551234&message_type=sms&message=test&version=2&phone_number=16505551212
|
|||||||
<p>An incoming MMS message with an <code>image/jpeg</code> part and a <code>text/plain</code> part with message 'Test':</p>
|
<p>An incoming MMS message with an <code>image/jpeg</code> part and a <code>text/plain</code> part with message 'Test':</p>
|
||||||
|
|
||||||
<pre style='white-space:pre-wrap'>
|
<pre style='white-space:pre-wrap'>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: OgpiQet9guVhEp+0klrONR8qGNs=
|
X-EnvayaSMS-Signature: OgpiQet9guVhEp+0klrONR8qGNs=
|
||||||
Content-Length: 13087
|
Content-Length: 13087
|
||||||
Content-Type: multipart/form-data; boundary=i66xAht5IMn1Tfk7tL9DgY8ZHZxq0d0RGB6_wkjO
|
Content-Type: multipart/form-data; boundary=i66xAht5IMn1Tfk7tL9DgY8ZHZxq0d0RGB6_wkjO
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -132,8 +132,8 @@ Content-Transfer-Encoding: binary
|
|||||||
<p>Checking for outgoing SMS messages:</p>
|
<p>Checking for outgoing SMS messages:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: 139CL71b7r1Zw/E2wcccWFviSlg=
|
X-EnvayaSMS-Signature: 139CL71b7r1Zw/E2wcccWFviSlg=
|
||||||
Content-Length: 50
|
Content-Length: 50
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -145,8 +145,8 @@ action=outgoing&version=2&phone_number=16505551212
|
|||||||
<p>Notifying the server of the status of a sent message:</p>
|
<p>Notifying the server of the status of a sent message:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: 6uJtI6+QqlVBbUsR4T0WsQomods=
|
X-EnvayaSMS-Signature: 6uJtI6+QqlVBbUsR4T0WsQomods=
|
||||||
Content-Length: 80
|
Content-Length: 80
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -158,28 +158,28 @@ id=1536&status=sent&error=&action=send_status&version=2&phone_number=16505551212
|
|||||||
<h4>Specification</h4>
|
<h4>Specification</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The following parameters are sent in all POST requests from KalSMS:
|
The following parameters are sent in all POST requests from EnvayaSMS:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>"version" ::= <integer></dt>
|
<dt>"version" ::= <integer></dt>
|
||||||
<dd>
|
<dd>
|
||||||
KalSMS's version code. This is an integer that will be incremented whenever
|
EnvayaSMS's version code. This is an integer that will be incremented whenever
|
||||||
a new version of KalSMS is released. (It is not the same as the version name shown
|
a new version of EnvayaSMS is released. (It is not the same as the version name shown
|
||||||
on the Help screen.)
|
on the Help screen.)
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
This allows the server to support phones running different API versions at the same time.
|
This allows the server to support phones running different API versions at the same time.
|
||||||
If a deployment has many phones running with KalSMS, the server should update its code first,
|
If a deployment has many phones running with EnvayaSMS, the server should update its code first,
|
||||||
then the phones can be upgraded to the new version of KalSMS as convenient.
|
then the phones can be upgraded to the new version of EnvayaSMS as convenient.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>"phone_number" ::= <text></dt>
|
<dt>"phone_number" ::= <text></dt>
|
||||||
<dd>
|
<dd>
|
||||||
The phone number of the phone running KalSMS, as entered under Menu > Settings.
|
The phone number of the phone running EnvayaSMS, as entered under Menu > Settings.
|
||||||
<br /><br />
|
<br /><br />
|
||||||
This allows the server to differentiate between KalSMS clients if multiple phones
|
This allows the server to differentiate between EnvayaSMS clients if multiple phones
|
||||||
are running KalSMS.
|
are running EnvayaSMS.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>"action" ::= "outgoing" | "incoming" | "send_status"</dt>
|
<dt>"action" ::= "outgoing" | "incoming" | "send_status"</dt>
|
||||||
@ -208,10 +208,10 @@ The following parameters are sent in all POST requests from KalSMS:
|
|||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
The following HTTP Headers are sent in all POST requests from KalSMS:
|
The following HTTP Headers are sent in all POST requests from EnvayaSMS:
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>"X-Kalsms-Signature" ::= <text></dt>
|
<dt>"X-EnvayaSMS-Signature" ::= <text></dt>
|
||||||
<dd>
|
<dd>
|
||||||
A signature of the request to verify the phone and the server share the same password.
|
A signature of the request to verify the phone and the server share the same password.
|
||||||
(This doesn't protect against MITM snooping or replay attacks, so it is recommended to
|
(This doesn't protect against MITM snooping or replay attacks, so it is recommended to
|
||||||
@ -382,7 +382,7 @@ The Content-Type header should be text/xml, with the content as follows:
|
|||||||
<dl>
|
<dl>
|
||||||
<dt>"id" ::= <text> (optional)</dt>
|
<dt>"id" ::= <text> (optional)</dt>
|
||||||
<dd>
|
<dd>
|
||||||
An ID for this outgoing message. (KalSMS will send this
|
An ID for this outgoing message. (EnvayaSMS will send this
|
||||||
back to the server as the id field in a send_status request.)
|
back to the server as the id field in a send_status request.)
|
||||||
</dd>
|
</dd>
|
||||||
<dt>"to" ::= <text> (optional for incoming, required for outgoing)</dt>
|
<dt>"to" ::= <text> (optional for incoming, required for outgoing)</dt>
|
||||||
|
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -35,7 +37,7 @@
|
|||||||
{{ content }}
|
{{ content }}
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
BIN
.phrozn/media/icon.png
Executable file
After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 589 B |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 63 KiB |
@ -47,12 +47,12 @@ dd
|
|||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 700px;
|
width: 700px;
|
||||||
}
|
}
|
||||||
h1 { margin-top:0; font-size: 3.8em; color: #678bf0; margin-bottom: 3px; }
|
h1 { margin-top:0; font-size: 42px; color: #6b9412; margin-bottom: 3px; }
|
||||||
h1 .small { font-size: 0.4em; color:#666; }
|
h1 .small { font-size: 20px; color:#666; }
|
||||||
h1 a { text-decoration: none }
|
h1 a { text-decoration: none }
|
||||||
h2 { font-size: 1.5em; color: #678bf0; }
|
h2 { font-size: 1.5em; color: #6b9412; }
|
||||||
h3 { color: #678bf0; }
|
h3 { color: #6b9412; }
|
||||||
a { color: #678bf0; }
|
a { color: #6b9412; }
|
||||||
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
|
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
|
||||||
.download { float: right; }
|
.download { float: right; }
|
||||||
pre {
|
pre {
|
||||||
@ -64,7 +64,7 @@ hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
|
|||||||
.button
|
.button
|
||||||
{
|
{
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
display:block;margin:0 auto;width:200px;background:#68f;color:white;padding:8px;font-weight:bold;text-align:center;
|
display:block;margin:0 auto;width:200px;background:#6b9412;color:white;padding:8px;font-weight:bold;text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.button:hover
|
a.button:hover
|
||||||
|
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -89,16 +91,16 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS is ideal for situations where no hosted services with local numbers are available in
|
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.
|
a particular country, or when it is necessary to receive MMS messages.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
KalSMS likely has lower throughput than hosted services or partnering with mobile operators, but should
|
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.
|
be able to forward up to a few thousand messages per phone per day.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
27
history.html
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -34,7 +36,7 @@
|
|||||||
|
|
||||||
<h2>History</h2>
|
<h2>History</h2>
|
||||||
|
|
||||||
Version 2.0-beta (2011/09/19)
|
Version 2.0-beta (2011/09/22)
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@ -88,11 +90,14 @@ Version 2.0-beta (2011/09/19)
|
|||||||
Add server library and example code for PHP
|
Add server library and example code for PHP
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Create KalSMS website
|
Create EnvayaSMS website
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
Rename from KalSMS to EnvayaSMS
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Version 1a (2011/01/18)
|
<a href='https://github.com/niryariv/kalsms/tree/polling'>KalSMS Version 1a</a> (2011/01/18)
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@ -100,7 +105,7 @@ Version 1a (2011/01/18)
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Version 1 (2010/10/04)
|
<a href='https://github.com/niryariv/kalsms'>KalSMS version 1</a> (2010/10/04)
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@ -109,7 +114,7 @@ Version 1 (2010/10/04)
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
40
how.html
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -35,8 +37,8 @@
|
|||||||
<h2>How it Works</h2>
|
<h2>How it Works</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In the simplest configuration, KalSMS only needs to be installed on one phone.
|
In the simplest configuration, EnvayaSMS only needs to be installed on one phone.
|
||||||
Suppose that you have installed KalSMS on an Android phone in Dar es Salaam,
|
Suppose that you have installed EnvayaSMS on an Android phone in Dar es Salaam,
|
||||||
Tanzania, with phone number <code>+255987654321</code> (local number <code>0987654321</code>),
|
Tanzania, with phone number <code>+255987654321</code> (local number <code>0987654321</code>),
|
||||||
with GSM service from Zantel.
|
with GSM service from Zantel.
|
||||||
</p>
|
</p>
|
||||||
@ -47,7 +49,7 @@ Suppose also that your web server is <code>example.com</code>, and its servers a
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
In Dar es Salaam, you would put the Android phone in an office with internet access and a Wi-Fi router,
|
In Dar es Salaam, you would put the Android phone in an office with internet access and a Wi-Fi router,
|
||||||
and connect the phone to the Wi-Fi network. (Wi-Fi is not strictly necessary, since KalSMS will also
|
and connect the phone to the Wi-Fi network. (Wi-Fi is not strictly necessary, since EnvayaSMS will also
|
||||||
work over the phone's mobile data connection, but Wi-Fi is likely to be more reliable and cheaper.)
|
work over the phone's mobile data connection, but Wi-Fi is likely to be more reliable and cheaper.)
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -60,21 +62,21 @@ TODO
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Typically your organization will need only one phone running KalSMS in a
|
Typically your organization will need only one phone running EnvayaSMS in a
|
||||||
particular country. However, it is possible to use multiple phones to load-balance requests
|
particular country. However, it is possible to use multiple phones to load-balance requests
|
||||||
for higher throughput, to offer different user services, or to serve different mobile networks.
|
for higher throughput, to offer different user services, or to serve different mobile networks.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Receiving incoming SMS and sending replies</h3>
|
<h3>Receiving incoming SMS and sending replies</h3>
|
||||||
|
|
||||||
<p>Here is an example of how KalSMS would forward an incoming SMS to your server, and send a SMS back as a reply:</p>
|
<p>Here is an example of how EnvayaSMS would forward an incoming SMS to your server, and send a SMS back as a reply:</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
<li>User in Tanzania, using Nokia phone with phone number <code>0555551234</code>, sends SMS message to <code>0987654321</code></li>
|
<li>User in Tanzania, using Nokia phone with phone number <code>0555551234</code>, sends SMS message to <code>0987654321</code></li>
|
||||||
<li>Your Android phone at <code>0987654321</code> receives SMS</li>
|
<li>Your Android phone at <code>0987654321</code> receives SMS</li>
|
||||||
<li>KalSMS sends SMS to <code>example.com</code> via HTTP</li>
|
<li>EnvayaSMS sends SMS to <code>example.com</code> via HTTP</li>
|
||||||
<li>example.com processes the message and returns SMS reply in HTTP response</li>
|
<li>example.com processes the message and returns SMS reply in HTTP response</li>
|
||||||
<li>KalSMS forwards SMS reply to <code>0555551234</code></li>
|
<li>EnvayaSMS forwards SMS reply to <code>0555551234</code></li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -84,9 +86,9 @@ for sending one local SMS message, and your phone would also be charged for send
|
|||||||
|
|
||||||
<h3>Sending outgoing SMS notifications</h3>
|
<h3>Sending outgoing SMS notifications</h3>
|
||||||
|
|
||||||
<p>KalSMS uses a different process to send SMS notifications that were not in response to an incoming message.</p>
|
<p>EnvayaSMS uses a different process to send SMS notifications that were not in response to an incoming message.</p>
|
||||||
|
|
||||||
<p>Assume now that <code>example.com</code> has multiple phones using KalSMS in different countries,
|
<p>Assume now that <code>example.com</code> has multiple phones using EnvayaSMS in different countries,
|
||||||
and it is configured to send all messages to phone numbers with a <code>255</code> prefix (Tanzania's country code)
|
and it is configured to send all messages to phone numbers with a <code>255</code> prefix (Tanzania's country code)
|
||||||
via the cell phone with number <code>+255987654321</code>.
|
via the cell phone with number <code>+255987654321</code>.
|
||||||
|
|
||||||
@ -94,12 +96,12 @@ via the cell phone with number <code>+255987654321</code>.
|
|||||||
<li><code>example.com</code> wants to send an SMS message to <code>+255555551234</code></li>
|
<li><code>example.com</code> wants to send an SMS message to <code>+255555551234</code></li>
|
||||||
<li><code>example.com</code> identifies that the recipient number has a <code>255</code>
|
<li><code>example.com</code> identifies that the recipient number has a <code>255</code>
|
||||||
prefix, and chooses sender phone number <code>+255987654321</code></li>
|
prefix, and chooses sender phone number <code>+255987654321</code></li>
|
||||||
<li>The next time KalSMS polls <code>example.com</code> for queued outgoing messages
|
<li>The next time EnvayaSMS polls <code>example.com</code> for queued outgoing messages
|
||||||
for its phone number <code>+255987654321</code>, the server responds with
|
for its phone number <code>+255987654321</code>, the server responds with
|
||||||
the message to send
|
the message to send
|
||||||
</li>
|
</li>
|
||||||
<li>KalSMS forwards the message to <code>0555551234</code></li>
|
<li>EnvayaSMS forwards the message to <code>0555551234</code></li>
|
||||||
<li>KalSMS notifies <code>example.com</code> via HTTP that message was sent</li>
|
<li>EnvayaSMS notifies <code>example.com</code> via HTTP that message was sent</li>
|
||||||
<li><code>example.com</code> removes the SMS message from its queue of outgoing messages.</li>
|
<li><code>example.com</code> removes the SMS message from its queue of outgoing messages.</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
@ -109,7 +111,7 @@ all SMS messages are sent domestically and are not charged as international SMS
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
42
index.html
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -35,13 +37,13 @@
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
<div style='float:right;padding-left:10px;padding-bottom:10px'>
|
<div style='float:right;padding-left:10px;padding-bottom:10px'>
|
||||||
<img src='media/screenshot-main.png' width='211' height='347' />
|
<img src='media/screenshot-main.png' width='212' height='350' />
|
||||||
<br />
|
<br />
|
||||||
<img src='media/screenshot-settings.png' width='211' height='347' />
|
<img src='media/screenshot-settings.png' width='212' height='350' />
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
KalSMS is a SMS/MMS gateway running entirely as an Android app.
|
EnvayaSMS is a SMS and MMS gateway running entirely as an Android app.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
It forwards incoming SMS and MMS messages to a web server on the Internet, and sends
|
It forwards incoming SMS and MMS messages to a web server on the Internet, and sends
|
||||||
@ -50,7 +52,7 @@ outgoing messages from the web server to other phones.
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
People with any type of mobile phone can send SMS and MMS to a phone
|
People with any type of mobile phone can send SMS and MMS to a phone
|
||||||
running KalSMS, without needing their own Android phone.
|
running EnvayaSMS, without needing their own Android phone.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -58,40 +60,40 @@ It works wherever the phone can receive SMS messages and access the Internet
|
|||||||
(via Wi-Fi or mobile data connection).
|
(via Wi-Fi or mobile data connection).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Why KalSMS?</h2>
|
<h2>Why EnvayaSMS?</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS can be used to enable a web service to send and receive SMS and MMS messages
|
EnvayaSMS can be used to enable a web service to send and receive SMS and MMS messages
|
||||||
nearly anywhere in the world.
|
nearly anywhere in the world.
|
||||||
</p>
|
</p>
|
||||||
<p> In particular, it is useful in countries where obtaining a local virtual phone number
|
<p> In particular, it is useful in countries where obtaining a local virtual phone number
|
||||||
or SMS shortcode is difficult, expensive, or impossible. A phone running KalSMS
|
or SMS shortcode is difficult, expensive, or impossible. A phone running EnvayaSMS
|
||||||
connects to the phone network in the same way as any other mobile phone,
|
connects to the phone network in the same way as any other mobile phone,
|
||||||
so it can be set up without needing approval from anyone else.
|
so it can be set up without needing approval from anyone else.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS is designed to to be maintainable even when deployed in remote locations
|
EnvayaSMS is designed to to be maintainable even when deployed in remote locations
|
||||||
that cannot easily be accessed by your organization's technical staff. KalSMS is simple
|
that cannot easily be accessed by your organization's technical staff. EnvayaSMS is simple
|
||||||
enough for non-technical users to do all setup and maintenance of deployed phones.
|
enough for non-technical users to do all setup and maintenance of deployed phones.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Price</h2>
|
<h2>Price</h2>
|
||||||
<p>
|
<p>
|
||||||
KalSMS is free to install on as many phones as you'd like.
|
EnvayaSMS is free to install on as many phones as you'd like.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
In order to deploy KalSMS, you will need a messaging plan for your phone, and the phone itself.
|
In order to deploy EnvayaSMS, you will need a messaging plan for your phone, and the phone itself.
|
||||||
KalSMS is compatible with many old or inexpensive Android phones, e.g. the LG GT540, currently $120 on Amazon.com.
|
EnvayaSMS is compatible with many old or inexpensive Android phones, e.g. the LG GT540, currently $120 on Amazon.com.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<a href='install.html' class='button'>
|
<a href='install.html' class='button'>
|
||||||
Install KalSMS Now
|
Install EnvayaSMS Now
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
65
install.html
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -32,9 +34,9 @@
|
|||||||
<a href='history.html'>History</a>
|
<a href='history.html'>History</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h2>Installing KalSMS</h2>
|
<h2>Installing EnvayaSMS</h2>
|
||||||
|
|
||||||
Before installing KalSMS, ensure that you have the following prerequisites:
|
Before installing EnvayaSMS, ensure that you have the following prerequisites:
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>One or more Android phones (1.6 Donut or higher) that are
|
<li>One or more Android phones (1.6 Donut or higher) that are
|
||||||
@ -46,7 +48,7 @@ Before installing KalSMS, ensure that you have the following prerequisites:
|
|||||||
<li> A web server accessible from the public internet </li>
|
<li> A web server accessible from the public internet </li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
To install the current release version of KalSMS on an Android phone,
|
To install the current release version of EnvayaSMS on an Android phone,
|
||||||
either scan the barcode below with a QR code app,
|
either scan the barcode below with a QR code app,
|
||||||
or click the link from your phone's browser. <br />
|
or click the link from your phone's browser. <br />
|
||||||
|
|
||||||
@ -54,17 +56,17 @@ or click the link from your phone's browser. <br />
|
|||||||
<img src='media/qr.png' width='175' height='175' style='vertical-align:middle' />
|
<img src='media/qr.png' width='175' height='175' style='vertical-align:middle' />
|
||||||
<em>or</em>
|
<em>or</em>
|
||||||
<span style='font-size:20px;font-weight:bold'>
|
<span style='font-size:20px;font-weight:bold'>
|
||||||
<a href="https://github.com/downloads/youngj/KalSMS/kalsms.apk">Install KalSMS</a>
|
<a href="https://github.com/downloads/youngj/EnvayaSMS/envayasms.apk">Install EnvayaSMS</a>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Alternatively, software developers may <a href="https://github.com/youngj/KalSMS">download the source code from GitHub</a>
|
Alternatively, software developers may <a href="https://github.com/youngj/EnvayaSMS">download the source code from GitHub</a>
|
||||||
and build KalSMS themselves.
|
and build EnvayaSMS themselves.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Configuring KalSMS</h2>
|
<h2>Configuring EnvayaSMS</h2>
|
||||||
|
|
||||||
<h3>Server Configuration</h3>
|
<h3>Server Configuration</h3>
|
||||||
|
|
||||||
@ -74,7 +76,7 @@ It is assumed that your organization already has an HTTP server, or has the tech
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
Follow the instructions in the <a href='serverapi.html'>API Reference</a> page to learn how to construct a
|
Follow the instructions in the <a href='serverapi.html'>API Reference</a> page to learn how to construct a
|
||||||
resource on your HTTP server that can communicate with KalSMS.
|
resource on your HTTP server that can communicate with EnvayaSMS.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Phone Configuration</h3>
|
<h3>Phone Configuration</h3>
|
||||||
@ -85,14 +87,14 @@ resource on your HTTP server that can communicate with KalSMS.
|
|||||||
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
After your server is configured, configure KalSMS on your phone to connect to your server as follows:
|
After your server is configured, configure EnvayaSMS on your phone to connect to your server as follows:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
|
|
||||||
<li>Open the KalSMS app</li>
|
<li>Open the EnvayaSMS app</li>
|
||||||
<li>Click the Menu button, then "Settings"</li>
|
<li>Click the Menu button, then "Settings"</li>
|
||||||
<li>Configure KalSMS to work with your server by entering:</li>
|
<li>Configure EnvayaSMS to work with your server by entering:</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li>your server URL</li>
|
<li>your server URL</li>
|
||||||
<li>your phone number</li>
|
<li>your phone number</li>
|
||||||
@ -100,41 +102,40 @@ After your server is configured, configure KalSMS on your phone to connect to yo
|
|||||||
</ul>
|
</ul>
|
||||||
<li>Choose an interval to poll for new outgoing messages</li>
|
<li>Choose an interval to poll for new outgoing messages</li>
|
||||||
<li><em>Recommended:</em> under Wi-Fi sleep policy, select "always stay connected".
|
<li><em>Recommended:</em> under Wi-Fi sleep policy, select "always stay connected".
|
||||||
(Otherwise, KalSMS will be unable to forward messages after the phone goes to sleep.)
|
(Otherwise, EnvayaSMS will be unable to forward messages after the phone goes to sleep.)
|
||||||
</li>
|
</li>
|
||||||
<li>Check "Enable KalSMS"</li>
|
<li>Check "Enable EnvayaSMS"</li>
|
||||||
<li>Click the Back button to return to the main screen</li>
|
<li>Click the Back button to return to the main screen</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To test if KalSMS has been configured properly and can connect
|
To test if EnvayaSMS has been configured properly and can connect
|
||||||
to your server, open the KalSMS app, click the Menu button,
|
to your server, open the EnvayaSMS app, click the Menu button,
|
||||||
then click "Test Connection".
|
then click "Test Connection".
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<strong>Important:</strong> After KalSMS is enabled, it will forward all SMS messages regardless of whether the
|
<strong>Important:</strong> After EnvayaSMS is enabled, it will forward all SMS messages regardless of whether the
|
||||||
KalSMS app is open. If you want to use SMS normally again, return to KalSMS' settings screen
|
EnvayaSMS app is open. If you want to use SMS normally again, return to EnvayaSMS' settings screen
|
||||||
and uncheck "Enable KalSMS".
|
and uncheck "Enable EnvayaSMS".
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Installing Expansion Packs</h3>
|
<h3>Installing Expansion Packs</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
By default, Android prevents KalSMS from sending more than 100 outgoing SMS messages per hour.
|
By default, Android prevents EnvayaSMS from sending more than 100 outgoing SMS messages per hour.
|
||||||
However, that limit can be increased by installing KalSMS Expansion Packs.
|
However, that limit can be increased by installing EnvayaSMS Expansion Packs.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Each Expansion Pack allows KalSMS to increase its sending limit by an additional 100 outgoing SMS messages
|
Each Expansion Pack allows EnvayaSMS to increase its sending limit by an additional 100 outgoing SMS messages
|
||||||
per hour. For example, if you install 14 expansion packs, KalSMS will be able to send up to 1500 outgoing SMS messages
|
per hour. For example, if you install 14 expansion packs, EnvayaSMS will be able to send up to 1500 outgoing SMS messages
|
||||||
per hour.
|
per hour.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a href='http://envaya.org/_media/kalsms-pack01.apk'>KalSMS Expansion Pack 01</a><br />
|
TODO add download links
|
||||||
<a href='http://envaya.org/_media/kalsms-pack02.apk'>KalSMS Expansion Pack 02</a>
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
With Expansion Packs, KalSMS is limited only by how fast your phone can send and receive SMS,
|
With Expansion Packs, EnvayaSMS is limited only by how fast your phone can send and receive SMS,
|
||||||
and by your mobile provider's usage limits and terms of service.
|
and by your mobile provider's usage limits and terms of service.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@ -142,7 +143,7 @@ and uncheck "Enable KalSMS".
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
BIN
media/icon.png
Executable file
After Width: | Height: | Size: 7.5 KiB |
BIN
media/logo.png
Executable file
After Width: | Height: | Size: 25 KiB |
BIN
media/qr.png
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 589 B |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 63 KiB |
@ -2,23 +2,25 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset='utf-8'>
|
<meta charset='utf-8'>
|
||||||
<title>KalSMS</title>
|
<title>EnvayaSMS</title>
|
||||||
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
<link rel='stylesheet' type='text/css' href='styles/site.css' />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<a href="http://github.com/youngj/KalSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
<a href="http://github.com/youngj/EnvayaSMS"><img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a>
|
||||||
|
|
||||||
<div id="container">
|
<div id="container">
|
||||||
|
|
||||||
<h1><a href="index.html">KalSMS</a>
|
<a style='float:left' href="index.html"><img src='media/icon.png' height='72' width='72' style='margin-right:10px' /></a>
|
||||||
|
<h1 style='padding-top:13px'><a href="index.html">EnvayaSMS</a>
|
||||||
|
|
||||||
<span class="small">
|
<span class="small">
|
||||||
SMS/MMS gateway for Android
|
SMS gateway for Android
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<div class='menu'>
|
<div class='menu' style='clear:both;padding-top:5px'>
|
||||||
<a href='index.html'>Home</a>
|
<a href='index.html'>Home</a>
|
||||||
·
|
·
|
||||||
<a href='install.html'>Install</a>
|
<a href='install.html'>Install</a>
|
||||||
@ -35,18 +37,18 @@
|
|||||||
<h2>Server API Reference</h2>
|
<h2>Server API Reference</h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
KalSMS communicates with the server via HTTP POST requests that expect an XML response.
|
EnvayaSMS communicates with the server via HTTP POST requests that expect an XML response.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
For convenience, KalSMS includes <a href='https://github.com/youngj/KalSMS/tree/master/server'>server libraries and example code</a>
|
For convenience, EnvayaSMS includes <a href='https://github.com/youngj/EnvayaSMS/tree/master/server'>server libraries and example code</a>
|
||||||
for certain languages to simplify handling its POST requests and generating response XML.
|
for certain languages to simplify handling its POST requests and generating response XML.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If a server library is not yet available for your programming language, you can still use
|
If a server library is not yet available for your programming language, you can still use
|
||||||
KalSMS by implementing code in accordance with the API reference below.
|
EnvayaSMS by implementing code in accordance with the API reference below.
|
||||||
We encourage you to contribute new libraries and example code back to the KalSMS project!
|
We encourage you to contribute new libraries and example code back to the EnvayaSMS project!
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
@ -56,15 +58,15 @@ HTTP Request Format
|
|||||||
<h4>Example requests</h4>
|
<h4>Example requests</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
In each of the example requests below, the Server URL is <code style='white-space:nowrap'>http://192.168.70.1:3000/sg/kalsms</code>
|
In each of the example requests below, the Server URL is <code style='white-space:nowrap'>http://192.168.70.1:3000/sg/EnvayaSMS</code>
|
||||||
and the phone number of the phone with KalSMS is <code>16505551212</code>.
|
and the phone number of the phone with EnvayaSMS is <code>16505551212</code>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>An incoming SMS from <code>6505551234</code> with message body "test":</p>
|
<p>An incoming SMS from <code>6505551234</code> with message body "test":</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: sAemG31uRllk/K9xck2WRNaF/WI=
|
X-EnvayaSMS-Signature: sAemG31uRllk/K9xck2WRNaF/WI=
|
||||||
Content-Length: 96
|
Content-Length: 96
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -76,8 +78,8 @@ from=6505551234&message_type=sms&message=test&version=2&phone_number=16505551212
|
|||||||
<p>An incoming MMS message with an <code>image/jpeg</code> part and a <code>text/plain</code> part with message 'Test':</p>
|
<p>An incoming MMS message with an <code>image/jpeg</code> part and a <code>text/plain</code> part with message 'Test':</p>
|
||||||
|
|
||||||
<pre style='white-space:pre-wrap'>
|
<pre style='white-space:pre-wrap'>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: OgpiQet9guVhEp+0klrONR8qGNs=
|
X-EnvayaSMS-Signature: OgpiQet9guVhEp+0klrONR8qGNs=
|
||||||
Content-Length: 13087
|
Content-Length: 13087
|
||||||
Content-Type: multipart/form-data; boundary=i66xAht5IMn1Tfk7tL9DgY8ZHZxq0d0RGB6_wkjO
|
Content-Type: multipart/form-data; boundary=i66xAht5IMn1Tfk7tL9DgY8ZHZxq0d0RGB6_wkjO
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -164,8 +166,8 @@ Content-Transfer-Encoding: binary
|
|||||||
<p>Checking for outgoing SMS messages:</p>
|
<p>Checking for outgoing SMS messages:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: 139CL71b7r1Zw/E2wcccWFviSlg=
|
X-EnvayaSMS-Signature: 139CL71b7r1Zw/E2wcccWFviSlg=
|
||||||
Content-Length: 50
|
Content-Length: 50
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -177,8 +179,8 @@ action=outgoing&version=2&phone_number=16505551212
|
|||||||
<p>Notifying the server of the status of a sent message:</p>
|
<p>Notifying the server of the status of a sent message:</p>
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
POST /sg/kalsms HTTP/1.1
|
POST /sg/EnvayaSMS HTTP/1.1
|
||||||
X-Kalsms-Signature: 6uJtI6+QqlVBbUsR4T0WsQomods=
|
X-EnvayaSMS-Signature: 6uJtI6+QqlVBbUsR4T0WsQomods=
|
||||||
Content-Length: 80
|
Content-Length: 80
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
Host: 192.168.70.1:3000
|
Host: 192.168.70.1:3000
|
||||||
@ -190,28 +192,28 @@ id=1536&status=sent&error=&action=send_status&version=2&phone_number=16505551212
|
|||||||
<h4>Specification</h4>
|
<h4>Specification</h4>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The following parameters are sent in all POST requests from KalSMS:
|
The following parameters are sent in all POST requests from EnvayaSMS:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>"version" ::= <integer></dt>
|
<dt>"version" ::= <integer></dt>
|
||||||
<dd>
|
<dd>
|
||||||
KalSMS's version code. This is an integer that will be incremented whenever
|
EnvayaSMS's version code. This is an integer that will be incremented whenever
|
||||||
a new version of KalSMS is released. (It is not the same as the version name shown
|
a new version of EnvayaSMS is released. (It is not the same as the version name shown
|
||||||
on the Help screen.)
|
on the Help screen.)
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
This allows the server to support phones running different API versions at the same time.
|
This allows the server to support phones running different API versions at the same time.
|
||||||
If a deployment has many phones running with KalSMS, the server should update its code first,
|
If a deployment has many phones running with EnvayaSMS, the server should update its code first,
|
||||||
then the phones can be upgraded to the new version of KalSMS as convenient.
|
then the phones can be upgraded to the new version of EnvayaSMS as convenient.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>"phone_number" ::= <text></dt>
|
<dt>"phone_number" ::= <text></dt>
|
||||||
<dd>
|
<dd>
|
||||||
The phone number of the phone running KalSMS, as entered under Menu > Settings.
|
The phone number of the phone running EnvayaSMS, as entered under Menu > Settings.
|
||||||
<br /><br />
|
<br /><br />
|
||||||
This allows the server to differentiate between KalSMS clients if multiple phones
|
This allows the server to differentiate between EnvayaSMS clients if multiple phones
|
||||||
are running KalSMS.
|
are running EnvayaSMS.
|
||||||
</dd>
|
</dd>
|
||||||
|
|
||||||
<dt>"action" ::= "outgoing" | "incoming" | "send_status"</dt>
|
<dt>"action" ::= "outgoing" | "incoming" | "send_status"</dt>
|
||||||
@ -240,10 +242,10 @@ The following parameters are sent in all POST requests from KalSMS:
|
|||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
The following HTTP Headers are sent in all POST requests from KalSMS:
|
The following HTTP Headers are sent in all POST requests from EnvayaSMS:
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>"X-Kalsms-Signature" ::= <text></dt>
|
<dt>"X-EnvayaSMS-Signature" ::= <text></dt>
|
||||||
<dd>
|
<dd>
|
||||||
A signature of the request to verify the phone and the server share the same password.
|
A signature of the request to verify the phone and the server share the same password.
|
||||||
(This doesn't protect against MITM snooping or replay attacks, so it is recommended to
|
(This doesn't protect against MITM snooping or replay attacks, so it is recommended to
|
||||||
@ -414,7 +416,7 @@ The Content-Type header should be text/xml, with the content as follows:
|
|||||||
<dl>
|
<dl>
|
||||||
<dt>"id" ::= <text> (optional)</dt>
|
<dt>"id" ::= <text> (optional)</dt>
|
||||||
<dd>
|
<dd>
|
||||||
An ID for this outgoing message. (KalSMS will send this
|
An ID for this outgoing message. (EnvayaSMS will send this
|
||||||
back to the server as the id field in a send_status request.)
|
back to the server as the id field in a send_status request.)
|
||||||
</dd>
|
</dd>
|
||||||
<dt>"to" ::= <text> (optional for incoming, required for outgoing)</dt>
|
<dt>"to" ::= <text> (optional for incoming, required for outgoing)</dt>
|
||||||
@ -453,7 +455,7 @@ OK
|
|||||||
|
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
get the source code on GitHub : <a href="http://github.com/youngj/KalSMS">youngj/KalSMS</a>
|
get the source code on GitHub : <a href="http://github.com/youngj/EnvayaSMS">youngj/EnvayaSMS</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -47,12 +47,12 @@ dd
|
|||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 700px;
|
width: 700px;
|
||||||
}
|
}
|
||||||
h1 { margin-top:0; font-size: 3.8em; color: #678bf0; margin-bottom: 3px; }
|
h1 { margin-top:0; font-size: 42px; color: #6b9412; margin-bottom: 3px; }
|
||||||
h1 .small { font-size: 0.4em; color:#666; }
|
h1 .small { font-size: 20px; color:#666; }
|
||||||
h1 a { text-decoration: none }
|
h1 a { text-decoration: none }
|
||||||
h2 { font-size: 1.5em; color: #678bf0; }
|
h2 { font-size: 1.5em; color: #6b9412; }
|
||||||
h3 { color: #678bf0; }
|
h3 { color: #6b9412; }
|
||||||
a { color: #678bf0; }
|
a { color: #6b9412; }
|
||||||
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
|
.description { font-size: 1.2em; margin-bottom: 30px; margin-top: 30px; font-style: italic;}
|
||||||
.download { float: right; }
|
.download { float: right; }
|
||||||
pre {
|
pre {
|
||||||
@ -64,7 +64,7 @@ hr { border: 0; width: 80%; border-bottom: 1px solid #aaa}
|
|||||||
.button
|
.button
|
||||||
{
|
{
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
display:block;margin:0 auto;width:200px;background:#68f;color:white;padding:8px;font-weight:bold;text-align:center;
|
display:block;margin:0 auto;width:200px;background:#6b9412;color:white;padding:8px;font-weight:bold;text-align:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
a.button:hover
|
a.button:hover
|
||||||
|