node.js - 如何在 Twilio 中区分已接听和未接听的调用?

标签 node.js twilio

我正在开发一个 Node.js Web 应用程序,它使用 Twilio 向用户发出调用。一切都运行良好,但我正在努力弄清楚如何区分已接听的电话和未接听的电话。进行调用的代码如下所示:

client.makeCall({
  to: to,
  from: config.sendingNumber,
  url: config.baseUrl + '/call-answered?' + queryString,
  method: 'GET',
  statusCallback: config.baseUrl + '/call-status?' + queryString,
  statusCallbackMethod: 'GET',
  statusCallbackEvent: 'answered',
});

(就其值(value)而言,queryString 只是让我传递用户的标识符,以便我可以做适当的事情)。

目前的工作方式似乎是,仅当用户应答调用时才调用 url (并且它提供了调用的标记),而 statusCallback 似乎无论调用是否被应答或在没有应答的情况下被解除(无论哪种方式,req.query.CallStatus 都会设置为in-progress),都会被调用。因此,我目前可以肯定地检测到已接听的电话,但无法确定何时未接听电话(除了等待和查看,这是不理想的)。

理想情况下,我希望a)有一个仅在调用未应答时才触发的回调,或者b)接收一些调用状态信息,以便我区分了已接听的电话和未接听的电话。任何帮助将不胜感激!

最佳答案

您可以通过提供多个 StatusCallbackEvent values 来指定多个事件。

// Download the Node helper library from twilio.com/docs/node/install
// These vars are your accountSid and authToken from twilio.com/user/account
var accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
var authToken = "AUTH_TOKEN";
var client = require('twilio')(accountSid, authToken);

client.calls.create({
    url: "http://demo.twilio.com/docs/voice.xml",
    to: "+14155551212",
    from: "+18668675309",
    statusCallback: "https://www.myapp.com/events",
    statusCallbackMethod: "POST",
    statusCallbackEvent: ["answered", "completed"],
    method: "GET"
}, function(err, call) {
    process.stdout.write(call.sid);
});

现在,completed无论给出以下 CallStatus ,事件都会被触发值:( busycanceledcompletedfailedno-answer )。

然而,真正的技巧是,如果调用到达应答机,它将被视为 answered 。我写了这个blog post谈论一种可以使用 <Gather> verb 解决此问题的方法检测是否有人接听电话。

关于node.js - 如何在 Twilio 中区分已接听和未接听的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37189407/

相关文章:

javascript - 操作完成后杀死所有 Node 集群工作人员

ruby - 如何重用选项散列

java - Message 类型的方法 Creator(PhoneNumber, PhoneNumber, String) 未定义

javascript - 基石JS : S3 image uploads being auto-renamed with temporary string

node.js - 安装 expo-cli : Could not resolve dependency:

node.js - npm 错误! package.json npm 在当前目录中找不到 package.json 文件

angularjs - jmeter 返回未定义的输出

twilio - "Call to getUserMedia failed: DOMException"Twilio 视频通话与 Chrome 版本 "Version 72.0.3626.96"

c# - 用于屏蔽调用的 TwiML 应答机检测

python-3.x - 调试由服务器重新启动修复的 Twilio SSL 错误(错误 11220)