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
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
Juliusz Chroboczek
9a0c830a59
Fix setting of send bitrate for Firefox.
...
Thanks to Ines Klimann.
2020-09-03 20:19:26 +02:00
Juliusz Chroboczek
c0122c069e
Implement restartIce for older browsers.
2020-09-03 20:19:26 +02:00
Juliusz Chroboczek
e0a81e7f03
Add ability to limit outgoing throughput.
...
This will hopefully become unnecessary once we have better congestion
control.
2020-08-26 19:16:01 +02:00
Juliusz Chroboczek
a4b528e1e7
Implement onnegotiationcompleted callback.
2020-08-26 18:30:29 +02:00
Juliusz Chroboczek
6dc1d72438
Type global variables in sfu.js.
2020-08-24 22:37:48 +02:00
Juliusz Chroboczek
fba0dded84
Type global variables in sfu.js.
2020-08-24 22:31:22 +02:00
Juliusz Chroboczek
e4aad04f28
Fix typo in onended callback of screen share.
2020-08-24 22:24:33 +02:00
Juliusz Chroboczek
a2ab8c3686
Remove up media when closing the socket.
2020-08-23 19:07:52 +02:00
Juliusz Chroboczek
8fbd16cc8c
Minor tweaks to error handling.
2020-08-19 14:39:40 +02:00
Juliusz Chroboczek
33bfb433f1
Mark async functions explicitly in protocol.js.
...
JSDoc doesn't recognise them otherwise.
2020-08-14 14:44:23 +02:00
Juliusz Chroboczek
7848822469
Minor type tightenings in protocol.js.
2020-08-14 14:36:29 +02:00
Juliusz Chroboczek
668fae29ef
Add some more typing assertions to sfu.js.
2020-08-13 20:55:13 +02:00
Juliusz Chroboczek
0067edc6eb
Fix some more Javascript typos.
...
Thanks to Rémi Nollet and Léo Stefanesco.
2020-08-13 20:54:37 +02:00
Juliusz Chroboczek
fc3ee84243
Fix typo in newUpStream.
2020-08-13 20:16:52 +02:00
Juliusz Chroboczek
0102bdc128
Fix typo in gotAbort.
2020-08-13 20:11:21 +02:00
Juliusz Chroboczek
04b0951530
Fix fetching of ICE servers.
2020-08-13 15:45:19 +02:00
Juliusz Chroboczek
3e0bb08955
Split out the javascript protocol interface.
2020-08-13 12:21:29 +02:00
Juliusz Chroboczek
ec742eacdb
Fix typo in renegotiation.
2020-08-13 12:16:05 +02:00
Juliusz Chroboczek
52c4f1a399
Restructure offers.
2020-08-12 13:56:35 +02:00
Juliusz Chroboczek
bc7bd36ba2
Restructure user notifications.
2020-08-12 13:51:31 +02:00
Juliusz Chroboczek
b6adc0b9a8
Rename Connection to Stream in the JS code.
2020-08-12 12:50:28 +02:00
Juliusz Chroboczek
675035ab29
Restructure group and client management messages.
2020-08-12 12:40:40 +02:00
Juliusz Chroboczek
88d2a96819
Restructure error and chat messages.
2020-08-12 12:17:56 +02:00
Juliusz Chroboczek
7b51296262
Split handshake into login/join.
...
For now, join must follow login, but it will make it easier to extend
the protocol for joining multiple groups (think federation).
2020-08-12 11:50:30 +02:00
Juliusz Chroboczek
6a37033ca8
Allow both sides to initiate renegotiation.
...
More reliable reaction to network failures when they are detected
by just one side.
2020-08-11 15:49:33 +02:00
Juliusz Chroboczek
7aab79c4c6
Have chat messages go through the server even when sent to oneself.
2020-08-07 11:33:59 +02:00
Juliusz Chroboczek
23c4aea58f
Implement renegotiation in the up direction.
2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
9506615272
Restart ICE instead of restarting down connections.
2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
8a4d315c51
Move ice-servers.json under dataDir.
...
This makes it easier to deploy by putting all user-serviceable files
under data/.
2020-08-07 11:14:34 +02:00
Juliusz Chroboczek
426c1e06d8
Remove half-baked compatibility code for old browsers.
2020-06-19 11:51:46 +02:00
Juliusz Chroboczek
1e977213d1
Check media status in setMediaStatus.
2020-06-12 21:28:35 +02:00
Juliusz Chroboczek
a8ca2e8559
Make stats reporting independent of the number of tracks.
2020-06-12 15:42:44 +02:00
Juliusz Chroboczek
dbd87895ba
Add visual feedback for connection status.
2020-06-11 19:47:26 +02:00
Juliusz Chroboczek
4b32c55a57
Restart ICE in client on up connection failures.
2020-06-11 19:20:11 +02:00
Juliusz Chroboczek
e175ef0e49
Replace changed connections.
...
We used to destroy and recreate connections, we now replace them atomically.
2020-06-10 20:25:25 +02:00
Juliusz Chroboczek
d3655b8955
Handle client-side errors during negotiation.
2020-06-10 14:38:00 +02:00
Juliusz Chroboczek
0308719719
Implement local mute.
2020-06-09 18:10:11 +02:00
Juliusz Chroboczek
f70ff2424e
Detect sends on closed websocket explicitly.
...
It turns out that send on a closed websocket doesn't throw, so handle
this case explicitly. Thanks to Giuseppe Castagna for noticing.
2020-06-09 01:49:55 +02:00
Juliusz Chroboczek
8830870ded
Implement downloading of recorded videos.
2020-06-01 00:02:17 +02:00
Juliusz Chroboczek
50ad751e7d
Protect against stream being null in connection.close.
...
This may happen if we close a connection before getting any tracks.
2020-05-30 13:15:12 +02:00
Juliusz Chroboczek
0a2c4eb381
Implement recording.
2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
1365683ad6
Fix selection of alternate media devices.
...
Thanks to Giuseppe Castagna for noticing.
2020-05-29 15:56:06 +02:00
Juliusz Chroboczek
eb6ab8aa1a
Implement workaround for older browsers that don't have transceivers.
2020-05-24 13:39:06 +02:00
Juliusz Chroboczek
9575b80893
Use mids instead of track ids for indexing labels.
...
It turns out that track ids are not necessarily the same on the local and
remote sides. Thanks to Ines Klimann for noticing the issue.
2020-05-21 22:40:11 +02:00
Juliusz Chroboczek
cbff5067b2
Implement sharing of multiple application windows at a time.
2020-05-21 22:40:11 +02:00
Juliusz Chroboczek
12858e1f36
Implement commands /lock and /unlock.
2020-05-18 15:24:04 +02:00
Juliusz Chroboczek
037f002a29
Make the requested field of client requests into a dictionary.
2020-05-18 00:56:29 +02:00
Juliusz Chroboczek
b26a8cad78
Label tracks explicitly.
...
For now, this is only used to request screen sharing as opposed to normal
videos. In the future, it will be used for simulcasting.
2020-05-17 23:28:19 +02:00
Antonin Décimo
c52fa75686
Fix undefined disconnectbutton variable.
...
Commit 8257a7f
"Remove dead variables." was wrong in that it deleted
the 'diconnect' [sic] variable definition, and left the
'disconnectbutton' variable undefined.
2020-05-14 12:55:41 +02:00
Juliusz Chroboczek
6efd6007f1
Fix bitrate computation.
...
I'm an idiot.
2020-05-12 19:20:39 +02:00
Juliusz Chroboczek
4a476abe11
Add minimum size for list of users.
2020-05-11 20:38:47 +02:00
Juliusz Chroboczek
fbf26be8c6
Instantiate box explicitly.
...
Thanks to Antonin Décimo.
2020-05-11 02:58:48 +02:00
Juliusz Chroboczek
8257a7ff19
Remove dead variables.
2020-05-11 02:51:44 +02:00
Antonin Décimo
31a5a8e8f1
Fix escaping of \ in character class.
...
> Rejeté. Ce n'est pas un escape.
D’après mes tests, c’est considéré comme un escape. Doubler le
caractère serait suffisant.
const url = 'https://example\\.com ';
const urlRegexp1 = /https?:\/\/[-a-zA-Z0-9@:%/._\+~#=?]+[-a-zA-Z0-9@:%/_\+~#=]/g;
const urlRegexp2 = /https?:\/\/[-a-zA-Z0-9@:%/._\\+~#=?]+[-a-zA-Z0-9@:%/_\\+~#=]/g;
console.log(url.length); // 20
console.log(urlRegexp1.exec(url)); // ["https://example "]
console.log(urlRegexp2.exec(url)); // ["https://example\.com "]
2020-05-11 00:33:58 +02:00
Antonin Décimo
33610e89f8
Introduce a lexical block in case.
2020-05-10 22:42:48 +02:00
Antonin Décimo
61b45ace5a
Correctly close input tags.
2020-05-10 21:43:09 +02:00
Antonin Décimo
38a341de95
Fix unsafe negation.
...
https://eslint.org/docs/rules/no-unsafe-negation
2020-05-10 21:41:46 +02:00
Antonin Décimo
1064c4a47b
Remove mentions of #anonymous-users.
2020-05-10 21:41:33 +02:00
Antonin Décimo
f595da8fa9
Add missing semicolons.
2020-05-10 21:39:42 +02:00
Juliusz Chroboczek
89695c3713
Implement reception of audio only.
2020-05-09 22:44:34 +02:00
Juliusz Chroboczek
f78030c482
Initial implementation of mike and camera selection.
...
We're closing and reopening the connection each time, we should be
renegotiating instead.
2020-05-05 20:50:27 +02:00
Juliusz Chroboczek
175b08bb08
Remove dead code.
2020-05-05 17:30:56 +02:00
Juliusz Chroboczek
3fec035132
Let setLocal and SharedMedia take the new state as an explicit parameter.
2020-05-04 23:49:44 +02:00
Juliusz Chroboczek
1f50b42ee0
Disable checkbox on media failure in setLocal and SharedMedia.
2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
78cf9d0dbc
Resize videos automatically.
2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
10526d474e
Add command /clear.
2020-04-30 19:13:32 +02:00
Juliusz Chroboczek
34eacafe5c
Add sample ice-servers.json.
2020-04-30 19:13:32 +02:00
Juliusz Chroboczek
9bd093e78c
Stop tracks before closing stream.
...
Otherwise the camera status light stays on.
2020-04-29 01:22:39 +02:00
Juliusz Chroboczek
d24aafd314
Remove all down connections at websocket close.
2020-04-27 01:37:27 +02:00
Juliusz Chroboczek
e7e1f248ea
Dont send close on abort.
2020-04-27 01:33:05 +02:00
Juliusz Chroboczek
087f804100
Clear error after connecting.
2020-04-26 22:00:48 +02:00
Juliusz Chroboczek
eed3d2aff7
Display upstream throughput.
2020-04-26 22:00:48 +02:00
Juliusz Chroboczek
e19d704a0a
Format error messages on the client side.
2020-04-26 19:15:02 +02:00
Juliusz Chroboczek
c441b49d26
Send rate updates over RTCP.
2020-04-26 03:03:39 +02:00
Juliusz Chroboczek
b201c3d93c
Implement ping/pong exchanges and client timeouts.
2020-04-25 22:44:24 +02:00
Juliusz Chroboczek
4ea4e7c0eb
Implement chat history.
2020-04-25 21:19:11 +02:00
Juliusz Chroboczek
1d90f44315
Kill Message field in clientMessage.
...
Having both Message and Value is confusing.
2020-04-25 20:49:21 +02:00
Juliusz Chroboczek
fc4bac3f16
Hide overflow on user list.
2020-04-25 20:15:47 +02:00
Juliusz Chroboczek
2e841c082e
Implement leave command.
2020-04-25 18:43:22 +02:00
Juliusz Chroboczek
2811506dfb
Allow anonymous users to send commands.
2020-04-25 18:42:06 +02:00
Juliusz Chroboczek
3ea63c394c
Implement abort message in the downstream direction.
...
This is not quite correct, we're sending a spurious close.
2020-04-25 18:29:44 +02:00
Juliusz Chroboczek
8bfdc2b040
Display username, rename admin to op.
2020-04-25 18:10:37 +02:00
Juliusz Chroboczek
5c40b95e9a
Discard permissions when disconnecting.
2020-04-25 17:49:50 +02:00
Juliusz Chroboczek
d46014242d
Set page title.
2020-04-25 17:43:56 +02:00
Juliusz Chroboczek
25825e5b22
Implement kick, op and friends.
2020-04-25 17:36:35 +02:00
Juliusz Chroboczek
6f7c809b71
Unshare screen when stream ends.
2020-04-25 15:42:43 +02:00
Juliusz Chroboczek
b018b14c80
Display bitrate.
2020-04-25 15:42:43 +02:00
Juliusz Chroboczek
dd96f120a9
Don't allow empty group name in mainpage.
2020-04-25 14:34:47 +02:00
Juliusz Chroboczek
2890d21c98
Add group permissions.
2020-04-25 14:34:47 +02:00
Juliusz Chroboczek
cb1782b6b2
Allow server to push error message to client.
2020-04-25 02:41:16 +02:00
Juliusz Chroboczek
f5a518a448
Initial commit.
2020-04-25 01:06:57 +02:00