Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Ruby interface to AT-compatible GSM modems
Branch: master

Merge pull request #3 from JakubOboza/master

Made it compatible with Ruby 2.0
latest commit 898dcf51f3
@adammck authored
Failed to load latest commit information.
bin removed all of this Gsm::Error.desc sillyness
lib Update core.rb
spec added test for upcoming AT+CFUN after 5 errors
.gitignore added gem to ignore
rubygsm.gemspec fixed gemspec to support ruby 2.0 and build at all :)


RubyGSM is a Ruby library which uses ruby-serialport to provide a nifty interface to send and receive SMS messages via a GSM modem.

Sample Usage

class ReverseApp
    def initialize(gsm)
        @gsm = gsm

    def incoming(from, datetime, message)
        @gsm.send(from, message.reverse)

gsm ="/dev/tty.usbserial")

If you just want to send sms

gsm ="/dev/tty.usbserial")
msg =, "+447777777777", "Oh hai")


RubyGSM is distributed via GitHub, which you must add as a gem source before installing:

$ sudo gem sources -a

The library depends upon ruby-serialport, which is currently maintained on GitHub by Toholio. This library is included as a Gem dependancy, so to install both:

$ sudo gem install adammck-rubygsm

For Debian/Ubuntu users…

The ruby-serialport library is available in the APT repository as a binary package, which is substatially less hassle to install than the Gem, for those who don't have a compiler installed (I prefer not to, on production servers). To install the package via apt, and ignore the Gem dependancy:

$ sudo apt-get install libserialport-ruby
$ sudo gem install --ignore-dependencies adammck-rubygsm

Building gem

$ gem build rubygsm.gemspec

Known issues

There is a known issue when you try to send message to shortcode. Enble :debug to see problem.

Devices Tested

  • Multitech MTCBA

  • Wavecom M1306B

Something went wrong with that request. Please try again.