Overview
SMS gateways are used by CommCareHQ to send and receive text messages. Each SMS gateway is represented by a phone number - normally a gateway is setup for each country, but some gateway providers will let you send messages to many countries. Details on our SMS gateways can be found here (Gateway Options to Set up an SMS Project).
...
Excerpt |
---|
A very popular option that works in any location is to set up an Android Gateway using systems like Telerivet and a local SIM and Android device. This is our recommended approach to setting up a gateway for CommCare. |
Overview
You can setup your own Android SMS gateway with Telerivet, and integrate it with CommCareHQCommCare. An Android SMS gateway will use an Android phone and its SIM card to send and receive messages for CommCareHQ.
Below are instructions on how to get setup.
...
set this up.
Table of Contents | ||
---|---|---|
|
Set-up Steps
Below is some guidance for managing yoru Telerivet gateway. Please also visit the Telerivet User Guide, the Telerivet Gateway App instructions, and the FAQs.
What You’ll Need
You should only consider setting up a Telerivet Android gateway if you have all of the necessary materials.
You have an Android phone that you will be using exclusively for this purpose.
The phone will always be on, chared, and connected to WiFI
The phone has an active sim card to default to if the Wifi cuts out
You will monitor the phone's balance and ensure it always has enough credit to send and receive SMS. Your phone will be charged according to your plan for sending and receiving SMS
...
.
See the Telerivet FAQ which has important information, including which phones are recommended to be used
...
Step 0 - Registration of mobile workers
Anyone who will be sending SMS into the system will need to be registered in CommCare. Their numbers have to belong to a contact in your domain, otherwise, their messages can't be tied down to your domain and they won't show up in the message log. For mobile workers, this means going through the phone registration workflow, and for cases you just have to set the right case properties and it does it automatically.
Note: If you encounter difficulties registering mobile workers, please check this link
Step 1 - Create an account with Telerivet
...
:
...
...
Generate an API Key if one is not yet generated:
a)
b)
c) After generating your API key, please write down the API Key, the Project ID and Phone ID, or keep the Telerivet tab open online so that you can refer to this information in a few minutes.
...
Configure Telerivet to notify CommCareHQ when SMS are sent to your phone:
a)
b)
c) Please type in the information as shown below, and copy the following Webhook URL: https://www.commcarehq.org/telerivet/in/ (if you don't copy this exactly, your system will not work). Make sure to also write down the "Webhook secret" somewhere as well (you will need it later).
Step 2 - Integrate your Telerivet account with CommCareHQ
...
Enter the following required fields (the rest are optional):
...
Step 3 (Optional) - Copy Your Telerivet Gateway to a New Domain
If you have already set up your Telerivet gateway on CommCareHQ, you may want to copy it over to another domain for a different project. To do this:
...
Step 4: Read these Important Tips for using Telerivet with CommCare Messaging
- Please revisit Step 1, 4c. We have found that lots of people often miss this step ("For the webhook URL, be sure to include https and a "/" at the end of the URL. This is very important."), and it's incredibly important!
...
Set Up A Telerivet Account
When creating your Telerivet account, check to see where your project falls under Telerivet's pricing. It is important to set up the right pricing structure before your project goes live. For example, it's important to ensure that the number of contacts you will be sending to falls within the limit allowed on the account.
...
If you want to set your Telerivet pricing to a non-free plan, make sure that when you use your credit card to add funds to "Select a plan" that you want to use.
...
- When sending outbound SMS, you may need to throttle the rate at which you send SMS in order to comply with regulations in the country you are sending. A good rule of thumb is to not exceed the rate of 1 SMS per second, though you should check with the regulations in the country you wish to send SMS. In order to enforce the rate limit, in the Telerivet Android app, go to Phone Settings -> Message Sending Parameters -> Delay after message sent (ms), and enter the number of milliseconds to wait between sending each SMS. For example, enter 1000 to send SMS no faster than the rate of 1 SMS per second.
...
Set Up A CommCare Account
Once you have a phone and set up that meets this criteria, log into CommCare
Navigate to Messaging -> SMS Connectivity in your project space.
At the bottom of this page, click "Add Another Gateway".
...
CommCareHQ will then walk you through the steps to setup a Telerivet SMS gateway and connect it to your CommCareHQ project for sending and receiving SMS
Managing Your Telerivet Gateway
Setting up Back-up Connectivity
By default, Android phones won't automatically switch from Wi-Fi to mobile data if the phone is connected to the Wi-Fi network but the Wi-Fi network isn't connected to the internet. The Telerivet Android app lets you override that. From the Phone Settings screen in the Telerivet Android app, scroll to the bottom and enable "Network failover". Then Telerivet will automatically switch the phone from Wi-Fi to mobile data if it can't connect to telerivet's servers via Wi-Fi. This may use more airtime but will result in a more reliable connection.
Managing Stored Message Volume
It's important to be aware of the maximum number of stored messages that your Telerivet plan allows. For example, the Test Telerivet plan only allows 500 messages to be stored in the account, so after sending and receiving 500 messages total, the account will stop sending new messages until old messages are deleted. To have your Telerivet account automatically delete old messages, you can update the "Message Retention" setting for your Telerivet project (Dashboard -> Edit Settings).
If you have a large project, it is likely that your Telerivet gateway phone will eventually hit a memory capacity from storing all incoming and outgoing messages. To avoid this, you'll want to change the settings on Telerivet's website. Log into Telerivet, click "Phones" on the left side panel, select the phone that you are using, click "Edit Settings" on the top right, and click the following question from "Yes" to "No."
...
...
Managing Messaging Speed & Rates
You can read more here about Telerivet's limits here.
If there are problems with CommCareHQ and messages can't be sent from the gateway to CommCareHQ immediately, Telerivet will retry failed webhooks periodically for up to a day.
Notifications
You can setup email notifications when a phone gets disconnected or has errors by adjusting the settings for the phone on telerivet.com.
...
- Here is a guide you can download to learn about how to maintain your Telerivet Android gateway through a CommCare Messaging project.
Read more here.
You can request a message delivery report from Telerivet, meaning Telerivet will notify CommCare once a message has been delivered to its intended recipient(s). CommCare will then update the respective message logs accordingly with a "Delivered" status. This is useful when you need to know which or whether recipients have received the message. To enable this, sign in on telerivet.com → click Routes → Select the appropriate route → click Edit Settings → make sure the checkbox under "Delivery Reports" is checked.
(Optional) - Share Your Telerivet Gateway with Another Project
If you have already set up your Telerivet gateway on CommCareHQ, you may want to share it with another project. To do this:
Log into your original project space in CommCareHQ, and navigate to Messaging -> SMS Connectivity.
Select your pre-existing Telerivet Gatway and click .
Under "General Settings," check the box that says "Give other domains access." In the next question, type out the name of the project.
In the new project, make sure that you click "Set As Default" for the shared Telerivet gateway (example below called cc-messaging-test)