code: public void updateTimer(boolean cancel1xxTimer, MobicentsSipApplicationSession mobicentsSipApplicationSession) {
  		if(logger.isDebugEnabled()) {
  			logger.debug("updateTimer - cancel1xxTimer=" + cancel1xxTimer + ", mobicentsSipApplicationSession=" + mobicentsSipApplicationSession);
  			if (mobicentsSipApplicationSession != null){
  				logger.debug("updateTimer - cancel1xxTimer=" + cancel1xxTimer + ", mobicentsSipApplicationSession.getApplicationName()=" + mobicentsSipApplicationSession.getApplicationName());
  				logger.debug("updateTimer - cancel1xxTimer=" + cancel1xxTimer + ", mobicentsSipApplicationSession.getSipContext()=" + mobicentsSipApplicationSession.getSipContext());
  			}
  		}
  		if(cancel1xxTimer) {
  			cancel1xxTimer();
  		}
  		cancelTimer();		
  		if(proxyBranchTimeout > 0) {			
  			synchronized (cTimerLock) {
  				if(!proxyBranchTimerStarted) {
  					try {
  						final ProxyBranchTimerTask timerCTask = new ProxyBranchTimerTask(this, ResponseType.FINAL, mobicentsSipApplicationSession);
  						if(logger.isDebugEnabled()) {
  							logger.debug("Proxy Branch Timeout set to " + proxyBranchTimeout);
  							logger.debug("updateTimer - proxy=" + proxy);
  							if (proxy != null){
  								logger.debug("updateTimer - proxy.getProxyTimerService()=" + proxy.getProxyTimerService());
  							}
  						}
  						proxy.getProxyTimerService().schedule(timerCTask, proxyBranchTimeout * 1000L);
  						proxyTimeoutTask = timerCTask;
  						proxyBranchTimerStarted = true;
  					} catch (IllegalStateException e) {
  						logger.error("Unexpected exception while scheduling Timer C" ,e);
  					}	
  				}
  			}
  		}		
  	}
docs: Restart the timer. Call this method when some activity shows the remote
  party is still online.
  @param mobicentsSipApplicationSession