diff --git a/agent/Makefile.in b/agent/Makefile.in
index 696ce9a283e07eb16c5bc672eca5ae99447f9117..f73768f65bbe75079cbbc833a0109fc6717c67e7 100644
--- a/agent/Makefile.in
+++ b/agent/Makefile.in
@@ -38,14 +38,20 @@ GSOAPREL = 15
 GSOAPURL = http://ufpr.dl.sourceforge.net/project/gsoap2/gSOAP/gSOAP%202.7.15%20stable/gsoap_$(GSOAPVER).$(GSOAPREL).tar.gz
 GSOAP = gsoap-$(GSOAPVER)
 
+WGETVER = 1.13
+WGETREL = 4
+WGETURL = http://gnu.c3sl.ufpr.br/ftp/wget/wget-$(WGETVER).$(WGETREL).tar.gz
+WGET = wget-$(WGETVER).$(WGETREL)
+
 WSNAME = DataSID
-WSURL = http://bisimmcdev.c3sl.ufpr.br:8080/axis2/services/$(WSNAME)?wsdl
+WSURL = http://simmc.c3sl.ufpr.br/axis2/services/$(WSNAME)?wsdl
 
 FILES = bin/datasid-agent.sh bin/datasid-client.sh \
 		bin/datasid-common.sh bin/datasid-gsoap-client \
 		bin/datasid-wget.sh bin/datasid-xml-generator \
 		bin/datasid-check.sh bin/datasid-netmon.sh \
 		bin/datasid-network-usage.sh \
+		bin/datasid-builtin-wget \
 		conf/datasid.conf \
 		gen-scripts/collected-data/agent-version.tree \
 		gen-scripts/collected-data/telecentro-info.tree \
@@ -66,12 +72,12 @@ FILES = bin/datasid-agent.sh bin/datasid-client.sh \
 		network-scripts/net-collected-data/telecentro-id.tree
 		
 .PHONY: all
-all: bin/datasid-xml-generator bin/datasid-gsoap-client
+all: bin/datasid-xml-generator bin/datasid-gsoap-client bin/datasid-builtin-wget
 
 .PHONY: clean
 clean:
 	@rm -rf $(BUILD)
-	@rm -rf bin/datasid-xml-generator bin/datasid-gsoap-client
+	@rm -rf bin/datasid-xml-generator bin/datasid-gsoap-client bin/datasid-builtin-wget
 
 
 ###########
@@ -161,7 +167,31 @@ bin/datasid-gsoap-client: $(BUILD)/client.o $(BUILD)/soapC.o $(BUILD)/soapClient
 	@mkdir -p bin
 	$(CC) -o $@ $(LDFLAGS) $^
 
+########
+# wget #
+########
+
+$(BUILD)/$(WGET).tar.gz:
+	@mkdir -p $(BUILD)
+	wget -O $@ $(WGETURL)
+
+$(BUILD)/$(WGET)/.extracted: $(BUILD)/$(WGET).tar.gz
+	cd $(BUILD); tar xzvf $(WGET).tar.gz
+	@touch $@
 
+$(BUILD)/$(WGET)/Makefile: $(BUILD)/$(WGET)/.extracted
+	cd $(BUILD)/$(WGET); \
+                CFLAGS=-m32 ./configure --prefix=$(realpath $(BUILD)) \
+                --without-ssl --disable-opie --disable-digest \
+                --disable-ntlm --disable-debug --disable-nls --disable-largefile \
+                --disable-ipv6 --disable-rpath --disable-iri; \
+		make LDFLAGS=-static
+
+bin/datasid-builtin-wget: $(BUILD)/$(WGET)/Makefile
+	@mkdir -p "$(BUILD)/bin"
+	cp -a "$(BUILD)/$(WGET)/src/wget" "$(BUILD)/bin"
+	mv "$(BUILD)/bin/wget" $@
+		
 ###########
 # install #
 ###########
diff --git a/agent/bin/datasid-agent.sh b/agent/bin/datasid-agent.sh
index f1bbe19091edb6ea5567fcfce26a803b0707757e..ed8bf2bbae10e21584d49c4cdd4c8c4e8d143232 100755
--- a/agent/bin/datasid-agent.sh
+++ b/agent/bin/datasid-agent.sh
@@ -68,7 +68,7 @@ function checkUpdate()
 
         # If $FIST_EXECUTION is set, do not run the update. Otherwise, run the
         # update and return 1 in case of error
-        test "${FIRST_EXECUTION}" || sudo bash ${DATADIR}/datasid-update.run || return 1
+        test "${FIRST_EXECUTION}" || bash ${DATADIR}/datasid-update.run || return 1
 
         rm -f ${DATADIR}/datasid-update.run
 
