Universal and Document Co-browsing (Optional)
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/
Note: 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 Versus Embedded Co-browsing
Note: Session-in-context or 'context sharing' is not possible if the session cookie has the HTTPONLY flag. Context sharing means that visitors do not lose their login or shopping cart information when they start co-browsing.
Enable Universal and Document Co-browsing (Optional)
Network Connectivity Requirements to run the Rendering Service
SSH Collaboration Server to the Rendering Service
HTTP(s) from the rendering service to the Collaboration Server
The Rendering Service container must be able to connect to the
Collaboration Server using http(s) with the URL provided in the
HTTP(S) Rendering Service to Internet / Intranet
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.
Configure and Run the Rendering Service Appliance
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 collaboration server will connect to the # unblu/renderingservice through this tcp port) # <password>: password for the unblu collaboration 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>
Configure the Collaboration Server to use the Rendering Service
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
Test Connectivity of Docker to Collaboration Server
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 collaboration 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 collaboration 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 collaboration server sudo ping <collaborationServerHostname>
Defining who Controls the Universal Session