bandwidth-sdk 10.4.0 → 10.5.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: 2f011b72b189da15e3b1b43201601250454cbd2c348c9b13629c0f4b8eb02838
4
- data.tar.gz: dc058e532b3e089f6591bd41d6b2984cd2ef2ba1d44f61c609e9253c918192cb
3
+ metadata.gz: ffaae51706420e65f3e5d390fb9215c6dbcfab4fafd63afdcb23db02b9f35c2f
4
+ data.tar.gz: bbf5a6df61b719af55f8207cae476e6e9dfa558e39b144ce6f612616081e8b5f
5
5
  SHA512:
6
- metadata.gz: c76196ab9c8c40578883f4963b2f7b6cd368b63a8304380344f8820deae79569c13a262da25e06ba2cc3f0cf8cfa81f11b6a35080dd829ba978f07b22d6884d5
7
- data.tar.gz: 2ee584741d90c28ea2b465dffcccdbed815f7a2b38b8517bcb123ccd5378bbee227a901dff9679449572f5e45ecbda36f47252a10bdb1209697a77101a52f838
6
+ metadata.gz: 40337ac287221ab0177321f3118373023052bc5f322c44e30768b1b678d51917ada3a261e5620fa0d9ad9cb9fb626d03163e4fcf8bf63b7c4ec7c04480e84a4a
7
+ data.tar.gz: dfade60302bddd061ff00afe378cc64f006c93c7b95c36a290aeb80f38ded9eb10d8c156b994b6cebe4fa414bde4f103c48925f844e9802cae47505fb9bc5b80
@@ -0,0 +1,17 @@
1
+ require_relative 'xml_verb'
2
+
3
+ module Bandwidth
4
+ module Voice
5
+ # These elements define optional user specified parameters that will be sent to the destination URL when the real-time transcription is first started
6
+ class CustomParam
7
+ include XmlVerb
8
+
9
+ def to_bxml(xml)
10
+ xml.CustomParam(compact_hash({
11
+ 'name' => name,
12
+ 'value' => value
13
+ }))
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,42 @@
1
+ require_relative 'xml_verb'
2
+
3
+ module Bandwidth
4
+ module Voice
5
+ # The StartTranscription verb allows a segment of a call to be transcribed and optionally for the live transcription to be sent off to another destination for additional processing
6
+ class StartTranscription
7
+ include XmlVerb
8
+
9
+ def to_bxml(xml)
10
+ xml.StartTranscription(compact_hash({
11
+ 'name' => name,
12
+ 'tracks' => tracks,
13
+ 'transcriptionEventUrl' => transcriptionEventUrl,
14
+ 'transcriptionEventMethod' => transcriptionEventMethod,
15
+ 'username' => username,
16
+ 'password' => password,
17
+ 'destination' => destination,
18
+ 'stabilized' => stabilized
19
+ })) do
20
+ def embedded_xml(xml, property, type)
21
+ if property
22
+ s = if property.is_a?(type)
23
+ then property
24
+ else type.new(property)
25
+ end
26
+ s.to_bxml(xml)
27
+ end
28
+ end
29
+ def nest_verbs_list(xml, property)
30
+ if property
31
+ property.each do |verb|
32
+ verb.to_bxml(xml)
33
+ end
34
+ end
35
+ end
36
+ embedded_xml(xml, custom_params, CustomParam)
37
+ nest_verbs_list(xml, nested_verbs)
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,16 @@
1
+ require_relative 'xml_verb'
2
+
3
+ module Bandwidth
4
+ module Voice
5
+ # The StopTranscription verb is used to stop a real-time transcription that was started with a previous `<StartTranscription>` verb
6
+ class StopTranscription
7
+ include XmlVerb
8
+
9
+ def to_bxml(xml)
10
+ xml.StopTranscription(compact_hash({
11
+ 'name' => name
12
+ }))
13
+ end
14
+ end
15
+ end
16
+ end
@@ -2,7 +2,7 @@ require_relative 'xml_verb'
2
2
 
