Access token verification now requires the exp claim, matching livekit/protocol#1706. Added an enabled option to createIngress and updateIngress; setting enabled: false disables an ingress session without deleting it, preserving the stream key.
Node SDKs
npx @buildinternet/releases get livekit-node-sdksLocalParticipant.addRpcInterceptor() wraps every RPC the participant performs or handles, for logging, tracing, or payload metadata; RpcInvocationData now carries the invoked method.
The @livekit/rtc-node package bumps to a major version to mark it as stable.
startEgress now supports a PASSTHROUGH encoding preset for single-track MediaSource egress that skips transcoding. Every server API request now carries an X-Livekit-Request-Id idempotency key, replayed across region failover so the server can deduplicate retries. Web Crypto helpers dropped node:crypto fallbacks for edge-bundler compatibility.
The README no longer carries the outdated "Developer Preview / not ready for production" notice, signaling production readiness.
Data streams now use the livekit-ffi exposed data streams interface, and E2EE defaults were updated to conform to required FFI fields and protocol.
Adds EgressClient.startEgress(), a unified convenience method that calls the v2 Egress.StartEgress RPC with a StartEgressRequest or partial init object; the existing per-type start helpers remain unchanged. Also updates e2ee defaults to align with required FFI fields and protocol.
Fixed a dual package hazard by building a single CJS version with an ESM wrapper. Updated to livekit FFI 0.12.73.
Audio streams attached to unsubscribed tracks now close properly, preventing duplicate audio delivery after a reconnect. FFI bumped to 0.12.68.
A new LiveKitAPI provides a single unified entry point exposing every server API through properties like api.room, api.egress, api.ingress, api.sip, api.agentDispatch, and api.connector. It accepts an API key and secret, a pre-signed token, or falls back to environment variables. SipCallError, a TwirpError subclass, now exposes SIP status codes and reasons when SIP calls fail.
Fixed AudioSource.waitForPlayout resolving immediately with audio still queued, which was clipping the tail of agent speech on every turn. The internal playout promise is now discarded when released and lazily re-created on the next captureFrame, and waitForPlayout() now resolves immediately when no audio is queued instead of blocking until the next release.
Added support for SIP media configuration options. The createSipDispatchRule function now accepts a callee dispatch rule.
Initial support for using frame processors directly on tracks.
Adds a deployment option to CreateDispatchOptions.
RemoveParticipant now includes a token revocation timestamp field.
Added a method to query RTC statistics on room via await room.getRtcStats(). FFI bindings updated to include RPC v2 support.
The SDK now exposes kindDetails on Participant and re-exports the ParticipantKindDetail enum. Added support for handling track republish and SimulateScenario.
Updated to protocol 1.45.6 to surface new options on agent dispatch and connector clients: AgentDispatchClient.createDispatch gains a restartPolicy option, ConnectorClient WhatsApp methods gain ringingTimeout and waitUntilAnswered parameters, and ConnectorClient.disconnectWhatsAppCall gains an optional disconnectReason parameter. Also added canManageAgentSession to VideoGrant.
Patch Changes
- add ringingTimeput field to SIP inbound create api - #645 (@s-hamdananwar)


