GithubHelp home page GithubHelp logo

leftyb / restcomm-ruby Goto Github PK

View Code? Open in Web Editor NEW

This project forked from restcomm/restcomm-ruby

0.0 2.0 1.0 364 KB

Ruby wrapper libraries for Restcomm REST APIs

License: GNU Affero General Public License v3.0

Ruby 99.71% Makefile 0.29%

restcomm-ruby's Introduction

Gem Version [Build Status][travis] Code Quality

restcomm-ruby

A module for using the Restcomm REST API and generating valid RCML. Click here to read the full documentation.

Installation

To install using Bundler grab the latest stable version:

gem 'restcomm-ruby', '~> 1.2.0'

To manually install restcomm-ruby via Rubygems simply gem install:

gem install restcomm-ruby

To build and install the development branch yourself from the latest source:

git clone [email protected]:Mobicents/restcomm-ruby.git
cd restcomm-ruby
make install

Getting Started With REST

Setup Work

require 'rubygems' # not necessary with ruby 1.9 but included for completeness
require 'restcomm-ruby'

# put your own credentials here
account_sid = 'ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
auth_token = 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'
host = 'IP_ADDRESS_RESTCOMM_INSTANCE'

# set up a client to talk to the Restcomm REST API
@client = Restcomm::REST::Client.new account_sid, auth_token, host



# and then you can create a new client without parameters
@client = Restcomm::REST::Client.new

Send an SMS

@client.messages.create(
  from: '+14159341234',
  to: '+16105557069',
  body: 'Hey there!'
)

Do Some Stuff With Calls

# make a new outgoing call
@call = @client.calls.create(
  from: 'sip:+14159341234',
  to: 'sip:+18004567890',
  url: 'http://example.com/call-handler'
)

# hangup a ringing call, but don't touch it if it's connected
@call.cancel

# if you have the call sid, you can fetch a call object via:
@call = @client.calls.get('CA386025c9bf5d6052a1d1ea42b4d16662')

# redirect an in-progress call
@call.redirect_to('http://example.com/call-redirect')

# hangup a call, no matter whether it is ringing or connected
@call.hangup

List Calls after a certain time

# list calls made or received on or after May 13, 2013
@client.calls.list("start_time>" => "2013-05-13") # Notice we omit the "=" in the "start_time>=" parameter because it is automatically added

Getting Started With RCML

RCML support is based on the Builder library. You can construct a RCML response like this:

require 'rubygems' # not necessary with ruby 1.9 but included for completeness
require 'restcomm-ruby'

# build up a response
response = Restcomm::RCML::Response.new do |r|
  r.Say 'hello there', voice: 'alice'
  r.Dial callerId: '+14159992222' do |d|
    d.Client 'jenny'
  end
end

# print the result
puts response.text

This will print the following (except for the whitespace):

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Say voice="alice">hello there</Say>
  <Dial callerId="+14159992222">
    <Client>jenny</Client>
  </Dial>
</Response>

Supported Ruby Versions

This library supports and is [tested against][travis] the following Ruby implementations:

More Information

There are more detailed examples in the included examples directory. Also for thoose upgrading, the upgrade guide is available in the restcomm-ruby github wiki.

restcomm-ruby's People

Contributors

ivelin avatar

Watchers

 avatar  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.