Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Talk recording #2520

Merged
merged 20 commits into from
Jul 20, 2023
34 changes: 33 additions & 1 deletion apps/talk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ else
nextcloud_occ_no_check config:app:delete spreed stun_servers
nextcloud_occ_no_check config:app:delete spreed turn_servers
nextcloud_occ_no_check config:app:delete spreed signaling_servers
nextcloud_occ_no_check config:app:delete spreed recording_servers
nextcloud_occ_no_check app:remove spreed
rm -rf \
"$TURN_CONF" \
Expand Down Expand Up @@ -66,6 +67,7 @@ else
fi
done
apt-get autoremove -y
docker_prune_this talk-recording
# Show successful uninstall if applicable
removal_popup "$SCRIPT_NAME"
fi
Expand Down Expand Up @@ -325,7 +327,7 @@ debug = false
hashkey = $(openssl rand -hex 16)
blockkey = $(openssl rand -hex 16)
[clients]
internalsecret = $(openssl rand -hex 16)
internalsecret = $(TURN_INTERNAL_SECRET)
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
[backend]
allowed = ${TURN_DOMAIN}
allowall = false
Expand Down Expand Up @@ -486,3 +488,33 @@ else
msg_box "Congratulations, everything is working as intended! The installation succeeded.\n\nLogging can be found by typing: journalctl -lfu signaling"
exit 0
fi

####### Talk recording
print_text_in_color "$ICyan" "Setting up Talk recording..."
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
enoch85 marked this conversation as resolved.
Show resolved Hide resolved

# Pull and start
docker pull nextcloud/aio-talk-recording:latest
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
docker run -t -d -p "$TURN_RECORDING_HOST":"$TURN_RECORDING_HOST_PORT":"$TURN_RECORDING_HOST_PORT" \
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
--restart always \
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
--name talk-recording \
nextcloud/aio-talk-recording \
–cap-add=sys_nice \
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
--shm-size=2g \
-e NC_DOMAIN="${TURN_DOMAIN}" \
-e TZ="$(cat /etc/timezone)" \
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
-e RECORDING_SECRET="${TURN_RECORDING_SECRET}" \
-e INTERNAL_SECRET="${TURN_INTERNAL_SECRET}"
enoch85 marked this conversation as resolved.
Show resolved Hide resolved

# Talk recording
if [ -d "$NCPATH/apps/spreed" ]
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
then
if does_this_docker_exist talk-recording
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
then
while ! nc -z "$TURN_RECORDING_HOST" 1234; do
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [shellcheck] reported by reviewdog 🐶
Command appears to be unreachable. Check usage (or ignore if invoked indirectly). SC2317

enoch85 marked this conversation as resolved.
Show resolved Hide resolved
echo "waiting for Talk Recording to become available..."
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
sleep 5
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
done

nextcloud_occ_no_check config:app:set spreed recording_servers --value="{\"servers\":[{\"server\":\"http://$TURN_RECORDING_HOST:$TURN_RECORDING_HOST_PORT/\",\"verify\":true}],\"secret\":\"$TURN_RECORDING_SECRET\"}"
enoch85 marked this conversation as resolved.
Show resolved Hide resolved
fi
fi
4 changes: 4 additions & 0 deletions lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,10 @@ turn_install() {
JANUS_API_KEY=$(gen_passwd "$SHUF" "a-zA-Z0-9@#*")
NC_SECRET=$(gen_passwd "$SHUF" "a-zA-Z0-9@#*")
SIGNALING_SERVER_CONF=/etc/signaling/server.conf
TURN_INTERNAL_SECRET=$(gen_passwd "$SHUF" "a-zA-Z0-9@#*")
TURN_RECORDING_SECRET=$(gen_passwd "$SHUF" "a-zA-Z0-9@#*")
TURN_RECORDING_HOST=127.0.0.1
TURN_RECORDING_HOST_PORT=1234
}

## FUNCTIONS
Expand Down
Loading