python - 接听 twilio 电话时收到通知

标签 python telephony twilio 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,第一个值为'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/

相关文章:

python - 如何从变量而不是Python中的那些行运行命令?

android - 自定义 Android 电话应用程序

Twilio 根据来电号码转接来电

python - 有没有办法在python中创建甘特图?

python - pandas.DataFrame : . hist() 与 .plot.hist() 方法

asterisk - 使用 Asterisk 发起调用 - 没有发起分机振铃

android - 如何从 android/internal/telephony/Phone.java 使用 getAvailableNetworks

node.js - 如何让 Heroku Node.js 实例无限期运行?

php - 我可以设置 PHP Twilio 应用程序服务器并授予推送功能吗

python - 文本文件无法在输出窗口中打开。Python(Pycharm IDE)