bandwidth-sdk 3.7.0 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bandwidth.rb +24 -1
  3. data/lib/bandwidth/api_helper.rb +14 -9
  4. data/lib/bandwidth/client.rb +2 -0
  5. data/lib/bandwidth/configuration.rb +23 -4
  6. data/lib/bandwidth/messaging_lib/messaging/client.rb +2 -0
  7. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +18 -12
  8. data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +1 -1
  9. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/client.rb +2 -0
  10. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/api_controller.rb +14 -9
  11. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/base_controller.rb +1 -1
  12. data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +7 -1
  13. data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +5 -1
  14. data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +5 -1
  15. data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +5 -1
  16. data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +5 -1
  17. data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +5 -1
  18. data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +15 -0
  19. data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +20 -0
  20. data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +14 -0
  21. data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +5 -1
  22. data/lib/bandwidth/voice_lib/voice.rb +8 -2
  23. data/lib/bandwidth/voice_lib/voice/client.rb +2 -0
  24. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +625 -55
  25. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +1 -1
  26. data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +17 -0
  27. data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +45 -0
  28. data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +45 -0
  29. data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +36 -0
  30. data/lib/bandwidth/voice_lib/voice/models/api_transcribe_recording_request.rb +11 -2
  31. data/lib/bandwidth/voice_lib/voice/models/call_engine_modify_conference_request.rb +74 -2
  32. data/lib/bandwidth/voice_lib/voice/models/conference_detail.rb +108 -0
  33. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +35 -0
  34. data/lib/bandwidth/voice_lib/voice/models/conference_member_detail.rb +80 -0
  35. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata_response.rb +126 -0
  36. data/lib/bandwidth/voice_lib/voice/models/recording_metadata_response.rb +32 -4
  37. data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +17 -0
  38. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +3 -3
  39. data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +4 -1
  40. data/lib/bandwidth/voice_lib/voice/models/{status2_enum.rb → status3_enum.rb} +3 -3
  41. data/lib/bandwidth/voice_lib/voice/models/transcription.rb +1 -1
  42. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +13 -0
  43. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +2 -0
  44. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +40 -30
  45. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +1 -1
  46. metadata +33 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e10eadbf6902f10e74e9e2574332439ce256b7b8a57d8c7e87f6a776857376c0
4
- data.tar.gz: 585279582d7e65c7a88dbb284d72a05f399be1a4c36dbc169fdeecd8a5317e61
3
+ metadata.gz: f1687b38b81b8c6261c0038d6bf49001afb6a1126098cf07cba1576cdba424a5
4
+ data.tar.gz: 7499a2af7f7671fab927b849b412a530ae434355d7f500394a373d473992de33
5
5
  SHA512:
6
- metadata.gz: e2c78bbe4acf58b05f186547b72e39f10cd198e68fe22051ab268027177544e51111b95af0f3a44b9ec1d1e038ca8420ef2a871c537fbb17138e430fc8cab1d1
7
- data.tar.gz: ad3b16633b516c60e14c8a9469acb912f74bc36c5e737fa636d4f2c32808636e76e718a1e3bcd7f30e7dcf2d93b278e31fdd1a71c08e5fe1574d16a484a0d184
6
+ metadata.gz: 4f5db84d3cd22771e57fa410a2ae87f9f648b389977a4bc2cb8c8a0c99dea18e26babf107572e4415102cd6c464e9cbaddfaed1989eac84254c8f850a757c7c6
7
+ data.tar.gz: f92963f362440fa3853db7ec18e019321d3ccac442490dfe18a19c6749339e7a65eb5ab1dfa25723a4384b1252ed536ef6bdce78605029372dc6b8f74f1a4316
@@ -42,4 +42,27 @@ require_relative 'bandwidth/http/auth/voice_basic_auth.rb'
42
42
  require_relative 'bandwidth/web_rtc_lib/web_rtc'
43
43
  require_relative 'bandwidth/http/auth/web_rtc_basic_auth.rb'
44
44
 
