Until now no scheme could be configured to connect to the TURN server
and "turn:" was used by default. The "turns:" scheme defines a
connection over TLS, which in some cases is needed by clients behind a
very restrictive firewall that only allows TLS connections. However,
encrypted TURN connections also require a certificate to be set in the
TURN server, which may not be always available. Moreover, encrypted TURN
connections also require a domain. Due to all this now it is possible to
set the TURN server scheme to "turn:", "turns:" or both, so the
administrator can set the best suiting one.
Already configured TURN servers that have no scheme configured yet
defaults to "turn:" to keep the same behaviour as before. New configured
TURN servers also default to "turn:", as "turns:" has some additional
requirements as explained above.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When adding multiple users at once, the users to add are now batched
before being sent to the ParticipantService, which will result in the
event only being called once with the whole list.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Adding a self-joined participant either directly or through a group or
circle will then convert said participant to a regular user participant.
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
When the internal signaling server is used the Nextcloud session id and
the signaling session id are the same. However, if the external
signaling server is used they are different.
Signaling messages for participants in calls (like joining the call,
muting and so on) are identified only by their signaling session id, so
when the external signaling server is used it was not possible to
associate participants in calls with the participant information
provided by the Nextcloud server.
However, when a participant joins a call her client notifies the
Nextcloud server (either directly or, in the case of SIP clients,
through the signaling server). The Nextcloud server then notifies the
signaling server which, in turn, notifies all the clients. When
Nextcloud notifies the signaling server the participant is identified
with the Nextcloud session id, and the signaling server then replaces
that with the signaling session id before relaying the message to the
clients.
Due to this when a participant joins (or leaves) a call now the
Nextcloud session id is sent too in an extra property. This property is
not adjusted by the external signaling server, so the clients receive
both the signaling session id and the Nextcloud session id and thus are
able to map them.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>