signalwire 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 325c0f2a81d0a8486fdb356dc91c78284228b30440129ee2a60c3332b1e725b5
4
- data.tar.gz: 1f5f8d9227de1b684f05e88d6b1b53246de7f29479c0e11cef94cd792dc8171c
3
+ metadata.gz: 6165a9529b9376430f0d3d27ee60d19e0fef310ceb5bf9ec8ac602b4cf0d45f6
4
+ data.tar.gz: 56cd7d1ae685944c202bb82000d4549da11960bc278ddc977b5cc728a2019851
5
5
  SHA512:
6
- metadata.gz: 6362ec6503c1a04505f72b13edfbb29c2bb7ca4002f7e13fd7926099dbac08142254d0a41447c96f2b44a54639fdfb367d12ab710c6a6e628c39143a823e9028
7
- data.tar.gz: e8dce6ff15120bc77452aa97667a0aa468d923cd744e0e4ec15c74db0100424b321e9d86438710750d1cb4285f04db4aa3ab1f09f5e93352a2ebfa7c59874edd
6
+ metadata.gz: 96659014e4dd5da3a222f9690085b5be43c625d3f1ff767a30574c3c90edd1ddc2abf31b757bc5a0eb54f99d7d7f248b170c2067c087a6f75775a2aac49b3dba
7
+ data.tar.gz: '070834c4ac95d63981b45ec4b8684f4b2d5b385eb8c24e0bf9fcc7036a76144f9cdedf37a19d6e19d193dd3485ab0837b10d87ee6945f2d3797fa76eda2249da'
data/CHANGELOG.md CHANGED
@@ -5,6 +5,15 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [2.3.0] - 2019-10-22
9
+ ### Added
10
+ - Add `pause` and `resume` on `PlayAction`.
11
+ - Add `volume` optional parameter to `play` and `prompt` methods
12
+ - Add `volume` method to `Play` and `Prompt` components
13
+ - Add `play_ringtone` and `play_ringtone!` for ringback.
14
+ - Add `prompt_ringtone` and `prompt_ringtone!` for ringback on a prompt.
15
+ - Added `ringback` parameter to the `connect` and `connect!` methods.
16
+
8
17
  ## [2.2.0] - 2019-09-09
9
18
  ### Added
10
19
  - `detect_answering_machine` method with its `amd` alias
@@ -28,17 +28,24 @@ require 'signalwire/relay/calling/action/send_digits_action'
28
28
 
29
29
  require 'signalwire/relay/calling/result'
30
30
  require 'signalwire/relay/calling/result/answer_result'
31
+ require 'signalwire/relay/calling/result/base_action_result'
31
32
  require 'signalwire/relay/calling/result/connect_result'
32
33
  require 'signalwire/relay/calling/result/detect_result'
33
34
  require 'signalwire/relay/calling/result/dial_result'
34
35
  require 'signalwire/relay/calling/result/hangup_result'
35
36
  require 'signalwire/relay/calling/result/play_result'
37
+ require 'signalwire/relay/calling/result/play_pause_result'
38
+ require 'signalwire/relay/calling/result/play_resume_result'
39
+ require 'signalwire/relay/calling/result/play_volume_result'
36
40
  require 'signalwire/relay/calling/result/prompt_result'
41
+ require 'signalwire/relay/calling/result/prompt_volume_result'
37
42
  require 'signalwire/relay/calling/result/record_result'
38
43
  require 'signalwire/relay/calling/result/fax_result'
39
44
  require 'signalwire/relay/calling/result/tap_result'
40
45
  require 'signalwire/relay/calling/result/send_digits_result'
41
46
 
47
+ require 'signalwire/relay/calling/result/stop_result'
48
+
42
49
  require 'signalwire/relay/calling/component'
43
50
  require 'signalwire/relay/calling/control_component'
44
51
  require 'signalwire/relay/calling/component/answer'
@@ -11,5 +11,17 @@ module Signalwire::Relay::Calling
11
11
  def stop
12
12
  @component.stop
13
13
  end
14
+
15
+ def pause
16
+ @component.pause
17
+ end
18
+
19
+ def resume
20
+ @component.resume
21
+ end
22
+
23
+ def volume(setting)
24
+ @component.volume setting
25
+ end
14
26
  end
