twilio-ruby 5.10.5 → 5.10.6
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/.travis.yml +10 -0
- data/CHANGES.md +10 -0
- data/Dockerfile +9 -0
- data/Makefile +11 -0
- data/README.md +5 -2
- data/lib/twilio-ruby/rest/api.rb +1 -2
- data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +117 -32
- data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +30 -0
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +112 -56
- data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +460 -0
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +7 -0
- data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +4 -4
- data/lib/twilio-ruby/rest/client.rb +1 -2
- data/lib/twilio-ruby/rest/preview.rb +8 -8
- data/lib/twilio-ruby/rest/preview/marketplace.rb +13 -13
- data/lib/twilio-ruby/rest/preview/understand/assistant/intent/field.rb +5 -2
- data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +8 -8
- data/lib/twilio-ruby/rest/proxy/v1/service.rb +9 -9
- data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +10 -8
- data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +3 -7
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +3 -49
- data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +1 -1
- data/lib/twilio-ruby/rest/video.rb +18 -6
- data/lib/twilio-ruby/rest/video/v1.rb +27 -13
- data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +278 -0
- data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +278 -0
- data/lib/twilio-ruby/version.rb +1 -1
- data/spec/integration/api/v2010/account/call/recording_spec.rb +103 -0
- data/spec/integration/api/v2010/account/conference/recording_spec.rb +240 -0
- data/spec/integration/api/v2010/account/message_spec.rb +0 -5
- data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -48
- data/spec/integration/video/v1/composition_settings_spec.rb +86 -0
- data/spec/integration/video/v1/recording_settings_spec.rb +86 -0
- metadata +13 -3
@@ -17,7 +17,7 @@ module Twilio
|
|
17
17
|
# Initialize the ParticipantList
|
18
18
|
# @param [Version] version Version that contains the resource
|
19
19
|
# @param [String] account_sid The unique id of the
|
20
|
-
# [Account](https://www.twilio.com/docs/api/
|
20
|
+
# [Account](https://www.twilio.com/docs/iam/api/account) that created this
|
21
21
|
# conference
|
22
22
|
# @param [String] conference_sid A 34 character string that identifies the
|
23
23
|
# conference this participant is in
|
@@ -33,35 +33,87 @@ module Twilio
|
|
33
33
|
##
|
34
34
|
# Retrieve a single page of ParticipantInstance records from the API.
|
35
35
|
# Request is executed immediately.
|
36
|
-
# @param [String] from number
|
37
|
-
#
|
38
|
-
# @param [String]
|
39
|
-
#
|
40
|
-
# @param [String]
|
41
|
-
#
|
42
|
-
#
|
43
|
-
# @param [
|
44
|
-
#
|
45
|
-
#
|
46
|
-
# @param [
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
# @param [String]
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
# @param [
|
56
|
-
#
|
57
|
-
#
|
58
|
-
# @param [
|
59
|
-
#
|
60
|
-
# @param [String]
|
61
|
-
#
|
62
|
-
#
|
63
|
-
# @param [
|
64
|
-
#
|
36
|
+
# @param [String] from The `from` phone number that will dial the new conference
|
37
|
+
# participant. Values may be a phone number or client id.
|
38
|
+
# @param [String] to The phone number, client id, or sip address you are inviting
|
39
|
+
# to this conference.
|
40
|
+
# @param [String] status_callback The absolute URL where Twilio should send a
|
41
|
+
# webhook with conference event information that you request with the
|
42
|
+
# `StatusCallbackEvent` parameter.
|
43
|
+
# @param [String] status_callback_method The method Twilio should use when
|
44
|
+
# requesting your `StatusCallback` URL. Options are `GET` and `POST`. Defaults to
|
45
|
+
# `POST`.
|
46
|
+
# @param [String] status_callback_event Specifies which conference state changes
|
47
|
+
# should generate a webhook to the `StatusCallback` URL. Options are `initiated`,
|
48
|
+
# `ringing`, `answered`, and `completed`. To specify multiple values, separate
|
49
|
+
# each with a space. Defaults to `completed`.
|
50
|
+
# @param [String] timeout The number of seconds (integer) that Twilio should allow
|
51
|
+
# the phone to ring before assuming there is no answer. Defaults to 60 seconds.
|
52
|
+
# Minimum allowed timeout is `5`, max is `600`. Twilio always adds a 5-second
|
53
|
+
# timeout buffer to outgoing calls, so if you enter a timeout value of 10 seconds,
|
54
|
+
# you will see an actual timeout closer to 15 seconds.
|
55
|
+
# @param [Boolean] record Records the agent and their conferences, including
|
56
|
+
# downtime between conferences. Values may be `true` or `false`. Defaults to
|
57
|
+
# `false`.
|
58
|
+
# @param [Boolean] muted Specify whether the agent can speak in the conference.
|
59
|
+
# Values can be `true` or `false`. Defaults to `false`.
|
60
|
+
# @param [String] beep Play a notification beep to the conference when this
|
61
|
+
# participant joins. Options are `true`, `false`, `onEnter`, or `onExit`. Defaults
|
62
|
+
# to `true`.
|
63
|
+
# @param [Boolean] start_conference_on_enter If the conference has not already
|
64
|
+
# begun, `true` will start the conference when this participant joins. Specifying
|
65
|
+
# `false` will mute the participant and play background music until the conference
|
66
|
+
# begins. Defaults to `true`.
|
67
|
+
# @param [Boolean] end_conference_on_exit If `true`, will end the conference when
|
68
|
+
# this participant leaves. Defaults to `false`.
|
69
|
+
# @param [String] wait_url Specify an absolute URL that hosts music to play before
|
70
|
+
# the conference starts. Defualts to Twilio's standard [hold
|
71
|
+
# music](https://www.twilio.com/labs/twimlets/holdmusic).
|
72
|
+
# @param [String] wait_method Specify which method, `GET` or `POST`, Twilio should
|
73
|
+
# use to request the `WaitUrl` for this conference. Be sure to use `GET` if you
|
74
|
+
# are directly requesting static audio files so that Twilio properly caches the
|
75
|
+
# files. Defaults to `POST`.
|
76
|
+
# @param [Boolean] early_media Allow an agent to hear the state of the outbound
|
77
|
+
# call, including ringing or disconnect messages. Can be `true` or `false`.
|
78
|
+
# Defaults to `true`.
|
79
|
+
# @param [String] max_participants The maximum number of participants within this
|
80
|
+
# agent conference. Values can be positive integers from `2`-`10`. Defaults to
|
81
|
+
# `10`.
|
82
|
+
# @param [String] conference_record Records the conference that this participant
|
83
|
+
# is joining. Options are `true`, `false`, `record-from-start`, and
|
84
|
+
# `do-not-record`. Deafults to `false`
|
85
|
+
# @param [String] conference_trim Specify whether to trim leading and trailing
|
86
|
+
# silence from your recorded conference audio files. Options are `trim-silence`
|
87
|
+
# and `do-not-trim`. Defaults to `trim-silence`
|
88
|
+
# @param [String] conference_status_callback The absolute URL Twilio should
|
89
|
+
# request with conference events specified in `ConferenceStatusCallbackEvent`.
|
90
|
+
# This value is set by the first Participant to join the conference, and
|
91
|
+
# subsequent callback URLs will be ignored.
|
92
|
+
# @param [String] conference_status_callback_method The HTTP method Twilio should
|
93
|
+
# use when requesting the `ConferenceStatusCallback` URL. Either `GET` or `POST`.
|
94
|
+
# Defaults to `POST`.
|
95
|
+
# @param [String] conference_status_callback_event Specifies which conference
|
96
|
+
# state changes should generate a webhook to the URL specified in the
|
97
|
+
# `ConferenceStatusCallback` attribute. Available values are `start`, `end`,
|
98
|
+
# `join`, `leave`, `mute`, `hold`, and `speaker`. To specify multiple values,
|
99
|
+
# separate them with a space. Defaults to `start` and `end`.
|
100
|
+
# @param [String] recording_channels Set the recording channels for the final
|
101
|
+
# agent/conference recording. Either `mono` or `dual`. Defaults to `mono`.
|
102
|
+
# @param [String] recording_status_callback Specifies the `absolute URL` that
|
103
|
+
# Twilio should request when the recording is available if the agent and
|
104
|
+
# conference are recorded.
|
105
|
+
# @param [String] recording_status_callback_method The HTTP method Twilio should
|
106
|
+
# use when requesting the `RecordingStatusCallback`. `GET` or `POST`. Defaults to
|
107
|
+
# `POST`.
|
108
|
+
# @param [String] sip_auth_username SIP username used for authenticating.
|
109
|
+
# @param [String] sip_auth_password SIP password for authentication.
|
110
|
+
# @param [String] region Specifies the
|
111
|
+
# [region](https://support.twilio.com/hc/en-us/articles/223132167-How-global-low-latency-routing-and-region-selection-work-for-conferences-and-Client-calls) where Twilio should mix the recorded audio. Options are `us1`, `ie1`, `de1`, `sg1`, `br1`, `au1`, `jp1`.
|
112
|
+
# @param [String] conference_recording_status_callback The `absolute URL` Twilio
|
113
|
+
# should request when the conference recording is available.
|
114
|
+
# @param [String] conference_recording_status_callback_method The HTTP method
|
115
|
+
# Twilio should use when requesting your recording status callback URL, either
|
116
|
+
# `GET` or `POST`. Defaults to `POST`.
|
65
117
|
# @param [String] recording_status_callback_event The
|
66
118
|
# recording_status_callback_event
|
67
119
|
# @param [String] conference_recording_status_callback_event The
|
@@ -119,10 +171,10 @@ module Twilio
|
|
119
171
|
# Lists ParticipantInstance records from the API as a list.
|
120
172
|
# Unlike stream(), this operation is eager and will load `limit` records into
|
121
173
|
# memory before returning.
|
122
|
-
# @param [Boolean] muted Only
|
123
|
-
# `true` or `false`.
|
124
|
-
# @param [Boolean] hold Only
|
125
|
-
# `true` or `false`.
|
174
|
+
# @param [Boolean] muted Only return participants that are muted or unmuted.
|
175
|
+
# Either `true` or `false`.
|
176
|
+
# @param [Boolean] hold Only return participants that are on hold or not on hold.
|
177
|
+
# Either `true` or `false`.
|
126
178
|
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
127
179
|
# guarantees to never return more than limit. Default is no limit
|
128
180
|
# @param [Integer] page_size Number of records to fetch per request, when
|
@@ -138,10 +190,10 @@ module Twilio
|
|
138
190
|
# Streams ParticipantInstance records from the API as an Enumerable.
|
139
191
|
# This operation lazily loads records as efficiently as possible until the limit
|
140
192
|
# is reached.
|
141
|
-
# @param [Boolean] muted Only
|
142
|
-
# `true` or `false`.
|
143
|
-
# @param [Boolean] hold Only
|
144
|
-
# `true` or `false`.
|
193
|
+
# @param [Boolean] muted Only return participants that are muted or unmuted.
|
194
|
+
# Either `true` or `false`.
|
195
|
+
# @param [Boolean] hold Only return participants that are on hold or not on hold.
|
196
|
+
# Either `true` or `false`.
|
145
197
|
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
146
198
|
# guarantees to never return more than limit. Default is no limit.
|
147
199
|
# @param [Integer] page_size Number of records to fetch per request, when
|
@@ -174,10 +226,10 @@ module Twilio
|
|
174
226
|
##
|
175
227
|
# Retrieve a single page of ParticipantInstance records from the API.
|
176
228
|
# Request is executed immediately.
|
177
|
-
# @param [Boolean] muted Only
|
178
|
-
# `true` or `false`.
|
179
|
-
# @param [Boolean] hold Only
|
180
|
-
# `true` or `false`.
|
229
|
+
# @param [Boolean] muted Only return participants that are muted or unmuted.
|
230
|
+
# Either `true` or `false`.
|
231
|
+
# @param [Boolean] hold Only return participants that are on hold or not on hold.
|
232
|
+
# Either `true` or `false`.
|
181
233
|
# @param [String] page_token PageToken provided by the API
|
182
234
|
# @param [Integer] page_number Page Number, this value is simply for client state
|
183
235
|
# @param [Integer] page_size Number of records to return, defaults to 50
|
@@ -258,8 +310,8 @@ module Twilio
|
|
258
310
|
# @param [Version] version Version that contains the resource
|
259
311
|
# @param [String] account_sid The account_sid
|
260
312
|
# @param [String] conference_sid The string that uniquely identifies the
|
261
|
-
# conference this participant is in
|
262
|
-
# @param [String] call_sid The
|
313
|
+
# conference this participant is in.
|
314
|
+
# @param [String] call_sid The Participant's unique Call SID.
|
263
315
|
# @return [ParticipantContext] ParticipantContext
|
264
316
|
def initialize(version, account_sid, conference_sid, call_sid)
|
265
317
|
super(version)
|
@@ -296,15 +348,17 @@ module Twilio
|
|
296
348
|
# `false` will un-mute. Anything other than `true` or `false` is interpreted as
|
297
349
|
# `false`.
|
298
350
|
# @param [Boolean] hold Specifying `true` will hold the participant, while `false`
|
299
|
-
# will
|
351
|
+
# will remove them from hold.
|
300
352
|
# @param [String] hold_url The 'HoldUrl' attribute lets you specify a URL for
|
301
|
-
# music that plays when a participant is
|
302
|
-
# TwiML document that uses `<Play>`, `<Say>` or `<Redirect>`.
|
303
|
-
# @param [String] hold_method Specify
|
353
|
+
# music that plays when a participant is on hold. The URL may be an MP3, a WAV or
|
354
|
+
# a TwiML document that uses `<Play>`, `<Say>` or `<Redirect>`.
|
355
|
+
# @param [String] hold_method Specify the HTTP method Twilio should use to request
|
356
|
+
# your `HoldUrl`, either `GET` or `POST`. Defaults to `GET`.
|
304
357
|
# @param [String] announce_url The 'AnnounceUrl' attribute lets you specify a URL
|
305
358
|
# for announcing something to the participant. The URL may return an MP3, a WAV or
|
306
359
|
# a TwiML document with `<Play>` or `<Say>`.
|
307
|
-
# @param [String] announce_method Specify
|
360
|
+
# @param [String] announce_method Specify the HTTP method Twilio should use to
|
361
|
+
# request your `AnnounceUrl`, either `GET` or `POST`. Defaults to `POST`.
|
308
362
|
# @return [ParticipantInstance] Updated ParticipantInstance
|
309
363
|
def update(muted: :unset, hold: :unset, hold_url: :unset, hold_method: :unset, announce_url: :unset, announce_method: :unset)
|
310
364
|
data = Twilio::Values.of({
|
@@ -352,11 +406,11 @@ module Twilio
|
|
352
406
|
# @param [Version] version Version that contains the resource
|
353
407
|
# @param [Hash] payload payload that contains response from Twilio
|
354
408
|
# @param [String] account_sid The unique id of the
|
355
|
-
# [Account](https://www.twilio.com/docs/api/
|
409
|
+
# [Account](https://www.twilio.com/docs/iam/api/account) that created this
|
356
410
|
# conference
|
357
411
|
# @param [String] conference_sid A 34 character string that identifies the
|
358
412
|
# conference this participant is in
|
359
|
-
# @param [String] call_sid The
|
413
|
+
# @param [String] call_sid The Participant's unique Call SID.
|
360
414
|
# @return [ParticipantInstance] ParticipantInstance
|
361
415
|
def initialize(version, payload, account_sid: nil, conference_sid: nil, call_sid: nil)
|
362
416
|
super(version)
|
@@ -480,15 +534,17 @@ module Twilio
|
|
480
534
|
# `false` will un-mute. Anything other than `true` or `false` is interpreted as
|
481
535
|
# `false`.
|
482
536
|
# @param [Boolean] hold Specifying `true` will hold the participant, while `false`
|
483
|
-
# will
|
537
|
+
# will remove them from hold.
|
484
538
|
# @param [String] hold_url The 'HoldUrl' attribute lets you specify a URL for
|
485
|
-
# music that plays when a participant is
|
486
|
-
# TwiML document that uses `<Play>`, `<Say>` or `<Redirect>`.
|
487
|
-
# @param [String] hold_method Specify
|
539
|
+
# music that plays when a participant is on hold. The URL may be an MP3, a WAV or
|
540
|
+
# a TwiML document that uses `<Play>`, `<Say>` or `<Redirect>`.
|
541
|
+
# @param [String] hold_method Specify the HTTP method Twilio should use to request
|
542
|
+
# your `HoldUrl`, either `GET` or `POST`. Defaults to `GET`.
|
488
543
|
# @param [String] announce_url The 'AnnounceUrl' attribute lets you specify a URL
|
489
544
|
# for announcing something to the participant. The URL may return an MP3, a WAV or
|
490
545
|
# a TwiML document with `<Play>` or `<Say>`.
|
491
|
-
# @param [String] announce_method Specify
|
546
|
+
# @param [String] announce_method Specify the HTTP method Twilio should use to
|
547
|
+
# request your `AnnounceUrl`, either `GET` or `POST`. Defaults to `POST`.
|
492
548
|
# @return [ParticipantInstance] Updated ParticipantInstance
|
493
549
|
def update(muted: :unset, hold: :unset, hold_url: :unset, hold_method: :unset, announce_url: :unset, announce_method: :unset)
|
494
550
|
context.update(
|
@@ -0,0 +1,460 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
module Twilio
|
10
|
+
module REST
|
11
|
+
class Api < Domain
|
12
|
+
class V2010 < Version
|
13
|
+
class AccountContext < InstanceContext
|
14
|
+
class ConferenceContext < InstanceContext
|
15
|
+
class RecordingList < ListResource
|
16
|
+
##
|
17
|
+
# Initialize the RecordingList
|
18
|
+
# @param [Version] version Version that contains the resource
|
19
|
+
# @param [String] account_sid The unique ID of the
|
20
|
+
# [Account](https://www.twilio.com/docs/api/rest/account) responsible for this
|
21
|
+
# recording.
|
22
|
+
# @param [String] conference_sid The unique id for the conference associated with
|
23
|
+
# the recording.
|
24
|
+
# @return [RecordingList] RecordingList
|
25
|
+
def initialize(version, account_sid: nil, conference_sid: nil)
|
26
|
+
super(version)
|
27
|
+
|
28
|
+
# Path Solution
|
29
|
+
@solution = {account_sid: account_sid, conference_sid: conference_sid}
|
30
|
+
@uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Recordings.json"
|
31
|
+
end
|
32
|
+
|
33
|
+
##
|
34
|
+
# Lists RecordingInstance records from the API as a list.
|
35
|
+
# Unlike stream(), this operation is eager and will load `limit` records into
|
36
|
+
# memory before returning.
|
37
|
+
# @param [Time] date_created_before Filter by date created
|
38
|
+
# @param [Time] date_created Filter by date created
|
39
|
+
# @param [Time] date_created_after Filter by date created
|
40
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
41
|
+
# guarantees to never return more than limit. Default is no limit
|
42
|
+
# @param [Integer] page_size Number of records to fetch per request, when
|
43
|
+
# not set will use the default value of 50 records. If no page_size is defined
|
44
|
+
# but a limit is defined, stream() will attempt to read the limit with the most
|
45
|
+
# efficient page size, i.e. min(limit, 1000)
|
46
|
+
# @return [Array] Array of up to limit results
|
47
|
+
def list(date_created_before: :unset, date_created: :unset, date_created_after: :unset, limit: nil, page_size: nil)
|
48
|
+
self.stream(
|
49
|
+
date_created_before: date_created_before,
|
50
|
+
date_created: date_created,
|
51
|
+
date_created_after: date_created_after,
|
52
|
+
limit: limit,
|
53
|
+
page_size: page_size
|
54
|
+
).entries
|
55
|
+
end
|
56
|
+
|
57
|
+
##
|
58
|
+
# Streams RecordingInstance records from the API as an Enumerable.
|
59
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
60
|
+
# is reached.
|
61
|
+
# @param [Time] date_created_before Filter by date created
|
62
|
+
# @param [Time] date_created Filter by date created
|
63
|
+
# @param [Time] date_created_after Filter by date created
|
64
|
+
# @param [Integer] limit Upper limit for the number of records to return. stream()
|
65
|
+
# guarantees to never return more than limit. Default is no limit.
|
66
|
+
# @param [Integer] page_size Number of records to fetch per request, when
|
67
|
+
# not set will use the default value of 50 records. If no page_size is defined
|
68
|
+
# but a limit is defined, stream() will attempt to read the limit with the most
|
69
|
+
# efficient page size, i.e. min(limit, 1000)
|
70
|
+
# @return [Enumerable] Enumerable that will yield up to limit results
|
71
|
+
def stream(date_created_before: :unset, date_created: :unset, date_created_after: :unset, limit: nil, page_size: nil)
|
72
|
+
limits = @version.read_limits(limit, page_size)
|
73
|
+
|
74
|
+
page = self.page(
|
75
|
+
date_created_before: date_created_before,
|
76
|
+
date_created: date_created,
|
77
|
+
date_created_after: date_created_after,
|
78
|
+
page_size: limits[:page_size],
|
79
|
+
)
|
80
|
+
|
81
|
+
@version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
|
82
|
+
end
|
83
|
+
|
84
|
+
##
|
85
|
+
# When passed a block, yields RecordingInstance records from the API.
|
86
|
+
# This operation lazily loads records as efficiently as possible until the limit
|
87
|
+
# is reached.
|
88
|
+
def each
|
89
|
+
limits = @version.read_limits
|
90
|
+
|
91
|
+
page = self.page(page_size: limits[:page_size], )
|
92
|
+
|
93
|
+
@version.stream(page,
|
94
|
+
limit: limits[:limit],
|
95
|
+
page_limit: limits[:page_limit]).each {|x| yield x}
|
96
|
+
end
|
97
|
+
|
98
|
+
##
|
99
|
+
# Retrieve a single page of RecordingInstance records from the API.
|
100
|
+
# Request is executed immediately.
|
101
|
+
# @param [Time] date_created_before Filter by date created
|
102
|
+
# @param [Time] date_created Filter by date created
|
103
|
+
# @param [Time] date_created_after Filter by date created
|
104
|
+
# @param [String] page_token PageToken provided by the API
|
105
|
+
# @param [Integer] page_number Page Number, this value is simply for client state
|
106
|
+
# @param [Integer] page_size Number of records to return, defaults to 50
|
107
|
+
# @return [Page] Page of RecordingInstance
|
108
|
+
def page(date_created_before: :unset, date_created: :unset, date_created_after: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
|
109
|
+
params = Twilio::Values.of({
|
110
|
+
'DateCreated<' => Twilio.serialize_iso8601_date(date_created_before),
|
111
|
+
'DateCreated' => Twilio.serialize_iso8601_date(date_created),
|
112
|
+
'DateCreated>' => Twilio.serialize_iso8601_date(date_created_after),
|
113
|
+
'PageToken' => page_token,
|
114
|
+
'Page' => page_number,
|
115
|
+
'PageSize' => page_size,
|
116
|
+
})
|
117
|
+
response = @version.page(
|
118
|
+
'GET',
|
119
|
+
@uri,
|
120
|
+
params
|
121
|
+
)
|
122
|
+
RecordingPage.new(@version, response, @solution)
|
123
|
+
end
|
124
|
+
|
125
|
+
##
|
126
|
+
# Retrieve a single page of RecordingInstance records from the API.
|
127
|
+
# Request is executed immediately.
|
128
|
+
# @param [String] target_url API-generated URL for the requested results page
|
129
|
+
# @return [Page] Page of RecordingInstance
|
130
|
+
def get_page(target_url)
|
131
|
+
response = @version.domain.request(
|
132
|
+
'GET',
|
133
|
+
target_url
|
134
|
+
)
|
135
|
+
RecordingPage.new(@version, response, @solution)
|
136
|
+
end
|
137
|
+
|
138
|
+
##
|
139
|
+
# Provide a user friendly representation
|
140
|
+
def to_s
|
141
|
+
'#<Twilio.Api.V2010.RecordingList>'
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
class RecordingPage < Page
|
146
|
+
##
|
147
|
+
# Initialize the RecordingPage
|
148
|
+
# @param [Version] version Version that contains the resource
|
149
|
+
# @param [Response] response Response from the API
|
150
|
+
# @param [Hash] solution Path solution for the resource
|
151
|
+
# @return [RecordingPage] RecordingPage
|
152
|
+
def initialize(version, response, solution)
|
153
|
+
super(version, response)
|
154
|
+
|
155
|
+
# Path Solution
|
156
|
+
@solution = solution
|
157
|
+
end
|
158
|
+
|
159
|
+
##
|
160
|
+
# Build an instance of RecordingInstance
|
161
|
+
# @param [Hash] payload Payload response from the API
|
162
|
+
# @return [RecordingInstance] RecordingInstance
|
163
|
+
def get_instance(payload)
|
164
|
+
RecordingInstance.new(
|
165
|
+
@version,
|
166
|
+
payload,
|
167
|
+
account_sid: @solution[:account_sid],
|
168
|
+
conference_sid: @solution[:conference_sid],
|
169
|
+
)
|
170
|
+
end
|
171
|
+
|
172
|
+
##
|
173
|
+
# Provide a user friendly representation
|
174
|
+
def to_s
|
175
|
+
'<Twilio.Api.V2010.RecordingPage>'
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
class RecordingContext < InstanceContext
|
180
|
+
##
|
181
|
+
# Initialize the RecordingContext
|
182
|
+
# @param [Version] version Version that contains the resource
|
183
|
+
# @param [String] account_sid The account_sid
|
184
|
+
# @param [String] conference_sid The conference Sid that uniquely identifies this
|
185
|
+
# resource
|
186
|
+
# @param [String] sid The recording Sid that uniquely identifies this resource
|
187
|
+
# @return [RecordingContext] RecordingContext
|
188
|
+
def initialize(version, account_sid, conference_sid, sid)
|
189
|
+
super(version)
|
190
|
+
|
191
|
+
# Path Solution
|
192
|
+
@solution = {account_sid: account_sid, conference_sid: conference_sid, sid: sid, }
|
193
|
+
@uri = "/Accounts/#{@solution[:account_sid]}/Conferences/#{@solution[:conference_sid]}/Recordings/#{@solution[:sid]}.json"
|
194
|
+
end
|
195
|
+
|
196
|
+
##
|
197
|
+
# Update the RecordingInstance
|
198
|
+
# @param [recording.Status] status The status to change the recording to.
|
199
|
+
# Possible values : stopped, paused, in-progress
|
200
|
+
# @return [RecordingInstance] Updated RecordingInstance
|
201
|
+
def update(status: nil)
|
202
|
+
data = Twilio::Values.of({'Status' => status, })
|
203
|
+
|
204
|
+
payload = @version.update(
|
205
|
+
'POST',
|
206
|
+
@uri,
|
207
|
+
data: data,
|
208
|
+
)
|
209
|
+
|
210
|
+
RecordingInstance.new(
|
211
|
+
@version,
|
212
|
+
payload,
|
213
|
+
account_sid: @solution[:account_sid],
|
214
|
+
conference_sid: @solution[:conference_sid],
|
215
|
+
sid: @solution[:sid],
|
216
|
+
)
|
217
|
+
end
|
218
|
+
|
219
|
+
##
|
220
|
+
# Fetch a RecordingInstance
|
221
|
+
# @return [RecordingInstance] Fetched RecordingInstance
|
222
|
+
def fetch
|
223
|
+
params = Twilio::Values.of({})
|
224
|
+
|
225
|
+
payload = @version.fetch(
|
226
|
+
'GET',
|
227
|
+
@uri,
|
228
|
+
params,
|
229
|
+
)
|
230
|
+
|
231
|
+
RecordingInstance.new(
|
232
|
+
@version,
|
233
|
+
payload,
|
234
|
+
account_sid: @solution[:account_sid],
|
235
|
+
conference_sid: @solution[:conference_sid],
|
236
|
+
sid: @solution[:sid],
|
237
|
+
)
|
238
|
+
end
|
239
|
+
|
240
|
+
##
|
241
|
+
# Deletes the RecordingInstance
|
242
|
+
# @return [Boolean] true if delete succeeds, true otherwise
|
243
|
+
def delete
|
244
|
+
@version.delete('delete', @uri)
|
245
|
+
end
|
246
|
+
|
247
|
+
##
|
248
|
+
# Provide a user friendly representation
|
249
|
+
def to_s
|
250
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
251
|
+
"#<Twilio.Api.V2010.RecordingContext #{context}>"
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
class RecordingInstance < InstanceResource
|
256
|
+
##
|
257
|
+
# Initialize the RecordingInstance
|
258
|
+
# @param [Version] version Version that contains the resource
|
259
|
+
# @param [Hash] payload payload that contains response from Twilio
|
260
|
+
# @param [String] account_sid The unique ID of the
|
261
|
+
# [Account](https://www.twilio.com/docs/api/rest/account) responsible for this
|
262
|
+
# recording.
|
263
|
+
# @param [String] conference_sid The unique id for the conference associated with
|
264
|
+
# the recording.
|
265
|
+
# @param [String] sid The recording Sid that uniquely identifies this resource
|
266
|
+
# @return [RecordingInstance] RecordingInstance
|
267
|
+
def initialize(version, payload, account_sid: nil, conference_sid: nil, sid: nil)
|
268
|
+
super(version)
|
269
|
+
|
270
|
+
# Marshaled Properties
|
271
|
+
@properties = {
|
272
|
+
'account_sid' => payload['account_sid'],
|
273
|
+
'api_version' => payload['api_version'],
|
274
|
+
'call_sid' => payload['call_sid'],
|
275
|
+
'conference_sid' => payload['conference_sid'],
|
276
|
+
'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
|
277
|
+
'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
|
278
|
+
'start_time' => Twilio.deserialize_rfc2822(payload['start_time']),
|
279
|
+
'duration' => payload['duration'],
|
280
|
+
'sid' => payload['sid'],
|
281
|
+
'price' => payload['price'].to_f,
|
282
|
+
'price_unit' => payload['price_unit'],
|
283
|
+
'status' => payload['status'],
|
284
|
+
'channels' => payload['channels'].to_i,
|
285
|
+
'source' => payload['source'],
|
286
|
+
'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
|
287
|
+
'encryption_details' => payload['encryption_details'],
|
288
|
+
'uri' => payload['uri'],
|
289
|
+
}
|
290
|
+
|
291
|
+
# Context
|
292
|
+
@instance_context = nil
|
293
|
+
@params = {
|
294
|
+
'account_sid' => account_sid,
|
295
|
+
'conference_sid' => conference_sid,
|
296
|
+
'sid' => sid || @properties['sid'],
|
297
|
+
}
|
298
|
+
end
|
299
|
+
|
300
|
+
##
|
301
|
+
# Generate an instance context for the instance, the context is capable of
|
302
|
+
# performing various actions. All instance actions are proxied to the context
|
303
|
+
# @return [RecordingContext] RecordingContext for this RecordingInstance
|
304
|
+
def context
|
305
|
+
unless @instance_context
|
306
|
+
@instance_context = RecordingContext.new(
|
307
|
+
@version,
|
308
|
+
@params['account_sid'],
|
309
|
+
@params['conference_sid'],
|
310
|
+
@params['sid'],
|
311
|
+
)
|
312
|
+
end
|
313
|
+
@instance_context
|
314
|
+
end
|
315
|
+
|
316
|
+
##
|
317
|
+
# @return [String] The unique sid that identifies this account
|
318
|
+
def account_sid
|
319
|
+
@properties['account_sid']
|
320
|
+
end
|
321
|
+
|
322
|
+
##
|
323
|
+
# @return [String] The version of the API in use during the recording.
|
324
|
+
def api_version
|
325
|
+
@properties['api_version']
|
326
|
+
end
|
327
|
+
|
328
|
+
##
|
329
|
+
# @return [String] The unique id for the call leg that corresponds to the recording.
|
330
|
+
def call_sid
|
331
|
+
@properties['call_sid']
|
332
|
+
end
|
333
|
+
|
334
|
+
##
|
335
|
+
# @return [String] The unique id for the conference associated with the recording.
|
336
|
+
def conference_sid
|
337
|
+
@properties['conference_sid']
|
338
|
+
end
|
339
|
+
|
340
|
+
##
|
341
|
+
# @return [Time] The date this resource was created
|
342
|
+
def date_created
|
343
|
+
@properties['date_created']
|
344
|
+
end
|
345
|
+
|
346
|
+
##
|
347
|
+
# @return [Time] The date this resource was last updated
|
348
|
+
def date_updated
|
349
|
+
@properties['date_updated']
|
350
|
+
end
|
351
|
+
|
352
|
+
##
|
353
|
+
# @return [Time] The start time of the recording, given in RFC 2822 format.
|
354
|
+
def start_time
|
355
|
+
@properties['start_time']
|
356
|
+
end
|
357
|
+
|
358
|
+
##
|
359
|
+
# @return [String] The length of the recording, in seconds.
|
360
|
+
def duration
|
361
|
+
@properties['duration']
|
362
|
+
end
|
363
|
+
|
364
|
+
##
|
365
|
+
# @return [String] A string that uniquely identifies this recording
|
366
|
+
def sid
|
367
|
+
@properties['sid']
|
368
|
+
end
|
369
|
+
|
370
|
+
##
|
371
|
+
# @return [String] The one-time cost of creating this recording.
|
372
|
+
def price
|
373
|
+
@properties['price']
|
374
|
+
end
|
375
|
+
|
376
|
+
##
|
377
|
+
# @return [String] The currency used in the Price property.
|
378
|
+
def price_unit
|
379
|
+
@properties['price_unit']
|
380
|
+
end
|
381
|
+
|
382
|
+
##
|
383
|
+
# @return [recording.Status] The status of the recording.
|
384
|
+
def status
|
385
|
+
@properties['status']
|
386
|
+
end
|
387
|
+
|
388
|
+
##
|
389
|
+
# @return [String] The number of channels in the final recording file as an integer.
|
390
|
+
def channels
|
391
|
+
@properties['channels']
|
392
|
+
end
|
393
|
+
|
394
|
+
##
|
395
|
+
# @return [recording.Source] The way in which this recording was created.
|
396
|
+
def source
|
397
|
+
@properties['source']
|
398
|
+
end
|
399
|
+
|
400
|
+
##
|
401
|
+
# @return [String] More information about the recording failure, if Status is failed.
|
402
|
+
def error_code
|
403
|
+
@properties['error_code']
|
404
|
+
end
|
405
|
+
|
406
|
+
##
|
407
|
+
# @return [Hash] Details for how to decrypt the recording.
|
408
|
+
def encryption_details
|
409
|
+
@properties['encryption_details']
|
410
|
+
end
|
411
|
+
|
412
|
+
##
|
413
|
+
# @return [String] The URI for this resource
|
414
|
+
def uri
|
415
|
+
@properties['uri']
|
416
|
+
end
|
417
|
+
|
418
|
+
##
|
419
|
+
# Update the RecordingInstance
|
420
|
+
# @param [recording.Status] status The status to change the recording to.
|
421
|
+
# Possible values : stopped, paused, in-progress
|
422
|
+
# @return [RecordingInstance] Updated RecordingInstance
|
423
|
+
def update(status: nil)
|
424
|
+
context.update(status: status, )
|
425
|
+
end
|
426
|
+
|
427
|
+
##
|
428
|
+
# Fetch a RecordingInstance
|
429
|
+
# @return [RecordingInstance] Fetched RecordingInstance
|
430
|
+
def fetch
|
431
|
+
context.fetch
|
432
|
+
end
|
433
|
+
|
434
|
+
##
|
435
|
+
# Deletes the RecordingInstance
|
436
|
+
# @return [Boolean] true if delete succeeds, true otherwise
|
437
|
+
def delete
|
438
|
+
context.delete
|
439
|
+
end
|
440
|
+
|
441
|
+
##
|
442
|
+
# Provide a user friendly representation
|
443
|
+
def to_s
|
444
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
445
|
+
"<Twilio.Api.V2010.RecordingInstance #{values}>"
|
446
|
+
end
|
447
|
+
|
448
|
+
##
|
449
|
+
# Provide a detailed, user friendly representation
|
450
|
+
def inspect
|
451
|
+
values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
|
452
|
+
"<Twilio.Api.V2010.RecordingInstance #{values}>"
|
453
|
+
end
|
454
|
+
end
|
455
|
+
end
|
456
|
+
end
|
457
|
+
end
|
458
|
+
end
|
459
|
+
end
|
460
|
+
end
|