code: public int startNewSession() {
  		if (txSessEncKey != null)
  			return SESSION_ERROR_ALREADY_ACTIVE;
  		if ((txMasterSalt == null) || (rxMasterSalt == null))
  			return SESSION_ERROR_MASTER_SALT_UDNEFINED;
  		if ((txMasterKey == null) || (rxMasterKey == null))
  			return SESSION_ERROR_MASTER_SALT_UDNEFINED;
  		if (!txSessionKeyDerivation()) {
  			log("startNewSession txSessionKeyDerivation failed");
  			return SESSION_ERROR_KEY_DERIVATION_FAILED;
  		}
  		// Create encryptor components for tx session
  		try {
  			// and the HMAC components
  			txEncryptorSuite = platform.getCrypto().createEncryptorSuite(
  					txSessEncKey, initVector);
  			txHMAC = platform.getCrypto().createHMACSHA1(txSessAuthKey);
  		} catch (Throwable e) {
  			log("startNewSession failed to create Tx encryptor");
  			return SESSION_ERROR_RESOURCE_CREATION_PROBLEM;
  		}
  		replayWindow = platform.getUtils().createSortedVector();
  		receivedFirst = false;
  		rollOverCounter = 0;
  		rxRoc = 0;
  		txIV = new byte[16]; // Always uses a 128 bit IV
  		rxIV = new byte[16];
  		txEncOut = new byte[16];
  		rxEncOut = new byte[16];
  		return SESSION_OK;
  	}
docs: Starts a new SRTP Session, using the preset master key and salt to
  generate the session keys
  
  @return error code