tropo-webapi-ruby 0.1.11 → 0.1.13
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 +7 -0
- data/{README.rdoc → README.md} +41 -40
- data/VERSION +1 -1
- data/examples/conferenceJoinLeave.rb +27 -0
- data/examples/machineDetection.rb +31 -0
- data/examples/transferWhisper.rb +38 -0
- data/lib/tropo-webapi-ruby/tropo-webapi-ruby-helpers.rb +2 -0
- data/lib/tropo-webapi-ruby/tropo-webapi-ruby.rb +164 -76
- data/spec/tropo-webapi-ruby_spec.rb +3 -9
- data/tropo-webapi-ruby.gemspec +7 -4
- metadata +11 -42
- data/HISTORY.rdoc +0 -19
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9b4ec4c8d2ed601fb2adb371218c73800ece5218
|
4
|
+
data.tar.gz: a1731101b04b7e32c84ac237e7a617c2f58cbb98
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1f2290d05796f3f6091796b2143fdff8bf8aaf737db340d089a4077659761f8f8f90461f0a60ac0d528cba609bb6b65cfb7068b3c38211608a80f4209e571b21
|
7
|
+
data.tar.gz: 0508b0d936a4e7b263f557f7a7886acb01c8f17421fdb0ea8dab502017e75b47cc63a4b946d54e70b2edc5795bba2211b8d3718423ca3149365a1401c3373447
|
data/{README.rdoc → README.md}
RENAMED
@@ -1,20 +1,21 @@
|
|
1
|
-
|
1
|
+
# Tropo Web API Ruby Library
|
2
|
+
[](https://drone.io/github.com/tropo/tropo-webapi-ruby/latest)
|
2
3
|
|
3
4
|
A Ruby library for interaction with the Tropo Web API (http://tropo.com) using JSON.
|
4
5
|
|
5
|
-
|
6
|
+
## Tropo Web API Overview
|
6
7
|
|
7
8
|
The Tropo Remote API provides a RESTful JSON API for controlling realtime communications applications from
|
8
9
|
your own web servers.
|
9
10
|
|
10
|
-
|
11
|
+
## Requirements
|
11
12
|
|
12
|
-
* Unit tests passed on: Ruby MRI v1.8.6/1.8.7 and JRuby v1.5.0
|
13
|
-
* RubyGems
|
13
|
+
* Unit tests passed on: Ruby MRI v1.8.6/1.8.7/1.9.3/2.1.0 and JRuby v1.5.0/v1.7.9
|
14
|
+
* RubyGems
|
14
15
|
|
15
16
|
Note: If using with ActiveSupport, v2.3.5 or better of ActiveSupport is required.
|
16
17
|
|
17
|
-
|
18
|
+
## Installation
|
18
19
|
|
19
20
|
$ sudo gem install tropo-webapi-ruby
|
20
21
|
|
@@ -22,13 +23,13 @@ Optional, if you would like to use with Sinatra:
|
|
22
23
|
|
23
24
|
$ sudo gem install sinatra
|
24
25
|
|
25
|
-
|
26
|
+
## Generate Documentation
|
26
27
|
|
27
|
-
|
28
|
+
### Developer
|
28
29
|
|
29
30
|
$ gemserver
|
30
31
|
|
31
|
-
|
32
|
+
### Project Developer
|
32
33
|
|
33
34
|
$ sudo gem install yard
|
34
35
|
|
@@ -36,8 +37,8 @@ From within the project:
|
|
36
37
|
|
37
38
|
$ yardoc
|
38
39
|
|
39
|
-
|
40
|
-
|
40
|
+
## Usage
|
41
|
+
```ruby
|
41
42
|
require 'rubygems'
|
42
43
|
require 'tropo-webapi-ruby'
|
43
44
|
|
@@ -52,15 +53,15 @@ From within the project:
|
|
52
53
|
response = tropo.parse(json_string)
|
53
54
|
p 'Hey, this is a voice session!' if tropo.voice_session
|
54
55
|
p 'Hey, this is a text messaging session!' if tropo.text_session
|
56
|
+
```
|
57
|
+
## Examples
|
55
58
|
|
56
|
-
|
57
|
-
|
58
|
-
=== Sinatra
|
59
|
+
### Sinatra
|
59
60
|
|
60
61
|
Using the great RESTful Web Services framework Sinatra for Ruby.
|
61
62
|
|
62
|
-
|
63
|
-
|
63
|
+
#### Hello World
|
64
|
+
```ruby
|
64
65
|
require 'rubygems'
|
65
66
|
require 'sinatra'
|
66
67
|
require 'tropo-webapi-ruby'
|
@@ -82,9 +83,9 @@ Using the great RESTful Web Services framework Sinatra for Ruby.
|
|
82
83
|
tropo.say 'Hello again.'
|
83
84
|
tropo.response
|
84
85
|
end
|
85
|
-
|
86
|
-
|
87
|
-
|
86
|
+
```
|
87
|
+
#### Getting Session Information
|
88
|
+
```ruby
|
88
89
|
# Produces a Ruby hash:
|
89
90
|
#
|
90
91
|
# { :session =>
|
@@ -117,9 +118,9 @@ Using the great RESTful Web Services framework Sinatra for Ruby.
|
|
117
118
|
tropo_session = Tropo::Generator.parse request.env["rack.input"].read
|
118
119
|
p tropo_session
|
119
120
|
end
|
120
|
-
|
121
|
-
|
122
|
-
|
121
|
+
```
|
122
|
+
#### Asking for input and receiving the response, or catching a hangup
|
123
|
+
```ruby
|
123
124
|
post '/ask.json' do
|
124
125
|
tropo = Tropo::Generator.new do
|
125
126
|
on :event => 'hangup', :next => '/hangup.json'
|
@@ -170,23 +171,23 @@ Using the great RESTful Web Services framework Sinatra for Ruby.
|
|
170
171
|
tropo_event = Tropo::Generator.parse request.env["rack.input"].read
|
171
172
|
p tropo_event
|
172
173
|
end
|
173
|
-
|
174
|
-
|
175
|
-
|
174
|
+
```
|
175
|
+
#### Redirect a call before answering
|
176
|
+
```ruby
|
176
177
|
# A redirect method
|
177
178
|
post '/redirect.json' do
|
178
179
|
Tropo::Generator.redirect({ :to => 'sip:1234', :from => '4155551212' })
|
179
180
|
end
|
180
|
-
|
181
|
-
|
182
|
-
|
181
|
+
```
|
182
|
+
#### Reject a call before answering
|
183
|
+
```ruby
|
183
184
|
# A reject method
|
184
185
|
post '/reject.json' do
|
185
186
|
Tropo::Generator.reject
|
186
187
|
end
|
187
|
-
|
188
|
-
|
189
|
-
|
188
|
+
```
|
189
|
+
#### Setting a default voice for speech synthesis (text-to-speech/TTS)
|
190
|
+
```ruby
|
190
191
|
post '/speak.json' do
|
191
192
|
t = Tropo::Generator.new(:voice => 'kate')
|
192
193
|
t.say 'Hello!' # Will speak as kate now
|
@@ -197,9 +198,9 @@ Using the great RESTful Web Services framework Sinatra for Ruby.
|
|
197
198
|
t.voice = 'kate'
|
198
199
|
t.say 'Hello!' # Will speak as kate now
|
199
200
|
end
|
200
|
-
|
201
|
-
|
202
|
-
|
201
|
+
```
|
202
|
+
#### Setting a default recognizer for speech recognition (ASR)
|
203
|
+
```ruby
|
203
204
|
post '/ask.json' do
|
204
205
|
t = Tropo::Generator.new(:recognizer => 'fr-fr')
|
205
206
|
t.ask({ :name => 'account_number', # Will now use the French speech recognition engine
|
@@ -222,12 +223,12 @@ Using the great RESTful Web Services framework Sinatra for Ruby.
|
|
222
223
|
choices :value => '[5 DIGITS]'
|
223
224
|
end
|
224
225
|
end
|
225
|
-
|
226
|
-
|
226
|
+
```
|
227
|
+
### Additional Examples
|
227
228
|
|
228
229
|
May be found by checking out the project from Github, and then looking in $PROJECT_HOME/examples and $PROJECT_HOME/spec/tropo-webapi-ruby_spec.rb.
|
229
230
|
|
230
|
-
|
231
|
+
### Documentation
|
231
232
|
|
232
233
|
* API Documentation:
|
233
234
|
|
@@ -237,12 +238,12 @@ http://voxeo.github.com/tropo-webapi-ruby
|
|
237
238
|
|
238
239
|
http://docs.tropo.com/webapi/2.0/home.htm
|
239
240
|
|
240
|
-
|
241
|
+
## Notes
|
241
242
|
|
242
243
|
In order to maintain compatibility between Ruby MRI and JRuby the gem requires 'json_pure'. If you are using the Ruby MRI and would prefer to use the C version of 'json', simply install the 'json' gem as follows:
|
243
244
|
|
244
245
|
sudo gem install json
|
245
246
|
|
246
|
-
|
247
|
+
## Copyright
|
247
248
|
|
248
|
-
Copyright (c)
|
249
|
+
Copyright (c) 2014 Tropo, Inc. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.13
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'tropo-webapi-ruby'
|
2
|
+
require 'sinatra'
|
3
|
+
|
4
|
+
post '/index.json' do
|
5
|
+
|
6
|
+
v = Tropo::Generator.parse request.env["rack.input"].read
|
7
|
+
t = Tropo::Generator.new
|
8
|
+
|
9
|
+
callerID = v[:session][:from][:id]
|
10
|
+
|
11
|
+
t.say({:value => "You are about to enter the conference room"})
|
12
|
+
|
13
|
+
t.conference({
|
14
|
+
:name => "joinLeave",
|
15
|
+
:id => "1234",
|
16
|
+
:joinPrompt => {
|
17
|
+
:value => "Please welcome #{callerID} to the party"
|
18
|
+
},
|
19
|
+
:leavePrompt => {
|
20
|
+
:value => "#{callerID} has left the party"
|
21
|
+
}
|
22
|
+
})
|
23
|
+
|
24
|
+
t.response
|
25
|
+
|
26
|
+
end
|
27
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'tropo-webapi-ruby'
|
2
|
+
require 'sinatra'
|
3
|
+
|
4
|
+
post '/index.json' do
|
5
|
+
|
6
|
+
t = Tropo::Generator.new
|
7
|
+
|
8
|
+
t.call :to => "+14071234321",
|
9
|
+
:machineDetection => {
|
10
|
+
:introduction => "This is just a test to see if you are a human or a machine. PLease hold while we determine. Almost finished. Thank you!",
|
11
|
+
:voice => "Victor"
|
12
|
+
}
|
13
|
+
|
14
|
+
t.on :event => 'continue', :next => '/continue.json'
|
15
|
+
t.response
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
post '/continue.json' do
|
21
|
+
|
22
|
+
v = Tropo::Generator.parse request.env["rack.input"].read
|
23
|
+
t = Tropo::Generator.new
|
24
|
+
puts v
|
25
|
+
userType = v[:result][:user_type]
|
26
|
+
puts userType
|
27
|
+
t.say(:value => "You are a #{userType}")
|
28
|
+
|
29
|
+
t.response
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'tropo-webapi-ruby'
|
2
|
+
require 'sinatra'
|
3
|
+
|
4
|
+
post '/index.json' do
|
5
|
+
|
6
|
+
t = Tropo::Generator.new
|
7
|
+
|
8
|
+
t.say("Please hold while we transfer your call")
|
9
|
+
|
10
|
+
whisper = [{
|
11
|
+
:event => "connect",
|
12
|
+
:ask => {
|
13
|
+
:say => {:value => "Press 1 to accept this call or any other key to decline"},
|
14
|
+
:choices => {:value => "1", :mode => "dtmf"},
|
15
|
+
:name => "transfer",
|
16
|
+
:interdigitTimeout => 1
|
17
|
+
},
|
18
|
+
:event => "connect",
|
19
|
+
:say => {:value => "You are now being connected to the transfer"}
|
20
|
+
}]
|
21
|
+
puts whisper
|
22
|
+
|
23
|
+
t.transfer :to => "+14071234321",
|
24
|
+
:on => whisper
|
25
|
+
|
26
|
+
t.on :event => 'incomplete', :next => '/hangup.json', :say => {:value =>'You have opted out from accepting this call. Goodbye'}
|
27
|
+
|
28
|
+
t.response
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
post '/hangup.json' do
|
33
|
+
t = Tropo::Generator.new
|
34
|
+
|
35
|
+
t.hangup
|
36
|
+
t.response
|
37
|
+
|
38
|
+
end
|
@@ -53,21 +53,33 @@ module Tropo
|
|
53
53
|
#
|
54
54
|
# @overload ask(params)
|
55
55
|
# @param [Hash] params the options to create an ask action request with.
|
56
|
-
# @option params [String] :
|
56
|
+
# @option params [required, String] :choices indicates the structure of the expected data and acceptable modes of input - value, mode, terminator
|
57
|
+
# @option params [optional, String] :say determines what is played or sent to the caller - also takes an event key to determine if prompt will be played based on a nomatch or timeout
|
58
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to ask which can be used with REST to interrupt the function
|
59
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
57
60
|
# @option params [optional, Integer] :attempts (1) the number of times to prompt the user for input
|
58
|
-
# @option params [optional, Boolean] :bargein (true) allows a user to enter a key to stop the
|
59
|
-
# @option params [optional,
|
60
|
-
# @option params [optional,
|
61
|
+
# @option params [optional, Boolean] :bargein (true) allows a user to say or enter a key to stop the prompt from playing further
|
62
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
63
|
+
# @option params [optional, Integer] :min_confidence (30) the minimum confidence by which to accept the response, as opposed to asking again
|
64
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
61
65
|
# @option params [optional, Integer] :timeout (30) the amount of time, in seconds, to wait for a response before moving on
|
66
|
+
# @option params [optional, String] :recognizer this tells Tropo what language to listen for
|
67
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
62
68
|
# @overload ask(params, &block)
|
63
69
|
# @param [Hash] params the options to create an ask action request with.
|
64
70
|
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
65
|
-
# @option params [String] :
|
71
|
+
# @option params [required, String] :choices indicates the structure of the expected data and acceptable modes of input - value, mode, terminator
|
72
|
+
# @option params [optional, String] :say determines what is played or sent to the caller - also takes an event key to determine if prompt will be played based on a nomatch or timeout
|
73
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to ask which can be used with REST to interrupt the function
|
74
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
66
75
|
# @option params [optional, Integer] :attempts (1) the number of times to prompt the user for input
|
67
|
-
# @option params [optional, Boolean] :bargein (true) allows a user to enter a key to stop the
|
68
|
-
# @option params [optional,
|
69
|
-
# @option params [optional,
|
76
|
+
# @option params [optional, Boolean] :bargein (true) allows a user to say or enter a key to stop the prompt from playing further
|
77
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
78
|
+
# @option params [optional, Integer] :min_confidence (30) the minimum confidence by which to accept the response, as opposed to asking again
|
79
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
70
80
|
# @option params [optional, Integer] :timeout (30) the amount of time, in seconds, to wait for a response before moving on
|
81
|
+
# @option params [optional, String] :recognizer this tells Tropo what language to listen for
|
82
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
71
83
|
# @return [String, nil] the JSON string to be passed back to Tropo or nil
|
72
84
|
# if the method has been called from inside a block
|
73
85
|
def ask(params={}, &block)
|
@@ -89,25 +101,31 @@ module Tropo
|
|
89
101
|
#
|
90
102
|
# @overload call(params)
|
91
103
|
# @param [Hash] params the options to create a call action request with.
|
104
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
92
105
|
# @option params [String] :to the destination of the call, may be a phone number, SMS number or IM address
|
93
106
|
# @option params [optional, String] :from the phone number or IM address the call will come from
|
94
107
|
# @option params [optional, String] :network which network the call will be initiated with, such as SMS
|
95
108
|
# @option params [optional, String] :channel the channel the call will be initiated over, may be TEXT or VOICE
|
96
109
|
# @option params [optional, Integer] :timeout (30) the amount of time, in seconds, to wait for a response before moving on
|
97
|
-
# @option params [optional, Boolean] :answer_on_media (true)
|
110
|
+
# @option params [optional, Boolean] :answer_on_media (false) if true, the call will be concisdered answered and audio will being playing as soon as media is received (ringing, busy, etc)
|
98
111
|
# @options params [optional, Hash] :headers A set of key/values to apply as customer SIP headers to the outgoing call
|
99
|
-
# @options params [optional, Hash] :recording
|
100
|
-
#
|
112
|
+
# @options params [optional, Hash] :recording allow you to start call recording as soon as the call is answered; refer to the recording method for paramaters in the hash
|
113
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
114
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to call which can be used with REST to interrupt the function
|
115
|
+
# @overload call(params, &block)
|
101
116
|
# @param [Hash] params the options to create an message action request with.
|
102
117
|
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
118
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
103
119
|
# @option params [String] :to the destination of the call, may be a phone number, SMS number or IM address
|
104
120
|
# @option params [optional, String] :from the phone number or IM address the call will come from
|
105
121
|
# @option params [optional, String] :network which network the call will be initiated with, such as SMS
|
106
|
-
# @option params [optional, String] :channel the channel the call will be initiated over, may be TEXT or VOICE
|
122
|
+
# @option params [optional, String] :channel (voice) the channel the call will be initiated over, may be TEXT or VOICE
|
107
123
|
# @option params [optional, Integer] :timeout (30) the amount of time, in seconds, to wait for a response before moving on
|
108
|
-
# @option params [optional, Boolean] :answer_on_media (true)
|
124
|
+
# @option params [optional, Boolean] :answer_on_media (false) if true, the call will be concisdered answered and audio will being playing as soon as media is received (ringing, busy, etc)
|
109
125
|
# @options params [optional, Hash] :headers A set of key/values to apply as customer SIP headers to the outgoing call
|
110
|
-
# @options params [optional, Hash] :recording
|
126
|
+
# @options params [optional, Hash] :recording allow you to start call recording as soon as the call is answered; refer to the recording method for paramaters in the hash
|
127
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
128
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to call which can be used with REST to interrupt the function
|
111
129
|
# @return [String, nil] the JSON string to be passed back to Tropo or nil
|
112
130
|
# if the method has been called from inside a block
|
113
131
|
def call(params={}, &block)
|
@@ -126,10 +144,9 @@ module Tropo
|
|
126
144
|
# Choices to give the user on input
|
127
145
|
#
|
128
146
|
# @param [Hash] params the options used to construct the grammar for the user
|
129
|
-
# @option params [String] :value the
|
147
|
+
# @option params [String] :value this is the grammar which determines the type of expected data, such as [DIGITS]
|
130
148
|
# @option params [optional, String] :mode (ANY) the mode to use when asking the user [DTMF, SPEECH or ANY]
|
131
|
-
# @option params [optional, String] :
|
132
|
-
# @option params [optional, String] :type (simple/grammar) the type of grammar to use
|
149
|
+
# @option params [optional, String] :terminator (#) the user may enter a keypad entry to stop the request
|
133
150
|
# @option [String, nil] the JSON string to be passed back to Tropo or nil
|
134
151
|
# if the method has been called from inside a block
|
135
152
|
def choices(params={})
|
@@ -148,21 +165,25 @@ module Tropo
|
|
148
165
|
#
|
149
166
|
# @overload conference(params)
|
150
167
|
# @param [Hash] params the options to create a message with.
|
151
|
-
# @option params [String] :name the
|
152
|
-
# @option params [Integer] :id the number to assign to the conference room
|
168
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
169
|
+
# @option params [required, Integer] :id the number to assign to the conference room
|
170
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
153
171
|
# @option params [optional, Boolean] :mute (false) whether to mute this caller in the conference
|
154
|
-
# @option params [optional, Integer] :
|
155
|
-
# @option params [optional,
|
156
|
-
# @option params [optional,
|
172
|
+
# @option params [optional, Integer] :play_tones whether to allow the DTMF input from a user to play into the conference
|
173
|
+
# @option params [optional, String] :terminator this is the touch-tone key (DTMF) used to exit the conference
|
174
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
175
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to conference which can be used with REST to interrupt the function
|
157
176
|
# @overload conference(params, &block)
|
158
177
|
# @param [Hash] params the options to create a message with.
|
159
178
|
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
160
|
-
# @option params [String] :name the
|
179
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
161
180
|
# @option params [Integer] :id the number to assign to the conference room
|
181
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
162
182
|
# @option params [optional, Boolean] :mute (false) whether to mute this caller in the conference
|
163
|
-
# @option params [optional, Integer] :
|
164
|
-
# @option params [optional,
|
165
|
-
# @option params [optional,
|
183
|
+
# @option params [optional, Integer] :play_tones whether to allow the DTMF input from a user to play into the conference
|
184
|
+
# @option params [optional, String] :terminator this is the touch-tone key (DTMF) used to exit the conference
|
185
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
186
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to conference which can be used with REST to interrupt the function
|
166
187
|
# @return [String, nil] the JSON string to be passed back to Tropo or nil
|
167
188
|
# if the method has been called from inside a block
|
168
189
|
def conference(params={}, &block)
|
@@ -183,7 +204,13 @@ module Tropo
|
|
183
204
|
# May trigger these events:
|
184
205
|
# - hangup
|
185
206
|
# - error
|
186
|
-
#
|
207
|
+
# @overload hangup(params)
|
208
|
+
# @param [Hash] params the options to create a message action request with.
|
209
|
+
# @option params [String] :headers contains the Session Initiation Protocol (SIP) Headers for the current session.
|
210
|
+
# @overload hangup(params, &block)
|
211
|
+
# @param [Hash] params the options to create an message action request with.
|
212
|
+
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
213
|
+
# @option params [String] :headers contains the Session Initiation Protocol (SIP) Headers for the current session.
|
187
214
|
# @return [String, nil] returns the JSON string to hangup/stop the current session or nil
|
188
215
|
# if the method has been called from inside a block
|
189
216
|
def hangup
|
@@ -198,25 +225,29 @@ module Tropo
|
|
198
225
|
#
|
199
226
|
# @overload message(params)
|
200
227
|
# @param [Hash] params the options to create a message action request with.
|
201
|
-
# @option params [String] :
|
228
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
229
|
+
# @option params [required, String] :say determines what is played or sent to the caller
|
230
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
231
|
+
# @option params [required, String] :to the destination of the call, may be a phone number, SMS number or IM address
|
202
232
|
# @option params [optional, String] :from the phone number or IM address the call will come from
|
203
233
|
# @option params [optional, String] :network which network the call will be initiated with, such as SMS
|
204
234
|
# @option params [optional, String] :channel the channel the call will be initiated over, may be TEXT or VOICE
|
205
235
|
# @option params [optional, Integer] :timeout (30) the amount of time, in seconds, to wait for a response before moving on
|
206
|
-
# @option params [optional, Boolean] :
|
207
|
-
# @
|
208
|
-
#
|
209
|
-
# @overload ask(params, &block)
|
236
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
237
|
+
# @option params [optional, Boolean] :answer_on_media (false) if true, the call will be concisdered answered and audio will being playing as soon as media is received (ringing, busy, etc)
|
238
|
+
# @overload message(params, &block)
|
210
239
|
# @param [Hash] params the options to create an message action request with.
|
211
240
|
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
212
|
-
# @option params [String] :
|
241
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
242
|
+
# @option params [required, String] :say determines what is played or sent to the caller
|
243
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
244
|
+
# @option params [required, String] :to the destination of the call, may be a phone number, SMS number or IM address
|
213
245
|
# @option params [optional, String] :from the phone number or IM address the call will come from
|
214
246
|
# @option params [optional, String] :network which network the call will be initiated with, such as SMS
|
215
247
|
# @option params [optional, String] :channel the channel the call will be initiated over, may be TEXT or VOICE
|
216
248
|
# @option params [optional, Integer] :timeout (30) the amount of time, in seconds, to wait for a response before moving on
|
217
|
-
# @option params [optional, Boolean] :
|
218
|
-
# @
|
219
|
-
# @options params [optional, Hash] :recording Refer to the recording method for paramaters in the hash
|
249
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
250
|
+
# @option params [optional, Boolean] :answer_on_media (false) if true, the call will be concisdered answered and audio will being playing as soon as media is received (ringing, busy, etc)
|
220
251
|
# @return [String, nil] the JSON string to be passed back to Tropo or nil
|
221
252
|
# if the method has been called from inside a block
|
222
253
|
def message(params={}, &block)
|
@@ -236,13 +267,15 @@ module Tropo
|
|
236
267
|
#
|
237
268
|
# @overload initialize(params)
|
238
269
|
# @param [Hash] params the options to create a message with.
|
239
|
-
# @option params [String] :event the event name that should trigger the callback
|
240
|
-
# @option params [String] :next the resource to send the callback to, such as '/error.json'
|
270
|
+
# @option params [required, String] :event the event name that should trigger the callback
|
271
|
+
# @option params [optional, String] :next the resource to send the callback to, such as '/error.json'
|
272
|
+
# @option params [optional, String] :say determines what is played or sent to the caller
|
241
273
|
# @overload initialize(params, &block)
|
242
274
|
# @param [Hash] params the options to create a message with.
|
243
|
-
# @option params [String] :event the event name that should trigger the callback
|
244
|
-
# @option params [String] :next the resource to send the callback to, such as '/error.json'
|
245
275
|
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
276
|
+
# @option params [required, String] :event the event name that should trigger the callback
|
277
|
+
# @option params [optional, String] :next the resource to send the callback to, such as '/error.json'
|
278
|
+
# @option params [optional, String] :say determines what is played or sent to the caller
|
246
279
|
# @option [String, nil] the JSON string to be passed back to Tropo or nil
|
247
280
|
# if the method has been called from inside a block
|
248
281
|
def on(params={}, &block)
|
@@ -314,21 +347,49 @@ module Tropo
|
|
314
347
|
#
|
315
348
|
# @overload record(params)
|
316
349
|
# @param [Hash] params the options to create a message with.
|
317
|
-
# @option params [
|
318
|
-
# @option params [String] :
|
350
|
+
# @option params [optional, Integer] :attempts (1) the number of times to prompt the user for input
|
351
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to record which can be used with REST to interrupt the function
|
352
|
+
# @option params [optional, Boolean] :bargein (true) allows a user to say or enter a key to stop the prompt from playing further
|
353
|
+
# @option params [optional, Boolean] :beep (true) when true, callers will hear a tone indicating the recording has begun
|
354
|
+
# @option params [optional, String] :choices when used with record, this defines the terminator
|
355
|
+
# @option params [required, String] :say determines what is played or sent to the caller
|
356
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
319
357
|
# @option params [optional, String] :format (audio/wav) the audio format to record in, either a wav or mp3
|
358
|
+
# @option params [optional, Float] :max_silence (5.0) the max amount of time in seconds to wait for silence before considering the user finished speaking
|
359
|
+
# @option params [optional, Float] :max_time (30.0) the max amount of time in seconds the user is allotted for input
|
360
|
+
# @option params [optional, String] :method (POST) this defines how to send the audio file, either POST or PUT, and only applies to HTTP
|
361
|
+
# @option params [optional, Integer] :min_confidence (30) the minimum confidence by which to accept the response, as opposed to asking again
|
362
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
363
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
364
|
+
# @option params [optional, Hash] :transcription allows you to submit a recording to be transcribed - takes parameters id, url and emailFormat
|
365
|
+
# @option params [optional, String] :url the destination URL to send the recording, either via FTP or HTTP
|
320
366
|
# @option params [optional, String] :username if posting to FTP, the username for the FTP server
|
321
367
|
# @option params [optional, String] :password if posting to FTP, the password for the FTP server
|
322
|
-
# @option params [optional,
|
368
|
+
# @option params [optional, Float] :timeout amount of time Tropo will wait--in seconds and after sending or playing the prompt--for the user to begin a response
|
369
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
323
370
|
# @overload record(params, &block)
|
324
371
|
# @param [Hash] params the options to create a message with.
|
325
372
|
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
326
|
-
# @option params [
|
327
|
-
# @option params [String] :
|
373
|
+
# @option params [optional, Integer] :attempts (1) the number of times to prompt the user for input
|
374
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to record which can be used with REST to interrupt the function
|
375
|
+
# @option params [optional, Boolean] :bargein (true) allows a user to say or enter a key to stop the prompt from playing further
|
376
|
+
# @option params [optional, Boolean] :beep (true) when true, callers will hear a tone indicating the recording has begun
|
377
|
+
# @option params [optional, String] :choices when used with record, this defines the terminator
|
378
|
+
# @option params [required, String] :say determines what is played or sent to the caller
|
379
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
328
380
|
# @option params [optional, String] :format (audio/wav) the audio format to record in, either a wav or mp3
|
381
|
+
# @option params [optional, Float] :max_silence (5.0) the max amount of time in seconds to wait for silence before considering the user finished speaking
|
382
|
+
# @option params [optional, Float] :max_time (30.0) the max amount of time in seconds the user is allotted for input
|
383
|
+
# @option params [optional, String] :method (POST) this defines how to send the audio file, either POST or PUT, and only applies to HTTP
|
384
|
+
# @option params [optional, Integer] :min_confidence (30) the minimum confidence by which to accept the response, as opposed to asking again
|
385
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
386
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
387
|
+
# @option params [optional, Hash] :transcription allows you to submit a recording to be transcribed - takes parameters id, url and emailFormat
|
388
|
+
# @option params [optional, String] :url the destination URL to send the recording, either via FTP or HTTP
|
329
389
|
# @option params [optional, String] :username if posting to FTP, the username for the FTP server
|
330
390
|
# @option params [optional, String] :password if posting to FTP, the password for the FTP server
|
331
|
-
# @option params [optional,
|
391
|
+
# @option params [optional, Float] :timeout amount of time Tropo will wait--in seconds and after sending or playing the prompt--for the user to begin a response
|
392
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
332
393
|
# @option [String, nil] the JSON string to be passed back to Tropo or nil
|
333
394
|
# if the method has been called from inside a block
|
334
395
|
def record(params={}, &block)
|
@@ -344,16 +405,15 @@ module Tropo
|
|
344
405
|
end
|
345
406
|
|
346
407
|
##
|
347
|
-
# The redirect function forwards an incoming call to another destination
|
408
|
+
# The redirect function forwards an incoming SIP call to another destination before answering it.
|
348
409
|
# The redirect function must be called before answer is called; redirect expects that a call be in the ringing or answering state.
|
349
410
|
# Use transfer when working with active answered calls.
|
350
411
|
#
|
351
|
-
# tel: classic phone number (See RFC 2896), must be proceeded by a + and the country code (ie - +14155551212 for a US #)
|
352
|
-
# sip: Session Initiation Protocol (SIP) address
|
353
412
|
#
|
354
413
|
# @param [Hash] params the options to create a message with.
|
355
|
-
#
|
356
|
-
#
|
414
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
415
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
416
|
+
# @option params [required, String] :to where to redirect the session to
|
357
417
|
# @return [String, nil] the JSON string to redirect the current session or nil
|
358
418
|
# if the method has been called from inside a block
|
359
419
|
def redirect(params={})
|
@@ -400,19 +460,22 @@ module Tropo
|
|
400
460
|
#
|
401
461
|
# @overload say(params)
|
402
462
|
# @param [Hash] params the options to create a message with.
|
403
|
-
# @option params [String] :value the text or audio to be spoken or played back to the user
|
404
|
-
# @option params [
|
405
|
-
# @option params [
|
406
|
-
# @option params [Boolean] :
|
407
|
-
# @
|
408
|
-
#
|
409
|
-
# @overload say(
|
410
|
-
# @param [String] the text or audio to be spoken or played back to the user
|
463
|
+
# @option params [required, String] :value the text or audio to be spoken or played back to the user
|
464
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
465
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
466
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
467
|
+
# @option params [optional, Integer] :as specifies the type of data being spoken, so the TTS Engine can interpret it correctly. The possible values are "DATE", "DIGITS" and "NUMBER"
|
468
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to say which can be used with REST to interrupt the function
|
469
|
+
# @overload say(params, &block)
|
411
470
|
# @param [Hash] params the options to create a message with.
|
412
|
-
# @
|
413
|
-
# @option params [
|
414
|
-
# @option params [
|
415
|
-
# @
|
471
|
+
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
472
|
+
# @option params [required, String] :value the text or audio to be spoken or played back to the user
|
473
|
+
# @option params [optional, String] :voice (allison) specifies the voice to be used when speaking text to a user
|
474
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
475
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
476
|
+
# @option params [optional, Integer] :as specifies the type of data being spoken, so the TTS Engine can interpret it correctly. The possible values are "DATE", "DIGITS" and "NUMBER"
|
477
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to say which can be used with REST to interrupt the function
|
478
|
+
# @return [String, nil] the JSON string to be passed back to Tropo or nil
|
416
479
|
# if the method has been called from inside a block
|
417
480
|
def say(value=nil, params={})
|
418
481
|
|
@@ -458,10 +521,11 @@ module Tropo
|
|
458
521
|
# The resulting recording may then be sent via FTP or an HTTP POST/Multipart Form.
|
459
522
|
#
|
460
523
|
# @param [Hash] params the options to create a message with.
|
461
|
-
# @option params [String] :url a valid URI, an HTTP, FTP or email address to POST the recording file to
|
524
|
+
# @option params [required, String] :url a valid URI, an HTTP, FTP or email address to POST the recording file to
|
462
525
|
# @option params [optional, String] :format (audio/wav) the audio format to record in, either a wav or mp3
|
463
526
|
# @option params [optional, String] :username if posting to FTP, the username for the FTP server
|
464
527
|
# @option params [optional, String] :password if posting to FTP, the password for the FTP server
|
528
|
+
# @option params [optional, String] :method (POST) defines how to send the audio file - values are POST or PUT and applies only to HTTP
|
465
529
|
# @return [String, nil] returns the JSON string to start the recording of a session or nil
|
466
530
|
# if the method has been called from inside a block
|
467
531
|
def start_recording(params={})
|
@@ -506,22 +570,34 @@ module Tropo
|
|
506
570
|
#
|
507
571
|
# @overload transfer(params)
|
508
572
|
# @param [Hash] params the options to create a transfer action request with
|
509
|
-
# @option params [String] :
|
510
|
-
# @option params [optional, Boolean] :answer_on_media ???
|
511
|
-
# @option params [optional, Integer] :answer_timeout the amount of time to ring the far side before giving up and going to the next step
|
512
|
-
# @option params [optional, Boolean] :required (true) ???
|
513
|
-
# @option params [required, String] :to where to redirect the session to
|
573
|
+
# @option params [required, String] :to the new destination for the incoming call as a URL
|
514
574
|
# @option params [optional, String] :from set the from id for the session when redirecting
|
515
|
-
# @option params [optional, Integer] :
|
575
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
576
|
+
# @option params [optional, Integer] :ring_repeat This specifies the number of times the audio file specified in the ring event will repeat itself.
|
577
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
578
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
579
|
+
# @option params [optional, Float] :timeout amount of time Tropo will wait--in seconds--for the other party to answer the call
|
580
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
581
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to record which can be used with REST to interrupt the function
|
582
|
+
# @option params [optional, String] :on adds event callback to enable "ring" event, which allows you to play an audio file or say something while the outbound call rings
|
583
|
+
# @option params [optional, Boolean] :answer_on_media (false) if true, the call will be concisdered answered and audio will being playing as soon as media is received (ringing, busy, etc)
|
584
|
+
# @options params [optional, Hash] :headers A set of key/values to apply as customer SIP headers to the outgoing call
|
585
|
+
# @option params [optional, String] :choices when used with transfer, this defines the terminator
|
516
586
|
# @overload transfer(params, &block)
|
517
587
|
# @param [Hash] params the options to create a transfer action request with
|
518
|
-
# @
|
519
|
-
# @option params [
|
520
|
-
# @option params [optional, Integer] :answer_timeout the amount of time to ring the far side before giving up and going to the next step
|
521
|
-
# @option params [optional, Boolean] :required (true) ???
|
522
|
-
# @option params [required, String] :to where to redirect the session to
|
588
|
+
# @param [Block] takes a block so that you may trigger actions, such as a say, on a specific event
|
589
|
+
# @option params [required, String] :to the new destination for the incoming call as a URL
|
523
590
|
# @option params [optional, String] :from set the from id for the session when redirecting
|
524
|
-
# @option params [optional, Integer] :ring_repeat
|
591
|
+
# @option params [optional, Integer] :ring_repeat This specifies the number of times the audio file specified in the ring event will repeat itself.
|
592
|
+
# @option params [optional, String] :name this is the key used to identify the result of an operation, so you can differentiate between multiple results
|
593
|
+
# @option params [optional, Boolean] :required (true) determines whether Tropo should move on to the next verb - if true, Tropo will only move on if the current operation completed
|
594
|
+
# @option params [optional, Float] :timeout amount of time Tropo will wait--in seconds--for the other party to answer the call
|
595
|
+
# @option params [optional, Integer] :interdigit_timeout (nil) defines how long to wait between key presses to determine the user has stopped entering input
|
596
|
+
# @option params [optional, String or Array] :allow_signals allows you to assign a signal to record which can be used with REST to interrupt the function
|
597
|
+
# @option params [optional, String] :on adds event callback to enable "ring" event, which allows you to play an audio file or say something while the outbound call rings
|
598
|
+
# @option params [optional, Boolean] :answer_on_media (false) if true, the call will be concisdered answered and audio will being playing as soon as media is received (ringing, busy, etc)
|
599
|
+
# @options params [optional, Hash] :headers A set of key/values to apply as customer SIP headers to the outgoing call
|
600
|
+
# @option params [optional, String] :choices when used with transfer, this defines the terminator
|
525
601
|
# @return [nil, String]
|
526
602
|
def transfer(params={}, &block)
|
527
603
|
if block_given?
|
@@ -550,5 +626,17 @@ module Tropo
|
|
550
626
|
def voice=(voice)
|
551
627
|
@voice = voice
|
552
628
|
end
|
629
|
+
|
630
|
+
def wait(params={}, &block)
|
631
|
+
if block_given?
|
632
|
+
create_nested_hash('wait', params)
|
633
|
+
instance_exec(&block)
|
634
|
+
@response[:tropo] << @nested_hash
|
635
|
+
else
|
636
|
+
hash = build_action('wait', params)
|
637
|
+
@response[:tropo] << hash
|
638
|
+
end
|
639
|
+
render_response if @building.nil?
|
640
|
+
end
|
553
641
|
end
|
554
642
|
end
|
@@ -2,6 +2,9 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "Tropo" do
|
4
4
|
|
5
|
+
|
6
|
+
response = Tropo::Generator.wait({ :milliseconds => 10, :allowSignals => "exit"})
|
7
|
+
|
5
8
|
# Ask action tests (and alias Prompt)
|
6
9
|
it "should generate a complete 'ask' JSON document" do
|
7
10
|
response = Tropo::Generator.ask({ :name => 'foo',
|
@@ -362,15 +365,6 @@ describe "Tropo" do
|
|
362
365
|
@@new_session.should == 'foobar'
|
363
366
|
end
|
364
367
|
|
365
|
-
it "should see an object passed into the block" do
|
366
|
-
session = 'foobar'
|
367
|
-
result = Tropo::Generator.new(session) do
|
368
|
-
session.should == 'foobar'
|
369
|
-
say :value => 'blah'
|
370
|
-
on :event => 'error', :next => 'error.json'
|
371
|
-
end
|
372
|
-
end
|
373
|
-
|
374
368
|
it "should allow you to create a Tropo::Generator object and build up a JSON request with two says" do
|
375
369
|
tropo = Tropo::Generator.new
|
376
370
|
tropo.say('foo')
|
data/tropo-webapi-ruby.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tropo-webapi-ruby}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.13"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jason Goecke"]
|
@@ -14,16 +14,19 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.email = %q{jsgoecke@voxeo.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
"README.
|
17
|
+
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
"HISTORY.rdoc",
|
21
|
+
# "HISTORY.rdoc",
|
22
22
|
"LICENSE",
|
23
|
-
"README.
|
23
|
+
"README.md",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"examples/sinatra_server.rb",
|
27
|
+
"examples/conferenceJoinLeave.rb",
|
28
|
+
"examples/machineDetection.rb",
|
29
|
+
"examples/transferWhisper.rb",
|
27
30
|
"lib/tropo-webapi-ruby.rb",
|
28
31
|
"lib/tropo-webapi-ruby/object_patch.rb",
|
29
32
|
"lib/tropo-webapi-ruby/tropo-webapi-ruby-helpers.rb",
|
metadata
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tropo-webapi-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 11
|
10
|
-
version: 0.1.11
|
4
|
+
version: 0.1.13
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
13
7
|
- Jason Goecke
|
@@ -15,22 +9,15 @@ autorequire:
|
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
11
|
|
18
|
-
date: 2011-06-24 00:00:00
|
19
|
-
default_executable:
|
12
|
+
date: 2011-06-24 00:00:00 Z
|
20
13
|
dependencies:
|
21
14
|
- !ruby/object:Gem::Dependency
|
22
15
|
name: rspec
|
23
16
|
prerelease: false
|
24
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
18
|
requirements:
|
27
19
|
- - ">="
|
28
20
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 13
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 2
|
33
|
-
- 9
|
34
21
|
version: 1.2.9
|
35
22
|
type: :development
|
36
23
|
version_requirements: *id001
|
@@ -38,15 +25,9 @@ dependencies:
|
|
38
25
|
name: json_pure
|
39
26
|
prerelease: false
|
40
27
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
28
|
requirements:
|
43
29
|
- - ">="
|
44
30
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 31
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 2
|
49
|
-
- 0
|
50
31
|
version: 1.2.0
|
51
32
|
type: :runtime
|
52
33
|
version_requirements: *id002
|
@@ -54,15 +35,9 @@ dependencies:
|
|
54
35
|
name: hashie
|
55
36
|
prerelease: false
|
56
37
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
38
|
requirements:
|
59
39
|
- - ">="
|
60
40
|
- !ruby/object:Gem::Version
|
61
|
-
hash: 23
|
62
|
-
segments:
|
63
|
-
- 0
|
64
|
-
- 2
|
65
|
-
- 0
|
66
41
|
version: 0.2.0
|
67
42
|
type: :runtime
|
68
43
|
version_requirements: *id003
|
@@ -74,15 +49,17 @@ extensions: []
|
|
74
49
|
|
75
50
|
extra_rdoc_files:
|
76
51
|
- LICENSE
|
77
|
-
- README.
|
52
|
+
- README.md
|
78
53
|
files:
|
79
54
|
- .document
|
80
|
-
- HISTORY.rdoc
|
81
55
|
- LICENSE
|
82
|
-
- README.
|
56
|
+
- README.md
|
83
57
|
- Rakefile
|
84
58
|
- VERSION
|
59
|
+
- examples/conferenceJoinLeave.rb
|
60
|
+
- examples/machineDetection.rb
|
85
61
|
- examples/sinatra_server.rb
|
62
|
+
- examples/transferWhisper.rb
|
86
63
|
- lib/tropo-webapi-ruby.rb
|
87
64
|
- lib/tropo-webapi-ruby/object_patch.rb
|
88
65
|
- lib/tropo-webapi-ruby/tropo-webapi-ruby-helpers.rb
|
@@ -91,41 +68,33 @@ files:
|
|
91
68
|
- spec/spec_helper.rb
|
92
69
|
- spec/tropo-webapi-ruby_spec.rb
|
93
70
|
- tropo-webapi-ruby.gemspec
|
94
|
-
has_rdoc: true
|
95
71
|
homepage: http://tropo.com
|
96
72
|
licenses: []
|
97
73
|
|
74
|
+
metadata: {}
|
75
|
+
|
98
76
|
post_install_message:
|
99
77
|
rdoc_options: []
|
100
78
|
|
101
79
|
require_paths:
|
102
80
|
- lib
|
103
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
82
|
requirements:
|
106
83
|
- - ">="
|
107
84
|
- !ruby/object:Gem::Version
|
108
|
-
hash: 59
|
109
|
-
segments:
|
110
|
-
- 1
|
111
|
-
- 8
|
112
|
-
- 6
|
113
85
|
version: 1.8.6
|
114
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
87
|
requirements:
|
117
88
|
- - ">="
|
118
89
|
- !ruby/object:Gem::Version
|
119
|
-
hash: 3
|
120
|
-
segments:
|
121
|
-
- 0
|
122
90
|
version: "0"
|
123
91
|
requirements: []
|
124
92
|
|
125
93
|
rubyforge_project:
|
126
|
-
rubygems_version:
|
94
|
+
rubygems_version: 2.2.2
|
127
95
|
signing_key:
|
128
96
|
specification_version: 3
|
129
97
|
summary: Tropo Web API Ruby Gem
|
130
98
|
test_files: []
|
131
99
|
|
100
|
+
has_rdoc:
|
data/HISTORY.rdoc
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
= Tropo Release History
|
2
|
-
|
3
|
-
== Version 0.1.5
|
4
|
-
|
5
|
-
- First public release
|
6
|
-
|
7
|
-
== Version 0.1.6
|
8
|
-
|
9
|
-
- Added the appropriate ActiveSupport dependency for 'instance_exec' for Ruby 1.8.6 support.
|
10
|
-
- Added a dependency and support for Hashie.
|
11
|
-
|
12
|
-
== Version 0.1.9
|
13
|
-
|
14
|
-
- Fixed the start_recording so it does not require a 'name' parameter
|
15
|
-
- Aliased start_call_recording -> start_recording
|
16
|
-
- Aliased stop_call_recording -> stop_recording
|
17
|
-
- Fixes to the README
|
18
|
-
- Fixed the yardoc install
|
19
|
-
- The Tropo::Generator.parse method will now take a JSON string or a Ruby hash.
|