@@ -91,7 +91,7 @@ function schedule()
         MIN=$(( $RANDOM % 60 ))
     fi
 
-    cronAgent="${MIN} * * * * ${PREFIX}/bin/datasid-check.sh && ${PREFIX}/bin/datasid-agent.sh && ${PREFIX}/bin/datasid-network-usage.sh"
+    cronAgent="${MIN} * * * * ${PREFIX}/bin/datasid-check.sh; ${PREFIX}/bin/datasid-agent.sh; ${PREFIX}/bin/datasid-network-usage.sh"
     cronNetmon="0-59/5 * * * * ${PREFIX}/bin/datasid-netmon.sh"
     cronReboot="@reboot ${PREFIX}/bin/datasid-agent.sh"
 
diff --git a/agent/bin/datasid-common.sh b/agent/bin/datasid-common.sh
index 41f385049ea9d4cb62cdff061229b583dcc71e73..c9e71df10a88cba44e0f15c5daa01969bf2d8b06 100755
--- a/agent/bin/datasid-common.sh
+++ b/agent/bin/datasid-common.sh
@@ -57,13 +57,13 @@ done < ${conf}
 
 if ! test -f "${PROXYCONF}"; then
     date +"%F %T - WARNING: Proxy file not found."
+    # Read config file and declare only valid variables
+else
+    while read var; do
+        test -n "$(echo $var | egrep -i "^[a-z_]+=")" && eval "export ${var}"
+    done < ${PROXYCONF}
 fi
 
-# Read config file and declare only valid variables
-while read var; do
-    test -n "$(echo $var | egrep -i "^[a-z_]+=")" && eval "export ${var}"
-done < ${PROXYCONF}
-
 # Create "data" and "log" directories if needed
 mkdir -p ${DATADIR} ${LOGDIR}
 
diff --git a/agent/bin/datasid-netmon.sh b/agent/bin/datasid-netmon.sh
index d29c1abb86ca3a607ccd74a197719bc034dc216c..e0c31389dcfc99cf7477453ed0946e22c1bd3590 100755
--- a/agent/bin/datasid-netmon.sh
+++ b/agent/bin/datasid-netmon.sh
@@ -81,11 +81,6 @@ if test -z "${PREFIX}"; then
     exit 2
 fi
 
-# If the user is not in the sudoers(1)
-if ! sudo -v &> /dev/null; then
-    exit 0
-fi
-
 cd ${DATADIR}
 
 # Collected data from the current day
@@ -105,7 +100,7 @@ IPTABLES=$(which iptables)
 test $? -ne 0 && IPTABLES="/sbin/iptables"
 
 test -x $IP || exit 1
-test -x $IPTABLES || exit 1
+test -x $IPTABLES || (IPTABLES="/usr/sbin/iptables" && test -x $IPTABLES) || exit 1
 
 
 #------------------------------------------------------------------------------
diff --git a/agent/bootstrap/install b/agent/bootstrap/install
index a252fe808546baebead874a54942b629af155770..17e4da90a1f8bf151df4254201f4a5fd80fcbd23 100644
--- a/agent/bootstrap/install
+++ b/agent/bootstrap/install
@@ -126,27 +126,6 @@ printf "Iniciando instalação do agente DATASID. Tenha certeza de %b%b%b\n" \
        "estar conectado à Internet. Além disso, para o agente funcionar \n" \
        "são necessários os pacotes \"cron\" e \"sudo\".\n\n" >&3
 
-PROXY_HOST=""
-PROXY_PORT=""
-PROXY_USERNAME=""
-PROXY_PASSWORD=""
-
-printf "Deseja utilizar proxy? [s/N] " >&3
-read USEPROXY
-
-if test "$USEPROXY" == "s" -o "$USEPROXY" == "S"; then
-    printf "Insira o HOST de seu proxy: " >&3
-    read PROXY_HOST
-
-    printf "Insira a PORTA de seu proxy: " >&3
-    read PROXY_PORT
-
-    printf "Insira o USUÁRIO de seu proxy: " >&3
-    read PROXY_USERNAME
-
-    printf "Insira a SENHA de seu proxy: " >&3
-    read PROXY_PASSWORD
-fi
 # Check if lastexec exist then save its content to prevent that
 # agent send a inventory more than once per day
 if test -f ${LASTEXEC}; then
@@ -217,11 +196,16 @@ printf "Adquirindo permissões nescessárias... " >&3
 # Remove any possible line containing a rule for datasid user before adding
 # root permissions in the sudoers file
 TMPFILE=$(mktemp)
