Text Messages

Christian Stredicke
CEO of Vodia Networks

The PBX supports email notifications practically from day one. Many administrators and users are using this powerful feature to stay up-do-date with events that are important to them like server restarts or voicemail messages.

In version 5.1.1 a new way to inform administrators and users has silently crept in. The good old text messaging has been added to the PBX. First only for the administrators, this new feature is testing out how the productivity can be increased by sending short messages to the administrators cell phone. Once that this has stabilized, we are ready to offer the feature also for user events.

Text messaging has its own little protocol for sending those messages. The "SMPP" (short message peer to peer) protocol is used for blasting out lots of messages. However this protocol has practical relevance only for mass text messaging with high volume. Most text messaging providers offer a HTTP-based interface as well, which simple uses a GET request with URL-encoded parameters to get the job done in a very simple way. We decided to start with the HTTP first, as it is easy to set up and troubleshoot. The PBX sends only occasional messages, so that HTTP is completely sufficient for the job. The URL can be defined on system and domain level. If defined on the domain level, only the domain administrators get notified. This is useful in multi-tenant environments where the customer has to set up and pay for the text messaging.

For example, for clickatell the following URL can be used: http://api.clickatell.com/http/sendmsg?api_id=3431425&user=vodia1234&password=tHhDHdduasJAShds&from=13434534345&mo=1&to={to-e164}&text={text}. The variable parts in the URL are encoded between curly brackets and contain the text and the destination. Other parameters like the password can be hard-coded there and are transparent to the PBX. 

In order to increase the reliability of the sending process, we have also made small changes to the HTTP client subsystem. If the delivery fails, it reschedules the request again and tries again later—up to three times.