Raja Subramanian and GitHub
9e0a7e545f
Close both peer connections to aid migration. ( #4382 )
...
* Close both peer connections to aid migration.
In single peer connection case, that would close publisher peer
connection.
@cnderrauber I don't remember why we only closed subscriber peer
connection. I am thinking it is okay to close both (or the publisher
peer connection in single peer connection mode). Please let me know if I
am missing something.
* log change only
2026-03-24 14:19:46 +05:30
cnderrauber and GitHub
9474c807c0
route participant reads through PSRPC instead of Redis ( #4387 )
...
rel: #4373
2026-03-24 16:25:11 +08:00
David Chen and GitHub
a5333a86bb
add packet trailer stripping support ( #4361 )
...
* bump protocol version to 17 to enable packet trailer stripping functionality
* check subscriber protocol version for trailer stripping
2026-03-23 13:33:42 -07:00
Raja Subramanian and GitHub
0e3d765d03
Release v1.10.0 ( #4380 )
...
* Release v1.10.0
Bumping minor version due to logging key change from pID ->
participantID. Also, added a note about it.
* update changelog
v1.10.0
2026-03-23 22:35:57 +05:30
Raja Subramanian and GitHub
bc3aeaf3f8
Update grpc to address CVE-2026-33186 ( #4381 )
...
That updates Go version/
2026-03-23 22:01:17 +05:30
Charlie Tonneslan and GitHub
8cdd6f4cc7
Replace deprecated io/ioutil with io in whipservice ( #4375 )
...
ioutil.ReadAll has been deprecated since Go 1.16 in favor of io.ReadAll.
This was the last remaining io/ioutil usage in the codebase.
2026-03-21 10:01:30 -07:00
Théo Monnom and GitHub
89410df74c
handle AGENT_ERROR disconnect reason ( #4339 )
2026-03-17 23:00:16 -07:00
Raja Subramanian and GitHub
8f984c770a
Fix repair stream ID reporting for RTX pairing. ( #4369 )
...
If RTX stream got a packet before primary stream, the pairing was not
getting set up properly.
2026-03-17 15:06:57 +05:30
Raja Subramanian and GitHub
cdfaacfca3
Restart nacker on OOB sequence number restart. ( #4368 )
...
Clears NACKs based on old sequence number base and restarts it.
Also rename the function to be more reflective of what stats lite is
for.
2026-03-17 09:16:08 +05:30
Denys Smirnov and GitHub
4a9e004555
Update protocol. ( #4367 )
2026-03-16 17:26:56 +02:00
Raja Subramanian and GitHub
750d5904f0
Add API to restart lite stats. ( #4366 )
2026-03-16 15:20:13 +05:30
c8bb2578be
Rename log field "pID" to "participantID" for consistency ( #4365 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 04:32:02 -07:00
Raja Subramanian and GitHub
77fc74a727
Do not block all ext ID determination on stream allocator listener ( #4364 )
...
availability.
Added checks for unexpected changes.
2026-03-15 14:30:47 +05:30
Raja Subramanian and GitHub
90a46fabb1
Do not kick off migration of closed participant ( #4363 )
2026-03-15 10:39:55 +05:30
Raja Subramanian and GitHub
5dc2e7b180
Switch data track extension to 1-byte ID/length. ( #4362 )
...
And match design to RTP header extension, i. e. the padding for
extensions is not at per extension level (which was the case before),
but has been changed to padding the aggregate of all extensions in this
PR.
2026-03-14 13:29:40 +05:30
Raja Subramanian and GitHub
7323ad02b7
Sample data send error logging. ( #4358 )
...
There are cases where data channel is not created potentially and
logging on every one of those errors is verbose.
2026-03-12 12:02:18 +05:30
Raja Subramanian and GitHub
0d34e45572
Add option to not re-use transceiver in e2ee. ( #4356 )
2026-03-11 17:41:13 +05:30
cnderrauber and GitHub
95225ff2e1
don't require media section for dual peerconnection mode ( #4354 )
2026-03-09 20:56:55 +08:00
cnderrauber and GitHub
e963953817
Refine ipv6 support ( #4352 )
...
* Refine ipv6 support
* go mod
* check ipv4 is set in turn
2026-03-09 20:43:00 +08:00
Milos Pesic and GitHub
b34b047247
Add StopEgress function to the EgressLauncher interface ( #4353 )
...
This allows for abstracting away how the stop is implemented - default implementation stays the same - the existing OSS egress launcher just calls the existing Stop method on the client.
2026-03-09 13:17:05 +01:00
Jacob Gelman and GitHub
69235ed261
update readme ( #4340 )
2026-03-08 23:47:54 -07:00
Raja Subramanian and GitHub
db1a804696
defensive check for peer connection instance ( #4350 )
2026-03-08 08:34:53 +05:30
He Chen and GitHub
cb7dc2d02a
TEL-405: support originating calls from custom domains ( #4349 )
2026-03-06 12:25:40 -08:00
Raja Subramanian and GitHub
7eaaaada5d
Mark last run of grow bucket outside goroutine. ( #4348 )
...
* straem tracker debug logging
* tracker
* debug
* clean up
2026-03-06 19:36:13 +05:30
cnderrauber and GitHub
caa47522fb
Add option to require media sections when participant joining ( #4347 )
...
Negotiate media tracks at first sdp round
2026-03-06 03:59:00 +08:00
Raja Subramanian and GitHub
087050d182
Release v1.9.12 ( #4346 )
v1.9.12
2026-03-05 23:41:20 +05:30
Denys Smirnov and GitHub
493e87dfd4
Fix SIP client timeout. ( #4345 )
2026-03-05 19:09:17 +02:00
Raja Subramanian and GitHub
52c28a938d
Log a bit more details of out-of-order TWCC feedback report. ( #4343 )
...
* Log a bit more details of out-of-order TWCC feedback report.
* Revert to mono.Now()
2026-03-05 11:55:13 +05:30
Raja Subramanian and GitHub
516aeabf45
Use ParticipantTelemetryListener of LocalParticipant. ( #4342 )
...
Had made a change in remote participant case to not have telemetry
listener as telemetry does not apply to remote participant. But, that
listener ended up getting used for subscriber and became a null
listener. Use the listener of the subscriber participant for subscribed
tracks.
2026-03-05 11:24:48 +05:30
cnderrauber and GitHub
b35105656c
Exclude ice restart case from offer answer id mismatch warning ( #4341 )
2026-03-05 13:05:37 +08:00
Paolo Moretti and GitHub
303657bcdf
feat: make INSTALL_PATH overridable in install script ( #3954 )
...
Allow users to override the installation path by setting the INSTALL_PATH
environment variable before running the script.
This can be useful in CI environments such as CircleCI where the default
/usr/local/bin path requires sudo privileges that may not be available or desired.
Usage:
- Default: curl -sSL https://get.livekit.io/cli | bash
- Custom: INSTALL_PATH="$HOME/.local/bin" curl -sSL https://get.livekit.io/cli | bash
2026-02-26 14:43:30 -08:00
cnderrauber and GitHub
9d418689c6
Send participant left event after track unpublished for moved ( #4334 )
...
participant
2026-02-25 13:22:33 +08:00
Raja Subramanian and GitHub
bab9186840
do not discount packets lost on duplicate packets ( #4333 )
2026-02-23 23:55:56 +05:30
Raja Subramanian and GitHub
939794cf47
mark + restart ( #4329 )
2026-02-21 15:12:13 +05:30
Raja Subramanian and GitHub
75f9c462be
Add debug for receiver restart. ( #4328 )
...
* Add debug for receiver restart.
Have a suspicion that something is deadlocking between restart receiver
and buffer bind during replay. Adding debug to get a better picture of
state of receiver restart.
* consistent logging
2026-02-20 01:44:59 +05:30
Raja Subramanian and GitHub
74891f30fe
Protect against incorrect temporal layer. ( #4327 )
...
Seeing some tracks with temporal layer higher than array bounds.
Protect against it and log some info to understand better.
2026-02-19 23:57:58 +05:30
Raja Subramanian and GitHub
f51b27328f
Update pion/webrtc and deps to update dtls ( #4326 )
...
DTLS v3.1.0 was retracted - https://github.com/pion/dtls/pull/800
2026-02-19 13:43:20 +05:30
Raja Subramanian and GitHub
b81bac0ec3
Key telemetry stats worker using combination of roomID, participantID ( #4323 )
...
Test / test (push) Failing after 17s
Release to Docker / docker (push) Failing after 3m42s
* Key telemetry stats work using combination of roomID, participantID
With forwarded participant, the same participantID can existing in two
rooms.
NOTE: This does not yet allow a participant session to report its
events/track stats into multiple rooms. That would require regitering
multiple listeners (from rooms a participant is forwarded to).
* missed file
* data channel stats
* PR comments + pass in room name so that telemetry events have proper room name also
2026-02-16 13:56:13 +05:30
Topherhindman and GitHub
2d40449faf
Update self-hosting deployment documentation link ( #4312 )
Test / test (push) Failing after 1m21s
Release to Docker / docker (push) Failing after 6m21s
2026-02-11 11:45:47 -08:00
Benjamin Pracht and GitHub
03e90dd762
Fix for some CodeQL reported issues ( #4314 )
...
One of the fix is in updated protocol (logging of a request message that includes the turn server settings, including password).
2026-02-11 10:15:12 -08:00
Raja Subramanian and GitHub
77c858f001
Log stats worker when it not closable. ( #4313 )
2026-02-11 13:18:34 +05:30
Jacob Gelman and GitHub
a6035212f5
ESP32 client info ( #4267 )
2026-02-11 16:25:02 +11:00
478e486a4b
Copilot suggested improvement to Github Actions permissions ( #4310 )
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-02-10 15:57:31 -08:00
cbd2f82d1c
Copilot suggested improvement to Github Actions permissions ( #4311 )
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-02-10 15:57:17 -08:00
Raja Subramanian and GitHub
a9b8d40de4
Publish is always on publisher peer connection. ( #4307 )
2026-02-10 13:43:30 +05:30
cnderrauber and GitHub
8ae564065e
generate & log egressID for start egress request ( #4303 )
...
* generate & log egressID for start egress request
* seprate method
* use ctx value instead of metadata
* comment
2026-02-10 09:34:56 +08:00
Raja Subramanian and GitHub
35d7ef88c2
Avoid alloc in RTPStatsReceiver.Update ( #4302 )
...
Using a pointer to the logging context was doing allocations.
2026-02-09 11:53:17 +05:30
Raja Subramanian and GitHub
bb744916fd
More optimisation in RTPStats module. ( #4298 )
...
Was hoping for more hidden bits to optimise, but oh well.
2026-02-06 21:33:41 +05:30
Raja Subramanian and GitHub
cefd5da940
Optimise some bits in rtpstats_receiver ( #4297 )
...
* Optimise some bits in rtpstats_receiver
RTPStatsReceiver.Update is one of the high CPU bits. Taking some
suggestions from Cursor. Makes the `Update` function verbose though :-(
* zap.Inline logging fields
* rename
2026-02-06 21:26:30 +05:30
Raja Subramanian and GitHub
52a4b848a4
Read client protocol from query param ( #4294 )
...
* Read client protocol from query param
* Atoi -> ParseInt
2026-02-06 11:33:13 +05:30