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.
Node SDKs
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)
Patch Changes
Patch Changes
-
Release reader lock on stream completion and clear receivedChunks to prevent memory leak - #640 (@LautaroPetaccio)
-
Dispose native handles on audio/video stream…
Patch Changes
- Add ringingTimeout option to transferSipParticipant - #627 (@alexlivekit)


