twilio-ruby 3.10.1 → 3.11.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.
Files changed (60) hide show
  1. data/AUTHORS.md +24 -0
  2. data/CHANGES +11 -0
  3. data/Makefile +13 -0
  4. data/README.md +28 -13
  5. data/docs/Makefile +130 -0
  6. data/docs/_themes/LICENSE +45 -0
  7. data/docs/_themes/README.rst +25 -0
  8. data/docs/_themes/flask_theme_support.py +86 -0
  9. data/docs/_themes/kr/layout.html +32 -0
  10. data/docs/_themes/kr/relations.html +19 -0
  11. data/docs/_themes/kr/static/flasky.css_t +469 -0
  12. data/docs/_themes/kr/static/small_flask.css +70 -0
  13. data/docs/_themes/kr/theme.conf +7 -0
  14. data/docs/_themes/kr_small/layout.html +22 -0
  15. data/docs/_themes/kr_small/static/flasky.css_t +287 -0
  16. data/docs/_themes/kr_small/theme.conf +10 -0
  17. data/docs/changelog.rst +1 -0
  18. data/docs/conf.py +266 -0
  19. data/docs/faq.rst +42 -0
  20. data/docs/getting-started.rst +91 -0
  21. data/docs/index.rst +108 -0
  22. data/docs/make.bat +170 -0
  23. data/docs/src/pip-delete-this-directory.txt +5 -0
  24. data/docs/usage/accounts.rst +89 -0
  25. data/docs/usage/applications.rst +108 -0
  26. data/docs/usage/basics.rst +81 -0
  27. data/docs/usage/caller-ids.rst +45 -0
  28. data/docs/usage/conferences.rst +108 -0
  29. data/docs/usage/messages.rst +110 -0
  30. data/docs/usage/notifications.rst +70 -0
  31. data/docs/usage/phone-calls.rst +168 -0
  32. data/docs/usage/phone-numbers.rst +159 -0
  33. data/docs/usage/queues.rst +112 -0
  34. data/docs/usage/recordings.rst +96 -0
  35. data/docs/usage/sip.rst +103 -0
  36. data/docs/usage/token-generation.rst +81 -0
  37. data/docs/usage/transcriptions.rst +31 -0
  38. data/docs/usage/twiml.rst +70 -0
  39. data/docs/usage/validation.rst +71 -0
  40. data/examples/examples.rb +8 -5
  41. data/lib/twilio-ruby.rb +10 -0
  42. data/lib/twilio-ruby/rest/accounts.rb +1 -1
  43. data/lib/twilio-ruby/rest/instance_resource.rb +2 -1
  44. data/lib/twilio-ruby/rest/list_resource.rb +4 -1
  45. data/lib/twilio-ruby/rest/media.rb +14 -0
  46. data/lib/twilio-ruby/rest/messages.rb +12 -0
  47. data/lib/twilio-ruby/rest/sip.rb +12 -0
  48. data/lib/twilio-ruby/rest/sip/credential_lists.rb +11 -0
  49. data/lib/twilio-ruby/rest/sip/credential_lists/credentials.rb +6 -0
  50. data/lib/twilio-ruby/rest/sip/domains.rb +12 -0
  51. data/lib/twilio-ruby/rest/sip/domains/credential_list_mappings.rb +6 -0
  52. data/lib/twilio-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +6 -0
  53. data/lib/twilio-ruby/rest/sip/ip_access_control_lists.rb +11 -0
  54. data/lib/twilio-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +6 -0
  55. data/lib/twilio-ruby/rest/sms.rb +1 -1
  56. data/lib/twilio-ruby/rest/usage/records.rb +1 -1
  57. data/lib/twilio-ruby/rest/utils.rb +1 -1
  58. data/lib/twilio-ruby/version.rb +1 -1
  59. data/spec/rest/message_spec.rb +12 -0
  60. metadata +52 -2
