restcomm-ruby 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
+