15
27
  end
@@ -11,5 +11,9 @@ module Signalwire::Relay::Calling
11
11
  def stop
12
12
  @component.stop
13
13
  end
14
+
15
+ def volume(setting)
16
+ @component.volume setting
17
+ end
14
18
  end
15
19
  end
@@ -11,5 +11,9 @@ module Signalwire::Relay::Calling
11
11
  def stop
12
12
  @component.stop
13
13
  end
14
+
15
+ def url
16
+ @component.url
17
+ end
14
18
  end
15
19
  end
@@ -112,50 +112,64 @@ module Signalwire::Relay::Calling
112
112
  AnswerResult.new(component: answer_component)
113
113
  end
114
114
 
115
- def play(play_object)
116
- play_component = Signalwire::Relay::Calling::Play.new(call: self, play: play_object)
115
+ def play(play_p = nil, volume_p = nil, **args)
116
+ play = args.delete(:play)
117
+ volume = args.delete(:volume)
118
+ set_parameters(binding, %i{play volume}, %i{play})
119
+
120
+ play_component = Signalwire::Relay::Calling::Play.new(call: self, play: play, volume: volume)
117
121
  play_component.wait_for(Relay::CallPlayState::FINISHED, Relay::CallPlayState::ERROR)
118
122
  PlayResult.new(component: play_component)
119
123
  end
120
124
 
121
- def play!(play_object)
122
- play_component = Signalwire::Relay::Calling::Play.new(call: self, play: play_object)
125
+ def play!(play_p = nil, volume_p = nil, **args)
126
+ play = args.delete(:play)
127
+ volume = args.delete(:volume)
128
+ set_parameters(binding, %i{play volume}, %i{play})
129
+
130
+ play_component = Signalwire::Relay::Calling::Play.new(call: self, play: play, volume: volume)
123
131
  play_component.execute
124
132
  PlayAction.new(component: play_component)
125
133
  end
126
134
 
127
- def prompt(collect_p = nil, play_p = nil, **args)
128
-
135
+ def prompt(collect_p = nil, play_p = nil, volume_p = nil, **args)
129
136
  collect = args.delete(:collect)
130
137
  play = args.delete(:play)
138
+ volume = args.delete(:volume)
131
139
 
132
140
  collect = compile_collect_arguments(args) if collect.nil? && collect_p.nil?
133
141
  set_parameters(binding, %i{collect play}, %i{collect play})
134
142
 
135
- component = Prompt.new(call: self, collect: collect, play: play)
143
+ component = Prompt.new(call: self, collect: collect, play: play, volume: volume)
136
144
  component.wait_for(Relay::CallPromptState::ERROR, Relay::CallPromptState::NO_INPUT,
137
145
  Relay::CallPromptState::NO_MATCH, Relay::CallPromptState::DIGIT,
138
146
  Relay::CallPromptState::SPEECH)
139
147
  PromptResult.new(component: component)
140
148
  end
141
149
 
142
- def prompt!(collect_p = nil, play_p = nil, **args)
150
+ def prompt!(collect_p = nil, play_p = nil, volume_p = nil, **args)
151
+ collect = args.delete(:collect)
152
+ play = args.delete(:play)
153
+ volume = args.delete(:volume)
154
+
143
155
  collect = compile_collect_arguments(args) if collect.nil? && collect_p.nil?
144
156
  set_parameters(binding, %i{collect play}, %i{collect play})
145
157
 
146
- component = Prompt,new(call: self, collect: collect, play: play)
158
+ component = Prompt.new(call: self, collect: collect, play: play, volume: volume)
147
159
  component.execute
148
160
  PromptAction.new(component: component)
149
161
  end
150
162
 
151
- def connect(devices_object)
152
- component = Connect.new(call: self, devices: devices_object)
163
+ def connect(devices_p = nil, ringback_p = nil, devices: nil, ringback: nil)
164
+ set_parameters(binding, %i{devices ringback}, %i{devices})
165
+ component = ringback.nil? ? Connect.new(call: self, devices: devices) : Connect.new(call: self, devices: devices, ringback: ringback)
153
166
  component.wait_for(Relay::CallConnectState::CONNECTED, Relay::CallConnectState::FAILED)
