code: public void processTransactionTerminated(
              TransactionTerminatedEvent transactionTerminatedEvent) {
          Transaction transaction = null;
          if(transactionTerminatedEvent.isServerTransaction()) {
              transaction = transactionTerminatedEvent.getServerTransaction();
              if(logger.isDebugEnabled()) {
                  logger.debug("timeout => " + transaction.getRequest().toString());
              }
          } else {
              transaction = transactionTerminatedEvent.getClientTransaction();
              if(logger.isDebugEnabled()) {
                  logger.debug("timeout => " + transaction.getRequest().toString());
              }
          }
          if(Request.BYE.equals(transaction.getRequest().getMethod())) {
              String callId = ((CallIdHeader)transaction.getRequest().getHeader(CallIdHeader.NAME)).getCallId();
              register.unStickSessionFromNode(callId);
          }
      }
docs: /*
  (non-Javadoc)
  @see javax.sip.SipListener#processTransactionTerminated(javax.sip.TransactionTerminatedEvent)