Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

94 lines (67 sloc) 3.379 kb
# examples version 3
@account_sid = 'AC043dcf9844e04758bc3a36a84c29761'
@auth_token = '62ea81de3a5b414154eb263595357c69'
# set up a client
@client = Twilio::REST::Client.new(@account_sid, @auth_token)
################ ACCOUNTS ################
# shortcut to grab your account object (account_sid is inferred from the client's auth credentials)
@account = @client.account
# list your (sub)accounts
@client.accounts.list
# grab an account instance resource if you know the sid
@account = @client.accounts.get(@account_sid)
# http round trip happens here
puts @account.friendly_name
# update an account's friendly name
@client.accounts.get(@account_sid).update(:friendly_name => 'A Fabulous Friendly Name')
################ CALLS ################
# print a list of calls (all parameters optional)
@account.calls.list({:page => 0, :page_size => 1000, :start_time => '2010-09-01'}).each do |call|
puts call.sid
end
# get a particular call and list its recording urls
@account.calls.get('CAXXXXXXX').recordings.list.each do {|r| puts r.wav}
# make a new outgoing call. returns a call object just like calls.get
@call = @account.calls.create({:from => '+14159341234', :to => '+18004567890', :url => 'http://myapp.com/call-handler'})
# cancel the call if not already in progress
@account.calls.get(@call.sid).update({:status => 'canceled'})
# or equivalently
@call.update({:status => 'canceled'})
# or simply
@call.cancel
# redirect and then terminate a call
@account.calls.get('CA386025c9bf5d6052a1d1ea42b4d16662').update({:url => 'http://myapp.com/call-redirect'})
@account.calls.get('CA386025c9bf5d6052a1d1ea42b4d16662').update({:status => 'completed'})
# or, use the aliases...
@call.redirect_to('http://myapp.com/call-redirect')
@call.hangup
################ SMS MESSAGES ################
# print a list of sms messages
@account.sms.messages.list({:date_sent => '2010-09-01'}).each do |sms|
puts sms.body
end
# print a particular sms message
puts @account.sms.messages.get('SMXXXXXXXX').body
# send an sms
@account.sms.messages.create(:from => '+14159341234', :to => '+16105557069', :body => 'Hey there!')
################ PHONE NUMBERS ################
# get a list of supported country codes
@account.available_phone_numbers.list
# print some available numbers
@numbers = @account.available_phone_numbers.get('US').local.list({:contains => 'AWESOME'})
@numbers.each {|num| puts num.phone_number}
# buy the first one
@account.incoming_phone_numbers.create(:phone_number => @numbers[0].phone_number)
# update an existing phone number's voice url
@account.incoming_phone_numbers.get('PNdba508c5616a7f5e141789f44f022cc3').update({:voice_url => 'http://myapp.com/voice'})
################ CONFERENCES ################
# get a particular conference's participants object and stash it
@participants = @account.conferences.get('CFbbe46ff1274e283f7e3ac1df0072ab39').participants
# list participants
@participants.list.each do {|p| puts p.sid}
# update a conference participant
@participants.get('CA386025c9bf5d6052a1d1ea42b4d16662').update({:muted => 'true'})
# or an easier way
@participants.get('CA386025c9bf5d6052a1d1ea42b4d16662').mute
# and, since we're lazy loading, this would only incur one http request
@account.conferences.get('CFbbe46ff1274e283f7e3ac1df0072ab39').participants.get('CA386025c9bf5d6052a1d1ea42b4d16662').update({:muted => 'true'})
Jump to Line
Something went wrong with that request. Please try again.