String event = rowValues[4];
if (!map.containsKey(callId)) {
if (event.equals("ENTERQUEUE")) {
CallMetric callMetric = new CallMetric();
callMetric.setEnterQueueTime(logRecordTime);
String queueName = rowValues[2];
callMetric.setQueueName(queueName);
callMetric.setCallId(callId);
logger.debug("added metric " + callMetric);
map.put(callId, callMetric);
} else {
logger.warn(callId + "|" + event + ": not in call map but something other than enter queue called");
}
} else {
if (event.equals("ENTERQUEUE")) {
logger.warn(callId + ": ENTERQUEUE event with a key already in map");
return;
}
CallMetric callMetric = map.get(callId);
if (callMetric == null) {
logger.error(callId + ": not in map but should be.");
return;
}
logger.debug(event);
if (event.equals("ABANDON")) {
String waitTime = rowValues[7];
callMetric.setWaitTime(Integer.parseInt(waitTime));
} else if (event.equals("COMPLETECALLER") || event.equals("COMPLETEAGENT")) {
String talkTime = rowValues[6];
callMetric.setTalkTime(Integer.parseInt(talkTime));
String waitTime = rowValues[5];
callMetric.setExitQueueTime(logRecordTime);
callMetric.setWaitTime(Integer.parseInt(waitTime));
} else if (event.equals("CONNECT")) {
String extension = rowValues[3];
callMetric.setExtension(extension);
String connectTime = rowValues[0];
//make the unix timestamp into miliseconds
long longconnectTime = Long.parseLong(connectTime) * 1000l;
callMetric.setEnterQueueTime(longconnectTime);
}
logger.debug("metric is " + callMetric);
}
} catch (Exception e) {