Description

TwilioResource is a wrapper around the Twilio API using Rails' ActiveResource. This allows you to treat Twilio objects as if they're local ActiveRecord models:

phone = TwilioResource::LocalIncomingPhoneNumber.new(:url => 'http://www.example.com',
                                                     :area_code => '206',
                                                     :method => 'GET',
                                                     :friendly_name => "My First Phone Number",
                                                     :account_id => Twilio::Base.user)
phone.save

The wrapper doesn't support the entire Twilio API, but it should be simple enough to add new functionality as needed by following the models that are already built.

Supported Functionality

  • Requesting, listing, and deleting new local and toll-free numbers
  • Placing and listing calls made to a phone number

Todo

  • Conference resource
  • Redirecting calls
  • Support data returned in xml attributes
  • SMS resource
  • Recordings, Transcriptions, and Notifications
  • Wrap more exceptions
  • Add documentation on supported attributes to the ActiveResource models

Setup

Before you start using TwilioResource, you have to give it your Twilio login credentials. You can do this in your Rails initializer:

require 'twilio_resource'
TwilioResource.setup('token', 'sid')

Examples

Requesting a new phone number:

phone = TwilioResource::LocalIncomingPhoneNumber.new(:url => 'http://www.example.com',
                                                     :area_code => '206',
                                                     :method => 'GET',
                                                     :friendly_name => "My First Phone Number",
                                                     :account_id => Twilio::Base.user)
phone.save

Requesting a new toll-free phone number:

phone = TwilioResource::TollFreeIncomingPhoneNumber.new(:url => 'http://www.example.com',
                                                        :area_code => '206',
                                                        :method => 'GET',
                                                        :friendly_name => "My First Phone Number",
                                                        :account_id => Twilio::Base.user)
phone.save

Retrieving a list of completed calls to a given phone number:

TwilioResource::Call.find(:all, :params => {
  :account_id => Twilio::Base.user, 
  :status => Twilio::Call::COMPLETE,
  :called => '2065551212'})

Placing a call:

TwilioResource::Call.new({
  :account_id => Twilio::Base.user, 
  :caller => '2065551111',
  :called => '2065551212',
  :url => 'http://example.com/call.xml'})