data/docs/faq.rst ADDED
@@ -0,0 +1,42 @@
1
+ ==========================
2
+ Frequently Asked Questions
3
+ ==========================
4
+
5
+ Hopefully you can find an answer here to one of your questions. If not, please
6
+ contact `help@twilio.com <mailto:help@twilio.com>`_.
7
+
8
+
9
+ Formatting phone numbers
10
+ ------------------------
11
+
12
+ Twilio always returns phone numbers that are formatted in the `E.164 format
13
+ <http://en.wikipedia.org/wiki/E.164>`_, like this: ``+12125551234``. However
14
+ your users may enter them like this: ``(212) 555-1234``. This can lead to
15
+ problems when, for example, Twilio makes a POST request to your server with the
16
+ ``From`` phone number as ``+12125551234``, but you stored the phone number in
17
+ your database as ``(212) 555-1234``, causing a database lookup to fail.
18
+
19
+ We suggest that you convert the number to E.164 format
20
+ before you store it in the database. The `phony
21
+ <https://github.com/floere/phony>`_ gem is excellent
22
+ for this purpose. Install it like this:
23
+
24
+ .. code-block:: bash
25
+
26
+ $ gem install phony
27
+
28
+ Then you can convert user input to phone numbers like this:
29
+
30
+ .. code-block:: ruby
31
+
32
+ require 'phony'
33
+
34
+ def convert_to_e164(raw_phone)
35
+ Phony.format(
36
+ raw_phone,
37
+ :format => :international,
38
+ :spaces => ''
39
+ ).gsub(/\s+/, "") # Phony won't remove all spaces
40
+ end
41
+
42
+ puts convert_to_e164('212 555 1234') # prints +12125551234
@@ -0,0 +1,91 @@
1
+ ===========
2
+ Quickstart
3
+ ===========
4
+
5
+ Getting started with the Twilio API couldn't be easier. Create a Twilio REST
6
+ client to get started. For example, the following code makes a call using the
7
+ Twilio REST API.
8
+
9
+
10
+ Make a Call
11
+ ===============
12
+
13
+ .. code-block:: ruby
14
+
15
+ require 'twilio-ruby'
16
+
17
+ # To find these visit https://www.twilio.com/user/account
18
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
19
+ auth_token = "YYYYYYYYYYYYYYYYYY"
20
+
21
+ @client = Twilio::REST::Client.new account_sid, auth_token
22
+ @call = @client.calls.create({:to => "9991231234", :from => "9991231234",
23
+ :url => "http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient"})
24
+ puts @call.length
25
+ puts @call.sid
26
+
27
+
28
+ Send an SMS
29
+ ===========
30
+
31
+ .. code-block:: ruby
32
+
33
+ require 'twilio-ruby'
34
+
35
+ # To find these visit https://www.twilio.com/user/account
36
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
37
+ auth_token = "YYYYYYYYYYYYYYYYYY"
38
+
39
+ @client = Twilio::REST::Client.new account_sid, auth_token
40
+
41
+ @message = client.messages.create({:to => "+12316851234",
42
+ :from => "+15555555555",
43
+ :body => "Hello there!"})
44
+
45
+
46
+ Send an MMS
47
+ ===========
48
+
49
+ .. code-block:: ruby
50
+
51
+ require 'twilio-ruby'
52
+
53
+ # To find these visit https://www.twilio.com/user/account
54
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
55
+ auth_token = "YYYYYYYYYYYYYYYYYY"
56
+
57
+ @client = Twilio::REST::Client.new account_sid, auth_token
58
+
59
+ @message = client.messages.create({:to => "+15558676309",
60
+ :from => "+15555555555",
61
+ :body => "Jenny I need you!",
62
+ :media_url => "http://twilio.com/heart.jpg"})
63
+
64
+
65
+ Generating TwiML
66
+ =================
67
+
68
+ To control phone calls, your application needs to output `TwiML
69
+ <http://www.twilio.com/docs/api/twiml/>`_. Use :class:`twilio.twiml.Response`
70
+ to easily create such responses.
71
+
72
+ .. code-block:: ruby
73
+
74
+ Twilio::TwiML::Response do |r|
75
+ r.Play "https://api.twilio.com/cowbell.mp3", :loop => 5
76
+ end.text
77
+
78
+ .. code-block:: xml
79
+
80
+ <?xml version="1.0" encoding="utf-8"?>
81
+ <Response>
82
+ <Play loop="5">https://api.twilio.com/cowbell.mp3</Play>
83
+ <Response>
84
+
85
+
86
+ Digging Deeper
87
+ ========================
88
+
89
+ The full power of the Twilio API is at your fingertips. The :ref:`user-guide`
90
+ explains all the awesome features available to use.
91
+
data/docs/index.rst ADDED
@@ -0,0 +1,108 @@
1
+ =============================
2
+ Twilio Ruby Helper Library
3
+ =============================
4
+
5
+ .. _installation:
6
+
7
+ Installation
8
+ ================
9
+
10
+ Just install the gem!
11
+
12
+ .. code-block:: bash
13
+
14
+ $ gem install twilio-ruby
15
+
16
+ Getting Started
17
+ ================
18
+
19
+ The :doc:`/getting-started` will get you up and running in a few quick minutes.
20
+ This guide assumes you understand the core concepts of Twilio.
21
+ If you've never used Twilio before, don't fret! Just read
22
+ `about how Twilio works <http://www.twilio.com/api/>`_ and then jump in!
23
+
24
+
25
+ .. _user-guide:
26
+
27
+ User Guide
28
+ ==================
29
+
30
+ Functionality is split over three different sub-packages within
31
+ **twilio-ruby**. Below are in-depth guides to specific portions of the
32
+ library.
33
+
34
+
35
+ REST API
36
+ ----------
37
+
38
+ Query the Twilio REST API to create phone calls, send SMS/MMS messages and more!
39
+
40
+ .. toctree::
41
+ :maxdepth: 1
42
+
43
+ usage/basics
44
+ usage/messages
45
+ usage/phone-calls
46
+ usage/phone-numbers
47
+ usage/accounts
48
+ usage/conferences
49
+ usage/applications
50
+ usage/notifications
51
+ usage/recordings
52
+ usage/transcriptions
53
+ usage/caller-ids
54
+ usage/queues
55
+ usage/sip
56
+
57
+ TwiML
58
+ ---------
59
+
60
+ Generates valid TwiML for controlling and manipulating phone calls.
61
+
62
+ .. toctree::
63
+ :maxdepth: 2
64
+
65
+ usage/twiml
66
+
67
+ Utilities
68
+ ----------
69
+
70
+ Small functions useful for validating requests are coming from Twilio
71
+
72
+ .. toctree::
73
+ :maxdepth: 1
74
+
75
+ usage/validation
76
+ usage/token-generation
77
+
78
+ Frequently Asked Questions
79
+ ==========================
80
+
81
+ What to do if you get an ``ImportError``, and some advice about how to format
82
+ phone numbers.
83
+
84
+ .. toctree::
85
+ :maxdepth: 2
86
+
87
+ faq
88
+
89
+ Changelog
90
+ =========
91
+
92
+ See the :doc:`/changelog` for version history.
93
+
94
+ Support and Development
95
+ ==========================
96
+ All development occurs over on
97
+ `Github <https://github.com/twilio/twilio-ruby>`_. To checkout the source,
98
+
99
+ .. code-block:: bash
100
+
101
+ $ git clone git@github.com:twilio/twilio-ruby.git
102
+
103
+
104
+ Report bugs using the Github
105
+ `issue tracker <https://github.com/twilio/twilio-ruby/issues>`_.
106
+
107
+ If you have questions that aren't answered by this documentation,
108
+ ask the `#twilio IRC channel <irc://irc.freenode.net/#twilio>`_
data/docs/make.bat ADDED
@@ -0,0 +1,170 @@
1
+ @ECHO OFF
2
+
3
+ REM Command file for Sphinx documentation
4
+
5
+ if "%SPHINXBUILD%" == "" (
6
+ set SPHINXBUILD=sphinx-build
7
+ )
8
+ set BUILDDIR=_build
9
+ set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
10
+ if NOT "%PAPER%" == "" (
11
+ set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
12
+ )
13
+
14
+ if "%1" == "" goto help
15
+
16
+ if "%1" == "help" (
17
+ :help
18
+ echo.Please use `make ^<target^>` where ^<target^> is one of
19
+ echo. html to make standalone HTML files
20
+ echo. dirhtml to make HTML files named index.html in directories
21
+ echo. singlehtml to make a single large HTML file
22
+ echo. pickle to make pickle files
23
+ echo. json to make JSON files
24
+ echo. htmlhelp to make HTML files and a HTML help project
25
+ echo. qthelp to make HTML files and a qthelp project
26
+ echo. devhelp to make HTML files and a Devhelp project
27
+ echo. epub to make an epub
28
+ echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
29
+ echo. text to make text files
30
+ echo. man to make manual pages
31
+ echo. changes to make an overview over all changed/added/deprecated items
32
+ echo. linkcheck to check all external links for integrity
33
+ echo. doctest to run all doctests embedded in the documentation if enabled
34
+ goto end
35
+ )
36
+
37
+ if "%1" == "clean" (
38
+ for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
39
+ del /q /s %BUILDDIR%\*
40
+ goto end
41
+ )
42
+
43
+ if "%1" == "html" (
44
+ %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
45
+ if errorlevel 1 exit /b 1
46
+ echo.
47
+ echo.Build finished. The HTML pages are in %BUILDDIR%/html.
48
+ goto end
49
+ )
50
+
51
+ if "%1" == "dirhtml" (
52
+ %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
53
+ if errorlevel 1 exit /b 1
54
+ echo.
55
+ echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
56
+ goto end
57
+ )
58
+
59
+ if "%1" == "singlehtml" (
60
+ %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
61
+ if errorlevel 1 exit /b 1
62
+ echo.
63
+ echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
64
+ goto end
65
+ )
66
+
67
+ if "%1" == "pickle" (
68
+ %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
69
+ if errorlevel 1 exit /b 1
70
+ echo.
71
+ echo.Build finished; now you can process the pickle files.
72
+ goto end
73
+ )
74
+
75
+ if "%1" == "json" (
76
+ %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
77
+ if errorlevel 1 exit /b 1
78
+ echo.
79
+ echo.Build finished; now you can process the JSON files.
80
+ goto end
81
+ )
82
+
83
+ if "%1" == "htmlhelp" (
84
+ %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
85
+ if errorlevel 1 exit /b 1
86
+ echo.
87
+ echo.Build finished; now you can run HTML Help Workshop with the ^
88
+ .hhp project file in %BUILDDIR%/htmlhelp.
89
+ goto end
90
+ )
91
+
92
+ if "%1" == "qthelp" (
93
+ %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
94
+ if errorlevel 1 exit /b 1
95
+ echo.
96
+ echo.Build finished; now you can run "qcollectiongenerator" with the ^
97
+ .qhcp project file in %BUILDDIR%/qthelp, like this:
98
+ echo.^> qcollectiongenerator %BUILDDIR%\qthelp\twilio-python2.qhcp
99
+ echo.To view the help file:
100
+ echo.^> assistant -collectionFile %BUILDDIR%\qthelp\twilio-python2.ghc
101
+ goto end
102
+ )
103
+
104
+ if "%1" == "devhelp" (
105
+ %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
106
+ if errorlevel 1 exit /b 1
107
+ echo.
108
+ echo.Build finished.
109
+ goto end
110
+ )
111
+
112
+ if "%1" == "epub" (
113
+ %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
114
+ if errorlevel 1 exit /b 1
115
+ echo.
116
+ echo.Build finished. The epub file is in %BUILDDIR%/epub.
117
+ goto end
118
+ )
119
+
120
+ if "%1" == "latex" (
121
+ %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
122
+ if errorlevel 1 exit /b 1
123
+ echo.
124
+ echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
125
+ goto end
126
+ )
127
+
128
+ if "%1" == "text" (
129
+ %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
130
+ if errorlevel 1 exit /b 1
131
+ echo.
132
+ echo.Build finished. The text files are in %BUILDDIR%/text.
133
+ goto end
134
+ )
135
+
136
+ if "%1" == "man" (
137
+ %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
138
+ if errorlevel 1 exit /b 1
139
+ echo.
140
+ echo.Build finished. The manual pages are in %BUILDDIR%/man.
141
+ goto end
142
+ )
143
+
144
+ if "%1" == "changes" (
145
+ %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
146
+ if errorlevel 1 exit /b 1
147
+ echo.
148
+ echo.The overview file is in %BUILDDIR%/changes.
149
+ goto end
150
+ )
151
+
152
+ if "%1" == "linkcheck" (
153
+ %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
154
+ if errorlevel 1 exit /b 1
155
+ echo.
156
+ echo.Link check complete; look for any errors in the above output ^
157
+ or in %BUILDDIR%/linkcheck/output.txt.
158
+ goto end
159
+ )
160
+
161
+ if "%1" == "doctest" (
162
+ %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
163
+ if errorlevel 1 exit /b 1
164
+ echo.
165
+ echo.Testing of doctests in the sources finished, look at the ^
166
+ results in %BUILDDIR%/doctest/output.txt.
167
+ goto end
168
+ )
169
+
170
+ :end
@@ -0,0 +1,5 @@
1
+ This file is placed here by pip to indicate the source was put
2
+ here by pip.
3
+
4
+ Once this package is successfully installed this source code will be
5
+ deleted (unless you remove this file).
@@ -0,0 +1,89 @@
1
+ .. module:: twilio.rest
2
+
3
+ ===========
4
+ Accounts
5
+ ===========
6
+
7
+ Managing Twilio accounts is straightforward.
8
+ Update your own account information or create and manage multiple subaccounts.
9
+
10
+ For more information, see the
11
+ `Account REST Resource <http://www.twilio.com/docs/api/rest/account>`_
12
+ documentation.
13
+
14
+
15
+ Updating Account Information
16
+ ----------------------------
17
+
18
+ Use the :meth:`Account.update` to modify one of your accounts.
19
+ Right now the only valid attribute is :attr:`friendly_name`.
20
+
21
+ .. code-block:: ruby
22
+
23
+ require 'twilio-ruby'
24
+
25
+ # To find these visit https://www.twilio.com/user/account
26
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
27
+ auth_token = "YYYYYYYYYYYYYYYYYY"
28
+
29
+ @client = Twilio::REST::Client.new account_sid, auth_token
30
+ @account = @client.accounts.get(account_sid)
31
+ @account.update({:friendly_name => "My Awesome Account"})
32
+
33
+
34
+ Creating Subaccounts
35
+ ----------------------
36
+
37
+ Subaccounts are easy to make.
38
+
39
+ .. code-block:: ruby
40
+
41
+ require 'twilio-ruby'
42
+
43
+ # To find these visit https://www.twilio.com/user/account
44
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
45
+ auth_token = "YYYYYYYYYYYYYYYYYY"
46
+
47
+ @client = Twilio::Rest::Client.new account_sid, auth_token
48
+ @subaccount = @client.accounts.create({:name => "My Awesome SubAccount"})
49
+
50
+
51
+ Managing Subaccounts
52
+ -------------------------
53
+
54
+ Say you have a subaccount for Client X with an account sid `AC123`
55
+
56
+ .. code-block:: ruby
57
+
58
+ require 'twilio-ruby'
59
+
60
+ # To find these visit https://www.twilio.com/user/account
61
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
62
+ auth_token = "YYYYYYYYYYYYYYYYYY"
63
+
64
+ @client = Twilio::Rest::Client.new account_sid, auth_token
65
+
66
+ # Client X's subaccount
67
+ @subaccount = @client.accounts.get('AC123')
68
+
69
+ Client X hasn't paid you recently, so let's suspend their account.
70
+
71
+ .. code-block:: ruby
72
+
73
+ @subaccount.update({:status => 'suspended'}
74
+
75
+ If it was just a misunderstanding, reenable their account.
76
+
77
+ .. code-block:: ruby
78
+
79
+ @subaccount.update({:status => 'active'}
80
+
81
+ Otherwise, close their account permanently.
82
+
83
+ .. code-block:: ruby
84
+
85
+ @subaccount.update({:status => 'closed'}
86
+
87
+ .. warning::
88
+ This action can't be undone.
89
+