1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-12-23 15:55:47 +01:00
Commit graph

341 commits

Author SHA1 Message Date
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
Juliusz Chroboczek
5e831ab536 Append message footer to /me messages too. 2020-12-28 01:49:27 +01:00
Juliusz Chroboczek
2dfa175bd1 Create video element early. 2020-12-25 20:29:46 +01:00
Juliusz Chroboczek
e3fd9a963a Improve error handling during negotiation. 2020-12-25 18:54:18 +01:00
Juliusz Chroboczek
d5c7a13aae Implement abort in the client->server direction. 2020-12-25 18:51:17 +01:00
Juliusz Chroboczek
ed9377e38f Disable playing files when browser doesn't support captureStream. 2020-12-24 00:01:33 +01:00
Juliusz Chroboczek
66fb73d01e Relicense under the MIT licence. 2020-12-19 17:26:33 +01:00
Juliusz Chroboczek
6a38272d1c Change homepage URL. 2020-12-16 22:41:06 +01:00
Alain Takoudjou
ce8acf303a Make warning popup message more readable 2020-12-15 17:06:06 +01:00
Alain Takoudjou
bdfa793a8d Add play button to video custom controls
If autoplay is not working on browser, user can play the video with this button
2020-12-15 16:48:32 +01:00
Alain Takoudjou
6b4d351295 Improve design of login box
Reorganize radio buttons also.
2020-12-15 16:48:25 +01:00
Antonin Décimo
f5de94cf3e Correct spelling of privileged. 2020-12-15 14:52:46 +01:00
Juliusz Chroboczek
a939ec07a7 Add explicit resolution setting.
No UI for now.
2020-12-14 19:31:42 +01:00
Juliusz Chroboczek
e17d97100b Fill login box after a reload. 2020-12-12 23:36:08 +01:00
Juliusz Chroboczek
b7aea3a4d1 Remove incorrect guards from addMedia functions.
These functions require having joined a group, not just having
proper credentials.
2020-12-12 23:31:54 +01:00
Juliusz Chroboczek
e35e6e5e10 Fix handling of join messages of kind change. 2020-12-12 13:51:08 +01:00
Juliusz Chroboczek
954c23cc3b Move disabling of volume slider into setVolumeButton. 2020-12-12 13:51:08 +01:00
Alain Takoudjou
6a403e1fd9 Set temporary placeholder for input area.
Co-authored-by: Juliusz Chroboczek <jch@irif.fr>
2020-12-12 13:51:08 +01:00
Alain Takoudjou
3faf46a1d7 Rework video player style
Reduce button size and reduce video control bar size.
Add a volume slider to control volume level when volume control is enabled
2020-12-11 18:37:13 +01:00
Alain Takoudjou
b2f050e552 Fix size for present and unpresent button on mobile
There is no text on mobile layout
2020-12-11 18:37:13 +01:00
Juliusz Chroboczek
ef1c211b7f SFU is now called Galène. 2020-12-06 19:51:02 +01:00
Juliusz Chroboczek
3cbbfbacdd Implement command renegotiate. 2020-12-05 21:02:28 +01:00
Juliusz Chroboczek
c6108f08d5 Allow renegotiate to be called on down streams. 2020-12-05 20:44:55 +01:00
Juliusz Chroboczek
f002a83806 Keep track of stream direction.
This simplifies the interface since close does the right thing
without help from the application.  Also improves error checking.
2020-12-05 20:44:42 +01:00
Juliusz Chroboczek
1c5bce2a38 Improve documentation for protocol functions. 2020-12-05 20:29:03 +01:00
Juliusz Chroboczek
b6a6165650 Make fullscreen work on Safari. 2020-12-05 20:29:03 +01:00
Juliusz Chroboczek
9bb2499b85 Rework flushing of ICE candidates.
We now treat local and remote candidates differently, and flush
local candidates immediately after sending an offer.
2020-12-05 20:29:03 +01:00
Juliusz Chroboczek
96e5030d54 Work around Safari's autoplay restrictions. 2020-12-05 03:07:22 +01:00
Juliusz Chroboczek
b134bfcf13 Improve error handling on join failure.
Solves the issue of groups with a name ending in "/".
2020-12-04 22:56:29 +01:00
Antonin Décimo
f0cbe9c0c1 Fix wrong label reference. 2020-12-03 22:53:51 +01:00
Juliusz Chroboczek
c5638a544f Mirror own video. 2020-12-03 18:38:36 +01:00
Alain Takoudjou
29e98f4f37 Fixed size for both present and unpresent button
To prevent size of menu to change when user click on present the unpresent button
2020-12-03 16:46:20 +01:00
Juliusz Chroboczek
1a11548192 Delay playing of video until connection is in good state. 2020-12-03 01:14:34 +01:00
Juliusz Chroboczek
27a2e45500 Implement /subgroups. 2020-12-02 19:47:32 +01:00
Juliusz Chroboczek
4a4973fc44 Rename Present button to Panic. 2020-12-02 19:05:02 +01:00
Antonin Décimo
20fe37b459 Align checkboxes with labels in optionsdiv. 2020-12-02 13:49:53 +01:00
Juliusz Chroboczek
2546aae7c1 Eliminate login from protocol.
The login message is replaced with handshake, which only carries
the client id.  Username and password is now in the join message.
Permissions is replaced with joined.
2020-12-02 13:49:53 +01:00
Juliusz Chroboczek
2f6c710f29 Fix side menu input elements.
Input elements have no contents.  Thanks to Antonin Décimo.
2020-12-01 21:17:10 +01:00
Antonin Décimo
7d4dabe30f JSDoc doesn't recognize {Promise<void>[]}, use {Array.<>}. 2020-12-01 21:07:44 +01:00
Antonin Décimo
59507c811f Make type of array of objects compatible with JSDoc and TSDoc.
The best TSDoc type is (Text|HTMLElement)[], but to JSDoc the array is
not distributive. JSDoc prefers Text[]|HTMLElement[], but TSDoc
rejects that syntax. In the end, both are fine with
Array.<Text|HTMLElement>.
2020-12-01 21:07:44 +01:00
Antonin Décimo
22f9442cf4 Fix typos. 2020-12-01 21:07:44 +01:00
Juliusz Chroboczek
e68882fff0 Fix replacing of a video with a new one.
This was broken when we implemented local videos.
2020-12-01 16:20:25 +01:00
Juliusz Chroboczek
2b19a1034f Improve command error handling when not connected. 2020-12-01 03:01:19 +01:00
Juliusz Chroboczek
f4c5d6a6ef Display message header when time delta is larger than a minute. 2020-12-01 02:51:15 +01:00
Juliusz Chroboczek
e8df60cbbe Move automatic presentation into gotPermissions.
Don't attempt to present if we don't have the present permission,
don't display the friendly popup if we've selected presentation.
2020-12-01 00:26:14 +01:00
Juliusz Chroboczek
71744c44ca Implement mike-only login. 2020-11-30 22:16:10 +01:00
Juliusz Chroboczek
9110d03a9a Fix handling of empty strings in reflectSettings. 2020-11-30 21:54:48 +01:00
Juliusz Chroboczek
8df19bc760 Remove more side menu entries when not allowed to present. 2020-11-30 20:53:12 +01:00
Juliusz Chroboczek
1a92535957 Respect whitespace in chat messages. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
02504bcf9b Hide mute button when user is not allowed to present. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
d98c9b95b2 Implement commands /warn and /wall. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
aa71205fa2 Include username and id in group and user actions. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
f9e0573654 Implement remote mute. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek
6040d1943c Allow forwarding usermessages.
They now have the same format as chat messages; the only difference
is that they are not stored in the chat history.

