UPSTREAM BASELINE: nextcloud/spreed v22.0.12 (без изменений)
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled
Источник: https://github.com/nextcloud/spreed/archive/refs/tags/v22.0.12.tar.gz С этого коммита ветка официального Nextcloud Talk отрезана (решение владельца 2026-07-06). Все дальнейшие изменения — только наши; версии релизов: 22.0.12-f7.N.
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
###########################################
|
||||
# High-performance backend log simplifier #
|
||||
###########################################
|
||||
#
|
||||
# When modifying this script, please also upstream to:
|
||||
# https://github.com/strukturag/nextcloud-spreed-signaling/pull/480
|
||||
#
|
||||
# Creates a neutralized and simplified log from the HPB logs by:
|
||||
# 1. Replacing "user sessions" with "userX"
|
||||
# 2. Replacing "room sessions" with "sessionX"
|
||||
#
|
||||
# E.g. the following line:
|
||||
# May 26 13:31:36 server nextcloud-spreed-signaling[726]: clientsession.go:425: Session tooJzGsaUllvfGXdh3-74-yjAt-L9gCQKrs_U-DlLkZ8PTBabmJub3J6bEFGNEV6UnRZdEl2ZHpvUnJKMDNtSkFxZHBxZWR1X3VWUkJuZWllc2VUNko0RTFxLURaRXJyYjJ6ckc4dFBJRVVhT0lOLWR5RGtCM1R2MFpRemd3ZUFSLU9qWDZkR3FEQjR6MGt6c3p0VG92NmhqeEFEQkotN1JHM0lnbHl2ODRlbVRDaUlnQlhFQ3M1U1U2MDl4eWc4SU5MR0xjdTlUa0xaSmJqWGJ8Njk4NzAxNTg2MQ== joined room token123 with room session id P9roBo5O0EnRR8N4r+64MMdSHO2tu2ffNqjtICwSG43AHWL3XKn6XYv9xdYCgUYufxiCzIvg/QQk7cv8Uda1uhyDgh1FLPLCdjUe4uHJWKXb31rHig3gm+FdvOEO3GHEcKlJyPtSZzTupiatpanalRvMi6xR3jIXYoGcuvc//R2gzKFYNZQKwGdXXLMHNNHTlHPSAqIoYyj3vo5B+BeG9G1zo9Pq1WC3Akr2dghASkc+KJTHtpT3NbFBCAAH7jH
|
||||
# is converted to:
|
||||
# May 26 13:31:36 server nextcloud-spreed-signaling[726]: clientsession.go:425: Session User151 joined room token123 with room session id Session120
|
||||
#
|
||||
# Afterwards the script also creates a file per user and session
|
||||
#
|
||||
|
||||
LOG_CONTENT="`cat $1`"
|
||||
USER_SESSIONS=$(echo "$LOG_CONTENT" | egrep -o '[-a-zA-Z0-9_]{294,}==' | sort | uniq)
|
||||
NUM_USER_SESSIONS=$(echo "$USER_SESSIONS" | wc -l)
|
||||
echo "User sessions found: $NUM_USER_SESSIONS"
|
||||
|
||||
for i in $(seq 1 $NUM_USER_SESSIONS);
|
||||
do
|
||||
SESSION_NAME=$(echo "$USER_SESSIONS" | head -n $i | tail -n 1)
|
||||
LOG_CONTENT=$(echo "${LOG_CONTENT//$SESSION_NAME/user$i}")
|
||||
done
|
||||
|
||||
ROOM_SESSIONS=$(echo "$LOG_CONTENT" | egrep -o '[-a-zA-Z0-9_+\/]{255}( |$)' | sort | uniq)
|
||||
NUM_ROOM_SESSIONS=$(echo "$ROOM_SESSIONS" | wc -l)
|
||||
echo "Room sessions found: $NUM_ROOM_SESSIONS"
|
||||
|
||||
for i in $(seq 1 $NUM_ROOM_SESSIONS);
|
||||
do
|
||||
SESSION_NAME=$(echo "$ROOM_SESSIONS" | head -n $i | tail -n 1)
|
||||
LOG_CONTENT=$(echo "${LOG_CONTENT//$SESSION_NAME/session$i}")
|
||||
done
|
||||
|
||||
echo "$LOG_CONTENT" > simple.log
|
||||
|
||||
for i in $(seq 1 $NUM_USER_SESSIONS);
|
||||
do
|
||||
echo "$LOG_CONTENT" | egrep "user$i( |$)" > user$i.log
|
||||
done
|
||||
|
||||
for i in $(seq 1 $NUM_ROOM_SESSIONS);
|
||||
do
|
||||
echo "$LOG_CONTENT" | egrep "session$i( |$)" > session$i.log
|
||||
done
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
# TURN server configuration
|
||||
|
||||
## Background
|
||||
The configuration of Nextcloud Talk mainly depends on your desired usage:
|
||||
|
||||
- As long as it shall be used only **within one local network**, besides the app, nothing else should be required. Just verify that all browsers support the underlying [WebRTC](https://en.wikipedia.org/wiki/WebRTC) protocol - most contemporary browsers do with current versions, though mobile browsers tend to lag behind a little - and you should be good to go. Browser support can be tested for example here: [https://test.webrtc.org/](https://test.webrtc.org/)
|
||||
|
||||
- Talk tries to establish a direct [peer-to-peer (P2P)](https://en.wikipedia.org/wiki/Peer-to-peer) connection, thus on connections **beyond the local network** (behind a [NAT](https://en.wikipedia.org/wiki/Network_address_translation) or router), clients do not only need to know each other's public IP, but the participants local IPs as well. Processing this, is the job of a [STUN](https://en.wikipedia.org/wiki/STUN) server. As there is one preconfigured for Nextcloud Talk that is operated by Nextcloud GmbH, for this case nothing else needs to be done.
|
||||
|
||||
- But in many cases, especially **in combination with firewalls or [symmetric NAT](https://en.wikipedia.org/wiki/Network_address_translation#Symmetric_NAT)**, a direct P2P connection is not possible, even with the help of a STUN server. For this a so-called [TURN server](https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT) needs to be configured additionally.
|
||||
|
||||
- Nextcloud Talk will try direct P2P in the first place, use STUN if needed and TURN as last resort fallback. Thus, to be most flexible and guarantee functionality of your Nextcloud Talk instance, in all possible connection cases, you would want to set up a TURN server.
|
||||
|
||||
### TURN server and Nextcloud Talk High Performance Backend
|
||||
|
||||
A TURN server might be needed even if the Nextcloud Talk High Performance Backend is used and publicly accessible.
|
||||
|
||||
The High Performance Backend uses a certain range of ports for WebRTC media connections (20000-40000 by default). A client could be behind a restrictive firewall that only allows connections to port 443, so even if the High Performance Backend is publicly accessible the client would need to connect to a TURN server in port 443, and the TURN server will then relay the packets to the 20000-40000 range in the High Performance Backend.
|
||||
|
||||
For maximum compatibility the TURN server should be configured to listen on port 443. Therefore, when both a TURN server and the High Performance Backend are used each one should run in its own server, or in the same server but each one with its own IP address, as the High Performance Backend will need to bind to port 443 too.
|
||||
|
||||
## Install and set up your TURN server
|
||||
|
||||
This documentation provides two examples for TURN server implementations:
|
||||
|
||||
* [coturn](coturn.md)
|
||||
* [eturnal](eturnal.md)
|
||||
|
||||
After you have setup the server part above, continue here on this page with the following steps.
|
||||
|
||||
#### 4. Configure Nextcloud Talk to use your TURN server
|
||||
|
||||
- Go to Nextcloud admin panel > Talk settings. Btw. if you already have your own TURN server, you can and may want to use it as STUN server as well:
|
||||
|
||||
* STUN servers: your.domain.org:<yourChosenPortNumber>
|
||||
* TURN server: your.domain.org:<yourChosenPortNumber>
|
||||
* TURN secret: <yourChosen/GeneratedSecret>
|
||||
* Protocol: UDP and TCP
|
||||
|
||||
- Do not add `http(s)://` or `turn(s)://` protocol prefix here, just enter the bare `domain:port`. The protocol (`turn:` and/or `turns:`) needs to be selected in the dropdown.
|
||||
|
||||
##### Changes in Talk 12
|
||||
|
||||
In Talk 11 and previous versions when several STUN or TURN servers were listed in the settings a random one was provided to the clients. Starting with Talk 12 all the STUN and TURN servers listed in the settings are now returned.
|
||||
|
||||
Nevertheless, please note that in most cases you will not need to set up several TURN servers to ensure that the clients can connect to them. In general a single TURN server using both _turn:_ and _turns:_ with UDP and TCP on port 443 should be enough. Also keep in mind that clients will try to connect to all configured STUN and TURN servers when joining a call, even if they are not actually used in the end.
|
||||
|
||||
If you need to retain the previous behaviour you should now do it by external means. For example, by using a properly configured load balancer in front of the TURN servers and configuring only that load balancer as the TURN server in Talk settings.
|
||||
|
||||
#### 5. Port opening/forwarding
|
||||
|
||||
- The TURN server on `<yourChosenPortNumber>` needs to be accessible for all Talk participants, so you need to open it to the web and if your TURN server is running **behind a NAT**, forward it to the related machine. Also make sure to set coturn's [`--external-ip` option](https://github.com/coturn/coturn/wiki/turnserver#options) or eturnal's [`relay_ipv4_addr` configuration item](https://eturnal.net/documentation/#relay_ipv4_addr) when your TURN server is in a private network.
|
||||
|
||||
- If the High Performance Backend is used the TURN server and the High Performance Backend must be able to reach each other. If set, the `external-ip` option/`relay_ipv4_addr` parameter defines the IP address of the TURN server that the High Performance Backend will try to connect to. Therefore, if both the TURN server and the High Performance Backend are in the same private network they may be able to reach each other using their local IP addresses, and thus it may not be needed to set the `external-ip` option/`relay_ipv4_addr` parameter. Moreover, when both servers are behind a firewall, in some cases (depending on the firewall configuration) setting the external IP can even cause the TURN server and the High Performance Backend to fail to reach each other (for example, if the firewall is not able to "loop" a packet from an internal address to an external one which then should go back to another internal address).
|
||||
|
||||
* Note that in some cases additional addresses can be found during the negotiation of the connection, the so-called peer reflexive candidates. Due to this even if the external IP of the TURN server is not reachable by the High Performance Backend the connection may still work, but this should not be relied on.
|
||||
|
||||
#### 6. Testing the TURN server
|
||||
|
||||
##### Test if the TURN server is accessible from outside
|
||||
|
||||
For _coTURN_:
|
||||
|
||||
Install _coTURN_ on your client. Please [refer above for details](coturn.md#1-download-and-install). Note that in the case of the client you only need to install it, you do not need to perform any configuration after that.
|
||||
|
||||
Run `turnutils_uclient -p <port> -W <static-auth-secret> -v -y turn.example.com` where
|
||||
|
||||
- `<port>` is the port where your TURN server is listening
|
||||
- `<static-auth-secret>` is the _static-auth-secret_ value configured in your TURN server
|
||||
- `-v` enables the verbose mode to be able to check all the details
|
||||
- `-y` enables _client-to-client_ connections, so _turnutils_uclient_ acts as both the client and the peer that the TURN server relays to; otherwise you would need to also run _turnutils_peer_ to act as the peer to relay to and specify its address and port when running _turnutils_uclient_ with `-e` and `-r`
|
||||
|
||||
By default, the connection between the TURN client and the TURN server will be done using UDP. To instead test TCP connections you need to add `-t` to the options.
|
||||
|
||||
No matter if you are using UDP or TCP the output should look similar to:
|
||||
|
||||
0: IPv4. Connected from: 192.168.0.2:50988
|
||||
0: IPv4. Connected to: 1.2.3.4:3478
|
||||
0: allocate sent
|
||||
0: allocate response received:
|
||||
0: allocate sent
|
||||
0: allocate response received:
|
||||
0: success
|
||||
0: IPv4. Received relay addr: 1.2.3.4:56365
|
||||
....
|
||||
4: Total transmit time is 4
|
||||
4: Total lost packets 0 (0.000000%), total send dropped 0 (0.000000%)
|
||||
4: Average round trip delay 32.500000 ms; min = 15 ms, max = 56 ms
|
||||
4: Average jitter 12.600000 ms; min = 0 ms, max = 41 ms
|
||||
|
||||
If the output hangs at some point this could mean that the TURN server is not accessible (for example, because a firewall blocks its ports). Pay special attention too to the _Total lost packets_ and _total send dropped_ values, as there would be no error message if the data was successfully sent to the TURN server, but then it was not properly relayed.
|
||||
|
||||
Further you should see in the TURN server log the successful connection.
|
||||
|
||||
This test only verifies that your TURN server is accessible from the outside, but it does not check if your TURN server can be actually used within Talk. For that please keep reading.
|
||||
|
||||
For _eturnal_:
|
||||
|
||||
The easiest way is to refer to eturnal's Quick-Start guide, e.g. [in a shell](https://github.com/processone/eturnal/blob/master/doc/QUICK-TEST.md) or with [Docker](https://github.com/processone/eturnal/blob/master/doc/CONTAINER-QUICK-TEST.md).
|
||||
|
||||
##### Test the TURN server connection from within Talk
|
||||
|
||||
When the TURN server is set in the Talk settings a basic test against the TURN server is performed. You can perform a deeper test by forcing your browser to send the media of a call only through the TURN server:
|
||||
|
||||
- Join a call
|
||||
- Open your browser console
|
||||
- Type `OCA.Talk.SimpleWebRTC.webrtc.config.peerConnectionConfig.iceTransportPolicy = 'relay'` in the console and press Enter
|
||||
- Leave the call
|
||||
- Join the call again
|
||||
|
||||
Now, in that browser, the media sent to and received from other participants in the call should go through the TURN server. If the call works then the TURN server should work.
|
||||
|
||||
##### Differences between Firefox and Chromium
|
||||
|
||||
Firefox and Chromium handle `iceTransportPolicy = 'relay'` in slightly different ways. When relay candidates are forced Firefox will use only relay candidates, but Chromium will also take into account peer reflexive candidates that refer to the TURN server. Due to this in the above test, in some specific cases, a connection could be established in Chromium but not in Firefox.
|
||||
|
||||
For example, if a Janus gateway is used too, the TURN server is in the same server as the Janus gateway and both are behind a firewall (not recommended), relay candidates could have the public IP address of the server while peer reflexive candidates could have the internal one. If the firewall drops connections between the public IP address and the public IP address the connection between coTURN and Janus may not be established (but without failing either), which would cause that Firefox establishes a connection with the TURN server, but the TURN server does not send or receive any packet to or from Janus. In Chromium, on the other hand, the connection would work as it would use the internal IP address of the server from the peer reflexive candidate.
|
||||
|
||||
However, in the scenario above Firefox would not be able to establish a connection only if relay candidates are forced. With a standard Firefox configuration it would take into account peer reflexive candidates too, and thus, it should work without issues. Nevertheless, note that although using `iceTransportPolicy = 'relay'` in the browser console is just a temporary setting there is a persistent setting in Firefox configuration (_about:config_) to force relay candidates, `media.peerconnection.ice.relay_only`. This setting is targeted towards privacy-minded people, so you may want to test the TURN server with Firefox to ensure that it works even with the most restrictive configurations.
|
||||
|
||||
### What else
|
||||
Nextcloud Talk´s WebRTC handling is still mostly based on the one from the [Spreed.ME](https://www.spreed.me/) WebRTC solution. For this reason, all guides about how to configure coTURN for it, applies to Nextcloud Talk too.
|
||||
|
||||
If you need to use Talk with more than 5-10 users in the same call, you will need the Spreed High Performance Back-end from Nextcloud GmbH. Check [the website](https://nextcloud.com/talk/) for details.
|
||||
|
||||
#### Further reference
|
||||
|
||||
- [https://github.com/spreedbox/spreedbox/wiki/Use-TURN-server](https://github.com/spreedbox/spreedbox/wiki/Use-TURN-server)
|
||||
- [https://github.com/nextcloud/spreed/issues/667](https://github.com/nextcloud/spreed/issues/667)
|
||||
@@ -0,0 +1,247 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
# Helper script to run Talkbuchet, the helper tool for load/stress testing of
|
||||
# Nextcloud Talk.
|
||||
#
|
||||
# Talkbuchet is a JavaScript script (Talkbuchet.js), and it is run using a web
|
||||
# browser. A Python script (Talkbuchet-cli.py) is provided to launch a web
|
||||
# browser, load Talkbuchet and control it from a command line interface (which
|
||||
# requires Selenium and certain Python packages to be available in the system).
|
||||
# A Bash script (Talkbuchet-run.sh) is provided to set up a Docker container
|
||||
# with Selenium, a web browser and all the needed Python dependencies for
|
||||
# Talkbuchet-cli.py.
|
||||
#
|
||||
# Please refer to the documentation in Talkbuchet.js and Talkbuchet-cli.py for
|
||||
# information on Talkbuchet and how to control it.
|
||||
#
|
||||
# Talkbuchet-run.sh creates a Selenium container, installs all the needed
|
||||
# dependencies in it and executes Talkbuchet-cli.py inside the container. The
|
||||
# command line interface will automatically use the Selenium server from the
|
||||
# container, so as soon as the command line interface is shown Talkbuchet is
|
||||
# ready to be used. If the container exists already the previous container will
|
||||
# be reused and Talkbuchet-run.sh will simply execute Talkbuchet-cli.py in it.
|
||||
#
|
||||
# Due to that the Docker container will not be stopped nor removed when the
|
||||
# script exits (except when the container was created but it could not be
|
||||
# started); that must be explicitly done once the container is no longer needed.
|
||||
# If the Selenium container can not be started then the script will be exited
|
||||
# immediately with an error state; the most common cause for the Selenium
|
||||
# container to fail to start is that another process is already using the mapped
|
||||
# ports in the host.
|
||||
#
|
||||
# As the web browsers are run inside the Docker container they are not visible
|
||||
# by default. However, they can be viewed using VNC (for example,
|
||||
# "vncviewer 127.0.0.1:5900"). The Selenium Docker images also support web VNC,
|
||||
# so the web browsers can also be viewed navigating to "http://127.0.0.1:7900"
|
||||
# in a web browser outside the Docker container. In both cases, when asked for
|
||||
# the password use "secret".
|
||||
#
|
||||
# Besides that, by default Talkbuchet-cli.py starts the web browsers in headless
|
||||
# mode, so "setHeadless(False)" should be called in the command line interface
|
||||
# before starting a web browser to be able to view it.
|
||||
#
|
||||
#
|
||||
#
|
||||
# DOCKER AND PERMISSIONS
|
||||
#
|
||||
# To perform its job, this script requires the "docker" command to be available.
|
||||
#
|
||||
# The Docker Command Line Interface (the "docker" command) requires special
|
||||
# permissions to talk to the Docker daemon, and those permissions are typically
|
||||
# available only to the root user. Please see the Docker documentation to find
|
||||
# out how to give access to a regular user to the Docker daemon:
|
||||
# https://docs.docker.com/engine/installation/linux/linux-postinstall/
|
||||
#
|
||||
# Note, however, that being able to communicate with the Docker daemon is the
|
||||
# same as being able to get root privileges for the system. Therefore, you must
|
||||
# give access to the Docker daemon (and thus run this script as) ONLY to trusted
|
||||
# and secure users:
|
||||
# https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
|
||||
|
||||
# Sets the variables that abstract the differences in command names and options
|
||||
# between operating systems.
|
||||
#
|
||||
# Switches between timeout on GNU/Linux and gtimeout on macOS (same for mktemp
|
||||
# and gmktemp).
|
||||
function setOperatingSystemAbstractionVariables() {
|
||||
case "$OSTYPE" in
|
||||
darwin*)
|
||||
if [ "$(which gtimeout)" == "" ]; then
|
||||
echo "Please install coreutils (brew install coreutils)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MKTEMP=gmktemp
|
||||
TIMEOUT=gtimeout
|
||||
DOCKER_OPTIONS="-e no_proxy=localhost "
|
||||
;;
|
||||
linux*)
|
||||
MKTEMP=mktemp
|
||||
TIMEOUT=timeout
|
||||
DOCKER_OPTIONS=" "
|
||||
;;
|
||||
*)
|
||||
echo "Operating system ($OSTYPE) not supported"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Removes Docker container if it was created but failed to start.
|
||||
function cleanUp() {
|
||||
# Disable (yes, "+" disables) exiting immediately on errors to ensure that
|
||||
# all the cleanup commands are executed (well, no errors should occur during
|
||||
# the cleanup anyway, but just in case).
|
||||
set +o errexit
|
||||
|
||||
# The name filter must be specified as "^/XXX$" to get an exact match; using
|
||||
# just "XXX" would match every name that contained "XXX".
|
||||
if [ -n "$(docker ps --all --quiet --filter status=created --filter name="^/$CONTAINER$")" ]; then
|
||||
echo "Removing Docker container $CONTAINER"
|
||||
docker rm --volumes --force $CONTAINER
|
||||
fi
|
||||
}
|
||||
|
||||
# Exit immediately on errors.
|
||||
set -o errexit
|
||||
|
||||
# Execute cleanUp when the script exits, either normally or due to an error.
|
||||
trap cleanUp EXIT
|
||||
|
||||
# Ensure working directory is script directory, as some actions (like copying
|
||||
# Talkbuchet to the container) expect that.
|
||||
cd "$(dirname $0)"
|
||||
|
||||
HELP="Usage: $(basename $0) [OPTION]...
|
||||
|
||||
Options (all options can be omitted, but when present they must appear in the
|
||||
following order):
|
||||
--help prints this help and exits.
|
||||
--container CONTAINER_NAME the name to assign to the container. Defaults to
|
||||
talkbuchet-selenium, talkbuchet-selenium-chrome or talkbuchet-selenium-firefox
|
||||
depending on the image options.
|
||||
--selenium-image SELENIUM_IMAGE or --chrome or --firefox:
|
||||
--selenium-image SELENIUM_IMAGE the name of the Selenium image to use. No
|
||||
matter the image, the default container name will be talkbuchet-selenium. If
|
||||
no specific image is given a Firefox image will be used by default (and
|
||||
talkbuchet-selenium-firefox will be used as the default container name).
|
||||
--chrome use a Selenium image with Chrome.
|
||||
--firefox use a Selenium image with Firefox.
|
||||
--vnc-port PORT_NUMBER the port used to map the VNC server in the host. Defaults
|
||||
to 5900.
|
||||
--web-vnc-port PORT_NUMBER the port used to map the web VNC server in the host.
|
||||
Defaults to 7900.
|
||||
--dev-shm-size SIZE the size to assign to /dev/shm in the Docker container.
|
||||
Defaults to 2g"
|
||||
if [ "$1" = "--help" ]; then
|
||||
echo "$HELP"
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CUSTOM_CONTAINER_NAME=false
|
||||
CONTAINER="talkbuchet-selenium-firefox"
|
||||
if [ "$1" = "--container" ]; then
|
||||
CONTAINER="$2"
|
||||
CUSTOM_CONTAINER_NAME=true
|
||||
|
||||
shift 2
|
||||
fi
|
||||
|
||||
CUSTOM_CONTAINER_OPTIONS=false
|
||||
|
||||
SELENIUM_IMAGE="selenium/standalone-firefox:99.0-20220427"
|
||||
if [ "$1" = "--selenium-image" ]; then
|
||||
SELENIUM_IMAGE="$2"
|
||||
CUSTOM_CONTAINER_OPTIONS=true
|
||||
|
||||
if ! $CUSTOM_CONTAINER_NAME; then
|
||||
CONTAINER="talkbuchet-selenium"
|
||||
fi
|
||||
|
||||
shift 2
|
||||
elif [ "$1" = "--chrome" ]; then
|
||||
SELENIUM_IMAGE="selenium/standalone-chrome:101.0-20220427"
|
||||
|
||||
if $CUSTOM_CONTAINER_NAME; then
|
||||
CUSTOM_CONTAINER_OPTIONS=true
|
||||
else
|
||||
CONTAINER="talkbuchet-selenium-chrome"
|
||||
fi
|
||||
|
||||
shift 1
|
||||
elif [ "$1" = "--firefox" ]; then
|
||||
if $CUSTOM_CONTAINER_NAME; then
|
||||
CUSTOM_CONTAINER_OPTIONS=true
|
||||
fi
|
||||
|
||||
shift 1
|
||||
fi
|
||||
|
||||
VNC_PORT="5900"
|
||||
if [ "$1" = "--vnc-port" ]; then
|
||||
VNC_PORT="$2"
|
||||
CUSTOM_CONTAINER_OPTIONS=true
|
||||
|
||||
shift 2
|
||||
fi
|
||||
|
||||
WEB_VNC_PORT="7900"
|
||||
if [ "$1" = "--web-vnc-port" ]; then
|
||||
WEB_VNC_PORT="$2"
|
||||
CUSTOM_CONTAINER_OPTIONS=true
|
||||
|
||||
shift 2
|
||||
fi
|
||||
|
||||
# 2g is the default value recommended in the documentation of the Docker images
|
||||
# for Selenium:
|
||||
# https://github.com/SeleniumHQ/docker-selenium#--shm-size2g
|
||||
DEV_SHM_SIZE="2g"
|
||||
if [ "$1" = "--dev-shm-size" ]; then
|
||||
DEV_SHM_SIZE="$2"
|
||||
CUSTOM_CONTAINER_OPTIONS=true
|
||||
|
||||
shift 2
|
||||
fi
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
echo "Invalid option (or at invalid position): $1
|
||||
|
||||
$HELP"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
setOperatingSystemAbstractionVariables
|
||||
|
||||
# If the container is not found a new one is prepared. Otherwise the existing
|
||||
# container is used.
|
||||
#
|
||||
# The name filter must be specified as "^/XXX$" to get an exact match; using
|
||||
# just "XXX" would match every name that contained "XXX".
|
||||
if [ -z "$(docker ps --all --quiet --filter name="^/$CONTAINER$")" ]; then
|
||||
echo "Creating Selenium container"
|
||||
docker run --detach --name=$CONTAINER --publish $VNC_PORT:5900 --publish $WEB_VNC_PORT:7900 --shm-size=$DEV_SHM_SIZE $DOCKER_OPTIONS $SELENIUM_IMAGE
|
||||
|
||||
echo "Installing required Python modules"
|
||||
docker exec --user root $CONTAINER bash -c "apt-get update && apt-get install --assume-yes python3-pip && pip install selenium websocket-client"
|
||||
|
||||
echo "Copying Talkbuchet to the container"
|
||||
docker cp Talkbuchet.js $CONTAINER:/tmp/
|
||||
docker cp Talkbuchet-cli.py $CONTAINER:/tmp/
|
||||
elif $CUSTOM_CONTAINER_OPTIONS; then
|
||||
echo "WARNING: Using existing container, custom container options ignored"
|
||||
fi
|
||||
|
||||
# Start existing container if it is stopped.
|
||||
if [ -n "$(docker ps --all --quiet --filter status=exited --filter name="^/$CONTAINER$")" ]; then
|
||||
echo "Starting Selenium container"
|
||||
docker start $CONTAINER
|
||||
fi
|
||||
|
||||
echo "Starting Talkbuchet CLI"
|
||||
docker exec --tty --interactive --workdir /tmp $CONTAINER python3 -i /tmp/Talkbuchet-cli.py
|
||||
@@ -0,0 +1,130 @@
|
||||
# Conversation avatar API
|
||||
|
||||
* API v1: Base endpoint `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 27
|
||||
|
||||
## Set conversations avatar
|
||||
|
||||
* Required capability: `avatar`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/avatar`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------|--------|-------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `file` | string | Blob of image in a multipart/form-data request. Only accept images with mimetype equal to PNG or JPEG and need to be squared image. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When: is one-to-one, no image, file is too big, invalid mimetype or resource, isn't square, unknown error
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Data:
|
||||
+ `200 OK`: See array definition in `Get user´s conversations`
|
||||
+ `400 Bad Request`: Array with a `message` field contain the error in user language
|
||||
|
||||
## Set emoji as avatar
|
||||
|
||||
* Required capability: `avatar`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/avatar/emoji`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|-------------|--------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `emoji` | string | A single emoji being used as avatar (can contain properties like gender, skin color, age, job, etc.) |
|
||||
| `color` | string/null | HEX color code (6 times 0-9A-F) without the leading `#` character (omit to fallback to the default bright/dark mode icon background color) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation is a one-to-one conversation
|
||||
+ `400 Bad Request` When the emoji is not a single emoji
|
||||
+ `400 Bad Request` When color was provided but is not matching the expected pattern
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Data:
|
||||
+ `200 OK`: See array definition in `Get user´s conversations`
|
||||
+ `400 Bad Request`: Array with a `message` field contain the error in user language
|
||||
|
||||
## Delete conversations avatar
|
||||
|
||||
!!! note
|
||||
To determine if the delete option should be presented to the user, it's recommended to check the `isCustomAvatar` property of the [Get user´s conversations](conversation.md#get-user-s-conversations) API.
|
||||
|
||||
|
||||
* Required capability: `avatar`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/avatar`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Get conversations avatar (binary)
|
||||
|
||||
* Required capability: `avatar`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/avatar`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Body: the image file
|
||||
|
||||
## Get dark mode conversations avatar (binary)
|
||||
|
||||
* Required capability: `avatar`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/avatar/dark`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Body: the image file
|
||||
|
||||
## Get federated user avatar (binary)
|
||||
|
||||
* Required capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/proxy/{token}/user-avatar/{size}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|--------|------------------------------------------|
|
||||
| `size` | int | Only 64 and 512 are supported |
|
||||
| `cloudId` | string | Federation CloudID to get the avatar for |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Body: the image file
|
||||
|
||||
## Get dark mode federated user avatar (binary)
|
||||
|
||||
* Required capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/proxy/{token}/user-avatar/{size}/dark`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|--------|------------------------------------------|
|
||||
| `size` | int | Only 64 and 512 are supported |
|
||||
| `cloudId` | string | Federation CloudID to get the avatar for |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Body: the image file
|
||||
@@ -0,0 +1,65 @@
|
||||
# List of available bots
|
||||
|
||||
If you want to write your own bot or webhook, please see the
|
||||
[Bots and Webhooks developer documentation](bots.md). Afterwards send a pull
|
||||
request against the [docs/bot-list.md](https://github.com/nextcloud/spreed/blob/main/docs/bot-list.md)
|
||||
to add your bot to the list, using the following template:
|
||||
|
||||
```markdown
|
||||
### Name of the bot
|
||||
|
||||
Useful, but short description, best to keep it to 1-3 lines of text.
|
||||
|
||||

|
||||
|
||||
* License: Identifier of the license (See https://spdx.org/licenses/)
|
||||
* [Link to source code](https://github.com/nextcloud/call_summary_bot)
|
||||
* [Link to installation documentation](https://github.com/nextcloud/call_summary_bot#readme)
|
||||
```
|
||||
|
||||
Here you can find a brief overview of known bots that allows administration to
|
||||
easily discover your bot and install it on their Nextcloud server.
|
||||
|
||||
## Samples
|
||||
|
||||
### Call summary (Nextcloud app sample)
|
||||
|
||||
The call summary bot posts an overview message after the call listing all participants and outlining tasks.
|
||||
|
||||

|
||||
|
||||
* License: AGPL-3.0-or-later
|
||||
* [Link to source code](https://github.com/nextcloud/call_summary_bot)
|
||||
* [Link to installation documentation](https://github.com/nextcloud/call_summary_bot#readme)
|
||||
|
||||
### Currency convertor (Nextcloud AppEcosystem sample)
|
||||
|
||||
Example of how easily bot can be implemented in Python.
|
||||
|
||||

|
||||
|
||||
* License: MIT
|
||||
* [Link to source code](https://github.com/cloud-py-api/nc_py_api/tree/main/examples/as_app/talk_bot)
|
||||
* [Link to installation documentation](https://github.com/cloud-py-api/nc_py_api/blob/main/examples/as_app/talk_bot/HOW_TO_INSTALL.md)
|
||||
|
||||
### Welcome bot (Golang sample)
|
||||
|
||||
A Golang sample bot that responds to "Good morning" and "Hello" and welcomes new attendees in the room.
|
||||
|
||||

|
||||
|
||||
* License: GPL-3.0-or-later
|
||||
* [Link to source code](https://github.com/nextcloud/welcome_bot)
|
||||
* [Link to installation documentation](https://github.com/nextcloud/welcome_bot#readme)
|
||||
|
||||
## Bots
|
||||
|
||||
### Stable Diffusion
|
||||
|
||||
Uses [SDXL-Turbo](https://huggingface.co/stabilityai/sdxl-turbo) for fast image generation. Usage example: `@image cinematic portrait of fluffy cat with black eyes`
|
||||
|
||||

|
||||
|
||||
* License: MIT
|
||||
* [Link to source code](https://github.com/cloud-py-api/ai_image_generator_bot)
|
||||
* [Link to installation documentation](https://github.com/cloud-py-api/ai_image_generator_bot#readme)
|
||||
@@ -0,0 +1,83 @@
|
||||
# Setup and management bots
|
||||
|
||||
Base endpoint is: `/ocs/v2.php/apps/spreed/api/v1`: (requires the `bots-v1` capability - available since Nextcloud 27.1)
|
||||
|
||||
## Get list of bots installed on the server
|
||||
|
||||
Lists the bots that are installed on the server.
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `bot/admin`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the current user is not an administrator
|
||||
- Data:
|
||||
List of bots, each bot has at least:
|
||||
|
||||
| field | type | Description |
|
||||
|----------------------|--------|----------------------------------------------------------------------------------------------|
|
||||
| `id` | int | Unique numeric identifier of the bot on this server |
|
||||
| `name` | string | Display name of the bot shown as author when it posts a message or reaction |
|
||||
| `description` | string | A longer description of the bot helping moderators to decide if they want to enable this bot |
|
||||
| `url` | string | URL endpoint that is triggered by this bot |
|
||||
| `url_hash` | string | Hash of the URL prefixed with `bot-` serves as `actor_id` |
|
||||
| `state` | int | One of the [Bot states](constants.md#bot-states) |
|
||||
| `error_count` | int | Number of consecutive errors |
|
||||
| `last_error_date` | int | UNIX timestamp of the last error |
|
||||
| `last_error_message` | string | The last exception message or error response information when trying to reach the bot. |
|
||||
|
||||
## Get list of bots for a conversation
|
||||
|
||||
Lists the bots that are enabled and can be enabled for the conversation
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `bot/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data:
|
||||
List of bots, each bot has at least:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------------------|--------|----------------------------------------------------------------------------------------------|
|
||||
| `id` | int | Unique numeric identifier of the bot on this server |
|
||||
| `name` | string | Display name of the bot shown as author when it posts a message or reaction |
|
||||
| `description` | string | A longer description of the bot helping moderators to decide if they want to enable this bot |
|
||||
| `state` | int | One of the [Bot states](constants.md#bot-states) |
|
||||
|
||||
## Enable a bot for a conversation as a moderator
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `bot/{token}/{botId}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` When the bot is already enabled in the conversation
|
||||
+ `201 Created` When the bot is now enabled in the conversation
|
||||
+ `400 Bad Request` When the bot ID is unknown on the server
|
||||
+ `400 Bad Request` When the bot is disabled or set to "no-setup" on the server
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Disable a bot for a conversation as a moderator
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `bot/{token}/{botId}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` When the bot is already enabled in the conversation
|
||||
+ `201 Created` When the bot is now enabled in the conversation
|
||||
+ `400 Bad Request` When the bot ID is unknown on the server
|
||||
+ `400 Bad Request` When the bot is disabled or set to "no-setup" on the server
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
@@ -0,0 +1,409 @@
|
||||
# Bots and Webhooks
|
||||
|
||||
Base endpoint is: `/ocs/v2.php/apps/spreed/api/v1`: (requires the `bots-v1` capability - available since Nextcloud 27.1)
|
||||
|
||||
Webhook based bots are available with the Nextcloud 27.1 compatible Nextcloud Talk 17.1 release as a first version
|
||||
|
||||
!!! note
|
||||
|
||||
For security reasons bots can only be added via the
|
||||
command line. `./occ talk:bot:install --help` gives you
|
||||
a short overview of the required arguments, but they are
|
||||
also explained in the [OCC documentation](occ.md#talkbotinstall).
|
||||
|
||||
---
|
||||
|
||||
## Signing and Verifying Requests
|
||||
|
||||
Messages are signed using the shared secret that is specified when installing a bot on the server.
|
||||
Create a HMAC with SHA256 over the `RANDOM` header and the request body using the shared secret.
|
||||
Only when the `SIGNATURE` matches the request should be accepted and handled.
|
||||
|
||||
**Sample PHP code:**
|
||||
|
||||
```php
|
||||
$digest = hash_hmac('sha256', $_SERVER['HTTP_X_NEXTCLOUD_TALK_RANDOM'] . file_get_contents('php://input'), $secret);
|
||||
|
||||
if (!hash_equals($digest, strtolower($_SERVER['HTTP_X_NEXTCLOUD_TALK_SIGNATURE']))) {
|
||||
exit;
|
||||
}
|
||||
```
|
||||
|
||||
## Receiving chat messages
|
||||
|
||||
Bot receives all the chat messages following the same signature/verification method.
|
||||
|
||||
### Headers
|
||||
|
||||
| Header | Content type | Description |
|
||||
|-----------------------------------|---------------------|------------------------------------------------------|
|
||||
| `HTTP_X_NEXTCLOUD_TALK_SIGNATURE` | `[a-f0-9]{64}` | SHA265 signature of the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_RANDOM` | `[A-Za-z0-9+\]{64}` | Random string used when signing the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_BACKEND` | URI | Base URL of the Nextcloud server sending the message |
|
||||
|
||||
### Content
|
||||
|
||||
The content format follows the [Activity Streams 2.0 Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/).
|
||||
|
||||
#### Sample chat message
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "Create",
|
||||
"actor": {
|
||||
"type": "Person",
|
||||
"id": "users/ada-lovelace",
|
||||
"name": "Ada Lovelace"
|
||||
},
|
||||
"object": {
|
||||
"type": "Note",
|
||||
"id": "1567",
|
||||
"name": "message",
|
||||
"content": "{\"message\":\"hi {mention-call1} !\",\"parameters\":{\"mention-call1\":{\"type\":\"call\",\"id\":\"n3xtc10ud\",\"name\":\"world\",\"call-type\":\"group\",\"icon-url\":\"https:\\/\\/nextcloud.local\\/ocs\\/v2.php\\/apps\\/spreed\\/api\\/v1\\/room\\/n3xtc10ud\\/avatar\"}}}",
|
||||
"mediaType": "text/markdown"
|
||||
},
|
||||
"target": {
|
||||
"type": "Collection",
|
||||
"id": "n3xtc10ud",
|
||||
"name": "world"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Explanation
|
||||
|
||||
| Path | Description |
|
||||
|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| actor.id | One of the known [attendee types](constants.md#attendee-types) followed by the `/` slash character and a unique identifier within the given type. For users it is the Nextcloud user ID, for guests and email invited guests a random hash value. |
|
||||
| actor.name | The display name of the attendee sending the message. |
|
||||
| actor.talkParticipantType | *Optional:* 🆕 Added in Talk 21. If applicable the attendee's [participant type](constants.md#participant-types) is provided. However this field can not be provided in some cases, e.g. bots. |
|
||||
| object.id | The message ID of the given message on the origin server. It can be used to react or reply to the given message. |
|
||||
| object.name | For normal written messages `message`, otherwise one of the known [system message identifiers](chat.md#system-messages). |
|
||||
| object.content | A JSON encoded dictionary with a `message` and `parameters` key. The message can include placeholders and the [Rich Object parameters](https://github.com/nextcloud/server/blob/master/lib/public/RichObjectStrings/Definitions.php) are rendered into it in the chat view. |
|
||||
| object.mediaType | `text/markdown` when the message should be interpreted as Markdown. Otherwise `text/plain`. |
|
||||
| object.inReplyTo | *Optional:* 🆕 Added in Talk 21. If applicable the parent message which was quoted in this message |
|
||||
| object.inReplyTo.actor | *Optional:* 🆕 Added in Talk 21. Same data as the `actor` |
|
||||
| object.inReplyTo.object | *Optional:* 🆕 Added in Talk 21. Same data as the `object` (but never contains `inReplyTo`) |
|
||||
| target.id | The token of the conversation in which the message was posted. It can be used to react or reply to the given message. |
|
||||
| target.name | The name of the conversation in which the message was posted. |
|
||||
|
||||
## Receiving reaction added
|
||||
|
||||
🆕 Added in Talk 21. Bots with the `reaction` feature receive special hooks when a reaction was added to a chat message.
|
||||
|
||||
### Headers
|
||||
|
||||
| Header | Content type | Description |
|
||||
|-----------------------------------|---------------------|------------------------------------------------------|
|
||||
| `HTTP_X_NEXTCLOUD_TALK_SIGNATURE` | `[a-f0-9]{64}` | SHA265 signature of the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_RANDOM` | `[A-Za-z0-9+\]{64}` | Random string used when signing the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_BACKEND` | URI | Base URL of the Nextcloud server sending the message |
|
||||
|
||||
### Content
|
||||
|
||||
The content format follows the [Activity Streams 2.0 Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/).
|
||||
|
||||
#### Sample reaction added message
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "Like",
|
||||
"actor": {
|
||||
"type": "Person",
|
||||
"id": "users/ada-lovelace",
|
||||
"name": "Ada Lovelace"
|
||||
},
|
||||
"object": {
|
||||
"type": "Note",
|
||||
"id": "1567",
|
||||
"name": "message",
|
||||
"content": "{\"message\":\"hi {mention-call1} !\",\"parameters\":{\"mention-call1\":{\"type\":\"call\",\"id\":\"n3xtc10ud\",\"name\":\"world\",\"call-type\":\"group\",\"icon-url\":\"https:\\/\\/nextcloud.local\\/ocs\\/v2.php\\/apps\\/spreed\\/api\\/v1\\/room\\/n3xtc10ud\\/avatar\"}}}",
|
||||
"mediaType": "text/markdown"
|
||||
},
|
||||
"target": {
|
||||
"type": "Collection",
|
||||
"id": "n3xtc10ud",
|
||||
"name": "world"
|
||||
},
|
||||
"content": "\ud83d\ude06"
|
||||
}
|
||||
```
|
||||
|
||||
#### Explanation
|
||||
|
||||
| Path | Description |
|
||||
|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| actor.id | One of the known [attendee types](constants.md#attendee-types) followed by the `/` slash character and a unique identifier within the given type. For users it is the Nextcloud user ID, for guests and email invited guests a random hash value. |
|
||||
| actor.name | The display name of the attendee sending the message. |
|
||||
| actor.talkParticipantType | *Optional:* If applicable the attendee's [participant type](constants.md#participant-types) is provided. However this field can not be provided in some cases, e.g. bots. |
|
||||
| object.id | The message ID of the given message on the origin server. It can be used to react or reply to the given message. |
|
||||
| object.name | For normal written messages `message`, otherwise one of the known [system message identifiers](chat.md#system-messages). |
|
||||
| object.content | A JSON encoded dictionary with a `message` and `parameters` key. The message can include placeholders and the [Rich Object parameters](https://github.com/nextcloud/server/blob/master/lib/public/RichObjectStrings/Definitions.php) are rendered into it in the chat view. |
|
||||
| object.mediaType | `text/markdown` when the message should be interpreted as Markdown. Otherwise `text/plain`. |
|
||||
| target.id | The token of the conversation in which the message was posted. It can be used to react or reply to the given message. |
|
||||
| target.name | The name of the conversation in which the message was posted. |
|
||||
| content | The reaction emoji that was added |
|
||||
|
||||
## Receiving reaction removed
|
||||
|
||||
🆕 Added in Talk 21. Bots with the `reaction` feature receive special hooks when a reaction was added to a chat message.
|
||||
|
||||
### Headers
|
||||
|
||||
| Header | Content type | Description |
|
||||
|-----------------------------------|---------------------|------------------------------------------------------|
|
||||
| `HTTP_X_NEXTCLOUD_TALK_SIGNATURE` | `[a-f0-9]{64}` | SHA265 signature of the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_RANDOM` | `[A-Za-z0-9+\]{64}` | Random string used when signing the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_BACKEND` | URI | Base URL of the Nextcloud server sending the message |
|
||||
|
||||
### Content
|
||||
|
||||
The content format follows the [Activity Streams 2.0 Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/).
|
||||
|
||||
#### Sample reaction removed message
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "Undo",
|
||||
"actor": {
|
||||
"type": "Person",
|
||||
"id": "users/ada-lovelace",
|
||||
"name": "Ada Lovelace"
|
||||
},
|
||||
"object": {
|
||||
"type": "Like",
|
||||
"actor": {
|
||||
"type": "Person",
|
||||
"id": "users/ada-lovelace",
|
||||
"name": "Ada Lovelace"
|
||||
},
|
||||
"object": {
|
||||
"type": "Note",
|
||||
"id": "1567",
|
||||
"name": "message",
|
||||
"content": "{\"message\":\"hi {mention-call1} !\",\"parameters\":{\"mention-call1\":{\"type\":\"call\",\"id\":\"n3xtc10ud\",\"name\":\"world\",\"call-type\":\"group\",\"icon-url\":\"https:\\/\\/nextcloud.local\\/ocs\\/v2.php\\/apps\\/spreed\\/api\\/v1\\/room\\/n3xtc10ud\\/avatar\"}}}",
|
||||
"mediaType": "text/markdown"
|
||||
},
|
||||
"target": {
|
||||
"type": "Collection",
|
||||
"id": "n3xtc10ud",
|
||||
"name": "world"
|
||||
},
|
||||
"content": "\ud83d\ude06"
|
||||
},
|
||||
"target": {
|
||||
"type": "Collection",
|
||||
"id": "n3xtc10ud",
|
||||
"name": "world"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Explanation
|
||||
|
||||
| Path | Description |
|
||||
|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| actor.id | One of the known [attendee types](constants.md#attendee-types) followed by the `/` slash character and a unique identifier within the given type. For users it is the Nextcloud user ID, for guests and email invited guests a random hash value. |
|
||||
| actor.name | The display name of the attendee sending the message. |
|
||||
| actor.talkParticipantType | *Optional:* If applicable the attendee's [participant type](constants.md#participant-types) is provided. However this field can not be provided in some cases, e.g. bots. |
|
||||
| object | Full hook content when the reaction was added |
|
||||
| object.content | The reaction emoji that was removed |
|
||||
| target.id | The token of the conversation in which the message was posted. It can be used to react or reply to the given message. |
|
||||
| target.name | The name of the conversation in which the message was posted. |
|
||||
|
||||
## Bot added in a chat
|
||||
|
||||
When the bot is added to a chat, the server sends a request to the bot, informing it of the event. The same signature/verification method is applied.
|
||||
|
||||
### Headers
|
||||
|
||||
| Header | Content type | Description |
|
||||
|-----------------------------------|---------------------|------------------------------------------------------|
|
||||
| `HTTP_X_NEXTCLOUD_TALK_SIGNATURE` | `[a-f0-9]{64}` | SHA265 signature of the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_RANDOM` | `[A-Za-z0-9+\]{64}` | Random string used when signing the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_BACKEND` | URI | Base URL of the Nextcloud server sending the message |
|
||||
|
||||
### Content
|
||||
|
||||
The content format follows the [Activity Streams 2.0 Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/).
|
||||
|
||||
#### Sample request
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "Join",
|
||||
"actor": {
|
||||
"type": "Application",
|
||||
"id": "bots/bot-a78f46c5c203141b247554e180e1aa3553d282c6",
|
||||
"name": "Bot123"
|
||||
},
|
||||
"object": {
|
||||
"type": "Collection",
|
||||
"id": "n3xtc10ud",
|
||||
"name": "world"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Explanation
|
||||
|
||||
| Path | Description |
|
||||
|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| actor.id | Bot's [actor type](constants.md#actor-types-of-chat-messages) followed by the `/` slash character and a bot's unique sha1 identifier with `bot-` prefix. |
|
||||
| actor.name | The display name of the bot. |
|
||||
| object.id | The token of the conversation in which the bot was added. |
|
||||
| object.name | The name of the conversation in which the bot was added. |
|
||||
|
||||
## Bot removed from a chat
|
||||
|
||||
When the bot is removed from a chat, the server sends a request to the bot, informing it of the event. The same signature/verification method is applied.
|
||||
|
||||
### Headers
|
||||
|
||||
| Header | Content type | Description |
|
||||
|-----------------------------------|---------------------|------------------------------------------------------|
|
||||
| `HTTP_X_NEXTCLOUD_TALK_SIGNATURE` | `[a-f0-9]{64}` | SHA265 signature of the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_RANDOM` | `[A-Za-z0-9+\]{64}` | Random string used when signing the body |
|
||||
| `HTTP_X_NEXTCLOUD_TALK_BACKEND` | URI | Base URL of the Nextcloud server sending the message |
|
||||
|
||||
### Content
|
||||
|
||||
The content format follows the [Activity Streams 2.0 Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/).
|
||||
|
||||
#### Sample request
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "Leave",
|
||||
"actor": {
|
||||
"type": "Application",
|
||||
"id": "bots/bot-a78f46c5c203141b247554e180e1aa3553d282c6",
|
||||
"name": "Bot123"
|
||||
},
|
||||
"object": {
|
||||
"type": "Collection",
|
||||
"id": "n3xtc10ud",
|
||||
"name": "world"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Explanation
|
||||
|
||||
| Path | Description |
|
||||
|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| actor.id | Bot's [actor type](constants.md#actor-types-of-chat-messages) followed by the `/` slash character and a bot's unique sha1 identifier with `bot-` prefix. |
|
||||
| actor.name | The display name of the bot. |
|
||||
| object.id | The token of the conversation from which the bot was removed. |
|
||||
| object.name | The name of the conversation from which the bot was removed. |
|
||||
|
||||
## Sending a chat message
|
||||
|
||||
Bots can also send message. On the sending process the same signature/verification method is applied.
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/bot/{token}/message`
|
||||
* Header:
|
||||
|
||||
| Name | Description |
|
||||
|----------------------------------|-----------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Bot-Random` | The random value used when signing the request |
|
||||
| `X-Nextcloud-Talk-Bot-Signature` | The signature to validate the request comes from an enabled bot |
|
||||
| `OCS-APIRequest` | Needs to be set to `true` to access the ocs/vX.php endpoint |
|
||||
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `message` | string | The message the user wants to say |
|
||||
| `replyTo` | int | The message ID this message is a reply to (only allowed for messages from the same conversation and when the message type is not `system` or `command`) |
|
||||
| `referenceId` | string | A reference string to be able to identify the message again in a "get messages" request, should be a random sha256 |
|
||||
| `silent` | bool | If sent silent the message will not create chat notifications even for users |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created` When the message was posted successfully
|
||||
+ `400 Bad Request` When the provided replyTo parameter is invalid or the message is empty
|
||||
+ `401 Unauthenticated` When the bot could not be verified for the conversation
|
||||
+ `404 Not Found` When the conversation could not be found
|
||||
+ `413 Payload Too Large` When the message was longer than the allowed limit of 32000 characters (or 1000 until Nextcloud 16.0.1, check the `spreed => config => chat => max-length` capability for the limit)
|
||||
+ `429 Too Many Requests` When `401 Unauthenticated` was triggered too often
|
||||
|
||||
## Reacting to a chat message
|
||||
|
||||
Bots can also react to a message. The same signature/verification method is applied.
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/bot/{token}/reaction/{messageId}`
|
||||
* Header:
|
||||
|
||||
| Name | Description |
|
||||
|----------------------------------|-----------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Bot-Random` | The random value used when signing the request |
|
||||
| `X-Nextcloud-Talk-Bot-Signature` | The signature to validate the request comes from an enabled bot |
|
||||
| `OCS-APIRequest` | Needs to be set to `true` to access the ocs/vX.php endpoint |
|
||||
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|----------------|
|
||||
| `reaction` | string | A single emoji |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created` When the reaction was created successfully
|
||||
+ `400 Bad Request` When the provided emoji was invalid
|
||||
+ `401 Unauthenticated` When the bot could not be verified for the conversation
|
||||
+ `404 Not Found` When the conversation or message could not be found
|
||||
+ `429 Too Many Requests` When `401 Unauthenticated` was triggered too often
|
||||
|
||||
## Delete a reaction
|
||||
|
||||
Bots can also remove their previous reaction from a message. The same signature/verification method is applied.
|
||||
|
||||
* Required capability: `bots-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/bot/{token}/reaction/{messageId}`
|
||||
* Header:
|
||||
|
||||
| Name | Description |
|
||||
|----------------------------------|-----------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Bot-Random` | The random value used when signing the request |
|
||||
| `X-Nextcloud-Talk-Bot-Signature` | The signature to validate the request comes from an enabled bot |
|
||||
| `OCS-APIRequest` | Needs to be set to `true` to access the ocs/vX.php endpoint |
|
||||
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|----------------|
|
||||
| `reaction` | string | A single emoji |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` When the reaction was deleted successfully
|
||||
+ `400 Bad Request` When the provided emoji was invalid
|
||||
+ `401 Unauthenticated` When the bot could not be verified for the conversation
|
||||
+ `404 Not Found` When the conversation or message could not be found
|
||||
+ `429 Too Many Requests` When `401 Unauthenticated` was triggered too often
|
||||
|
||||
## Nextcloud apps as a bot
|
||||
|
||||
🆕 Added in Talk 21.
|
||||
|
||||
Instead of being webhook based, bots can also listen to the [`OCA\Talk\Events\BotInvokeEvent` PHP events](events.md#bot-invoke) and get invoked with the same content.
|
||||
The event allows to `addAnswer()` and `addReaction()` which will then be posted and reacted as the bot.
|
||||
The advantage is that a web request can be saved, reducing the load on the system.
|
||||
|
||||
When installing the bot specify `nextcloudapp://$APPID` as the bot URL, together with the `4` as a [Bot feature flag](constants.md#bot-features).
|
||||
|
||||
## Changelog
|
||||
|
||||
### Nextcloud 27.1 / Talk 17.1 - September 2023
|
||||
- Initial version
|
||||
|
||||
### Nextcloud 31 / Talk 21 - February 2025
|
||||
- Added direct support for Nextcloud apps as bots. A new feature flag `events` which indicates that a bot will utilize the `OCA\Talk\Events\BotInvokeEvent` event listed in [PHP events](events.md#bot-invoke) rather than being invoked via a webhook.
|
||||
- Added new feature flag `reaction` which allows to get invoked for added and removed reactions
|
||||
- In hooks that are replies the new optional field `object.inReplyTo` contains the actor and content of the parent chat message
|
||||
|
After Width: | Height: | Size: 51 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
After Width: | Height: | Size: 79 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
After Width: | Height: | Size: 257 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
After Width: | Height: | Size: 54 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -0,0 +1,194 @@
|
||||
# Breakout rooms management
|
||||
|
||||
Group and public conversations can be used to host breakout rooms.
|
||||
|
||||
* Only moderators can configure and remove breakout rooms
|
||||
* Only moderators can start and stop breakout rooms
|
||||
* Moderators in the parent conversation are added as moderators to all breakout rooms and remove from all on demotion
|
||||
|
||||
## Base endpoint
|
||||
|
||||
* API v1: Base endpoint `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 26
|
||||
|
||||
## Configure breakout rooms
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/breakout-rooms/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|-------------------------------------------------------------------------------------------------------|
|
||||
| `mode` | int | Participant assignment mode (see [constants list](constants.md#breakout-room-modes)) |
|
||||
| `amount` | int | Number of breakout rooms to create (Minimum `1`, maximum `20`) |
|
||||
| `attendeeMap` | string | A json encoded Map of attendeeId => room number (0 based) (Only considered when the mode is "manual") |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `config`: When breakout rooms are disabled on the server
|
||||
+ `400 Bad Request` Error `mode`: When breakout rooms are already configured
|
||||
+ `400 Bad Request` Error `room`: When the conversation is not a group conversation
|
||||
+ `400 Bad Request` Error `room`: When the conversation is a breakout room itself
|
||||
+ `400 Bad Request` Error `mode`: When the mode is invalid
|
||||
+ `400 Bad Request` Error `amount`: When the amount is below the minimum or above the maximum
|
||||
+ `400 Bad Request` Error `attendeeMap`: When the attendee map contains an invalid room number or moderator
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Array of conversations (breakout rooms and parent)
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Create additional breakout room
|
||||
|
||||
In order to create an additional breakout room, create a conversation with object type `room` and object ID being the parent token.
|
||||
See [Creating a new conversation](conversation.md#creating-a-new-conversation) for more information.
|
||||
|
||||
## Delete individual breakout room
|
||||
|
||||
The normal deletion API can be used.
|
||||
See [Delete a conversation](conversation.md#delete-a-conversation) for more information.
|
||||
|
||||
## Remove breakout rooms
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/breakout-rooms/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Parent conversation
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Start breakout rooms
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/breakout-rooms/{token}/rooms`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Array of conversations (breakout rooms and parent)
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Stop breakout rooms
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/breakout-rooms/{token}/rooms`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Array of conversations (breakout rooms and parent)
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Broadcast message to breakout rooms
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/breakout-rooms/{token}/broadcast`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|--------|----------------------------------------------------------------------------------------------------------------|
|
||||
| `message` | string | A chat message to be posted in all breakout rooms in the name of the moderator |
|
||||
| `token` | string | **Note:** The token in the URL is the parent room. The message will appear in all breakout rooms automatically |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` Error `mode`: When the room does not have breakout rooms configured
|
||||
+ `403 Forbidden` When the participant is not a moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `413 Payload Too Large` When the message was longer than the allowed limit of 32000 characters (check the `spreed => config => chat => max-length` capability for the limit)
|
||||
- Data: Array of conversations (breakout rooms and parent)
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Reorganize attendees
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/breakout-rooms/{token}/attendees`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|-------------------------------------------------------------------------------------------------------|
|
||||
| `attendeeMap` | string | A json encoded Map of attendeeId => room number (0 based) (Only considered when the mode is "manual") |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `config`: When breakout rooms are disabled on the server
|
||||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured
|
||||
+ `400 Bad Request` Error `attendeeMap`: When the attendee map contains an invalid room number or moderator
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Array of conversations (breakout rooms and parent)
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Request assistance
|
||||
|
||||
This endpoint allows participants to raise their hand (token is the breakout room) and moderators will see it in any of the breakout rooms as well as the parent room.
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/breakout-rooms/{token}/request-assistance`
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `room`: When the room is not a breakout room or breakout rooms are not started
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Breakout room
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## Reset request for assistance
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/breakout-rooms/{token}/request-assistance`
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `room`: When the room is not a breakout room or breakout rooms are not started
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Breakout room
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
|
||||
## List all breakout rooms
|
||||
|
||||
See [conversation API](conversation.md#get-breakout-rooms))
|
||||
|
||||
## Switch to a different breakout room (as non moderator)
|
||||
|
||||
This endpoint allows participants to switch between breakout rooms when they are allowed to choose the breakout room and not are automatically or manually assigned by the moderator.
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/breakout-rooms/{token}/switch`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|----------|--------|-------------------------------------------------------------------------------|
|
||||
| `token` | string | (In the URL) Conversation token of the parent room hosting the breakout rooms |
|
||||
| `target` | string | Conversation token of the target breakout room |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error `moderator`: When the participant is a moderator in the conversation
|
||||
+ `400 Bad Request` Error `mode`: When breakout rooms are not configured in `free` mode
|
||||
+ `400 Bad Request` Error `status`: When breakout rooms are not started
|
||||
+ `400 Bad Request` Error `target`: When the target room is not breakout room of the parent
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
- Data: Target breakout room
|
||||
See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations) (API v4)
|
||||
@@ -0,0 +1,52 @@
|
||||
# Call experience
|
||||
|
||||
There are multiple factors which can have a smaller and bigger impact on the experience of a call.
|
||||
|
||||
## Automatic selection of sent video quality
|
||||
|
||||
Since version 8.0.8 Nextcloud Talk will automatically select the sent video quality depending on the number of participants sending video and/or audio streams. Both counters are checked and then the lowest matching quality is selected.
|
||||
|
||||
If a participant enabled their microphone and starts speaking the video quality is set to "High" for the duration of them talking plus an additional grace period of 5 seconds.
|
||||
|
||||
### Number of video streams
|
||||
|
||||
| Streams | Quality |
|
||||
|---------|-----------|
|
||||
| < 4 | High |
|
||||
| 4-7 | Medium |
|
||||
| 8-10 | Low |
|
||||
| 11-14 | Very low |
|
||||
| > 14 | Thumbnail |
|
||||
|
||||
### Number of audio streams
|
||||
|
||||
| Streams | Quality |
|
||||
|---------|-----------|
|
||||
| < 10 | High |
|
||||
| 10-19 | Medium |
|
||||
| 20-29 | Low |
|
||||
| 30-39 | Very low |
|
||||
| > 40 | Thumbnail |
|
||||
|
||||
### Video qualities
|
||||
|
||||
| Quality | Max width | Ideal width | Max height | Ideal height | Max frames | Ideal frames |
|
||||
|-----------|-----------|-------------|------------|--------------|------------|--------------|
|
||||
| High | - | 720 | - | 540 | - | 30 |
|
||||
| Medium | 640 | 560 | 480 | 420 | 24 | 24 |
|
||||
| Low | 480 | 360 | 320 | 270 | 15 | 15 |
|
||||
| Very low | 320 | - | 240 | - | 8 | - |
|
||||
| Thumbnail | 320 | - | 240 | - | 1 | - |
|
||||
|
||||
## Judging the connection quality
|
||||
|
||||
Similar since version 9.0.2 Nextcloud Talk is having an eye on the lost packages and the "round trip time" of the stream data. When the connection is too bad or no data could be transmitted at all, the participant will be informed to try to disable their own video and screen share.
|
||||
If those two are already off, the participant will see a message that their connection bandwidth or device cannot withhold the necessary load for participating in a call.
|
||||
|
||||
The critical values are:
|
||||
|
||||
**Lost packages:** 30% in the last 5 seconds
|
||||
|
||||
**Too few packages:** Less than 10 packages per second
|
||||
|
||||
**Round trip time:** above 1.5 seconds
|
||||
|
After Width: | Height: | Size: 380 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
After Width: | Height: | Size: 553 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -0,0 +1,145 @@
|
||||
# Call API
|
||||
|
||||
* API v1: 🏁 Removed with API v4: until Nextcloud 21
|
||||
* API v2: 🏁 Removed with API v4: Nextcloud 21 only
|
||||
* API v3: 🏁 Removed with API v4: Nextcloud 21 only
|
||||
* API v4: Base endpoint `/ocs/v2.php/apps/spreed/api/v4`: since Nextcloud 22
|
||||
|
||||
!!! note
|
||||
|
||||
At the moment, joining a room is only possible with cookies, as you need a
|
||||
session.
|
||||
|
||||
## Get list of connected participants
|
||||
|
||||
* Federation capability: `federation-v2`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/call/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
Array of participants, each participant has at least:
|
||||
|
||||
| field | type | Added | Removed | Description |
|
||||
|---------------|--------|-------|---------|--------------------------------------------------------------------------------------------|
|
||||
| `actorType` | string | v3 | | Actor type of the attendee (see [Constants - Attendee types](constants.md#attendee-types)) |
|
||||
| `actorId` | string | v3 | | The user id, guest random id or email address of the attendee |
|
||||
| `userId` | string | v1 | v3 | The user id replaced with actorType = users and actorId being the userId |
|
||||
| `displayName` | string | v3 | | The display name of the attendee |
|
||||
| `lastPing` | int | v1 | | Timestamp of the last ping of the user (should be used for sorting) |
|
||||
| `sessionId` | string | v1 | | 512 character long string |
|
||||
|
||||
## Join a call
|
||||
|
||||
* Federation capability: `federation-v2`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/call/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `flags` | int | Flags what streams are provided by the participant (see [Constants - Participant in-call flag](constants.md#participant-in-call-flag)) |
|
||||
| `silent` | bool | Disable start call notifications for group/public calls |
|
||||
| `recordingConsent` | bool | When the user ticked a checkbox and agreed with being recorded (Only needed when the `config => call => recording-consent` capability is set to `1` or the capability is `2` and the conversation `recordingConsent` value is `1`) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When recording consent is required but was not given
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the user did not join the conversation before
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
## Send call notification
|
||||
|
||||
* Required capability: `send-call-notification`
|
||||
* Federation capability: `federation-v2`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/call/{token}/ring/{attendeeId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|------|---------------------------|
|
||||
| `attendeeId` | int | The participant to notify |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the target participant is not a user (Guest, group, etc.)
|
||||
+ `400 Bad Request` When the target participant is already in the call
|
||||
+ `400 Bad Request` When the room has no call in process
|
||||
+ `400 Bad Request` When the actor is not in the call
|
||||
+ `403 Forbidden` When the current user is not a moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the attendee could not be found in the conversation
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
## Send SIP dial-out request
|
||||
|
||||
* Required capability: `sip-support-dialout`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/call/{token}/dialout/{attendeeId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|------|-------------------------|
|
||||
| `attendeeId` | int | The participant to call |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the room has no call in process
|
||||
+ `400 Bad Request` When the actor is not in the call
|
||||
+ `403 Forbidden` When the current user does not have the "Start call" permission
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the target participant could not be found or is not a phone number (Guest, group, etc.)
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
+ `501 Not Implemented` When the SIP functionality is not configured
|
||||
|
||||
## Update call flags
|
||||
|
||||
* Federation capability: `federation-v2`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/call/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|----------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `flags` | int | Flags what streams are provided by the participant (see [Constants - Participant in-call flag](constants.md#participant-in-call-flag)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the user is not in the call
|
||||
+ `400 Bad Request` When the flags do not contain "in call"
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the user did not join the conversation before
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
## Leave a call (but staying in the conversation for future calls and chat)
|
||||
|
||||
* Federation capability: `federation-v2`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/call/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-------|------|-----------------------------------------------------------------------------|
|
||||
| `all` | bool | If sent as a moderator, end the meeting and all participants leave the call |
|
||||
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the user did not join the conversation before
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
@@ -0,0 +1,213 @@
|
||||
# Capabilities
|
||||
|
||||
## 3.0 (Initial Talk release)
|
||||
* `audio` - audio is supported
|
||||
* `video` - video + screensharing is supported
|
||||
* `chat` - simple text chat is supported, superseded by `chat-v2`
|
||||
|
||||
## 3.1
|
||||
* `guest-signaling` - Guests can do signaling via api endpoints
|
||||
* `empty-group-room` - Group conversations can be created without inviting a Nextcloud user group by default
|
||||
|
||||
## 3.2
|
||||
* `guest-display-names` - Display names of guests are stored in the database, can be set via API (not WebRTC only) and are used on returned comments/participants/etc.
|
||||
* `multi-room-users` - Users can be in multiple conversations at the same time now, therefor signaling now also requires the conversation token on the URL.
|
||||
* `chat-v2` - Chat messages are now [Rich Object Strings](https://github.com/nextcloud/server/issues/1706) and pagination is available, the previous `chat` is not available anymore.
|
||||
|
||||
## 4.0
|
||||
* `favorites` (local) - Conversations can be marked as favorites which will pin them to the top of the conversation list.
|
||||
* `last-room-activity` - Conversations have the `lastActivity` attribute and should be sorted by that instead of the last ping of the user.
|
||||
* `no-ping` - The ping endpoint has been removed. Ping is updated with a call to fetch the signaling or chat messages instead.
|
||||
* `system-messages` - Chat messages have a `systemMessage` attribute and can be generated by the system
|
||||
* `mention-flag` - The conversation list populates the boolean `unreadMention` when the user was mentioned since their last visit
|
||||
* `in-call-flags` - A new flag `participantFlags` has been introduced and is replacing the `participantInCall` boolean.
|
||||
|
||||
## 5.0
|
||||
* `invite-by-mail` - *Replaced by `invite-groups-and-mails`* Guests can be invited with their email address
|
||||
* `notification-levels` - Users can select when they want to be notified in conversations
|
||||
* `invite-groups-and-mails` - Groups can be added to existing conversations via the add participant endpoint
|
||||
|
||||
## 6.0
|
||||
* `locked-one-to-one-rooms` - One-to-one conversations are now locked to the users. Neither guests nor other participants can be added, so the options to do that should be hidden as well. Also a user can only leave a one-to-one conversation (not delete). It will be deleted when the other participant left too. If the other participant posts a new chat message or starts a call, the left-participant will be re-added.
|
||||
* `read-only-rooms` - Conversations can be in `read-only` mode which means people can not do calls or write chat messages.
|
||||
|
||||
## 7.0
|
||||
* `chat-read-marker` - The chat can be optionally marked read by clients manually, independent from the loading of the chat messages.
|
||||
* `webinary-lobby` - See [Webinary management](webinar.md) for technical details.
|
||||
* `start-call-flag` - Only moderators or users might be able to start calls.
|
||||
* `config => chat => max-length` - Maximum length of chat messages
|
||||
|
||||
|
||||
## 8.0
|
||||
* `chat-replies` - Normal chat messages can now be replied to. Check the `isReplyable` parameter on the message object.
|
||||
* `circles-support` - Conversations can be created for circles and all circle members can be added to existing conversations
|
||||
|
||||
|
||||
## 9.0
|
||||
* `config => attachments => allowed` (local) - Whether the user can upload files into a chat
|
||||
* `config => attachments => folder` (local) - User defined folder where items should be uploaded to
|
||||
* `config => conversations => can-create` (local) - Whether the user can create public and group conversations, if not only one-to-one conversations are allowed
|
||||
* `force-mute` - "forceMute" signaling messages can be sent to mute other participants.
|
||||
* `conversation-v2` - ~~The conversations API v2 is less load heavy and should be used by clients when available. Check the difference in the [Conversation API documentation](conversation.md).~~ Replaced by API v4 when `conversation-v4` is set.
|
||||
* `chat-reference-id` - a referenceId can be sent with a chat message to be able to identify it in parallel get requests to earlier fade out a temporary message. This feature is always enabled since Nextcloud 29
|
||||
|
||||
## 10.1
|
||||
* `conversation-v3` - ~~Whether conversations API v3 is available~~ Replaced by API v4 when `conversation-v4` is set.
|
||||
* `sip-support` - Whether SIP can be configured and enabled by moderators. The conversations API will come with some new values `sipEnabled` which signals whether this conversation has SIP configured as well as `canEnableSIP` to see if a user can enable it. When it is enabled `attendeePin` will contain the unique dial-in code for this user.
|
||||
|
||||
## 11.0
|
||||
* `chat-read-status` (local) - On conversation API v3 and the chat API the last common read message is exposed which can be used to update the "read status" flag of own chat messages. The info should be shown only when the user also shares their read status. The user's value can be found in `config => chat => read-privacy`.
|
||||
* `listable-rooms` (local) - Conversations can searched for even when not joined. A "listable" attribute set on rooms defines the scope of who can find it.
|
||||
* `phonebook-search` (local) - Is present when the server has the endpoint to search for phone numbers to find matches in the accounts list
|
||||
* `raise-hand` - Participants can raise or lower hand, the state change is sent through signaling messages.
|
||||
* `room-description` - A description can be get and set for conversations.
|
||||
* `config => chat => read-privacy` (local) - See `chat-read-status`
|
||||
* `config => previews => max-gif-size` (local) - Maximum size in bytes below which a GIF can be embedded directly in the page at render time. Bigger files will be rendered statically using the preview endpoint instead. Can be set with `occ config:app:set spreed max-gif-size --value=X` where X is the new value in bytes. Defaults to 3 MB.
|
||||
|
||||
## 11.1
|
||||
* `delete-messages` - Allows to delete chat messages up to 6 hours for your own messages or when being a moderator. On deleting the message text will be replaced and a follow up system message will make sure clients and users update it in their cache and storage.
|
||||
* `rich-object-sharing` - Rich objects can be shared to chats. See [OCP\RichObjectStrings\Definitions](https://github.com/nextcloud/server/blob/master/lib/public/RichObjectStrings/Definitions.php) for more details on supported rich objects and required data.
|
||||
* `conversation-call-flags` - Whether the room api provides the `callFlag` to tell apart video and audio calls
|
||||
* `temp-user-avatar-api` (local) - Whether a temporary api is available to allow users to upload an avatar to their profile via an OCS endpoint.
|
||||
|
||||
## 12.0
|
||||
* `conversation-v4` - Whether conversations API v4 is available. This also means that v1, v2 and v3 are **not** available anymore. The changes on API v4 allow a user to have multiple sessions in the same conversation on different devices which is incompatible with the data structure that was used by the previous APIs.
|
||||
* `signaling-v3` - Whether signaling API v3 is available. This also means that v1 and v2 are **not** available anymore. The TURN and STUN server data is now returning all defined servers instead of a random one. Multiple entries for the same server are combined and using the urls array correctly now.
|
||||
* `geo-location-sharing` - Whether the `geo-location` rich object is defined and can be shared to the rich-object sharing endpoint.
|
||||
* `voice-message-sharing` - Shared files can be flagged as voice messages and are then presented differently in the interface
|
||||
* `publishing-permissions` - Whether the publishing permissions can be set for the attendees.
|
||||
|
||||
## 12.1
|
||||
* `clear-history` - Whether chat API has the endpoint so moderators can clear the complete history of a chat
|
||||
|
||||
## 13
|
||||
* `direct-mention-flag` - The conversation list populates the boolean `unreadMentionDirect` when the user was mentioned directly (ignoring @all mentions) since their last visit
|
||||
* `notification-calls` - Whether the API to opt out of call notifications is available
|
||||
* `conversation-permissions` - Whether the default and custom permissions can be set for attendees.
|
||||
|
||||
## 14
|
||||
* `chat-unread` - Whether the API to mark a conversation as unread is available
|
||||
* `reactions` - Api reactions to chat message
|
||||
* `rich-object-list-media` - When the API to get the chat messages for shared media is available
|
||||
* `rich-object-delete` - When the API allows to delete chat messages which are file or rich object shares
|
||||
|
||||
## 15
|
||||
* `unified-search` (local) - When the extended attributes of unified search results are there
|
||||
* `chat-permission` - When permission 128 is required to post chat messages, reaction or share items to the conversation
|
||||
* `silent-send` - Whether the chat API allows to send chat messages without triggering notifications
|
||||
* `message-expiration` - Message expiration time for a conversation
|
||||
* `sip-support-nopin` - Whether SIP can be configured to not require a custom attendee PIN
|
||||
* `send-call-notification` - When the API allows to resend call notifications for individual users that did not join yet
|
||||
* `silent-call` - Allow to start calls without sending notification
|
||||
* `talk-polls` - Polls feature is available to use in the chat
|
||||
* `config => call => enabled` - Whether calling is enabled on the instance or not
|
||||
* `config => signaling => session-ping-limit` (local) - Number of sessions the HPB is allowed to ping in the same request
|
||||
* `config => signaling => hello-v2-token-key` (local) - Public key to use when verifying JWT auth tokens for hello V2.
|
||||
|
||||
## 16
|
||||
* `breakout-rooms-v1` - Whether breakout-rooms API v1 is available
|
||||
* `recording-v1` - Call recording is available.
|
||||
* `chat-get-context` - Whether the message context API endpoint is available
|
||||
* `config => call => breakout-rooms` - Whether breakout rooms are enabled on this instance
|
||||
* `config => call => recording` - Whether calls can be recorded (requires the High-performance backend server)
|
||||
* `single-conversation-status` - When the response of a single conversation can also return the user status
|
||||
* `chat-keep-notifications` - Whether messages can be retrieved without marking notifications as read
|
||||
|
||||
## 17
|
||||
* `avatar` (local) - Avatar of conversation
|
||||
* ~~`config => chat => translations` - List of translations tuples, JSON encoded sample `{"from":"de","fromLabel":"German","to":"en","toLabel":"English"}`. Those tuples should be provided as options when translating chat messages.~~ Due to some providers the list was too big causing issues in various clients. So the capability was replaced by boolean `config => chat => has-translation-providers` in Talk 18.
|
||||
* `config => call => predefined-backgrounds` (local) - List of predefined virtual backgrounds. The files are in Talks img/ folder, accessible via the normal image path methods. The list is cached for 5 minutes.
|
||||
* `config => call => can-upload-background` (local) - Boolean flag whether the user can upload a custom virtual background (requires an account and non-zero quota). Uploads should be done to Talk/Backgrounds/ (respecting the user's attachment directory setting).
|
||||
* `config => call => supported-reactions` - A list of emojis supported as call reactions. If the list is absent or empty, clients should not show the emoji reaction option in calls.
|
||||
* `config => chat => typing-privacy` (local) - User defined numeric value to enable 1 or disable 0 the typing indicator to other users
|
||||
* `typing-privacy` - Support toggle typing privacy
|
||||
|
||||
## 17.1
|
||||
* `remind-me-later` (local) - Support for "Remind me later" for chat messages exists
|
||||
* `bots-v1` - Support of the first version for Bots and Webhooks is available
|
||||
* `markdown-messages` - Chat messages support markdown and are rendered automatically
|
||||
|
||||
## 18
|
||||
* `media-caption` - Whether media caption can be added to shared files
|
||||
* `session-state` - Sessions can mark themselves as inactive, so the participant receives notifications again
|
||||
* `note-to-self` (local) - Support for "Note-to-self" conversation exists
|
||||
* `recording-consent` - Whether admins and moderators can require recording consent before joining a call
|
||||
* `sip-support-dialout` - Whether admins can enable SIP dial-out
|
||||
* `config => chat => has-translation-providers` (local) - When true, translation tuples can be loaded from the [OCS Translation API](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-translation-api.html#get-available-translation-options).
|
||||
* `config => call => recording-consent` - Whether users need to consent into call recording before joining a call (see [constants list](constants.md#recording-consent-required))
|
||||
* `config => call => sip-enabled` - Whether SIP is configured on the server allowing for SIP dial-in
|
||||
* `config => call => sip-dialout-enabled` - Whether SIP dial-out is configured on the server, additionally requires `config => call => sip-enabled`
|
||||
* `config => call => can-enable-sip` - Whether the current user is a member of the groups that are allowed to enable SIP dial-in on a conversation or use SIP dial-out
|
||||
|
||||
## 19
|
||||
* `delete-messages-unlimited` - Whether messages can be deleted at any time (used to be restricted to 6 hours after posting)
|
||||
* `edit-messages` - Whether messages can be edited (restricted to 24 hours after posting)
|
||||
* `silent-send-state` - Whether messages contain a flag that they were sent silently
|
||||
* `chat-read-last` - Whether chat can be marked read without giving a message ID (will fall back to the conversations last message ID)
|
||||
* `federation-v1` - Whether basic chatting is possible with federation
|
||||
* `config => federation => enabled` (local) - Boolean, whether federation is enabled on instance
|
||||
* `config => federation => incoming-enabled` (local) - Boolean, whether users are allowed to be invited into federated conversations on other servers
|
||||
* `config => federation => outgoing-enabled` (local) - Boolean, whether users are allowed to invited federated users of other servers into conversations
|
||||
* `config => federation => only-trusted-servers` (local) - Boolean, whether federation invites are limited to trusted servers
|
||||
|
||||
## 20
|
||||
* `ban-v1` - Whether the API to ban attendees is available
|
||||
* `mention-permissions` - Whether non-moderators are allowed to mention `@all`
|
||||
* `federation-v2` - Whether federated session ids are used and calls are possible with federation
|
||||
* `edit-messages-note-to-self` - Messages in note-to-self conversations can be edited indefinitely
|
||||
|
||||
## 20.1
|
||||
* `archived-conversations-v2` (local) - Conversations can be marked as archived which will hide them from the conversation list by default
|
||||
* `talk-polls-drafts` - Whether moderators can store and retrieve poll drafts
|
||||
* `download-call-participants` - Whether the endpoints for moderators to download the call participants is available
|
||||
* `chat-summary-api` (local) - Whether the endpoint to get summarized chat messages in a conversation is available
|
||||
* `email-csv-import` - Whether the endpoint to import a CSV email list as participants exists
|
||||
* `config => chat => summary-threshold` (local) - Number of unread messages that should exist to show a "Generate summary" option
|
||||
* `config => call => start-without-media` (local) - Boolean, whether media should be disabled when starting or joining a conversation
|
||||
* `config => call => max-duration` - Integer, maximum call duration in seconds. Please note that this should only be used with system cron and with a reasonable high value, due to the expended duration until the background job ran.
|
||||
* `config => call => blur-virtual-background` (local) - Boolean, whether blur background is set by default when joining a conversation
|
||||
|
||||
## 21
|
||||
* `config => conversations => force-passwords` - Whether passwords are enforced for public rooms
|
||||
* `conversation-creation-password` - Whether the endpoints for creating public conversations or making a conversation public support setting a password
|
||||
* `call-notification-state-api` (local) - Whether the endpoints exist for checking if a call notification should be dismissed
|
||||
* `schedule-meeting` (local) - Whether logged-in participants can schedule meetings
|
||||
* `config => chat => has-translation-task-providers` (local) - When true, translations can be done using the [OCS TaskProcessing API](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-taskprocessing-api.html).
|
||||
* `config => conversations => list-style` (local) - Whether conversation list should appear in certain way
|
||||
* `config => conversations => description-length` (local) - The maximum length for conversation descriptions, currently 2000. Before this config was added the implicit limit was 500, since the existance of the feature capability `room-description`.
|
||||
* `call-end-to-end-encryption` - Signaling support of the server for the end-to-end encryption of calls
|
||||
* `config => call => end-to-end-encryption` - Whether calls should be end-to-end encrypted (currently off by default, until all Talk mobile clients support it)
|
||||
+ `edit-draft-poll` - Whether moderators can edit draft polls
|
||||
|
||||
## 21.1
|
||||
* `conversation-creation-all` (local) - Whether the conversation creation endpoint allows to specify all attributes of a conversation
|
||||
* `sip-direct-dialin` (local) - Whether the SIP bridge can create conversations when an external participant calls a mapped phone number
|
||||
* `important-conversations` (local) - Whether important conversations are supported
|
||||
* `unbind-conversation` - Whether the API exists to make an event and phone conversation persistent
|
||||
* `config => conversations => retention-event` - Number of days before an inactive event conversation is deleted (`0` = disabled)
|
||||
* `config => conversations => retention-instant-meetings` - Number of days before an instant meeting conversation is deleted (`0` = disabled)
|
||||
* `config => conversations => retention-phone` - Number of days before an inactive incoming or outgoing phone conversation is deleted (`0` = disabled)
|
||||
* `config => call => predefined-backgrounds-v2` (local) - Whether virtual backgrounds should be read from the theming directory
|
||||
* `config => experiments => enabled` (local) - Bit flag of enabled experiments for clients
|
||||
* `dashboard-event-rooms` (local) - Whether Talk APIs offer functionality for Dashboard requests
|
||||
* `mutual-calendar-events` (local) - Whether Talk APIs offer mutual calendar events for 1:1 rooms
|
||||
* `upcoming-reminders` (local) - Whether the API to list upcoming reminders exists
|
||||
* `sensitive-conversations` (local) - Whether sensitive conversations are supported
|
||||
|
||||
## 22
|
||||
* `threads` - Whether the chat supports threads
|
||||
* `config => call => live-transcription` - Whether live transcription is supported in calls
|
||||
|
||||
## 22.0.3
|
||||
* `federated-shared-items` - Whether shared items endpoints can be called in a federated conversation
|
||||
|
||||
## 22.0.10
|
||||
* `config => call => default-phone-region` - System value for the default phone region to predict the regional phone numbers
|
||||
* `config => permissions => max-default` - Maximum value for default permissions (510 with react-permission, 254 without)
|
||||
* `config => permissions => max-custom` - Maximum value for custom permissions (511 with react-permission, 255 without)
|
||||
* `config => permissions => default` - The admin configured default permissions
|
||||
* `config => chat => matterbridge-enabled` (local) - Whether matterbridge is installed on the server and can be configured for conversations
|
||||
* `config => signaling => mode` (local) - Signaling mode (external with High-performance backend, internal otherwise)
|
||||
* `config => call => play-sounds` (local) - Whether the user has sounds enabled for calls (falls back to admin default for guests)
|
||||
* `config => call => grid-limit` (local) - Suggested gird size for all participants
|
||||
* `config => call => grid-limit-enforced` (local) - Whether the limit is hard enforced for all participants
|
||||
@@ -0,0 +1,25 @@
|
||||
# Changelog
|
||||
|
||||
- [Talk 23 for Nextcloud 33](changelogs/changelog-23.md)
|
||||
- [Talk 22 for Nextcloud 32](changelogs/changelog-22.md)
|
||||
- [Talk 21 for Nextcloud 31](changelogs/changelog-21.md)
|
||||
- [Talk 20 for Nextcloud 30](changelogs/changelog-20.md)
|
||||
- [Talk 19 for Nextcloud 29](changelogs/changelog-19.md)
|
||||
- [Talk 18 for Nextcloud 28](changelogs/changelog-18.md)
|
||||
- [Talk 17 for Nextcloud 27](changelogs/changelog-17.md)
|
||||
- [Talk 16 for Nextcloud 26](changelogs/changelog-16.md)
|
||||
- [Talk 15 for Nextcloud 25](changelogs/changelog-15.md)
|
||||
- [Talk 14 for Nextcloud 24](changelogs/changelog-14.md)
|
||||
- [Talk 13 for Nextcloud 23](changelogs/changelog-13.md)
|
||||
- [Talk 12 for Nextcloud 22](changelogs/changelog-12.md)
|
||||
- [Talk 11 for Nextcloud 21](changelogs/changelog-11.md)
|
||||
- [Talk 10 for Nextcloud 20](changelogs/changelog-10.md)
|
||||
- [Talk 9 for Nextcloud 19](changelogs/changelog-9.md)
|
||||
- [Talk 8 for Nextcloud 18](changelogs/changelog-8.md)
|
||||
- [Talk 7 for Nextcloud 17](changelogs/changelog-7.md)
|
||||
- [Talk 6 for Nextcloud 16](changelogs/changelog-6.md)
|
||||
- [Talk 5 for Nextcloud 15](changelogs/changelog-5.md)
|
||||
- [Talk 4 for Nextcloud 14](changelogs/changelog-4.md)
|
||||
- [Talk 3 for Nextcloud 13](changelogs/changelog-3.md)
|
||||
- [Talk 2 for Nextcloud 12](changelogs/changelog-2.md)
|
||||
- [Talk 1 for Nextcloud 11](changelogs/changelog-1.md)
|
||||
@@ -0,0 +1,30 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 1.2.0 – 2017-01-18
|
||||
### Added
|
||||
- Translations for multiple languages now available
|
||||
[#177](https://github.com/nextcloud/spreed/pull/177)
|
||||
- Open call-search when user has no calls
|
||||
[#111](https://github.com/nextcloud/spreed/pull/111)
|
||||
- Disable video by default, when more then 5 people are in a room
|
||||
|
||||
### Changed
|
||||
- TURN settings can only be changed by admins now
|
||||
[#185](https://github.com/nextcloud/spreed/pull/185)
|
||||
- App can not be restricted to groups anymore to prevent issues with public rooms
|
||||
[#201](https://github.com/nextcloud/spreed/pull/201)
|
||||
|
||||
### Fixed
|
||||
- Allow to connect via Firefox without a camera
|
||||
[#160](https://github.com/nextcloud/spreed/pull/160)
|
||||
- Leaving the current room does not refresh the full page anymore
|
||||
[#163](https://github.com/nextcloud/spreed/pull/163)
|
||||
- "Undefined index" log entry when visiting admin page
|
||||
[#151](https://github.com/nextcloud/spreed/pull/151)
|
||||
[#57](https://github.com/nextcloud/spreed/pull/57)
|
||||
|
||||
@@ -0,0 +1,278 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 10.1.7 – 2021-09-17
|
||||
### Fixed
|
||||
- Fix logged-in users are unable to join a password protected public conversation
|
||||
[#6232](https://github.com/nextcloud/spreed/pull/6232)
|
||||
- Fix infinite loop when the media constraints can not be decreased
|
||||
[#6240](https://github.com/nextcloud/spreed/pull/6240)
|
||||
|
||||
## 10.0.10 – 2021-09-17
|
||||
### Fixed
|
||||
- Fix logged-in users are unable to join a password protected public conversation
|
||||
[#6233](https://github.com/nextcloud/spreed/pull/6233)
|
||||
- Fix infinite loop when the media constraints can not be decreased
|
||||
[#6128](https://github.com/nextcloud/spreed/pull/6128)
|
||||
|
||||
## 10.1.6 – 2021-07-15
|
||||
### Fixed
|
||||
- Fix connection quality stats not reset when setting a new peer connection
|
||||
[#5770](https://github.com/nextcloud/spreed/pull/5770)
|
||||
|
||||
## 10.0.9 – 2021-07-15
|
||||
### Fixed
|
||||
- Fix connection quality stats not reset when setting a new peer connection
|
||||
[#5769](https://github.com/nextcloud/spreed/pull/5769)
|
||||
|
||||
## 10.1.5 – 2021-06-04
|
||||
### Fixed
|
||||
- Regenerate session id after entering conversation password
|
||||
[#5640](https://github.com/nextcloud/spreed/pull/5640)
|
||||
- Fix quality warning appearing again in certain conditions
|
||||
[#5553](https://github.com/nextcloud/spreed/pull/5553)
|
||||
- Fix camera quality starting bad in some cases
|
||||
[#5557](https://github.com/nextcloud/spreed/pull/5557)
|
||||
|
||||
## 10.0.8 – 2021-06-04
|
||||
### Fixed
|
||||
- Regenerate session id after entering conversation password
|
||||
[#5641](https://github.com/nextcloud/spreed/pull/5641)
|
||||
- Fix quality warning appearing again in certain conditions
|
||||
[#5555](https://github.com/nextcloud/spreed/pull/5555)
|
||||
- Fix camera quality starting bad in some cases
|
||||
[#5559](https://github.com/nextcloud/spreed/pull/5559)
|
||||
|
||||
## 10.1.4 – 2021-04-12
|
||||
### Fixed
|
||||
- Only use the local file as preview for some types when uploading
|
||||
[#5425](https://github.com/nextcloud/spreed/pull/5425)
|
||||
- Fix an issue with the migration to the new attendees table
|
||||
[#5245](https://github.com/nextcloud/spreed/pull/5245)
|
||||
[#5429](https://github.com/nextcloud/spreed/pull/5429)
|
||||
|
||||
## 10.0.7 – 2021-04-12
|
||||
### Fixed
|
||||
- Only use the local file as preview for some types when uploading
|
||||
[#5426](https://github.com/nextcloud/spreed/pull/5426)
|
||||
|
||||
## 10.1.3 – 2021-03-04
|
||||
### Fixed
|
||||
- Fixed a bug in the migration that could prevent copying all participants to the attendee table
|
||||
[#5245](https://github.com/nextcloud/spreed/pull/5245)
|
||||
|
||||
## 10.1.2 – 2021-02-22
|
||||
### Added
|
||||
- Added pagination to the gridview in case there are too many participants
|
||||
[#4991](https://github.com/nextcloud/spreed/pull/4991)
|
||||
|
||||
### Changed
|
||||
- Replace blur with average color in video backgrounds to improve performance on Chrome based browsers
|
||||
[#5011](https://github.com/nextcloud/spreed/pull/5011)
|
||||
- Allow SIP dial-in in non-public conversations too
|
||||
[#4955](https://github.com/nextcloud/spreed/pull/4955)
|
||||
|
||||
### Fixed
|
||||
- Drop guest moderators when changing a conversation to group conversation
|
||||
[#5231](https://github.com/nextcloud/spreed/pull/5231)
|
||||
- Fix collaboration resource options not loading
|
||||
[#5141](https://github.com/nextcloud/spreed/pull/5141)
|
||||
- Fixed a bug that would prevent attachments going into the Talk/ folder
|
||||
[#5078](https://github.com/nextcloud/spreed/pull/5078)
|
||||
- Fix mentioning of users with subnames, e.g. "foo" and "foobar"
|
||||
[#5050](https://github.com/nextcloud/spreed/pull/5050)
|
||||
- Add upload editor in files sidebar mode
|
||||
[#5113](https://github.com/nextcloud/spreed/pull/5113)
|
||||
|
||||
## 10.0.6 – 2021-02-22
|
||||
### Changed
|
||||
- Replace blur with average color in video backgrounds to improve performance on Chrome based browsers
|
||||
[#5012](https://github.com/nextcloud/spreed/pull/5012)
|
||||
|
||||
### Fixed
|
||||
- Drop guest moderators when changing a conversation to group conversation
|
||||
[#5228](https://github.com/nextcloud/spreed/pull/5228)
|
||||
- Fix collaboration resource options not loading
|
||||
[#5142](https://github.com/nextcloud/spreed/pull/5142)
|
||||
- Fixed a bug that would prevent attachments going into the Talk/ folder
|
||||
[#5079](https://github.com/nextcloud/spreed/pull/5079)
|
||||
- Fix mentioning of users with subnames, e.g. "foo" and "foobar"
|
||||
[#5051](https://github.com/nextcloud/spreed/pull/5051)
|
||||
- Add upload editor in files sidebar mode
|
||||
[#5111](https://github.com/nextcloud/spreed/pull/5111)
|
||||
|
||||
## 10.1.1 – 2021-01-08
|
||||
### Fixed
|
||||
- Fix chat notifications not being sent when user is not active in a chat
|
||||
[#4869](https://github.com/nextcloud/spreed/pull/4869)
|
||||
[#4847](https://github.com/nextcloud/spreed/pull/4847)
|
||||
- Fix CSP violation in Safari with worker-src from avatar blurring
|
||||
[#4899](https://github.com/nextcloud/spreed/pull/4899)
|
||||
- Don't remove a chat when a self-joined user leaves
|
||||
[#4893](https://github.com/nextcloud/spreed/pull/4893)
|
||||
- Use proc_open to run matterbridge for better compatibility
|
||||
[#4775](https://github.com/nextcloud/spreed/pull/4775)
|
||||
- Make the bridge bot password more complex
|
||||
[#4909](https://github.com/nextcloud/spreed/pull/4909)
|
||||
|
||||
## 10.0.5 – 2021-01-08
|
||||
### Fixed
|
||||
- Fix CSP violation in Safari with worker-src from avatar blurring
|
||||
[#4900](https://github.com/nextcloud/spreed/pull/4900)
|
||||
- Don't remove a chat when a self-joined user leaves
|
||||
[#4894](https://github.com/nextcloud/spreed/pull/4894)
|
||||
- Make the bridge bot password more complex
|
||||
[#4910](https://github.com/nextcloud/spreed/pull/4910)
|
||||
|
||||
## 10.1.0 – 2020-12-18
|
||||
### Added
|
||||
- Implement multiple requirements to prepare for SIP dial-in
|
||||
[#4612](https://github.com/nextcloud/spreed/pull/4612)
|
||||
### Fixed
|
||||
- Fix potentially multiple guests joining in a password request conversation
|
||||
[#4801](https://github.com/nextcloud/spreed/pull/4801)
|
||||
- Prevent issues with UTF8 multibyte chars in the changelog conversation
|
||||
[#4733](https://github.com/nextcloud/spreed/pull/4733)
|
||||
- Fix Chromium performance hit in calls due to blur filter
|
||||
[#4781](https://github.com/nextcloud/spreed/pull/4781)
|
||||
- Stop sending the nick through data channels after some time
|
||||
[#4726](https://github.com/nextcloud/spreed/pull/4726)
|
||||
- Fix "Copy link" not clickable when waiting alone in a call
|
||||
[#4687](https://github.com/nextcloud/spreed/pull/4687)
|
||||
- Fix some Matterbridge integrations
|
||||
[#4729](https://github.com/nextcloud/spreed/pull/4729)
|
||||
[#4799](https://github.com/nextcloud/spreed/pull/4799)
|
||||
- Use proc_open to run system commands in bridge manager
|
||||
[#4775](https://github.com/nextcloud/spreed/pull/4775)
|
||||
- Only show password request button when the share actually has Talk Verification enabled
|
||||
[#4794](https://github.com/nextcloud/spreed/pull/4794)
|
||||
|
||||
## 10.0.4 – 2020-12-18
|
||||
### Fixed
|
||||
- Fix potentially multiple guests joining in a password request conversation
|
||||
[#4798](https://github.com/nextcloud/spreed/pull/4798)
|
||||
- Prevent issues with UTF8 multibyte chars in the changelog conversation
|
||||
[#4734](https://github.com/nextcloud/spreed/pull/4734)
|
||||
- Fix Chromium performance hit in calls due to blur filter
|
||||
[#4780](https://github.com/nextcloud/spreed/pull/4780)
|
||||
- Stop sending the nick through data channels after some time
|
||||
[#4649](https://github.com/nextcloud/spreed/pull/4649)
|
||||
- Fix "Copy link" not clickable when waiting alone in a call
|
||||
[#4687](https://github.com/nextcloud/spreed/pull/4687)
|
||||
- Fix some Matterbridge integrations
|
||||
[#4728](https://github.com/nextcloud/spreed/pull/4728)
|
||||
[#4800](https://github.com/nextcloud/spreed/pull/4800)
|
||||
- Use proc_open to run system commands in bridge manager
|
||||
[#4774](https://github.com/nextcloud/spreed/pull/4774)
|
||||
- Only show password request button when the share actually has Talk Verification enabled
|
||||
[#4795](https://github.com/nextcloud/spreed/pull/4795)
|
||||
|
||||
## 10.0.3 – 2020-11-18
|
||||
### Fixed
|
||||
- Fix conversation URL change detection
|
||||
[#4642](https://github.com/nextcloud/spreed/pull/4642)
|
||||
- Fix missing call icon in participant list
|
||||
[#4637](https://github.com/nextcloud/spreed/pull/4637)
|
||||
|
||||
## 10.0.2 – 2020-11-17
|
||||
### Fixed
|
||||
- Reduce performance impact caused by the existence of the emoji picker
|
||||
[#4514](https://github.com/nextcloud/spreed/pull/4514)
|
||||
- Reduce the load when mounting many shares
|
||||
[#4509](https://github.com/nextcloud/spreed/pull/4509)
|
||||
- Fix handling of unavailable commands
|
||||
[#4577](https://github.com/nextcloud/spreed/pull/4577)
|
||||
- Don't leave conversation on URL hash change e.g. from search
|
||||
[#4596](https://github.com/nextcloud/spreed/pull/4596)
|
||||
- Correctly delete a conversation when the last moderator leaves
|
||||
[#4498](https://github.com/nextcloud/spreed/pull/4498)
|
||||
|
||||
## 10.0.1 – 2020-10-23
|
||||
### Fixed
|
||||
- Fix automated scrolling behaviour which sometimes jumped into the middle of the message list
|
||||
[#4417](https://github.com/nextcloud/spreed/pull/4417)
|
||||
- Remove pulse animation from call button to reduce CPU load in chrome-based browsers
|
||||
[#4301](https://github.com/nextcloud/spreed/pull/4301)
|
||||
- Only show the "Session conflict" dialog when in a call
|
||||
[#4442](https://github.com/nextcloud/spreed/pull/4442)
|
||||
- Fix minimum length calculation of the call token
|
||||
[#4369](https://github.com/nextcloud/spreed/pull/4369)
|
||||
- Fix duplicate session issue in files sidebar
|
||||
[#4426](https://github.com/nextcloud/spreed/pull/4426)
|
||||
- Lobby date not shown in the moderator menu
|
||||
[#4322](https://github.com/nextcloud/spreed/pull/4322)
|
||||
- Don't load the session information in rooms with more than 100 participants
|
||||
[#4278](https://github.com/nextcloud/spreed/pull/4278)
|
||||
- Improve setting the initial status of audio/video when the high-performance backend is used
|
||||
[#4375](https://github.com/nextcloud/spreed/pull/4375)
|
||||
- Fix syntax to check for matterbridge processes to work on more systems
|
||||
[#4415](https://github.com/nextcloud/spreed/pull/4415)
|
||||
- Don't render an additional video when selecting the already promoted video
|
||||
[#4419](https://github.com/nextcloud/spreed/pull/4419)
|
||||
|
||||
## 10.0.0 – 2020-10-02
|
||||
### Added
|
||||
- Implement unified search for messages
|
||||
[#4017](https://github.com/nextcloud/spreed/pull/4017)
|
||||
- Support for user status
|
||||
[#3993](https://github.com/nextcloud/spreed/pull/3993)
|
||||
- Moderators can now mute all participants with one click in the moderator menu
|
||||
[#4052](https://github.com/nextcloud/spreed/pull/4052)
|
||||
- Allow changing the camera and microphone during a call
|
||||
[#4023](https://github.com/nextcloud/spreed/pull/4023)
|
||||
- Show upload progress and a preview when sharing a file into the chat
|
||||
[#3988](https://github.com/nextcloud/spreed/pull/3988)
|
||||
- Add a dashboard widget with unread mentions and active calls
|
||||
[#3890](https://github.com/nextcloud/spreed/pull/3890)
|
||||
- Add an emoji picker to the chat
|
||||
[#3994](https://github.com/nextcloud/spreed/pull/3994)
|
||||
- Hosted high-performance backend trial option in the admin settings
|
||||
[#3620](https://github.com/nextcloud/spreed/pull/3620)
|
||||
- Remember the selected camera and microphone for future visits
|
||||
[#4224](https://github.com/nextcloud/spreed/pull/4224)
|
||||
- Keyboard navigation for conversation search
|
||||
[#3955](https://github.com/nextcloud/spreed/pull/3955)
|
||||
- Show keyboard shortcuts in the settings
|
||||
[#4089](https://github.com/nextcloud/spreed/pull/4089)
|
||||
- 🚧 TechPreview: Matterbridge integration
|
||||
[#4010](https://github.com/nextcloud/spreed/pull/4010)
|
||||
- Compatibility with Nextcloud 20
|
||||
|
||||
### Changed
|
||||
- Online users are now sorted above offline moderators in the participant list, because we think it's more important what you do than who you are
|
||||
[#4211](https://github.com/nextcloud/spreed/pull/4211)
|
||||
- Allow to select your own video in the speaker view
|
||||
[#3814](https://github.com/nextcloud/spreed/pull/3814)
|
||||
|
||||
### Fixed
|
||||
- "Talk to …" button in avatar only works on first use
|
||||
[#4194](https://github.com/nextcloud/spreed/pull/4194)
|
||||
- Reduce the load of various requests
|
||||
[#4205](https://github.com/nextcloud/spreed/pull/4205)
|
||||
[#4204](https://github.com/nextcloud/spreed/pull/4204)
|
||||
[#4201](https://github.com/nextcloud/spreed/pull/4201)
|
||||
[#4152](https://github.com/nextcloud/spreed/pull/4152)
|
||||
- Fix clientside memory leaks due to missing unsubscribe of events when destroying interface components
|
||||
[#4139](https://github.com/nextcloud/spreed/pull/4139)
|
||||
[#4140](https://github.com/nextcloud/spreed/pull/4140)
|
||||
[#4154](https://github.com/nextcloud/spreed/pull/4154)
|
||||
[#4155](https://github.com/nextcloud/spreed/pull/4155)
|
||||
- Installation on Oracle fails
|
||||
[#4127](https://github.com/nextcloud/spreed/pull/4127)
|
||||
- Try to be more safe again errors when trying to get the Talk folder for attachments
|
||||
[#4165](https://github.com/nextcloud/spreed/pull/4165)
|
||||
- Remove old "hark" data channel
|
||||
[#4068](https://github.com/nextcloud/spreed/pull/4068)
|
||||
- Show other participants video when they share their screen
|
||||
[#4082](https://github.com/nextcloud/spreed/pull/4082)
|
||||
- Scroll to the original message when clicking on a quota
|
||||
[#4037](https://github.com/nextcloud/spreed/pull/4037)
|
||||
- Fix transparency issue with the avatar menu in the participant list
|
||||
[#3958](https://github.com/nextcloud/spreed/pull/3958)
|
||||
- Prevent infinite loop in datachannel open re-transmission
|
||||
[#3882](https://github.com/nextcloud/spreed/pull/3882)
|
||||
|
||||
@@ -0,0 +1,365 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 11.3.6 – 2022-03-17
|
||||
### Fixed
|
||||
- Fix several modals, dialogs and popovers in fullscreen mode
|
||||
[#6886](https://github.com/nextcloud/spreed/pull/6886)
|
||||
- Fix mentions inside brackets
|
||||
[#6871](https://github.com/nextcloud/spreed/pull/6871)
|
||||
|
||||
## 11.3.5 – 2022-01-24
|
||||
### Fixed
|
||||
- Allow joining open conversations which are also shared as link with a password
|
||||
[#6711](https://github.com/nextcloud/spreed/pull/6711)
|
||||
- Don't force a signaling mode when starting/ending the HPB trial
|
||||
[#6824](https://github.com/nextcloud/spreed/pull/6824)
|
||||
- Add conversation token and message id to search results
|
||||
[#6747](https://github.com/nextcloud/spreed/pull/6747)
|
||||
|
||||
## 11.3.4 – 2021-12-07
|
||||
### Changed
|
||||
- Remove Plan-B option from the HPB integration
|
||||
[#6449](https://github.com/nextcloud/spreed/pull/6449)
|
||||
- Allow apps to override/modify the TURN server list
|
||||
[#6430](https://github.com/nextcloud/spreed/pull/6430)
|
||||
|
||||
### Fixed
|
||||
- Properly allow sha256 checksums for reference ids as advertised
|
||||
[#6529](https://github.com/nextcloud/spreed/pull/6529)
|
||||
- Limit deck integration to the current instance for now
|
||||
[#6414](https://github.com/nextcloud/spreed/pull/6414)
|
||||
|
||||
## 11.3.3 – 2021-10-22
|
||||
### Fixed
|
||||
- Fix crash of Chrome/Chromium 95
|
||||
[#6384](https://github.com/nextcloud/spreed/pull/6384)
|
||||
|
||||
## 11.3.2 – 2021-09-17
|
||||
### Fixed
|
||||
- Fix logged-in users are unable to join a password protected public conversation
|
||||
[#6231](https://github.com/nextcloud/spreed/pull/6231)
|
||||
- Don't toggle the video on/off when pasting files into the chat and first releasing the CTRL key
|
||||
[#6200](https://github.com/nextcloud/spreed/pull/6200)
|
||||
- Fix infinite loop when the media constraints can not be decreased
|
||||
[#6127](https://github.com/nextcloud/spreed/pull/6127)
|
||||
- Fix connection quality warning not disappearing when media is stopped
|
||||
[#6148](https://github.com/nextcloud/spreed/pull/6148)
|
||||
- Send offer again when own peer was not initially connected
|
||||
[#6081](https://github.com/nextcloud/spreed/pull/6081)
|
||||
- Don't refresh the room when the participant list changes
|
||||
[#5786](https://github.com/nextcloud/spreed/pull/5786)
|
||||
|
||||
## 11.3.1 – 2021-07-15
|
||||
### Fixed
|
||||
- Add UI feedback when local participant is not connected
|
||||
[#5797](https://github.com/nextcloud/spreed/pull/5797)
|
||||
- Allow to open files with ctrl click
|
||||
[#5761](https://github.com/nextcloud/spreed/pull/5761)
|
||||
- Prevent submitting the message when the user is composing a character
|
||||
[#5941](https://github.com/nextcloud/spreed/pull/5941)
|
||||
- Fix connection quality warning shown due to stalled stats
|
||||
[#5924](https://github.com/nextcloud/spreed/pull/5924)
|
||||
- Fix connection quality stats not reset when setting a new peer connection
|
||||
[#5768](https://github.com/nextcloud/spreed/pull/5768)
|
||||
- Ignore current participant when listing rooms if removed concurrently
|
||||
[#5758](https://github.com/nextcloud/spreed/pull/5758)
|
||||
[#5740](https://github.com/nextcloud/spreed/pull/5740)
|
||||
- Fix links to documentation
|
||||
[#5947](https://github.com/nextcloud/spreed/pull/5947)
|
||||
|
||||
## 11.3.0 – 2021-06-04
|
||||
### Fixed
|
||||
- Inject the preloaded user status into the avatar component
|
||||
[#5694](https://github.com/nextcloud/spreed/pull/5694)
|
||||
- Fix switching devices in Firefox
|
||||
[#5580](https://github.com/nextcloud/spreed/pull/5580)
|
||||
- Fix switching devices during a call if started without audio nor video
|
||||
[#5662](https://github.com/nextcloud/spreed/pull/5662)
|
||||
- Redirect to not-found page while in a call
|
||||
[#5601](https://github.com/nextcloud/spreed/pull/5601)
|
||||
- Regenerate session id after entering conversation password
|
||||
[#5638](https://github.com/nextcloud/spreed/pull/5638)
|
||||
- Fix a problem when a deleted user is recreated again
|
||||
[#5643](https://github.com/nextcloud/spreed/pull/5643)
|
||||
- Encode dav path segments for direct GIF preview
|
||||
[#5674](https://github.com/nextcloud/spreed/pull/5674)
|
||||
- Fix raised hand handler not detached when a participant leaves
|
||||
[#5676](https://github.com/nextcloud/spreed/pull/5676)
|
||||
- Register flow operation via dedicated instead of legacy event
|
||||
[#5650](https://github.com/nextcloud/spreed/pull/5650)
|
||||
|
||||
## 11.2.2 – 2021-06-04
|
||||
### Fixed
|
||||
- Regenerate session id after entering conversation password
|
||||
[#5639](https://github.com/nextcloud/spreed/pull/5639)
|
||||
- Fix a problem when a deleted user is recreated again
|
||||
[#5644](https://github.com/nextcloud/spreed/pull/5644)
|
||||
- Encode dav path segments for direct GIF preview
|
||||
[#5692](https://github.com/nextcloud/spreed/pull/5692)
|
||||
- Fix raised hand handler not detached when a participant leaves
|
||||
[#5677](https://github.com/nextcloud/spreed/pull/5677)
|
||||
- Register flow operation via dedicated instead of legacy event
|
||||
[#5651](https://github.com/nextcloud/spreed/pull/5651)
|
||||
|
||||
## 11.2.1 – 2021-05-06
|
||||
### Fixed
|
||||
- Fix redirect when deleting the current conversation
|
||||
[#5315](https://github.com/nextcloud/spreed/pull/5315)
|
||||
- Reset the page title when the conversation is not found
|
||||
[#5493](https://github.com/nextcloud/spreed/pull/5493)
|
||||
- Fix quality warning appearing again in certain conditions
|
||||
[#5552](https://github.com/nextcloud/spreed/pull/5552)
|
||||
- Fix camera quality starting bad in some cases
|
||||
[#5556](https://github.com/nextcloud/spreed/pull/5556)
|
||||
- Allow to copy the link of open conversations which the user didn't join
|
||||
[#5562](https://github.com/nextcloud/spreed/pull/5562)
|
||||
- Fix search focus when typing in the conversation search
|
||||
[#5566](https://github.com/nextcloud/spreed/pull/5566)
|
||||
- Fix sorting of users which set their user status to offline
|
||||
[#5569](https://github.com/nextcloud/spreed/pull/5569)
|
||||
|
||||
## 11.2.0 – 2021-04-12
|
||||
### Added
|
||||
- Added a temporary OCS Api for clients to upload avatars
|
||||
[#5401](https://github.com/nextcloud/spreed/pull/5401)
|
||||
|
||||
### Changed
|
||||
- Direct reply button in message row
|
||||
[#5361](https://github.com/nextcloud/spreed/pull/5361)
|
||||
|
||||
### Fixed
|
||||
- Show error notification also when hello signaling message fails
|
||||
[#5344](https://github.com/nextcloud/spreed/pull/5344)
|
||||
- Fix UI feedback when remote participants lose connection
|
||||
[#5345](https://github.com/nextcloud/spreed/pull/5345)
|
||||
- Handle failed server requests more gracefully
|
||||
[#5455](https://github.com/nextcloud/spreed/pull/5455)
|
||||
|
||||
- Only use the local file as preview for some types when uploading
|
||||
[#5423](https://github.com/nextcloud/spreed/pull/5423)
|
||||
- Fix an issue with the migration to the new attendees table
|
||||
[#5427](https://github.com/nextcloud/spreed/pull/5427)
|
||||
- Fix the background job checking the schema
|
||||
[#5374](https://github.com/nextcloud/spreed/pull/5374)
|
||||
- Fix a bug with the raised hand of users that disconnect
|
||||
[#5418](https://github.com/nextcloud/spreed/pull/5418)
|
||||
|
||||
## 11.1.2 – 2021-04-12
|
||||
### Fixed
|
||||
- Only use the local file as preview for some types when uploading
|
||||
[#5424](https://github.com/nextcloud/spreed/pull/5424)
|
||||
- Fix an issue with the migration to the new attendees table
|
||||
[#5428](https://github.com/nextcloud/spreed/pull/5428)
|
||||
- Fix the background job checking the schema
|
||||
[#5373](https://github.com/nextcloud/spreed/pull/5373)
|
||||
- Fix a bug with the raised hand of users that disconnect
|
||||
[#5419](https://github.com/nextcloud/spreed/pull/5419)
|
||||
|
||||
## 11.1.1 – 2021-03-04
|
||||
### Fixed
|
||||
- Fixed a bug in the migration that could prevent copying all participants to the attendee table
|
||||
[#5244](https://github.com/nextcloud/spreed/pull/5244)
|
||||
|
||||
## 11.1.0 – 2021-02-23
|
||||
### Added
|
||||
- Integrate with Deck to allow posting Deck cards to Talk conversations
|
||||
[#5201](https://github.com/nextcloud/spreed/pull/5201)
|
||||
[#5202](https://github.com/nextcloud/spreed/pull/5202)
|
||||
[#5203](https://github.com/nextcloud/spreed/pull/5203)
|
||||
- Allow other apps to register message actions, e.g. Deck can create a Deck card out of a chat message
|
||||
[#5204](https://github.com/nextcloud/spreed/pull/5204)
|
||||
- Allow to delete chat messages
|
||||
[#5205](https://github.com/nextcloud/spreed/pull/5205)
|
||||
[#5206](https://github.com/nextcloud/spreed/pull/5206)
|
||||
- Add information about callFlags of a conversation to the API so mobile clients can show if it's a audio or video call
|
||||
[#5208](https://github.com/nextcloud/spreed/pull/5208)
|
||||
|
||||
### Fixed
|
||||
- Prevent loading old messages twice on scroll which could skip some messages
|
||||
[#5209](https://github.com/nextcloud/spreed/pull/5209)
|
||||
|
||||
## 11.0.0 – 2021-02-22
|
||||
### Added
|
||||
- Implement read status for messages including a privacy setting
|
||||
[#4231](https://github.com/nextcloud/spreed/pull/4231)
|
||||
- Allow moderators to "open" conversations so users can join themselves
|
||||
[#4706](https://github.com/nextcloud/spreed/pull/4706)
|
||||
- Add conversation descriptions
|
||||
[#4546](https://github.com/nextcloud/spreed/pull/4546)
|
||||
- Allow pagination for main grid view
|
||||
[#4958](https://github.com/nextcloud/spreed/pull/4958)
|
||||
- Allow to send messages again when they failed
|
||||
[#4975](https://github.com/nextcloud/spreed/pull/4975)
|
||||
- You can now push to talk/mute with the space key
|
||||
[#4328](https://github.com/nextcloud/spreed/pull/4328)
|
||||
- Added support for turns:// protocol
|
||||
[#5087](https://github.com/nextcloud/spreed/pull/5087)
|
||||
- Add basic support for Opera
|
||||
[#4974](https://github.com/nextcloud/spreed/pull/4974)
|
||||
- Allow resending email invitations
|
||||
[#5052](https://github.com/nextcloud/spreed/pull/5052)
|
||||
- Allow to collapse the video strip to focus more on the promoted speaker or screenshare
|
||||
[#4363](https://github.com/nextcloud/spreed/pull/4363)
|
||||
- Improve previews of images and allow animation of gifs
|
||||
[#4472](https://github.com/nextcloud/spreed/pull/4472)
|
||||
- Allow to "Raise hand" in a call
|
||||
[#4569](https://github.com/nextcloud/spreed/pull/4569)
|
||||
- Compatibility with Nextcloud 21
|
||||
|
||||
### Changed
|
||||
- Bring up the conversation creation-dialog when clicking on a group to prevent accidentally spam
|
||||
[#5062](https://github.com/nextcloud/spreed/pull/5062)
|
||||
- Use different border color when own message is quoted
|
||||
[#4940](https://github.com/nextcloud/spreed/pull/4940)
|
||||
- Move matterbridge settings into the conversation settings dialog
|
||||
[#4907](https://github.com/nextcloud/spreed/pull/4907)
|
||||
- Updated database structure so all tables have a primary key for database cluster support
|
||||
[#4735](https://github.com/nextcloud/spreed/pull/4735)
|
||||
|
||||
### Fixed
|
||||
- For more details look at the changelog of the alphas and the rc
|
||||
|
||||
## 11.0.0-rc.1 – 2021-02-12
|
||||
### Added
|
||||
- Allow resending email invitations
|
||||
[#5052](https://github.com/nextcloud/spreed/pull/5052)
|
||||
- Added support for turns:// protocol
|
||||
[#5087](https://github.com/nextcloud/spreed/pull/5087)
|
||||
|
||||
### Changed
|
||||
- Bring up the conversation creation-dialog when clicking on a group to prevent accidentally spam
|
||||
[#5062](https://github.com/nextcloud/spreed/pull/5062)
|
||||
|
||||
### Fixed
|
||||
- Fixed a bug that would prevent attachments going into the Talk/ folder
|
||||
[#5077](https://github.com/nextcloud/spreed/pull/5077)
|
||||
- Split the turn test to report whether UDP and/or TCP work
|
||||
[#5104](https://github.com/nextcloud/spreed/pull/5104)
|
||||
- Fix collaboration resource options not loading
|
||||
[#5140](https://github.com/nextcloud/spreed/pull/5140)
|
||||
- Hide the upload option when the user has no quota assigned
|
||||
[#5036](https://github.com/nextcloud/spreed/pull/5036)
|
||||
- Fix mentioning of users with subnames, e.g. "foo" and "foobar"
|
||||
[#5041](https://github.com/nextcloud/spreed/pull/5041)
|
||||
- Fix capabilities check for image preview size
|
||||
[#5033](https://github.com/nextcloud/spreed/pull/5033)
|
||||
- Prevent duplicated call summaries when multiple people leave a call on the HPB within a short time period
|
||||
[#5042](https://github.com/nextcloud/spreed/pull/5042)
|
||||
|
||||
## 11.0.0-alpha.4 – 2021-01-25
|
||||
### Added
|
||||
- Allow pagination for main grid view
|
||||
[#4958](https://github.com/nextcloud/spreed/pull/4958)
|
||||
- Allow line breaks and links in the descriptions
|
||||
[#4960](https://github.com/nextcloud/spreed/pull/4960)
|
||||
- Allow to send messages again when they failed
|
||||
[#4975](https://github.com/nextcloud/spreed/pull/4975)
|
||||
- Add a button to directly disable the lobby
|
||||
[#4997](https://github.com/nextcloud/spreed/pull/4997)
|
||||
- Add basic support for Opera
|
||||
[#4974](https://github.com/nextcloud/spreed/pull/4974)
|
||||
|
||||
### Changed
|
||||
- The avatar-blurring in calls has been replaced with the average color to improve performance on Chrome, Chromium, Safari, Edge and Opera
|
||||
[#4985](https://github.com/nextcloud/spreed/pull/4985)
|
||||
- User different border color when own message is quoted
|
||||
[#4940](https://github.com/nextcloud/spreed/pull/4940)
|
||||
- Move matterbridge settings into the conversation settings dialog
|
||||
[#4907](https://github.com/nextcloud/spreed/pull/4907)
|
||||
|
||||
### Fixed
|
||||
- Fix Javascript errors with Internet Explorer and Safari
|
||||
[#4829](https://github.com/nextcloud/spreed/pull/4829)
|
||||
[#4963](https://github.com/nextcloud/spreed/pull/4963)
|
||||
[#5008](https://github.com/nextcloud/spreed/pull/5008)
|
||||
- Show unread one-to-one messages in dashboard widget
|
||||
[#4944](https://github.com/nextcloud/spreed/pull/4944)
|
||||
- Allow to clear the lobby timer value again
|
||||
[#4990](https://github.com/nextcloud/spreed/pull/4990)
|
||||
- Show single video in stripe if screen share in progress
|
||||
[#4941](https://github.com/nextcloud/spreed/pull/4941)
|
||||
- Properly initialize descriptionText with description
|
||||
[#4942](https://github.com/nextcloud/spreed/pull/4942)
|
||||
- Remove system message when a self-joined user leaves a conversation
|
||||
[#4933](https://github.com/nextcloud/spreed/pull/4933)
|
||||
- Fix scrolling of the chat when messages arrive while in background
|
||||
[#4979](https://github.com/nextcloud/spreed/pull/4979)
|
||||
- Fix a bug that prevented disabling sip
|
||||
[#4951](https://github.com/nextcloud/spreed/pull/4951)
|
||||
- Allow SIP dial-in in non-public conversations
|
||||
[#4954](https://github.com/nextcloud/spreed/pull/4954)
|
||||
- Correctly use the displayname for groups in admin settings
|
||||
[#4943](https://github.com/nextcloud/spreed/pull/4943)
|
||||
- Delete messages from UI storage when a conversation is deleted
|
||||
[#4949](https://github.com/nextcloud/spreed/pull/4949)
|
||||
- Add mapping between Nextcloud session id and signaling server session id, to allow linking call users with the rest of the UI
|
||||
[#4952](https://github.com/nextcloud/spreed/pull/4952)
|
||||
- Fix missing display names with sip users
|
||||
[#4956](https://github.com/nextcloud/spreed/pull/4956)
|
||||
|
||||
## 11.0.0-alpha.3 – 2021-01-08
|
||||
### Fixed
|
||||
- Fix chat notifications not being sent when user is not active in a chat
|
||||
[#4825](https://github.com/nextcloud/spreed/pull/4825)
|
||||
[#4848](https://github.com/nextcloud/spreed/pull/4848)
|
||||
- Fix CSP violation in Safari with worker-src from avatar blurring
|
||||
[#4822](https://github.com/nextcloud/spreed/pull/4822)
|
||||
- Don't remove a chat when a self-joined user leaves
|
||||
[#4892](https://github.com/nextcloud/spreed/pull/4892)
|
||||
- Avoid double quotes in bridge bot app password
|
||||
[#4905](https://github.com/nextcloud/spreed/pull/4905)
|
||||
- Only scroll to conversations when clicking on search results
|
||||
[#4905](https://github.com/nextcloud/spreed/pull/4905)
|
||||
- Do not load full room object for share queries to save resources on propfinds
|
||||
[#4856](https://github.com/nextcloud/spreed/pull/4856)
|
||||
|
||||
## 11.0.0-alpha.2 – 2020-12-18
|
||||
### Added
|
||||
- Implement read status for messages including a privacy setting
|
||||
[#4231](https://github.com/nextcloud/spreed/pull/4231)
|
||||
- Implement multiple requirements to prepare for SIP dial-in
|
||||
[#4324](https://github.com/nextcloud/spreed/pull/4324)
|
||||
[#4469](https://github.com/nextcloud/spreed/pull/4496)
|
||||
[#4682](https://github.com/nextcloud/spreed/pull/4682)
|
||||
[#4689](https://github.com/nextcloud/spreed/pull/4689)
|
||||
- Allow moderators to make conversations "listable" so users can join themselves
|
||||
[#4706](https://github.com/nextcloud/spreed/pull/4706)
|
||||
- Add the possibility for conversation descriptions
|
||||
[#4546](https://github.com/nextcloud/spreed/pull/4546)
|
||||
- You can now push to talk/mute with the space key
|
||||
[#4328](https://github.com/nextcloud/spreed/pull/4328)
|
||||
- Conversations can now be locked in the moderator settings preventing further chat messages and calls
|
||||
[#4331](https://github.com/nextcloud/spreed/pull/4331)
|
||||
- Allow to collapse the video strip to focus more on the promoted speaker or screenshare
|
||||
[#4363](https://github.com/nextcloud/spreed/pull/4363)
|
||||
- Improve previews of images and allow animation of gifs
|
||||
[#4472](https://github.com/nextcloud/spreed/pull/4472)
|
||||
- Allow to "Raise hand" in a call
|
||||
[#4569](https://github.com/nextcloud/spreed/pull/4569)
|
||||
- Compatibility with Nextcloud 21
|
||||
|
||||
### Changed
|
||||
- Improve setting initial audio and video status when the HPB is used
|
||||
[#4181](https://github.com/nextcloud/spreed/pull/4181)
|
||||
- Remember the Grid view/Promoted speaker selection per conversation in the browser storage and when a screenshare is stopped
|
||||
[#4451](https://github.com/nextcloud/spreed/pull/4451)
|
||||
- Use the new Vue settings modal for user and conversation settings
|
||||
[#4195](https://github.com/nextcloud/spreed/pull/4195)
|
||||
- Updated database structure so all tables have a primary key for database cluster support
|
||||
[#4735](https://github.com/nextcloud/spreed/pull/4735)
|
||||
|
||||
### Fixed
|
||||
- Diff against alpha.1: Revert update of @babel/preset-env which breaks the compiled JS
|
||||
[#4808](https://github.com/nextcloud/spreed/pull/4808)
|
||||
- Stop sending the nick through data channels after some time
|
||||
[#4182](https://github.com/nextcloud/spreed/pull/4182)
|
||||
- Don't query guest names for an empty list of guest sessions
|
||||
[#4190](https://github.com/nextcloud/spreed/pull/4190)
|
||||
- Use date-based names for image content that is pasted into the chat
|
||||
[#4539](https://github.com/nextcloud/spreed/pull/4539)
|
||||
|
||||
@@ -0,0 +1,233 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 12.2.8 – 2022-11-03
|
||||
### Fixed
|
||||
- Fix participant sessions not sent to the HPB
|
||||
[#8114](https://github.com/nextcloud/spreed/pull/8114)
|
||||
- Fix guest names in search results
|
||||
[#7591](https://github.com/nextcloud/spreed/pull/7591)
|
||||
- Fix an issue with detecting Safari on iOS version
|
||||
[#8277](https://github.com/nextcloud/spreed/pull/8277)
|
||||
|
||||
## 12.2.7 – 2022-07-08
|
||||
### Added
|
||||
- Add brute force protection for conversation tokens and passwords
|
||||
[#7537](https://github.com/nextcloud/spreed/pull/7537)
|
||||
- Add a capability for unified search to enable the feature on the clients
|
||||
[#7450](https://github.com/nextcloud/spreed/pull/7450)
|
||||
|
||||
### Fixed
|
||||
- Fix backend URL in request to HPB from command line
|
||||
[#7442](https://github.com/nextcloud/spreed/pull/7442)
|
||||
- Fix error when setting user status while not being in any conversation
|
||||
[#7468](https://github.com/nextcloud/spreed/pull/7468)
|
||||
|
||||
## 12.2.6 – 2022-05-26
|
||||
### Fixed
|
||||
- Ensure display name of conversation owner is stored correctly
|
||||
[#7378](https://github.com/nextcloud/spreed/pull/7378)
|
||||
- Don't show promotion options for circles and groups
|
||||
[#7406](https://github.com/nextcloud/spreed/pull/7406)
|
||||
|
||||
## 12.2.5 – 2022-04-08
|
||||
### Fixed
|
||||
- Compatibility with LDAP user backends and more than 64 characters display names
|
||||
[#7074](https://github.com/nextcloud/spreed/pull/7074)
|
||||
- Compatibility with Oracle and MySQL ONLY_FULL_GROUP_BY
|
||||
[#7040](https://github.com/nextcloud/spreed/pull/7040)
|
||||
|
||||
## 12.2.4 – 2022-03-17
|
||||
### Fixed
|
||||
- Fix several modals, dialogs and popovers in fullscreen mode
|
||||
[#6884](https://github.com/nextcloud/spreed/pull/6884)
|
||||
- Fix mentions inside brackets
|
||||
[#6870](https://github.com/nextcloud/spreed/pull/6870)
|
||||
- Fix call flags update when track is disabled
|
||||
[#7015](https://github.com/nextcloud/spreed/pull/7015)
|
||||
|
||||
## 12.2.3 – 2022-01-24
|
||||
### Fixed
|
||||
- Allow joining open conversations which are also shared as link with a password
|
||||
[#6710](https://github.com/nextcloud/spreed/pull/6710)
|
||||
- Prevent handleScroll on initial loading of a conversation
|
||||
[#6718](https://github.com/nextcloud/spreed/pull/6718)
|
||||
- Don't force a signaling mode when starting/ending the HPB trial
|
||||
[#6823](https://github.com/nextcloud/spreed/pull/6823)
|
||||
- Add conversation token and message id to search results
|
||||
[#6746](https://github.com/nextcloud/spreed/pull/6746)
|
||||
|
||||
## 12.2.2 – 2021-12-07
|
||||
### Changed
|
||||
- Show user status and message as description in 1-to-1 conversations
|
||||
[#6369](https://github.com/nextcloud/spreed/pull/6369)
|
||||
- Allow apps to override/modify the TURN server list
|
||||
[#6428](https://github.com/nextcloud/spreed/pull/6428)
|
||||
|
||||
### Fixed
|
||||
- Fix connection analyzer when using simulcast with Chromium
|
||||
[#6530](https://github.com/nextcloud/spreed/pull/6530)
|
||||
- Properly allow sha256 checksums for reference ids as advertised
|
||||
[#6406](https://github.com/nextcloud/spreed/pull/6406)
|
||||
- Fix forwarding object shares to other conversations
|
||||
[#6398](https://github.com/nextcloud/spreed/pull/6398)
|
||||
- Fix invisible emoji picker on Safari
|
||||
[#6352](https://github.com/nextcloud/spreed/pull/6352)
|
||||
- Limit deck integration to the current instance for now
|
||||
[#6412](https://github.com/nextcloud/spreed/pull/6412)
|
||||
|
||||
## 12.2.1 – 2021-10-15
|
||||
### Changed
|
||||
- Simplify sidebar in one-to-one conversations
|
||||
[#6275](https://github.com/nextcloud/spreed/pull/6275)
|
||||
|
||||
### Fixed
|
||||
- Reuse participant information when rendering peers in a call
|
||||
[#6344](https://github.com/nextcloud/spreed/pull/6344)
|
||||
- Ignore sessions with timeouted ping when sending notifications
|
||||
[#6329](https://github.com/nextcloud/spreed/pull/6329)
|
||||
- Fix errors with the speaking events
|
||||
[#6298](https://github.com/nextcloud/spreed/pull/6298)
|
||||
- Don't fail hard when adding a participant in parallel
|
||||
[#6264](https://github.com/nextcloud/spreed/pull/6264)
|
||||
- Fix invisible emoji picker in Safari
|
||||
[#6351](https://github.com/nextcloud/spreed/pull/6351)
|
||||
|
||||
## 12.2.0 – 2021-09-17
|
||||
### Added
|
||||
- Add "Create conversation" button on first page of dialog when creating a public conversation
|
||||
[#6206](https://github.com/nextcloud/spreed/pull/6206)
|
||||
|
||||
### Fixed
|
||||
- Add some validation for shared geo-locations
|
||||
[#6242](https://github.com/nextcloud/spreed/pull/6242)
|
||||
- Move unreadMessageElement from computed to a method
|
||||
[#6241](https://github.com/nextcloud/spreed/pull/6241)
|
||||
- Fix logged-in users are unable to join a password protected public conversation
|
||||
[#6230](https://github.com/nextcloud/spreed/pull/6230)
|
||||
- Don't toggle the video on/off when pasting files into the chat and first releasing the CTRL key
|
||||
[#6198](https://github.com/nextcloud/spreed/pull/6198)
|
||||
- Disable recording voice messages on readonly conversations
|
||||
[#6182](https://github.com/nextcloud/spreed/pull/6182)
|
||||
|
||||
## 12.1.2 – 2021-09-17
|
||||
### Fixed
|
||||
- Add some validation for shared geo-locations
|
||||
[#6243](https://github.com/nextcloud/spreed/pull/6243)
|
||||
- Fix logged-in users are unable to join a password protected public conversation
|
||||
[#6229](https://github.com/nextcloud/spreed/pull/6229)
|
||||
- Don't toggle the video on/off when pasting files into the chat and first releasing the CTRL key
|
||||
[#6199](https://github.com/nextcloud/spreed/pull/6199)
|
||||
- Fix blocked audio recording preview when Talk is embedded in the sidebar
|
||||
[#6130](https://github.com/nextcloud/spreed/pull/6130)
|
||||
- Fix infinite loop when the media constraints can not be decreased
|
||||
[#6126](https://github.com/nextcloud/spreed/pull/6126)
|
||||
- Fix connection quality warning not disappearing when media is stopped
|
||||
[#6146](https://github.com/nextcloud/spreed/pull/6146)
|
||||
- Send offer again when own peer was not initially connected
|
||||
[#6080](https://github.com/nextcloud/spreed/pull/6080)
|
||||
|
||||
## 12.1.1 – 2021-08-30
|
||||
### Changed
|
||||
- Improved device preference storing to better recover after switching between docking-station and normal usage with a device
|
||||
[#6179](https://github.com/nextcloud/spreed/pull/6179)
|
||||
|
||||
### Fixed
|
||||
- Fix laggy video with Full HD 60 FPS webcams in Chrome and Chromium
|
||||
[#6159](https://github.com/nextcloud/spreed/pull/6159)
|
||||
- Fix infinite loop when video constrains can not be satisfied
|
||||
[#6125](https://github.com/nextcloud/spreed/pull/6125)
|
||||
- Fix connection quality warning after media was stopped
|
||||
[#6147](https://github.com/nextcloud/spreed/pull/6147)
|
||||
- Hide forward action for guests
|
||||
[#6143](https://github.com/nextcloud/spreed/pull/6143)
|
||||
- Don't select the own video when trying to open the video settings
|
||||
[#6158](https://github.com/nextcloud/spreed/pull/6158)
|
||||
- Fix issues with several popovers in fullscreen mode or sidebar mode
|
||||
[#6155](https://github.com/nextcloud/spreed/pull/6155)
|
||||
- Fix issue with video recording in sidebar mode
|
||||
[#6129](https://github.com/nextcloud/spreed/pull/6129)
|
||||
[#6131](https://github.com/nextcloud/spreed/pull/6131)
|
||||
|
||||
## 12.1.0 – 2021-08-10
|
||||
### Added
|
||||
- Allow to forward messages to another chat
|
||||
[#6053](https://github.com/nextcloud/spreed/pull/6053)
|
||||
[#6057](https://github.com/nextcloud/spreed/pull/6057)
|
||||
[#6076](https://github.com/nextcloud/spreed/pull/6076)
|
||||
- Allow to clear chat history
|
||||
[#6052](https://github.com/nextcloud/spreed/pull/6052)
|
||||
[#5971](https://github.com/nextcloud/spreed/pull/5971)
|
||||
|
||||
### Changed
|
||||
- Add "missed call" chat system message for one-to-one calls
|
||||
[#6031](https://github.com/nextcloud/spreed/pull/6031)
|
||||
|
||||
### Fixed
|
||||
- Remove div tags when pasting or writing multiline messages in Safari
|
||||
[#6086](https://github.com/nextcloud/spreed/pull/6086)
|
||||
- Add list of "What's new in Talk 12"
|
||||
[#6050](https://github.com/nextcloud/spreed/pull/6050)
|
||||
|
||||
## 12.0.1 – 2021-07-15
|
||||
### Fixed
|
||||
- Unshare all items directly when deleting a room
|
||||
[#5975](https://github.com/nextcloud/spreed/pull/5975)
|
||||
- Fix date picker for lobby not being visible
|
||||
[#5984](https://github.com/nextcloud/spreed/pull/5984)
|
||||
- Fix initial camera quality with Chromium and Chromebased browsers
|
||||
[#6000](https://github.com/nextcloud/spreed/pull/6000)
|
||||
- Wait for the wav encoder to be initialized before allowing recordings
|
||||
[#6012](https://github.com/nextcloud/spreed/pull/6012)
|
||||
[#6014](https://github.com/nextcloud/spreed/pull/6014)
|
||||
- Fix displaying moderation options in one-to-ones
|
||||
[#6008](https://github.com/nextcloud/spreed/pull/6008)
|
||||
- Never show read marker on the very last message
|
||||
[#5969](https://github.com/nextcloud/spreed/pull/5969)
|
||||
|
||||
## 12.0.0 – 2021-07-06
|
||||
### Added
|
||||
- Add support for simulcast streams when the high-performance backend is used
|
||||
[#5535](https://github.com/nextcloud/spreed/pull/5535)
|
||||
- Allow users to have multiple session in the same conversation
|
||||
[#5194](https://github.com/nextcloud/spreed/pull/5194)
|
||||
- Voice messages, location sharing and contacts sharing
|
||||
[#5610](https://github.com/nextcloud/spreed/pull/5610)
|
||||
[#5573](https://github.com/nextcloud/spreed/pull/5573)
|
||||
[#5731](https://github.com/nextcloud/spreed/pull/5731)
|
||||
- Play a sound when a participant joins or leaves the call
|
||||
[#5410](https://github.com/nextcloud/spreed/pull/5410)
|
||||
- Add unread message marker in the chat view
|
||||
[#3825](https://github.com/nextcloud/spreed/pull/3825)
|
||||
- Show a "new message" indicator while being in the call
|
||||
[#5534](https://github.com/nextcloud/spreed/pull/5534)
|
||||
- Sync group members with conversation participants
|
||||
[#4810](https://github.com/nextcloud/spreed/pull/4810)
|
||||
- Add an option to reply privately
|
||||
[#4855](https://github.com/nextcloud/spreed/pull/4855)
|
||||
- Conversation TopBar with icon, name and description
|
||||
[#5596](https://github.com/nextcloud/spreed/pull/5596)
|
||||
|
||||
### Changed
|
||||
- Use all defined STUN and TURN servers instead of a random one
|
||||
[#5503](https://github.com/nextcloud/spreed/pull/5503)
|
||||
[#5491](https://github.com/nextcloud/spreed/pull/5491)
|
||||
- Compatibility with Nextcloud 22
|
||||
|
||||
### Fixed
|
||||
- Allow to mention groupfolder users in file chats
|
||||
[#4246](https://github.com/nextcloud/spreed/pull/4246)
|
||||
- Fix not sending signaling messages to participants without a Peer object
|
||||
[#4686](https://github.com/nextcloud/spreed/pull/4686)
|
||||
- Fix several issues with video, stream and screenshare selections
|
||||
|
||||
### Removed
|
||||
- 🏁 Conversations API v1, v2 and v3
|
||||
- 🏁 Call API v1, v2 and v3
|
||||
- 🏁 Signaling API v1 and v2
|
||||
- 🏁 Support for Internet Explorer
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 13.0.11 – 2022-12-01
|
||||
### Changed
|
||||
- Allow to disable the changelog conversation with an app config
|
||||
[#8366](https://github.com/nextcloud/spreed/pull/8366)
|
||||
|
||||
### Fixed
|
||||
- Fix bottom stripe of speaker view with high DPI
|
||||
[#8321](https://github.com/nextcloud/spreed/pull/8321)
|
||||
|
||||
## 13.0.10 – 2022-11-03
|
||||
### Changed
|
||||
- Take the device pixel ratio into account when calculating minimum grid size (should see more videos now on High DPI settings like MacOS and most 4k setup)
|
||||
[#8248](https://github.com/nextcloud/spreed/pull/8248)
|
||||
|
||||
### Fixed
|
||||
- Hide talk dashboard when user can not use the Talk app
|
||||
[#8238](https://github.com/nextcloud/spreed/pull/8238)
|
||||
- Hide talk sidebar integration when user can not use the Talk app
|
||||
[#8242](https://github.com/nextcloud/spreed/pull/8242)
|
||||
- Fix participant sessions not sent to the HPB
|
||||
[#8100](https://github.com/nextcloud/spreed/pull/8100)
|
||||
- Don't search in lobbied conversations
|
||||
[#8117](https://github.com/nextcloud/spreed/pull/8117)
|
||||
- Fix an issue with detecting Safari on iOS version
|
||||
[#8136](https://github.com/nextcloud/spreed/pull/8136)
|
||||
|
||||
## 13.0.9 – 2022-09-15
|
||||
### Fixed
|
||||
- Fix notification sending when the user is blocked by the lobby
|
||||
[#7796](https://github.com/nextcloud/spreed/pull/7796)
|
||||
- Fix missing local media controls in public share sidebar
|
||||
[#7759](https://github.com/nextcloud/spreed/pull/7759)
|
||||
- Fix missing screenshares in sidebar
|
||||
[#7763](https://github.com/nextcloud/spreed/pull/7763)
|
||||
- Fix inconsistent state when leaving a call fails
|
||||
[#7804](https://github.com/nextcloud/spreed/pull/7804)
|
||||
|
||||
## 13.0.8 – 2022-08-11
|
||||
### Added
|
||||
- Extend search result attributes for better handling in mobile clients
|
||||
[#7590](https://github.com/nextcloud/spreed/pull/7590)
|
||||
[#7589](https://github.com/nextcloud/spreed/pull/7589)
|
||||
|
||||
### Fixed
|
||||
- Reduce sent information with disabled videos
|
||||
[#7710](https://github.com/nextcloud/spreed/pull/7710)
|
||||
|
||||
## 13.0.7 – 2022-07-08
|
||||
### Added
|
||||
- Add brute force protection for conversation tokens and passwords
|
||||
[#7536](https://github.com/nextcloud/spreed/pull/7536)
|
||||
- Add a capability for unified search to enable the feature on the clients
|
||||
[#7449](https://github.com/nextcloud/spreed/pull/7449)
|
||||
|
||||
### Fixed
|
||||
- Fix backend URL in request to HPB from command line
|
||||
[#7441](https://github.com/nextcloud/spreed/pull/7441)
|
||||
- Fix error when setting user status while not being in any conversation
|
||||
[#7467](https://github.com/nextcloud/spreed/pull/7467)
|
||||
|
||||
## 13.0.6 – 2022-05-26
|
||||
### Fixed
|
||||
- Ensure display name of conversation owner is stored correctly
|
||||
[#7377](https://github.com/nextcloud/spreed/pull/7377)
|
||||
- Don't show promotion options for circles and groups
|
||||
[#7409](https://github.com/nextcloud/spreed/pull/7409)
|
||||
- Don't show permissions options for circles and groups
|
||||
[#7405](https://github.com/nextcloud/spreed/pull/7405)
|
||||
|
||||
## 13.0.5 – 2022-04-08
|
||||
### Fixed
|
||||
- Fix reconnection when media permissions change
|
||||
[#7092](https://github.com/nextcloud/spreed/pull/7092)
|
||||
- Fix forced reconnection without the High-performance backend
|
||||
[#7095](https://github.com/nextcloud/spreed/pull/7095)
|
||||
- Compatibility with LDAP user backends and more than 64 characters display names
|
||||
[#7073](https://github.com/nextcloud/spreed/pull/7073)
|
||||
- Compatibility with Oracle and MySQL ONLY_FULL_GROUP_BY
|
||||
[#7036](https://github.com/nextcloud/spreed/pull/7036)
|
||||
- Fix broken avatars when search for users to add to a conversation
|
||||
[#7037](https://github.com/nextcloud/spreed/pull/7037)
|
||||
- Fix sort order of guests and logged-in users
|
||||
[#7053](https://github.com/nextcloud/spreed/pull/7053)
|
||||
- Allow copying links of open conversations without joining
|
||||
[#7070](https://github.com/nextcloud/spreed/pull/7070)
|
||||
|
||||
## 13.0.4 – 2022-03-17
|
||||
### Fixed
|
||||
- Fix several modals, dialogs and popovers in fullscreen mode
|
||||
[#6885](https://github.com/nextcloud/spreed/pull/6885)
|
||||
- Fix issues when permissions of a participant or conversation are changed right before joining a call
|
||||
[#6996](https://github.com/nextcloud/spreed/pull/6996)
|
||||
[#7018](https://github.com/nextcloud/spreed/pull/7018)
|
||||
- Fix media automatically enabled after selecting a device during a call
|
||||
[#7017](https://github.com/nextcloud/spreed/pull/7017)
|
||||
- Fix call flags update when track is disabled
|
||||
[#7016](https://github.com/nextcloud/spreed/pull/7016)
|
||||
- Show the version number also when the HPB backend is not older
|
||||
[#6890](https://github.com/nextcloud/spreed/pull/6890)
|
||||
- Correctly stop waiting sound when someone joins the call
|
||||
[#6919](https://github.com/nextcloud/spreed/pull/6919)
|
||||
- Improve performance when starting a call in a conversation with many participants
|
||||
[#6933](https://github.com/nextcloud/spreed/pull/6933)
|
||||
|
||||
## 13.0.3 – 2022-02-07
|
||||
### Fixed
|
||||
- Fix stopping a screenshare for recipients
|
||||
[#6857](https://github.com/nextcloud/spreed/pull/6857)
|
||||
- Fix switching between screenshares
|
||||
[#6850](https://github.com/nextcloud/spreed/pull/6850)
|
||||
- Fix mentions inside brackets
|
||||
[#6869](https://github.com/nextcloud/spreed/pull/6869)
|
||||
- Allow using mentions with the mouse
|
||||
[#6838](https://github.com/nextcloud/spreed/pull/6838)
|
||||
- Deduplicate round trips when a moderator ends the meeting for everyone
|
||||
[#6841](https://github.com/nextcloud/spreed/pull/6841)
|
||||
- Fix message menu misbehaving when the message scrolls outside of the viewport
|
||||
[#6855](https://github.com/nextcloud/spreed/pull/6855)
|
||||
|
||||
## 13.0.2 – 2022-01-24
|
||||
### Changed
|
||||
- Improve the join/leave sounds to be shorter
|
||||
[#6720](https://github.com/nextcloud/spreed/pull/6720)
|
||||
- Keep emoji picker open when selecting an emoji
|
||||
[#6792](https://github.com/nextcloud/spreed/pull/6792)
|
||||
- Reduce the set of avatar sizes so browser cache hits more often
|
||||
[#6799](https://github.com/nextcloud/spreed/pull/6799)
|
||||
- Improve signaling events for the roomlist
|
||||
[#6719](https://github.com/nextcloud/spreed/pull/6719)
|
||||
- Don't update the participant list when only you joined
|
||||
[#6805](https://github.com/nextcloud/spreed/pull/6805)
|
||||
- Recognize voice messages, object and file shares as unread messages
|
||||
[#6826](https://github.com/nextcloud/spreed/pull/6826)
|
||||
|
||||
### Fixed
|
||||
- Allow joining open conversations which are also shared as link with a password
|
||||
[#6709](https://github.com/nextcloud/spreed/pull/6709)
|
||||
- Prevent handleScroll on initial loading of a conversation
|
||||
[#6717](https://github.com/nextcloud/spreed/pull/6717)
|
||||
- Don't force a signaling mode when starting/ending the HPB trial
|
||||
[#6822](https://github.com/nextcloud/spreed/pull/6823)
|
||||
- Add conversation token and message id to search results
|
||||
[#6745](https://github.com/nextcloud/spreed/pull/6745)
|
||||
- Fix enabling background blur when video is disabled
|
||||
[#6705](https://github.com/nextcloud/spreed/pull/6705)
|
||||
- Fix several issues with the own peer when connections are slow
|
||||
[#6774](https://github.com/nextcloud/spreed/pull/6774)
|
||||
|
||||
## 13.0.1 – 2021-12-13
|
||||
### Fixed
|
||||
- Fix various issues with enabling/disabling the camera and background blur
|
||||
[#6688](https://github.com/nextcloud/spreed/pull/6688)
|
||||
- Fix unregistering of user status listener which lead to a memory leak with Nextcloud 23
|
||||
[#6643](https://github.com/nextcloud/spreed/pull/6643)
|
||||
- Device not released when closing settings dialog immediate after opening
|
||||
[#6638](https://github.com/nextcloud/spreed/pull/6638)
|
||||
- Disable emoji picker in read-only conversations
|
||||
[#6662](https://github.com/nextcloud/spreed/pull/6662)
|
||||
- Make conversation settings scrollable again
|
||||
[#6682](https://github.com/nextcloud/spreed/pull/6682)
|
||||
- Make the pagination buttons more and clearly visible in the grid view
|
||||
[#6695](https://github.com/nextcloud/spreed/pull/6695)
|
||||
|
||||
## 13.0.0 – 2021-11-30
|
||||
### Added
|
||||
- Moderators can now set permissions for all or individual users to control if they can enable audio and video, do a screenshare, start a call and ignore the lobby
|
||||
- When starting a call is limited to moderators, they can now also end the call for all participants
|
||||
- A device checker makes sure users start with the desired microphone and camera and also allows them to disable the devices before joining a call
|
||||
- Users can now blur their background (Not supported on Safari)
|
||||
- Users can now opt-out of call notifications on a conversation basis
|
||||
|
||||
### Changed
|
||||
- The layout of the call view has been redesigned
|
||||
- The size of the grid view is now limited to 20 videos by default to reduce the performance impact
|
||||
- Version 0.4.0 of the signaling server of the High-performance backend is now required
|
||||
|
||||
### Fixed
|
||||
- Show more details instead of a loading spinner only in case of connection issues
|
||||
- And a lot more things here and there
|
||||
|
||||
## 13.0.0-rc.4 – 2021-11-25
|
||||
### Changed
|
||||
- The segmentation model of the background blur was replaced
|
||||
[#6597](https://github.com/nextcloud/spreed/pull/6597)
|
||||
|
||||
### Fixed
|
||||
- Fix missing default permissions when opening the permissions editor
|
||||
[#6614](https://github.com/nextcloud/spreed/pull/6614)
|
||||
- Fix issues with device selection after muting, disconnecting and more
|
||||
[#6601](https://github.com/nextcloud/spreed/pull/6601)
|
||||
[#6609](https://github.com/nextcloud/spreed/pull/6609)
|
||||
[#6615](https://github.com/nextcloud/spreed/pull/6615)
|
||||
- Fix issues with the background blurring
|
||||
[#6594](https://github.com/nextcloud/spreed/pull/6594)
|
||||
[#6600](https://github.com/nextcloud/spreed/pull/6600)
|
||||
|
||||
## 13.0.0-rc.3 – 2021-11-22
|
||||
### Fixed
|
||||
- Fix several issues with the new call view and media controls
|
||||
[#6554](https://github.com/nextcloud/spreed/pull/6554)
|
||||
[#6571](https://github.com/nextcloud/spreed/pull/6571)
|
||||
[#6576](https://github.com/nextcloud/spreed/pull/6576)
|
||||
[#6575](https://github.com/nextcloud/spreed/pull/6575)
|
||||
- Don't always enable devices when the device picker is shown
|
||||
[#6567](https://github.com/nextcloud/spreed/pull/6567)
|
||||
- Opening the conversation settings via the conversation list opened with wrong data
|
||||
[#6584](https://github.com/nextcloud/spreed/pull/6584)
|
||||
- Fix issues with the background blurring
|
||||
[#6586](https://github.com/nextcloud/spreed/pull/6586)
|
||||
- Fix call summary in one-to-one conversations
|
||||
[#6564](https://github.com/nextcloud/spreed/pull/6564)
|
||||
|
||||
### Known issue
|
||||
- The video will "zoom in and out" when more than 4 people have video enabled and people with background blur start or stop speaking
|
||||
|
||||
## 13.0.0-rc.2 – 2021-11-18
|
||||
### Fixed
|
||||
- Fix several issues with the new call view and media controls
|
||||
[#6486](https://github.com/nextcloud/spreed/pull/6486)
|
||||
[#6489](https://github.com/nextcloud/spreed/pull/6489)
|
||||
[#6520](https://github.com/nextcloud/spreed/pull/6520)
|
||||
[#6541](https://github.com/nextcloud/spreed/pull/6541)
|
||||
[#6543](https://github.com/nextcloud/spreed/pull/6543)
|
||||
[#6548](https://github.com/nextcloud/spreed/pull/6548)
|
||||
- Can not pass the device checker with a small screen
|
||||
[#6508](https://github.com/nextcloud/spreed/pull/6508)
|
||||
[#6539](https://github.com/nextcloud/spreed/pull/6539)
|
||||
- Fix several issues with the background blurring
|
||||
[#6502](https://github.com/nextcloud/spreed/pull/6502)
|
||||
[#6532](https://github.com/nextcloud/spreed/pull/6532)
|
||||
[#6535](https://github.com/nextcloud/spreed/pull/6535)
|
||||
[#6546](https://github.com/nextcloud/spreed/pull/6546)
|
||||
[#6547](https://github.com/nextcloud/spreed/pull/6547)
|
||||
- Update hasCall state of a conversation when a chat message indicates that
|
||||
[#6509](https://github.com/nextcloud/spreed/pull/6509)
|
||||
- Don't end meeting for everyone when a moderator leaves
|
||||
[#6484](https://github.com/nextcloud/spreed/pull/6484)
|
||||
|
||||
## 13.0.0-rc.1 – 2021-11-11
|
||||
### Added
|
||||
- Moderators can now set permissions for all or individual users to control if they can enable audio and video, do a screenshare, start a call and ignore the lobby
|
||||
- When starting a call is limited to moderators, they can now also end the call for all participants
|
||||
- A device checker makes sure users start with the desired microphone and camera and also allows them to disable the devices before joining a call
|
||||
- Users can now blur their background (Not supported on Safari)
|
||||
- Users can now opt-out of call notifications on a conversation basis
|
||||
|
||||
### Changed
|
||||
- The layout of the call view has been redesigned
|
||||
- The size of the grid view is now limited to 20 videos by default to reduce the performance impact
|
||||
- Version 0.4.0 of the signaling server of the High-performance backend is now required
|
||||
|
||||
### Fixed
|
||||
- Show more details instead of a loading spinner only in case of connection issues
|
||||
- And a lot more things here and there
|
||||
|
||||
@@ -0,0 +1,228 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 14.0.11 – 2023-05-25
|
||||
### Changed
|
||||
- Allow Brave browser without unsupported warning
|
||||
[#9172](https://github.com/nextcloud/spreed/issues/9172)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix call summary when a user has a full numeric user ID
|
||||
[#9503](https://github.com/nextcloud/spreed/issues/9503)
|
||||
|
||||
## 14.0.10 – 2023-03-24
|
||||
### Fixed
|
||||
- fix(calls): Fix RemoteVideoBlocker still active after removing its associated model
|
||||
[#9133](https://github.com/nextcloud/spreed/pull/9133)
|
||||
- fix(reactions): Fix reacting to people that left
|
||||
[#8887](https://github.com/nextcloud/spreed/pull/8887)
|
||||
|
||||
## 14.0.9 – 2023-02-23
|
||||
### Changed
|
||||
- Update some dependencies
|
||||
|
||||
### Fixed
|
||||
- Only filter mentions for participants of the conversation
|
||||
[#8666](https://github.com/nextcloud/spreed/pull/8666)
|
||||
- Fix interaction of self-joined users with multiple sessions when navigating away
|
||||
[#8730](https://github.com/nextcloud/spreed/pull/8730)
|
||||
|
||||
## 14.0.8 – 2023-01-19
|
||||
### Fixed
|
||||
- Allow autocompleting conversation names from the middle
|
||||
[#8506](https://github.com/nextcloud/spreed/pull/8506)
|
||||
- Call view not shown when rejoining a call in the file sidebar
|
||||
[#8508](https://github.com/nextcloud/spreed/pull/8508)
|
||||
- Fix leaving the call when switching to another conversation
|
||||
[#8530](https://github.com/nextcloud/spreed/pull/8530)
|
||||
|
||||
## 14.0.7 – 2022-12-01
|
||||
### Changed
|
||||
- Allow to disable the changelog conversation with an app config
|
||||
[#8365](https://github.com/nextcloud/spreed/pull/8365)
|
||||
|
||||
### Fixed
|
||||
- Fix in_call flag on the "Join room" API response
|
||||
[#8372](https://github.com/nextcloud/spreed/pull/8372)
|
||||
- Fix bottom stripe of speaker view with high DPI
|
||||
[#8320](https://github.com/nextcloud/spreed/pull/8320)
|
||||
|
||||
## 14.0.6 – 2022-11-03
|
||||
### Changed
|
||||
- Take the device pixel ratio into account when calculating minimum grid size (should see more videos now on High DPI settings like MacOS and most 4k setup)
|
||||
[#8247](https://github.com/nextcloud/spreed/pull/8247)
|
||||
|
||||
### Fixed
|
||||
- Fix XML API endpoint for chats with empty reactions result
|
||||
[#8110](https://github.com/nextcloud/spreed/pull/8110)
|
||||
- Hide talk dashboard when user can not use the Talk app
|
||||
[#8237](https://github.com/nextcloud/spreed/pull/8237)
|
||||
- Hide talk sidebar integration when user can not use the Talk app
|
||||
[#8241](https://github.com/nextcloud/spreed/pull/8241)
|
||||
- Fix participant sessions not sent to the HPB
|
||||
[#8099](https://github.com/nextcloud/spreed/pull/8099)
|
||||
- Don't search in lobbied conversations
|
||||
[#8116](https://github.com/nextcloud/spreed/pull/8116)
|
||||
- Fix an issue with detecting Safari on iOS version
|
||||
[#8135](https://github.com/nextcloud/spreed/pull/8135)
|
||||
|
||||
## 14.0.5 – 2022-09-15
|
||||
### Fixed
|
||||
- Fix notification sending when the user is blocked by the lobby
|
||||
[#7794](https://github.com/nextcloud/spreed/pull/7794)
|
||||
- Fix missing local media controls in public share sidebar
|
||||
[#7758](https://github.com/nextcloud/spreed/pull/7758)
|
||||
- Fix missing screenshares in sidebar
|
||||
[#7760](https://github.com/nextcloud/spreed/pull/7760)
|
||||
- Fix inconsistent state when leaving a call fails
|
||||
[#7803](https://github.com/nextcloud/spreed/pull/7803)
|
||||
|
||||
## 14.0.4 – 2022-08-11
|
||||
### Added
|
||||
- Extend search result attributes for better handling in mobile clients
|
||||
[#7588](https://github.com/nextcloud/spreed/pull/7588)
|
||||
[#7587](https://github.com/nextcloud/spreed/pull/7587)
|
||||
|
||||
### Fixed
|
||||
- Location shares not visible in chat anymore (only in the sidebar tab)
|
||||
[#7550](https://github.com/nextcloud/spreed/pull/7550)
|
||||
- Reduce sent information with disabled videos
|
||||
[#7709](https://github.com/nextcloud/spreed/pull/7709)
|
||||
- Multiple accessibility fixes
|
||||
[#7599](https://github.com/nextcloud/spreed/pull/7599)
|
||||
[#7654](https://github.com/nextcloud/spreed/pull/7654)
|
||||
[#7553](https://github.com/nextcloud/spreed/pull/7553)
|
||||
[#7570](https://github.com/nextcloud/spreed/pull/7570)
|
||||
|
||||
## 14.0.3 – 2022-07-08
|
||||
### Added
|
||||
- Add brute force protection for conversation tokens and passwords
|
||||
[#7535](https://github.com/nextcloud/spreed/pull/7535)
|
||||
- Allow the HPB to group session pinging across multiple conversations
|
||||
[#7444](https://github.com/nextcloud/spreed/pull/7444)
|
||||
- Add a capability for unified search to enable the feature on the clients
|
||||
[#7448](https://github.com/nextcloud/spreed/pull/7448)
|
||||
|
||||
### Fixed
|
||||
- Fix backend URL in request to HPB from command line
|
||||
[#7440](https://github.com/nextcloud/spreed/pull/7440)
|
||||
- Fix error when setting user status while not being in any conversation
|
||||
[#7466](https://github.com/nextcloud/spreed/pull/7466)
|
||||
|
||||
## 14.0.2 – 2022-05-26
|
||||
### Changed
|
||||
- Add "Others" section to shared items tab to list unknown items
|
||||
[#7350](https://github.com/nextcloud/spreed/pull/7350)
|
||||
|
||||
### Fixed
|
||||
- Only declare changed sessions as such instead of all sessions of that participant
|
||||
[#7382](https://github.com/nextcloud/spreed/pull/7382)
|
||||
- Ensure display name of conversation owner is stored correctly
|
||||
[#7376](https://github.com/nextcloud/spreed/pull/7376)
|
||||
- Don't show promotion options for circles and groups
|
||||
[#7404](https://github.com/nextcloud/spreed/pull/7404)
|
||||
- Don't show permissions options for circles and groups
|
||||
[#7360](https://github.com/nextcloud/spreed/pull/7360)
|
||||
- Don't show reactions option for command messages
|
||||
[#7345](https://github.com/nextcloud/spreed/pull/7345)
|
||||
- Fix forwarding replies
|
||||
[#7343](https://github.com/nextcloud/spreed/pull/7343)
|
||||
|
||||
## 14.0.1 – 2022-05-07
|
||||
### Fixed
|
||||
- Fix memory consumption with emoji picker in conversations with a lot of chat messages with reactions
|
||||
[#7328](https://github.com/nextcloud/spreed/pull/7328)
|
||||
- Fix endless offer loop with SIP participants
|
||||
[#7288](https://github.com/nextcloud/spreed/pull/7288)
|
||||
- Fix room selector in deck and maps integration
|
||||
[#7290](https://github.com/nextcloud/spreed/pull/7290)
|
||||
[#7294](https://github.com/nextcloud/spreed/pull/7294)
|
||||
- Fix transceiver kind for participants without the HPB
|
||||
[#7263](https://github.com/nextcloud/spreed/pull/7263)
|
||||
- Fix error on console when initiating a screenshare
|
||||
[#7330](https://github.com/nextcloud/spreed/pull/7330)
|
||||
- Add missing translations of 24 branch
|
||||
[#7330](https://github.com/nextcloud/spreed/pull/7330)
|
||||
|
||||
## 14.0.0 – 2022-05-02
|
||||
### Added
|
||||
- Reactions for chat messages
|
||||
- Media tab in the sidebar to show all the shared items
|
||||
- Implement `OCP\Talk\IBroker` to allow apps to create conversations
|
||||
- Sharing a browser tab in Chrome-based browsers can now also share the audio of that tab
|
||||
|
||||
### Changed
|
||||
- Messages of shared objects and files can now be deleted (shares will be removed, files persist)
|
||||
- Actions like calling and chatting in big rooms are now much smoother
|
||||
- Compatibility with Nextcloud 24
|
||||
|
||||
## 14.0.0-rc.4 – 2022-04-29
|
||||
### Added
|
||||
- Add a modal to show more shared items
|
||||
|
||||
### Fixed
|
||||
- Make reactions work for guests and handle guests without name in the summary
|
||||
[#7217](https://github.com/nextcloud/spreed/pull/7217)
|
||||
- Add a link to notification sound settings from talk settings
|
||||
[#7224](https://github.com/nextcloud/spreed/pull/7224)
|
||||
- Fix migration with Postgres and Oracle
|
||||
[#7211](https://github.com/nextcloud/spreed/pull/7211)
|
||||
- Add programmatic output options to talk:active-calls command
|
||||
[#7227](https://github.com/nextcloud/spreed/pull/7227)
|
||||
- Fix media tab and reactions summary in read-only rooms
|
||||
[#7236](https://github.com/nextcloud/spreed/pull/7236)
|
||||
|
||||
## 14.0.0-rc.3 – 2022-04-22
|
||||
### Fixed
|
||||
- Move message.reactions.self to message.reactionsSelf to not merge different data structures
|
||||
[#7182](https://github.com/nextcloud/spreed/pull/7182)
|
||||
- Use actor and time information from the reaction not the message author
|
||||
[#7190](https://github.com/nextcloud/spreed/pull/7190)
|
||||
- Fix migration of attachment types for media
|
||||
[#7196](https://github.com/nextcloud/spreed/pull/7196)
|
||||
- Open chat tab by default in sidebar while in a call
|
||||
[#7201](https://github.com/nextcloud/spreed/pull/7201)
|
||||
- Fix access to undefined key
|
||||
[#7195](https://github.com/nextcloud/spreed/pull/7195)
|
||||
- Only set header when the value changed and the status is not 304
|
||||
[#7200](https://github.com/nextcloud/spreed/pull/7200)
|
||||
|
||||
### Still in progress
|
||||
- Media tab showing all shared items of the conversation
|
||||
|
||||
## 14.0.0-rc.2 – 2022-04-19
|
||||
### Fixed
|
||||
- Remove event to delete shares when user leave of room
|
||||
[#7168](https://github.com/nextcloud/spreed/pull/7168)
|
||||
- Add item shares from chat messages directly to the store
|
||||
[#7149](https://github.com/nextcloud/spreed/pull/7149)
|
||||
- Only switch to the participant tab when the token changes not any other detail
|
||||
[#7146](https://github.com/nextcloud/spreed/pull/7146)
|
||||
- Don't update last message of conversation with invisible message
|
||||
[#7142](https://github.com/nextcloud/spreed/pull/7142)
|
||||
|
||||
### Still in progress
|
||||
- Media tab showing all shared items of the conversation
|
||||
|
||||
## 14.0.0-rc.1 – 2022-04-13
|
||||
### Added
|
||||
- Reactions for chat messages
|
||||
- Media tab in the sidebar to show all the shared items
|
||||
- Implement `OCP\Talk\IBroker` to allow apps to create conversations
|
||||
- Sharing a browser tab in Chrome-based browsers can now also share the audio of that tab
|
||||
[#6810](https://github.com/nextcloud/spreed/pull/6810)
|
||||
|
||||
### Still in progress
|
||||
- Media tab showing all shared items of the conversation
|
||||
|
||||
### Changed
|
||||
- Messages of shared objects and files can now be deleted (shares will be removed, files persist)
|
||||
[#7047](https://github.com/nextcloud/spreed/pull/7047)
|
||||
- Actions like calling and chatting in big rooms should now be much smoother
|
||||
- Compatibility with Nextcloud 24
|
||||
|
||||
@@ -0,0 +1,252 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 15.0.8 – 2023-09-21
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(call): Add an option to disable background blur in call
|
||||
[#10474](https://github.com/nextcloud/spreed/issues/10474)
|
||||
- fix(page): Decouple the index controller from the executing method
|
||||
[#10548](https://github.com/nextcloud/spreed/issues/10548)
|
||||
- Fix using signaling settings while being refetched
|
||||
[#10257](https://github.com/nextcloud/spreed/issues/10257)
|
||||
- fix(chat): clean conversation history for participants in call
|
||||
[#10304](https://github.com/nextcloud/spreed/issues/10304)
|
||||
|
||||
## 15.0.7 – 2023-07-20
|
||||
### Fixed
|
||||
- Make conversation name and description selectable
|
||||
[#9784](https://github.com/nextcloud/spreed/issues/9784)
|
||||
|
||||
## 15.0.6 – 2023-05-25
|
||||
### Changed
|
||||
- Allow Brave browser without unsupported warning
|
||||
[#9167](https://github.com/nextcloud/spreed/issues/9167)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix call summary when a user has a full numeric user ID
|
||||
[#9504](https://github.com/nextcloud/spreed/issues/9504)
|
||||
|
||||
## 15.0.5 – 2023-03-24
|
||||
### Fixed
|
||||
- fix(calls): Fix RemoteVideoBlocker still active after removing its associated model
|
||||
[#9132](https://github.com/nextcloud/spreed/pull/9132)
|
||||
- fix(polls): Remove polls also when deleting the chat history
|
||||
[#8992](https://github.com/nextcloud/spreed/pull/8992)
|
||||
- fix(reactions): Fix reacting to people that left
|
||||
[#8886](https://github.com/nextcloud/spreed/pull/8886)
|
||||
|
||||
## 15.0.4 – 2023-02-23
|
||||
### Added
|
||||
- Make "End call for everyone" available for moderators all the time
|
||||
[#8767](https://github.com/nextcloud/spreed/pull/8767)
|
||||
|
||||
### Changed
|
||||
- Update some dependencies
|
||||
|
||||
### Fixed
|
||||
- Show tooltip for conversations with a long title
|
||||
[#8659](https://github.com/nextcloud/spreed/pull/8659)
|
||||
- Don't break the maps app with the Talk Files sidebar integration
|
||||
[#8590](https://github.com/nextcloud/spreed/pull/8590)
|
||||
- Only register the maps integration when the user is allowed to use Talk
|
||||
[#8591](https://github.com/nextcloud/spreed/pull/8591)
|
||||
- Fix missing "Unread mentions" floating button since Nextcloud 25 theming update
|
||||
[#8603](https://github.com/nextcloud/spreed/pull/8603)
|
||||
- Fix button style while being in a call
|
||||
[#8671](https://github.com/nextcloud/spreed/pull/8671)
|
||||
- Only filter mentions for participants of the conversation
|
||||
[#8665](https://github.com/nextcloud/spreed/pull/8665)
|
||||
- Fix interaction of self-joined users with multiple sessions when navigating away
|
||||
[#8729](https://github.com/nextcloud/spreed/pull/8729)
|
||||
|
||||
## 15.0.3 – 2023-01-19
|
||||
### Changed
|
||||
- Update @nextcloud/vue library to 7.4.0
|
||||
[#8458](https://github.com/nextcloud/spreed/pull/8458)
|
||||
[#8565](https://github.com/nextcloud/spreed/pull/8565)
|
||||
|
||||
### Fixed
|
||||
- Allow autocompleting conversation names from the middle
|
||||
[#8505](https://github.com/nextcloud/spreed/pull/8505)
|
||||
- Call view not shown when rejoining a call in the file sidebar
|
||||
[#8507](https://github.com/nextcloud/spreed/pull/8507)
|
||||
- Fix leaving the call when switching to another conversation
|
||||
[#8529](https://github.com/nextcloud/spreed/pull/8529)
|
||||
- Don't keep the session open longer than necessary when leaving and joining a conversation
|
||||
[#8394](https://github.com/nextcloud/spreed/pull/8394)
|
||||
- Enforce a length of the private JWT keys used for signaling in case libressl has 0 as default
|
||||
[#8468](https://github.com/nextcloud/spreed/pull/8468)
|
||||
- Remove webserver warning when in unknown state as it confuses admins
|
||||
[#8512](https://github.com/nextcloud/spreed/pull/8512)
|
||||
- Remove expired messages from API even when the background job did not execute
|
||||
[#8523](https://github.com/nextcloud/spreed/pull/8523)
|
||||
|
||||
## 15.0.2 – 2022-12-01
|
||||
### Changed
|
||||
- Allow to disable the changelog conversation with an app config
|
||||
[#8365](https://github.com/nextcloud/spreed/pull/8365)
|
||||
- Improve message grouping duration to match better with UX expectations
|
||||
[#8288](https://github.com/nextcloud/spreed/pull/8288)
|
||||
- Update @nextcloud/vue library to 7.1.0
|
||||
[#8405](https://github.com/nextcloud/spreed/pull/8405)
|
||||
[#8419](https://github.com/nextcloud/spreed/pull/8419)
|
||||
|
||||
### Fixed
|
||||
- Fix in_call flag on the "Join room" API response
|
||||
[#8371](https://github.com/nextcloud/spreed/pull/8371)
|
||||
- Fix bottom stripe of speaker view with high DPI
|
||||
[#8319](https://github.com/nextcloud/spreed/pull/8319)
|
||||
- Make webserver configuration check less error-prone
|
||||
[#8310](https://github.com/nextcloud/spreed/pull/8310)
|
||||
[#8332](https://github.com/nextcloud/spreed/pull/8332)
|
||||
- Fix monitoring command when using SQLite
|
||||
[#8304](https://github.com/nextcloud/spreed/pull/8304)
|
||||
- Fix chat not loading in certain situations (e.g. more than 100 votes in a row without any chat message in between)
|
||||
[#8322](https://github.com/nextcloud/spreed/pull/8322)
|
||||
- Immediately remove poll data when deleting the "asking message"
|
||||
[#8362](https://github.com/nextcloud/spreed/pull/8362)
|
||||
- Fix inconsistent behaviour of link and password option on conversation creation
|
||||
[#8367](https://github.com/nextcloud/spreed/pull/8367)
|
||||
|
||||
## 15.0.1 – 2022-11-03
|
||||
### Changed
|
||||
- Take the device pixel ratio into account when calculating minimum grid size (should see more videos now on High DPI settings like MacOS and most 4k setup)
|
||||
[#8246](https://github.com/nextcloud/spreed/pull/8246)
|
||||
|
||||
### Fixed
|
||||
- Show the number of cast votes to the question raiser and moderators on the voting screen
|
||||
[#8273](https://github.com/nextcloud/spreed/pull/8273)
|
||||
- Hide talk dashboard when user can not use the Talk app
|
||||
[#8236](https://github.com/nextcloud/spreed/pull/8236)
|
||||
- Hide talk sidebar integration when user can not use the Talk app
|
||||
[#8240](https://github.com/nextcloud/spreed/pull/8240)
|
||||
- Show other participant's name when waiting in a one-to-one call
|
||||
[#8228](https://github.com/nextcloud/spreed/pull/8228)
|
||||
|
||||
## 15.0.0 – 2022-10-18
|
||||
### Added
|
||||
- 🌏 Show link previews for chat messages with links
|
||||
- 🛂 Chat permission
|
||||
- 📊 Simple polls
|
||||
- 📴 "Silent call" for group/public calls
|
||||
- 🔔 Allow to re-notify a participant for a call
|
||||
- 🔕 "Silent send" for chat messages
|
||||
- 🔍 Search for messages in mobile apps
|
||||
- 📵 Allow to disable calling functionality
|
||||
- 📞 Allow SIP dial-in without individual user PINs
|
||||
- 🗒️ Allow to create new files from within the chat
|
||||
- ⏳ Expiration for chat messages
|
||||
- 💻 New CLI commands for devops to monitor calls and rooms
|
||||
|
||||
## 15.0.0-rc.5 – 2022-10-13
|
||||
### Fixed
|
||||
- Fix frequent emoji list breaking due to multiple emoji-data versions
|
||||
- Keep emoji picker open even when hovering another message
|
||||
- Adjust dashboard API list to be the same as in the web
|
||||
- Upgrade to @nextcloud/vue v7.0.0
|
||||
|
||||
## 15.0.0-rc.4 – 2022-10-10
|
||||
### Fixed
|
||||
- Fix call button missing on Safari for iPadOS
|
||||
- Fix silent call not working from web
|
||||
|
||||
## 15.0.0-rc.3 – 2022-10-10
|
||||
### Changed
|
||||
- Move all checkboxes to NcCheckboxRadioSwitch component so the UI doesn't break
|
||||
- Reorganize the conversation settings
|
||||
|
||||
### Fixed
|
||||
- Fix chats not getting marked as read with reactions
|
||||
|
||||
## 15.0.0-rc.2 – 2022-09-29
|
||||
### Added
|
||||
- Commands to monitor calls and a single room
|
||||
- Add a reference provider for call links
|
||||
|
||||
### Fixed
|
||||
- Reaction summary missing when hovering a chat message
|
||||
- Fix recursion when the lobby of a conversation expired
|
||||
- Fix missing "Leave call" button for moderators in restricted rooms
|
||||
- Fix padding in the left sidebar
|
||||
- Bump @nextcloud/vue and @nextcloud/vue-richtext
|
||||
|
||||
## 15.0.0-rc.1 – 2022-09-22
|
||||
### Added
|
||||
- Implement the new dashboard widget modes
|
||||
|
||||
### Changed
|
||||
- Allow to opt-out of keyboard shortcuts to improve accessibility
|
||||
|
||||
### Fixed
|
||||
- Show more poll voters in details popover
|
||||
- Do not allow to forward polls as they become non-functional
|
||||
- Fix coloring of reaction buttons
|
||||
- Reduce preview size for non-images
|
||||
- Disallow polls in one-to-one chats
|
||||
- Adjust the height of file upload modals
|
||||
- Show empty content when all messages expire
|
||||
- Correctly quote the parent again when sending the message failed
|
||||
|
||||
## 15.0.0-beta.4 – 2022-09-15
|
||||
### Added
|
||||
- Add related_resources UI
|
||||
|
||||
### Changed
|
||||
- Use Node 16 and NPM 8 to compile the interface
|
||||
- Several dependency updates
|
||||
- Unload chat messages when moving to another chat to avoid lagging on return
|
||||
|
||||
### Fixed
|
||||
- Several fixes to adapt to the UI changes in Nextcloud 25
|
||||
- Respect message expiration in the frontend when the user never leaves the conversation
|
||||
- Fix handling of deleted users in polls
|
||||
- Allow recalling the owner as a normal moderator
|
||||
|
||||
## 15.0.0-beta.3 – 2022-09-09
|
||||
### Changed
|
||||
- Finish polls UI
|
||||
|
||||
### Fixed
|
||||
- Several fixes to adapt to the UI changes in Nextcloud 25
|
||||
|
||||
## 15.0.0-beta.2 – 2022-09-01
|
||||
### Added
|
||||
- 🗒️ Allow to create new files from within the chat
|
||||
- 🌏 Show link previews for chat messages with links
|
||||
- Show more details on the poll result screen
|
||||
- Upgrade @nextcloud/vue to version 7
|
||||
|
||||
### Changed
|
||||
- Improve performance by using the UserDisplayNameCache
|
||||
- Improve performance of chats with a lot of shared files
|
||||
- Populate ETag and permissions so the image editor works as expected
|
||||
|
||||
### Fixed
|
||||
- Fix depenendency management and make sure all required dependencies are shipped
|
||||
- Fix type of icon size
|
||||
- Fix missing aria-labels and tooltips in various places
|
||||
- Fix missing local media in share sidebar
|
||||
- Fix missing screenshares in share sidebar
|
||||
- Ensure that the reactions details is always an object
|
||||
- Do not allow to close a poll twice
|
||||
- Make handling of guest moderators more consistent
|
||||
|
||||
## 15.0.0-beta.1 – 2022-08-12
|
||||
### Added
|
||||
- 🛂 Chat permission
|
||||
- 📊 Simple polls
|
||||
- 📴 "Silent call" for group/public calls
|
||||
- 🔔 Allow to re-notify a participant for a call
|
||||
- 🔕 "Silent send" for chat messages
|
||||
- 🔍 Search for messages in mobile apps
|
||||
- 📵 Allow to disable calling functionality
|
||||
- 📞 Allow SIP dial-in without individual user PINs
|
||||
|
||||
@@ -0,0 +1,356 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 16.0.11 – 2024-02-29
|
||||
### Changed
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(webrtc): Ignore label of data channel when processing received messages for Janus 1.x compatibility
|
||||
[#11669](https://github.com/nextcloud/spreed/issues/11669)
|
||||
- fix(notifications): Fix notification action label length with utf8 languages
|
||||
[#11619](https://github.com/nextcloud/spreed/issues/11619)
|
||||
- fix(chat): Fix forwarding messages from conversations in the right sidebar
|
||||
[#11611](https://github.com/nextcloud/spreed/issues/11611)
|
||||
|
||||
## 16.0.10 – 2024-01-25
|
||||
### Fixed
|
||||
- fix(attachments): Don't allow selecting shared folders as attachment folder
|
||||
[#11431](https://github.com/nextcloud/spreed/issues/11431)
|
||||
|
||||
## 16.0.9 – 2023-12-19
|
||||
### Fixed
|
||||
- fix(occ): Fix verification of STUN server details
|
||||
[#11195](https://github.com/nextcloud/spreed/issues/11195)
|
||||
- fix(hosted-hpb): Correctly handle API response codes of hosted High-performance backend when the account expired
|
||||
[#11045](https://github.com/nextcloud/spreed/issues/11045)
|
||||
|
||||
## 16.0.8 – 2023-11-23
|
||||
### Fixed
|
||||
- fix(settings): Remove non-working notification settings for guests
|
||||
[#10976](https://github.com/nextcloud/spreed/issues/10976)
|
||||
- fix(settings): Fix option to request an HPB trial
|
||||
[#10967](https://github.com/nextcloud/spreed/issues/10967)
|
||||
- fix(settings): Fail recording server test when an HPB was given as recording backend
|
||||
[#10950](https://github.com/nextcloud/spreed/issues/10950)
|
||||
- fix(chat): Hide delete option for guests
|
||||
[#10807](https://github.com/nextcloud/spreed/issues/10807)
|
||||
|
||||
## 16.0.7 – 2023-10-27
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(call): Fix "silent" parameter not sent again when reconnecting
|
||||
[#10777](https://github.com/nextcloud/spreed/issues/10777)
|
||||
- fix(chat): Fix message grouping for all locales
|
||||
[#10696](https://github.com/nextcloud/spreed/issues/10696)
|
||||
- fix(RightSidebar) update active tab on mount and conversation change
|
||||
[#10564](https://github.com/nextcloud/spreed/issues/10564)
|
||||
- fix(sip): Fix saving the secret of the SIP bridge in the admin UI
|
||||
[#10719](https://github.com/nextcloud/spreed/issues/10719)
|
||||
|
||||
## 16.0.6 – 2023-09-21
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix responding with "X-Chat-Last-Common-Read" when requested by the client
|
||||
[#10340](https://github.com/nextcloud/spreed/issues/10340)
|
||||
- fix(call): Add an option to disable background blur in call
|
||||
[#10473](https://github.com/nextcloud/spreed/issues/10473)
|
||||
- fix(desktop): fix disabling avatar menu for desktop
|
||||
[#10183](https://github.com/nextcloud/spreed/issues/10183)
|
||||
- fix(page): Decouple the index controller from the executing method
|
||||
[#10547](https://github.com/nextcloud/spreed/issues/10547)
|
||||
- Fix using signaling settings while being refetched
|
||||
[#10259](https://github.com/nextcloud/spreed/issues/10259)
|
||||
- fix(chat): clean conversation history for participants in call
|
||||
[#10303](https://github.com/nextcloud/spreed/issues/10303)
|
||||
|
||||
## 16.0.5 – 2023-07-20
|
||||
### Changed
|
||||
- Close sidebar on mobile resolution after changing the route
|
||||
[#9764](https://github.com/nextcloud/spreed/issues/9764)
|
||||
|
||||
### Fixed
|
||||
- Make chat stay scrolling when the last message receives its first reaction
|
||||
[#9957](https://github.com/nextcloud/spreed/issues/9957)
|
||||
- Improve call view video size calculation
|
||||
[#9836](https://github.com/nextcloud/spreed/issues/9836)
|
||||
- Update group displayname when a group is renamed
|
||||
[#9840](https://github.com/nextcloud/spreed/issues/9840)
|
||||
- Don't make the conversation list scroll when the selected conversation is already visible
|
||||
[#9785](https://github.com/nextcloud/spreed/issues/9785)
|
||||
- Make conversation name and description selectable
|
||||
[#9781](https://github.com/nextcloud/spreed/issues/9781)
|
||||
|
||||
## 16.0.4 – 2023-05-25
|
||||
### Added
|
||||
- Allow to mark conversations unread in the sidebar
|
||||
[#9366](https://github.com/nextcloud/spreed/issues/9366)
|
||||
|
||||
### Changed
|
||||
- Make self-joined users persistent members when assigning permissions
|
||||
[#9434](https://github.com/nextcloud/spreed/issues/9434)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Special characters are HTML encoded when selecting an Emoji from the picker
|
||||
[#9545](https://github.com/nextcloud/spreed/issues/9545)
|
||||
- Fix missing "New message" form on share and files app integration
|
||||
[#9532](https://github.com/nextcloud/spreed/issues/9532)
|
||||
- Fix diverging user status between top bar and conversation list
|
||||
[#9419](https://github.com/nextcloud/spreed/issues/9419)
|
||||
- Fix call summary when a user has a full numeric user ID
|
||||
[#9502](https://github.com/nextcloud/spreed/issues/9502)
|
||||
- Fix mentions of groups with spaces in the ID and guests
|
||||
[#9420](https://github.com/nextcloud/spreed/issues/9420)
|
||||
- Prevent sending empty chat messages
|
||||
[#9515](https://github.com/nextcloud/spreed/issues/9515)
|
||||
|
||||
## 16.0.3 – 2023-04-20
|
||||
### Added
|
||||
- feat: Add missing "New in Talk 16" section
|
||||
[#9205](https://github.com/nextcloud/spreed/pull/9205)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix missing popups and modals in fullscreen mode
|
||||
[#9323](https://github.com/nextcloud/spreed/pull/9323)
|
||||
- fix(chat): Fix squeezed mention suggestions after library update
|
||||
[#9302](https://github.com/nextcloud/spreed/pull/9302)
|
||||
- fix(conversation): Change redirect when the conversation is left or deleted
|
||||
[#9242](https://github.com/nextcloud/spreed/pull/9242)
|
||||
[#9058](https://github.com/nextcloud/spreed/pull/9058)
|
||||
- fix(sidebar): Improve handling of the sidebar
|
||||
[#9212](https://github.com/nextcloud/spreed/pull/9212)
|
||||
- fix(settings): Fix admin settings page when upload limit is infinite
|
||||
[#9247](https://github.com/nextcloud/spreed/pull/9247)
|
||||
|
||||
## 16.0.2 – 2023-03-28
|
||||
### Added
|
||||
- feat: Allow Chromium-based browser Brave
|
||||
[#9166](https://github.com/nextcloud/spreed/pull/9166)
|
||||
- feat(smart-picker): Add conversation search to the smart-picker integration
|
||||
[#9105](https://github.com/nextcloud/spreed/pull/9105)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix lost message text when autocomplete triggers after pasting text inside the @nextcloud/vue library
|
||||
[#9191](https://github.com/nextcloud/spreed/pull/9191)
|
||||
- fix(chat): Fix visual regression with links inside the @nextcloud/vue library
|
||||
[#9191](https://github.com/nextcloud/spreed/pull/9191)
|
||||
- fix(reactions): Don't update last message when someone reacted
|
||||
[#9186](https://github.com/nextcloud/spreed/pull/9186)
|
||||
- fix(recordings): Set a dedicated user-agent for the recording backend
|
||||
[#9184](https://github.com/nextcloud/spreed/pull/9184)
|
||||
[#9194](https://github.com/nextcloud/spreed/pull/9194)
|
||||
- fix(desktop): Hide some features inside the desktop client
|
||||
[#9171](https://github.com/nextcloud/spreed/pull/9171)
|
||||
|
||||
## 16.0.1 – 2023-03-24
|
||||
### Added
|
||||
- feat(chat): Allow to receive messages without marking notifications as unread
|
||||
[#9103](https://github.com/nextcloud/spreed/pull/9103)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix multiple issues with emoji and mention autocompletion
|
||||
- fix(chat): Fix pasting HTML and XML content into the chat input
|
||||
[#9104](https://github.com/nextcloud/spreed/pull/9104)
|
||||
- fix(calls): Fix RemoteVideoBlocker still active after removing its associated model
|
||||
[#9131](https://github.com/nextcloud/spreed/pull/9131)
|
||||
- fix(breakout-rooms): Fix breakout-room option shown for public conversations
|
||||
[#9135](https://github.com/nextcloud/spreed/pull/9135)
|
||||
- fix(UI): Fix conditions when a reload of the UI is necessary
|
||||
[#9123](https://github.com/nextcloud/spreed/pull/9123)
|
||||
- fix(recordings): Fix default quality of call recordings
|
||||
[#9121](https://github.com/nextcloud/spreed/pull/9121)
|
||||
- fix(chat): Don't focus the chat input on mobile devices
|
||||
[#8898](https://github.com/nextcloud/spreed/pull/8898)
|
||||
|
||||
## 16.0.0 – 2023-03-21
|
||||
### Added for users
|
||||
- Breakout rooms can be used to split a group call into temporary working groups (Requires the High-performance backend)
|
||||
[#8337](https://github.com/nextcloud/spreed/pull/8337)
|
||||
- Calls can now be recorded (Requires the High-performance backend)
|
||||
[#8324](https://github.com/nextcloud/spreed/pull/8324)
|
||||
- The top bar now shows useful information like participant count, call duration and title while in a call.
|
||||
[#8341](https://github.com/nextcloud/spreed/pull/8341)
|
||||
- Chat input now allows to autocomplete emojis
|
||||
[#4333](https://github.com/nextcloud/spreed/pull/4333)
|
||||
|
||||
### Added for administrators
|
||||
- Administrators can now define the default conversation permissions via the `default_permissions` app config
|
||||
[#8457](https://github.com/nextcloud/spreed/pull/8457)
|
||||
- Administrators can now define the default name of the Talk/ attachments folder via the `default_attachment_folder` app config
|
||||
[#8465](https://github.com/nextcloud/spreed/pull/8465)
|
||||
- OCC command to transfer-ownership of conversations was added allowing to hand over conversations during off-boarding
|
||||
[#8479](https://github.com/nextcloud/spreed/pull/8479)
|
||||
- All available app configurations have been documented in the [settings documentation](https://nextcloud-talk.readthedocs.io/en/latest/settings/#app-configuration)
|
||||
|
||||
### Added for developers
|
||||
- Chat API now allows to get the context (older and newer messages) for a message
|
||||
[#8717](https://github.com/nextcloud/spreed/pull/8717)
|
||||
- Conversation list is now being instantly updated with information from notifications
|
||||
[#8723](https://github.com/nextcloud/spreed/pull/8723)
|
||||
- Conversations API now supports a "modified since" parameter to only get changed conversations
|
||||
[#8726](https://github.com/nextcloud/spreed/pull/8726)
|
||||
- Chats are opened now without a page reload when interacting with notifications
|
||||
[#8713](https://github.com/nextcloud/spreed/pull/8713)
|
||||
- Introduced a new conversation type to indicate that a conversation was a one-to-one conversation
|
||||
[#8600](https://github.com/nextcloud/spreed/pull/8600)
|
||||
|
||||
### Changed
|
||||
- Version 1.1.0 of the signaling server of the High-performance backend is now required
|
||||
- Update several dependencies
|
||||
|
||||
|
||||
## 16.0.0-rc.4 – 2023-03-20
|
||||
### Fixed
|
||||
- Fix flickering when dragging a file over the window with Safari on MacOS
|
||||
[#9076](https://github.com/nextcloud/spreed/pull/9076)
|
||||
- Fix flickering with message buttons bar of the last message
|
||||
[#9043](https://github.com/nextcloud/spreed/pull/9043)
|
||||
- Fix conditions for showing "Reply" and "Reply privately"
|
||||
[#9052](https://github.com/nextcloud/spreed/pull/9052)
|
||||
|
||||
## 16.0.0-rc.3 – 2023-03-09
|
||||
### Fixed
|
||||
- Correctly handle `<` and `>` in chat messages
|
||||
[#8977](https://github.com/nextcloud/spreed/pull/8977)
|
||||
- Improve the position of the message button bar for single line and very long messages
|
||||
[#9009](https://github.com/nextcloud/spreed/pull/9009)
|
||||
- Remove space on call-time button
|
||||
[#8979](https://github.com/nextcloud/spreed/pull/8979)
|
||||
- Fix displaying of restricted and full permissions selection when manually configuring them
|
||||
[#8982](https://github.com/nextcloud/spreed/pull/8982)
|
||||
- Fix dashboard widget API returning breakout rooms
|
||||
[#8976](https://github.com/nextcloud/spreed/pull/8976)
|
||||
- Improve breakout room API documentation
|
||||
[#8994](https://github.com/nextcloud/spreed/pull/8994)
|
||||
- Also remove polls when purging the chat history
|
||||
[#8991](https://github.com/nextcloud/spreed/pull/8991)
|
||||
- Fix mention and emoji autocomplete when broadcasting to breakout rooms
|
||||
[#8999](https://github.com/nextcloud/spreed/pull/8999)
|
||||
- Notify the moderator when uploading a recording failed
|
||||
[#9000](https://github.com/nextcloud/spreed/pull/9000)
|
||||
- Add a warning in the admin settings when the file upload limits are lower than 512 MB
|
||||
[#9002](https://github.com/nextcloud/spreed/pull/9002)
|
||||
- Fix unread message count improving when receiving own messages
|
||||
[#9011](https://github.com/nextcloud/spreed/pull/9011)
|
||||
- Fix duplicate attachment upload with Safari and Chrome on MacOS
|
||||
[#9012](https://github.com/nextcloud/spreed/pull/9012)
|
||||
|
||||
## 16.0.0-rc.2 – 2023-03-06
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
- Migrate RichText component usage to NcRichText
|
||||
[#8959](https://github.com/nextcloud/spreed/pull/8959)
|
||||
|
||||
### Fixed
|
||||
- Design review changes for breakout rooms handling
|
||||
[#8962](https://github.com/nextcloud/spreed/pull/8962)
|
||||
- Add documentation for OCC commands
|
||||
[#8907](https://github.com/nextcloud/spreed/pull/8907)
|
||||
|
||||
## 16.0.0-rc.1 – 2023-03-02
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Design review changes for breakout rooms handling
|
||||
[#8905](https://github.com/nextcloud/spreed/pull/8905)
|
||||
[#8910](https://github.com/nextcloud/spreed/pull/8910)
|
||||
[#8919](https://github.com/nextcloud/spreed/pull/8919)
|
||||
[#8920](https://github.com/nextcloud/spreed/pull/8920)
|
||||
[#8921](https://github.com/nextcloud/spreed/pull/8921)
|
||||
[#8922](https://github.com/nextcloud/spreed/pull/8922)
|
||||
- Always expose the breakout room names when being a member of the parent
|
||||
[#8925](https://github.com/nextcloud/spreed/pull/8925)
|
||||
- Hide breakout rooms from the dashboard widget
|
||||
[#8918](https://github.com/nextcloud/spreed/pull/8918)
|
||||
- Fix chat scrolling to the end and the quick access button for it
|
||||
[#8895](https://github.com/nextcloud/spreed/pull/8895)
|
||||
- Breakout rooms can not be configured in full screen mode
|
||||
[#8897](https://github.com/nextcloud/spreed/pull/8897)
|
||||
- Button to reopen the chat sidebar while being in a call can disappear
|
||||
[#8923](https://github.com/nextcloud/spreed/pull/8923)
|
||||
- Error when reacting to a message when the author left the conversation
|
||||
[#8883](https://github.com/nextcloud/spreed/pull/8883)
|
||||
- File upload modal is positioned outside the chat
|
||||
[#8906](https://github.com/nextcloud/spreed/pull/8906)
|
||||
|
||||
## 16.0.0-beta.2 – 2023-02-27
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Don't show breakout room options in one-to-one and public conversations
|
||||
[#8875](https://github.com/nextcloud/spreed/pull/8875)
|
||||
- Don't show recording options when no recording servers are configured
|
||||
[#8874](https://github.com/nextcloud/spreed/pull/8874)
|
||||
- Focus conversation name field when creating conversation
|
||||
[#8873](https://github.com/nextcloud/spreed/pull/8873)
|
||||
- Allow to abort emoji-autocomplete with ESC
|
||||
[#8870](https://github.com/nextcloud/spreed/pull/8870)
|
||||
- Focus chat input when replying to a message
|
||||
[#8864](https://github.com/nextcloud/spreed/pull/8864)
|
||||
- Fix message type of attachments uploaded via mobile apps
|
||||
[#8861](https://github.com/nextcloud/spreed/pull/8861)
|
||||
- Hide the bottom video stripe in recordings
|
||||
[#8844](https://github.com/nextcloud/spreed/pull/8844)
|
||||
- Don't allow to change certain settings directly inside breakout rooms
|
||||
[#8841](https://github.com/nextcloud/spreed/pull/8841)
|
||||
- Fix detection of the recording state
|
||||
[#8840](https://github.com/nextcloud/spreed/pull/8840)
|
||||
- Improve notification subject and message for recording uploads
|
||||
[#8837](https://github.com/nextcloud/spreed/pull/8837)
|
||||
|
||||
## 16.0.0-beta.1 – 2023-02-23
|
||||
### Added for users
|
||||
- Breakout rooms can be used to split a group call into temporary working groups (Requires the High-performance backend)
|
||||
[#8337](https://github.com/nextcloud/spreed/pull/8337)
|
||||
- Calls can now be recorded (Requires the High-performance backend)
|
||||
[#8324](https://github.com/nextcloud/spreed/pull/8324)
|
||||
- The top bar now shows useful information like participant count, call duration and title while in a call.
|
||||
[#8341](https://github.com/nextcloud/spreed/pull/8341)
|
||||
- Chat input now allows to autocomplete emojis
|
||||
[#4333](https://github.com/nextcloud/spreed/pull/4333)
|
||||
|
||||
### Added for administrators
|
||||
- Administrators can now define the default conversation permissions via the `default_permissions` app config
|
||||
[#8457](https://github.com/nextcloud/spreed/pull/8457)
|
||||
- Administrators can now define the default name of the Talk/ attachments folder via the `default_attachment_folder` app config
|
||||
[#8465](https://github.com/nextcloud/spreed/pull/8465)
|
||||
- OCC command to transfer-ownership of conversations was added allowing to hand over conversations during off-boarding
|
||||
[#8479](https://github.com/nextcloud/spreed/pull/8479)
|
||||
- All available app configurations have been documented in the [settings documentation](https://nextcloud-talk.readthedocs.io/en/latest/settings/#app-configuration)
|
||||
|
||||
### Added for developers
|
||||
- Chat API now allows to get the context (older and newer messages) for a message
|
||||
[#8717](https://github.com/nextcloud/spreed/pull/8717)
|
||||
- Conversation list is now being instantly updated with information from notifications
|
||||
[#8723](https://github.com/nextcloud/spreed/pull/8723)
|
||||
- Conversations API now supports a "modified since" parameter to only get changed conversations
|
||||
[#8726](https://github.com/nextcloud/spreed/pull/8726)
|
||||
- Chats are opened now without a page reload when interacting with notifications
|
||||
[#8713](https://github.com/nextcloud/spreed/pull/8713)
|
||||
- Introduced a new conversation type to indicate that a conversation was a one-to-one conversation
|
||||
[#8600](https://github.com/nextcloud/spreed/pull/8600)
|
||||
|
||||
### Changed
|
||||
- Version 1.1.0 of the signaling server of the High-performance backend is now required
|
||||
- Update several dependencies
|
||||
|
||||
@@ -0,0 +1,458 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 17.1.10 – 2024-06-27
|
||||
### Fixed
|
||||
- fix(bots): Fix bots with self-signed certificates
|
||||
[#12469](https://github.com/nextcloud/spreed/pull/12469)
|
||||
- fix(shareIntegration): Fix handle to close and open the right sidebar on publish share links
|
||||
[#12495](https://github.com/nextcloud/spreed/pull/12495)
|
||||
|
||||
## 17.1.9 – 2024-05-23
|
||||
### Fixed
|
||||
- fix(polls): Remove actor info from system message
|
||||
[#12342](https://github.com/nextcloud/spreed/pull/12342)
|
||||
- fix(recording): Stop broken recording backend
|
||||
[#12401](https://github.com/nextcloud/spreed/pull/12401)
|
||||
|
||||
## 17.1.8 – 2024-04-12
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(conversation): Fix error when adding participants while creating a conversation
|
||||
[#12059](https://github.com/nextcloud/spreed/issues/12059)
|
||||
- fix(conversation): Fix missing icon in conversation settings for file conversations
|
||||
[#12052](https://github.com/nextcloud/spreed/issues/12052)
|
||||
|
||||
## 17.1.7 – 2024-04-04
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(conversation): skip unread marker increasing from notification
|
||||
[#11735](https://github.com/nextcloud/spreed/issues/11735)
|
||||
- fix(modal): mount nested modals inside global modals
|
||||
[#11891](https://github.com/nextcloud/spreed/issues/11891)
|
||||
|
||||
## 17.1.6 – 2024-02-29
|
||||
### Changed
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(webrtc): Ignore label of data channel when processing received messages for Janus 1.x compatibility
|
||||
[#11668](https://github.com/nextcloud/spreed/issues/11668)
|
||||
- fix(notifications): Fix notification action label length with utf8 languages
|
||||
[#11620](https://github.com/nextcloud/spreed/issues/11620)
|
||||
- fix(chat): Fix forwarding messages from conversations in the right sidebar
|
||||
[#11609](https://github.com/nextcloud/spreed/issues/11609)
|
||||
|
||||
## 17.1.5 – 2024-01-25
|
||||
### Fixed
|
||||
- fix(attachments): Don't allow selecting shared folders as attachment folder
|
||||
[#11430](https://github.com/nextcloud/spreed/issues/11430)
|
||||
|
||||
## 17.1.4 – 2023-12-19
|
||||
### Fixed
|
||||
- fix(UI): Allow joining a call while editing a document
|
||||
[#11260](https://github.com/nextcloud/spreed/issues/11260)
|
||||
- fix(chat): Fix grouping of chat messages when they include the readmarker
|
||||
[#11068](https://github.com/nextcloud/spreed/issues/11068)
|
||||
- fix(call): Fix lost audio tracks in Safari after being muted a longer time
|
||||
[#11145](https://github.com/nextcloud/spreed/issues/11145)
|
||||
- fix(occ): Fix verification of STUN server details
|
||||
[#11194](https://github.com/nextcloud/spreed/issues/11194)
|
||||
- fix(hosted-hpb): Correctly handle API response codes of hosted High-performance backend when the account expired
|
||||
[#11045](https://github.com/nextcloud/spreed/issues/11045)
|
||||
|
||||
## 17.1.3 – 2023-11-23
|
||||
### Fixed
|
||||
- fix(settings): Remove non-working notification settings for guests
|
||||
[#10974](https://github.com/nextcloud/spreed/issues/10974)
|
||||
- fix(chat): Fix uploading files after some time of being online
|
||||
[#10891](https://github.com/nextcloud/spreed/issues/10891)
|
||||
- fix(participants): Update participants list more regularly
|
||||
[#10843](https://github.com/nextcloud/spreed/issues/10843)
|
||||
- fix(settings): Fix option to request an HPB trial
|
||||
[#10965](https://github.com/nextcloud/spreed/issues/10965)
|
||||
- fix(settings): Fail recording server test when an HPB was given as recording backend
|
||||
[#10948](https://github.com/nextcloud/spreed/issues/10948)
|
||||
- fix(chat): Hide delete option for guests
|
||||
[#10806](https://github.com/nextcloud/spreed/issues/10806)
|
||||
- fix(chat): Fix sorting of system messages
|
||||
[#10964](https://github.com/nextcloud/spreed/issues/10964)
|
||||
- fix(chat): Fix not breaking the JSON response when removing the last reaction of a message
|
||||
[#10949](https://github.com/nextcloud/spreed/issues/10949)
|
||||
- fix(call): Log error message when starting a screenshot fails
|
||||
[#10827](https://github.com/nextcloud/spreed/issues/10827)
|
||||
|
||||
## 17.1.2 – 2023-10-27
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Allow joining a conversation via search when a filter is active
|
||||
[#10781](https://github.com/nextcloud/spreed/issues/10781)
|
||||
- fix(chat): Fix re-rendering of conversation data when scrolling (hover, user status, more)
|
||||
[#10779](https://github.com/nextcloud/spreed/issues/10779)
|
||||
- fix(chat): Clear deleted messages from replies
|
||||
[#10713](https://github.com/nextcloud/spreed/issues/10713)
|
||||
- fix(chat): Fix mentions when forwarding messages
|
||||
[#10673](https://github.com/nextcloud/spreed/issues/10673)
|
||||
- fix(call): Increase the avatar size in calls when the video is disabled
|
||||
[#10628](https://github.com/nextcloud/spreed/issues/10628)
|
||||
- fix(call): Fix "silent" parameter not sent again when reconnecting
|
||||
[#10776](https://github.com/nextcloud/spreed/issues/10776)
|
||||
- fix(chat): Fix message grouping for all locales
|
||||
[#10695](https://github.com/nextcloud/spreed/issues/10695)
|
||||
- fix(RightSidebar) update active tab on mount and conversation change
|
||||
[#10564](https://github.com/nextcloud/spreed/issues/10564)
|
||||
- fix(sip): Fix saving the secret of the SIP bridge in the admin UI
|
||||
[#10718](https://github.com/nextcloud/spreed/issues/10718)
|
||||
|
||||
## 17.1.1 – 2023-09-21
|
||||
### Added
|
||||
- feat(chat): Add copy function to code blocks
|
||||
[#10533](https://github.com/nextcloud/spreed/issues/10533)
|
||||
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(attachments): Allow to navigate between attachments in the viewer
|
||||
[#10549](https://github.com/nextcloud/spreed/issues/10549)
|
||||
- fix(bots): Fix notifications of bot messages and reactions
|
||||
[#10530](https://github.com/nextcloud/spreed/issues/10530)
|
||||
- fix(conversations): Keep the current conversation in filtered list
|
||||
[#10527](https://github.com/nextcloud/spreed/issues/10527)
|
||||
- fix(page): Decouple the index controller from the executing method
|
||||
[#10546](https://github.com/nextcloud/spreed/issues/10546)
|
||||
- fix(API): Reuse participant objects already created to reduce number of database queries
|
||||
[#10536](https://github.com/nextcloud/spreed/issues/10536)
|
||||
|
||||
## 17.1.0 – 2023-09-16
|
||||
### Added
|
||||
- Add support for bots via webhooks
|
||||
[#10139](https://github.com/nextcloud/spreed/issues/10139)
|
||||
[#10151](https://github.com/nextcloud/spreed/issues/10151)
|
||||
- Add Markdown support for chat messages
|
||||
[#10089](https://github.com/nextcloud/spreed/issues/10089)
|
||||
[#10090](https://github.com/nextcloud/spreed/issues/10090)
|
||||
- Allow to filter the conversation list for unread mentions and messages
|
||||
[#10093](https://github.com/nextcloud/spreed/issues/10093)
|
||||
- Provide an overview list of open conversations
|
||||
[#10095](https://github.com/nextcloud/spreed/issues/10095)
|
||||
- Set a reminder to get notified about a chat messages at a later time
|
||||
[#10104](https://github.com/nextcloud/spreed/issues/10104)
|
||||
[#10152](https://github.com/nextcloud/spreed/issues/10152)
|
||||
[#10155](https://github.com/nextcloud/spreed/issues/10155)
|
||||
- Show a hint when the call is running since one hour
|
||||
[#10101](https://github.com/nextcloud/spreed/issues/10101)
|
||||
- Show the talking time of participants in the right sidebar
|
||||
[#10145](https://github.com/nextcloud/spreed/issues/10145)
|
||||
|
||||
### Changed
|
||||
- System messages of the same actions are now grouped
|
||||
[#10143](https://github.com/nextcloud/spreed/issues/10143)
|
||||
- Use virtual scrolling for the conversation list to improve the performance
|
||||
[#10297](https://github.com/nextcloud/spreed/issues/10297)
|
||||
- Cache the conversation list in the browser storage for better loading experience
|
||||
[#10273](https://github.com/nextcloud/spreed/issues/10273)
|
||||
- Update dependencies
|
||||
|
||||
## 17.1.0-rc.4 – 2023-08-31
|
||||
### Changed
|
||||
- chore(packaging): Ship dependencies lock files
|
||||
[#10426](https://github.com/nextcloud/spreed/issues/10426)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(bots): Fix several problems with bots
|
||||
[#10425](https://github.com/nextcloud/spreed/issues/10425)
|
||||
- feat(conversations): Persist the filter status after reload
|
||||
[#10407](https://github.com/nextcloud/spreed/issues/10407)
|
||||
- fix(chat): Adjust parsing of NcRichContenteditable output before sending
|
||||
[#10440](https://github.com/nextcloud/spreed/issues/10440)
|
||||
- fix(conversations): Fix arrow-key navigation in left sidebar
|
||||
[#10418](https://github.com/nextcloud/spreed/issues/10418)
|
||||
- fix(deck): Show conversation name and highlight link in deck integration
|
||||
[#10394](https://github.com/nextcloud/spreed/issues/10394)
|
||||
- fix(chat): Fix combined system message text with duplicated messages from yourself
|
||||
[#10439](https://github.com/nextcloud/spreed/issues/10439)
|
||||
|
||||
## 17.1.0-rc.3 – 2023-08-25
|
||||
### Added
|
||||
- feat(capability): Add a capability for messages being markdown
|
||||
[#10367](https://github.com/nextcloud/spreed/issues/10367)
|
||||
- feat(bots)!: Ensure bot uniqueness and allow removing by URL
|
||||
[#10371](https://github.com/nextcloud/spreed/issues/10371)
|
||||
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(LeftSidebar): wrong user status after scrolling
|
||||
[#10369](https://github.com/nextcloud/spreed/issues/10369)
|
||||
- fix(changelog): Prevent duplicated changelog message by parallel requests
|
||||
[#10366](https://github.com/nextcloud/spreed/issues/10366)
|
||||
- fix(RoomSelector): Align text vertically for open conversation list
|
||||
[#10363](https://github.com/nextcloud/spreed/issues/10363)
|
||||
- fix(chat): Fix primary color selection on quotes
|
||||
[#10363](https://github.com/nextcloud/spreed/issues/10363)
|
||||
- fix(LeftSidebar): adjust conversation padding and size
|
||||
[#10359](https://github.com/nextcloud/spreed/issues/10359)
|
||||
|
||||
## 17.1.0-rc.2 – 2023-08-24
|
||||
### Added
|
||||
- Avatars of open conversations are now shown without being a participant
|
||||
[#10229](https://github.com/nextcloud/spreed/issues/10229)
|
||||
- Added an option to only remove a user from private conversations
|
||||
[#10310](https://github.com/nextcloud/spreed/issues/10310)
|
||||
- Added an option to copy the original message content
|
||||
[#10335](https://github.com/nextcloud/spreed/issues/10335)
|
||||
|
||||
### Changed
|
||||
- Use virtual scrolling for the conversation list to improve the performance
|
||||
[#10297](https://github.com/nextcloud/spreed/issues/10297)
|
||||
- Cache the conversation list in the browser storage for better loading experience
|
||||
[#10273](https://github.com/nextcloud/spreed/issues/10273)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Allow replying to messages of bots
|
||||
[#10219](https://github.com/nextcloud/spreed/issues/10219)
|
||||
- Fix sending system messages to bots
|
||||
[#10271](https://github.com/nextcloud/spreed/issues/10271)
|
||||
- Fix style of Markdown code blocks, headlines and quotes
|
||||
[#10221](https://github.com/nextcloud/spreed/issues/10221)
|
||||
[#10238](https://github.com/nextcloud/spreed/issues/10238)
|
||||
[#10255](https://github.com/nextcloud/spreed/issues/10255)
|
||||
- Fix recording option shown for non moderators
|
||||
[#10246](https://github.com/nextcloud/spreed/issues/10246)
|
||||
- Apply selected call background only once confirmed
|
||||
[#10267](https://github.com/nextcloud/spreed/issues/10267)
|
||||
- Clear chat history for other participants that are live when the moderator performs the action
|
||||
[#10302](https://github.com/nextcloud/spreed/issues/10302)
|
||||
- Add missing capability that indicates bots are supported
|
||||
[#10314](https://github.com/nextcloud/spreed/issues/10314)
|
||||
- Don't add parent messages of quotes to the message list which could create gaps in the history
|
||||
[#10318](https://github.com/nextcloud/spreed/issues/10318)
|
||||
- Fix missing `X-Chat-Last-Common-Read` header on chat requests
|
||||
[#10337](https://github.com/nextcloud/spreed/issues/10337)
|
||||
|
||||
## 17.1.0-rc.1 – 2023-08-11
|
||||
### Added
|
||||
- Add support for bots via webhooks
|
||||
[#10139](https://github.com/nextcloud/spreed/issues/10139)
|
||||
[#10151](https://github.com/nextcloud/spreed/issues/10151)
|
||||
- Add Markdown support for chat messages
|
||||
[#10089](https://github.com/nextcloud/spreed/issues/10089)
|
||||
[#10090](https://github.com/nextcloud/spreed/issues/10090)
|
||||
- Allow to filter the conversation list for unread mentions and messages
|
||||
[#10093](https://github.com/nextcloud/spreed/issues/10093)
|
||||
- Provide an overview list of open conversations
|
||||
[#10095](https://github.com/nextcloud/spreed/issues/10095)
|
||||
- Set a reminder to get notified about a chat messages at a later time
|
||||
[#10104](https://github.com/nextcloud/spreed/issues/10104)
|
||||
[#10152](https://github.com/nextcloud/spreed/issues/10152)
|
||||
[#10155](https://github.com/nextcloud/spreed/issues/10155)
|
||||
- Show a hint when the call is running since one hour
|
||||
[#10101](https://github.com/nextcloud/spreed/issues/10101)
|
||||
- Show the talking time of participants in the right sidebar
|
||||
[#10145](https://github.com/nextcloud/spreed/issues/10145)
|
||||
|
||||
### Changed
|
||||
- System messages of the same actions are now grouped
|
||||
[#10143](https://github.com/nextcloud/spreed/issues/10143)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix resetting the bruteforce protection when joining a conversation
|
||||
[#10165](https://github.com/nextcloud/spreed/issues/10165)
|
||||
|
||||
## 17.0.3 – 2023-07-28
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix duplicate messages and improve performance
|
||||
[#10070](https://github.com/nextcloud/spreed/issues/10070)
|
||||
- fix(SIP): Show SIP info also when enabled without user PIN
|
||||
[#10064](https://github.com/nextcloud/spreed/issues/10064)
|
||||
- fix(settings): Hide description and status from 1-1 conversation settings
|
||||
[#10057](https://github.com/nextcloud/spreed/issues/10057)
|
||||
|
||||
## 17.0.2 – 2023-07-20
|
||||
### Changed
|
||||
- Automatic transcription of call recordings is now opt-in
|
||||
[#9971](https://github.com/nextcloud/spreed/issues/9971)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix position of "Scroll to bottom" button in the chat view
|
||||
[#9871](https://github.com/nextcloud/spreed/issues/9871)
|
||||
[#9858](https://github.com/nextcloud/spreed/issues/9858)
|
||||
- Improve accessibility of conversation creation dialog
|
||||
[#9954](https://github.com/nextcloud/spreed/issues/9954)
|
||||
- Make chat stay scrolling when the last message receives its first reaction
|
||||
[#9956](https://github.com/nextcloud/spreed/issues/9956)
|
||||
- Don't emit event when the user status did not change on refetching
|
||||
[#10005](https://github.com/nextcloud/spreed/issues/10005)
|
||||
- Attempt to further improve the performance of conversation list updates with hundreds of conversations
|
||||
[#10016](https://github.com/nextcloud/spreed/issues/10016)
|
||||
|
||||
## 17.0.1 – 2023-06-23
|
||||
### Changed
|
||||
- Include display name in participant update signaling message
|
||||
[#9822](https://github.com/nextcloud/spreed/issues/9822)
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Improve frontend responsiveness with many conversations
|
||||
[#9841](https://github.com/nextcloud/spreed/issues/9841)
|
||||
- Don't make the conversation list scroll when the selected conversation is already visible
|
||||
[#9782](https://github.com/nextcloud/spreed/issues/9782)
|
||||
[#9796](https://github.com/nextcloud/spreed/issues/9796)
|
||||
- Fix creating files from the "Blank" template option
|
||||
[#9818](https://github.com/nextcloud/spreed/issues/9818)
|
||||
- Make conversation description and name selectable
|
||||
[#9780](https://github.com/nextcloud/spreed/issues/9780)
|
||||
- Hide poll voting details when not filled
|
||||
[#9821](https://github.com/nextcloud/spreed/issues/9821)
|
||||
[#9819](https://github.com/nextcloud/spreed/issues/9819)
|
||||
- Fix visibility issue in the create conversation dialog on small screens
|
||||
[#9794](https://github.com/nextcloud/spreed/issues/9794)
|
||||
[#9843](https://github.com/nextcloud/spreed/issues/9843)
|
||||
- Include display name in participant update signaling message
|
||||
[#9822](https://github.com/nextcloud/spreed/issues/9822)
|
||||
- Update group displayname cache when the group was renamed
|
||||
[#9839](https://github.com/nextcloud/spreed/issues/9839)
|
||||
|
||||
## 17.0.0 – 2023-06-12
|
||||
### Added
|
||||
- Conversations can now have an avatar or emoji as icon
|
||||
[#927](https://github.com/nextcloud/spreed/issues/927)
|
||||
- Virtual backgrounds are now available in addition to the blurred background in video calls
|
||||
[#9251](https://github.com/nextcloud/spreed/issues/9251)
|
||||
- Reactions are now available during calls
|
||||
[#9249](https://github.com/nextcloud/spreed/issues/9249)
|
||||
- Typing indicators show which users are currently typing a message
|
||||
[#9248](https://github.com/nextcloud/spreed/issues/9248)
|
||||
- Groups can now be mentioned in chats
|
||||
[#6339](https://github.com/nextcloud/spreed/issues/6339)
|
||||
- Call recordings are automatically transcribed if a transcription provider app is registered
|
||||
[#9274](https://github.com/nextcloud/spreed/issues/9274)
|
||||
- Chat messages can be translated if a translation provider app is registered
|
||||
[#9273](https://github.com/nextcloud/spreed/issues/9273)
|
||||
|
||||
## 17.0.0-rc.4 – 2023-06-09
|
||||
### Fixed
|
||||
|
||||
- fix(chat): Fix dark/light theme in messages loading placeholder
|
||||
[#9720](https://github.com/nextcloud/spreed/issues/9720)
|
||||
- fix(TypingIndicator): Signaling messages wrong when conversation is switched
|
||||
[#9615](https://github.com/nextcloud/spreed/issues/9615)
|
||||
- fix(TypingIndicator): Typing indicator does not "expire"
|
||||
[#9604](https://github.com/nextcloud/spreed/issues/9604)
|
||||
- fix(TypingIndicator): Typing indicator distorted on small sidebar during call when 3 or more people are typing
|
||||
[#9589](https://github.com/nextcloud/spreed/issues/9589)
|
||||
- fix(mediasettings): Aria label keywords of virtual backgrounds are not translatable
|
||||
[#9610](https://github.com/nextcloud/spreed/issues/9610)
|
||||
- fix(mediasettings): Conversation picture picker does not work well on mobile
|
||||
[#9565](https://github.com/nextcloud/spreed/issues/9565)
|
||||
- fix(conversations): Do not scroll to conversations that are already visible in the conversations list
|
||||
[#9582](https://github.com/nextcloud/spreed/issues/9582)
|
||||
- fix(conversations): Fix error when creating a conversation from search results
|
||||
[#9709](https://github.com/nextcloud/spreed/pull/9709)
|
||||
|
||||
## 17.0.0-rc.3 – 2023-06-02
|
||||
### Fixed
|
||||
|
||||
- fix(MediaSettings): Fix guests being prompted with login window when blurring background
|
||||
[#9620](https://github.com/nextcloud/spreed/issues/9620)
|
||||
- fix(TypingIndicator): Actors are only unique by type and id
|
||||
[#9625](https://github.com/nextcloud/spreed/pull/9625)
|
||||
|
||||
## 17.0.0-rc.2 – 2023-05-25
|
||||
### Fixed
|
||||
- fix(reactions): Fix own call reactions when the high-performance backend is used
|
||||
[#9586](https://github.com/nextcloud/spreed/issues/9586)
|
||||
- fix(mediasettings): Hide virtual background options when not supported
|
||||
[#9611](https://github.com/nextcloud/spreed/issues/9611)
|
||||
- fix(mediasettings): Fix broken aria-label
|
||||
[#9617](https://github.com/nextcloud/spreed/issues/9617)
|
||||
- fix(CallView): Fix Fullscreen mode support in ViewerOverlay
|
||||
[#9613](https://github.com/nextcloud/spreed/issues/9613)
|
||||
[#9618](https://github.com/nextcloud/spreed/issues/9618)
|
||||
- fix(CallView): fix no local video on empty call in not grid mode
|
||||
[#9584](https://github.com/nextcloud/spreed/issues/9584)
|
||||
- fix(chat): Update own read marker before triggering events when posting
|
||||
[#9612](https://github.com/nextcloud/spreed/issues/9612)
|
||||
- fix(chat): Don't send startTyping signaling message for each keystroke
|
||||
[#9614](https://github.com/nextcloud/spreed/issues/9614)
|
||||
|
||||
## 17.0.0-rc.1 – 2023-05-17
|
||||
### Changed
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix virtual background image being stretched instead of cropped
|
||||
[#9549](https://github.com/nextcloud/spreed/issues/9549)
|
||||
|
||||
## 17.0.0-beta.3 – 2023-05-12
|
||||
### Added
|
||||
- Allow translating chat messages
|
||||
[#9512](https://github.com/nextcloud/spreed/issues/9512)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Media settings or not respected
|
||||
[#9513](https://github.com/nextcloud/spreed/issues/9513)
|
||||
- Fix clearing guests over and over again on MySQL and Oracle
|
||||
[#9517](https://github.com/nextcloud/spreed/issues/9517)
|
||||
- Prevent empty chat messages
|
||||
[#9509](https://github.com/nextcloud/spreed/issues/9509)
|
||||
|
||||
## 17.0.0-beta.2 – 2023-05-09
|
||||
### Added
|
||||
- Typing indicators frontend and settings
|
||||
[#9455](https://github.com/nextcloud/spreed/issues/9455)
|
||||
[#9431](https://github.com/nextcloud/spreed/issues/9431)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Show empty call view on viewer overlay
|
||||
[#9460](https://github.com/nextcloud/spreed/issues/9460)
|
||||
- Fix avatar handling when interacting with non-supporting backends
|
||||
[#9492](https://github.com/nextcloud/spreed/issues/9492)
|
||||
|
||||
## 17.0.0-beta.1 – 2023-05-04
|
||||
### Added
|
||||
- Conversations can now have an avatar or emoji as icon
|
||||
[#927](https://github.com/nextcloud/spreed/issues/927)
|
||||
- Virtual backgrounds are now available in addition to the blurred background in video calls
|
||||
[#9251](https://github.com/nextcloud/spreed/issues/9251)
|
||||
- Reactions are now available during calls
|
||||
[#9249](https://github.com/nextcloud/spreed/issues/9249)
|
||||
- Typing indicators show which users are currently typing a message
|
||||
[#9248](https://github.com/nextcloud/spreed/issues/9248)
|
||||
- Groups can now be mentioned in chats
|
||||
[#6339](https://github.com/nextcloud/spreed/issues/6339)
|
||||
- Call recordings are automatically transcribed if a transcription provider app is registered
|
||||
[#9274](https://github.com/nextcloud/spreed/issues/9274)
|
||||
- Chat messages can be translated if a translation provider app is registered
|
||||
[#9273](https://github.com/nextcloud/spreed/issues/9273)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
@@ -0,0 +1,370 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 18.0.14 – 2025-01-16
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(calls): Retain names of guests when they disconnect from the High-performance backend
|
||||
[#13982](https://github.com/nextcloud/spreed/issues/13982)
|
||||
- fix(search): Add pagination support to the conversation search in unified search
|
||||
[#14032](https://github.com/nextcloud/spreed/issues/14032)
|
||||
- fix(setupcheck): Check server times of Webserver nodes and High-performance backend to be in sync
|
||||
[#14014](https://github.com/nextcloud/spreed/issues/14014)
|
||||
- fix(moderation): Allow promoting self-joined users
|
||||
[#14080](https://github.com/nextcloud/spreed/issues/14080)
|
||||
|
||||
## 18.0.13 – 2024-11-07
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix layout for guests on public conversations
|
||||
[#13620](https://github.com/nextcloud/spreed/issues/13620)
|
||||
- fix(UI): Improve handling of sidebar on mobile view
|
||||
[#12693](https://github.com/nextcloud/spreed/issues/12693)
|
||||
|
||||
## 18.0.12 – 2024-10-10
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(avatar): Fix missing translations
|
||||
[#13411](https://github.com/nextcloud/spreed/issues/13411)
|
||||
- fix(chat): Expire message cache when deleting the last message
|
||||
[#13391](https://github.com/nextcloud/spreed/issues/13391)
|
||||
- fix(call): Correctly ignore media offers from users without permissions when internal signaling is used
|
||||
[#13493](https://github.com/nextcloud/spreed/issues/13493)
|
||||
- fix(call): Fix missing call sounds in Safari when tab is moved to the background
|
||||
[#13351](https://github.com/nextcloud/spreed/issues/13351)
|
||||
- fix(avatar): Don't overwrite user avatar when selecting a square for a conversation
|
||||
[#13287](https://github.com/nextcloud/spreed/issues/13287)
|
||||
|
||||
## 18.0.11 – 2024-08-22
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(settings): hide secrets in password fields
|
||||
[#12843](https://github.com/nextcloud/spreed/issues/12843)
|
||||
- fix(conversation): Fix adding and removing permissions
|
||||
[#13080](https://github.com/nextcloud/spreed/issues/13080)
|
||||
- fix(session): Fix generating session id again if duplicated
|
||||
[#12744](https://github.com/nextcloud/spreed/issues/12744)
|
||||
|
||||
## 18.0.10 – 2024-07-11
|
||||
### Fixed
|
||||
- fix(sharing): Fix share detection within object stores
|
||||
[#12628](https://github.com/nextcloud/spreed/pull/12628)
|
||||
|
||||
## 18.0.9 – 2024-06-27
|
||||
### Fixed
|
||||
- fix(bots): Fix bots with self-signed certificates
|
||||
[#12470](https://github.com/nextcloud/spreed/pull/12470)
|
||||
- fix(attachments): Fix creating new files from templates
|
||||
[#12487](https://github.com/nextcloud/spreed/pull/12487)
|
||||
- fix(shareIntegration): Fix handle to close and open the right sidebar on publish share links
|
||||
[#12494](https://github.com/nextcloud/spreed/pull/12494)
|
||||
- fix(bots): Show error messages during bots setup
|
||||
[#12573](https://github.com/nextcloud/spreed/pull/12573)
|
||||
- fix(chat): Adjust toast message on message deletion
|
||||
[#12588](https://github.com/nextcloud/spreed/pull/12588)
|
||||
|
||||
## 18.0.8 – 2024-05-23
|
||||
### Fixed
|
||||
- fix(polls): Remove actor info from system message
|
||||
[#12343](https://github.com/nextcloud/spreed/pull/12343)
|
||||
- fix(recording): Stop broken recording backend
|
||||
[#12402](https://github.com/nextcloud/spreed/pull/12402)
|
||||
|
||||
## 18.0.7 – 2024-04-12
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(conversation): Fix error when adding participants while creating a conversation
|
||||
[#12057](https://github.com/nextcloud/spreed/issues/12057)
|
||||
- fix(conversation): Fix missing icon in conversation settings for file conversations
|
||||
[#12051](https://github.com/nextcloud/spreed/issues/12051)
|
||||
|
||||
## 18.0.6 – 2024-04-04
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(FilePicker): Provide correct container for FilePicker
|
||||
[#11940](https://github.com/nextcloud/spreed/issues/11940)
|
||||
- fix(flow): Fix flow notifications in note-to-self and on own actions
|
||||
[#11919](https://github.com/nextcloud/spreed/issues/11919)
|
||||
- fix(call): Keep the talk time information when changing active tab
|
||||
[#11797](https://github.com/nextcloud/spreed/issues/11797)
|
||||
|
||||
## 18.0.5 – 2024-03-08
|
||||
### Changed
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(call): Fix missing screenshare button after stopping a screenshare
|
||||
[#11721](https://github.com/nextcloud/spreed/issues/11721)
|
||||
- fix(call): Correctly focus the screenshare after selecting in the grid view
|
||||
[#11755](https://github.com/nextcloud/spreed/issues/11755)
|
||||
- fix(chat): Fix jumping unread counter when entering a conversation after receiving a notification
|
||||
[#11736](https://github.com/nextcloud/spreed/issues/11736)
|
||||
|
||||
## 18.0.4 – 2024-02-29
|
||||
### Added
|
||||
- feat(desktop): Allow using the avatar menu in the desktop client
|
||||
[#11679](https://github.com/nextcloud/spreed/issues/11679)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(webrtc): Ignore label of data channel when processing received messages for Janus 1.x compatibility
|
||||
[#11667](https://github.com/nextcloud/spreed/issues/11667)
|
||||
- fix(notifications): Fix notification action label length with utf8 languages
|
||||
[#11621](https://github.com/nextcloud/spreed/issues/11621)
|
||||
- fix(chat): Fix forwarding messages from conversations in the right sidebar
|
||||
[#11606](https://github.com/nextcloud/spreed/issues/11606)
|
||||
- fix(search): Hide search providers when not allowed to use Talk
|
||||
[#11623](https://github.com/nextcloud/spreed/issues/11623)
|
||||
- fix(UI): Fix nesting of modals
|
||||
[#11580](https://github.com/nextcloud/spreed/issues/11580)
|
||||
- fix(participants): Add a key to the elements force re-rendering on changes
|
||||
[#11558](https://github.com/nextcloud/spreed/issues/11558)
|
||||
|
||||
## 18.0.3 – 2024-01-31
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix scrolling behaviour when loading older messages
|
||||
[#11481](https://github.com/nextcloud/spreed/issues/11481)
|
||||
- fix(chat): Fix showing mention and emoji suggestions when writing a caption
|
||||
[#11458](https://github.com/nextcloud/spreed/issues/11458)
|
||||
- fix(chat): Show mention chips when inserting a suggested mention
|
||||
[#11493](https://github.com/nextcloud/spreed/issues/11493)
|
||||
|
||||
## 18.0.2 – 2024-01-25
|
||||
### Fixed
|
||||
- fix(calls): Device preview not visible when editing, uploading or viewing a file
|
||||
[#11222](https://github.com/nextcloud/spreed/issues/11222)
|
||||
- fix(conversation): Make description input multi line when creating a conversation
|
||||
[#11376](https://github.com/nextcloud/spreed/issues/11376)
|
||||
- fix(bot): Don't allow empty chat messages from bots
|
||||
[#11353](https://github.com/nextcloud/spreed/issues/11353)
|
||||
- fix(breakout): Stop breakout rooms when they are started while deleting them
|
||||
[#11409](https://github.com/nextcloud/spreed/issues/11409)
|
||||
- fix(attachments): Allow to retry failed uploads
|
||||
[#11256](https://github.com/nextcloud/spreed/issues/11256)
|
||||
- fix(attachments): Fix uploading from local device
|
||||
[#11331](https://github.com/nextcloud/spreed/issues/11331)
|
||||
- fix(attachments): Don't allow selecting shared folders as attachment folder
|
||||
[#11427](https://github.com/nextcloud/spreed/issues/11427)
|
||||
|
||||
## 18.0.1 – 2023-12-15
|
||||
### Changed
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(shares): Fix notifications for captions with mentions or as a reply
|
||||
[#11242](https://github.com/nextcloud/spreed/issues/11242)
|
||||
- fix(shares): Fix replying to message with attachments
|
||||
[#11242](https://github.com/nextcloud/spreed/issues/11242)
|
||||
- fix(shares): Reserve space for file previews while loading
|
||||
[#11196](https://github.com/nextcloud/spreed/issues/11196)
|
||||
- fix(chat): Don't trim the quote when it is not an image share with caption
|
||||
[#11237](https://github.com/nextcloud/spreed/issues/11237)
|
||||
- fix(call): Reset "Start recording" checkbox on "Media settings" close
|
||||
[#11227](https://github.com/nextcloud/spreed/issues/11227)
|
||||
- fix(call): Fix uploading files as image for the call background
|
||||
[#11214](https://github.com/nextcloud/spreed/issues/11214)
|
||||
- fix(notifications): Fix the order of event listeners to improve responsiveness when starting calls
|
||||
[#11238](https://github.com/nextcloud/spreed/issues/11238)
|
||||
|
||||
## 18.0.0 – 2023-12-12
|
||||
### Added
|
||||
- 🗒️ Note to self
|
||||
[#2196](https://github.com/nextcloud/spreed/issues/2196)
|
||||
- 🎙️ Show speaker while screensharing
|
||||
[#4478](https://github.com/nextcloud/spreed/issues/4478)
|
||||
- 🏷️ Add a caption to your file before sharing it into the chat
|
||||
[#5354](https://github.com/nextcloud/spreed/issues/5354)
|
||||
- 👤 Ask Guest to enter a name when connecting
|
||||
[#855](https://github.com/nextcloud/spreed/issues/855)
|
||||
- 🤩 Animated call reactions
|
||||
[#10561](https://github.com/nextcloud/spreed/issues/10561)
|
||||
- 🖋️ Optionally require consent before joining a recorded call
|
||||
[#10348](https://github.com/nextcloud/spreed/issues/10348)
|
||||
- 📲 Allow calling phone numbers from within Talk using SIP dialout
|
||||
[#10346](https://github.com/nextcloud/spreed/issues/10346)
|
||||
- 🔎 Add support for "person" and "modified" filter options of the new search
|
||||
[#10909](https://github.com/nextcloud/spreed/issues/10909)
|
||||
- 🌴 Show the "Out of office" message in one-to-one conversations
|
||||
[#11049](https://github.com/nextcloud/spreed/issues/11049)
|
||||
|
||||
### Changed
|
||||
- Requires Nextcloud 28
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
- Require compatible clients (Talk Android 18.0.0 or later, Talk iOS 18.0.0 or later, Talk Desktop 0.16.0 or later) when recording consent is enabled
|
||||
[#10969](https://github.com/nextcloud/spreed/issues/10969)
|
||||
|
||||
## 18.0.0-rc.3 – 2023-12-07
|
||||
### Added
|
||||
- feat(call): Add screensharing support to the viewer-overlay
|
||||
[#11033](https://github.com/nextcloud/spreed/issues/11033)
|
||||
- feat(conversations): Always show create conversation button
|
||||
[#11104](https://github.com/nextcloud/spreed/issues/11104)
|
||||
- fix(chat): Add metadata to file parameters on API level so clients can calculate aspect ratio of previews
|
||||
[#11131](https://github.com/nextcloud/spreed/issues/11131)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix various cases of handling (in)active sessions while chatting and calling
|
||||
[#11125](https://github.com/nextcloud/spreed/issues/11125)
|
||||
[#11140](https://github.com/nextcloud/spreed/issues/11140)
|
||||
- fix(chat): Only load current absence not future ones
|
||||
[#11124](https://github.com/nextcloud/spreed/issues/11124)
|
||||
- fix(chat): Fix file share with caption quote reply
|
||||
[#11128](https://github.com/nextcloud/spreed/issues/11128)
|
||||
- fix(poll): Reorganize component structure and hide "End poll" from first view
|
||||
[#11109](https://github.com/nextcloud/spreed/issues/11109)
|
||||
- fix(call): Cancel scheduled participant request when requesting new one
|
||||
[#11097](https://github.com/nextcloud/spreed/issues/11097)
|
||||
- fix(chat): Expand system messages group if visual unread marker is set on it
|
||||
[#11067](https://github.com/nextcloud/spreed/issues/11067)
|
||||
- fix(chat): Handle silent sending and input paste correctly in media captions
|
||||
[#11123](https://github.com/nextcloud/spreed/issues/11123)
|
||||
- fix(conversations): Remove label from talk search input
|
||||
[#11071](https://github.com/nextcloud/spreed/issues/11071)
|
||||
- fix(video-verification): Remove unneeded settings from video-verification screen
|
||||
[#11138](https://github.com/nextcloud/spreed/issues/11138)
|
||||
|
||||
## 18.0.0-rc.2 – 2023-11-30
|
||||
### Added
|
||||
- feat(chat): Show the "Out of office" message in one-to-one conversations
|
||||
[#11049](https://github.com/nextcloud/spreed/issues/11049)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(call): Try to fix Safari unmute after being muted for a longer time
|
||||
[#11032](https://github.com/nextcloud/spreed/issues/11032)
|
||||
- fix(call): Reduce participant list update speed when you are not joining a call
|
||||
[#11047](https://github.com/nextcloud/spreed/issues/11047)
|
||||
- fix(call): Remove O(n) queries when ending a call for everyone
|
||||
[#11020](https://github.com/nextcloud/spreed/issues/11020)
|
||||
- fix(UI): Fix several missing headlines after nextcloud/vue update
|
||||
[#11031](https://github.com/nextcloud/spreed/issues/11031)
|
||||
- fix(chat): Allow submitting the caption upload form without a file
|
||||
[#11013](https://github.com/nextcloud/spreed/issues/11013)
|
||||
- fix(call): Fix undefined variable $participant when calling a conversation with lobby
|
||||
[#11027](https://github.com/nextcloud/spreed/issues/11027)
|
||||
- fix(chat): Hide "Messages in current conversation" search filter when not in a chat
|
||||
[#11054](https://github.com/nextcloud/spreed/issues/11054)
|
||||
|
||||
## 18.0.0-rc.1 – 2023-11-23
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
- Improve documentation by adding magic strings and values to parameters
|
||||
[#10857](https://github.com/nextcloud/spreed/issues/10857)
|
||||
- Require compatible clients when recording consent is enabled
|
||||
[#10969](https://github.com/nextcloud/spreed/issues/10969)
|
||||
- Revert: Try to fix Safari unmute after being muted for a longer time
|
||||
[#10954](https://github.com/nextcloud/spreed/issues/10954)
|
||||
- Move away from deprecated constants and functions
|
||||
[#10975](https://github.com/nextcloud/spreed/issues/10975)
|
||||
|
||||
### Fixed
|
||||
- fix(settings): Remove non-working notification settings for guests
|
||||
[#10960](https://github.com/nextcloud/spreed/issues/10960)
|
||||
- fix(settings): Fix option to request an HPB trial
|
||||
[#10962](https://github.com/nextcloud/spreed/issues/10962)
|
||||
[#10970](https://github.com/nextcloud/spreed/issues/10970)
|
||||
- fix(chat): Fix sorting of system messages
|
||||
[#10963](https://github.com/nextcloud/spreed/issues/10963)
|
||||
- fix(settings): Fix style in the admin settings after vue library update
|
||||
[#10984](https://github.com/nextcloud/spreed/issues/10984)
|
||||
|
||||
## 18.0.0-beta.3 – 2023-11-16
|
||||
### Added
|
||||
- Allow drag'n'drop of files onto the caption dialog
|
||||
[#10898](https://github.com/nextcloud/spreed/issues/10898)
|
||||
- Add support for "person" and "modified" filter options of the global search
|
||||
[#10909](https://github.com/nextcloud/spreed/issues/10909)
|
||||
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix Safari browser not receiving any stream in a call
|
||||
[#10912](https://github.com/nextcloud/spreed/issues/10912)
|
||||
- Try to fix Safari unmute after being muted for a longer time
|
||||
[#10913](https://github.com/nextcloud/spreed/issues/10913)
|
||||
- Mark notifications about read chat messages as resolved
|
||||
[#10889](https://github.com/nextcloud/spreed/issues/10889)
|
||||
- Fix uploading files after multiple hours without a page reload
|
||||
[#10877](https://github.com/nextcloud/spreed/issues/10877)
|
||||
- Don't throw an unhandled exception when mentioning `at-all` in "Note to self"
|
||||
[#10881](https://github.com/nextcloud/spreed/issues/10881)
|
||||
- Fix SIP dialout not working after resolving license issue
|
||||
[#10914](https://github.com/nextcloud/spreed/issues/10914)
|
||||
- Fix issues with the session active state
|
||||
[#10876](https://github.com/nextcloud/spreed/issues/10876)
|
||||
- Clarify that "Note to self" and "Talk Updates" are system generated
|
||||
[#10884](https://github.com/nextcloud/spreed/issues/10884)
|
||||
|
||||
## 18.0.0-beta.2 – 2023-11-09
|
||||
### Changed
|
||||
- Replace various confirmation screens with the NcDialog component
|
||||
[#10812](https://github.com/nextcloud/spreed/issues/10812)
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix mentions at the beginning of the text in captions
|
||||
[#10831](https://github.com/nextcloud/spreed/issues/10831)
|
||||
- Fix not breaking the JSON response when removing the last reaction of a message
|
||||
[#10832](https://github.com/nextcloud/spreed/issues/10832)
|
||||
- Remove previous style adjustments from left sidebar
|
||||
[#10818](https://github.com/nextcloud/spreed/issues/10818)
|
||||
- Migrate the last set of event listeners to be service listeners
|
||||
|
||||
## 18.0.0-beta.1 – 2023-11-02
|
||||
### Added
|
||||
- 🗒️ Note to self
|
||||
[#2196](https://github.com/nextcloud/spreed/issues/2196)
|
||||
- 🎙️ Show speaker while screensharing
|
||||
[#4478](https://github.com/nextcloud/spreed/issues/4478)
|
||||
- 🏷️ Add a caption to your file before sharing it into the chat
|
||||
[#5354](https://github.com/nextcloud/spreed/issues/5354)
|
||||
- 👤 Ask Guest to enter a name when connecting
|
||||
[#855](https://github.com/nextcloud/spreed/issues/855)
|
||||
- 🤩 Animated call reactions
|
||||
[#10561](https://github.com/nextcloud/spreed/issues/10561)
|
||||
- 🖋️ Optionally require consent before joining a recorded call
|
||||
[#10348](https://github.com/nextcloud/spreed/issues/10348)
|
||||
- 📲 Allow calling phone numbers from within Talk using SIP dialout
|
||||
[#10346](https://github.com/nextcloud/spreed/issues/10346)
|
||||
|
||||
### Changed
|
||||
- Requires Nextcloud 28
|
||||
- Update several dependencies
|
||||
|
||||
@@ -0,0 +1,551 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 19.0.15 – 2025-04-04
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(calls): Do not reset previous connected users after resuming in a call
|
||||
[#14735](https://github.com/nextcloud/spreed/issues/14735)
|
||||
- fix(sidebar): Show tooltips when Talk is in the sidebar
|
||||
[#14697](https://github.com/nextcloud/spreed/issues/14697)
|
||||
- fix(guests): Fix style and labels on public share page as a guest
|
||||
[#14720](https://github.com/nextcloud/spreed/issues/14720)
|
||||
[#14726](https://github.com/nextcloud/spreed/issues/14726)
|
||||
- fix(calls): Skip password verification for guests that are reconnecting to the call
|
||||
[#14787](https://github.com/nextcloud/spreed/pull/14787)
|
||||
- fix(calls): Fix leaving call if a signaling message is received while reconnecting
|
||||
[#14788](https://github.com/nextcloud/spreed/pull/14788)
|
||||
|
||||
## 19.0.14 – 2025-03-12
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(search): Include caption messages in search results
|
||||
[#14551](https://github.com/nextcloud/spreed/issues/14551)
|
||||
- fix(conversation): Stay in chat when removing a group or team the moderator is a member of
|
||||
[#14395](https://github.com/nextcloud/spreed/issues/14395)
|
||||
- fix(dashboard): Hide lobbied conversations from the dashboard
|
||||
[#14610](https://github.com/nextcloud/spreed/issues/14610)
|
||||
- fix(calls): Further improve false positives when showing the connection warning
|
||||
[#14448](https://github.com/nextcloud/spreed/issues/14448)
|
||||
- fix(reminder): Log when generating a reminder failed
|
||||
[#14616](https://github.com/nextcloud/spreed/issues/14616)
|
||||
|
||||
## 19.0.13 – 2025-02-13
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(bots): Allow users to edit messages of bots in one-to-one conversations
|
||||
[#14360](https://github.com/nextcloud/spreed/issues/14360)
|
||||
- fix(calls): Address some false positives when showing the connection warning
|
||||
[#14250](https://github.com/nextcloud/spreed/issues/14250)
|
||||
- fix(conversation): Don't suggest teams that are already added to the conversation
|
||||
[#14347](https://github.com/nextcloud/spreed/issues/14347)
|
||||
|
||||
## 19.0.12 – 2025-01-16
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(calls): Retain names of guests when they disconnect from the High-performance backend
|
||||
[#13983](https://github.com/nextcloud/spreed/issues/13983)
|
||||
- fix(search): Add pagination support to the conversation search in unified search
|
||||
[#14033](https://github.com/nextcloud/spreed/issues/14033)
|
||||
- fix(setupcheck): Check server times of Webserver nodes and High-performance backend to be in sync
|
||||
[#14015](https://github.com/nextcloud/spreed/issues/14015)
|
||||
- fix(moderation): Allow promoting self-joined users
|
||||
[#14081](https://github.com/nextcloud/spreed/issues/14081)
|
||||
- fix(calls): Fix "Talk while muted" toast
|
||||
[#14026](https://github.com/nextcloud/spreed/issues/14026)
|
||||
- fix(firstrun): Create default conversations when loading the dashboard
|
||||
[#14090](https://github.com/nextcloud/spreed/issues/14090)
|
||||
|
||||
## 19.0.11 – 2024-11-07
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix layout for guests on public conversations
|
||||
[#13620](https://github.com/nextcloud/spreed/issues/13620)
|
||||
- fix(UI): Improve handling of sidebar on mobile view
|
||||
[#12693](https://github.com/nextcloud/spreed/issues/12693)
|
||||
- fix(calls): Fix background blur performance if Server was not upgraded
|
||||
[#13603](https://github.com/nextcloud/spreed/issues/13603)
|
||||
|
||||
## 19.0.10 – 2024-10-10
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(performance): Fade out local blur-filter option for Nextcloud wide setting
|
||||
[#13100](https://github.com/nextcloud/spreed/issues/13100)
|
||||
- fix(avatar): Fix missing translations
|
||||
[#13410](https://github.com/nextcloud/spreed/issues/13410)
|
||||
- fix(chat): Expire message cache when deleting the last message
|
||||
[#13392](https://github.com/nextcloud/spreed/issues/13392)
|
||||
- fix(call): Correctly ignore media offers from users without permissions when internal signaling is used
|
||||
[#13494](https://github.com/nextcloud/spreed/issues/13494)
|
||||
- fix(call): Fix missing call sounds in Safari when tab is moved to the background
|
||||
[#13352](https://github.com/nextcloud/spreed/issues/13352)
|
||||
|
||||
## 19.0.9 – 2024-09-12
|
||||
### Fixed
|
||||
- fix(federation): Fix federation invites accepting from the notification
|
||||
[#13153](https://github.com/nextcloud/spreed/issues/13153)
|
||||
- fix(chat): Fix "You deleted the message" when performed by federated user with same ID
|
||||
[#13250](https://github.com/nextcloud/spreed/issues/13250)
|
||||
- fix(files): Keep order of attachments when sharing multiple
|
||||
[#13099](https://github.com/nextcloud/spreed/issues/13099)
|
||||
- fix(avatar): Don't overwrite user avatar when selecting a square for a conversation
|
||||
[#13277](https://github.com/nextcloud/spreed/issues/13277)
|
||||
|
||||
## 19.0.8 – 2024-08-22
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(settings): hide secrets in password fields
|
||||
[#12842](https://github.com/nextcloud/spreed/issues/12842)
|
||||
- fix(conversation): Fix adding and removing permissions
|
||||
[#13081](https://github.com/nextcloud/spreed/issues/13081)
|
||||
- fix(session): Fix generating session id again if duplicated
|
||||
[#12745](https://github.com/nextcloud/spreed/issues/12745)
|
||||
- fix(sidebar): hide sidebar button in lobby
|
||||
[#13070](https://github.com/nextcloud/spreed/issues/13070)
|
||||
- fix(call): prevent navigating away when clicking on a quote while being in a call
|
||||
[#12841](https://github.com/nextcloud/spreed/issues/12841)
|
||||
- fix(federation): fix system message when removed user has same userId as the moderator
|
||||
[#13054](https://github.com/nextcloud/spreed/issues/13054)
|
||||
- fix(federation): correctly check list of allowed groups when federation is limited
|
||||
[#13069](https://github.com/nextcloud/spreed/issues/13069)
|
||||
- fix(federation): show lobby in federated conversations
|
||||
[#12789](https://github.com/nextcloud/spreed/issues/12789)
|
||||
- fix(federation): don't create system messages inside remote conversations
|
||||
[#12788](https://github.com/nextcloud/spreed/issues/12788)
|
||||
- fix(federation): ignore outdated sessions when generating notifications
|
||||
[#12742](https://github.com/nextcloud/spreed/issues/12742)
|
||||
|
||||
## 19.0.7 – 2024-07-15
|
||||
### Fixed
|
||||
- fix(federation): Fix missing notifications in https-federated conversations (Nextcloud Server 29.0.4 or later - Part 3)
|
||||
[#12724](https://github.com/nextcloud/spreed/pull/12724)
|
||||
- fix(chat): Fix chat not loading new messages anymore in new conversation when switching quickly after writing a message
|
||||
[#12721](https://github.com/nextcloud/spreed/pull/12721)
|
||||
- fix(chat): Fix missing parent message when a chained child message gets edited or deleted
|
||||
[#12719](https://github.com/nextcloud/spreed/pull/12719)
|
||||
|
||||
## 19.0.6 – 2024-07-12
|
||||
### Fixed
|
||||
- fix(chat): Fix broken widgets by updating nextcloud/vue library
|
||||
[#12610](https://github.com/nextcloud/spreed/pull/12610)
|
||||
- fix(chat): Fix sidebar opening and closing
|
||||
[#12610](https://github.com/nextcloud/spreed/pull/12610)
|
||||
- fix(federation): Allow sessions to mark themselves as inactive and block notifications when session is active
|
||||
[#12689](https://github.com/nextcloud/spreed/pull/12689)
|
||||
- fix(federation): Correctly handle federation with Nextcloud Server 29.0.4 or later - Part 2
|
||||
[#12687](https://github.com/nextcloud/spreed/pull/12687)
|
||||
|
||||
## 19.0.5 – 2024-07-11
|
||||
### Fixed
|
||||
- fix(federation): Correctly handle federation with Nextcloud Server 29.0.4 or later
|
||||
[#12663](https://github.com/nextcloud/spreed/pull/12663)
|
||||
- fix(chat): Fix scrolling to a quoted message in the desktop client
|
||||
[#12653](https://github.com/nextcloud/spreed/pull/12653)
|
||||
- fix(conversations): Improve sharing data between different tabs
|
||||
[#12637](https://github.com/nextcloud/spreed/pull/12637)
|
||||
- fix(chat): Improve update of messages list in the sidebar and the chat
|
||||
[#12636](https://github.com/nextcloud/spreed/pull/12636)
|
||||
- fix(chat): Show loading spinner when submitting an edited message
|
||||
[#12674](https://github.com/nextcloud/spreed/pull/12674)
|
||||
- fix(chat): Workaround rendering issue in Safari when unread marker is removed
|
||||
[#12669](https://github.com/nextcloud/spreed/pull/12669)
|
||||
- fix(chat): Fix missing reference data when linking to a federated chat message
|
||||
[#12665](https://github.com/nextcloud/spreed/pull/12665)
|
||||
- fix(chat): Fix contrast of unread counter when being mentioned in the chat during a call
|
||||
[#12605](https://github.com/nextcloud/spreed/pull/12605)
|
||||
- fix(chat): Don't group certain system messages when the actor is different
|
||||
[#12642](https://github.com/nextcloud/spreed/pull/12642)
|
||||
- fix(sharing): Improve performance when loading chat messages with file shares
|
||||
[#12554](https://github.com/nextcloud/spreed/pull/12554)
|
||||
- fix(sharing): Fix share detection within object stores
|
||||
[#12629](https://github.com/nextcloud/spreed/pull/12629)
|
||||
- fix(dashboard): Fix missing dashboard icon
|
||||
[#12673](https://github.com/nextcloud/spreed/pull/12673)
|
||||
|
||||
## 19.0.4 – 2024-06-27
|
||||
### Changed
|
||||
- feat(call): Add option to mirror video preview
|
||||
[#12593](https://github.com/nextcloud/spreed/pull/12593)
|
||||
- feat(call): Add 'Participants' tab to 1-1 calls
|
||||
[#12594](https://github.com/nextcloud/spreed/pull/12594)
|
||||
|
||||
### Fixed
|
||||
- fix(federation): Update federation invites counter
|
||||
[#12544](https://github.com/nextcloud/spreed/pull/12544)
|
||||
- fix(chat): Hide reply button for participants without chat permissions
|
||||
[#12577](https://github.com/nextcloud/spreed/pull/12577)
|
||||
- fix(bots): Show error messages during bots setup
|
||||
[#12572](https://github.com/nextcloud/spreed/pull/12572)
|
||||
- fix(sidebar): Restore missing tab after switching a conversation
|
||||
[#12587](https://github.com/nextcloud/spreed/pull/12587)
|
||||
- fix(chat): Adjust toast message on message deletion
|
||||
[#12589](https://github.com/nextcloud/spreed/pull/12589)
|
||||
- fix(chat): Fix marking conversation as read for hidden messages
|
||||
[#12592](https://github.com/nextcloud/spreed/pull/12592)
|
||||
|
||||
## 19.0.3 – 2024-06-18
|
||||
### Fixed
|
||||
- fix(chat): visual alignment of typing indicator for wide screens
|
||||
[#12521](https://github.com/nextcloud/spreed/pull/12521)
|
||||
- fix(call): remove sound interference in Safari after audio disconnecting
|
||||
[#12534](https://github.com/nextcloud/spreed/pull/12534)
|
||||
|
||||
## 19.0.2 – 2024-06-13
|
||||
### Fixed
|
||||
- fix(call): Fix audio issue in Safari when a user unmutes after a longer time while the tab is inactive
|
||||
[#12511](https://github.com/nextcloud/spreed/pull/12511)
|
||||
- fix(bots): Fix bots with self-signed certificates
|
||||
[#12471](https://github.com/nextcloud/spreed/pull/12471)
|
||||
- fix(chat): Improve scrolling behaviour when reopening a conversation
|
||||
[#12199](https://github.com/nextcloud/spreed/pull/12199)
|
||||
- fix(chat): Better handling of captioned messages in federated conversations
|
||||
[#12375](https://github.com/nextcloud/spreed/pull/12375)
|
||||
- fix(attachments): Fix creating new files from templates
|
||||
[#12488](https://github.com/nextcloud/spreed/pull/12488)
|
||||
- fix(call): Directly sync the preferences with the device selection
|
||||
[#12493](https://github.com/nextcloud/spreed/pull/12493)
|
||||
- fix(call): Give feedback when trying to "Ring" a participant that has DND enabled
|
||||
[#12377](https://github.com/nextcloud/spreed/pull/12377)
|
||||
- fix(breakoutrooms): Don't allow to enable guests in breakout rooms until it's supported
|
||||
[#12457](https://github.com/nextcloud/spreed/pull/12457)
|
||||
- fix(UI): Improve button in mobile UI to use less space
|
||||
[#12473](https://github.com/nextcloud/spreed/pull/12473)
|
||||
|
||||
## 19.0.1 – 2024-05-23
|
||||
### Changed
|
||||
- fix(editing): restore default behaviour of keyboard hotkeys Ctrl+Up
|
||||
[#12254](https://github.com/nextcloud/spreed/pull/12254)
|
||||
- fix: replace emoji-mart-vue-fast lib usage with nextcloud/vue function
|
||||
[#12306](https://github.com/nextcloud/spreed/pull/12306)
|
||||
- feat(capabilities): Expose which capabilities should be considered local vs federated
|
||||
[#12316](https://github.com/nextcloud/spreed/pull/12316)
|
||||
|
||||
### Fixed
|
||||
- fix(call): open chat sidebar in call by click on toast
|
||||
[#12196](https://github.com/nextcloud/spreed/pull/12196)
|
||||
- fix(LeftSidebar): small glitch on sidebar scroll
|
||||
[#12286](https://github.com/nextcloud/spreed/pull/12286)
|
||||
- fix(MessagesList): clean up expired, removed messages from the chat
|
||||
[#12287](https://github.com/nextcloud/spreed/pull/12287)
|
||||
- fix(chat): focus submit on upload attachments without caption
|
||||
[#12296](https://github.com/nextcloud/spreed/pull/12296)
|
||||
- fix(dashboard): Fix dashboard when the last message of a chat expired
|
||||
[#12309](https://github.com/nextcloud/spreed/pull/12309)
|
||||
- fix(notifications): Preparse call notifications for improved performance
|
||||
[#12320](https://github.com/nextcloud/spreed/pull/12320)
|
||||
- fix(polls): Remove actor info from system message
|
||||
[#12344](https://github.com/nextcloud/spreed/pull/12344)
|
||||
- fix(federation): Don't send notifications for most system messages in federation
|
||||
[#12371](https://github.com/nextcloud/spreed/pull/12371)
|
||||
- fix(recording): Stop broken recording backend
|
||||
[#12403](https://github.com/nextcloud/spreed/pull/12403)
|
||||
- fix(recording): Handle the problem gracefully when the recording can not be uploaded
|
||||
[#12404](https://github.com/nextcloud/spreed/pull/12404)
|
||||
|
||||
## 19.0.0 – 2024-04-24
|
||||
### Added
|
||||
- Messages can now be edited by logged-in authors and moderators for one day
|
||||
[#1836](https://github.com/nextcloud/spreed/issues/1836)
|
||||
- Allow todo lists in chat messages to be interactive
|
||||
[#12065](https://github.com/nextcloud/spreed/issues/12065)
|
||||
- Added a "In conversation" search filter
|
||||
[#11456](https://github.com/nextcloud/spreed/issues/11456)
|
||||
- Save unsent messages in browser storage so they survive a page reload or browser restart
|
||||
[#3055](https://github.com/nextcloud/spreed/issues/3055)
|
||||
- Allow to accept individual users when the lobby is enabled
|
||||
[#8601](https://github.com/nextcloud/spreed/issues/8601)
|
||||
- Flavored Markdown in messages
|
||||
[#10066](https://github.com/nextcloud/spreed/issues/10066)
|
||||
- Allow to see all reactions
|
||||
[#11508](https://github.com/nextcloud/spreed/issues/11508)
|
||||
- Preview: Federated chatting
|
||||
[#11231](https://github.com/nextcloud/spreed/issues/11231)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
- Added support for Janus 1.x
|
||||
- Prepare frontend code for a migration to Vue3
|
||||
- Migrated various icons to Material Design icons
|
||||
- Deleting messages is now possible without a time limitation (was 6 hours)
|
||||
[#11408](https://github.com/nextcloud/spreed/issues/11408)
|
||||
- Guests are now rate-limited on mentioning users
|
||||
[#11072](https://github.com/nextcloud/spreed/issues/11072)
|
||||
- Make polls more visible in the chat when they are posted during a call
|
||||
[#11372](https://github.com/nextcloud/spreed/issues/11372)
|
||||
- Bots can now be installed by apps with limited feature flags
|
||||
[#11630](https://github.com/nextcloud/spreed/issues/11630)
|
||||
- Save all previously picked devices to improve the call experience when switching between different working situations
|
||||
[#12067](https://github.com/nextcloud/spreed/issues/12067)
|
||||
|
||||
### Deprecation
|
||||
- Commands: This will be the last major version that supports commands. Please migrate your commands to webhook based bots instead.
|
||||
|
||||
## 19.0.0-rc.6 – 2024-04-22
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): restrict checkbox editing in one-to-one conversations
|
||||
[#12160](https://github.com/nextcloud/spreed/pull/12160)
|
||||
[#12176](https://github.com/nextcloud/spreed/pull/12176)
|
||||
- fix(chat): Fix clearing the input field after file upload
|
||||
[#12061](https://github.com/nextcloud/spreed/issues/12061)
|
||||
- fix(chat): Fix setting known chat messages borders after leaving the conversation
|
||||
[#12183](https://github.com/nextcloud/spreed/pull/12183)
|
||||
- fix(dashboard): Dashboard does not show mentions from federated conversations
|
||||
[#12163](https://github.com/nextcloud/spreed/pull/12163)
|
||||
|
||||
## 19.0.0-rc.5 – 2024-04-18
|
||||
### Changed
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(lobby): Show the timezone and relative time when enabling the lobby
|
||||
[#12135](https://github.com/nextcloud/spreed/issues/12135)
|
||||
- fix(shareIntegration): Fix handle to close and open the right sidebar on publish share links
|
||||
[#12134](https://github.com/nextcloud/spreed/issues/12134)
|
||||
- fix(chat): Fix collapsing grouped system message
|
||||
[#12139](https://github.com/nextcloud/spreed/issues/12139)
|
||||
- fix(attachments): Fix missing icons when creating a file in a chat
|
||||
[#12138](https://github.com/nextcloud/spreed/issues/12138)
|
||||
- fix(media): Fix initial selection of devices
|
||||
[#12152](https://github.com/nextcloud/spreed/pull/12152)
|
||||
[#12146](https://github.com/nextcloud/spreed/pull/12146)
|
||||
|
||||
## 19.0.0-rc.4 – 2024-04-16
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(calls): Correctly pick the device when showing the device picker after a page reload
|
||||
[#12124](https://github.com/nextcloud/spreed/issues/12124)
|
||||
- fix(conversations): Correctly update conversations when the read marker changes via another device or window
|
||||
[#9590](https://github.com/nextcloud/spreed/issues/9590)
|
||||
- fix(chat): Make "silent send" state more obvious for follow up messages
|
||||
[#12118](https://github.com/nextcloud/spreed/issues/12118)
|
||||
- fix(dashboard): Correctly handle 1-1 conversations with unread system messages
|
||||
[#12073](https://github.com/nextcloud/spreed/issues/12073)
|
||||
|
||||
## 19.0.0-rc.3 – 2024-04-11
|
||||
### Added
|
||||
- feat(chat): Allow todo lists to be interactive
|
||||
[#12065](https://github.com/nextcloud/spreed/issues/12065)
|
||||
- feat(devicechecker): Save all previously picked devices instead of the last one
|
||||
[#12067](https://github.com/nextcloud/spreed/issues/12067)
|
||||
- feat(OCM): Register TalkV1 as OCM resource
|
||||
[#12045](https://github.com/nextcloud/spreed/issues/12045)
|
||||
- feat(dashboard): Implement Dashboard Widget APIv2
|
||||
[#12035](https://github.com/nextcloud/spreed/issues/12035)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Mentions in todo lists are not rendered
|
||||
[#12009](https://github.com/nextcloud/spreed/issues/12009)
|
||||
- fix(one2one): Allow the desktop client to handle one-to-one links without a reload
|
||||
[#12047](https://github.com/nextcloud/spreed/issues/12047)
|
||||
- fix(attachments): Ensure all rich object parameters are strings
|
||||
[#12043](https://github.com/nextcloud/spreed/issues/12043)
|
||||
- fix(openapi): Ensure operation IDs are unique
|
||||
[#12030](https://github.com/nextcloud/spreed/issues/12030)
|
||||
- fix(openapi): Object inheritance for chat and proxy messages
|
||||
[#12056](https://github.com/nextcloud/spreed/issues/12056)
|
||||
- fix(chat): Don't close emoji picker when clicking on the search input or a category
|
||||
[#12062](https://github.com/nextcloud/spreed/issues/12062)
|
||||
|
||||
## 19.0.0-rc.2 – 2024-04-04
|
||||
### Added
|
||||
- feat(desktop): Prepare to support screensharing in the desktop client
|
||||
[#12003](https://github.com/nextcloud/spreed/issues/12003)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(federation): Fix posting federated messages with oracle database
|
||||
[#11999](https://github.com/nextcloud/spreed/issues/11999)
|
||||
|
||||
## 19.0.0-rc.1 – 2024-03-28
|
||||
### Added
|
||||
- Add a header to the room list indicating pending invites
|
||||
[#11944](https://github.com/nextcloud/spreed/issues/11944)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Don't close the modal on outside click when the user started to fill them
|
||||
[#11941](https://github.com/nextcloud/spreed/issues/11941)
|
||||
- Fix user confusion when federating with a user that has the same user ID
|
||||
[#11942](https://github.com/nextcloud/spreed/issues/11942)
|
||||
- Don't transfer ownership federated memberships as it doesn't work
|
||||
[#11950](https://github.com/nextcloud/spreed/issues/11950)
|
||||
- Provide the correct container for the file picker
|
||||
[#11939](https://github.com/nextcloud/spreed/issues/11939)
|
||||
- Adjust the cursor to be a grabbing hand when dragging the presenter view
|
||||
[#11903](https://github.com/nextcloud/spreed/issues/11903)
|
||||
- Fix file names overflowing the box when chat is in the right sidebar
|
||||
[#11937](https://github.com/nextcloud/spreed/issues/11937)
|
||||
|
||||
## 19.0.0-beta.5 – 2024-03-26
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Fix handling of cloud ID when provided in wrong casing
|
||||
[#11922](https://github.com/nextcloud/spreed/issues/11922)
|
||||
- Fix flow notifications triggered by own actions and in note-to-self conversations
|
||||
[#11918](https://github.com/nextcloud/spreed/issues/11918)
|
||||
- Hide call related user settings in federated conversations
|
||||
[#11892](https://github.com/nextcloud/spreed/issues/11892)
|
||||
|
||||
## 19.0.0-beta.4 – 2024-03-21
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
|
||||
### Fixed
|
||||
- Adjust read handling in received federated conversations to match normal conversations
|
||||
[#11861](https://github.com/nextcloud/spreed/issues/11861)
|
||||
- Allow inviting federated users while creating a conversation
|
||||
[#11862](https://github.com/nextcloud/spreed/issues/11862)
|
||||
- Fix duplicate messages when sharing recordings or transcripts
|
||||
[#11863](https://github.com/nextcloud/spreed/issues/11863)
|
||||
- Prevent manipulating receiving federated conversations via OCC
|
||||
[#11855](https://github.com/nextcloud/spreed/issues/11855)
|
||||
|
||||
## 19.0.0-beta.3 – 2024-03-19
|
||||
### Added
|
||||
- Preview: Federated chatting - Implemented reminders
|
||||
[#11814](https://github.com/nextcloud/spreed/issues/11814)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
- Provide better OpenAPI data for message parameters
|
||||
[#11807](https://github.com/nextcloud/spreed/issues/11807)
|
||||
|
||||
### Fixed
|
||||
- Fix editing and deleting not reflected correctly in left sidebar for federated conversations
|
||||
[#11839](https://github.com/nextcloud/spreed/issues/11839)
|
||||
- Fix missing expiration of cached messages in federated conversations
|
||||
[#11816](https://github.com/nextcloud/spreed/issues/11816)
|
||||
- Make conversation avatars dark mode again
|
||||
[#11840](https://github.com/nextcloud/spreed/issues/11840)
|
||||
- Reduce the cache time of avatars when the remote was not reachable
|
||||
[#11842](https://github.com/nextcloud/spreed/issues/11842)
|
||||
- Don't notify user about own messages when replying or mentioning themselves
|
||||
[#11815](https://github.com/nextcloud/spreed/issues/11815)
|
||||
- Fix read marker and unread behaviour in federated conversations again
|
||||
[#11810](https://github.com/nextcloud/spreed/issues/11810)
|
||||
- Hide federated conversations from various integrations
|
||||
[#11809](https://github.com/nextcloud/spreed/issues/11809)
|
||||
|
||||
## 19.0.0-beta.2 – 2024-03-14
|
||||
### Added
|
||||
- Preview: Federated chatting - Implemented reactions
|
||||
[#11772](https://github.com/nextcloud/spreed/issues/11772)
|
||||
- Preview: Federated chatting - Implemented polls
|
||||
[#11653](https://github.com/nextcloud/spreed/issues/11653)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
- Mark federated users as such in the participant list
|
||||
[#11771](https://github.com/nextcloud/spreed/issues/11771)
|
||||
|
||||
### Fixed
|
||||
- Fix retry behaviour when the host or federated instance was not reachable
|
||||
[#11780](https://github.com/nextcloud/spreed/issues/11780)
|
||||
- Fix UI spaming chat requests when memory cache was cleared
|
||||
[#11788](https://github.com/nextcloud/spreed/issues/11788)
|
||||
- Fix showing federated users as options when providing a cloudId
|
||||
[#11794](https://github.com/nextcloud/spreed/issues/11794)
|
||||
- Fix read marker and unread behaviour in federated conversations
|
||||
[#11792](https://github.com/nextcloud/spreed/issues/11792)
|
||||
- Notify federated servers when a hosted conversation is deleted
|
||||
[#11790](https://github.com/nextcloud/spreed/issues/11790)
|
||||
- Proxy federation requests with the users language
|
||||
[#11801](https://github.com/nextcloud/spreed/issues/11801)
|
||||
- Fix cursor resetting to the beginning of the input field after having typed a "lower than" or "greater than"
|
||||
[#11803](https://github.com/nextcloud/spreed/issues/11803)
|
||||
- Directly update the conversation data when marking a conversation read or unread
|
||||
[#11678](https://github.com/nextcloud/spreed/issues/11678)
|
||||
- Silent message setting is not remembered with good user experience
|
||||
[#11591](https://github.com/nextcloud/spreed/issues/11591)
|
||||
- Silent call setting is not remembered with good user experience
|
||||
[#8323](https://github.com/nextcloud/spreed/issues/8323)
|
||||
|
||||
### Known issues
|
||||
- Federated chatting: Various features are still visible but not functional
|
||||
|
||||
## 19.0.0-beta.1 – 2024-03-08
|
||||
### Added
|
||||
- Messages can now be edited by logged-in authors and moderators for one day
|
||||
[#1836](https://github.com/nextcloud/spreed/issues/1836)
|
||||
- Added a "In conversation" search filter
|
||||
[#11456](https://github.com/nextcloud/spreed/issues/11456)
|
||||
- Save unsent messages in browser storage so they survive a page reload or browser restart
|
||||
[#3055](https://github.com/nextcloud/spreed/issues/3055)
|
||||
- Allow to accept individual users when the lobby is enabled
|
||||
[#8601](https://github.com/nextcloud/spreed/issues/8601)
|
||||
- Flavored Markdown in messages
|
||||
[#10066](https://github.com/nextcloud/spreed/issues/10066)
|
||||
- Allow to see all reactions
|
||||
[#11508](https://github.com/nextcloud/spreed/issues/11508)
|
||||
- Preview: Federated chatting
|
||||
[#11231](https://github.com/nextcloud/spreed/issues/11231)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update several dependencies
|
||||
- Added support for Janus 1.x
|
||||
- Prepare frontend code for a migration to Vue3
|
||||
- Migrated various icons to Material Design icons
|
||||
- Deleting messages is now possible without a time limitation (was 6 hours)
|
||||
[#11408](https://github.com/nextcloud/spreed/issues/11408)
|
||||
- Guests are now rate-limited on mentioning users
|
||||
[#11072](https://github.com/nextcloud/spreed/issues/11072)
|
||||
- Make polls more visible in the chat when they are posted during a call
|
||||
[#11372](https://github.com/nextcloud/spreed/issues/11372)
|
||||
- Bots can now be installed by apps with limited feature flags
|
||||
[#11630](https://github.com/nextcloud/spreed/issues/11630)
|
||||
|
||||
### Deprecation
|
||||
- Commands: This will be the last major version that supports commands. Please migrate your commands to webhook based bots instead.
|
||||
|
||||
### Known issues
|
||||
- Federated chatting: Various features are still visible but not functional
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 2.0.2 – 2017-11-28
|
||||
### Fixed
|
||||
- Re-send data channels messages when they could not be sent.
|
||||
[#335](https://github.com/nextcloud/spreed/pull/335)
|
||||
|
||||
## 2.0.1 – 2017-05-22
|
||||
### Added
|
||||
- Display the connection state in the interface and try to reconnect in case of an issue
|
||||
[#317](https://github.com/nextcloud/spreed/pull/317)
|
||||
|
||||
### Changed
|
||||
- Is now more tolerant towards server ping issues
|
||||
[#320](https://github.com/nextcloud/spreed/pull/320)
|
||||
|
||||
### Fixed
|
||||
- Fix several issues that caused missing avatars
|
||||
[#312](https://github.com/nextcloud/spreed/pull/312)
|
||||
[#313](https://github.com/nextcloud/spreed/pull/313)
|
||||
- Fix visibility of guest names on light themes
|
||||
[#321](https://github.com/nextcloud/spreed/pull/321)
|
||||
|
||||
## 2.0.0 – 2017-05-02
|
||||
### Added
|
||||
- Screensharing is now supported in Chrome 42+ (requires an extension) and Firefox 52+
|
||||
[#227](https://github.com/nextcloud/spreed/pull/227)
|
||||
- Integration in the new Nextcloud 12 contacts menu
|
||||
[#300](https://github.com/nextcloud/spreed/pull/300)
|
||||
|
||||
### Changed
|
||||
- URLs are now short random strings instead of iteratible numbers
|
||||
[#258](https://github.com/nextcloud/spreed/pull/258)
|
||||
- Logged-in users can now join public rooms
|
||||
[#296](https://github.com/nextcloud/spreed/pull/296)
|
||||
|
||||
### Fixed
|
||||
- Fix error when response of TURN and STUN server arrive in the wrong order
|
||||
[#295](https://github.com/nextcloud/spreed/pull/295)
|
||||
|
||||
|
||||
@@ -0,0 +1,524 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 20.1.10 – 2025-09-18
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Support at-all in captions
|
||||
[#15746](https://github.com/nextcloud/spreed/issues/15746)
|
||||
- fix(chat): Fix loading a completely empty conversation as a guest
|
||||
[#15551](https://github.com/nextcloud/spreed/issues/15551)
|
||||
- fix(conversation): Fix joining and leaving conversations when errors occurred
|
||||
[#15796](https://github.com/nextcloud/spreed/issues/15796)
|
||||
|
||||
## 20.1.9 – 2025-07-17
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(settings): Allow changing call notification level for federated conversations
|
||||
[#15515](https://github.com/nextcloud/spreed/issues/15515)
|
||||
- fix(settings): Fix class name of background job checking certificates
|
||||
[#15463](https://github.com/nextcloud/spreed/issues/15463)
|
||||
- fix(polls): Fix deleting poll drafts
|
||||
[#15535](https://github.com/nextcloud/spreed/issues/15535)
|
||||
|
||||
## 20.1.8 – 2025-07-03
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Remove items from the shared items list when a message is deleted
|
||||
[#15222](https://github.com/nextcloud/spreed/issues/15222)
|
||||
- fix(chat): Allow deleting shared call recordings
|
||||
[#15241](https://github.com/nextcloud/spreed/issues/15241)
|
||||
- fix(federation): Fix sending invites from conversations without an owner
|
||||
[#15353](https://github.com/nextcloud/spreed/issues/15353)
|
||||
- fix(settings): Do not break when settings has an incomplete server URL
|
||||
[#15452](https://github.com/nextcloud/spreed/issues/15452)
|
||||
|
||||
## 20.1.7 – 2025-05-22
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(call): Fix missing call notification when SIP dial-in is starting a call
|
||||
[#14991](https://github.com/nextcloud/spreed/issues/14991)
|
||||
- fix(chat): Improve regex of todo-list handling also uppercase X
|
||||
[#14903](https://github.com/nextcloud/spreed/issues/14903)
|
||||
- fix(one-to-one): Add the other participant when sharing a file in one-to-one
|
||||
[#14850](https://github.com/nextcloud/spreed/issues/14850)
|
||||
- fix(performance): Fix unnecessary user_status requests from avatar component
|
||||
[#14934](https://github.com/nextcloud/spreed/issues/14934)
|
||||
|
||||
## 20.1.6 – 2025-04-10
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix: Improve performance of conversation list
|
||||
[#14810](https://github.com/nextcloud/spreed/issues/14810)
|
||||
[#14830](https://github.com/nextcloud/spreed/issues/14830)
|
||||
[#14834](https://github.com/nextcloud/spreed/issues/14834)
|
||||
- fix: Improve performance when rendering system messages
|
||||
[#14816](https://github.com/nextcloud/spreed/issues/14816)
|
||||
- fix(guests): Allow guests to reload the page without re-entering the password
|
||||
[#14785](https://github.com/nextcloud/spreed/issues/14785)
|
||||
- fix(federation): Fix calls when federated server receive messages in wrong order
|
||||
[#14769](https://github.com/nextcloud/spreed/pull/14769)
|
||||
- fix(calls): Fix call after resuming connection
|
||||
[#14736](https://github.com/nextcloud/spreed/pull/14736)
|
||||
- fix(calls): Fix wrongly showing "Missed call" in one-to-one conversations
|
||||
[#14832](https://github.com/nextcloud/spreed/pull/14832)
|
||||
- fix(workflows): Adjust workflow registration to new mechanism
|
||||
[#14823](https://github.com/nextcloud/spreed/pull/14823)
|
||||
- fix(polls): Hide intermediate results from anonymous polls
|
||||
[#14723](https://github.com/nextcloud/spreed/issues/14723)
|
||||
|
||||
## 20.1.5 – 2025-03-12
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(calls): Improve call related system messages in one-to-one conversations
|
||||
[#14468](https://github.com/nextcloud/spreed/issues/14468)
|
||||
- fix(search): Include caption messages in search results
|
||||
[#14552](https://github.com/nextcloud/spreed/issues/14552)
|
||||
- fix(conversation): Stay in chat when removing a group or team the moderator is a member of
|
||||
[#14396](https://github.com/nextcloud/spreed/issues/14396)
|
||||
- fix(chat): Correctly start loading the chat when the lobby is removed
|
||||
[#14518](https://github.com/nextcloud/spreed/issues/14518)
|
||||
- fix(dashboard): Hide lobbied conversations from the dashboard
|
||||
[#14611](https://github.com/nextcloud/spreed/issues/14611)
|
||||
- fix(calls): Further improve false positives when showing the connection warning
|
||||
[#14449](https://github.com/nextcloud/spreed/issues/14449)
|
||||
- fix(calls): Fix guest displayname when exporting call participants
|
||||
[#14631](https://github.com/nextcloud/spreed/issues/14631)
|
||||
- fix(reminder): Log when generating a reminder failed
|
||||
[#14617](https://github.com/nextcloud/spreed/issues/14617)
|
||||
|
||||
## 20.1.4 – 2025-02-13
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(bots): Allow users to edit messages of bots in one-to-one conversations
|
||||
[#14352](https://github.com/nextcloud/spreed/issues/14352)
|
||||
- fix(calls): Address some false positives when showing the connection warning
|
||||
[#14251](https://github.com/nextcloud/spreed/issues/14251)
|
||||
- fix(dashboard): Hide archived conversations from dashboard unless mentioned
|
||||
[#14298](https://github.com/nextcloud/spreed/issues/14298)
|
||||
- fix(conversation): Don't suggest teams that are already added to the conversation
|
||||
[#14348](https://github.com/nextcloud/spreed/issues/14348)
|
||||
- fix(chat): Fix missing "Copy code" button when syntax is used
|
||||
[#14309](https://github.com/nextcloud/spreed/issues/14309)
|
||||
|
||||
## 20.1.3 – 2025-01-17
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
- Clarify the usage of the High-performance backend and warn when it's not configured
|
||||
[#14065](https://github.com/nextcloud/spreed/issues/14065)
|
||||
|
||||
### Fixed
|
||||
- fix(moderation): Allow promoting self-joined users
|
||||
[#14082](https://github.com/nextcloud/spreed/issues/14082)
|
||||
- fix(firstrun): Create default conversations when loading the dashboard
|
||||
[#14089](https://github.com/nextcloud/spreed/issues/14089)
|
||||
- fix(archive): Don't add asterix to title for unread messages in archived conversations
|
||||
[#14102](https://github.com/nextcloud/spreed/issues/14102)
|
||||
|
||||
## 20.1.1 – 2024-12-19
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
- perf(calls): Add endpoint for clients to specifically check if a call notification is still current
|
||||
[#13950](https://github.com/nextcloud/spreed/issues/13950)
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Add start and end of out-of-office to the note card in one-to-one conversations
|
||||
[#13926](https://github.com/nextcloud/spreed/issues/13926)
|
||||
- fix(chat): Fix chats for offline participants when the chat history was reset
|
||||
[#13965](https://github.com/nextcloud/spreed/issues/13965)
|
||||
- fix(calls): Remove "Share to chat" button from failure notifications of recording summaries
|
||||
[#13941](https://github.com/nextcloud/spreed/issues/13941)
|
||||
- fix(calls): Hide option to start without enabled media when it can not be stored on the server
|
||||
[#13953](https://github.com/nextcloud/spreed/issues/13953)
|
||||
- fix(calls): Retain names of guests when they disconnect from the High-performance backend
|
||||
[#13984](https://github.com/nextcloud/spreed/issues/13984)
|
||||
- fix(calls): Fix missing "Speaking while muted" popup
|
||||
[#14027](https://github.com/nextcloud/spreed/issues/14027)
|
||||
- fix(search): Implement pagination in conversation search results
|
||||
[#14034](https://github.com/nextcloud/spreed/issues/14034)
|
||||
- fix(settings): Confirm server time of High-performance and recording backend in admin settings
|
||||
[#14016](https://github.com/nextcloud/spreed/issues/14016)
|
||||
|
||||
## 20.1.0 – 2024-12-03
|
||||
### Added
|
||||
- Introducing the Nextcloud Talk desktop client for Windows, macOS and Linux
|
||||
[Download](https://nextcloud.com/talk-desktop-install)
|
||||
- feat(calls): Summarize call recordings automatically with AI when installed
|
||||
[#13429](https://github.com/nextcloud/spreed/issues/13429)
|
||||
- feat(chat): Allow to summarize the chat history when there are many unread messages
|
||||
[#13430](https://github.com/nextcloud/spreed/issues/13430)
|
||||
- feat(calls): Allow moderators to download a call participants list
|
||||
[#13453](https://github.com/nextcloud/spreed/issues/13453)
|
||||
- feat(meetings): Allow importing email lists as attendees
|
||||
[#13882](https://github.com/nextcloud/spreed/issues/13882)
|
||||
- feat(email-guests): Identify and recognize guests invited via email address
|
||||
[#6098](https://github.com/nextcloud/spreed/issues/6098)
|
||||
- feat(email-guests): Allow to invite email guests when creating a conversation
|
||||
[#4937](https://github.com/nextcloud/spreed/issues/4937)
|
||||
- feat(polls): Allow to draft, export and import polls
|
||||
[#13439](https://github.com/nextcloud/spreed/issues/13439)
|
||||
- feat(conversations): Allow to archive conversations
|
||||
[#6140](https://github.com/nextcloud/spreed/issues/6140)
|
||||
- feat(conversations): Add direct option to change notification settings to the conversation list again
|
||||
[#13870](https://github.com/nextcloud/spreed/issues/13870)
|
||||
- feat(chat): Add option to directly download attachments
|
||||
[Desktop #824](https://github.com/nextcloud/talk-desktop/issues/824)
|
||||
- feat(voice-messages): Auto play voice messages which are grouped together
|
||||
[#13199](https://github.com/nextcloud/spreed/issues/13199)
|
||||
- feat(calls): Add an option to always disable devices by default
|
||||
[#13446](https://github.com/nextcloud/spreed/issues/13446)
|
||||
- feat(calls): Add option to enable blurred background always by default
|
||||
[#13783](https://github.com/nextcloud/spreed/issues/13783)
|
||||
- feat(conversations): Add settings to automatically lock rooms after days of inactivity
|
||||
[#13448](https://github.com/nextcloud/spreed/issues/13448)
|
||||
- feat(calls): Allow to enforce a maximum call length
|
||||
[#13445](https://github.com/nextcloud/spreed/issues/13445)
|
||||
- feat(chat): Highlight file and object shares with an icon in conversations list
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(conversations): Fix password validation when setting a password
|
||||
[#13890](https://github.com/nextcloud/spreed/issues/13890)
|
||||
- fix(chat): Fix visibility of "Send message without notification" option being enabled
|
||||
[#13824](https://github.com/nextcloud/spreed/issues/13824)
|
||||
- fix(matterbridge): Fix settings disappearing after configuring matterbridge in a conversation
|
||||
[#13786](https://github.com/nextcloud/spreed/issues/13786)
|
||||
- fix(chat): Disable interactiveness of reference by default, to avoid input-focus stealing
|
||||
[#4937](https://github.com/nextcloud/spreed/issues/4937)
|
||||
- fix(avatar): Use person icon for deleted accounts and guests without a name
|
||||
[#13754](https://github.com/nextcloud/spreed/issues/13754)
|
||||
- fix(calls): Omit "with 0 guests" when a call is ended and only 1 logged-in participant joined
|
||||
[#13545](https://github.com/nextcloud/spreed/issues/13545)
|
||||
- fix(polls): rename "Private poll" to "Anonymous poll"
|
||||
- perf: Fix a performance issue when the page is not reloaded over multiple days
|
||||
|
||||
## 20.1.0-rc.3 – 2024-11-28
|
||||
### Added
|
||||
- feat(conversations): Add direct option to change notification settings to the conversation list again
|
||||
[#13870](https://github.com/nextcloud/spreed/issues/13870)
|
||||
- feat(meetings): Allow importing email lists as attendees
|
||||
[#13882](https://github.com/nextcloud/spreed/issues/13882)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(conversation): Fix password validation when setting a password
|
||||
[#13890](https://github.com/nextcloud/spreed/issues/13890)
|
||||
- fix(calls): Don't disable microphone and camera when it was enabled in the device check
|
||||
[#13893](https://github.com/nextcloud/spreed/issues/13893)
|
||||
- fix(chat): Hide "Generate summary" in federated conversations for now
|
||||
[#13881](https://github.com/nextcloud/spreed/issues/13881)
|
||||
- fix(chat): Fix mention suggestions referring to participants of the previous conversation
|
||||
[#13870](https://github.com/nextcloud/spreed/issues/13870)
|
||||
- fix(chat): Links in markdown todo-lists are only clickable with edit permissions
|
||||
[#13865](https://github.com/nextcloud/spreed/issues/13865)
|
||||
|
||||
## 20.1.0-rc.2 – 2024-11-21
|
||||
### Added
|
||||
- feat(chat): Allow to summarize the chat history when there are many unread messages
|
||||
[#13430](https://github.com/nextcloud/spreed/issues/13430)
|
||||
- feat(call): Summarize call recordings automatically with AI when installed
|
||||
[#13429](https://github.com/nextcloud/spreed/issues/13429)
|
||||
- feat(call): Add option to enable blurred background always by default
|
||||
[#13783](https://github.com/nextcloud/spreed/issues/13783)
|
||||
- feat(conversations): Allow to archive conversations
|
||||
[#6140](https://github.com/nextcloud/spreed/issues/6140)
|
||||
- feat(conversations): Add settings to automatically lock rooms after days of inactivity
|
||||
[#13448](https://github.com/nextcloud/spreed/issues/13448)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix visibility of the silent send option being enabled
|
||||
[#13824](https://github.com/nextcloud/spreed/issues/13824)
|
||||
- fix(matterbridge): Fix settings disappearing after configuring matterbridge in a conversation
|
||||
[#13786](https://github.com/nextcloud/spreed/issues/13786)
|
||||
|
||||
## 20.1.0-rc.1 – 2024-11-14
|
||||
### Added
|
||||
- feat(polls): Allow to draft, export and import polls
|
||||
[#13439](https://github.com/nextcloud/spreed/issues/13439)
|
||||
- feat(voice-messages): Auto play voice messages which are grouped together
|
||||
[#13199](https://github.com/nextcloud/spreed/issues/13199)
|
||||
- feat(calls): Allow moderators to download a call participants list
|
||||
[#13453](https://github.com/nextcloud/spreed/issues/13453)
|
||||
- feat(calls): Allow to enforce a maximum call length
|
||||
[#13445](https://github.com/nextcloud/spreed/issues/13445)
|
||||
- feat(chat): Add option to directly download attachments
|
||||
[Desktop #824](https://github.com/nextcloud/talk-desktop/issues/824)
|
||||
- feat(calls): Add an option to always disable devices by default
|
||||
[#13446](https://github.com/nextcloud/spreed/issues/13446)
|
||||
- feat(email-guests): Identify and recognize guests invited via email address
|
||||
[#6098](https://github.com/nextcloud/spreed/issues/6098)
|
||||
- feat(email-guests): Allow to invite email guests when creating a conversation
|
||||
[#4937](https://github.com/nextcloud/spreed/issues/4937)
|
||||
- feat(chat): Highlight file and object shares with an icon in conversations list
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Disable interactiveness of reference by default, to avoid focus stealing
|
||||
[#4937](https://github.com/nextcloud/spreed/issues/4937)
|
||||
- fix(avatar): Use person icon for deleted accounts and guests without a name
|
||||
[#13754](https://github.com/nextcloud/spreed/issues/13754)
|
||||
- fix(call): Omit "with 0 guests" when a call is ended and only 1 logged-in participant joined
|
||||
[#13545](https://github.com/nextcloud/spreed/issues/13545)
|
||||
- fix(polls): rename "Private poll" to "Anonymous poll"
|
||||
- perf: Fix a performance issue when the page is not reloaded over multiple days
|
||||
|
||||
## 20.0.2 – 2024-11-07
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(attachments): Fix a performance issue when opening the file picker in Talk
|
||||
[#13698](https://github.com/nextcloud/spreed/issues/13698)
|
||||
- fix(meetings): Fix layout for guests on public conversations
|
||||
[#13552](https://github.com/nextcloud/spreed/issues/13552)
|
||||
|
||||
## 20.0.1 – 2024-10-10
|
||||
### Added
|
||||
- feat(call): Add wave and fire call reactions
|
||||
[#13349](https://github.com/nextcloud/spreed/issues/13349)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
- fix(chat): Reduce read-width of chat again
|
||||
[#13421](https://github.com/nextcloud/spreed/issues/13421)
|
||||
- fix(signaling): Deprecate using multiple High-performance backends and the fake-clustering mode
|
||||
[#13420](https://github.com/nextcloud/spreed/issues/13420)
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix missing push notifications for chat messages
|
||||
[#13331](https://github.com/nextcloud/spreed/issues/13331)
|
||||
- fix(chat): Correctly update "Today"-date separator when the day changes
|
||||
[#13434](https://github.com/nextcloud/spreed/issues/13434)
|
||||
- fix(call): Correctly ignore media offers from users without permissions when internal signaling is used
|
||||
[#13495](https://github.com/nextcloud/spreed/issues/13495)
|
||||
- fix(chat): Expire message cache when deleting the last message
|
||||
[#13393](https://github.com/nextcloud/spreed/issues/13393)
|
||||
- fix(federation): Send the newest conversation properties when retrying OCM notifications
|
||||
[#13424](https://github.com/nextcloud/spreed/issues/13424)
|
||||
- fix(avatar): Fix missing translations
|
||||
[#13409](https://github.com/nextcloud/spreed/issues/13409)
|
||||
- fix(call): Fix missing call sounds in Safari when tab is moved to the background
|
||||
[#13353](https://github.com/nextcloud/spreed/issues/13353)
|
||||
- fix: Fix several popups and menus in fullscreen mode
|
||||
[#13399](https://github.com/nextcloud/spreed/issues/13399)
|
||||
|
||||
## 20.0.0 – 2024-09-14
|
||||
### Added
|
||||
- Federated calls
|
||||
- Add a task counter for to-do lists in "Note to self" messages
|
||||
- Allow editing "Note to self" messages forever
|
||||
- Show blurhash while loading attachments
|
||||
- Show upcoming event information in conversation
|
||||
- Banning users and guests
|
||||
- Allow to prevent "@all" mentions for non-moderators
|
||||
- Add button to show smart picker
|
||||
- Dispatch events when enabling or disabling bots
|
||||
- Show user status messages of other local users in a federated conversation
|
||||
|
||||
### Changed
|
||||
- Requires Nextcloud 30
|
||||
- High-performance backend with `federation` support is required (Version 2.0.0 or later)
|
||||
- API performance improvements
|
||||
- Dynamic order of tiles in a call to prioritize participants with audio or video
|
||||
- Automatically lower raised hand when participant speaks
|
||||
- Show confirmation dialog when removing a participant
|
||||
- Show description when listing open conversations
|
||||
- Outline the participant count when trying to mention everyone
|
||||
- Show out-of-office replacement in the out-of-office message
|
||||
|
||||
### Known issues
|
||||
- Federation requires the High-performance backend on both servers
|
||||
- Federation requires Talk 20 on both servers
|
||||
|
||||
## 20.0.0-rc.5 – 2024-09-12
|
||||
### Added
|
||||
- Add setup checks for server configuration pitfalls
|
||||
[#13260](https://github.com/nextcloud/spreed/issues/13260)
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix "You deleted the message" when performed by federated user with same ID
|
||||
[#13251](https://github.com/nextcloud/spreed/issues/13251)
|
||||
- fix(chat): Take attachment shares into account when marking a conversation unread
|
||||
[#13253](https://github.com/nextcloud/spreed/issues/13253)
|
||||
- fix(calls): Temporarily disable call button after a moderator ended the call for everyone to avoid recalling
|
||||
[#13268](https://github.com/nextcloud/spreed/issues/13268)
|
||||
- fix(avatar): Don't overwrite user avatar when selecting a square for a conversation
|
||||
[#13278](https://github.com/nextcloud/spreed/issues/13278)
|
||||
|
||||
## 20.0.0-rc.4 – 2024-09-03
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
- Add a task counter for to-do lists in "Note to self" messages
|
||||
[#13034](https://github.com/nextcloud/spreed/issues/13034)
|
||||
|
||||
### Fixed
|
||||
- Fix accepting federation invites from notification
|
||||
[#13146](https://github.com/nextcloud/spreed/issues/13146)
|
||||
- Show error when joining a call failed
|
||||
[#13077](https://github.com/nextcloud/spreed/issues/13077)
|
||||
- Handle OS theme change without page reload
|
||||
[#10774](https://github.com/nextcloud/spreed/issues/10774)
|
||||
- Various design fixes
|
||||
|
||||
## 20.0.0-rc.3 – 2024-08-22
|
||||
### Changed
|
||||
- Update several dependencies
|
||||
- Allow editing "Note to self" messages forever
|
||||
[#13083](https://github.com/nextcloud/spreed/issues/13083)
|
||||
[#13089](https://github.com/nextcloud/spreed/issues/13089)
|
||||
- Add blurhash to files so "previews" can be shown while loading
|
||||
[#13058](https://github.com/nextcloud/spreed/issues/13058)
|
||||
[#13075](https://github.com/nextcloud/spreed/issues/13075)
|
||||
|
||||
### Fixed
|
||||
- fix(federation): Fix propagating permissions, recording consent, permissions and more
|
||||
- Don't break when joining an open conversation
|
||||
[#13090](https://github.com/nextcloud/spreed/issues/13090)
|
||||
- Fix signaling server check for Desktop Client so that Nextcloud 29 does not need the newest version
|
||||
[#13094](https://github.com/nextcloud/spreed/issues/13094)
|
||||
- fix(settings): Hide unused settings in (former) one-to-one conversations
|
||||
[#13046](https://github.com/nextcloud/spreed/issues/13046)
|
||||
- fix(sidebar): Fix row-style of attachments
|
||||
[#13044](https://github.com/nextcloud/spreed/issues/13044)
|
||||
- fix(federation): fix system message when removed user has same userId as the moderator
|
||||
[#13055](https://github.com/nextcloud/spreed/issues/13055)
|
||||
- fix(federation): correctly check list of allowed groups when federation is limited
|
||||
[#13067](https://github.com/nextcloud/spreed/issues/13067)
|
||||
|
||||
## 20.0.0-rc.2 – 2024-08-16
|
||||
### Fixed
|
||||
- Adjust conversation list density
|
||||
[#13013](https://github.com/nextcloud/spreed/issues/13013)
|
||||
|
||||
## 20.0.0-rc.1 – 2024-08-15
|
||||
### Added
|
||||
- Show upcoming event information (up to 1 month) in conversation top bar
|
||||
[#12984](https://github.com/nextcloud/spreed/issues/12984)
|
||||
|
||||
### Fixed
|
||||
- Show user status messages of other local users in a federated conversation
|
||||
[#12982](https://github.com/nextcloud/spreed/issues/12982)
|
||||
- Don't trigger notifications for system messages in federated conversations
|
||||
[#12985](https://github.com/nextcloud/spreed/issues/12985)
|
||||
- Add a quick option to log-in when visiting a public conversation as a guest
|
||||
[#12988](https://github.com/nextcloud/spreed/issues/12988)
|
||||
- Save displayname immediately when inviting a federated account
|
||||
[#12954](https://github.com/nextcloud/spreed/issues/12954)
|
||||
- Show error messages when uploading a file failed
|
||||
[#12919](https://github.com/nextcloud/spreed/issues/12919)
|
||||
- Add a hint how to add federated accounts
|
||||
[#12916](https://github.com/nextcloud/spreed/issues/12916)
|
||||
- Retain order of attachments when uploading multiple
|
||||
[#12904](https://github.com/nextcloud/spreed/issues/12904)
|
||||
- Don't allow to enable bots in former one-to-one conversations
|
||||
[#12893](https://github.com/nextcloud/spreed/issues/12893)
|
||||
- Hide ban option for federated accounts as they are not supported for now
|
||||
[#12980](https://github.com/nextcloud/spreed/issues/12980)
|
||||
- Various design fixes
|
||||
|
||||
## 20.0.0-beta.3 – 2024-08-06
|
||||
### Fixed
|
||||
- Disallow setting message expiration in former one-to-one conversations
|
||||
[#12882](https://github.com/nextcloud/spreed/issues/12882)
|
||||
- Show avatar thumbnail for former one-to-one conversations
|
||||
[#12886](https://github.com/nextcloud/spreed/issues/12886)
|
||||
- Hide Ban section in "Note to self" conversation settings
|
||||
[#12889](https://github.com/nextcloud/spreed/pull/12889)
|
||||
- Disallow banned user to be added to the conversation
|
||||
[#12793](https://github.com/nextcloud/spreed/issues/12793)
|
||||
- Disable call button in a federated chat when its settings was changed
|
||||
[#12864](https://github.com/nextcloud/spreed/issues/12864)
|
||||
- More UI changes according to design review
|
||||
[#12800](https://github.com/nextcloud/spreed/issues/12800)
|
||||
|
||||
## 20.0.0-beta.2 – 2024-08-01
|
||||
### Fixed
|
||||
- fix(calls): Add notifications for federated calls
|
||||
[#12845](https://github.com/nextcloud/spreed/issues/12845)
|
||||
[#12856](https://github.com/nextcloud/spreed/issues/12856)
|
||||
[#12874](https://github.com/nextcloud/spreed/issues/12874)
|
||||
- fix(calls): Fix broken avatar of remote users in calls
|
||||
[#12863](https://github.com/nextcloud/spreed/issues/12863)
|
||||
- fix(videoverification): Fix design
|
||||
[#12853](https://github.com/nextcloud/spreed/issues/12853)
|
||||
- fix(chat): Prevent leave call dialog when canceling quoting
|
||||
[#12824](https://github.com/nextcloud/spreed/issues/12824)
|
||||
- fix(UI): More design adjustments for nextcloud/vue changes
|
||||
[#12810](https://github.com/nextcloud/spreed/issues/12810)
|
||||
|
||||
## 20.0.0-beta.1 – 2024-07-26
|
||||
### Added
|
||||
- Banning users and guests
|
||||
[#12291](https://github.com/nextcloud/spreed/issues/12291)
|
||||
- Allow to prevent "@all" mentions for non-moderators
|
||||
[#9074](https://github.com/nextcloud/spreed/issues/9074)
|
||||
- Add button to show smart picker
|
||||
[#12250](https://github.com/nextcloud/spreed/issues/12250)
|
||||
- Dispatch events when enabling or disabling bots
|
||||
[#12551](https://github.com/nextcloud/spreed/pull/12551)
|
||||
- Preview: Federated calls
|
||||
[#11232](https://github.com/nextcloud/spreed/issues/11232)
|
||||
|
||||
### Changed
|
||||
- Requires Nextcloud 30
|
||||
- External signaling requires [federation support](https://github.com/strukturag/nextcloud-spreed-signaling/pull/776)
|
||||
- API performance improvements
|
||||
- Dynamic order of tiles in a call
|
||||
[#11393](https://github.com/nextcloud/spreed/issues/11393)
|
||||
- Automatically lower raised hand when participant speaks
|
||||
[#12399](https://github.com/nextcloud/spreed/issues/12399)
|
||||
- Show confirmation dialog when removing a participant
|
||||
[#12543](https://github.com/nextcloud/spreed/pull/12543)
|
||||
- Show description when listing open conversations
|
||||
[#12209](https://github.com/nextcloud/spreed/issues/12209)
|
||||
- Outline the participant count when trying to mention everyone
|
||||
[#12782](https://github.com/nextcloud/spreed/pull/12782)
|
||||
- Show out-of-office replacement in the out-of-office message
|
||||
[#12510](https://github.com/nextcloud/spreed/pull/12510)
|
||||
|
||||
### Known issues
|
||||
- Design: not fully adjusted to changes in Nextcloud 30
|
||||
- Federated calls: broken participant avatars and missing call notifications
|
||||
|
||||
@@ -0,0 +1,526 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 21.1.11 – 2026-04-30
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(calendar): Fix calendar meeting integration after a session related change in server
|
||||
[#17818](https://github.com/nextcloud/spreed/pull/17818)
|
||||
- fix(federation): Check session id when leaving a conversation
|
||||
[#17866](https://github.com/nextcloud/spreed/pull/17866)
|
||||
|
||||
## 21.1.10 – 2026-04-02
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(signaling): Check recipient room with internal signaling
|
||||
[#17578](https://github.com/nextcloud/spreed/pull/17578)
|
||||
- fix(signaling): Limit signaling support without conversation-token
|
||||
[#17588](https://github.com/nextcloud/spreed/pull/17588)
|
||||
- fix(signaling): Expect nonce on request when setting up hosted signaling server
|
||||
[#17581](https://github.com/nextcloud/spreed/pull/17581)
|
||||
|
||||
## 21.1.9 – 2026-02-12
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(mobile-clients): Fix error message for Talk iOS when end-to-end encryption for calls is enabled
|
||||
[#17002](https://github.com/nextcloud/spreed/pull/17002)
|
||||
- fix(breakout-rooms): Fix managing existing breakout rooms in conversation settings
|
||||
[#16967](https://github.com/nextcloud/spreed/pull/16967)
|
||||
- fix(chat): Fix system messages with email-invited guests
|
||||
[#16869](https://github.com/nextcloud/spreed/pull/16869)
|
||||
- fix(federation): Abort requests early when federation is disabled
|
||||
[#16962](https://github.com/nextcloud/spreed/pull/16962)
|
||||
- fix(signaling): Unify request validation for HPB, recording and other services
|
||||
[#17073](https://github.com/nextcloud/spreed/pull/17073)
|
||||
|
||||
## 21.1.8 – 2026-01-15
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Allow getting a single message
|
||||
[#16732](https://github.com/nextcloud/spreed/pull/16732)
|
||||
- fix(call): Allow selecting a media device after an error occurred
|
||||
[#16700](https://github.com/nextcloud/spreed/pull/16700)
|
||||
- fix(call): Still block mobile clients when call end-to-end encryption is enabled
|
||||
[#16673](https://github.com/nextcloud/spreed/pull/16673)
|
||||
|
||||
## 21.1.7 – 2025-12-15
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Correctly expire shared items in sidebar
|
||||
[#16573](https://github.com/nextcloud/spreed/pull/16573)
|
||||
- fix(call): Show video streams of other attendees for guests
|
||||
[#16546](https://github.com/nextcloud/spreed/pull/16546)
|
||||
|
||||
## 21.1.6 – 2025-12-11
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(call): Fix low frame rate in the grid layout
|
||||
[#16389](https://github.com/nextcloud/spreed/pull/16389)
|
||||
- fix(call): Keep media disabled when reassigning permissions
|
||||
[#16521](https://github.com/nextcloud/spreed/pull/16521)
|
||||
- fix(chat): Fix resetting the cursor to the end of the message when editing
|
||||
[#16300](https://github.com/nextcloud/spreed/pull/16300)
|
||||
- fix(chat): Don't show typing indicator when editing a message
|
||||
[#16140](https://github.com/nextcloud/spreed/pull/16140)
|
||||
- fix(search): Fix short date style in message search
|
||||
[#16232](https://github.com/nextcloud/spreed/pull/16232)
|
||||
- fix(settings): Hide message expiration when not supported by the server
|
||||
[#16317](https://github.com/nextcloud/spreed/pull/16317)
|
||||
- fix(settings): Don't transfer ownership of sample conversations
|
||||
[#16177](https://github.com/nextcloud/spreed/pull/16177)
|
||||
- fix(settings): Fix a missing check when configuring Matterbridge
|
||||
[#16523](https://github.com/nextcloud/spreed/pull/16523)
|
||||
|
||||
## 21.1.5 – 2025-09-18
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Validate file name when creating from template instead of failing afterwards
|
||||
[#15919](https://github.com/nextcloud/spreed/issues/15919)
|
||||
- fix(conversation): Fix spacing between items in conversation list when forwarding
|
||||
[#15812](https://github.com/nextcloud/spreed/issues/15812)
|
||||
- fix(conversation): Fix joining and leaving conversations when errors occurred
|
||||
[#15797](https://github.com/nextcloud/spreed/issues/15797)
|
||||
|
||||
## 21.1.4 – 2025-08-28
|
||||
### Added
|
||||
- feat(sip): Allow to send the direct dial-in number of users on out-going calls
|
||||
[#15701](https://github.com/nextcloud/spreed/issues/15701)
|
||||
- feat(settings): Add a config for the unread message threshold for the AI summary
|
||||
[#15734](https://github.com/nextcloud/spreed/issues/15734)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(dashboard): Fix events without an end date
|
||||
[#15732](https://github.com/nextcloud/spreed/issues/15732)
|
||||
- fix(chat): Suggest mentioning yourself, it's useful with bots and todos
|
||||
[#15656](https://github.com/nextcloud/spreed/issues/15656)
|
||||
- fix(chat): Fix search interaction when scrolling away and clicking on a result again
|
||||
[#15706](https://github.com/nextcloud/spreed/issues/15706)
|
||||
- fix(chat): Fix support for at-all in captions when sharing a file
|
||||
[#15744](https://github.com/nextcloud/spreed/issues/15744)
|
||||
|
||||
## 21.1.3 – 2025-08-06
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(meetings): invitation emails for Talk created events not sent
|
||||
[#15634](https://github.com/nextcloud/spreed/issues/15634)
|
||||
- fix(dashboard): don't show cancelled events in upcoming events
|
||||
[#15544](https://github.com/nextcloud/spreed/issues/15544)
|
||||
- fix(dashboard): prevent accidentally forwarding guests to dashboard via Esc key
|
||||
[#15560](https://github.com/nextcloud/spreed/issues/15560)
|
||||
- fix(chat): close Download menu after interaction
|
||||
[#15587](https://github.com/nextcloud/spreed/issues/15587)
|
||||
- fix(chat): empty content for guests after chat is cleared
|
||||
[#15550](https://github.com/nextcloud/spreed/issues/15550)
|
||||
- fix(chat): fix search result scroll when clicking twice
|
||||
[#15612](https://github.com/nextcloud/spreed/issues/15612)
|
||||
|
||||
## 21.1.2 – 2025-07-17
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(federation): Make sure some capabilities are correctly used from the remote host
|
||||
[#15507](https://github.com/nextcloud/spreed/issues/15507)
|
||||
- fix(settings): Allow changing call notification level for federated conversations
|
||||
[#15516](https://github.com/nextcloud/spreed/issues/15516)
|
||||
- fix(settings): Fix class name of background job checking certificates
|
||||
[#15464](https://github.com/nextcloud/spreed/issues/15464)
|
||||
- fix(settings): Fix false-negative error being shown on certificate check if another check failed an SSL call
|
||||
[#15525](https://github.com/nextcloud/spreed/issues/15525)
|
||||
- fix(polls): Fix deleting poll drafts
|
||||
[#15536](https://github.com/nextcloud/spreed/issues/15536)
|
||||
|
||||
## 21.1.1 – 2025-07-03
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Always render code blocks left-to-right
|
||||
[#15364](https://github.com/nextcloud/spreed/issues/15364)
|
||||
- fix(call): Allow end-to-end encrypted calls in integrations like files and sharing
|
||||
[#15415](https://github.com/nextcloud/spreed/issues/15415)
|
||||
- fix(sip): Add log message when direct dial-in had no match to help configuring phone numbers
|
||||
[#15358](https://github.com/nextcloud/spreed/issues/15358)
|
||||
- fix(federation): Fix sending invites from conversations without an owner
|
||||
[#15354](https://github.com/nextcloud/spreed/issues/15354)
|
||||
- fix(settings): Show errors when the websocket connection could not be opened
|
||||
[#15368](https://github.com/nextcloud/spreed/issues/15368)
|
||||
- fix(settings): Validate that signaling private and public key match
|
||||
[#15357](https://github.com/nextcloud/spreed/issues/15357)
|
||||
- fix(settings): Do not break when settings has an incomplete server URL
|
||||
[#15453](https://github.com/nextcloud/spreed/issues/15453)
|
||||
|
||||
## 21.1.0 – 2025-06-05
|
||||
### Added
|
||||
- 📅 Improve handling of event conversations: filtered until close to the meeting, default expiration, tracking of event name and description
|
||||
- 👥 Allow adding participants to one-to-one calls creating a new conversation
|
||||
- 🍱 Add a Talk Dashboard
|
||||
- 📇 Enhance right sidebar in one-to-one conversations with information about the participant
|
||||
- 📲 Allow SIP direct dial-in to start a new conversation with an existing Nextcloud account
|
||||
- 🖌️ Allow to provide custom images for virtual backgrounds for branding or corporate appearance
|
||||
- 🔈 Allow selecting the output device in the media settings
|
||||
- ☎️ Administration setting to enable SIP dial-in by default for new conversations
|
||||
- 📅 Allow creating instant meetings
|
||||
- 🔏 Add sensitive conversations which don't show chat messages in sublines and notifications
|
||||
- 📲 Add option to mark a conversation as important to still receive notifications during "Do not disturb"
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
## 21.1.0-rc.4 – 2025-05-29
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(dashboard): Add attachment icon and link to the events on the dashboard
|
||||
[#15238](https://github.com/nextcloud/spreed/issues/15238)
|
||||
- fix(meetings): Don't show duplicates for the same event in the upcoming meetings
|
||||
[#15252](https://github.com/nextcloud/spreed/issues/15252)
|
||||
- fix(meetings): Lock conversation when meeting is cancelled
|
||||
[#15253](https://github.com/nextcloud/spreed/issues/15253)
|
||||
- fix(sip): Allow guests to use direct-dial-in even when starting calls is restricted
|
||||
[#15234](https://github.com/nextcloud/spreed/issues/15234)
|
||||
|
||||
## 21.1.0-rc.3 – 2025-05-22
|
||||
### Added
|
||||
- 📲 🙊 Add option to mark a conversation as sensitive or important
|
||||
[#15175](https://github.com/nextcloud/spreed/issues/15175)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix missing push notifications for chat messages in important conversations
|
||||
[#15180](https://github.com/nextcloud/spreed/issues/15180)
|
||||
- fix(dashboard): Make sure all events of the upcoming week are considered
|
||||
[#15177](https://github.com/nextcloud/spreed/issues/15177)
|
||||
- fix(conversations): Make the "Local time" reactive in one-to-one conversations
|
||||
[#15130](https://github.com/nextcloud/spreed/issues/15130)
|
||||
- fix(conversations): Only show events in one-to-one conversations when upcoming recurrences contain both participants
|
||||
[#15163](https://github.com/nextcloud/spreed/issues/15163)
|
||||
- fix(conversations): Fix background job for conversation retention
|
||||
[#15185](https://github.com/nextcloud/spreed/issues/15185)
|
||||
- fix(calls): Don't break the session when the user accidentally navigated to the same conversation
|
||||
[#15170](https://github.com/nextcloud/spreed/issues/15170)
|
||||
- fix(calls): Make output device selection work on Safari
|
||||
[#15142](https://github.com/nextcloud/spreed/issues/15142)
|
||||
|
||||
## 21.1.0-rc.2 – 2025-05-15
|
||||
### Added
|
||||
- 🍱 Add a Talk Dashboard
|
||||
[#15094](https://github.com/nextcloud/spreed/issues/15094)
|
||||
- 📅 Allow creating instant meetings
|
||||
[#15073](https://github.com/nextcloud/spreed/issues/15073)
|
||||
- 🤝 Show mutual events in the sidebar of one-to-one
|
||||
[#15097](https://github.com/nextcloud/spreed/issues/15097)
|
||||
- 🙊 Add sensitive conversations which don't show a chat messages in sublines and notifications
|
||||
[#15098](https://github.com/nextcloud/spreed/issues/15098)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- Send call notification to newly added participants
|
||||
[#15090](https://github.com/nextcloud/spreed/issues/15090)
|
||||
- Fix issues with calendar event integration
|
||||
[#15078](https://github.com/nextcloud/spreed/issues/15078)
|
||||
[#15080](https://github.com/nextcloud/spreed/issues/15080)
|
||||
|
||||
## 21.1.0-rc.1 – 2025-05-09
|
||||
### Added
|
||||
- 📅 Improve handling of event conversations: filtered until close to the meeting, default expiration, tracking of event name and description
|
||||
[#14401](https://github.com/nextcloud/spreed/issues/14401)
|
||||
- 👥 Allow adding participants to one-to-one calls creating a new conversation
|
||||
[#14398](https://github.com/nextcloud/spreed/issues/14398)
|
||||
- 📇 Enhance right sidebar in one-to-one conversations with information about the participant
|
||||
[#14411](https://github.com/nextcloud/spreed/issues/14411)
|
||||
- 📲 Allow SIP direct dial-in to start a new conversation with an existing Nextcloud account
|
||||
[#14992](https://github.com/nextcloud/spreed/issues/14992)
|
||||
- 🖌️ Allow to provide custom images for virtual backgrounds for branding or corporate appearance
|
||||
[#14987](https://github.com/nextcloud/spreed/issues/14987)
|
||||
- 🔈 Allow selecting the output device in the media settings
|
||||
[#15037](https://github.com/nextcloud/spreed/issues/15037)
|
||||
- ☎️ Administration setting to allow to enable SIP dial-in by default for new conversations
|
||||
[#14940](https://github.com/nextcloud/spreed/issues/14940)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
## 21.0.4 – 2025-04-28
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(schedule-meeting): Make sure the other user is in one-to-one when scheduling
|
||||
[#14973](https://github.com/nextcloud/spreed/issues/14973)
|
||||
[#14967](https://github.com/nextcloud/spreed/issues/14967)
|
||||
- fix(schedule-meeting): Improve dialog when scheduling in one-to-one
|
||||
[#14923](https://github.com/nextcloud/spreed/issues/14923)
|
||||
- fix(schedule-meeting): Hide schedule meeting from former one-to-one
|
||||
[#14923](https://github.com/nextcloud/spreed/issues/14923)
|
||||
- fix(performance): Fix unnecessary user_status requests from avatar component
|
||||
[#14932](https://github.com/nextcloud/spreed/issues/14932)
|
||||
|
||||
## 21.0.3 – 2025-04-17
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(avatar): Fix regression from library requesting too many status updates
|
||||
[#14894](https://github.com/nextcloud/spreed/issues/14894)
|
||||
- fix(chat): Improve regex of todo-list handling also uppercase X
|
||||
[#14904](https://github.com/nextcloud/spreed/issues/14904)
|
||||
- fix(federation): Use correct capability to show call-notification setting in federated conversations
|
||||
[#14907](https://github.com/nextcloud/spreed/issues/14907)
|
||||
|
||||
## 21.0.2 – 2025-04-10
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix: Improve performance of conversation list
|
||||
[#14811](https://github.com/nextcloud/spreed/issues/14811)
|
||||
[#14779](https://github.com/nextcloud/spreed/issues/14779)
|
||||
[#14777](https://github.com/nextcloud/spreed/issues/14777)
|
||||
[#14775](https://github.com/nextcloud/spreed/issues/14775)
|
||||
[#14774](https://github.com/nextcloud/spreed/issues/14774)
|
||||
[#14831](https://github.com/nextcloud/spreed/issues/14831)
|
||||
- fix: Improve performance when rendering system messages
|
||||
[#14817](https://github.com/nextcloud/spreed/issues/14817)
|
||||
- fix: Improve performance when searching for conversations
|
||||
[#14734](https://github.com/nextcloud/spreed/issues/14734)
|
||||
- fix(chat): Fix missing reactions on own messages while posting
|
||||
[#14695](https://github.com/nextcloud/spreed/pull/14695)
|
||||
- fix(guests): Allow guests to reload the page without re-entering the password
|
||||
[#14786](https://github.com/nextcloud/spreed/issues/14786)
|
||||
- fix(federation): Fix calls when federated server receive messages in wrong order
|
||||
[#14770](https://github.com/nextcloud/spreed/pull/14770)
|
||||
- fix(calls): Fix call after resuming connection
|
||||
[#14737](https://github.com/nextcloud/spreed/pull/14737)
|
||||
- fix(calls): Fix wrongly showing "Missed call" in one-to-one conversations
|
||||
[#14833](https://github.com/nextcloud/spreed/pull/14833)
|
||||
- fix(calls): Fix videos in the last row being cut off
|
||||
[#14692](https://github.com/nextcloud/spreed/pull/14692)
|
||||
- fix(calls): Prevent screen from turning off during calls
|
||||
[#14733](https://github.com/nextcloud/spreed/pull/14733)
|
||||
- fix(settings): Fix initial state of end-to-end-encrypted calls setting
|
||||
[#14693](https://github.com/nextcloud/spreed/pull/14693)
|
||||
- fix(events): Automatically confirm the calendar event for the organizer
|
||||
[#14762](https://github.com/nextcloud/spreed/pull/14762)
|
||||
- fix(workflows): Adjust workflow registration to new mechanism
|
||||
[#14823](https://github.com/nextcloud/spreed/pull/14823)
|
||||
- fix(polls): Hide intermediate results from anonymous polls
|
||||
[#14724](https://github.com/nextcloud/spreed/issues/14724)
|
||||
|
||||
## 21.0.1 – 2025-03-12
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(calls): Improve call related system messages in one-to-one conversations
|
||||
[#14495](https://github.com/nextcloud/spreed/issues/14495)
|
||||
- fix(search): Include caption messages in search results
|
||||
[#14553](https://github.com/nextcloud/spreed/issues/14553)
|
||||
- fix(chat): Show loading spinner when requesting AI chat summary
|
||||
[#14625](https://github.com/nextcloud/spreed/issues/14625)
|
||||
- fix(chat): Correctly start loading the chat when the lobby is removed
|
||||
[#14517](https://github.com/nextcloud/spreed/issues/14517)
|
||||
- fix(dashboard): Hide lobbied conversations from the dashboard
|
||||
[#14612](https://github.com/nextcloud/spreed/issues/14612)
|
||||
- fix(federation): Fix broken participant avatar when federated instance is down
|
||||
[#14573](https://github.com/nextcloud/spreed/issues/14573)
|
||||
- fix(conversation): Fix participant list change when the menu for a participant is open
|
||||
[#14564](https://github.com/nextcloud/spreed/issues/14564)
|
||||
- fix(calls): Fix guest displayname when exporting call participants
|
||||
[#14630](https://github.com/nextcloud/spreed/issues/14630)
|
||||
- fix(reminder): Log when generating a reminder failed
|
||||
[#14618](https://github.com/nextcloud/spreed/issues/14618)
|
||||
|
||||
## 21.0.0 – 2025-02-25
|
||||
### Added
|
||||
- feat(meetings): Schedule a meeting directly from within the conversation
|
||||
- feat(chat): Support mentioning teams in the chat
|
||||
- feat(chat): Add message search to the right sidebar
|
||||
- feat(bots): Allow bots to get invoked for reactions
|
||||
- feat(bots): Let bots know the original message in case a message was a reply
|
||||
- feat(bots): Allow event based bots that don't require HTTP requests
|
||||
- feat(calls): Add end-to-end encryption for calls with the High-performance backend
|
||||
- feat(calls): Allow to zoom and pan screenshares in a call
|
||||
- feat(conversations): Add sample conversation mechanism
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
- Require Nextcloud 31 / Hub 10
|
||||
|
||||
### Fixed
|
||||
- fix(UI): Fix various issues for right-to-left languages
|
||||
|
||||
## 21.0.0-rc.5 – 2025-02-21
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Mark mentions of teams you are a part of primary
|
||||
[#14455](https://github.com/nextcloud/spreed/issues/14455)
|
||||
- fix(federation): Fix "remote server was updated" shown too frequently
|
||||
[#14389](https://github.com/nextcloud/spreed/issues/14389)
|
||||
|
||||
## 21.0.0-rc.4 – 2025-02-13
|
||||
### Added
|
||||
- feat(bots): Allow bots to get invoked for reactions
|
||||
[#14336](https://github.com/nextcloud/spreed/issues/14336)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(bots): Allow users to edit messages of bots in one-to-one conversations
|
||||
[#14353](https://github.com/nextcloud/spreed/issues/14353)
|
||||
- fix(conversation): Correctly update team names after being edited
|
||||
[#14358](https://github.com/nextcloud/spreed/issues/14358)
|
||||
- fix(conversation): Don't suggest teams that are already added to the conversation
|
||||
[#14349](https://github.com/nextcloud/spreed/issues/14349)
|
||||
- fix(meetings): Fix calendar integration for Desktop client
|
||||
[#14379](https://github.com/nextcloud/spreed/issues/14379)
|
||||
- fix(calls): Fix issues with presenter overlay
|
||||
[#14330](https://github.com/nextcloud/spreed/issues/14330)
|
||||
[#14371](https://github.com/nextcloud/spreed/issues/14371)
|
||||
|
||||
## 21.0.0-rc.3 – 2025-02-07
|
||||
### Added
|
||||
- feat(bots): Let bots know when a message was a reply
|
||||
[#14310](https://github.com/nextcloud/spreed/issues/14310)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
- fix(calls): Adjust double-click behaviour when zooming screenshares
|
||||
[#14284](https://github.com/nextcloud/spreed/issues/14284)
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix double scroll bar
|
||||
[#14265](https://github.com/nextcloud/spreed/issues/14265)
|
||||
- fix(chat): Keep chat position at the bottom when the chat list height expends
|
||||
[#14268](https://github.com/nextcloud/spreed/issues/14268)
|
||||
- fix(chat): Fix missing "Copy code" in some cases
|
||||
[#14308](https://github.com/nextcloud/spreed/issues/14308)
|
||||
- fix(archive): Hide archived conversations from dashboard unless mentioned
|
||||
[#14299](https://github.com/nextcloud/spreed/issues/14299)
|
||||
- fix(chat): Add mention-id to simplify editing messages with mentions
|
||||
[#14311](https://github.com/nextcloud/spreed/issues/14311)
|
||||
|
||||
## 21.0.0-rc.2 – 2025-01-30
|
||||
### Added
|
||||
- feat(chat): Support mentioning teams
|
||||
[#14259](https://github.com/nextcloud/spreed/issues/14259)
|
||||
[#14260](https://github.com/nextcloud/spreed/issues/14260)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(UI): Fix multiple right-to-left issues
|
||||
[#14235](https://github.com/nextcloud/spreed/issues/14235)
|
||||
[#14256](https://github.com/nextcloud/spreed/issues/14256)
|
||||
- fix(meetings): Allow creating conversations when password policy app is enabled
|
||||
[#14227](https://github.com/nextcloud/spreed/issues/14227)
|
||||
- fix(calls): Fix multiple false-positives when showing the connection warning
|
||||
[#14252](https://github.com/nextcloud/spreed/issues/14252)
|
||||
- fix(bots): Fix installing PHP event bots via an event
|
||||
[#14231](https://github.com/nextcloud/spreed/issues/14231)
|
||||
|
||||
## 21.0.0-rc.1 – 2025-01-23
|
||||
### Added
|
||||
- feat(calls): Allow to zoom and pan screenshares in a call
|
||||
[#14028](https://github.com/nextcloud/spreed/issues/14028)
|
||||
- feat(bots): Allow event based bots that don't require HTTP requests
|
||||
[#14160](https://github.com/nextcloud/spreed/issues/14160)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- docs: Add quick install documentation for the High-performance backend
|
||||
[#14165](https://github.com/nextcloud/spreed/issues/14165)
|
||||
|
||||
## 21.0.0-beta.2 – 2025-01-17
|
||||
### Added
|
||||
- feat(search): Add message search to the right sidebar
|
||||
[#14125](https://github.com/nextcloud/spreed/issues/14125)
|
||||
- feat(conversations): Add sample conversation mechanism
|
||||
[#14124](https://github.com/nextcloud/spreed/issues/14124)
|
||||
- feat(calls): Add end-to-end encryption for calls with the High-performance backend
|
||||
[#14005](https://github.com/nextcloud/spreed/issues/14005)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(federation): Fix federation from Nextcloud 30 to 31 with https
|
||||
[#14141](https://github.com/nextcloud/spreed/issues/14141)
|
||||
- fix(conversations): Make compact list more compact and avatar bigger
|
||||
[#14118](https://github.com/nextcloud/spreed/issues/14118)
|
||||
- fix(signaling): Test actual websocket connection in admin settings
|
||||
[#13973](https://github.com/nextcloud/spreed/issues/13973)
|
||||
- fix(archive): Don't add asterix to title for unread messages in archived conversations
|
||||
[#14101](https://github.com/nextcloud/spreed/issues/14101)
|
||||
|
||||
## 21.0.0-beta.1 – 2025-01-10
|
||||
### Added
|
||||
- Schedule a meeting directly from within the conversation
|
||||
[#6292](https://github.com/nextcloud/spreed/issues/6292)
|
||||
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
- Require Nextcloud 31 / Hub 10
|
||||
|
||||
@@ -0,0 +1,386 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 22.0.12 – 2026-04-30
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(bots): Hide bots from apps when their app is disabled
|
||||
[#17668](https://github.com/nextcloud/spreed/pull/17668)
|
||||
- fix(bots): Don't soft-fail when creating incompatible bots
|
||||
[#17665](https://github.com/nextcloud/spreed/pull/17665)
|
||||
- fix(calendar): Make appointment conversations meetings so they expire after the appointment
|
||||
[#17646](https://github.com/nextcloud/spreed/pull/17646)
|
||||
- fix(call): Fix joining the conversation with breakout rooms or extending 1-1
|
||||
[#17785](https://github.com/nextcloud/spreed/pull/17785)
|
||||
[#17710](https://github.com/nextcloud/spreed/pull/17710)
|
||||
[#17779](https://github.com/nextcloud/spreed/pull/17779)
|
||||
- fix(chat): Improve "language detection" option in the translation dialogue
|
||||
[#17677](https://github.com/nextcloud/spreed/pull/17677)
|
||||
- fix(commands): Correctly exclude only 1-1 from managing via occ
|
||||
[#17740](https://github.com/nextcloud/spreed/pull/17740)
|
||||
- fix(conversation): Show filtered conversations right away when searching
|
||||
[#17841](https://github.com/nextcloud/spreed/pull/17841)
|
||||
- fix(conversation): Make conversation order consistent when searching
|
||||
[#17658](https://github.com/nextcloud/spreed/pull/17658)
|
||||
- fix(conversation): Gracefully handle cases when the conversation list is too big for the browser storage
|
||||
[#17650](https://github.com/nextcloud/spreed/pull/17650)
|
||||
- fix(federation): Check session id when leaving a conversation
|
||||
[#17867](https://github.com/nextcloud/spreed/pull/17867)
|
||||
- fix(recording): Allow MP4 as recording mimetype
|
||||
[#17648](https://github.com/nextcloud/spreed/pull/17648)
|
||||
- fix(transcriptions): Fix live transcription app getting the signaling settings
|
||||
[#17739](https://github.com/nextcloud/spreed/pull/17739)
|
||||
|
||||
## 22.0.11 – 2026-04-02
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Keep thread information when copying link of a message
|
||||
[#17478](https://github.com/nextcloud/spreed/pull/17478)
|
||||
- fix(call): Fix unneeded signaling messages when sending initial state
|
||||
[#17407](https://github.com/nextcloud/spreed/pull/17407)
|
||||
- fix(conversation): Improve translation string for automatic deletion of conversations
|
||||
[#17411](https://github.com/nextcloud/spreed/pull/17411)
|
||||
- fix(meeting): Don't log a PHP error when a todo item is edited
|
||||
[#17547](https://github.com/nextcloud/spreed/pull/17547)
|
||||
- fix(phone): Improve phone number input validation of OCC commands
|
||||
[#17551](https://github.com/nextcloud/spreed/pull/17551)
|
||||
- fix(video-verification): Fix video-verification when "Start call" is limited to moderators
|
||||
[#17504](https://github.com/nextcloud/spreed/pull/17504)
|
||||
- fix(signaling): Check recipient room with internal signaling
|
||||
[#17579](https://github.com/nextcloud/spreed/pull/17579)
|
||||
- fix(signaling): Limit signaling support without conversation-token
|
||||
[#17587](https://github.com/nextcloud/spreed/pull/17587)
|
||||
- fix(signaling): Expect nonce on request when setting up hosted signaling server
|
||||
[#17582](https://github.com/nextcloud/spreed/pull/17582)
|
||||
|
||||
## 22.0.10 – 2026-03-19
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(bots): Support threads for bots
|
||||
[#17345](https://github.com/nextcloud/spreed/pull/17345)
|
||||
- fix(call): Hide call button from dashboard when calls are disabled
|
||||
[#17317](https://github.com/nextcloud/spreed/pull/17317)
|
||||
- fix(call): Prefix typed phone number with configured prefix if needed
|
||||
[#17207](https://github.com/nextcloud/spreed/pull/17207)
|
||||
- fix(chat): Improve rendering of markdown in mention bubbles
|
||||
[#17211](https://github.com/nextcloud/spreed/pull/17211)
|
||||
- fix(conversation): Allow to change the password of a conversation without disabling it
|
||||
[#17221](https://github.com/nextcloud/spreed/pull/17221)
|
||||
- fix(federation): Fix federation when using the email instead of the user ID
|
||||
[#17312](https://github.com/nextcloud/spreed/pull/17312)
|
||||
- fix(search): Fix conversation and user search with unicode characters
|
||||
[#17143](https://github.com/nextcloud/spreed/pull/17143)
|
||||
- fix(settings): Don't discard hosted High-performance backend account when 401 is returned
|
||||
[#17384](https://github.com/nextcloud/spreed/pull/17384)
|
||||
- fix(settings): Expose more initial state data as capabilities
|
||||
[#17341](https://github.com/nextcloud/spreed/pull/17341)
|
||||
[#17216](https://github.com/nextcloud/spreed/pull/17216)
|
||||
- fix(settings): Fix problem when editing some matterbridge components that have boolean fields
|
||||
[#17391](https://github.com/nextcloud/spreed/pull/17391)
|
||||
- fix(settings): Create a stronger/longer turn secret when --generate-secret option is used
|
||||
[#17397](https://github.com/nextcloud/spreed/pull/17397)
|
||||
|
||||
## 22.0.9 – 2026-02-12
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(mobile-clients): Fix error message for Talk iOS when end-to-end encryption for calls is enabled
|
||||
[#17003](https://github.com/nextcloud/spreed/pull/17003)
|
||||
- fix(breakout-rooms): Fix managing existing breakout rooms in conversation settings
|
||||
[#16968](https://github.com/nextcloud/spreed/pull/16968)
|
||||
- fix(call): Improve new chat messages hint during calls
|
||||
[#16797](https://github.com/nextcloud/spreed/pull/16797)
|
||||
- fix(chat): Fix system messages with email-invited guests
|
||||
[#16867](https://github.com/nextcloud/spreed/pull/16867)
|
||||
- fix(chat): Respect thread and parent when sharing a file
|
||||
[#16860](https://github.com/nextcloud/spreed/pull/16860)
|
||||
- fix(chat): Correctly update last message and unread counter from polling
|
||||
[#16910](https://github.com/nextcloud/spreed/pull/16910)
|
||||
- fix(meeting): Add timezone to events created from Talk
|
||||
[#17060](https://github.com/nextcloud/spreed/pull/17060)
|
||||
- fix(search): Readd missing input border for search
|
||||
[#16861](https://github.com/nextcloud/spreed/pull/16861)
|
||||
- fix(federation): Abort requests early when federation is disabled
|
||||
[#16963](https://github.com/nextcloud/spreed/pull/16963)
|
||||
- fix(signaling): Unify request validation for HPB, recording and other services
|
||||
[#17074](https://github.com/nextcloud/spreed/pull/17074)
|
||||
- fix(bots): Fix reaction author when notifying bots
|
||||
[#16900](https://github.com/nextcloud/spreed/pull/16900)
|
||||
|
||||
## 22.0.8 – 2026-01-15
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Allow getting a single message
|
||||
[#16731](https://github.com/nextcloud/spreed/pull/16731)
|
||||
- fix(chat): Don't show chat messages of the old chat when switching to a new chat
|
||||
[#16718](https://github.com/nextcloud/spreed/pull/16718)
|
||||
- fix(chat): Don't set the cursor to the end when someone reacts to a message while editing
|
||||
[#16633](https://github.com/nextcloud/spreed/pull/16633)
|
||||
- fix(call): Allow selecting a media device after an error occurred
|
||||
[#16701](https://github.com/nextcloud/spreed/pull/16701)
|
||||
- fix(call): Allow preparing media devices even when the user has no permissions yet
|
||||
[#16682](https://github.com/nextcloud/spreed/pull/16682)
|
||||
- fix(call): Still block mobile clients when call end-to-end encryption is enabled
|
||||
[#16674](https://github.com/nextcloud/spreed/pull/16674)
|
||||
|
||||
## 22.0.7 – 2025-12-17
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): fix loading more shared items
|
||||
[#16589](https://github.com/nextcloud/spreed/pull/16589)
|
||||
|
||||
## 22.0.6 – 2025-12-15
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Correctly expire shared items in sidebar
|
||||
[#16569](https://github.com/nextcloud/spreed/pull/16569)
|
||||
- fix(call): Show video streams of other attendees for guests
|
||||
[#16544](https://github.com/nextcloud/spreed/pull/16544)
|
||||
- fix(call): Prevent call reactions overflow for users
|
||||
[#16581](https://github.com/nextcloud/spreed/pull/16581)
|
||||
|
||||
## 22.0.5 – 2025-12-11
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
- Build mechanism was changed from Webpack to RSPack
|
||||
|
||||
### Fixed
|
||||
- fix(call): Fix low frame rate in the grid layout
|
||||
[#16519](https://github.com/nextcloud/spreed/pull/16519)
|
||||
- fix(call): Fix "Stay in call" as primary action in "Leave call"-dialog
|
||||
[#16481](https://github.com/nextcloud/spreed/pull/16481)
|
||||
- fix(call): Keep media disabled when reassigning permissions
|
||||
[#16522](https://github.com/nextcloud/spreed/pull/16522)
|
||||
- fix(chat): Fix a case where chat-relay would pause and skip messages
|
||||
[#16407](https://github.com/nextcloud/spreed/pull/16407)
|
||||
- fix(chat): Correctly handle unsorted reaction details
|
||||
[#16426](https://github.com/nextcloud/spreed/pull/16426)
|
||||
- fix(settings): Hide unsupported shortcuts for guests
|
||||
[#16410](https://github.com/nextcloud/spreed/pull/16410)
|
||||
- fix(settings): Fix wasm file name in system check
|
||||
[#16395](https://github.com/nextcloud/spreed/pull/16395)
|
||||
- fix(settings): Fix default for listable conversation to be off
|
||||
[#16512](https://github.com/nextcloud/spreed/pull/16512)
|
||||
- fix(settings): Fix a missing check when configuring Matterbridge
|
||||
[#16524](https://github.com/nextcloud/spreed/pull/16524)
|
||||
|
||||
## 22.0.4 – 2025-11-20
|
||||
### Changed
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(settings): Show appearance and sounds settings for guests again
|
||||
[#16377](https://github.com/nextcloud/spreed/pull/16377)
|
||||
- fix(settings): Add app config to disable play-sounds for guests
|
||||
[#16381](https://github.com/nextcloud/spreed/pull/16381)
|
||||
- fix(settings): Do not warn about missing experimental feature
|
||||
[#16388](https://github.com/nextcloud/spreed/pull/16388)
|
||||
- fix(settings): Fix path for WASM file check
|
||||
[#16389](https://github.com/nextcloud/spreed/pull/16389)
|
||||
|
||||
## 22.0.3 – 2025-11-20
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
- feat(call): Use hardware acceleration for background blur
|
||||
[#16310](https://github.com/nextcloud/spreed/pull/16310)
|
||||
- feat(settings): Redesign Talk settings
|
||||
[#16304](https://github.com/nextcloud/spreed/pull/16304)
|
||||
- perf(chat): Chat messages can be relayed via the HPB when enabling an experiment
|
||||
[#16240](https://github.com/nextcloud/spreed/pull/16240)
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix memory leak from styles recalculation
|
||||
[#16260](https://github.com/nextcloud/spreed/pull/16260)
|
||||
- fix(chat): Fix rendering performance from message bottom-bar
|
||||
[#16307](https://github.com/nextcloud/spreed/pull/16307)
|
||||
- fix(conversations): Fix rendering performance of left sidebar with many conversations
|
||||
[#16340](https://github.com/nextcloud/spreed/pull/16340)
|
||||
- fix(call): Fix squeezed buttons in small screens
|
||||
[#16205](https://github.com/nextcloud/spreed/pull/16205)
|
||||
- fix(call): Use bulk activity events when ending a call
|
||||
[#16263](https://github.com/nextcloud/spreed/pull/16263)
|
||||
- fix(chat): Fix amount of requests when a guest sets their name
|
||||
[#16364](https://github.com/nextcloud/spreed/pull/16364)
|
||||
- fix(federation): Allow access to shared items like location, threads, … for federated users
|
||||
[#16269](https://github.com/nextcloud/spreed/pull/16269)
|
||||
- fix(search): Use short datetime style in search
|
||||
[#16233](https://github.com/nextcloud/spreed/pull/16233)
|
||||
|
||||
## 22.0.2 – 2025-10-27
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Fix relative date header showing `.042` after DST change
|
||||
[#16217](https://github.com/nextcloud/spreed/pull/16217)
|
||||
- fix(participants): Correctly show guests as online and offline
|
||||
[#16218](https://github.com/nextcloud/spreed/pull/16218)
|
||||
|
||||
## 22.0.1 – 2025-10-24
|
||||
### Added
|
||||
- feat(bots): Add create command for inbound-only bots
|
||||
[#16111](https://github.com/nextcloud/spreed/pull/16111)
|
||||
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(chat): Don't trigger typing indicator when editing a message
|
||||
[#16139](https://github.com/nextcloud/spreed/pull/16139)
|
||||
- fix(meeting): Fix issue not showing name of lobbied gusts to moderators
|
||||
[#16147](https://github.com/nextcloud/spreed/pull/16147)
|
||||
- fix(meeting): Fix issue not showed 2 guests instead of 1
|
||||
[#16154](https://github.com/nextcloud/spreed/pull/16154)
|
||||
- fix(threads): Fix notifications for federated users
|
||||
[#16064](https://github.com/nextcloud/spreed/pull/16064)
|
||||
- fix(threads): Fix link to thread when clicking on notification while on Talk
|
||||
[#16056](https://github.com/nextcloud/spreed/pull/16056)
|
||||
- fix(threads): Fix Oracle compatibility with threads
|
||||
[#16150](https://github.com/nextcloud/spreed/pull/16150)
|
||||
- fix(conversations): Don't transfer sample conversations when transferring ownership
|
||||
[#16176](https://github.com/nextcloud/spreed/pull/16176)
|
||||
|
||||
## 22.0.0 – 2025-09-27
|
||||
### Added
|
||||
- Implement threads feature
|
||||
- Implement "Busy" status in calls
|
||||
- Implement live-transcriptions when the ExApp is available
|
||||
- Update call interface design
|
||||
|
||||
### Changed
|
||||
- Migrate app to Vue3
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
- Require Nextcloud 32 / Hub 25 Autumn
|
||||
|
||||
### Fixed
|
||||
- Improve chat history browsing performance
|
||||
|
||||
## 22.0.0-rc.4 – 2025-09-25
|
||||
### Changed
|
||||
- Update translations
|
||||
- Update dependencies
|
||||
|
||||
### Fixed
|
||||
- fix(threads): Support object shares, polls and file uploads
|
||||
[#15990](https://github.com/nextcloud/spreed/pull/15990)
|
||||
[#16001](https://github.com/nextcloud/spreed/pull/16001)
|
||||
- fix(call): Release media devices and memory resources after the call end
|
||||
[#15992](https://github.com/nextcloud/spreed/issues/15992)
|
||||
- fix(call): Adjust call recording layout
|
||||
[#16016](https://github.com/nextcloud/spreed/pull/16016)
|
||||
|
||||
## 22.0.0-rc.3 – 2025-09-18
|
||||
### Fixed
|
||||
- fix(call): Correctly sync media devices with OS sound settings
|
||||
[#15900](https://github.com/nextcloud/spreed/pull/15900)
|
||||
[#15972](https://github.com/nextcloud/spreed/pull/15972)
|
||||
- fix(chat): Validate file name when creating from template instead of failing afterwards
|
||||
[#15920](https://github.com/nextcloud/spreed/issues/15920)
|
||||
- fix(threads): Post shared files in the opened thread
|
||||
[#15938](https://github.com/nextcloud/spreed/pull/15938)
|
||||
- fix(threads): Count shared files as thread replies and last message
|
||||
[#15946](https://github.com/nextcloud/spreed/pull/15946)
|
||||
|
||||
## 22.0.0-rc.2 – 2025-09-11
|
||||
### Fixed
|
||||
- fix(chat): send messages with reduced conversation data available
|
||||
[#15836](https://github.com/nextcloud/spreed/pull/15836)
|
||||
- fix(call): restore participant videoframe after sharing a screen
|
||||
[#15853](https://github.com/nextcloud/spreed/pull/15853)
|
||||
- fix(threads): navigate to thread messages from search results
|
||||
[#15858](https://github.com/nextcloud/spreed/pull/15858)
|
||||
- fix(chat): forward thread messages to other conversations
|
||||
[#15866](https://github.com/nextcloud/spreed/pull/15866)
|
||||
|
||||
## 22.0.0-rc.1 – 2025-09-04
|
||||
### Added
|
||||
- feat(hosted-hpb): Support setting the TURN and STUN server if included
|
||||
[#15700](https://github.com/nextcloud/spreed/issues/15700)
|
||||
- feat(assistant): Use new assistant theming
|
||||
[#15773](https://github.com/nextcloud/spreed/issues/15773)
|
||||
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(threads): Allow renaming a thread
|
||||
[#15779](https://github.com/nextcloud/spreed/issues/15779)
|
||||
- fix(threads): Hide ignored threads from "Followed threads" list
|
||||
[#15781](https://github.com/nextcloud/spreed/issues/15781)
|
||||
- fix(threads): Don't create threads without a title
|
||||
[#15790](https://github.com/nextcloud/spreed/issues/15790)
|
||||
- fix(threads): Show temporary message as a thread already
|
||||
[#15800](https://github.com/nextcloud/spreed/issues/15800)
|
||||
- fix(calls): Scroll chat to bottom when joining a call
|
||||
[#15774](https://github.com/nextcloud/spreed/issues/15774)
|
||||
|
||||
## 22.0.0-beta.2 – 2025-08-29
|
||||
### Added
|
||||
- feat(calls): Implement live-transcriptions when the ExApp is available
|
||||
[#15696](https://github.com/nextcloud/spreed/issues/15696)
|
||||
- feat(dashboard): Improve empty content view of the dashboard sections
|
||||
[#15697](https://github.com/nextcloud/spreed/issues/15697)
|
||||
|
||||
### Changed
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
|
||||
### Fixed
|
||||
- fix(UI): Further design adjustments to outlined icons
|
||||
- fix(chat): Many improvements for threads
|
||||
[#15616](https://github.com/nextcloud/spreed/issues/15616)
|
||||
[#15703](https://github.com/nextcloud/spreed/issues/15703)
|
||||
[#15704](https://github.com/nextcloud/spreed/issues/15704)
|
||||
[#15722](https://github.com/nextcloud/spreed/issues/15722)
|
||||
[#15735](https://github.com/nextcloud/spreed/issues/15735)
|
||||
|
||||
## 22.0.0-beta.1 – 2025-08-21
|
||||
### Added
|
||||
- Implement threads feature
|
||||
[#15313](https://github.com/nextcloud/spreed/issues/15313)
|
||||
- Implement 'Busy' status in calls
|
||||
[#15465](https://github.com/nextcloud/spreed/issues/15465)
|
||||
- Update call interface design
|
||||
[#15025](https://github.com/nextcloud/spreed/issues/15025)
|
||||
|
||||
### Changed
|
||||
- Migrate app to Vue3
|
||||
[#9448](https://github.com/nextcloud/spreed/issues/9448)
|
||||
- Update dependencies
|
||||
- Update translations
|
||||
- Require Nextcloud 32 / Hub 25 Autumn
|
||||
|
||||
### Fixed
|
||||
- Improve chat history browsing performance
|
||||
[#6046](https://github.com/nextcloud/spreed/issues/6046)
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 3.2.8 – 2019-01-30
|
||||
### Fixed
|
||||
- Fix mentions when adding multiple directly after each other
|
||||
[#1394](https://github.com/nextcloud/spreed/pull/1394)
|
||||
- Load more messages after loading the first batch when entering a room
|
||||
[#1403](https://github.com/nextcloud/spreed/pull/1403)
|
||||
|
||||
## 3.2.7 – 2018-12-11
|
||||
### Fixed
|
||||
- Fix screensharing in Chrome 71+ and other Chrome based browsers
|
||||
[#1369](https://github.com/nextcloud/spreed/pull/1369)
|
||||
- Send initial screensharing stream to participants that don't publish video
|
||||
[#1372](https://github.com/nextcloud/spreed/pull/1372)
|
||||
|
||||
## 3.2.6 – 2018-09-20
|
||||
### Fixed
|
||||
- Fix turn credential generation
|
||||
[#1203](https://github.com/nextcloud/spreed/pull/1203)
|
||||
- Fix several inconsistencies with the internal api
|
||||
[#1202](https://github.com/nextcloud/spreed/pull/1202)
|
||||
[#1201](https://github.com/nextcloud/spreed/pull/1201)
|
||||
[#1200](https://github.com/nextcloud/spreed/pull/1200)
|
||||
|
||||
## 3.2.5 – 2018-07-23
|
||||
### Fixed
|
||||
- Fix handling of malicious usernames while autocompleting in chat
|
||||
|
||||
## 3.2.4 – 2018-07-12
|
||||
### Added
|
||||
- Allow external signaling servers to integrate a MCU
|
||||
[#398](https://github.com/nextcloud/spreed/pull/398)
|
||||
|
||||
### Fixed
|
||||
- Support chat with a standalone signaling servers
|
||||
[#890](https://github.com/nextcloud/spreed/pull/890)
|
||||
[#887](https://github.com/nextcloud/spreed/pull/887)
|
||||
|
||||
## 3.2.3 – 2018-07-11
|
||||
### Changed
|
||||
- Only paste the content of HTML into the chat input without the actual HTML
|
||||
[#1018](https://github.com/nextcloud/spreed/pull/1018)
|
||||
|
||||
### Fixed
|
||||
- Fixes for standalone signaling server
|
||||
[#910](https://github.com/nextcloud/spreed/pull/910)
|
||||
- Name not shown for participants without audio and video
|
||||
[#982](https://github.com/nextcloud/spreed/pull/982)
|
||||
- Correctly timeout users when they are chatting/calling and got disconnected
|
||||
[#935](https://github.com/nextcloud/spreed/pull/935)
|
||||
- Multiple layout fixes
|
||||
|
||||
## 3.2.2 – 2018-06-06
|
||||
### Added
|
||||
- Add toggle to show and hide video from other participants
|
||||
[#937](https://github.com/nextcloud/spreed/pull/937)
|
||||
|
||||
### Changed
|
||||
- Activities and Notifications text (Calls->Conversations)
|
||||
[#919](https://github.com/nextcloud/spreed/pull/919)
|
||||
|
||||
### Fixed
|
||||
- Send call notifications to every room participant that is not in the call
|
||||
[#926](https://github.com/nextcloud/spreed/pull/926)
|
||||
- Mark messages directly as read when waiting for new messages
|
||||
[#936](https://github.com/nextcloud/spreed/pull/936)
|
||||
- Fix tab header icons not shown
|
||||
[#929](https://github.com/nextcloud/spreed/pull/929)
|
||||
- Fix room and participants menu buttons
|
||||
[#934](https://github.com/nextcloud/spreed/pull/934)
|
||||
[#941](https://github.com/nextcloud/spreed/pull/941)
|
||||
- Fix local audio and video not disabled when not available
|
||||
[#938](https://github.com/nextcloud/spreed/pull/938)
|
||||
- Fix "Add participant" shown to normal participants
|
||||
[#939](https://github.com/nextcloud/spreed/pull/939)
|
||||
- Fix adding the same participant several times in a row
|
||||
[#940](https://github.com/nextcloud/spreed/pull/940)
|
||||
|
||||
|
||||
## 3.2.1 – 2018-05-11
|
||||
### Added
|
||||
- Standalone signaling server now supports the 3.2 changes
|
||||
[#864](https://github.com/nextcloud/spreed/pull/864)
|
||||
[#869](https://github.com/nextcloud/spreed/pull/869)
|
||||
|
||||
### Fixed
|
||||
- Only join the room after media permission request was answered
|
||||
[#854](https://github.com/nextcloud/spreed/pull/854)
|
||||
- Do not reload the participant everytime a guest sends a chat message
|
||||
[#866](https://github.com/nextcloud/spreed/pull/866)
|
||||
- Make sure the web UI still works after you left the current conversation or call
|
||||
[#871](https://github.com/nextcloud/spreed/pull/871)
|
||||
[#872](https://github.com/nextcloud/spreed/pull/872)
|
||||
[#874](https://github.com/nextcloud/spreed/pull/874)
|
||||
- Allow to scroll on long participant lists again
|
||||
[#896](https://github.com/nextcloud/spreed/pull/896)
|
||||
- Do not throw an error when starting a call in a conversation without any chat message
|
||||
[#861](https://github.com/nextcloud/spreed/pull/861)
|
||||
- Enable media controls when media is approved on a second request
|
||||
[#861](https://github.com/nextcloud/spreed/pull/861)
|
||||
- Limit the unread message counter to 99+
|
||||
[#845](https://github.com/nextcloud/spreed/pull/845)
|
||||
|
||||
|
||||
## 3.2.0 – 2018-05-03
|
||||
### Added
|
||||
- Shortcuts have been added when a call is active: (m)ute, (v)ideo, (f)ullscreen, (c)hat and (p)articipant list
|
||||
[#730](https://github.com/nextcloud/spreed/pull/730)
|
||||
[#750](https://github.com/nextcloud/spreed/pull/750)
|
||||
- Allow users to chat in multiple tabs in multiple chats at the same time
|
||||
[#748](https://github.com/nextcloud/spreed/pull/748)
|
||||
- Guest names are now handled better in chat and the participant list
|
||||
[#733](https://github.com/nextcloud/spreed/pull/733)
|
||||
- Users which are participanting in a call now have a video icon in the participant list
|
||||
[#777](https://github.com/nextcloud/spreed/pull/777)
|
||||
- Unread chat message count is now displayed in the room list
|
||||
[#806](https://github.com/nextcloud/spreed/pull/806)
|
||||
[#824](https://github.com/nextcloud/spreed/pull/824)
|
||||
|
||||
### Changed
|
||||
- It is now possible to join a call without camera and/or microphone
|
||||
[#758](https://github.com/nextcloud/spreed/pull/758)
|
||||
- Chat does now not require Media permissions anymore
|
||||
[#711](https://github.com/nextcloud/spreed/pull/711)
|
||||
- Leaving a call will free up the Media permissions
|
||||
[#735](https://github.com/nextcloud/spreed/pull/735)
|
||||
- Participants can now be `@mentioned` in the chat by starting to type `@` followed by the name of the user
|
||||
[#805](https://github.com/nextcloud/spreed/pull/805)
|
||||
[#812](https://github.com/nextcloud/spreed/pull/812)
|
||||
[#813](https://github.com/nextcloud/spreed/pull/813)
|
||||
|
||||
### Fixed
|
||||
- Correctly catch the input on the chat in firefox (instead of writing to the placeholder)
|
||||
[#737](https://github.com/nextcloud/spreed/pull/737)
|
||||
- Keep scrolling position when switching from chat to call or back
|
||||
[#838](https://github.com/nextcloud/spreed/pull/838)
|
||||
- Delete rooms when the last logged in user leaves
|
||||
[#727](https://github.com/nextcloud/spreed/pull/727)
|
||||
- Correctly update chat UI when leaving current room
|
||||
[#743](https://github.com/nextcloud/spreed/pull/743)
|
||||
- Various layout fixes with videos and screensharing
|
||||
[#702](https://github.com/nextcloud/spreed/pull/702)
|
||||
[#712](https://github.com/nextcloud/spreed/pull/712)
|
||||
[#713](https://github.com/nextcloud/spreed/pull/713)
|
||||
- Fix issues with users that have a numerical name or id
|
||||
[#694](https://github.com/nextcloud/spreed/pull/694)
|
||||
- Fix contacts menu entry when no user was found
|
||||
[#686](https://github.com/nextcloud/spreed/pull/686)
|
||||
|
||||
|
||||
## 3.1.0 – 2018-02-14
|
||||
### Added
|
||||
- Finish support for go-based external signaling backend
|
||||
[#492](https://github.com/nextcloud/spreed/pull/492)
|
||||
|
||||
### Changed
|
||||
- Make capabilities and signaling settings available for guests
|
||||
[#644](https://github.com/nextcloud/spreed/pull/644) [#654](https://github.com/nextcloud/spreed/pull/654)
|
||||
- Use the search name as room name when creating a new room
|
||||
[#592](https://github.com/nextcloud/spreed/pull/592)
|
||||
- Make links in chat clickable
|
||||
[#579](https://github.com/nextcloud/spreed/pull/579)
|
||||
|
||||
### Fixed
|
||||
- Fix screensharing layout for guests
|
||||
[#611](https://github.com/nextcloud/spreed/pull/611)
|
||||
- Correctly remember guest names when a guest is rejoining an existing call
|
||||
[#593](https://github.com/nextcloud/spreed/pull/593)
|
||||
- Better date time divider in chat view
|
||||
[#591](https://github.com/nextcloud/spreed/pull/591)
|
||||
|
||||
## 3.0.1 – 2018-01-12
|
||||
### Added
|
||||
- Added capabilities so the mobile files apps can link to the mobile talk apps
|
||||
[#585](https://github.com/nextcloud/spreed/pull/585)
|
||||
|
||||
### Fixed
|
||||
- Fixed issues when updating with Postgres and versions before 2.0.0
|
||||
[#584](https://github.com/nextcloud/spreed/pull/584)
|
||||
|
||||
## 3.0.0 – 2018-01-10
|
||||
### Added
|
||||
- Added simple text chat
|
||||
[#429](https://github.com/nextcloud/spreed/pull/429)
|
||||
- Added activities for calls: "You had a call with ABC (Duration: 15:20)"
|
||||
[#438](https://github.com/nextcloud/spreed/pull/438)
|
||||
- Introduced different participant permission levels: owner, moderator and user
|
||||
[#353](https://github.com/nextcloud/spreed/pull/353)
|
||||
- Added support for room passwords on public shared rooms
|
||||
[#402](https://github.com/nextcloud/spreed/pull/402)
|
||||
- Added option to run an external signaling backend
|
||||
[#366](https://github.com/nextcloud/spreed/pull/366)
|
||||
|
||||
### Changed
|
||||
- Rename the app to "Talk" since it now contains chat, voice and video calls
|
||||
[#444](https://github.com/nextcloud/spreed/pull/444)
|
||||
- Moved admin settings to separate category and allowed to configure multiple STUN and TURN servers
|
||||
[#427](https://github.com/nextcloud/spreed/pull/427)
|
||||
- Moved signaling from EventSource to long polling for compatibility with HTTP2
|
||||
[#363](https://github.com/nextcloud/spreed/pull/363)
|
||||
- Moved room API to OCS so apps and 3rd party tools can use it
|
||||
[#342](https://github.com/nextcloud/spreed/pull/342)
|
||||
|
||||
### Fixed
|
||||
- Fixed compatibility with Postgres
|
||||
[#537](https://github.com/nextcloud/spreed/pull/537)
|
||||
- Fixed compatibility with Oracle
|
||||
[#371](https://github.com/nextcloud/spreed/pull/371)
|
||||
- Compatibility with Nextcloud 13
|
||||
|
||||
|
||||
@@ -0,0 +1,87 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 4.0.4 – 2019-04-11
|
||||
### Fixed
|
||||
- Enable "Plan B" for chrome/chromium for better MCU support
|
||||
[#1614](https://github.com/nextcloud/spreed/pull/1614)
|
||||
- Delay signaling messages when the socket is not yet opened
|
||||
[#1552](https://github.com/nextcloud/spreed/pull/1552)
|
||||
|
||||
## 4.0.3 – 2019-01-30
|
||||
### Fixed
|
||||
- Do not show room names when the user is not part of it
|
||||
[#1498](https://github.com/nextcloud/spreed/pull/1498)
|
||||
- Fix mentions when adding multiple directly after each other
|
||||
[#1393](https://github.com/nextcloud/spreed/pull/1393)
|
||||
- Load more messages after loading the first batch when entering a room
|
||||
[#1402](https://github.com/nextcloud/spreed/pull/1402)
|
||||
- Pass empty list of session ids when notifying about removed guests to avoid errors
|
||||
[#1414](https://github.com/nextcloud/spreed/pull/1414)
|
||||
|
||||
## 4.0.2 – 2018-12-11
|
||||
### Fixed
|
||||
- Fix screensharing in Chrome 71+ and other Chrome based browsers
|
||||
[#1369](https://github.com/nextcloud/spreed/pull/1369)
|
||||
- Fix broken chat when a file that was shared into a room is deleted
|
||||
[#1352](https://github.com/nextcloud/spreed/pull/1352)
|
||||
- Send initial screensharing stream to participants that don't publish video
|
||||
[#1372](https://github.com/nextcloud/spreed/pull/1372)
|
||||
|
||||
## 4.0.1 – 2018-11-15
|
||||
### Added
|
||||
- Add an option to test the TURN configuration in the admin settings
|
||||
[#1294](https://github.com/nextcloud/spreed/pull/1294)
|
||||
|
||||
### Changed
|
||||
- Improve the notifications when a share password is requested
|
||||
[#1296](https://github.com/nextcloud/spreed/pull/1296)
|
||||
- Do not show an error when a file is shared a second time into a conversation
|
||||
[#1295](https://github.com/nextcloud/spreed/pull/1295)
|
||||
|
||||
### Fixed
|
||||
- Custom Signaling, STUN and TURN configurations are not loaded for the user requesting the password for a share
|
||||
[#1297](https://github.com/nextcloud/spreed/pull/1297)
|
||||
- Fix position of the contacts menu when clicking on the avatar of a chat author
|
||||
[#1293](https://github.com/nextcloud/spreed/pull/1293)
|
||||
- Avatars in messages/mentions by guests show the guest avatar instead of the user
|
||||
[#1292](https://github.com/nextcloud/spreed/pull/1292)
|
||||
- Information about user state in a call is bugged
|
||||
[#1291](https://github.com/nextcloud/spreed/pull/1291)
|
||||
- Wrong conversation name of password requests in the details sidebar
|
||||
[#1290](https://github.com/nextcloud/spreed/pull/1290)
|
||||
- Fix rendering, reloading and interaction with the participant list
|
||||
[#1222](https://github.com/nextcloud/spreed/pull/1222)
|
||||
[#1289](https://github.com/nextcloud/spreed/pull/1289)
|
||||
|
||||
## 4.0.0 – 2018-09-06
|
||||
### Added
|
||||
- Video verification for password protected email shares
|
||||
[#1123](https://github.com/nextcloud/spreed/pull/1123)
|
||||
[#1049](https://github.com/nextcloud/spreed/pull/1049)
|
||||
- Add a file picker to the chat to share files and folders into a chat room
|
||||
[#1151](https://github.com/nextcloud/spreed/pull/1151)
|
||||
[#1050](https://github.com/nextcloud/spreed/pull/1050)
|
||||
- Log the activity of a conversation in the chat (user added/removed, call happened, …)
|
||||
[#1067](https://github.com/nextcloud/spreed/pull/1067)
|
||||
- Allow to favor conversations so they are pinned to the top of the list
|
||||
[#1025](https://github.com/nextcloud/spreed/pull/1025)
|
||||
|
||||
### Changed
|
||||
- Mentions in the chat now show the avatar of the user and highlight yourself more prominent
|
||||
[#1142](https://github.com/nextcloud/spreed/pull/1142)
|
||||
- Messages in one2one chats now always send a notification
|
||||
[#1029](https://github.com/nextcloud/spreed/pull/1029)
|
||||
- Conversations are now sorted by last activity rather then your last visit
|
||||
[#1061](https://github.com/nextcloud/spreed/pull/1061)
|
||||
|
||||
### Fixed
|
||||
- Fix turn credentials generation
|
||||
[#1176](https://github.com/nextcloud/spreed/pull/1176)
|
||||
- Do not turn all `@…` strings into a mention
|
||||
[#1118](https://github.com/nextcloud/spreed/pull/1118)
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 5.0.4 – 2019-06-06
|
||||
### Fixed
|
||||
- Fix message list not reloaded after switching tabs in the sidebar
|
||||
[#1867](https://github.com/nextcloud/spreed/pull/1867)
|
||||
- Fix multiple issues related to screensharing
|
||||
[#1762](https://github.com/nextcloud/spreed/pull/1762)
|
||||
[#1754](https://github.com/nextcloud/spreed/pull/1754)
|
||||
[#1746](https://github.com/nextcloud/spreed/pull/1746)
|
||||
|
||||
## 5.0.3 – 2019-04-11
|
||||
### Changed
|
||||
- Remove some conversation informations for non-participants
|
||||
[#1518](https://github.com/nextcloud/spreed/pull/1518)
|
||||
|
||||
### Fixed
|
||||
- Fix duplicated call summary message when multiple people leave at the same time
|
||||
[#1599](https://github.com/nextcloud/spreed/pull/1599)
|
||||
- Allow multiline text insertion in chrome-based browsers
|
||||
[#1579](https://github.com/nextcloud/spreed/pull/1579)
|
||||
- Fix multiple race-conditions that could interrupt connections, end calls or prevent connections between single participants
|
||||
[#1523](https://github.com/nextcloud/spreed/pull/1523)
|
||||
[#1542](https://github.com/nextcloud/spreed/pull/1542)
|
||||
[#1543](https://github.com/nextcloud/spreed/pull/1543)
|
||||
- Enable "Plan B" for chrome/chromium for better MCU support
|
||||
[#1613](https://github.com/nextcloud/spreed/pull/1613)
|
||||
- Delay signaling messages when the socket is not yet opened
|
||||
[#1551](https://github.com/nextcloud/spreed/pull/1551)
|
||||
- Correctly readd the default STUN server on empty values
|
||||
[#1501](https://github.com/nextcloud/spreed/pull/1501)
|
||||
|
||||
## 5.0.2 – 2019-01-30
|
||||
### Changed
|
||||
- Show autocompletion as soon as "@" is typed
|
||||
[#1483](https://github.com/nextcloud/spreed/pull/1483)
|
||||
|
||||
### Fixed
|
||||
- Fix parse error on PHP 7.0
|
||||
[#1493](https://github.com/nextcloud/spreed/pull/1493)
|
||||
- Add global Content Security Policy for signaling servers
|
||||
[#1462](https://github.com/nextcloud/spreed/pull/1462)
|
||||
- Shared file messages show the name of the file as seen by the owner instead of by the current user
|
||||
[#1487](https://github.com/nextcloud/spreed/pull/1487)
|
||||
- Multiple fixes for dark-theme
|
||||
[#1494](https://github.com/nextcloud/spreed/pull/1494)
|
||||
[#1472](https://github.com/nextcloud/spreed/pull/1472)
|
||||
[#1486](https://github.com/nextcloud/spreed/pull/1486)
|
||||
- Do not show room names when the user is not part of it
|
||||
[#1497](https://github.com/nextcloud/spreed/pull/1497)
|
||||
[#1495](https://github.com/nextcloud/spreed/pull/1495)
|
||||
- Fix page title not updated when room name is updated
|
||||
[#1468](https://github.com/nextcloud/spreed/pull/1468)
|
||||
- Reduce the number of loaded JS and CSS files
|
||||
[#1491](https://github.com/nextcloud/spreed/pull/1491)
|
||||
- Always use white icons for conversation images (also in dark-theme)
|
||||
[#1463](https://github.com/nextcloud/spreed/pull/1463)
|
||||
- Fix submit button in public share authentication page
|
||||
[#1481](https://github.com/nextcloud/spreed/pull/1481)
|
||||
|
||||
## 5.0.1 – 2019-01-23
|
||||
### Changed
|
||||
- Add a hook so the external signaling can set participant data
|
||||
[#1418](https://github.com/nextcloud/spreed/pull/1418)
|
||||
|
||||
### Fixed
|
||||
- Fix dark theme for better accessibility
|
||||
[#1451](https://github.com/nextcloud/spreed/pull/1451)
|
||||
- Correctly mark notifications as resolved when you join the room directly
|
||||
[#1436](https://github.com/nextcloud/spreed/pull/1436)
|
||||
- Fix history back and forth in Talk and the Files app
|
||||
[#1456](https://github.com/nextcloud/spreed/pull/1456)
|
||||
- Favorite icon has grey avatar shadow
|
||||
[#1419](https://github.com/nextcloud/spreed/pull/1419)
|
||||
|
||||
## 5.0.0 – 2018-12-14
|
||||
### Added
|
||||
- Chat and call option in the Files app sidebar
|
||||
[#1323](https://github.com/nextcloud/spreed/pull/1323)
|
||||
[#1312](https://github.com/nextcloud/spreed/pull/1312)
|
||||
- Users can now select for each conversation whether they want to be notified: always, on mention or never
|
||||
[#1230](https://github.com/nextcloud/spreed/pull/1230)
|
||||
- Password protection via Talk now also works for link shares
|
||||
[#1273](https://github.com/nextcloud/spreed/pull/1273)
|
||||
- Guests can now be promoted to moderators in on going calls
|
||||
[#1078](https://github.com/nextcloud/spreed/pull/1078)
|
||||
- Groups can now be selected when adding participants and will add all members as participants
|
||||
[#1268](https://github.com/nextcloud/spreed/pull/1268)
|
||||
- Email addresses can now be added to conversations which will make the room public and send the link via email
|
||||
[#1090](https://github.com/nextcloud/spreed/pull/1090)
|
||||
- TURN server settings can now be tested in the admin settings
|
||||
[#1177](https://github.com/nextcloud/spreed/pull/1177)
|
||||
|
||||
### Changed
|
||||
- Improve performance of chats with multiple hundred messages
|
||||
[#1271](https://github.com/nextcloud/spreed/pull/1271)
|
||||
|
||||
### Fixed
|
||||
- Fix screensharing in Chrome 71+ and other Chrome based browsers
|
||||
[#1369](https://github.com/nextcloud/spreed/pull/1369)
|
||||
- Fix mentions for users with spaces in their user id
|
||||
[#1254](https://github.com/nextcloud/spreed/pull/1254)
|
||||
- Fix avatars in messages by guests
|
||||
[#1240](https://github.com/nextcloud/spreed/pull/1240)
|
||||
- Gracefully handle messages with more than 1000 characters
|
||||
[#1229](https://github.com/nextcloud/spreed/pull/1229)
|
||||
- Stop signaling when leaving a conversation
|
||||
[#1330](https://github.com/nextcloud/spreed/pull/1330)
|
||||
- Fix scroll position when the chat is moved to the sidebar
|
||||
[#1302](https://github.com/nextcloud/spreed/pull/1302)
|
||||
- When a files is shared a second time into a chat no error is displayed
|
||||
[#1196](https://github.com/nextcloud/spreed/pull/1196)
|
||||
- Send initial screensharing stream to participants that don't publish video
|
||||
[#1372](https://github.com/nextcloud/spreed/pull/1372)
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 6.0.4 – 2019-07-31
|
||||
### Fixed
|
||||
- Audio missing in chromium when enabling video until a video is received
|
||||
[#2058](https://github.com/nextcloud/spreed/pull/2058)
|
||||
- Correctly handle password public conversations in projects
|
||||
[#2057](https://github.com/nextcloud/spreed/pull/2057)
|
||||
- Update the nextcloud-vue-collections library for better projects handling
|
||||
[#2054](https://github.com/nextcloud/spreed/pull/2054)
|
||||
- Fix pending reconnections after WebSocket is reconnected
|
||||
[#2033](https://github.com/nextcloud/spreed/pull/2033)
|
||||
|
||||
## 6.0.3 – 2019-07-22
|
||||
### Changed
|
||||
- Chat messages can now be longer than 1.000 characters
|
||||
[#1901](https://github.com/nextcloud/spreed/pull/1901)
|
||||
- Users matching the autocomplete at the beginning of their name are now sorted to the top
|
||||
[#1968](https://github.com/nextcloud/spreed/pull/1968)
|
||||
- Only strings starting with http:// or https:// are now made clickable as links
|
||||
[#1965](https://github.com/nextcloud/spreed/pull/1965)
|
||||
|
||||
### Fixed
|
||||
- Fix layout issues of the chat on the share authentication page
|
||||
[#1901](https://github.com/nextcloud/spreed/pull/1901)
|
||||
- Fix issues with calls when a user logs out while being in a call
|
||||
[#1947](https://github.com/nextcloud/spreed/pull/1947)
|
||||
- Fix a problem when joining a public conversation as a non-invited logged-in user
|
||||
[#1914](https://github.com/nextcloud/spreed/pull/1914)
|
||||
- Fix missing tooltip with full date on timestamp for the first message of a user in a grouped block
|
||||
[#1914](https://github.com/nextcloud/spreed/pull/1914)
|
||||
- Commands based on the Symfony Command component can now provide a useful help message
|
||||
[#1901](https://github.com/nextcloud/spreed/pull/1901)
|
||||
|
||||
## 6.0.2 – 2019-06-06
|
||||
### Fixed
|
||||
- Fix message list not reloaded after switching tabs in the sidebar
|
||||
[#1867](https://github.com/nextcloud/spreed/pull/1867)
|
||||
- Show warning when browser silently fails to get user media
|
||||
[#1874](https://github.com/nextcloud/spreed/pull/1874)
|
||||
- Fix view for participants without streams
|
||||
[#1873](https://github.com/nextcloud/spreed/pull/1873)
|
||||
- Fix forced reconnection with external signaling
|
||||
[#1850](https://github.com/nextcloud/spreed/pull/1850)
|
||||
- Do not send volume datachannel message
|
||||
[#1849](https://github.com/nextcloud/spreed/pull/1849)
|
||||
|
||||
|
||||
## 6.0.1 – 2019-05-16
|
||||
### Changed
|
||||
- Do not send black video by default in bigger calls
|
||||
[#1830](https://github.com/nextcloud/spreed/pull/1830)
|
||||
[#1827](https://github.com/nextcloud/spreed/pull/1827)
|
||||
- Improve the grouping of chat messages so more fit on the screen
|
||||
[#1826](https://github.com/nextcloud/spreed/pull/1826)
|
||||
|
||||
### Fixed
|
||||
- Fix password protected conversations
|
||||
[#1775](https://github.com/nextcloud/spreed/pull/1775)
|
||||
- Fix chat not automatically loading new messages after a command was used with the external signaling server
|
||||
[#1808](https://github.com/nextcloud/spreed/pull/1808)
|
||||
- Fix screensharing for users not in the call
|
||||
[#1753](https://github.com/nextcloud/spreed/pull/1753)
|
||||
- Conversation list does not update with read/unread status using the external signaling server
|
||||
[#1431](https://github.com/nextcloud/spreed/pull/1431)
|
||||
|
||||
## 6.0.0 – 2019-04-25
|
||||
### Added
|
||||
- Administrators can now define commands which can be used in the chat. See [the commands documentation](https://nextcloud-talk.readthedocs.io/en/latest/commands/) for more information. You can install some sample commands via the console.
|
||||
[#1453](https://github.com/nextcloud/spreed/pull/1453)
|
||||
[#1662](https://github.com/nextcloud/spreed/pull/1662)
|
||||
- There is now a "Talk updates" conversation which will help the user to discover some features
|
||||
[#1616](https://github.com/nextcloud/spreed/pull/1616)
|
||||
[#1662](https://github.com/nextcloud/spreed/pull/1662)
|
||||
- `@all` mentions all participants in the conversation
|
||||
[#1531](https://github.com/nextcloud/spreed/pull/1531)
|
||||
- Allow to get the last sent message again with `arrow-up`
|
||||
[#1520](https://github.com/nextcloud/spreed/pull/1520)
|
||||
- Conversations can be added to the new Nextcloud 16 projects
|
||||
[#1611](https://github.com/nextcloud/spreed/pull/1611)
|
||||
[#1663](https://github.com/nextcloud/spreed/pull/1663)
|
||||
- Conversations associated to files now have a link to the file
|
||||
[#1387](https://github.com/nextcloud/spreed/pull/1387)
|
||||
- The Talk app can now be restricted to a group of users in the Talk administration settings
|
||||
[#1585](https://github.com/nextcloud/spreed/pull/1585)
|
||||
- Show a warning when a call has many participants and no external signaling server is used
|
||||
[#1649](https://github.com/nextcloud/spreed/pull/1649)
|
||||
- Added an easy-to-find option to copy the link of a conversation
|
||||
[#1670](https://github.com/nextcloud/spreed/pull/1670)
|
||||
|
||||
### Changed
|
||||
- One-to-one conversations are now persistent and can not be turned into group conversations by accident. Also when one of the participants leaves the conversation, the conversation is not automatically deleted anymore.
|
||||
[#1591](https://github.com/nextcloud/spreed/pull/1591)
|
||||
[#1588](https://github.com/nextcloud/spreed/pull/1588)
|
||||
- Conversations must have a name now
|
||||
[#1567](https://github.com/nextcloud/spreed/pull/1567)
|
||||
|
||||
### Fixed
|
||||
- Fix multiple race-conditions that could interrupt connections, end calls or prevent connections between single participants
|
||||
[#1522](https://github.com/nextcloud/spreed/pull/1522)
|
||||
[#1533](https://github.com/nextcloud/spreed/pull/1533)
|
||||
[#1534](https://github.com/nextcloud/spreed/pull/1534)
|
||||
[#1549](https://github.com/nextcloud/spreed/pull/1549)
|
||||
- Use better icons when a file without preview or a folder is shared into the chat
|
||||
[#1601](https://github.com/nextcloud/spreed/pull/1601)
|
||||
- Prevent issues when two participants share their screens
|
||||
[#1571](https://github.com/nextcloud/spreed/pull/1571)
|
||||
- Correctly remember last media state when reloading in a call
|
||||
[#1548](https://github.com/nextcloud/spreed/pull/1548)
|
||||
[#5174](https://github.com/nextcloud/spreed/pull/1574)
|
||||
- Do not show conversation names and other details if the user is not a participant
|
||||
[#1426](https://github.com/nextcloud/spreed/pull/1426)
|
||||
[#1496](https://github.com/nextcloud/spreed/pull/1496)
|
||||
[#1502](https://github.com/nextcloud/spreed/pull/1502)
|
||||
- Fixed an issue when a link was posted into the chat at the end of a line
|
||||
[#1666](https://github.com/nextcloud/spreed/pull/1666)
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 7.0.4 – 2020-07-21
|
||||
### Added
|
||||
- Reduce CPU usage when doing a video call
|
||||
[#3416](https://github.com/nextcloud/spreed/pull/3416)
|
||||
|
||||
### Changed
|
||||
- Improve default push notification text for upcoming iOS 13 SDK changes in the iOS mobile app
|
||||
[#3849](https://github.com/nextcloud/spreed/pull/3849)
|
||||
|
||||
### Fixed
|
||||
- Fix a failure on logout when an active session was removed from a conversation already
|
||||
[#3871](https://github.com/nextcloud/spreed/pull/3871)
|
||||
- Fix an error when the user list is used to fill a missing conversation name
|
||||
[#3629](https://github.com/nextcloud/spreed/pull/3629)
|
||||
- Fix an error when the parent of a reply was the first item in the message list
|
||||
[#3588](https://github.com/nextcloud/spreed/pull/3588)
|
||||
|
||||
## 7.0.2 – 2019-11-12
|
||||
### Changed
|
||||
- Improve the settings for Talk and extend the explanations
|
||||
[#2342](https://github.com/nextcloud/spreed/pull/2342)
|
||||
|
||||
### Fixed
|
||||
- Do not join file conversations automatically to avoid empty conversations
|
||||
[#2423](https://github.com/nextcloud/spreed/pull/2423)
|
||||
[#2347](https://github.com/nextcloud/spreed/pull/2347)
|
||||
- Do not load the Talk sidebar on public share page for folders
|
||||
[#2340](https://github.com/nextcloud/spreed/pull/2340)
|
||||
|
||||
## 7.0.1 – 2019-10-17
|
||||
### Fixed
|
||||
- Fix position of the promoted and the current participant in calls
|
||||
[#2320](https://github.com/nextcloud/spreed/pull/2320)
|
||||
- Add a hint for the start time format of the lobby timer
|
||||
[#2267](https://github.com/nextcloud/spreed/pull/2267)
|
||||
- Fix "MessageTooLongException" when mentioning someone in a long comment
|
||||
[#2268](https://github.com/nextcloud/spreed/pull/2268)
|
||||
- Correctly set the unread counter when readding a user to a one-to-one conversation
|
||||
[#2259](https://github.com/nextcloud/spreed/pull/2259)
|
||||
|
||||
## 7.0.0 – 2019-09-26
|
||||
### Added
|
||||
- Added a simple Lobby: moderators can join and prepare a call/meeting while users and guests can not join yet
|
||||
[#1926](https://github.com/nextcloud/spreed/pull/1926)
|
||||
- Add the file call functionality to the public sharing page
|
||||
[#2107](https://github.com/nextcloud/spreed/pull/2107)
|
||||
- Allow to mention guest users
|
||||
[#1974](https://github.com/nextcloud/spreed/pull/1974)
|
||||
- Added a voice level indicator and notify the user when they speak while they are muted
|
||||
[#2016](https://github.com/nextcloud/spreed/pull/2016)
|
||||
- Change the read marker to work based on the message ID and allow clients to set it manually
|
||||
[#1214](https://github.com/nextcloud/spreed/pull/1214)
|
||||
- Prepare the backend for replies to messages so the clients can implement it
|
||||
[#2000](https://github.com/nextcloud/spreed/pull/2000)
|
||||
- Allow to prevent guests from starting a call
|
||||
[#2204](https://github.com/nextcloud/spreed/pull/2204)
|
||||
- Update SimpleWebRTC to the latest version
|
||||
|
||||
### Changed
|
||||
- Load newest chat messages first on joining a conversation
|
||||
[#2206](https://github.com/nextcloud/spreed/pull/2206)
|
||||
- You can now escape commands to show them to your chat partners by prepending a second slash (e.g. //help)
|
||||
[#1919](https://github.com/nextcloud/spreed/pull/1919)
|
||||
- One-to-one conversations are now only deleted if both users leave the conversation
|
||||
[#1921](https://github.com/nextcloud/spreed/pull/1921)
|
||||
- Use the guests name in notifications instead of the anonymous "A guest" string
|
||||
[#2104](https://github.com/nextcloud/spreed/pull/2104)
|
||||
|
||||
### Fixed
|
||||
- Allow to have file based calls in folders mounted by the groupfolders app
|
||||
[#2012](https://github.com/nextcloud/spreed/pull/2012)
|
||||
- Only list participants who joined the call in the call summary
|
||||
[#2012](https://github.com/nextcloud/spreed/pull/2012)
|
||||
- Participants in the participant list now offer the contacts menu
|
||||
[#1822](https://github.com/nextcloud/spreed/pull/1822)
|
||||
- Better UI feedback while moderator actions are performed
|
||||
[#2117](https://github.com/nextcloud/spreed/pull/2117)
|
||||
- Make sure the external signaling server is informed about the new state changes (read-only, lobby, etc.)
|
||||
[#2103](https://github.com/nextcloud/spreed/pull/2103)
|
||||
- Show a call summary for calls when there was no user
|
||||
[#2177](https://github.com/nextcloud/spreed/pull/2177)
|
||||
- Allow to mention the conversation by its name additionally to "all"
|
||||
[#2198](https://github.com/nextcloud/spreed/pull/2198)
|
||||
- Fix mentions with users that have a numeric only ID
|
||||
[#2173](https://github.com/nextcloud/spreed/pull/2173)
|
||||
- Enable camera and microphone access in the Nextcloud 17 feature policy
|
||||
[#2073](https://github.com/nextcloud/spreed/pull/2073)
|
||||
- Multiple Nextcloud 17 compatibility fixes
|
||||
|
||||
@@ -0,0 +1,280 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 8.0.15 – 2021-01-08
|
||||
### Fixed
|
||||
- Don't remove a chat when a self-joined user leaves
|
||||
[#4904](https://github.com/nextcloud/spreed/pull/4904)
|
||||
|
||||
## 8.0.14 – 2020-12-18
|
||||
### Fixed
|
||||
- Fix potentially multiple guests joining in a password request conversation
|
||||
[#4796](https://github.com/nextcloud/spreed/pull/4796)
|
||||
|
||||
## 8.0.13 – 2020-11-17
|
||||
### Fixed
|
||||
- Reduce the load when mounting many shares
|
||||
[#4511](https://github.com/nextcloud/spreed/pull/4511)
|
||||
- Fix handling of unavailable commands
|
||||
[#4579](https://github.com/nextcloud/spreed/pull/4579)
|
||||
- Correctly delete a conversation when the last moderator leaves
|
||||
[#4611](https://github.com/nextcloud/spreed/pull/4611)
|
||||
|
||||
## 8.0.12 – 2020-10-23
|
||||
### Fixed
|
||||
- Remove pulse animation from call button to reduce CPU load in chrome-based browsers
|
||||
[#4303](https://github.com/nextcloud/spreed/pull/4303)
|
||||
- Fix minimum length calculation of the call token
|
||||
[#4371](https://github.com/nextcloud/spreed/pull/4371)
|
||||
- Fix duplicate session issue in files sidebar
|
||||
[#4428](https://github.com/nextcloud/spreed/pull/4428)
|
||||
|
||||
## 8.0.11 – 2020-09-17
|
||||
### Fixed
|
||||
- Internet Explorer 11 unable to load the interface
|
||||
[#3983](https://github.com/nextcloud/spreed/pull/3983)
|
||||
- Speaker promotion with newer Janus versions
|
||||
[#3952](https://github.com/nextcloud/spreed/pull/3952)
|
||||
- Prevent infinite loop when opening a data channel and retransmitting old messages
|
||||
[#4070](https://github.com/nextcloud/spreed/pull/4070)
|
||||
- Installation on Oracle fails
|
||||
[#4130](https://github.com/nextcloud/spreed/pull/4130)
|
||||
- Fix clientside memory leaks due to missing unsubscribe of events when destroying interface components
|
||||
[#4149](https://github.com/nextcloud/spreed/pull/4149)
|
||||
[#4161](https://github.com/nextcloud/spreed/pull/4161)
|
||||
[#4163](https://github.com/nextcloud/spreed/pull/4163)
|
||||
|
||||
## 8.0.10 – 2020-07-21
|
||||
### Added
|
||||
- Warn the user when their connection or computer is busy and others might not be able to see or hear them correctly anymore.
|
||||
[#3899](https://github.com/nextcloud/spreed/pull/3899)
|
||||
|
||||
### Changed
|
||||
- Improve default push notification text for upcoming iOS 13 SDK changes in the iOS mobile app
|
||||
[#3848](https://github.com/nextcloud/spreed/pull/3848)
|
||||
|
||||
### Fixed
|
||||
- Always try to connect without camera in case it failed
|
||||
[#3781](https://github.com/nextcloud/spreed/pull/3781)
|
||||
- Update lib to parse links in chat messages to fix an issue with trailing spaces
|
||||
[#3925](https://github.com/nextcloud/spreed/pull/3925)
|
||||
- Remove automatic ping when getting chat messages via the web UI
|
||||
[#3793](https://github.com/nextcloud/spreed/pull/3793)
|
||||
|
||||
## 8.0.9 – 2020-05-13
|
||||
### Changed
|
||||
- Reduce CPU usage when doing a video call
|
||||
[#3414](https://github.com/nextcloud/spreed/pull/3414)
|
||||
- Automatic scaling of video quality to allow bigger video calls to further reduce required CPU and bandwidth
|
||||
[#3468](https://github.com/nextcloud/spreed/pull/3468)
|
||||
- Notify users when talk was updated in the background and a reload is necessary
|
||||
[#3373](https://github.com/nextcloud/spreed/pull/3373)
|
||||
- Improve the layout of the video stripe when the videos don't fit anymore
|
||||
[#3433](https://github.com/nextcloud/spreed/pull/3433)
|
||||
|
||||
### Fixed
|
||||
- Guest names not shown in video calls with the HPB
|
||||
[#3502](https://github.com/nextcloud/spreed/pull/3502)
|
||||
- Don't mark the tab "unread" for own messages and messages you read already
|
||||
[#3378](https://github.com/nextcloud/spreed/pull/3378)
|
||||
- Try harder to connect with microphone when camera is not readable
|
||||
[#3494](https://github.com/nextcloud/spreed/pull/3494)
|
||||
- Fix multiple issues when the connection was interrupted
|
||||
[#3405](https://github.com/nextcloud/spreed/pull/3405)
|
||||
[#3461](https://github.com/nextcloud/spreed/pull/3461)
|
||||
[#3467](https://github.com/nextcloud/spreed/pull/3467)
|
||||
[#3466](https://github.com/nextcloud/spreed/pull/3466)
|
||||
[#3452](https://github.com/nextcloud/spreed/pull/3452)
|
||||
- Fix a type error while pinging the sessions with the HPB
|
||||
[#3375](https://github.com/nextcloud/spreed/pull/3375)
|
||||
|
||||
## 8.0.8 – 2020-04-20
|
||||
### Changed
|
||||
- Show a warning to users when they use an unsupported browser already when chatting
|
||||
[#3296](https://github.com/nextcloud/spreed/pull/3296)
|
||||
|
||||
### Fixed
|
||||
- Further performance improvements when interacting with participant sessions
|
||||
[#3345](https://github.com/nextcloud/spreed/pull/3345)
|
||||
[#3322](https://github.com/nextcloud/spreed/pull/3322)
|
||||
- Show a warning and error in case the signaling connection is failing
|
||||
[#3288](https://github.com/nextcloud/spreed/pull/3288)
|
||||
- Fix missing header element to make Chrome aware of the screenshare extension
|
||||
[#3281](https://github.com/nextcloud/spreed/pull/3281)
|
||||
- Don't error when a guest tries to open the Talk app without a conversation token
|
||||
[#3344](https://github.com/nextcloud/spreed/pull/3344)
|
||||
- Removed unnecessary double-quote argument parameter from commands
|
||||
[#3362](https://github.com/nextcloud/spreed/pull/3362)
|
||||
|
||||
## 8.0.7 – 2020-04-02
|
||||
### Fixed
|
||||
- Calls in files and public sharing sidebar don't work
|
||||
[#3241](https://github.com/nextcloud/spreed/pull/3241)
|
||||
- Add another missing index to the participants table to reduce the load
|
||||
[#3239](https://github.com/nextcloud/spreed/pull/3239)
|
||||
- Fix blank page on Internet Explorer 11
|
||||
[#3240](https://github.com/nextcloud/spreed/pull/3240)
|
||||
|
||||
## 8.0.6 – 2020-04-01
|
||||
### Added
|
||||
- Remember the video/audio setting per conversation
|
||||
[#3205](https://github.com/nextcloud/spreed/pull/3205)
|
||||
- Added the join button to the "Alice started a call" message to make it easier to join
|
||||
[#3135](https://github.com/nextcloud/spreed/pull/3135)
|
||||
- Added a warning when no TURN server is configured but no ICE connection could be established
|
||||
[#3162](https://github.com/nextcloud/spreed/pull/3162)
|
||||
- Added more aria labels to support screenreaders
|
||||
[#3215](https://github.com/nextcloud/spreed/pull/3215)
|
||||
- **Tech Preview:** Added a setting to prefer H.264 video codec
|
||||
[#3224](https://github.com/nextcloud/spreed/pull/3224)
|
||||
|
||||
### Changed
|
||||
- Allow guests to set their name while they are already in a call
|
||||
[#3169](https://github.com/nextcloud/spreed/pull/3169)
|
||||
- Automatically hide the left sidebar when in full screen in a call
|
||||
[#3158](https://github.com/nextcloud/spreed/pull/3158)
|
||||
|
||||
### Fixed
|
||||
- Fix unnecessary high load when users update their room list (every 30 seconds)
|
||||
[#3225](https://github.com/nextcloud/spreed/pull/3225)
|
||||
- Fix videos being overlayed with the video/audio control icons
|
||||
[#3149](https://github.com/nextcloud/spreed/pull/3149)
|
||||
- Correctly load/hide the guest avatar based on the WebRTC connection state
|
||||
[#3196](https://github.com/nextcloud/spreed/pull/3196)
|
||||
- Stop signaling correctly when switching to another conversation
|
||||
[#3200](https://github.com/nextcloud/spreed/pull/3200)
|
||||
- Do not constantly try to reconnect to peers without any streams
|
||||
[#3199](https://github.com/nextcloud/spreed/pull/3199)
|
||||
- Do not retrigger an update of the participant list when it is already being updated
|
||||
[#3202](https://github.com/nextcloud/spreed/pull/3202)
|
||||
- Fix a problem when trying to set a password with question marks or hash sign
|
||||
[#3145](https://github.com/nextcloud/spreed/pull/3145)
|
||||
- Fix issues when a user or guest is being demoted from moderators while already being in a call with the lobby enabled with the external signaling server
|
||||
[#3057](https://github.com/nextcloud/spreed/pull/3057)
|
||||
- Fix issues with interrupted audio streams when closing the sidebar in the files app while having a call
|
||||
[#3044](https://github.com/nextcloud/spreed/pull/3044)
|
||||
|
||||
## 8.0.5 – 2020-03-03
|
||||
### Added
|
||||
- Add a link to the file in the conversation info for file conversations
|
||||
[#2974](https://github.com/nextcloud/spreed/pull/2974)
|
||||
|
||||
### Fixed
|
||||
- Fix copy and paste behaviour with WebKit based browsers
|
||||
[#2982](https://github.com/nextcloud/spreed/pull/2982)
|
||||
- Improve chat loading for guests to be fast again
|
||||
[#3026](https://github.com/nextcloud/spreed/pull/3026)
|
||||
- Improve reaction time to conversation status changes for guests
|
||||
[#3038](https://github.com/nextcloud/spreed/pull/3038)
|
||||
- Fix collision on (empty) tab id with systemtags app in the sidebar
|
||||
[#2964](https://github.com/nextcloud/spreed/pull/2964)
|
||||
- Focus the chat input in the sidebar when opening the chat tab
|
||||
[#2975](https://github.com/nextcloud/spreed/pull/2975)
|
||||
- Also end call state of conversation when the last user leaves, has a timeout or logs out directly
|
||||
[#2952](https://github.com/nextcloud/spreed/pull/2952)
|
||||
[#2984](https://github.com/nextcloud/spreed/pull/2984)
|
||||
- Await response of "Leave call" before leaving the conversation
|
||||
[#2951](https://github.com/nextcloud/spreed/pull/2951)
|
||||
- Don't provide a default stun when the server has no internet connection
|
||||
[#2982](https://github.com/nextcloud/spreed/pull/2982)
|
||||
[#3028](https://github.com/nextcloud/spreed/pull/3028)
|
||||
- Fix call notifications stating "You missed a call" with a lot of participants
|
||||
[#2945](https://github.com/nextcloud/spreed/pull/2945)
|
||||
- Only try to join and leave real conversations when opening the files sidebar
|
||||
[#2977](https://github.com/nextcloud/spreed/pull/2977)
|
||||
|
||||
|
||||
## 8.0.4 – 2020-02-11
|
||||
### Added
|
||||
- Readd fullscreen option for the interface with f as a shortcut
|
||||
[#2937](https://github.com/nextcloud/spreed/pull/2937)
|
||||
|
||||
### Fixed
|
||||
- Fix Files sidebar integration, public share page and video verification
|
||||
[#2935](https://github.com/nextcloud/spreed/pull/2935)
|
||||
|
||||
## 8.0.3 – 2020-02-10
|
||||
### Fixed
|
||||
- Fix calls not working anymore due to error when handling signaling messages
|
||||
[#2928](https://github.com/nextcloud/spreed/pull/2928)
|
||||
- Do not show favorite and call icon overlapping each others
|
||||
[#2927](https://github.com/nextcloud/spreed/pull/2927)
|
||||
- Fix issues in the participants list when there are multiple guests
|
||||
[#2929](https://github.com/nextcloud/spreed/pull/2929)
|
||||
- Fix error in console when adding a conversation to favorites
|
||||
[#2930](https://github.com/nextcloud/spreed/pull/2930)
|
||||
|
||||
## 8.0.2 – 2020-02-07
|
||||
### Added
|
||||
- Allow admins to select a default notification level for group conversations
|
||||
[#2903](https://github.com/nextcloud/spreed/pull/2903)
|
||||
- Add a red video icon to the conversation list when a call is in progress
|
||||
[#2910](https://github.com/nextcloud/spreed/pull/2910)
|
||||
|
||||
### Changed
|
||||
- Make unread message counter and last message preview more responsive
|
||||
[#2865](https://github.com/nextcloud/spreed/pull/2865)
|
||||
[#2904](https://github.com/nextcloud/spreed/pull/2904)
|
||||
- Further improve the dialog to create group conversations
|
||||
[#2878](https://github.com/nextcloud/spreed/pull/2878)
|
||||
|
||||
### Fixed
|
||||
- Improve loading performance of chats
|
||||
[#2901](https://github.com/nextcloud/spreed/pull/2901)
|
||||
- Continue scrolling a conversation when new messages arrive while the tab is inactive
|
||||
[#2901](https://github.com/nextcloud/spreed/pull/2901)
|
||||
- Do not send last message again when hitting enter on an empty input field
|
||||
[#2868](https://github.com/nextcloud/spreed/pull/2868)
|
||||
- Fix flows to correctly send notifications on mentions
|
||||
[#2867](https://github.com/nextcloud/spreed/pull/2867)
|
||||
- Reduce server load when using autocomplete on chat mentions
|
||||
[#2871](https://github.com/nextcloud/spreed/pull/2871)
|
||||
|
||||
## 8.0.1 – 2020-01-27
|
||||
### Added
|
||||
- Add details to "New in Talk 8" list
|
||||
[#2812](https://github.com/nextcloud/spreed/pull/2812)
|
||||
- Allow to "right click" > "Copy link address" on the conversations list again
|
||||
[#2832](https://github.com/nextcloud/spreed/pull/2832)
|
||||
- Add an indicator to the participant list if a user is in the call
|
||||
[#2840](https://github.com/nextcloud/spreed/pull/2840)
|
||||
|
||||
### Changed
|
||||
- Require confirmation before deleting a conversation
|
||||
[#2843](https://github.com/nextcloud/spreed/pull/2843)
|
||||
|
||||
### Fixed
|
||||
- Re-add missing shortcuts for turning on/off audio (m) and video (v)
|
||||
[#2828](https://github.com/nextcloud/spreed/pull/2828)
|
||||
- Fix visiting index.php/ links when rewrite is enabled
|
||||
[#2833](https://github.com/nextcloud/spreed/pull/2833)
|
||||
- Adding a circle does not correctly add all accepted members
|
||||
[#2834](https://github.com/nextcloud/spreed/pull/2834)
|
||||
- Correctly handle guest names in chats and calls when they are changed
|
||||
[#2849](https://github.com/nextcloud/spreed/pull/2849)
|
||||
- Contacts menu not redirecting to one-to-one conversations on "Talk to …"
|
||||
[#2809](https://github.com/nextcloud/spreed/pull/2809)
|
||||
- Increase tolerence for automatically show new messages and scroll to bottom
|
||||
[#2821](https://github.com/nextcloud/spreed/pull/2821)
|
||||
|
||||
## 8.0.0 – 2020-01-17
|
||||
### Added
|
||||
- Recreation of the frontend in Vue.JS
|
||||
- Allow to reply directly to messages
|
||||
- Filter the conversations and participants list when searching
|
||||
- Ask for confirmation when a user navigates away while being in a call
|
||||
- Support for circles when creating a new conversation and adding participants
|
||||
- Add a first version of Flow support
|
||||
|
||||
### Changed
|
||||
- Allow to write multiple chat messages in a row
|
||||
- Improve the way how conversations are created
|
||||
- Make single emojis bigger to improve readability
|
||||
|
||||
### Fixed
|
||||
- A lot of fixes, see [Github](https://github.com/nextcloud/spreed/milestone/27?closed=1) for a complete list
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: CC0-1.0
|
||||
-->
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## 9.0.10 – 2021-06-04
|
||||
### Fixed
|
||||
- Regenerate session id after entering conversation password
|
||||
[#5642](https://github.com/nextcloud/spreed/pull/5642)
|
||||
|
||||
## 9.0.9 – 2021-02-22
|
||||
### Fixed
|
||||
- Fix collaboration resource options not loading
|
||||
[#5143](https://github.com/nextcloud/spreed/pull/5143)
|
||||
- Fixed a bug that would prevent attachments going into the Talk/ folder
|
||||
[#5080](https://github.com/nextcloud/spreed/pull/5080)
|
||||
|
||||
## 9.0.8 – 2021-01-08
|
||||
### Fixed
|
||||
- Don't remove a chat when a self-joined user leaves
|
||||
[#4903](https://github.com/nextcloud/spreed/pull/4903)
|
||||
|
||||
## 9.0.7 – 2020-12-18
|
||||
### Fixed
|
||||
- Fix potentially multiple guests joining in a password request conversation
|
||||
[#4797](https://github.com/nextcloud/spreed/pull/4797)
|
||||
|
||||
## 9.0.6 – 2020-11-17
|
||||
### Fixed
|
||||
- Reduce the load when mounting many shares
|
||||
[#4510](https://github.com/nextcloud/spreed/pull/4510)
|
||||
- Fix handling of unavailable commands
|
||||
[#4578](https://github.com/nextcloud/spreed/pull/4578)
|
||||
- Correctly delete a conversation when the last moderator leaves
|
||||
[#4499](https://github.com/nextcloud/spreed/pull/4499)
|
||||
|
||||
## 9.0.5 – 2020-10-23
|
||||
### Fixed
|
||||
- Remove pulse animation from call button to reduce CPU load in chrome-based browsers
|
||||
[#4302](https://github.com/nextcloud/spreed/pull/4302)
|
||||
- Only show the "Session conflict" dialog when in a call
|
||||
[#4443](https://github.com/nextcloud/spreed/pull/4443)
|
||||
- Fix minimum length calculation of the call token
|
||||
[#4370](https://github.com/nextcloud/spreed/pull/4370)
|
||||
- Fix duplicate session issue in files sidebar
|
||||
[#4427](https://github.com/nextcloud/spreed/pull/4427)
|
||||
- Lobby date not shown in the moderator menu
|
||||
[#4323](https://github.com/nextcloud/spreed/pull/4323)
|
||||
|
||||
## 9.0.4 – 2020-09-17
|
||||
### Added
|
||||
- Moderators can now mute all participants with a single button in the moderator menu
|
||||
[#4054](https://github.com/nextcloud/spreed/pull/4054)
|
||||
|
||||
### Fixed
|
||||
- Prevent infinite loop when opening a data channel and retransmitting old messages
|
||||
[#4069](https://github.com/nextcloud/spreed/pull/4069)
|
||||
- Installation on Oracle fails
|
||||
[#4129](https://github.com/nextcloud/spreed/pull/4129)
|
||||
- Fix clientside memory leaks due to missing unsubscribe of events when destroying interface components
|
||||
[#4148](https://github.com/nextcloud/spreed/pull/4148)
|
||||
[#4156](https://github.com/nextcloud/spreed/pull/4156)
|
||||
[#4160](https://github.com/nextcloud/spreed/pull/4160)
|
||||
[#4162](https://github.com/nextcloud/spreed/pull/4162)
|
||||
|
||||
## 9.0.3 – 2020-08-04
|
||||
### Fixed
|
||||
- Fix compatibility with Janus 0.10.4 and the newest High-performance backend
|
||||
[#3940](https://github.com/nextcloud/spreed/pull/3940)
|
||||
[#3979](https://github.com/nextcloud/spreed/pull/3979)
|
||||
- Allow Internet Explorer 11 to render the page again
|
||||
[#3967](https://github.com/nextcloud/spreed/pull/3967)
|
||||
[#3982](https://github.com/nextcloud/spreed/pull/3982)
|
||||
- Only show the browser warning when interacting with Nextcloud Talk features
|
||||
[#3978](https://github.com/nextcloud/spreed/pull/3978)
|
||||
- Avatar menu is opaque for participants that are offline
|
||||
[#3959](https://github.com/nextcloud/spreed/pull/3959)
|
||||
- Always allow to communicate with the HPB even when it's a local url
|
||||
[#3965](https://github.com/nextcloud/spreed/pull/3965)
|
||||
|
||||
## 9.0.2 – 2020-07-21
|
||||
### Added
|
||||
- Warn the user when their connection or computer is busy and others might not be able to see or hear them correctly anymore.
|
||||
[#3923](https://github.com/nextcloud/spreed/pull/3923)
|
||||
- Warn the user when joining twice in the same conversation which breaks the calling experience for others.
|
||||
[#3866](https://github.com/nextcloud/spreed/pull/3866)
|
||||
|
||||
### Changed
|
||||
- Improve default push notification text for upcoming iOS 13 SDK changes in the iOS mobile app
|
||||
[#3847](https://github.com/nextcloud/spreed/pull/3847)
|
||||
|
||||
### Fixed
|
||||
- Fix timeout issue with users having only numeric ids
|
||||
[#3791](https://github.com/nextcloud/spreed/pull/3791)
|
||||
- Fix a failure on logout when an active session was removed from a conversation already
|
||||
[#3869](https://github.com/nextcloud/spreed/pull/3869)
|
||||
- Unify the blur on all videos to a same higher factor
|
||||
[#3821](https://github.com/nextcloud/spreed/pull/3821)
|
||||
[#3887](https://github.com/nextcloud/spreed/pull/3887)
|
||||
- Fix attachment selection when default folder can not be created.
|
||||
[#3797](https://github.com/nextcloud/spreed/pull/3797)
|
||||
- Update lib to parse links in chat messages to fix an issue with trailing spaces
|
||||
[#3924](https://github.com/nextcloud/spreed/pull/3924)
|
||||
|
||||
## 9.0.1 – 2020-06-08
|
||||
### Added
|
||||
- Store the guest name in browser storage again and read it from there
|
||||
[#3709](https://github.com/nextcloud/spreed/pull/3709)
|
||||
- Automatically switch to promoted view upon screenshare
|
||||
[#3711](https://github.com/nextcloud/spreed/pull/3711)
|
||||
- Added autocomplete support for talk:room:* commands
|
||||
[#3728](https://github.com/nextcloud/spreed/pull/3728)
|
||||
|
||||
### Changed
|
||||
- Reload page on changing conversation and disable start/join call when Talk UI needs reloading
|
||||
[#3699](https://github.com/nextcloud/spreed/pull/3699)
|
||||
- Show sidebar when Viewer is opened
|
||||
[#3679](https://github.com/nextcloud/spreed/pull/3679)
|
||||
|
||||
### Fixed
|
||||
- Properly sort participants by display name again
|
||||
[#3763](https://github.com/nextcloud/spreed/pull/3763)
|
||||
- Make joining the call synchronous to avoid toggling in and out of the callview
|
||||
[#3682](https://github.com/nextcloud/spreed/pull/3682)
|
||||
- Do not fetch all conversations on some signaling events
|
||||
[#3673](https://github.com/nextcloud/spreed/pull/3673)
|
||||
- Reduce database load when sending out push notifications
|
||||
[#3782](https://github.com/nextcloud/spreed/pull/3782)
|
||||
- Remove automatic ping when getting chat messages via the web UI
|
||||
[#3784](https://github.com/nextcloud/spreed/pull/3784)
|
||||
- Always try to connect without camera in case it failed
|
||||
[#3780](https://github.com/nextcloud/spreed/pull/3780)
|
||||
- Fix talk:room:* commands showing "Guest" as actor in the chat
|
||||
[#3754](https://github.com/nextcloud/spreed/pull/3754)
|
||||
- Do not break LessThan3 in last message of conversations list
|
||||
[#3705](https://github.com/nextcloud/spreed/pull/3705)
|
||||
|
||||
## 9.0.0 – 2020-05-26
|
||||
### Added
|
||||
- Added a grid view for calls and made the promoted view more usable in huge calls as well as one-to-one calls
|
||||
[#1056](https://github.com/nextcloud/spreed/pull/1056)
|
||||
[#3569](https://github.com/nextcloud/spreed/pull/3569)
|
||||
- Allow to use multiple High-performance backends in parallel for different conversations
|
||||
[#3292](https://github.com/nextcloud/spreed/pull/3292)
|
||||
[#3605](https://github.com/nextcloud/spreed/pull/3605)
|
||||
- Allow selecting which video is shown big in the promoted view
|
||||
[#3497](https://github.com/nextcloud/spreed/pull/3497)
|
||||
- Open files with the viewer apps registered in Nextcloud
|
||||
[#2778](https://github.com/nextcloud/spreed/pull/2778)
|
||||
- Allow to upload and drag'n'drop files into the chat
|
||||
[#2891](https://github.com/nextcloud/spreed/pull/2891)
|
||||
[#3045](https://github.com/nextcloud/spreed/pull/3045)
|
||||
- Allow pasting images/screenshot directly into the chat
|
||||
[#3399](https://github.com/nextcloud/spreed/pull/3399)
|
||||
- Allow selecting a directory for shared files
|
||||
[#2876](https://github.com/nextcloud/spreed/pull/2876)
|
||||
[#2983](https://github.com/nextcloud/spreed/pull/2983)
|
||||
- Allow to limit creating public and group conversations to a group
|
||||
[#3095](https://github.com/nextcloud/spreed/pull/3095)
|
||||
- Added OCC commands to do basic administrations of conversations
|
||||
[#3465](https://github.com/nextcloud/spreed/pull/3465)
|
||||
- Allow guests to set their name while waiting in the lobby
|
||||
[#3133](https://github.com/nextcloud/spreed/pull/3133)
|
||||
- Allow moderators to turn off the microphone of participants
|
||||
[#3015](https://github.com/nextcloud/spreed/pull/3015)
|
||||
|
||||
### Changed
|
||||
- Reduce CPU usage when doing a video call
|
||||
[#3413](https://github.com/nextcloud/spreed/pull/3413)
|
||||
- Automatic scaling of video quality to allow bigger video calls to further reduce required CPU and bandwidth
|
||||
[#3419](https://github.com/nextcloud/spreed/pull/3419)
|
||||
- Notify users when talk was updated in the background and a reload is necessary
|
||||
[#3336](https://github.com/nextcloud/spreed/pull/3336)
|
||||
- Adjust color of leave and join buttons to common styles
|
||||
[#3398](https://github.com/nextcloud/spreed/pull/3398)
|
||||
[#3348](https://github.com/nextcloud/spreed/pull/3348)
|
||||
|
||||
### Fixed
|
||||
- Try harder to connect with microphone when camera is not readable
|
||||
[#3474](https://github.com/nextcloud/spreed/pull/3474)
|
||||
- Fix multiple issues when the connection was interrupted
|
||||
[#3383](https://github.com/nextcloud/spreed/pull/3383)
|
||||
[#3457](https://github.com/nextcloud/spreed/pull/3457)
|
||||
[#3460](https://github.com/nextcloud/spreed/pull/3460)
|
||||
[#3456](https://github.com/nextcloud/spreed/pull/3456)
|
||||
[#3402](https://github.com/nextcloud/spreed/pull/3402)
|
||||
|
||||
@@ -0,0 +1,569 @@
|
||||
# Chat API
|
||||
|
||||
Base endpoint is: `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 13
|
||||
|
||||
## Receive chat messages of a conversation
|
||||
|
||||
!!! note
|
||||
|
||||
Due to the structure of the `lastMessage.reactions` array the response is not valid in XML.
|
||||
It is therefor recommended to use `format=json` or send the `Accept: application/json` header,
|
||||
to receive a JSON response.
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/chat/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `lookIntoFuture` | int | `1` Poll and wait for new message or `0` get history of a conversation |
|
||||
| `limit` | int | Number of chat messages to receive (100 by default, 200 at most) |
|
||||
| `lastKnownMessageId` | int | Serves as an offset for the query. The lastKnownMessageId for the next page is available in the `X-Chat-Last-Given` header. |
|
||||
| `lastCommonReadId` | int | Send the last `X-Chat-Last-Common-Read` header you got, if you are interested in updates of the common read value. A 304 response does not allow custom headers and otherwise the server can not know if your value is modified or not. |
|
||||
| `timeout` | int | `$lookIntoFuture = 1` only, Number of seconds to wait for new messages (30 by default, 60 at most) |
|
||||
| `setReadMarker` | int | `1` to automatically set the read timer after fetching the messages, use `0` when your client calls `Mark chat as read` manually. (Default: `1`) |
|
||||
| `includeLastKnown` | int | `1` to include the last known message as well (Default: `0`) |
|
||||
| `noStatusUpdate` | int | When the user status should not be automatically set to online set to 1 (default 0) |
|
||||
| `markNotificationsAsRead` | int | `0` to not mark notifications as read (Default: `1`, only available with `chat-keep-notifications` capability) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `304 Not Modified` When there were no older/newer messages
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Given` | int | Offset (lastKnownMessageId) for the next page. |
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability and when lastCommonReadId was sent) |
|
||||
|
||||
- Data:
|
||||
Array of messages, each message has at least:
|
||||
|
||||
| field | type | Description |
|
||||
|----------------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | int | ID of the comment |
|
||||
| `token` | string | Conversation token |
|
||||
| `actorType` | string | See [Constants - Actor types of chat messages](constants.md#actor-types-of-chat-messages) |
|
||||
| `actorId` | string | Actor id of the message author |
|
||||
| `actorDisplayName` | string | Display name of the message author (can be empty for type `deleted_users` and `guests`) |
|
||||
| `timestamp` | int | Timestamp in seconds and UTC time zone |
|
||||
| `systemMessage` | string | empty for normal chat message or the type of the system message (untranslated) |
|
||||
| `messageType` | string | Currently known types are `comment`, `comment_deleted`, `system` and `command` |
|
||||
| `isReplyable` | bool | True if the user can post a reply to this message (only available with `chat-replies` capability) |
|
||||
| `referenceId` | string | A reference string that was given while posting the message to be able to identify a sent message again (only available with `chat-reference-id` capability) |
|
||||
| `message` | string | Message string with placeholders (see [Rich Object String](https://github.com/nextcloud/server/issues/1706)) |
|
||||
| `messageParameters` | array | Message parameters for `message` (see [Rich Object String](https://github.com/nextcloud/server/issues/1706)) |
|
||||
| `expirationTimestamp` | int | Unix time stamp when the message expires and show be removed from the clients UI without further note or warning (only available with `message-expiration` capability) |
|
||||
| `parent` | array | **Optional:** See `Parent data` below |
|
||||
| `reactions` | int[] | **Optional:** An array map with relation between reaction emoji and total count of reactions with this emoji |
|
||||
| `reactionsSelf` | string[] | **Optional:** When the user reacted this is the list of emojis the user reacted with |
|
||||
| `markdown` | bool | **Optional:** Whether the message should be rendered as markdown or shown as plain text |
|
||||
| `lastEditActorType` | string | **Optional:** Actor type of the last editing author - See [Constants - Actor types of chat messages](constants.md#actor-types-of-chat-messages) (only available with `edit-messages` capability and when the message was actually edited) |
|
||||
| `lastEditActorId` | string | **Optional:** Actor id of the last editing author (only available with `edit-messages` capability and when the message was actually edited) |
|
||||
| `lastEditActorDisplayName` | string | **Optional:** Display name of the last editing author (only available with `edit-messages` capability and when the message was actually edited) (can be empty for type `deleted_users` and `guests`) |
|
||||
| `lastEditTimestamp` | int | **Optional:** Unix time stamp when the message was last edited (only available with `edit-messages` capability and when the message was actually edited) |
|
||||
| `silent` | bool | **Optional:** Whether the message was sent silently (only available with `silent-send-state` capability) |
|
||||
|
||||
#### Parent data
|
||||
|
||||
* When deleted:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|------|-----------------------------------|
|
||||
| `id` | int | ID of the parent comment |
|
||||
| `deleted` | bool | `true` when the parent is deleted |
|
||||
|
||||
* Regular message:
|
||||
|
||||
Full message array as shown above, but `parent` will never be set for a parent message.
|
||||
|
||||
## Get context of a message
|
||||
|
||||
!!! note
|
||||
|
||||
Due to the structure of the `lastMessage.reactions` array the response is not valid in XML.
|
||||
It is therefor recommended to use `format=json` or send the `Accept: application/json` header,
|
||||
to receive a JSON response.
|
||||
|
||||
* Required capability: `chat-get-context`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/chat/{token}/{messageId}/context`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|----------------------|------|-------------------------------------------------------------------------------------|
|
||||
| `limit` | int | Number of chat messages to receive into each direction (50 by default, 100 at most) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Given` | int | Offset (lastKnownMessageId) for the next page when getting more history. |
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability and when lastCommonReadId was sent) |
|
||||
|
||||
- Data: See array definition in `Receive chat messages of a conversation`
|
||||
|
||||
## Sending a new chat message
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/chat/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `message` | string | The message the user wants to say |
|
||||
| `actorDisplayName` | string | Guest display name (ignored for logged in users) |
|
||||
| `replyTo` | int | The message ID this message is a reply to (only allowed for messages from the same conversation and when the message type is not `system` or `command`) |
|
||||
| `referenceId` | string | A reference string to be able to identify the message again in a "get messages" request, should be a random sha256 (only available with `chat-reference-id` capability) |
|
||||
| `silent` | bool | If sent silent the message will not create chat notifications even for mentions (only available with `silent-send` capability) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` In case of any other error
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
+ `413 Payload Too Large` When the message was longer than the allowed limit of 32000 characters (or 1000 until Nextcloud 16.0.1, check the `spreed => config => chat => max-length` capability for the limit)
|
||||
+ `429 Too Many Requests` When a guest mentioned other participants too often (50 mention messages per day)
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
- Data:
|
||||
The full message array of the new message, as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
|
||||
## Share a rich object to the chat
|
||||
|
||||
See [OCP\RichObjectStrings\Definitions](https://github.com/nextcloud/server/blob/master/lib/public/RichObjectStrings/Definitions.php) for more details on supported rich objects and required data.
|
||||
|
||||
* Required capability: `rich-object-sharing`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/chat/{token}/share`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `objectType` | string | The object type |
|
||||
| `objectId` | string | The object id |
|
||||
| `metaData` | string | JSON encoded array of the rich objects data |
|
||||
| `actorDisplayName` | string | Guest display name (ignored for logged in users) |
|
||||
| `referenceId` | string | A reference string to be able to identify the message again in a "get messages" request, should be a random sha256 (only available with `chat-reference-id` capability) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` In case the meta data is invalid
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
+ `413 Payload Too Large` When the message was longer than the allowed limit of 32000 characters (or 1000 until Nextcloud 16.0.1, check the `spreed => config => chat => max-length` capability for the limit)
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
- Data:
|
||||
The full message array of the new message, as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
|
||||
## Share a file to the chat
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `ocs/v2.php/apps/files_sharing/api/v1/shares`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|----------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `shareType` | int | `10` means share to a conversation |
|
||||
| `shareWith` | string | The token of the conversation to share the file to |
|
||||
| `path` | string | The file path inside the user's root to share |
|
||||
| `referenceId` | string | A reference string to be able to identify the generated chat message again in a "get messages" request, should be a random sha256 (only available with `chat-reference-id` capability) |
|
||||
| `talkMetaData` | string | JSON encoded array of the meta data |
|
||||
|
||||
### `talkMetaData` array
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `messageType` | string | A message type to show the message in different styles. Currently known: `voice-message` and `comment` |
|
||||
| `caption` | string | A caption message that should be shown together with the shared file (only available with `media-caption` capability) |
|
||||
| `replyTo` | int | The message ID this caption message is a reply to (only allowed for messages from the same conversation and when the message type is not `system` or `command`) |
|
||||
| `threadId` | int | The thread ID this caption message is a response to without actually being a reply (so not sending a notification, only available with `threads` capability) |
|
||||
| `threadTitle` | string | When not empty the message will start a new thread (only available with `threads` capability) |
|
||||
| `silent` | bool | If sent silent the message will not create chat notifications even for mentions (only available with `media-caption` capability, yes `media-caption` not `silent-send`) |
|
||||
|
||||
* Response: [See official OCS Share API docs](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-share-api.html?highlight=sharing#create-a-new-share)
|
||||
|
||||
## List overview of items shared into a chat
|
||||
|
||||
* Required capability: `rich-object-list-media`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/chat/{token}/share/overview`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|-----------------------------------------------------|
|
||||
| `limit` | int | Number of chat messages with shares you want to get |
|
||||
|
||||
* Response:
|
||||
- Note: if a file was shared multiple times it will be returned multiple times
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
+ An array per item type
|
||||
- Array of messages as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
|
||||
## List items of type shared in a chat
|
||||
|
||||
* Required capability: `rich-object-list-media`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/chat/{token}/share`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|----------------------|--------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `objectType` | string | One of the [Constants - Shared item types](constants.md#shared-item-types) |
|
||||
| `lastKnownMessageId` | int | Serves as an offset for the query. The lastKnownMessageId for the next page is available in the `X-Chat-Last-Given` header. |
|
||||
| `limit` | int | Number of chat messages with shares you want to get |
|
||||
|
||||
* Response:
|
||||
- Note: if a file was shared multiple times it will be returned multiple times
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------|------|------------------------------------------------|
|
||||
| `X-Chat-Last-Given` | int | Offset (lastKnownMessageId) for the next page. |
|
||||
|
||||
- Data:
|
||||
Array of messages as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
|
||||
## Clear chat history
|
||||
|
||||
* Required capability: `clear-history`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/chat/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` - When deleting was successful
|
||||
+ `202 Accepted` - When deleting was successful but Matterbridge is enabled so the message was leaked to other services
|
||||
+ `403 Forbidden` When the user is not a moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
- Data:
|
||||
The full message array of the new system message "You cleared the history of the conversation", as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
When rendering this message the client should also remove all messages from any cache/storage of the device.
|
||||
|
||||
|
||||
## Deleting a chat message
|
||||
|
||||
* Required capability: `delete-messages` - `rich-object-delete` indicates if shared objects can be deleted from the chat
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/chat/{token}/{messageId}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` - When deleting was successful
|
||||
+ `202 Accepted` - When deleting was successful, but a bot or Matterbridge is configured, so the information can be replicated to other services
|
||||
+ `400 Bad Request` The message is already older than 6 hours
|
||||
+ `403 Forbidden` When the message is not from the current user and the user not a moderator
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation or chat message could not be found for the participant
|
||||
+ `405 Method Not Allowed` When the message is not a normal chat message
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
- Data:
|
||||
The full message array of the new system message "You deleted a message", as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
The parent message is the object of the deleted message with the replaced text "Message deleted by you".
|
||||
This message should **NOT** be displayed to the user but instead be used to remove the original message from any cache/storage of the device.
|
||||
|
||||
|
||||
## Editing a chat message
|
||||
|
||||
* Required capability: `edit-messages`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/chat/{token}/{messageId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|-----------------------------------|
|
||||
| `message` | string | The message the user wants to say |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` - When editing was successful
|
||||
+ `202 Accepted` - When editing was successful, but a bot or Matterbridge is configured, so the information can be replicated to other services
|
||||
+ `400 Bad Request` The message is already older than 24 hours or another reason why editing is not okay
|
||||
+ `403 Forbidden` When the message is not from the current user and the user not a moderator
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation or chat message could not be found for the participant
|
||||
+ `405 Method Not Allowed` When the message is not a normal chat message
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
- Data:
|
||||
The full message array of the new system message "You edited a message", as defined in [Receive chat messages of a conversation](#receive-chat-messages-of-a-conversation)
|
||||
The parent message is the object of the edited message with the new content.
|
||||
This message should **NOT** be displayed to the user but instead be used to update the original message from any cache/storage of the device.
|
||||
|
||||
## Set reminder for chat message
|
||||
|
||||
* Required capability: `remind-me-later`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/chat/{token}/{messageId}/reminder`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `timestamp` | int | Timestamp when the notification should be triggered. Preferable options for 6pm today, 8am tomorrow, Saturday 8am and Monday 8am should be offered. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `401 Unauthorized` when the user is not logged in
|
||||
+ `404 Not Found` When the message could not be found in the room
|
||||
+ `404 Not Found` When the room could not be found for the participant,
|
||||
or the participant is a guest.
|
||||
- Data:
|
||||
Array with the details of the reminder
|
||||
|
||||
| field | type | Description |
|
||||
|-------------|--------|----------------------------------------------|
|
||||
| `userId` | string | The user id of the user |
|
||||
| `token` | string | The token of the conversation of the message |
|
||||
| `messageId` | int | The message id this reminder is for |
|
||||
| `timestamp` | int | The timestamp when the reminder is triggered |
|
||||
|
||||
## Get reminder for chat message
|
||||
|
||||
* Required capability: `remind-me-later`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/chat/{token}/{messageId}/reminder`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` when the user is not logged in
|
||||
+ `404 Not Found` When the message could not be found in the room
|
||||
+ `404 Not Found` When the room could not be found for the participant,
|
||||
or the participant is a guest.
|
||||
+ `404 Not Found` When the user has no reminder for this message
|
||||
- Data:
|
||||
Array with the details of the reminder
|
||||
|
||||
| field | type | Description |
|
||||
|-------------|--------|----------------------------------------------|
|
||||
| `userId` | string | The user id of the user |
|
||||
| `token` | string | The token of the conversation of the message |
|
||||
| `messageId` | int | The message id this reminder is for |
|
||||
| `timestamp` | int | The timestamp when the reminder is triggered |
|
||||
|
||||
## Delete reminder for chat message
|
||||
|
||||
* Required capability: `remind-me-later`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/chat/{token}/{messageId}/reminder`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` when the user is not logged in
|
||||
+ `404 Not Found` When the message could not be found in the room
|
||||
+ `404 Not Found` When the room could not be found for the participant,
|
||||
or the participant is a guest.
|
||||
|
||||
## Mark chat as read
|
||||
|
||||
* Required capability: `chat-read-marker`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/chat/{token}/read`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-------------------|----------|----------------------------------------------------------------------|
|
||||
| `lastReadMessage` | int/null | The last read message ID (Optional with `chat-read-last` capability) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the room could not be found for the participant,
|
||||
or the participant is a guest.
|
||||
|
||||
- Data in case of `200 OK`:
|
||||
+ **Without** `federation-v1` capability empty
|
||||
+ **With** `federation-v1` capability, see array definition in [Get user´s conversations](conversation.md#get-user-s-conversations)
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
## Mark chat as unread
|
||||
|
||||
* Required capability: `chat-unread`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/chat/{token}/read`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the room could not be found for the participant,
|
||||
or the participant is a guest.
|
||||
|
||||
- Data in case of `200 OK`:
|
||||
+ **Without** `federation-v1` capability empty
|
||||
+ **With** `federation-v1` capability, see array definition in [Get user´s conversations](conversation.md#get-user-s-conversations)
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------|------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Chat-Last-Common-Read` | int | ID of the last message read by every user that has read privacy set to public. When the user themself has it set to private the value the header is not set (only available with `chat-read-status` capability) |
|
||||
|
||||
## Get mention autocomplete suggestions
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/chat/{token}/mentions`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------------|--------|-------------------------------------------------------------------|
|
||||
| `search` | string | Search term for name suggestions (should at least be 1 character) |
|
||||
| `limit` | int | Number of suggestions to receive (20 by default) |
|
||||
| `includeStatus` | bool | Whether the user status information also needs to be loaded |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
Array of suggestions, each suggestion has at least:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `mentionId` | string | Optional: Only available with `federation-v1` capability - the identifier which should be sent as `@<id>` in the message (ids that contain spaces or slashes need to be wrapped in double-quotes when sending in a message: `@"space user"` and `@"guest/random-string"`) |
|
||||
| `id` | string | The id of the participant to mention. Note: while this should not be inserted into the message field when `mentionId` is present, it still has to be used to load e.g. avatar and user status of users that are from the same proxy server. |
|
||||
| `label` | string | The display name of the mention option |
|
||||
| `source` | string | The type of the mention option, currently only `users`, `federated_users`, `group`, `guests` or `calls` (for mentioning the whole conversation) |
|
||||
| `status` | string | Optional: Only available with `includeStatus=true` and for users with a set status |
|
||||
| `statusIcon` | string | Optional: Only available with `includeStatus=true` and for users with a set status |
|
||||
| `statusMessage` | string | Optional: Only available with `includeStatus=true` and for users with a set status |
|
||||
| `details` | string | Optional: Only provided for the "Everyone" option and can be used as a subline directly |
|
||||
|
||||
## System messages
|
||||
|
||||
* `conversation_created` - {actor} created the conversation
|
||||
* `conversation_renamed` - {actor} renamed the conversation from "foo" to "bar"
|
||||
* `description_set` - {actor} set the description
|
||||
* `description_removed` - {actor} removed the description
|
||||
* `call_started` - {actor} started a call
|
||||
* `call_joined` - {actor} joined the call
|
||||
* `call_left` - {actor} left the call
|
||||
* `call_ended` - Call with {user1}, {user2}, {user3}, {user4} and {user5} (Duration 30:23)
|
||||
* `call_ended_everyone` - {user1} ended the call with {user2}, {user3}, {user4} and {user5} (Duration 30:23)
|
||||
* `call_missed` - You missed a call from {user}
|
||||
* `call_tried` - You tried to call {user}
|
||||
* `read_only_off` - {actor} unlocked the conversation
|
||||
* `read_only` - {actor} locked the conversation
|
||||
* `listable_none` - {actor} limited the conversation to the current participants
|
||||
* `listable_users` - {actor} opened the conversation accessible to registered users
|
||||
* `listable_all` - {actor} opened the conversation accessible to registered users and users created with the Guests app
|
||||
* `lobby_timer_reached` - The conversation is now open to everyone
|
||||
* `lobby_none` - {actor} opened the conversation to everyone
|
||||
* `lobby_non_moderators` - {actor} restricted the conversation to moderators
|
||||
* `guests_allowed` - {actor} allowed guests in the conversation
|
||||
* `guests_disallowed` - {actor} disallowed guests in the conversation
|
||||
* `password_set` - {actor} set a password for the conversation
|
||||
* `password_removed` - {actor} removed the password for the conversation
|
||||
* `user_added` - {actor} added {user} to the conversation
|
||||
* `user_removed` - {actor} removed {user} from the conversation
|
||||
* `group_added` - {actor} added group {group} to the conversation
|
||||
* `group_removed` - {actor} removed group {group} from the conversation
|
||||
* `circle_added` - {actor} added circle {circle} to the conversation
|
||||
* `circle_removed` - {actor} removed circle {circle} from the conversation
|
||||
* `moderator_promoted` - {actor} promoted {user} to moderator
|
||||
* `moderator_demoted` - {actor} demoted {user} from moderator
|
||||
* `guest_moderator_promoted` - {actor} promoted {user} to moderator
|
||||
* `guest_moderator_demoted` - {actor} demoted {user} from moderator
|
||||
* `message_deleted` - Message deleted by {actor} (Should not be shown to the user)
|
||||
* `message_edited` - Message edited by {actor} (Should not be shown to the user)
|
||||
* `history_cleared` - {actor} cleared the history of the conversation
|
||||
* `file_shared` - {file}
|
||||
* `object_shared` - {object}
|
||||
* `matterbridge_config_added` - {actor} set up Matterbridge to synchronize this conversation with other chats
|
||||
* `matterbridge_config_edited` - {actor} updated the Matterbridge configuration
|
||||
* `matterbridge_config_removed` - {actor} removed the Matterbridge configuration
|
||||
* `matterbridge_config_enabled` - {actor} started Matterbridge
|
||||
* `matterbridge_config_disabled` - {actor} stopped Matterbridge
|
||||
* `reaction` - {reaction}
|
||||
* `reaction_deleted` - Reaction deleted by author (replacement of `reaction` after the action has been performed)
|
||||
* `reaction_revoked` - {actor} deleted a reaction (the action that will replace `reaction` with a `reaction_deleted` message)
|
||||
* Creating a poll is an `object_shared` with a poll object
|
||||
* `poll_voted` - Someone voted on the poll {poll}
|
||||
* `poll_closed` - {actor} closed the poll {poll}
|
||||
* `message_expiration_enabled` - {actor} set the message expiration to 3 hours
|
||||
* `message_expiration_disabled` - {actor} disabled message expiration
|
||||
* `breakout_rooms_started` - {actor} started breakout rooms
|
||||
* `breakout_rooms_stopped` - {actor} stopped breakout rooms
|
||||
* `recording_started` - {actor} started a video recording
|
||||
* `recording_stopped` - {actor} stopped a video recording
|
||||
* `audio_recording_started` - {actor} started an audio recording
|
||||
* `audio_recording_stopped` - {actor} stopped an audio recording
|
||||
* `avatar_set` - {actor} set the conversation avatar
|
||||
* `avatar_removed` - {actor} removed the conversation avatar
|
||||
* `federated_user_added` - {actor} invited {federated_user} / {federated_user} accepted the invitation
|
||||
* `federated_user_removed` - {actor} removed {federated_user} / {federated_user} declined the invitation
|
||||
|
After Width: | Height: | Size: 289 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -0,0 +1,5 @@
|
||||
# Chat commands
|
||||
|
||||
!!! warning
|
||||
|
||||
**Deprecation:** Commands have been removed in favor of [Bots](bots.md).
|
||||
@@ -0,0 +1,192 @@
|
||||
# Constants
|
||||
|
||||
## Conversation
|
||||
|
||||
### Conversation types
|
||||
* `1` "One to one"
|
||||
* `2` Group
|
||||
* `3` Public
|
||||
* `4` Changelog
|
||||
* `5` Former "One to one" (When a user is deleted from the server or removed from all their conversations, `1` "One to one" rooms are converted to this type)
|
||||
* `6` Note to self
|
||||
|
||||
### Object types
|
||||
|
||||
| Constant | Can be created | Description | Object ID |
|
||||
|-------------------------|----------------|------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
|
||||
| `file` | No | Conversations about a file in the right sidebar of the files app | File ID |
|
||||
| `share:password` | No | Video verification to verify the identity of the share recipient | Share token |
|
||||
| `room` | Yes | Room is a breakout room | Token of the main/parent conversation |
|
||||
| `phone` | Yes | Room is created when calling a phone number with SIP dial-out | `phone` (not set atm, just used for the default avatar) |
|
||||
| `sample` | No | Room is a sample conversation | User ID the sample |
|
||||
| `event` | Yes | Event conversation created via the calendar | Start and end unix timestamp of the event concatenated by pound sign: `start#end` |
|
||||
| `extended_conversation` | Yes | Room is created from another conversation (e.g. adding a participant to 1-1) | Token of previous conversation |
|
||||
|
||||
### Read-only states
|
||||
* `0` Read-write
|
||||
* `1` Read-only
|
||||
|
||||
### Listable scope
|
||||
* `0` Participants only
|
||||
* `1` Regular users only, excluding users created with the Guests app
|
||||
* `2` Everyone
|
||||
|
||||
### Webinar lobby states
|
||||
* `0` No lobby
|
||||
* `1` Lobby for non moderators
|
||||
|
||||
### SIP states
|
||||
* `0` Disabled
|
||||
* `1` Enabled (Each participant needs a unique PIN)
|
||||
* `2` Enabled without PIN (Only the conversation token is required)
|
||||
|
||||
### Breakout room modes
|
||||
* `0` Not configured
|
||||
* `1` Automatic - Attendees are unsorted and then distributed equaly over the rooms, so they all have the same participant count (+/- 1)
|
||||
* `2` Manual - A map with attendee to room number specifies the participants
|
||||
* `3` Free - Each attendee picks their own breakout room
|
||||
|
||||
### Breakout room status
|
||||
* `0` Stopped (breakout rooms lobbies are enabled)
|
||||
* `1` Started (breakout rooms lobbies are disabled)
|
||||
|
||||
### Mention permissions
|
||||
* `0` Everyone (default) - All participants can mention using `@all`
|
||||
* `1` Moderators - Only moderators can mention using `@all`
|
||||
|
||||
### Conversation list style
|
||||
* `two-lines` Normal (default) - two-line elements (with display name and last message)
|
||||
* `compact` Compact - one-line elements (with display name)
|
||||
|
||||
## Participants
|
||||
|
||||
### Participant types
|
||||
* `1` Owner
|
||||
* `2` Moderator
|
||||
* `3` User
|
||||
* `4` Guest
|
||||
* `5` User following a public link
|
||||
* `6` Guest with moderator permissions
|
||||
|
||||
### Participant in-call flag
|
||||
* `0` Disconnected
|
||||
* `1` In-call
|
||||
* `2` Provides audio
|
||||
* `4` Provides video
|
||||
* `8` Uses SIP dial-in
|
||||
|
||||
### Participant notification levels
|
||||
* `0` Default (`1` for one-to-one conversations, `2` for other conversations)
|
||||
* `1` Always notify
|
||||
* `2` Notify on mention
|
||||
* `3` Never notify
|
||||
|
||||
### Participant call notification levels
|
||||
* `0` Off
|
||||
* `1` On (default)
|
||||
|
||||
### Participant read status privacy
|
||||
* `0` Read status is public
|
||||
* `1` Read status is private
|
||||
|
||||
### Participant typing privacy
|
||||
* `0` Typing status is public
|
||||
* `1` Typing status is private
|
||||
|
||||
### Attendee types
|
||||
* `users` - Logged-in users
|
||||
* `federated_users` - Federated users invited by their CloudID
|
||||
* `groups` - Groups
|
||||
* `circles` - [Circle from the Circles app](https://github.com/nextcloud/circles)
|
||||
* `guests` - Guest without a login
|
||||
* `emails` - A guest invited by email address
|
||||
|
||||
### Attendee permissions
|
||||
* `0` Default permissions (will pick the one from the next level of: user, call, conversation)
|
||||
* `1` Custom permissions (this is required to be able to remove all other permissions)
|
||||
* `2` Start call
|
||||
* `4` Join call
|
||||
* `8` Can ignore lobby
|
||||
* `16` Can publish audio stream
|
||||
* `32` Can publish video stream
|
||||
* `64` Can publish screen sharing stream
|
||||
* `128` Can post chat message, share items and do reactions
|
||||
|
||||
### Attendee permission modifications
|
||||
* `set` - Setting this permission set.
|
||||
* `add` - Add the given flags to the permissions.
|
||||
* `remove` - Remove the given flags from the permissions.
|
||||
|
||||
### Actor types of chat messages
|
||||
* `users` - Logged-in users
|
||||
* `guests` - Guest users (attendee type `guests` and `emails`)
|
||||
* `bots` - Used by bots, commands (actor-id is the used `/command`) and the changelog conversation (actor-id is `changelog`)
|
||||
* `bridged` - Users whose messages are bridged in by the [Matterbridge integration](matterbridge.md)
|
||||
* `deleted_users` - Former logged-in users that got deleted (actor id is hardcoded to `deleted_users` and the display name is empty)
|
||||
* `federated_users` - Federated users
|
||||
|
||||
### Session states
|
||||
* `0` - Inactive (Notifications should still be sent, even though the user has this session in the room)
|
||||
* `1` - Active (No notifications should be sent)
|
||||
|
||||
## Call
|
||||
|
||||
### Start call
|
||||
* `0` - Everyone
|
||||
* `1` - Participants of the conversation with an account on the instance
|
||||
* `2` - Moderators
|
||||
* `3` - No one
|
||||
|
||||
### Call recording status
|
||||
* `0` - No recording
|
||||
* `1` - Recording video
|
||||
* `2` - Recording audio
|
||||
* `3` - Starting video recording
|
||||
* `4` - Starting audio recording
|
||||
* `5` - Recording failed
|
||||
|
||||
### Recording consent required
|
||||
* `0` - No recording consent is required to join a call
|
||||
* `1` - Recording consent is required
|
||||
* `2` - Recording consent can be enabled by moderators on conversation level (not allowed on conversation API level, only on config level)
|
||||
|
||||
## Chat
|
||||
|
||||
### Shared item types
|
||||
* `audio` - Shared audio file
|
||||
* `deckcard` - Shared deck card
|
||||
* `file` - Shared files not falling into any other category
|
||||
* `location` - Shared geo location
|
||||
* `media` - Shared files with mimetype starting with image or video
|
||||
* `other` - Shared objects not falling into any other category
|
||||
* `voice` - Voice messages
|
||||
* `recording` - Audio and video recording file of a call
|
||||
|
||||
## Poll
|
||||
|
||||
### Poll status
|
||||
* `0` - Open: Participants can cast votes
|
||||
* `1` - Closed: Participants can no longer cast votes and the result is displayed
|
||||
|
||||
### Poll mode
|
||||
* `0` - Public: Participants can see the result immediately and also who voted for which option
|
||||
* `1` - Hidden: The result is hidden until the poll is closed and then only the number of votes for each option are displayed
|
||||
|
||||
## Bots
|
||||
|
||||
### Bot states
|
||||
* `0` Disabled
|
||||
* `1` Enabled
|
||||
* `2` No setup - The bot can neither be enabled nor disabled by a moderator
|
||||
|
||||
### Bot features
|
||||
* `0` (none) - Bot is not functional at the moment
|
||||
* `1` (webhook) - Bot is receive webhooks
|
||||
* `2` (response) - Bot is sending webhooks
|
||||
* `4` (event) - Bot is invoked via PHP event `OCA\Talk\Events\BotInvokeEvent`
|
||||
* `8` (reaction) - Bot is receiving webhooks or is invoked via PHP event for adding and removing reactions
|
||||
|
||||
## Signaling modes
|
||||
* `internal` - No external signaling server is used
|
||||
* `external` - A single external signaling server is used
|
||||
* `conversation_cluster` - An external signaling server is assigned per conversation.
|
||||
@@ -0,0 +1,536 @@
|
||||
# Conversation API
|
||||
|
||||
* API v1: 🏁 Removed with API v4: until Nextcloud 21
|
||||
* API v2: 🏁 Removed with API v4: Nextcloud 19 - 21
|
||||
* API v3: 🏁 Removed with API v4: Nextcloud 21 only
|
||||
* API v4: Base endpoint `/ocs/v2.php/apps/spreed/api/v4`: since Nextcloud 22
|
||||
|
||||
## Get user´s conversations
|
||||
|
||||
!!! note
|
||||
|
||||
Due to the structure of the `lastMessage.reactions` array the response is not valid in XML.
|
||||
It is therefor recommended to use `format=json` or send the `Accept: application/json` header,
|
||||
to receive a JSON response.
|
||||
|
||||
!!! note
|
||||
|
||||
When `modifiedSince` is provided only conversations with a newer `lastActivity` are returned. If `includeStatus` is set to `true` all one-to-one conversations will be returned to make sure the latest user status is returned.
|
||||
Due to the nature of the data structure we can not return information that a conversation was deleted
|
||||
or the user removed from a conversation. Therefore it is recommended to do a full refresh:
|
||||
* Every 5 minutes
|
||||
* When a signaling message of type `delete` or `disinvite` was received
|
||||
* Internal signaling mode is used
|
||||
|
||||
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------------|------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `noStatusUpdate` | int | When the user status should not be automatically set to online set to 1 (default 0) |
|
||||
| `includeStatus` | bool | Whether the user status information of all one-to-one conversations should be loaded (default false) |
|
||||
| `modifiedSince` | int | **Use with care as per note above.** When provided only conversations with a newer `lastActivity` (and one-to-one conversations when `includeStatus` is provided) are returned. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` when the user is not logged in
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------------------------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Hash` | string | Sha1 value over some config. When you receive a different value on subsequent requests, the capabilities and the signaling settings should be refreshed. |
|
||||
| `X-Nextcloud-Talk-Modified-Before` | string | Timestamp from before the database request that can be used as `modifiedSince` parameter in the next request |
|
||||
| `X-Nextcloud-Talk-Federation-Invites` | string | *Optional:* Number of pending invites to federated conversations the user has. (Only available when the user can do federation and has at least one invite pending) |
|
||||
|
||||
- Data:
|
||||
Array of conversations, each conversation has at least:
|
||||
|
||||
| field | type | Added | Removed | Description |
|
||||
|-------------------------|---------|-------|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | int | v1 | | Numeric identifier of the conversation |
|
||||
| `token` | string | v1 | | Token identifier of the conversation which is used for further interaction |
|
||||
| `type` | int | v1 | | See list of conversation types in the [constants list](constants.md#conversation-types) |
|
||||
| `name` | string | v1 | | Name of the conversation (can also be empty) |
|
||||
| `displayName` | string | v1 | | `name` if non empty, otherwise it falls back to a list of participants |
|
||||
| `description` | string | v3 | | Description of the conversation (can also be empty) (only available with `room-description` capability) |
|
||||
| `participantType` | int | v1 | | Permissions level of the current user |
|
||||
| `attendeeId` | int | v3 | | Unique attendee id |
|
||||
| `attendeePin` | string | v3 | | Unique dial-in authentication code for this user, when the conversation has SIP enabled (see `sipEnabled` attribute) |
|
||||
| `actorType` | string | v3 | | Actor type of the current user (see [constants list](constants.md#attendee-types)) |
|
||||
| `actorId` | string | v3 | | The unique identifier for the given actor type |
|
||||
| `permissions` | int | v4 | | Combined final permissions for the current participant, permissions are picked in order of attendee then call then default and the first which is `Custom` will apply (see [constants list](constants.md#attendee-permissions)) |
|
||||
| `attendeePermissions` | int | v4 | | Dedicated permissions for the current participant, if not `Custom` this are not the resulting permissions (see [constants list](constants.md#attendee-permissions)) |
|
||||
| `callPermissions` | int | v4 | | Call permissions, if not `Custom` this are not the resulting permissions, if set they will reset after the end of the call (see [constants list](constants.md#attendee-permissions)) |
|
||||
| `defaultPermissions` | int | v4 | | Default permissions for new participants (see [constants list](constants.md#attendee-permissions)) |
|
||||
| `participantInCall` | bool | v1 | v2 | **Removed:** use `participantFlags` instead |
|
||||
| `participantFlags` | int | v1 | | "In call" flags of the user's session making the request (only available with `in-call-flags` capability) |
|
||||
| `readOnly` | int | v1 | | Read-only state for the current user (only available with `read-only-rooms` capability) |
|
||||
| `listable` | int | v3 | | Listable scope for the room (only available with `listable-rooms` capability) |
|
||||
| `messageExpiration` | int | v4 | | The message expiration time in seconds in this chat. Zero if disabled. (only available with `message-expiration` capability) |
|
||||
| `count` | int | v1 | v2 | **Removed:** Count the users on the [Get list of participants in a conversation](participant.md#get-list-of-participants-in-a-conversation) endpoint |
|
||||
| `numGuests` | int | v1 | v2 | **Removed:** Count the guests on the [Get list of participants in a conversation](participant.md#get-list-of-participants-in-a-conversation) endpoin |
|
||||
| `lastPing` | int | v1 | | Timestamp of the user's session making the request |
|
||||
| `sessionId` | string | v1 | | `'0'` if not connected, otherwise an up to 512 character long string that is the identifier of the user's session making the request. Should only be used to pre-check if the user joined already with this session, but this might be outdated by the time of usage, so better check via [Get list of participants in a conversation](participant.md#get-list-of-participants-in-a-conversation) |
|
||||
| `hasPassword` | bool | v1 | | Flag if the conversation has a password |
|
||||
| `hasCall` | bool | v1 | | Flag if the conversation has an active call |
|
||||
| `callFlag` | int | v3 | | Combined flag of all participants in the current call (see [constants list](constants.md#participant-in-call-flag), only available with `conversation-call-flags` capability) |
|
||||
| `canStartCall` | bool | v1 | | Flag if the user can start a new call in this conversation (joining is always possible) (only available with `start-call-flag` capability) |
|
||||
| `canDeleteConversation` | bool | v2 | | Flag if the user can delete the conversation for everyone (not possible without moderator permissions or in one-to-one conversations) |
|
||||
| `canLeaveConversation` | bool | v2 | | Flag if the user can leave the conversation (not possible for the last user with moderator permissions) |
|
||||
| `lastActivity` | int | v1 | | Timestamp of the last activity in the conversation, in seconds and UTC time zone |
|
||||
| `isFavorite` | bool | v1 | | Flag if the conversation is favorited by the user |
|
||||
| `notificationLevel` | int | v1 | | The notification level for the user (See [Participant notification levels](constants.md#participant-notification-levels)) |
|
||||
| `lobbyState` | int | v1 | | Webinar lobby restriction (0-1), if the participant is a moderator they can always join the conversation (only available with `webinary-lobby` capability) (See [Webinar lobby states](constants.md#webinar-lobby-states)) |
|
||||
| `lobbyTimer` | int | v1 | | Timestamp when the lobby will be automatically disabled (only available with `webinary-lobby` capability) |
|
||||
| `sipEnabled` | int | v3 | | SIP enable status (see [constants list](constants.md#sip-states)) |
|
||||
| `canEnableSIP` | int | v3 | | Whether the given user can enable SIP for this conversation. Note that when the token is not-numeric only, SIP can not be enabled even if the user is permitted and a moderator of the conversation |
|
||||
| `unreadMessages` | int | v1 | | Number of unread chat messages in the conversation (only available with `chat-v2` capability) |
|
||||
| `unreadMention` | bool | v1 | | Flag if the user was mentioned since their last visit |
|
||||
| `unreadMentionDirect` | bool | v4 | | Flag if the user was mentioned directly (ignoring @all mentions) since their last visit (only available with `direct-mention-flag` capability) |
|
||||
| `lastReadMessage` | int | v1 | | ID of the last read message in a room (only available with `chat-read-marker` capability) |
|
||||
| `lastCommonReadMessage` | int | v3 | | ID of the last message read by every user that has read privacy set to public in a room. When the user themself has it set to private the value is `0` (only available with `chat-read-status` capability) |
|
||||
| `lastMessage` | message | v1 | | Last message in a conversation if available, otherwise empty. **Note:** Even when given the message will not contain the `parent` or `reactionsSelf` attribute due to performance reasons |
|
||||
| `objectType` | string | v1 | | The type of object that the conversation is associated with (See [Object types](constants.md#object-types)) |
|
||||
| `objectId` | string | v1 | | See [Object types](constants.md#object-types) documentation for explanation |
|
||||
| `breakoutRoomMode` | string | v4 | | Breakout room configuration mode (see [constants list](constants.md#breakout-room-modes)) (only available with `breakout-rooms-v1` capability) |
|
||||
| `breakoutRoomStatus` | string | v4 | | Breakout room status (see [constants list](constants.md#breakout-room-status)) (only available with `breakout-rooms-v1` capability) |
|
||||
| `status` | string | v4 | | Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status |
|
||||
| `statusIcon` | ?string | v4 | | Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status |
|
||||
| `statusMessage` | ?string | v4 | | Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status |
|
||||
| `statusClearAt` | ?int | v4 | | Optional: Only available for one-to-one conversations, when `includeStatus=true` is set and the user has a status, can still be null even with a status |
|
||||
| `participants` | array | v1 | v2 | **Removed** |
|
||||
| `guestList` | string | v1 | v2 | **Removed** |
|
||||
| `avatarVersion` | string | v4 | | Version of conversation avatar used to easier expiration of the avatar in case a moderator updates it, since the avatar endpoint should be cached for 24 hours. (only available with `avatar` capability) |
|
||||
| `isCustomAvatar` | bool | v4 | | Flag if the conversation has a custom avatar (only available with `avatar` capability) |
|
||||
| `callStartTime` | int | v4 | | Timestamp when the call was started (only available with `recording-v1` capability) |
|
||||
| `callRecording` | int | v4 | | Type of call recording (see [Constants - Call recording status](constants.md#call-recording-status)) (only available with `recording-v1` capability) |
|
||||
| `recordingConsent` | int | v4 | | Whether recording consent is required before joining a call (Only 0 and 1 will be returned, see [constants list](constants.md#recording-consent-required)) (only available with `recording-consent` capability) |
|
||||
| `mentionPermissions` | int | v4 | | Whether all participants can mention using `@all` or only moderators (see [constants list](constants.md#mention-permissions)) (only available with `mention-permissions` capability) |
|
||||
| `isArchived` | bool | v4 | | Flag if the conversation is archived by the user (only available with `archived-conversations-v2` capability) | |
|
||||
|
||||
## Creating a new conversation
|
||||
|
||||
*Note:* Creating a conversation as a child breakout room, will automatically set the lobby when breakout rooms are not started and will always overwrite the room type with the parent room type. Also, moderators of the parent conversation will be automatically added as moderators.
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `roomType` | int | See [constants list](constants.md#conversation-types) |
|
||||
| `invite` | string | user id (`roomType = 1`), group id (`roomType = 2` - optional), circle id (`roomType = 2`, `source = 'circles'`], only available with `circles-support` capability)) |
|
||||
| `source` | string | The source for the invite, only supported on `roomType = 2` for `groups` and `circles` (only available with `circles-support` capability) |
|
||||
| `roomName` | string | Conversation name up to 255 characters (Not available for `roomType = 1`) |
|
||||
| `objectType` | string | Type of an object this room references, currently only allowed value is `room` to indicate the parent of a breakout room (See [Object types](constants.md#object-types)) |
|
||||
| `objectId` | string | Id of an object this room references, room token is used for the parent of a breakout room |
|
||||
| `password` | string | Password for the room (only available with `conversation-creation-password` capability) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` When the "one to one" conversation already exists
|
||||
+ `201 Created` When the conversation was created
|
||||
+ `400 Bad Request` When an invalid conversation type was given
|
||||
+ `400 Bad Request` When the conversation name is empty for `type = 3`
|
||||
+ `400 Bad Request` When a password is required for a public room or when the password is invalid according to the password policy
|
||||
+ `401 Unauthorized` When the user is not logged in
|
||||
+ `404 Not Found` When the target to invite does not exist
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Get single conversation (also for guests)
|
||||
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|-------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Hash` | string | Sha1 value over some config. When you receive a different value on subsequent requests, the capabilities and the signaling settings should be refreshed. |
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Get "Note-to-self" conversation
|
||||
|
||||
The conversation is like a group conversation and the user is the owner, but with the following limitations:
|
||||
|
||||
* Can not add participants to the conversation
|
||||
* Can not allow guests
|
||||
* Can not make read-only
|
||||
* Can not open the conversations to users or guests
|
||||
* Can not change permissions
|
||||
* Can not set lobby
|
||||
* Can not enable SIP
|
||||
* Can not configure breakout rooms
|
||||
* Can not call
|
||||
|
||||
If the conversation does not exist at the moment, it will be generated and the user added automatically.
|
||||
|
||||
* Required capability: `note-to-self`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/note-to-self`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` When the user is not logged in
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|-------------------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Hash` | string | Sha1 value over some config. When you receive a different value on subsequent requests, the capabilities and the signaling settings should be refreshed. |
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Get open conversations
|
||||
|
||||
* Required capability: `listable-rooms`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/listed-room`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` when the user is not logged in
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------|-------------|
|
||||
| `searchTerm` | string | search term |
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Get breakout rooms
|
||||
|
||||
Get all (for moderators and in case of "free selection") or the assigned breakout room
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/breakout-rooms`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation does not have breakout rooms configured
|
||||
+ `400 Bad Request` When the breakout rooms are not started and the participant is not a moderator
|
||||
+ `401 Unauthorized` When the user is not logged in
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Rename a conversation
|
||||
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|------------------------------------------------------|
|
||||
| `roomName` | string | New name for the conversation (up to 255 characters) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the name is too long or empty
|
||||
+ `400 Bad Request` When the conversation is a one to one conversation
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Delete a conversation
|
||||
|
||||
*Note:* Deleting a conversation that is the parent of breakout rooms, will also delete them.
|
||||
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation is a one-to-one conversation (Use [Remove yourself from a conversation](participant.md#Remove-yourself-from-a-conversation) instead)
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set description for a conversation
|
||||
|
||||
* Required capability: `room-description`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/description`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|--------------------------------------------------------------------------------------------|
|
||||
| `description` | string | New description for the conversation (limited to 2.000 characters, was 500 before Talk 21) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the description is too long
|
||||
+ `400 Bad Request` When the conversation is a one to one conversation
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Allow guests in a conversation (public conversation)
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/public`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|---------|-------------------------------------------------------------------------------------------------|
|
||||
| `password` | ?string | Password for the conversation (only available with `conversation-creation-password` capability) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation is not a group conversation
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Disallow guests in a conversation (group conversation)
|
||||
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/public`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation is not a public conversation
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set read-only for a conversation
|
||||
|
||||
* Required capability: `read-only-rooms`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/read-only`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|-------------------------------------------------------------------------------------|
|
||||
| `state` | int | New state for the conversation, see [constants list](constants.md#read-only-states) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support read-only (only group and public conversation)
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner or the conversation is not a public conversation
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set password for a conversation
|
||||
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/password`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|-----------------------------------|
|
||||
| `password` | string | New password for the conversation |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the password does not match the password policy. Show `ocs.data.message` to the user in this case
|
||||
+ `400 Bad Request` When the conversation is a breakout room
|
||||
+ `403 Forbidden` When the current user is not a moderator or owner
|
||||
+ `403 Forbidden` When the conversation is not a public conversation
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Data:
|
||||
field | type | Description
|
||||
---|---|---
|
||||
`message` | string | Only available on `400 Bad Request`, translated error with the violated password policy rules
|
||||
|
||||
## Set default or call permissions for a conversation
|
||||
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/permissions/{mode}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `mode` | string | `default` or `call`, in case of call the permissions will be reset to `0` (default) after the end of a call. (🏁 `call` is no-op since Talk 20) |
|
||||
| `permissions` | int | New permissions for the attendees, see [constants list](constants.md#attendee-permissions). If permissions are not `0` (default), the `1` (custom) permission will always be added. Note that this will reset all custom permissions that have been given to attendees so far. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support setting publishing permissions, e.g. one-to-one conversations
|
||||
+ `400 Bad Request` When the mode is invalid
|
||||
+ `400 Bad Request` When the conversation is a breakout room
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Add conversation to favorites
|
||||
|
||||
* Required capability: `favorites`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/favorite`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` When the participant is a guest
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Remove conversation from favorites
|
||||
|
||||
* Required capability: `favorites`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/favorite`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` When the participant is a guest
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set notification level
|
||||
|
||||
* Required capability: `notification-levels`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/notify`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|--------------------------------------------------------------------------------------------------------------|
|
||||
| `level` | int | The notification level (See [Participant notification levels](constants.md#participant-notification-levels)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the given level is invalid
|
||||
+ `401 Unauthorized` When the participant is a guest
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set notification level for calls
|
||||
|
||||
* Required capability: `notification-calls`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/notify-calls`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `level` | int | The call notification level (See [Participant call notification levels](constants.md#participant-call-notification-levels)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the given level is invalid
|
||||
+ `401 Unauthorized` When the participant is a guest
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set message expiration
|
||||
|
||||
* Required capability: `message-expiration`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/message-expiration`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|------|---------------------------------------------------------------------------------------------|
|
||||
| `seconds` | int | The messages expiration in seconds. If is zero, messages will not be deleted automatically. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Invalid value
|
||||
+ `400 Bad Request` When the conversation is a breakout room
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set recording consent
|
||||
|
||||
* Required capability: `recording-consent`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/recording-consent`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|------|---------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `recordingConsent` | int | New consent setting for the conversation (Only `0` and `1` from the [constants](constants.md#recording-consent-required) are allowed here.) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the consent value is invalid
|
||||
+ `400 Bad Request` When the consent is being enabled while a call is going on
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Open a conversation
|
||||
|
||||
* Required capability: `listable-rooms`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/listable`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|--------------------------------|
|
||||
| `scope` | int | The room listable scope (See [listable scopes](constants.md#listable-scope)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support making it listable (only group and public conversation)
|
||||
+ `400 Bad Request` When the conversation is a breakout room
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner or the conversation is not a public conversation
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Set mention permissions
|
||||
|
||||
* Required capability: `mention-permissions`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/mention-permissions`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|----------------------|------|-----------------------------------------------------------------------------------------------------------|
|
||||
| `mentionPermissions` | int | New mention permissions for the conversation (See [mention permssions](constants.md#mention-permissions)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support setting mention permissions (only group and public conversation)
|
||||
+ `400 Bad Request` When the conversation is a breakout room
|
||||
+ `400 Bad Request` When permissions value is invalid
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Get conversation capabilities
|
||||
|
||||
See [Capability handling in federated conversations](https://github.com/nextcloud/spreed/issues/10680) to learn which capabilities
|
||||
should be considered from the local server or from the remote server.
|
||||
|
||||
* Required capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/capabilities`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` Get capabilities
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|-------------------------------|--------|--------------------------------------------------------------------------------------------|
|
||||
| `X-Nextcloud-Talk-Proxy-Hash` | string | Sha1 value over the capabilities in case the conversation is hosted **on another server**. |
|
||||
| `X-Nextcloud-Talk-Hash` | string | Sha1 value over the capabilities in case the conversation is hosted **on this server**. |
|
||||
|
||||
- Data: Server capabilities limited to the `spreed` sub-array or an empty array in case the app is disabled (for the user)
|
||||
@@ -0,0 +1,153 @@
|
||||
# CoTURN configuration
|
||||
|
||||
## Install and setup _coTURN_ as TURN server
|
||||
|
||||
It is recommended to install the latest _coTURN_ version; at the very minimum _coTURN_ 4.5.0.8 should be used. In previous versions there is a bug that causes [the IPv6 UDP sockets created by coTURN not to be freed](https://github.com/coturn/coturn/issues/217). Due to this the _turn_ process ends not being able to open new ports and thus not being able to serve new connections. Moreover, when that happens, even if there are no connections a high CPU load will be caused by the _turn_ process. Therefore, if you can not install _coTURN_ 4.5.0.8 or a later version you should restart the _turn_ process periodically to work around that issue.
|
||||
|
||||
## 1. Download and install
|
||||
|
||||
- On **Debian and Ubuntu** there are official repository packages available:
|
||||
```
|
||||
sudo apt install coturn
|
||||
```
|
||||
- For many **other Linux derivatives and UNIX-likes** packages can be found on [https://pkgs.org/download/coturn](https://pkgs.org/download/coturn)
|
||||
- For all **other** cases check out the [Downloads in the wiki of coTURN](https://github.com/coturn/coturn/wiki/Downloads)
|
||||
|
||||
|
||||
## 2. Make coturn run as daemon on startup
|
||||
|
||||
- On **Debian and Ubuntu** you just need to enable the deployed sysvinit service by adjusting the related environment variable:
|
||||
```
|
||||
sudo sed -i '/TURNSERVER_ENABLED/c\TURNSERVER_ENABLED=1' /etc/default/coturn
|
||||
```
|
||||
|
||||
- Since **Debian Buster** and **Ubuntu disco** the package ships a systemd unit, which does not use `/etc/default/coturn` but is enabled automatically on installation. To check whether a systemd unit is available:
|
||||
```
|
||||
ls -l /lib/systemd/system/coturn.service
|
||||
```
|
||||
|
||||
- If you installed coTURN manually, you may want to create a sysvinit service or systemd unit, or use another method to run the following during boot:
|
||||
```
|
||||
/path/to/turnserver -c /path/to/turnserver.conf -o
|
||||
```
|
||||
|
||||
- `-o` starts the server in daemon mode, `-c` defines the path to the config file.
|
||||
- There is also an official example available at [https://github.com/coturn/coturn/blob/master/examples/etc/coturn.service](https://github.com/coturn/coturn/blob/master/examples/etc/coturn.service)
|
||||
|
||||
### Running coTURN on privileged ports
|
||||
|
||||
On some GNU/Linux distributions (for example, **Ubuntu Focal and later**) when _coTURN_ is installed from the official package the _coturn_ service is executed as an unprivileged user like _turnserver_. Due to this by default _coTURN_ can not use privileged ports, like port 443.
|
||||
|
||||
Depending on the system configuration Linux kernel capabilities could be used to overcome this limitation. Capabilities can be associated with executable files using _setcap_, so you could allow the _/usr/bin/turnserver_ executable to bind sockets to privileged ports with:
|
||||
```
|
||||
setcap cap_net_bind_service=+ep /usr/bin/turnserver
|
||||
```
|
||||
|
||||
Alternatively, if the system configuration does not allow to set the capability, or if the coturn process needs to access files only readable by root like an SSL certificate for TLS connections, you could configure the _coturn_ service to be executed by root instead of the unprivileged user by executing:
|
||||
```
|
||||
systemctl edit coturn
|
||||
```
|
||||
and then setting the following configuration, which will override the default one:
|
||||
```
|
||||
[Service]
|
||||
User=root
|
||||
Group=root
|
||||
```
|
||||
|
||||
## 3. Configure `turnserver.conf` for usage with Nextcloud Talk
|
||||
|
||||
- Next you need to adjust the coTURN configuration file to work with Nextcloud Talk.
|
||||
- Choose the listening port (default is _3478_) and an authentication secret, where a random hex is recommended
|
||||
```
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
- Then uncomment/edit the following settings accordingly:
|
||||
|
||||
```
|
||||
listening-port=<yourChosenPortNumber>
|
||||
fingerprint
|
||||
lt-cred-mech # Only on coTURN below v4.5.0.8!
|
||||
use-auth-secret
|
||||
static-auth-secret=<yourChosen/GeneratedSecret>
|
||||
realm=your.domain.org
|
||||
total-quota=0
|
||||
bps-capacity=0
|
||||
stale-nonce
|
||||
no-loopback-peers # Only on coTURN below v4.5.1.0!
|
||||
no-multicast-peers
|
||||
```
|
||||
|
||||
- Support for TLS connections to the TURN server has been added in Talk 11.
|
||||
|
||||
In some cases clients can be behind very restrictive firewalls that only allow TLS connections; in those cases the clients would be able to connect with other clients or the High Performance Backend only through a TURN server and a TLS connection. However, please note that TLS connections do not provide any additional security, as media streams are always end-to-end (When the High Performance Backend is used the High Performance Backend is one of the ends; in that case the media streams are not end-to-end encrypted between the participants but only between participants and the High Performance Backend) encrypted in WebRTC; enabling TLS is just a matter of providing the maximum compatibility.
|
||||
|
||||
Also note that even with TURN over TLS a client may not be able to connect with the TURN server if the firewall performs deep packet inspection and drops packets to port 443 that are not really HTTPS packets. This would be a corner case, though, as given that the connection is encrypted in order to inspect the packets that means that the firewall acts as a man-in-the-middle and the connection is not actually encrypted end-to-end. There is nothing that can be done in that case, but it should be rather uncommon.
|
||||
|
||||
In order to use TLS connections to the TURN server the TURN server requires an SSL certificate and, therefore, a domain. The path to the certificate file must be set in the [`cert` parameter](https://github.com/coturn/coturn/blob/upstream/4.5.1.3/README.turnserver#L442-L446), and the private key file must be set in the [`pkey` file](https://github.com/coturn/coturn/blob/upstream/4.5.1.3/README.turnserver#L448-L452). Besides that in [Talk settings](#4-configure-nextcloud-talk-to-use-your-turn-server) you must set the TURN server scheme as `turns:` or `turn: and turns:`.
|
||||
|
||||
Note that, even if TLS provides the maximum compatibility, using a domain can cause problems with Firefox on a very specific scenario: [currently Firefox does not perform DNS requests through HTTP tunnels](https://bugzilla.mozilla.org/show_bug.cgi?id=1239006), so even if the WebRTC connection would work through the TURN server the TURN server may not be reachable.
|
||||
|
||||
- The recommended listening port is port 443, even if only _turn:_ but not _turns:_ is used. In some cases firewalls restrict connections only to port 443, but they do not actually check whether the connection is a TLS connection or not. Nevertheless, as mentioned above using both _turn:_ and _turns:_ is recommended for maximum compatibility.
|
||||
|
||||
- The `total-quota` parameter limits the number of allowed simultaneous connections to the TURN server. Along with [`max-bps` and `bps-capacity`](https://github.com/coturn/coturn/blob/upstream/4.5.1.3/README.turnserver#L414-L423) it can be used to limit the effects of a [DoS attack against the TURN server](https://tools.ietf.org/html/rfc8656#section-21.3.1). The value of _0_ shown above means _unlimited_; if a connection limit is desired it should be adjusted depending on your specific setup.
|
||||
|
||||
Please note that the number of allowed simultaneous connections limited by `total-quota` are not only fully established connections, but also the connections being tested during the negotiation phase used to establish the actual connection. During the negotiation phase each peer generates several candidates (an IP address and port) that can be used to establish a connection with that peer. Then the peers try to establish a connection between them with different candidate combinations until a valid one is found. If there is a TURN server, then the client will connect to the TURN server too, and it will generate additional candidates with the IP address of the TURN server (the so-called "relay" candidates). Each of those relay candidates will try to connect to the candidates of the other peer, and each of those connection attempts allocates a slot in the available quota of the TURN server. If there are no more available slots "Allocation Quota Reached" message is written to coTURN logs.
|
||||
|
||||
In most cases the candidates that will be generated, and thus the connections to the TURN server during the negotiation phase, can not be known beforehand. When Janus is used the number of candidate combinations is reduced, as the Janus candidates can be known, but the number of relay candidates that will be generated by the client may still be unknown. For example, it seems that browsers generate one relay candidate for each host candidate. Host candidates are those with the IP address known to the client, so typically there will be one for each network device in the system; in the case of Firefox host candidates are also generated for the IP addresses of local bridge network devices.
|
||||
|
||||
You should take all that into account if you intend to set a specific value to the `total-quota` parameter, but for maximum availability an unlimited quota is recommended.
|
||||
|
||||
- If your TURN server is running **not behind a NAT**, but with direct www connection and **static public IP**, than you can limit the IPs it listens at and answers with, by setting those as `listening-ip` and `relay-ip`. On larger deployments it is recommended to run your TURN server on a dedicated machine that is directly accessible from the internet.
|
||||
|
||||
- The following settings can be used to adjust the **logging behaviour**. On SBCs with SDcards you may want to adjust this, as by default coTURN logs very verbose. The config file explains everything very well:
|
||||
|
||||
```
|
||||
no-stdout-log
|
||||
log-file=...
|
||||
syslog
|
||||
simple-log
|
||||
```
|
||||
|
||||
- `sudo systemctl restart coturn` or corresponding restart method
|
||||
|
||||
### Disabling UDP or TCP protocols
|
||||
|
||||
Unless you have some special need, you should always enable both UDP and TCP protocols in your TURN server, as that provides the maximum compatibility. However, if you must limit the connections from clients to the TURN server through UDP or TCP protocols you can do that by enabling one the following settings, depending on the case:
|
||||
```
|
||||
no-udp
|
||||
no-tcp
|
||||
```
|
||||
|
||||
Please note that those settings only limit the protocols from the client to the TURN server. The relayed protocol from the TURN server to the other end (Janus if the High Performance Backend is being used, another client or TURN server if it is not) must be UDP; _coTURN_ provides the setting `no-udp-relay` to disable the UDP protocol for the relayed connection, but enabling it would cause the TURN server to be unusable in a WebRTC context.
|
||||
|
||||
Also keep in mind that disabling the UDP protocol from clients to the TURN server with `no-udp` in practice disables STUN on that server, as neither Janus nor the clients currently support STUN over TCP.
|
||||
|
||||
### TURN server and internal networks
|
||||
|
||||
If your TURN server has access to an internal network you should prevent access to the local/internal IPs from the TURN server, except those that are actually needed (like the High Performance Backend if you are using it) by setting the [`denied-peer-ip` and `allowed-peer-ip` parameters](https://github.com/coturn/coturn/blob/upstream/4.5.1.3/README.turnserver#L523-L537). For example:
|
||||
```
|
||||
allowed-peer-ip={IP_ADDRESS_OF_THE_HIGH_PERFORMANCE_BACKEND}
|
||||
denied-peer-ip=0.0.0.0-0.255.255.255
|
||||
denied-peer-ip=10.0.0.0-10.255.255.255
|
||||
denied-peer-ip=100.64.0.0-100.127.255.255
|
||||
denied-peer-ip=127.0.0.0-127.255.255.255
|
||||
denied-peer-ip=169.254.0.0-169.254.255.255
|
||||
denied-peer-ip=172.16.0.0-172.31.255.255
|
||||
denied-peer-ip=192.0.0.0-192.0.0.255
|
||||
denied-peer-ip=192.0.2.0-192.0.2.255
|
||||
denied-peer-ip=192.88.99.0-192.88.99.255
|
||||
denied-peer-ip=192.168.0.0-192.168.255.255
|
||||
denied-peer-ip=198.18.0.0-198.19.255.255
|
||||
denied-peer-ip=198.51.100.0-198.51.100.255
|
||||
denied-peer-ip=203.0.113.0-203.0.113.255
|
||||
denied-peer-ip=240.0.0.0-255.255.255.255
|
||||
```
|
||||
|
||||
Otherwise, [a malicious user could access services in that internal network through your TURN server](https://www.rtcsec.com/2020/04/01-slack-webrtc-turn-compromise/).
|
||||
|
||||
Alternatively you could of course prevent access to that internal network from the TURN server by means of a firewall.
|
||||
|
||||
## Continue with the integration into Nextcloud Talk
|
||||
|
||||
Now you can go back to the [TURN overview page](TURN.md#4-configure-nextcloud-talk-to-use-your-turn-server).
|
||||
@@ -0,0 +1,229 @@
|
||||
# Nextcloud Talk development setup
|
||||
|
||||
The following guide is intended to setup an environment for Nextcloud Talk development. It is _not_ intended to be used in production at any time.
|
||||
|
||||
## Preface
|
||||
|
||||
Nextcloud Talk delivers private audio/video conferencing and text chat through browser and mobile apps. It consists of several components, some of which are optional:
|
||||
|
||||
* **Nextcloud Server**: The core component of Nextcloud that offers file storage capabilities and the framework for building/running apps.
|
||||
|
||||
* **Nextcloud Talk Server**: The Nextcloud app that is the core of Nextcloud Talk. It consists of the backend (PHP) and a frontend (Vue.js) to use Nextcloud Talk directly in the web browser. **Important**: Due to legacy reasons, the app id of "talk" is "spreed"!
|
||||
|
||||
* **High performance backend**: _(optional)_ The high performance backend is an optional component that consists of a signaling server and a WebRTC gateway. It ensures that calls with more than 4 participants work smoothly. It is also required for features like typing indicators or federated calling to work properly.
|
||||
|
||||
* **Nextcloud Talk Recording Server**: _(optional)_ The Nextcloud Talk recording server is required when calls should be recorded on the server side. It takes care of the recording itself and uploading the result to Nextcloud.
|
||||
|
||||
* **Nextcloud Talk Android**: _(optional)_ Nextcloud Talk Android is the recommended way of using Nextcloud Talk on Android devices. Mostly written in Kotlin nowadays, it still contains some Java code.
|
||||
|
||||
* **Nextcloud Talk iOS**: _(optional)_ The recommended way of using Nextcloud Talk on your iOS devices. Major parts are still written in Objective-C while the transition to Swift is an ongoing effort.
|
||||
|
||||
## Prerequirements
|
||||
|
||||
There are many ways of running Nextcloud for development purposes. In the following guide we are using a docker based installation of Nextcloud. The following components are required:
|
||||
|
||||
* A working docker installation (see https://docs.docker.com/engine/install/)
|
||||
* Node.js >= 20 and NPM >= 10 (optionally, see _Prepare Nextcoud Talk for development_ below for an alternative)
|
||||
* PHP Composer (optionally, see _Prepare Nextcoud Talk for development_ below for an alternative)
|
||||
* Git
|
||||
|
||||
## Install the development environment
|
||||
|
||||
Clone `nextcloud-docker-dev` in a directory of your choice:
|
||||
|
||||
```shell
|
||||
cd /path/to/directory
|
||||
git clone https://github.com/juliushaertl/nextcloud-docker-dev
|
||||
cd nextcloud-docker-dev
|
||||
```
|
||||
|
||||
`bootstrap.sh` is used to setup the enviroment, it supports multiple parameters that may depend on your development focus:
|
||||
|
||||
```shell
|
||||
bootstrap.sh [--full-clone|--clone-no-blobs] [--clone-all-apps-filtered] [--] APPS
|
||||
|
||||
This command will initialize the debug environment for app developers.
|
||||
|
||||
The following options can be provided:
|
||||
|
||||
--full-clone Clone the server repository with the complete history included
|
||||
--clone-no-blobs Clone the server repository with the history but omitting the
|
||||
file contents. A network connection might be required if checking
|
||||
out commits is done.
|
||||
--full-clone and --clone-no-blobs is mutually exclusive.
|
||||
--clone-all-apps-filtered
|
||||
Do not only reduce the history of the server repository but also
|
||||
the cloned apps.
|
||||
|
||||
APPS The apps to add to the development setup on top of the default apps
|
||||
```
|
||||
|
||||
#### Example 1: Latest `master/main` without history for server
|
||||
|
||||
Clones only the latest `master/main` from Nextcloud Server without history, but full history for all other apps, including Nextcloud Talk. This is perfectly fine if you plan on working with the latest version of Nextcloud / Nextcloud Talk.
|
||||
|
||||
```shell
|
||||
./bootstrap.sh -- spreed
|
||||
```
|
||||
|
||||
#### Example 2: Latest `master/main` with full history, but no blobs for server
|
||||
|
||||
Clones the full Nextcloud Server repository, but omitting file contents. All other apps, including Nextcloud Talk are still fully cloned. This way you also have the full history of Nextcloud Server, without needing to download everything at once
|
||||
|
||||
```shell
|
||||
./bootstrap.sh --clone-no-blobs -- spreed
|
||||
```
|
||||
|
||||
#### Example 3: Latest `master/main` with full history (_Slow!_)
|
||||
|
||||
Clones the full Nextcloud Server repository and all apps with full history. This is the slowest option
|
||||
|
||||
```shell
|
||||
./bootstrap.sh --full-clone -- spreed
|
||||
```
|
||||
|
||||
### Install `mkcert` for self-signed certificate support
|
||||
|
||||
Nextcloud Talk needs camera and microphone access for audio/video conferencing. Some browsers do not allow access to these components, if the connection was not done in a secure way. Therefore we can use `mkcert` to have trusted self-signed certificates.
|
||||
|
||||
* Follow the installation instructions for your OS at https://github.com/FiloSottile/mkcert?tab=readme-ov-file#installation
|
||||
* Execute `mkcert -install` create a new CA and trust it
|
||||
* Execute `./scripts/update-certs` to automatically generate certificates for all possible containers used for development
|
||||
|
||||
### Prepare Nextcoud Talk for development
|
||||
|
||||
Enter the Nextcloud Talk directory and install the required components for development:
|
||||
|
||||
```shell
|
||||
cd workspace/server/apps-extra/spreed
|
||||
make dev-setup
|
||||
```
|
||||
|
||||
If you do not have NPM, Node or Composer you can run all of them from inside the container instead (note that they will be run as root, so the file owner of the created files will be also root):
|
||||
```shell
|
||||
docker compose exec nextcloud bash --login -c "cd /var/www/html/apps-extra/spreed && make dev-setup"
|
||||
```
|
||||
|
||||
## Start Nextcloud
|
||||
|
||||
In the directory of `nextcloud-docker-dev` execute the following:
|
||||
|
||||
```shell
|
||||
docker compose up -d nextcloud
|
||||
```
|
||||
|
||||
Enable Nextcloud Talk:
|
||||
|
||||
```shell
|
||||
./scripts/occ.sh nextcloud -- app:enable spreed
|
||||
```
|
||||
|
||||
After that you should be able to login with `admin` / `admin` at https://nextcloud.local
|
||||
|
||||
### Enable High Performance Backend
|
||||
|
||||
If you want to enable the HPB for your development setup, just execute
|
||||
|
||||
```
|
||||
./scripts/enable-talk-hpb.sh nextcloud
|
||||
```
|
||||
|
||||
to start the needed containers and add the configuration to the Nextcloud installation. You can check if everything is working in Settings -> Talk -> High Performance Backend.
|
||||
|
||||
### Enable Nextcloud Talk Recording Server
|
||||
|
||||
**Important:** Make sure that the HPB is correctly running!
|
||||
|
||||
Start the container of the recording server:
|
||||
|
||||
```
|
||||
docker compose up -d talk-recording
|
||||
```
|
||||
|
||||
Go to the admin settings of talk and add the recording server (`http://talk-recording.local` with shared secret `6789`)
|
||||
|
||||
### Use federation between 2 Nextcloud Servers
|
||||
|
||||
The provided `docker-compose.yml` file from `nextcloud-docker-dev` supports spinning up multiple instances out of the box. For the `master/main` branch, up to 3 instances can be started (e.g. `docker compose up -d nextcloud nextcloud2 nextcloud3`). This allows easy testing/development for federated scenarios.
|
||||
|
||||
1. Make sure to have 2 instances of Nextcloud running with
|
||||
|
||||
docker compose up -d nextcloud nextcloud2
|
||||
|
||||
2. In case of federated calling, the HPB needs to be enabled on both instances
|
||||
|
||||
./scripts/enable-talk-hpb.sh nextcloud
|
||||
./scripts/enable-talk-hpb.sh nextcloud2
|
||||
|
||||
3. Allow self-signed certs on both instances
|
||||
|
||||
./scripts/occ.sh nextcloud -- config:system:set sharing.federation.allowSelfSignedCertificates --value true --type bool
|
||||
./scripts/occ.sh nextcloud2 -- config:system:set sharing.federation.allowSelfSignedCertificates --value true --type bool
|
||||
|
||||
4. Copy and import the certificates to the other instance
|
||||
|
||||
docker compose cp data/ssl/nextcloud2.local.crt nextcloud:/tmp
|
||||
docker compose cp data/ssl/nextcloud.local.crt nextcloud2:/tmp
|
||||
|
||||
./scripts/occ.sh nextcloud2 -- security:certificates:import /tmp/nextcloud.local.crt
|
||||
./scripts/occ.sh nextcloud -- security:certificates:import /tmp/nextcloud2.local.crt
|
||||
|
||||
5. Optional: Verify certs
|
||||
|
||||
./scripts/occ.sh nextcloud2 -- security:certificates
|
||||
./scripts/occ.sh nextcloud -- security:certificates
|
||||
|
||||
6. Enable federation in the admin settings of Nextcloud Talk or alternatively via occ:
|
||||
|
||||
./scripts/occ.sh nextcloud -- config:app:set spreed federation_enabled --value yes
|
||||
./scripts/occ.sh nextcloud2 -- config:app:set spreed federation_enabled --value yes
|
||||
|
||||
### Rebuild / update Talk after code changes
|
||||
|
||||
#### JavaScript
|
||||
|
||||
If you modify any JavaScript file, either directly or by switching to a different branch, you will need to rebuild them. You can do that with:
|
||||
|
||||
```shell
|
||||
cd workspace/server/apps-extra/spreed
|
||||
make build-js
|
||||
```
|
||||
|
||||
For JavaScript development rather than manually rebuilding the files whenever you modify them you can instead run a watcher that will automatically rebuild them when they are changed:
|
||||
```shell
|
||||
cd workspace/server/apps-extra/spreed
|
||||
make watch-js
|
||||
```
|
||||
|
||||
Note, however, that in some cases the watcher may stop running (for example, if it gets killed by the system after some time due to its RAM consumption), so you might want to check it from time to time.
|
||||
|
||||
Also note that both `make build-js` and `make watch-js` are just wrappers for `npm run dev` and `npm run watch`, so you could run those commands instead if they feel more familiar.
|
||||
|
||||
No matter if you manually rebuilt the JavaScript files or if you use the watcher note that you will need to force refresh Talk in the browser, as otherwise the previous version of the built JavaScript files could be cached and used instead of the latest one.
|
||||
|
||||
Besides manually force refreshing the page you can disable the cache in the _Network_ tab of the developer tools of the browser, but keep in mind that it will only have effect if the developer tools are open (and the _Network_ tab might need to be open once after the developer tools were open, even if the cache was already disabled).
|
||||
|
||||
In the case of Firefox you can disable the cache in all cases by opening `about:config` and setting `browser.cache.disk.enable` and `browser.cache.memory.enable` to `false`.
|
||||
|
||||
If you do not have NPM or Node you can rebuild the JavaScript files from inside the container instead (like before, note that the file owner of the created files will be also root):
|
||||
```shell
|
||||
docker compose exec nextcloud bash --login -c "cd /var/www/html/apps-extra/spreed && make build-js"
|
||||
```
|
||||
|
||||
Or, in the case of the watcher, with:
|
||||
```shell
|
||||
docker compose exec nextcloud bash --login -c "cd /var/www/html/apps-extra/spreed && make watch-js"
|
||||
```
|
||||
|
||||
#### PHP dependencies
|
||||
|
||||
PHP files themselves do not need to be rebuilt, although if the PHP dependencies change they need to be updated. Note that this does not happen frequently, so in most cases you can switch to another branch without needing to update the PHP dependencies. Nevertheless, if the PHP dependencies changed (that is, if the `composer.lock` file changed) you can update them with:
|
||||
```shell
|
||||
cd workspace/server/apps-extra/spreed
|
||||
make composer-install-dev
|
||||
```
|
||||
|
||||
If you do not have Composer you can update the PHP dependencies from inside the container instead (like before, note that the file owner of the created files will be also root):
|
||||
```shell
|
||||
docker compose exec nextcloud bash --login -c "cd /var/www/html/apps-extra/spreed && make composer-install-dev"
|
||||
```
|
||||
@@ -0,0 +1,147 @@
|
||||
# eturnal configuration
|
||||
|
||||
## Install and setup _eturnal_ as TURN server
|
||||
|
||||
Quick-Test instructions in a [Linux Shell](https://github.com/processone/eturnal/blob/master/QUICK-TEST.md) or with [Docker](https://github.com/processone/eturnal/blob/master/docker-k8s/QUICK-TEST.md) are available as well.
|
||||
|
||||
## 1. Download and install
|
||||
|
||||
eturnal is available from a variety of sources such as native package managers, binary packages, installation from source or [container image](https://eturnal.net/documentation/code/docker.html). They are all described [here](https://github.com/processone/eturnal#installation).
|
||||
|
||||
|
||||
## 2. Make eturnal run as daemon on startup
|
||||
|
||||
- On Linux systems, the eturnal server is usually invoked by systemd.
|
||||
```
|
||||
sudo systemctl status eturnal
|
||||
```
|
||||
|
||||
- For non-systemd platforms, example init and OpenRC scripts are shipped below the `etc` directory.
|
||||
|
||||
For controlling eturnal, the eturnalctl command can be used; see:
|
||||
```
|
||||
eturnalctl help
|
||||
```
|
||||
|
||||
### Running eturnal on privileged ports
|
||||
|
||||
On systemd-managed systems, the systemd unit grants `NET_BIND_SERVICE` capability to the [service](https://github.com/processone/eturnal/blob/29e82f260d369a39bd4a395cb981e914b141875b/config/eturnal.service#L23).
|
||||
|
||||
Depending on the system configuration Linux kernel capabilities could be used to overcome this limitation. Capabilities can be associated with executable files using _setcap_, so you could allow eturnal's process manager _beam.smp_ in eturnal's `lib` directory, e.g.:
|
||||
```
|
||||
setcap 'cap_net_bind_service=+ep' $(find /opt/eturnal -name beam.smp)
|
||||
```
|
||||
|
||||
## 3. Configure `eturnal.yml` for usage with Nextcloud Talk
|
||||
|
||||
- Next you need to adjust eturnal's configuration file in `/etc/eturnal.yml` to work with Nextcloud Talk. This file uses the (indentation-sensitive!) YAML format. The shipped configuration file contains further explanations.
|
||||
- Choose the listening port (default is _3478_) and an authentication secret, where a random hex is recommended
|
||||
```
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
- Then uncomment/edit the following settings accordingly:
|
||||
|
||||
```yaml
|
||||
eturnal:
|
||||
## Shared secret for deriving temporary TURN credentials (default: $RANDOM):
|
||||
secret: "long-and-cryptic" # Shared secret, CHANGE THIS.
|
||||
|
||||
## The server's public IPv4 address (default: autodetected):
|
||||
#relay_ipv4_addr: "203.0.113.4"
|
||||
## The server's public IPv6 address (optional):
|
||||
#relay_ipv6_addr: "2001:db8::4"
|
||||
|
||||
listen:
|
||||
-
|
||||
ip: "::"
|
||||
port: <yourChosenPortNumber>
|
||||
transport: udp
|
||||
-
|
||||
ip: "::"
|
||||
port: <yourChosenPortNumber>
|
||||
transport: tcp
|
||||
```
|
||||
|
||||
- Support for TLS connections to the TURN server has been added in Talk 11.
|
||||
|
||||
In some cases clients can be behind very restrictive firewalls that only allow TLS connections; in those cases the clients would be able to connect with other clients or the High Performance Backend only through a TURN server and a TLS connection. However, please note that TLS connections do not provide any additional security, as media streams are always end-to-end (When the High Performance Backend is used the High Performance Backend is one of the ends; in that case the media streams are not end-to-end encrypted between the participants but only between participants and the High Performance Backend) encrypted in WebRTC; enabling TLS is just a matter of providing the maximum compatibility.
|
||||
|
||||
Also note that even with TURN over TLS a client may not be able to connect with the TURN server if the firewall performs deep packet inspection and drops packets to port 443 that are not really HTTPS packets. This would be a corner case, though, as given that the connection is encrypted in order to inspect the packets that means that the firewall acts as a man-in-the-middle and the connection is not actually encrypted end-to-end. There is nothing that can be done in that case, but it should be rather uncommon.
|
||||
|
||||
In order to use TLS connections to the TURN server the TURN server requires an SSL certificate and, therefore, a domain. The path to the certificate file must be set in the [`tls_crt_file` parameter](https://eturnal.net/documentation/#tls_crt_file), and the private key file must be set in the [`tls_key_file` parameter](https://eturnal.net/documentation/#tls_key_file) within eturnal's configuration file as well as corresponding [listen](https://eturnal.net/documentation/#listen)er needs to be enabled. To listen for encrypted and unencrypted traffic on one port, the transport can be set to `auto` for `tcp`/`tls` multiplexing.
|
||||
|
||||
```yaml
|
||||
eturnal:
|
||||
...
|
||||
listen:
|
||||
...
|
||||
-
|
||||
ip: "::"
|
||||
port: <yourChosenPortNumber>
|
||||
transport: auto
|
||||
...
|
||||
## TLS certificate/key files (must be readable by 'eturnal' user!):
|
||||
tls_crt_file: /etc/eturnal/tls/crt.pem
|
||||
tls_key_file: /etc/eturnal/tls/key.pem
|
||||
...
|
||||
```
|
||||
|
||||
Besides that in [Talk settings](TURN.md#4-configure-nextcloud-talk-to-use-your-turn-server) you must set the TURN server scheme as `turns:` or `turn: and turns:`.
|
||||
|
||||
Note that, even if TLS provides the maximum compatibility, using a domain can cause problems with Firefox on a very specific scenario: [currently Firefox does not perform DNS requests through HTTP tunnels](https://bugzilla.mozilla.org/show_bug.cgi?id=1239006), so even if the WebRTC connection would work through the TURN server the TURN server may not be reachable.
|
||||
|
||||
- The recommended listening port is port 443, even if only _turn:_ but not _turns:_ is used. In some cases firewalls restrict connections only to port 443, but they do not actually check whether the connection is a TLS connection or not. Nevertheless, as mentioned above using both _turn:_ and _turns:_ is recommended for maximum compatibility.
|
||||
|
||||
- If your TURN server is running **not behind a NAT**, but with direct www connection and **static public IP**, than you can limit the IPs it listens at and answers with, by setting those as `ip` and `relay_ipv4_addr`/`relay_ipv6_addr` (IPv6 is optional). On larger deployments it is recommended to run your TURN server on a dedicated machine that is directly accessible from the internet.
|
||||
|
||||
- If `eturnal` was started by systemd, log files are written into the `/var/log/eturnal` directory by default. In order to log to the [journal](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) instead, the `log_dir` option can be set to `stdout` in the configuration file.
|
||||
|
||||
- `sudo systemctl restart eturnal` or corresponding restart method
|
||||
|
||||
### TURN server and internal networks
|
||||
|
||||
If your TURN server has access to an internal network you should prevent access to the local/internal IPs from the TURN server, except those that are actually needed (like the High Performance Backend if you are using it) by setting the `blacklist`, [see also the official documentation](https://eturnal.net/documentation/#blacklist):
|
||||
|
||||
```yaml
|
||||
eturnal:
|
||||
...
|
||||
## Reject TURN relaying from/to the following addresses/networks:
|
||||
blacklist: # This is the default blacklist.
|
||||
- "127.0.0.0/8" # IPv4 loopback.
|
||||
- "::1" # IPv6 loopback.
|
||||
- recommended # Expands to a number of networks recommended to be
|
||||
# blocked, but includes private networks. Those
|
||||
# would have to be 'whitelist'ed if eturnal serves
|
||||
# local clients/peers within such networks.
|
||||
...
|
||||
```
|
||||
|
||||
To whitelist IP addresses (like the High Performance Backend if you are using it) or specific (private) networks, you need to **add** a whitelist part into the configuration file, e.g.:
|
||||
|
||||
```yaml
|
||||
eturnal:
|
||||
...
|
||||
whitelist:
|
||||
- {IP_ADDRESS_OF_THE_HIGH_PERFORMANCE_BACKEND}
|
||||
- "192.168.0.0/16"
|
||||
- "203.0.113.113"
|
||||
- "2001:db8::/64"
|
||||
...
|
||||
```
|
||||
|
||||
The more specific, the better.
|
||||
|
||||
Otherwise, [a malicious user could access services in that internal network through your TURN server](https://www.rtcsec.com/2020/04/01-slack-webrtc-turn-compromise/).
|
||||
|
||||
Alternatively you could of course prevent access to that internal network from the TURN server by means of a firewall.
|
||||
|
||||
## eturnalctl opterations script
|
||||
|
||||
`eturnal` offers a handy [operations script](https://eturnal.net/documentation/#Operation) which can be called e.g. to check, whether the service is up, to restart the service, to query how many active sessions exist, to change logging behaviour and so on.
|
||||
|
||||
Hint: If `eturnalctl` is not part of your `$PATH`, consider either sym-linking it (e.g. ´ln -s /opt/eturnal/bin/eturnalctl /usr/local/bin/eturnalctl´) or call it from the default `eturnal` directory directly: e.g. `/opt/eturnal/bin/eturnalctl info`
|
||||
|
||||
## Continue with the integration into Nextcloud Talk
|
||||
|
||||
Now you can go back to the [TURN overview page](TURN.md#4-configure-nextcloud-talk-to-use-your-turn-server).
|
||||
@@ -0,0 +1,265 @@
|
||||
# PHP Events
|
||||
|
||||
See the general [Nextcloud Developers - Events](https://docs.nextcloud.com/server/latest/developer_manual/basics/events.html) documentation for information how to listen to the events.
|
||||
|
||||
## Conversation related events
|
||||
|
||||
### Conversation list fetched
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeRoomsFetchEvent`
|
||||
* After event: *Not available*
|
||||
* Since: 18.0.0
|
||||
|
||||
### Conversation created
|
||||
|
||||
* Before event: *Not available*
|
||||
* After event: `OCA\Talk\Events\RoomCreatedEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Conversation deleted
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeRoomDeletedEvent`
|
||||
* After event: `OCA\Talk\Events\RoomDeletedEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Conversation modified
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeRoomModifiedEvent`
|
||||
* After event: `OCA\Talk\Events\RoomModifiedEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Conversation extended
|
||||
|
||||
When a new conversation is created from a one-to-one conversation
|
||||
|
||||
* Before event: *Not available*
|
||||
* After event: `OCA\Talk\Events\RoomExtendedEvent`
|
||||
* Since: 21.1.0
|
||||
|
||||
### Lobby modified
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeLobbyModifiedEvent`
|
||||
* After event: `OCA\Talk\Events\LobbyModifiedEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Federated conversation synced
|
||||
|
||||
When multiple properties of a federated conversation are synced, the individual
|
||||
"Conversation modified" and "Lobby modified" events are still triggered, but a
|
||||
listener could decide to not follow up individual but only after all properties
|
||||
where modified.
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeRoomSyncedEvent`
|
||||
* After event: `OCA\Talk\Events\RoomSyncedEvent`
|
||||
* Since: 20.0.0
|
||||
|
||||
### Call started
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeCallStartedEvent`
|
||||
* After event: `OCA\Talk\Events\CallStartedEvent`
|
||||
The after event might be skipped if the request lost the race to update the database.
|
||||
A parallel request will have triggered the before and after events in the meantime.
|
||||
* Since: 20.0.0
|
||||
|
||||
### Call ended for everyone
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeCallEndedForEveryoneEvent`
|
||||
* After event: `OCA\Talk\Events\CallEndedForEveryoneEvent`
|
||||
* Since: 18.0.0
|
||||
* Since: 20.0.0 Extends the abstract `ACallEndedEvent`
|
||||
|
||||
### Call ended
|
||||
|
||||
When the last participant is leaving the call, the session expired or the participant was removed.
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeCallEndedEvent`
|
||||
* After event: `OCA\Talk\Events\CallEndedEvent`
|
||||
The after event might be skipped if the request lost the race to update the database.
|
||||
A parallel request will have triggered the before and after events in the meantime.
|
||||
* Since: 20.0.0
|
||||
|
||||
### Conversation password verify
|
||||
|
||||
Allows to verify a password and set a redirect URL for the invalid case
|
||||
|
||||
* Event: `OCA\Talk\Events\RoomPasswordVerifyEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
## Participant related events
|
||||
|
||||
### Attendees added
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeAttendeesAddedEvent`
|
||||
* Since: 18.0.0
|
||||
* After event: `OCA\Talk\Events\AttendeesAddedEvent`
|
||||
* Since: 12.0.0
|
||||
|
||||
### Attendees removed
|
||||
|
||||
* Before event: *Not available*
|
||||
* After event: `OCA\Talk\Events\AttendeesRemovedEvent`
|
||||
* Since: 12.0.0
|
||||
|
||||
### Attendee removed
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeAttendeeRemovedEvent`
|
||||
* After event: `OCA\Talk\Events\AttendeeRemovedEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### User joined a conversation
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeUserJoinedRoomEvent`
|
||||
* After event: `OCA\Talk\Events\UserJoinedRoomEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Federated user joined a conversation
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeFederatedUserJoinedRoomEvent`
|
||||
* After event: `OCA\Talk\Events\FederatedUserJoinedRoomEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Guest joined a conversation
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeGuestJoinedRoomEvent`
|
||||
* After event: `OCA\Talk\Events\GuestJoinedRoomEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Email invitation send
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeEmailInvitationSentEvent`
|
||||
* After event: `OCA\Talk\Events\EmailInvitationSentEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Session left a conversation
|
||||
|
||||
This is the invert action to `User joined a conversation`, `Federated user joined a conversation` and `Guest joined a conversation`
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeSessionLeftRoomEvent`
|
||||
* After event: `OCA\Talk\Events\SessionLeftRoomEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Participant modified
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeParticipantModifiedEvent`
|
||||
* After event: `OCA\Talk\Events\ParticipantModifiedEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Call notification send
|
||||
|
||||
* **internal:** This event is not part of the public API and you should not rely on it
|
||||
* Event: `OCA\Talk\Events\CallNotificationSendEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Guests cleaned up
|
||||
|
||||
Remove guests without an active session
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeGuestsCleanedUpEvent`
|
||||
* After event: `OCA\Talk\Events\GuestsCleanedUpEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
## Chat related events
|
||||
|
||||
### Parse chat message
|
||||
|
||||
Used to parse mentions, replace parameters in messages with rich objects, transform system messages into readable and translated chat messages etc.
|
||||
|
||||
* Event: `OCA\Talk\Events\MessageParseEvent`
|
||||
* Since: 18.0.0
|
||||
|
||||
### Chat message sent
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeChatMessageSentEvent`
|
||||
* After event: `OCA\Talk\Events\ChatMessageSentEvent`
|
||||
* Since: 18.0.0
|
||||
* Since: 19.0.0 - Method `getParent()` was added
|
||||
|
||||
### Duplicate share sent
|
||||
|
||||
Sharing the same file a second time is prevented by the API. But this event is dispatched, so that the chat message can be created nevertheless.
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeDuplicateShareSentEvent`
|
||||
* After event: *Not available*
|
||||
* Since: 18.0.0
|
||||
|
||||
### System message sent
|
||||
|
||||
`shouldSkipLastActivityUpdate` indicates whether multiple system messages are being sent.
|
||||
In case you only need to be notified after the last system message was posted,
|
||||
listen to the `OCA\Talk\Events\SystemMessagesMultipleSentEvent` event instead.
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeSystemMessageSentEvent`
|
||||
* After event: `OCA\Talk\Events\SystemMessageSentEvent`
|
||||
* Final event: `OCA\Talk\Events\SystemMessagesMultipleSentEvent` - Only sent once as per above explanation
|
||||
* Since: 18.0.0
|
||||
* Since: 19.0.0 - Method `getParent()` was added
|
||||
|
||||
### Reaction added
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeReactionAddedEvent`
|
||||
* After event: `OCA\Talk\Events\ReactionAddedEvent`
|
||||
* Since: 21.0.0
|
||||
|
||||
### Reaction removed
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeReactionRemovedEvent`
|
||||
* After event: `OCA\Talk\Events\ReactionRemovedEvent`
|
||||
* Since: 21.0.0
|
||||
|
||||
## Other events
|
||||
|
||||
### Turn servers get
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeTurnServersGetEvent`
|
||||
* After event: *Not available*
|
||||
* Since: 18.0.0
|
||||
|
||||
### Signaling room properties sent
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeSignalingRoomPropertiesSentEvent`
|
||||
* After event: *Not available*
|
||||
* Since: 18.0.0
|
||||
|
||||
### Signaling response sent
|
||||
|
||||
* Before event: `OCA\Talk\Events\BeforeSignalingResponseSentEvent`
|
||||
* After event: *Not available*
|
||||
* Since: 18.0.0
|
||||
|
||||
### Bot enabled
|
||||
|
||||
Sends a request to the bot server, informing it was added in a chat.
|
||||
|
||||
* Event: `OCA\Talk\Events\BotEnabledEvent`
|
||||
* Since: 20.0.0
|
||||
|
||||
### Bot disabled
|
||||
|
||||
Sends a request to the bot server, informing it was removed from a chat.
|
||||
|
||||
* Event: `OCA\Talk\Events\BotDisabledEvent`
|
||||
* Since: 20.0.0
|
||||
|
||||
### Bot invoke
|
||||
|
||||
Sends the request as an event when the bot has the feature `event`
|
||||
|
||||
* Event: `OCA\Talk\Events\BotInvokeEvent`
|
||||
* Since: 21.0.0
|
||||
|
||||
## Inbound events to invoke Talk
|
||||
|
||||
### Bot install
|
||||
|
||||
Dispatch this event in your app to install a bot on this server
|
||||
|
||||
* Event: `OCA\Talk\Events\BotInstallEvent`
|
||||
* Since: 17.0.0
|
||||
* Since: 19.0.0 - Features flag was added
|
||||
|
||||
### Bot uninstall
|
||||
|
||||
Dispatch this event in your app to install a bot on this server
|
||||
|
||||
* Event: `OCA\Talk\Events\BotUninstallEvent`
|
||||
* Since: 17.0.0
|
||||
|
After Width: | Height: | Size: 402 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -0,0 +1,58 @@
|
||||
# Global API status and headers
|
||||
|
||||
## Maintenance mode
|
||||
|
||||
Server is in maintenance mode, when the header is not available it could be a missing execution of a database upgrade or any other general server failure.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `503 Service Unavailable`
|
||||
|
||||
- Header:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------------------|------|-------------|
|
||||
| `X-Nextcloud-Maintenance-Mode` | int | Value `1` |
|
||||
|
||||
|
||||
## Rate limit
|
||||
|
||||
The remote address sent too many requests targeting the same endpoint, see the [Nextcloud Developer manual](https://docs.nextcloud.com//server/stable/developer_manual/basics/controllers.html#rate-limiting) for more information.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `429 Too Many Requests`
|
||||
|
||||
## Brute force protection
|
||||
|
||||
The remote address sent too many requests targeting the same action, see the [Nextcloud Developer manual](https://docs.nextcloud.com//server/stable/developer_manual/basics/controllers.html#brute-force-protection) for more information.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `429 Too Many Requests`
|
||||
|
||||
## Outdated client
|
||||
|
||||
From time to time it is unavoidable to break compatibility. In such cases we try to be as helpful for the users as possible and instead of behaving unexpected, a dedicated error response is returned and the clients should handle it properly and show a message that the client is outdated and needs to be upgraded in order to continue using this server.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `426 Upgrade Required`
|
||||
- Body:
|
||||
+ `ocs.meta.message` contains the minimum required version of the used client
|
||||
|
||||
## Federation - Not supported
|
||||
|
||||
Endpoints without a "Federation capability: `federation-vX`" will return a `406 Not Acceptable` status code, when called with tokens that actually refer to a so-called proxy conversation on the local server.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `406 Not Acceptable`
|
||||
|
||||
## Federation - Remote error
|
||||
|
||||
When a request is performed on a proxy conversation and the host can not be reached `422 Unprocessable Content` will be returned. The only exception will be leaving the room, where the request will still execute it's part locally so the user is no longer bothered. A background job will be queued to retry informing the remote server about the leave automatically.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `422 Unprocessable Content`
|
||||
@@ -0,0 +1,53 @@
|
||||

|
||||
|
||||
# Nextcloud Talk Documentation
|
||||
|
||||
## Changelogs
|
||||
|
||||
* [Changelogs](changelog.md)
|
||||
|
||||
## User documentation
|
||||
|
||||
* [User system requirements](user-requirements.md)
|
||||
* [User feature documentation ↗](https://docs.nextcloud.com/server/latest/user_manual/en/talk/index.html)
|
||||
|
||||
## Administration documentation
|
||||
|
||||
* [Server system requirements](system-requirements.md)
|
||||
* [Quick install](quick-install.md)
|
||||
* [Configuring a TURN server](TURN.md)
|
||||
* [Configuring coTURN](coturn.md)
|
||||
* [Configuring eturnal](eturnal.md)
|
||||
* [Scalability](scalability.md)
|
||||
* [Call experience](call-experience.md)
|
||||
* [Sample conversations](sample-conversations.md)
|
||||
* [Occ commands](occ.md)
|
||||
* [Bots](bot-list.md)
|
||||
* [Matterbridge integration](matterbridge.md)
|
||||
|
||||
## Developer documentation
|
||||
|
||||
* [Developer setup](developer-setup.md)
|
||||
* [Bots and webhooks](bots.md)
|
||||
* [Constants](constants.md)
|
||||
* [Capabilities](capabilities.md)
|
||||
* [PHP Events](events.md)
|
||||
|
||||
## API documentation
|
||||
|
||||
* [Global API status and headers](global.md)
|
||||
* [Conversation management](conversation.md)
|
||||
* [Conversation avatar management](avatar.md)
|
||||
* [Participant management](participant.md)
|
||||
* [Call management](call.md)
|
||||
* [Call recording management](recording.md)
|
||||
* [Chat management](chat.md)
|
||||
* [Reaction management](reaction.md)
|
||||
* [Poll management](poll.md)
|
||||
* [Breakout rooms management](breakout-rooms.md)
|
||||
* [Bots management](bot-management.md)
|
||||
* [Integration by other apps](integration.md)
|
||||
* [Webinar management](webinar.md)
|
||||
* [Settings management](settings.md)
|
||||
* [Internal Signaling API](internal-signaling.md)
|
||||
* [Standalone Signaling API ↗](https://nextcloud-spreed-signaling.readthedocs.io/en/latest/)
|
||||
@@ -0,0 +1,74 @@
|
||||
# Integration
|
||||
|
||||
Base endpoint is: `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 15
|
||||
|
||||
## Get conversation for an internal file
|
||||
|
||||
* Method: `GET`
|
||||
* Endpoint: `/file/{fileId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|----------|------|----------------------------------------------------|
|
||||
| `fileId` | int | File id for which the conversation should be given |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the item was not found
|
||||
+ `404 Not Found` When the found item is not a file
|
||||
+ `404 Not Found` When the user can not access the file
|
||||
+ `404 Not Found` When the file is not shared with anyone
|
||||
|
||||
- Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|--------|---------------------------------------------|
|
||||
| `token` | string | The token of the conversation for this file |
|
||||
|
||||
## Get conversation for a public share
|
||||
|
||||
* Method: `GET`
|
||||
* Endpoint: `/publicshare/{shareToken}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------|--------------------------------------------------------|
|
||||
| `shareToken` | string | Share token for which the conversation should be given |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the share was not found
|
||||
+ `404 Not Found` When the user can not access the share
|
||||
+ `404 Not Found` When the shared item is not a file
|
||||
|
||||
- Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|--------|---------------------------------------------|
|
||||
| `token` | string | The token of the conversation for this file |
|
||||
|
||||
## Create a conversation to request the password for a public share
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `/publicshareauth`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------|--------------------------------------------------------|
|
||||
| `shareToken` | string | Share token for which the conversation should be given |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the share was not found
|
||||
+ `404 Not Found` When "Request password via Talk" is not active for the share
|
||||
|
||||
- Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|---------------------------------------------|
|
||||
| `token` | string | The token of the conversation for this file |
|
||||
| `name` | string | A technical name for the conversation |
|
||||
| `displayName` | string | The visual name of the conversation |
|
||||
@@ -0,0 +1,56 @@
|
||||
# Signaling API
|
||||
|
||||
* Base endpoint for API v1 is: 🏁 Removed with API v3: Nextcloud 13 - 21
|
||||
* Base endpoint for API v2 is: 🏁 Removed with API v3: Nextcloud 21 only
|
||||
* Base endpoint for API v3 is: `/ocs/v2.php/apps/spreed/api/v3`: since Nextcloud 22
|
||||
|
||||
## Get signaling settings
|
||||
|
||||
* Method: `GET`
|
||||
* Endpoint: `/signaling/settings`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|--------|----------------------------------------------------|
|
||||
| `token` | string | The conversation to get the signaling settings for |
|
||||
|
||||
* Response:
|
||||
|
||||
| field | type | Added | Description |
|
||||
|-----------------|--------|-------|---------------------------------------------------------------------------------------------------------|
|
||||
| `signalingMode` | string | v1 | See [Signaling modes](constants.md#signaling_modes) |
|
||||
| `userId` | string | v1 | Current user id |
|
||||
| `hideWarning` | string | v1 | Don't show a performance warning although internal signaling is used |
|
||||
| `server` | string | v1 | URL of the external signaling server |
|
||||
| `ticket` | string | v1 | Ticket for the external signaling server |
|
||||
| `stunservers` | array | v3 | STUN servers |
|
||||
| `turnservers` | array | v3 | TURN servers |
|
||||
| `sipDialinInfo` | string | v2 | Generic SIP dial-in information for this conversation (admin free text containing the phone number etc) |
|
||||
| `helloAuthParams` | array | v3 | Parameters of the different `hello` versions for the external signaling server. |
|
||||
|
||||
- STUN server
|
||||
|
||||
| field | type | Description |
|
||||
|--------|-------|-----------------------------------------------|
|
||||
| `urls` | array | Each element is a STUN server URL as a string |
|
||||
|
||||
- TURN server
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------|-----------------------------------------------|
|
||||
| `urls` | array | Each element is a TURN server URL as a string |
|
||||
| `username` | string | User name for the TURN server |
|
||||
| `credential` | string | User password for the TURN server |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found`
|
||||
|
||||
### Internal signaling API
|
||||
|
||||
Todo
|
||||
|
||||
### External signaling API
|
||||
|
||||
See [External signaling API](https://nextcloud-spreed-signaling.readthedocs.io/en/latest/) for the Signaling API of the High-performance backend.
|
||||
@@ -0,0 +1,15 @@
|
||||
# Matterbridge integration
|
||||
|
||||
While we tried to keep the setup and integration as smooth as possible, we also wanted to make sure you can get fixes on the Matterbridge as soon as possible and don't have to wait until we made a new Talk release available. Therefore, we have put the [Matterbridge binaries from 42wim](https://github.com/42wim/matterbridge) into a separate app in the [App Store](https://apps.nextcloud.com/apps/talk_matterbridge). This also helps to keep the normal Talk package at a reasonable size as the download of the binaries is around 120 MB.
|
||||
|
||||
When this app is used, the basic configuration should work out of the box.
|
||||
|
||||
## Use a custom Matterbridge binary
|
||||
|
||||
In case you need a non-default binary (currently we ship 32-bit, 64-bit and arm-64 for linux) or want to check a different version of Matterbridge, you can also download the Matterbridge binary directly from [42wim's repo](https://github.com/42wim/matterbridge).
|
||||
You then manually set the path for the Matterbridge binary by changing the `matterbridge_binary` spreed app config key:
|
||||
```
|
||||
occ config:app:set spreed matterbridge_binary --value="/absolute/path/to/binary"
|
||||
```
|
||||
|
||||
Afterwards the Matterbridge version should be shown in the admin settings of Nextcloud Talk, confirming that it works and allowing you to configure it in the individual chats in which you are a moderator.
|
||||
@@ -0,0 +1,532 @@
|
||||
# Talk occ commands
|
||||
|
||||
## talk:bot:install
|
||||
|
||||
Install a new bot on the server
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:install [--output [OUTPUT]] [--no-setup] [-f|--feature FEATURE] [--] <name> <secret> <url> [<description>]`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `name` | The name under which the messages will be posted (min. 1 char, max. 64 chars) | yes | no | *Required* |
|
||||
| `secret` | Secret used to validate API calls (min. 40 chars, max. 128 chars) | yes | no | *Required* |
|
||||
| `url` | Webhook endpoint to post messages to (max. 4000 chars) | yes | no | *Required* |
|
||||
| `description` | Optional description shown in the admin settings (max. 4000 chars) | no | no | `NULL` |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--no-setup` | Prevent moderators from setting up the bot in a conversation | no | no | no | `false` |
|
||||
| `--feature\|-f` | Specify the list of features for the bot - webhook: The bot receives posted chat messages as webhooks - response: The bot can post messages and reactions as a response - event: The bot reads posted messages from local events - reaction: The bot is notified about adding and removing of reactions - none: When all features should be disabled for the bot | yes | yes | yes | *Required* |
|
||||
|
||||
## talk:bot:create
|
||||
|
||||
Creates a new bot on the server with 'response' feature only.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:create [--output [OUTPUT]] [-s|--secret SECRET] [--no-setup] [--] <name> [<description>]`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `name` | The name under which the messages will be posted (min. 1 char, max. 64 chars) | yes | no | *Required* |
|
||||
| `description` | Optional description shown in the admin settings (max. 4000 chars) | no | no | `NULL` |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--secret\|-s` | Secret used to validate API calls (min. 40 chars, max. 128 chars). When none is provided, a random 64 chars string is generated and output. | yes | yes | no | *Required* |
|
||||
| `--no-setup` | Prevent moderators from setting up the bot in a conversation | no | no | no | `false` |
|
||||
|
||||
## talk:bot:list
|
||||
|
||||
List all installed bots of the server or a conversation
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:list [--output [OUTPUT]] [--] [<token>]`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Conversation token to limit the bot list for | no | no | `NULL` |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:bot:remove
|
||||
|
||||
Remove a bot from a conversation
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:remove [--output [OUTPUT]] [--] <bot-id> [<token>...]`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `bot-id` | The ID of the bot to remove in a conversation | yes | no | *Required* |
|
||||
| `token` | Conversation tokens to remove bot up for | no | yes | `array ()` |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:bot:state
|
||||
|
||||
Change the state or feature list for a bot
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:state [--output [OUTPUT]] [-f|--feature FEATURE] [--] <bot-id> <state>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `bot-id` | Bot ID to change the state for | yes | no | *Required* |
|
||||
| `state` | New state for the bot (0 = disabled, 1 = enabled, 2 = no setup via GUI) | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--feature\|-f` | Specify the list of features for the bot - webhook: The bot receives posted chat messages as webhooks - response: The bot can post messages and reactions as a response - event: The bot reads posted messages from local events - reaction: The bot is notified about adding and removing of reactions - none: When all features should be disabled for the bot | yes | yes | yes | *Required* |
|
||||
|
||||
## talk:bot:setup
|
||||
|
||||
Add a bot to a conversation
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:setup [--output [OUTPUT]] [--] <bot-id> [<token>...]`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `bot-id` | The ID of the bot to set up in a conversation | yes | no | *Required* |
|
||||
| `token` | Conversation tokens to set the bot up for | no | yes | `array ()` |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:bot:uninstall
|
||||
|
||||
Uninstall a bot from the server
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:bot:uninstall [--output [OUTPUT]] [--url URL] [--] [<id>]`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `id` | The ID of the bot | no | no | `NULL` |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--url` | The URL of the bot (required when no ID is given, ignored otherwise) | yes | yes | no | *Required* |
|
||||
|
||||
## talk:monitor:calls
|
||||
|
||||
Prints a list with conversations that have an active call as well as their participant count
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:monitor:calls [--output [OUTPUT]]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:active-calls
|
||||
|
||||
Allows you to check if calls are currently in process
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:active-calls [--output [OUTPUT]]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:monitor:room
|
||||
|
||||
Prints the number of attendees, active sessions and participant in the call.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:monitor:room [--output [OUTPUT]] [--separator SEPARATOR] [--] <token>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Token of the room to monitor | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--separator` | Separator for the CSV list when output=csv is used | yes | yes | no | *Required* |
|
||||
|
||||
## talk:phone-number:add
|
||||
|
||||
Add a mapping entry to map a phone number to an user
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:phone-number:add [-f|--force] [--] <phone> <user>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `phone` | Phone number that will be called | yes | no | *Required* |
|
||||
| `user` | User to be added to the conversation | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--force\|-f` | Force the number to the given user even when it is assigned already | no | no | no | `false` |
|
||||
|
||||
## talk:phone-number:find
|
||||
|
||||
Find a phone number or the phone number of an user
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:phone-number:find [--phone PHONE] [--user USER]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--phone` | Phone number to search for | yes | yes | no | *Required* |
|
||||
| `--user` | User to get number(s) for | yes | yes | no | *Required* |
|
||||
|
||||
## talk:phone-number:import
|
||||
|
||||
Import a CSV list (format: "number","user") for SIP dial-in
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:phone-number:import [--reset] [-f|--force]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--reset` | Delete all phone numbers before importing | no | no | no | `false` |
|
||||
| `--force\|-f` | Force the numbers to the given user even when they are assigned already | no | no | no | `false` |
|
||||
|
||||
## talk:phone-number:remove-user
|
||||
|
||||
Remove mapping entries by user
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:phone-number:remove-user <user>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `user` | User to remove all mapping entries for | yes | no | *Required* |
|
||||
|
||||
## talk:phone-number:remove
|
||||
|
||||
Remove a mapping entry by phone number
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:phone-number:remove <phone>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `phone` | Phone number to remove the mapping entry for | yes | no | *Required* |
|
||||
|
||||
## talk:recording:consent
|
||||
|
||||
List all matching consent that were given to be audio and video recorded during a call (requires administrator or moderator configuration)
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:recording:consent [--output [OUTPUT]] [--token TOKEN] [--actor-type ACTOR-TYPE] [--actor-id ACTOR-ID]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--token` | Limit to the given conversation | yes | yes | no | *Required* |
|
||||
| `--actor-type` | Limit to the given actor (only valid when --actor-id is also provided) | yes | yes | no | *Required* |
|
||||
| `--actor-id` | Limit to the given actor (only valid when --actor-type is also provided) | yes | yes | no | *Required* |
|
||||
|
||||
## talk:room:add
|
||||
|
||||
Adds users to a room
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:add [--user USER] [--group GROUP] [--] <token>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Token of the room to add users to | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--user` | Invites the given users to the room | yes | yes | yes | *Required* |
|
||||
| `--group` | Invites all members of the given groups to the room | yes | yes | yes | *Required* |
|
||||
|
||||
## talk:room:create
|
||||
|
||||
Create a new room
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:create [--description DESCRIPTION] [--user USER] [--group GROUP] [--public] [--readonly] [--listable LISTABLE] [--password PASSWORD] [--owner OWNER] [--moderator MODERATOR] [--message-expiration MESSAGE-EXPIRATION] [--] <name>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `name` | The name of the room to create | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--description` | The description of the room to create | yes | yes | no | *Required* |
|
||||
| `--user` | Invites the given users to the room to create | yes | yes | yes | *Required* |
|
||||
| `--group` | Invites all members of the given group to the room to create | yes | yes | yes | *Required* |
|
||||
| `--public` | Creates the room as public room if set | no | no | no | `false` |
|
||||
| `--readonly` | Creates the room with read-only access only if set | no | no | no | `false` |
|
||||
| `--listable` | Creates the room with the given listable scope | yes | yes | no | *Required* |
|
||||
| `--password` | Protects the room to create with the given password | yes | yes | no | *Required* |
|
||||
| `--owner` | Sets the given user as owner of the room to create | yes | yes | no | *Required* |
|
||||
| `--moderator` | Promotes the given users to moderators | yes | yes | yes | *Required* |
|
||||
| `--message-expiration` | Seconds to expire a message after sent. If zero will disable the expire message duration. | yes | yes | no | *Required* |
|
||||
|
||||
## talk:room:delete
|
||||
|
||||
Deletes a room
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:delete <token>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Token of the room to delete | yes | no | *Required* |
|
||||
|
||||
## talk:room:demote
|
||||
|
||||
Demotes participants of a room to regular users
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:demote <token> <participant>...`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Token of the room in which users should be demoted | yes | no | *Required* |
|
||||
| `participant` | Demotes the given participants of the room to regular users | yes | yes | *Required* |
|
||||
|
||||
## talk:room:promote
|
||||
|
||||
Promotes participants of a room to moderators
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:promote <token> <participant>...`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Token of the room in which users should be promoted | yes | no | *Required* |
|
||||
| `participant` | Promotes the given participants of the room to moderators | yes | yes | *Required* |
|
||||
|
||||
## talk:room:remove
|
||||
|
||||
Remove users from a room
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:remove <token> <participant>...`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | Token of the room to remove users from | yes | no | *Required* |
|
||||
| `participant` | Removes the given participants from the room | yes | yes | *Required* |
|
||||
|
||||
## talk:room:update
|
||||
|
||||
Updates a room
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:room:update [--name NAME] [--description DESCRIPTION] [--public PUBLIC] [--readonly READONLY] [--listable LISTABLE] [--password PASSWORD] [--owner OWNER] [--message-expiration MESSAGE-EXPIRATION] [--] <token>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `token` | The token of the room to update | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--name` | Sets a new name for the room | yes | yes | no | *Required* |
|
||||
| `--description` | Sets a new description for the room | yes | yes | no | *Required* |
|
||||
| `--public` | Modifies the room to be a public room (value 1) or private room (value 0) | yes | yes | no | *Required* |
|
||||
| `--readonly` | Modifies the room to be read-only (value 1) or read-write (value 0) | yes | yes | no | *Required* |
|
||||
| `--listable` | Modifies the room's listable scope | yes | yes | no | *Required* |
|
||||
| `--password` | Sets a new password for the room; pass an empty value to remove password protection | yes | yes | no | *Required* |
|
||||
| `--owner` | Sets the given user as owner of the room; pass an empty value to remove the owner | yes | yes | no | *Required* |
|
||||
| `--message-expiration` | Seconds to expire a message after sent. If zero will disable the expire message duration. | yes | yes | no | *Required* |
|
||||
|
||||
## talk:signaling:add
|
||||
|
||||
Add an external signaling server.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:signaling:add [--verify] [--] <server> <secret>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `server` | A server string, ex. wss://signaling.example.org | yes | no | *Required* |
|
||||
| `secret` | A shared secret string. | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--verify` | Validate SSL certificate if set. | no | no | no | `false` |
|
||||
|
||||
## talk:signaling:delete
|
||||
|
||||
Remove an existing signaling server.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:signaling:delete <server>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `server` | An external signaling server string, ex. wss://signaling.example.org | yes | no | *Required* |
|
||||
|
||||
## talk:signaling:list
|
||||
|
||||
List external signaling servers.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:signaling:list [--output [OUTPUT]]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:signaling:verify-keys
|
||||
|
||||
Verify if the stored public key matches the stored private key for the signaling server
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:signaling:verify-keys [--output [OUTPUT]] [--update]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
| `--update` | Updates the stored public key to match the private key if there is a mis-match | no | no | no | `false` |
|
||||
|
||||
## talk:stun:add
|
||||
|
||||
Add a new STUN server.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:stun:add <server>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `server` | A domain name and port number separated by the colons, ex. stun.nextcloud.com:443 | yes | no | *Required* |
|
||||
|
||||
## talk:stun:delete
|
||||
|
||||
Remove an existing STUN server.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:stun:delete <server>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `server` | A domain name and port number separated by the colons, ex. stun.nextcloud.com:443 | yes | no | *Required* |
|
||||
|
||||
## talk:stun:list
|
||||
|
||||
List STUN servers.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:stun:list [--output [OUTPUT]]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:turn:add
|
||||
|
||||
Add a TURN server.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:turn:add [--secret SECRET] [--generate-secret] [--] <schemes> <server> <protocols>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `schemes` | Schemes, can be turn or turns or turn,turns. | yes | no | *Required* |
|
||||
| `server` | A domain name, ex. turn.nextcloud.com | yes | no | *Required* |
|
||||
| `protocols` | Protocols, can be udp or tcp or udp,tcp. | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--secret` | A shard secret string | yes | yes | no | *Required* |
|
||||
| `--generate-secret` | Generate secret if set. | no | no | no | `false` |
|
||||
|
||||
## talk:turn:delete
|
||||
|
||||
Remove an existing TURN server.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:turn:delete <schemes> <server> <protocols>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `schemes` | Schemes, can be turn or turns or turn,turns | yes | no | *Required* |
|
||||
| `server` | A domain name, ex. turn.nextcloud.com | yes | no | *Required* |
|
||||
| `protocols` | Protocols, can be udp or tcp or udp,tcp | yes | no | *Required* |
|
||||
|
||||
## talk:turn:list
|
||||
|
||||
List TURN servers.
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:turn:list [--output [OUTPUT]]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--output` | Output format (plain, json or json_pretty, default is plain) | yes | no | no | `'plain'` |
|
||||
|
||||
## talk:user:remove
|
||||
|
||||
Remove a user from all their rooms
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:user:remove [--user USER] [--private-only]`
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--user` | Remove the given users from all rooms | yes | yes | yes | *Required* |
|
||||
| `--private-only` | Only remove the user from private rooms, retaining membership in public and open conversations as well as one-to-ones | no | no | no | `false` |
|
||||
|
||||
## talk:user:transfer-ownership
|
||||
|
||||
Adds the destination-user with the same participant type to all (not one-to-one) conversations of source-user
|
||||
|
||||
### Usage
|
||||
|
||||
* `talk:user:transfer-ownership [--include-non-moderator] [--remove-source-user] [--] <source-user> <destination-user>`
|
||||
|
||||
| Arguments | Description | Is required | Is array | Default |
|
||||
|---|---|---|---|---|
|
||||
| `source-user` | Owner of conversations which shall be moved | yes | no | *Required* |
|
||||
| `destination-user` | User who will be the new owner of the conversations | yes | no | *Required* |
|
||||
|
||||
| Options | Description | Accept value | Is value required | Is multiple | Default |
|
||||
|---|---|---|---|---|---|
|
||||
| `--include-non-moderator` | Also include conversations where the source-user is a normal user | no | no | no | `false` |
|
||||
| `--remove-source-user` | Remove the source-user from the conversations | no | no | no | `false` |
|
||||
|
||||
@@ -0,0 +1,373 @@
|
||||
# Participant API
|
||||
|
||||
* API v1: 🏁 Removed with API v4: until Nextcloud 21
|
||||
* API v2: 🏁 Removed with API v4: Nextcloud 19 - 21
|
||||
* API v3: 🏁 Removed with API v4: Nextcloud 21 only
|
||||
* API v4: Base endpoint `/ocs/v2.php/apps/spreed/api/v4`: since Nextcloud 22
|
||||
|
||||
## Get list of participants in a conversation
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/participants`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------------|------|-------------------------------------------------------------|
|
||||
| `includeStatus` | bool | Whether the user status information also needs to be loaded |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the participant is a guest
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
Array of participants, each participant has at least:
|
||||
|
||||
| field | type | Added | Removed | Description |
|
||||
|-----------------------|--------|-------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `attendeeId` | int | v3 | | Unique attendee id |
|
||||
| `actorType` | string | v3 | | Currently known `users |guests|emails|groups|circles`
|
||||
| `actorId` | string | v3 | | The unique identifier for the given actor type |
|
||||
| `displayName` | string | v1 | | Can be empty for guests |
|
||||
| `participantType` | int | v1 | | Permissions level of the participant (see [constants list](constants.md#participant-types)) |
|
||||
| `lastPing` | int | v1 | | Timestamp of the last ping of the user (should be used for sorting) |
|
||||
| `inCall` | int | v1 | | Call flags the user joined with (see [constants list](constants.md#participant-in-call-flag)) |
|
||||
| `permissions` | int | v4 | | Combined final permissions for the participant, permissions are picked in order of attendee then call then default and the first which is `Custom` will apply (see [constants list](constants.md#attendee-permissions)) |
|
||||
| `attendeePermissions` | int | v4 | | Dedicated permissions for the current participant, if not `Custom` this are not the resulting permissions (see [constants list](constants.md#attendee-permissions)) |
|
||||
| `sessionId` | string | v1 | v4 | `'0'` if not connected, otherwise a 512 character long string |
|
||||
| `sessionIds` | array | v4 | | array of session ids, each are 512 character long strings, or empty if no session |
|
||||
| `status` | string | v2 | | Optional: Only available with `includeStatus=true`, for users with a set status and when there are less than 100 participants in the conversation |
|
||||
| `statusIcon` | string | v2 | | Optional: Only available with `includeStatus=true`, for users with a set status and when there are less than 100 participants in the conversation |
|
||||
| `statusMessage` | string | v2 | | Optional: Only available with `includeStatus=true`, for users with a set status and when there are less than 100 participants in the conversation |
|
||||
| `roomToken` | string | v4 | | Optional: Only available with `breakout-rooms-v1` capability |
|
||||
| `phoneNumber` | string | v4 | | Optional: Only available with `sip-support-dialout` capability and only filled for moderators that are allowed to configure SIP for conversations |
|
||||
| `callId` | string | v4 | | Optional: Only available with `sip-support-dialout` capability and only filled for moderators that are allowed to configure SIP for conversations |
|
||||
|
||||
|
||||
## Get list of participants in a conversation including its breakout rooms
|
||||
|
||||
* Required capability: `breakout-rooms-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/breakout-rooms/participants`
|
||||
* Data: See Data in [Get list of participants in a conversations](participant.md#get-list-of-participants-in-a-conversation)
|
||||
* Response: See Response in [Get list of participants in a conversations](participant.md#get-list-of-participants-in-a-conversation)
|
||||
|
||||
## Add a participant to a conversation
|
||||
|
||||
*Note:* Adding a participant to a breakout room will automatically add them to the parent room as well.
|
||||
|
||||
*Note:* Only source users can be added directly to a breakout room.
|
||||
|
||||
*Note:* Adding a participant to a breakout room, that is already a participant in another breakout room of the same parent will remove them from there.
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/participants`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------------|--------|-------------------------------------------------------------------------------------------------------|
|
||||
| `newParticipant` | string | User, group, email or circle to add |
|
||||
| `source` | string | Source of the participant(s) as returned by the autocomplete suggestion endpoint (default is `users`) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the source type is unknown, currently `users`, `groups`, `emails` are supported. `circles` are supported with `circles-support` capability
|
||||
+ `400 Bad Request` When the conversation is a one-to-one conversation or a conversation to request a password for a share
|
||||
+ `403 Forbidden` When the current user is not a moderator or owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the user or group to add could not be found
|
||||
|
||||
- Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------|------|------------------------------------------------------------------|
|
||||
| `type` | int | In case the conversation type changed, the new value is returned |
|
||||
|
||||
## Delete an attendee by id from a conversation
|
||||
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/attendees`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|------|---------------------------|
|
||||
| `attendeeId` | int | The participant to delete |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the participant is a moderator or owner
|
||||
+ `400 Bad Request` When there are no other moderators or owners left
|
||||
+ `403 Forbidden` When the current user is not a moderator or owner
|
||||
+ `403 Forbidden` When the participant to remove is an owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the participant to remove could not be found
|
||||
|
||||
## Remove yourself from a conversation
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/participants/self`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the participant is a moderator or owner and there are no other moderators or owners left.
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Join a conversation (available for call and chat)
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/participants/active`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `password` | string | Optional: Password is only required for users which are self joined or guests and only when the conversation has `hasPassword` set to true. |
|
||||
| `force` | bool | If set to `false` and the user has an active session already a `409 Conflict` will be returned (Default: true - to keep the old behaviour) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the password is required and didn't match
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `409 Conflict` When the user already has an active Talk session in the conversation with this Nextcloud session. The suggested behaviour is to ask the user whether they want to kill the old session and force join unless the last ping is older than 60 seconds or older than 40 seconds when the conflicting session is not marked as in a call.
|
||||
|
||||
- Data in case of `200 OK`: See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations)
|
||||
|
||||
- Data in case of `409 Conflict`:
|
||||
|
||||
| field | type | Description |
|
||||
|-------------|--------|--------------------------------------------------------------|
|
||||
| `sessionId` | string | 512 character long string |
|
||||
| `inCall` | int | Flags whether the conflicting session is in a potential call |
|
||||
| `lastPing` | int | Timestamp of the last ping of the conflicting session |
|
||||
|
||||
## Resend participant emails
|
||||
|
||||
* Required capability: `sip-support`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/participants/resend-invitations`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|-------------|------------------------------------------------------------------------------------------|
|
||||
| `attendeeId` | int or null | Attendee id can be used for guests and users, not setting it will resend all invitations |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the current user is not a moderator or owner
|
||||
+ `404 Not Found` When the given attendee was not found in the conversation
|
||||
|
||||
## Set session state
|
||||
|
||||
* Required capability: `session-state`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/participants/state`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the provided state is invalid (see [constants list](constants.md#participant-state))
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Leave a conversation (not available for call and chat anymore)
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/participants/active`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Promote a user or guest to moderator
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/moderators`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|------|----------------------------------------------|
|
||||
| `attendeeId` | int | Attendee id can be used for guests and users |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the participant to promote is not a normal user (type `3`), normal guest (type `4`) or self-joined user (type `5`)
|
||||
+ `403 Forbidden` When the current user is not a moderator or owner
|
||||
+ `403 Forbidden` When the participant to remove is an owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the participant to remove could not be found
|
||||
|
||||
## Demote a moderator to user or guest
|
||||
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/moderators`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|------|----------------------------------------------|
|
||||
| `attendeeId` | int | Attendee id can be used for guests and users |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the participant to demote is not a moderator (type `2`) or guest moderator (type `6`)
|
||||
+ `403 Forbidden` When the current participant is not a moderator or owner
|
||||
+ `403 Forbidden` When the current participant tries to demote themselves
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the participant to demote could not be found
|
||||
|
||||
## Set permissions for an attendee
|
||||
|
||||
Setting custom permissions for a self-joined user will also make them a permanent user to the conversation.
|
||||
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/attendees/permissions`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `attendeeId` | int | Attendee id can be used for guests and users |
|
||||
| `method` | string | Mode of how permissions should be manipulated [constants list](constants.md#attendee-permission-modifications). If the permissions were `0` (default) and the modification is `add` or `remove`, they will be initialised with the call or default conversation permissions before, falling back to `126` for moderators and `118` for normal participants. |
|
||||
| `permissions` | int | New permissions for the attendee, see [constants list](constants.md#attendee-permissions). If permissions are not `0` (default), the `1` (custom) permission will always be added. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support setting publishing permissions, e.g. one-to-one conversations
|
||||
+ `400 Bad Request` When the attendee type is `groups` or `circles`
|
||||
+ `400 Bad Request` When the mode is invalid
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the attendee to set publishing permissions could not be found
|
||||
|
||||
## Set permissions for all attendees
|
||||
|
||||
* Deprecated: 🏁 The API is no-op since Talk 20
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/attendees/permissions/all`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `method` | string | Mode of how permissions should be manipulated [constants list](constants.md#attendee-permission-modifications). If the permissions were `0` (default) and the modification is `add` or `remove`, they will be initialised with the call or default conversation permissions before, falling back to `126` for moderators and `118` for normal participants. |
|
||||
| `permissions` | int | New permissions for the attendees, see [constants list](constants.md#attendee-permissions). If permissions are not `0` (default), the `1` (custom) permission will always be added. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support setting publishing permissions, e.g. one-to-one conversations
|
||||
+ `400 Bad Request` When the mode is invalid
|
||||
+ `403 Forbidden` When the current user is not a moderator, owner or guest moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
## Get a participant by their pin
|
||||
|
||||
Note: Deprecated - Use [Verify a dial-in PIN](#Verify-a-dial-in-PIN) instead
|
||||
Note: This is only allowed as validate SIP bridge requests
|
||||
|
||||
* Required capability: `sip-support`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/room/{token}/pin/{pin}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` When the validation as SIP bridge failed
|
||||
+ `404 Not Found` When the conversation or participant could not be found
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Verify a dial-in PIN
|
||||
|
||||
Note: This is only allowed as validate SIP bridge requests
|
||||
|
||||
* Required capability: `sip-support-dialout`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/verify-dialin`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-------|--------|-------------------------------------|
|
||||
| `pin` | string | PIN the participant used to dial-in |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` When the validation as SIP bridge failed
|
||||
+ `404 Not Found` When the conversation or participant could not be found
|
||||
+ `501 Not Implemented` When SIP is not configured
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Verify a dial-out number
|
||||
|
||||
Note: This is only allowed as validate SIP bridge requests
|
||||
|
||||
* Required capability: `sip-support-dialout`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/room/{token}/verify-dialout`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|--------|---------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `number` | string | E164 formatted phone number |
|
||||
| `options` | string | Additional details to verify the validity of the request as JSON encoded object (Should contain actorId, actorType, attendeeId) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `401 Unauthorized` When the validation as SIP bridge failed
|
||||
+ `404 Not Found` When the conversation or participant could not be found
|
||||
+ `501 Not Implemented` When SIP or SIP dial-out is not configured
|
||||
|
||||
- Data: See array definition in `Get user´s conversations`
|
||||
|
||||
## Reset call ID of rejected dial-out
|
||||
|
||||
Note: This is only allowed as validate SIP bridge requests
|
||||
|
||||
* Required capability: `sip-support-dialout`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/room/{token}/rejected-dialout`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|-----------|--------|------------------------------------------------|
|
||||
| `callId` | string | The call ID that was rejected |
|
||||
| `options` | string | The options as received in the dialout request |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` Call ID reset
|
||||
+ `400 Bad Request` Call ID mismatch
|
||||
+ `401 Unauthorized` SIP request invalid
|
||||
+ `404 Not Found` Participant was not found
|
||||
+ `501 Not Implemented` When SIP or SIP dial-out is not configured
|
||||
|
||||
## Set display name as a guest
|
||||
|
||||
* API: Only `v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/guest/{token}/name`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------------|--------|----------------------|
|
||||
| `displayName` | string | The new display name |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the current user is not a guest
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
@@ -0,0 +1,151 @@
|
||||
# Poll API
|
||||
|
||||
Base endpoint is: `/ocs/v2.php/apps/spreed/api/v1`
|
||||
|
||||
## Create a poll in a conversation
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/poll/{token}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `question` | string | The question of the poll |
|
||||
| `options` | string[] | Array of strings with the voting options |
|
||||
| `resultMode` | int | The result and voting mode of the poll, `0` means participants can immediatelly see the result and who voted for which option. `1` means the result is hidden until the poll is closed and then only the summary is published. |
|
||||
| `maxVotes` | int | Maximum amount of options a participant can vote for |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` When the room is a one-to-one conversation
|
||||
+ `400 Bad Request` When the question or the options were too long or invalid (not strings)
|
||||
+ `403 Forbidden` When the conversation is read-only
|
||||
+ `403 Forbidden` When the actor does not have chat permissions
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
|
||||
See [Poll data](#poll-data)
|
||||
|
||||
# Edit a draft poll in a conversation
|
||||
|
||||
* Required capability: `edit-draft-poll`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/poll/{token}/draft/{pollId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `question` | string | The question of the poll |
|
||||
| `options` | string[] | Array of strings with the voting options |
|
||||
| `resultMode` | int | The result and voting mode of the poll, `0` means participants can immediatelly see the result and who voted for which option. `1` means the result is hidden until the poll is closed and then only the summary is published. |
|
||||
| `maxVotes` | int | Maximum amount of options a participant can vote for |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Modifying poll is not possible
|
||||
+ `403 Forbidden` No permission to modify this poll
|
||||
+ `404 Not Found` When the draft poll could not be found
|
||||
|
||||
- Data:
|
||||
|
||||
See [Poll data](#poll-data)
|
||||
|
||||
## Get state or result of a poll
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/poll/{token}/{pollId}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` In case of any other error
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the poll id could not be found in the conversation
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
|
||||
See [Poll data](#poll-data)
|
||||
|
||||
## Vote on a poll
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/poll/{token}/{pollId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------|-------|--------------------------------------------------|
|
||||
| `optionIds` | int[] | The option IDs the participant wants to vote for |
|
||||
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` When an option id is invalid
|
||||
+ `400 Bad Request` When too many options were voted
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the poll id could not be found in the conversation
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
|
||||
See [Poll data](#poll-data)
|
||||
|
||||
## Close a poll
|
||||
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/poll/{token}/{pollId}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the poll is already closed
|
||||
+ `403 Forbidden` When the participant is not the author of the poll or a moderator
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `404 Not Found` When the poll id could not be found in the conversation
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator
|
||||
|
||||
- Data:
|
||||
|
||||
See [Poll data](#poll-data)
|
||||
|
||||
## Poll data
|
||||
|
||||
!!! note
|
||||
|
||||
Due to the structure of the `votes` array the response is not valid in XML.
|
||||
It is therefor recommended to use `format=json` or send the `Accept: application/json` header,
|
||||
to receive a JSON response.
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | int | ID of the poll |
|
||||
| `question` | string | The question of the poll |
|
||||
| `options` | string[] | The options participants can vote for |
|
||||
| `votes` | int[] | Map with `'option-' + optionId` => number of votes (only available for when the actor voted on public poll or the poll is closed) |
|
||||
| `actorType` | string | Actor type of the poll author (see [Constants - Attendee types](constants.md#attendee-types)) |
|
||||
| `actorId` | string | Actor ID identifying the poll author |
|
||||
| `actorDisplayName` | string | Display name of the poll author |
|
||||
| `status` | int | Status of the poll (see [Constants - Poll status](constants.md#poll-status)) |
|
||||
| `resultMode` | int | Result mode of the poll (see [Constants - Poll mode](constants.md#poll-mode)) |
|
||||
| `maxVotes` | int | Maximum amount of options a user can vote for, `0` means unlimited |
|
||||
| `votedSelf` | int[] | Array of option ids the participant voted for |
|
||||
| `numVoters` | int | The number of unique voters that voted (only available when the actor voted on public poll or the poll is closed unless for the creator and moderators) |
|
||||
| `details` | array[] | Detailed list who voted for which option (only available for public closed polls), see [Details](#details) below |
|
||||
|
||||
### Details
|
||||
|
||||
| field | type | Description |
|
||||
|------------------|--------|--------------------------------------------------------------------------------------------------------------|
|
||||
| actorType | string | The actor type of the participant that voted (see [Constants - Attendee types](constants.md#attendee-types)) |
|
||||
| actorId | string | The actor id of the participant that voted |
|
||||
| actorDisplayName | string | The display name of the participant that voted |
|
||||
| optionId | int | The option that was voted for |
|
||||
@@ -0,0 +1,206 @@
|
||||
# Quick install
|
||||
|
||||
## Introduction
|
||||
|
||||
Installing Nextcloud Talk consists of two main parts:
|
||||
|
||||
1. **App:** The Nextcloud Server app available in the [Nextcloud app store](https://apps.nextcloud.com/apps/spreed).
|
||||
2. **High-performance backend:** The High-performance backend developed by our Partner Struktur AG available in [their GitHub organisation](https://github.com/strukturag/nextcloud-spreed-signaling). The High-performance backend itself consists of multiple modules, the most important ones being a signaling server and a WebRTC media gateway.
|
||||
|
||||
!!! note
|
||||
|
||||
While the High-performance backend is **_optional_**, please note, that it is already **helpful in calls with three participants** (reducing required upload bandwidth by 50%). Even more so in calls with 4+ participants as described in the [Scalability documentation](scalability.md).
|
||||
|
||||
Besides performance aspects, some features (e.g. typing indicators) require a High-performance backend as well.
|
||||
|
||||
Additional components:
|
||||
|
||||
- Most installations require a STUN and TURN server to ensure people can join calls from limited networks and mobile networks.
|
||||
- **STUN server:** Resolves public IP addresses of participants. A STUN server is provided by default, but you can replace it with your own and e.g. coTURN brings it by default.
|
||||
- **TURN server:** Relays the audio and video data through firewalls and port restrictions. For a quick guide on TURN, please find the relevant information in our [TURN documentation](TURN.md).
|
||||
- **Recording backend:** A Recording backend to allow recording audio and video calls. See the [Recording backend documentation](https://github.com/nextcloud/nextcloud-talk-recording/blob/main/docs/installation.md) for detailed steps.
|
||||
- **SIP bridge:** Available with a Nextcloud Talk Enterprise subscription, the SIP bridge allows participating in meetings via phone as well as calling phone numbers from within Nextcloud Talk. More details are available in the [Nextcloud Enterprise Portal](https://portal.nextcloud.com/article/Nextcloud-Talk/High-Performance-Backend/Installation/Setup-Instructions#content-sip-bridge)
|
||||
|
||||
## Installation types
|
||||
|
||||
This guide explains the steps and instructions required to install the High-performance backend using Docker and how to quickly configure the basics to get started.
|
||||
|
||||
In general, the following installation methods are available
|
||||
|
||||
### Nextcloud All-in-One
|
||||
|
||||
* **Requirements:** Docker
|
||||
* **Link:** [github.com/nextcloud/all-in-one](https://github.com/nextcloud/all-in-one)
|
||||
|
||||
Nextcloud All-in-One (AIO) is the official Nextcloud installation method. It provides easy deployment and maintanence with most features of Nextcloud already included.
|
||||
|
||||
For Nextcloud Talk this means that Nextcloud AIO already includes a ready to use High-performance backend and TURN server.
|
||||
|
||||
### Packages
|
||||
|
||||
* **Requirements:**: Nextcloud Talk subscription
|
||||
* **Link:** [Nextcloud Enterprise Portal](https://portal.nextcloud.com/article/Nextcloud-Talk/High-Performance-Backend/Installation-of-Nextcloud-Talk-High-Performance-Backend)
|
||||
|
||||
Packages for installing the High-performance backend for Ubuntu, Debian und Red Hat Enterprise Linux are available with a Nextcloud Talk subscription. Additionally, extensive documentation for very large installation, e.g. clustered setups, is available there.
|
||||
|
||||
### "How to" from the Nextcloud snap team / Docker Stack
|
||||
|
||||
* **Requirements:** Docker
|
||||
* **Link:** [help.nextcloud.com/t/high-performance-backend-for-talk-on-nextcloud-with-docker/215828](https://help.nextcloud.com/t/high-performance-backend-for-talk-on-nextcloud-with-docker/215828)
|
||||
|
||||
Thanks to the Nextcloud snap team, who created a [how to](https://help.nextcloud.com/t/high-performance-backend-for-talk-on-nextcloud-with-docker/215828) for installing the High-performance backend using the Talk container from Nextcloud AIO in a Docker Stack. While provided "as-is" it might help you to setup the High-performance backend for your use-case. Please note that it does not require a Nextcloud snap installation!
|
||||
|
||||
### Docker container
|
||||
|
||||
* **Requirements:** Docker
|
||||
* **Link:** _Described in detail below_
|
||||
|
||||
Similar to the approach above, we utilize the Nextcloud AIO container to get the High-performance backend up and running.
|
||||
|
||||
## System requirements
|
||||
|
||||
* A working docker installation
|
||||
* Checkout [the docker installation guide](https://docs.docker.com/engine/install/)
|
||||
|
||||
## Before you begin
|
||||
|
||||
Before installing the High performance backend, ensure you have:
|
||||
|
||||
* A working Nextcloud installation.
|
||||
* If you don't have a working Nextcloud installation yet, please checkout [Nextcloud All-in-One](https://github.com/nextcloud/all-in-one) or alteratively our [installation documentation](https://docs.nextcloud.com/server/latest/admin_manual/installation/index.html).
|
||||
* Nextcloud Talk installed from the [Nextcloud app store](https://apps.nextcloud.com/apps/spreed).
|
||||
* If you need help installing Nextcloud Talk, please check out [our documentation on apps management](https://docs.nextcloud.com/server/latest/admin_manual/apps_management.html).
|
||||
* A correctly setup reverse proxy for your Nextcloud installation
|
||||
* See [our documentation on reverse proxy](https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/reverse_proxy_configuration.html).
|
||||
|
||||
## Installation steps
|
||||
|
||||
The following procedure explains how to get the High-performance backend up and running with a standalone docker container. It will utilize the pre-built container from Nextcloud All-in-One.
|
||||
|
||||
For more information on how Nextcloud All-in-One builds the container, please [see the Nextcloud AIO repository](https://github.com/nextcloud/all-in-one/tree/main/Containers/talk).
|
||||
|
||||
### Step 1 - Create secrets
|
||||
|
||||
The High-performance backend requires multiple secrets for authentication with the Nextcloud instance. The talk container from Nextcloud All-in-One needs 3 secrets to work correctly:
|
||||
|
||||
* A `TURN` secret
|
||||
* A `SIGNALING` secret
|
||||
* A `INTERNAL` secret
|
||||
|
||||
While you specify the secrets manually, it is recommended to generate a secure random string. There are multiple ways to do that, one of the easiest is using `openssl`:
|
||||
|
||||
```shell
|
||||
# openssl rand --hex 32
|
||||
86a057a959534eb761b20afb4122da6b5475a5f8db20ba16abbb91c65132ca03
|
||||
```
|
||||
|
||||
Repeat that another 2 times to have all 3 secrets.
|
||||
|
||||
For the following steps we will refer to the secrets as:
|
||||
|
||||
* `TURN` = 1111
|
||||
* `SIGNALING` = 2222
|
||||
* `INTERNAL` = 3333
|
||||
|
||||
Please make sure to replace the values accordingly.
|
||||
|
||||
!!! note
|
||||
|
||||
While the talk container from Nextcloud AIO also contains a TURN server (and requires a TURN secret), this guide soley focuses on the HPB part.
|
||||
|
||||
### Step 2 - Start the docker container
|
||||
|
||||
The following command will start the container, please adjust the command to your needs. In addition to the generated secrets, you'll also need the domain of your Nextcloud installation and the port where the signaling server will listen.
|
||||
|
||||
```shell
|
||||
docker run \
|
||||
--name=nextcloud-talk-hpb \
|
||||
--restart=always \
|
||||
--detach \
|
||||
-e NC_DOMAIN=<your_domain> \
|
||||
-e TALK_PORT=3478 \
|
||||
-e TURN_SECRET=<your_turn_secret> \
|
||||
-e SIGNALING_SECRET=<your_signaling_secret> \
|
||||
-e INTERNAL_SECRET=<your_internal_secret> \
|
||||
-p <your_port>:8081 \
|
||||
ghcr.io/nextcloud-releases/aio-talk:latest
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```shell
|
||||
docker run \
|
||||
--name=nextcloud-talk-hpb \
|
||||
--restart=always \
|
||||
--detach \
|
||||
-e NC_DOMAIN=nextcloud.domain.invalid \
|
||||
-e TALK_PORT=3478 \
|
||||
-e TURN_SECRET=1111 \
|
||||
-e SIGNALING_SECRET=2222 \
|
||||
-e INTERNAL_SECRET=3333 \
|
||||
-p 8080:8081 \
|
||||
ghcr.io/nextcloud-releases/aio-talk:latest
|
||||
```
|
||||
|
||||
### Step 3 - Expose the container through the reverse proxy
|
||||
|
||||
The container needs to be exposed through the reverse proxy that does TLS offloading, e.g. as `signaling.domain.invalid`. Please checkout the example configs in [the nextcloud-spreed-signaling repository](https://github.com/strukturag/nextcloud-spreed-signaling?tab=readme-ov-file#setup-of-frontend-webserver).
|
||||
|
||||
## Verify installation
|
||||
|
||||
After finishing all the installation steps, please verify if the signaling server is correctly reachable. You can use query the welcome endpoint for that:
|
||||
|
||||
```shell
|
||||
# curl https://signaling.domain.invalid/api/v1/welcome
|
||||
{"nextcloud-spreed-signaling":"Welcome","version":"2.0.1~docker"}
|
||||
```
|
||||
|
||||
If you would like to verify it locally from the docker host, you can query the welcome endpoint as well:
|
||||
|
||||
```shell
|
||||
# curl http://localhost:8081/api/v1/welcome
|
||||
{"nextcloud-spreed-signaling":"Welcome","version":"2.0.1~docker"}
|
||||
```
|
||||
|
||||
Also to show the logs of the docker container, use `docker logs nextcloud-talk-hpb`.
|
||||
|
||||
## Post installation
|
||||
|
||||
After successfully starting the container, please go to the administrative settings of Talk (`/settings/admin/talk`) to configure the High-performance backend with the following parameters:
|
||||
|
||||
* High-performance backend URL: `https://signaling.domain.invalid`
|
||||
* Shared secret: `2222` (The generated `SIGNALING` secret)
|
||||
|
||||
Verify that the connection check succeeds with a green checkmark.
|
||||
|
||||
### TURN option
|
||||
|
||||
In case you would like to use the TURN option that the Nextcloud AIO container provides, you can modify the docker command like this:
|
||||
|
||||
```shell
|
||||
docker run \
|
||||
--name=nextcloud-talk-hpb \
|
||||
--restart=always \
|
||||
--detach \
|
||||
-e NC_DOMAIN=<your_domain> \
|
||||
-e TALK_HOST=<your_signaling_domain> \
|
||||
-e TALK_PORT=3478 \
|
||||
-e TURN_SECRET=<your_turn_secret> \
|
||||
-e SIGNALING_SECRET=<your_signaling_secret> \
|
||||
-e INTERNAL_SECRET=<your_internal_secret> \
|
||||
-p <your_port>:8081 \
|
||||
-p 3478:3478/tcp \
|
||||
-p 3478:3478/udp \
|
||||
ghcr.io/nextcloud-releases/aio-talk:latest
|
||||
```
|
||||
|
||||
Note that we added the environment variable `TALK_HOST` and additionally exposed port TCP 3478 and UDP ports. The domain entered needs to be the one where the TURN server will be reachable on port 3478.
|
||||
|
||||
### TURN post installation
|
||||
|
||||
After successfully starting the container, please go to the administrative settings of Talk (`/settings/admin/talk`) to configure the TURN server with the following parameters:
|
||||
|
||||
* `turn: only`
|
||||
* TURN server URL: `signaling.domain.invalid:3478` (no protocol)
|
||||
* TURN server secret: `1111` (The generated `TURN` secret)
|
||||
* `UDP and TCP`
|
||||
@@ -0,0 +1,88 @@
|
||||
# Reaction API
|
||||
|
||||
Base endpoint is: `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 24
|
||||
|
||||
## React to a message
|
||||
|
||||
* Required capability: `reactions`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/reaction/{token}/{messageId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|--------------------|
|
||||
| `reaction` | string | the reaction emoji |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` Reaction already exists
|
||||
+ `201 Created` User reacted with a new reaction
|
||||
+ `400 Bad Request` In case of no reaction support, message out of reactions context or any other error
|
||||
+ `404 Not Found` When the conversation or message to react could not be found for the participant
|
||||
|
||||
- Data:
|
||||
Array with data of reactions:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|----------------------------------------|
|
||||
| `actorType` | string | `guests` or `users` |
|
||||
| `actorId` | string | Actor id of the reacting participant |
|
||||
| `actorDisplayName` | string | Display name of the reaction author |
|
||||
| `timestamp` | int | Timestamp in seconds and UTC time zone |
|
||||
|
||||
## Delete a reaction
|
||||
|
||||
* Required capability: `reactions`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/reaction/{token}/{messageId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|--------------------|
|
||||
| `reaction` | string | the reaction emoji |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `201 Created`
|
||||
+ `400 Bad Request` In case of no reaction support, message out of reactions context or any other error
|
||||
+ `404 Not Found` When the conversation or message to react or reaction could not be found for the participant
|
||||
|
||||
- Data:
|
||||
Array with data of reactions:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|----------------------------------------|
|
||||
| `actorType` | string | `guests` or `users` |
|
||||
| `actorId` | string | Actor id of the reacting participant |
|
||||
| `actorDisplayName` | string | Display name of the reaction author |
|
||||
| `timestamp` | int | Timestamp in seconds and UTC time zone |
|
||||
|
||||
## Retrieve reactions of a message by type
|
||||
|
||||
* Required capability: `reactions`
|
||||
* Federation capability: `federation-v1`
|
||||
* Method: `GET`
|
||||
* Endpoint: `/reaction/{token}/{messageId}`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|------------|--------|----------------------------------|
|
||||
| `reaction` | string | **Optional:** the reaction emoji |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` In case of no reaction support, message out of reactions context or any other error
|
||||
+ `404 Not Found` When the conversation or message to react could not be found for the participant
|
||||
|
||||
- Data:
|
||||
Array with data of reactions:
|
||||
|
||||
| field | type | Description |
|
||||
|--------------------|--------|----------------------------------------|
|
||||
| `actorType` | string | `guests` or `users` |
|
||||
| `actorId` | string | Actor id of the reacting participant |
|
||||
| `actorDisplayName` | string | Display name of the reaction author |
|
||||
| `timestamp` | int | Timestamp in seconds and UTC time zone |
|
||||
@@ -0,0 +1,197 @@
|
||||
# Call recording API
|
||||
|
||||
* API v1: Base endpoint `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 26
|
||||
|
||||
## Start call recording
|
||||
|
||||
* Required capability: `recording-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/recording/{token}`
|
||||
* Data:
|
||||
|
||||
| Field | Type | Description |
|
||||
| ------ | ---- | ---------------------------------------------------------------------------------------------------- |
|
||||
| status | int | Type of call recording (see [Constants - Call recording status](constants.md#call-recording-status)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Message: `status`. When the status to start is invalid.
|
||||
+ `400 Bad Request` Message: `config`. Need to enable the config `recording`.
|
||||
+ `400 Bad Request` Message: `recording`. Already have a recording in progress.
|
||||
+ `400 Bad Request` Message: `call`. Call is not activated.
|
||||
+ `401 Unauthorized` When the participant is a guest.
|
||||
+ `403 Forbidden` When the user is not a moderator/owner.
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator.
|
||||
|
||||
## Stop call recording
|
||||
|
||||
* Required capability: `recording-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/recording/{token}`
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Message: `config`. Need to enable the config `recording`.
|
||||
+ `400 Bad Request` Message: `call`. Call is not activated.
|
||||
+ `401 Unauthorized` When the participant is a guest.
|
||||
+ `403 Forbidden` When the user is not a moderator/owner.
|
||||
+ `412 Precondition Failed` When the lobby is active and the user is not a moderator.
|
||||
|
||||
## Store call recording
|
||||
|
||||
* Required capability: `recording-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/recording/{token}/store`
|
||||
|
||||
* Header:
|
||||
|
||||
| field | type | Description |
|
||||
| ------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `TALK_RECORDING_RANDOM` | string | Random string that needs to be concatenated with room token to generate the checksum using the `recording_servers['secret']`. |
|
||||
| `TALK_RECORDING_CHECKSUM` | string | The checksum generated with `TALK_RECORDING_RANDOM`. |
|
||||
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
| ------- | ------ | --------------------------------------------------------- |
|
||||
| `file` | string | File with the recording in a multipart/form-data request. |
|
||||
| `owner` | string | The person that started the recording. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error: `invalid_file`: File in block list or invalid
|
||||
+ `400 Bad Request` Error: `empty_file`: Invalid file extension
|
||||
+ `400 Bad Request` Error: `file_mimetype`: Invalid mimetype
|
||||
+ `400 Bad Request` Error: `file_name`. :nvalid file name
|
||||
+ `400 Bad Request` Error: `file_extension`: Invalid file extension
|
||||
+ `400 Bad Request` Error: `owner_participant`: Owner is not to be a participant of room
|
||||
+ `400 Bad Request` Error: `owner_invalid`: Owner invalid
|
||||
+ `400 Bad Request` Error: `owner_permission`: Owner have not permission to store record file
|
||||
+ `401 Unauthorized` When the validation as recording server failed
|
||||
+ `404 Not Found` Room not found
|
||||
+ `429 Too Many Request` Brute force protection
|
||||
|
||||
## Dismiss store call recording notification
|
||||
|
||||
* Required capability: `recording-v1`
|
||||
* Method: `DELETE`
|
||||
* Endpoint: `/recording/{token}/notification`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
| ----------- | ------ | --------------------------------------------------------------------- |
|
||||
| `timestamp` | string | Timestamp in seconds and UTC time zone that notification was created. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `403 Forbidden` When the user is not a moderator/owner.
|
||||
+ `404 Not Found` Room not found
|
||||
|
||||
## Share store call recording
|
||||
|
||||
* Required capability: `recording-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/recording/{token}/share-chat`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
| ----------- | ------- | --------------------------------------------------------------------- |
|
||||
| `timestamp` | string | Timestamp in seconds and UTC time zone that notification was created. |
|
||||
| `fileId` | integer | File id of recording to share at the room. |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` Error: `file`: Shared file is invalid
|
||||
+ `400 Bad Request` Error: `system`: Internal system error
|
||||
+ `403 Forbidden` When the user is not a moderator/owne
|
||||
+ `404 Not Found` Room not found
|
||||
|
||||
## Recording server requests
|
||||
|
||||
* Required capability: `recording-v1`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/recording/backend`
|
||||
|
||||
* Header:
|
||||
|
||||
| field | type | Description |
|
||||
| ------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `TALK_RECORDING_RANDOM` | string | Random string that needs to be concatenated with request body to generate the checksum using the secret configured for the backend. |
|
||||
| `TALK_RECORDING_CHECKSUM` | string | The checksum generated with `TALK_RECORDING_RANDOM`. |
|
||||
|
||||
* Data:
|
||||
|
||||
- Body as a JSON encoded string; format depends on the request type, see below.
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request`: When the body data does not match the expected format.
|
||||
+ `403 Forbidden`: When the request validation failed.
|
||||
|
||||
### Started call recording
|
||||
|
||||
* Data format:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "started",
|
||||
"started": {
|
||||
"token": "the-token-of-the-room",
|
||||
"status": "the-type-of-recording (see [Constants - Call recording status](constants.md#call-recording-status))",
|
||||
"actor": {
|
||||
"type": "the-type-of-the-actor",
|
||||
"id": "the-id-of-the-actor",
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
* Response:
|
||||
- (Additional) Status code:
|
||||
+ `404 Not Found`: When the room is not found.
|
||||
|
||||
### Stopped call recording
|
||||
|
||||
* Data format:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "stopped",
|
||||
"stopped": {
|
||||
"token": "the-token-of-the-room",
|
||||
"actor": {
|
||||
"type": "the-type-of-the-actor",
|
||||
"id": "the-id-of-the-actor",
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
- `actor` is optional
|
||||
|
||||
* Response:
|
||||
- (Additional) Status code:
|
||||
+ `404 Not Found`: When the room is not found.
|
||||
|
||||
### Failed call recording
|
||||
|
||||
* Data format:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "failed",
|
||||
"failed": {
|
||||
"token": "the-token-of-the-room",
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
* Response:
|
||||
- (Additional) Status code:
|
||||
+ `404 Not Found`: When the room is not found.
|
||||
@@ -0,0 +1,71 @@
|
||||
# Sample conversations
|
||||
|
||||
In Hub 10 (Nextcloud 31) we introduced new sample conversations to better showcase various features of Nextcloud Talk. The default sample conversations are translated just like Nextcloud itself is, so it should be shown to the user in a language they understand.
|
||||
|
||||
## Custom samples
|
||||
|
||||
It is also possible to replace the sample conversations. For this you need to configure the `samples_directory` app config of the spreed app to point to a directory.
|
||||
```shell
|
||||
sudo -u www-data php /var/www/nextcloud/occ \
|
||||
config:app:set \
|
||||
spreed samples_directory \
|
||||
--value '/this/is/the/configured/path'
|
||||
```
|
||||
|
||||
In the directory you put a subdirectory of each language that you want to support. A directory structure looks like the following:
|
||||
|
||||
```
|
||||
/this/is/the/configured/path
|
||||
├─ de/
|
||||
├─ en/
|
||||
├─ es/
|
||||
└─ fr/
|
||||
```
|
||||
The chosen language is picked from the user language, falling back to the `default_language` and can be overwritten with the `force_language` system config. It's also falling back from languages like `de_DE` to `de` if the first one is picked but does not exist.
|
||||
|
||||
In each of the languages you can have a unique set of sample Markdown files.
|
||||
|
||||
### Conversation information
|
||||
|
||||
The first section of the Markdown files must contain the following information, prefixed with the matching keyword:
|
||||
|
||||
```
|
||||
NAME: Let's get started!
|
||||
EMOJI: 💡
|
||||
COLOR: #0082c9
|
||||
---
|
||||
```
|
||||
|
||||
End this segment with 3 dashes `---`.
|
||||
|
||||
Optionally you can have a description in the second section, indicated by the `DESCRIPTION:` marker as a beginning and ending again with `---`:
|
||||
|
||||
```markdown
|
||||
DESCRIPTION:
|
||||
|
||||
This is a *sample* description! Including **Markdown** support.
|
||||
|
||||
---
|
||||
```
|
||||
|
||||
Please note that descriptions are currently limited to 2.000 characters.
|
||||
|
||||
### Messages
|
||||
|
||||
Afterwards you can have unlimited amount of messages, each separated by `---`. Messages support markdown and mentions.
|
||||
|
||||
Additionally, the following additional features can be used:
|
||||
|
||||
- Reply: `{REPLY}` (at the start of the message) The message will be posted as a reply to the previous message
|
||||
- Reactions: `{REACTION:👍}` (anywhere in the message) will be removed and a reaction with the given emoji will be down by the system
|
||||
- File link: `{FILE:Readme.md}` (anywhere in the message) will be removed from the message and a link to the specified file inside the user's Files app root will be posted
|
||||
|
||||
## Disable samples
|
||||
|
||||
If you don't like the samples we provide, and you don't want to write your own samples, you can also disable them by setting the `create_samples` app config of the spreed app to false:
|
||||
```shell
|
||||
sudo -u www-data php /var/www/nextcloud/occ \
|
||||
config:app:set \
|
||||
spreed create_samples \
|
||||
--value false --type boolean
|
||||
```
|
||||
@@ -0,0 +1,72 @@
|
||||
NAME: Let's get started!
|
||||
EMOJI: 💡
|
||||
COLOR: #0082c9
|
||||
---
|
||||
{DESCRIPTION}
|
||||
|
||||
**Nextcloud Talk** is a secure, self-hosted communication platform that integrates seamlessly with the Nextcloud ecosystem.
|
||||
|
||||
#### Key Features of Nextcloud Talk:
|
||||
|
||||
* Chat and messaging in private and group chats
|
||||
* Voice and video calls
|
||||
* File sharing and integration with other Nextcloud apps
|
||||
* Customizable conversation settings, moderation and privacy controls
|
||||
* Web, desktop and mobile (iOS and Android)
|
||||
* Private & secure communication
|
||||
|
||||
Find out more in the [user documentation](https://docs.nextcloud.com/server/latest/user_manual/en/talk/index.html).
|
||||
|
||||
---
|
||||
|
||||
# Welcome to Nextcloud Talk
|
||||
|
||||
Nextcloud Talk is a private and powerful messaging app that integrates with Nextcloud. Chat in private or group conversations, collaborate over voice and video calls, organize webinars and events, customize your conversations and more.
|
||||
|
||||
---
|
||||
|
||||
## 🎨 Format texts to create rich messages
|
||||
|
||||
In Nextcloud Talk, you can use Markdown syntax to format your messages. For example, apply **bold** or *italic* formatting, or `highlight texts as code`. You can even create tables and add headings to your text.
|
||||
|
||||
Need to fix a typo or change formatting? Edit your message by clicking "Edit message" in the message menu.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Add attachments and links
|
||||
|
||||
Attach files from your Nextcloud Hub using the "+" button. Share items from Files and various Nextcloud apps. Some apps even support interactive widgets, for example, the Text app.
|
||||
|
||||
{FILE:Readme.md}
|
||||
|
||||
---
|
||||
|
||||
## 💭 Let the conversations flow: mention users, react to messages and more
|
||||
|
||||
You can mention everybody in the conversation @all or mention specific participants by typing "@" and picking their name from the list.
|
||||
|
||||
{REACTION:😍}
|
||||
{REACTION:👍}
|
||||
|
||||
---
|
||||
|
||||
{REPLY}
|
||||
You can reply to messages, forward them to other chats and people, or copy message content.
|
||||
|
||||
---
|
||||
|
||||
## ✨ Do more with Smart Picker
|
||||
|
||||
Simply type "/" or go to the "+" menu to open the Smart Picker where you can attach various content to your messages. You can configure the Smart Picker to be able to add items from Nextcloud apps, GIFs, map locations, AI generated content and much more.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Manage conversation settings
|
||||
|
||||
In the conversation menu, you can access various settings to manage your conversations, such as:
|
||||
* Edit conversation info
|
||||
* Manage notifications
|
||||
* Apply numerous moderation rules
|
||||
* Configure access and security
|
||||
* Enable bots
|
||||
* and more!
|
||||
@@ -0,0 +1,40 @@
|
||||
# Scalability
|
||||
|
||||
Talk works peer to peer, that is, each participant sends an end-to-end encrypted stream to every other participant and receives one stream per other participant. Bandwidth usage grows with the number of participants.
|
||||
|
||||
A single video stream currently uses about 1 Mbit/sec and the total required bandwidth can be calculated as follows:
|
||||
|
||||
```
|
||||
1 Mbit/s * (participants - 1)
|
||||
```
|
||||
|
||||

|
||||
|
||||
This means that in a call with 5 participants, each has to send and receive about 4 Mbit/sec. Given the asymmetric nature of most typical broadband connections, it's sending video that quickly becomes the bottleneck. Moreover, decoding all those video streams puts a big strain on the system of each participant.
|
||||
|
||||
To limit and CPU bandwidth usage, participants can disable video. This will drop the bandwidth use to audio only, about 50 kbit/sec (about 1/20th of the bandwidth of video), eliminating most decoding work. When all participants are on a fast network, a call with 20 people without video could be doable.
|
||||
|
||||
Still a call creates a load on the participants' browsers (decoding streams) and on the server as it handles signaling. This, for example, also has consequences for devices that support calls. Mobile device browsers will sooner run out of compute capacity and cause issues to the call. While we continuously work to optimize Talk for performance, there is still work to be done so it is not unlikely that the bottleneck will be there for the time being. We very much welcome help in optimization of calls!
|
||||
|
||||
### How to have the maximum number of participants in a call
|
||||
|
||||
To make sure a call can sustain the largest number of participants, make sure that:
|
||||
|
||||
* each participant has a fast upload and download.
|
||||
* each participant has a fast enough system. This means:
|
||||
|
||||
- on a desktop/laptop system, a browser like Firefox or Chrome should be used. The WebRTC implementation in other browsers is often sub-par. On a laptop, the power cord should be plugged in - this often results in better CPU performance.
|
||||
- on mobile devices, the Android/iOS apps should be used because mobile browsers will run out of computing power quickly.
|
||||
|
||||
* all participant disables their video streams.
|
||||
|
||||
|
||||
With this setup, 20 users should be possible in a typical setup.
|
||||
|
||||
### Scaling beyond 5-20 users in a call
|
||||
|
||||
Nextcloud offers a partner product, the Talk High Performance Back-end, which deals with this scalability issue by including a Selective Forwarding Unit (SFU). Each participant sends one stream to the SFU which distributes it under the participants. This typically scales to 30-50 or even more active participants. Furthermore, the HPB setup also allows calls with hundreds of passive participants. With this number of participants is only limited by the bandwidth of the SFU setup. This is ideal for one-to-many streaming like webinars or remote teaching lessons.
|
||||
|
||||
The HPB also takes care of signaling, decreasing the load of many calls on the Talk server and optional SIP integration so users can dial in to calls by phone.
|
||||
|
||||
If you need to use Talk in an enterprise environment, [contact our sales team](https://nextcloud.com/enterprise/buy/) for access to the Talk High Performance Back-end. See our website for more details and [pricing](https://nextcloud.com/talk/#scalability).
|
||||
|
After Width: | Height: | Size: 383 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 858 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 686 KiB |
|
After Width: | Height: | Size: 568 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 70 KiB |
@@ -0,0 +1,146 @@
|
||||
# Settings API
|
||||
|
||||
* Base endpoint: `/ocs/v2.php/apps/spreed/api/v1`: since Nextcloud 19
|
||||
|
||||
## Set user´s settings
|
||||
|
||||
* Method: `POST`
|
||||
* Endpoint: `/settings/user`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------------|------------------------|
|
||||
| `key` | string | The user config to set |
|
||||
| `value` | string/int | The value to set |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK` When the value was updated
|
||||
+ `400 Bad Request` When the key or value was invalid
|
||||
+ `401 Unauthorized` When the user is not logged in
|
||||
|
||||
## User settings
|
||||
|
||||
**Note:** Settings from `calls_start_without_media` onwards can not be set via above API.
|
||||
Instead, the server API `POST /ocs/v2.php/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}` needs to be used.
|
||||
|
||||
| Key | Capability | Default | Valid values |
|
||||
|-----------------------------|---------------------------------------------|----------------------------------------------------|----------------------------------------------------------------------------------------------------------|
|
||||
| `attachment_folder` | `config => attachments => folder` | Value of app config `default_attachment_folder` | Path owned by the user to store uploads and received shares. It is created if it does not exist. |
|
||||
| `read_status_privacy` | `config => chat => read-privacy` | `0` | One of the read-status constants from the [constants list](constants.md#participant-read-status-privacy) |
|
||||
| `typing_privacy` | `config => chat => typing-privacy` | `0` | One of the typing privacy constants from the [constants list](constants.md#participant-typing-privacy) |
|
||||
| `play_sounds` | | `'yes'` | `'yes'` and `'no'` |
|
||||
| `calls_start_without_media` | `config => call => start-without-media` | `''` falling back to app config with the same name | `'yes'` and `'no'` |
|
||||
| `blur_virtual_background` | `config => call => blur-virtual-background` | `'no'` | `'yes'` and `'no'` |
|
||||
| `conversations_list_style` | `config => conversations => list-style` | `'two-lines'` | One of the constants from the [constants list](constants.md#conversation-list-style) |
|
||||
|
||||
## Set SIP settings
|
||||
|
||||
* Required capability: `sip-support`
|
||||
* Method: `POST`
|
||||
* Endpoint: `/settings/sip`
|
||||
* Data:
|
||||
|
||||
All values must be sent in the same request
|
||||
|
||||
| field | type | Description |
|
||||
|----------------|--------|-------------------------------------------------------------------|
|
||||
| `sipGroups` | array | List of group ids that are allow to enable SIP for a conversation |
|
||||
| `dialInInfo` | string | The dial-in information shown in the sidebar and sent in emails |
|
||||
| `sharedSecret` | string | The shared secret of the SIP component |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `403 Forbidden` When the user is not an admin
|
||||
|
||||
## App configuration
|
||||
|
||||
**Note:** All app configs are stored as `string` in the `oc_appconfig` database table. Arrays and objects are therefor JSON encoded, integers are casted to string and booleans are replaced with `0/1` or `no/yes` strings.
|
||||
|
||||
When available the dedicated UI or OCC command option should be used to configure the setting rather than directly manipulating the database.
|
||||
|
||||
Legend:
|
||||
|
||||
* `Hash` - Whether the changing the config changes the Talk version hash triggering clients to refresh capabilities
|
||||
* 🖌️ - UI option in the admin settings available
|
||||
* 💻 - Dedicated OCC command available
|
||||
|
||||
| Key | Internal type | Default | Hash | Option | Valid values |
|
||||
|--------------------------------------|------------------------------------------------------------------|------------|------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `allowed_groups` | string[] | `[]` | Yes | 🖌️ | List of group ids that are allowed to use Talk |
|
||||
| `sip_bridge_groups` | string[] | `[]` | Yes | 🖌️ | List of group ids that are allowed to enable SIP dial-in in a conversation |
|
||||
| `start_conversations` | string[] | `[]` | Yes | 🖌️ | List of group ids that are allowed to create conversations |
|
||||
| `federation_allowed_groups` | string[] | `[]` | Yes | 🖌️ | 🏗️ *Work in progress:* List of group ids that are allowed to invite federated users into their conversations (everyone when empty) |
|
||||
| `hosted-signaling-server-account` | array | `{}` | No | 🖌️ | Account information of the hosted signaling server |
|
||||
| `stun_servers` | array[] | `[]` | Yes | 🖌💻️ | List of STUN servers, should be configured via the web interface or the OCC commands |
|
||||
| `turn_servers` | array[] | `[]` | Yes | 🖌️💻 | List of TURN servers, should be configured via the web interface or the OCC commands |
|
||||
| `recording_servers` | array[] | `[]` | Yes | 🖌️ | List of recording servers, should be configured via the web interface |
|
||||
| `signaling_servers` | array[] | `[]` | Yes | 🖌️💻 | List of signaling servers, should be configured via the web interface or the OCC commands |
|
||||
| `signaling_mode` | string<br>`internal` or `external` or `conversation_cluster` | `internal` | Yes | | `internal` when no HPB is configured, `external` when configured, `conversation_cluster` is an experimental flag that is deprecated |
|
||||
| `sip_bridge_dialin_info` | string | | Yes | 🖌️ | Additional information added in the SIP dial-in invitation mail and sidebar |
|
||||
| `sip_bridge_dialout_anonymous` | bool | false | No | | When set to true, all out-going SIP calls will be anonymous calls (CLIR) |
|
||||
| `sip_bridge_dialout_number` | string | | No | | Fallback phone number that is used as caller for out-going calls when the user has no phone-number configured (has to be E164 `+49123456789` formatted) |
|
||||
| `sip_bridge_dialout_prefix` | string | `+` | No | | Prefix that is added before the first configured phone-number of a user to make it a valid E164 number to be used as a caller for out-going calls |
|
||||
| `sip_bridge_shared_secret` | string | | Yes | 🖌️ | Shared secret allowing the SIP bridge to authenticate on the Nextcloud server |
|
||||
| `signaling_ticket_secret` | string | | Yes | | Secret used to secure the signaling tickets for guests (255 character random string) |
|
||||
| `signaling_token_alg` | string<br>`ES256`, `ES384`, `RS256`, `RS384`, `RS512` or `EdDSA` | `ES256` | Yes | | Algorithm for the signaling tickets |
|
||||
| `signaling_token_privkey_*` | string | * | Yes | | Private key for the signaling ticket creation by the server |
|
||||
| `signaling_token_pubkey_*` | string | * | Yes | | Public key for the signaling ticket creation by the server |
|
||||
| `hosted-signaling-server-nonce` | string | | No | | Temporary nonce while configuring the hosted signaling server |
|
||||
| `hosted-signaling-server-account-id` | string | | No | | Account identifier of the hosted signaling server |
|
||||
| `matterbridge_binary` | string | | No | | Path to the matterbridge binary file |
|
||||
| `bridge_bot_password` | string | | No | | Automatically generated password of the matterbridge bot user profile |
|
||||
| `default_attachment_folder` | string | `/Talk` | No | | Specify default attachment folder location |
|
||||
| `samples_directory` | string | | No | | Specify a readable directory that contains other sample conversation data |
|
||||
| `start_calls` | int | `0` | Yes | 🖌️ | Who can start a call, see [constants list](constants.md#start-call) |
|
||||
| `max_call_duration` | int | `0` | No | | Maximum duration of a call in seconds, 0 for unlimited. Federated calls will be terminated based on the setting of the host server. Calls are ended via a background job, so system cron should be used and calls will last a bit longer (until the next execution of the cron). |
|
||||
| `max-gif-size` | int | `3145728` | No | | Maximum file size for clients to render gifs previews with animation |
|
||||
| `session-ping-limit` | int | `200` | No | | Number of sessions the HPB can ping in a single request |
|
||||
| `token_entropy` | int | `8` | No | | Length of conversation tokens, can be increased to make tokens harder to guess but reduces readability and dial-in comfort |
|
||||
| `default_group_notification` | int | `2` | No | 🖌️ | Default notification level for group conversations [constants list](constants.md#participant-notification-levels) |
|
||||
| `default_permissions` | int | `246` | Yes | | Default permissions for non-moderators (see [constants list](constants.md#attendee-permissions) for bit flags) |
|
||||
| `recording_consent` | int | `0` | Yes | 🖌️ | Whether users have to agree on being recorded before they can join the call (see [constants](constants.md#recording-consent-required)) |
|
||||
| `grid_videos_limit` | int | `19` | No | | Maximum number of videos to show (additional to the own video) |
|
||||
| `sip_dialin_default` | int | `0` | No | | Default value of SIP dial-in when creating new conversations |
|
||||
| `retention_event_rooms` | int | `28` | No | | Retention period of event conversations in days (`0` means no-retention) |
|
||||
| `retention_phone_rooms` | int | `7` | No | | Retention period of phone dial-in and dial-out conversations in days (`0` means no-retention) |
|
||||
| `retention_instant_meetings` | int | `1` | No | | Retention period of instant meetings in days (`0` means no-retention) |
|
||||
| `experiments_users` | int | `0` | Yes | | Bit flag of experiments that should be enabled for logged-in users on this server (see [Experiments](#experiments) below) |
|
||||
| `experiments_guests` | int | `0` | Yes | | Bit flag of experiments that should be enabled for guests on this server (see [Experiments](#experiments) below) |
|
||||
| `summary_threshold` | int | `100` | No | | Amount of unread messages a user needs before they see the option to summarize with AI |
|
||||
| `grid_videos_limit_enforced` | string<br>`yes` or `no` | `no` | No | | Whether the number of grid videos should be enforced |
|
||||
| `changelog` | string<br>`yes` or `no` | `yes` | No | | Whether the changelog conversation is updated with new features on major releases |
|
||||
| `hide_signaling_warning` | string<br>`yes` or `no` | `no` | No | 🖌️ | Flag that allows to suppress the warning that an HPB should be configured |
|
||||
| `calls_start_without_media` | string<br>`yes` or `no` | `no` | Yes | | Whether participants start with enabled or disabled audio and video by default |
|
||||
| `breakout_rooms` | string<br>`yes` or `no` | `yes` | Yes | | Whether or not breakout rooms are allowed (Will only prevent creating new breakout rooms. Existing conversations are not modified.) |
|
||||
| `call_recording` | string<br>`yes` or `no` | `yes` | Yes | | Enable call recording |
|
||||
| `call_recording_summary` | string<br>`yes` or `no` | `yes` | No | 🖌️ | Whether call recordings should automatically be summarized when a transcription and summary provider is enabled. |
|
||||
| `call_recording_transcription` | string<br>`yes` or `no` | `no` | No | | Whether call recordings should automatically be transcribed when a transcription provider is enabled. |
|
||||
| `sip_dialout` | string<br>`yes` or `no` | `no` | Yes | | SIP dial-out is allowed when a SIP bridge is configured |
|
||||
| `federation_enabled` | string<br>`yes` or `no` | `no` | Yes | | 🏗️ *Work in progress:* Whether or not federation with this instance is allowed |
|
||||
| `federation_incoming_enabled` | string<br>`1` or `0` | `1` | Yes | | 🏗️ *Work in progress:* Whether users of this instance can be invited to federated conversations |
|
||||
| `federation_outgoing_enabled` | string<br>`1` or `0` | `1` | Yes | | 🏗️ *Work in progress:* Whether users of this instance can invite federated users into conversations |
|
||||
| `federation_only_trusted_servers` | string<br>`1` or `0` | `0` | Yes | | 🏗️ *Work in progress:* Whether federation should be limited to the list of "Trusted servers" |
|
||||
| `conversations_files` | string<br>`1` or `0` | `1` | No | 🖌️ | Whether the files app integration is enabled allowing to start conversations in the right sidebar |
|
||||
| `conversations_files_public_shares` | string<br>`1` or `0` | `1` | No | 🖌️ | Whether the public share integration is enabled allowing to start conversations in the right sidebar on the public share page (Requires `conversations_files` also to be enabled) |
|
||||
| `delete_one_to_one_conversations` | string<br>`1` or `0` | `0` | No | ️ | Whether one-to-one conversations can be left by either participant or should be deleted when one participant leaves |
|
||||
| `enable_matterbridge` | string<br>`1` or `0` | `0` | No | 🖌️ | Whether the Matterbridge integration is enabled and can be configured |
|
||||
| `force_passwords` | string<br>`1` or `0` | `0` | No | ️ | Whether public chats are forced to use a password |
|
||||
| `create_samples` | string<br>`1` or `0` | `1` | No | ️ | Create sample conversations (the content can be overwritten by providing files in a provided `samples_directory` app config) |
|
||||
| `call_end_to_end_encryption` | string<br>`1` or `0` | `0` | No | 🖌️ | Whether clients should end-to-end encrypt streams in calls (Only supported with High-performance backend) |
|
||||
| `inactivity_lock_after_days` | int | `0` | No | | A duration (in days) after which rooms are locked. Calculated from the last activity in the room. |
|
||||
| `inactivity_enable_lobby` | string<br>`1` or `0` | `0` | No | | Additionally enable the lobby for inactive rooms so they can only be read by moderators. |
|
||||
| `backgrounds_branded_for_guests` | string<br>`1` or `0` | `0` | No | | Whether guests are allowed to use the virtual backgrounds provided via `themes/talk-backgrounds/` |
|
||||
| `backgrounds_default_for_users` | string<br>`1` or `0` | `1` | No | | Whether users are allowed to use the default virtual backgrounds provided by the releases |
|
||||
| `backgrounds_upload_users` | string<br>`1` or `0` | `1` | No | | Whether users are allowed to upload custom virtual backgrounds and choose from their Nextcloud Files |
|
||||
| `guests_play_sounds` | string<br>`1` or `0` | `1` | No | | Whether guests hear the join and leave sounds by default |
|
||||
|
||||
## Experiments
|
||||
|
||||
Features that can be toggled on-off with the `experiments_users` and `experiments_guests` bit flags:
|
||||
|
||||
| Bit | Status | Introduced | Ended | Description |
|
||||
|-----|--------|----------------------------------|-------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| 1 | Active | Web 21.1.0<br>Desktop 1.2.2-beta | - | Instead of refreshing the participant list repeatingly during calls, the data is generated from received signaling messages |
|
||||
| 2 | Active | Web 21.1.0<br>Desktop 1.2.2 | - | Make automatic attempts to recover suspended / expired signaling session to allow join the call without page reload |
|
||||
| 4 | Active | Web 22.0.3<br>Desktop 2.0.4 | - | Send chat messages via the High performance-backend / websocket |
|
||||
@@ -0,0 +1,39 @@
|
||||
# Server
|
||||
|
||||
Nextcloud Talk will significantly increase load on your server, depending on the number of concurrent active participants - no matter whether they use audio call, video call or just the chat. This is due to required signalling and message pulling. By default Talk will use its integrated signalling server, which works just fine for small and medium installations. If you're running Talk on a dedicated or decent virtual server, you shouldn't experience any problems. However, if you're running Talk on a shared webhoster, you might indeed experience issues. Also note that many shared webhosters particularly prohibit running chat server software like Nextcloud Talk; please make sure to check your provider's Terms & Conditions. In this case you might be required to upgrade your package.
|
||||
|
||||
Additional to normal Nextcloud requirements the following constraints apply to use Nextcloud Talk:
|
||||
|
||||
## HTTPS
|
||||
|
||||
HTTPS is required to be able to use WebRTC (the video call technology of browsers used by Nextcloud Talk calls).
|
||||
|
||||
## Database
|
||||
|
||||
* SQLite: must not be used, to grant a decent experience for chats and calls
|
||||
* MySQL/Maria DB: Must enable utf8mb4 support as per documentation at [Enabling MySQL 4-byte support](https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/mysql_4byte_support.html)
|
||||
|
||||
## Webserver
|
||||
|
||||
Apache and Nginx must use:
|
||||
|
||||
* PHP FPM + mpm_events or
|
||||
* PHP + mpm_prefork
|
||||
|
||||
Other combinations will not work due to the long polling used for chat and signaling messages, see [this issue](https://github.com/nextcloud/spreed/issues/2211#issuecomment-610198026) for details.
|
||||
|
||||
### WebAssembly and TensorFlow Lite files
|
||||
|
||||
Since Talk 13 the web server needs to handle WebAssembly (.wasm) and TensorFlow Lite (.tflite) files in a similar way to JavaScript and CSS files, as they will be requested by Talk clients to provide certain features (for example, the background blur when Talk is running in a browser). If Apache is used the default configuration provided by the Nextcloud server should be enough; if NGINX is used please refer to the [_NGINX configuration_ section in Nextcloud Administration manual](https://docs.nextcloud.com/server/stable/admin_manual/installation/nginx.html).
|
||||
|
||||
Besides that the web server should associate _.wasm_ files with the right MIME type. This is not strictly needed, though, but if they are not the browser console may show a warning similar to:
|
||||
```
|
||||
wasm streaming compile failed: TypeError: WebAssembly: Response has unsupported MIME type '' expected 'application/wasm'
|
||||
falling back to ArrayBuffer instantiation
|
||||
```
|
||||
|
||||
In Apache, if _mod_mime_ and _.htaccess_ files are enabled, the default _.htaccess_ file in Nextcloud server associates the _application/wasm_ MIME type with _.wasm_ files. Alternatively the association can be done by adding `AddType application/wasm .wasm` in _/etc/apache2/mods-enabled/mime.conf_, or `application/wasm wasm` to _/etc/mime.types_. Similarly, the default configuration for NGINX does the association too, but alternatively it can be done by adding `application/wasm wasm;` to _/etc/nginx/mime.types_.
|
||||
|
||||
## TURN server
|
||||
|
||||
A TURN server running on **port 443** (or 80) is required in almost all scenarios, see [Configuring coTURN](TURN.md) for more details.
|
||||
@@ -0,0 +1,28 @@
|
||||
# User system requirements
|
||||
|
||||
## Browsers
|
||||
|
||||
### Recommended
|
||||
|
||||
* Firefox: latest
|
||||
* Chrome / Chromium: latest
|
||||
|
||||
### Supported
|
||||
|
||||
* Brave: latest
|
||||
* Chrome / Chromium: 49 or later
|
||||
- Screensharing requires version 72 or later or this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)
|
||||
* Edge: latest
|
||||
- Speakers are not promoted
|
||||
- Name changes while a call is ongoing are not reflected
|
||||
* Firefox / Firefox ESR: 52 or later
|
||||
- Screensharing requires Firefox 66 or later
|
||||
* Opera: 72 or later
|
||||
* Safari: 13 or later
|
||||
- Safari does not support virtual backgrounds and background blurring
|
||||
- Safari 12 also works in general, but users can not share their own screen
|
||||
|
||||
## Mobile apps
|
||||
|
||||
* Android: 8 or later
|
||||
* iOS: 15 or later
|
||||
|
After Width: | Height: | Size: 290 KiB |
@@ -0,0 +1,2 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
@@ -0,0 +1,59 @@
|
||||
# Webinar management
|
||||
|
||||
Group and public conversations can be used to host webinars. Those online meetings can have a lobby, which come with the following restrictions:
|
||||
|
||||
* Only moderators can start/join a call
|
||||
* Only moderators can read and write chat messages
|
||||
* Normal users can only join the room. They then pull the room endpoint regularly for an update and should start the chat and signaling as well as allowing to join the call, once the lobby got disabled.
|
||||
|
||||
## Base endpoint
|
||||
|
||||
* API v1: 🏁 Removed with API v4: Nextcloud 17 - 21
|
||||
* API v2: 🏁 Removed with API v4: Nextcloud 19 - 21
|
||||
* API v3: 🏁 Removed with API v4: Nextcloud 21 only
|
||||
* API v4: Base endpoint `/ocs/v2.php/apps/spreed/api/v4`: since Nextcloud 22
|
||||
|
||||
## Set lobby for a conversation
|
||||
|
||||
* Required capability: `webinary-lobby`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/webinar/lobby`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|----------|------------------------------------------------------------------------------------------|
|
||||
| `state` | int | New state for the conversation (see [constants list](constants.md#webinar-lobby-states)) |
|
||||
| `timer` | int/null | Timestamp when the lobby state is reset to no lobby |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the conversation type does not support lobby (only group and public conversation atm)
|
||||
+ `400 Bad Request` When the given timestamp is invalid
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
|
||||
- Data: See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations)
|
||||
|
||||
## Enabled or disable SIP dial-in
|
||||
|
||||
* Required capability: `sip-support`
|
||||
* Method: `PUT`
|
||||
* Endpoint: `/room/{token}/webinar/sip`
|
||||
* Data:
|
||||
|
||||
| field | type | Description |
|
||||
|---------|------|----------------------------------------------------------------|
|
||||
| `state` | int | New SIP state for the conversation (see [constants list](constants.md#sip-states)) |
|
||||
|
||||
* Response:
|
||||
- Status code:
|
||||
+ `200 OK`
|
||||
+ `400 Bad Request` When the state was invalid or the same
|
||||
+ `400 Bad Request` When the conversation is a breakout room
|
||||
+ `401 Unauthorized` When the user can not enabled SIP
|
||||
+ `403 Forbidden` When the current user is not a moderator/owner
|
||||
+ `404 Not Found` When the conversation could not be found for the participant
|
||||
+ `412 Precondition Failed` When SIP is not configured on the server
|
||||
|
||||
- Data: See array definition in [Get user´s conversations](conversation.md#get-user-s-conversations)
|
||||