Skip to content

Requirements and prerequisites

System

To install WebCallServer you need a Linux x86_64 server that matches the following minimum specifications:

  • 2 gigabytes of RAM
  • 10 gigabytes of disk space
  • 1 CPU core

The following must be installed on the server:

WCS can be configured to work in networks of varying topology, for instance, behind corporate NAT or for using a public IP address to services external clients. For quick setup and evaluation of WCS capabilities we recommend using a VPS or a dedicated server with a static and public IP address that is also the IP address of the network interface of the same server. Usually, such a virtual or dedicated server can be rented from a number of providers.

Supported Linux distribution packages

Any distribution package will do: CentOS, Debian, Ubuntu, RedHat, Fedora. Today, server is tested to be compatible with the following distribution packages:

  • CentOS 7.6, 7,8, 8, Stream
  • Ubuntu 18.04, 20.04
  • Fedora 31, 32, 33
  • Debian 9, 10
  • Amazon Linux 2

The recommended distribution package is CentOS 7.6 or Ubuntu 18.04, a stable work on older distribution packages is not guaranteed.

Preparing to install

Make sure the server is connected to the Internet and you have root access via SSH.

Set your host name in /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.5   yourdomain.com

Check if host name is resolved correctly with command

ping $HOSTNAME

In some distribution packages (i.e., CentOS) wget is not installed by default. In this case, install wget using the following command

sudo yum install wget

In some Debian or Ubuntu distributions, curl may be not installed in its turn. In this case, install curl using the following command

sudo apt update && apt upgrade
sudo apt install curl

This is how the server ready to install WCS looks from the Putty SSH client. Please note that we use an x86_64 system.

JDK installation

Often Linux distributions have a preinstalled JVM.

We recommend installing the latest version of JDK (Java Development Kit), because JDK has a number of useful diagnostics tools that JVM lacks.

Today, the following JDK versions are tested and recommended to use: 8, 12, 14, 15, 16, 17, 21. WCS can be unstable with another JDK versions.

JDK installation from repository

JDK installation from OS repository (CentOS for example) should be done as follows

yum -y install java-1.8.0-openjdk-devel

Manual JDK installation

JDK 12

This is the example script for OpenJDK 12 installation using the package downloaded from https://download.java.net/java/GA:

# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-12.0.2/bin ] && exit 1

# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-12.0.2 ] && sudo rm -rf /usr/java/jdk-12.0.2

# Move JDK files to installation folder
sudo mv -f jdk-12.0.2 /usr/java
[ ! -d /usr/java/jdk-12.0.2/bin ] && exit 1

# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-12.0.2 /usr/java/default

# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-12.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-12.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-12.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-12.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-12.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-12.0.2/bin/jmap"

JDK 14

This is the example script for OpenJDK 14 installation using the package downloaded from https://download.java.net/java/GA:

# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk14.0.1/664493ef4a6946b186ff29eb326336a2/7/GPL/openjdk-14.0.1_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-14.0.1/bin ] && exit 1

# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-14.0.1 ] && sudo rm -rf /usr/java/jdk-14.0.1

# Move JDK files to installation folder
sudo mv -f jdk-14.0.1 /usr/java
[ ! -d /usr/java/jdk-14.0.1/bin ] && exit 1

# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-14.0.1 /usr/java/default

# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-14.0.1/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-14.0.1/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-14.0.1/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-14.0.1/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-14.0.1/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-14.0.1/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-14.0.1/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-14.0.1/bin/jmap"

JDK 15

This is the example script for OpenJDK 15 installation using the package downloaded from https://download.java.net/java/GA:

# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk15.0.2/0d1cfde4252546c6931946de8db48ee2/7/GPL/openjdk-15.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-15.0.2/bin ] && exit 1

# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-15.0.2 ] && sudo rm -rf /usr/java/jdk-15.0.2

# Move JDK files to installation folder
sudo mv -f jdk-15.0.2 /usr/java
[ ! -d /usr/java/jdk-15.0.2/bin ] && exit 1

# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-15.0.2 /usr/java/default

# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-15.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-15.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-15.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-15.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-15.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-15.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-15.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-15.0.2/bin/jmap"

JDK 16

This is the example script for OpenJDK 16 installation using the package downloaded from https://download.java.net/java/GA:

# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-16/bin ] && exit 1

# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-16 ] && sudo rm -rf /usr/java/jdk-16

# Move JDK files to installation folder
sudo mv -f jdk-16 /usr/java
[ ! -d /usr/java/jdk-16/bin ] && exit 1

# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-16 /usr/java/default

# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-16/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-16/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-16/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-16/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-16/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-16/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-16/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-16/bin/jmap"

JDK 17

This is the example script for OpenJDK 17 installation using the package downloaded from https://download.java.net/java/GA:

# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-17.0.2/bin ] && exit 1

# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-17.0.2 ] && sudo rm -rf /usr/java/jdk-17.0.2

# Move JDK files to installation folder
sudo mv -f jdk-17.0.2 /usr/java
[ ! -d /usr/java/jdk-17.0.2/bin ] && exit 1

# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-17.0.2 /usr/java/default

# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-17.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-17.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-17.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-17.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-17.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-17.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-17.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-17.0.2/bin/jmap"

JDK 21

This is the example script for OpenJDK 21 installation using the package downloaded from https://download.java.net/java/GA:

# Download JDK package
sudo rm -rf jdk*
curl -s https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz | tar -zx
[ ! -d jdk-21.0.2/bin ] && exit 1

# Prepare installation folder
sudo mkdir -p /usr/java
[ -d /usr/java/jdk-21.0.2 ] && sudo rm -rf /usr/java/jdk-21.0.2

# Move JDK files to installation folder
sudo mv -f jdk-21.0.2 /usr/java
[ ! -d /usr/java/jdk-21.0.2/bin ] && exit 1

# Make /usr/java/default symlink to installation folder for convenience
sudo rm -f /usr/java/default
sudo ln -sf /usr/java/jdk-21.0.2 /usr/java/default

# Make the necessary symlinks
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-21.0.2/bin/java" 1
sudo update-alternatives --install "/usr/bin/jstack" "jstack" "/usr/java/jdk-21.0.2/bin/jstack" 1
sudo update-alternatives --install "/usr/bin/jcmd" "jcmd" "/usr/java/jdk-21.0.2/bin/jcmd" 1
sudo update-alternatives --install "/usr/bin/jmap" "jmap" "/usr/java/jdk-21.0.2/bin/jmap" 1
sudo update-alternatives --set "java" "/usr/java/jdk-21.0.2/bin/java"
sudo update-alternatives --set "jstack" "/usr/java/jdk-21.0.2/bin/jstack"
sudo update-alternatives --set "jcmd" "/usr/java/jdk-21.0.2/bin/jcmd"
sudo update-alternatives --set "jmap" "/usr/java/jdk-21.0.2/bin/jmap"

Installation checking

To check JDK installation use the following command

java -version

JDK installing is done

Here is how the server with installed JVM / JDK looks. Please notice the line: 64-Bit Server VM. Java works in the 64-bit mode with the server settings.

fontconfig installation

If MCU mixer is planned to use with participant names displaying, and JDK 12 or 14 is installed, it would be necessary to install fontconfig library:

sudo yum install -y fontconfig