154
167
  ConnectResult.new(component: component)
155
168
  end
156
169
 
157
- def connect!(devices_object)
158
- component = Connect.new(call: self, devices: devices_object)
170
+ def connect!(devices_p = nil, ringback_p = nil, devices: nil, ringback: nil)
171
+ set_parameters(binding, %i{devices ringback}, %i{devices})
172
+ component = ringback.nil? ? Connect.new(call: self, devices: devices) : Connect.new(call: self, devices: devices, ringback: ringback)
159
173
  component.execute
160
174
  ConnectAction.new(component: component)
161
175
  end
@@ -1,11 +1,19 @@
1
1
  module Signalwire::Relay::Calling
2
2
  module CallConvenienceMethods
3
- def play_audio(url)
4
- play audio_payload(url)
3
+ def play_audio(url_p = nil, volume_p = nil, **args)
4
+ url = args.delete(:url)
5
+ volume = args.delete(:volume)
6
+ set_parameters(binding, %i{url volume}, %i{url})
7
+
8
+ play(play: audio_payload(url), volume: volume)
5
9
  end
6
10
 
7
- def play_audio!(url)
8
- play! audio_payload(url)
11
+ def play_audio!(url_p = nil, volume_p = nil, **args)
12
+ url = args.delete(:url)
13
+ volume = args.delete(:volume)
14
+ set_parameters(binding, %i{url volume}, %i{url})
15
+
16
+ play!(play: audio_payload(url), volume: volume)
9
17
  end
10
18
 
11
19
  def play_silence(duration)
@@ -16,33 +24,43 @@ module Signalwire::Relay::Calling
16
24
  play! silence_payload(duration)
17
25
  end
18
26
 
19
- def play_tts(text_p=nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, text: nil, language: Relay::DEFAULT_LANGUAGE, gender: Relay::DEFAULT_GENDER)
20
- set_parameters(binding, %i{text language gender}, %i{text})
27
+ def play_tts(text_p=nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, volume_p=nil, text: nil, language: Relay::DEFAULT_LANGUAGE, gender: Relay::DEFAULT_GENDER, volume: nil)
28
+ set_parameters(binding, %i{text language gender volume}, %i{text})
29
+
30
+ play play: tts_payload(text, language, gender), volume: volume
31
+ end
32
+
33
+ def play_tts!(text_p=nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, text: nil, language: Relay::DEFAULT_LANGUAGE, gender: Relay::DEFAULT_GENDER, volume: nil)
34
+ set_parameters(binding, %i{text language gender volume}, %i{text})
35
+ play! tts_payload(text, language, gender), volume: volume
36
+ end
21
37
 
22
- play tts_payload(text, language, gender)
38
+ def play_ringtone(name:, duration: nil)
39
+ play ringtone_payload(name, duration)
23
40
  end
24
41
 
25
- def play_tts!(text_p=nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, text: nil, language: Relay::DEFAULT_LANGUAGE, gender: Relay::DEFAULT_GENDER)
26
- set_parameters(binding, %i{text language gender}, %i{text})
27
- play! tts_payload(text, language, gender)
42
+ def play_ringtone!(name:, duration: nil)
43
+ play ringtone_payload(name, duration)
28
44
  end
29
45
 
30
- def prompt_audio(collect_p = nil, url_p = nil, **args)
46
+ def prompt_audio(collect_p = nil, url_p = nil, volume_p=nil, **args)
31
47
  collect = args.delete(:collect)
32
48
  url = args.delete(:url)
49
+ volume = args.delete(:volume)
33
50
  collect = compile_collect_arguments(args) if collect.nil? && collect_p.nil?
34
- set_parameters(binding, %i{collect url}, %i{collect url})
51
+ set_parameters(binding, %i{collect url volume}, %i{collect url})
35
52
 
36
- prompt(collect: collect, play: audio_payload(url))
53
+ prompt(collect: collect, play: audio_payload(url), volume: volume)
37
54
  end
38
55
 
39
- def prompt_audio!(collect_p = nil, url_p = nil, **args)
56
+ def prompt_audio!(collect_p = nil, url_p = nil, volume_p=nil, **args)
40
57
  collect = args.delete(:collect)
