Class: Twilio::TwiML::VoiceResponse

Inherits:
TwiML
  • Object
show all
Defined in:
lib/twilio-ruby/twiml/voice_response.rb

Overview

<Response> TwiML for Voice

Instance Attribute Summary

Attributes inherited from TwiML

#name

Instance Method Summary collapse

Methods inherited from TwiML

#add_child, #add_text, #append, #comment, to_lower_camel_case, #to_s, #xml

Constructor Details

#initialize(**keyword_args) {|_self| ... } ⇒ VoiceResponse

Returns a new instance of VoiceResponse.

Yields:

  • (_self)

Yield Parameters:



14
15
16
17
18
19
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 14

def initialize(**keyword_args)
  super(**keyword_args)
  @name = 'Response'

  yield(self) if block_given?
end

Instance Method Details

#connect(action: nil, method: nil, **keyword_args) {|connect| ... } ⇒ Object

Create a new <Connect> element

action

Action URL

method

Action URL method

keyword_args

additional attributes

Yields:



26
27
28
29
30
31
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 26

def connect(action: nil, method: nil, **keyword_args)
  connect = Connect.new(action: action, method: method, **keyword_args)

  yield(connect) if block_given?
  append(connect)
end

#dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, answer_on_bridge: nil, ring_tone: nil, recording_track: nil, sequential: nil, refer_url: nil, refer_method: nil, **keyword_args) {|dial| ... } ⇒ Object

Create a new <Dial> element

number

Phone number to dial

action

Action URL

method

Action URL method

timeout

Time to wait for answer

hangup_on_star

Hangup call on star press

time_limit

Max time length

caller_id

Caller ID to display

record

Record the call

trim

Trim the recording

recording_status_callback

Recording status callback URL

recording_status_callback_method

Recording status callback URL method

recording_status_callback_event

Recording status callback events

answer_on_bridge

Preserve the ringing behavior of the inbound call until the Dialed call picks up

ring_tone

Ringtone allows you to override the ringback tone that Twilio will play back to the caller while executing the Dial

recording_track

To indicate which audio track should be recorded

sequential

Used to determine if child TwiML nouns should be dialed in order, one after the other (sequential) or dial all at once (parallel). Default is false, parallel

refer_url

Webhook that will receive future SIP REFER requests

refer_method

The HTTP method to use for the refer Webhook

keyword_args

additional attributes

Yields:



54
55
56
57
58
59
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 54

def dial(number: nil, action: nil, method: nil, timeout: nil, hangup_on_star: nil, time_limit: nil, caller_id: nil, record: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, answer_on_bridge: nil, ring_tone: nil, recording_track: nil, sequential: nil, refer_url: nil, refer_method: nil, **keyword_args)
  dial = Dial.new(number: number, action: action, method: method, timeout: timeout, hangup_on_star: hangup_on_star, time_limit: time_limit, caller_id: caller_id, record: record, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, recording_status_callback_event: recording_status_callback_event, answer_on_bridge: answer_on_bridge, ring_tone: ring_tone, recording_track: recording_track, sequential: sequential, refer_url: refer_url, refer_method: refer_method, **keyword_args)

  yield(dial) if block_given?
  append(dial)
end

#echo(**keyword_args) ⇒ Object

Create a new <Echo> element

keyword_args

additional attributes



64
65
66
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 64

def echo(**keyword_args)
  append(Echo.new(**keyword_args))
end

#enqueue(name: nil, action: nil, max_queue_size: nil, method: nil, wait_url: nil, wait_url_method: nil, workflow_sid: nil, **keyword_args) {|enqueue| ... } ⇒ Object

Create a new <Enqueue> element

name

Friendly name

action

Action URL

max_queue_size

Maximum size of queue

method

Action URL method

wait_url

Wait URL

wait_url_method

Wait URL method

workflow_sid

TaskRouter Workflow SID

keyword_args

additional attributes

Yields:



78
79
80
81
82
83
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 78

