Putting a voice agent on a real phone line
Our first live deployment answers calls for a Ukrainian internet provider. Here is what went wrong, what we fixed and what we would do the same way again.

Demos are easy. A real phone line is not. People call from noisy kitchens, switch languages mid-sentence and hang up when they are put on hold. We knew that in theory. The first weeks of the rollout made it very concrete.
Start with the boring calls
Most calls to an internet provider are about the same few things: the connection is down, a payment did not go through, a router needs a restart. We let the agent handle those first and sent everything else to a person. That kept the risk low and gave us real data quickly.
Mistakes we made
We underestimated how often callers interrupt. Early versions waited too long before answering and sometimes talked over people (why full-duplex matters). Fixing turn-taking did more for callers than any change to the language model.
We also handed calls to staff without enough context, so callers had to repeat themselves. Now the agent passes a short summary with every transfer.
The best test was simple: did the caller have to say the same thing twice?
What stays the same
Everything runs inside a private perimeter, recordings follow a written retention rule, and we keep a log of every change. We will keep publishing those notes here.


