Jitsi Meet徹底解説:自社サービスに組み込むビデオ会議の力
「あ、どうもー。大阪府ですわー。お好み焼きとたこ焼きと、あと商売の腕前なら負けへんでー!」
「へいへい、大阪さん、今日はJitsi Meetってやつの説明をするんだってさ。気合い入れていこうぜ!」
「Jitsi Meetね!ほな、ワイも張り切って説明するでー!このJitsi Meetって、言わば『オンライン会議の万能選手』やねん。手軽にサクッと使えるし、自分でサーバー立ててカスタマイズもできるから、エンジニアさんにはたまらん魅力があるんやで!」
「そうそう!大阪さんの言う通り!Jitsi Meetは、簡単に言うとWebRTCを使ったビデオ会議システムなんだけど、普通のビデオ会議サービスと何が違うかっていうと、自分でサーバーを立てて運用できるってことなんだ。だから、外部のサービスに頼らずに、自分たちだけの安全なビデオ会議環境を作れちまうんだ!」
「せやろー!うちの会社でも、セキュリティが厳しくて、外部のサービスはちょっと……って時によく使うんやで。あと、自社サービスにビデオ会議機能を追加したい時にも、簡単に組み込めるからホンマに便利やねん。」
「ふむふむ、そうかぁ。大阪さん、その『どう役に立つのか』ってところ、もっと詳しく教えてくれるかい?」
「まかせとき!いくつかポイントがあるで!」
プライバシーとセキュリティの確保
「まずはこれやね!外部のサービスを使うと、会議の内容が第三者のサーバーを経由してしまう可能性があるんやけど、自分でサーバーを立てれば、社内のネットワーク内で会議が完結するから、情報漏洩のリスクをグッと減らせるんや。会社の秘密会議や顧客との重要なミーティングでも、安心して使えるで!」
柔軟なカスタマイズ
「次に、カスタマイズ性やね。Jitsi Meetはオープンソースやから、自分でコードをいじって、ロゴを変えたり、機能を足したり、見た目を変えたり、好きにできるんや。例えば、自社サービスの色に合わせて画面の色を変えたり、独自の認証システムと連携させたり、自由自在やで!」
自社サービスへの組み込み(Embedding)
「これが一番の魅力かもね!自社のWebサービスやアプリケーションの中に、Jitsi Meetのビデオ会議機能を埋め込めるんや。例えば、オンラインの学習サービスなら、先生と生徒が対面で話せるようにしたり、ECサイトなら、購入前に店員さんとビデオ通話で相談できる機能を追加したりできるで。ホンマに可能性は無限大や!」
低コストでの運用
「最後に、コストやね。大規模な有料サービスだと、参加人数や時間によって費用がかさむんやけど、自分でサーバーを立ててしまえば、サーバー代だけで済むから、コストを抑えられるんや。初期投資はいるかもしれへんけど、長期的に見ればお得なことが多いで!」
「いやー、大阪さん、さすが商売人!説明が上手いねぇ!じゃあ、俺からは具体的な導入方法を教えるぜ!今回は、俺たちがよく使うDebian/Ubuntu系のOSでのやり方を説明するぜ。」
サーバーの準備
まずは、Jitsi Meetをインストールするためのサーバーを用意しよう。
メモリは2GB以上、CPUは2コア以上が推奨だ。
OSはDebian 11 (bullseye) か Ubuntu 22.04 (Jammy Jellyfish) あたりがいいぜ。
ドメイン名も必要になるから、事前に取得しておいてくれよな。
システムアップデートとパッケージのインストール
サーバーにログインしたら、まずはシステムを最新の状態にしよう。
sudo apt update
sudo apt upgrade -y
次に、Jitsi Meetのインストールに必要なnginxなどのパッケージをインストールするぜ。
sudo apt install nginx -y
Jitsi Meetリポジトリの追加
Jitsi Meetは公式のパッケージリポジトリからインストールするのが一番楽だ。
curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null
リポジトリを追加したら、もう一度アップデート!
sudo apt update
Jitsi Meetのインストール
いよいよメインだ!jitsi-meetパッケージをインストールしよう。
sudo apt install jitsi-meet -y
インストール中に、ドメイン名を聞かれるから、事前に準備したドメイン名を入力してくれよ。例えば、meet.your-domain.comみたいな感じだ。
証明書の設定も自動でやってくれるから、Let's Encryptの証明書を使いたい場合は、メールアドレスを入力してくれ。
ファイアウォールの設定
Jitsi Meetが使うポートを開けておかないと、ビデオ会議ができないぜ。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable
「これで、ブラウザで設定したドメインにアクセスすれば、Jitsi Meetが動いてるはずだぜ!いやー、なんて簡単なんだ!」
「せやせや!ケンイチさん、導入方法もわかったとこで、ワイのイチオシポイント、埋め込み方(Embedding)のサンプルコードも見ていこか!」
「これはめっちゃ簡単やで!たった数行のJavaScriptコードで、あなたのサービスにビデオ会議機能を組み込めるんや!」
<div id="jitsi-container" style="height: 700px; width: 100%;"></div>
<script>
// Jitsi Meet APIのスクリプトを読み込むんや
var script = document.createElement('script');
script.src = 'https://meet.your-domain.com/external_api.js'; // ここはあなたのJitsi MeetサーバーのURLにせなあかんで!
document.head.appendChild(script);
script.onload = () => {
// APIを初期化するんやで!
const domain = 'meet.your-domain.com';
const options = {
roomName: 'MyAwesomeConferenceRoom', // 会議室の名前を決めるんや!
parentNode: document.querySelector('#jitsi-container'),
configOverwrite: {
// ここで色んな設定を上書きできるんや。
// 例えば、参加者名を入力する画面をスキップしたり、
// ツールバーを非表示にしたりできるで。
prejoinPageEnabled: false
},
interfaceConfigOverwrite: {
// UIに関する設定もいじれるで!
TOOLBAR_BUTTONS: ['microphone', 'camera', 'desktop', 'hangup', 'chat', 'settings']
}
};
const api = new JitsiMeetExternalAPI(domain, options);
// イベントリスナーを追加して、会議の状態を把握できるで!
api.addEventListener('videoConferenceJoined', (event) => {
console.log('会議に参加しました!');
// 参加者の名前を設定することもできるで!
api.executeCommand('displayName', 'ユーザーA');
});
api.addEventListener('participantLeft', (event) => {
console.log('参加者が退出しました。');
});
};
</script>
「どうや!このコードをWebページに貼り付けるだけで、立派なビデオ会議機能ができあがるんやで!ワイの会社のサービスでも、この機能で売り上げがグンと上がったんや!」
「いやー、大阪さん、流石だね!エンジニア目線でも、これはめちゃくちゃ嬉しい情報だぜ!Jitsi Meetは、単なるビデオ会議ツールじゃなくて、僕たちエンジニアの創造性を広げてくれる、素晴らしいツールってわけだね!」
「せやろ!さあ、皆さん!Jitsi Meetを使いこなして、最高のサービス作ってやー!ほな、今日はこの辺で失礼しますわ!」