【问题标题】:Get notification when twilio call is picked up接听 twilio 呼叫时获取通知
【发布时间】:2011-11-23 01:26:24
【问题描述】:

我正在构建一个 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 的可能值:

排队正在响铃进行中已完成失败无人接听

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

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

【问题讨论】:

  • call.status 发出此呼叫后应排队或响铃。 twiml_url 应该至少正在进行中。那个 url 是用 status=ringing 调用的吗?
  • 你是对的。 twiml_url 实际上正在进行中。我只是愚蠢。谢谢你的帮助。如果您将评论变成答案,我会接受

标签: python telephony twilio twilio-twiml


【解决方案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 或 - 如果您喜欢使用命令行风格 - curl 命令一起使用.

【讨论】:

    猜你喜欢
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多