45
- # Controllers
45
+ # External Files
46
+ require_relative 'bandwidth/voice_lib/bxml/bxml.rb'
47
+ require_relative 'bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb'
48
+ require_relative 'bandwidth/voice_lib/bxml/verbs/bridge.rb'
49
+ require_relative 'bandwidth/voice_lib/bxml/verbs/conference.rb'
50
+ require_relative 'bandwidth/voice_lib/bxml/verbs/forward.rb'
51
+ require_relative 'bandwidth/voice_lib/bxml/verbs/gather.rb'
52
+ require_relative 'bandwidth/voice_lib/bxml/verbs/hangup.rb'
53
+ require_relative 'bandwidth/voice_lib/bxml/verbs/pause.rb'
54
+ require_relative 'bandwidth/voice_lib/bxml/verbs/pause_recording.rb'
55
+ require_relative 'bandwidth/voice_lib/bxml/verbs/phone_number.rb'
56
+ require_relative 'bandwidth/voice_lib/bxml/verbs/play_audio.rb'
57
+ require_relative 'bandwidth/voice_lib/bxml/verbs/record.rb'
58
+ require_relative 'bandwidth/voice_lib/bxml/verbs/redirect.rb'
59
+ require_relative 'bandwidth/voice_lib/bxml/verbs/resume_recording.rb'
60
+ require_relative 'bandwidth/voice_lib/bxml/verbs/ring.rb'
61
+ require_relative 'bandwidth/voice_lib/bxml/verbs/send_dtmf.rb'
62
+ require_relative 'bandwidth/voice_lib/bxml/verbs/speak_sentence.rb'
63
+ require_relative 'bandwidth/voice_lib/bxml/verbs/start_gather.rb'
64
+ require_relative 'bandwidth/voice_lib/bxml/verbs/start_recording.rb'
65
+ require_relative 'bandwidth/voice_lib/bxml/verbs/stop_gather.rb'
66
+ require_relative 'bandwidth/voice_lib/bxml/verbs/stop_recording.rb'
67
+ require_relative 'bandwidth/voice_lib/bxml/verbs/transfer.rb'
68
+ require_relative 'bandwidth/voice_lib/bxml/verbs/xml_verb.rb'
@@ -41,17 +41,22 @@ module Bandwidth
41
41
  # Return if there are no parameters to replace.
42
42
  return query_builder if parameters.nil?
43
43
 
44
- # Iterate and append parameters.
45
- parameters.each do |key, value|
46
- replace_value = ''
47
-
48
- if value.nil?
44
+ parameters.each do |key, val|
45
+ if val.nil?
49
46
  replace_value = ''
50
- elsif value.instance_of? Array
51
- value.map! { |element| CGI.escape(element.to_s) }
52
- replace_value = value.join('/')
47
+ elsif val['value'].instance_of? Array
48
+ if val['encode'] == true
49
+ val['value'].map! { |element| CGI.escape(element.to_s) }
50
+ else
51
+ val['value'].map!(&:to_s)
52
+ end
53
+ replace_value = val['value'].join('/')
53
54
  else
54
- replace_value = CGI.escape(value.to_s)
55
+ replace_value = if val['encode'] == true
56
+ CGI.escape(val['value'].to_s)
57
+ else
58
+ val['value'].to_s
59
+ end
55
60
  end
56
61
 
57
62
  # Find the template parameter and replace it with its value.
@@ -30,6 +30,7 @@ module Bandwidth
30
30
 
31
31
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
32
32
  backoff_factor: 1, environment: Environment::PRODUCTION,
33
+ base_url: 'https://www.example.com',
33
34
  messaging_basic_auth_user_name: 'TODO: Replace',
34
35
  messaging_basic_auth_password: 'TODO: Replace',
35
36
  two_factor_auth_basic_auth_user_name: 'TODO: Replace',
@@ -43,6 +44,7 @@ module Bandwidth
43
44
  retry_interval: retry_interval,
44
45
  backoff_factor: backoff_factor,
45
46
  environment: environment,
47
+ base_url: base_url,
46
48
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
47
49
  messaging_basic_auth_password: messaging_basic_auth_password,
48
50
  two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
@@ -7,7 +7,8 @@ module Bandwidth
7
7
  # An enum for SDK environments.
8
8
  class Environment
9
9
  ENVIRONMENT = [
10
- PRODUCTION = 'production'.freeze
10
+ PRODUCTION = 'production'.freeze,
11
+ CUSTOM = 'custom'.freeze
11
12
  ].freeze
12
13
  end
13
14
 
