Edge Installation & Upgrade

Requirements

Server Requirements

In case of 3 Servers Installation each server should have:

  • OS : Debian 11 (Bullseye), 64 bits.

  • CPU: 2 CPU

  • RAM: 2 Gb

  • DD: 50 Gb

In case of 1 Server Installation the server should have:

  • OS : Debian 11 (Bullseye), 64 bits.

  • CPU: 6 CPU

  • RAM: 6 Gb

  • DD: 50 Gb

Network Requirements

You will also need:

  • 3 public IP addresses (or 1 for 1 Server Installation deployment)

  • 1 FQDN (i.e. edge.mycompany.com) that resolves:

  • a valid SSL certificate for this FQDN

  • authorize the network flow as shown in the Network Flows section

  • to make all your WebRTC users connect to the UC application via the Edge Solution

    Important

    otherwise it won’t work !

Base installation

Whatever the type of installation (1 or 3 servers) you need to do the following on the host(s):

  1. install docker and docker compose

  2. download XiVO Edge service launcher

1. Docker & Docker compose Installation

These commands will install docker and docker compose on the host.

# Install docker prerequisites
apt install wget dirmngr gnupg ca-certificates ntp curl

# Install docker
DOCKER_KEYRING_FILE="/etc/apt/trusted.gpg.d/download.docker.com.gpg"
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key --keyring ${DOCKER_KEYRING_FILE} add -
echo "deb https://download.docker.com/linux/debian bullseye stable" > /etc/apt/sources.list.d/docker.list
cat > /etc/apt/preferences.d/docker-ce <<EOF
Package: docker-ce*
Pin: version 5:20.10.13*
Pin-Priority: 1000
EOF

apt update
apt install docker-ce

#Install docker-compose
DOCKER_COMPOSE_VERSION=1.29.2
COMPOSE="/usr/local/bin/docker-compose"
curl -L https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-`uname -s`-`uname -m` > "$COMPOSE"
chmod +x "$COMPOSE"

2. XiVO Edge Launcher Setup

The following commands describe how to install the Edge Solution launcher.

  • Create edge directory:

    mkdir -p /etc/docker/edge
    
  • Download XiVO Edge configuration. In the following script replace TAG_OR_BRANCH by the name of a tag or a branch.

    Note

    currently, to install the latest stable version of Jabbah, use TAG_OR_BRANCH=2023.05.00

    TAG_OR_BRANCH=2023.05.00
    cd /etc/docker/edge
    wget "https://gitlab.com/xivo.solutions/xivo-edge/-/archive/${TAG_OR_BRANCH}/${TAG_OR_BRANCH}.tar.gz"
    tar -zxvf ${TAG_OR_BRANCH}.tar.gz -C /etc/docker/edge --strip-components 1
    rm ${TAG_OR_BRANCH}.tar.gz
    
  • Create the ssl dir to put the ssl certificates:

    mkdir -p /etc/docker/ssl
    
  • Congrats: You’re done with the base installation.

3 Servers Installation

Note

If you’re doing the 3 servers installation (1 host per service) you must follow the three subsections below.

You need one machine per service with Base installation done on all three.

Then you need to install the services on each host independently as explained below.

Web Proxy

Note

This step is to be done on the server which will host the Web Proxy (nginx) service.

  • Create bash alias to launch services:

echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/nginx-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc
source ~/.bashrc

SIP Proxy

Note

This step is to be done on the server which will host the SIP Proxy (kamailio) service.

  • Create bash alias to launch services:

echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/kamailio-edge.yml -f /etc/docker/edge/kamailio-edge.override.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc
source ~/.bashrc

TURN Server

Note

This step is to be done on the server which will host the TURN Server (coturn) service.

  • Create bash alias to launch services:

echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/coturn-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc
source ~/.bashrc

Next step

  • Congrats: You’re done with the Edge 3 Servers Installation.

1 Server Installation

Note

If you’re doing the mono server installation (all services on one host) you must follow the subsection below.

Web Proxy, SIP Proxy and TURN Server

  • Create bash alias to launch services:

    echo "alias edge-dcomp='docker-compose -p edge -f /etc/docker/edge/nginx-edge.yml -f /etc/docker/edge/coturn-edge.yml -f /etc/docker/edge/kamailio-edge.yml --env-file=/etc/docker/edge/.env'" >> ~/.bashrc
    source ~/.bashrc
    

Next step

  • Congrats: You’re done with the Edge Mono Server Installation.

Upgrade

Currently there is no automatic upgrade process. Here is the manual process that you need to follow on the 3 edge servers (or the edge server depending if it’s a mono or three servers install).

  • Make a backup of the Edge launcher:

    cp -aR /etc/docker/edge/ /var/tmp/edge-backup/
    
  • Re-install the Edge Launcher (it will override the .yml files): follow the Download and Extract of the Edge launcher files by taking the new versions

    Note

    This step overrides the current .yml files. If you had made some customization in them you will have to backport them by comparing the new one with the backup you did at previous step.

  • Replace the edge-dcomp alias by what is described in the 3 Servers Installation or 1 Server Installation sections (replace the aliases or verify that they did not change).

  • And then verify that the content of the .env file is correct:

    • Compare the old version and what is defined in the Edge Configuration section.

    • Verify that the XIVOCC_TAG and XIVOCC_DIST correspond to what you want to install (it should be 2023.05 and latest).

  • Finally pull the new images and restart the containers:

    Warning

    it will stop all WebRTC calls (and disconnect users from the application).

    edge-dcomp pull
    edge-dcomp up -d