当使用“Gather”命令时,如何确定是否由超时或用户请求触发挂起?

时间:2015-11-04 13:39:59

标签: twilio

我们正在使用Gather命令(https://www.twilio.com/docs/api/twiml/gather)向用户询问问题。我们不使用自动语音邮件检测,因为2秒延迟会使我们的产品更糟糕。

无意中有些用户挂断而不是选择1或2,有些用户有语音邮件。我们需要检测 - 是否是Gather的超时选项挂断(因此很可能是语音邮件),或者是用户触发的挂断。

是否可以这样做?

1 个答案:

答案 0 :(得分:2)

Twilio开发者传道者在这里。

虽然挂断在调用状态中看起来不会有所不同,但您可以使用<Gather>属性为您解决此问题。

当您通过<Gather>并且超时触发时,TwiML将继续。然后,您可以<Redirect>到另一个记录<Gather>超时然后挂起的端点。类似的东西:

<Response>
  <Gather timeout="10" numDigits="1">
    <Say>Enter 1 for this or 2 for that</Say>
  </Gather>
  <Redirect>http://example.com/gather_timeout</Redirect>
</Response>

然后重定向可能会运行一些代码,然后挂起。

<?php
  // Record the CallSid and that it was a Gather timeout
?>
<Response>
  <Hangup/>
</Response>