this.rawMessageChannel = incomingMessageChannel;    SIPClientTransaction clientTransaction = (SIPClientTransaction) this.transactionChannel;
	public void processResponse(		SIPResponse sipResponse,		MessageChannel incomingMessageChannel)		throws SIPServerException {		if (LogWriter.needsLogging) {			sipStackImpl.logMessage(				"PROCESSING INCOMING RESPONSE" + sipResponse.encode());		}		if (listeningPoint == null) {			if (LogWriter.needsLogging)				sipStackImpl.logMessage(					"Dropping message: No listening point" + " registered!");			return;		}		SIPTransaction transaction = (SIPTransaction) this.transactionChannel;		SipProviderImpl sipProvider = listeningPoint.getProvider();		if (sipProvider == null) {			if (LogWriter.needsLogging) {				sipStackImpl.logMessage("Dropping message:  no provider");			}			return;		}		SIPTransactionStack sipStack =			(SIPTransactionStack) sipProvider.sipStackImpl;		SipStackImpl sipStackImpl = (SipStackImpl) sipStack;		if (LogWriter.needsLogging)			sipStackImpl.logMessage("Transaction = " + transaction);		if (this.transactionChannel == null) {			String dialogId = sipResponse.getDialogId(false);			DialogImpl dialog = sipStack.getDialog(dialogId);			//  Have a dialog but could not find transaction.			if (sipProvider.sipListener == null) {				return;			} else if (dialog != null) {				// Bug report by Emil Ivov				if (sipResponse.getStatusCode() != Response.OK) {					return;				} else if (sipStackImpl.isRetransmissionFilterActive()) {					// 200  retransmission for the final response.					if (sipResponse						.getCSeq()						.equals(							dialog								.getFirstTransaction()								.getRequest()								.getHeader(								SIPHeaderNames.CSEQ))) {						try {							// Found the dialog - resend the ACK and							// dont pass up the null transaction							// bug noticed by Joe Provino.							dialog.resendAck();							return;						} catch (SipException ex) {							// What to do here ?? kill the dialog?						}					}				}			}			// long receptionTime = System.currentTimeMillis();			// Pass the response up to the application layer to handle			// statelessly.			// Dialog is null so this is handled statelessly			ResponseEvent sipEvent =				new ResponseEvent(sipProvider, null, (Response) sipResponse);			sipProvider.handleEvent(sipEvent, transaction);			//transaction.logResponse(sipResponse,			//       receptionTime,"Retransmission");			return;		}		this.rawMessageChannel = incomingMessageChannel;		// Retrieve the client transaction for which we are getting		// this response.		SIPClientTransaction clientTransaction =			(SIPClientTransaction) this.transactionChannel;		SipListener sipListener = sipProvider.sipListener;		ResponseEvent responseEvent =			new javax.sip.ResponseEvent(				sipProvider,				(ClientTransaction) transaction,				(Response) sipResponse);		sipProvider.handleEvent(responseEvent, transaction);	}