【问题标题】:How to prevent Twilio Gather from hanging up when the input is ONLY the finishOnKey?当输入仅是finishOnKey时,如何防止Twilio Gather挂断?
【发布时间】:2018-05-16 19:56:38
【问题描述】:

我们有一个简单的案例,用户拨打我们的电话号码,在某些情况下需要输入 PIN,然后输入井号,以进行身份​​验证并继续。在这种情况下,井号被定义为我们的finishOnKey

如果用户输入 PIN,一切都会完美运行。如果它是有效的,他们继续前进;如果不是,它会阻止它们。

但是,如果用户在没有任何先前输入的情况下只按磅,则通话挂断。

  • 这不会引发任何异常。
  • 我们没有在代码中的其他任何地方将井号列为挂断键。
  • 事实上,如果我将 finishOnKey 重新定义为星号,该行为仍然存在 - 如果用户仅键入星号,它就会挂起(尽管重要的是,它不再挂在井号上)。

这让我相信这是 Twilio 内置的,或者我的代码中可能缺少某些东西,但我无法想象是什么。这是 Twilio 的预期行为,和/或如何防止这种情况?我们希望系统能够像用户输入了无效的 PIN 一样做出简单的反应。

【问题讨论】:

    标签: twilio twilio-api twilio-twiml


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    来自<Gather> documentation on the action attribute

    如果在调用者输入任何数字之前达到“超时”,或者如果调用者在输入任何其他数字之前输入“finishOnKey”值,Twilio 将不会向“操作”URL 发出请求,而是继续处理当前 TwiML 文档,动词紧跟在 <Gather> 之后。

    我认为您的<Gather> 后面没有任何TwiML,因为您希望它始终提交到action URL。我推荐你<Say>给用户发消息然后<Redirect>回到同一个URL,有点像这样:

    <Response>
      <Gather finishOnKey="#" action="https://example.com/gather_response">
        <Say>Please enter the PIN</Say>
      </Gather>
      <Say>We did not receive a PIN, please try again.</Say>
      <Redirect>https://example.com/gather</Redirect>
    </Response>
    

    如果有帮助,请告诉我。

    【讨论】:

    • 这正是问题所在,您建议的修复方法对我有用。谢谢!
    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    相关资源
    最近更新 更多