1
Fork 0
Commit Graph

104 Commits

Author SHA1 Message Date
Juliusz Chroboczek a86fb08f6c Replace ClientPermissions with a list of strings.
Now that we support external auth, the permissions list is
open-ended.  Make it a list for simplicity.
2022-02-19 23:44:57 +01:00
Juliusz Chroboczek 4ce9a91c40 Implement passing tokens in URL search parameters.
It is now possible to autojoin by going to a URL such as

  https://galene.example.org/group/test?username=jch&token=...
2022-02-18 20:27:53 +01:00
Juliusz Chroboczek 03811db37d Implement token authentication. 2022-02-18 13:35:17 +01:00
Juliusz Chroboczek b4d1ef398f Fix typo in mute menu entry. 2022-02-16 23:10:43 +01:00
Juliusz Chroboczek 997806ec52 Add contextual menu in user list. 2022-02-16 20:52:23 +01:00
Juliusz Chroboczek 968390942c Keep self at top of user list. 2022-02-16 20:34:20 +01:00
Juliusz Chroboczek 62fb6d853c Move toastify into separate dir, upgrade. 2022-02-16 18:56:21 +01:00
Juliusz Chroboczek 66e5d2951d Rework file transfer code.
More explicit data structures, better error handling.
2022-02-01 18:46:51 +01:00
Juliusz Chroboczek 60ba4aa727 Fix file transfer for Firefox.
Firefox implements the spec correctly by encapsulatings received
data in a blob by default.  Handle both blobs and ArrayBuffers.

