Overview
Vaani receives webhook events from LiveKit to track room lifecycle. These are inbound webhooks (LiveKit → Vaani), not outbound hooks you configure.Supported Events
| Event | Description | Action |
|---|---|---|
room_started | A new LiveKit room is created (call begins) | Increments livekit:active_calls counter in Redis |
room_finished | A LiveKit room is destroyed (call ends) | Decrements livekit:active_calls counter in Redis |
Capacity Tracking
The webhook handler maintains a Redis counter (livekit:active_calls) used for:
- Batch dispatch — the Celery worker checks this counter before starting new calls
- Dashboard — real-time active call count
- Safety — counter has a 600-second TTL to auto-reset after crashes
livekit:active_callsMax value: Controlled by
MAX_AGENT_SESSIONS environment variable
Custom Functions (Agent-Side Webhooks)
Agents can call external HTTP endpoints during conversations. These are configured per-agent as Custom Functions (not to be confused with LiveKit webhooks). Custom function config:Webhook Signature Verification
LiveKit webhooks are authenticated using the LiveKit API key and secret. The Vaani backend validates the webhook signature before processing events.No additional webhook configuration is needed on your side. Vaani automatically handles LiveKit webhook registration when the system is deployed.