Twilio statusCallback:是否接听电话

时间:2019-10-02 14:34:30

标签: twilio

我使用Twilio拨打电话,在此期间用户可以按键进行回复。我的问题是我想处理4种情况:

1)用户回答,然后按1

2)用户回答并按除1以外的另一个键

3)用户回答并按无键

4)用户不回答

对于情况1、2和3,一切正常: 我在XML中有一个“收集”,带有一个“操作” URL,一个超时和一个actionOnEmptyResult =“ true”

对于管理案例4,我使用statusCallback网址和'statusCallbackEvent'=> ['answered','completed']

我在日志中注意到的是,在情况3(用户接听但不按任何键)和情况4(用户不接听电话)下,我收到的数据完全相同。 也许这是由于以下事实造成的:该呼叫在语音箱中掉了几个“铃”之后,欺骗了Twilio,后者认为这是“应答”事件。

在我的日志中,我看到(情况3或4)这3个事件:

  • 呼叫我的状态使用CallStatus =进行中的回调

  • 使用msg = Gather End和Digits =“”

  • 调用我的状态使用CallStatus =已完成回调

所以我的问题是:我怎么知道“接听电话并且什么都不打”和“不接听电话”之间的区别?

编辑:如果我拒绝通话,结果是一样的。因此,我会收到相同的“ hook”和statusCallback呼叫,如果用户接听但不回答,他不接听或拒绝呼叫,则使用相同的数据...

1 个答案:

答案 0 :(得分:0)

这里是Twilio开发人员的传播者。

您可能希望对“不接听电话”的处理略有不同。如果用户不回答,您的操作URL仍会被调用,但是发送到网络挂钩的parameter CallStatus将是no-answer。在这种情况下,您可以<Hangup/>呼叫并将其标记为未接。

还有另一个问题。如果通过语音邮件应答了呼叫,则您的呼叫将尝试正常继续。您可以将其作为已接听但未输入任何内容的电话,也可以尝试使用Twilio's answer machine detection检测是人还是机接听了电话。如果是人工操作,您可以照常继续操作,但是如果机器应答,您也可以将其标记为未应答,并<Hangup/>进行呼叫。

让我知道这是否有帮助。