オンライン研修に最適!RPGのようにキャラを操作して対話したい人と対話できるツール「Calla」

Zoomのセキュリティ懸念でJitsiが普及しつつある。その中で、Jitsiを拡張したRPGのようにキャラを操作し、近い距離のキャラ同士は音声が大きく、遠いキャラの声は小さく聞こえる拡張ツール「Calla」を紹介する。

前提

Ubuntu 18.04系

Jitsu用とCalla用のドメインが2つ必要。

インストール

Jitsi

https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md に従う

echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
apt update
apt install -y apt-transport-https git install jitsi-meet
## ドメインを求められたら、Jitsi用のドメインを入力
ufw allow ssh
ufw allow http
ufw allow https
ufw allow 10000/udp
ufw reload
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Jitsi用のドメインにアクセスして、アクセスできることを確認。

Calla

apt update
apt install software-properties-common
add-apt-repository universe
add-apt-repository ppa:certbot/certbot
apt update
apt-get install certbot
certbot certonly -d {Callaのドメイン}
cd /usr/share/nginx
git clone https://github.com/capnmidnight/Calla calla
cd calla
vi ./etc/jitsihax.js
# FRONT_END_SERVER に CallaのURLを指定
cp ./etc/jitsihax.js /usr/share/jitsi-meet/
vi /usr/share/jitsi-meet/index.html
# headタグの間に
# <script type="text/javascript" src="jitsihax.js"></script>
# を追記
vi ./index.html
# JITSI_HOST に Jitsi のドメインを指定
vi /etc/nginx/sites-available/calla.conf
server {
    listen 80;
    listen [::]:80;
    server_name #{Callaのドメイン};
    location ^~ /.well-known/acme-challenge/ {
       default_type "text/plain";
       root         /usr/share/jitsi-meet;
    }
    location = /.well-known/acme-challenge/ {
       return 404;
    }
    location / {
       return 301 https://$host$request_uri;
    }
}

server {
    listen 4444 ssl http2;
    listen [::]:4444 ssl http2;
    server_name #{Callaのドメイン};
    root /usr/share/nginx/calla;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED";
    add_header Strict-Transport-Security "max-age=31536000";
    ssl_certificate      /etc/letsencrypt/live/#{Callaのドメイン}/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/#{Callaのドメイン}/privkey.pem;
}
nginx -t
systemctl restart nginx

これでCallaのドメインにアクセスして表示されたら成功。