(for non-programmer folks, != means does not equal)
I've had a little time up my sleeves lately, so I decided to get my hands dirty and code up an application that would send and receive SMS messages. Based on the advice of Geekzone guru sbiddle, I bought a Wavecom GSM modem (USB model) and dropped in a 2degrees SIM.
Doing some research, I found a handful of existing programs that would do the send/receive I wanted, but they were all too expensive (for example, ActiveXperts SMS component, US$795). Using a standard COM port, I control the modem using the standard AT+ commands, that most (if not all) GSM modems support. My thinking was that if I made the program light-weight, send/receive of SMS would be lightning fast.
I wrote a pretty straight forward, basic program - when a message is received, it logs it to a SQL Server database, does some processing, and then fires back a reply - this is where I came unstuck.
I've had the luxury of using commercial SMS gateways before. They are super fast, and very reliable however you pay for the convenience. Trying to replicate this cheaply using a GSM modem is just not possible.
The biggest issue I encountered is speed. The modem can only work as fast as the connecting network will allow. Trying to send a message while the modem is already sending one will cause it to jam; the same happens for receiving multiple messages concurrently. If you have a time sensitive application, this method is just too slow.
I also discovered interesting delays between Vodafone and 2degrees. Sending a SMS message from my mobile (Vodafone) to the GSM modem (2degrees) would take around 25-30 seconds to arrive, however the reverse worked much faster at an average of 4 seconds.
My recommendation: if you want speed and reliability, go with a commercial SMS gateway provider (and be prepared for an light/empty wallet). For less time sensitive applications, a GSM modem will do just fine.
Other related posts:
Cyber attacks on NZ small business
How one database query can fix HOP cards
Review: Navman MiVUE680
comments powered by Disqus