136 Commits

Author SHA1 Message Date
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
e342ea2155 Fixed #16 explicit passing of participant id 2021-02-12 23:53:46 -08:00
David Zhao
090f8d0664 use dedicated PeerConnections for sending and receiving (#19)
* protobuf updates to support new protocol

* use dedicated publish & subscribe peerconnections

* update client to work with dedicated PCs

* fix Go client negotiation, reduced length of UUID
2021-02-12 22:30:31 -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
61b9569e38 fix: use track SID instead of source ID 2021-02-08 16:45:18 -08:00
David Zhao
f1f5b8dafe use proper fix for using shared bufferFactory, remove resync hack 2021-02-07 23:06:16 -08:00
David Zhao
e30c9f706c cleaner resync 2021-02-07 22:44:25 -08:00
David Zhao
d13a962afd fixed message channel deadlock 2021-02-07 21:58:20 -08:00
David Zhao
fa9d2af495 use ion-sfu commit 2021-02-06 23:18:21 -08:00
David Zhao
290e100d0d fix generation 2021-02-06 23:15:30 -08:00
David Zhao
ae203c27e3 send resync to ensure keyframes have been requested 2021-02-06 23:02:21 -08:00
David Zhao
74cf6b226d fix mute 2021-02-05 17:48:12 -08:00
David Zhao
c012c742bd fix allowing client negotiations prematurely. 2021-02-05 17:46:52 -08:00
David Zhao
c978a9cb1f move to ion-SFU's receiver and downtrack 2021-02-04 21:57:40 -08:00
David Zhao
c015e267b0 switch to a single redis subscriber, close properly 2021-02-04 00:25:09 -08:00
David Zhao
5dec5b1ae2 update 2021-02-03 17:55:35 -08:00
David Zhao
0cb09ee945 handle cid changes between publish intent and onTrack 2021-02-02 23:55:56 -08:00
David Zhao
d117cce37b integration test around receive before publish 2021-02-02 22:53:48 -08:00
David Zhao
88e247d95a use SendRecv transceiver instead of Sendonly 2021-02-02 22:47:36 -08:00
David Zhao
a4266478c5 better logging around negotiations 2021-02-02 01:16:13 -08:00
David Zhao
70574deaf7 better debug logs around negotiations 2021-02-02 00:40:55 -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
320a6c35bf enable explicit reconnect to distinguish between WS disconnect vs PeerConnection disconnect 2021-01-30 23:16:11 -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
1a8e26031f always use multi-node when Redis is provided, removed config 2021-01-30 13:29:31 -08:00
David Zhao
5ce52b6a30 fixed keys parsing from ENV/cli 2021-01-30 13:20:39 -08:00
David Zhao
65078f5ef8 skip track updates when client has disconnected 2021-01-29 01:03:20 -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
dd8a1a5055 use atomic.Load to ensure atomicity 2021-01-28 23:40:30 -08:00
David Zhao
fe83baa662 reuse the same Participant ID within the same room/session 2021-01-28 01:14:06 -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
0813a55617 ignore duplicate tracks being published 2021-01-27 09:42:02 -08:00
David Zhao
08f5957d65 log version number on startup 2021-01-27 09:08:23 -08:00
David Zhao
25d476b8ac fixed multi-node routing, correctly set rtc and signal nodes 2021-01-27 01:16:08 -08:00
David Zhao
61db4f5b66 fixed multi-node so signal node can start sessions 2021-01-26 23:52:55 -08:00
David Zhao
ed0b9db655 avoid sending to closed channels 2021-01-26 21:45:00 -08:00
David Zhao
a065a01592 fixed panic when client connected abruptly 2021-01-26 17:38:47 -08:00
David Zhao
b7acdfeec1 fixed syntax error in test 2021-01-26 10:38:31 -08:00
David Zhao
bd81b073d1 allow keys to be passed in from env (again), cli to use LIVEKIT prefix 2021-01-25 21:34:16 -08:00
David Zhao
1f8bb57c92 handle when RTCP comes in after track is closed 2021-01-25 00:03:39 -08:00
David Zhao
f004aa2952 auto-create rooms upon creation 2021-01-24 23:47:24 -08:00
David Zhao
b7a00a8a56 increase default token ttl to 6h 2021-01-24 22:14:42 -08:00
David Zhao
01d62edafa doc updates 2021-01-24 15:18:34 -08:00
David Zhao
c4fb1b3808 fixed localrouter timeout, updated VideoGrant fields 2021-01-24 12:52:40 -08:00
David Zhao
c04fd86f9c multi-node integration tests 2021-01-19 20:34:11 -08:00
David Zhao
0b00b26d05 terminate RTC sessions properly 2021-01-19 16:18:03 -08:00
David Zhao
71b4673a0a cleanup room state, proper participant termination 2021-01-18 23:44:59 -08:00