bandwidth-sdk 11.0.0 → 11.1.1
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/Gemfile.lock +4 -4
- data/README.md +9 -2
- data/bandwidth.yml +94 -0
- data/coverage/.last_run.json +1 -1
- data/coverage/.resultset.json +260 -131
- data/coverage/index.html +2437 -1018
- data/custom_templates/README.mustache +8 -2
- data/docs/CallsApi.md +87 -0
- data/lib/bandwidth-sdk/api/calls_api.rb +92 -0
- data/lib/bandwidth-sdk/configuration.rb +6 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/gather.rb +1 -1
- data/lib/bandwidth-sdk/version.rb +1 -1
- data/spec/api/calls_api_spec.rb +31 -0
- data/spec/integration/calls_api_integration_spec.rb +25 -18
- data/spec/models/bxml/verbs/forward_spec.rb +2 -2
- data/spec/models/bxml/verbs/gather_spec.rb +5 -5
- data/spec/models/bxml/verbs/transfer_spec.rb +5 -5
- metadata +38 -38
@@ -12,9 +12,9 @@
|
|
12
12
|
| Ubuntu 20.04 | 2.7, 3.0, 3.1, 3.2 |
|
13
13
|
| Ubuntu 22.04 | 2.7, 3.0, 3.1, 3.2 |
|
14
14
|
|
15
|
-
{{moduleName}} - the Ruby gem for the {{appName}}
|
15
|
+
{{moduleName}} - the Ruby gem for the {{appName}} SDK
|
16
16
|
|
17
|
-
|
17
|
+
### Generated with the command:
|
18
18
|
`openapi-generator generate -g ruby -i bandwidth.yml -c openapi-config.yml -o ./`
|
19
19
|
|
20
20
|
{{#appDescriptionWithNewLines}}
|
@@ -35,6 +35,12 @@ For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
|
|
35
35
|
|
36
36
|
## Installation
|
37
37
|
|
38
|
+
### Install from RubyGems
|
39
|
+
|
40
|
+
```shell
|
41
|
+
gem install {{{gemName}}}
|
42
|
+
```
|
43
|
+
|
38
44
|
### Build a gem
|
39
45
|
|
40
46
|
To build the Ruby code into a gem:
|
data/docs/CallsApi.md
CHANGED
@@ -6,6 +6,7 @@ All URIs are relative to *http://localhost*
|
|
6
6
|
| ------ | ------------ | ----------- |
|
7
7
|
| [**create_call**](CallsApi.md#create_call) | **POST** /accounts/{accountId}/calls | Create Call |
|
8
8
|
| [**get_call_state**](CallsApi.md#get_call_state) | **GET** /accounts/{accountId}/calls/{callId} | Get Call State Information |
|
9
|
+
| [**list_calls**](CallsApi.md#list_calls) | **GET** /accounts/{accountId}/calls | Get Calls |
|
9
10
|
| [**update_call**](CallsApi.md#update_call) | **POST** /accounts/{accountId}/calls/{callId} | Update Call |
|
10
11
|
| [**update_call_bxml**](CallsApi.md#update_call_bxml) | **PUT** /accounts/{accountId}/calls/{callId}/bxml | Update Call BXML |
|
11
12
|
|
@@ -154,6 +155,92 @@ end
|
|
154
155
|
- **Accept**: application/json
|
155
156
|
|
156
157
|
|
158
|
+
## list_calls
|
159
|
+
|
160
|
+
> <Array<CallState>> list_calls(account_id, opts)
|
161
|
+
|
162
|
+
Get Calls
|
163
|
+
|
164
|
+
Returns a max of 10000 calls, sorted by `createdTime` from oldest to newest. **NOTE:** If the number of calls in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel=\"next\"`) will be returned in the response. The url can be used to retrieve the next page of call records. Also, call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an empty array [] in response.
|
165
|
+
|
166
|
+
### Examples
|
167
|
+
|
168
|
+
```ruby
|
169
|
+
require 'time'
|
170
|
+
require 'bandwidth-sdk'
|
171
|
+
# setup authorization
|
172
|
+
Bandwidth.configure do |config|
|
173
|
+
# Configure HTTP basic authorization: Basic
|
174
|
+
config.username = 'YOUR USERNAME'
|
175
|
+
config.password = 'YOUR PASSWORD'
|
176
|
+
end
|
177
|
+
|
178
|
+
api_instance = Bandwidth::CallsApi.new
|
179
|
+
account_id = '9900000' # String | Your Bandwidth Account ID.
|
180
|
+
opts = {
|
181
|
+
to: '%2b19195551234', # String | Filter results by the `to` field.
|
182
|
+
from: '%2b19195554321', # String | Filter results by the `from` field.
|
183
|
+
min_start_time: '2022-06-21T19:13:21Z', # String | Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format).
|
184
|
+
max_start_time: '2022-06-21T19:13:21Z', # String | Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format).
|
185
|
+
disconnect_cause: 'hangup', # String | Filter results to calls with specified call Disconnect Cause.
|
186
|
+
page_size: 500, # Integer | Specifies the max number of calls that will be returned.
|
187
|
+
page_token: 'page_token_example' # String | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
|
188
|
+
}
|
189
|
+
|
190
|
+
begin
|
191
|
+
# Get Calls
|
192
|
+
result = api_instance.list_calls(account_id, opts)
|
193
|
+
p result
|
194
|
+
rescue Bandwidth::ApiError => e
|
195
|
+
puts "Error when calling CallsApi->list_calls: #{e}"
|
196
|
+
end
|
197
|
+
```
|
198
|
+
|
199
|
+
#### Using the list_calls_with_http_info variant
|
200
|
+
|
201
|
+
This returns an Array which contains the response data, status code and headers.
|
202
|
+
|
203
|
+
> <Array(<Array<CallState>>, Integer, Hash)> list_calls_with_http_info(account_id, opts)
|
204
|
+
|
205
|
+
```ruby
|
206
|
+
begin
|
207
|
+
# Get Calls
|
208
|
+
data, status_code, headers = api_instance.list_calls_with_http_info(account_id, opts)
|
209
|
+
p status_code # => 2xx
|
210
|
+
p headers # => { ... }
|
211
|
+
p data # => <Array<CallState>>
|
212
|
+
rescue Bandwidth::ApiError => e
|
213
|
+
puts "Error when calling CallsApi->list_calls_with_http_info: #{e}"
|
214
|
+
end
|
215
|
+
```
|
216
|
+
|
217
|
+
### Parameters
|
218
|
+
|
219
|
+
| Name | Type | Description | Notes |
|
220
|
+
| ---- | ---- | ----------- | ----- |
|
221
|
+
| **account_id** | **String** | Your Bandwidth Account ID. | |
|
222
|
+
| **to** | **String** | Filter results by the `to` field. | [optional] |
|
223
|
+
| **from** | **String** | Filter results by the `from` field. | [optional] |
|
224
|
+
| **min_start_time** | **String** | Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format). | [optional] |
|
225
|
+
| **max_start_time** | **String** | Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format). | [optional] |
|
226
|
+
| **disconnect_cause** | **String** | Filter results to calls with specified call Disconnect Cause. | [optional] |
|
227
|
+
| **page_size** | **Integer** | Specifies the max number of calls that will be returned. | [optional][default to 1000] |
|
228
|
+
| **page_token** | **String** | Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description. | [optional] |
|
229
|
+
|
230
|
+
### Return type
|
231
|
+
|
232
|
+
[**Array<CallState>**](CallState.md)
|
233
|
+
|
234
|
+
### Authorization
|
235
|
+
|
236
|
+
[Basic](../README.md#Basic)
|
237
|
+
|
238
|
+
### HTTP request headers
|
239
|
+
|
240
|
+
- **Content-Type**: Not defined
|
241
|
+
- **Accept**: application/json
|
242
|
+
|
243
|
+
|
157
244
|
## update_call
|
158
245
|
|
159
246
|
> update_call(account_id, call_id, update_call)
|
@@ -162,6 +162,98 @@ module Bandwidth
|
|
162
162
|
return data, status_code, headers
|
163
163
|
end
|
164
164
|
|
165
|
+
# Get Calls
|
166
|
+
# Returns a max of 10000 calls, sorted by `createdTime` from oldest to newest. **NOTE:** If the number of calls in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel=\"next\"`) will be returned in the response. The url can be used to retrieve the next page of call records. Also, call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an empty array [] in response.
|
167
|
+
# @param account_id [String] Your Bandwidth Account ID.
|
168
|
+
# @param [Hash] opts the optional parameters
|
169
|
+
# @option opts [String] :to Filter results by the `to` field.
|
170
|
+
# @option opts [String] :from Filter results by the `from` field.
|
171
|
+
# @option opts [String] :min_start_time Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format).
|
172
|
+
# @option opts [String] :max_start_time Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format).
|
173
|
+
# @option opts [String] :disconnect_cause Filter results to calls with specified call Disconnect Cause.
|
174
|
+
# @option opts [Integer] :page_size Specifies the max number of calls that will be returned. (default to 1000)
|
175
|
+
# @option opts [String] :page_token Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
|
176
|
+
# @return [Array<CallState>]
|
177
|
+
def list_calls(account_id, opts = {})
|
178
|
+
data, _status_code, _headers = list_calls_with_http_info(account_id, opts)
|
179
|
+
data
|
180
|
+
end
|
181
|
+
|
182
|
+
# Get Calls
|
183
|
+
# Returns a max of 10000 calls, sorted by `createdTime` from oldest to newest. **NOTE:** If the number of calls in the account is bigger than `pageSize`, a `Link` header (with format `<{url}>; rel=\"next\"`) will be returned in the response. The url can be used to retrieve the next page of call records. Also, call information is kept for 7 days after the calls are hung up. If you attempt to retrieve information for a call that is older than 7 days, you will get an empty array [] in response.
|
184
|
+
# @param account_id [String] Your Bandwidth Account ID.
|
185
|
+
# @param [Hash] opts the optional parameters
|
186
|
+
# @option opts [String] :to Filter results by the `to` field.
|
187
|
+
# @option opts [String] :from Filter results by the `from` field.
|
188
|
+
# @option opts [String] :min_start_time Filter results to calls which have a `startTime` after or including `minStartTime` (in ISO8601 format).
|
189
|
+
# @option opts [String] :max_start_time Filter results to calls which have a `startTime` before or including `maxStartTime` (in ISO8601 format).
|
190
|
+
# @option opts [String] :disconnect_cause Filter results to calls with specified call Disconnect Cause.
|
191
|
+
# @option opts [Integer] :page_size Specifies the max number of calls that will be returned. (default to 1000)
|
192
|
+
# @option opts [String] :page_token Not intended for explicit use. To use pagination, follow the links in the `Link` header of the response, as indicated in the endpoint description.
|
193
|
+
# @return [Array<(Array<CallState>, Integer, Hash)>] Array<CallState> data, response status code and response headers
|
194
|
+
def list_calls_with_http_info(account_id, opts = {})
|
195
|
+
if @api_client.config.debugging
|
196
|
+
@api_client.config.logger.debug 'Calling API: CallsApi.list_calls ...'
|
197
|
+
end
|
198
|
+
# verify the required parameter 'account_id' is set
|
199
|
+
if @api_client.config.client_side_validation && account_id.nil?
|
200
|
+
fail ArgumentError, "Missing the required parameter 'account_id' when calling CallsApi.list_calls"
|
201
|
+
end
|
202
|
+
if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000
|
203
|
+
fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling CallsApi.list_calls, must be smaller than or equal to 10000.'
|
204
|
+
end
|
205
|
+
|
206
|
+
if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] < 1
|
207
|
+
fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling CallsApi.list_calls, must be greater than or equal to 1.'
|
208
|
+
end
|
209
|
+
|
210
|
+
# resource path
|
211
|
+
local_var_path = '/accounts/{accountId}/calls'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
|
212
|
+
|
213
|
+
# query parameters
|
214
|
+
query_params = opts[:query_params] || {}
|
215
|
+
query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
|
216
|
+
query_params[:'from'] = opts[:'from'] if !opts[:'from'].nil?
|
217
|
+
query_params[:'minStartTime'] = opts[:'min_start_time'] if !opts[:'min_start_time'].nil?
|
218
|
+
query_params[:'maxStartTime'] = opts[:'max_start_time'] if !opts[:'max_start_time'].nil?
|
219
|
+
query_params[:'disconnectCause'] = opts[:'disconnect_cause'] if !opts[:'disconnect_cause'].nil?
|
220
|
+
query_params[:'pageSize'] = opts[:'page_size'] if !opts[:'page_size'].nil?
|
221
|
+
query_params[:'pageToken'] = opts[:'page_token'] if !opts[:'page_token'].nil?
|
222
|
+
|
223
|
+
# header parameters
|
224
|
+
header_params = opts[:header_params] || {}
|
225
|
+
# HTTP header 'Accept' (if needed)
|
226
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
227
|
+
|
228
|
+
# form parameters
|
229
|
+
form_params = opts[:form_params] || {}
|
230
|
+
|
231
|
+
# http body (model)
|
232
|
+
post_body = opts[:debug_body]
|
233
|
+
|
234
|
+
# return_type
|
235
|
+
return_type = opts[:debug_return_type] || 'Array<CallState>'
|
236
|
+
|
237
|
+
# auth_names
|
238
|
+
auth_names = opts[:debug_auth_names] || ['Basic']
|
239
|
+
|
240
|
+
new_options = opts.merge(
|
241
|
+
:operation => :"CallsApi.list_calls",
|
242
|
+
:header_params => header_params,
|
243
|
+
:query_params => query_params,
|
244
|
+
:form_params => form_params,
|
245
|
+
:body => post_body,
|
246
|
+
:auth_names => auth_names,
|
247
|
+
:return_type => return_type
|
248
|
+
)
|
249
|
+
|
250
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
251
|
+
if @api_client.config.debugging
|
252
|
+
@api_client.config.logger.debug "API called: CallsApi#list_calls\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
253
|
+
end
|
254
|
+
return data, status_code, headers
|
255
|
+
end
|
256
|
+
|
165
257
|
# Update Call
|
166
258
|
# Interrupts and redirects a call to a different URL that should return a BXML document.
|
167
259
|
# @param account_id [String] Your Bandwidth Account ID.
|
@@ -272,6 +272,12 @@ module Bandwidth
|
|
272
272
|
description: "Production",
|
273
273
|
}
|
274
274
|
],
|
275
|
+
"CallsApi.list_calls": [
|
276
|
+
{
|
277
|
+
url: "https://voice.bandwidth.com/api/v2",
|
278
|
+
description: "Production",
|
279
|
+
}
|
280
|
+
],
|
275
281
|
"CallsApi.update_call": [
|
276
282
|
{
|
277
283
|
url: "https://voice.bandwidth.com/api/v2",
|
@@ -21,7 +21,7 @@ module Bandwidth
|
|
21
21
|
max_digits: 'maxDigits', # Optional [Number]: Max number of digits to collect. Default value is 50. Range: decimal values between 1 - 50.
|
22
22
|
inter_digit_timeout: 'interDigitTimeout', # Optional [Number]: Time (in seconds) allowed between digit presses before automatically terminating the Gather. Default value is 5. Range: decimal values between 1 - 60.
|
23
23
|
first_digit_timeout: 'firstDigitTimeout', # Optional [Number]: Time (in seconds) to pause after any audio from nested <SpeakSentence> or <PlayAudio> verb is played (in seconds) before terminating the Gather. Default value is 5. Range: decimal values between 0 - 60.
|
24
|
-
repeat_count: '
|
24
|
+
repeat_count: 'repeatCount', # Optional [Number]: The number of times the audio prompt should be played if no digits are pressed. For example, if this value is 3, the nested audio clip will be played a maximum of three times. The delay between repetitions will be equal to first_digit_timeout. Default value is 1. repeatCount * number of verbs must not be greater than 20.
|
25
25
|
}
|
26
26
|
end
|
27
27
|
|
data/spec/api/calls_api_spec.rb
CHANGED
@@ -29,6 +29,8 @@ describe 'CallsApi' do
|
|
29
29
|
let(:create_call_headers_stub) { { 'content-type' => 'application/json' } }
|
30
30
|
let(:create_call_body_stub) { "{\"applicationId\":\"#{BW_VOICE_APPLICATION_ID}\",\"accountId\":\"#{BW_ACCOUNT_ID}\",\"callId\":\"#{call_id}\",\"to\":\"#{USER_NUMBER}\",\"from\":\"#{BW_NUMBER}\",\"enqueuedTime\":\"#{enqueued_time}\",\"callUrl\":\"#{call_url}\",\"callTimeout\":#{call_timeout},\"callbackTimeout\":#{callback_timeout},\"tag\":\"#{tag}\",\"answerMethod\":\"#{answer_method}\",\"answerUrl\":\"#{answer_url}\",\"answerFallbackUrl\":\"#{answer_fallback_url}\",\"answerFallbackMethod\":\"#{answer_fallback_method}\",\"disconnectMethod\":\"#{disconnect_method}\",\"disconnectUrl\":\"#{disconnect_url}\",\"priority\":#{priority}}" }
|
31
31
|
let(:create_call_bad_request_stub) { '{"type":"validation","description":"Invalid to: must be a valid SIP URI or an E164 TN"}' }
|
32
|
+
let(:get_calls_headers_stub) { { 'content-type' => 'application/json' } }
|
33
|
+
let(:get_calls_body_stub) { "[{\"applicationId\":\"#{BW_VOICE_APPLICATION_ID}\",\"accountId\":\"#{BW_ACCOUNT_ID}\",\"callId\":\"#{call_id}\",\"to\":\"#{USER_NUMBER}\",\"from\":\"#{BW_NUMBER}\",\"direction\":\"#{direction}\",\"state\":\"#{state}\",\"stirShaken\":#{stir_shaken},\"startTime\":\"#{start_time}\",\"endTime\":\"#{end_time}\",\"disconnectCause\":\"#{disconnect_cause}\",\"errorMessage\":\"#{error_message}\",\"errorId\":\"#{error_id}\",\"lastUpdate\":\"#{last_update}\"}]" }
|
32
34
|
let(:get_call_state_headers_stub) { { 'content-type' => 'application/json' } }
|
33
35
|
let(:get_call_state_body_stub) { "{\"applicationId\":\"#{BW_VOICE_APPLICATION_ID}\",\"accountId\":\"#{BW_ACCOUNT_ID}\",\"callId\":\"#{call_id}\",\"to\":\"#{USER_NUMBER}\",\"from\":\"#{BW_NUMBER}\",\"direction\":\"#{direction}\",\"state\":\"#{state}\",\"stirShaken\":#{stir_shaken},\"enqueuedTime\":\"#{enqueued_time}\",\"startTime\":\"#{start_time}\",\"endTime\":\"#{end_time}\",\"disconnectCause\":\"#{disconnect_cause}\",\"errorMessage\":\"#{error_message}\",\"errorId\":\"#{error_id}\",\"lastUpdate\":\"#{last_update}\"}" }
|
34
36
|
let(:get_call_state_not_found_stub) { '{"type":"validation","description":"Call does-not-exist was not found."}' }
|
@@ -119,6 +121,35 @@ describe 'CallsApi' do
|
|
119
121
|
end
|
120
122
|
end
|
121
123
|
|
124
|
+
# Get Calls
|
125
|
+
describe '#list_calls' do
|
126
|
+
it 'gets a list of calls' do
|
127
|
+
stub_request(:get, "https://voice.bandwidth.com/api/v2/accounts/#{BW_ACCOUNT_ID}/calls").
|
128
|
+
to_return(status: 200, headers: get_calls_headers_stub, body: get_calls_body_stub)
|
129
|
+
|
130
|
+
data, status_code, headers = @calls_api_instance.list_calls_with_http_info(BW_ACCOUNT_ID)
|
131
|
+
|
132
|
+
expect(status_code).to eq(200)
|
133
|
+
expect(headers).to eq(get_calls_headers_stub)
|
134
|
+
expect(data).to be_instance_of(Array)
|
135
|
+
expect(data[0]).to be_instance_of(Bandwidth::CallState)
|
136
|
+
expect(data[0].application_id).to eq(BW_VOICE_APPLICATION_ID)
|
137
|
+
expect(data[0].account_id).to eq(BW_ACCOUNT_ID)
|
138
|
+
expect(data[0].call_id).to eq(call_id)
|
139
|
+
expect(data[0].to).to eq(USER_NUMBER)
|
140
|
+
expect(data[0].from).to eq(BW_NUMBER)
|
141
|
+
expect(data[0].direction).to eq(direction)
|
142
|
+
expect(data[0].stir_shaken).to eq(stir_shaken)
|
143
|
+
expect(data[0].state).to eq(state)
|
144
|
+
expect(data[0].start_time).to eq(Time.parse(start_time))
|
145
|
+
expect(data[0].end_time).to eq(Time.parse(end_time))
|
146
|
+
expect(data[0].disconnect_cause).to eq(disconnect_cause)
|
147
|
+
expect(data[0].error_message).to eq(error_message)
|
148
|
+
expect(data[0].error_id).to eq(error_id)
|
149
|
+
expect(data[0].last_update).to eq(Time.parse(last_update))
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
122
153
|
# Get Call State Information
|
123
154
|
describe '#get_call_state' do
|
124
155
|
it 'gets the call state' do
|
@@ -81,27 +81,34 @@ describe 'CallsApi Integration Tests' do
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
+
# Get Calls
|
85
|
+
describe '#list_calls' do
|
86
|
+
it 'gets a list of calls' do
|
87
|
+
data, status_code, headers = @calls_api_instance.list_calls_with_http_info(BW_ACCOUNT_ID)
|
88
|
+
|
89
|
+
expect(status_code).to eq(200)
|
90
|
+
expect(data).to be_instance_of(Array)
|
91
|
+
expect(data[0]).to be_instance_of(Bandwidth::CallState)
|
92
|
+
expect(data[0].application_id.length).to eq(36)
|
93
|
+
expect(data[0].account_id).to eq(BW_ACCOUNT_ID)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
84
97
|
# Get Call State Information
|
85
98
|
describe 'get_call_state' do
|
86
99
|
it 'gets the call state' do
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
expect(data.direction).to eq(direction)
|
100
|
-
rescue Bandwidth::ApiError => e
|
101
|
-
if e.code != 404
|
102
|
-
raise e
|
103
|
-
end
|
104
|
-
end
|
100
|
+
sleep(40) # wait 40s for voice API to update call status
|
101
|
+
data, status_code, headers = @calls_api_instance.get_call_state_with_http_info(BW_ACCOUNT_ID, $call_info_id)
|
102
|
+
|
103
|
+
expect(status_code).to eq(200)
|
104
|
+
expect(data).to be_instance_of(Bandwidth::CallState)
|
105
|
+
expect(data.call_id).to eq($call_info_id)
|
106
|
+
expect(data.account_id).to eq(BW_ACCOUNT_ID)
|
107
|
+
expect(data.application_id).to eq(BW_VOICE_APPLICATION_ID)
|
108
|
+
expect(data.start_time).to be_instance_of(Time).or be_nil
|
109
|
+
expect(data.last_update).to be_instance_of(Time)
|
110
|
+
expect(data.state).to be_instance_of(String)
|
111
|
+
expect(data.direction).to eq(direction)
|
105
112
|
end
|
106
113
|
end
|
107
114
|
|
@@ -5,7 +5,7 @@ describe 'Bandwidth::Bxml::Forward' do
|
|
5
5
|
to: '+19195551234',
|
6
6
|
from: '+19195554321',
|
7
7
|
call_timeout: 5,
|
8
|
-
diversion_treatment: '
|
8
|
+
diversion_treatment: 'propagate',
|
9
9
|
diversion_reason: 'user-busy',
|
10
10
|
uui: '93d6f3c0be5845960b744fa28015d8ede84bd1a4;encoding=base64,asdf;encoding=jwt'
|
11
11
|
}
|
@@ -31,7 +31,7 @@ describe 'Bandwidth::Bxml::Forward' do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'tests the to_bxml method of the Forward instance' do
|
34
|
-
expected = "\n<Forward to=\"+19195551234\" from=\"+19195554321\" callTimeout=\"5\" diversionTreatment=\"
|
34
|
+
expected = "\n<Forward to=\"+19195551234\" from=\"+19195554321\" callTimeout=\"5\" diversionTreatment=\"propagate\" diversionReason=\"user-busy\" uui=\"93d6f3c0be5845960b744fa28015d8ede84bd1a4;encoding=base64,asdf;encoding=jwt\"/>\n"
|
35
35
|
expect(instance.to_bxml).to eq(expected)
|
36
36
|
end
|
37
37
|
|
@@ -51,13 +51,13 @@ describe 'Bandwidth::Bxml::Gather' do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
it 'tests the to_bxml method of the Gather instance' do
|
54
|
-
expected = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\"
|
54
|
+
expected = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\" repeatCount=\"5\"/>\n"
|
55
55
|
expect(instance.to_bxml).to eq(expected)
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'tests the set_attributes method of the Gather instance' do
|
59
59
|
instance.set_attributes(new_attributes)
|
60
|
-
expected = "\n<Gather gatherUrl=\"https://new.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://new.com\" gatherFallbackMethod=\"GET\" username=\"new_username\" password=\"new_password\" fallbackUsername=\"new_fallback_username\" fallbackPassword=\"new_fallback_password\" tag=\"new_tag\" terminatingDigits=\"10\" maxDigits=\"10\" interDigitTimeout=\"10\" firstDigitTimeout=\"10\"
|
60
|
+
expected = "\n<Gather gatherUrl=\"https://new.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://new.com\" gatherFallbackMethod=\"GET\" username=\"new_username\" password=\"new_password\" fallbackUsername=\"new_fallback_username\" fallbackPassword=\"new_fallback_password\" tag=\"new_tag\" terminatingDigits=\"10\" maxDigits=\"10\" interDigitTimeout=\"10\" firstDigitTimeout=\"10\" repeatCount=\"10\"/>\n"
|
61
61
|
expect(instance.to_bxml).to eq(expected)
|
62
62
|
end
|
63
63
|
end
|
@@ -69,16 +69,16 @@ describe 'Bandwidth::Bxml::Gather' do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
it 'tests the to_bxml method of the nested Gather instance' do
|
72
|
-
expected = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\"
|
72
|
+
expected = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\" repeatCount=\"5\">\n <PlayAudio>https://audio.url/audio1.wav</PlayAudio>\n</Gather>\n"
|
73
73
|
expect(instance_nested.to_bxml).to eq(expected)
|
74
74
|
end
|
75
75
|
|
76
76
|
it 'tests the add_verb method of the nested Gather instance' do
|
77
|
-
expected_single = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\"
|
77
|
+
expected_single = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\" repeatCount=\"5\">\n <PlayAudio>https://audio.url/audio1.wav</PlayAudio>\n <SpeakSentence><lang xml:lang=\"es-MX\">Hola</lang>ruby speak sentence <emphasis>SSML test</emphasis></SpeakSentence>\n</Gather>\n"
|
78
78
|
instance_nested.add_audio_verb(speak_sentence)
|
79
79
|
expect(instance_nested.to_bxml).to eq(expected_single)
|
80
80
|
|
81
|
-
expected_multiple = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\"
|
81
|
+
expected_multiple = "\n<Gather gatherUrl=\"https://initial.com\" gatherMethod=\"POST\" gatherFallbackUrl=\"https://initial.com\" gatherFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" terminatingDigits=\"5\" maxDigits=\"5\" interDigitTimeout=\"5\" firstDigitTimeout=\"5\" repeatCount=\"5\">\n <PlayAudio>https://audio.url/audio1.wav</PlayAudio>\n <SpeakSentence><lang xml:lang=\"es-MX\">Hola</lang>ruby speak sentence <emphasis>SSML test</emphasis></SpeakSentence>\n <SpeakSentence><lang xml:lang=\"es-MX\">Hola</lang>ruby speak sentence <emphasis>SSML test</emphasis></SpeakSentence>\n <PlayAudio>https://audio.url/audio1.wav</PlayAudio>\n</Gather>\n"
|
82
82
|
instance_nested.add_audio_verb([speak_sentence, play_audio])
|
83
83
|
expect(instance_nested.to_bxml).to eq(expected_multiple)
|
84
84
|
end
|
@@ -13,7 +13,7 @@ describe 'Bandwidth::Bxml::Transfer' do
|
|
13
13
|
fallback_username: 'initial_fallback_username',
|
14
14
|
fallback_password: 'initial_fallback_password',
|
15
15
|
tag: 'initial_tag',
|
16
|
-
diversion_treatment: '
|
16
|
+
diversion_treatment: 'propagate',
|
17
17
|
diversion_reason: 'user-busy'
|
18
18
|
}
|
19
19
|
}
|
@@ -49,7 +49,7 @@ describe 'Bandwidth::Bxml::Transfer' do
|
|
49
49
|
end
|
50
50
|
|
51
51
|
it 'tests the to_bxml method of the Transfer instance' do
|
52
|
-
expected = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"
|
52
|
+
expected = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"propagate\" diversionReason=\"user-busy\"/>\n"
|
53
53
|
expect(instance.to_bxml).to eq(expected)
|
54
54
|
end
|
55
55
|
|
@@ -67,16 +67,16 @@ describe 'Bandwidth::Bxml::Transfer' do
|
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'tests the to_bxml method of the nested Transfer instance' do
|
70
|
-
expected = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"
|
70
|
+
expected = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"propagate\" diversionReason=\"user-busy\">\n <PhoneNumber>+19195551234</PhoneNumber>\n</Transfer>\n"
|
71
71
|
expect(instance_nested.to_bxml).to eq(expected)
|
72
72
|
end
|
73
73
|
|
74
74
|
it 'tests the add_verb method of the nested Transfer instance' do
|
75
|
-
expected_single = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"
|
75
|
+
expected_single = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"propagate\" diversionReason=\"user-busy\">\n <PhoneNumber>+19195551234</PhoneNumber>\n <SipUri>sip:1-999-123-4567@voip-provider.example.net</SipUri>\n</Transfer>\n"
|
76
76
|
instance_nested.add_transfer_recipient(sip_uri)
|
77
77
|
expect(instance_nested.to_bxml).to eq(expected_single)
|
78
78
|
|
79
|
-
expected_multiple = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"
|
79
|
+
expected_multiple = "\n<Transfer transferCallerId=\"+19195551234\" callTimeout=\"5\" transferCompleteUrl=\"https://initial.com\" transferCompleteMethod=\"POST\" transferCompleteFallbackUrl=\"https://initial.com\" transferCompleteFallbackMethod=\"POST\" username=\"initial_username\" password=\"initial_password\" fallbackUsername=\"initial_fallback_username\" fallbackPassword=\"initial_fallback_password\" tag=\"initial_tag\" diversionTreatment=\"propagate\" diversionReason=\"user-busy\">\n <PhoneNumber>+19195551234</PhoneNumber>\n <SipUri>sip:1-999-123-4567@voip-provider.example.net</SipUri>\n <SipUri>sip:1-999-123-4567@voip-provider.example.net</SipUri>\n <PhoneNumber>+19195551234</PhoneNumber>\n</Transfer>\n"
|
80
80
|
instance_nested.add_transfer_recipient([sip_uri, phone_number])
|
81
81
|
expect(instance_nested.to_bxml).to eq(expected_multiple)
|
82
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bandwidth-sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 11.
|
4
|
+
version: 11.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bandwidth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -460,62 +460,62 @@ signing_key:
|
|
460
460
|
specification_version: 4
|
461
461
|
summary: Bandwidth Ruby SDK
|
462
462
|
test_files:
|
463
|
-
- spec/api/phone_number_lookup_api_spec.rb
|
464
463
|
- spec/api/recordings_api_spec.rb
|
465
|
-
- spec/api/
|
466
|
-
- spec/api/conferences_api_spec.rb
|
464
|
+
- spec/api/phone_number_lookup_api_spec.rb
|
467
465
|
- spec/api/messages_api_spec.rb
|
468
466
|
- spec/api/statistics_api_spec.rb
|
469
|
-
- spec/api/mfa_api_spec.rb
|
470
467
|
- spec/api/calls_api_spec.rb
|
468
|
+
- spec/api/media_api_spec.rb
|
469
|
+
- spec/api/mfa_api_spec.rb
|
470
|
+
- spec/api/conferences_api_spec.rb
|
471
471
|
- spec/api_client_spec.rb
|
472
472
|
- spec/api_error_spec.rb
|
473
473
|
- spec/call_utils.rb
|
474
474
|
- spec/configuration_spec.rb
|
475
475
|
- spec/fixtures/ruby_cat.jpeg
|
476
|
-
- spec/integration/phone_number_lookup_api_integration_spec.rb
|
477
|
-
- spec/integration/statistics_api_integration_spec.rb
|
478
|
-
- spec/integration/media_api_integration_spec.rb
|
479
|
-
- spec/integration/recordings_api_integration_spec.rb
|
480
476
|
- spec/integration/mfa_api_integration_spec.rb
|
481
|
-
- spec/integration/
|
477
|
+
- spec/integration/media_api_integration_spec.rb
|
482
478
|
- spec/integration/messages_api_integration_spec.rb
|
479
|
+
- spec/integration/calls_api_integration_spec.rb
|
483
480
|
- spec/integration/conferences_api_integration_spec.rb
|
484
|
-
- spec/
|
485
|
-
- spec/
|
486
|
-
- spec/
|
487
|
-
- spec/models/verify_code_request_spec.rb
|
481
|
+
- spec/integration/phone_number_lookup_api_integration_spec.rb
|
482
|
+
- spec/integration/recordings_api_integration_spec.rb
|
483
|
+
- spec/integration/statistics_api_integration_spec.rb
|
488
484
|
- spec/models/deferred_result_spec.rb
|
489
|
-
- spec/models/
|
490
|
-
- spec/models/
|
485
|
+
- spec/models/verify_code_request_spec.rb
|
486
|
+
- spec/models/call_state_enum_spec.rb
|
487
|
+
- spec/models/call_state_spec.rb
|
488
|
+
- spec/models/message_spec.rb
|
489
|
+
- spec/models/bxml/response_spec.rb
|
491
490
|
- spec/models/bxml/verbs/play_audio_spec.rb
|
492
|
-
- spec/models/bxml/verbs/transfer_spec.rb
|
493
|
-
- spec/models/bxml/verbs/ring_spec.rb
|
494
|
-
- spec/models/bxml/verbs/custom_param_spec.rb
|
495
|
-
- spec/models/bxml/verbs/pause_spec.rb
|
496
|
-
- spec/models/bxml/verbs/send_dtmf_spec.rb
|
497
|
-
- spec/models/bxml/verbs/start_recording_spec.rb
|
498
|
-
- spec/models/bxml/verbs/stop_recording_spec.rb
|
499
491
|
- spec/models/bxml/verbs/redirect_spec.rb
|
500
|
-
- spec/models/bxml/verbs/
|
501
|
-
- spec/models/bxml/verbs/
|
502
|
-
- spec/models/bxml/verbs/
|
492
|
+
- spec/models/bxml/verbs/forward_spec.rb
|
493
|
+
- spec/models/bxml/verbs/bridge_spec.rb
|
494
|
+
- spec/models/bxml/verbs/pause_recording_spec.rb
|
495
|
+
- spec/models/bxml/verbs/stop_gather_spec.rb
|
503
496
|
- spec/models/bxml/verbs/conference_spec.rb
|
504
|
-
- spec/models/bxml/verbs/stop_transcription_spec.rb
|
505
497
|
- spec/models/bxml/verbs/sip_uri_spec.rb
|
506
|
-
- spec/models/bxml/verbs/
|
507
|
-
- spec/models/bxml/verbs/
|
508
|
-
- spec/models/bxml/verbs/
|
498
|
+
- spec/models/bxml/verbs/resume_recording_spec.rb
|
499
|
+
- spec/models/bxml/verbs/tag_spec.rb
|
500
|
+
- spec/models/bxml/verbs/speak_sentence_spec.rb
|
509
501
|
- spec/models/bxml/verbs/start_stream_spec.rb
|
510
|
-
- spec/models/bxml/verbs/
|
502
|
+
- spec/models/bxml/verbs/transfer_spec.rb
|
511
503
|
- spec/models/bxml/verbs/start_transcription_spec.rb
|
512
|
-
- spec/models/bxml/verbs/
|
513
|
-
- spec/models/bxml/verbs/
|
514
|
-
- spec/models/bxml/verbs/
|
504
|
+
- spec/models/bxml/verbs/hangup_spec.rb
|
505
|
+
- spec/models/bxml/verbs/record_spec.rb
|
506
|
+
- spec/models/bxml/verbs/stop_stream_spec.rb
|
507
|
+
- spec/models/bxml/verbs/stop_transcription_spec.rb
|
508
|
+
- spec/models/bxml/verbs/send_dtmf_spec.rb
|
509
|
+
- spec/models/bxml/verbs/custom_param_spec.rb
|
515
510
|
- spec/models/bxml/verbs/gather_spec.rb
|
516
|
-
- spec/models/bxml/verbs/
|
511
|
+
- spec/models/bxml/verbs/ring_spec.rb
|
512
|
+
- spec/models/bxml/verbs/stop_recording_spec.rb
|
513
|
+
- spec/models/bxml/verbs/start_gather_spec.rb
|
514
|
+
- spec/models/bxml/verbs/stream_param_spec.rb
|
515
|
+
- spec/models/bxml/verbs/start_recording_spec.rb
|
516
|
+
- spec/models/bxml/verbs/phone_number_spec.rb
|
517
|
+
- spec/models/bxml/verbs/pause_spec.rb
|
518
|
+
- spec/models/bxml/nestable_verb_spec.rb
|
517
519
|
- spec/models/bxml/bxml_spec.rb
|
518
|
-
- spec/models/bxml/response_spec.rb
|
519
520
|
- spec/models/bxml/verb_spec.rb
|
520
|
-
- spec/models/bxml/nestable_verb_spec.rb
|
521
521
|
- spec/spec_helper.rb
|