Class: AdhearsionASR::PromptBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/adhearsion-asr/prompt_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(output_document, grammars, options) ⇒ PromptBuilder

Returns a new instance of PromptBuilder.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/adhearsion-asr/prompt_builder.rb', line 5

def initialize(output_document, grammars, options)
  input_options = {
    mode: options[:mode] || :dtmf,
    initial_timeout: timeout(options[:timeout] || Plugin.config.timeout),
    inter_digit_timeout: timeout(options[:inter_digit_timeout] || Plugin.config.inter_digit_timeout),
    max_silence: timeout(options[:timeout] || Plugin.config.timeout),
    min_confidence: Plugin.config.min_confidence,
    sensitivity: Plugin.config.sensitivity,
    grammars: grammars,
    recognizer: Plugin.config.recognizer,
    language: Plugin.config.input_language,
    terminator: options[:terminator]
  }.merge(options[:input_options] || {})

  @prompt = if output_document || options[:render_document]
    output_options = {
      render_document: options[:render_document] || {value: output_document},
      renderer: Adhearsion.config.platform.media.default_renderer,
      voice: Adhearsion.config.platform.media.default_voice
    }.merge(options[:output_options] || {})

    Punchblock::Component::Prompt.new output_options, input_options, barge_in: options.has_key?(:interruptible) ? options[:interruptible] : true
  else
    Punchblock::Component::Input.new input_options
  end
end

Instance Method Details

#execute(controller) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/adhearsion-asr/prompt_builder.rb', line 32

def execute(controller)
  controller.execute_component_and_await_completion @prompt

  result @prompt.complete_event.reason
rescue Adhearsion::Call::ExpiredError
  raise Adhearsion::Call::Hangup
end