-sed '/^datasid/d' /etc/sudoers > "${TMPFILE}"
+sed '/^\(Defaults:\)\?datasid/d' /etc/sudoers > "${TMPFILE}"
 
 # Add root permissions to datasid
 echo -e "datasid\tALL=(ALL) NOPASSWD: ALL" >> "${TMPFILE}"
 
+# Remove on Fedora the requirement of tty for sudo
+if grep -q "Fedora" /etc/issue; then
+    echo -e 'Defaults:datasid\t!requiretty' >> "${TMPFILE}"
+fi
+
 # Check if modified sudoers file is valid and apply it
 if ! visudo -cf "${TMPFILE}" || ! mv "${TMPFILE}" /etc/sudoers \
    || ! chmod 440 /etc/sudoers; then
diff --git a/agent/bootstrap/update b/agent/bootstrap/update
index ebffce47326c7cfc997ce5899e43ea4c99be7424..e38e66f3f48a6a744dab39642cb0fed849ada0b8 100644
--- a/agent/bootstrap/update
+++ b/agent/bootstrap/update
@@ -43,21 +43,6 @@ if [[ ${PKG_MD5} != $(md5sum ${PKG_FILE} | awk '{print $1}') ]]; then
     exit 4
 fi
 
-# Create datasid user, group and home
-if ! /usr/sbin/groupadd -r -f datasid; then
-    printf "ERRO: Falha ao criar o grupo datasid.\n"
-    exit 1
-fi
-
-/usr/sbin/useradd -r -M -g datasid -s /bin/bash -d "${DATASID_HOME}" datasid
-RETVAL=$?
-
-# NOTE: RETVAL=9 means the user already exists (that is acceptable)
-if test ${RETVAL} -ne 0 -a ${RETVAL} -ne 9; then
-    printf "ERRO: Falha ao criar o usuário datasid.\n"
-    exit 2
-fi
-
 # Make sure home exists
 mkdir -p "${DATASID_HOME}"
 
@@ -91,11 +76,6 @@ fi
 
 rm -f "${PKG_FILE}"
 
-# Change files owner
-if ! chown -R datasid:datasid "${DATASID_HOME}"; then
-    printf "WARNING: Falha ao mudar dono dos arquivos.\n"
-fi
-
 # Check if the new files are OK
 if ! md5sum --quiet --check .md5sum; then
     printf "WARNING: Arquivos extraidos corrompidos, restaurando backup...\n"
diff --git a/agent/conf/datasid.conf b/agent/conf/datasid.conf
index 52ef3321441425b7c5846356c00ee381c4cb7962..a83361908ab5c9af777fa9201bfab6caeeb02f6d 100644
--- a/agent/conf/datasid.conf
+++ b/agent/conf/datasid.conf
@@ -10,4 +10,4 @@ DAYSTOEXPIRELOG=31 # 1 month
 UPDATETRIES=3
 UPDATETIMEOUT=100
 
-WEBSERVICE="http://bisimmcdev.c3sl.ufpr.br/axis2/services/DataSID"
+WEBSERVICE="http://simmc.c3sl.ufpr.br/axis2/services/DataSID"
diff --git a/agent/gen-scripts/collected-data/agent-version.tree b/agent/gen-scripts/collected-data/agent-version.tree
index e93fd3ce859264f16dc7044574f40d4bb7d82418..aae7aac72681067bfceadb0f70942d3d17599687 100755
--- a/agent/gen-scripts/collected-data/agent-version.tree
+++ b/agent/gen-scripts/collected-data/agent-version.tree
@@ -23,7 +23,7 @@
 export PREFIX="$(readlink -f "$(dirname $0)/../../")"
 
 # run datasid-common.sh
-source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" || exit 1
+source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" > /dev/null 2>&1 || exit 1
 
 if test -z "${PREFIX}"; then
     exit 2
diff --git a/agent/gen-scripts/collected-data/inventory/distro.tree b/agent/gen-scripts/collected-data/inventory/distro.tree
index 940cc3b522f7034a53c0e57388afb3c4e032ce65..4566b8dba7c652b3ac6ec62fb1f98e893f2f6394 100755
--- a/agent/gen-scripts/collected-data/inventory/distro.tree
+++ b/agent/gen-scripts/collected-data/inventory/distro.tree
@@ -22,10 +22,13 @@
 DISTRO=$(cut -sd ' ' -f1 /etc/issue | head -n 1)
 
 if test -f "/etc/le_version"; then