41
58
  url = args.delete(:url)
59
+ volume = args.delete(:volume)
42
60
  collect = compile_collect_arguments(args) if collect.nil? && collect_p.nil?
43
- set_parameters(binding, %i{collect url}, %i{collect url})
61
+ set_parameters(binding, %i{collect url volume}, %i{collect url})
44
62
 
45
- prompt!(collect: collect, play: audio_payload(url))
63
+ prompt!(collect: collect, play: audio_payload(url), volume: volume)
46
64
  end
47
65
 
48
66
  def prompt_silence(collect_p = nil, duration_p = nil, **args)
@@ -63,28 +81,40 @@ module Signalwire::Relay::Calling
63
81
  prompt!(collect: collect, play: silence_payload(duration))
64
82
  end
65
83
 
66
- def prompt_tts(collect_p = nil, text_p = nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, **args)
84
+ def prompt_tts(collect_p = nil, text_p = nil, volume_p=nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, **args)
67
85
  collect = args.delete(:collect)
68
86
  text = args.delete(:text)
87
+ volume = args.delete(:volume)
69
88
  language = args.delete(:language) || Relay::DEFAULT_LANGUAGE
70
89
  gender = args.delete(:gender) || Relay::DEFAULT_GENDER
71
90
  collect = compile_collect_arguments(args) if collect.nil? && collect_p.nil?
72
91
 
73
- set_parameters(binding, %i{collect text language gender}, %i{collect text})
92
+ set_parameters(binding, %i{collect text language gender volume}, %i{collect text})
74
93
 
75
- prompt(collect: collect, play: tts_payload(text, language, gender))
94
+ prompt(collect: collect, play: tts_payload(text, language, gender), volume: volume)
76
95
  end
77
96
 
78
- def prompt_tts!(collect_p = nil, text_p = nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, **args)
97
+ def prompt_tts!(collect_p = nil, text_p = nil, volume_p=nil, language_p=Relay::DEFAULT_LANGUAGE, gender_p=Relay::DEFAULT_GENDER, **args)
79
98
  collect = args.delete(:collect)
80
99
  text = args.delete(:text)
100
+ volume = args.delete(:volume)
81
101
  language = args.delete(:language) || Relay::DEFAULT_LANGUAGE
82
102
  gender = args.delete(:gender) || Relay::DEFAULT_GENDER
83
103
  collect = compile_collect_arguments(args) if collect.nil? && collect_p.nil?
84
104
 
85
- set_parameters(binding, %i{collect text language gender}, %i{collect text})
105
+ set_parameters(binding, %i{collect text language gender volume}, %i{collect text})
106
+
107
+ prompt!(collect: collect, play: tts_payload(text, language, gender), volume: volume)
108
+ end
86
109
 
87
- prompt!(collect: collect, play: tts_payload(text, language, gender))
110
+ def prompt_ringtone(collect: nil, name:, duration: nil, **args)
111
+ collect = compile_collect_arguments(args) if collect.nil?
112
+ prompt(collect: collect, play: ringtone_payload(name, duration))
113
+ end
114
+
115
+ def prompt_ringtone!(collect: nil, name:, duration: nil, **args)
116
+ collect = compile_collect_arguments(args) if collect.nil?
117
+ prompt!(collect: collect, play: ringtone_payload(name, duration))
88
118
  end
89
119
 
90
120
  def wait_for_ringing
@@ -116,5 +146,11 @@ module Signalwire::Relay::Calling
116
146
  def tts_payload(text, language=Relay::DEFAULT_LANGUAGE, gender=Relay::DEFAULT_GENDER)
117
147
  [{ "type": 'tts', "params": { "text": text, "language": language, "gender": gender } }]
118
148
  end
149
+
150
+ def ringtone_payload(name, duration)
151
+ params = { name: name }
152
+ params[:duration] = duration if duration && duration.to_i > 0
153
+ [{ type: "ringtone", params: params }]
154
+ end
119
155
  end
120
156
  end
@@ -30,11 +30,11 @@ module Signalwire::Relay::Calling
30
30
  raise NotImplementedError, 'Define this method on the child classes'