@@ -32,6 +33,7 @@ module Bandwidth
32
33
  attr_reader :retry_interval
33
34
  attr_reader :backoff_factor
34
35
  attr_reader :environment
36
+ attr_reader :base_url
35
37
  attr_reader :messaging_basic_auth_user_name
36
38
  attr_reader :messaging_basic_auth_password
37
39
  attr_reader :two_factor_auth_basic_auth_user_name
@@ -47,6 +49,7 @@ module Bandwidth
47
49
 
48
50
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
49
51
  backoff_factor: 1, environment: Environment::PRODUCTION,
52
+ base_url: 'https://www.example.com',
50
53
  messaging_basic_auth_user_name: 'TODO: Replace',
51
54
  messaging_basic_auth_password: 'TODO: Replace',
52
55
  two_factor_auth_basic_auth_user_name: 'TODO: Replace',
@@ -71,6 +74,9 @@ module Bandwidth
71
74
  # Current API environment
72
75
  @environment = String(environment)
73
76
 
77
+ # baseUrl value
78
+ @base_url = base_url
79
+
74
80
  # The username to use with basic authentication
75
81
  @messaging_basic_auth_user_name = messaging_basic_auth_user_name
76
82
 
@@ -100,7 +106,7 @@ module Bandwidth
100
106
  end
101
107
 
102
108
  def clone_with(timeout: nil, max_retries: nil, retry_interval: nil,
103
- backoff_factor: nil, environment: nil,
109
+ backoff_factor: nil, environment: nil, base_url: nil,
104
110
  messaging_basic_auth_user_name: nil,
105
111
  messaging_basic_auth_password: nil,
106
112
  two_factor_auth_basic_auth_user_name: nil,
@@ -114,6 +120,7 @@ module Bandwidth
114
120
  retry_interval ||= self.retry_interval
115
121
  backoff_factor ||= self.backoff_factor
116
122
  environment ||= self.environment
123
+ base_url ||= self.base_url
117
124
  messaging_basic_auth_user_name ||= self.messaging_basic_auth_user_name
118
125
  messaging_basic_auth_password ||= self.messaging_basic_auth_password
119
126
  two_factor_auth_basic_auth_user_name ||= self.two_factor_auth_basic_auth_user_name
@@ -126,7 +133,7 @@ module Bandwidth
126
133
  Configuration.new(
127
134
  timeout: timeout, max_retries: max_retries,
128
135
  retry_interval: retry_interval, backoff_factor: backoff_factor,
129
- environment: environment,
136
+ environment: environment, base_url: base_url,
130
137
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
131
138
  messaging_basic_auth_password: messaging_basic_auth_password,
132
139
  two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
@@ -152,6 +159,13 @@ module Bandwidth
152
159
  Server::TWOFACTORAUTHDEFAULT => 'https://mfa.bandwidth.com/api/v1/',
153
160
  Server::VOICEDEFAULT => 'https://voice.bandwidth.com',
154
161
  Server::WEBRTCDEFAULT => 'https://api.webrtc.bandwidth.com/v1'
162
+ },
163
+ Environment::CUSTOM => {
164
+ Server::DEFAULT => '{base_url}',
165
+ Server::MESSAGINGDEFAULT => '{base_url}',
166
+ Server::TWOFACTORAUTHDEFAULT => '{base_url}',
167
+ Server::VOICEDEFAULT => '{base_url}',
168
+ Server::WEBRTCDEFAULT => '{base_url}'
155
169
  }
156
170
  }.freeze
157
171
 
@@ -160,7 +174,12 @@ module Bandwidth
160
174
  # required.
161
175
  # @return [String] The base URI.
162
176
  def get_base_uri(server = Server::DEFAULT)
163
- ENVIRONMENTS[environment][server].clone
177
+ parameters = {
178
+ 'base_url' => { 'value' => base_url, 'encode' => false }
179
+ }
180
+ APIHelper.append_url_with_template_parameters(
181
+ ENVIRONMENTS[environment][server], parameters
182
+ )
164
183
  end
165
184
  end
166
185
  end
@@ -17,6 +17,7 @@ module Bandwidth
17
17
 
18
18
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
19
19
  backoff_factor: 1, environment: Environment::PRODUCTION,
20
+ base_url: 'https://www.example.com',
20
21
  messaging_basic_auth_user_name: 'TODO: Replace',
