在接听twilio电话时获取通知

时间:2011-11-23 01:26:25

标签: python telephony twilio twiml

我正在构建一个twilio应用程序,并希望在使用twilio拨打电话时收到通知。我正在使用python api进行调用,如下所示:

call = client.calls.create(to=number,
                           from_="15555555555",
                           url=twiml_url,
                           status_callback=status_url)

一切正常。通话结束后,我会收到通知,通过POST到twiml_url和POST到status_url。在这两种情况下,我都会在第二个'完成'中传递 CallStatus ,第一个传递值'振铃' p>

现在,我已经阅读了API文档并知道他们说这是预期的行为。

我想知道的是,是否有任何方法可以为其他 CallStatus 更改获得类似的踢法?根据Twilio,以下所有内容都是 CallStatus 的可能值:

排队响铃正在进行中已完成失败无应答

拥有所有不同的 CallStatus 并没有为它们提供回调似乎毫无意义。

最终,我想要实现的是检测何时接听电话。我目前唯一可以看到的方法是定期轮询并手动检查 CallStatus 是否已经改变 - 几乎没有。

1 个答案:

答案 0 :(得分:1)

来自Twilio的Ricky在这里。我们已经为我们的API添加了一项全新功能,我称之为Call Progress Events。它允许开发人员传递有关其呼叫的事件列表,例如振铃或已完成,他们希望通过呼叫通知他们。我认为这可能对这个用例有所帮助,因为您可以告诉API在使用此代码应答呼叫时通知您:

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=["answered"],
)

如果您不使用Python,this example in the docs将让您了解如何使用PHP,C#,Ruby,Node.js,Java或者 - 如果您喜欢使用命令行样式来使用调用进度事件 - 卷曲命令。