if (sipStack.getStackLogger().isLoggingEnabled(ServerLogger.TRACE_MESSAGES)) {
sipStack.getServerLogger().logMessage(sipMessage, this
.getPeerHostPort().toString(), this.getHost() + ":"
+ this.getPort(), false, rxTime);
}
ServerRequestInterface sipServerRequest = sipStack
.newSIPServerRequest(sipRequest, this);
// Drop it if there is no request returned
if (sipServerRequest == null) {
if (sipStack.isLoggingEnabled()) {
sipStack.getStackLogger()
.logWarning("Null request interface returned -- dropping request");
}
return;
}
if (sipStack.isLoggingEnabled(LogWriter.TRACE_DEBUG)) {
sipStack.getStackLogger().logDebug("About to process "
+ sipRequest.getFirstLine() + "/" + sipServerRequest);
}
try {
sipServerRequest.processRequest(sipRequest, this);
} finally {
if (sipServerRequest instanceof SIPTransaction) {
SIPServerTransaction sipServerTx = (SIPServerTransaction) sipServerRequest;
if (!sipServerTx.passToListener()) {
((SIPTransaction) sipServerRequest).releaseSem();