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