0

我正在为 nodeJS 中的调用设置状态回调。我在电话号码配置中设置了“呼叫状态更改”以向我的节点发出 POST 请求。但是 twilio 似乎正在发送所有呼叫的呼叫状态已完成,无论答案是“忙”、“未应答”还是“已完成”。

这是用于显示 Twilio 发送的呼叫状态的节点代码:

app.post("/status", (req, res) => {
  res.sendStatus(200);
  console.log(req.body);
});

忙音输出:

{
   ApiVersion: '2010-04-01',
   Called: '',
   CallStatus: 'completed',
   Duration: '15',
   From: 'client:AbrasiveHannahLiberty',
   CallDuration: '15',
   Direction: 'inbound',
   Timestamp: 'Fri, 20 Mar 2020 05:43:09 +0000',
   AccountSid: 'ACxxxxxxxx',
   CallbackSource: 'call-progress-events',
   ApplicationSid: 'APxxxxxxxx',
   Caller: 'client:AbrasiveHannahLiberty',
   SequenceNumber: '0',
   To: '',
   CallSid: 'CAxxxxxxxx'
 }

4

1 回答 1

1

Twilio 客户端调用有两个调用分支。当 Twilio 客户端发出出站呼叫时,即是父分支。Twilio 会自动应答该呼叫段,因此可以访问与您的语音请求 URL 关联的 TwiML,所有呼叫都将导致呼叫完成。

发出客户端调用后,您定义的 TwiML 应用程序(并通过访问令牌传递给您的 Twilio 客户端)具有用于获取 TwiML 的请求 URL,因此 Twilio 知道如何处理该调用,例如,放置一个公共交换电话网 (PSTN) 的出站呼叫,子腿。

请求 URL 中的 TwiML 应该使用带数字名词的 Dial 动词和 statusCallback URL 来获取您正在寻找的状态。

TwiML™ 语音:数字

于 2020-03-20T11:52:07.413 回答