Also improve error handling.
2022-02-01 13:36:16 +01:00
Juliusz Chroboczek 6d250bfa98 Add warnings about disclosing IP addresses. 2022-01-30 19:22:43 +01:00
Juliusz Chroboczek c38c5555b0 Ensure buttons are removed after a transfer is cancelled. 2022-01-30 18:28:35 +01:00
Juliusz Chroboczek c535f67246 Implement peer-to-peer file transfer. 2022-01-30 17:43:19 +01:00
Juliusz Chroboczek 24187430e8 Rename client status to data, add group data.
We now distinguish between status, which is maintained by the server,
and data, which is provided by the client.  In addition to client data,
we now support group data.
2022-01-29 23:28:08 +01:00
Juliusz Chroboczek 0b5e40bc7f Set user-status-raisehand when adding user.
Commit 993d66 addes support for displaying raised hands, but it
failed to take into account the possibility that the hand is already
raised when the user is first added.
2022-01-28 22:13:14 +01:00
Juliusz Chroboczek 6bb1ed7ab7 Use playsInline instead of playsinline.
Apparently the field has a different name than the HTML attribute.
2022-01-25 01:28:18 +01:00
Juliusz Chroboczek 29b4734bc4 Adapt typing to TypeScript 4.5.4. 2022-01-25 01:22:59 +01:00
Sascha Silbe 993d664ba2 frontend: add support for showing raised hand
Show the "hand-paper" symbol instead of the "circle" symbol while a
user is raising their hand.
2022-01-04 12:56:05 +01:00
Juliusz Chroboczek 662b8ad9b3 Don't consider system users when deciding simulcast.
This prevents simulcast from being switched on when we enable
recording.
2021-12-02 00:09:28 +01:00
Juliusz Chroboczek 4d5e6a319a Avoid saving passwords in session storage. 2021-11-01 00:43:19 +01:00
Juliusz Chroboczek c7c3c9c6b0 Export group status in .status.json. 2021-10-30 19:12:06 +02:00
Juliusz Chroboczek 06ee4cc30f Add error handling to gotConnected. 2021-10-30 01:12:02 +02:00
Juliusz Chroboczek 8135f6b91d Fix typo in setTitle. 2021-10-26 22:38:05 +02:00
Juliusz Chroboczek de7dc9252f Use /group/name/ as the main page for the group.
We used to omit the slash, which users found confusing.
2021-10-26 19:36:05 +02:00
Antonin Décimo 5db63685a2 Simplify /help code. 2021-08-07 18:12:37 +02:00
Antonin Décimo e99aa7d498 Fix localMessage call to addToChatbox.
Commit b527c8757a added the `kind`
parameter to `addToChatbox`, but the change wasn't reflected here.
2021-08-07 18:12:37 +02:00
Juliusz Chroboczek c227b113f6 Use id for determining source of chat message.
We used to check the nick, which is not necessarily unique.
2021-07-31 17:22:09 +02:00
Juliusz Chroboczek b527c8757a Add chathistory message. 2021-07-31 14:42:26 +02:00
Juliusz Chroboczek 3b98e123e0 Send a message of kind "kicked" instead of "error". 2021-07-30 19:38:02 +02:00
Juliusz Chroboczek 8178275164 Rename "Present" to "Enable". 2021-07-29 14:46:02 +02:00
Juliusz Chroboczek 82b10b2c10 Properly close the camera when changing parameters.
The trick of calling the onclose callback wasn't correct.
2021-07-17 00:38:26 +02:00
Juliusz Chroboczek 7b4fd8932c Fix title display. 2021-07-16 23:03:36 +02:00
Juliusz Chroboczek 52a26327d7 Implement group status.
We now inform clients of the status of a group (locked, etc.).  Also
cleans up the handling of administrative messages, which solves the
issue of receiving "user" before "joined".
2021-07-16 19:51:54 +02:00
Juliusz Chroboczek 0d2ca28ae1 Close camera on disconnect. 2021-07-16 01:40:42 +02:00
Juliusz Chroboczek f12f776e03 Hide simulcast form when not allowed to send. 2021-05-15 11:36:04 +02:00
Juliusz Chroboczek 54cd546120 Request low-resolution video when the video is small. 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 16bf4d6c95 Move call the setViewportHeight to start function.
This avoids issues with initialisation order.
2021-05-14 18:04:18 +02:00
Juliusz Chroboczek 1212c7cb04 Run Firefox workaround unconditionally. 2021-05-12 02:59:12 +02:00
Juliusz Chroboczek 485b0c1b85 Disable simulcast on Firefox. 2021-05-10 02:53:22 +02:00
Juliusz Chroboczek be4ae56c14 Fix changing filter for a running stream. 2021-05-09 18:59:46 +02:00
Juliusz Chroboczek 32663dbf3f Don't enable simulcast when there are just two users.
If simulcast is set to auto, disable simulcast when there are just
two users in the group.
2021-05-09 17:49:35 +02:00
Juliusz Chroboczek 2f44961589 Add UI for simulcast control. 2021-05-08 21:25:22 +02:00
Juliusz Chroboczek 795a40ceaf Simulcast. 2021-05-08 21:12:29 +02:00
Juliusz Chroboczek f1a15f07db Factor out stream creation, implement replaceUpStream.
This avoids code duplication in the various addUpMedia functions,
and makes it possible to replace a stream without reopening the
stream's source.  This will be required in order to change the
simulcast envelope.
2021-05-08 18:52:36 +02:00
Juliusz Chroboczek 8ec0a44c09 Fix controls for down streams.
Now that down streams have labels, we need to distinguish on the
stream direction.
2021-05-08 14:19:46 +02:00
Juliusz Chroboczek ce0571cb7a Use stop video button on all streamed videos.
Delete the stop video button, it is now redundant.  Panic remains.
2021-05-08 02:51:52 +02:00
Juliusz Chroboczek a20741408c Fix hander for shared screen close button. 2021-05-07 02:44:04 +02:00
Juliusz Chroboczek 4a6dccff0c Set track parameters at creation time.
We now create a sendonly transceiver, and set the max bitrate at
creation time.
2021-04-29 18:28:17 +02:00
Juliusz Chroboczek be73380f9f Label streams, not tracks.
We used to label tracks individually, in a view to using the labelling
for simulcast.  Since then, the WebRTC community has converged on a
different strategy, where multiple tracks share a single mid and
are labelled with the rid extension.

We now label whole streams, which is simpler, and use the track's
kind (and, in the future, the rid) to disambiguate.  This changes the
protocol in two ways:

  * in offers, the "labels" dictionary is replaced by a single "label"
    field; and
  * the syntax of the "request" message has changed.
2021-04-29 18:28:16 +02:00
Alain Takoudjou b08a2e3943 Add Unshare button on each shared video and remove global unshare screen button 2021-04-29 18:24:07 +02:00
Juliusz Chroboczek 3ba2394be7 Implement user statuses.
The server now maintains a set of statuses for each user that are not
interpreted by the server but communicated to the other members of the
group using 'user' messages.
2021-04-28 17:01:05 +02:00