def enqueue(name: nil, action: nil, max_queue_size: nil, method: nil, wait_url: nil, wait_url_method: nil, workflow_sid: nil, **keyword_args)
  enqueue = Enqueue.new(name: name, action: action, max_queue_size: max_queue_size, method: method, wait_url: wait_url, wait_url_method: wait_url_method, workflow_sid: workflow_sid, **keyword_args)

  yield(enqueue) if block_given?
  append(enqueue)
end

#gather(input: nil, action: nil, method: nil, timeout: nil, speech_timeout: nil, max_speech_time: nil, profanity_filter: nil, finish_on_key: nil, num_digits: nil, partial_result_callback: nil, partial_result_callback_method: nil, language: nil, hints: nil, barge_in: nil, debug: nil, action_on_empty_result: nil, speech_model: nil, enhanced: nil, **keyword_args) {|gather| ... } ⇒ Object

Create a new <Gather> element

input

Input type Twilio should accept

action

Action URL

method

Action URL method

timeout

Time to wait to gather input

speech_timeout

Time to wait to gather speech input and it should be either auto or a positive integer.

max_speech_time

Max allowed time for speech input

profanity_filter

Profanity Filter on speech

finish_on_key

Finish gather on key

num_digits

Number of digits to collect

partial_result_callback

Partial result callback URL

partial_result_callback_method

Partial result callback URL method

language

Language to use

hints

Speech recognition hints

barge_in

Stop playing media upon speech

debug

Allow debug for gather

action_on_empty_result

Force webhook to the action URL event if there is no input

speech_model

Specify the model that is best suited for your use case

enhanced

Use enhanced speech model

keyword_args

additional attributes

Yields:



106
107
108
109
110
111
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 106

def gather(input: nil, action: nil, method: nil, timeout: nil, speech_timeout: nil, max_speech_time: nil, profanity_filter: nil, finish_on_key: nil, num_digits: nil, partial_result_callback: nil, partial_result_callback_method: nil, language: nil, hints: nil, barge_in: nil, debug: nil, action_on_empty_result: nil, speech_model: nil, enhanced: nil, **keyword_args)
  gather = Gather.new(input: input, action: action, method: method, timeout: timeout, speech_timeout: speech_timeout, max_speech_time: max_speech_time, profanity_filter: profanity_filter, finish_on_key: finish_on_key, num_digits: num_digits, partial_result_callback: partial_result_callback, partial_result_callback_method: partial_result_callback_method, language: language, hints: hints, barge_in: barge_in, debug: debug, action_on_empty_result: action_on_empty_result, speech_model: speech_model, enhanced: enhanced, **keyword_args)

  yield(gather) if block_given?
  append(gather)
end

#hangup(**keyword_args) {|hangup| ... } ⇒ Object

Create a new <Hangup> element

keyword_args

additional attributes

Yields:



116
117
118
119
120
121
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 116

def hangup(**keyword_args)
  hangup = Hangup.new(**keyword_args)

  yield(hangup) if block_given?
  append(hangup)
end

#leave(**keyword_args) ⇒ Object

Create a new <Leave> element

keyword_args

additional attributes



126
127
128
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 126

def leave(**keyword_args)
  append(Leave.new(**keyword_args))
end

#pause(length: nil, **keyword_args) ⇒ Object

Create a new <Pause> element

length

Length in seconds to pause

keyword_args

additional attributes



134
135
136
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 134

def pause(length: nil, **keyword_args)
  append(Pause.new(length: length, **keyword_args))
end

#pay(input: nil, action: nil, bank_account_type: nil, status_callback: nil, status_callback_method: nil, timeout: nil, max_attempts: nil, security_code: nil, postal_code: nil, min_postal_code_length: nil, payment_connector: nil, payment_method: nil, token_type: nil, charge_amount: nil, currency: nil, description: nil, valid_card_types: nil, language: nil, **keyword_args) {|pay| ... } ⇒ Object

Create a new <Pay> element

input

Input type Twilio should accept

action

