opentok 2.2.4 → 2.3.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.
- checksums.yaml +4 -4
- data/README.md +44 -17
- data/doc/OpenTok.html +20 -13
- data/doc/OpenTok/Archive.html +350 -68
- data/doc/OpenTok/ArchiveList.html +3 -3
- data/doc/OpenTok/Archives.html +114 -42
- data/doc/OpenTok/HashExtensions.html +184 -0
- data/doc/OpenTok/OpenTok.html +89 -44
- data/doc/OpenTok/OpenTokArchiveError.html +3 -3
- data/doc/OpenTok/OpenTokAuthenticationError.html +3 -3
- data/doc/OpenTok/OpenTokError.html +3 -3
- data/doc/OpenTok/Session.html +116 -24
- data/doc/_index.html +22 -7
- data/doc/class_list.html +6 -2
- data/doc/file.README.html +3 -3
- data/doc/file_list.html +5 -1
- data/doc/frames.html +1 -1
- data/doc/index.html +3 -3
- data/doc/js/full_list.js +4 -1
- data/doc/method_list.html +45 -11
- data/doc/top-level-namespace.html +3 -3
- data/lib/extensions/hash.rb +12 -0
- data/lib/opentok/archive.rb +22 -2
- data/lib/opentok/archives.rb +33 -6
- data/lib/opentok/client.rb +21 -4
- data/lib/opentok/constants.rb +1 -0
- data/lib/opentok/opentok.rb +25 -13
- data/lib/opentok/session.rb +6 -3
- data/lib/opentok/version.rb +1 -1
- data/sample/Archiving/README.md +16 -10
- data/sample/Archiving/archiving_sample.rb +6 -3
- data/sample/Archiving/public/js/host.js +25 -12
- data/sample/Archiving/views/host.erb +24 -0
- data/sample/HelloWorld/README.md +1 -1
- data/spec/cassettes/OpenTok_Archives/should_create_archives.yml +1 -1
- data/spec/cassettes/OpenTok_Archives/should_create_audio_only_archives.yml +50 -0
- data/spec/cassettes/OpenTok_Archives/should_create_individual_archives.yml +51 -0
- data/spec/cassettes/OpenTok_Archives/should_find_paused_archives_by_id.yml +46 -0
- data/spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions.yml +39 -0
- data/spec/opentok/archives_spec.rb +32 -0
- data/spec/opentok/opentok_spec.rb +27 -3
- data/spec/spec_helper.rb +1 -0
- metadata +36 -26
data/doc/_index.html
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
<head>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
6
|
<title>
|
7
|
-
Documentation by YARD 0.8.7.
|
7
|
+
Documentation by YARD 0.8.7.6
|
8
8
|
|
9
9
|
</title>
|
10
10
|
|
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
<iframe id="search_frame"></iframe>
|
58
58
|
|
59
|
-
<div id="content"><h1 class="noborder title">Documentation by YARD 0.8.7.
|
59
|
+
<div id="content"><h1 class="noborder title">Documentation by YARD 0.8.7.6</h1>
|
60
60
|
<div id="listing">
|
61
61
|
<h1 class="alphaindex">Alphabetic Index</h1>
|
62
62
|
|
@@ -109,15 +109,25 @@
|
|
109
109
|
</ul>
|
110
110
|
|
111
111
|
|
112
|
-
<ul id="
|
113
|
-
<li class="letter">
|
112
|
+
<ul id="alpha_H" class="alpha">
|
113
|
+
<li class="letter">H</li>
|
114
114
|
<ul>
|
115
115
|
|
116
116
|
<li>
|
117
|
-
<span class='object_link'><a href="OpenTok.html" title="OpenTok (module)">
|
117
|
+
<span class='object_link'><a href="OpenTok/HashExtensions.html" title="OpenTok::HashExtensions (module)">HashExtensions</a></span>
|
118
|
+
|
119
|
+
<small>(OpenTok)</small>
|
118
120
|
|
119
121
|
</li>
|
120
122
|
|
123
|
+
</ul>
|
124
|
+
</ul>
|
125
|
+
|
126
|
+
|
127
|
+
<ul id="alpha_O" class="alpha">
|
128
|
+
<li class="letter">O</li>
|
129
|
+
<ul>
|
130
|
+
|
121
131
|
<li>
|
122
132
|
<span class='object_link'><a href="OpenTok/OpenTok.html" title="OpenTok::OpenTok (class)">OpenTok</a></span>
|
123
133
|
|
@@ -125,6 +135,11 @@
|
|
125
135
|
|
126
136
|
</li>
|
127
137
|
|
138
|
+
<li>
|
139
|
+
<span class='object_link'><a href="OpenTok.html" title="OpenTok (module)">OpenTok</a></span>
|
140
|
+
|
141
|
+
</li>
|
142
|
+
|
128
143
|
<li>
|
129
144
|
<span class='object_link'><a href="OpenTok/OpenTokArchiveError.html" title="OpenTok::OpenTokArchiveError (class)">OpenTokArchiveError</a></span>
|
130
145
|
|
@@ -173,9 +188,9 @@
|
|
173
188
|
</div>
|
174
189
|
|
175
190
|
<div id="footer">
|
176
|
-
Generated on
|
191
|
+
Generated on Mon May 25 15:52:46 2015 by
|
177
192
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
178
|
-
0.8.7.
|
193
|
+
0.8.7.6 (ruby-1.9.3).
|
179
194
|
</div>
|
180
195
|
|
181
196
|
</body>
|
data/doc/class_list.html
CHANGED
@@ -20,7 +20,11 @@
|
|
20
20
|
</head>
|
21
21
|
<body>
|
22
22
|
<script type="text/javascript" charset="utf-8">
|
23
|
-
|
23
|
+
var hasFrames = false;
|
24
|
+
try {
|
25
|
+
hasFrames = window.top.frames.main ? true : false;
|
26
|
+
} catch (e) { }
|
27
|
+
if (hasFrames) {
|
24
28
|
document.getElementById('base_target').target = 'main';
|
25
29
|
document.body.className = 'frames';
|
26
30
|
}
|
@@ -46,7 +50,7 @@
|
|
46
50
|
|
47
51
|
<ul id="full_list" class="class">
|
48
52
|
<li><span class='object_link'><a href="top-level-namespace.html" title="Top Level Namespace (root)">Top Level Namespace</a></span></li>
|
49
|
-
<li><a class='toggle'></a> <span class='object_link'><a href="OpenTok.html" title="OpenTok (module)">OpenTok</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><span class='object_link'><a href="OpenTok/Archive.html" title="OpenTok::Archive (class)">Archive</a></span> < Object<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/ArchiveList.html" title="OpenTok::ArchiveList (class)">ArchiveList</a></span> < Array<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/Archives.html" title="OpenTok::Archives (class)">Archives</a></span> < Object<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTok.html" title="OpenTok::OpenTok (class)">OpenTok</a></span> < Object<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTokArchiveError.html" title="OpenTok::OpenTokArchiveError (class)">OpenTokArchiveError</a></span> < OpenTokError<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTokAuthenticationError.html" title="OpenTok::OpenTokAuthenticationError (class)">OpenTokAuthenticationError</a></span> < OpenTokError<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTokError.html" title="OpenTok::OpenTokError (class)">OpenTokError</a></span> < StandardError<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/Session.html" title="OpenTok::Session (class)">Session</a></span> < Object<small class='search_info'>OpenTok</small></li></ul>
|
53
|
+
<li><a class='toggle'></a> <span class='object_link'><a href="OpenTok.html" title="OpenTok (module)">OpenTok</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><span class='object_link'><a href="OpenTok/Archive.html" title="OpenTok::Archive (class)">Archive</a></span> < Object<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/ArchiveList.html" title="OpenTok::ArchiveList (class)">ArchiveList</a></span> < Array<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/Archives.html" title="OpenTok::Archives (class)">Archives</a></span> < Object<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/HashExtensions.html" title="OpenTok::HashExtensions (module)">HashExtensions</a></span><small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTok.html" title="OpenTok::OpenTok (class)">OpenTok</a></span> < Object<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTokArchiveError.html" title="OpenTok::OpenTokArchiveError (class)">OpenTokArchiveError</a></span> < OpenTokError<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTokAuthenticationError.html" title="OpenTok::OpenTokAuthenticationError (class)">OpenTokAuthenticationError</a></span> < OpenTokError<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/OpenTokError.html" title="OpenTok::OpenTokError (class)">OpenTokError</a></span> < StandardError<small class='search_info'>OpenTok</small></li><li><span class='object_link'><a href="OpenTok/Session.html" title="OpenTok::Session (class)">Session</a></span> < Object<small class='search_info'>OpenTok</small></li></ul>
|
50
54
|
|
51
55
|
</ul>
|
52
56
|
</div>
|
data/doc/file.README.html
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
File: README
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.7.
|
9
|
+
— Documentation by YARD 0.8.7.6
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -78,9 +78,9 @@
|
|
78
78
|
</div></div>
|
79
79
|
|
80
80
|
<div id="footer">
|
81
|
-
Generated on
|
81
|
+
Generated on Mon May 25 15:52:46 2015 by
|
82
82
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
83
|
-
0.8.7.
|
83
|
+
0.8.7.6 (ruby-1.9.3).
|
84
84
|
</div>
|
85
85
|
|
86
86
|
</body>
|
data/doc/file_list.html
CHANGED
@@ -20,7 +20,11 @@
|
|
20
20
|
</head>
|
21
21
|
<body>
|
22
22
|
<script type="text/javascript" charset="utf-8">
|
23
|
-
|
23
|
+
var hasFrames = false;
|
24
|
+
try {
|
25
|
+
hasFrames = window.top.frames.main ? true : false;
|
26
|
+
} catch (e) { }
|
27
|
+
if (hasFrames) {
|
24
28
|
document.getElementById('base_target').target = 'main';
|
25
29
|
document.body.className = 'frames';
|
26
30
|
}
|
data/doc/frames.html
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
5
|
<head>
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
|
-
<title>Documentation by YARD 0.8.7.
|
7
|
+
<title>Documentation by YARD 0.8.7.6</title>
|
8
8
|
</head>
|
9
9
|
<script type="text/javascript" charset="utf-8">
|
10
10
|
window.onload = function() {
|
data/doc/index.html
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
File: README
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.7.
|
9
|
+
— Documentation by YARD 0.8.7.6
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -78,9 +78,9 @@
|
|
78
78
|
</div></div>
|
79
79
|
|
80
80
|
<div id="footer">
|
81
|
-
Generated on
|
81
|
+
Generated on Mon May 25 15:52:46 2015 by
|
82
82
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
83
|
-
0.8.7.
|
83
|
+
0.8.7.6 (ruby-1.9.3).
|
84
84
|
</div>
|
85
85
|
|
86
86
|
</body>
|
data/doc/js/full_list.js
CHANGED
@@ -123,7 +123,10 @@ function linkList() {
|
|
123
123
|
}
|
124
124
|
}
|
125
125
|
if (clicked) clicked.removeClass('clicked');
|
126
|
-
var win
|
126
|
+
var win;
|
127
|
+
try {
|
128
|
+
win = window.top.frames.main ? window.top.frames.main : window.parent;
|
129
|
+
} catch (e) { win = window.parent; }
|
127
130
|
if (this.tagName.toLowerCase() == "a") {
|
128
131
|
clicked = $(this).parents('li').addClass('clicked');
|
129
132
|
win.location = this.href;
|
data/doc/method_list.html
CHANGED
@@ -20,7 +20,11 @@
|
|
20
20
|
</head>
|
21
21
|
<body>
|
22
22
|
<script type="text/javascript" charset="utf-8">
|
23
|
-
|
23
|
+
var hasFrames = false;
|
24
|
+
try {
|
25
|
+
hasFrames = window.top.frames.main ? true : false;
|
26
|
+
} catch (e) { }
|
27
|
+
if (hasFrames) {
|
24
28
|
document.getElementById('base_target').target = 'main';
|
25
29
|
document.body.className = 'frames';
|
26
30
|
}
|
@@ -54,11 +58,23 @@
|
|
54
58
|
|
55
59
|
|
56
60
|
<li class="r2 ">
|
61
|
+
<span class='object_link'><a href="OpenTok/Session.html#archive_mode-instance_method" title="OpenTok::Session#archive_mode (method)">#archive_mode</a></span>
|
62
|
+
<small>OpenTok::Session</small>
|
63
|
+
</li>
|
64
|
+
|
65
|
+
|
66
|
+
<li class="r1 ">
|
57
67
|
<span class='object_link'><a href="OpenTok/OpenTok.html#archives-instance_method" title="OpenTok::OpenTok#archives (method)">#archives</a></span>
|
58
68
|
<small>OpenTok::OpenTok</small>
|
59
69
|
</li>
|
60
70
|
|
61
71
|
|
72
|
+
<li class="r2 ">
|
73
|
+
<span class='object_link'><a href="OpenTok/HashExtensions.html#camelize_keys%21-instance_method" title="OpenTok::HashExtensions#camelize_keys! (method)">#camelize_keys!</a></span>
|
74
|
+
<small>OpenTok::HashExtensions</small>
|
75
|
+
</li>
|
76
|
+
|
77
|
+
|
62
78
|
<li class="r1 ">
|
63
79
|
<span class='object_link'><a href="OpenTok/Archives.html#create-instance_method" title="OpenTok::Archives#create (method)">#create</a></span>
|
64
80
|
<small>OpenTok::Archives</small>
|
@@ -125,6 +141,18 @@
|
|
125
141
|
</li>
|
126
142
|
|
127
143
|
|
144
|
+
<li class="r2 ">
|
145
|
+
<span class='object_link'><a href="OpenTok/Archive.html#has_audio-instance_method" title="OpenTok::Archive#has_audio (method)">#has_audio</a></span>
|
146
|
+
<small>OpenTok::Archive</small>
|
147
|
+
</li>
|
148
|
+
|
149
|
+
|
150
|
+
<li class="r1 ">
|
151
|
+
<span class='object_link'><a href="OpenTok/Archive.html#has_video-instance_method" title="OpenTok::Archive#has_video (method)">#has_video</a></span>
|
152
|
+
<small>OpenTok::Archive</small>
|
153
|
+
</li>
|
154
|
+
|
155
|
+
|
128
156
|
<li class="r2 ">
|
129
157
|
<span class='object_link'><a href="OpenTok/Archive.html#id-instance_method" title="OpenTok::Archive#id (method)">#id</a></span>
|
130
158
|
<small>OpenTok::Archive</small>
|
@@ -156,20 +184,20 @@
|
|
156
184
|
|
157
185
|
|
158
186
|
<li class="r1 ">
|
159
|
-
<span class='object_link'><a href="OpenTok/Archive.html#
|
187
|
+
<span class='object_link'><a href="OpenTok/Archive.html#output_mode-instance_method" title="OpenTok::Archive#output_mode (method)">#output_mode</a></span>
|
160
188
|
<small>OpenTok::Archive</small>
|
161
189
|
</li>
|
162
190
|
|
163
191
|
|
164
192
|
<li class="r2 ">
|
165
|
-
<span class='object_link'><a href="OpenTok/Archive.html#
|
193
|
+
<span class='object_link'><a href="OpenTok/Archive.html#partner_id-instance_method" title="OpenTok::Archive#partner_id (method)">#partner_id</a></span>
|
166
194
|
<small>OpenTok::Archive</small>
|
167
195
|
</li>
|
168
196
|
|
169
197
|
|
170
198
|
<li class="r1 ">
|
171
|
-
<span class='object_link'><a href="OpenTok/
|
172
|
-
<small>OpenTok::
|
199
|
+
<span class='object_link'><a href="OpenTok/Archive.html#reason-instance_method" title="OpenTok::Archive#reason (method)">#reason</a></span>
|
200
|
+
<small>OpenTok::Archive</small>
|
173
201
|
</li>
|
174
202
|
|
175
203
|
|
@@ -180,42 +208,48 @@
|
|
180
208
|
|
181
209
|
|
182
210
|
<li class="r1 ">
|
211
|
+
<span class='object_link'><a href="OpenTok/Session.html#session_id-instance_method" title="OpenTok::Session#session_id (method)">#session_id</a></span>
|
212
|
+
<small>OpenTok::Session</small>
|
213
|
+
</li>
|
214
|
+
|
215
|
+
|
216
|
+
<li class="r2 ">
|
183
217
|
<span class='object_link'><a href="OpenTok/Archive.html#size-instance_method" title="OpenTok::Archive#size (method)">#size</a></span>
|
184
218
|
<small>OpenTok::Archive</small>
|
185
219
|
</li>
|
186
220
|
|
187
221
|
|
188
|
-
<li class="
|
222
|
+
<li class="r1 ">
|
189
223
|
<span class='object_link'><a href="OpenTok/Archive.html#status-instance_method" title="OpenTok::Archive#status (method)">#status</a></span>
|
190
224
|
<small>OpenTok::Archive</small>
|
191
225
|
</li>
|
192
226
|
|
193
227
|
|
194
|
-
<li class="
|
228
|
+
<li class="r2 ">
|
195
229
|
<span class='object_link'><a href="OpenTok/Archive.html#stop-instance_method" title="OpenTok::Archive#stop (method)">#stop</a></span>
|
196
230
|
<small>OpenTok::Archive</small>
|
197
231
|
</li>
|
198
232
|
|
199
233
|
|
200
|
-
<li class="
|
234
|
+
<li class="r1 ">
|
201
235
|
<span class='object_link'><a href="OpenTok/Archives.html#stop_by_id-instance_method" title="OpenTok::Archives#stop_by_id (method)">#stop_by_id</a></span>
|
202
236
|
<small>OpenTok::Archives</small>
|
203
237
|
</li>
|
204
238
|
|
205
239
|
|
206
|
-
<li class="
|
240
|
+
<li class="r2 ">
|
207
241
|
<span class='object_link'><a href="OpenTok/Archive.html#to_json-instance_method" title="OpenTok::Archive#to_json (method)">#to_json</a></span>
|
208
242
|
<small>OpenTok::Archive</small>
|
209
243
|
</li>
|
210
244
|
|
211
245
|
|
212
|
-
<li class="
|
246
|
+
<li class="r1 ">
|
213
247
|
<span class='object_link'><a href="OpenTok/ArchiveList.html#total-instance_method" title="OpenTok::ArchiveList#total (method)">#total</a></span>
|
214
248
|
<small>OpenTok::ArchiveList</small>
|
215
249
|
</li>
|
216
250
|
|
217
251
|
|
218
|
-
<li class="
|
252
|
+
<li class="r2 ">
|
219
253
|
<span class='object_link'><a href="OpenTok/Archive.html#url-instance_method" title="OpenTok::Archive#url (method)">#url</a></span>
|
220
254
|
<small>OpenTok::Archive</small>
|
221
255
|
</li>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.7.
|
9
|
+
— Documentation by YARD 0.8.7.6
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -103,9 +103,9 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on
|
106
|
+
Generated on Mon May 25 15:52:46 2015 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
|
-
0.8.7.
|
108
|
+
0.8.7.6 (ruby-1.9.3).
|
109
109
|
</div>
|
110
110
|
|
111
111
|
</body>
|
data/lib/opentok/archive.rb
CHANGED
@@ -16,6 +16,16 @@ module OpenTok
|
|
16
16
|
# The name of the archive. If no name was provided when the archive was created, this is set
|
17
17
|
# to null.
|
18
18
|
#
|
19
|
+
# @attr [true, false] has_audio
|
20
|
+
# Whether the archive has an audio track (true) or not (false).
|
21
|
+
#
|
22
|
+
# @attr [true, false] has_video
|
23
|
+
# Whether the archive has a video track (true) or not (false).
|
24
|
+
#
|
25
|
+
# @attr [String] output_mode
|
26
|
+
# Whether all streams in the archive are recorded to a single file (<code>:composed</code>)
|
27
|
+
# or to individual files (<code>:individual</code>).
|
28
|
+
#
|
19
29
|
# @attr [string] partner_id
|
20
30
|
# The API key associated with the archive.
|
21
31
|
#
|
@@ -36,6 +46,12 @@ module OpenTok
|
|
36
46
|
# * "available" -- The archive is available for download from the OpenTok cloud.
|
37
47
|
# * "expired" -- The archive is no longer available for download from the OpenTok cloud.
|
38
48
|
# * "failed" -- The archive recording failed.
|
49
|
+
# * "paused" -- The archive is in progress and no clients are publishing streams to the
|
50
|
+
# session. When an archive is in progress and any client publishes a stream, the status is
|
51
|
+
# "started". When an archive is paused, nothing is recorded. When a client starts publishing
|
52
|
+
# a stream, the recording starts (or resumes). If all clients disconnect from a session that
|
53
|
+
# is being archived, the status changes to "paused", and after 60 seconds the archive
|
54
|
+
# recording stops (and the status changes to "stopped").
|
39
55
|
# * "started" -- The archive started and is in the process of being recorded.
|
40
56
|
# * "stopped" -- The archive stopped recording.
|
41
57
|
# * "uploaded" -- The archive is available for download from the the upload target
|
@@ -47,7 +63,7 @@ module OpenTok
|
|
47
63
|
# "available"; for other archives, (including archives with the status "uploaded") this property is
|
48
64
|
# set to null. The download URL is obfuscated, and the file is only available from the URL for
|
49
65
|
# 10 minutes. To generate a new URL, call the Archive.listArchives() or OpenTok.getArchive() method.
|
50
|
-
|
66
|
+
class Archive
|
51
67
|
|
52
68
|
# @private
|
53
69
|
def initialize(interface, json)
|
@@ -85,7 +101,11 @@ module OpenTok
|
|
85
101
|
camelized_method = method.to_s.camelize(:lower)
|
86
102
|
if @json.has_key? camelized_method and args.empty?
|
87
103
|
# TODO: convert create_time method call to a Time object
|
88
|
-
|
104
|
+
if camelized_method == 'outputMode'
|
105
|
+
@json[camelized_method].to_sym
|
106
|
+
else
|
107
|
+
@json[camelized_method]
|
108
|
+
end
|
89
109
|
else
|
90
110
|
super method, *args, &block
|
91
111
|
end
|
data/lib/opentok/archives.rb
CHANGED
@@ -3,7 +3,7 @@ require "opentok/archive"
|
|
3
3
|
require "opentok/archive_list"
|
4
4
|
|
5
5
|
module OpenTok
|
6
|
-
# A class for working with OpenTok
|
6
|
+
# A class for working with OpenTok archives.
|
7
7
|
class Archives
|
8
8
|
|
9
9
|
# @private
|
@@ -11,7 +11,7 @@ module OpenTok
|
|
11
11
|
@client = client
|
12
12
|
end
|
13
13
|
|
14
|
-
# Starts archiving an OpenTok
|
14
|
+
# Starts archiving an OpenTok session.
|
15
15
|
#
|
16
16
|
# Clients must be actively connected to the OpenTok session for you to successfully start
|
17
17
|
# recording an archive.
|
@@ -20,11 +20,30 @@ module OpenTok
|
|
20
20
|
# of sessions that use the OpenTok Media Router (sessions with the media mode set to routed);
|
21
21
|
# you cannot archive sessions with the media mode set to relayed.
|
22
22
|
#
|
23
|
+
# For more information on archiving, see the
|
24
|
+
# {https://tokbox.com/opentok/tutorials/archiving OpenTok archiving} programming guide.
|
25
|
+
#
|
23
26
|
# @param [String] session_id The session ID of the OpenTok session to archive.
|
24
|
-
# @param [Hash] options A hash with the key 'name' or
|
27
|
+
# @param [Hash] options A hash with the key 'name', 'has_audio', and 'has_video' (or
|
28
|
+
# :name.
|
25
29
|
# @option options [String] :name This is the name of the archive. You can use this name
|
26
30
|
# to identify the archive. It is a property of the Archive object, and it is a property
|
27
|
-
# of archive-related events in the OpenTok
|
31
|
+
# of archive-related events in the OpenTok client SDKs.
|
32
|
+
# @option options [true, false] :has_audio Whether the archive will include an audio track
|
33
|
+
# (<code>true</code>) or not <code>false</code>). The default value is <code>true</code>
|
34
|
+
# (an audio track is included). If you set both <code>has_audio</code> and
|
35
|
+
# <code>has_video</code> to <code>false</code>, the call to the <code>create()</code>
|
36
|
+
# method results in an error.
|
37
|
+
# @option options [true, false] :has_video Whether the archive will include a video track
|
38
|
+
# (<code>true</code>) or not <code>false</code>). The default value is <code>true</code>
|
39
|
+
# (a video track is included). If you set both <code>has_audio</code> and
|
40
|
+
# <code>has_video</code> to <code>false</code>, the call to the <code>create()</code>
|
41
|
+
# method results in an error.
|
42
|
+
# @option options [String] :output_mode Whether all streams in the archive are recorded
|
43
|
+
# to a single file (<code>:composed</code>, the default) or to individual files
|
44
|
+
# (<code>:individual</code>). For more information on archiving and the archive file
|
45
|
+
# formats, see the {https://tokbox.com/opentok/tutorials/archiving OpenTok archiving}
|
46
|
+
# programming guide.
|
28
47
|
#
|
29
48
|
# @return [Archive] The Archive object, which includes properties defining the archive,
|
30
49
|
# including the archive ID.
|
@@ -39,8 +58,16 @@ module OpenTok
|
|
39
58
|
# @raise [OpenTokArchiveError] The archive could not be started.
|
40
59
|
def create(session_id, options = {})
|
41
60
|
raise ArgumentError, "session_id not provided" if session_id.to_s.empty?
|
42
|
-
|
43
|
-
opts
|
61
|
+
|
62
|
+
# normalize opts so all keys are symbols and only include valid_opts
|
63
|
+
valid_opts = [ :name, :has_audio, :has_video, :output_mode ]
|
64
|
+
opts = options.inject({}) do |m,(k,v)|
|
65
|
+
if valid_opts.include? k.to_sym
|
66
|
+
m[k.to_sym] = v
|
67
|
+
end
|
68
|
+
m
|
69
|
+
end
|
70
|
+
|
44
71
|
archive_json = @client.start_archive(session_id, opts)
|
45
72
|
Archive.new self, archive_json
|
46
73
|
end
|