Forum OpenACS Q&A: OpenACS and SMS
I was wondering who has developed SMS applications using OpenACS and what was the approach taken.
I know that it's possible to connect to SMS aggregators via HTTP interfaces, but those connections are very slow. I am interested in anybody that has integrated an OpenACS application with an SMPP interface for a high volume SMS system.
My initial research suggests that Kannel, an open source WAP and SMS gateway, is the best open source solution. It essentially can translate HTTP to SMPP, CIMD2 or any other standard or proprietary protocol that the SMS aggregators speak.
If anyone has comments, I'd be delighted to hear them.
Hamilton Chua and Roel Canicula for outbound/inbound messages on www.e-sulat.com.ph (now defunct). Concept was a post on a webpage to SMS(?) for use by Overseas Filipino Workers to send to a relative in the Philippines and that same person can reply via SMS and it will appear in the sender's inbox in Openacs. Ham/Roel correct me if I'm wrong.
and Ham again for www.tala-arawan.net, inbound MMS messages (picture and text only) which posts to lars-blogger by crafting the message on an MMS capable phone and sending it via email and/or SMS(?)
One of Rafael's undergraduate students worked on SMS in OpenACS last year. His project page is at http://www.weg.ee.usyd.edu.au/projects/det_ug2003.
There might be some helpful stuff there.
On tala-arawan.net, the site only supports MMS messages. I explored the possibility of SMS but I did not want to approach any third party gateway (SMS Aggregators as you call them) and a GSM modem was a bit out of my budget.
contrib/misc/smsc". No docs though; I'd track down Simon and ask him more about it...
That is, a bunch of large companies have sort of co-opted the SMS network (called SS7) and locked out smaller operators in a manner that is similar to if AOL, MSN and Yahoo took over the internet and blocked independent ISPs from providing access.
As a result, in order to do access carriers like Verizon, Tmobile, Telefonica, etc, you need to connect to companies like Mblox, Critical Path or Clickatell in order to access the SS7 network for both reasonable prices and access to the carriers.
Of course, you can set up your own SMSC and a GSM modem yourself, but then you have to go develop a relationship with a telco and imagine how much fun that would be...
Oh, and did I mention each aggregator has a proprietary interface too?
So effectively, this is a fixed market.
The result is that to build a general SMS application where you don't own the starting and end points, the only reasonable approach nowadays is to sign with one of these aggregators.
The particular application I am looking at right now needs to have the potential for high throughput SMS messages. The HTTP interfaces available are very slow - in the tens of messages per second, which is not acceptable.
SMPP is a SMS specific protocol that is high throughput but requires a special server. Kannel is interesting because it's been around for a while, is open source and has many of the proprietary SMPP interfaces implemented, In addition to being an SMS server, it also can act as a WAP server.
The architecture is also interesting. It effectively acts as an intermediary between a web application and the SMS aggregator, as in this diagram:
web app <---> kannel <---> SMSC <---> telco <---> user
As a result, the work needed to be done on the web app side is fairly minimal. I haven't been able to find a lot of information on Kannel's benchmarked performance, but one data point is that some d00ds in the Philippines (#1 market for SMS/MMS) say they got 200 SMS/sec out of a dual PII 500Mhz box with 256MB of RAM and the server didn't break a sweat.
I don't know what that means with better hardware, though, or what performance looks like with a heavy backend app as the one this client is looking to build.
The application my student (Jackson Chow) built is pretty cool. It uses SMS Server Tool an open source SMS server, has white/black lists input/output, manages multiple telcos/GSM modems.
The package is simple but we have used in other projects pretty successfully.
What Talli says is probably correct, but for applications where you do not have hi SMS traffic (or where you can charge your customers) this is perfect.
I recommend you try it out:
If some does, maybe it should be added to CVS?