21
22
  messaging_basic_auth_password: 'TODO: Replace',
22
23
  two_factor_auth_basic_auth_user_name: 'TODO: Replace',
@@ -32,6 +33,7 @@ module Bandwidth
32
33
  retry_interval: retry_interval,
33
34
  backoff_factor: backoff_factor,
34
35
  environment: environment,
36
+ base_url: base_url,
35
37
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
36
38
  messaging_basic_auth_password: messaging_basic_auth_password,
37
39
  two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
@@ -22,7 +22,7 @@ module Messaging
22
22
  _query_builder << '/users/{userId}/media'
23
23
  _query_builder = APIHelper.append_url_with_template_parameters(
24
24
  _query_builder,
25
- 'userId' => user_id
25
+ 'userId' => { 'value' => user_id, 'encode' => true }
26
26
  )
27
27
  _query_url = APIHelper.clean_url _query_builder
28
28
 
@@ -76,8 +76,10 @@ module Messaging
76
76
 
77
77
  # Return appropriate response type.
78
78
  decoded = APIHelper.json_deserialize(_response.raw_body)
79
- ApiResponse.new(_response,
80
- data: decoded.map { |element| Media.from_hash(element) })
79
+ ApiResponse.new(
80
+ _response,
81
+ data: decoded.map { |element| Media.from_hash(element) }
82
+ )
81
83
  end
82
84
 
83
85
  # getMedia
@@ -91,8 +93,8 @@ module Messaging
91
93
  _query_builder << '/users/{userId}/media/{mediaId}'
92
94
  _query_builder = APIHelper.append_url_with_template_parameters(
93
95
  _query_builder,
94
- 'userId' => user_id,
95
- 'mediaId' => media_id
96
+ 'userId' => { 'value' => user_id, 'encode' => true },
97
+ 'mediaId' => { 'value' => media_id, 'encode' => true }
96
98
  )
97
99
  _query_url = APIHelper.clean_url _query_builder
98
100
 
@@ -138,7 +140,9 @@ module Messaging
138
140
  validate_response(_response)
139
141
 
140
142
  # Return appropriate response type.
141
- ApiResponse.new(_response, data: _response.raw_body)
143
+ ApiResponse.new(
144
+ _response, data: _response.raw_body
145
+ )
142
146
  end
143
147
 
144
148
  # uploadMedia
@@ -161,8 +165,8 @@ module Messaging
161
165
  _query_builder << '/users/{userId}/media/{mediaId}'
162
166
  _query_builder = APIHelper.append_url_with_template_parameters(
163
167
  _query_builder,
164
- 'userId' => user_id,
165
- 'mediaId' => media_id
168
+ 'userId' => { 'value' => user_id, 'encode' => true },
169
+ 'mediaId' => { 'value' => media_id, 'encode' => true }
166
170
  )
167
171
  _query_url = APIHelper.clean_url _query_builder
168
172
 
@@ -240,8 +244,8 @@ module Messaging
240
244
  _query_builder << '/users/{userId}/media/{mediaId}'
241
245
  _query_builder = APIHelper.append_url_with_template_parameters(
242
246
  _query_builder,
243
- 'userId' => user_id,
244
- 'mediaId' => media_id
247
+ 'userId' => { 'value' => user_id, 'encode' => true },
248
+ 'mediaId' => { 'value' => media_id, 'encode' => true }
245
249
  )
246
250
  _query_url = APIHelper.clean_url _query_builder
247
251
 
@@ -301,7 +305,7 @@ module Messaging
301
305
  _query_builder << '/users/{userId}/messages'
302
306
  _query_builder = APIHelper.append_url_with_template_parameters(
303
307
  _query_builder,
304
- 'userId' => user_id
308
+ 'userId' => { 'value' => user_id, 'encode' => true }
305
309
  )
306
310
  _query_url = APIHelper.clean_url _query_builder
307
311
 
@@ -356,7 +360,9 @@ module Messaging
356
360
 
357
361
  # Return appropriate response type.
358
362
  decoded = APIHelper.json_deserialize(_response.raw_body)
359
- ApiResponse.new(_response, data: BandwidthMessage.from_hash(decoded))
363
+ ApiResponse.new(
364
+ _response, data: BandwidthMessage.from_hash(decoded)
365
+ )
360
366
  end
