try {
try { if (sipStack.getLogWriter().isLoggingEnabled()) { sipStack.getLogWriter().logDebug( "fireRetransmissionTimer() -- "); }  if (isInviteTransaction() && lastResponse != null) {  if (!this.retransmissionAlertEnabled) { super.sendMessage(lastResponse); } else {  SipProviderImpl sipProvider = (SipProviderImpl) this .getSipProvider(); TimeoutEvent txTimeout = new TimeoutEvent(sipProvider, this, Timeout.RETRANSMIT); sipProvider.handleEvent(txTimeout, this); }
    protected void fireRetransmissionTimer() {        try {            // Resend the last response sent by this transaction            if (isInviteTransaction()) {                if (((SIPTransactionStack) getSIPStack()).retransmissionFilter) {                    super.sendMessage(lastResponse);                } else {                    // Inform the application to retransmit the last response.                    raiseErrorEvent(SIPTransactionErrorEvent.TIMEOUT_RETRANSMIT);                }            }        } catch (IOException e) {            if (LogWriter.needsLogging)                sipStack.logWriter.logException(e);            raiseErrorEvent(SIPTransactionErrorEvent.TRANSPORT_ERROR);        }    }