1

我正在构建一个 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,第一个值为'ringing',第二个值为'completed'

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

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

queued , ringing , in-progress , completed , failed ,无应答

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

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

4

1 回答 1

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,文档中的这个示例将让您了解如何将调用进度事件与 PHP、C#、Ruby、Node.js、Java 或 - 如果您喜欢使用命令行样式 - curl 命令一起使用。

于 2015-10-23T22:09:44.553 回答