994 Commits

Author SHA1 Message Date
Benjamin Pracht
b0eead22b5 Allow specifying a different RTMP url domain for each ingress (#994) 2022-09-12 14:03:15 -07:00
David Zhao
7e3155dcd6 ForceTCP only for supported clients (#997)
* ForceTCP only for supported clients

Revert back to standard if forceRelay with TLS fails
Don't force TLS unless it's configured

* fix lint
2022-09-09 18:14:36 -07:00
cnderrauber
f1915feb1a keep mid unchange after migration for subscribed track (#995) 2022-09-09 17:39:09 +08:00
Raja Subramanian
93da599059 Return previous max layer. (#993)
Relay up track holds this value too. This is to prevent duplication.
2022-09-08 11:04:26 +05:30
David Zhao
5cfd21c1ef Fix inaccurate participant count due to storing old data (#992) 2022-09-07 18:33:28 -07:00
cnderrauber
441053b7fa add participant id when client reconnect (#988) 2022-09-07 15:56:56 +08:00
Raja Subramanian
d76f7811e9 An attempt to use consistent layer mapping (#986)
* WIP commit

* Consistent layers.

* slight re-arrangement of code

* log mime

* fix tests

* map -> array
2022-09-07 09:57:31 +05:30
Benjamin Pracht
aaeba74402 Import ErrIngressOutOfDate from protocol (#987) 2022-09-06 16:05:17 -07:00
Raja Subramanian
68fcd377fa Add exempt layer when not found AND exempt. (#984) 2022-09-05 22:22:41 +05:30
Raja Subramanian
d8ae453fb9 Handle exempted layers (#983)
* WIP commit

* WIP commit

* Add tests

* remove debug
2022-09-05 18:42:59 +05:30
Raja Subramanian
021ec596b5 Fix check, thank you @cnderrauber (#982) 2022-09-05 10:16:57 +05:30
Raja Subramanian
20bd99903e Close down track before closing subscriber peer connection (#981)
* Close down track before closing subscriber peer connection

* plural
2022-09-03 12:16:40 +05:30
Raja Subramanian
d13c4be923 Close subscriber PC after a wait to aid in migration. (#979)
* Close subscriber PC after a wait to aid in migration.

* mage generate
2022-09-03 01:16:51 +05:30
Raja Subramanian
c75f38bce6 Protect against looking up dimensions for invalid spatial layer (#977)
Also use loss based scoring when track dimensions are not available.
2022-09-03 00:59:47 +05:30
David Zhao
da2525e973 for some reasons this wasn't generated before committed. (#974) 2022-08-31 21:35:51 -07:00
Benjamin Pracht
d8edb9b2e7 Adopt Ingress RPC interface changes (#972) 2022-08-31 14:14:40 -07:00
cnderrauber
c401ca58af turn packet and bytes stats used for telemetry and load control (#969)
* stats for turn

* add connections stats

* stats for standalone turn server only

* wire update
2022-08-31 11:00:27 +08:00
Raja Subramanian
df189984f3 Add resyn on next packet to buffer.Bucket (#968) 2022-08-30 12:58:10 +05:30
David Zhao
69bf31944e Send connection type to telemetry (#964)
* Send connection type to telemetry

When connected, determine how the participant's primary connection is
connected and report it in ParticipantActive event.

* address feedback

* fixed case where prflx is reported instead of relay

* incorporate comments
2022-08-29 23:17:13 -07:00
Raja Subramanian
032c3a1603 Fix track info available for down tracks. (#967)
Should have here in the first place. Brain damage :-(
2022-08-30 09:35:05 +05:30
Raja Subramanian
9b0539eb43 Need this for clean up during migration (#965) 2022-08-29 13:19:58 +05:30
Raja Subramanian
4217f198d6 Have to go through the full ICE restart checks after gatheting finishes. (#963) 2022-08-29 09:45:38 +05:30
David Zhao
aa4f713d1e Document tcp fallback (#961)
* Updated docs around TCP fallback

* changed allowFallback to a pointer
2022-08-27 14:59:01 -07:00
Mathew Kamkar
767d660809 Use LocalNode ID in Prometheus metrics (#959) 2022-08-25 22:16:20 -07:00
David Zhao
747089a005 Additional closure reasons (#958) 2022-08-25 19:36:47 -07:00
Raja Subramanian
7ad8f87a52 Wait for answer (#957)
Maybe this is what is causing test flakiness in GH CI. Let's see.
2022-08-25 13:41:25 +05:30
Raja Subramanian
781bd74098 443 for TLS (#956)
* Use 443 for TURN TLS

* Explicit disable when TLS is not set
2022-08-25 09:05:44 +05:30
Raja Subramanian
06a46d5de0 Replace Target with params to indicate direction (#955)
* Replace Target with params to indicate direction

* Add missed send answer call
2022-08-25 08:33:06 +05:30
Raja Subramanian
5223c8292e Attempt to fix CI UT (#954)
I don't like using `Target` as direction.
There is one place in code that depends on it.
I am thinking we should add a params `IsOfferer` or something to make it
explicit.
2022-08-24 22:31:18 +05:30
Raja Subramanian
34bab018dc Do not initialize subscription version until explicitly set. (#951)
Initializing with current time means some updates are ignored.
Do not initialize until explicitly set.
2022-08-24 20:50:23 +05:30
cnderrauber
31d3d5e8b9 ignore udp turn when force tls (#952) 2022-08-24 20:45:48 +05:30
cnderrauber
1350400c3a fallback to turn over tls when tcp short connection happen (#950)
* fallback to tls when tcp failed

* go mod

* magefile
2022-08-24 20:42:56 +08:00
Raja Subramanian
aaa3a5b46e Transport restructure (#944)
* WIP commit

* WIP commit

* fix copy pasta

* setting PC with previous answer has to happen synchronously

* static check

* WIP commit

* WIP commit

* fixing transport tests

* fix tests and clean up

* minor renaming

* FIx test race

* log event when channel is full
2022-08-24 14:31:45 +05:30
shishirng
79cf614783 Send egressInfo in telemetry event (#941)
Signed-off-by: shishir gowda <shishir@livekit.io>

Signed-off-by: shishir gowda <shishir@livekit.io>
2022-08-23 08:18:12 -04:00
cnderrauber
f365481dde unify resume/restart in single/multi node mode (#946) 2022-08-23 18:22:44 +08:00
cnderrauber
0b42a8f2c6 loop variable captured (#945) 2022-08-23 14:27:21 +08:00
cnderrauber
c20a91d2b2 enable red by default (#940)
* enable red by default

* fix test case
2022-08-22 17:40:12 +08:00
cnderrauber
a118d21af0 add red codec for opus (#938)
* opus/red codec

* panic

* forward red track to nonred subscriber

* config

* clean code

* solve comments
2022-08-22 12:32:27 +08:00
Raja Subramanian
a600dfc9e3 Log and return error on no response sink. (#937)
* Log and return error on no response sink.

* Clean up
2022-08-21 22:36:59 +05:30
Raja Subramanian
70422c0267 Export CloseSignalConnection (#936)
* Export CloseSignalConnection

There are a few places where that close pattern is repeated.
Export it and use that function in other places directly.

* fix test
2022-08-21 11:33:35 +05:30
David Zhao
b8bda3f14b Separate calls to Telemetry vs Prometheus room lifecycle (#935)
* Separate calls to Telemetry vs Prometheus room lifecycle

* remove unused import
2022-08-20 20:22:16 -07:00
Raja Subramanian
26ba69c506 Log only on change and also don't log layer for audio (#934) 2022-08-20 10:04:21 +05:30
Raja Subramanian
fae3857800 Log errors on sending offer/answer (#933)
* Log errors on sending offer/answer

* minor clean up

* remove unneeded logs

* fix test
2022-08-19 17:54:27 +05:30
Raja Subramanian
e4e2e4189b Clear disconnect timer on ICERestart (#932)
* Clear disconnect timer on ICERestart

Disconnect timer is set up when a transport fails.
But, it is possible that the connection is resumed.
So, clear disconnect timer on resume.

* clean up
2022-08-19 16:24:41 +05:30
Raja Subramanian
0cd9c87dc9 Misc clean up (#931)
* Start RTCP workers after peer connection connects

* Move more things into transport module

* Start RTCP workers only on connected

* Test needs PeerConnection() method

* adjust comment
2022-08-19 11:49:12 +05:30
cnderrauber
770076febf fix resume/restart with single node mode (#930)
* fix resume/restart with single node mode

* clean comment
2022-08-18 12:46:18 +08:00
Raja Subramanian
05fcca9a04 Need to support receiver re-add/setup. (#929) 2022-08-18 08:23:49 +05:30
Raja Subramanian
c9d16ea98c Use sampling only for closed pipe errors (#928) 2022-08-17 13:58:03 +05:30
cnderrauber
f819dcb63d use protocol/sdp for sdp process (#926) 2022-08-17 16:12:33 +08:00
Raja Subramanian
df78179bbb Sample RTP write error logs. (#927)
* Sample RTP write error logs.

When a client goes away without notice, the media connection
will be severed. Writes will fail till connection is closed.
Avoid log spam in those scenarios. Just log one in 100 failures.

* Change reminder so that first failures gets logged

* log failure count
2022-08-17 13:38:08 +05:30