Twilio检测是否有人回答
本文关键字:检测 是否 Twilio | 更新日期: 2023-09-27 18:17:06
我的用例如下:允许用户输入多个联系人。尝试第一个联系点,如果用户不回答,尝试第二个,等等。
我遇到的问题是,Twilio似乎没有可靠的方法来确定是否有人接听电话。我尝试了三种不同的方法:
-
IfMachine -这工作相当可靠,但我已经在手机上测试,导致它认为它是一个人。我真的需要100%的准确性。
-
StatusCallbackEvents -我有状态事件被发布到公共端点。我希望这里会有一些有用的信息,但似乎没有。
-
手动确定-我认为状态/持续时间的一些组合将工作,但持续时间似乎是相同的,在某些情况下,人或语音邮件的回答。我猜是语音邮件在回答,但Twilio认为这是一个人,所以它播放了这条信息,并获得了与人类回答相同的持续时间。
-
"呼叫筛选"AKA反转IfMachine -我有这个工作,用户被要求按下一个键,按下键后得到另一个消息。但是,用户按下该键的事实不会记录在任何地方。不在响应对象或StatusCallbackEvents中。
我目前最大的希望是呼叫显示保存数据(用户按下键的事实)在我可以访问的地方。
如果你不想依靠Twilio机器|人工检测,我相信拨号是最好的方法。
如果您使用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
,它将包括用户按下的数字。
如果有帮助,请告诉我