我正在构建一个 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 是否已更改 - 不太好。
最佳答案
这里是 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 命令来使用调用进度事件。
关于python - 接听 twilio 电话时收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236239/