Also adds userMessage method to ServerConnection.

Fix usermessages.
2020-11-30 14:39:36 +01:00
Alain Takoudjou
60470cf8cf Simplify Settings menu icon 2020-11-29 22:35:34 +01:00
Alain Takoudjou
63b460d20c Move User menu to Settings sidebar 2020-11-29 22:35:21 +01:00
Juliusz Chroboczek
3a86157f15 Remove streamed video when it finishes. 2020-11-29 22:26:22 +01:00
Juliusz Chroboczek
e2a79e24a1 Mute local audio when streaming video. 2020-11-29 22:17:51 +01:00
Juliusz Chroboczek
08a2ff63fc Replace type cast with type assertion. 2020-11-28 03:46:31 +01:00
Juliusz Chroboczek
a2e322edcb Rework custom video controls.
Move custom video controls into its own function.  Remove some
DOM traversals, avoid querySelector.  Remove dead code.
2020-11-28 03:46:31 +01:00
Alain Takoudjou
907a712d6a Remove support for disabling camera in media player. 2020-11-27 21:23:58 +01:00
Alain Takoudjou
484781e3c1 Close side menu after a local media file is loaded 2020-11-26 22:58:37 +01:00
Toke Høiland-Jørgensen
08b1a50d21 Fix CSS for new version of Font Awesome. 2020-11-25 17:02:27 +01:00
Juliusz Chroboczek
6e548deded Handle removetrack event on streamed videos.
Probably useless, but I'm supersticious.
2020-11-24 23:22:24 +01:00
Juliusz Chroboczek
6a9ab96902 Use default controls for streamed video. 2020-11-24 23:05:43 +01:00
Juliusz Chroboczek
58ba37d8da Implement stopping of videos. 2020-11-24 22:41:43 +01:00
Juliusz Chroboczek
2c9ee2f431 Set outgoing rate for all stream types, not just local.
We were inconsistent with stream creation.
2020-11-24 21:21:26 +01:00
Juliusz Chroboczek
3167c217db Implement playing of local files. 2020-11-24 19:36:11 +01:00
Juliusz Chroboczek
2c17157ea2 Implement automatic enabling of camera. 2020-11-24 17:16:52 +01:00
Juliusz Chroboczek
4c9762931d Prevent multiple connections. 2020-11-24 16:29:19 +01:00
Juliusz Chroboczek
81db6e73eb Add some typing annotations. 2020-11-24 15:55:12 +01:00
Juliusz Chroboczek
689bc63330 Make /me undocumented. 2020-11-24 15:46:10 +01:00
Juliusz Chroboczek
db4ea57883 Rework the command parser, implement /help. 2020-11-24 14:55:52 +01:00
Juliusz Chroboczek
dcfd071ea0 Remove studio mode.
It's not useful.
2020-11-20 21:22:52 +01:00
Alain Takoudjou
b1dac6f477 sfu webfont: switch to fontawesome 5 2020-11-20 20:54:33 +01:00
Alain Takoudjou
ff110ec9cd remove button control to mute/unmute my video 2020-11-20 20:50:47 +01:00
Juliusz Chroboczek
0bc8129159 Disable the present button while setting up a presentation.
Users sometimes click on the button multiple times.
2020-11-09 01:16:13 +01:00
Juliusz Chroboczek
85df898101 Remove PIP button when not supported. 2020-11-09 00:35:52 +01:00
Juliusz Chroboczek
3d3182acf8 Fix typo in side menu. 2020-11-09 00:13:13 +01:00
Juliusz Chroboczek
47c90037f3 Allow brackets and ampersands in URLs. 2020-11-09 00:11:55 +01:00
Juliusz Chroboczek
3c607a6e72 Improve typing, reindent. 2020-11-08 17:07:17 +01:00
Juliusz Chroboczek
3c57cc772e Merge remote-tracking branch 'alain/sfu-update' into master 2020-11-08 14:06:05 +01:00
Alain Takoudjou
c4f97b3cf0 make button on video more visible when background is white 2020-11-06 11:04:10 +01:00
Alain Takoudjou
7cb73a501f do not listen on camera control button when it's not present 2020-11-06 10:03:33 +01:00
Juliusz Chroboczek
49ade2f66f Allow 30s slack for message times in the future. 2020-11-05 21:09:49 +01:00
Juliusz Chroboczek
96c3e4f830 Add warning about screen sharing under Safari. 2020-10-31 23:26:56 +01:00
Alain Takoudjou
581d2439ab video controls on mobile 2020-10-31 01:23:20 +01:00
Alain Takoudjou
e900ef6d89 fix resize video on screen sharing too 2020-10-31 01:15:03 +01:00
Alain Takoudjou
4e2993dd1d put message send date in the msg header block 2020-10-31 00:37:03 +01:00
Juliusz Chroboczek
4911b7ad38 Buffer local ICE candidates.
Apparently, it is possible for an ICE candidate to be generated
before onnegotiationneeded triggers.  Avoid losing a candidate
in that case.
2020-10-30 00:35:36 +01:00
Alain Takoudjou
358cdd918d make video control buttons more visible 2020-10-29 09:55:32 +01:00
Juliusz Chroboczek
56641b8d84 Allow 1s slack for long time display. 2020-10-28 18:00:48 +01:00
Alain Takoudjou
5a526c24f6 sfu.js: fix display message time in chat box 2020-10-28 16:58:14 +01:00
Alain Takoudjou
2388dfd351 allow to disable camera on videoElement 2020-10-28 16:58:14 +01:00
Alain Takoudjou
2e0b195964 fix resizing when we have only 2 videos 2020-10-28 16:58:14 +01:00
Alain Takoudjou
31deef47f5 fix video resizing, add a button to close chat 2020-10-28 16:58:14 +01:00
Alain Takoudjou
fc152d4377 allow to hide chat, improve settings bar and others 2020-10-28 16:58:14 +01:00
Alain Takoudjou
fa694e67bf improve html interface, add custom controls for video 2020-10-28 16:58:14 +01:00
Juliusz Chroboczek
69540e23af Allow anonymous users to chat. 2020-10-08 15:19:29 +02:00
Juliusz Chroboczek
2b4372ad87 Sort usernames case-insensitively in user interface. 2020-10-08 15:11:52 +02:00
Juliusz Chroboczek
179b57a986 Display destination in private messages. 2020-10-05 20:48:44 +02:00
Juliusz Chroboczek
66dd71678e Implement private messages. 2020-10-01 16:59:09 +02:00
Juliusz Chroboczek
3bd9a1db4e Timestamp chat messages. 2020-09-30 00:54:12 +02:00
Juliusz Chroboczek
480922268e Some more tweaks to JS typing. 2020-09-29 18:16:54 +02:00
Juliusz Chroboczek
8399ee2c4a Implement group description. 2020-09-24 22:03:41 +02:00
Juliusz Chroboczek
6a4784da44 Hide share button if getDisplayMedia doesn't exist. 2020-09-23 21:53:59 +02:00
Juliusz Chroboczek
2e63c0f305 Error handling when attempting chat on closed connection. 2020-09-23 21:53:59 +02:00
Juliusz Chroboczek
667412e6ae Implement /set command. 2020-09-23 21:53:59 +02:00
Juliusz Chroboczek
0aa77441bd Improve typing of javascript code.
We now enable typing of sfu.js.
2020-09-20 17:25:41 +02:00
Juliusz Chroboczek
eab848f2cf Add ability to receive nothing. 2020-09-18 20:09:52 +02:00
Juliusz Chroboczek
8a4b2f5d3f Implement studio and blackboard mode. 2020-09-18 19:58:05 +02:00
Juliusz Chroboczek
b8011371cf Rework settings handling in sfu.js.
There is now a data structure that contains the ultimate truth
about the user's preferences.  We no longer grovel through the
UI components.
2020-09-18 19:58:05 +02:00
Juliusz Chroboczek
f8ae908d7a Implement message for locked groups. 2020-09-18 11:40:00 +02:00
Juliusz Chroboczek
e824b93584 Improve error handling in ServerConnection.connect. 2020-09-18 11:28:13 +02:00
Juliusz Chroboczek
b2f01a528e Fix URL in ServerConnection.connect. 2020-09-18 11:24:33 +02:00
Juliusz Chroboczek
714a0939d6 Fix formatting of /me. 2020-09-16 01:47:36 +02:00
Juliusz Chroboczek
77179c3db9 Allow usernames with spaces.
This requires a proper parser for commands.
2020-09-16 01:42:39 +02:00
Juliusz Chroboczek
1672f13230 Don't login automatically.
Users find it confusing, especially when the browser disables autoplay.
2020-09-16 01:02:46 +02:00
Antonin Décimo
5ad4df5a45 Add missing semicolons. 2020-09-14 17:23:06 +02:00
Juliusz Chroboczek
aa3e094f65 Fix checkbox for activity detection, increase interval to 200ms. 2020-09-14 17:15:44 +02:00
Juliusz Chroboczek
abb8b70a0d Load toastify before its users. 2020-09-12 18:31:04 +02:00
Juliusz Chroboczek
66a721a55c Improve typing of sfu.js. 2020-09-12 16:44:42 +02:00
Juliusz Chroboczek
6a554831a1 Sort users lexicographically. 2020-09-12 16:44:42 +02:00
Juliusz Chroboczek
7707775cca Implement user-readable message for kick. 2020-09-12 12:26:07 +02:00
Juliusz Chroboczek
5c97e739a6 Implement activity detection. 2020-09-11 23:43:30 +02:00
Juliusz Chroboczek
d35f599922 Minor fixes to sfu.js. 2020-09-11 22:46:23 +02:00
Juliusz Chroboczek
0b5416f617 Revert blurring failed media.
Failed media must still be usable.
2020-09-11 21:53:53 +02:00
Juliusz Chroboczek
8d9c3d7d1c Add userdata field to ServerConnection and Stream. 2020-09-11 21:39:18 +02:00
Alain Takoudjou
bcc0e8da5e sfu: add 404 custom page 2020-09-11 16:51:56 +02:00
Alain Takoudjou
df0bb231af more fixes on web interface 2020-09-11 16:51:56 +02:00
Juliusz Chroboczek
760cafe02a Display help message after receiving permissions from server.
We used to display the help message too early, which caused us to
display it even if the group doesn't exist or the user doesn't have
the present permission.
2020-09-11 09:52:40 +02:00
Juliusz Chroboczek
66d352b35a Rename Parameters to Settings, fix typo. 2020-09-11 09:52:40 +02:00
Alain Takoudjou
640fbb8107 more improvement on design 2020-09-11 09:52:40 +02:00
Juliusz Chroboczek
0ab8425025 Remove icon on mainpage. 2020-09-11 09:52:40 +02:00
Alain Takoudjou
71f5db03ad fix display login form and video on mibile 2020-09-11 09:52:40 +02:00
Alain Takoudjou
e5ccc82204 minor fixes 2020-09-11 09:52:39 +02:00
Alain Takoudjou
efb8a71981 improve sfu design and remove some useless code 2020-09-11 09:52:39 +02:00
Alain Takoudjou
32459b4b5b fix connexion problem with new users 2020-09-11 09:52:39 +02:00
Alain Takoudjou
788e43ba7a add some interface improvement 2020-09-11 09:52:39 +02:00
Alain Takoudjou
382446ebcb sfu: update layout and make video working with mobile too 2020-09-11 09:52:39 +02:00
Alain Takoudjou
76e812d00f sfu: first working design 2020-09-11 09:52:39 +02:00
Juliusz Chroboczek
517d7edbc8 Make login work when sessionStorage is not available.
Thanks to Ralf Treinen for pointing out the issue.
2020-09-10 15:30:49 +02:00
Juliusz Chroboczek
c9865830cc Fix screen sharing on Safari.
Apparently Safari requires {video: true}.
2020-09-10 10:03:14 +02:00
Juliusz Chroboczek
346f93dd16 Maintain information about whether renegotiation is permitted.
Renegotiation is not correct when the stream is fresh, for example
after the user has switched the camera.
2020-09-10 01:33:23 +02:00
Juliusz Chroboczek
39789dc89a Make addSharedMedia go through newUpStream.
Otherwise the callbacks don't get set.
2020-09-08 03:10:45 +02:00
Juliusz Chroboczek
93f116021d Clear user list upon disconnection. 2020-09-05 12:59:28 +02:00
Juliusz Chroboczek
eac7a2afc4 Display a notification when local stream fails.
We used to silently fail when there was a problem with camera
permissions.  Display a notification.
2020-09-05 12:52:02 +02:00