bandwidth-sdk 3.7.0 → 3.12.0

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