This GSM Ruby library uses a 3G device to send and receive SMS messages.
This package uses Kermit to send AT commands to the device, and supports only ASCII character set. Download Kermit from here. Check out Adam McKaig's rubygsm for another similar package that uses Ruby's native terminal interface.
The source code was written in 2008 and has been proprietary until released in 2010. Therefore it is not very flexible,
as for example there is no configuration file written in Ruby. Unless your GSM modem is mapped to the device
please set the proper modem device into
This was developed by using Huawei E220 modem, but in theory any GSM device that has a terminal interface should work.
Example of how it is used:
PIN='0000' begin unless GSM::Terminal.pin_ok? GSM::Terminal.enter_pin(PIN) sleep 15 end GSM::Connection.check puts GSM::Terminal.carrier # fetch new messages new_messages = GSM::Terminal.list_sms 'REC UNREAD' # read the message number 4 msg = GSM::Terminal.read_sms 4 puts '%s from %s' % [msg.text, msg.gsmnr] # send a new message GSM::Terminal.send_sms(['358451234567', 'message text']) # delete message number 4 GSM::Terminal.del_sms 4 end
For a list of other commands, refer to the source code ;)
You can also run a modem terminal session for debugging by
cd lib/kermit && kermit console.ksc