Work Stream Collaboration (Chats)#

Carbonio Work Stream Collaboration (Chats) Role is a multi-layered software that adds the video meeting and recording functionalities to Carbonio.

This Role can currently be installed only manually, so please read Sections Limitations and Requirements below.

If you plan to install this Role in an existing Carbonio infrastructure, please read carefully Section Installation.

Limitations#

In the current release 24.9.0, the following limitation apply to the installation of the Work Stream Collaboration (Chats) Role

  • It must be installed manually, there is no Ansible support for the installation

  • It can not be installed on the same Node as Carbonio VideoServer

  • Data from the legacy Chats module can not be exported to new Work Stream Collaboration (Chats) Role

Requirements#

The Work Stream Collaboration (Chats) Role is quite complex in terms of both internal architecture and installation, therefore it requires to pay some attention while installing it:

  • All commands and all file editing activities must be executed as the root user, unless noted differently

  • The carbonio-user-management package must be installed in the Carbonio infrastructure (it is part on the Proxy Role)

  • Carbonio Work Stream Collaboration (Chats) requires that some ports, which are listed in Firewall Ports, be forwarded on this and on the Proxy Nodes

Installation#

The directions in the reminder of this page apply to a new installation of Carbonio. If you already have an existing Carbonio infrastructure, the procedure is very similar, but you have to take into account the following points:

  • The Carbonio VideoServer or Chats modules may be already installed within the infrastructure, but you can keep them: the Work Stream Collaboration (Chats) does not share any component with them

  • There is a Preparation phase that requires to install some package on other Nodes before starting the Work Stream Collaboration (Chats) installation.

    1. Install the database components on the Database Node: please follow the instructions to Section Database Components of Work Stream Collaboration (Chats)

    1. Install package carbonio-ws-collaboration-ui on the Proxy Node

    2. Install package carbonio-broker on the Mesh and Directory Node

    3. Install the Video Server & Video Recording (WSC) Role on a dedicated Node or in any Node that does not feature Video Server & Video Recording, because they are not compatible

Now, depending on how you plan to install Work Stream Collaboration (Chats), the procedure slightly changes.

If you plan to install Work Stream Collaboration (Chats) on a dedicated Node, make sure that you install Video Server & Video Recording (WSC) on another dedicated Node, then follow the installation procedure as it described below, starting from the next section, Install Packages.

If you plan to install Work Stream Collaboration (Chats) on an existing Node, then skip Sections Bootstrap Carbonio and Join Carbonio Mesh.

Install Packages#

This section presents the procedure to install and configure all the packages and the Node on which to install them. Please remember to read section Requirements above before starting the actual package installation.

Warning

In case you install this Role on a Node which already features the Mesh and Directory Role, make sure you do not install the service-discover-agent package.

# apt install postgresql-client carbonio-message-dispatcher \
  carbonio-ws-collaboration carbonio-notification-push \
  carbonio-push-connector service-discover-agent
# dnf install carbonio-message-dispatcher \
  carbonio-ws-collaboration carbonio-notification-push \
  carbonio-push-connector service-discover-agent

Install PostgreSQL repository

# dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Install PostgreSQL client

# dnf -y install postgresql16
# dnf install carbonio-message-broker \
  carbonio-message-dispatcher carbonio-ws-collaboration \
  carbonio-videoserver-advanced carbonio-videorecorder \
  carbonio-notification-push carbonio-push-connector \
  service-discover-agent

Install PostgreSQL repository

# dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Install PostgreSQL client

# dnf -y install postgresql16

Bootstrap Carbonio#

Execute:

# carbonio-bootstrap

The bootstrap command will execute a number of tasks and will set up the node. At the end, you will be prompted with a menu and, if you already configured all, you only need to click y for confirmation.

On RHEL 9 only, restart the node to ensure that Carbonio service management come under the control of systemd:

# reboot

During the process, you need to provide these values, which you can retrieve from the first Mesh and Directory node.

  • Ldap master host is the FQDN of the first Mesh and Directory Node, (example: ldap-mstr.example.com)

  • Ldap Admin password is obtained from the first Mesh and Directory Node (ldap-admin-password)

Join Carbonio Mesh#

Carbonio Mesh is required to allow communication between Carbonio and its components. The configuration is interactively generated by command

# service-discover setup-wizard

This command will:

  • ask for the IP address and netmask

  • ask for the Carbonio Mesh secret, which is used for setups, management, and to access the administration GUI. See section Carbonio Mesh Administration Interface for more information.

    This password will be denoted as MESH_SECRET throughout the documentation.

    Hint

    We suggest to use a robust password which is at least 16 characters long, including at least one of lowercase and uppercase letters, numbers, special characters and store it in a password manager.

    In case the password is lost or the credential file becomes corrupted and unusable, you can reset them using the procedure detailed in section Carbonio Mesh Credentials.

  • store the setup in file /etc/zextras/service-discover/cluster-credentials.tar.gpg

To complete Carbonio Mesh installation, run

# pending-setups -a

Hint

The secret is stored in file /var/lib/service-discover/password, which is accessible only by the root user.

Dispatcher DB Migration#

Initialise the message dispatcher

# PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration \
  carbonio_adm 127.78.0.10 20000

Restart the service

# systemctl restart carbonio-message-dispatcher

Configuration#

If you want to enable mobile notification, you need to configure mobile notifications and Push Notifications according to the directions given below.

Configure mobile notifications

The following lines must be added to file /etc/carbonio/message-dispatcher/mongooseim.toml to properly allow notication push:

[outgoing_pools.http.http_pool.connection]
  host = "http://127.78.0.10:20001"
  request_timeout = 5000

[modules.mod_event_pusher.http]
  [[modules.mod_event_pusher.http.handlers]]
    pool_name = "http_pool"
    path = "/notifications"

Then, restart the service.

# systemctl restart carbonio-message-dispatcher
Configure Push Notifications

This service requires two files that will be provided by the Zextras Sales representative. They must be saved on the Work Stream Collaboration (Chats) Node as follows:

  • file service-account-file.json must be saved under directory /etc/carbonio/notification-push/android

  • file wscassets/auth-key.p8 must be saved under directory /etc/carbonio/notification-push/ios

Next, configure them using the following commands

# consul kv put -token-file="/etc/carbonio/notification-push/service-discover/token" \
"carbonio-notification-push/apns/team-id" "X95YE8AZMB"

# consul kv put -token-file="/etc/carbonio/notification-push/service-discover/token" \
"carbonio-notification-push/apns/key-id" "DN8BH5LMKG"

# consul kv put -token-file="/etc/carbonio/notification-push/service-discover/token" \
"carbonio-notification-push/apns/topic" "com.zextras.chats"

Enable Work Stream Collaboration (Chats)#

You need to allow each user to use Work Stream Collaboration (Chats), either from the Carbonio Admin Panel or running from the CLI the following command as the zextras user, replacing the e-mail address with the one of the user.

zextras$ carbonio prov ma john@example.com default carbonioFeatureChatsEnabled TRUE

To let Carbonio pick up the change, restartg the service

# systemctl restart carbonio-ws-collaboration

Hint

If the Work Stream Collaboration (Chats) installation is successful, you can optimise some values according to the guidelines that you can find in section WSC Optimisations.

Troubleshooting & Checks#

WSC Status Check#

The following command will output a detailed status of Work Stream Collaboration (Chats) and of all its dependencies.

# curl -v http://127.78.0.4:10000/health | jq