检索到 Answered_By 响应为空
Retrieved Answered_By response as null
我正在关注 Twilio 最近在今年 API 中引入的答录机检测测试版功能。我将 MachineDetection 字段设置为 Enable
并将 MachineDetectionTimeout 设置为 5 秒。当我使用 Node.JS 中的 request-promise
包发出请求时,以下输出被 return 编辑为 JSON 正文对象:
{"sid": "MYSID",
"to": "+1845555555",
"to_formatted": "(845) 555-5555",
"from": "+18569972628", "from_formatted": "(856) 997-2628",
"phone_number_sid": null,
"status": "queued"
"start_time": null,
"end_time": null,
"duration": null,
"price": null,
"price_unit": "USD",
"direction": "outbound-api",
"answered_by": null,
"api_version": "2010-04-01",
"annotation": null,
"forwarded_from": null,
"group_sid": null, "caller_name": null,
"uri": "/2010-04-01/Accounts/mySIDaccount/Calls/C
A303d158baf885d4480284d4529ce49a8.json",
"subresource_uris":
{"notifications": "/2010-04\
01/Accounts/myaccount/Calls/\
CA303d158baf885d448028\
4d4529ce49a8/Notifications.json",
"recordings": "/2010-04 \
01/Accounts/myaccount/Calls/\
CA303d158baf885d4480284d4529ce49a8/Recordings.json"}
}
answered_by
值是 null
,而不是从请求 (Twilio-API documentation):
指定给 return 的 4 个值之一
- machine_start
- 人类
- 传真
- 未知
我是不是做错了什么?我的申请路线如下图:
var request = require('request-promise');
request.post({url: 'https://api.twilio.com/2010-04-01/Accounts/'+
config.accountSid+"/Calls.json",
form: {To: phoneNumber,
From: config.twilioNumber,
MachineDetection: 'Enable',
MachineDetectionTimout: 5,
Url: url},
auth: {user: config.accountSid,
pass: config.authToken
},
timeout: 10000
}).then(function(parsedBody){
console.log('\n\n\n\n'+parsedBody+'\n\n\n\n');
response.send({message: 'Transferring...'});
}).catch(function(parsedBody){
console.log(parsedBody);
response.status(500).send(parsedBody);
});
});
我什至在我的 bash 上尝试了 curl 路线并得出了完全相同的结果。
此处为 Twilio 开发人员布道师。
当您拨打 request to start a call 时,正如您在本例中所做的那样,API 将成功响应,让您知道呼叫已经开始。这个阶段来电可能连铃声都没有,所以你还不能知道答录机检测的结果。
相反,当呼叫接通并且 Twilio 已经解决了它是机器还是其他问题,或者应答机检测超时时,您将得到 AnsweredBy
的结果。您将在请求中设置的 URL 处获得 Twilio 发送给您的应用程序的 AnsweredBy
result in the webhook。正是在那个阶段,您可以决定如何处理通话。
如果有帮助请告诉我。
我正在关注 Twilio 最近在今年 API 中引入的答录机检测测试版功能。我将 MachineDetection 字段设置为 Enable
并将 MachineDetectionTimeout 设置为 5 秒。当我使用 Node.JS 中的 request-promise
包发出请求时,以下输出被 return 编辑为 JSON 正文对象:
{"sid": "MYSID",
"to": "+1845555555",
"to_formatted": "(845) 555-5555",
"from": "+18569972628", "from_formatted": "(856) 997-2628",
"phone_number_sid": null,
"status": "queued"
"start_time": null,
"end_time": null,
"duration": null,
"price": null,
"price_unit": "USD",
"direction": "outbound-api",
"answered_by": null,
"api_version": "2010-04-01",
"annotation": null,
"forwarded_from": null,
"group_sid": null, "caller_name": null,
"uri": "/2010-04-01/Accounts/mySIDaccount/Calls/C
A303d158baf885d4480284d4529ce49a8.json",
"subresource_uris":
{"notifications": "/2010-04\
01/Accounts/myaccount/Calls/\
CA303d158baf885d448028\
4d4529ce49a8/Notifications.json",
"recordings": "/2010-04 \
01/Accounts/myaccount/Calls/\
CA303d158baf885d4480284d4529ce49a8/Recordings.json"}
}
answered_by
值是 null
,而不是从请求 (Twilio-API documentation):
- machine_start
- 人类
- 传真
- 未知
我是不是做错了什么?我的申请路线如下图:
var request = require('request-promise');
request.post({url: 'https://api.twilio.com/2010-04-01/Accounts/'+
config.accountSid+"/Calls.json",
form: {To: phoneNumber,
From: config.twilioNumber,
MachineDetection: 'Enable',
MachineDetectionTimout: 5,
Url: url},
auth: {user: config.accountSid,
pass: config.authToken
},
timeout: 10000
}).then(function(parsedBody){
console.log('\n\n\n\n'+parsedBody+'\n\n\n\n');
response.send({message: 'Transferring...'});
}).catch(function(parsedBody){
console.log(parsedBody);
response.status(500).send(parsedBody);
});
});
我什至在我的 bash 上尝试了 curl 路线并得出了完全相同的结果。
此处为 Twilio 开发人员布道师。
当您拨打 request to start a call 时,正如您在本例中所做的那样,API 将成功响应,让您知道呼叫已经开始。这个阶段来电可能连铃声都没有,所以你还不能知道答录机检测的结果。
相反,当呼叫接通并且 Twilio 已经解决了它是机器还是其他问题,或者应答机检测超时时,您将得到 AnsweredBy
的结果。您将在请求中设置的 URL 处获得 Twilio 发送给您的应用程序的 AnsweredBy
result in the webhook。正是在那个阶段,您可以决定如何处理通话。
如果有帮助请告诉我。