lib/punchblock/translator/asterisk/component/mrcp_native_prompt.rb in punchblock-2.6.0 vs lib/punchblock/translator/asterisk/component/mrcp_native_prompt.rb in punchblock-2.7.0

- old
+ new

@@ -15,11 +15,11 @@ raise OptionError, "The recognizer #{recognizer} is unsupported." unless recognizer == 'unimrcp' raise OptionError, 'A document is required.' unless output_node.render_documents.count > 0 raise OptionError, 'Only one document is allowed.' if output_node.render_documents.count > 1 raise OptionError, 'Only inline documents are allowed.' if first_doc.url - raise OptionError, 'Only one audio file is allowed.' if first_doc.value.size > 1 + raise OptionError, 'Only one audio file is allowed.' if first_doc.size > 1 raise OptionError, 'A grammar is required.' unless input_node.grammars.count > 0 super end @@ -39,10 +39,22 @@ def first_doc output_node.render_documents.first end def audio_filename - first_doc.value.first + path = if first_doc.ssml? + first_doc.value.children.first.src + else + first_doc.value.first + end.sub('file://', '') + + dir = File.dirname(path) + basename = File.basename(path, '.*') + if dir == '.' + basename + else + File.join(dir, basename) + end end def unimrcp_app_options super do |opts| opts[:f] = audio_filename