v2.0.0Agent evals, tool calling on text, and pronunciations

Open-source infrastructure for AI voice agents

TurnCall runs real-time AI agents on phone calls, WhatsApp, SMS and the web. Choose your own speech, language and voice providers, deploy on your own infrastructure, and keep full control of your call data.

Read the quickstart
  • Self-hosted
  • MIT licensed
  • No per-minute platform fees

The optional Agent Builder, connected to a TurnCall server. Everything it does is an API call you can make from your own code.

Works with the carriers and AI providers you already use

Everything between the phone line and your code

TurnCall answers the call, listens, thinks and speaks. Your team writes only what is specific to your business: the prompt, the tools and the data.

Phone, WhatsApp and web

Inbound and outbound calls on Twilio and Telnyx, your Asterisk PBX, WhatsApp, SMS and browser calls. One agent answers on all of them, and your server can choose the agent for each call.

Phone numbers guide

Your choice of models

Pick the speech-to-text, the language model and the voice for each agent, hosted or on your own hardware. If one provider fails mid-call, a backup takes over.

Providers guide

Natural conversation

A turn-detection model tells a pause from a finished sentence. Callers can interrupt the agent, and voicemail and long silences are handled for you.

Agents guide

Tools during the call

Transfer to a person, hand off to another agent or send keypad tones. Connect your own APIs as webhook tools or through MCP servers.

Tools guide

Answers from your documents

Upload PDFs, Word files and spreadsheets. The agent searches them by meaning and by keyword while it talks.

Knowledge base guide

Results after every call

A summary, sentiment, a pass or fail against your rubric and the fields you define, sent to your webhook with the transcript and recording.

Post-call analysis guide

Response time you can see, turn by turn

Every call records how long each turn took, split into speech recognition, the model and the voice, so you know which setting to change.

  • ~800 msProcessing per turn with speech-to-text, a model and a voice
  • ~300 msProcessing per turn with a speech-to-speech model
  • p50, p95Latency summary on every completed call

One turn, default settings

Speech-to-text, model and voice1,600 ms
800150450200
Speech-to-speech1,100 ms
800300
End-of-turn detectionSpeech-to-textModel, first tokenVoice, first audioSpeech-to-speech

Measured from the moment the caller stops speaking. End-of-turn detection is adjustable per agent, and actual times depend on your providers.

Test an agent before it takes a call

Write scenarios once and run them against the real pipeline, as text or as audio, with tools mocked. A simulated caller can play the customer, and a judge decides whether the agent did its job.

  • Turn a real call into a test with one request
  • Run a tagged set from CI and block the merge on a regression
  • Results arrive as a webhook, with every transcript
ScenarioKindResult
Moves a cleaning to another dayScripted10 of 10
Anxious caller asks about a root canalSimulated9 of 10
Transfers billing questions with a briefingScriptedFailed, 1 of 3
$ turncall eval run --tag pre-publish --agent-name front-desk
3 runs, 2 passed, 1 failed
$ echo $?
1

An API for every part of the call

Create agents, connect numbers, place calls and receive events from your own code. The Builder is optional: everything in it is the same API.

  • REST API for agents, numbers, calls, campaigns and knowledge bases
  • Signed webhooks with the transcript and analysis
  • Live call control: transfer, hand off, send keypad tones, end
  • Agent versions with rollback, and a Claude Code plugin that knows the API

        

Ready for live phone lines

What teams running voice agents on real customer traffic need from the start.

Provider failover

Backup speech, model and voice providers take over mid-call, and the caller still gets an answer.

Deploys without dropped calls

A server that shuts down lets its live calls finish first. A Helm chart and readiness probes are included.

Outbound campaigns

Call a list within each contact's local hours, paced to your number's rate, with retries by outcome.

Usage limits

Cap live calls, outbound calls per second and messages per minute, enforced across every server.

Secure by default

Signed webhooks, per-call media tokens, encrypted provider keys and project-scoped API keys.

Versions and A/B tests

Publish a new version, split traffic between versions, and roll back in one step.

Runs on your infrastructure

There is no TurnCall cloud to sign up for. It's a Python service with PostgreSQL and Redis that runs wherever you run containers, and you pay your providers directly.

  • Recordings and transcripts stay in your database and storage
  • Each project can bring its own provider keys, encrypted at rest
  • MIT-licensed code your security team can read
Docker Composemake docker-up && make migrate

PostgreSQL, Redis and the API, for local development. Quickstart

Kuberneteshelm install turncall ./charts/turncall

API, evaluation and campaign workers, scaling on live calls. Kubernetes guide

Imageghcr.io/kobikis/turncall

Published for every release and every merge to main.

Questions teams ask first

Something else? Write to [email protected].

Is there a hosted version?

Not today. You run TurnCall with Docker Compose or the Helm chart, next to PostgreSQL and Redis, on infrastructure you control.

What does it cost?

TurnCall is free and MIT licensed. You pay your phone carrier and AI providers directly, at their rates, with no per-minute platform fee on top.

Which phone carriers does it work with?

Twilio and Telnyx numbers, inbound and outbound, and your own Asterisk PBX over ARI (20.18, 22.8, 23.2 or later). WhatsApp Business voice and messages run through the WhatsApp Cloud API.

Do I need the Agent Builder?

No. The engine is an API with no required dashboard. The Builder is an optional app on top of it, source-available under FSL-1.1-ALv2.

Where does my call data go?

Recordings, transcripts and call records stay in your own database and storage. Audio and text go only to the providers you configure.

Take your first call today

The quickstart takes you from an empty server to an agent answering a phone number.

Talk to a TurnCall agent

Pick an agent and start the call. Your browser will ask to use the microphone.

Ready00:00
The conversation appears here.

Calls are short and run on a TurnCall server with the providers each agent uses.