【问题标题】:Twilio Machine Detection AnsweredBy field returns 'None'Twilio 机器检测 AnsweredBy 字段返回“无”
【发布时间】:2017-08-27 23:29:49
【问题描述】:

我正在开发一个利用机器检测功能的 Twilio 应用程序。我使用 Twilio python 客户端发出如下请求:

import twilio
twilio_client = Client(ACCOUNT_SID, AUTH_TOKEN)

call = twilio_client.calls.create(
        to=number,
        from_=TWILIO_PHONE_NUMBER,
        url=EXTERNAL_URL + '/call',
        status_callback=EXTERNAL_URL + '/call_status',
        status_callback_event=["initiated", "ringing", "answered",
                               "completed", "no-answer", "busy",
                               "failed", "canceled", "queued"],
        machine_detection='Enable',
        machine_detection_timeout=20,
    )

但是当我尝试访问call.answered_by 字段时,我发现值是None。当我在 10 秒后使用呼叫状态 API 获取呼叫状态时,我也会返回 None

call = twilio_client.calls(sid).fetch()

另外,在我在“EXTERNAL_URL + '/call_status' 注册以获取通知的 webhook 中,我没有收到“AnsweredBy”字段。我还确保在 Twilio Web 控制台中启用了该功能。我还缺少什么?

【问题讨论】:

  • 这里是文档的链接顺便说一句:twilio.com/docs/api/rest/answering-machine-detection
  • 你打电话到哪个国家?
  • 我正在给美国打电话。
  • 我运行了你的代码,它运行良好。我不确定你为什么提到call.answered_by,因为字段名称是AnsweredBy,并作为参数(POST 请求)传递给EXTERNAL_URL + '/call' 的webhook,你不会在EXTERNAL_URL + /call_status 中找到它。

标签: python twilio twilio-api


【解决方案1】:

这里是 Twilio 开发者宣传员。

感谢 cmets 中的 Andy 和 Alex,我认为他们确实涵盖了所有内容。

这里的关键是 AnsweredBy 字段将作为 webhook 的一部分发送到您在 API 请求中设置为 url 参数的 URL。在这种情况下,即 URL EXTERNAL_URL + '/call'

AnsweredBy 字段最终应该出现在调用资源本身的 REST API 中,但使用它的方式是通过 webhook。

让我知道这是否有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多