3
3
  module Bandwidth
4
4
  module Voice
5
- # The StartStream verb allows a segment of a call to be sent off to another destination for additional processing
5
+ # These elements define optional user specified parameters that will be sent to the destination URL when the stream is first started
6
6
  class StreamParam
7
7
  include XmlVerb
8
8
 
@@ -122,11 +122,18 @@ class IntegrationTest < Test::Unit::TestCase
122
122
  assert(response.data.enqueued_time.is_a?(DateTime), "enqueued time is not a DateTime object")
123
123
 
124
124
  #Get phone call information
125
- sleep(15)
126
- response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
127
- assert(response.data.state.length > 0, "state value not set")
128
- assert_not_nil(response.data.enqueued_time, "enqueued time is nil")
129
- assert(response.data.enqueued_time.is_a?(DateTime), "enqueued time is not a DateTime object")
125
+ sleep(2)
126
+ begin
127
+ response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
128
+ assert(response.data.state.length > 0, "state value not set")
129
+ assert_not_nil(response.data.enqueued_time, "enqueued time is nil")
130
+ assert(response.data.enqueued_time.is_a?(DateTime), "enqueued time is not a DateTime object")
131
+ rescue ApiErrorException => e
132
+ if e.response_code != 404
133
+ raise StandardError, "Unexpected HTTP Response: " + e.message
134
+ end
135
+ end
136
+
130
137
  end
131
138
 
132
139
  def test_create_call_with_amd_and_get_call_state
@@ -151,9 +158,15 @@ class IntegrationTest < Test::Unit::TestCase
151
158
  assert(response.data.call_id.length > 0, "call_id value not set")
152
159
 
153
160
  #Get phone call information
154
- sleep(15)
155
- response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
156
- assert(response.data.state.length > 0, "state value not set")
161
+ sleep(2)
162
+ begin
163
+ response = @bandwidth_client.voice_client.client.get_call(BW_ACCOUNT_ID, response.data.call_id)
164
+ assert(response.data.state.length > 0, "state value not set")
165
+ rescue ApiErrorException => e
166
+ if e.response_code != 404
167
+ raise StandardError, "Unexpected HTTP Response: " + e.message
168
+ end
169
+ end
157
170
  end
158
171
 
159
172
  def test_create_call_with_priority
@@ -766,4 +779,73 @@ class IntegrationTest < Test::Unit::TestCase
766
779
 
767
780
  assert_equal(expected, actual)
768
781
  end
