function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
eric garniereric garnier 

CTI : Using a centralize server to host my CTI Adapter

Hi everyone,

with the new toolkit 4.0, and its new architecture, is it possible to remove the adapter from the computer of the user, and to centralize it on a server?

At least it require:

 1) that the browser can connect to non local URL to fetch the XML stream.

 2) that the AdapterLib be thread safe if we want to share multiple session in the same process.


And maybe other points.


Is it a supported scenario in 4.0? And if not, will it be a supported scenario in a future version? When ?






Hi Eric,


I've been making some tests with the toolkit and here it's what I've found.


It seems that the BrowserConnector code explicitly ignores requests from any other origin that "localhost":


        private bool isValidRequest(HttpListenerRequest request, NameValueCollection queryString)
            // only requests sent from localhost will be processed
            if (!request.RemoteEndPoint.Address.ToString().StartsWith("") &&
                return false;

 I've experimented a bit with the above lines commented-out and was able to run the whole thing; although I only experimented in my desktop machine I assume it is possible to run the Adapter and BrowserConnector on a different machine.


Regarding running the thing as a server-side component, from what I've gathered, some changes would have to be made to the current implementation. The BrowserConnector links to one and only one Adapter, that represents a single session. That Adapter uses a single UserInterface object that in turn is supposed to handle UI events and commands for a single user.

Having said that I think that your idea of running the adapter as a server makes very much sense, it would simpler to install and manage and more coherent with Salesforce's "No Software" motto.