David Colburn
69b94e1142
error logging
2021-06-03 01:57:43 -05:00
David Zhao
9ca662f06e
fix deadlocks in track subscription
2021-06-02 20:42:44 -07:00
David Zhao
0900054c24
ability to disable auto subscribe per participant
2021-05-22 22:54:47 -07:00
David Zhao
681010072c
support for exposing stats via prometheus
2021-05-11 22:04:59 -07:00
David Zhao
9616149a88
collect inbound and outbound packet stats
2021-05-11 00:31:18 -07:00
David Zhao
6b63cd5b31
Revamp data channels ( #32 )
...
* support for built-in data channels. active speaker updates via data channel
* fixed tests
* update to Pion 3.0.27
2021-04-27 22:02:59 -07:00
David Zhao
e4238890ff
Refactor/cleanup of negotiation path
2021-04-15 17:03:22 -07:00
David Zhao
dfac44d59e
reduce reliance of funk, fixed bug getting subscribed tracks
2021-03-27 21:54:46 -07:00
David Zhao
0de53f9a33
updated tests for participant update
2021-03-16 22:31:09 -07:00
David Zhao
f7ed2cee60
RoomService.updateParticipantMetadata, participant permissions
2021-03-16 01:22:21 -07:00
David Zhao
7d02c01fd8
refactor - moved common code to livekit/protocol
2021-03-13 22:01:51 -08:00
David Zhao
e20c831c14
automatic configuration of TURN, with per-room credentials. version 0.6.0
2021-03-07 23:30:21 -08:00
David Zhao
e402d0d0af
subscriber control of tracks (unsubscribe/mute/quality), support simulcast ( #23 )
...
* subscription control & simulcast RTC APIs
* don't remove tracks for simulcast
2021-02-16 13:52:50 -08:00
David Zhao
a96069969d
support audio level extension & active speaker detection ( #20 )
...
* send active speaker updates with audio level
* add test on loudness sorting
* use a float to represent audio level
2021-02-14 14:30:23 -08:00
David Zhao
538461d5dc
pass client defined metadata from JWT to participant ( #17 )
2021-02-10 23:13:36 -08:00
David Zhao
38140debdf
Admin APIs for participant management ( #13 )
...
* stubs for room admin APIs
* room store APIs to persist participants
* participant persistence
* updated protobufs
* implemented APIs to mute/remove/etc
* fixed mute handling
2021-02-10 00:06:32 -08:00
David Zhao
e30c9f706c
cleaner resync
2021-02-07 22:44:25 -08:00
David Zhao
c015e267b0
switch to a single redis subscriber, close properly
2021-02-04 00:25:09 -08:00
David Zhao
712d0da6cc
use synchronized GetParticipants to ensure eliminate timing issues upon participant join
2021-01-31 23:06:48 -08:00
David Zhao
76b0dc62a7
close rooms after delay instead of immediately after participant departure, to allow reconnects
2021-01-31 14:19:16 -08:00
David Zhao
2cf2c448be
rework multi-node routing, cleaner design for reconnection
2021-01-30 22:24:08 -08:00
David Zhao
28e73bd109
rename Participant.name to Participant.identity
2021-01-30 14:00:37 -08:00
David Zhao
57a13f9930
fix synchronization issues, use AtomicFlag/atomic.Value for shared fields
2021-01-29 00:49:32 -08:00
David Zhao
0e48711e4b
don't send participant updates to closed participants (typo fix)
2021-01-28 01:00:48 -08:00
David Zhao
a065a01592
fixed panic when client connected abruptly
2021-01-26 17:38:47 -08:00
David Zhao
0b00b26d05
terminate RTC sessions properly
2021-01-19 16:18:03 -08:00
David Zhao
d83a1b1af3
automatically cleanup participant redis data
2021-01-18 17:56:48 -08:00
David Zhao
9064f6ade1
decouple websocket and RTC nodes, prep for distributed
2021-01-16 10:37:38 -08:00
David Zhao
21ac2413a2
catch panics to ensure reliability
2021-01-11 00:07:11 -08:00
David Zhao
456df0fb91
use IsReady instead of checking for multiple statuses
2021-01-10 22:09:36 -08:00
David Zhao
7dcb88343a
binding to buffer and correctly forwarding
2021-01-10 16:18:58 -08:00
David Zhao
258f5add2d
protocol update: explicit AddTrack to move negotiation initiation to server side.
...
In order to avoid race conditions with WebRTC, where either side could initiate an offer when tracks have changes, we'll always initiate them from the SFU side.
2021-01-09 23:40:29 -08:00
David Zhao
0336e9d92f
tests for MediaTrack, moving interfaces to new package
2020-12-31 23:24:45 -08:00
David Zhao
313236e3d3
server to support mutes
2020-12-31 14:21:19 -08:00
David Zhao
46b5942a95
allow cross origin requests
2020-12-28 10:25:27 -08:00
David Zhao
3fb606236e
sends roominfo on join
2020-12-27 22:38:13 -08:00
David Zhao
804b7cb332
JWT token based auth
2020-12-25 22:31:11 -08:00
David Zhao
026c8725a3
finished room test
2020-12-22 20:59:39 -08:00
David Zhao
3518435783
using counterfeiter instead of gomocks, much simpler
2020-12-22 17:26:26 -08:00
David Zhao
2a79bdb678
switch participant to interface
2020-12-21 23:00:48 -08:00
David Zhao
c4cb29a3bb
use PeerConnection interface to make it easier to mock
2020-12-20 22:57:06 -08:00
David Zhao
f753172308
datatrack implementation
2020-12-19 16:13:56 -08:00
David Zhao
050da05000
Send PLI when target client doesn't have keyframes
2020-12-17 22:28:03 -08:00
David Zhao
ac83bf4c78
subscribe new participant after JOINED, to ensure negotiate requests aren't missed
2020-12-13 23:08:20 -08:00
David Zhao
7d7787590c
updated server to webrtc v3 (untested)
2020-12-11 20:15:04 -08:00
David Zhao
2b9fee45c4
fixed deadlock when client disconnecting
2020-12-05 22:20:13 -08:00
David Zhao
71a7914eec
send event when participant disconnects
2020-12-05 17:53:33 -08:00
David Zhao
abd17af4d4
protocol to synchronize published tracks
2020-12-05 00:03:26 -08:00
David Zhao
c401a6fdab
ID -> SID
2020-12-04 23:04:24 -08:00
David Zhao
04dcdc3772
subscribe the right target participant
2020-12-03 22:13:30 -08:00