Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/spreed.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-18Fix remaining warningsmarco
Signed-off-by: marco <marcoambrosini@pm.me>
2022-05-17Require new HPB versionJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-05-17Handle "event.participants.update.all" in the webJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-20Update connections rather than create new ones on "negotiationneeded"Daniel Calviño Sánchez
When an offer is requested to the HPB the old connection is stopped and a new one is created. If the HPB has support for updating the subscribers this is now used instead when negotiation is needed, as this prevents the existing connection (and thus the media) to be interrupted during the renegotiation. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-04-06Merge pull request #7080 from ↵Joas Schilling
nextcloud/fix-forced-reconnections-when-the-hpb-is-not-used Fix forced reconnections when the HPB is not used
2022-04-01Fix not joining call again due to call flags in forced reconnectionsDaniel Calviño Sánchez
When the HPB is not used forcing a reconnection causes the call to be left and then joined again. Although it was waited for the call to be left first before joining again in some cases it could happen that, after sending the join request but before receiving its response, the "usersInRoom" event was received. In that case the call flags for the participant will be "disconnected" (as at this point it is actually disconnected), but as the join request was already sent it is seen as "a moderator ended the call", and thus the call is left again. To prevent that now it is explicitly waited for the "disconnected" flags to be received and, then, the call is joined again. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-03-31Fix joining call before leaving first in forced reconnectionsfix-forced-reconnections-when-the-hpb-is-not-usedDaniel Calviño Sánchez
When the HPB is not used forced reconnections just leave and then join the call again. However, it was not waited for the call to be left first before joining it again, so it could happen that the join request ended being processed first and thus once the leave request was processed the participant did not join again. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-03-24Replace deprecated String.prototype.substr()Tobias Speicher
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-01-13Don't update the participant list when only you joinedJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-01-13Remove left users from signaling list after a reconnectionDaniel Calviño Sánchez
The signaling object keeps a list of the known session IDS in the room which is updated when participants join or leave the room. However, the list was not updated when filtering the users that left in the meantime during a reconnection. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-12-15Don't reload the room list if only the participants changedJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-04Use hasFeature functionJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-03Show an error message to users with the HPB is incompatibleJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-03Leave call when participant was remotely disconnected from the callDaniel Calviño Sánchez
Currently whether the local user is in the call or not from the point of view of the Nextcloud server is mostly ignored; the UI is based only on whether the user explicitly joined or left the call. The reason is that after the user joined the response from a previous request to get the room information done when the user had not joined yet could be received, so honouring that could make the UI jump between "in the call" and "not in the call" (as it happened in older versions). However, in the WebRTC related code whether the local user is in the call or not is only based on the user events sent by the signaling server, so in that case the state is always up to date. Due to this, it is possible to detect whether the local user was kicked out from the call by a moderator (for example, because the call was ended for everyone) by comparing the local state ("localUserInCall", which is updated when locally joining and leaving a call) with the remote state provided by the signaling server. Note that there is no rollback of "localUserInCall" if the join or leave call request fails; the error is currently ignored by other parts of the code, so handling it here does not provide any benefit. An alternative approach would have been to ignore the "in call" state provided by the server while a "join call" request is on-going, so the local state and the server state would match except when the user was kicked out from the call. This would have required deeper changes, so even if it could be a better approach in the end for now the simpler (but less clean) approach was used. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-11-03Add button to end meeting for allVincent Petry
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-09-01Handle errors betterJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-08-31More doc fixesJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-08-23Fix event names to kebap-caseJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-08-23Fix license tagJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-08-23AutofixesJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-17Fix hasOwnPropertyMarco Ambrosini
Signed-off-by: Marco Ambrosini <marcoambrosini@pm.me>
2021-06-17Lint fixMarco Ambrosini
Signed-off-by: Marco Ambrosini <marcoambrosini@pm.me>
2021-06-07Fix call flags not updated when disabling or reenabling devicesDaniel Calviño Sánchez
When a media device is disabled during a call its track is replaced with a null track in the peers, and if a media device is reenabled the null track is replaced with the new track. In both cases neither a renegotiation nor a reconnection is needed. Therefore the call flags have to be explicitly updated. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-06-07Fix current call flags not respected in forced reconnections without HPBDaniel Calviño Sánchez
The current call flags were not given in forced reconnections with the internal signaling server, so the server used the default flags (audio and video). Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-05-19Remove previous versions for signaling endpointsDaniel Calviño Sánchez
The mobile apps will need to adjust to the new version (note that only the signaling settings endpoint actually changed), but they will not be compatible with Talk < 12 anyway due to the changes in the conversation endpoints. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-05-19Fix generateOcsUrl() callsJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-04-07Handle failed server responses more gracefullyJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-09Merge pull request #5194 from nextcloud/techdebt/noid/multi-sessionVincent Petry
👥 Multiple sessions 👥
2021-03-08No duplicate session warning per seJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-08Move to APIv4Joas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-03-05Add hint of issue in notification about error connecting to signalingDaniel Calviño Sánchez
Several errors in a row in the hello response usually point to a misconfigured signaling server that can not connect to the Nextcloud server. The error message now also takes into account the number of hello response errors in a row and hints at a possible misconfiguration. As this is a very specific issue the UI does not show any other detail regarding the received error, and the message is not reverted to the generic one if the websocket connection fails after the hello response failed; it is just a hint to make an admin look at the browser console or the signaling server logs. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-03-05Show error notification also when signaling hello message failsDaniel Calviño Sánchez
Until now an error notification was shown if the connection of the websocket to the external signaling server failed. However, if the websocket connection succeeded but then there was an error when actually connecting to the signaling server at an application level (the hello message response was an error) no error notification was shown in the UI. Now the error notification is also shown in that case, and it will not be removed (no matter if originally it happened due to an error in the websocket or in the connection) until the connection has succeeded. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2021-02-12Fix redirect when deleting current conversationVincent Petry
When the current conversation was deleted while in a call, or whenever someone has been removed from a room, the redirect now targets the not-found page instead of the one about duplicate session. Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2020-11-26Add constants for SIP flags and pass on the eventJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-10-12Use defined constantsJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-08-27Fix permanent timeoutJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-08-20Fix forced reconnections for guests when the HPB is usedDaniel Calviño Sánchez
When a reconnection is forced and the standalone signaling server is used the participant joins again the conversation to get a new session, and then the websocket to the standalone signaling server is closed, which causes the reconnection with the signaling server. However, when the participant is a guest and joins again the previous session gets a "disinvite" message, which causes the browser to be redirected to the main Talk page. Due to this, now the "disinvite" message will be ignored when a forced reconnection is started until the socket has reconnected. It seems that the "disinvite" message will always be delivered before the request to rejoin a conversation returns, so the flag could be disabled as soon as the request returned instead of when the socket is connected. However, disabling it once the socket has connected again is also logical and seems more future proof. In any case, as the "disinvite" message is ignored that means that if a participant is actually kicked out from the conversation while performing a forced reconnection the browser will not be aware of it and a wrong UI would be shown. However, the chance of that happening is quite low. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-07-01Handle the disinvite event properly when the session was kickedJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-07-01Redirect to a plain page to avoid reconnectionsJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-07-01Show session conflict warning when a session joins again for your own userJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-07-01Better handle 404 error as well as all other undefined scenariosJoas Schilling
404: now redirects to /not-found *: now retries after 10 seconds and shows an error and give up after 5 minutes recommending a reload Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-07-01Handle duplicated sessions more gracefully with the internal signalingJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-06-02Reduce console logging unless in debugJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-05-26Replace deprecated OC.redirect() with the correct way to redirectJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-05-26Fix "joinCall" of standalone signaling not returning a promiseDaniel Calviño Sánchez
"Signaling.Standalone.joinCall" should return a promise, like done for "Signaling.Base.joinCall". The standalone signaling object is able to defer joining a call if called before its room has been joined. However, it only takes into account the last room that a call was tried to be joined in. This is still the case now when the promise is returned; if "joinCall" is called on a different room while a previous was pending the previous one is just rejected (although if it is in the same room the previous promise is reused). Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-05-19Do not fetch all conversations when joining or leaving a callDaniel Calviño Sánchez
When the current user joins or leaves a call there is no need to fetch all the conversations, but just the current conversation and the participants. As when any user, including the current one, joins or leaves a call a room participants update event is sent by the external signaling server the current conversation and the participants are already gotten, so it is not needed to add an explicit handling for that. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-05-19Do not fetch all conversations on room participants update eventsDaniel Calviño Sánchez
The room participants update events are sent by the external signaling server: -When a user resumes the session -When an internal client joins or leaves the conversation -When the BackendNotifier sends a "participants" event (that is, when the type of a participant changes, when the name of a guest changes or when guests are cleaned) -When the BackendNotifier sends a "incall" event (that is, when a participant joins or leaves the call) In all those cases it is not really needed to fetch all the conversations to get the updated state, but only the current conversation. Note that it is not enough to fetch just the participants, as for example when a call is started that modifies some attributes in the conversation, like "hasCall". Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-05-12Replace "OC.generateUrl" with "generateUrl"Daniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-05-12Replace "OC.linkToOCS" with "generateOcsUrl"Daniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-05-12Refresh the session before closing the connectionJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>