782
+
783
+ def test_start_transcription_bxml_verb
784
+ expected = '<?xml version="1.0" encoding="UTF-8"?><Response><StartTranscription name="test_transcription" tracks="inbound" transcriptionEventUrl="https://www.test.com/event" transcriptionEventMethod="POST" username="username" password="password" destination="https://www.test.com/transcription"><CustomParam name="name1" value="value1"/></StartTranscription></Response>'
785
+ response = Bandwidth::Voice::Response.new()
786
+
787
+ custom_param1 = Bandwidth::Voice::CustomParam.new({
788
+ :name => "name1",
789
+ :value => "value1"
790
+ })
791
+
792
+ start_transcription = Bandwidth::Voice::StartTranscription.new({
793
+ :name => "test_transcription",
794
+ :tracks => "inbound",
795
+ :transcriptionEventUrl => "https://www.test.com/event",
796
+ :transcriptionEventMethod => "POST",
797
+ :username => "username",
798
+ :password => "password",
799
+ :destination => "https://www.test.com/transcription",
800
+ :custom_params => custom_param1
801
+ })
802
+
803
+ response.push(start_transcription)
804
+ actual = response.to_bxml()
805
+
806
+ assert_equal(expected, actual)
807
+ end
808
+
809
+ def test_start_transcription_multiple_nested_custom_params
810
+ expected = '<?xml version="1.0" encoding="UTF-8"?><Response><StartTranscription name="test_transcription" tracks="inbound" transcriptionEventUrl="https://www.test.com/event" transcriptionEventMethod="POST" username="username" password="password" destination="https://www.test.com/transcription"><CustomParam name="name1" value="value1"/><CustomParam name="name2" value="value2"/></StartTranscription></Response>'
811
+ response = Bandwidth::Voice::Response.new()
812
+
813
+ custom_param1 = Bandwidth::Voice::CustomParam.new({
814
+ :name => "name1",
815
+ :value => "value1"
816
+ })
817
+
818
+ custom_param2 = Bandwidth::Voice::CustomParam.new({
819
+ :name => "name2",
820
+ :value => "value2"
821
+ })
822
+
823
+ start_transcription = Bandwidth::Voice::StartTranscription.new({
824
+ :destination => "https://www.test.com/transcription",
825
+ :name => "test_transcription",
826
+ :tracks => "inbound",
827
+ :transcriptionEventUrl => "https://www.test.com/event",
828
+ :transcriptionEventMethod => "POST",
829
+ :username => "username",
830
+ :password => "password",
831
+ :nested_verbs => [custom_param1, custom_param2]
832
+ })
833
+
834
+ response.push(start_transcription)
835
+ actual = response.to_bxml()
836
+
837
+ assert_equal(expected, actual)
838
+ end
839
+
840
+ def test_stop_transcription_bxml_verb
841
+ expected = '<?xml version="1.0" encoding="UTF-8"?><Response><StopTranscription name="test_transcription"/></Response>'
842
+ response = Bandwidth::Voice::Response.new()
843
+ stop_transcription = Bandwidth::Voice::StopTranscription.new({
844
+ :name => "test_transcription"
845
+ })
846
+ response.push(stop_transcription)
847
+ actual = response.to_bxml()
848
+
849
+ assert_equal(expected, actual)
850
+ end
769
851
  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: 10.4.0
4
+ version: 10.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bandwidth
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-23 00:00:00.000000000 Z
11
+ date: 2023-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logging
@@ -231,6 +231,7 @@ files:
231
231
  - lib/bandwidth/voice_lib/bxml/response.rb
232
232
  - lib/bandwidth/voice_lib/bxml/verbs/bridge.rb
233
233
  - lib/bandwidth/voice_lib/bxml/verbs/conference.rb
234
+ - lib/bandwidth/voice_lib/bxml/verbs/custom_param.rb
234
235
  - lib/bandwidth/voice_lib/bxml/verbs/forward.rb
235
236
  - lib/bandwidth/voice_lib/bxml/verbs/gather.rb
236
237
  - lib/bandwidth/voice_lib/bxml/verbs/hangup.rb
@@ -248,9 +249,11 @@ files:
248
249
  - lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb
249
250
  - lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb
250
251
  - lib/bandwidth/voice_lib/bxml/verbs/start_stream.rb
252
+ - lib/bandwidth/voice_lib/bxml/verbs/start_transcription.rb
251
253
  - lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb
252
254
  - lib/bandwidth/voice_lib/bxml/verbs/stop_recording.rb
253
255
  - lib/bandwidth/voice_lib/bxml/verbs/stop_stream.rb
256
+ - lib/bandwidth/voice_lib/bxml/verbs/stop_transcription.rb
254
257
  - lib/bandwidth/voice_lib/bxml/verbs/stream_param.rb
255
258
  - lib/bandwidth/voice_lib/bxml/verbs/tag.rb
256
259
  - lib/bandwidth/voice_lib/bxml/verbs/transfer.rb
@@ -314,7 +317,7 @@ homepage: https://github.com/Bandwidth/ruby-sdk
314
317
  licenses:
315
318
  - MIT
316
319
  metadata: {}
317
- post_install_message:
320
+ post_install_message:
318
321
  rdoc_options: []
319
322
  require_paths:
320
323
  - lib
@@ -330,7 +333,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
330
333
  version: '0'
331
334
  requirements: []
332
335
  rubygems_version: 3.4.10
333
- signing_key:
336
+ signing_key:
334
337
  specification_version: 4
335
338
  summary: Bandwidth
336
339
  test_files: []