package org.ifsoft.openlink.calllog; /** * */ public class CallLogger { private static final CallLogger callLogger = new CallLogger(); private Appender appender = null; protected CallLogger() { this.appender = new DatabaseAppender(); } /** * Returns a <code>CallLogger</code> instance. * @return */ public static CallLogger getLogger() { return callLogger; } /** * Logs call details. * * @param tscId * @param callId * @param profileId * @param interestId * @param state * @param direction * @param startTimestamp * @param duration * @param callerName * @param callerNumber * @param calledName * @param calledNumber */ public void logCall(String tscId, String callId, String profileId, String interestId, String state, String direction, long startTimestamp, long duration, String callerName, String callerNumber, String calledName, String calledNumber) { logCall(new CallLogRecord(tscId, callId, profileId, interestId, state, direction, startTimestamp, duration, new CallParty(callerName, callerNumber), new CallParty(calledName, calledNumber))); } /** * Logs call details. * * @param callLogRecord */ public void logCall(CallLogRecord callLogRecord) { appender.append(callLogRecord); } /** * Logs participant details. * * @param tscId * @param callId * @param jid * @param direction * @param type * @param startTimestamp * @param duration */ public void logParticipant(String tscId, String callId, String jid, String direction, String type, long startTimestamp, long duration) { logParticipant(new ParticipantLogRecord(tscId, callId, jid, direction, type, startTimestamp, duration)); } /** * Logs participant details. * * @param participantLogRecord */ public void logParticipant(ParticipantLogRecord participantLogRecord) { appender.append(participantLogRecord); } }