31
31
  end
32
32
 
33
- def execute_params(method_suffix = nil)
33
+ def execute_params(method_suffix = nil, inner_params_merge = {})
34
34
  {
35
35
  protocol: @call.client.protocol,
36
36
  method: method + method_suffix.to_s,
37
- params: inner_params
37
+ params: inner_params.merge(inner_params_merge)
38
38
  }
39
39
  end
40
40
 
@@ -62,9 +62,14 @@ module Signalwire::Relay::Calling
62
62
 
63
63
  def handle_execute_result(event, outcome)
64
64
  @execute_result = event
65
+ after_execute(event)
65
66
  terminate if outcome == :failure
66
67
  end
67
68
 
69
+ def after_execute(event)
70
+ # implemented in subclasses
71
+ end
72
+
68
73
  def terminate(event = nil)
69
74
  @completed = true
70
75
  @successful = false
@@ -2,9 +2,10 @@
2
2
 
3
3
  module Signalwire::Relay::Calling
4
4
  class Connect < Component
5
- def initialize(call:, devices:)
5
+ def initialize(call:, devices:, ringback: nil)
6
6
  super(call: call)
7
7
  @devices = devices
8
+ @ringback = ringback
8
9
  end
9
10
 
10
11
  def method
@@ -16,11 +17,14 @@ module Signalwire::Relay::Calling
16
17
  end
17
18
 
18
19
  def inner_params
