9c2f85ceea
build: set mediasoup IPs in webrtc-sfu post install
133 lines
4.1 KiB
Bash
Executable File
133 lines
4.1 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
source /etc/lsb-release
|
|
|
|
case "$1" in
|
|
configure|upgrade|1|2)
|
|
|
|
SOURCE=/tmp/bbb-webrtc-sfu-default.yml
|
|
TARGET=/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml
|
|
|
|
cp /usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.example.yml $TARGET
|
|
chown bigbluebutton:bigbluebutton $TARGET
|
|
|
|
yq w -i $TARGET kurento[0].ip "$IP"
|
|
|
|
# https://github.com/bigbluebutton/bbb-webrtc-sfu/pull/37
|
|
# yq w -i $TARGET kurento[0].url "ws://$SERVER_URL:8888/kurento"
|
|
|
|
# Set mediasoup IPs
|
|
yq w -i $TARGET mediasoup.webrtc.listenIps[0].announcedIp "$IP"
|
|
yq w -i $TARGET mediasoup.plainRtp.listenIp.announcedIp "$IP"
|
|
|
|
FREESWITCH_IP=$(xmlstarlet sel -t -v '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "local_ip_v4=")]/@data' /opt/freeswitch/conf/vars.xml | sed 's/local_ip_v4=//g')
|
|
if [ "$FREESWITCH_IP" != "" ]; then
|
|
yq w -i $TARGET freeswitch.ip $FREESWITCH_IP
|
|
# if [ "$DISTRIB_RELEASE" == "18.04" ]; then
|
|
yq w -i $TARGET freeswitch.sip_ip $FREESWITCH_IP
|
|
# fi
|
|
else
|
|
# Looks like the FreeSWITCH package is being installed, let's fall back to the default value
|
|
yq w -i $TARGET freeswitch.ip $IP
|
|
if [ "$DISTRIB_RELEASE" == "18.04" ]; then
|
|
yq w -i $TARGET freeswitch.sip_ip $IP
|
|
fi
|
|
fi
|
|
|
|
cd /usr/local/bigbluebutton/bbb-webrtc-sfu
|
|
mkdir -p node_modules
|
|
|
|
# there's a problem rebuilding bufferutil
|
|
# do not abort in case npm rebuild return something different than 0
|
|
#npm config set unsafe-perm true
|
|
#npm rebuild || true
|
|
|
|
mkdir -p /var/log/bbb-webrtc-sfu/
|
|
touch /var/log/bbb-webrtc-sfu/bbb-webrtc-sfu.log
|
|
|
|
yq w -i $TARGET recordWebcams true
|
|
if id bigbluebutton > /dev/null 2>&1 ; then
|
|
chown -R bigbluebutton:bigbluebutton /usr/local/bigbluebutton/bbb-webrtc-sfu /var/log/bbb-webrtc-sfu/
|
|
else
|
|
echo "#"
|
|
echo "# Warning: Unable to assign ownership of bigbluebutton to kurento files"
|
|
echo "#"
|
|
fi
|
|
|
|
# Fix processes so it has the new process
|
|
# PROCESSES=$(yq r $TARGET processes | wc -l)
|
|
# if [ "$PROCESSES" == 4 ]; then
|
|
# yq w -i $TARGET processes[4].path './lib/mcs-core/process.js'
|
|
# fi
|
|
|
|
# COMMENTING OUT DUE TO DUPLICATION
|
|
# cd /usr/local/bigbluebutton/bbb-webrtc-sfu
|
|
# mkdir -p node_modules
|
|
|
|
# # there's a problem rebuilding bufferutil
|
|
# # do not abort in case npm rebuild return something different than 0
|
|
# npm config set unsafe-perm true
|
|
# npm rebuild || true
|
|
|
|
# mkdir -p /var/log/bbb-webrtc-sfu/
|
|
# touch /var/log/bbb-webrtc-sfu/bbb-webrtc-sfu.log
|
|
|
|
# yq w -i $TARGET recordWebcams true
|
|
# if id bigbluebutton > /dev/null 2>&1 ; then
|
|
# chown -R bigbluebutton:bigbluebutton /usr/local/bigbluebutton/bbb-webrtc-sfu /var/log/bbb-webrtc-sfu/
|
|
# else
|
|
# echo "#"
|
|
# echo "# Warning: Unable to assign ownership of bigbluebutton to kurento files"
|
|
# echo "#"
|
|
# fi
|
|
|
|
# Creates the mediasoup raw media file dir if needed
|
|
if [ ! -d /var/mediasoup ]; then
|
|
mkdir -p /var/mediasoup
|
|
fi
|
|
|
|
# Create a symbolic link from /var/kurento -> /var/lib/kurento if needed
|
|
if [ ! -d /var/kurento ]; then
|
|
if [ -d /var/lib/kurento ]; then
|
|
ln -s /var/lib/kurento /var/kurento
|
|
fi
|
|
fi
|
|
|
|
chmod 644 $TARGET
|
|
chown bigbluebutton:bigbluebutton $TARGET
|
|
|
|
if [ ! -d /var/log/kurento-media-server ]; then
|
|
mkdir -p /var/log/kurento-media-server
|
|
fi
|
|
|
|
chown kurento:root /var/log/kurento-media-server
|
|
|
|
# Ensure a default port range is setup
|
|
if ! grep -v '^;' /etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini | grep -q minPort; then
|
|
cat >> /etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini << HERE
|
|
|
|
# Added by bbb-webrtc-sfu.postinst $(date)
|
|
minPort=24577
|
|
maxPort=32768
|
|
HERE
|
|
fi
|
|
|
|
# Check if using Kurento packages with bionic
|
|
|
|
reloadService nginx
|
|
startService bbb-webrtc-sfu || echo "bbb-webrtc-sfu could not be registered or started"
|
|
startService kurento-media-server || echo "kurento-media-serve could not be registered or started"
|
|
|
|
;;
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|