diff --git a/web/org.openbravo.mobile.core/source/utils/ob-utilities.js b/web/org.openbravo.mobile.core/source/utils/ob-utilities.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-utilities.js
+++ b/web/org.openbravo.mobile.core/source/utils/ob-utilities.js
@@ -1217,4 +1217,71 @@
     return moment(date, OB.Format.date.toUpperCase()).format("YYYY-MM-DD") < moment().format("YYYY-MM-DD");
   };
 
+  OB.UTIL.callServer = function (serverName, serviceUrl, data, success, error) {
+    var servers = OB.RR.RequestRouter.servers,
+        method = 'POST',
+        server = _.filter(servers.models, function (srv) {
+        return serverName === srv.get('name');
+      })[0];
+    if (OB.UTIL.localStorage.getItem('authenticationClient') && OB.UTIL.localStorage.getItem('authenticationToken')) {
+      if (serviceUrl.indexOf('?') === -1) {
+        serviceUrl = serviceUrl + '?';
+      } else {
+        serviceUrl = serviceUrl + '&';
+      }
+      serviceUrl = serviceUrl + 'authenticationClient=' + OB.UTIL.localStorage.getItem('authenticationClient') + '&authenticationToken=' + OB.UTIL.localStorage.getItem('authenticationToken');
+    }
+    if (!serviceUrl.startsWith('../../')) {
+      serviceUrl = '../../' + serviceUrl;
+    }
+    if (server.get('address')) {
+      serviceUrl = serviceUrl.replace('../../', server.get('address'));
+    }
+    if (!data) {
+      method = 'GET';
+    }
+
+    var ajaxRequest = new enyo.Ajax({
+      url: serviceUrl,
+      cacheBust: true,
+      xhrFields: {
+        withCredentials: true
+      },
+      method: method,
+      handleAs: 'json',
+      contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
+      success: success,
+      fail: error
+    });
+    ajaxRequest.go(data).response('success').error('fail');
+  };
+
+  OB.UTIL.callCentralServer = function (serviceUrl, data, success, error) {
+    // do not do anything in this case
+    if (!OB.RR.RequestRouter.isMultiServer()) {
+      return;
+    }
+
+    var method = 'POST',
+        mainServerList = _.filter(OB.RR.RequestRouter.servers.models, function (srv) {
+        return srv.get('mainServer');
+      });
+
+    if (!mainServerList || !mainServerList[0]) {
+      OB.error('Trying to call central server but no central server defined');
+      return;
+    }
+
+    OB.UTIL.callServer(mainServerList[0].get('name'), serviceUrl, data, success, error);
+  };
+
+  OB.UTIL.loginOnCentralServer = function (success, error) {
+    // do not do anything in this case
+    if (!OB.RR.RequestRouter.isMultiServer()) {
+      return;
+    }
+
+    OB.UTIL.callCentralServer('org.openbravo.mobile.core.service.jsonrest/org.openbravo.mobile.core.login.ContextInformation', null, success, error);
+  };
+
 }());
\ No newline at end of file
