private void processMessage(final SipServletMessageImpl message,
SelectionKey key, SelectorHandler handler,
SocketAddress remoteAdress, Protocol prot) {
if (message.getMessageType() ==
SipServletMessageImpl.SipMessageType.SipRequest) {
SipServletRequestImpl req = (SipServletRequestImpl) message;
if (logger.isLoggable(Level.FINEST)) {
logger.log(Level.FINEST,
"sip.network.grizzly.in.request",
new Object[]{req.getMethod(), req.toString()});
}
if (hasBodyWithoutContentType(message)) {
return;
}
req.pushTransactionDispatcher(_networkHandler);
ResponseDispatcher rd = null;
if (prot == Protocol.TCP) {
rd = new StreamResponseDispatcher(handler, key, _bbPool, _asyncWriteCallbackHandler);
}
else if (prot == Protocol.TLS) {
rd = new TLSResponseDispatcher(handler, key, _bbPool, _asyncWriteCallbackHandler);
}
if (rd != null)
req.pushTransactionDispatcher(rd); //Could be the same channel
req.pushApplicationDispatcher(_networkHandler);
LayerHelper.next(req, _networkHandler, _networkHandler);
if (SipMonitoring.isEnabled(SipMonitoring.NETWORK_MANAGER)) {
if (((TCPSelectorHandler)handler).getInet() != null){
((NetworkManager) _networkHandler).incrEasReceivedSipRequests(
((TCPSelectorHandler)handler).getInet().getHostAddress(),
((TCPSelectorHandler)handler).getPort());
} else {
((NetworkManager) _networkHandler).incrEasReceivedSipRequests(
message.getLocal().getAddress().getHostAddress(), -1);
}
((NetworkManager) _networkHandler).incrReqInMethodCounter(req.getMethod());
}
} else {
SipServletResponseImpl resp = (SipServletResponseImpl) message;