Граф коммитов

33 Коммитов

Автор SHA1 Сообщение Дата
Joas Schilling 16b90ecf3e
Also don't break on the API when the signaling server is down
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-04-07 11:15:11 +02:00
Daniel Calviño Sánchez c0c73d1e49 Send participant permissions to the external signaling server
In order to filter control messages the external signaling server needs
to know the permissions of each participant. Those permissions need to
be set when the participant joins the room or if the participant type is
changed.

All participants should have permissions to publish media and screen,
but only logged in moderators should have permission to send control
messages.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-03-06 14:53:24 +01:00
Daniel Calviño Sánchez 174bffd845 Fix participant type change with external signaling server
The external signaling server expects to receive a "participants"
message from the backend notifier when the participants in a room
change. This message is in turn sent as a participants update signaling
message to the clients, and the WebUI updates the list of participants
whenever that message is received.

However, when the type of a participant changes the backend notifier
sent an "update" message instead, which is in turn sent as a room list
update signaling message to the clients, but it does not trigger any
update in the participants list of the WebUI.

Now a "participants" message is sent too by the backend notifier when
the participants in a room change, so the WebUI updates the list of
participants when handling the participants update signaling message;
the WebUI could have been modified to rely on the room list update
signaling message instead, but using the other message seemed more
appropriate.

Note that the already existing "update" message sent by the backend
notifier is kept for now, as removing it may break the clients in
unexpected ways (although it should go away in the future).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2020-03-06 12:29:08 +01:00
Joachim Bauch fdf5dcd483
Get room properties for the signaling server from separate function.
Also dispatch an event so other apps can extend the properties to return.

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2020-03-02 12:47:37 +01:00
Joas Schilling 5ae1107dfd
Group same listeners
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-12-04 08:36:59 +01:00
Joas Schilling 81db771748
Add constants for event names and use pattern
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-12-04 08:36:59 +01:00
Joas Schilling 0e1d2b39b9
Typed events for Talk
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-12-04 08:36:59 +01:00
Joas Schilling d4fc586f1a
Bye Spreed, hello Talk!
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-09-05 14:29:09 +02:00
Daniel Calviño Sánchez 8524f184f1 Send notification to signaling backend when lobby state changes
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-08-28 10:28:03 +02:00
Daniel Calviño Sánchez acf5faf46c Fix missing notifications to signaling backend for some room events
The signaling backend was not notified when the password, type or read
only state of the room was modified so, in turn, the signaling backend
did not notify the clients about those changes.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2019-08-21 13:54:35 +02:00
Joas Schilling 7e54634fb5
Make room names non-optional
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-27 15:26:50 +01:00
Joas Schilling 57d04a562e
Do not load unnecessary classes in Application
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-14 08:50:37 +01:00
Joas Schilling d702aa0841
Use ITimeFactory instead of time()
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-13 16:03:25 +01:00
Joas Schilling fb90a74231
Make all classes strict
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-02-12 16:07:59 +01:00
Joas Schilling 32eb0b8743
Make Signaling\BackendNotifier strict
Signed-off-by: Joas Schilling <coding@schilljs.com>
2019-01-14 12:36:06 +01:00
Joas Schilling 021dc333dc
Use Participant objects were possible
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-11-12 11:35:31 +01:00
Joas Schilling 4afa2d7946
Do not create the participant when we don't need them
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-11-12 11:35:31 +01:00
Joas Schilling 73e4ba5485
Add a const for magic 0 as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2018-08-24 10:52:20 +02:00
Joachim Bauch d4929b7525
Change "inCall" state to contain bit flags
The flags encode if a user is in the call and whether he is publishing
audio and/or video.

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-08-24 10:52:20 +02:00
Joachim Bauch 0a13920377
Make sure to include "userid" for all participants that are users.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-06-22 14:01:45 +02:00
Joachim Bauch a5b899c8ba
Use standalone signaling server to notify about new chat messages.
This removes the long-polling against the PHP backend and instead sends an
event to all users in a room through the standalone signaling server to
notify that new chat messages exist.

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-06-12 12:05:27 +02:00
Joachim Bauch c12363fd9a
Notify standalone signaling server about sessions to remove from room.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-05-08 14:41:49 +02:00
Joachim Bauch 98b429e8d5
Notify standalone signaling backend when a guest name is changed.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-05-08 11:41:22 +02:00
Morris Jobke 17243c0067
Provide the app to logger
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-03-21 08:37:41 +01:00
Joachim Bauch 9a39ed981a
Fix type in condition.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-02-02 11:43:00 +01:00
Joachim Bauch 2b1bc06342
Add tests for "BackendNotifier".
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-02-02 11:43:00 +01:00
Joachim Bauch b3c601a8cb
Split "room" from "call" when using the standalone signaling server.
Clients use the regular joinRoom/-Call API and get a Nextcloud session
id. No special handling for sessions from the standalone signaling
server are required.

The signaling server regularly "pings" active sessions to prevent them
from timing out (in case of guest users).

Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-02-02 11:42:59 +01:00
Joachim Bauch 8214f22a31
Notify backend when "in-call" status of sessions changes.
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2018-02-02 11:42:59 +01:00
Joas Schilling d4839bb114
Fix phpStorm EA complains
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-11-16 15:18:22 +01:00
Joas Schilling 50bb971017
Move into Signaling namespace
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-11-16 15:07:58 +01:00
Joas Schilling f65d6f27a5
Change tables to talk_*
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-11-02 11:48:30 +01:00
Joas Schilling 4669f73022
Expire signaling messages that are older than 5 minutes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-10-09 13:34:04 +02:00
Joas Schilling 288c1bb321
Fix spelling of Signaling (single L)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-09-25 15:32:15 +02:00