Janus-GateWayでのWebRTCサーバー構築メモ
はじめに
WebRTCサーバーを構築する際のメモをここに記載する
シグナリングサーバーを立ててNat越えのためにCoTurnを...は精神崩壊するので、Janusを使う
環境構築
環境 | バージョン | 概要 |
---|---|---|
Ubuntu | 22.04 | VPSかローカルの環境 |
Janus-GateWay | 最新版 | gitでcloneするため基本的に最新版 |
環境は上記の通りで作成可能。
今後24.04も試す予定。
転職でこれやることなくなったので、各自対応求むよ、ごめんね(24/07/30)
構築方法は参考サイトの通りだが、少し面倒
まずは以下を手順通りインストールする
apt install libmicrohttpd-dev libjansson-dev \
libssl-dev libsofia-sip-ua-dev libglib2.0-dev \
libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
libspeexdsp-dev libconfig-dev pkg-config libtool automake
libniceのインストール
libniceをgitlabから取得し、ninjaでbuildする
git clone https://gitlab.freedesktop.org/libnice/libnice
cd libnice
meson --prefix=/usr build && ninja -C build && sudo ninja -C build install
ninja buildがないときは以下でインストールすること
sudo apt install meson ninja-build
libsrtp
以下でインストール可能
v2.2.0.tar.gzとあるが2.3.0、2.6.0でも問題はない。
ただし、libwebsocketsやJanusのビルド時に何かしらのバグが発生することがあるため、
各自の判断で導入すること(確認済み)
wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
tar xfv v2.2.0.tar.gz
cd libsrtp-2.2.0
./configure --prefix=/usr --enable-openssl
make shared_library && sudo make install
WebSocket
サポートしたいときはlibwebsockets入れるとJanusをbuildしたときに自動で組み込まれる。
Janusのインストール
githubからJanusのソースコードをcloneする
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
今までのものがちゃんとインストールされていれば、/opt/janusにインストールされる
./autogen.sh
./configure --prefix=/opt/janus
make
sudo make install
初期設定を自動生成できるため、以下を入力すること
sudo make configs
試しに起動する際は
sudo ./opt/janus/bin/janus
でサーバーが起動するはず
NginxかApacheでHTTPのサーバーを建てたら
ここではNginxやApacheの起動方法やSSL化の方法は省略する
ただ注意点としてSSL化してないと、ブラウザによっては弾かれるので
ローカル環境構築が結構面倒だと思う
Janusの設定ファイルでSSL化する
以下にJanusの各設定ファイルがある
cd /opt/janus/etc/janus
サーバーの設定値は
sudo vim janus.transport.http.jcfg
general: {
#この辺にhttpの設定項目
https = true # 初期値 false
secure_port = 8089 # コメントアウトされているので外す
}
certificates: {
cert_pem = "[domain].pem" # certbotなどで作成された[domain].pemに変更
cert_key = "[domain].key" # certbotなどで作成された[domain].keyに変更
#この辺にcertのパスワード設定など
}
設定後、再度以下をするとhttps化されているはず
sudo ./opt/janus/bin/janus
(おまけ)Stunは自分で建てたい
自動でStunサーバーを設定するので、自分で建てたものを使いたいとき
janus.jcfgで設定可能
cd /opt/janus/etc/janus
sudo vim janus.jcfg
nat: {
stun_server = "turnサーバーのドメイン"
stun_port = XXXX # turnサーバーのポート番号
ice_tcp = true
ice_ignore_list = "vmnet"
}
ここまでやると自分のStunサーバーでNatを越えられるようになる
参考サイト
Discussion