Commit Graph

57 Commits

Author SHA1 Message Date
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
92b92ad3de Updated protocol protobufs 2021-04-21 21:52:56 -07:00
David Zhao
93d10b2640 Manual negotiation and plan-b support 2021-04-16 00:56:25 -07:00
David Zhao
e4238890ff Refactor/cleanup of negotiation path 2021-04-15 17:03:22 -07:00
David Zhao
9aa6fc29f5 support immediate disconnect via Leave 2021-04-08 22:06:43 -07:00
David Zhao
b90f851be5 return participant connected timestamps 2021-03-28 21:05:20 -07:00
David Zhao
dfac44d59e reduce reliance of funk, fixed bug getting subscribed tracks 2021-03-27 21:54:46 -07:00
David Zhao
537edda4c3 handle new UpdateParticipant API, enable permission updates 2021-03-20 22:27:47 -07:00
David Zhao
6aee50b397 fixed protobuf path reference 2021-03-19 23:27:22 -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
048cdf9751 ignore generated file from git 2021-03-06 23:17:06 -08:00
David Zhao
fa2ffa46e7 Embedded TURN server 2021-03-06 22:47:48 -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
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
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
c04fd86f9c multi-node integration tests 2021-01-19 20:34:11 -08:00
David Zhao
d83a1b1af3 automatically cleanup participant redis data 2021-01-18 17:56:48 -08:00
David Zhao
834a4747ac refactor bearer token on the client side 2021-01-18 13:27:01 -08:00
David Zhao
513b40c4ce document protocol, added .idea 2021-01-18 11:55:47 -08:00
David Zhao
30e99e8c6b redis based router & roomstore 2021-01-17 00:12:05 -08:00
David Zhao
9064f6ade1 decouple websocket and RTC nodes, prep for distributed 2021-01-16 10:37:38 -08:00
David Zhao
bd885b1de9 handle unpublish track 2021-01-12 17:07:01 -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
313236e3d3 server to support mutes 2020-12-31 14:21:19 -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
202979d346 move to mage for build 2020-12-22 14:37:45 -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
2111513fde track published response, to allow client to assign sid to published tracks 2020-12-17 21:48:48 -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
c64ecc4603 use full candidateInit, update encoding 2020-12-03 21:58:25 -08:00
David Zhao
a6c4db2cb3 refactoring, enabling sending out room updates 2020-12-01 23:32:15 -08:00
David Zhao
0c99163253 using shared proto types for participant state 2020-11-28 15:17:14 -08:00
David Zhao
bea1a87cb8 updated flow, room & participant id created by server 2020-11-28 00:18:34 -08:00
David Zhao
c618f8c42f client consumes provided track 2020-11-13 12:31:01 -08:00
David Zhao
218b9a0277 CLI framing, creates rooms 2020-11-04 23:29:46 -08:00
David Zhao
9ebfebe2dd simple cli with room APIs 2020-11-03 22:01:54 -08:00
David Zhao
925d1c653e switch to websockets, remove grpc dependency 2020-11-03 00:20:46 -08:00
David Zhao
54b59f00e2 handles RTC join 2020-10-31 00:09:46 -07:00
David Zhao
36dd195ca3 Converted RTC back to GRPC for server push capability 2020-10-29 01:02:31 -07:00