【发布时间】: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