SMS Control Center

In spring and summer of 2010, I've been developing a software product to interact with people using SMS messages.

You might think "who the hell needs special software for that"?

Well, my customer does. Consider the following:

  • You have to deal with huge SMS traffic, up to 1000 messages per business day.
  • Each SMS adds up to your profit, and loss of even one message might cost you several hundred bucks.
  • The phone book is your consumers data base. Loss of it can hardly be estimated in money.

Using that good old Nokia cell phone no longer sounds reasonable, doesn't it?

It looks strange to me, but there are no software products of acceptable quality on the market. That's why I was hired.

The product has been successfully deployed in September, 2010. Since that time, it's used for 8 hours a day under the full load. Current product version is 1.0.12: as it usually happens, several bugs were founs and several feature requests were discovered just after the software has been deployed into the production environment. Here's the change log (will open in a new window).

Feature List

  • The software has been designed for an inexperienced user. No setup or maintenance procedures are required: you just run the software, it just works.
  • The messaging code works with most GSM cell phones and modems. Design is based on official technical specification documents, namely GSM 03.38, GSM 03.40, GSM 07.05, and 3G TS 23.038.
  • The software can use several GSM modems simultaneously: in the production environment we have 3 GSM modems with 3 different SIM cards. Extra care has been taken to ensure the remote party will receive the reply from the same number he's texting, even if the reply was sent through the Internet instead of a GSM network to save money.
  • The software detects a supported GSM modem* as soon as it's plugged into a computer, requiring no installation efforts at all.
  • Data persistence is backed by the time proven extensible storage engine, the storage technology behind Microsoft's Active Directory and Exchange Server products. Among other good things, this means the software continuously saves every single bit of the information to the hard drive, while still securing the data integrity and consistency in the event of a system crash or sudden power outage.
  • The application use BulkSms internet gateway for sending messages. It falls back to the GSM modem if bulksms failed for any reason. Support for other Internet gateways like Clickatell or CardBoardFish is planned for version 2.0.
  • Sleek and responsive UI. For some of my test cases I have 1 million messages dataset (database size is about 750 megs), even in this case it's still blazing fast.
  • The software indicates available balance of the bulksms.com account it uses, and GSM operators balance**.
  • Integrated spellchecker.
  • Response templates: reply to a message with just 2 mouse clicks.
  • Efficient and easy to use unwanted messages filter.
  • Automatic database backups are performed every hour completely unnoticeable by user. Since the extensible storage engine is by itself extremely reliable, this is mostly done to recover after user mistakes.
  • Comprehensive event logging is implemented on the top of the application's ESE database.
    The diagnostic data can be viewed within the application, or alternately, with just a few mouse clicks it can be exported to an Excel-friendly data file, compressed, encrypted with strong cipher, and sent to an e-mail recipient.
  • Low system requirements***: comfortable to work on an Intel Atom powered netbook, the UI has been designed for great experience on just 800x480 screen.
  • And more.
  • * Although the messaging code should work with any modem, automatic detection only detects Hoji Wyless 600 express card, and some Huawei 3G USB modems (tested with E150 and E1550).
    ** The GSM operator must have a USSD command to query the available balance.
    *** Minimum supported OS is Microsoft Windows Vista. The product supports all editions of Windows 7 including starter edition.
    Requires Microsoft .NET Framework 3.5 service pack 1.
    You might need a USB hub (sold separately) to plug several GSM modems into a netbook.

Screenshots

Main window.
As you can see, the UI is Russian.
The software was developed with the globalization in mind, so it could be easily translated into any other language.

When I took the screenshot, I had two Huawei modems connected.
Note one GSM signal strength indicator is orange: the balloon tooltip warns user the SIM card is registered in a foreign network, so the communications might be expensive.

Templates editor:

Final Words

If you're interested in this product or underlying technology, please send me an e-mail to soonts@live.com.

July, 2010