跟踪当前通话状态 - Twilio

时间:2017-02-02 12:59:21

标签: java twilio twilio-api

我想知道是否可以使用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);
}

呼叫后的两个打印语句是尝试获取呼叫状态(已应答,已完成等),但它们当前分别产生空值和排队。

是否可以以某种方式跟踪呼叫状态,甚至在呼叫结束时而不是在呼叫开始时获得状态持续时间。

谢谢

1 个答案:

答案 0 :(得分:0)

Twilio开发者传道者在这里。您在通话期间获得空的原因是因为我们只能在通话结束时报告通话时长。正如您所说,您正在查看仍在排队的呼叫,因为您刚刚发起了请求。

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

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

当Twilio向您提供的网址发出此请求时,它会通过following variables。然后,您可以使用此变量获取有关您的呼叫的所有信息。其中一个变量称为CallDuration,它是刚完成调用的持续时间(秒)。

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

希望这有助于你