2017-08-27 131 views
0

我正在开发一个利用机器检测功能的Twilio应用程序。我让使用Twilio Python客户端的请求如下:Twilio机器检测已回答通过字段返回“无”

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。我还回来None当我使用网络的通话状态API来获取10个秒钟后,通话状态:

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

而且在我的我的网络挂接,我在'EXTERNAL_URL +“/ call_status”注册,以获取通知我不得到'AnsweredBy'字段。我还确定我在Twilio Web控制台中启用了该功能。我还缺少什么?

+0

这里是指向文档的链接btw:https://www.twilio.com/docs/api/rest/answering-machine-detection – user2744176

+0

您打电话给哪个国家? –

+0

我打电话给美国。 – user2744176

回答

0

Twilio开发人员传道这里。

感谢Andy和Alex的评论,我认为他们确实涵盖了一切。

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

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

让我知道这是否有帮助。