Twilio检测是否有人回答

本文关键字:检测 是否 Twilio | 更新日期: 2023-09-27 18:17:06

我的用例如下:允许用户输入多个联系人。尝试第一个联系点,如果用户不回答,尝试第二个,等等。

我遇到的问题是,Twilio似乎没有可靠的方法来确定是否有人接听电话。我尝试了三种不同的方法:

  1. IfMachine -这工作相当可靠,但我已经在手机上测试,导致它认为它是一个人。我真的需要100%的准确性。

  2. StatusCallbackEvents -我有状态事件被发布到公共端点。我希望这里会有一些有用的信息,但似乎没有。

  3. 手动确定-我认为状态/持续时间的一些组合将工作,但持续时间似乎是相同的,在某些情况下,人或语音邮件的回答。我猜是语音邮件在回答,但Twilio认为这是一个人,所以它播放了这条信息,并获得了与人类回答相同的持续时间。

  4. "呼叫筛选"AKA反转IfMachine -我有这个工作,用户被要求按下一个键,按下键后得到另一个消息。但是,用户按下该键的事实不会记录在任何地方。不在响应对象或StatusCallbackEvents中。

我目前最大的希望是呼叫显示保存数据(用户按下键的事实)在我可以访问的地方。

Twilio检测是否有人回答

如果你不想依靠Twilio机器|人工检测,我相信拨号是最好的方法。

如果您使用TwiML,您可以在<gather>标记上设置回调。

https://www.twilio.com/docs/api/twiml/gather

动词收集呼叫者在其电话键盘上输入的数字。当调用者输入完数据后,Twilio将数据提交给提供的'action' URL

这里是Twilio开发者布道者。

感谢Simon的回答。我只是想提供更多的细节。

要使用<Gather>并获得用户输入的数字,您确实需要将action属性设置为应用程序可以响应的URL。

<Response>
  <Gather action="/is_human" numDigits="1">
    <Say>This is a call for a human! If you are a human, press 1.</Say>
  <Gather>
  <Say>Did not receive input</Say>
  <Hangup/>
</Response>

然后,您的操作将接收一个HTTP请求,就像电话会话中的其他webhook一样,但是包括一个更多的参数,Digits,它将包括用户按下的数字。

如果有帮助,请告诉我