opentok 4.6.0 → 4.7.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/CHANGES.md +6 -0
- data/README.md +22 -0
- data/lib/opentok/opentok.rb +24 -3
- data/lib/opentok/session.rb +11 -2
- data/lib/opentok/version.rb +1 -1
- data/spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_name.yml +42 -0
- data/spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_name_and_resolution.yml +42 -0
- data/spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_resolution.yml +42 -0
- data/spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_e2ee_sessions.yml +40 -0
- data/spec/opentok/opentok_spec.rb +74 -2
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz: '
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '019bb7945d8571c4805cab88854fd49914fac7fbb7169b2b1351fa393237ea46'
|
4
|
+
data.tar.gz: 9f167173216875bbc1b52bd2239c7fff7e9ff49c4aa92c28e6541d9fb178782d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e24be36a973fd9fe2ed63a620dbff3f0cb2fa24939318fd0f353a76374c8c09e4e46c8c920e223015c6b536dfbeddc2d94e75909f6cc3fbb54e6b39f85077402
|
7
|
+
data.tar.gz: 29b06c9529e61f19208d0c875ddf0caba12652afaaa4f87f59760a3c664a69b6a1686f200f1793a730b8518ec1d2f99cbd0ea7a29ee7ab2c5bcc7d42cb2b2af6
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# 4.7.0
|
2
|
+
|
3
|
+
* Adds support for the End-to-end encryption (E2EE) feature [#259](https://github.com/opentok/OpenTok-Ruby-SDK/pull/259)
|
4
|
+
* Implements Auto-archive improvements [#262](https://github.com/opentok/OpenTok-Ruby-SDK/pull/262)
|
5
|
+
* Updates the README to explain appending a custom value to the `UserAgent` header [#263](https://github.com/opentok/OpenTok-Ruby-SDK/pull/263)
|
6
|
+
|
1
7
|
# 4.6.0
|
2
8
|
|
3
9
|
* Adds functionality for working with the Audio Connector feature [#247](https://github.com/opentok/OpenTok-Ruby-SDK/pull/247)
|
data/README.md
CHANGED
@@ -59,6 +59,8 @@ opentok = OpenTok::OpenTok.new api_key, api_secret
|
|
59
59
|
|
60
60
|
#### Initialization Options
|
61
61
|
|
62
|
+
**Custom Timeout**
|
63
|
+
|
62
64
|
You can specify a custom timeout value for HTTP requests when initializing a new `OpenTok::OpenTok`
|
63
65
|
object:
|
64
66
|
|
@@ -71,6 +73,23 @@ opentok = OpenTok::OpenTok.new api_key, api_secret, :timeout_length => 10
|
|
71
73
|
The value for `:timeout_length` is an integer representing the number of seconds to wait for an HTTP
|
72
74
|
request to complete. The default is set to 2 seconds.
|
73
75
|
|
76
|
+
**UA Addendum**
|
77
|
+
|
78
|
+
You can also append a custom string to the `User-Agent` header value for HTTP requests when initializing a new `OpenTok::OpenTok`
|
79
|
+
object:
|
80
|
+
|
81
|
+
```ruby
|
82
|
+
require "opentok"
|
83
|
+
|
84
|
+
opentok = OpenTok::OpenTok.new api_key, api_secret, :ua_addendum => 'FOO'
|
85
|
+
```
|
86
|
+
|
87
|
+
The above would generate a `User-Agent` header something like this:
|
88
|
+
|
89
|
+
```
|
90
|
+
User-Agent: OpenTok-Ruby-SDK/4.6.0-Ruby-Version-3.1.2-p20 FOO
|
91
|
+
```
|
92
|
+
|
74
93
|
### Creating Sessions
|
75
94
|
|
76
95
|
To create an OpenTok Session, use the `OpenTok#create_session(properties)` method.
|
@@ -101,6 +120,9 @@ session = opentok.create_session :location => '12.34.56.78'
|
|
101
120
|
# A session with automatic archiving (must use the routed media mode):
|
102
121
|
session = opentok.create_session :archive_mode => :always, :media_mode => :routed
|
103
122
|
|
123
|
+
# A session with end-to-end encryption (must use the routed media mode):
|
124
|
+
session = opentok.create_session :e2ee => true, :media_mode => :routed
|
125
|
+
|
104
126
|
# Store this sessionId in the database for later use:
|
105
127
|
session_id = session.session_id
|
106
128
|
```
|
data/lib/opentok/opentok.rb
CHANGED
@@ -144,11 +144,26 @@ module OpenTok
|
|
144
144
|
# automatically (<code>:always</code>) or not (<code>:manual</code>). When using automatic
|
145
145
|
# archiving, the session must use the <code>:routed</code> media mode.
|
146
146
|
#
|
147
|
+
# @option opts [Symbol] :archive_name The name to use for archives in auto-archived sessions.
|
148
|
+
# When setting this option, the :archive_mode option must be set to :always or an error will result.
|
149
|
+
# The length of the archive name can be up to 80 chars.
|
150
|
+
# Due to encoding limitations the following special characters are translated to a colon (:) character: ~, -, _.
|
151
|
+
# If you do not set a name and the archiveMode option is set to always, the archive name will be empty.
|
152
|
+
#
|
153
|
+
# @option opts [Symbol] :archive_resolution The resolution of archives in an auto-archived session.
|
154
|
+
# Valid values are "480x640", "640x480" (the default), "720x1280", "1280x720", "1080x1920", and "1920x1080".
|
155
|
+
# When setting this option, the :archive_mode option must be set to :always or an error will result.
|
156
|
+
#
|
157
|
+
# @option opts [true, false] :e2ee
|
158
|
+
# (Boolean, optional) — Whether the session uses end-to-end encryption from client to client (default: false).
|
159
|
+
# This should not be set to `true` if `:media_mode` is `:relayed`.
|
160
|
+
# See the {https://tokbox.com/developer/guides/end-to-end-encryption/ documentation} for more information.
|
161
|
+
#
|
147
162
|
# @return [Session] The Session object. The session_id property of the object is the session ID.
|
148
163
|
def create_session(opts={})
|
149
164
|
|
150
165
|
# normalize opts so all keys are symbols and only include valid_opts
|
151
|
-
valid_opts = [ :media_mode, :location, :archive_mode ]
|
166
|
+
valid_opts = [ :media_mode, :location, :archive_mode, :archive_name, :archive_resolution, :e2ee ]
|
152
167
|
opts = opts.inject({}) do |m,(k,v)|
|
153
168
|
if valid_opts.include? k.to_sym
|
154
169
|
m[k.to_sym] = v
|
@@ -159,6 +174,13 @@ module OpenTok
|
|
159
174
|
# keep opts around for Session constructor, build REST params
|
160
175
|
params = opts.clone
|
161
176
|
|
177
|
+
# validate input combinations
|
178
|
+
raise ArgumentError, "A session with always archive mode must also have the routed media mode." if (params[:archive_mode] == :always && params[:media_mode] == :relayed)
|
179
|
+
|
180
|
+
raise ArgumentError, "A session with relayed media mode should not have e2ee set to true." if (params[:media_mode] == :relayed && params[:e2ee] == true)
|
181
|
+
|
182
|
+
raise ArgumentError, "A session with always archive mode must not have e2ee set to true." if (params[:archive_mode] == :always && params[:e2ee] == true)
|
183
|
+
|
162
184
|
# anything other than :relayed sets the REST param to "disabled", in which case we force
|
163
185
|
# opts to be :routed. if we were more strict we could raise an error when the value isn't
|
164
186
|
# either :relayed or :routed
|
@@ -175,10 +197,9 @@ module OpenTok
|
|
175
197
|
# archive mode is optional, but it has to be one of the valid values if present
|
176
198
|
unless params[:archive_mode].nil?
|
177
199
|
raise "archive mode must be either always or manual" unless ARCHIVE_MODES.include? params[:archive_mode].to_sym
|
200
|
+
raise ArgumentError, "archive name and/or archive resolution must not be set if archive mode is manual" if params[:archive_mode] == :manual && (params[:archive_name] || params[:archive_resolution])
|
178
201
|
end
|
179
202
|
|
180
|
-
raise "A session with always archive mode must also have the routed media mode." if (params[:archive_mode] == :always && params[:media_mode] == :relayed)
|
181
|
-
|
182
203
|
response = client.create_session(params)
|
183
204
|
Session.new api_key, api_secret, response['sessions']['Session']['session_id'], opts
|
184
205
|
end
|
data/lib/opentok/session.rb
CHANGED
@@ -20,6 +20,10 @@ module OpenTok
|
|
20
20
|
# @attr_reader [String] archive_mode Whether the session will be archived automatically
|
21
21
|
# (<code>:always</code>) or not (<code>:manual</code>).
|
22
22
|
#
|
23
|
+
# @attr_reader [String] archive_name The name to use for archives in auto-archived sessions.
|
24
|
+
#
|
25
|
+
# @attr_reader [String] :archive_resolution The resolution of archives in an auto-archived session.
|
26
|
+
#
|
23
27
|
# @!method generate_token(options)
|
24
28
|
# Generates a token.
|
25
29
|
#
|
@@ -57,7 +61,7 @@ module OpenTok
|
|
57
61
|
:session_id => ->(instance) { instance.session_id }
|
58
62
|
})
|
59
63
|
|
60
|
-
attr_reader :session_id, :media_mode, :location, :archive_mode, :api_key, :api_secret
|
64
|
+
attr_reader :session_id, :media_mode, :location, :archive_mode, :archive_name, :archive_resolution, :e2ee, :api_key, :api_secret
|
61
65
|
|
62
66
|
# @private
|
63
67
|
# this implementation doesn't completely understand the format of a Session ID
|
@@ -73,7 +77,12 @@ module OpenTok
|
|
73
77
|
# @private
|
74
78
|
def initialize(api_key, api_secret, session_id, opts={})
|
75
79
|
@api_key, @api_secret, @session_id = api_key, api_secret, session_id
|
76
|
-
@media_mode
|
80
|
+
@media_mode = opts.fetch(:media_mode, :relayed)
|
81
|
+
@location = opts[:location]
|
82
|
+
@archive_mode = opts.fetch(:archive_mode, :manual)
|
83
|
+
@archive_name = opts.fetch(:archive_name, '') if archive_mode == :always
|
84
|
+
@archive_resolution = opts.fetch(:archive_resolution, "640x480") if archive_mode == :always
|
85
|
+
@e2ee = opts.fetch(:e2ee, :false)
|
77
86
|
end
|
78
87
|
|
79
88
|
# @private
|
data/lib/opentok/version.rb
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.opentok.com/session/create
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: archiveMode=always&archiveName=foo&p2p.preference=disabled
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- OpenTok-Ruby-SDK/<%= version %>
|
12
|
+
X-Opentok-Auth:
|
13
|
+
- eyJpc3QiOiJwcm9qZWN0IiwiYWxnIjoiSFMyNTYifQ.eyJpc3MiOiIxMjM0NTYiLCJpYXQiOjE0OTI1MTA2NjAsImV4cCI6MTQ5MjUxMDk2MH0.BplMVhJWx4ld7KLKXqEmow6MjNPPFw9W8IHCMfeb120
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- "*/*"
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- nginx
|
25
|
+
Date:
|
26
|
+
- Mon, 12 Jun 2023 16:17:36 GMT
|
27
|
+
Content-Type:
|
28
|
+
- text/xml
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- '*'
|
33
|
+
X-Tb-Host:
|
34
|
+
- fms503-nyc.tokbox.com
|
35
|
+
Content-Length:
|
36
|
+
- '282'
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><sessions><Session><session_id>1_MX4xMjM0NTZ-fk1vbiBNYXIgMTcgMDA6NDE6MzEgUERUIDIwMTR-MC42ODM3ODk1MzQ0OTQyODA4fg</session_id><partner_id>123456</partner_id><create_dt>Mon
|
40
|
+
Jun 12 16:17:36 GMT 2023</create_dt></Session></sessions>
|
41
|
+
recorded_at: Tue, 18 Apr 2017 10:17:40 GMT
|
42
|
+
recorded_with: VCR 6.0.0
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.opentok.com/session/create
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: archiveMode=always&archiveName=foo&archiveResolution=720x1280&p2p.preference=disabled
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- OpenTok-Ruby-SDK/<%= version %>
|
12
|
+
X-Opentok-Auth:
|
13
|
+
- eyJpc3QiOiJwcm9qZWN0IiwiYWxnIjoiSFMyNTYifQ.eyJpc3MiOiIxMjM0NTYiLCJpYXQiOjE0OTI1MTA2NjAsImV4cCI6MTQ5MjUxMDk2MH0.BplMVhJWx4ld7KLKXqEmow6MjNPPFw9W8IHCMfeb120
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- "*/*"
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- nginx
|
25
|
+
Date:
|
26
|
+
- Mon, 12 Jun 2023 16:17:36 GMT
|
27
|
+
Content-Type:
|
28
|
+
- text/xml
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- '*'
|
33
|
+
X-Tb-Host:
|
34
|
+
- fms503-nyc.tokbox.com
|
35
|
+
Content-Length:
|
36
|
+
- '282'
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><sessions><Session><session_id>1_MX4xMjM0NTZ-fk1vbiBNYXIgMTcgMDA6NDE6MzEgUERUIDIwMTR-MC42ODM3ODk1MzQ0OTQyODA4fg</session_id><partner_id>123456</partner_id><create_dt>Mon
|
40
|
+
Jun 12 16:17:36 GMT 2023</create_dt></Session></sessions>
|
41
|
+
recorded_at: Tue, 18 Apr 2017 10:17:40 GMT
|
42
|
+
recorded_with: VCR 6.0.0
|
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.opentok.com/session/create
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: archiveMode=always&archiveResolution=720x1280&p2p.preference=disabled
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- OpenTok-Ruby-SDK/<%= version %>
|
12
|
+
X-Opentok-Auth:
|
13
|
+
- eyJpc3QiOiJwcm9qZWN0IiwiYWxnIjoiSFMyNTYifQ.eyJpc3MiOiIxMjM0NTYiLCJpYXQiOjE0OTI1MTA2NjAsImV4cCI6MTQ5MjUxMDk2MH0.BplMVhJWx4ld7KLKXqEmow6MjNPPFw9W8IHCMfeb120
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
Accept:
|
17
|
+
- "*/*"
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- nginx
|
25
|
+
Date:
|
26
|
+
- Mon, 12 Jun 2023 16:17:36 GMT
|
27
|
+
Content-Type:
|
28
|
+
- text/xml
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- '*'
|
33
|
+
X-Tb-Host:
|
34
|
+
- fms503-nyc.tokbox.com
|
35
|
+
Content-Length:
|
36
|
+
- '282'
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><sessions><Session><session_id>1_MX4xMjM0NTZ-fk1vbiBNYXIgMTcgMDA6NDE6MzEgUERUIDIwMTR-MC42ODM3ODk1MzQ0OTQyODA4fg</session_id><partner_id>123456</partner_id><create_dt>Mon
|
40
|
+
Jun 12 16:17:36 GMT 2023</create_dt></Session></sessions>
|
41
|
+
recorded_at: Tue, 18 Apr 2017 10:17:40 GMT
|
42
|
+
recorded_with: VCR 6.0.0
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://api.opentok.com/session/create
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: e2ee=true&p2p.preference=disabled
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- OpenTok-Ruby-SDK/<%= version %>
|
12
|
+
X-Opentok-Auth:
|
13
|
+
- eyJpc3QiOiJwcm9qZWN0IiwiYWxnIjoiSFMyNTYifQ.eyJpc3MiOiIxMjM0NTYiLCJpYXQiOjE0OTI1MTA2NjAsImV4cCI6MTQ5MjUxMDk2MH0.BplMVhJWx4ld7KLKXqEmow6MjNPPFw9W8IHCMfeb120
|
14
|
+
Accept-Encoding: "gzip;q=1.0,deflate;q=0.6,identity;q=0.3"
|
15
|
+
Accept: "*/*"
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Server:
|
22
|
+
- nginx
|
23
|
+
Date:
|
24
|
+
- Tue, 18 Apr 2023 16:17:40 GMT
|
25
|
+
Content-Type:
|
26
|
+
- text/xml
|
27
|
+
Connection:
|
28
|
+
- keep-alive
|
29
|
+
Access-Control-Allow-Origin:
|
30
|
+
- '*'
|
31
|
+
X-Tb-Host:
|
32
|
+
- mantis503-nyc.tokbox.com
|
33
|
+
Content-Length:
|
34
|
+
- '304'
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><sessions><Session><session_id>1_MX4xMjM0NTZ-MTIuMzQuNTYuNzh-TW9uIE1hciAxNyAwMTo0ODo1NSBQRFQgMjAxNH4wLjM0MTM0MzE0MDIyOTU4Mjh-</session_id><partner_id>123456</partner_id><create_dt>Tue
|
38
|
+
Apr 18 08:17:40 PDT 2023</create_dt></Session></sessions>
|
39
|
+
recorded_at: Tue, 18 Apr 2023 16:17:40 GMT
|
40
|
+
recorded_with: VCR 6.0.0
|
@@ -97,6 +97,7 @@ describe OpenTok::OpenTok do
|
|
97
97
|
expect(session.media_mode).to eq :relayed
|
98
98
|
expect(session.location).to eq nil
|
99
99
|
end
|
100
|
+
|
100
101
|
it "creates always archived sessions", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
|
101
102
|
session = opentok.create_session :media_mode => :routed, :archive_mode => :always
|
102
103
|
expect(session).to be_an_instance_of OpenTok::Session
|
@@ -105,9 +106,80 @@ describe OpenTok::OpenTok do
|
|
105
106
|
expect(session.location).to eq nil
|
106
107
|
end
|
107
108
|
|
109
|
+
it "creates always archived sessions with a set archive name", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
|
110
|
+
session = opentok.create_session :media_mode => :routed, :archive_mode => :always, :archive_name => 'foo'
|
111
|
+
expect(session).to be_an_instance_of OpenTok::Session
|
112
|
+
expect(session.session_id).to be_an_instance_of String
|
113
|
+
expect(session.archive_mode).to eq :always
|
114
|
+
expect(session.archive_name).to eq 'foo'
|
115
|
+
expect(session.location).to eq nil
|
116
|
+
end
|
117
|
+
|
118
|
+
it "creates always archived sessions with a set archive resolution", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
|
119
|
+
session = opentok.create_session :media_mode => :routed, :archive_mode => :always, :archive_resolution => "720x1280"
|
120
|
+
expect(session).to be_an_instance_of OpenTok::Session
|
121
|
+
expect(session.session_id).to be_an_instance_of String
|
122
|
+
expect(session.archive_mode).to eq :always
|
123
|
+
expect(session.archive_resolution).to eq "720x1280"
|
124
|
+
expect(session.location).to eq nil
|
125
|
+
end
|
126
|
+
|
127
|
+
it "creates always archived sessions with a set archive name and resolution", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
|
128
|
+
session = opentok.create_session :media_mode => :routed, :archive_mode => :always, :archive_name => 'foo', :archive_resolution => "720x1280"
|
129
|
+
expect(session).to be_an_instance_of OpenTok::Session
|
130
|
+
expect(session.session_id).to be_an_instance_of String
|
131
|
+
expect(session.archive_mode).to eq :always
|
132
|
+
expect(session.archive_name).to eq 'foo'
|
133
|
+
expect(session.archive_resolution).to eq "720x1280"
|
134
|
+
expect(session.location).to eq nil
|
135
|
+
end
|
136
|
+
|
137
|
+
it "creates e2ee sessions", :vcr => { :erb => { :version => OpenTok::VERSION + "-Ruby-Version-#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}"} } do
|
138
|
+
session = opentok.create_session :media_mode => :routed, :e2ee => :true
|
139
|
+
expect(session).to be_an_instance_of OpenTok::Session
|
140
|
+
expect(session.session_id).to be_an_instance_of String
|
141
|
+
expect(session.e2ee).to eq :true
|
142
|
+
expect(session.location).to eq nil
|
143
|
+
end
|
144
|
+
|
108
145
|
context "with relayed media mode and always archive mode" do
|
109
|
-
|
110
|
-
|
146
|
+
it "raises an error" do
|
147
|
+
expect {
|
148
|
+
opentok.create_session :archive_mode => :always, :media_mode => :relayed
|
149
|
+
}.to raise_error ArgumentError
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
context "with archive name set and manual archive mode" do
|
154
|
+
it "raises an error" do
|
155
|
+
expect {
|
156
|
+
opentok.create_session :archive_mode => :manual, :archive_name => 'foo'
|
157
|
+
}.to raise_error ArgumentError
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
context "with archive resolution set and manual archive mode" do
|
162
|
+
it "raises an error" do
|
163
|
+
expect {
|
164
|
+
opentok.create_session :archive_mode => :manual, :archive_resolution => "720x1280"
|
165
|
+
}.to raise_error ArgumentError
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
context "with relayed media mode and e2ee set to true" do
|
170
|
+
it "raises an error" do
|
171
|
+
expect {
|
172
|
+
opentok.create_session :media_mode => :relayed, :e2ee => true
|
173
|
+
}.to raise_error ArgumentError
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
context "with always archive mode and e2ee set to true" do
|
178
|
+
it "raises an error" do
|
179
|
+
expect {
|
180
|
+
opentok.create_session :archive_mode => :always, :e2ee => true
|
181
|
+
}.to raise_error ArgumentError
|
182
|
+
end
|
111
183
|
end
|
112
184
|
|
113
185
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentok
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stijn Mathysen
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2023-
|
15
|
+
date: 2023-06-20 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bundler
|
@@ -282,7 +282,11 @@ files:
|
|
282
282
|
- spec/cassettes/OpenTok_Broadcasts/stops_a_broadcast.yml
|
283
283
|
- spec/cassettes/OpenTok_Connections/forces_a_connection_to_be_terminated.yml
|
284
284
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions.yml
|
285
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_name.yml
|
286
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_name_and_resolution.yml
|
287
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_resolution.yml
|
285
288
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_default_sessions.yml
|
289
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_e2ee_sessions.yml
|
286
290
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions.yml
|
287
291
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions_for_invalid_media_modes.yml
|
288
292
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions_with_a_location_hint.yml
|
@@ -394,7 +398,11 @@ test_files:
|
|
394
398
|
- spec/cassettes/OpenTok_Broadcasts/stops_a_broadcast.yml
|
395
399
|
- spec/cassettes/OpenTok_Connections/forces_a_connection_to_be_terminated.yml
|
396
400
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions.yml
|
401
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_name.yml
|
402
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_name_and_resolution.yml
|
403
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_always_archived_sessions_with_a_set_archive_resolution.yml
|
397
404
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_default_sessions.yml
|
405
|
+
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_e2ee_sessions.yml
|
398
406
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions.yml
|
399
407
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions_for_invalid_media_modes.yml
|
400
408
|
- spec/cassettes/OpenTok_OpenTok/when_initialized_properly/_create_session/creates_relayed_media_sessions_with_a_location_hint.yml
|