This page will explain some basic concepts of SMS Messaging in CommCareHQ.
SMS, as a medium, is like email in that information is not encrypted before being sent. This means that you should not include personally identifiable or sensitive information in SMS, just as you would not in an email.
SMS is also not a medium that is 100% reliable. Messages can be dropped due to network issues and often there is no way for a sender to know if the recipient actually received the message. For this reason, SMS should not be used for situations such as reaching out for help in a life-threatening emergency, and other more reliable mediums should be used instead.
With all of this in mind, SMS does make a good medium for use cases such as generic SMS messaging campaigns, appointment reminders, or alerts.
CommCareHQ uses an SMS Gateway to send and receive messages. SMS gateways are phone numbers provided by other companies (or cell phone companies) that connect to the cell phone network to send and receive messages. CommCareHQ is connected to multiple gateways to support different countries.
More information on Dimagi's existing gateways can be found Gateway Options for SMS Projects.
If your country isn't supported by Dimagi's existing gateways you can use an Android-based phone to send and receive messages for your project. This will use the phone's SIM card and SMS balance. Dimagi has partnered with Telerivet to use their system to support Android gateways. The Android phone will connect to CommCareHQ using the internet to know when to send messages and to send incoming messages to CommCareHQ.
Android phones are typically used for low volume projects since cell phone companies usually limit the number of messages that can be sent or received through a regular phone number.
A CommCare phone application can also generate an SMS from a form using the phone's default SMS application and allow the user to send this message directly to the recipient, without requiring a server. This approach gives full control to the mobile user and does not require data connectivity between the user and the server. It can therefore be useful in settings where the cell network only supports SMS messages. SMS costs are charged to the user's SIM card and CommCare cannot send these messages automatically, always requiring direct user interaction. Here is a brief description of how to set up a CommCare form to generate an SMS.
Depending on the gateway used, it can be a short code or a long code. Long codes are similar to regular phone numbers. Short codes are special phone numbers that have a specific name (ex. CommCare) or a shorter phone number and can be used to send a very high volume of messages. Short codes also allow for reverse billing.
When users send a message to your project's SMS gateway, they normally pay a per message cost - this is exactly like them sending a message to a friend. Since this cost can dissuade users from using your messaging system, some gateways are reverse billed. This means that users can send messages for free to the gateway, and you will pay for those messages instead of the user paying for them.
There are two types of costs associated with SMS - a monthly software plan cost for CommCareHQ and a per-message cost.
For larger high-volume projects in countries we do not already support, Dimagi can support connecting a new gateway to CommCareHQ if your subscription allows it. SMS gateways can be purchased directly from a cell phone company in a country, or from an aggregator that resells phone numbers. Setting up a new gateway requires a significant amount of time and can have high costs. After identifying potential providers, please use the Aggregator Evaluation Worksheet to ensure that key questions are asked and answered during meetings with respective telcos/aggregators. Once you have selected an appropriate gateway provider based on project requirements (cost, setup time, reverse billing), the gateway can be connected to CommCareHQ with assistance from Dimagi's developer team. Please contact email@example.com for more information.