restcomm-ruby 1.2.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 (149) hide show
  1. data/AUTHORS.md +38 -0
  2. data/CHANGES.md +171 -0
  3. data/Gemfile +11 -0
  4. data/LICENSE +662 -0
  5. data/LICENSE.md +19 -0
  6. data/Makefile +12 -0
  7. data/README.md +155 -0
  8. data/Rakefile +10 -0
  9. data/conf/cacert.pem +3376 -0
  10. data/docs/Makefile +130 -0
  11. data/docs/_themes/LICENSE +45 -0
  12. data/docs/_themes/README.rst +25 -0
  13. data/docs/_themes/flask_theme_support.py +86 -0
  14. data/docs/_themes/kr/layout.html +32 -0
  15. data/docs/_themes/kr/relations.html +19 -0
  16. data/docs/_themes/kr/static/flasky.css_t +469 -0
  17. data/docs/_themes/kr/static/small_flask.css +70 -0
  18. data/docs/_themes/kr/theme.conf +7 -0
  19. data/docs/_themes/kr_small/layout.html +22 -0
  20. data/docs/_themes/kr_small/static/flasky.css_t +287 -0
  21. data/docs/_themes/kr_small/theme.conf +10 -0
  22. data/docs/changelog.rst +1 -0
  23. data/docs/conf.py +266 -0
  24. data/docs/faq.rst +42 -0
  25. data/docs/getting-started.rst +100 -0
  26. data/docs/index.rst +109 -0
  27. data/docs/make.bat +170 -0
  28. data/docs/src/pip-delete-this-directory.txt +5 -0
  29. data/docs/usage/accounts.rst +96 -0
  30. data/docs/usage/addresses.rst +102 -0
  31. data/docs/usage/applications.rst +111 -0
  32. data/docs/usage/basics.rst +120 -0
  33. data/docs/usage/caller-ids.rst +47 -0
  34. data/docs/usage/conferences.rst +112 -0
  35. data/docs/usage/errors.rst +31 -0
  36. data/docs/usage/messages.rst +142 -0
  37. data/docs/usage/notifications.rst +72 -0
  38. data/docs/usage/phone-calls.rst +193 -0
  39. data/docs/usage/phone-numbers.rst +192 -0
  40. data/docs/usage/queues.rst +117 -0
  41. data/docs/usage/recordings.rst +102 -0
  42. data/docs/usage/sip.rst +108 -0
  43. data/docs/usage/token-generation.rst +96 -0
  44. data/docs/usage/transcriptions.rst +34 -0
  45. data/docs/usage/twiml.rst +69 -0
  46. data/docs/usage/validation.rst +107 -0
  47. data/examples/examples.rb +200 -0
  48. data/examples/print-call-log.rb +25 -0
  49. data/lib/rack/restcomm_webhook_authentication.rb +47 -0
  50. data/lib/restcomm-ruby.rb +103 -0
  51. data/lib/restcomm-ruby/rest/accounts.rb +17 -0
  52. data/lib/restcomm-ruby/rest/addresses.rb +12 -0
  53. data/lib/restcomm-ruby/rest/addresses/dependent_phone_numbers.rb +6 -0
  54. data/lib/restcomm-ruby/rest/applications.rb +6 -0
  55. data/lib/restcomm-ruby/rest/authorized_connect_apps.rb +6 -0
  56. data/lib/restcomm-ruby/rest/available_phone_numbers.rb +13 -0
  57. data/lib/restcomm-ruby/rest/available_phone_numbers/country.rb +10 -0
  58. data/lib/restcomm-ruby/rest/available_phone_numbers/local.rb +11 -0
  59. data/lib/restcomm-ruby/rest/available_phone_numbers/mobile.rb +11 -0
  60. data/lib/restcomm-ruby/rest/available_phone_numbers/toll_free.rb +11 -0
  61. data/lib/restcomm-ruby/rest/call_feedback.rb +28 -0
  62. data/lib/restcomm-ruby/rest/call_feedback_summary.rb +13 -0
  63. data/lib/restcomm-ruby/rest/calls.rb +37 -0
  64. data/lib/restcomm-ruby/rest/client.rb +555 -0
  65. data/lib/restcomm-ruby/rest/conferences.rb +12 -0
  66. data/lib/restcomm-ruby/rest/conferences/participants.rb +23 -0
  67. data/lib/restcomm-ruby/rest/connect_apps.rb +6 -0
  68. data/lib/restcomm-ruby/rest/errors.rb +14 -0
  69. data/lib/restcomm-ruby/rest/incoming_phone_numbers.rb +17 -0
  70. data/lib/restcomm-ruby/rest/incoming_phone_numbers/local.rb +13 -0
  71. data/lib/restcomm-ruby/rest/incoming_phone_numbers/mobile.rb +13 -0
  72. data/lib/restcomm-ruby/rest/incoming_phone_numbers/toll_free.rb +13 -0
  73. data/lib/restcomm-ruby/rest/instance_resource.rb +88 -0
  74. data/lib/restcomm-ruby/rest/list_resource.rb +132 -0
  75. data/lib/restcomm-ruby/rest/media.rb +14 -0
  76. data/lib/restcomm-ruby/rest/messages.rb +23 -0
  77. data/lib/restcomm-ruby/rest/next_gen_list_resource.rb +29 -0
  78. data/lib/restcomm-ruby/rest/notifications.rb +6 -0
  79. data/lib/restcomm-ruby/rest/outgoing_caller_ids.rb +25 -0
  80. data/lib/restcomm-ruby/rest/queues.rb +12 -0
  81. data/lib/restcomm-ruby/rest/queues/members.rb +29 -0
  82. data/lib/restcomm-ruby/rest/recordings.rb +35 -0
  83. data/lib/restcomm-ruby/rest/sandbox.rb +5 -0
  84. data/lib/restcomm-ruby/rest/sip.rb +10 -0
  85. data/lib/restcomm-ruby/rest/sip/credential_lists.rb +11 -0
  86. data/lib/restcomm-ruby/rest/sip/credential_lists/credentials.rb +6 -0
  87. data/lib/restcomm-ruby/rest/sip/domains.rb +12 -0
  88. data/lib/restcomm-ruby/rest/sip/domains/credential_list_mappings.rb +6 -0
  89. data/lib/restcomm-ruby/rest/sip/domains/ip_access_control_list_mappings.rb +6 -0
  90. data/lib/restcomm-ruby/rest/sip/ip_access_control_lists.rb +11 -0
  91. data/lib/restcomm-ruby/rest/sip/ip_access_control_lists/ip_addresses.rb +6 -0
  92. data/lib/restcomm-ruby/rest/sms.rb +11 -0
  93. data/lib/restcomm-ruby/rest/sms/messages.rb +39 -0
  94. data/lib/restcomm-ruby/rest/sms/short_codes.rb +8 -0
  95. data/lib/restcomm-ruby/rest/task_router/activities.rb +8 -0
  96. data/lib/restcomm-ruby/rest/task_router/events.rb +8 -0
  97. data/lib/restcomm-ruby/rest/task_router/reservations.rb +8 -0
  98. data/lib/restcomm-ruby/rest/task_router/task_queues.rb +8 -0
  99. data/lib/restcomm-ruby/rest/task_router/task_queues_statistics.rb +15 -0
  100. data/lib/restcomm-ruby/rest/task_router/tasks.rb +15 -0
  101. data/lib/restcomm-ruby/rest/task_router/workers.rb +8 -0
  102. data/lib/restcomm-ruby/rest/task_router/workers_statistics.rb +8 -0
  103. data/lib/restcomm-ruby/rest/task_router/workflow_statistics.rb +7 -0
  104. data/lib/restcomm-ruby/rest/task_router/workflows.rb +8 -0
  105. data/lib/restcomm-ruby/rest/task_router/workspace_statistics.rb +7 -0
  106. data/lib/restcomm-ruby/rest/task_router/workspaces.rb +15 -0
  107. data/lib/restcomm-ruby/rest/tokens.rb +7 -0
  108. data/lib/restcomm-ruby/rest/transcriptions.rb +6 -0
  109. data/lib/restcomm-ruby/rest/usage.rb +10 -0
  110. data/lib/restcomm-ruby/rest/usage/records.rb +21 -0
  111. data/lib/restcomm-ruby/rest/usage/triggers.rb +12 -0
  112. data/lib/restcomm-ruby/rest/utils.rb +49 -0
  113. data/lib/restcomm-ruby/task_router.rb +0 -0
  114. data/lib/restcomm-ruby/task_router/capability.rb +87 -0
  115. data/lib/restcomm-ruby/twiml/response.rb +16 -0
  116. data/lib/restcomm-ruby/util.rb +15 -0
  117. data/lib/restcomm-ruby/util/capability.rb +64 -0
  118. data/lib/restcomm-ruby/util/configuration.rb +7 -0
  119. data/lib/restcomm-ruby/util/request_validator.rb +37 -0
  120. data/lib/restcomm-ruby/version.rb +3 -0
  121. data/restcomm-ruby.gemspec +34 -0
  122. data/spec/rack/twilio_webhook_authentication_spec.rb +110 -0
  123. data/spec/rest/account_spec.rb +89 -0
  124. data/spec/rest/address_spec.rb +11 -0
  125. data/spec/rest/call_feedback_spec.rb +12 -0
  126. data/spec/rest/call_feedback_summary_spec.rb +9 -0
  127. data/spec/rest/call_spec.rb +22 -0
  128. data/spec/rest/client_spec.rb +258 -0
  129. data/spec/rest/conference_spec.rb +11 -0
  130. data/spec/rest/instance_resource_spec.rb +15 -0
  131. data/spec/rest/message_spec.rb +12 -0
  132. data/spec/rest/numbers_spec.rb +58 -0
  133. data/spec/rest/queue_spec.rb +11 -0
  134. data/spec/rest/recording_spec.rb +11 -0
  135. data/spec/rest/sms/message_spec.rb +37 -0
  136. data/spec/rest/sms/messages_spec.rb +36 -0
  137. data/spec/rest/task_router/reservation_spec.rb +9 -0
  138. data/spec/rest/task_router/task_queue_spec.rb +9 -0
  139. data/spec/rest/token_spec.rb +7 -0
  140. data/spec/rest/utils_spec.rb +45 -0
  141. data/spec/spec_helper.rb +15 -0
  142. data/spec/support/fakeweb.rb +2 -0
  143. data/spec/task_router_spec.rb +114 -0
  144. data/spec/twilio_spec.rb +15 -0
  145. data/spec/util/capability_spec.rb +186 -0
  146. data/spec/util/configuration_spec.rb +13 -0
  147. data/spec/util/request_validator_spec.rb +93 -0
  148. data/spec/util/url_encode_spec.rb +12 -0
  149. metadata +298 -0