Action URL

bank_account_type

Bank account type for ach transactions. If set, payment method attribute must be provided and value should be set to ach-debit. defaults to consumer-checking

status_callback

Status callback URL

status_callback_method

Status callback method

timeout

Time to wait to gather input

max_attempts

Maximum number of allowed retries when gathering input

security_code

Prompt for security code

postal_code

Prompt for postal code and it should be true/false or default postal code

min_postal_code_length

Prompt for minimum postal code length

payment_connector

Unique name for payment connector

payment_method

Payment method to be used. defaults to credit-card

token_type

Type of token

charge_amount

Amount to process. If value is greater than 0 then make the payment else create a payment token

currency

Currency of the amount attribute

description

Details regarding the payment

valid_card_types

Comma separated accepted card types

language

Language to use

keyword_args

additional attributes

Yields:



247
248
249
250
251
252
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 247

def pay(input: nil, action: nil, bank_account_type: nil, status_callback: nil, status_callback_method: nil, timeout: nil, max_attempts: nil, security_code: nil, postal_code: nil, min_postal_code_length: nil, payment_connector: nil, payment_method: nil, token_type: nil, charge_amount: nil, currency: nil, description: nil, valid_card_types: nil, language: nil, **keyword_args)
  pay = Pay.new(input: input, action: action, bank_account_type: , status_callback: status_callback, status_callback_method: status_callback_method, timeout: timeout, max_attempts: max_attempts, security_code: security_code, postal_code: postal_code, min_postal_code_length: min_postal_code_length, payment_connector: payment_connector, payment_method: payment_method, token_type: token_type, charge_amount: charge_amount, currency: currency, description: description, valid_card_types: valid_card_types, language: language, **keyword_args)

  yield(pay) if block_given?
  append(pay)
end

#play(url: nil, loop: nil, digits: nil, **keyword_args) ⇒ Object

Create a new <Play> element

url

Media URL

loop

Times to loop media

digits

Play DTMF tones for digits

keyword_args

additional attributes



144
145
146
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 144

def play(url: nil, loop: nil, digits: nil, **keyword_args)
  append(Play.new(url: url, loop: loop, digits: digits, **keyword_args))
end

#prompt(for_: nil, error_type: nil, card_type: nil, attempt: nil, require_matching_inputs: nil, **keyword_args) {|prompt| ... } ⇒ Object

Create a new <Prompt> element

for_

Name of the payment source data element

error_type

Type of error

card_type

Type of the credit card

attempt

Current attempt count

require_matching_inputs

Require customer to input requested information twice and verify matching.

keyword_args

additional attributes

Yields:



262
263
264
265
266
267
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 262

def prompt(for_: nil, error_type: nil, card_type: nil, attempt: nil, require_matching_inputs: nil, **keyword_args)
  prompt = Prompt.new(for_: for_, error_type: error_type, card_type: card_type, attempt: attempt, require_matching_inputs: require_matching_inputs, **keyword_args)

  yield(prompt) if block_given?
  append(prompt)
end

#queue(name, url: nil, method: nil, reservation_sid: nil, post_work_activity_sid: nil, **keyword_args) ⇒ Object

Create a new <Queue> element

name

Queue name

url

Action URL

method

Action URL method

reservation_sid

TaskRouter Reservation SID

post_work_activity_sid

TaskRouter Activity SID

keyword_args

additional attributes



156
157
158
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 156

def queue(name, url: nil, method: nil, reservation_sid: nil, post_work_activity_sid: nil, **keyword_args)
  append(Queue.new(name, url: url, method: method, reservation_sid: reservation_sid, post_work_activity_sid: post_work_activity_sid, **keyword_args))
end

#record(action: nil, method: nil, timeout: nil, finish_on_key: nil, max_length: nil, play_beep: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, transcribe: nil, transcribe_callback: nil, **keyword_args) ⇒ Object

Create a new <Record> element

action

Action URL

method

Action URL method

timeout

Timeout to begin recording

finish_on_key

