Juliusz Chroboczek
d8db7567e4
Allow displaying chat messages when unconnected.
...
This makes commands such as /set work before you connect.
2022-03-25 16:30:31 +01:00
Juliusz Chroboczek
2eca0e44d5
Don't break lines manually in chat messages.
...
This is no longer necessary since we use "pre-wrap" in the CSS.
2022-03-25 16:23:51 +01:00
Juliusz Chroboczek
f66cabd6f4
Fix file transfer error handling.
2022-03-23 00:58:55 +01:00
Juliusz Chroboczek
8aaa6d1466
Obey forceRelay for file transfers.
2022-03-23 00:12:51 +01:00
Juliusz Chroboczek
55ae4a684b
Remove parameter from the onpeerconnection callback.
...
The distinction is not likely to be useful, and it doesn't make
sense in all cases.
2022-03-23 00:11:12 +01:00
Juliusz Chroboczek
8d4bafe05c
Tweak documentation of protocol.js.
2022-03-23 00:08:16 +01:00
Juliusz Chroboczek
34b21a2598
Add preference forceRelay.
...
This may be useful to get around network blocks in some cases.
2022-03-22 18:23:16 +01:00
Juliusz Chroboczek
4053d9ca77
Display warning when joining a locked group.
2022-03-22 18:18:04 +01:00
Juliusz Chroboczek
de63449150
More paranoid match for Firefox bandwidth workaround.
2022-03-21 19:40:41 +01:00
Juliusz Chroboczek
a698011aef
Don't set rid when not simulcasting.
...
It turns out that the bandwidth limitation is not effective
in Firefox when the rid is set unless we're simulcasting.
2022-03-21 19:19:19 +01:00
Juliusz Chroboczek
d798cfec75
Fix simulcast statistics display for Firefox.
...
Firefox doesn't include the rid in the statistics result.
Use the SSID instead.
2022-03-20 22:34:39 +01:00
Juliusz Chroboczek
148c49d253
Enable simulcast on Firefox.
...
Firefox uses a non-standard protocol for simulcast, which has been
supported by Pion for a while now. Enable simulcast in Firefox.
2022-03-20 21:52:24 +01:00
Juliusz Chroboczek
96a46c695a
Add presenting files to context menu.
2022-02-21 18:36:36 +01:00
Juliusz Chroboczek
296fe622df
Share audio in addition to video.
2022-02-21 18:19:25 +01:00
Juliusz Chroboczek
3c98e15229
Control preprocessing and high-quality audio.
2022-02-21 18:18:03 +01:00
Juliusz Chroboczek
aa30c34863
Increase audio quality for presented files.
2022-02-21 17:41:49 +01:00
Juliusz Chroboczek
cbcfbb3f74
Make presenting files a chat command.
2022-02-21 17:32:32 +01:00
Juliusz Chroboczek
5ecb3a1f93
Fix file transfer.
...
We had two functions with the same name.
2022-02-21 16:53:22 +01:00
Juliusz Chroboczek
de3a016f4d
Set the username in the server when using tokens.
...
This avoids the need to pass the username in the URL without
requiring the client to parse tokens.
2022-02-20 15:33:11 +01:00
Juliusz Chroboczek
a9c9581465
Implement authPortal.
2022-02-19 23:58:31 +01:00
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
439dbabaa5
Replace custom SVG with icon.
2022-02-19 03:50:30 +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
7cbc516679
Import Contextual.js.
...
https://github.com/LucasReade/Contextual.js
2022-02-16 20:34:20 +01:00
Juliusz Chroboczek
968390942c
Keep self at top of user list.
2022-02-16 20:34:20 +01:00
Juliusz Chroboczek
d2dff184d1
Move fontawesome to external, upgrade to 6.0.0.
2022-02-16 19:24:32 +01:00
Juliusz Chroboczek
62fb6d853c
Move toastify into separate dir, upgrade.
2022-02-16 18:56:21 +01:00
Juliusz Chroboczek
14ca47651b
Fix data parameter of ServerConnection.join.
...
This was broken when we renamed status to data. Thanks to
Sylvie Tissot.
2022-02-05 13:48:05 +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
710cc3cc14
Add ability to set initial user status.
...
Setting the status after joining (using the "setstatus" action)
may cause multiple "user" messages to be sent to clients. Add
the ability to set the initial status at join time.
2022-01-28 22:21:19 +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
f72061996c
Fix error handling in gotClose.
2021-11-27 21:30:07 +01:00
Juliusz Chroboczek
4d5e6a319a
Avoid saving passwords in session storage.
2021-11-01 00:43:19 +01:00
Juliusz Chroboczek
b91d48d4ea
Improve media-failed CSS.
2021-10-31 18:28:23 +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
Alain Takoudjou
5b1bc8141a
Allow scrolling in login box.
...
This makes it possible to login on small devices.
2021-10-01 22:53:56 +02:00
Mathieu
7aefb5e969
Remove scrollbar in side menu
2021-09-18 17:56:51 +02:00
Juliusz Chroboczek
09c5ba0d06
Protect against tracks without a stream.
2021-09-16 17:19:19 +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
Mathieu
d29f6d6e5d
Make video close button more visible.
...
Adds a round black semi-transparent background to the white cross icon,
making it visible in any situation.
2021-08-04 20:13:06 +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
a25d46314a
Fix documentation of onerror callback.
2021-07-30 17:40:15 +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
b9c1968b48
Treat closing unknown streams as a warning.
2021-07-16 23:10:13 +02:00
Juliusz Chroboczek
7b4fd8932c
Fix title display.
2021-07-16 23:03:36 +02:00
Juliusz Chroboczek
eedfaccaff
Add locked and displayName to public-groups.json.
2021-07-16 20:01:54 +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
22585e9d10
Handle spatial scalability.
...
Maintain spatial layer information, and drop lower layers when
possible. Yields a 20% saving with VP9.
2021-05-17 18:17:43 +02:00
Juliusz Chroboczek
781bdf8c74
Fix error handling in mainpage and stats.
2021-05-17 14:43:57 +02:00
Juliusz Chroboczek
91fa693709
Display max layer in stats.
2021-05-17 13:51:29 +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
2da8faa8cf
Implement per-stream requests.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
6f9d7fc306
Scalable video coding (SVC).
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
c18ec32c85
Protect against closed streams in recomputeUserStreams.
2021-05-13 04:09:56 +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
627061f0de
Rework statistics page.
2021-05-09 18:46:10 +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
86b6c71ca0
Reformat stats display, protect against division by zero.
2021-05-07 02:23:10 +02:00
Juliusz Chroboczek
b1bb427f06
Add human-readable version of stats under /stats.html.
2021-04-30 20:46:44 +02:00
Juliusz Chroboczek
acca3f9bb3
Maintain kinds of tracks in user data structure.
...
Needed to show in the user list whether a user is publishing a stream.
2021-04-29 21:10: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
Juliusz Chroboczek
f0a39fca48
Send user permissions to client.
...
We now maintain the user list in the serverConnection.
2021-04-28 00:07:19 +02:00
Juliusz Chroboczek
b7f39d3290
Remove last traces of onabort callback.
...
Everything now goes through onclose, both for up and down streams.
2021-04-27 17:10:34 +02:00
Alexandre Iooss
8da55c6e6c
Remove async from ServerConnection.gotRenegotiate
2021-04-27 11:11:17 +02:00
Alexandre Iooss
4db8279016
Fix serverConnection not defined in ServerConnection.findByLocalId
2021-04-27 11:11:17 +02:00
Alexandre Iooss
5ce3dce0d0
Remove font awesome from mainpage
2021-04-22 18:09:36 +02:00
Alexandre Iooss
e330765563
Use column flexbox on mainpage
...
This removes the need to hardcode the footer height in a CSS calc().
2021-04-22 18:09:36 +02:00
Alexandre Iooss
8544e4deb4
Fix overflow on mainpage
...
The signature class was forcing the maximum height making the <p>
element overflowing the page. By removing this constraint, the overflow
is now gone.
2021-04-22 18:09:36 +02:00
Alain Takoudjou
81050184eb
Fix detecting if mobile css layout is enabled
...
Use matchMedia to check if mobile css is enabled instead of checking window innerwidth size.
2021-04-22 15:55:46 +02:00
Alain Takoudjou
637e280dec
Fix show/hide video and chat box for mobile and normal UI
...
Uses less javascript to update css style, rework buttons css for show/hide video and chat.
Fix show or hide video button on normal or mobile ui when windows is resized or when orientation change.
2021-04-22 15:55:39 +02:00
Alexandre Iooss
c06bfa4519
Fix some warning messages and comment in galene.js
2021-03-30 07:28:20 +02:00
Alexandre Iooss
ce0cb1ef98
Add missing </p> in index.html
2021-03-30 07:27:35 +02:00
Alexandre Iooss
0df2ec1684
Set charset in galene.html
2021-03-30 07:27:07 +02:00
Alain Takoudjou
dc34c9e459
Fix users sidebar is partially hidden on some devices
...
Users list bars is partially hidden which troncate some username on certains devices.
2021-03-26 17:06:18 +01:00
Alain Takoudjou
8d5e23aae9
Fix elements overflow-y on right sidebar menu
...
When Settings menu element height is more that the menu content height some item are hidden. overflow to scroll to make them visible on scroll
2021-03-26 11:13:41 +01:00
Alain Takoudjou
ffcd866301
Fix show chat button always hidden on mobile layout
...
The maximum device with for mobile layout in css is 1024px, for device with > 768 (Ipad)
chat button will stay hidded while chat box is also hidden when there is a video call.
This commit fix the issue.
2021-03-26 11:12:45 +01:00
Juliusz Chroboczek
016c321484
Fix typing of userMessage value.
2021-02-26 16:22:55 +01:00
Juliusz Chroboczek
e04193f78c
Display user message when browser doesn't do WebRTC.
...
Thanks to mscherer for the report.
2021-02-14 18:06:50 +01:00
Juliusz Chroboczek
fe9b89257a
Set buttons visibility when disconnecting.
2021-02-04 23:11:40 +01:00
Juliusz Chroboczek
6054ae6cc6
Update client code for renegotiation.
...
We now need to deal with the case where a track disappears from the
labels array.
2021-02-03 20:26:05 +01:00
Juliusz Chroboczek
f63ecb3078
Support file playback on Mozilla.
2021-02-01 01:08:39 +01:00
Juliusz Chroboczek
14a4303664
Rework connection replacement.
...
We used to signal connection replacement by reusing the same connection
id. This turned out to be racy, as we couldn't reliably discard old
answers after a connection id was refused.
We now use a new id for every new connection, and explicitly signal
stream replacement in the offer message. This requires maintaining a
local id on the client side.
2021-01-31 23:59:17 +01:00
Juliusz Chroboczek
aa69538057
Minor typos and tweaks in galene.html.
2021-01-25 13:06:09 +01:00
Juliusz Chroboczek
8e395e38ac
Add option to disable mirror view.
2021-01-23 01:15:53 +01:00
Juliusz Chroboczek
8a44726f89
Save blackboard mode and activity detection across reloads.
2021-01-23 01:13:27 +01:00
Juliusz Chroboczek
7d216f650c
Add replace parameter to onclose stream callback.
...
This indicates that the stream is being replaced by another one with
the same id. This avoids moving videos around when they are being
renegotiated.
2021-01-17 20:20:35 +01:00
Juliusz Chroboczek
2380e2e183
The up streams rework broke renegotiation. Don't attempt to
...
renegotiate, just close the stream and open it again.
2021-01-15 22:41:40 +01:00
Juliusz Chroboczek
8168c2a9e6
Rework the up connection state machine.
...
It is now more similar to the down connection, using the onclose
callback for resource management.
2021-01-14 23:50:40 +01:00
Juliusz Chroboczek
82827453f0
Use clearInterval instead of clearTimer.
2021-01-13 20:15:39 +01:00
Juliusz Chroboczek
2eb61d877f
Allow filters to maintain state.
2021-01-13 18:31:18 +01:00
Juliusz Chroboczek
769c698894
Properly stop up media in delUpMediaKind.
2021-01-13 17:07:54 +01:00
Juliusz Chroboczek
c6ed27c100
More filter fixes.
2021-01-13 17:07:40 +01:00
Juliusz Chroboczek
8120a30725
Don't reset srcStream if not changing.
...
This avoids flicker upon renegotiation.
2021-01-13 14:59:43 +01:00
Juliusz Chroboczek
d5e3429262
Reset transform at the end of filters.
2021-01-13 14:36:29 +01:00
Juliusz Chroboczek
45c2711522
Add contextAttributes to filter definition.
2021-01-13 14:20:23 +01:00
Juliusz Chroboczek
684c8c5df8
Add user interface for filter selection.
2021-01-13 13:57:05 +01:00
Juliusz Chroboczek
b24bd5c0ed
Rework filters.
...
Make it possible to attach filters dynamically. Work around bugs
in Firefox.
2021-01-13 13:39:55 +01:00
Juliusz Chroboczek
cf6c1203c8
Better typing for filters, allow filters to skip frames.
2021-01-12 03:52:23 +01:00
Juliusz Chroboczek
a5b57976d2
Lock filter framerate to webcam framerate.
2021-01-12 03:36:51 +01:00
Juliusz Chroboczek
ca6020a27e
Implement filters.
...
No user interface yet.
2021-01-12 02:29:46 +01:00
Juliusz Chroboczek
e7d7c2dd0a
Call revokeObjectURL in the onclose callback.
...
This avoids special-casing file streams.
2021-01-12 02:23:52 +01:00
Juliusz Chroboczek
371289793b
Call onclose on up streams too.
2021-01-12 02:23:22 +01:00
Juliusz Chroboczek
820b303e84
Send localDescription instead of original SDP.
2021-01-11 20:41:34 +01:00
Juliusz Chroboczek
70e80afd6c
Implement localMessage.
2021-01-11 19:28:57 +01:00
Juliusz Chroboczek
63e1a6f47d
Tweak relay-test.
2021-01-11 18:50:29 +01:00
Juliusz Chroboczek
165c942dc7
Add undocumented command /relay-test.
2021-01-11 18:24:54 +01:00
Juliusz Chroboczek
b600be8100
Implement /muteall.
2021-01-11 16:30:19 +01:00
Juliusz Chroboczek
63e2b5a4c4
Implement 'noecho' field in client messages.
2021-01-11 16:30:07 +01:00
Antonin Décimo
fb30fe3bb7
Fix removal of stream.onremovetrack callback.
2021-01-05 21:59:50 +01:00
Antonin Décimo
056ffcd2cf
Add missing semicolons.
2021-01-05 21:59:47 +01:00
Juliusz Chroboczek
d2f7010141
Call ondowntrack on each track.
...
We used to call it on just the first track. Also remove obsolete
remains of the onlabel callback.
2021-01-04 20:43:39 +01:00
Juliusz Chroboczek
69bb12014e
Fix omitted break in gotUserMessage.
2021-01-04 13:15:50 +01:00
Juliusz Chroboczek
0ec9f92dad
Make 'clearchat' into a user message.
2021-01-03 17:47:56 +01:00
Juliusz Chroboczek
e393819eda
Carry raw SDP in the protocol.
2021-01-03 17:00:58 +01:00
Juliusz Chroboczek
f53276b89e
Simplify the protocol and the protocol interface.
...
Split the id field into id and source, where source indicates the sender
of the message and id the entity being sent. Remove the label request,
just use the offerer's username. Maintain the username within the
ServerConnection, this removes a parameter from some methods.
2021-01-03 12:17:30 +01:00
Juliusz Chroboczek
a0418d26ec
Send RTC configuration with joined message.
...
This avoids one HTTP request, and is potentially more flexible.
2020-12-28 02:55:19 +01:00
Juliusz Chroboczek
d09c0f0a80
Make the value field of client messages carry arbitrary types.
2020-12-28 01:49:27 +01:00