A caller's history survives the transfer to a person
AI Native Call Center answers a phone call through a voice model, then sends the caller to a staffed FreeSWITCH queue when the flow calls for a person. The useful detail is what survives that transfer: the README describes one call identity, transcript, recording, and call record across the bot and human legs. An agent can see the bot conversation before answering. That is a stronger reason to try this project than simply wanting an AI to pick up.
The source checkout had 920 files and about 181,207 lines, despite occupying only 9.9 MB. Its compact packaging hides a fairly large product. The Go binary embeds the web interface and supplies the API and event stream, but PostgreSQL and FreeSWITCH remain separate services. English and Chinese are supported in the interface and bot, and an English README exists alongside Chinese documentation. This is a call-center stack you operate, with a model attached to its telephone path.
What happened when we ran it
Our sandbox installed commit 6e2ee1d in 31 seconds, pulling 462 packages. The build succeeded in 59 seconds. Tests succeeded in 50 seconds, with go test reporting 72 passed and 0 failed out of 72. The October 13, 2026 run used the golang:1.24-bookworm image, 3 CPUs, 8 GB of RAM, no secrets, and an unprivileged Debian container. Those are encouraging source-level results for a stack with this much telephony code.
Our scan found 4 CI workflow files and a Dockerfile, but no tests directory. The passing Go command matters more than a directory name. The supplied measurements establish successful dependency installation, compilation, and the available tests. They contain no live carrier call, provider conversation, transfer recording, or browser-phone measurement. These results don't establish that a real caller heard the bot or that an agent received the transcript after a transfer.
The installer still needs a voice key and reachable media
The deployment guide asks for a provider credential and the address phones use to reach the host. A wrong external address can let a phone register while leaving it without audio. That is an unusually useful warning: a green login screen can coexist with a broken telephone path. Linux deployment uses host networking, while macOS follows a different container-network arrangement. The guide explains firewall rules and supplies aicc doctor checks for the switch, database, provider, and advertised address.
The 462-package install measured the repository path, rather than a configured deployment with those services. The installer generates secrets, whereas the manual Compose quick start documents shared default passwords that need changing. Production should also omit the demo seed. Agent audio depends on the separate web-sip-phone Chrome extension, which receives SIP credentials at sign-in. Browser call controls in the main application don't remove that extension dependency, so your approved browser environment becomes part of the adoption decision.
One startup provider limits routing choices
Every call in a deployment uses the voice provider chosen at startup. Language doesn't select a different backend. The README supports Qwen and Doubao, OpenAI and Gemini, or a compatible gateway you operate. If you need different providers per customer or call, that fixed selection is a direct mismatch. The project also deliberately excludes a local speech-recognition, language-model, and speech-synthesis chain inside its process. Such a chain belongs behind an external gateway.
A 59-second build gives no evidence about the experience with any of those providers. Their operating limits still matter: the deployment guide says a Gemini session expiry releases the call to its fallback queue because the application doesn't reconnect. Staff that queue before using the backend for conversations that could reach the provider's limit. Flow instructions and allowed tools can steer the dialogue, but provider behavior and media delivery still decide what the caller actually hears.
Passing tests leave two customer-facing reasons to hold off
Issue 207's Qwen campaign report concerns the same commit we ran, 6e2ee1d. It describes record_lead and hangup occurring together, followed by a response without audio, so the caller hears no closing line. The report includes a do-not-call request where the expected apology and goodbye aren't spoken. That is a concrete reason to hold back unattended campaign deployment until the path you intend to use has been checked with real calls.
Our 72 passing tests don't establish that the closing line was audible. Issue 203's supervisor-phone report documents another practical boundary: the browser application provisions phones for agents only, leaving supervisor Listen, Whisper, and Barge actions without a registered destination. Both reports concern this product's current call paths. They justify a lower maturity score even though the repository builds cleanly, and they deserve more attention than whether the demo wallboard looks complete.
October fixes show active work on an unsettled product
The last push was October 13, 2026. GitHub showed 246 stars and 34 open issues and PRs. Release v0.4.0 arrived October 10, and recent activity includes a closed call-record timing defect alongside the open campaign and supervisor reports. The release notes ask operators to upgrade the application and switch images together. Those details show active maintenance and ongoing behavior changes, rather than a finished system whose release tag alone answers the reliability question.
The 50-second green suite earns this project a controlled evaluation if you already operate FreeSWITCH and want bot-to-agent continuity. LiveKit Agents is a better starting point when you're building your own voice application and want its media and telephony framework. Pipecat suits developers assembling their own voice pipeline. Neither substitutes directly for this project's agent desktop and queue workflow. Before sending customers through it, make an interrupted goodbye and a supervisor joining a call part of your acceptance exercise.

