107 Commits

Author SHA1 Message Date
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 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 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 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 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 1f8bb57c92 handle when RTCP comes in after track is closed 2021-01-25 00:03:39 -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 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
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 381ec58050 some tests 2021-01-12 18:03:08 -08:00
David Zhao bd885b1de9 handle unpublish track 2021-01-12 17:07:01 -08:00
David Zhao 21ac2413a2 catch panics to ensure reliability 2021-01-11 00:07:11 -08:00
David Zhao 6464ae3cd6 send downtrack binding reports
fixed tests
2021-01-10 22:36:24 -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