2017-08-27 132 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。

讓我知道這是否有幫助。