Giter Site home page Giter Site logo

enterstudio / ruby_ucp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ninkibah/ruby_ucp

0.0 0.0 0.0 398 KB

A ruby library implementation of EMI/UCP protocol for SMS

Home Page: https://github.com/bitcoder/ruby_ucp/wiki

License: Other

Ruby 100.00%

ruby_ucp's Introduction

== ruby_ucp

A pure Ruby implementation of the EMI/UCP protocol v4.6 that is used when communicating
with a SMSC.
Please consult up-to-date information in ruby_ucp's wiki: https://github.com/bitcoder/ruby_ucp/wiki.
Official releases can be obtained directly from RubyGems: https://rubygems.org/gems/ruby_ucp.
The following information may not be up-to-date; it is here just for quick access. See the wiki site.

This is a fork from Sergio Freire's original ruby_ucp project. It has fixes for GsmPackedMsg, as it needed
a to_s method. It also had no tests.

Jonathan O'Connor <ninkibah at eircom.net>


Introduction
============

About “ruby_ucp”

“ruby_ucp” is a pure Ruby library implementation of the EMI/UCP v.4.6 specification/protocol used by Large Accounts (e.g. applications) to communicate with SMSC’s, in order to send and receive short messages (“SMS”).
It is licensed under LGPL v2.1, so feel free to use it and contribute with your code or feedback in order to improve it.
The main focus of this library is the correct encoding/decoding of UCP PDUs. By combining low-level with helper methods, the user has full control of the built PDUs, all with ease.
Besides this, two classes are given: one for an UCP client and another for an UCP server. These classes are not perfect (e.g. they dont implement states) but may be used in most scenarios, specially the client, and serve as inspiration to build other ones.

The gem is available for download directly from the RubyGems repository, and is named ruby_ucp.
The UCP specification itself: EMI/UCP v4.6.
Some local info about UCP PDUs: https://github.com/bitcoder/ruby_ucp/wiki/UCP-PDUs.
Some local info on SMS alphabets/encodings: https://github.com/bitcoder/ruby_ucp/wiki/SMS-Alphabets.

Features
========

Currently, it supports:

- encoding/decoding most UCP pdu’s: 01,30,31,51,52,53,54,55,56,57,58,60 and 61
- direct access to UCP pdu fields
- automatic checksum/length calculation
- instantiate an UCP pdu object from a given string
- helper methods within pdu’s, to easily build “submit messages” (AO)
- support alphanumeric originators
- en/decoding of 7bit GSM default alphabet text messages for basic text encoding
- en/decoding of 16bit (UCS2) messages for full character support
- simple UCP client (MULA), with authentication support
- simple UCP server (e.g. for simulating a SMSC or a LA application working in UCP SILA mode)
- automatic create multiple concatenated messages, for a given message text
- extern, smarter and more correct UCP clients/servers may be implemented using just the UCP pdu encoding/decoding features

Soon:

- automatic text encoding selection (7bit vs 16bit), for optimum concatenated message creation (reduce the number of SM parts; use only UCS-2 if necessary). (now 7bit is forced in make_multi_ucps() method)


Not so good features :)
========================

- the library is thought for correctness, not performance (you should not find a problem though)
- the provided UCP client is synchronous; it does not have a state machine in order to handle UCP windowing features
- the provided UCP server is also synchronous; it does not support UCP windowing
- no Ruby v1.9.x support (it would require rewriting sensible parts due to encoding issues and string handling)
- unitary tests unspecified, yet
- documentation lacking, yet

Requirements
============

Ruby v1.8.6 or v.1.8.7. No v1.9.x support!
(tested with Ubuntu 9.10, Redhat AS 5.x)

ruby_ucp's People

Contributors

sfreire avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.