public CallInfo getCallInfo(String call, boolean useCache) throws Exception {
		CallInfo c = null;
		try {
			if (this.sessionKey == null) {
				throw new Exception("You must loging first");
			}

			

			if (useCache) {
				c = DerbyManager.getInstance().getCallFromCache(call);
				if(c!=null){
					log.info(call+ " found in cache ");
				}
			}

			if (c == null) {
				//String url = "http://www.qrz.com/xml?s=" + this.sessionKey + ";callsign=" + call;
				String url = "http://www.hamqth.com/xml.php?id=" + this.sessionKey + "&callsign="+call+"&prg=GeLog";
				DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
				DocumentBuilder db;

				db = dbf.newDocumentBuilder();
				Document doc = db.parse(new URL(url).openStream());

				c = build(doc);
				
				if (useCache){
					DerbyManager.getInstance().cacheCallInfo(c);
				}
			}
		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			log.error("Error", e);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			log.error("Error", e);
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			log.error("Error", e);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			log.error("Error", e);
		}

		return c;
	}