Juliusz Chroboczek
2ad6fc5b6e
Constrain video aspect ratio rather than resolution.
2023-11-04 23:56:47 +01:00
Juliusz Chroboczek
ff28e33d74
Set default resolution to 640x400.
...
We used to accept the browser's default, which varied widely
between devices.
2023-11-04 22:58:15 +01:00
Juliusz Chroboczek
cc2ed14484
Reset c.sc after calling onclose.
...
The onclose callback might want to access c.sc.
2023-08-29 01:42:48 +02:00
Juliusz Chroboczek
892a4b8401
Fix parsing of server version.
2023-08-28 23:07:01 +02:00
Jackson Vieira
1ad91adf89
Fix audio activity detection for downstreams
...
Replaced the non-existent `track` property in `RTCStatsType`
with the valid `inbound-rtp` property.
2023-08-28 22:47:46 +02:00
Juliusz Chroboczek
a701d8c6fa
Remove client-side support for protocol version 1.
2023-07-16 15:54:58 +02:00
Juliusz Chroboczek
a845e9f722
Special-case screenshare in setSendParameters.
...
This avoids restarting the stream when changing simulcast
settings.
2023-07-14 23:59:06 +02:00
Juliusz Chroboczek
bb0a01895e
Disable simulcast on Firefox by default.
...
Simulcast interacts strangely with VP9.
2023-07-09 17:34:28 +02:00
Juliusz Chroboczek
1afb3c85b0
Open microphone early on Safari.
...
Safari forbids autoplay and omits host candidates unless the microphone
is open.
2023-07-05 23:41:59 +02:00
Juliusz Chroboczek
2c852206bd
Add dialog for generating tokens.
2023-05-03 23:30:48 +02:00
Juliusz Chroboczek
1afd995844
Improve token formatting.
2023-05-03 22:55:27 +02:00
Juliusz Chroboczek
cfb5d936ee
Improve interface to makeToken.
...
It now takes a template that allows setting all options.
2023-05-03 18:48:35 +02:00
Juliusz Chroboczek
e786e1bd11
Pass file transfer cancel message to callback.
2023-04-28 16:57:00 +02:00
Juliusz Chroboczek
7f93aa5dc8
Simpler Firefox workaround in addUpTrack.
...
Rather than trying to determine whether the workaround is needed,
we now perform it unconditionally, and ignore the resulting exception
on non-broken browsers.
2023-04-13 22:26:41 +02:00
Juliusz Chroboczek
3ea4b8a32a
Remove Firefox workaround from setUpStream.
...
This is no longer needed since version 110.
2023-04-13 16:37:26 +02:00
Alexandre Iooss
16e187bcb7
Autofocus group input on index page
2023-04-08 21:21:31 +02:00
Alexandre Iooss
49db9f94d5
Autofocus username input on login page
2023-04-08 21:21:29 +02:00
Juliusz Chroboczek
8775ce6406
Keep track of issuer and creation date in tokens.
2023-04-08 21:13:35 +02:00
Juliusz Chroboczek
adf273f9ea
Expire expired tokens.
...
We now remove a token a week after it has expired.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
e93642f9db
Add menu entry for inviting, use native dialog on mobile.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
ac1dc77b30
Reconnect when server complains about a username.
...
If a token does not specify a username, the server will request
one by failing the join message. Disconnect from the WebSocket
in that case, and display the login dialog with the password
field invisible.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
8c1510023f
Implement user interface for token management.
2023-04-04 01:22:05 +02:00
Juliusz Chroboczek
59ff25310d
Don't set group if joining failed.
...
We used to set sc.group even if joining failed, which would cause
us to spuriously call the onJoined callback when we disconnected.
2023-04-03 22:57:36 +02:00
Juliusz Chroboczek
e47ca20a9f
Remove spurious argument to gotConnected.
2023-03-22 18:19:04 +01:00
Juliusz Chroboczek
58ef60f974
Minor tweaks to file transfer.
...
Avoid copying data when sending, improve error handling.
2023-01-22 22:24:51 +01:00
Juliusz Chroboczek
dbeb75ee0e
Better progress indicator for file transfer.
2023-01-16 15:51:40 +01:00
Juliusz Chroboczek
645ba5fb48
Split out file transfer button handling.
...
Split out deleting of buttons during file transfer into its own
function.
2023-01-16 14:39:20 +01:00
Juliusz Chroboczek
de57748043
Disable simulcast for screen sharing.
...
Simulcast doesn't seem to work well with screen sharing: only one
layer is sent, which has very low throughput since we send the low
layer first. Disable simulcast for screen sharing.
2023-01-11 19:36:33 +01:00
Juliusz Chroboczek
056f98604a
Simplify checking for privileged user messages.
2022-12-17 00:15:07 +01:00
Juliusz Chroboczek
fae045fb61
Client-side support for protocol version 2.
...
This does not yet support the new 'need-username' error.
2022-12-16 18:38:30 +01:00
Juliusz Chroboczek
397892d906
Add forgotten time field to message typedef.
2022-12-16 17:56:41 +01:00
Juliusz Chroboczek
56baddc948
Make groupAction take an arbitrary parameter.
2022-10-23 16:04:10 +02:00
Juliusz Chroboczek
bf142c41a0
Fix status generation for remote groups.
2022-09-16 20:45:54 +02:00
Juliusz Chroboczek
4f83de3335
Use status URL when checking group existence.
...
This avoids issues with redirects.
2022-09-16 20:31:46 +02:00
Juliusz Chroboczek
1bce623080
Hide peers with no video by default.
...
Now that we have an indicator in the users list, it is reasonable
to hide audio-ony peers by default.
2022-09-16 19:43:35 +02:00
Juliusz Chroboczek
db30b052f9
Include camera indicator in users list.
2022-09-16 19:14:29 +02:00
Juliusz Chroboczek
ae782f5d00
Remove isUp parameter from setMedia.
...
It's redundant, the data is already in the stream.
2022-09-16 19:13:55 +02:00
Juliusz Chroboczek
eefe763a9f
Add omitted defer, remove debug statement.
2022-09-09 14:58:32 +02:00
Juliusz Chroboczek
0fe3ed2e15
Fix chathistory and display of anonymous users.
...
Chathistory messages were formatted incorrectly.
We were also not formatting correctly messages from
anonymous users.
2022-09-06 19:03:50 +02:00
Juliusz Chroboczek
533e4b9b32
Version the protocol.
...
The handshake message now contains a list of supported protocol
versions. Version mismatch is currently a warning, but it will be a
hard error in the future.
2022-09-02 14:30:51 +02:00
Juliusz Chroboczek
b55e531aa5
Encode group location in the status.json file.
2022-09-01 15:38:29 +02:00
Juliusz Chroboczek
4bc873a574
Publish websocket endpoint in group status.
2022-09-01 14:55:52 +02:00
Juliusz Chroboczek
4e275a63b4
Derive group name from status
...
This avoids hard-wiring URLs in the client.
2022-09-01 14:37:42 +02:00
Juliusz Chroboczek
3d857120db
Check for group existence on landing page.
2022-08-31 17:17:09 +02:00
Jeroen van Veen
a21134d310
Fix usage of serverConnection in protocol.js
...
serverConnection is the global value in galene.js.
2022-08-29 20:15:19 +02:00
Juliusz Chroboczek
c5e5455e47
Document file transfer javascript.
2022-08-04 19:14:35 +02:00
Juliusz Chroboczek
b821cd71a9
Check MIME type in auth server response.
2022-08-03 15:00:50 +02:00
Juliusz Chroboczek
d69c517137
Allow auth server to fallback to password auth.
...
The authorisation server can now reply with 204 (no content)
in order to request that the client should continue with password
authentication.
2022-08-02 18:12:17 +02:00
Juliusz Chroboczek
3bdd82f06d
Rework file transfer.
...
Split into the protocol (in protocol.js) and the user interface
(in galene.js). Make the state automaton explicit, and improve
error-handling. The new protocol is incompatible with the old one.
2022-07-25 18:54:52 +02:00
Juliusz Chroboczek
96f39ca315
Change z-level of contextual menu
2022-05-29 01:50:17 +02:00
Juliusz Chroboczek
cf495d31b3
Remove dead CSS.
2022-05-29 01:26:55 +02:00
Juliusz Chroboczek
b55c9f7a92
Fix wording of Safari warning.
2022-05-19 15:24:15 +02:00
Juliusz Chroboczek
3d807677a7
Make warning against Safari screensharing stronger.
2022-05-19 13:24:44 +02:00
Juliusz Chroboczek
547ff1e6c4
Revert "Don't break lines manually in chat messages."
...
This reverts commit 2eca0e44d5
.
2022-04-20 17:38:55 +02:00
Juliusz Chroboczek
6669a93ae3
Don't use high-quality audio for screenshare.
...
We used to set high-quality audio by default for screenshare,
but that makes the video blurry under bad network conditions.
Obey the hqaudio setting for all streams.
2022-04-15 00:36:47 +02:00
ericgaspar
e673cf1225
Rename lower hand to unraise.
2022-03-26 11:55:30 +01:00
Juliusz Chroboczek
eb21c1ab20
Maintain stream information for oneself.
...
We used to maintain stream information for all users except oneself.
2022-03-25 18:21:03 +01:00
Juliusz Chroboczek
e303992e45
Call onuser when deleting stream.
2022-03-25 17:04:31 +01:00
Juliusz Chroboczek
7527aeba3d
Factorise out setUserStatus.
2022-03-25 16:49:09 +01:00
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