void configure(RuntimeErrorValidator * v){
		setupConfiguration(v);
		closingEvents();
		if(hasError(v)){
			return;
		}

		//setLoggingLevelEnabled(LOGGING_LEVEL_INFO);
		setFssRunningStatus(TRUE);
		setupDirectoryIndexes();

		if(isInfoEnabled())
			info("Conectando con modulo KSS");

		ListenSocket s = openClientConnection(getKssHost() , getKssPort());

		if(s == INVALID_SOCKET){
			setError(v , "no se puede abrir la coneccion");
			return;
		}

		MpsHandshake * handshake = buildMpsHandhake(generateRandomKey(16) , FSS_HANDSHAKE);
		handshake = sendAndReceiveMpsHandshake(handshake , s , v);

		if(handshake != NULL && handshake->statusCode == MPS_RESPONSE_STATUS_CODE_SUCCESS ){
			info(concatAll(2 , "Handshake realizado satisfactoriamente con DescriptorId: " , handshake->descriptorId));
			setFileSystemSocket(s);
		}else{
			setError(v , "Hubo un problema y no se pudo realizar el handshake");
			return;
		}
	}
int CtZrtpSession::init(bool audio, bool video, int32_t callId, ZrtpConfigure* config)
{
    int32_t ret = 1;

    synchEnter();

    ZrtpConfigure* configOwn = NULL;
    if (config == NULL) {
        config = configOwn = new ZrtpConfigure();
        setupConfiguration(config);
        config->setTrustedMitM(false);
#if defined AXO_SUPPORT
        config->setSasSignature(true);
#endif
    }
    config->setParanoidMode(enableParanoidMode);
    callId_ = callId;

    ZIDCache* zf = getZidCacheInstance();
    if (!zf->isOpen()) {
        ret = -1;
    }
    if (ret > 0) {
        const uint8_t* ownZid = zf->getZid();
        CtZrtpStream *stream;

        // Create CTZrtpStream object only once, they are availbe for the whole
        // lifetime of the session.
        if (audio) {
            if (streams[AudioStream] == NULL)
                streams[AudioStream] = new CtZrtpStream();
            stream = streams[AudioStream];
            stream->zrtpEngine = new ZRtp((uint8_t*)ownZid, stream, clientIdString, config, mitmMode, signSas);
            stream->type = Master;
            stream->index = AudioStream;
            stream->session = this;
            stream->discriminatorMode = discriminatorMode;
        }
        if (video) {
            if (streams[VideoStream] == NULL)
                streams[VideoStream] = new CtZrtpStream();
            stream = streams[VideoStream];
            stream->zrtpEngine = new ZRtp((uint8_t*)ownZid, stream, clientIdString, config);
            stream->type = Slave;
            stream->index = VideoStream;
            stream->session = this;
            stream->discriminatorMode = discriminatorMode;
        }
        isReady = true;
    }
    if (configOwn != NULL) {
        delete configOwn;
    }
    synchLeave();
    return ret;
}
	void configure(){
		setLoggingLevelEnabled(LOGGING_LEVEL_DEBUG);
		setVdaRunningStatus(TRUE);
		setGlobalHeap( createHeap(1024) );
		setupConfiguration();
		if (!isVdaOfflineMode()) {
			initializeWinsock();
			initializeKssConnection();
		}
		if(isVdaAvailableCache())
			initializeCache();
		initializeDisk();
	}
	void configure(){
		setLoggingLevelEnabled(LOGGING_LEVEL_INFO);
		setupConfiguration();
		setFssRunningStatus(TRUE);
		setupDirectoryIndexes();
	}
	void configure(){

		setupConfiguration();
		setKssRunningStatus(TRUE);
		setLoggingLevelEnabled(LOGGING_LEVEL_DEBUG);
	}
	void configure(){
		setupConfiguration();
		setLoggingLevelEnabled(LOGGING_LEVEL_INFO);
	}