Commit Graph

2666 Commits

Author SHA1 Message Date
Raja Subramanian 01bf96855d SVC with RID -> spatial layer mapping (#3754)
* SVC with RID -> spatial layer mapping

There are cases where an SVC track comes in with a RID.
As there is no RID announced in SDP, it maps to invalid layer.
Seems to happen with older browsers.

* test
2025-06-23 12:45:13 -07:00
Raja Subramanian c481396f5b offer could be nil when migrating. (#3752) 2025-06-23 09:04:16 -07:00
cnderrauber 8c2fc0bcd9 Fix svc encoding for chrome mobile on iOS (#3751)
The browser could send rtp packets of svc encoding without
DD extension while the sdp negotiates it, sfu detects extension
in rtp packet for this case.
2025-06-23 22:39:12 +08:00
David Colburn e467daa0d4 move egress roomID load to launcher (#3748)
* move egress roomID load to launcher

* regenerate
2025-06-20 16:22:19 -04:00
Anunay Maheshwari 3783ebb320 feat(cli): update to urfave/cli/v3 (#3745)
* feat(cli): update to urfave/cli/v3

* fix(cli/v3): int/uint handling with reflection

* fix(cli/v3): better type convertion handling
2025-06-20 16:58:44 +05:30
Pablo Fuente Pérez 03d3fcab43 Fix data packet ParticipantIdentity override logic in participant.go (#3735)
* Fix data packet ParticipantIdentity override logic in participant.go

https://github.com/livekit/agents/issues/2554

* Update pkg/rtc/participant.go

---------

Co-authored-by: David Zhao <david@davidzhao.com>
2025-06-19 22:58:31 -07:00
Paul Wells 068b43660b reuse compiled client config scripts (#3743) 2025-06-19 14:31:59 -07:00
cnderrauber e754a86068 return error when moving egree/agent participant (#3741) 2025-06-18 15:10:08 +08:00
cnderrauber 7542cf0723 remove unused code (#3740) 2025-06-18 10:09:30 +08:00
Raja Subramanian 9d569e2fef Take ClientInfo from request. (#3738)
This will allow WHIP client to pass in client info which can provide
more information about WHIP clients for telemetry.
2025-06-16 21:01:15 -07:00
Tobias Fried 8077426312 chore: set workerid on job creation (#3737)
* chore: set workerid on job creation

* chore: bump deps
2025-06-16 15:30:06 -06:00
Raja Subramanian 5549ab5562 Revert clearing RIDs. (#3732) 2025-06-13 23:34:01 -07:00
Raja Subramanian ae9673130f Clear rids if not present in SDP. (#3731) 2025-06-13 21:02:01 -07:00
Raja Subramanian 0e03390744 Return highest available layer if requested quality is higher than (#3729)
highest available quality.
2025-06-13 08:44:45 -07:00
cnderrauber 9ce737db31 Add log for dropping out of order reliable message (#3728) 2025-06-13 22:08:56 +08:00
cnderrauber 1b95e818c9 Don't check bindState on downtrack.Bind (#3726)
receiver can be ready before bind
2025-06-13 16:13:15 +08:00
Raja Subramanian 670f927ff6 Set and use rid/spatial layer in TrackInfo. (#3724)
* Set and use rid/spatial layer in TrackInfo.

* test
2025-06-12 23:22:11 -07:00
Raja Subramanian a9e2911645 Add Id to SDP signalling messages. (#3722)
* Add Id to SDP signalling messages.

Allows matching up offer/answer.
For now, the subscriber answer just logs if there is a mismatch.

* correct variable name

* test

* fixing rid

* revert

* clean up
2025-06-12 14:39:25 -07:00
Raja Subramanian 4ec828ce00 Fix bug with SDP rid, clear only overflow. (#3723) 2025-06-12 14:04:13 -07:00
Raja Subramanian 8f6c3a9b4e Clear rids from default for layers not published. (#3721) 2025-06-12 08:59:16 -07:00
Raja Subramanian ce07740e11 Add simulcast support for WHIP. (#3719)
* Add simulcast support for WHIP.

- General change to have rids be anything.
- One issue is rid ordering not matching quality ordering, will need
  some dynamic layer quality determination for that.

* clean up

* deps

* test
2025-06-11 19:40:38 -07:00
Raja Subramanian e98fb94fd2 Create client config manager in room manager constructor. (#3718)
* Create client config manager in room manager constructor.

Remove it from wire to be consistent with cloud which does hot reload.

* disable advanced codecs on iOS when using JS SDK
2025-06-10 21:06:49 -07:00
cnderrauber fdf9b85290 e2e reliability for data channel (#3716)
* e2e reliability for data channel

* solve comments
2025-06-11 11:14:30 +08:00
Paul Wells 35dda8ea43 swap pub/sub track metrics (#3717) 2025-06-10 11:27:34 -07:00
Raja Subramanian 1d9a43667a Do not require create permission for WHIP participant. (#3715) 2025-06-09 22:19:00 -07:00
Raja Subramanian e0aea17a06 Flush stats on close (#3713) 2025-06-09 09:33:34 -07:00
Paul Wells 630aa7d970 implement observability for room metrics (#3712)
* implement observability for room metrics

* deps

* test

* test

* Raja feedback

* cleanup
2025-06-09 09:32:58 -07:00
Paul Wells e7f0294e3f remove unused ws signal read loop (#3709)
* remove unused ws signal read loop

fixes #3708

* tidy
2025-06-08 20:07:55 -07:00
David Zhao b0ab95baf7 warn about credentials when used in tokens (#3705)
* warn about credentials when used in tokens

* go mod update
2025-06-06 22:46:23 -07:00
Raja Subramanian a72ce30f50 Small changes to add/use helper functions for length checks. (#3704) 2025-06-06 18:00:10 -07:00
Denys Smirnov 425f6bb3a9 Allow passing extra attributes to RTC endpoint. (#3693) 2025-06-06 14:40:06 +03:00
Raja Subramanian 758e176250 Add a trend check before declaring joint queuing region. (#3701)
* Add a trend check before declaring joint queuing region.

Seeing cases where the propagated queuing delay drops from one group to
next. Both groups are above threhold. It also recovers majority of the
time. So, introducing a trend check before declaring that queuing delay
is in joint queuing region. It is set 0.8 by default which means the
queueing delay should be trending up strongly before being declared
joint queuing region.

* deps
2025-06-05 18:51:23 -07:00
Raja Subramanian fc867c5b8e Webhook prom stats (#3697) 2025-06-04 14:31:28 -07:00
Denys Smirnov 0e17916f15 Do not use Redis pipeline for SIP delete. Fixes Redis clustering support. (#3694) 2025-06-03 18:25:50 +03:00
Raja Subramanian 1b760393bc WHIP support. (#3692)
* WHIP support.

WHIP like signalling with added support for data channels.

* clean up

* Paul feedback

* deps
2025-06-03 08:23:37 -07:00
Paul Wells e4f7d81bdd add client ip to agent worker registration (#3675) 2025-05-20 07:58:28 -07:00
cnderrauber 83b189b0c5 Add ServerInfo to ReconnectResponse (#3671) 2025-05-19 10:32:39 +08:00
Raja Subramanian 5f87a35b7e Prevent operating on swapped out map. (#3670)
* Prevent operating on swapped out map.

* test
2025-05-17 17:02:41 +05:30
Paul Wells 13b55a80ad move agent token (#3669) 2025-05-15 10:30:14 -07:00
Paul Wells c9385edd1e handle agent worker jwt (#3668)
* handle agent worker jwt

* test

* tidy

* tidy

* deps
2025-05-15 08:23:10 -07:00
Raja Subramanian 3b359d8b74 Use logger resolver reset to reset contexts. (#3665)
* Use logger resolver reset to reset contexts.

Also, avoid multi-resolve.

* resolver logger values once

* simplify
2025-05-14 21:12:12 +05:30
cnderrauber dbb70e0f06 Fix dynacast quality for moving out tracks (#3664)
* Make sure moving out track has been unsubscribed

Remove start time checking in subscription manager
as We always use new track ID for republished track at #3020
so there is no race condition now.

Also RemoveSubscriber for moving out tracks for safety,
the subscription manager will handle the removed event but
RemoveSubscriber again will not be bad.

* Clear subscriber node max quality for moving out tracks
2025-05-14 12:54:33 +08:00
cnderrauber 0a5f3c2ae6 resolve new room name logger earlier when moving participant (#3662) 2025-05-13 20:29:07 +08:00
Raja Subramanian 2df0551762 Revert unbound transceiver stop. (#3661)
This is causing duplicate a=msid in testing. Will chase condition that
caused the addition of code to stop transceiver later.
2025-05-13 16:33:09 +05:30
Raja Subramanian 5172af1526 ~Send initial participant update only after a participant becomes active.~ - General clean up (#3655)
* Send initial participant update only after a participant becomes active.

There are cases where apps send data to remote participant as soon as
client emits `ParticipantConnected`. But, that time point would not have
a fully established client (i. e. the media connection + data channel
establishment is still in progress).

This PR changes the initial participant update to be sent from server
side only when a participant becomes `ACTIVE`, i.e fully connected
(media channel established and data channels open).

It is supported for clients using protocol version > 15.

@cnderrauber bumping up the protocol version in this PR. Move support is
also conditioned on protocol version > 15, but that PR did not ump
protocol version. Please let me know if there are issues bumping
protocol version.

* check for joining states in broadcast

* have to check on other participant

* test

* make helper for sending participant updates

* test

* make utility of pushAndDeque

* test

* consolidate getting other participants

* remove extra cast

* debug

* debug

* typo

* stop transceiver that is not bound

* logs

* log

* check for ever bound

* clean up

* clean up
2025-05-13 14:46:35 +05:30
Raja Subramanian 7f8e632330 Send self participant update immediately. (#3656)
* Send self participant update immediately.

Match with cloud. Send immediately for non-hidden participants also

* comment
2025-05-11 03:08:30 +05:30
Raja Subramanian 116308780e Use unordered for lossy data channel. (#3653) 2025-05-09 23:09:27 +05:30
Paul Wells aee34ffefa log request for agent dispatch api (#3650) 2025-05-08 08:43:43 -07:00
cnderrauber 793b383a52 Add Moving participant to another room (#3648)
* Add Moving participant to another room

it is implemented in cloud only since the destination
room can exist in different node with the source room

* Update pkg/service/errors.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* rename

* test panic

* fake LocalParticipantHelper

* revert delete line

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-08 12:58:24 +08:00
Raja Subramanian 2fff36cb35 Stub MoveParticipant so that cloud can include the latest protocol. (#3646) 2025-05-07 22:36:39 +05:30