-  printf "Linux Educacional $(cat /etc/le_version)\n"
+  printf "Linux Educacional $(cat /etc/le_version)"
+  (dpkg -l minicom-client-config | grep -q '^ii' || 
+      dpkg -l minicom-server-config | grep -q '^ii') > /dev/null 2>&1 && printf " mc"
+  printf "\n"
 elif test "${DISTRO}" = "Ubuntu" -a -f "/usr/lib/edu/fbedu/tutorial.htm"; then
   printf "Linux Educacional\n"
-elif test "${DISTRO}" = "Mandriva"; then
+elif test "${DISTRO}" = "Mandriva" -o "${DISTRO}" = "Fedora"; then  
   head -n 1 /etc/issue
 elif test "${DISTRO}" = "Welcome"; then
   cut -sd "\\" -f1 /etc/issue | cut -d ' ' -f3-
diff --git a/agent/gen-scripts/collected-data/telecentro-info.tree b/agent/gen-scripts/collected-data/telecentro-info.tree
index 7c43e14fd71bd83478b700b058d1073ca7c8c2e8..0d3226e1d179ac81c4d14e66faad521f48746a4a 100755
--- a/agent/gen-scripts/collected-data/telecentro-info.tree
+++ b/agent/gen-scripts/collected-data/telecentro-info.tree
@@ -23,7 +23,7 @@
 export PREFIX="$(readlink -f "$(dirname $0)/../../")"
 
 # run datasid-common.sh
-source "$(readlink -f "$(dirname $0)/../../")/bin/datasid-common.sh" || exit 1
+source "$(readlink -f "$(dirname $0)/../../")/bin/datasid-common.sh" > /dev/null 2>&1 || exit 1
 
 if test -z "${PREFIX}"; then
     exit 2
@@ -31,17 +31,6 @@ fi
 
 # Telecentro data that will be collected
 COLLECTDATA=( superid=superid 
-tl_name=nome
-tl_connection=conexao
-tl_beneficiary=beneficiaria
-admin_name=responsavel
-city=municipio
-state=estado
-tl_street=rua
-tl_number=numero
-tl_zipcode=cep
-tl_neighborhood=bairro
-geolocation=geolocalizacao
 user_count=usuarios )	
 
 index=0;
