"Which customer is the expensive one?"
A team self-hosting LiveKit, paying three provider invoices, could not tell. A developer elsewhere was surprised a 10-minute call came to $1.50–2.00 once everything was added up.
One collector in your voice agent; one dashboard with what each call cost, how long the caller waited, and why SIP calls failed. Built for agencies and multi-tenant SaaS that resell voice, and for small teams self-hosting LiveKit. No agent yet? Build it in vozo, and every call goes to the same dashboard.
Busy Here on the latest calls
Likely a concurrent-call limit, not a busy line. Check the trunk's channel/CPS cap.
Harbor HVAC loses money
$0.087/min cost against what you charge them.
Time lost in LLM first token
Most turns over 1.2 s wait on the LLM, not on end-of-turn or TTS.
rime / mistv2 in 8 calls
Flagged instead of counted as $0 until you add a price.
vozo demo: fictional customers, generated calls. Exact numbers vary per run.A voice agent touches speech-to-text, an LLM, text-to-speech and a carrier on every call. Each one has its own bill, its own logs and its own idea of "fast". These come from public posts (Reddit, the LiveKit forum, X) we read while researching how teams run voice agents in production.
A team self-hosting LiveKit, paying three provider invoices, could not tell. A developer elsewhere was surprised a 10-minute call came to $1.50–2.00 once everything was added up.
Meanwhile callers heard about 950 ms of silence. Another team called matching each provider's dashboard by timestamp "archaeology", not observability.
Outbound calls just started failing. Others hit 404 "No trunk found" on every inbound call, or 486 Busy Here from about 14 concurrent calls in load tests.
Teams that run voice agents for other people, and pay for every minute of it.
Build them in vozo or bring your own. Cost, caller wait and SIP failures per client in one place, so you can price, bill and fix without opening five vendor dashboards.
You resell minutes to your own customers and need margin per customer, plus an alert before they notice a broken line.
Hosted platforms come with a dashboard; self-hosting does not. One collector in your agent gives you the production view back.
Typical volume: 10,000 to 500,000 minutes a month.
One event stream, three views. Built on three open-source packages in the same repo: Tally, Hold and Line.
Agencies can run one project per client, or one project with every event tagged by customer_id.
attach_livekit(session, ...) for LiveKit Agents Python. Any other stack can POST /v0/events with plain JSON.
Cost, margin, turn latency and SIP failures per project. Alerts open once and send "resolved" when the problem stops.
Per project, from the same events.
Split by STT, LLM, TTS and telephony, so you see where the money goes.
Enter what you charge each customer; see who is profitable and who is not.
And which step slow turns lose time in: end-of-turn detection, LLM first token or TTS first audio.
For example 486 around ~14 concurrent calls, or 404 "No trunk found" from a dispatch rule that lists the number without "+", each with a suggested fix.
A model with no price shows up as a warning instead of a silent $0.
Line items for every cost and a waterfall of every turn.
No agent yet, or you want your team to change it without code? Build it in the vozo platform. Every call it takes goes to the dashboard above, with the customer and the agent version already set.
The agent is a graph of steps. Each step has a prompt and each edge has a condition. One global prompt covers the whole call.
Pick the STT, LLM and TTS provider, model and voice. Each option shows its price per minute.
Talk to the agent in the side panel while you edit it. A published version does not change. To roll back, pick an earlier one.
Import numbers from Twilio, Telnyx, Zadarma or any SIP provider. Route inbound calls to an agent and version. Start outbound calls one at a time or in batches.
Each customer organization has its own agents, numbers and calls, kept apart in the database, and pays with prepaid credits.
Set two variables and every call reaches vozo with its cost, turn latency, SIP failures and end reason. Customers see their prices. Only you see the real cost and the margin.
Private testing. In our tests the builder answers web calls end to end through a real LiveKit server. It has not taken a phone call through a real carrier yet. Ask for access in the form below.
Self-host with one Docker container and SQLite, or use the hosted beta. The demo needs no third-party accounts.
# from a clone of the repo: source code coming soon pip install ./tally ./hold ./line ./vozo vozo demo # demo project + its API key vozo serve # http://127.0.0.1:8080 # one project per client (prints its API key) vozo project create "Acme Dental" # or one Docker container, SQLite on a volume docker build -f vozo/Dockerfile -t vozo . docker run -p 8080:8080 -v vozo-data:/data vozo
from vozo.collect import attach_livekit attach_livekit( session, api_key=os.environ["VOZO_KEY"], customer_id="acme-dental", )
curl -X POST https://<your-vozo-host>/v0/events \ -H "Authorization: Bearer $VOZO_KEY" \ -H "Content-Type: application/json" \ -d '{"v":0,"ts":1793900000,"call_id":"c-1","kind":"llm","customer_id":"acme-dental", "provider":"openai","model":"gpt-4o-mini","prompt_tokens":812,"completion_tokens":64}'
vozo stores metrics, not audio or conversation text. A TypeScript snippet for LiveKit Agents JS is in the repo but not tested yet. Pipecat: cost only for now.
Provisional. These prices may change before general availability.
One Docker container, SQLite, your own servers. Same dashboard, alerts and collector.
The first design partners use the hosted beta free. After that:
Honest list. No billing or self-serve signup: beta access is given by hand from the waitlist. No OpenTelemetry export, no Telnyx configuration checks, no audio quality analysis. The TypeScript collector is untested and Pipecat sends cost only. Latency is measured inside the agent process, so the phone leg to the caller's ear is not included. The agent builder is in private testing and has not taken a phone call through a real carrier yet.
We are looking for a few agencies, multi-tenant voice SaaS teams or self-hosted LiveKit teams (roughly 10k–500k minutes a month) to use it on their own calls.
We only use your email to contact you about this. Privacy.