19
- {
20
+ params = {
20
21
  node_id: @call.node_id,
21
22
  call_id: @call.id,
22
23
  devices: @devices
23
24
  }
25
+
26
+ params[:ringback] = @ringback unless @ringback.nil?
27
+ params
24
28
  end
25
29
 
26
30
  def notification_handler(event)
@@ -2,9 +2,10 @@
2
2
 
3
3
  module Signalwire::Relay::Calling
4
4
  class Play < ControlComponent
5
- def initialize(call:, play:)
5
+ def initialize(call:, play:, volume: nil)
6
6
  super(call: call)
7
7
  @play = play
8
+ @volume = volume
8
9
  end
9
10
 
10
11
  def method
@@ -16,12 +17,15 @@ module Signalwire::Relay::Calling
16
17
  end
17
18
 
18
19
  def inner_params
19
- {
20
+ prm = {
20
21
  node_id: @call.node_id,
21
22
  call_id: @call.id,
22
23
  control_id: control_id,
23
24
  play: @play
24
25
  }
26
+
27
+ prm[:volume] = @volume unless @volume.nil?
28
+ prm
25
29
  end
26
30
 
27
31
  def notification_handler(event)
@@ -42,5 +46,17 @@ module Signalwire::Relay::Calling
42
46
  @call.broadcast "play_#{@state}".to_sym, event
43
47
  @call.broadcast :play_state_change, event
44
48
  end
49
+
50
+ def pause
51
+ execute_subcommand '.pause', Signalwire::Relay::Calling::PlayPauseResult
52
+ end
53
+
54
+ def resume
55
+ execute_subcommand '.resume', Signalwire::Relay::Calling::PlayResumeResult
56
+ end
57
+
58
+ def volume(setting)
59
+ execute_subcommand '.volume', Signalwire::Relay::Calling::PlayVolumeResult, { volume: setting }
60
+ end
45
61
  end
46
62
  end
@@ -3,10 +3,11 @@
3
3
  module Signalwire::Relay::Calling
4
4
  class Prompt < ControlComponent
5
5
  attr_reader :type, :input, :terminator
6
- def initialize(call:, collect:, play:)
6
+ def initialize(call:, collect:, play:, volume: nil)
7
7
  super(call: call)
8
8
  @play = play
9
9
  @collect = collect
10
+ @volume = volume
10
11
  end
11
12
 
12
13
  def method
@@ -18,13 +19,15 @@ module Signalwire::Relay::Calling
18
19
  end
19
20
 
20
21
  def inner_params
21
- {
22
+ prm = {
22
23
  node_id: @call.node_id,
23
24
  call_id: @call.id,
24
25
  control_id: control_id,
25
26
  play: @play,
26
27
  collect: @collect
27
28
  }
29
+ prm[:volume] = @volume unless @volume.nil?
30
+ prm
28
31
  end
29
32
 
30
33
  def notification_handler(event)
@@ -45,6 +48,10 @@ module Signalwire::Relay::Calling
45
48
  check_for_waiting_events
46
49
  end
47
50
 
51
+ def volume(setting)
52
+ execute_subcommand '.volume', Signalwire::Relay::Calling::PromptVolumeResult, { volume: setting }
53
+ end
54
+
48
55
  private
49
56
 
50
57
  def digit_event(result)
@@ -49,5 +49,9 @@ module Signalwire::Relay::Calling
49
49
  @call.broadcast "record_#{@state}".to_sym, event
50
50
  @call.broadcast :record_state_change, event
51
51
  end
52
+
53
+ def after_execute(execute_event)
54
+ @url = execute_event.call_params[:url]
55
+ end
52
56
  end
53
57
  end
@@ -24,11 +24,15 @@ module Signalwire::Relay::Calling
24
24
  end
25
25
 
26
26
  def stop
27
- @call.relay_execute execute_params('.stop') do |event, outcome|
28
- if outcome == :failure
29
- terminate(event)
30
- return event
31
- end
27
+ execute_subcommand '.stop', Signalwire::Relay::Calling::StopResult
28
+ end
29
+
30
+ def execute_subcommand(suffix, result_klass, extra_params = {})
31
+ @call.relay_execute execute_params('.stop', extra_params) do |event, outcome|
32
+ succeeded = outcome == :success
33
+ terminate(event) unless succeeded
34
+
35
+ return result_klass.new(succeeded)
32
36
  end
33
37
  end
34
38
  end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Signalwire::Relay::Calling
4
+ class BaseActionResult
5
+ attr_reader :successful
6
+ def initialize(result)
7
+ @successful = result
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Signalwire::Relay::Calling
4
+ class PlayPauseResult < BaseActionResult
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Signalwire::Relay::Calling
4
+ class PlayResumeResult < BaseActionResult
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Signalwire::Relay::Calling
4
+ class PlayVolumeResult < BaseActionResult
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Signalwire::Relay::Calling
4
+ class PromptVolumeResult < BaseActionResult
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # This does not inherit from Result as it only represents a subcommand
2
+ #
3
+ module Signalwire::Relay::Calling
4
+ class StopResult < BaseActionResult
5
+ end
6
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Signalwire
4
- VERSION = '2.2.0'
4
+ VERSION = '2.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: signalwire
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SignalWire Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-09 00:00:00.000000000 Z
11
+ date: 2019-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -312,15 +312,21 @@ files:
312
312
  - lib/signalwire/relay/calling/control_component.rb
313
313
  - lib/signalwire/relay/calling/result.rb
314
314
  - lib/signalwire/relay/calling/result/answer_result.rb
315
+ - lib/signalwire/relay/calling/result/base_action_result.rb
315
316
  - lib/signalwire/relay/calling/result/connect_result.rb
316
317
  - lib/signalwire/relay/calling/result/detect_result.rb
317
318
  - lib/signalwire/relay/calling/result/dial_result.rb
318
319
  - lib/signalwire/relay/calling/result/fax_result.rb
319
320
  - lib/signalwire/relay/calling/result/hangup_result.rb
321
+ - lib/signalwire/relay/calling/result/play_pause_result.rb
320
322
  - lib/signalwire/relay/calling/result/play_result.rb
323
+ - lib/signalwire/relay/calling/result/play_resume_result.rb
324
+ - lib/signalwire/relay/calling/result/play_volume_result.rb
321
325
  - lib/signalwire/relay/calling/result/prompt_result.rb
326
+ - lib/signalwire/relay/calling/result/prompt_volume_result.rb
322
327
  - lib/signalwire/relay/calling/result/record_result.rb
323
328
  - lib/signalwire/relay/calling/result/send_digits_result.rb
329
+ - lib/signalwire/relay/calling/result/stop_result.rb
324
330
  - lib/signalwire/relay/calling/result/tap_result.rb
325
331
  - lib/signalwire/relay/client.rb
326
332
  - lib/signalwire/relay/constants.rb