跟踪活动呼叫状态 - Twilio

Keep track of active call status - Twilio

我想知道是否可以使用 twilio 跟踪活动呼叫的状态。我正在尝试使用以下代码这样做:

Map<String, String> callParams = new HashMap<String, String>();
callParams.put("To", "***********"); 
callParams.put("From", "***********");
callParams.put("Url", "https://**************/");
callParams.put("Method", "GET");
Call call = null;
try {
    call = callFactory.create(callParams);
    System.out.println("Call was " + call.getDuration() + " long.");
    System.out.println("Status " + call.getStatus());            
} catch (TwilioRestException ex) {
    System.out.println(ex);
}

呼叫后的两个打印语句是尝试获取呼叫状态(已应答、已完成等),但它们目前分别生成 null 和 queueded。

是否有可能以某种方式跟踪通话状态,甚至在通话结束时而不是在通话开始时获取状态持续时间。

谢谢

这里是 Twilio 开发人员布道者。您在通话期间获得 null 的原因是因为我们只能在通话完成后报告通话持续时间。如您所说,您正在查看仍在排队的呼叫,因为您刚刚发起请求。

虽然我们提供 call status callback,这似乎正是您想要的。

当您开始新的通话时,有几个 optional parameters 您可以通过。其中之一称为 StatusCallback,是一个 URL,Twilio 将在 StatusCallbackEvent 中指定的每个调用事件上向其发送异步 webhook 请求。

当 Twilio 向您提供的 URL 发出此请求时,它将传递 following variables。然后您可以使用此变量获取有关您的呼叫的所有信息。其中一个变量称为 CallDuration,它是 just-completed 调用的持续时间(以秒为单位)。

您还可以在 this blog post 中阅读有关状态回调事件的更多信息。

希望对您有所帮助