Windows SubSystem for Linux (WSL) - это среда исполнения Linux в MS Windows 10. WSL 2 представляет собой полноценную виртуальную машину Hyper-V и поддерживает наиболее распространенные дистрибутивы Linux. Это позволяет развернуть WCS на Windows ПК для тестирования

Установка WSL

В последних выпусках Windows для установки WSL необходимо выполнить команду от имени администратора

wsl --install

При этом потребуется перезагрузка системы. По умолчанию, устанавливается Ubuntu 20.04. Для просмотра доступных дистрибутивов выполните команду

wsl --list --online

Дистрибутив для установки можно выбрать следующим образом:

wsl --install -d Ubuntu-18.04

Подробнее об установке WSL можно прочитать в официальной документации Microsoft.

По окончании установки рекомендуется обновить установленные пакеты:

sudo apt-get update
sudo apt-get upgrade -y

Развертывание WCS

Установка JDK

Любую из поддерживаемых версии JDK можно установить из репозиториев или вручную, в зависимости от того, доступны пакеты в используемом дистрибутиве или нет. Например, в Ubuntu 18.04 JDK 8 доступна в репозиториях:

sudo apt-get install -y openjdk-8-jdk

а JDK 14 придется установить вручную

# 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"

Установка WCS

Для установки последней сборки WCS используйте следующие команды:

wget https://flashphoner.com/download-wcs5.2-server.tar.gz -O- | tar -zx
cd FlashphonerWebCallServer-*
sudo ./install.sh

Активируйте лицензию WCS (ознакомительную лицензию можно получить здесь)

cd /usr/local/FlashphonerWebCallServer/bin
sudo ./activation.sh

Запуск WCS

В поставку Ubuntu для WSL 2 не входит systemd. Поэтому запуск WCS производится следующими командами

cd /usr/local/FlashphonerWebCallServer/bin
sudo ./webcallserver set-permissions
sudo ./webcallserver start

Проверить, запущен ли WCS, можно командой

sudo ./webcallserver status

Тестирование

1. Откройте веб-интерфейс WCS в браузере по ссылке http://localhost:8081/admin/ и введите имя пользователя demo, пароль demo

2. Выберите пример Two Way Streaming в меню слева

3. Опубликуйте и проиграйте поток в примере

Известные проблемы

1. Одновременно может быть запущен только один инстанс WSL

2. При перезапуске ПК у инстанса WSL меняется IP адрес

Симптомы: если WCS стартовал после перезапуска ПК, при публикации потока возвращается ошибка

No free ports available

Решение: после перезапуска ПК, запускать WCS с предварительной настройкой IP адресов

cd /usr/local/FlashphonerWebCallServer/bin
sudo ./webcallserver set-ip
sudo ./webcallserver start