Commit Graph

403 Commits

Author SHA1 Message Date
David Zhao
677d114d56 feat: MoveParticipant API (#1051)
* feat: MoveParticipant API

This new API would move a participant from one cloud room to another.
It will support the following use cases:
- warm transfer in voice AI
- fast switching between different live streams
- prejoin room in meetings

* generated protobuf

* add RTC message

* repeat field number

* generated protobuf

* rpc

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2025-05-07 10:28:20 +08:00
David Zhao
b7ee9e0582 use SetVideoGrant instead of deprecated AddGrant (#1059)
* use SetVideoGrant instead of deprecated AddGrant

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-02 23:43:17 -07:00
lukasIO
d5b5240751 Add PreconnectBuffer to AudioTrackFeatures (#1057)
* Add PreconnectBuffer to AudioTrackFeatures

* generated protobuf

* changeset

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-30 14:09:04 +02:00
Benjamin Pracht
62b2525e94 Add IMAGE_SUFFIX_NONE_OVERWRITE (#1052)
Add a ImageFileSuffix enum value to disable appending any image suffix and overwrite the generated image each time a new one is uploaded instead. Overwriting the image seems exclusive to having any suffix (particularly a timestamp suffix), so this seemed the best place to add it. OVERWRITE was added as part of the enum name to make it clear that data loss will occur with this option.
2025-04-21 10:36:46 -07:00
Denys Smirnov
9de0150f3b Allow '_' in SIP headers. (#1048) 2025-04-16 10:45:59 +03:00
Denys Smirnov
d67a6a9f96 Allow updating SIP media encryption. (#1047) 2025-04-15 10:48:49 +03:00
Benjamin Pracht
b735b3b9ae Add IngressID and ResourceID attributes for the ingress participants (#1042) 2025-04-10 17:10:49 -07:00
Benjamin Pracht
9c8b99db90 Allow specifying extra webhooks in egress start requests (#1040) 2025-04-09 15:50:25 -07:00
cnderrauber
18e676b493 Forward grant (#1041)
* Revert "Require source|dest room admin when forwarding participant (#1027)"

This reverts commit 16e28eab22.

* Add ForwardDestRoom to VideoGrant

* rename & comments

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-09 14:33:48 +08:00
Denys Smirnov
c193b8d080 Fix SIP update when replacing array fields. (#1038) 2025-04-08 17:31:32 +03:00
Denys Smirnov
28de829f0d Add timeout parameter to SIP transfer API. (#1036) 2025-04-07 22:24:48 +03:00
Raja Subramanian
218e13187e Add CONNECTION_TIMEOUT disconnect reason (#1037)
* Add CONNECTION_TIMEOUT disconnect reason

* generated protobuf

* Create clever-jars-invent.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-07 23:45:17 +05:30
Ben Cherry
da617d9683 Add client info enum value for unreal (#1032)
* Add client info enum value for unreal

* generated protobuf

* Create thirty-cougars-dream.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-04 14:07:59 -07:00
cnderrauber
16e28eab22 Require source|dest room admin when forwarding participant (#1027)
* Require `source|dest` room admin when forwarding participant

* Space

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-02 18:20:30 +08:00
Raja Subramanian
cdd4c1b197 Add rate for memory use and total. (#1030)
* Add rate for memory use and total.

Load and overage for memory is calculated differently in cloud.
Removing that distinction caused memory based load to show higher load
consistently which was unintentional.

* generated protobuf

* Create nervous-ways-yawn.md

* correct next ID

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-02 10:08:36 +05:30
Denys Smirnov
01ba6afd74 Add helper to get SIP call status from an error. (#1028) 2025-04-01 12:15:45 +03:00
Raja Subramanian
dbeeaa7e26 Revert cid changes. (#1029)
* Revert cid changes.

Need to re-think this one.

* generated protobuf

* Create popular-dodos-study.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-31 23:06:45 +05:30
Raja Subramanian
67af9b92e4 Add more fields to CodecInfo. (#1024)
* Add more fields to CodecInfo.

- Rename Cid -> SignalCid as this is what comes via signalling channel
- Add SdpCid and IsSimulcast

* generated protobuf

* Create thick-rivers-mate.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-31 18:09:11 +05:30
Raja Subramanian
fbbb1c3ae2 Reworking node stats a bit. (#1023)
* Reworking node stats a bit.

- Introducing a rate shape that captures rate of different metrics in a
  given interval. The interval is contained in that message.
- Stats can have multiple rates. This is akin to reporting different
  window load avg in unix systems.
- Clean up a few things
  o sys packets pct in rate (not sure what it was capturing)
  o associated prom metric (this is in server code which will come in a
    separate PR) (was not used anywhere internally, don't
    think external projects would be using it either)

* Create tricky-ties-marry.md

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-26 23:16:20 +05:30
cnderrauber
53e0c88edf Refine backup codec policy (#1022)
* Refine backup codec policy

Make the default behavior to be a `preferred` value that
the sfu will determine proper policy by room information.

* rename

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-26 15:53:25 +08:00
lukasIO
3d92d3e0b1 Add KindDetails to ParticipantInfo (#1019)
* Add cloud features enum

* Create cuddly-dryers-guess.md

* add next id

* generated protobuf

* rename to more specific KindDetail

* generated protobuf

* Update cuddly-dryers-guess.md

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-25 10:16:46 +01:00
Denys Smirnov
6d044a0462 Fix incremental SIP dispatch rule update. (#1014) 2025-03-20 18:17:08 +02:00
Dan McFaul
fdacb1a293 add cloud agents (#1010)
* initial commit

* add agent hosting types

* generated protobuf

* Update auth/grants.go

Co-authored-by: David Zhao <dz@livekit.io>

* Update protobufs/livekit_cloud_agent.proto

Co-authored-by: David Zhao <dz@livekit.io>

* dz feedback

* rebase fixes

* match ListAgents func call

* generated protobuf

* update regional_agents to agent_deployments

* generated protobuf

* add client settings endpoint

* generated protobuf

* Create changeset

* fix changeset

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: David Zhao <dz@livekit.io>
2025-03-19 10:50:56 -06:00
Denys Smirnov
ce72bd5bb7 Update API for SIP. (#869) 2025-03-19 14:49:48 +02:00
cnderrauber
368c3d6198 ForwardParticipant changes (#1008)
* ForwardParticipant changes

remove stop flag in the request
add new `forwarded` participant type

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-12 12:07:30 +08:00
cnderrauber
03867f6036 Add ForwardParticipant method to RoomService (#1002)
* Add ForwardParticipant method to RoomService

* faked rpc client

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-10 11:38:36 +08:00
Raja Subramanian
4102568c88 Per resource webhook queue. (#1000)
* Per resource webhook queue.

With a worker based approach, an event on a resource (like a room) not
being handled could affect other resources (other rooms or ingress or
egress).

To prevent that, do a per resource queue with two kinds of limits
- age of event: when queuing, if the event at the front of the queue
  exceeds a certain limit (default: 5 seconds), the event is dropped
- depth of queue: drop event if the number of queued events exceeds some
  level (default: 200)

To reap the per resource queue, specific end events are tracked and the
resource is added to the reap queue and reaped after a configurable
timeout (default: 5 min). This is to ensure that events happening just
after end event (for example: participant_left happening after
room_finished) are handled without re-creating a new resource.

Also, deprecating `num_dropped` from proto.

Some other bits of notes/challenges:
- Keeping the old URL notifier also. Also, the default notifier is that.
  Can change to the new one before merging this PR if this approach
  looks good.
- Using string compares of event name to detect end. Not great.
- Needs a sweeper to reap the resource queue. I think 5 min default
  timeout to reap should be okay, but maybe there are things that can
  cause re-creation of a resource queue after reaping and those could
  leak? Needs more analysis.
- Storing `context.Context` in resource queue so that it can be used
  during posting to webhook from resource queue go routine. Storing that
  is not great, but we need it for analytics key.

* generated protobuf

* missed files

* generated protobuf

* fix test in data race

* generate

* generated protobuf

* paul feedback

* fixes

* race

* more Paul feedback

* make resource notifier the default

* generated protobuf

* stop

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-07 22:39:59 +05:30
shishirng
5f4ba74900 deprecate older timestamp fields and add new ones (#993)
* deprecate older timestamp fields and add new ones

Signed-off-by: shishir gowda <shishir@livekit.io>

* generated protobuf

---------

Signed-off-by: shishir gowda <shishir@livekit.io>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-27 22:22:10 +02:00
Denys Smirnov
d8a31f2b72 Handle SIP hostname in address filters. Expose attribute. (#987) 2025-02-25 17:12:07 +02:00
Denys Smirnov
8819517840 More analytics fields for SIPCallInfo. (#984) 2025-02-24 12:41:14 +02:00
Denys Smirnov
bfe8101478 Fix iteration over empty and unsorted records. (#971) 2025-02-18 12:07:13 +02:00
Paul Wells
1a019aab5b add participant job type (#981)
* add participant job type

* internal rpc

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-18 00:33:17 -08:00
Raja Subramanian
9b6e5d703f Webhook analytics event. (#979)
* Webhook analytics event.

NOTE: Need a frostbyte73/core PR to merge and tag a release
PR pending: https://github.com/frostbyte73/core/pull/5

* sync submit

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-13 10:21:17 +05:30
David Colburn
82dadcf607 Egress audio mixing options (#978)
* audio mixing options

* generated protobuf

* remove multi

* move audio mixing

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-12 12:56:45 -05:00
Denys Smirnov
9ce0387a72 Fix hostname validation for a new type. (#968) 2025-02-07 12:26:46 +02:00
Raja Subramanian
07904738df Proto for sending API call details to telemetry. (#964)
* Proto for sending API call details to telemetry.

* generated protobuf

* Create dry-camels-tie.md

* Add project_id

* generated protobuf

* top level fields

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-07 15:08:07 +05:30
Denys Smirnov
fdfc6fd6bc Allow passing all SIP trunk options in CreateSIPParticipant. (#961)
* Allow passing all SIP trunk options in CreateSIPParticipant.

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-07 11:21:18 +02:00
renovate[bot]
fdd5408773 Update dependency typescript to v5.7.3 (#939)
* Update dependency typescript to v5.7.3

Generated by renovateBot

* generated protobuf

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-06 17:11:38 -06:00
Benjamin Pracht
de36203ccd Add Ingress OutOfNetwork attribute keys. Add the CanUpdateOwnMetadata claim to the ingress token (#965) 2025-02-05 18:34:56 -08:00
cnderrauber
07992dd19e Add backup codec policy to AddTrackRequest (#947)
* Add backup codec policy

* changeset

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-06 10:21:55 +08:00
Raja Subramanian
3d2a520b8e Proto to "report" different kinds of data. (#962)
* Proto to "report" different kinds of data.

Starting off with `FeatureUsage` with the one feature od
`KRISP_NOISE_CANCELLATION`.

* generated protobuf

* Create six-humans-lick.md

* Update .changeset/six-humans-lick.md

Co-authored-by: lukasIO <mail@lukasseiler.de>

* time range

* generated protobuf

* Add BVC and some comments

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: lukasIO <mail@lukasseiler.de>
2025-02-05 10:06:18 +05:30
Denys Smirnov
e6dce57bcf Use SIP statuses as Go and gRPC errors. (#960) 2025-02-04 12:22:02 +02:00
Denys Smirnov
c909c95e07 Pass SIP statuses as RPC error details. (#958) 2025-01-29 23:08:30 +02:00
Denys Smirnov
e430b4bd32 Add flag to make CreateSIPParticipant synchronous. (#952) 2025-01-28 00:40:18 +02:00
Raja Subramanian
9a579a69ba Add a nonce to data messages. (#953)
* Add a nonce to data messages.

Will be used to de-dupe messages sent via SendData API.

* generated protobuf

* comment

* generated protobuf

* add nonce to UserPacket

* generated protobuf

* 128-bit UUID as string for nonce

* generated protobuf

* UUID bytes

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-27 14:46:25 +05:30
Raja Subramanian
6ec1903b36 Room creation time with ms resolution. (#950)
* Room creation time with ms resolution.

Follow up to this PR - https://github.com/livekit/protocol/pull/949 and
this comment - https://github.com/livekit/protocol/pull/949#issuecomment-2608033493

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-23 09:34:41 +05:30
Raja Subramanian
18fcdd87b3 Participant joined_at_ms to get higher resolution of join time. (#949)
* Participant joined_at_ms to get higher resolution of join time.

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-22 13:48:08 +05:30
lukasIO
afe463fe84 Rename File* related DataStream messages to Byte* (#948)
* Rename File related DataStream messages to Byte

* generated protobuf

* Add changeset

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-21 13:07:00 +01:00
Denys Smirnov
369640e32f Use iterators in SIP. (#943) 2025-01-14 12:05:18 +02:00
lukasIO
5b4142c056 Add DataStream.Trailer for finalizing streams (#940)
* Add DataStream.Trailer for finalizing streams

* remove complete from chunk

* Create tame-suits-sneeze.md

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-10 17:43:03 +01:00