1
Fork 0
Commit Graph

99 Commits

Author SHA1 Message Date
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