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