@@ -51,7 +40,7 @@ while [ $index != ${#COLLECTDATA[@]} ]
 do
     tagName=$(echo ${COLLECTDATA[$index]} | awk -F'=' '{print $1}')
     collect=$(echo ${COLLECTDATA[$index]} | awk -F'=' '{print $2}')
-	value=$(cat ${CONFDIR}/telecentroInfo | grep $collect | awk -F'=' '{print $2}')
+    value=$(cat ${CONFDIR}/telecentroInfo | grep $collect | awk -F'=' '{print $2}')
     # Check if the data exists
     index=$(($index + 1))
     test -z "${value}" && exit $(($index + 2))
diff --git a/agent/gen-scripts/collected-data/user-history.tree b/agent/gen-scripts/collected-data/user-history.tree
index b5832489fcae5d3c4a1eb751e6c0c215a6ee4dbc..884b17e6e38491544c2ae4289a78dffe353b294c 100755
--- a/agent/gen-scripts/collected-data/user-history.tree
+++ b/agent/gen-scripts/collected-data/user-history.tree
@@ -23,7 +23,7 @@
 export PREFIX="$(readlink -f "$(dirname $0)/../../")"
 
 # run datasid-common.sh
-source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" || exit 1
+source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" > /dev/null 2>&1 || exit 1
 
 if test -z "${PREFIX}"; then
     exit 2
diff --git a/agent/network-scripts/net-collected-data/agent-version.tree b/agent/network-scripts/net-collected-data/agent-version.tree
index e93fd3ce859264f16dc7044574f40d4bb7d82418..aae7aac72681067bfceadb0f70942d3d17599687 100755
--- a/agent/network-scripts/net-collected-data/agent-version.tree
+++ b/agent/network-scripts/net-collected-data/agent-version.tree
@@ -23,7 +23,7 @@
 export PREFIX="$(readlink -f "$(dirname $0)/../../")"
 
 # run datasid-common.sh
-source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" || exit 1
+source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" > /dev/null 2>&1 || exit 1
 
 if test -z "${PREFIX}"; then
     exit 2
diff --git a/agent/network-scripts/net-collected-data/bandwidth-usage.tree b/agent/network-scripts/net-collected-data/bandwidth-usage.tree
index c694e2881077817523d56c93e623dbbb5f18af03..b1bd2ac301fa414e410d24fd792779fb4d77e9f1 100755
--- a/agent/network-scripts/net-collected-data/bandwidth-usage.tree
+++ b/agent/network-scripts/net-collected-data/bandwidth-usage.tree
@@ -84,6 +84,11 @@ function xml_data_generator()
             else
                 INTERVALID=$(cut -d" " -f1 <<< $line)
 
+		while test $COUNT -lt $INTERVALID -a $COUNT -lt 288; do
+                     COUNT=$((${COUNT} + 1))
+                     increment_time
+                done
+
                 if test $COUNT -lt 288; then
                     xml_print
                     COUNT=$((${COUNT} + 1))
@@ -104,7 +109,7 @@ function xml_data_generator()
 export PREFIX="$(readlink -f "$(dirname $0)/../../")"
 
 # run datasid-common.sh
-source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" || exit 1
+source "$(readlink -f "$(dirname $0)/../..")/bin/datasid-common.sh" > /dev/null 2>&1 || exit 1
 
 if test -z "${PREFIX}"; then
     date +"%F %T - ERROR: Prefix not set."
diff --git a/agent/network-scripts/net-collected-data/telecentro-id.tree b/agent/network-scripts/net-collected-data/telecentro-id.tree
index 85d36364876925ab05080ff794799c2c5e255adb..5a402e3086279be30a4e37d2221208ce32671f0a 100755
--- a/agent/network-scripts/net-collected-data/telecentro-id.tree
+++ b/agent/network-scripts/net-collected-data/telecentro-id.tree
@@ -23,7 +23,7 @@
 export PREFIX="$(readlink -f "$(dirname $0)/../../")"
 
 # run datasid-common.sh
-source "$(readlink -f "$(dirname $0)/../../")/bin/datasid-common.sh" || exit 1
+source "$(readlink -f "$(dirname $0)/../../")/bin/datasid-common.sh" > /dev/null 2>&1 || exit 1
 
 if test -z "${PREFIX}"; then
     exit 2
diff --git a/webservice/DataSID.java b/webservice/DataSID.java
index 51b228a1f25a8be8b17e9d0d1449e8699b96e139..1d52db72befa5b3b4fa88f4aa7cc8a05de9b6981 100644
--- a/webservice/DataSID.java
+++ b/webservice/DataSID.java
@@ -19,7 +19,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  * USA.
  */
-
 package br.ufpr.c3sl.datasid;
 
 import java.io.*;
@@ -40,25 +39,26 @@ import javax.xml.bind.util.ValidationEventCollector;
 import javax.xml.bind.helpers.DefaultValidationEventHandler;
 import javax.xml.validation.Schema;
 import javax.xml.validation.SchemaFactory;
+import javax.xml.transform.stream.StreamSource;
 
 public class DataSID {
-
+    
     private static final int LINUX = 0;
     private static final int WINDOWS = 1;
 
     private static final String SA_INVENTORY = "telecenter_inventory";
-    private static final String SA_NET_USAGE = "net_usage";
+    private static final String SA_NET_USAGE = "telecenter_net_usage";
     private static final String SA_USER_HISTORY = "telecenter_user_history";
-
+	
     private static final File XML_INVENTORY_SCHEMA = new File("/home/datasid/conf/collected-data.xsd");
 	private static final File XML_NET_USAGE_SCHEMA = new File("/home/datasid/conf/net-collected-data.xsd");
-
+	
     private static final String AGENT_VERSION = "1.0.0";
     private static final String AGENT_UPDATE_LINK = "http://bisimmcdev.c3sl.ufpr.br/download/datasid-1.0.0-update.run";
-
+    
     private static final String WINDOWS_AGENT_VERSION = "1.0.0";
     private static final String WINDOWS_UPDATE_LINK = "http://bisimmcdev.c3sl.ufpr.br/download/datasid-1.0.0-update.exe";
-
+    
     // enum does not work as expected inside an axis web service
     // using simple constants instead
     private static final int ERROR = 0;
@@ -134,15 +134,16 @@ public class DataSID {
      * @return                  String
      */
     public static String getAgentVersion(int OS) {
-        switch (OS) {
-            case LINUX:
+        switch(OS){
+            case LINUX: 
                 return AGENT_VERSION;
-            case WINDOWS:
+            case WINDOWS:                       
                 return WINDOWS_AGENT_VERSION;
             default:
-                return "ERROR: invalid OS";
+                return "ERROR: invalid OS";                              
         }
-    }
+        
+    }    
 
     /**
      * Return a string that contains a link to download the newest version of
@@ -154,15 +155,15 @@ public class DataSID {
      */
     public static String getUpdateLink(int OS)
     {
-        switch (OS) {
-            case LINUX:
+        switch(OS){
+            case LINUX: 
                 return AGENT_UPDATE_LINK;
-            case WINDOWS:
+            case WINDOWS:                       
                 return WINDOWS_UPDATE_LINK;
             default:
-                return "ERROR: invalid OS";
+                return "ERROR: invalid OS";                             
         }
-    }
+    }	
 
     /**
      * Receive an XML string which has the inventory data to be parsed and
@@ -176,7 +177,7 @@ public class DataSID {
     public static String setInventory(String xmlData) {
         try {
             InitialContext cxt = new InitialContext();
-            DataSource ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/datasid");
+            DataSource ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/simmc");
             if (ds == null)
                 throw new Exception("Data source not found!");
 
@@ -187,7 +188,7 @@ public class DataSID {
             SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
             Schema schema = factory.newSchema(XML_INVENTORY_SCHEMA);
 
-            JAXBContext context = JAXBContext.newInstance("br.ufpr.c3sl.datasid");
+            JAXBContext context = JAXBContext.newInstance(CollectedData.class);
             Unmarshaller unmarshaller = context.createUnmarshaller();
             unmarshaller.setSchema(schema);
 
@@ -198,30 +199,29 @@ public class DataSID {
             InputStream is = new ByteArrayInputStream(xmlData.getBytes());
 
             // Decode the XML into a Java Object
-            JAXBElement<CollectedData> element = (JAXBElement<CollectedData>) unmarshaller.unmarshal(is);
+            JAXBElement<CollectedData> element = (JAXBElement<CollectedData>) unmarshaller.unmarshal(new StreamSource(is), CollectedData.class);
             CollectedData collected = element.getValue();
-
-            Calendar cal = Calendar.getInstance();
-            java.sql.Date contactDate = new java.sql.Date(cal.getTimeInMillis());
-
+			// contact_date = current date
+        	Calendar cal = Calendar.getInstance();
+        	java.sql.Date contactDate = new java.sql.Date(cal.getTimeInMillis());
+                	
             PreparedStatement st = createInventoryStatement(con, collected, contactDate);
             st.executeUpdate();
 
 			/*List<User> users = collected.getUserHistory().getUser();
-			String superid = collected.getTelecentroInfo().getIdPoint();*/
+			String superid = collected.getTelecentroInfo().getSuperid();*/
 			List<Interface> interfaces = collected.getInterfaces().getInterface();
 			org.postgresql.util.PGobject macaddr = new org.postgresql.util.PGobject();
         	macaddr.setType("macaddr");
         	macaddr.setValue(interfaces.get(0).getMacAddress());
-
-			/*for (User user: users) {
+			
+			for(User user: users) {
 				st = createUserHistoryStatement(con, contactDate, superid, macaddr, user.getName(), user.getLogin(), user.getLogout());
 				st.executeUpdate();
-			}*/
-
+			}
             con.close();
 
-            log(INFO, "setInventory(id_point=" + collected.getTelecentroInfo().getIdPoint() + ", macaddr=" + interfaces.get(0).getMacAddress() + ")");
+            log(INFO, "setInventory(superid=" + collected.getTelecentroInfo().getSuperid() + ", macaddr=" + interfaces.get(0).getMacAddress() + ")");
             return "Success";
         } catch (Exception e) {
             log(ERROR, e.getMessage() + " " + xmlData);
@@ -229,24 +229,23 @@ public class DataSID {
             return "ERROR: " + e.getMessage();
         }
     }
-
+	
 	private static PreparedStatement createInventoryStatement(Connection con, CollectedData collectedData, java.sql.Date contactDate) throws SQLException {
         final String query = "INSERT INTO " + SA_INVENTORY + " " +
-            "(contact_date, machine_type, id_point, macaddr, agent_version" +
+            "(contact_date, machine_type, id_point, macaddr, agent_version, " +
             " os_type, os_distro, os_kernel, " +
             " processor, memory, " +
             " disk1_model, disk1_size, disk1_used, " +
             " disk2_model, disk2_size, disk2_used, " +
-            " extra_hds, " +
-            " mirror_timestamp, " +
+            " extra_hds " +
             ") VALUES " +
             "(?, ?, ?, ?, ?, " +
             " ?, ?, ?, " +
             " ?, ?, " +
             " ?, ?, ?, " +
             " ?, ?, ?, " +
-            " ?, " +
-            " ?);";
+            " ? " +
+            " );";
 
         PreparedStatement st = con.prepareStatement(query);
 
@@ -258,23 +257,23 @@ public class DataSID {
 
         // contact_date
        	st.setDate(1, contactDate);
-
+        
         // machine_type
         if(collectedData.getMachineType().compareTo("client") == 0)
             st.setInt(2, 0);
         else
             st.setInt(2, 1);
 
-        // id_point
-        st.setInt(3, teleCentroInfo.getIdPoint().intValue());
+        // superid
+        st.setInt(3, teleCentroInfo.getSuperid().intValue());
 
         // macaddr
         org.postgresql.util.PGobject macaddr = new org.postgresql.util.PGobject();
         macaddr.setType("macaddr");
         macaddr.setValue(interfaces.get(0).getMacAddress());
         st.setObject(4, macaddr);
-
-	    // agent_version
+		
+	    // versao
         st.setString(5, collectedData.getAgentVersion());
 
         // os_type
@@ -294,7 +293,7 @@ public class DataSID {
 
         // disk1_model
         st.setString(11, disks.get(0).getModel());
-
+        
         // disk1_size
         st.setInt(12, disks.get(0).getSize().intValue());
 
@@ -326,37 +325,40 @@ public class DataSID {
         st.setInt(17, (disks.size() > 2) ? (disks.size() - 2) : 0);
 
         // mirrors_timestamp
-        st.setString(18, collectedData.getMirrorsTimestamp());
+        //st.setString(18, collectedData.getMirrorsTimestamp());
 
         // user_count
         //st.setInt(???, teleCentroInfo.getUserCount().intValue());
 
+        // mirrors_timestamp
+        //st.setString(???, collectedData.getMirrorsTimestamp());
+
         return st;
     }
 
     private static PreparedStatement createUserHistoryStatement(Connection con, java.sql.Date contactDate,
-            int id_point, Object macaddr, String name, String login, String logout) throws SQLException {
+            int superid, Object macaddr, String name, String login, String logout) throws SQLException {
     	final String query = "INSERT INTO " + SA_USER_HISTORY + " " +
             "(contact_date, m_superid, macaddr, name, login, logout) VALUES " +
             "(?, ?, ?, ?, ?, ?);";
 
         PreparedStatement st = con.prepareStatement(query);
-
+        
         st.setDate(1, contactDate);
-   		
-        st.setInt(2, id_point);
 
-   		st.setObject(3, macaddr);
+        st.setInt(2, superid);
 
+   		st.setObject(3, macaddr);
+   		
    		st.setString(4, name);
-
+   		
    		st.setString(5, login);
-
+   		
    		st.setString(6, logout);
-
+        
         return st;
     }
-
+    
     /**
      * Receive an XML string which has the inventory data to be parsed and
      * inserted into database. Return "Success" string if insertion operation
@@ -370,7 +372,7 @@ public class DataSID {
     {
         try {
             InitialContext cxt = new InitialContext();
-            DataSource ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/datasid");
+            DataSource ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/simmc");
             if (ds == null)
                 throw new Exception("Data source not found!");
 
@@ -381,7 +383,7 @@ public class DataSID {
             SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
             Schema schema = factory.newSchema(XML_NET_USAGE_SCHEMA);
 
-            JAXBContext context = JAXBContext.newInstance("br.ufpr.c3sl.datasid");
+            JAXBContext context = JAXBContext.newInstance(NetCollectedData.class);
             Unmarshaller unmarshaller = context.createUnmarshaller();
             unmarshaller.setSchema(schema);
 
@@ -392,11 +394,11 @@ public class DataSID {
             InputStream is = new ByteArrayInputStream(xmlData.getBytes());
 
             // Decode the XML into a Java Object
-            JAXBElement<NetCollectedData> element = (JAXBElement<NetCollectedData>) unmarshaller.unmarshal(is);
+            JAXBElement<NetCollectedData> element = (JAXBElement<NetCollectedData>) unmarshaller.unmarshal(new StreamSource(is), NetCollectedData.class);
             NetCollectedData netCollectedData = element.getValue();
-
+			
 			List<Interface> interfaces = netCollectedData.getInterfaces().getInterface();
-
+   	
        		// contact_date = current date
         	Calendar cal = Calendar.getInstance();
         	java.sql.Date contactDate = new java.sql.Date(cal.getTimeInMillis());
@@ -404,16 +406,16 @@ public class DataSID {
         	org.postgresql.util.PGobject macaddr = new org.postgresql.util.PGobject();
         	macaddr.setType("macaddr");
         	macaddr.setValue(interfaces.get(0).getMacAddress());
-
+        
         	List<NetUse> netUses = netCollectedData.getBandwidthUsage().getNetuse();
-
+			
 			for(NetUse netUse : netUses) {
-		        PreparedStatement st = createNetUsageStatement(con, contactDate, netCollectedData.getIdPoint(), (Object)macaddr, netUse.getDate(), netUse.getTime(), netUse.getRx().getBytes(), netUse.getRx().getPackets(), netUse.getTx().getBytes(), netUse.getTx().getPackets());
+		        PreparedStatement st = createNetUsageStatement(con, contactDate, netCollectedData.getSuperid(), (Object)macaddr, netUse.getDate(), netUse.getTime(), netUse.getRx().getBytes(), netUse.getRx().getPackets(), netUse.getTx().getBytes(), netUse.getTx().getPackets());
 				st.executeUpdate();
 			}
             con.close();
 
-            log(DEBUG, "setNetUsage(id_point=" + netCollectedData.getIdPoint() + ", macaddr=" + interfaces.get(0).getMacAddress() + ")");
+            log(DEBUG, "setNetUsage(superid=" + netCollectedData.getSuperid() + ", macaddr=" + interfaces.get(0).getMacAddress() + ")");
             return "Success";
         } catch (Exception e) {
             log(ERROR, e.getMessage() + " " + xmlData);
@@ -423,33 +425,33 @@ public class DataSID {
     }
 
     private static PreparedStatement createNetUsageStatement(Connection con, java.sql.Date contactDate,
-            BigInteger id_point, Object macaddr, String collect_date, String collect_time, BigInteger down_kbits,
+            BigInteger superid, Object macaddr, String collect_date, String collect_time, BigInteger down_kbits,
             BigInteger down_packages, BigInteger up_kbits, BigInteger up_packages) throws SQLException {
         final String query = "INSERT INTO " + SA_NET_USAGE + " " +
-            "(contact_date, id_point, macaddr, collect_date, collect_time," +
+            "(contact_date, id_point, macaddr, collect_date, collect_time, " +
             "down_kbits, down_packages, up_kbits, up_packages) VALUES " +
             "(?, ?, ?, ?, ?, ?, ?, ?, ?);";
 
         PreparedStatement st = con.prepareStatement(query);
 
  		st.setDate(1, contactDate);
-   		
-        st.setInt(2, id_point.intValue());
 
-   		st.setObject(3, macaddr);
+        st.setInt(2, superid.intValue());
 
+   		st.setObject(3, macaddr);
+   		
    		st.setString(4, collect_date);
-
+          		
    		st.setString(5, collect_time);
-
-   		st.setInt(6, down_kbits.intValue());
-
+   		
+   		st.setInt(6, down_kbits.intValue() );
+   		
    		st.setInt(7, down_packages.intValue());
-
+   		
    		st.setInt(8, up_kbits.intValue());
-
+   		
    		st.setInt(9, up_packages.intValue());
-
-	    return st;
+	
+	    return st;	
 	}
 }
diff --git a/webservice/collected-data.xsd b/webservice/collected-data.xsd
index 661e9b41ce1c4e80b0b8f638153be3d93f2dd9cc..95c07b7882eeb100b879620c8e1cbd15a001b396 100644
--- a/webservice/collected-data.xsd
+++ b/webservice/collected-data.xsd
@@ -71,10 +71,10 @@
             <xsd:element name="logout" type="xsd:string" />
         </xsd:all>
     </xsd:complexType>
-    
+
     <xsd:complexType name="TeleCentroInfo">
         <xsd:all>
-            <xsd:element name="id_point" type="xsd:integer" />
+            <xsd:element name="superid" type="xsd:integer" />
             <xsd:element name="user_count" type="xsd:integer" />
         </xsd:all>
     </xsd:complexType>
diff --git a/webservice/net-collected-data.xsd b/webservice/net-collected-data.xsd
index c7106a53ac0fdfba6ab956a4599565f6428499b1..ceb30f302fad5c0dd5dd4d12ee845545ee698550 100644
--- a/webservice/net-collected-data.xsd
+++ b/webservice/net-collected-data.xsd
@@ -5,7 +5,7 @@
     <xsd:complexType name="NetCollectedData">
         <xsd:all>
             <xsd:element name="agent-version" type="xsd:string" minOccurs="1" />
-            <xsd:element name="id_point" type="xsd:integer" minOccurs="1" />
+            <xsd:element name="telecentro-id" type="xsd:integer" minOccurs="1" />
             <xsd:element name="interfaces" type="Interfaces" minOccurs="1" />
             <xsd:element name="bandwidth-usage" type="BandwidthUsage" minOccurs="1" />
         </xsd:all>