By Sagar Shankaran, Founder of CallSphere
Detailed cold-start benchmarks for voice AI: WebSocket setup, model warmup, first-token latency. Compare CallSphere on K8s vs Vapi managed pipeline.
Key takeaways
Cold start in voice AI is the time from the first SIP RING to the first agent token spoken. It matters most when call volume is bursty (think clinic morning rush, real estate Saturday surge, after-hours storm). Vapi ships a managed warm pool, which gives you a smooth ~400-600ms cold start at the cost of opacity. CallSphere runs on K8s with hostPath hot-reload, an OpenAI Realtime WebSocket pre-warmed per pod, and Twilio media streams; cold start is ~700ms-1.1s for the first call into a freshly scaled pod, ~250-400ms thereafter.
If you can predict surge, CallSphere's HPA (Horizontal Pod Autoscaler) plus a pre-warm sidecar gets you the same numbers as Vapi with full transparency.
Three things have to happen before the agent can speak:
Each adds latency. In a steady-state call (#2 already pre-warmed), only #1 and #3 contribute. In a true cold start (#2 not pre-warmed), all three stack.
Vapi runs a managed warm pool of LLM connections. When a new call lands:
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
Trade-offs:
CallSphere runs on k3s with hostPath volumes for backend hot-reload. The voice path is:
Twilio Media Streams (WebSocket)
↓
Python FastAPI agent server (per-pod)
↓
OpenAI Realtime API (WebSocket, gpt-4o-realtime-preview-2025-06-03)
Each pod boots with a prewarmer sidecar: it opens an OpenAI Realtime WebSocket, sends a no-op session.update, and parks the connection. When the first call hits the pod, the agent server reuses that connection.
Real numbers from production traces:
| Phase | Cold Pod | Warm Pod |
|---|---|---|
| Pod scheduling (K8s) | 8-15s | 0 |
| Container start | 2-4s | 0 |
| Prewarmer connect to OpenAI | 350-500ms | 0 (already open) |
| Twilio media bridge | 80-120ms | 80-120ms |
| First-token from model | 280-400ms | 200-280ms |
| Total cold start | 700ms-1.1s | 250-400ms |
The big number is K8s pod scheduling, which is why the right answer is predictive HPA: scale up before the surge using a forecast, not after.
CallSphere uses a Redis-backed surge predictor that runs every 60s and looks at:
If predicted next-5-minute load > current capacity * 0.7, it asks K8s to scale +1 pod. The new pod takes ~10s to schedule and prewarmer connects in ~500ms, so by the time real traffic hits, it is warm.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
async def surge_predictor():
while True:
baseline = redis.get(f"baseline:{day}:{hour}")
recent = redis.zcount(f"calls:{vertical}", now - 300, now)
outbound_queue = await get_pending_outbound(vertical)
predicted = max(baseline, recent * 1.2) + outbound_queue * 0.1
capacity = current_pod_count() * PEAK_CALLS_PER_POD
if predicted > capacity * 0.7:
scale_up(vertical, +1)
await asyncio.sleep(60)
Inside one pod, multiple concurrent calls share the OpenAI Realtime WebSocket pool. A pool of 5 connections handles ~50 concurrent calls comfortably; the bottleneck is Twilio media stream concurrency per pod, not the LLM connection.
| Metric | Vapi | CallSphere (warm pod) | CallSphere (cold pod) |
|---|---|---|---|
| First-audio target | <500ms | ~250-400ms | ~700-1100ms |
| Pre-warm visibility | Hidden | Per-pod metric | Per-pod metric |
| Predictive scaling | None exposed | Redis-driven HPA | Same |
| Surge cap | Pool dependent | K8s cluster cap | Same |
| Geo-region pinning | Vendor-side | Per-cluster | Per-cluster |
| Cold spike behavior | Queue + spike | Brief spike, predictable | Brief spike |
sequenceDiagram
participant Caller
participant Twilio
participant K8s
participant Pod
participant OpenAI as OpenAI Realtime
Note over Caller,Twilio: First call after surge
Caller->>Twilio: SIP INVITE
Twilio->>K8s: WS connect (cold)
K8s->>Pod: Schedule + start (8-15s if cold)
Pod->>OpenAI: WebSocket session.update
OpenAI-->>Pod: session.created (350-500ms)
Pod->>Twilio: Audio bridge ready
Twilio->>Caller: Play hold tone (covers cold)
Pod->>OpenAI: Initial system audio frame
OpenAI-->>Pod: First-token audio (280-400ms)
Pod-->>Twilio: PCM16 24kHz greeting
Twilio-->>Caller: "Hi, this is..."
We do, but only at the floor. The HPA min-replicas is sized for baseline load. Above that, predictive scaling handles surge. Always-on for peak burns capacity 80% of the day.
The WebSocket itself is free; you pay per audio second processed. A parked connection with no audio costs nothing.
Yes, with edge regions and aggressive caching, but the user-perceptible threshold is ~300ms. Below that you stop noticing improvements unless the use case is extremely conversational (interview prep, language tutoring).
End-to-end from Twilio's first media frame to the first PCM16 frame returned. Excludes carrier-side SIP delay (~50-150ms variable).
K8s rebalances, prewarmer rebuilds connections in 1-2s per pod, and the surge predictor over-provisions for 5 minutes after a healing event.
Run the live demo — the first call you trigger after the page idles is a real cold-start; subsequent calls are warm-pod numbers. /features lists per-vertical latency targets.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
A practical guide for medical clinics and aged-care providers in Sydney, Melbourne, Auckland, and Wellington to triage after-hours calls with AI voice agents under the Privacy Act.
A 2026 look at Austrian SMBs and the tourism-driven hospitality sector in Vienna, Graz and the alpine regions. How CallSphere AI voice and chat agents handle multilingual bookings 24/7, DSGVO-compliant, in German, English and more.
Azerbaijani law firms, accountants, and real estate agencies lose clients to unanswered calls. CallSphere books consultations 24/7 in Azerbaijani, Russian, and English across Baku and Ganja.
A practical guide for automotive businesses across the Balkans to deploy a CallSphere AI voice and chat agent that books service, answers parts questions, and captures every lead in every local language.
San Pedro on Ambergris Caye runs on divers and property buyers who inquire from every time zone. See how CallSphere AI voice + chat agents answer reef-trip bookings and real estate leads 24/7 in English and Spanish.
A pain-to-solution guide for logistics operators and professional-services firms across Poland, Czechia, Hungary and Slovakia to capture cross-border calls 24/7 with a CallSphere AI agent.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI