Twilio通话状态

时间:2015-12-03 20:04:40

标签: twilio

我如何知道是否接听电话?

对于StatusCallback,我可以设置以下值:

  • 发起
  • 响了
  • 回答
  • 完成

当Twilio向我发送状态时,我看不到“已回答”的值,我看到以下内容:

  • 无应答
  • 完成
  • 启动
  • 失败

我想知道为什么没有返回状态:

  • 回答

虽然我将“已回答”设置为StatusCallback的值之一。

令我困惑的是Twilio发送“已完成”,无论是否接听电话。

我需要一个明确的状态来接听电话。如果未接听电话,那么我需要稍后重试或围绕它建立业务逻辑。

当电话未接听时,我得到“未接听”。

当接听电话时,我会“完成”,但“完成”并不一定意味着假设电话进入语音信箱或其他地方,电话实际已经得到了解答。

另外,我还在呼叫请求中设置“IfMachine”参数。虽然我知道这是一个实验性功能,但我的呼叫状态为“已完成”,因为在这种情况下,我的期望是“未得到回答”。

我如何知道电话是否真的得到了解答?

1 个答案:

答案 0 :(得分:-1)

梅根,也来自Twilio!

只想在这里澄清一些事情。您提到使用需要URL的StatusCallbackanswered值实际上是使用StatusCallbackEvent设置的,因为您可以看到here in the docs

我不知道您使用的是哪种语言,但Python中的示例(您可以在该文档页面上找到其他语言):

# Your Account Sid and Auth Token from twilio.com/user/account
account_sid = "YOUR_ACCOUNT_SID"
auth_token  = "YOUR_AUTH_TOKEN"
client = TwilioRestClient(account_sid, auth_token)

call = client.calls.create(
    url="http://demo.twilio.com/docs/voice.xml",
    to="+14155551212",
    from_="+18668675309",
    method="GET",
    status_callback="https://www.myapp.com/events",
    status_callback_method="POST",
    status_events=["initiated", "ringing", "answered", "completed"],
)
print call.sid

关于使用IfMachine的最后说明。目前,我们实际上建议您使用Twilio的<Gather>动词来检测人是否按照in this question here解释。

希望这有帮助!