361
367
  end
362
368
  end
@@ -13,7 +13,7 @@ module Bandwidth
13
13
  @http_call_back = http_call_back
14
14
 
15
15
  @global_headers = {
16
- 'user-agent' => 'ruby-sdk-refs/tags/ruby3.7.0'
16
+ 'user-agent' => 'ruby-sdk-refs/tags/ruby3.12.0'
17
17
  }
18
18
  end
19
19
 
@@ -17,6 +17,7 @@ module Bandwidth
17
17
 
18
18
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
19
19
  backoff_factor: 1, environment: Environment::PRODUCTION,
20
+ base_url: 'https://www.example.com',
20
21
  messaging_basic_auth_user_name: 'TODO: Replace',
21
22
  messaging_basic_auth_password: 'TODO: Replace',
22
23
  two_factor_auth_basic_auth_user_name: 'TODO: Replace',
@@ -32,6 +33,7 @@ module Bandwidth
32
33
  retry_interval: retry_interval,
33
34
  backoff_factor: backoff_factor,
34
35
  environment: environment,
36
+ base_url: base_url,
35
37
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
36
38
  messaging_basic_auth_password: messaging_basic_auth_password,
37
39
  two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
@@ -23,7 +23,7 @@ module TwoFactorAuth
23
23
  _query_builder << '/accounts/{accountId}/code/voice'
24
24
  _query_builder = APIHelper.append_url_with_template_parameters(
25
25
  _query_builder,
26
- 'accountId' => account_id
26
+ 'accountId' => { 'value' => account_id, 'encode' => true }
27
27
  )
28
28
  _query_url = APIHelper.clean_url _query_builder
29
29
 
@@ -53,8 +53,9 @@ module TwoFactorAuth
53
53
 
54
54
  # Return appropriate response type.
55
55
  decoded = APIHelper.json_deserialize(_response.raw_body)
56
- ApiResponse.new(_response,
57
- data: TwoFactorVoiceResponse.from_hash(decoded))
56
+ ApiResponse.new(
57
+ _response, data: TwoFactorVoiceResponse.from_hash(decoded)
58
+ )
58
59
  end
59
60
 
60
61
  # Two-Factor authentication with Bandwidth messaging services
@@ -69,7 +70,7 @@ module TwoFactorAuth
69
70
  _query_builder << '/accounts/{accountId}/code/messaging'
70
71
  _query_builder = APIHelper.append_url_with_template_parameters(
71
72
  _query_builder,
72
- 'accountId' => account_id
73
+ 'accountId' => { 'value' => account_id, 'encode' => true }
73
74
  )
74
75
  _query_url = APIHelper.clean_url _query_builder
75
76
 
@@ -99,8 +100,10 @@ module TwoFactorAuth
99
100
 
100
101
  # Return appropriate response type.
101
102
  decoded = APIHelper.json_deserialize(_response.raw_body)
102
- ApiResponse.new(_response,
103
- data: TwoFactorMessagingResponse.from_hash(decoded))
103
+ ApiResponse.new(
104
+ _response,
105
+ data: TwoFactorMessagingResponse.from_hash(decoded)
106
+ )
104
107
  end
105
108
 
106
109
  # Verify a previously sent two-factor authentication code
@@ -115,7 +118,7 @@ module TwoFactorAuth
115
118
  _query_builder << '/accounts/{accountId}/code/verify'
116
119
  _query_builder = APIHelper.append_url_with_template_parameters(
117
120
  _query_builder,
118
- 'accountId' => account_id
121
+ 'accountId' => { 'value' => account_id, 'encode' => true }
119
122
  )
120
123
  _query_url = APIHelper.clean_url _query_builder
121
124
 
@@ -145,8 +148,10 @@ module TwoFactorAuth
145
148
 
146
149
  # Return appropriate response type.
147
150
  decoded = APIHelper.json_deserialize(_response.raw_body)
148
- ApiResponse.new(_response,
149
- data: TwoFactorVerifyCodeResponse.from_hash(decoded))
151
+ ApiResponse.new(
152
+ _response,
153
+ data: TwoFactorVerifyCodeResponse.from_hash(decoded)
154
+ )
150
155
  end
151
156
  end
152
157
  end
