twilio 2.9.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -1
- data/CHANGELOG.rdoc +27 -0
- data/Gemfile +4 -0
- data/README.rdoc +16 -6
- data/Rakefile +6 -46
- data/lib/twilio.rb +21 -6
- data/lib/twilio/account.rb +1 -1
- data/lib/twilio/available_phone_numbers.rb +56 -0
- data/lib/twilio/call.rb +4 -4
- data/lib/twilio/conference.rb +6 -6
- data/lib/twilio/incoming_phone_number.rb +16 -2
- data/lib/twilio/notification.rb +2 -2
- data/lib/twilio/outgoing_caller_id.rb +5 -4
- data/lib/twilio/recording.rb +2 -2
- data/lib/twilio/sms.rb +2 -2
- data/lib/twilio/twilio_object.rb +8 -5
- data/lib/twilio/version.rb +3 -0
- data/spec/fixtures/xml/account.xml +23 -0
- data/{test → spec}/fixtures/xml/account_renamed.xml +0 -0
- data/spec/fixtures/xml/available_phone_numbers_local.xml +26 -0
- data/spec/fixtures/xml/available_phone_numbers_local_search.xml +15 -0
- data/spec/fixtures/xml/available_phone_numbers_toll_free.xml +14 -0
- data/spec/fixtures/xml/available_phone_numbers_toll_free_search.xml +10 -0
- data/{test → spec}/fixtures/xml/call.xml +0 -0
- data/{test → spec}/fixtures/xml/call_new.xml +0 -0
- data/{test → spec}/fixtures/xml/call_redirected.xml +0 -0
- data/{test → spec}/fixtures/xml/calls.xml +0 -0
- data/{test → spec}/fixtures/xml/conference.xml +1 -1
- data/{test → spec}/fixtures/xml/conference_participant.xml +0 -0
- data/{test → spec}/fixtures/xml/conference_participant_muted.xml +0 -0
- data/{test → spec}/fixtures/xml/conference_participants.xml +0 -0
- data/{test → spec}/fixtures/xml/conferences.xml +0 -0
- data/{test → spec}/fixtures/xml/incoming_phone_number.xml +0 -0
- data/{test → spec}/fixtures/xml/incoming_phone_numbers.xml +0 -0
- data/{test → spec}/fixtures/xml/notification.xml +0 -0
- data/{test → spec}/fixtures/xml/notifications.xml +0 -0
- data/{test → spec}/fixtures/xml/outgoing_caller_id.xml +0 -0
- data/{test → spec}/fixtures/xml/outgoing_caller_id_new.xml +0 -0
- data/{test → spec}/fixtures/xml/outgoing_caller_ids.xml +0 -0
- data/{test → spec}/fixtures/xml/recording.xml +0 -0
- data/{test → spec}/fixtures/xml/recordings.xml +0 -0
- data/{test → spec}/fixtures/xml/sms.xml +0 -0
- data/{test → spec}/fixtures/xml/sms_messages.xml +0 -0
- data/{test → spec}/fixtures/xml/sms_new.xml +0 -0
- data/{test → spec}/fixtures/xml/sms_new_with_callback.xml +0 -0
- data/{test → spec}/fixtures/xml/transcription.xml +0 -0
- data/{test → spec}/fixtures/xml/transcriptions.xml +0 -0
- data/{test → spec}/fixtures/yml/verb_responses.yml +0 -0
- data/spec/spec_helper.rb +17 -0
- data/spec/support/twilio_helpers.rb +52 -0
- data/spec/twilio/account_spec.rb +21 -0
- data/spec/twilio/available_phone_numbers_spec.rb +53 -0
- data/spec/twilio/call_spec.rb +64 -0
- data/spec/twilio/conference_spec.rb +58 -0
- data/spec/twilio/incoming_phone_number_spec.rb +42 -0
- data/spec/twilio/live_connection_spec.rb +21 -0
- data/spec/twilio/notification_spec.rb +29 -0
- data/spec/twilio/outgoing_caller_id_spec.rb +43 -0
- data/spec/twilio/recording_spec.rb +44 -0
- data/spec/twilio/sms_spec.rb +36 -0
- data/spec/twilio/verb_spec.rb +235 -0
- data/twilio.gemspec +23 -111
- metadata +164 -82
- data/VERSION.yml +0 -5
- data/lib/twilio/connection.rb +0 -24
- data/lib/twilio/local_phone_number.rb +0 -26
- data/lib/twilio/toll_free_phone_number.rb +0 -26
- data/test/fixtures/xml/account.xml +0 -11
- data/test/test_helper.rb +0 -33
- data/test/twilio/account_test.rb +0 -28
- data/test/twilio/call_test.rb +0 -66
- data/test/twilio/conference_test.rb +0 -46
- data/test/twilio/connection_test.rb +0 -25
- data/test/twilio/incoming_phone_number_test.rb +0 -31
- data/test/twilio/local_phone_number_test.rb +0 -37
- data/test/twilio/notification_test.rb +0 -35
- data/test/twilio/outgoing_caller_id_test.rb +0 -45
- data/test/twilio/recording_test.rb +0 -47
- data/test/twilio/sms_test.rb +0 -27
- data/test/twilio/toll_free_phone_number_test.rb +0 -38
- data/test/twilio/verb_test.rb +0 -244
data/.gitignore
CHANGED
data/CHANGELOG.rdoc
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
= Twilio Gem Changelog
|
2
|
+
|
3
|
+
== 3.0
|
4
|
+
|
5
|
+
* SSL validation (thanks Kyle Humberto)
|
6
|
+
* Available phone numbers search support (thanks Mark Turner)
|
7
|
+
* Deprecated Twilio::Connection method has been removed, use Twilio.connect(...)
|
8
|
+
* LocalPhoneNumber and TollFreeNumber have been removed to reflect API changes
|
9
|
+
* New phone numbers are now provisioned via the IncomingPhoneNumber class
|
10
|
+
* Several classes improved to avoid adding a stray "?" when no params were set
|
11
|
+
* Compatibility with 1.9.2 (and tested on 1.8.7 MRI and REE)
|
12
|
+
* Now uses Bundler, Rspec 2, and WebMock
|
13
|
+
|
14
|
+
== 2.9
|
15
|
+
|
16
|
+
* Compatibility with Twilio's 2010-04-01 API publish
|
17
|
+
|
18
|
+
== 2.8
|
19
|
+
|
20
|
+
* SMS callback URLs
|
21
|
+
* Ability to delete phone numbers
|
22
|
+
|
23
|
+
== 2.7
|
24
|
+
|
25
|
+
* SMS functionality
|
26
|
+
|
27
|
+
For earlier versions, see https://github.com/webficient/twilio/commits/master
|
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -4,8 +4,6 @@ The Twilio gem provides two major pieces of functionality: (1) a Ruby wrapper fo
|
|
4
4
|
|
5
5
|
See http://www.twilio.com/docs/index for Twilio's API documentation.
|
6
6
|
|
7
|
-
For an overview of the Twilio Gem and a sample use case, check out our cached blog entry: http://webcache.googleusercontent.com/search?q=cache:AejgwBra3fMJ:www.webficient.com/2009/06/22/hello-this-is-your-rails-app-calling-you+site:http://www.webficient.com/2009/06/22/hello-this-is-your-rails-app-calling-you&hl=en&gl=us&strip=1
|
8
|
-
|
9
7
|
== Calling the Twilio REST API
|
10
8
|
|
11
9
|
First set your credentials by calling the connect method:
|
@@ -36,14 +34,26 @@ and you can nest multiple verbs inside a block:
|
|
36
34
|
|
37
35
|
== Installation
|
38
36
|
|
39
|
-
|
37
|
+
gem install twilio
|
40
38
|
|
41
|
-
|
39
|
+
== Contributing
|
40
|
+
|
41
|
+
1. Run 'bundle' from the command line to install dependencies
|
42
|
+
2. Write test(s) for your patch
|
43
|
+
3. Submit a pull request
|
44
|
+
|
45
|
+
Note: don't require 'rubygems' in any file (http://www.rubyinside.com/why-using-require-rubygems-is-wrong-1478.html)
|
42
46
|
|
43
47
|
== Copyright
|
44
48
|
|
45
|
-
Copyright (c) 2009-
|
49
|
+
Copyright (c) 2009-2011 Phil Misiowiec, Webficient LLC. See LICENSE for details.
|
46
50
|
|
47
51
|
== Contributors
|
48
52
|
|
49
|
-
Kyle Daigle
|
53
|
+
* Kyle Daigle
|
54
|
+
* Yuri Gadow
|
55
|
+
* Kyle Humberto
|
56
|
+
* Jonathan Rudenberg
|
57
|
+
* Mark Turner
|
58
|
+
* Jeff Wigal
|
59
|
+
* Alex K Wolfe
|
data/Rakefile
CHANGED
@@ -1,49 +1,9 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'jeweler'
|
5
|
-
Jeweler::Tasks.new do |gem|
|
6
|
-
gem.name = "twilio"
|
7
|
-
gem.summary = %Q{Twilio API Client}
|
8
|
-
gem.description = %Q{Twilio API wrapper}
|
9
|
-
gem.email = "github@webficient.com"
|
10
|
-
gem.homepage = "http://github.com/webficient/twilio"
|
11
|
-
gem.authors = ["Phil Misiowiec", "Jonathan Rudenberg", "Alex K Wolfe", "Kyle Daigle", "Jeff Wigal", "Yuri Gadow"]
|
12
|
-
gem.add_dependency 'builder', '>= 2.1.2'
|
13
|
-
gem.add_dependency 'httparty', '>= 0.4.3'
|
14
|
-
end
|
15
|
-
rescue LoadError
|
16
|
-
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
17
|
-
end
|
18
|
-
|
19
|
-
require 'rake/rdoctask'
|
20
|
-
Rake::RDocTask.new do |rdoc|
|
21
|
-
rdoc.rdoc_dir = 'rdoc'
|
22
|
-
rdoc.title = 'twilio'
|
23
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
24
|
-
rdoc.rdoc_files.include('README*')
|
25
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
26
|
-
end
|
1
|
+
require 'bundler/setup'
|
2
|
+
Bundler::GemHelper.install_tasks
|
27
3
|
|
28
|
-
require 'rake
|
29
|
-
|
30
|
-
test.libs << 'lib' << 'test'
|
31
|
-
test.pattern = 'test/**/*_test.rb'
|
32
|
-
test.verbose = false
|
33
|
-
end
|
34
|
-
|
35
|
-
begin
|
36
|
-
require 'rcov/rcovtask'
|
37
|
-
Rcov::RcovTask.new do |test|
|
38
|
-
test.libs << 'test'
|
39
|
-
test.pattern = 'test/**/*_test.rb'
|
40
|
-
test.verbose = true
|
41
|
-
end
|
42
|
-
rescue LoadError
|
43
|
-
task :rcov do
|
44
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
45
|
-
end
|
46
|
-
end
|
4
|
+
require 'rake'
|
5
|
+
require 'rspec/core/rake_task'
|
47
6
|
|
7
|
+
RSpec::Core::RakeTask.new
|
48
8
|
|
49
|
-
task :default => :
|
9
|
+
task :default => :spec
|
data/lib/twilio.rb
CHANGED
@@ -23,16 +23,31 @@
|
|
23
23
|
|
24
24
|
require 'httparty'
|
25
25
|
require 'builder'
|
26
|
+
|
26
27
|
require 'twilio/twilio_object'
|
28
|
+
|
27
29
|
require 'twilio/account'
|
30
|
+
require 'twilio/available_phone_numbers'
|
28
31
|
require 'twilio/call'
|
29
|
-
require 'twilio/
|
30
|
-
require 'twilio/connection'
|
32
|
+
require 'twilio/conference'
|
31
33
|
require 'twilio/incoming_phone_number'
|
32
|
-
require 'twilio/local_phone_number'
|
33
34
|
require 'twilio/notification'
|
34
35
|
require 'twilio/outgoing_caller_id'
|
35
36
|
require 'twilio/recording'
|
36
|
-
require 'twilio/
|
37
|
-
require 'twilio/
|
38
|
-
|
37
|
+
require 'twilio/sms'
|
38
|
+
require 'twilio/verb'
|
39
|
+
|
40
|
+
module Twilio
|
41
|
+
include HTTParty
|
42
|
+
TWILIO_URL = "https://api.twilio.com/2010-04-01/Accounts"
|
43
|
+
SSL_CA_PATH = "/etc/ssl/certs"
|
44
|
+
|
45
|
+
# The connect method caches your Twilio account id and authentication token
|
46
|
+
# Example:
|
47
|
+
# Twilio.connect('AC309475e5fede1b49e100272a8640f438', '3a2630a909aadbf60266234756fb15a0')
|
48
|
+
def self.connect(account_sid, auth_token)
|
49
|
+
self.base_uri "#{TWILIO_URL}/#{account_sid}"
|
50
|
+
self.basic_auth account_sid, auth_token
|
51
|
+
self.default_options[:ssl_ca_path] ||= SSL_CA_PATH unless self.default_options[:ssl_ca_file]
|
52
|
+
end
|
53
|
+
end
|
data/lib/twilio/account.rb
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
module Twilio
|
2
|
+
# An AvailablePhoneNumbers resources represents the available phone numbers
|
3
|
+
# that Twilio can provide you based on your search criteria. The valid
|
4
|
+
# query terms are outlined in the search methods.
|
5
|
+
# Example:
|
6
|
+
# Twilio.connect('my_twilio_sid', 'my_auth_token')
|
7
|
+
# Twilio.AvailablePhoneNumbers.search_local(:area_code => 541)
|
8
|
+
class AvailablePhoneNumbers < TwilioObject
|
9
|
+
|
10
|
+
# The Search method handles the searching of both local and toll-free
|
11
|
+
# numbers.
|
12
|
+
def search(opts={})
|
13
|
+
iso_country_code = opts[:iso_country_code] || 'US'
|
14
|
+
resource = opts.delete(:resource)
|
15
|
+
|
16
|
+
params = {
|
17
|
+
:AreaCode => opts[:area_code],
|
18
|
+
:InPostalCode => opts[:postal_code],
|
19
|
+
:InRegion => opts[:in_region],
|
20
|
+
:Contains => opts[:contains],
|
21
|
+
:NearLatLong => opts[:near_lat_long],
|
22
|
+
:NearNumber => opts[:near_number],
|
23
|
+
:InLata => opts[:in_lata],
|
24
|
+
:InRateCenter => opts[:in_rate_center],
|
25
|
+
:Distance => opts[:distance]
|
26
|
+
}.reject {|k,v| v == nil} unless opts.empty?
|
27
|
+
|
28
|
+
Twilio.get("/AvailablePhoneNumbers/#{iso_country_code}/#{resource}", :query => params)
|
29
|
+
end
|
30
|
+
|
31
|
+
# The search_local method searches for numbers in local areas (i.e. state, zip, etc..)
|
32
|
+
# Search Options:
|
33
|
+
# :area_code
|
34
|
+
# :postal_code
|
35
|
+
# :in_region
|
36
|
+
# :contains
|
37
|
+
# :near_lat_long
|
38
|
+
# :near_number
|
39
|
+
# :in_lata
|
40
|
+
# :in_rate_center
|
41
|
+
# :distance
|
42
|
+
def search_local(opts ={})
|
43
|
+
opts = {:resource => 'Local'}.merge(opts)
|
44
|
+
search(opts)
|
45
|
+
end
|
46
|
+
|
47
|
+
# The search_toll_free method searches for available toll-free numbers
|
48
|
+
# Search Options
|
49
|
+
# :contains
|
50
|
+
def search_toll_free(opts ={})
|
51
|
+
opts = {:resource => 'TollFree'}.merge(opts)
|
52
|
+
search(opts)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
data/lib/twilio/call.rb
CHANGED
@@ -6,12 +6,12 @@ module Twilio
|
|
6
6
|
# Example:
|
7
7
|
# Twilio.connect('my_twilio_sid', 'my_auth_token')
|
8
8
|
# Twilio::Call.make(CALLER_ID, user_number, 'http://myapp.com/twilio_response_handler')
|
9
|
-
def make(from, to, url,
|
10
|
-
Twilio.post("/Calls", :body => {:From => from, :To => to, :Url => url}.merge(
|
9
|
+
def make(from, to, url, opts = {})
|
10
|
+
Twilio.post("/Calls", :body => {:From => from, :To => to, :Url => url}.merge(opts))
|
11
11
|
end
|
12
12
|
|
13
|
-
def list(
|
14
|
-
Twilio.get("/Calls", :query =>
|
13
|
+
def list(opts = {})
|
14
|
+
Twilio.get("/Calls", :query => (opts.empty? ? nil : opts))
|
15
15
|
end
|
16
16
|
|
17
17
|
def get(call_sid)
|
data/lib/twilio/conference.rb
CHANGED
@@ -4,20 +4,20 @@ module Twilio
|
|
4
4
|
# a Conference Instance Resource is created to represent the conference room
|
5
5
|
# and a Participant Instance Resource is created to represent the caller who joined.
|
6
6
|
class Conference < TwilioObject
|
7
|
-
def list(
|
8
|
-
Twilio.get("/Conferences", :query =>
|
7
|
+
def list(opts = {})
|
8
|
+
Twilio.get("/Conferences", :query => (opts.empty? ? nil : opts))
|
9
9
|
end
|
10
10
|
|
11
11
|
def get(conference_sid)
|
12
|
-
Twilio.get("/Conferences/#{conference_sid}")
|
12
|
+
Twilio.get("/Conferences/#{conference_sid}")
|
13
13
|
end
|
14
14
|
|
15
|
-
def participants(conference_sid,
|
16
|
-
Twilio.get("/Conferences/#{conference_sid}/Participants", :query =>
|
15
|
+
def participants(conference_sid, opts = {})
|
16
|
+
Twilio.get("/Conferences/#{conference_sid}/Participants", :query => (opts.empty? ? nil : opts))
|
17
17
|
end
|
18
18
|
|
19
19
|
def participant(conference_sid, call_sid)
|
20
|
-
Twilio.get("/Conferences/#{conference_sid}/Participants/#{call_sid}")
|
20
|
+
Twilio.get("/Conferences/#{conference_sid}/Participants/#{call_sid}")
|
21
21
|
end
|
22
22
|
|
23
23
|
def mute_participant(conference_sid, call_sid)
|
@@ -5,12 +5,26 @@ module Twilio
|
|
5
5
|
# Twilio.connect('my_twilio_sid', 'my_auth_token')
|
6
6
|
# Twilio::IncomingPhoneNumber.list
|
7
7
|
class IncomingPhoneNumber < TwilioObject
|
8
|
-
def list(
|
9
|
-
Twilio.get("/IncomingPhoneNumbers", :query =>
|
8
|
+
def list(opts = {})
|
9
|
+
Twilio.get("/IncomingPhoneNumbers", :query => (opts.empty? ? nil : opts))
|
10
10
|
end
|
11
11
|
|
12
12
|
def get(incoming_sid)
|
13
13
|
Twilio.get("/IncomingPhoneNumbers/#{incoming_sid}")
|
14
14
|
end
|
15
|
+
|
16
|
+
# Creates a phone number in Twilio. You must first find an existing number using
|
17
|
+
# the AvailablePhoneNumber class before creating one here.
|
18
|
+
#
|
19
|
+
# Required: you must either set PhoneNumber or AreaCode as a required option
|
20
|
+
# For additional options, see http://www.twilio.com/docs/api/rest/incoming-phone-numbers
|
21
|
+
def create(opts)
|
22
|
+
raise "You must set either :PhoneNumber or :AreaCode" if !opts.include?(:AreaCode) && !opts.include?(:PhoneNumber)
|
23
|
+
Twilio.post("/IncomingPhoneNumbers", :body => opts)
|
24
|
+
end
|
25
|
+
|
26
|
+
def delete(incoming_sid)
|
27
|
+
Twilio.delete("/IncomingPhoneNumbers/#{incoming_sid}")
|
28
|
+
end
|
15
29
|
end
|
16
30
|
end
|
data/lib/twilio/notification.rb
CHANGED
@@ -5,8 +5,8 @@ module Twilio
|
|
5
5
|
# Twilio.connect('my_twilio_sid', 'my_auth_token')
|
6
6
|
# Twilio::Notification.list
|
7
7
|
class Notification < TwilioObject
|
8
|
-
def list(
|
9
|
-
Twilio.get('/Notifications', :query =>
|
8
|
+
def list(opts = {})
|
9
|
+
Twilio.get('/Notifications', :query => (opts.empty? ? nil : opts))
|
10
10
|
end
|
11
11
|
|
12
12
|
def get(notification_sid)
|
@@ -5,16 +5,17 @@ module Twilio
|
|
5
5
|
# Twilio.connect('my_twilio_sid', 'my_auth_token')
|
6
6
|
# Twilio::OutgoingCallerId.list
|
7
7
|
class OutgoingCallerId < TwilioObject
|
8
|
-
def create(phone_number, friendly_name = phone_number, call_delay = 0)
|
8
|
+
def create(phone_number, friendly_name = phone_number, call_delay = 0, extension = nil)
|
9
9
|
Twilio.post("/OutgoingCallerIds", :body => {
|
10
10
|
:PhoneNumber => phone_number,
|
11
11
|
:FriendlyName => friendly_name,
|
12
|
-
:CallDelay => call_delay
|
12
|
+
:CallDelay => call_delay,
|
13
|
+
:Extension => extension
|
13
14
|
})
|
14
15
|
end
|
15
16
|
|
16
|
-
def list(
|
17
|
-
Twilio.get("/OutgoingCallerIds", :query =>
|
17
|
+
def list(opts = {})
|
18
|
+
Twilio.get("/OutgoingCallerIds", :query => (opts.empty? ? nil : opts))
|
18
19
|
end
|
19
20
|
|
20
21
|
def get(callerid_sid)
|
data/lib/twilio/recording.rb
CHANGED
@@ -5,8 +5,8 @@ module Twilio
|
|
5
5
|
# Twilio.connect('my_twilio_sid', 'my_auth_token')
|
6
6
|
# Twilio::Recording.list
|
7
7
|
class Recording < TwilioObject
|
8
|
-
def list(
|
9
|
-
Twilio.get("/Recordings", :query =>
|
8
|
+
def list(opts = {})
|
9
|
+
Twilio.get("/Recordings", :query => (opts.empty? ? nil : opts))
|
10
10
|
end
|
11
11
|
|
12
12
|
def get(recording_sid)
|
data/lib/twilio/sms.rb
CHANGED
@@ -10,8 +10,8 @@ module Twilio
|
|
10
10
|
Twilio.post("/SMS/Messages", :body => {:From => from, :To => to, :Body => body}.merge(callback))
|
11
11
|
end
|
12
12
|
|
13
|
-
def list(
|
14
|
-
Twilio.get("/SMS/Messages", :query =>
|
13
|
+
def list(opts = {})
|
14
|
+
Twilio.get("/SMS/Messages", :query => (opts.empty? ? nil : opts))
|
15
15
|
end
|
16
16
|
|
17
17
|
def get(sms_message_sid)
|
data/lib/twilio/twilio_object.rb
CHANGED
@@ -1,16 +1,19 @@
|
|
1
1
|
module Twilio
|
2
|
-
class TwilioObject #:nodoc: all
|
3
|
-
|
4
|
-
|
5
|
-
def initialize(connection = nil)
|
6
|
-
@connection = connection
|
2
|
+
class TwilioObject #:nodoc: all
|
3
|
+
def initialize
|
7
4
|
end
|
8
5
|
|
9
6
|
class << self
|
10
7
|
def method_missing(method_id, *args) #:nodoc:
|
11
8
|
o = self.new
|
12
9
|
o.send(method_id, *args)
|
10
|
+
rescue HTTParty::UnsupportedURIScheme
|
11
|
+
raise "You must set Twilio.connect before calling #{self.inspect}##{method_id}"
|
13
12
|
end
|
14
13
|
end
|
14
|
+
|
15
|
+
def connected?
|
16
|
+
self.class.base_uri
|
17
|
+
end
|
15
18
|
end
|
16
19
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<TwilioResponse>
|
2
|
+
<Account>
|
3
|
+
<Sid>mysid</Sid>
|
4
|
+
<FriendlyName>Do you like my friendly name?</FriendlyName>
|
5
|
+
<Status>active</Status>
|
6
|
+
<DateCreated>Wed, 04 Aug 2010 21:37:41 +0000</DateCreated>
|
7
|
+
<DateUpdated>Fri, 06 Aug 2010 01:15:02 +0000</DateUpdated>
|
8
|
+
<AuthToken>mytoken</AuthToken>
|
9
|
+
<Uri>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d</Uri>
|
10
|
+
<SubresourceUris>
|
11
|
+
<AvailablePhoneNumbers>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/AvailablePhoneNumbers</AvailablePhoneNumbers>
|
12
|
+
<Calls>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/Calls</Calls>
|
13
|
+
<Conferences>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/Conferences</Conferences>
|
14
|
+
<IncomingPhoneNumbers>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/IncomingPhoneNumbers</IncomingPhoneNumbers>
|
15
|
+
<Notifications>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/Notifications</Notifications>
|
16
|
+
<OutgoingCallerIds>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/OutgoingCallerIds</OutgoingCallerIds>
|
17
|
+
<Recordings>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/Recordings</Recordings>
|
18
|
+
<Sandbox>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/Sandbox</Sandbox>
|
19
|
+
<SMSMessages>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/SMS/Messages</SMSMessages>
|
20
|
+
<Transcriptions>/2010-04-01/Accounts/ACba8bc05eacf94afdae398e642c9cc32d/Transcriptions</Transcriptions>
|
21
|
+
</SubresourceUris>
|
22
|
+
</Account>
|
23
|
+
</TwilioResponse>
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
TwilioResponse>
|
2
|
+
<AvailablePhoneNumbers uri="/2010-04-01/Accounts/ACde6f1e11047ebd6fe7a55f120be3a900/AvailablePhoneNumbers/US/Local?AreaCode=510">
|
3
|
+
<AvailablePhoneNumber>
|
4
|
+
<FriendlyName>(510) 564-7903</FriendlyName>
|
5
|
+
<PhoneNumber>+15105647903</PhoneNumber>
|
6
|
+
<Lata>722</Lata>
|
7
|
+
<RateCenter>OKLD TRNID</RateCenter>
|
8
|
+
<Latitude>37.780000</Latitude>
|
9
|
+
<Longitude>-122.380000</Longitude>
|
10
|
+
<Region>CA</Region>
|
11
|
+
<PostalCode>94703</PostalCode>
|
12
|
+
<IsoCountry>US</IsoCountry>
|
13
|
+
</AvailablePhoneNumber>
|
14
|
+
<AvailablePhoneNumber>
|
15
|
+
<FriendlyName>(510) 488-4379</FriendlyName>
|
16
|
+
<PhoneNumber>+15104884379</PhoneNumber>
|
17
|
+
<Lata>722</Lata>
|
18
|
+
<RateCenter>OKLD FRTVL</RateCenter>
|
19
|
+
<Latitude>37.780000</Latitude>
|
20
|
+
<Longitude>-122.380000</Longitude>
|
21
|
+
<Region>CA</Region>
|
22
|
+
<PostalCode>94602</PostalCode>
|
23
|
+
<IsoCountry>US</IsoCountry>
|
24
|
+
</AvailablePhoneNumber>
|
25
|
+
</AvailablePhoneNumbers>
|
26
|
+
</TwilioResponse>
|