Commit Graph

146 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
lukasIO
d4fa8b9c4f Deprecate explicit AddTrackRequest fields that can be read from Audio… (#1058)
* Deprecate explicit AddTrackRequest fields that can be read from AudioTrackFeatures

* changeset
2025-04-30 14:18:16 +02: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
d67a6a9f96 Allow updating SIP media encryption. (#1047) 2025-04-15 10:48:49 +03: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
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
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
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
Denys Smirnov
e35a55f148 Move SIP call dispatch info into a separate type. (#989) 2025-03-01 14:47:08 +02:00
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
715433bcb8 Add SIP hostname to auth request as well. (#988) 2025-02-25 19:20:22 +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
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
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
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
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
Benjamin Pracht
c533a46256 Add SIPCallDirection to SIPCallInfo (#938)
---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-08 14:50:18 -08:00
Benjamin Pracht
8714744cc1 Make IngressInfo.enabled optional (#937)
To provide backward compatibility with already existing Ingresses
---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-07 14:21:10 -08:00
Rajiv Gonzalez
e58b0bf8ad Disable ingress session flag update (#935)
New Enabled flags on createIngress and updateIngress to have the ability to disable ingress sessions without having to remove the entire session and lose the streamkey
2025-01-07 09:33:54 -08:00
Denys Smirnov
409558f441 Add media encryption options. (#892) 2024-12-27 17:11:29 +02:00
Benjamin Pracht
70efefb425 Add EgressSourceType to EgressInfo (#894)
* WiP

* Define EgressSourceType and record it in the EgressInfo for proper biling

* generated protobuf

* Create shy-planets-impress.md

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-25 16:01:07 -06:00
lukasIO
e92d055bb7 Remove total_chunks from data streams (#931)
* Remove total_chunks from data streams

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-25 16:00:02 -06:00
David Zhao
2c4895fbc2 adding room configuration in SIP dispatch rule (#923)
* adding room configuration in SIP dispatch rule

* generated protobuf

* changeset

* generated protobuf

* add to io.proto

* fix imports

* generated protobuf

* pass along room preset and config details

* comment about token flow

* generated protobuf

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-12-25 15:59:02 -06:00
Denys Smirnov
1975b61b7e Add headers for SIP call transfer. (#926) 2024-12-18 14:42:28 +02:00