繁体   English   中英

Twilio 发送所有呼叫的呼叫完成状态

[英]Twilio sends call completed status for all calls

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

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

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

Output 忙音:

{
   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'
 }

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

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

该请求 URL 中的 TwiML 应该使用带有 Number 名词和 statusCallback URL 的拨号动词来获取您正在查找的状态。

TwiML™ 语音:数字

我认为您应该检查$dial->number()中的 statusCallback URL 必须与您在 TwiML App 中配置的 statusCallback 的 URL 不同?

示例:如果您在 TwiML 应用程序中配置的 statusCallback URL 是..../status ,那么您必须在$dial->number()中设置为..../events (或您喜欢的任何 URL ),如下所示:

$response = new VoiceResponse();
$dial = $response->dial('');
$dial->number('+12349013030',
    ['statusCallbackEvent' => 'initiated ringing answered completed',
    'statusCallback' => '..../events',
    'statusCallbackMethod' => 'POST']); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM