You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Twilio Gather组件未等待用户输入问题求助

问题诊断与解决方案

核心问题

你的<Gather>标签配置存在矛盾:设置了input="speech"(仅接收语音输入),但播报内容却提示用户按1(DTMF按键输入)。Twilio无法识别预期的输入类型,导致播报完成后直接终止通话。

修正步骤

  1. 匹配输入类型:根据提示内容,调整input参数以对应实际需要的输入方式:
    • 仅支持按键:input="dtmf"
    • 同时支持语音和按键:input="speech dtmf"
  2. 添加必要属性:
    • action:指定收集到输入后Twilio要回调的服务器URL(需自行编写处理用户输入的逻辑)
    • method:回调请求的HTTP方法(通常用POST)
    • timeout:播报结束后等待用户输入的时长(默认5秒,可按需调整)
    • numDigits:指定需要收集的按键位数(此处为1位)
  3. 处理无输入场景:在<Gather>后添加 fallback 逻辑,避免用户未输入时直接挂断。

修正后的Twiml示例

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Gather input="dtmf" action="/your-handler-url" method="POST" timeout="10" numDigits="1">
        <Say language="en-GB"><prosody rate="slow">There is a new daytime C<break strength="x-weak" time="100ms"/>T<break strength="x-weak" time="100ms"/>A for Mid and South Essex</prosody><break/></Say>
        <Say language="en-GB"><prosody rate="slow">There is a new daytime C<break strength="x-weak" time="100ms"/>T<break strength="x-weak" time="100ms"/>A for Mid and South Essex</prosody><break/></Say>
        <Say language="en-GB">Please press 1 to acknowledge.</Say>
    </Gather>
    <!-- 用户未输入时的 fallback -->
    <Say language="en-GB">I didn't receive your input. Goodbye.</Say>
</Response>

额外注意事项

  • 确保action指定的URL能正常响应Twilio的请求,返回新的Twiml指令(比如确认收到输入后的播报)
  • 英国号码建议给<Say>标签添加language="en-GB"属性,保证语音播报符合当地口音
  • 若需要支持语音输入,需确保你的Twilio账号已启用语音识别功能,同时将提示内容改为语音指令(比如"Please say 'yes' to acknowledge")

内容的提问来源于stack exchange,提问作者timpwbaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:52:05