
看到 hkjarral/AVA-AI-Voice-Agent-for-Asterisk,我第一個反應是:Asterisk 這種老派但很能活的電話基礎設施,現在也被 AI voice agent 接上了,而且有人把它整理成一個 MIT 授權的開源專案。頁面上的數字也不小,1.1k stars、243 forks、3,440 commits,最新 release 是 2026-07-11 的 v7.3.2。
AVA 的切入點很清楚。它接在既有 Asterisk/FreePBX 上,用 AudioSocket/RTP 把通話音訊送進 AI pipeline。對已經有 PBX 的團隊來說,這比重買一套雲端電話系統務實很多。你可以先保留原本的 dialplan、ARI 與 FreePBX 操作習慣,再把某個路由交給 agent 測試。
我會先看的,是它怎麼拆責任。README 把 STT/LLM/TTS 當成可替換模組,雲端可以選 OpenAI Realtime、Deepgram Voice Agent、Google Live、ElevenLabs Agent 或 xAI Grok Voice Agent,本機路線則有 Local Hybrid、Fully Local 和 Ollama。這種拆法很像傳統電話系統的思維,元件可以換,但通話流程要穩。
從 v7.0.0 起,Agent 可以在 Admin UI 裡管理,dialplan 用 AI_AGENT 變數選 agent;v7.3.0 又把 voice 放到 agent 層級。也就是同一個 provider 可以被多個 agent 共用,每個 agent 有自己的聲音。README 裡提到 receptionist、after-hours、appointment booker 這類範本,這很符合 PBX 現場常見的分工。
另一個看點是 tool calling。它的範圍超過文字回覆,README 把 transfer、cancel_transfer、hangup_call、leave_voicemail、send_email_summary 和 request_transcript 都放進電話語境,也支援 pre-call lookup、in-call HTTP lookup、post-call webhook。換句話說,這個 agent 要處理的是一通電話的生命週期,從接起、查資料、轉接,到結束後送出紀錄。
快速開始看起來很順:先跑 preflight.sh --apply-fixes 建 .env 和 JWT_SECRET,再用 Docker Compose 開 Admin UI,瀏覽器連到 3003,第一次密碼從 container logs 拿。接著啟動 ai_engine,用 15000 port 的 health endpoint 看狀態,最後讓 wizard 產生 Asterisk dialplan。這些步驟不難,但 README 重複提醒 3003 要用 firewall、VPN 或 reverse proxy 限制。這段不能跳,因為 Admin UI 是 provider 和 agent 設定入口。
最新 v7.3.2 反而沒有新增 provider,重點放在 AudioSocket 與 ExternalMedia 驗證後的穩定化。Grok ExternalMedia、terminal playback、inactivity-grace regression、updater rollback/stash、PR quality gates 都被點名。這種 release 對 demo 不性感,但對電話系統很實際。通話結尾、barge-in 或 watchdog 一壞,使用者聽到的就是半句話,或是一段沒人理的沉默。
v7.3.1 的 30 秒 inbound inactivity protection 也是同一個方向。AVA 會先問使用者是否還線上上,等 15 秒沒有回覆,再播放最後警告並結束通話;watchdog 和 hangup farewell 會等 AudioSocket、ExternalMedia/RTP streaming buffers 或 ARI file playback drain 完。電話系統最怕的不是功能少一點,而是該說完的話被切掉。
本機部署這塊也寫得很細。Fully Local 列了 CPU-only 5-15s/turn、同機 GPU 0.5-2s/turn、remote GPU split-server 1-3s/turn,RTX 4090 約 1.0s E2E 也被標成 community-validated。看到這裡我會保守一點,因為前提同樣寫得很清楚:x86_64、Linux with systemd、Docker Compose v2、Asterisk 18+ with ARI enabled。目前 ARM64 不支援。
看完 README,我會把 AVA 放在這個位置:已經有 Asterisk/FreePBX,又想把 AI agent 慢慢接進 call flow 的團隊,可以拿它當起