SMS channel solutions
Requirement
Send a notification using SMS as a channel.
Solutions
| Kannel | Jasmin | RapidPro | Nexmo | Twilio | TextIt |
|---|---|---|---|---|---|---|
Last release | 2018-19-06 | 2015-07-12 | 2018-19-10 |
|
|
|
Website | ||||||
Last website update | 2018-19-06 | 2015-07-12 |
|
|
|
|
Configuration method | configuration file | Telnet console | website | website | website | website |
Cost per SMS | based on the SMS provider cost (can be covered by a government agreement) | based on the SMS provider cost (can be covered by a government agreement) | based on the Kannel/Jasmin/Nexmo/Twilio cost | based on the country | based on the country (from $0.0075) | $0.015 + the cost of Kannel/Jasmin/Nexmo/Twilio |
Supported interfaces | SMPP 3.3, 3.4 and 5.0 Nokia CIMD 1.37 and 2.0 CMG UCP/EMI 4.0 and 3.5 Sema Group SMS2000 OIS 4.0, 5.0 and 5.8 SM/ASI (for CriticalPath InVoke SMS Center 4.x) GSMA OneAPI v1.0 ParlayX SMS SOAP GSM modem | SMPP |
|
|
|
|
Customizable messages | No | No | Yes, by creating a flow from the website but not the REST API | No | No | Yes, by creating a flow from the website but not the REST API |
REST API | Yes | Yes | Yes | Yes | Yes | Yes |
SDK | No | No | Yes, but python only | Yes | Yes | Yes, but python only |
Docker image | Yes, but non-official, might be outdated, last updated 2 years ago | Yes, official | Yes, official |
|
|
|
Proposed solution
Kannel combined with MessageFormat seems like the best approach for our requirement as it seems to be the most versatile one. It should satisfy most of our implementers due to the sheer amount of supported interfaces and the possibility of costs being covered by the government agreements with SMS providers. It also has little to none requirements (though those might be outdated they are still coming from the official user guide) and is configurable with a single config file, which should make it easy to incorporate with our docker environment.
@Nikodem Graczewski (Unlicensed) Thanks for working on this and for asking in the Forum for feedback!
I want to suggest* expanding your consideration beyond just SMS. In my experience, WhatsApp is the most popular messaging platform in many countries where OpenLMIS is implemented. WhatsApps seems to hit the sweet spot of efficient use of bandwidth, great offline support, and good support for group conversations, and for these reasons it is used more than voice or SMS for many purposes. Because of that, I wonder if you can consider which of these platforms also support WhatsApp? Even if SMS is your first priority in scope today, using an API that supports WhatsApp and other options through a single API seems like it's worthy of consideration.
I have heard that Twilio has WhatsApp support using the same API as its SMS support. WhatsApp Business API is now available, and WhatsApp made a special offer in 2018 for Social Impact Organizations to get early/discounted access to the WhatsApp Business API (VillageReach was contacted through the Mulago Foundation and I can provide more background info if requested). Here is a case study from another early adopter, the Mom Connect program. I don't know if Twilio has a Docker image, but here is the Twilio Java Quickstart to see how simple the code is.
*Note: In writing these comments, I am wearing the 'hat' of VillageReach as a Trusted Partner and implementer. I support use of community channels like this wiki page as the way that any (every) Trusted Partner can speak up for their vision of where the OpenLMIS product should go.