Finish recording on key

max_length

Max time to record in seconds

play_beep

Play beep

trim

Trim the recording

recording_status_callback

Status callback URL

recording_status_callback_method

Status callback URL method

recording_status_callback_event

Recording status callback events

transcribe

Transcribe the recording

transcribe_callback

Transcribe callback URL

keyword_args

additional attributes



175
176
177
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 175

def record(action: nil, method: nil, timeout: nil, finish_on_key: nil, max_length: nil, play_beep: nil, trim: nil, recording_status_callback: nil, recording_status_callback_method: nil, recording_status_callback_event: nil, transcribe: nil, transcribe_callback: nil, **keyword_args)
  append(Record.new(action: action, method: method, timeout: timeout, finish_on_key: finish_on_key, max_length: max_length, play_beep: play_beep, trim: trim, recording_status_callback: recording_status_callback, recording_status_callback_method: recording_status_callback_method, recording_status_callback_event: recording_status_callback_event, transcribe: transcribe, transcribe_callback: transcribe_callback, **keyword_args))
end

#redirect(url, method: nil, **keyword_args) ⇒ Object

Create a new <Redirect> element

url

Redirect URL

method

Redirect URL method

keyword_args

additional attributes



184
185
186
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 184

def redirect(url, method: nil, **keyword_args)
  append(Redirect.new(url, method: method, **keyword_args))
end

#refer(action: nil, method: nil, **keyword_args) {|refer| ... } ⇒ Object

Create a new <Refer> element

action

Action URL

method

Action URL method

keyword_args

additional attributes

Yields:



296
297
298
299
300
301
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 296

def refer(action: nil, method: nil, **keyword_args)
  refer = Refer.new(action: action, method: method, **keyword_args)

  yield(refer) if block_given?
  append(refer)
end

#reject(reason: nil, **keyword_args) {|reject| ... } ⇒ Object

Create a new <Reject> element

reason

Rejection reason

keyword_args

additional attributes

Yields:



192
193
194
195
196
197
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 192

def reject(reason: nil, **keyword_args)
  reject = Reject.new(reason: reason, **keyword_args)

  yield(reject) if block_given?
  append(reject)
end

#say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args) {|say| ... } ⇒ Object

Create a new <Say> element

message

Message to say

voice

Voice to use

loop

Times to loop message

language

Message language

keyword_args

additional attributes

Yields:



206
207
208
209
210
211
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 206

def say(message: nil, voice: nil, loop: nil, language: nil, **keyword_args)
  say = Say.new(message: message, voice: voice, loop: loop, language: language, **keyword_args)

  yield(say) if block_given?
  append(say)
end

#sms(message, to: nil, from: nil, action: nil, method: nil, status_callback: nil, **keyword_args) ⇒ Object

Create a new <Sms> element

message

Message body

to

Number to send message to

from

Number to send message from

action

Action URL

method

Action URL method

status_callback

Status callback URL

keyword_args

additional attributes



222
223
224
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 222

def sms(message, to: nil, from: nil, action: nil, method: nil, status_callback: nil, **keyword_args)
  append(Sms.new(message, to: to, from: from, action: action, method: method, status_callback: status_callback, **keyword_args))
end

#start(action: nil, method: nil, **keyword_args) {|start| ... } ⇒ Object

Create a new <Start> element

action

Action URL

method

Action URL method

keyword_args

additional attributes

Yields:



274
275
276
277
278
279
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 274

def start(action: nil, method: nil, **keyword_args)
  start = Start.new(action: action, method: method, **keyword_args)

  yield(start) if block_given?
  append(start)
end

#stop(**keyword_args) {|stop| ... } ⇒ Object

Create a new <Stop> element

keyword_args

additional attributes

Yields:



284
285
286
287
288
289
# File 'lib/twilio-ruby/twiml/voice_response.rb', line 284

def stop(**keyword_args)
  stop = Stop.new(**keyword_args)

  yield(stop) if block_given?
  append(stop)
end