Spreed WebRTC
WebRTC (Web Real-Time Communication) là một tập hợp các hàm lập trình (web API) được phát triển bởi World Wide Web Consortium (W3C). Khả năng hỗ trợ trình duyệt giao tiếp với nhau theo thời gian thực bằng video, âm thanh hay truyền tải dữ liệu “Peer-to-Peer” (P2P) mà không cần browser phải cài thêm plugins hay phần mềm hỗ trợ nào từ bên ngoài. WebRTC có thể giúp chúng ta gọi điện video ngay trong trình duyệt mà không cần đăng kí tài khoản, ngoài ra chúng còn được xài để phát triển game chơi trực tiếp trong trình duyệt và rất nhiều loại ứng dụng khác.
1a. Cài đặt các gói cần thiết trong Optware-NG
ipkg install nano findutils
1b. Cài đặt các gói cần thiết trong Eptware-NG
opkg install nano findutils
-
Cài đặt Debian
-
Vào debian chroot
debian enter
- Cập nhật Debian
apt update && apt upgrade -y
- Cài đặt các gói cần thiết
apt install wget git build-essential golang-go nodejs autoconf -y
- Tải xuống mã nguồn
cd /var/tmp
git clone https://github.com/strukturag/spreed-webrtc.git
cd spreed-webrtc
./autogen.sh
./configure --prefix=/usr
- Biên dịch và cài đặt Spreed WebRTC, quá trình này sẽ mất khoảng 5 phút, đừng làm gián đoạn!
time make
make install
- Tạo file cấu hình máy chủ
mkdir -p /etc/spreed-webrtc-server
cp /var/tmp/spreed-webrtc/server.conf.in /etc/spreed-webrtc-server/server.conf
cd /etc/spreed-webrtc-server
- Kích hoạt https và tinh chỉnh một số cài đặt khác
sed -i 's|listen = 127.0.0.1:8080|;listen = 127.0.0.1:8080|g' "/etc/spreed-webrtc-server/server.conf"
sed -i 's|;listen = 127.0.0.1:8443|listen = 0.0.0.0:8910|g' "/etc/spreed-webrtc-server/server.conf"
sed -i 's|;root =.*|root = /usr/share/spreed-webrtc-server/www|g' "/etc/spreed-webrtc-server/server.conf"
sed -i 's|;certificate = server.crt|certificate = server.crt|g' "/etc/spreed-webrtc-server/server.conf"
sed -i 's|;key = server.key|key = server.crt|g' "/etc/spreed-webrtc-server/server.conf"
- Tạo chứng chỉ (thay đổi giá trị màu đỏ nếu muốn)
openssl req -new -x509 -days 1095 -nodes \
-subj "/C=RO/ST=Timis/L=Timisoara/O=HQT/CN=www.asusrouter.com" \
-keyout server.crt -out server.crt
chmod 400 server.crt
- Tạo tập lệnh khởi động
cat >> /etc/init.d/spreedwebrtcserver << 'EOF'
#!/bin/sh
### BEGIN INIT INFO
# Provides: spreed-webrtc-server
# Required-Start: $remote_fs $syslog $networking
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Spreed WebRTC
# Description: WebRTC audio/video call and conferencing server and web client
# More information at https://github.com/strukturag/spreed-webrtc
# Author: TeHashX / contact@hqt.ro
# Version: 1.1
### END INIT INFO
CONF="/etc/spreed-webrtc-server/server.conf"
test -f "/usr/sbin/spreed-webrtc-server" || exit 0
spreed_running=`ps ax | grep "spreed-webrtc-server" | awk '{ print $1 }' | wc -l`
case "$1" in
start)
if [ "$spreed_running" -gt 1 ]; then
echo "Spreed Webrtc Server already running..."
exit 0
fi
echo -n "Starting Spreed Webrtc Server: "
cd /etc/spreed-webrtc-server/
/usr/sbin/spreed-webrtc-server -c=$CONF & >/dev/null 2>&1
echo "done"
sleep 5
exit 0
;;
stop)
if [ "$spreed_running" -eq 1 ]; then
echo "Spreed Webrtc Server is not running (no process found)..."
exit 0
fi
echo -n "Killing Spreed Webrtc Server: "
# Trying to kill the Spreed Webrtc Server
ps ax | grep "spreed-webrtc-server" | awk '{ print $1 }' | xargs kill >/dev/null 2>&1
sleep 1
echo "done"
;;
restart)
sh $0 stop
sh $0 start
;;
status)
if [ "$spreed_running" -gt 1 ]; then
echo "Spreed Webrtc Server running."
else
echo "It seems that Spreed Webrtc Server isn't running (no process found)."
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
EOF
Nhấn ENTER
- Cho phép
chmod +x /etc/init.d/spreedwebrtcserver
- Thoát khỏi Debian
exit
- Thêm Spreed WebRTC vào danh sách dịch vụ chroot
echo "" >>/opt/etc/chroot-services.list
echo "spreedwebrtcserver" >>/opt/etc/chroot-services.list
chmod 755 /opt/etc/chroot-services.list
- Chạy Spreed WebRTC từ bên ngoài debian
debian restart
- Chuyển đến địa chỉ ip:8910
