The information on this page assumes you are already familiar with how to set up and configure an the collaboration server.
In order to be able to use universal co-browsing and/or document co-browsing in a collaboration server running on your application server, the Unblu Rendering Service component is required.
Document co-browsing and universal co-browsing require the Rendering Service appliance to be installed. The Unblu Rendering Service is based on Docker (https://www.docker.com/). It requires a separate host to run Docker with the rendering service Docker image available at https://hub.docker.com/r/unblu/renderingservice/
For more information on how to install and run a docker engine visit https://www.docker.com/.
For more information on Docker and why we use it see: Docker Explained.
|From version 4.2 onwards, the collaboration server requires the Docker rendering service tags to be version-specific to the collaboration server version used. So, if you use Unblu 4.2 then 4.2 is the tag version number of the Unblu Docker rendering service you must use. unblu 4.3 will use 4.3, and so on.|
Universal co-browsing is where a headless browser runs on our server inside the rendering service and we render the graphical output to both the agent and visitor.
| Session-in-context or 'context sharing' is not possible if the session cookie has the
The rendering service appliance is a helper appliance that augments the Collaboration Server with the capability to perform universal co-browsing and document sharing.
The Collaboration Server must be able to connect to the rendering service using the SSH protocol on a tcp port on the Docker host that is mapped to the tcp port 22 in the Rendering Service container.
The Rendering Service container must be able to connect to the Collaboration Server using HTTP(S) with the URL provided in the
com.unblu.hbworker.headlessBrowserReverseBaseUrl configuration property.
If the Rendering Service is used for universal co-browsing then the rendering service container needs to be able to access all web servers (using HTTP(S)) that need to be available within universal co-browsing. Note that this requirement does not apply when the rendering service is only used for document sharing.
The rendering service appliance is installed / started using the Docker command line tool with the following command:
# Create and start the rendering service container # <name>: name of the docker container that is created on the docker # host # <port>: tcp port mapping for the unblu/renderingservice on the docker # host # (the Unblu Server will connect to the # unblu/renderingservice through this tcp port) # <password>: password for the Unblu Server to connect to # the unblu/renderingservice # <tag>: version number docker run -d --name <name> -p <port>:22 -e PASSWORD=<password> unblu/renderingservice:<tag>
This command creates and starts a container from the rendering service image on the Docker host.
To stop the rendering service container:
# Stopping the rendering service container # <name>: name of the docker container as given in the "docker run" command above docker stop <name>
and to start the container again:
# Starting the rendering service container # <name>: name of the docker container as given in the "docker run" command above docker start <name>
The rendering service Docker image is stateless and does not store any persistent data, thus it is also possible to use a transient container (create a new container on every start of the system) instead of using a persistent container.
If you want to remove the rendering service use the following command:
# Stop and remove the rendering service # <name>: name of the docker container as given in the "docker run" command above docker -t 10 stop <name>; docker rm -f <name>
With the rendering service started you can configure the Collaboration Server to use it with the following configuration properties:
# <collaborationServerBaseUrl>: fully qualified base url of the unblu # collaboration server (reachable from the renderingservice), # i.e. https://unbluserver.mycompany.com # (format: <protocol>://<host>[:<optionalPort>] # <dockerHost>: host name or IP of the docker host where the unblu/renderingservice # container is running # <renderingServicePort>: tcp port of the unblu/renderingservice container # as mapped using the -p <renderingServicePort>:22 # argument in the "docker run" command # <password>: the password of the unblu/renderingservice # '/sys-unblu' must be explicitly enabled as it is disabled by default com.unblu.hbrunner.runnerStrategy=HB_RUNNER_POOL_SINGLE_VA com.unblu.hbworker.headlessBrowserReverseBaseUrl=<collaborationServerBaseUrl>/sys-unblu com.unblu.hbrunner.vaHostname=<dockerHost> com.unblu.hbrunner.vaSSHPort=<renderingServicePort> com.unblu.hbrunner.vaPassword=<password> com.unblu.systempath.enabled=true
While the above block deals with the technical requirements to establish connections between the Collaboration Server and the rendering service, the following property is required to enable universal and document co-browsing in unblu as a whole:
# enable universal co-browsing options in agent desk com.unblu.collaborationsession.headlessBrowserEnabled=true
Once Docker has been started with docker run (see above), try to connect from the Collaboration Server into Docker as follows:
Connecting to the docker image # <port>: port on which docker host is providing access to the image # (corresponds to <port> from docker run command) # <dockerHost>: host name or IP of the docker host where the # unblu/renderingservice container is running # <password>: the password specified when starting the unblu rendering service # with docker run ssh -p <port> unblu@<dockerHost> Password: <password>
Within the Docker image you should also check whether the connection back to the Collaboration Server works. For that purpose make sure the Collaboration Server has been successfully started. Once it is started, login to the Docker image using ssh (see above) and execute the following:
Connecting back to collaboration server # <collaborationServerBaseUrl>: fully qualified base url of the Unblu Server. # Must eventually match with what's specified in the # unblu.properties file # (see com.unblu.hbworker.headlessBrowserReverseBaseUrl # above) curl <collaborationServerBaseUrl>/sys-unblu/rest/product/all # example output from the above command: product.com.unblu.enterprise_4.3.0.RELEASE-TtILheWJ MAIN product.com.unblu.headlessbrowser.model_1.0.0.RELEASE-TtILheWJ product.com.unblu.visitordesk_4.3.0.RELEASE-TtILheWJ product.com.unblu.filemanager_1.0.0.RELEASE-TtILheWJ product.com.unblu.singlesessiondesk_4.3.0.RELEASE-TtILheWJ product.com.unblu.zookeeper_1.0.0.RELEASE-TtILheWJ product.com.unblu.platform_1.0.0.RELEASE-TtILheWJ product.com.unblu.mobiledevice_4.3.0.RELEASE-TtILheWJ product.com.unblu.core_4.3.0.RELEASE-TtILheWJ product.com.unblu.node_4.3.0.RELEASE-TtILheWJ product.com.unblu.thirdparty_1.0.0.RELEASE-TtILheWJ product.com.unblu.dispatcher_1.0.0.RELEASE-TtILheWJ product.com.unblu.screencapturing_4.3.0.RELEASE-TtILheWJ product.com.unblu.addons.synctool_4.3.0.RELEASE-TtILheWJ product.com.unblu.chat_1.0.0.RELEASE-TtILheWJ product.com.unblu.runtime.servletbridge_1.0.0.RELEASE-TtILheWJ product.com.unblu.servicesdocumentation_4.3.0.RELEASE-TtILheWJ product.com.unblu.boot.agent_1.0.0.RELEASE-TtILheWJ product.com.unblu.domcap_1.0.0.RELEASE-TtILheWJ product.com.unblu.authenticator_1.0.0.RELEASE-TtILheWJ product.com.unblu.headlessbrowser_1.0.0.RELEASE-TtILheWJ product.com.unblu.proxy_1.0.0.RELEASE-TtILheWJ
Some other network diagnostic tools that may help to analyze problems when you are connected with SSH into the Unblu Docker image (example):
Example diagnostic tools # check if dns lookups work # <collaborationServerHostname>: Hostname or IP of the Unblu Server nslookup <collaborationServerHostname> # check if ping works. Note: must be called with sudo. Operation is not permitted otherwise. # <collaborationServerHostname>: Hostname or IP of the Unblu Server sudo ping <collaborationServerHostname>