An open source sidecar that gives a plain Asterisk PBX a conversational AI voice agent, without routing calls through a hosted voice platform.
Asterisk bridges the call into it over AudioSocket, or over chan_websocket on Asterisk 20.18 and 22.8 or newer. From there it runs the loop you would expect: WebRTC voice activity detection on every 20 ms frame, speech to text through OpenAI Whisper or ElevenLabs Scribe, a streamed LLM turn with tool calling posted to a webhook you control, and speech out through Piper locally or ElevenLabs in the cloud.
Barge-in is handled properly rather than nominally: an interrupting caller stops queued audio, stops the synthesis that is still running, and the conversation history records only what the caller actually heard. Outbound audio is metered to the 20 ms frame clock with a re-clamped deadline, which is the detail that decides whether callers hear whole sentences or only the ends of them.
You run it on your own hardware with your own API keys. There is no per-minute platform fee, no telephony vendor in the path, and the transcript never leaves infrastructure you control. It ships on PyPI and Docker Hub, with a systemd unit for installs without containers.
MIT licensed. Built and maintained by ICT Innovations, who also publish the AudioSocket protocol library it sits on.