Commit Graph

53 Commits

Author SHA1 Message Date
David Zhao a1caeeb8de Update WebRTC and DTLS with security fixes (#678)
* Update WebRTC and DTLS with security fixes.

* remove aggressive nomination settings (now default)

* fixed TURN issue
2022-05-10 18:27:16 -07:00
cnderrauber 07b93e2e5b add support for av1 svc (#669)
* add support for av1 svc
2022-05-06 18:24:29 +08:00
David Zhao 289d63ac53 Fix node ip parameter not being used (#661)
* Use node-ip if provided

* formatting
2022-04-29 15:26:37 -07:00
cnderrauber 8bb46637bb enable accept aggressive nomination by default (#644) 2022-04-22 12:41:43 +08:00
cnderrauber 124d628c0a add config to accept aggressive nomination (#642) 2022-04-21 18:32:18 +08:00
David Zhao 59112b9200 Increase default message channel from 200 -> 10k (#638) 2022-04-20 16:34:00 -07:00
David Zhao 1cfc483d8f Do not pass STUN servers when using ICE Lite (#634) 2022-04-20 00:29:57 -07:00
David Zhao 7a60278f64 Improve docker connectivity by using srflx candidates (#624)
When deployed via Docker and without using host networking, we'll be
assigned an IP behind NAT. By giving it STUN servers, it should be
connectable even without passing in `--node-ip` explicitly
2022-04-19 09:53:17 -07:00
David Zhao 4475a028b6 Removed REMB references for publisher (#605) 2022-04-07 18:24:11 -07:00
David Colburn 0b8a180554 Code inspection (#581)
* Code inspection

* fix [4]int64 conversiong
2022-03-30 13:49:53 -07:00
cnderrauber 75ca70aef7 add ipv6 support (#571) 2022-03-28 14:23:48 +08:00
cnderrauber e4c321de02 add interface filter config (#502)
* add interface filter config

* Update config-sample.yaml

Co-authored-by: David Zhao <david@davidzhao.com>

* better description

Co-authored-by: David Zhao <david@davidzhao.com>
2022-03-11 14:08:41 +08:00
Raja Subramanian a6338992e8 Stop forwarding on congestion (#429)
* WIP commit

* comment out debug stuff
2022-02-11 09:17:53 +05:30
David Zhao e6c236357a Option to disable ICE-Lite to improve compatibility (#408) 2022-02-05 22:57:47 -08:00
David Zhao a8d43aab67 Uses IceLite only for protocol 6 clients (#397)
* Update to Pion v3.1.20, with fixes DTLS role ambiguity

* Gate ice-lite on protocol version

Co-authored-by: boks1971 <raja.gobi@tutanota.com>
2022-02-02 21:16:08 -08:00
David Colburn 5bea9debb7 Code cleanup (#353) 2022-01-19 02:13:06 -08:00
Raja Subramanian 0e74ce89c5 Update pion/webrtc (#346)
Also use DTLSRoleServer in publisher peer connection to get around
potentially a Chrome browser issue in long latency links.
2022-01-18 11:26:57 +05:30
David Zhao c122c98e4d Improved logging configuration (#342) 2022-01-15 10:28:03 -08:00
cnderrauber 54e13d20bb sfu node always pick ice controlled role(lite) (#322)
* sfu node always pick ice controlled role(lite)

* fix test case

Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2022-01-10 12:58:10 +08:00
Raja Subramanian 107e7bbb39 Configurable bandwidth estimation side (#298)
* Fix tests

Add back adding track to publishedTracks for testing purposes.

* WIP branch

* Don't know why merge from `master` did not catch this change.

* WIP commit

* Hook up all the bits for TWCC to work

* Fix typo

* WIP commit

* Catch up to latest API

* Move RTP/RTCP info config

* Instantiate GCC/TWCC interceptor only when in use

* comment SSBWE parts

* RTCP feedback in publisher config
2021-12-30 20:09:03 +05:30
David Colburn 95e29d3766 Interface updates (#194)
* update interfaces, a bit of cleaning

* regenerate

* return interface for RoomService

* export packetBufferSize

* update router interface

* move participant key into router

* change locks back

* read only room store

* fix server rm locks

* update SendJoinResponse

* clean up imports

* update room messaging

* regenerate
2021-11-15 15:25:50 -06:00
cnderrauber 1e1aaeb86b Separate from ion-sfu (#171)
* Separate from ion-sfu

changes:
1. extract pkg/buffer, twcc, sfu, relay, stats, logger

2. to solve cycle import, move ion-sfu/pkg/logger to pkg/sfu/logger

3. replace pion/ion-sfu => ./
reason: will change import pion/ion-sfu/pkg/* to livekit-server/pkg/*
after this pr merged. Just not change any code in this pr, because it
will confused with the separate code from ion-sfu in review.

* Move code from ion-sfu to pkg/sfu

* fix build error for resovle conflict

Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2021-11-09 12:03:16 +08:00
David Colburn 2a3fb5f0e7 move logging to protocol (#109) 2021-09-09 00:45:42 -07:00
hn8 6a88bcc2d7 feat: support windows dev env (#101)
Works in Git Bash and PowerShell in Windows 10
2021-08-30 11:36:49 -07:00
hn8 c682982af2 Update TLS port default as rfc5766 (#68) 2021-07-23 15:11:11 -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
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 Zhao 4ec2959950 Use discreet ports by default due to write bottleneck (#40) 2021-07-06 15:08:46 -07:00
David Zhao 343aec98a0 Remove STUN candidates, disconnect clients on ICE failed 2021-06-28 12:47:16 -07:00
David Zhao 2cecbad29d fix: memory leaks with BufferFactory being held 2021-06-14 22:53:29 -07:00
David Zhao b3e6bd10cf fixed potentially skipping offer in PCTransport
this could explain the "missing" track problem when the server fails to send some tracks to some of the subscribers
2021-06-09 16:06:10 -07:00
David Zhao abedc05ce5 Improve logging, hook up ion with zap logger 2021-06-09 12:31:29 -07:00
David Zhao e77c819d1a also increase send buffer size, 0.9.8 2021-06-07 21:22:42 -07:00
David Zhao fc41e14bf3 detect UDP buffer size w/o using original conn.
if we get FD on the mux connection, the connection will be set to blocking mode and then hang when stopping
2021-06-07 16:11:48 -07:00
David Zhao d949eaa99f set UDP read buffer size and info/warn during startup 2021-06-07 15:49:25 -07:00
David Zhao d399a57a7b Removed cli, mux cleanup, docs update 2021-05-07 01:16:33 -07:00
David Zhao 84ac0a718d single port mode connectivity improvements, ICE v2.1.6 2021-04-25 14:13:35 -07:00
David Zhao 342adee606 udp instead of udp4 2021-04-22 11:28:57 -07:00
David Zhao 07e4ab0c2a Update to official single port in WebRTC 2021-04-21 21:30:16 -07:00
David Zhao 99e6cae8dd Update to UDPMux performance & race condition fix 2021-04-19 17:01:30 -07:00
David Zhao e4238890ff Refactor/cleanup of negotiation path 2021-04-15 17:03:22 -07:00
David Zhao c2777cd556 single-port mode (beta) 2021-04-12 22:25:13 -07:00
David Zhao 3bba717eb5 Support for TCP-ICE, updated config documentation 2021-04-10 21:53:50 -07:00
David Zhao 093d99b010 update dependencies, minor fixes 2021-03-15 11:42:57 -07:00
David Zhao 03d0a8c047 updated to ion-sfu v1.9.1, removed package bufferFactory 2021-03-01 14:49:46 -08:00
David Zhao 9064f6ade1 decouple websocket and RTC nodes, prep for distributed 2021-01-16 10:37:38 -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 7d7787590c updated server to webrtc v3 (untested) 2020-12-11 20:15:04 -08:00