1

我正在尝试在语音 XML 代码块中禁用语音识别。我发现很难掌握这种语法,将项目从 Twilio 的 TwiML 转换为 Nexmo 所需的 VoiceXML。

这是我的代码。我尝试将<block>元素更改为<field>,这似乎禁用了语音输入,但后来我<goto>没有工作。此外,与这个特定问题无关,我如何以编程方式挂断呼叫者?<disconnect/>似乎不起作用。

<vxml version="2.1">
    <form>
        <block>
            <property name="inputmodes" value="dtmf"/>
            <prompt>Station 1</prompt>
            <audio src="http://foo.io/file.mp3" fetchhint="prefetch" />

            <goto next="http://foo.io/next-menu"/>
        </block>
    </form>
</vxml>
4

1 回答 1

0

这是接受digits输入的简单方法。但请注意,这也将允许语音(但是,会将其识别为数字)。

<vxml version="2.1">
<form>
  <field name="myField" type="digits">
    <prompt>
      Press some digits, okay?
    </prompt>
    </field>
    <block>
      <submit next="/next.php"/>
    </block>
  </form>
</vxml>

由此,检测到的任何数字(无论是语音还是按键)都将在请求myDigits时发送到查询字符串中next.php。使用method属性 ofsubmit更改为 a POST,或使用namelist属性更改确切发送的字段。

但这里有一个更简单的版本,使用<menu>而不是<form>,您可以在其中为 设置 DTMF <choice>

<vxml version="2.1">
  <menu>
    <prompt>
      Press one or two.
    </prompt>
    <choice next="/pick1.php" dtmf="1">one</choice>
    <choice next="/pick2.php" dtmf="2">two</choice>
  </menu>
</vxml>

值得一提的是,VXML 比 TwiML 更强大。虽然您可以复制 TwiML 使用的单个响应/XML 文档模式,但使用 VXML,您可以在单个文档中收集多个字段、进行数据验证、在需要时获取外部数据,甚至在 VXML 中使用 JavaScript。

于 2014-09-02T20:36:22.443 回答