Commit Graph

87 Commits

Author SHA1 Message Date
David Zhao 0416299e02 fix sender report batching to not exceed MTU 2021-06-03 15:46:41 -07:00
David Colburn 69b94e1142 error logging 2021-06-03 01:57:43 -05:00
David Zhao 6a99146c21 skip ICE restart if subscriber not connected 2021-05-14 22:50:45 -07:00
David Zhao bbadd4ccb6 properly cleanup downtracks on subscriber disconnect 2021-05-12 23:40:41 -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 e1f23e6dbe remove logs about sending lossy packet 2021-04-28 12:39:07 -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 84ac0a718d single port mode connectivity improvements, ICE v2.1.6 2021-04-25 14:13:35 -07:00
David Zhao 4725872884 Disconnect immediately when server initiated close 2021-04-21 22:05:16 -07:00
David Zhao d6c155e060 set joinedAt when participant is created 2021-04-21 21:52:31 -07:00
David Zhao 3b236f0d72 handle client reconnect with ICE restarts 2021-04-19 16:51:20 -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 e47754179c disconnect participant when ICE connection fails 2021-04-10 10:58:12 -07:00
David Zhao b29bde4b87 fixed RLock typo 2021-04-07 14:11:47 -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 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 03d0a8c047 updated to ion-sfu v1.9.1, removed package bufferFactory 2021-03-01 14:49:46 -08:00
David Zhao 0a5808c73e use nack fix in ion-sfu, fixes #26 2021-02-28 22:28:24 -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 99baeb38e4 fix bugs with websocket reconnection, don't re-use redis sinks (#22) 2021-02-15 17:57:01 -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 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 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 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 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 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 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 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 0813a55617 ignore duplicate tracks being published 2021-01-27 09:42:02 -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