@@ -0,0 +1,117 @@
1
+ .. module:: restcomm.rest.resources
2
+
3
+ ==============================
4
+ Queues and Members
5
+ ==============================
6
+
7
+ For more information, see the
8
+ `Queue REST Resource <http://docs.telestax.com/restcomm-pages/>`_
9
+ and `Member REST Resource <http://docs.telestax.com/restcomm-pages/>`_
10
+ documentation.
11
+
12
+
13
+ Listing Queues
14
+ -----------------------
15
+
16
+ .. code-block:: ruby
17
+
18
+ require 'restcomm-ruby'
19
+
20
+ # To find these visit http://docs.telestax.com/restcomm-pages/
21
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
22
+ auth_token = "YYYYYYYYYYYYYYYYYY"
23
+ host = "XXX.XXX.XXX.XXX"
24
+
25
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
26
+ @queues = @client.queues.list
27
+
28
+ @queues.each do |queue|
29
+ puts queue.sid
30
+ end
31
+
32
+
33
+ Listing Queue Members
34
+ ----------------------
35
+
36
+ Each :class:`Queue` has a :attr:`members` instance which
37
+ represents all current calls in the queue.
38
+
39
+ .. code-block:: ruby
40
+
41
+ require 'restcomm-ruby'
42
+
43
+ # To find these visit http://docs.telestax.com/restcomm-pages/
44
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
45
+ auth_token = "YYYYYYYYYYYYYYYYYY"
46
+ host = "XXX.XXX.XXX.XXX"
47
+
48
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
49
+ @queue = @client.queues.get("QU123")
50
+
51
+ @queue.members.list().each do |member|
52
+ puts member.call_sid
53
+ end
54
+
55
+
56
+ Getting a specific Queue Member
57
+ -------------------------------
58
+
59
+ To retrieve information about a specific member in the queue, each
60
+ :class:`Members` has a :attr:`get` method. :attr:`get` accepts one
61
+ argument. The argument can either be a `call_sid` thats in the queue,
62
+ in which case :attr:`get` will return a :class:`Member` instance
63
+ representing that call, or the argument can be 'Front', in which case
64
+ :attr:`Get` will return a :class:`Member` instance representing the
65
+ first call in the queue.
66
+
67
+ .. code-block:: ruby
68
+
69
+ require 'restcomm-ruby'
70
+
71
+ # To find these visit http://docs.telestax.com/restcomm-pages/
72
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
73
+ auth_token = "YYYYYYYYYYYYYYYYYY"
74
+ host = "XXX.XXX.XXX.XXX"
75
+
76
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
77
+
78
+ queue_sid = "QUAAAAAAAAAAAAA"
79
+ call_sid = "CAXXXXXXXXXXXXXX"
80
+
81
+
82
+ @members = @client.queues.get(queue_sid).members
83
+
84
+ # Get the first call in the queue
85
+ puts members.front.date_enqueued
86
+
87
+ # Get the call with the given call sid in the queue
88
+ puts members.get(call_sid).current_position
89
+
90
+
91
+ Dequeueing Queue Members
92
+ ------------------------
93
+
94
+ To dequeue a specific member from the queue, each
95
+ :class:`Members` has a :attr:`dequeue` method. :attr:`dequeue` accepts an
96
+ argument and two optional keyword arguments. The first argument is the
97
+ url of the twiml document to be executed when the member is
98
+ dequeued. The other two are :attr:`call_sid` and :attr:`method`, their
99
+ default values are 'Front' and 'GET'
100
+
101
+ .. code-block:: ruby
102
+
103
+ require 'restcomm-ruby'
104
+
105
+ # To find these visit http://docs.telestax.com/restcomm-pages/
106
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
107
+ auth_token = "YYYYYYYYYYYYYYYYYY"
108
+ host = "XXX.XXX.XXX.XXX"
109
+
110
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
111
+
112
+ queue_sid = "QUAAAAAAAAAAAAA"
113
+
114
+ @members = @client.queues.get(queue_sid).members
115
+
116
+ # Dequeue the first call in the queue
117
+ puts @members.dequeue('http://SOME_WEBSITE/welcome/call')
@@ -0,0 +1,102 @@
1
+ .. module:: restcomm.rest.resources
2
+
3
+ ================
4
+ Recordings
5
+ ================
6
+
7
+ For more information, see the
8
+ `Recordings REST Resource <http://docs.telestax.com/restcomm-pages/>`_
9
+ documentation.
10
+
11
+
12
+ Audio Formats
13
+ -----------------
14
+
15
+ Each :class:`Recording` has a few special methods. To get the url
16
+ for the wav format of this recording, use :meth:`Recording.wav`. For the
17
+ mp3 format, use :meth:`Recording.mp3`. To make requests for either of
18
+ these formats use the same method with a '!' appended. These methods
19
+ both take a block to be executed as soon as the response returns.
20
+
21
+
22
+ Listing Your Recordings
23
+ ----------------------------
24
+
25
+ The following code will print out the :attr:`duration`
26
+ for each :class:`Recording`.
27
+
28
+ .. code-block:: ruby
29
+
30
+ require 'restcomm-ruby'
31
+
32
+ # To find these visit http://docs.telestax.com/restcomm-pages/
33
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
34
+ auth_token = "YYYYYYYYYYYYYYYYYY"
35
+ host = "XXX.XXX.XXX.XXX"
36
+
37
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
38
+
39
+ @client.recordings.list().each do |recording|
40
+ puts recording.duration
41
+ end
42
+
43
+ You can filter recordings by CallSid by passing the Sid as :attr:`call`.
44
+ Filter recordings using :attr:`DateCreated<` and :attr:`DateCreated>` dates.
45
+
46
+ The following will only show recordings made before January 1, 2011.
47
+
48
+ .. code-block:: ruby
49
+
50
+ require 'restcomm-ruby'
51
+
52
+ # To find these visit http://docs.telestax.com/restcomm-pages/
53
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
54
+ auth_token = "YYYYYYYYYYYYYYYYYY"
55
+ host = "XXX.XXX.XXX.XXX"
56
+
57
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
58
+ @client.recordings.list('DateCreated<' => '2011-01-01').each do |recording|
59
+ puts recording.duration
60
+ end
61
+
62
+ Deleting Recordings
63
+ ---------------------
64
+
65
+ The :class:`Recordings` resource allows you to delete unnecessary recordings.
66
+
67
+ .. code-block:: ruby
68
+
69
+ require 'restcomm-ruby'
70
+
71
+ # To find these visit http://docs.telestax.com/restcomm-pages/
72
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
73
+ auth_token = "YYYYYYYYYYYYYYYYYY"
74
+ host = "XXX.XXX.XXX.XXX"
75
+
76
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
77
+ @client.recordings.get("RC123").delete()
78
+
79
+
80
+ Accessing Related Transcptions
81
+ -------------------------------
82
+
83
+ The :class:`Recordings` allows you to retrieve associated transcriptions.
84
+ The following prints out the text for each of the transcriptions associated
85
+ with this recording.
86
+
87
+ .. code-block:: ruby
88
+
89
+ require 'restcomm-ruby'
90
+
91
+ # To find these visit http://docs.telestax.com/restcomm-pages/
92
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
93
+ auth_token = "YYYYYYYYYYYYYYYYYY"
94
+ host = "XXX.XXX.XXX.XXX"
95
+
96
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
97
+ @recording = @client.recordings.get("RC123")
98
+
99
+ @recording.transcriptions.list().each do |transcription|
100
+ puts transcription.transcription_text
101
+ end
102
+
@@ -0,0 +1,108 @@
1
+ =============
2
+ Sip In
3
+ =============
4
+
5
+ Getting started with Sip In
6
+ ===========================
7
+
8
+ If you're unfamiliar with SIP, please see the `SIP API Documentation
9
+ <http://docs.telestax.com/restcomm-pages/>`_ on our website. If you want
10
+ to make a regular phone call, take a look at :doc:`phone-calls`.
11
+
12
+ Creating a Sip Domain
13
+ =====================
14
+
15
+ The :class:`Domains` resource allows you to create a new domain. To
16
+ create a new domain, you'll need to choose a unique domain that lives
17
+ under sip.restcomm.com.
18
+
19
+ .. code-block:: ruby
20
+
21
+ require 'restcomm-ruby'
22
+
23
+ # To find these visit http://docs.telestax.com/restcomm-pages/
24
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
25
+ auth_token = "YYYYYYYYYYYYYYYYYY"
26
+ host = "XXX.XXX.XXX.XXX"
27
+
28
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
29
+
30
+ @domain = @client.sip.domains.create(
31
+ friendly_name: "The Office Domain",
32
+ voice_url: "http://example.com/voice"
33
+ domain_name: "dunder-mifflin-scranton.sip.restcomm.com"
34
+ )
35
+ puts @domain.sid
36
+
37
+ Creating a new IpAccessControlList
38
+ ==================================
39
+
40
+ To control access to your new domain, you'll need to explicitly grant access
41
+ to individual ip addresses. To do this, you'll first need to create an
42
+ :class:`IpAccessControlList` to hold the ip addresses you wish to allow.
43
+
44
+ .. code-block:: ruby
45
+
46
+ require 'restcomm-ruby'
47
+
48
+ # To find these visit http://docs.telestax.com/restcomm-pages/
49
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
50
+ auth_token = "YYYYYYYYYYYYYYYYYY"
51
+ host = "XXX.XXX.XXX.XXX"
52
+
53
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
54
+
55
+ @ip_acl = @client.sip.ip_access_control_lists.create(
56
+ friendly_name: "The Office IpAccessControlList"
57
+ )
58
+ puts @ip_acl.sid
59
+
60
+ Adding a new IpAddress
61
+ =========================
62
+
63
+ Now it's time to add an :class:`IpAddress` to your new :class:`IpAccessControlList`.
64
+
65
+ .. code-block:: ruby
66
+
67
+ require 'restcomm-ruby'
68
+
69
+ # To find these visit http://docs.telestax.com/restcomm-pages/
70
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
71
+ auth_token = "YYYYYYYYYYYYYYYYYY"
72
+ host = "XXX.XXX.XXX.XXX"
73
+
74
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
75
+
76
+ @ip_address = @client.sip.ip_access_control_lists.get(
77
+ "AL456", # IpAccessControlList sid
78
+ ).ip_addresses.create(
79
+ friendly_name: "Dwights's Computer",
80
+ ip_address: "192.168.1.42"
81
+ )
82
+ puts @ip_address.sid
83
+
84
+ Adding an IpAccessControlList to a Domain
85
+ ===========================================
86
+
87
+ Once you've created a :class:`Domain` and an :class:`IpAccessControlList` you need to
88
+ associate them. To do this, create an :class:`IpAccessControlListMapping`.
89
+
90
+ .. code-block:: ruby
91
+
92
+ require 'restcomm-ruby'
93
+
94
+ # To find these visit http://docs.telestax.com/restcomm-pages/
95
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
96
+ auth_token = "YYYYYYYYYYYYYYYYYY"
97
+ host = "XXX.XXX.XXX.XXX"
98
+
99
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
100
+
101
+ @ip_acl_mapping = @client.sip.domains.get(
102
+ "SD456", # SIP Domain sid
103
+ ).ip_access_control_list_mappings.create(
104
+ ip_access_control_list_sid: "AL789"
105
+ )
106
+
107
+ puts @ip_acl_mapping.sid
108
+
@@ -0,0 +1,96 @@
1
+ .. module:: restcomm.util
2
+
3
+ ===========================
4
+ Generate Capability Tokens
5
+ ===========================
6
+
7
+ `Restcomm Client <http://docs.telestax.com/restcomm-pages/>`_ allows you to make and
8
+ receive connections in the browser.
9
+ You can place a call to a phone on the PSTN network,
10
+ all without leaving your browser. See the `Restcomm Client Quickstart
11
+ <http://docs.telestax.com/restcomm-pages/>`_ to get up and running with
12
+ Restcomm Client.
13
+
14
+ Capability tokens are used by `Restcomm Client
15
+ <http://docs.telestax.com/restcomm-pages/>`_ to provide connection
16
+ security and authorization. The `Capability Token documentation
17
+ <http://docs.telestax.com/restcomm-pages/>`_ explains in depth the purpose and
18
+ features of these tokens.
19
+
20
+ :class:`Restcomm::Util::Capability` is responsible for the creation of these
21
+ capability tokens. You'll need your Restcomm AccountSid and AuthToken.
22
+
23
+ .. code-block:: ruby
24
+
25
+ require 'restcomm-ruby'
26
+
27
+ # Find these values at restcomm.com/user/account
28
+ account_sid = "AC123123"
29
+ auth_token = "secret"
30
+
31
+ @capability = Restcomm::Util::Capability.new account_sid, auth_token
32
+
33
+ You can also configure capability tokens using the top level configure method,
34
+ like so:
35
+
36
+ .. code-block:: ruby
37
+
38
+ require 'restcomm-ruby'
39
+
40
+ Restcomm.configure do |config|
41
+ config.account_sid = "ACXXXXXXXXXXXXXXXXX"
42
+ config.auth_token = "YYYYYYYYYYYYYYYYYY"
43
+ end
44
+
45
+ @capability = Restcomm::Util::Capability.new
46
+
47
+
48
+
49
+ Allow Incoming Connections
50
+ ==============================
51
+
52
+ Before a device running `Restcomm Client <http://docs.telestax.com/restcomm-pages/>`_
53
+ can recieve incoming connections, the instance must first register a name
54
+ (such as "Alice" or "Bob").
55
+ The :meth:`allow_client_incoming` method adds the client name to the
56
+ capability token.
57
+
58
+ .. code-block:: ruby
59
+
60
+ @capability.allow_client_incoming("Alice")
61
+
62
+
63
+ Allow Outgoing Connections
64
+ ==============================
65
+
66
+ To make an outgoing connection from a
67
+ `Restcomm Client <http://docs.telestax.com/restcomm-pages/>`_ device,
68
+ you'll need to choose a
69
+ `Restcomm Application <http://www.restcomm.com/docs/api/rest/applications>`_
70
+ to handle RCML URLs. A Restcomm Application is a collection of URLs responsible
71
+ for outputting valid RCML to control phone calls and messages.
72
+
73
+ .. code-block:: ruby
74
+
75
+ # Restcomm Application Sid
76
+ application_sid = "APabe7650f654fc34655fc81ae71caa3ff"
77
+ @capability.allow_client_outgoing(application_sid)
78
+
79
+
80
+ Generate a Token
81
+ ==================
82
+
83
+ .. code-block:: ruby
84
+
85
+ @token = @capability.generate()
86
+
87
+ By default, this token will expire in one hour. If you'd like to change the
88
+ token expiration, :meth:`generate` takes an optional :attr:`ttl` argument.
89
+
90
+ .. code-block:: ruby
91
+
92
+ @token = @capability.generate(ttl=600)
93
+
94
+ This token will now expire in 10 minutes. If you haven't guessed already,
95
+ :attr:`ttl` is expressed in seconds.
96
+
@@ -0,0 +1,34 @@
1
+ .. module:: restcomm.rest.resources
2
+
3
+ ================
4
+ Transcriptions
5
+ ================
6
+
7
+ Transcriptions are generated from recordings via the
8
+ `RCML <Record> verb <http://www.restcomm.com/docs/api/twiml/record>`_.
9
+ Using the API, you can only read your transcription records.
10
+
11
+ For more information, see the `Transcriptions REST Resource
12
+ <http://docs.telestax.com/restcomm-pages/>`_ documentation.
13
+
14
+
15
+ Listing Your Transcriptions
16
+ ----------------------------
17
+
18
+ The following code will print out the length of each :class:`Transcription`.
19
+
20
+ .. code-block:: ruby
21
+
22
+ require 'restcomm-ruby'
23
+
24
+ # To find these visit http://docs.telestax.com/restcomm-pages/
25
+ account_sid = "ACXXXXXXXXXXXXXXXXX"
26
+ auth_token = "YYYYYYYYYYYYYYYYYY"
27
+ host = "XXX.XXX.XXX.XXX"
28
+
29
+
30
+ @client = Restcomm::REST::Client.new account_sid, auth_token, host
31
+ @client.transcriptions.list().each do |transcription|
32
+ puts transcription.duration
33
+ end
34
+