如何使用 Twiml 或 twilio JSClient 实现应答机检测

问题描述

我们正在使用 Twilio 构建一个浏览器内的即时通讯应用程序,我们从 JS 客户端拨打电话并使用 Twiml 拨打号码,这是我们的基本流程。我从其他问题中了解到 AMD 仅可用于 RestAPI,如何将 Rest API 与 JS 客户端一起使用,或者如何将 AMD 与我当前的设置集成。任何帮助/建议请:)。 提前致谢

解决方法

是的,据我所知,您不能使用 TwiML 来打开应答机检测,并且您只能使用 API。

您要使用的 API 端点是调用资源。这本质上无非是将 POST 转换为 https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls.json,然后将参数 MachineDetection 设置为 Enable(请参阅文档 here)。

但这需要以您的 TWILIO_AUTH_TOKEN 形式进行身份验证,您不能将其公开给任何客户端。我不知道您的 JS 客户端的详细信息以及您如何进行身份验证和授权,但我建议您将逻辑封装在您可以正确保护它的后端。然后您还可以使用 Twilio 帮助程序库,例如对于 Python 或 Node.JS,调用(Node.JS 的示例取自文档并改编):

const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require('twilio')(accountSid,authToken);

client.calls
  .create({
     twiml: '<Response><Say>Hello World!</Say></Response>',to: '+1...',from: '+1...',machineDetection: 'Enable'
   })
  .then(call => console.log(call.sid));