examples.nistgoodies.pluggablelogger.ServerLoggerImpl Maven / Gradle / Ivy
package examples.nistgoodies.pluggablelogger;
import java.util.Properties;
import javax.sip.SipStack;
import javax.sip.header.TimeStampHeader;
import examples.nistgoodies.configlogger.LogRecordFactoryImpl;
import gov.nist.core.ServerLogger;
import gov.nist.javax.sip.LogRecord;
import gov.nist.javax.sip.LogRecordFactory;
import gov.nist.javax.sip.header.CallID;
import gov.nist.javax.sip.message.SIPMessage;
import gov.nist.javax.sip.stack.SIPTransactionStack;
public class ServerLoggerImpl implements ServerLogger {
private SIPTransactionStack sipStack;
private LogRecordFactory logRecordFactory;
public ServerLoggerImpl() {
this.logRecordFactory = new LogRecordFactoryImpl();
}
public void closeLogFile() {
}
public void logException(Exception exception) {
sipStack.getStackLogger().logStackTrace();
}
public void logMessage(SIPMessage message, String source, String destination, boolean isSender, long timeStamp) {
String firstLine = message.getFirstLine();
String tid = message.getTransactionId();
String callId = message.getCallId().getCallId();
LogRecord logRecord = logRecordFactory.createLogRecord(message.encode(), source, destination, timeStamp, isSender, firstLine, tid, callId,
0);
sipStack.getStackLogger().logInfo(logRecord.toString());
}
public void logMessage(SIPMessage message, String from, String to, String status, boolean sender) {
logMessage(message, from, to, status, sender, System.currentTimeMillis());
}
public void logMessage(SIPMessage message, String source, String destination, String status, boolean isSender,
long timeStamp) {
// TODO Auto-generated method stub
CallID cid = (CallID) message.getCallId();
String callId = null;
if (cid != null)
callId = cid.getCallId();
String firstLine = message.getFirstLine().trim();
String tid = message.getTransactionId();
TimeStampHeader tshdr = (TimeStampHeader) message.getHeader(TimeStampHeader.NAME);
long tsval = tshdr == null ? 0 : tshdr.getTime();
LogRecord logRecord = logRecordFactory.createLogRecord(message.encode(), source, destination, timeStamp, isSender, firstLine, tid, callId,
tsval);
sipStack.getStackLogger().logInfo(logRecord.toString());
}
public void setSipStack(SipStack sipStack) {
this.sipStack = (SIPTransactionStack) sipStack;
}
public void setStackProperties(Properties properties) {
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy