279 Commits

Author SHA1 Message Date
David Colburn b00d5a02cb RoomRecorder (#70) 2021-07-27 00:39:48 -05:00
David Zhao f8782fae3f Send stun servers to clients (#69)
* Send stun servers to clients

* use TURN/UDP as STUN servers
2021-07-26 15:43:26 -07:00
hn8 c682982af2 Update TLS port default as rfc5766 (#68) 2021-07-23 15:11:11 -07:00
David Colburn 8e872881c1 use receiver lb threshold option 2021-07-22 21:52:56 -07:00
David Zhao 834dce543b fix participant APIs when using LocalRouter (#67) 2021-07-22 11:06:23 -07:00
David Colburn d7be9096c6 persist hidden field to startSession 2021-07-20 17:23:06 -07:00
David Colburn 4bab395ac9 Hidden participants (#65)
Enables hidden recording and/or forwarding participants
2021-07-19 18:33:28 -05:00
hn8 87dfb2b117 log: consistent log key (#60) 2021-07-19 10:28:51 -07:00
hn8 06c44ca8f6 feat: support UDP in TURN (#61)
1. Add UDP option to TURN
2. GetLocalIPAddress default to IPv4
2021-07-19 09:21:59 -07:00
David Zhao c493022f0f fix force_tcp flag: don't set UDPMux when enabled (#62) 2021-07-19 09:16:01 -07:00
hn8 99e9997d0a feat: support SetLogger & SetLoggerFactory (#57)
* upgrade logr to stable release v1.0.0

* feat: support SetLogger & SetLoggerFactory
2021-07-18 21:28:09 -07:00
Andy Lindeman 7b05e2fb30 Propagate err2 if not nil (#56) 2021-07-17 10:14:52 -07:00
David Zhao 55eb654a1b When adaptive-simulcast is used, allow subscribers to switch to the next available layer (#55) 2021-07-16 14:24:00 -07:00
David Colburn e3fc3397ce move cors to middleware (#54)
* move cors to middleware

* check for nil url

* remove snapshot
2021-07-15 18:36:54 -05:00
David Colburn 53bc65285c connection validation 2021-07-15 14:23:17 -07:00
hn8 1ae7488fe3 feat: customize logger config (#53) 2021-07-15 12:33:48 -07:00
David Zhao 4ce29799cf remove H.264 profile 42001f. Safari (14.1.1) does not playback tracks offered in this profile 2021-07-13 22:32:38 -07:00
David Zhao 53b52a67ca use protobuf for clients with protocol > 1 (#52) 2021-07-13 22:28:34 -07:00
David Zhao 850fecf931 Allow publishers to set layer availability (#51)
* support client message to update active layers

* update to match new protocol
2021-07-13 21:35:08 -07:00
David Colburn 5fdb6361cd Dev debug info (#50) 2021-07-13 14:05:25 -05:00
David Zhao d38fc43b89 Lock room creation to ensure atomic creation & node assignment (#46)
* Lock room creation to ensure atomic creation & node assignment

* more tests
2021-07-12 14:50:14 -07:00
David Zhao a80e8cf69f Enable passing in local IP, refactored IP detection (#48)
* Enable passing in local IP, refactored IP detection

* update docker server instructions
2021-07-11 08:42:11 -07:00
David Colburn 50538db21f update log keys 2021-07-09 10:49:21 -07:00
hn8 dcfe7eaf4f Enhancement: audio speakers (#44)
* refactor: active speakers

1. Observe the loudest adjusted with active ratio instead of linear average of decibel values
2. Follow RFC6465 to convert audio level from decibel to linear value.
3. Quantize audio level for stable slice comparison
4. Switch moving average algorithm from MMA to EMA to have the same center of mass with SMA
5. Minor: remove seenSids map allocation
6. Minor: minimize division arithmetic

* Update pkg/rtc/audiolevel.go

Co-authored-by: David Zhao <david@davidzhao.com>
2021-07-09 09:46:24 -07:00
David Colburn 145f058eaa send leave when client reconnects on server restart (#43) 2021-07-08 01:37:21 -05:00
David Colburn 3eba7fe25c update twirp and pb 2021-07-06 19:30:06 -07:00
David Zhao 4ec2959950 Use discreet ports by default due to write bottleneck (#40) 2021-07-06 15:08:46 -07:00
David Zhao 1ced03d72f fixed failing tests 2021-07-02 17:04:22 -07:00
David Zhao 6751361187 Feature: codec restrictions.
In order to ensure clients are publishing with compatible codecs, the server can enforce codec restrictions.
2021-07-02 16:54:54 -07:00
David Colburn e543aaa98a turn server tls (#38)
* tls

* acm

* use cert/key files

* turn -> turns

* turn cert config

* updates

* move panic

* tidy

* final updates
2021-07-01 17:00:49 -05:00
David Zhao 4e6eafa63c for test environments, allow use of internal IP if external IP isn't available 2021-06-30 15:14:58 -07:00
David Colburn b05da63fc3 send update on reconnect 2021-06-28 16:22:51 -07:00
David Zhao 083e7cc860 Reduce default PLI throttle values, ion-sfu resync fix 2021-06-28 15:49:17 -07:00
David Zhao 343aec98a0 Remove STUN candidates, disconnect clients on ICE failed 2021-06-28 12:47:16 -07:00
David Colburn 815fd5066d remove unconnected participants after 1m 2021-06-26 18:38:44 -07:00
David Zhao c0c38f2e1d Fixed deadlocks with updated simulcast logic 2021-06-25 17:12:22 -07:00
David Colburn 871ecd0366 best quality if < 10 subs 2021-06-23 22:01:23 -07:00
David Zhao d8b96ac2c8 Room API to support selective subscriptions 2021-06-23 14:12:51 -07:00
David Zhao 0c75924c73 increase subscription debounce interval 2021-06-23 12:44:40 -07:00
David Colburn eda5cfbfd5 better pli throttling 2021-06-23 12:00:18 -07:00
David Colburn 0ffb8a97e4 rtcpThrottle -> pliThrottle 2021-06-22 15:00:27 -07:00
David Zhao 3b2b3a4929 debounce track settings API to match client usage pattern 2021-06-22 14:13:24 -07:00
David Zhao bc8becaff6 fixed logic error in speaker updates 2021-06-22 00:35:33 -07:00
David Zhao f0d8b1c7ee fixed bug in smoothing algorithm, fixed tests 2021-06-21 22:18:18 -07:00
David Zhao d69e9f451e Smooth audio levels by averaging over samples. 2021-06-21 18:14:28 -07:00
David Colburn eebc2f5acd add throttle config 2021-06-21 17:13:58 -07:00
David Colburn 46ad247927 fix addTrack 2021-06-21 16:16:13 -07:00
David Colburn 31b4148052 don't send empty pkts 2021-06-21 15:54:42 -07:00
David Colburn fee6f426bb close rtcpThrottle 2021-06-21 15:30:18 -07:00
David Colburn e4a460f30b nil checks 2021-06-21 15:08:49 -07:00