First of all, I would like to thank for all your comments and apologize for the slow response. I required further research to be able to respond to all the questions and suggestions properly.
I have dig deeper into all the service providers (I have omitted all the software solutions as I have a feeling that we’re leaning heavily away from them) and I can confirm that all of them (Nexmo, Twilio and RapidPro) all have some kind of message status logging accessible through their websites. Unfortunately, I was unable to find any information about re-sending messages when they are not sent successfully. However, all the services provide a method of informing whether a specific message was sent or not.
Thanks for pointing to RapidPro. I have included it in the comparison.
I have picked up Kannel as it seemed the most flexible in terms of supported protocols and the fact that it didn’t add any per-message cost at the top of the SMS provider cost. The amount of work that would be needed on the notification side is comparable with any other service/software providers as all provide a REST APIs for communication. However, we would also have to work on a way to include Kannel instance in OpenLMIS and make it easily configurable (which might not be the case as @joshzamor mentioned). Personally, I was thinking about creating a docker image for as the one I pointed in the comparison seems to be outdated.
I believe that it is not the purpose of this flag. As far as I understand the intent of “important” flag is to ignore user preferences on whether they want to be notified. Currently, it is used for sending auth-related notifications like password reset emails.
I totally agree that we’re not comparing apples to apples here. The reason for that is it was challenging for me to find a common ground for all of the solutions to be summarized on a single page. I would also mention that TextIt and RapidPro were included as separate solutions as they differ in how the cost is laid out (upfront versus per message).
Thanks for pointing out that Kannel would be a more costly solution. I wasn’t really expecting the upfront cost to be that high to make the ongoing per message cost to be a cheaper approach. Could you explain why the cost of setting up Kannel is so high?
I’ve looked into Nexmo and Twilio and both have support for WhatsApp, but those features are in early access/beta stages and are marked as Limited Availability. Also, they both seem to be pretty similar to code against and both of them provide Java SDKs.
I can see that we’re leaning towards TextIt as it provides the most flexibility. It has support for Nexmo, Twilio and Kannel and it can even be substituted by RapidPro (as, as far as I know, TextIt is just a provider of RapidPro so the REST API should be the same). So, here’s my concern about it. I know that it provides a mean for message customization but that would only work for the channels handled by TextIt, right? I couldn’t find any information about TextIt supporting email as a channel so we would have to build that functionality into OpenLMIS itself anyway. Considering this, would the per-message cost on top of the cost of Nexmo/Twilio/Kannel still be justifiable?
I can create a ticket for further researching RapidPro/TextIt so someone from team Mind the Gap can look into it. What information/features of TextIt are we interested in? What would be the product of this ticket?
Unfortunately, I will be unable to attend Tech Committee call on January 22nd and thus I would suggest moving the discussion to the next Tech Committee or scheduling a separate meeting to talk about it.