vonage 7.31.0 → 8.0.0.beta
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 +92 -604
- data/lib/vonage/applications.rb +4 -12
- data/lib/vonage/basic.rb +1 -1
- data/lib/vonage/bearer_token.rb +1 -1
- data/lib/vonage/client.rb +0 -65
- data/lib/vonage/client_error.rb +1 -1
- data/lib/vonage/config.rb +1 -4
- data/lib/vonage/conversations/events.rb +0 -12
- data/lib/vonage/conversations/legs.rb +0 -6
- data/lib/vonage/conversations/members.rb +0 -15
- data/lib/vonage/conversations/users.rb +0 -15
- data/lib/vonage/conversations.rb +0 -30
- data/lib/vonage/errors.rb +20 -37
- data/lib/vonage/gsm7.rb +1 -1
- data/lib/vonage/http.rb +3 -3
- data/lib/vonage/jwt.rb +0 -17
- data/lib/vonage/key_secret_params.rb +2 -3
- data/lib/vonage/keys.rb +1 -15
- data/lib/vonage/logger.rb +3 -0
- data/lib/vonage/messaging/channels/messenger.rb +0 -2
- data/lib/vonage/messaging/channels/mms.rb +3 -13
- data/lib/vonage/messaging/channels/sms.rb +0 -2
- data/lib/vonage/messaging/channels/viber.rb +2 -11
- data/lib/vonage/messaging/channels/whats_app.rb +1 -5
- data/lib/vonage/messaging/message.rb +1 -4
- data/lib/vonage/messaging.rb +3 -42
- data/lib/vonage/namespace.rb +68 -137
- data/lib/vonage/number_insight.rb +0 -1
- data/lib/vonage/numbers.rb +17 -40
- data/lib/vonage/server_error.rb +1 -1
- data/lib/vonage/signature.rb +5 -5
- data/lib/vonage/sms.rb +20 -23
- data/lib/vonage/version.rb +1 -1
- data/lib/vonage/video/archives.rb +58 -27
- data/lib/vonage/video/list_response.rb +11 -0
- data/lib/vonage/video/moderation.rb +22 -7
- data/lib/vonage/video/signals.rb +9 -4
- data/lib/vonage/video/streams.rb +12 -6
- data/lib/vonage/video.rb +13 -50
- data/lib/vonage/voice/actions/connect.rb +8 -41
- data/lib/vonage/voice/actions/conversation.rb +4 -10
- data/lib/vonage/voice/actions/input.rb +3 -19
- data/lib/vonage/voice/actions/notify.rb +3 -8
- data/lib/vonage/voice/actions/pay.rb +107 -0
- data/lib/vonage/voice/actions/record.rb +4 -52
- data/lib/vonage/voice/actions/stream.rb +3 -7
- data/lib/vonage/voice/actions/talk.rb +4 -14
- data/lib/vonage/voice/talk.rb +1 -11
- data/lib/vonage/voice.rb +0 -24
- data/lib/vonage.rb +0 -4
- data/vonage.gemspec +1 -3
- metadata +12 -108
- data/lib/vonage/api_error.rb +0 -33
- data/lib/vonage/conversation/event/list_response.rb +0 -11
- data/lib/vonage/conversation/event.rb +0 -108
- data/lib/vonage/conversation/list_response.rb +0 -11
- data/lib/vonage/conversation/member/list_response.rb +0 -11
- data/lib/vonage/conversation/member.rb +0 -134
- data/lib/vonage/conversation/user/conversations_list_response.rb +0 -11
- data/lib/vonage/conversation/user/sessions_list_response.rb +0 -11
- data/lib/vonage/conversation/user.rb +0 -67
- data/lib/vonage/conversation.rb +0 -164
- data/lib/vonage/meetings/applications.rb +0 -28
- data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
- data/lib/vonage/meetings/dial_in_numbers.rb +0 -26
- data/lib/vonage/meetings/recordings.rb +0 -42
- data/lib/vonage/meetings/rooms/list_response.rb +0 -11
- data/lib/vonage/meetings/rooms.rb +0 -167
- data/lib/vonage/meetings/sessions/list_response.rb +0 -11
- data/lib/vonage/meetings/sessions.rb +0 -31
- data/lib/vonage/meetings/themes/list_response.rb +0 -11
- data/lib/vonage/meetings/themes.rb +0 -239
- data/lib/vonage/meetings.rb +0 -50
- data/lib/vonage/messaging/channels/rcs.rb +0 -44
- data/lib/vonage/network_authentication/client_authentication.rb +0 -39
- data/lib/vonage/network_authentication/server_authentication.rb +0 -47
- data/lib/vonage/network_authentication.rb +0 -22
- data/lib/vonage/network_number_verification.rb +0 -92
- data/lib/vonage/network_sim_swap.rb +0 -84
- data/lib/vonage/number_insight_2.rb +0 -21
- data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
- data/lib/vonage/proactive_connect/events.rb +0 -71
- data/lib/vonage/proactive_connect/item.rb +0 -116
- data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
- data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
- data/lib/vonage/proactive_connect/items.rb +0 -116
- data/lib/vonage/proactive_connect/list.rb +0 -186
- data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
- data/lib/vonage/proactive_connect/lists.rb +0 -38
- data/lib/vonage/proactive_connect.rb +0 -43
- data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
- data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
- data/lib/vonage/subaccounts/list_response.rb +0 -15
- data/lib/vonage/subaccounts.rb +0 -203
- data/lib/vonage/users/list_response.rb +0 -11
- data/lib/vonage/users.rb +0 -156
- data/lib/vonage/verify2/channels/email.rb +0 -36
- data/lib/vonage/verify2/channels/silent_auth.rb +0 -45
- data/lib/vonage/verify2/channels/sms.rb +0 -63
- data/lib/vonage/verify2/channels/voice.rb +0 -32
- data/lib/vonage/verify2/channels/whats_app.rb +0 -39
- data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
- data/lib/vonage/verify2/start_verification_options.rb +0 -63
- data/lib/vonage/verify2/template_fragments/list_response.rb +0 -11
- data/lib/vonage/verify2/template_fragments.rb +0 -125
- data/lib/vonage/verify2/templates/list_response.rb +0 -11
- data/lib/vonage/verify2/templates.rb +0 -86
- data/lib/vonage/verify2/workflow.rb +0 -39
- data/lib/vonage/verify2/workflow_builder.rb +0 -25
- data/lib/vonage/verify2.rb +0 -112
- data/lib/vonage/video/archives/list_response.rb +0 -11
- data/lib/vonage/video/broadcasts/list_response.rb +0 -11
- data/lib/vonage/video/broadcasts.rb +0 -75
- data/lib/vonage/video/captions.rb +0 -67
- data/lib/vonage/video/renders/list_response.rb +0 -11
- data/lib/vonage/video/renders.rb +0 -107
- data/lib/vonage/video/sip.rb +0 -48
- data/lib/vonage/video/streams/list_response.rb +0 -11
- data/lib/vonage/video/web_socket.rb +0 -62
data/lib/vonage/numbers.rb
CHANGED
@@ -5,8 +5,6 @@ module Vonage
|
|
5
5
|
class Numbers < Namespace
|
6
6
|
include Keys
|
7
7
|
|
8
|
-
self.authentication = Basic
|
9
|
-
|
10
8
|
self.host = :rest_host
|
11
9
|
|
12
10
|
# Retrieve all the inbound numbers associated with your Vonage account.
|
@@ -17,8 +15,6 @@ module Vonage
|
|
17
15
|
# puts "#{item.msisdn} #{item.country} #{item.type}"
|
18
16
|
# end
|
19
17
|
#
|
20
|
-
# @param [Hash] params
|
21
|
-
#
|
22
18
|
# @option params [String] :application_id
|
23
19
|
# The application that you want to return the numbers for.
|
24
20
|
#
|
@@ -49,12 +45,14 @@ module Vonage
|
|
49
45
|
# Set this to `true` to auto-advance through all the pages in the record
|
50
46
|
# and collect all the data. The default is `false`.
|
51
47
|
#
|
48
|
+
# @param [Hash] params
|
49
|
+
#
|
52
50
|
# @return [ListResponse]
|
53
51
|
#
|
54
52
|
# @see https://developer.nexmo.com/api/developer/numbers#getOwnedNumbers
|
55
53
|
#
|
56
54
|
def list(params = nil)
|
57
|
-
request(
|
55
|
+
request('/account/numbers', params: params, response_class: ListResponse)
|
58
56
|
end
|
59
57
|
|
60
58
|
# Retrieve inbound numbers that are available for the specified country.
|
@@ -65,8 +63,6 @@ module Vonage
|
|
65
63
|
# puts "#{item.msisdn} #{item.type} #{item.cost}"
|
66
64
|
# end
|
67
65
|
#
|
68
|
-
# @param [Hash] params
|
69
|
-
#
|
70
66
|
# @option params [required, String] :country
|
71
67
|
# The two character country code in ISO 3166-1 alpha-2 format.
|
72
68
|
#
|
@@ -84,7 +80,7 @@ module Vonage
|
|
84
80
|
# - `2` - Search for numbers that end with **:pattern**
|
85
81
|
#
|
86
82
|
# @option params [String] :features
|
87
|
-
# Available features are `SMS
|
83
|
+
# Available features are `SMS` and `VOICE`.
|
88
84
|
# To look for numbers that support both, use a comma-separated value: `SMS,VOICE`.
|
89
85
|
#
|
90
86
|
# @option params [Integer] :size
|
@@ -97,12 +93,14 @@ module Vonage
|
|
97
93
|
# Set this to `true` to auto-advance through all the pages in the record
|
98
94
|
# and collect all the data. The default is `false`.
|
99
95
|
#
|
96
|
+
# @param [Hash] params
|
97
|
+
#
|
100
98
|
# @return [ListResponse]
|
101
99
|
#
|
102
100
|
# @see https://developer.nexmo.com/api/developer/numbers#getAvailableNumbers
|
103
101
|
#
|
104
102
|
def search(params)
|
105
|
-
request(
|
103
|
+
request('/number/search', params: params, response_class: ListResponse)
|
106
104
|
end
|
107
105
|
|
108
106
|
# Request to purchase a specific inbound number.
|
@@ -110,8 +108,6 @@ module Vonage
|
|
110
108
|
# @example
|
111
109
|
# response = client.numbers.buy(country: 'GB', msisdn: '447700900000')
|
112
110
|
#
|
113
|
-
# @param [Hash] params
|
114
|
-
#
|
115
111
|
# @option params [required, String] :country
|
116
112
|
# The two character country code in ISO 3166-1 alpha-2 format.
|
117
113
|
#
|
@@ -122,17 +118,14 @@ module Vonage
|
|
122
118
|
# If you'd like to perform an action on a subaccount, provide the `api_key` of that account here.
|
123
119
|
# If you'd like to perform an action on your own account, you do not need to provide this field.
|
124
120
|
#
|
121
|
+
# @param [Hash] params
|
122
|
+
#
|
125
123
|
# @return [Response]
|
126
124
|
#
|
127
125
|
# @see https://developer.nexmo.com/api/developer/numbers#buyANumber
|
128
126
|
#
|
129
127
|
def buy(params)
|
130
|
-
request(
|
131
|
-
"/number/buy",
|
132
|
-
params: params,
|
133
|
-
type: Post,
|
134
|
-
response_class: Response
|
135
|
-
)
|
128
|
+
request('/number/buy', params: params, type: Post, response_class: Response)
|
136
129
|
end
|
137
130
|
|
138
131
|
# Cancel your subscription for a specific inbound number.
|
@@ -140,8 +133,6 @@ module Vonage
|
|
140
133
|
# @example
|
141
134
|
# response = client.numbers.cancel(country: 'GB', msisdn: '447700900000')
|
142
135
|
#
|
143
|
-
# @param [Hash] params
|
144
|
-
#
|
145
136
|
# @option params [required, String] :country
|
146
137
|
# The two character country code in ISO 3166-1 alpha-2 format.
|
147
138
|
#
|
@@ -152,17 +143,14 @@ module Vonage
|
|
152
143
|
# If you'd like to perform an action on a subaccount, provide the `api_key` of that account here.
|
153
144
|
# If you'd like to perform an action on your own account, you do not need to provide this field.
|
154
145
|
#
|
146
|
+
# @param [Hash] params
|
147
|
+
#
|
155
148
|
# @return [Response]
|
156
149
|
#
|
157
150
|
# @see https://developer.nexmo.com/api/developer/numbers#cancelANumber
|
158
151
|
#
|
159
152
|
def cancel(params)
|
160
|
-
request(
|
161
|
-
"/number/cancel",
|
162
|
-
params: params,
|
163
|
-
type: Post,
|
164
|
-
response_class: Response
|
165
|
-
)
|
153
|
+
request('/number/cancel', params: params, type: Post, response_class: Response)
|
166
154
|
end
|
167
155
|
|
168
156
|
# Change the behaviour of a number that you own.
|
@@ -177,8 +165,6 @@ module Vonage
|
|
177
165
|
#
|
178
166
|
# response = client.numbers.update(params)
|
179
167
|
#
|
180
|
-
# @param [Hash] params
|
181
|
-
#
|
182
168
|
# @option params [required, String] :country
|
183
169
|
# The two character country code in ISO 3166-1 alpha-2 format.
|
184
170
|
#
|
@@ -205,30 +191,21 @@ module Vonage
|
|
205
191
|
# @option params [String] :voice_status_callback
|
206
192
|
# A webhook URI for Vonage to send a request to when a call ends.
|
207
193
|
#
|
194
|
+
# @param [Hash] params
|
195
|
+
#
|
208
196
|
# @return [Response]
|
209
197
|
#
|
210
198
|
# @see https://developer.nexmo.com/api/developer/numbers#updateANumber
|
211
199
|
#
|
212
200
|
def update(params)
|
213
|
-
request(
|
214
|
-
"/number/update",
|
215
|
-
params: camelcase(params),
|
216
|
-
type: Post,
|
217
|
-
response_class: Response
|
218
|
-
)
|
201
|
+
request('/number/update', params: camelcase(params), type: Post, response_class: Response)
|
219
202
|
end
|
220
203
|
|
221
204
|
private
|
222
205
|
|
223
206
|
# A specific implementation of iterable_request for Numbers, because the Numbers API
|
224
207
|
# handles pagination differently to other Vonage APIs
|
225
|
-
def iterable_request(
|
226
|
-
path,
|
227
|
-
response: nil,
|
228
|
-
response_class: nil,
|
229
|
-
params: {},
|
230
|
-
&block
|
231
|
-
)
|
208
|
+
def iterable_request(path, response: nil, response_class: nil, params: {}, &block)
|
232
209
|
response = parse(response, response_class)
|
233
210
|
params[:index] = 1 unless params.has_key?(:index)
|
234
211
|
size = params.fetch(:size, 10)
|
data/lib/vonage/server_error.rb
CHANGED
data/lib/vonage/signature.rb
CHANGED
@@ -27,24 +27,24 @@ module Vonage
|
|
27
27
|
#
|
28
28
|
# @see https://developer.nexmo.com/concepts/guides/signing-messages
|
29
29
|
#
|
30
|
-
def check(params,
|
30
|
+
def check(params, signature_method: @config.signature_method)
|
31
31
|
params = params.dup
|
32
32
|
|
33
33
|
signature = params.delete('sig')
|
34
34
|
|
35
|
-
::JWT::
|
35
|
+
::JWT::SecurityUtils.secure_compare(signature, digest(params, signature_method))
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
39
39
|
|
40
|
-
def digest(params,
|
40
|
+
def digest(params, signature_method)
|
41
41
|
digest_string = params.sort.map { |k, v| "&#{k}=#{v.tr('&=', '_')}" }.join
|
42
42
|
|
43
43
|
case signature_method
|
44
44
|
when 'md5', 'sha1', 'sha256', 'sha512'
|
45
|
-
OpenSSL::HMAC.hexdigest(signature_method, signature_secret, digest_string).upcase
|
45
|
+
OpenSSL::HMAC.hexdigest(signature_method, @config.signature_secret, digest_string).upcase
|
46
46
|
when 'md5hash'
|
47
|
-
Digest::MD5.hexdigest("#{digest_string}#{signature_secret}")
|
47
|
+
Digest::MD5.hexdigest("#{digest_string}#{@config.signature_secret}")
|
48
48
|
else
|
49
49
|
raise ArgumentError, "Unknown signature algorithm: #{signature_method}. Expected: md5hash, md5, sha1, sha256, or sha512."
|
50
50
|
end
|
data/lib/vonage/sms.rb
CHANGED
@@ -47,6 +47,14 @@ module Vonage
|
|
47
47
|
# @option params [String] :type
|
48
48
|
# The format of the message body.
|
49
49
|
#
|
50
|
+
# @option params [String] :vcard
|
51
|
+
# A business card in [vCard format](https://en.wikipedia.org/wiki/VCard).
|
52
|
+
# Depends on **:type** option having the value `vcard`.
|
53
|
+
#
|
54
|
+
# @option params [String] :vcal
|
55
|
+
# A calendar event in [vCal format](https://en.wikipedia.org/wiki/VCal).
|
56
|
+
# Depends on **:type** option having the value `vcal`.
|
57
|
+
#
|
50
58
|
# @option params [String] :body
|
51
59
|
# Hex encoded binary data.
|
52
60
|
# Depends on **:type** option having the value `binary`.
|
@@ -59,6 +67,18 @@ module Vonage
|
|
59
67
|
# The value of the [protocol identifier](https://en.wikipedia.org/wiki/GSM_03.40#Protocol_Identifier) to use.
|
60
68
|
# Ensure that the value is aligned with **:udh**.
|
61
69
|
#
|
70
|
+
# @option params [String] :title
|
71
|
+
# The title for a wappush SMS.
|
72
|
+
# Depends on **:type** option having the value `wappush`.
|
73
|
+
#
|
74
|
+
# @option params [String] :url
|
75
|
+
# The URL of your website.
|
76
|
+
# Depends on **:type** option having the value `wappush`.
|
77
|
+
#
|
78
|
+
# @option params [String] :validity
|
79
|
+
# The availability for an SMS in milliseconds.
|
80
|
+
# Depends on **:type** option having the value `wappush`.
|
81
|
+
#
|
62
82
|
# @option params [String] :client_ref
|
63
83
|
# You can optionally include your own reference of up to 40 characters.
|
64
84
|
#
|
@@ -66,9 +86,6 @@ module Vonage
|
|
66
86
|
# An optional string used to identify separate accounts using the SMS endpoint for billing purposes.
|
67
87
|
# To use this feature, please email [support@nexmo.com](mailto:support@nexmo.com).
|
68
88
|
#
|
69
|
-
# @option params [String] :trusted_number
|
70
|
-
# Setting this parameter to true overrides, on a per-message basis, any protections set up via Fraud Defender (Traffic Rules, SMS Burst Protection, AIT Protection).
|
71
|
-
#
|
72
89
|
# @param [Hash] params
|
73
90
|
#
|
74
91
|
# @return [Response]
|
@@ -94,31 +111,11 @@ module Vonage
|
|
94
111
|
response
|
95
112
|
end
|
96
113
|
|
97
|
-
# Validate a Signature from an SMS API Webhook.
|
98
|
-
#
|
99
|
-
# @param [Hash, required] :webhook_params The parameters from the webhook request body
|
100
|
-
# @param [String, optional] :signature_secret The account signature secret. Required, unless `signature_secret`
|
101
|
-
# is set in `Config`
|
102
|
-
# @param [String, optional] :signature_method The account signature method. Required, unless `signature_method`
|
103
|
-
# is set in `Config`
|
104
|
-
#
|
105
|
-
# @return [Boolean] true, if the JWT is verified, false otherwise
|
106
|
-
def verify_webhook_sig(webhook_params:, signature_secret: @config.signature_secret, signature_method: @config.signature_method)
|
107
|
-
signature.check(webhook_params, signature_secret: signature_secret, signature_method: signature_method)
|
108
|
-
end
|
109
|
-
|
110
114
|
private
|
111
115
|
|
112
116
|
sig { params(text: String).returns(T::Boolean) }
|
113
117
|
def unicode?(text)
|
114
118
|
!Vonage::GSM7.encoded?(text)
|
115
119
|
end
|
116
|
-
|
117
|
-
# @return [Signature]
|
118
|
-
#
|
119
|
-
sig { returns(T.nilable(Vonage::Signature)) }
|
120
|
-
def signature
|
121
|
-
@signature ||= T.let(Signature.new(@config), T.nilable(Vonage::Signature))
|
122
|
-
end
|
123
120
|
end
|
124
121
|
end
|
data/lib/vonage/version.rb
CHANGED
@@ -13,6 +13,8 @@ module Vonage
|
|
13
13
|
|
14
14
|
# Get a list of archives for a specified Vonage application.
|
15
15
|
#
|
16
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
17
|
+
#
|
16
18
|
# @param [optional, Integer] :offset
|
17
19
|
#
|
18
20
|
# @param [optional, Integer] :count
|
@@ -25,43 +27,47 @@ module Vonage
|
|
25
27
|
#
|
26
28
|
# @see TODO: add docs link
|
27
29
|
#
|
28
|
-
def list(**params)
|
29
|
-
|
30
|
+
def list(application_id: @config.application_id, **params)
|
31
|
+
# TODO: raise error if application_id is nil
|
32
|
+
|
33
|
+
request('/v2/project/' + application_id + '/archive', params: params, response_class: Video::ListResponse)
|
30
34
|
end
|
31
35
|
|
32
36
|
# Return information for specified archive.
|
33
37
|
#
|
38
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
39
|
+
#
|
34
40
|
# @param [required, String] archive_id
|
35
41
|
#
|
36
42
|
# @return [Response]
|
37
43
|
#
|
38
44
|
# @see TODO: add docs link
|
39
45
|
#
|
40
|
-
def info(archive_id:)
|
41
|
-
|
46
|
+
def info(application_id: @config.application_id, archive_id:)
|
47
|
+
# TODO: raise error if application_id is nil
|
48
|
+
|
49
|
+
request('/v2/project/' + application_id + '/archive/' + archive_id)
|
42
50
|
end
|
43
51
|
|
44
52
|
# Create a new archive.
|
45
53
|
#
|
54
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
55
|
+
#
|
46
56
|
# @param [required, String] :session_id
|
47
57
|
#
|
48
|
-
# @param [optional, String] :
|
58
|
+
# @param [optional, String] :hasAudio
|
49
59
|
#
|
50
|
-
# @param [optional, String] :
|
60
|
+
# @param [optional, String] :hasVideo
|
51
61
|
#
|
52
62
|
# @param [optional, String] :name
|
53
63
|
#
|
54
|
-
# @param [optional, String] :
|
64
|
+
# @param [optional, String] :outputMode
|
55
65
|
#
|
56
66
|
# @param [optional, String] :resolution
|
57
67
|
#
|
58
|
-
# @param [optional, String] :
|
68
|
+
# @param [optional, String] :streamMode
|
59
69
|
#
|
60
|
-
# @param [optional, String] :
|
61
|
-
#
|
62
|
-
# @param [optional, Number] :max_bitrate
|
63
|
-
#
|
64
|
-
# @param [optional, Number] :quantization_parameter
|
70
|
+
# @param [optional, String] :multiArchiveTag
|
65
71
|
#
|
66
72
|
# @param [optional, Hash] :layout
|
67
73
|
#
|
@@ -75,39 +81,52 @@ module Vonage
|
|
75
81
|
#
|
76
82
|
# @see TODO: add docs link
|
77
83
|
#
|
78
|
-
def start(
|
79
|
-
|
84
|
+
def start(application_id: @config.application_id, **params)
|
85
|
+
# TODO: raise error if application_id is nil
|
86
|
+
# TODO: raise error if session_id is nil
|
87
|
+
|
88
|
+
request('/v2/project/' + application_id + '/archive', params: params, type: Post)
|
80
89
|
end
|
81
90
|
|
82
91
|
# Stop recording a specified archive.
|
83
92
|
#
|
93
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
94
|
+
#
|
84
95
|
# @param [required, String] archive_id
|
85
96
|
#
|
86
97
|
# @return [Response]
|
87
98
|
#
|
88
99
|
# @see TODO: add docs link
|
89
100
|
#
|
90
|
-
def stop(archive_id:)
|
91
|
-
|
101
|
+
def stop(application_id: @config.application_id, archive_id:)
|
102
|
+
# TODO: raise error if application_id is nil
|
103
|
+
|
104
|
+
request('/v2/project/' + application_id + '/archive/' + archive_id + '/stop', type: Post)
|
92
105
|
end
|
93
106
|
|
94
107
|
# Delete a specified archive.
|
95
108
|
#
|
109
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
110
|
+
#
|
96
111
|
# @param [required, String] archive_id
|
97
112
|
#
|
98
113
|
# @return [Response]
|
99
114
|
#
|
100
115
|
# @see TODO: add docs link
|
101
116
|
#
|
102
|
-
def delete(archive_id:)
|
103
|
-
|
117
|
+
def delete(application_id: @config.application_id, archive_id:)
|
118
|
+
# TODO: raise error if application_id is nil
|
119
|
+
|
120
|
+
request('/v2/project/' + application_id + '/archive/' + archive_id, type: Delete)
|
104
121
|
end
|
105
122
|
|
106
123
|
# Add a stream to a composed archive that was started with the streamMode set to "manual".
|
107
124
|
#
|
125
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
126
|
+
#
|
108
127
|
# @param [required, String] archive_id
|
109
128
|
#
|
110
|
-
# @param [required, String]
|
129
|
+
# @param [required, String] add_stream The ID of the stream to be added
|
111
130
|
#
|
112
131
|
# @param [optional, Boolean] has_audio
|
113
132
|
#
|
@@ -117,26 +136,36 @@ module Vonage
|
|
117
136
|
#
|
118
137
|
# @see TODO: add docs link
|
119
138
|
#
|
120
|
-
def add_stream(archive_id:,
|
121
|
-
|
139
|
+
def add_stream(application_id: @config.application_id, archive_id:, **params)
|
140
|
+
# TODO: raise error if application_id is nil
|
141
|
+
# TODO: raise error if add_stream is nil
|
142
|
+
|
143
|
+
request('/v2/project/' + application_id + '/archive/' + archive_id + '/streams', params: camelcase(params), type: Patch)
|
122
144
|
end
|
123
145
|
|
124
146
|
# Remove a stream from a composed archive that was started with the streamMode set to "manual".
|
125
147
|
#
|
148
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
149
|
+
#
|
126
150
|
# @param [required, String] archive_id
|
127
151
|
#
|
128
|
-
# @param [required, String]
|
152
|
+
# @param [required, String] remove_stream The ID of the stream to be removed
|
129
153
|
#
|
130
154
|
# @return [Response]
|
131
155
|
#
|
132
156
|
# @see TODO: add docs link
|
133
157
|
#
|
134
|
-
def remove_stream(archive_id:,
|
135
|
-
|
158
|
+
def remove_stream(application_id: @config.application_id, archive_id:, **params)
|
159
|
+
# TODO: raise error if application_id is nil
|
160
|
+
# TODO: raise error if remove_stream is nil
|
161
|
+
|
162
|
+
request('/v2/project/' + application_id + '/archive/' + archive_id + '/streams', params: camelcase(params), type: Patch)
|
136
163
|
end
|
137
164
|
|
138
165
|
# Change the layout of a composed archive while it is being recorded.
|
139
166
|
#
|
167
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
168
|
+
#
|
140
169
|
# @param [required, String] archive_id
|
141
170
|
#
|
142
171
|
# @param [optional, String] type
|
@@ -149,8 +178,10 @@ module Vonage
|
|
149
178
|
#
|
150
179
|
# @see TODO: add docs link
|
151
180
|
#
|
152
|
-
def change_layout(archive_id:, **params)
|
153
|
-
|
181
|
+
def change_layout(application_id: @config.application_id, archive_id:, **params)
|
182
|
+
# TODO: raise error if application_id is nil
|
183
|
+
|
184
|
+
request('/v2/project/' + application_id + '/archive/' + archive_id + '/layout', params: camelcase(params), type: Put)
|
154
185
|
end
|
155
186
|
end
|
156
187
|
end
|
@@ -11,6 +11,8 @@ module Vonage
|
|
11
11
|
|
12
12
|
# Force a client to disconnect from a session.
|
13
13
|
#
|
14
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
15
|
+
#
|
14
16
|
# @param [required, String] :session_id
|
15
17
|
#
|
16
18
|
# @param [required, String] :connection_id The connection ID of the specific participant to be disconnected from the session.
|
@@ -19,12 +21,16 @@ module Vonage
|
|
19
21
|
#
|
20
22
|
# @see TODO: add docs link
|
21
23
|
#
|
22
|
-
def force_disconnect(session_id:, connection_id:)
|
23
|
-
|
24
|
+
def force_disconnect(application_id: @config.application_id, session_id:, connection_id:)
|
25
|
+
# TODO: raise error if application_id is nil
|
26
|
+
|
27
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/connection/' + connection_id, type: Delete)
|
24
28
|
end
|
25
29
|
|
26
30
|
# Force mute a specific publisher stream in a session.
|
27
31
|
#
|
32
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
33
|
+
#
|
28
34
|
# @param [required, String] :session_id
|
29
35
|
#
|
30
36
|
# @param [required, String] :stream_id The stream ID of the specific stream to be muted.
|
@@ -33,26 +39,35 @@ module Vonage
|
|
33
39
|
#
|
34
40
|
# @see TODO: add docs link
|
35
41
|
#
|
36
|
-
def mute_single_stream(session_id:, stream_id:)
|
37
|
-
|
42
|
+
def mute_single_stream(application_id: @config.application_id, session_id:, stream_id:)
|
43
|
+
application_id ||= @config.application_id
|
44
|
+
# TODO: raise error if application_id is nil
|
45
|
+
|
46
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/stream/' + stream_id + '/mute', type: Post)
|
38
47
|
end
|
39
48
|
|
40
49
|
# Force mute all publisher stream for a specific session.
|
41
50
|
#
|
51
|
+
# @param [optional, String] :application_id (Required unless already set at Client instantiation or set in ENV)
|
52
|
+
#
|
42
53
|
# @param [required, String] :session_id
|
43
54
|
#
|
44
55
|
# @param [required, String] :active
|
45
56
|
#
|
46
|
-
# @param [required, Array<String>] :excludedStreamIds
|
57
|
+
# @param [required, Array<String>] :excludedStreamIds
|
47
58
|
#
|
48
59
|
# @return [Response]
|
49
60
|
#
|
50
61
|
# @see TODO: add docs link
|
51
62
|
#
|
52
|
-
def mute_multiple_streams(session_id:, **params)
|
53
|
-
|
63
|
+
def mute_multiple_streams(application_id: @config.application_id, session_id:, **params)
|
64
|
+
# TODO: raise error if application_id is nil
|
65
|
+
# TODO: camelcase params
|
66
|
+
|
67
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/mute', params: params, type: Post)
|
54
68
|
end
|
55
69
|
|
56
70
|
# TODO: add disable_force_mute ??
|
57
71
|
end
|
58
72
|
end
|
73
|
+
|
data/lib/vonage/video/signals.rb
CHANGED
@@ -25,8 +25,10 @@ module Vonage
|
|
25
25
|
#
|
26
26
|
# @see TODO: add docs link
|
27
27
|
#
|
28
|
-
def send_to_one(session_id:, connection_id:, **params)
|
29
|
-
|
28
|
+
def send_to_one(application_id: @config.application_id, session_id:, connection_id:, **params)
|
29
|
+
# TODO: raise error if application_id is nil
|
30
|
+
|
31
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/connection/' + connection_id + '/signal', params: params, type: Post)
|
30
32
|
end
|
31
33
|
|
32
34
|
# Send a signal to all participants in an active Vonage Video session.
|
@@ -43,8 +45,11 @@ module Vonage
|
|
43
45
|
#
|
44
46
|
# @see TODO: add docs link
|
45
47
|
#
|
46
|
-
def send_to_all(session_id:, **params)
|
47
|
-
|
48
|
+
def send_to_all(application_id: @config.application_id, session_id:, **params)
|
49
|
+
# TODO: raise error if application_id is nil
|
50
|
+
|
51
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/signal', params: params, type: Post)
|
48
52
|
end
|
49
53
|
end
|
50
54
|
end
|
55
|
+
|
data/lib/vonage/video/streams.rb
CHANGED
@@ -22,8 +22,10 @@ module Vonage
|
|
22
22
|
#
|
23
23
|
# @see TODO: add docs link
|
24
24
|
#
|
25
|
-
def list(session_id:)
|
26
|
-
|
25
|
+
def list(application_id: @config.application_id, session_id:)
|
26
|
+
# TODO: raise error if application_id is nil
|
27
|
+
|
28
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/stream', response_class: Video::ListResponse)
|
27
29
|
end
|
28
30
|
|
29
31
|
# Get information about a specified stream.
|
@@ -38,8 +40,10 @@ module Vonage
|
|
38
40
|
#
|
39
41
|
# @see TODO: add docs link
|
40
42
|
#
|
41
|
-
def info(session_id:, stream_id:)
|
42
|
-
|
43
|
+
def info(application_id: @config.application_id, session_id:, stream_id:)
|
44
|
+
# TODO: raise error if application_id is nil
|
45
|
+
|
46
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/stream/' + stream_id)
|
43
47
|
end
|
44
48
|
|
45
49
|
# Change the layout for a list of specified streams.
|
@@ -58,13 +62,15 @@ module Vonage
|
|
58
62
|
#
|
59
63
|
# @see TODO: add docs link
|
60
64
|
#
|
61
|
-
def change_layout(session_id:, **params)
|
65
|
+
def change_layout(application_id: @config.application_id, session_id:, **params)
|
66
|
+
# TODO: raise error if application_id is nil
|
62
67
|
# TODO camelcase layout_class_list
|
63
68
|
# if params[:items]
|
64
69
|
# params[:items] = params[:items].map {|item| camelcase(item)}
|
65
70
|
# end
|
66
71
|
|
67
|
-
request('/v2/project/' +
|
72
|
+
request('/v2/project/' + application_id + '/session/' + session_id + '/stream', params: params, type: Put)
|
68
73
|
end
|
69
74
|
end
|
70
75
|
end
|
76
|
+
|