bigbluebutton-Github/build/packages-template/bbb-freeswitch-core/after-install.sh
2022-03-26 17:06:51 -05:00

82 lines
3.3 KiB
Bash
Executable File

#!/bin/bash -e
case "$1" in
configure|upgrade|1|2)
if [ -f /tmp/vars.xml ]; then
cp /tmp/vars.xml /opt/freeswitch/etc/freeswitch/vars.xml
# Needed for bbb-webrtc-sfu
sed -i 's/,VP8//g' /opt/freeswitch/etc/freeswitch/vars.xml
mv -f /tmp/vars.xml /tmp/_vars.xml
else
sed -i "s@<X-PRE-PROCESS cmd=\"set\" data=\"local_ip_v4=.*\"/>@<X-PRE-PROCESS cmd=\"set\" data=\"local_ip_v4=$IP\"/>@g" /opt/freeswitch/etc/freeswitch/vars.xml
fi
# Fix issue #14670 (we do it here to fix a previously broken install)
if grep -q "data=\"local_ip_v4=\"" /opt/freeswitch/etc/freeswitch/vars.xml; then
sed -i "s@<X-PRE-PROCESS cmd=\"set\" data=\"local_ip_v4=.*\"/>@<X-PRE-PROCESS cmd=\"set\" data=\"local_ip_v4=$IP\"/>@g" /opt/freeswitch/etc/freeswitch/vars.xml
fi
sed -n 's/,VP8//g' /opt/freeswitch/etc/freeswitch/vars.xml
SOURCE=/tmp/external.xml
TARGET=/opt/freeswitch/etc/freeswitch/sip_profiles/external.xml
# Determine if there are ws-binding and wss-binding values to propagate
if [ -f $SOURCE ]; then
if xmlstarlet sel -t -v '//param[@name="ws-binding"]/@value' $SOURCE > /dev/null 2>&1; then
WS_BINDING=$(xmlstarlet sel -t -v '//param[@name="ws-binding"]/@value' $SOURCE)
xmlstarlet edit --inplace --update '//param[@name="ws-binding"]/@value' --value "$WS_BINDING" $TARGET
fi
if xmlstarlet sel -t -v '//param[@name="wss-binding"]/@value' $SOURCE > /dev/null 2>&1; then
WSS_BINDING=$(xmlstarlet sel -t -v '//param[@name="wss-binding"]/@value' $SOURCE)
xmlstarlet edit --inplace --update '//param[@name="wss-binding"]/@value' --value "$WSS_BINDING" $TARGET
fi
mv -f $SOURCE "${SOURCE}_"
fi
if [ -f /tmp/verto.conf.xml ]; then
cp /tmp/verto.conf.xml /opt/freeswitch/conf/autoload_configs/verto.conf.xml
mv -f /tmp/verto.conf.xml /tmp/_verto.conf.xml
fi
if [ -f /tmp/event_socket.conf.xml ]; then
ESL_PASSWORD=$(xmlstarlet sel -t -m 'configuration/settings/param[@name="password"]' -v @value /tmp/event_socket.conf.xml)
if [ ! -z "$ESL_PASSWORD" ]; then
xmlstarlet edit --inplace --update '//param[@name="password"]/@value' --value "$ESL_PASSWORD" /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml
fi
mv -f /tmp/event_socket.conf.xml /tmp/event_socket.conf.xml_
fi
chown freeswitch:daemon /var/freeswitch/meetings
chown -R freeswitch:daemon /opt/freeswitch/var
chown -R freeswitch:daemon /opt/freeswitch/etc
chmod -R g-rwx,o-rwx /opt/freeswitch/etc
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "## postinst called with unknown argument \`$1'" >&2
;;
esac
ldconfig
if [ -f /.dockerenv ]; then
# To make it easier to run within Docker, disable IPV6
sed -i 's/::/0.0.0.0/g' /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml
if [ -f /opt/freeswitch/conf/sip_profiles/external-ipv6.xml ]; then
mv /opt/freeswitch/conf/sip_profiles/external-ipv6.xml /opt/freeswitch/conf/sip_profiles/external-ipv6.xml_
fi
if [ -f /opt/freeswitch/conf/sip_profiles/internal-ipv6.xml ]; then
mv /opt/freeswitch/conf/sip_profiles/internal-ipv6.xml /opt/freeswitch/conf/sip_profiles/internal-ipv6.xml_
fi
else
startService freeswitch.service || echo "freeswitch.service could not be registered or started"
fi