Class: Telapi::Call
- Defined in:
- lib/telapi/call.rb
Overview
Wraps TelAPI Call functionality
Class Method Summary collapse
-
.get(id) ⇒ Object
Returns a Telapi::Call object given its id See www.telapi.com/docs/api/rest/calls/view/.
-
.hangup(id, status = 'completed') ⇒ Object
Hangs up a call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/hangup/.
-
.interrupt(id, url, method = 'POST', status = 'completed') ⇒ Object
Interrupts a call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/interrupt/.
-
.list(optional_params = {}) ⇒ Object
Returns a resource collection containing Telapi::Call objects See www.telapi.com/docs/api/rest/calls/list/.
-
.make(to, from, url, optional_params = {}) ⇒ Object
Creates a call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/make/.
-
.notifications(id, optional_params = {}) ⇒ Object
Returns a resource collection containing Telapi::Notification objects See www.telapi.com/docs/api/rest/notifications/list/.
-
.play_audio(id, sound_url, optional_params = {}) ⇒ Object
Play audio file during call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/play-audio/.
-
.record(id, record = true, optional_params = {}) ⇒ Object
Initiate or end a call recording, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/record/.
-
.recordings(id, optional_params = {}) ⇒ Object
Returns a resource collection containing Telapi::Recording objects See www.telapi.com/docs/api/rest/recordings/list/.
-
.send_digits(id, play_dtmf, play_dtmf_leg = 'aleg') ⇒ Object
Sends touch tones during call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/send-digits/.
-
.voice_effect(id, optional_params = {}) ⇒ Object
Change caller’s voice via speed and pitch of audio, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/voice-effects/.
Instance Method Summary collapse
-
#hangup(status = 'completed') ⇒ Object
See ::hangup.
-
#interrupt(url, method = 'POST', status = 'completed') ⇒ Object
See ::interrupt.
-
#notifications(optional_params = {}) ⇒ Object
See ::notifications.
-
#play_audio(sound_url, optional_params = {}) ⇒ Object
See ::play_audio.
-
#record(record = true, optional_params = {}) ⇒ Object
See ::record.
-
#recordings(optional_params = {}) ⇒ Object
See ::recordings.
-
#send_digits(play_dtmf, play_dtmf_leg = 'aleg') ⇒ Object
See ::send_digits.
-
#voice_effect(optional_params = {}) ⇒ Object
See ::voice_effect.
Methods inherited from Resource
Methods included from Network
api_uri, default_options, delete, post, response_format
Constructor Details
This class inherits a constructor from Telapi::Resource
Class Method Details
.get(id) ⇒ Object
Returns a Telapi::Call object given its id See www.telapi.com/docs/api/rest/calls/view/
24 25 26 27 |
# File 'lib/telapi/call.rb', line 24 def get(id) response = Network.get(['Calls', id]) Call.new(response) end |
.hangup(id, status = 'completed') ⇒ Object
Hangs up a call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/hangup/
Required params:
id-
call id
status-
completed
77 78 79 80 81 |
# File 'lib/telapi/call.rb', line 77 def hangup(id, status = 'completed') opts = { :Status => status } response = Network.post(['Calls', id], opts) Call.new(response) end |
.interrupt(id, url, method = 'POST', status = 'completed') ⇒ Object
Interrupts a call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/interrupt/
Required params:
id-
call id
url-
valid url
method-
(POST) or GET
status-
canceled or (completed)
65 66 67 68 69 |
# File 'lib/telapi/call.rb', line 65 def interrupt(id, url, method = 'POST', status = 'completed') opts = { :Url => url, :Method => method, :Status => status } response = Network.post(['Calls', id], opts) Call.new(response) end |
.list(optional_params = {}) ⇒ Object
Returns a resource collection containing Telapi::Call objects See www.telapi.com/docs/api/rest/calls/list/
Optional params is a hash containing:
To-
phone number, e.g. 7325551234
From-
phone number, e.g. 7325551234
Status-
ringing, in-progress, queued, busy, no-answer, or failed
StartTime-
date in the following format: YYYY-MM-DD
Page-
integer greater than 0
PageSize-
integer greater than 0
DisableFaxDirections-
true or (false)
17 18 19 20 |
# File 'lib/telapi/call.rb', line 17 def list(optional_params = {}) response = Network.get(['Calls'], optional_params) ResourceCollection.new(response, 'calls', self) end |
.make(to, from, url, optional_params = {}) ⇒ Object
Creates a call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/make/
Required params:
to-
phone number, e.g. 7325551234
from-
phone number, e.g. 7325551234
url-
valid url
Optional params is a hash containing:
ForwardedFrom-
phone number, e.g. 7325551234
Method-
(POST) or GET
FallbackUrl-
valid URL
FallbackMethod-
(POST) or GET
StatusCallback-
valid URL
StatusCallbackMethod-
(POST) or GET
SendDigits-
0-9, #, or *
Timeout-
integer greater than or equal to 0 (default: 60)
HideCallerId-
true or (false)
StraightToVoicemail-
true or (false)
IfMachine-
redirect, hangup, or (continue)
IfMachineUrl-
valid URL
IfMachineMethod-
(POST) or GET
51 52 53 54 55 |
# File 'lib/telapi/call.rb', line 51 def make(to, from, url, optional_params = {}) opts = { :To => to, :From => from, :Url => url }.merge(optional_params) response = Network.post(['Calls'], opts) Call.new(response) end |
.notifications(id, optional_params = {}) ⇒ Object
Returns a resource collection containing Telapi::Notification objects See www.telapi.com/docs/api/rest/notifications/list/
Required params:
id-
call id
Optional params is a hash containing:
Log-
0 (error), 1 (warning), or 2 (info)
Page-
integer greater than 0
PageSize-
integer greater than 0
172 173 174 175 |
# File 'lib/telapi/call.rb', line 172 def notifications(id, optional_params = {}) response = Network.get(['Calls', id, 'Notifications'], optional_params) ResourceCollection.new(response, 'notifications', Notification) end |
.play_audio(id, sound_url, optional_params = {}) ⇒ Object
Play audio file during call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/play-audio/
Required params:
id-
call id
sound_url-
valid URL
Optional params is a hash containing:
Length-
integer greater than or equal to 0
Legs-
aleg, bleg, or (both)
Loop-
true or (false)
Mix-
true or (false)
108 109 110 111 112 |
# File 'lib/telapi/call.rb', line 108 def play_audio(id, sound_url, optional_params = {}) opts = { :Sounds => sound_url }.merge(optional_params) response = Network.post(['Calls', id, 'Play'], opts) Call.new(response) end |
.record(id, record = true, optional_params = {}) ⇒ Object
Initiate or end a call recording, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/record/
Required params:
id-
call id
record-
(true) or false
Optional params is a hash containing:
TimeLimit-
integer greater than or equal to 0
CallbackUrl-
valid URL
141 142 143 144 145 |
# File 'lib/telapi/call.rb', line 141 def record(id, record = true, optional_params = {}) opts = { :Record => record }.merge(optional_params) response = Network.post(['Calls', id, 'Recordings'], opts) Call.new(response) end |
.recordings(id, optional_params = {}) ⇒ Object
Returns a resource collection containing Telapi::Recording objects See www.telapi.com/docs/api/rest/recordings/list/
Required params:
id-
call id
Optional params is a hash containing:
DateCreated-
date in the following format: YYYY-MM-DD
Page-
integer greater than 0
PageSize-
integer greater than 0
157 158 159 160 |
# File 'lib/telapi/call.rb', line 157 def recordings(id, optional_params = {}) response = Network.get(['Calls', id, 'Recordings'], optional_params) ResourceCollection.new(response, 'recordings', Recording) end |
.send_digits(id, play_dtmf, play_dtmf_leg = 'aleg') ⇒ Object
Sends touch tones during call, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/send-digits/
Required params:
id-
call id
play_dtmf-
0-9, W, or w
play_dtmf_leg-
aleg or bleg
90 91 92 93 94 |
# File 'lib/telapi/call.rb', line 90 def send_digits(id, play_dtmf, play_dtmf_leg = 'aleg') opts = { :PlayDtmf => play_dtmf, :PlayDtmfLeg => play_dtmf_leg } response = Network.post(['Calls', id], opts) Call.new(response) end |
.voice_effect(id, optional_params = {}) ⇒ Object
Change caller’s voice via speed and pitch of audio, returning a Telapi::Call object See www.telapi.com/docs/api/rest/calls/voice-effects/
Required params:
id-
call id
Optional params is a hash containing:
AudioDirection-
in or (out)
Pitch-
value between -1 and 1, including 0
PitchSemiTones-
value between -14 and 14, including 0
PitchOctaves-
value between -1 and 1, including 0
Rate-
value between -1 and 1, including 0
126 127 128 129 |
# File 'lib/telapi/call.rb', line 126 def voice_effect(id, optional_params = {}) response = Network.post(['Calls', id, 'Effect'], optional_params) Call.new(response) end |
Instance Method Details
#hangup(status = 'completed') ⇒ Object
See ::hangup
184 185 186 |
# File 'lib/telapi/call.rb', line 184 def hangup(status = 'completed') self.class.hangup(self.sid, status) end |
#interrupt(url, method = 'POST', status = 'completed') ⇒ Object
See ::interrupt
179 180 181 |
# File 'lib/telapi/call.rb', line 179 def interrupt(url, method = 'POST', status = 'completed') self.class.interrupt(self.sid, url, method, status) end |
#notifications(optional_params = {}) ⇒ Object
See ::notifications
214 215 216 |
# File 'lib/telapi/call.rb', line 214 def notifications(optional_params = {}) self.class.notifications(self.sid, optional_params) end |
#play_audio(sound_url, optional_params = {}) ⇒ Object
See ::play_audio
194 195 196 |
# File 'lib/telapi/call.rb', line 194 def play_audio(sound_url, optional_params = {}) self.class.play_audio(self.sid, sound_url, optional_params) end |
#record(record = true, optional_params = {}) ⇒ Object
See ::record
204 205 206 |
# File 'lib/telapi/call.rb', line 204 def record(record = true, optional_params = {}) self.class.record(self.sid, record, optional_params) end |
#recordings(optional_params = {}) ⇒ Object
See ::recordings
209 210 211 |
# File 'lib/telapi/call.rb', line 209 def recordings(optional_params = {}) self.class.recordings(self.sid, optional_params) end |
#send_digits(play_dtmf, play_dtmf_leg = 'aleg') ⇒ Object
See ::send_digits
189 190 191 |
# File 'lib/telapi/call.rb', line 189 def send_digits(play_dtmf, play_dtmf_leg = 'aleg') self.class.send_digits(self.sid, play_dtmf, play_dtmf_leg) end |
#voice_effect(optional_params = {}) ⇒ Object
See ::voice_effect
199 200 201 |
# File 'lib/telapi/call.rb', line 199 def voice_effect(optional_params = {}) self.class.voice_effect(self.sid, optional_params) end |