RubySMS is a Ruby library (not a framework, although it’s coming dangerously close) which aims to make developing and deploying SMS applications easy. The sending and receiving of “real” SMS is handled by RubyGSM, but RubySMS also provides a couple of ways to interact with “mock” SMS via a web interface (the HTTP Backend) and GTK GUI (the DRB backend).

RubySMS was initially developed in Malawi by The UNICEF Innovation Team and a group from Columbia University’s SIPA as the technical foundation of the RapidSMS Child Malnutrition Survelliance (see the source code) entry to the USAID Development 2.0 Challengewhich we won.

Sample Application

require "rubygems"
require "rubysms"

class DemoApp < SMS::App
  def incoming(msg)
    msg.respond("Wow, that was easy!")
  end
end

DemoApp.serve!

Installing

RubySMS is distributed via GitHub, which you must add as a Gem source before installing:

$ sudo gem sources -a http://gems.github.com

Then install the Gem, which will automatically pull in the dependencies:

$ sudo gem install adammck-rubysms

Dependencies

If you’d prefer to run RubySMS from the trunk, you’ll need to install the following Gems manually (otherwise, the HTTP backend will explode on startup. Remind me to fix that some time).

$ sudo gem install rack mongrel

If you’d like to send real SMS via a GSM modem, you’ll also need RubyGSM:

$ sudo gem install adammck-rubygsm