@@ -13,7 +13,7 @@ module Bandwidth
13
13
  @http_call_back = http_call_back
14
14
 
15
15
  @global_headers = {
16
- 'user-agent' => 'ruby-sdk-refs/tags/ruby3.7.0'
16
+ 'user-agent' => 'ruby-sdk-refs/tags/ruby3.12.0'
17
17
  }
18
18
  end
19
19
 
@@ -14,7 +14,13 @@ module Bandwidth
14
14
  'bridgeTargetCompleteMethod' => bridge_target_complete_method,
15
15
  'username' => username,
16
16
  'password' => password,
17
- 'tag' => tag
17
+ 'tag' => tag,
18
+ 'bridgeCompleteFallbackUrl' => bridge_complete_fallback_url,
19
+ 'bridgeCompleteFallbackMethod' => bridge_complete_fallback_method,
20
+ 'bridgeTargetCompleteFallbackUrl' => bridge_target_complete_fallback_url,
21
+ 'bridgeTargetCompleteFallbackMethod' => bridge_target_complete_fallback_method,
22
+ 'fallbackUsername' => fallback_username,
23
+ 'fallbackPassword' => fallback_password
18
24
  }))
19
25
  end
20
26
  end
@@ -20,7 +20,11 @@ module Bandwidth
20
20
  'conferenceEventMethod' => conference_event_method,
21
21
  'username' => username,
22
22
  'password' => password,
23
- 'tag' => tag
23
+ 'tag' => tag,
24
+ 'conferenceEventFallbackUrl' => conference_event_fallback_url,
25
+ 'conferenceEventFallbackMethod' => conference_event_fallback_method,
26
+ 'fallbackUsername' => fallback_username,
27
+ 'fallbackPassword' => fallback_password
24
28
  }))
25
29
  end
26
30
  end
@@ -17,7 +17,11 @@ module Bandwidth
17
17
  'username' => username,
18
18
  'password' => password,
19
19
  'firstDigitTimeout' => first_digit_timeout,
20
- 'repeatCount' => repeat_count
20
+ 'repeatCount' => repeat_count,
21
+ 'gatherFallbackUrl' => gather_fallback_url,
22
+ 'gatherFallbackMethod' => gather_fallback_method,
23
+ 'fallbackUsername' => fallback_username,
24
+ 'fallbackPassword' => fallback_password
21
25
  })) do
22
26
  def embedded_xml(xml, property, type)
23
27
  if property
@@ -12,7 +12,11 @@ module Bandwidth
12
12
  'transferDisconnectMethod' => transfer_disconnect_method,
13
13
  'username' => username,
14
14
  'password' => password,
15
- 'tag' => tag
15
+ 'tag' => tag,
16
+ 'transferAnswerFallbackUrl' => transfer_answer_fallback_url,
17
+ 'transferAnswerFallbackMethod' => transfer_answer_fallback_method,
18
+ 'fallbackUsername' => fallback_username,
19
+ 'fallbackPassword' => fallback_password
16
20
  }))
17
21
  end
18
22
  end
@@ -21,7 +21,11 @@ module Bandwidth
21
21
  'transcribe' => transcribe,
22
22
  'transcriptionAvailableUrl' => transcription_available_url,
23
23
  'transcriptionAvailableMethod' => transcription_available_method,
24
- 'silenceTimeout' => silence_timeout
24
+ 'silenceTimeout' => silence_timeout,
25
+ 'recordCompleteFallbackUrl' => record_complete_fallback_url,
26
+ 'recordCompleteFallbackMethod' => record_complete_fallback_method,
27
+ 'fallbackUsername' => fallback_username,
28
+ 'fallbackPassword' => fallback_password
25
29
  }))
26
30
  end
27
31
  end
@@ -12,7 +12,11 @@ module Bandwidth
12
12
  'redirectMethod' => redirect_method,
13
13
  'tag' => tag,
14
14
  'username' => username,
15
- 'password' => password
15
+ 'password' => password,
16
+ 'redirectFallbackUrl' => redirect_fallback_url,
17
+ 'redirectFallbackMethod' => redirect_fallback_method,
18
+ 'fallbackUsername' => fallback_username,
19
+ 'fallbackPassword' => fallback_password
16
20
  }))
17
21
  end
18
22
  end