An easiest way to mount a GSM modem to send and to receive sms message (forked from https://github.com/rodrigopinto/biju )
Go to file
Guillaume Dott 932acd1046 Add resources in README 2017-04-13 10:41:36 +02:00
lib Add SMS ID to MalformedSms error 2014-02-10 11:15:13 +01:00
spec Add compatibility with ruby 1.9.3 2013-11-06 17:26:26 +01:00
.gitignore Add swap files to gitignore 2013-09-12 10:37:11 +02:00
.rspec Add tests using Rspec 2013-09-12 10:37:11 +02:00
Gemfile Initial commit. 2012-05-16 18:33:34 -03:00
LICENSE Initial commit. 2012-05-16 18:33:34 -03:00
README.md Add resources in README 2017-04-13 10:41:36 +02:00
Rakefile Add tests using Rspec 2013-09-12 10:37:11 +02:00
biju.gemspec Move AT commands in Hayes class and use Modem to send to SerialPort 2013-09-12 10:37:11 +02:00

README.md

Biju

Biju is an easy way to mount a GSM modem to send, to receive and to delete messages through a ruby interface. This is project is based on this code snippet.

Installation

Add this line to your application's Gemfile:

gem 'biju'

And then execute:

$ bundle

Or install it yourself as:

$ gem install biju

Usage

modem = Biju::Hayes.new('/dev/tty.HUAWEIMobile-Modem', pin: '0000')

# method to list all messages
# it can take the status in argument
# :unread, :read, :unsent, :sent, :all
modem.messages.each do |sms|
  puts sms
end

# method to send sms
sms = Biju::Sms.new(phone_number: '+3312345678', message: 'hello world')
modem.send(sms)

modem.close

TODO

  1. Write missing test for modem module.
  2. Write a documentation.
  3. Test with different kinds of modem and OS.
  4. Handle UDH (User Data Header) and SMS longer than 140 octets

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Resources

http://en.wikipedia.org/wiki/GSM_03.40 http://www.etsi.org/deliver/etsi_gts/04/0408/05.00.00_60/gsmts_0408v050000p.pdf http://www.etsi.org/deliver/etsi_ts/101000_101099/101032/05.01.00_60/ts_101032v050100p.pdf http://en.wikipedia.org/wiki/Short_message_service_center http://en.wikipedia.org/wiki/AT_command http://subnets.ru/saved/sms_pdu_format.html http://jazi.staff.ugm.ac.id/Mobile%20and%20Wireless%20Documents/SMS_PDU-mode.PDF http://www.sendsms.cn/download/SMS_PDU-mode.PDF http://www.sendsms.cn/download/wavecom/PDU%B6%CC%D0%C5%CF%A2/SMS_PDU-mode.PDF http://www.gsm-modem.de/sms-pdu-mode.html http://www.developershome.com/sms/cmgrCommand3.asp http://www.developershome.com/sms/cmgsCommand4.asp http://en.wikipedia.org/wiki/Concatenated_SMS

Encoding

http://en.wikipedia.org/wiki/GSM_03.38 http://www.3gpp.org/ftp/Specs/html-info/0338.htm http://www.codeproject.com/Tips/470755/Encoding-Decoding-7-bit-User-Data-for-SMS-PDU-PDU https://github.com/bitcoder/ruby_ucp/wiki/SMS-Alphabets

AT Commands

http://en.wikipedia.org/wiki/Hayes_command_set https://www.sparkfun.com/datasheets/Cellular%20Modules/ADH8066-AT-Commands-v1.6.pdf http://www.coster.eu/costerit/teleges/doc/gsm822w.pdf http://www.developershome.com/sms/cmglCommand.asp http://www.zoomtel.com/documentation/dial_up/100498D.pdf

AT+CLAC > list supported commands